; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 1 ; Table of Contents ; 1 KS10.MIC[7,3] 14:54 7-JAN-1986 ; 57 REVISION HISTORY ; 184 HOW TO READ THE MICROCODE ; 389 CONDITIONAL ASSEMBLY DEFINITIONS ; 435 2901 REGISTER USAGE ; 471 MICROCODE FIELDS -- LISTING FORMAT ; 519 MICROCODE FIELDS -- DATAPATH CHIP ; 671 MICROCODE FIELDS -- RAM FILE ADDRESS AND D-BUS ; 705 MICROCODE FIELDS -- PARITY GENERATION & HALF WORD CONTROL ; 728 MICROCODE FIELDS -- SPEC ; 831 MICROCODE FIELDS -- DISPATCH ; 875 MICROCODE FIELDS -- SKIP ; 926 MICROCODE FIELDS -- TIME CONTROL ; 946 MICROCODE FIELDS -- RANDOM CONTROL BITS ; 968 MICROCODE FIELDS -- NUMBER FIELD ; 1312 DISPATCH ROM DEFINITIONS ; 1358 HOW TO READ MACROS ; 1517 MACROS -- DATA PATH CHIP -- GENERAL ; 1667 MACROS -- DATA PATH CHIP -- Q ; 1702 MACROS -- DATA PATH CHIP -- MISC. ; 1723 MACROS -- STORE IN AC ; 1755 MACROS -- MICROCODE WORK SPACE ; 1782 MACROS -- MEMORY CONTROL ; 1832 MACROS -- VMA ; 1849 MACROS -- TIME CONTROL ; 1862 MACROS -- SCAD, SC, FE LOGIC ; 1945 MACROS -- DATA PATH FIELD CONTROL ; 1961 MACROS -- SHIFT PATH CONTROL ; 1974 MACROS -- SPECIAL FUNCTIONS ; 2005 MACROS -- PC FLAGS ; 2034 MACROS -- PAGE FAIL FLAGS ; 2042 MACROS -- SINGLE SKIPS ; 2067 MACROS -- SPECIAL DISPATCH MACROS ; 2101 DISPATCH ROM MACROS ; 2142 SIMPLE.MIC[7,3] 16:49 11-NOV-1985 ; 2144 POWER UP SEQUENCE ; 2226 THE INSTRUCTION LOOP -- START NEXT INSTRUCTION ; 2350 THE INSTRUCTION LOOP -- FETCH ARGUMENTS ; 2462 THE INSTRUCTION LOOP -- STORE ANSWERS ; 2546 MOVE GROUP ; 2583 EXCH ; 2598 HALFWORD GROUP ; 2765 DMOVE, DMOVN, DMOVEM, DMOVNM ; 2796 BOOLEAN GROUP ; 2951 ROTATES AND LOGICAL SHIFTS -- ROT, LSH, JFFO ; 3047 ROTATES AND LOGICAL SHIFTS -- LSHC ; 3082 ROTATES AND LOGICAL SHIFTS -- ASHC ; 3121 ROTATES AND LOGICAL SHIFTS -- ROTC ; 3153 TEST GROUP ; 3305 COMPARE -- CAI, CAM ; 3374 ARITHMETIC SKIPS -- AOS, SOS, SKIP ; 3424 CONDITIONAL JUMPS -- JUMP, AOJ, SOJ, AOBJ ; 3515 AC DECODE JUMPS -- JRST, JFCL ; 3605 EXTENDED ADDRESSING INSTRUCTIONS ; 3646 XCT ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 2 ; Table of Contents ; 3668 STACK INSTRUCTIONS -- PUSHJ, PUSH, POP, POPJ ; 3765 STACK INSTRUCTIONS -- ADJSP ; 3798 SUBROUTINE CALL/RETURN -- JSR, JSP, JSA, JRA ; 3853 ILLEGAL INSTRUCTIONS AND UUO'S ; 4052 ARITHMETIC -- ADD, SUB ; 4081 ARITHMETIC -- DADD, DSUB ; 4114 ARITHMETIC -- MUL, IMUL ; 4165 ARITHMETIC -- DMUL ; 4306 ARITHMETIC -- DIV, IDIV ; 4383 ARITHMETIC -- DDIV ; 4504 ARITHMETIC -- DIVIDE SUBROUTINE ; 4569 ARITHMETIC -- DOUBLE DIVIDE SUBROUTINE ; 4609 ARITHMETIC -- SUBROUTINES FOR ARITHMETIC ; 4655 BYTE GROUP -- IBP, ILDB, LDB, IDPB, DPB ; 4732 BYTE GROUP -- INCREMENT BYTE POINTER SUBROUTINE ; 4745 BYTE GROUP -- BYTE EFFECTIVE ADDRESS EVALUATOR ; 4779 BYTE GROUP -- LOAD BYTE SUBROUTINE ; 4832 BYTE GROUP -- DEPOSIT BYTE IN MEMORY ; 4920 BYTE GROUP -- ADJUST BYTE POINTER ; 5079 BLT ; 5261 FLT.MIC[7,3] 01:46 20-MAR-1981 ; 5262 FLOATING POINT -- FAD, FSB ; 5307 FLAOTING POINT -- FMP ; 5336 FLOATING POINT -- FDV ; 5386 FLOATING POINT -- FLTR, FSC ; 5421 FLOATING POINT -- FIX AND FIXR ; 5458 FLOATING POINT -- SINGLE PRECISION NORMALIZE ; 5525 FLOATING POINT -- ROUND ANSWER ; 5536 FLOATING POINT -- DFAD, DFSB ; 5625 FLOATING POINT -- DFMP ; 5686 FLOATING POINT -- DFDV ; 5740 FLOATING POINT -- DOUBLE PRECISION NORMALIZE ; 5850 EXTEND.MIC[7,3] 11:35 26-JULY-1984 ; 5851 EXTEND -- DISPATCH ROM ENTRIES ; 5906 EXTEND -- INSTRUCTION SET DECODING ; 5948 EXTEND -- MOVE STRING -- SETUP ; 5993 EXTEND -- MOVE STRING -- OFFSET/TRANSLATE ; 6024 EXTEND -- MOVE STRING -- MOVSRJ ; 6072 EXTEND -- MOVE STRING -- SIMPLE MOVE LOOP ; 6096 EXTEND -- COMPARE STRING ; 6157 EXTEND -- DECIMAL TO BINARY CONVERSION ; 6289 EXTEND -- BINARY TO DECIMAL CONVERSION ; 6447 EXTEND -- EDIT -- MAIN LOOP ; 6501 EXTEND -- EDIT -- DECODE OPERATE GROUP ; 6520 EXTEND -- EDIT -- STOP EDIT ; 6535 EXTEND -- EDIT -- START SIGNIFICANCE ; 6542 EXTEND -- EDIT -- EXCHANGE MARK AND DESTINATION ; 6553 EXTEND -- EDIT -- PROCESS SOURCE BYTE ; 6616 EXTEND -- EDIT -- MESSAGE BYTE ; 6639 EXTEND -- EDIT -- SKIP ; 6653 EXTEND -- EDIT -- ADVANCE PATTERN POINTER ; 6686 EXTEND SUBROUTINES -- FILL OUT DESTINATION ; 6710 EXTEND SUBROUTINES -- GET MODIFIED SOURCE BYTE ; 6747 EXTEND SUBROUTINES -- TRANSLATE ; 6833 EXTEND SUBROUTINES -- GET UNMODIFIED SOURCE BYTE ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 3 ; Table of Contents ; 6862 EXTEND SUBROUTINES -- STORE BYTE IN DESTINATION STRING ; 6883 EXTEND SUBROUTINES -- UPDATE DEST STRING POINTERS ; 6927 EXTEND -- PAGE FAIL CLEANUP ; 6966 INOUT.MIC[7,3] 13:32 7-JAN-1986 ; 6967 TRAPS ; 6998 IO -- INTERNAL DEVICES ; 7109 IO -- INTERNAL DEVICES -- EBR & UBR ; 7235 IO -- INTERNAL DEVICES -- KL PAGING REGISTERS ; 7277 IO -- INTERNAL DEVICES -- TIMER CONTROL ; 7308 IO -- INTERNAL DEVICES -- WRTIME & RDTIME ; 7347 IO -- INTERNAL DEVICES -- WRINT & RDINT ; 7361 IO -- INTERNAL DEVICES -- RDPI & WRPI ; 7401 IO -- INTERNAL DEVICES -- SUBROUTINES ; 7542 PRIORITY INTERRUPTS -- DISMISS SUBROUTINE ; 7557 EXTERNAL IO INSTRUCTIONS ; 7745 SMALL SUBROUTINES ; 7769 UNDEFINED IO INSTRUCTIONS ; 7850 UMOVE AND UMOVEM ; 7905 WRITE HALT STATUS BLOCK ; 7997 PAGEF.MIC[7,3] 12:15 10-APR-1985 ; 7999 PAGE FAIL REFIL LOGIC ; Cross Reference Index ; DCODE Location / Line Number Index ; UCODE Location / Line Number Index ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 4 ; KS10.MIC[7,3] 14:54 7-JAN-1986 KS10.MIC[7,3] 14:54 7-JAN-1986 ; 1 .NOBIN ; 2 .TITLE "KS10 MICROCODE V130, 7-JAN-86" ; 3 ; 4 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 6 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 7 ;;; ;;; ; 8 ;;; ;;; ; 9 ;;; COPYRIGHT (C) 1976,1977,1978,1979,1980,1981,1982, ;;; ; 10 ;;; 1984,1985,1986 ;;; ; 11 ;;; DIGITAL EQUIPMENT CORP., MAYNARD, MASS. ;;; ; 12 ;;; ;;; ; 13 ;;; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ;;; ; 14 ;;; ONLY ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ;;; ; 15 ;;; ONLY WITH THE INCLUSION OF THE ABOVE COPYRIGHT ;;; ; 16 ;;; NOTICE. THIS SOFTWARE, OR ANY OTHER COPIES THEREOF, ;;; ; 17 ;;; MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ;;; ; 18 ;;; ANY OTHER PERSON EXCEPT FOR USE ON SUCH SYSTEM AND ;;; ; 19 ;;; TO ONE WHO AGREES TO THESE LICENSE TERMS. TITLE TO ;;; ; 20 ;;; AND OWNERSHIP OF THE SOFTWARE SHALL AT ALL TIMES ;;; ; 21 ;;; REMAIN IN DEC. ;;; ; 22 ;;; ;;; ; 23 ;;; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO ;;; ; 24 ;;; CHANGE WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS ;;; ; 25 ;;; A COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ;;; ; 26 ;;; ;;; ; 27 ;;; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR ;;; ; 28 ;;; RELIABILITY OF ITS SOFTWARE IN EQUIPMENT WHICH IS ;;; ; 29 ;;; NOT SUPPLIED BY DEC. ;;; ; 30 ;;; ;;; ; 31 ;;; DESIGNED AND WRITTEN BY: ;;; ; 32 ;;; DONALD A. LEWINE ;;; ; 33 ;;; DIGITAL EQUIPMENT CORP. ;;; ; 34 ;;; MARLBORO, MASS. ;;; ; 35 ;;; MR1-2/E47 X6430 ;;; ; 36 ;;; ;;; ; 37 ;;; MAINTAINED AND ENHANCED BY: ;;; ; 38 ;;; DONALD D. DOSSA ;;; ; 39 ;;; DIGITAL EQUIPMENT CORP. ;;; ; 40 ;;; MARLBORO, MASS. ;;; ; 41 ;;; MR1-2/E18 DTN 231-4138 ;;; ; 42 ;;; ;;; ; 43 ;;; SEAN KEENAN ;;; ; 44 ;;; DIGITAL EQUIPMENT CORP. ;;; ; 45 ;;; MARLBORO, MASS. ;;; ; 46 ;;; MR1-2/E18 DTN 231-4463 ;;; ; 47 ;;; ;;; ; 48 ;;; TIMOTHE LITT ;;; ; 49 ;;; DIGITAL EQUIPMENT CORP. ;;; ; 50 ;;; MARLBORO, MASS. ;;; ; 51 ;;; IND-3/C9 262-8374 ;;; ; 52 ;;; ;;; ; 53 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 54 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 55 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 56 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 5 ; KS10.MIC[7,3] 14:54 7-JAN-1986 REVISION HISTORY ; 57 .TOC "REVISION HISTORY" ; 58 ; 59 ;REV WHY ; 60 ;1 START KS10 MICROCODE BASED ON SM10 MICROCODE VERSION 510 ; 61 ;2 UPDATE TO KS10 VERSION 512 ; 62 ;3 FIX SOME DEFAULTS ; 63 ;4 CHANGE HARDWARE TO MATCH ECO #215 ; 64 ;5 START TO UPDATE IO MICROCODE ; 65 ;6 MORE WORK ON IO ; 66 ;7 MAKE INTERRUPT THE 8080 BE A PULSE. ; 67 ;10 ADD NEW RDIO AND WRIO ; 68 ;11 FIX PROBLEMS IN MUUO CODE & CORRECT T-FIELDS ; 69 ;12 FIX PROBLEMS IN DDIV ; 70 ;13 FIX UP PROBLEMS IN PI ; 71 ;14 TURN ON WRITE FOR FL-EXIT ; 72 ;15 FIX UP MAP INSTRUCTION ; 73 ;16 MORE WORK ON KI-STYLE MAP ; 74 ;17 INVERT HOLD RIGHT AND HOLD LEFT BITS ; 75 ;20 FIXUP WRIO & RDIO EFFECTIVE ADDRESS CALC. ; 76 ;21 FIX EDIT 15 ; 77 ;22 HAVE LSH USE FAST SHIFT HARDWARE ; 78 ;23 FIX T-FIELD VALUES FOR PRODUCTION HARDWARE ; 79 ;24 REMOVE WRITE TEST FROM IO READS & WRITES ; 80 ;25 REWRITE MUL & MULI TO BE FASTER AND SMALLER. ALSO MAKE ADJBP ; 81 ; USE NEW MULSUB ; 82 ;26 MAKE BYTES USE FAST SHIFT ECO. ; 83 ;27 MAKE SURE VMA FETCH IS CORRECT ; 84 ;30 MORE OF 25 (FORGOT FMP) ; 85 ;31 FIX SOME PROBLEMS WITH TRAPS ; 86 ;32 SPEED UP EFFECTIVE ADDRESS CALCULATION ; 87 ;33 MORE OF 32 ; 88 ;34 SPEED UP ASH & ROT ; 89 ;35 FIX UP RDTIM SO THAT TIME DOES NOT GO BACKWARDS ; 90 ;36 MORE OF 35 ; 91 ;37 FIX UP PROBLEMS WITH INTERRUPTS AND DOUBLE F.P. ; 92 ;40 IMPROVE LISTING FORMAT ; 93 ;41 SPEEDUP KL-MODE PAGE REFILL ; 94 ;42 FIX UP DDIV ; 95 ;43 STILL MORE DDIV STUFF ; 96 ;44 CORRECT PROBLEMS IN D.P. PARITY STUFF ; 97 ;45 CORRECT THE BLT CLEAR-CORE CASE TO INTERRUPT CORRECTLY ; 98 ;46 MORE OF 45 ; 99 ;47 DO NOT ALLOW SOFTWARE INTERRUPTS IF THE PI LEVEL IS NOT ; 100 ; ACTIVE. ; 101 ;50 MAKE FDV WORK THE SAME AS THE KL10 ; 102 ;51 FIX INTERRUPT IN CVTBDX. MAKE ABORT WORK LIKE SPEC. ; 103 ;52 FIX BUG IN HALT LOOP ; 104 ;53 FIX IOEA TO WORK IF NO @ OR INDEXING ; 105 ;54 EDIT 47 BROKE JEN ; 106 ;55 FIX FLAGS IN MULTIPLY. ALSO CODE BUMS ; 107 ;56 MORE CODE BUMS ; 108 ;57 CORRECT OVERFLOW TRAPS WHICH DO MUUOS TO NOT STORE ; 109 ; THE TRAP FLAGS. ; 110 ; KS10.MCR[7,3] 15:03 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 ; 111 ;60 CORRECT TRAPS SO THAT DSKEA RUNS RIGHT ; 112 ;61 MORE OF 60. NOTE: MICROCODE REQUIRES ECO #299!! ; 113 ;62 ONE MORE TRY AT EDIT 60. ; 114 ;63 CORRECT TOPS-10 STYLE PAGING SO THAT A WRITE VIOLATION SETS ; 115 ; BIT 2 IN THE PAGE FAIL WORD (ACCESS ALLOWED). ; 116 ;64 EDIT 63 BROKE HARD PAGE FAILS. (NXM, BAD DATA, AND IO NXM) ; 117 ;65 INTERRUPTS OUT OF MOVSRJ INSTRUCTIONS DO STRANGE THINGS. ; 118 ;66 IO NXM PAGE FAIL FOR MISSING UBA GIVES PC+1 IN PAGE FAIL BLOCK. ; 119 ;67 ON A BAD DATA ERROR, STORE THE BAD WORD IN AC BLOCK 7 WORD 0 AND ; 120 ; 1 ; 121 ;70 FIX A BUG WHICH CAUSED INTERRUPTS OUT OF CVTBDT TO GENERATE A BAD ; 122 ; ANSWER. ; 123 ;71 CLEANUP SOME THINGS TO MAKE LIFE EASIER FOR FIELD SERVICE ; 124 ;72 LOOK FOR 1-MS TRAP ON @ PAGE POINTERS AND ABORT REFILL IF ; 125 ; SET. ; 126 ;73 CORRECT EDIT 72. ; 127 ;74 EDIT 67 GENERATES A DATA PATH PARITY ERROR BECAUSE OF THE BAD ; 128 ; DATA. CORRECT TO NOT CHECK PARITY. ; 129 ; ALSO CHANGE POP TO TIE UP BUS LESS. ; 130 ;75 EDIT 60 BROKE TRAPS. MISSING =0 AT TRAP:. ; 131 ;76 CORRECT BUG IN DFAD AND DFSB ; 132 ;77 FIX PROBLEM SEEN IN SOME (ALL BUT ENGINEERING?) MACHINES CAUSED ; 133 ; BY EDIT 76 ; 134 ;100 CHANGE DFAD/DFSB TO HAVE 2 MORE GUARD BITS. THIS SHOULD PRODUCE ; 135 ; KL10 ANSWERS FOR ALL NORMALIZED INPUTS ; 136 ; ALSO FIX A BUG IN CVTBDX PAGE FAIL LOGIC. ; 137 ;101 DFDV OF 0.0 / -0.5 HANGS THE MACHINE ; 138 ;102 FIX CHOPPED FLOATING POINT INSTRUCTIONS ; 139 ;103 CORRECT DFDV ROUNDING BUG. ; 140 ;104 CORRECT PROBLEMS IN DFMP ; 141 ;105 RDTIME SOMETIMES GIVES WRONG ANSWER. CARRY BETWEEN ; 142 ; WORDS GETS LOST SOMETIME. ; 143 ;106 MOVEM (ALSO, SETZM, SETOM, ETC.) SOMETIMES DOES NOT GENERATE ; 144 ; A WRITE-TRAP IN 100% OF THE CASES THAT IT SHOULD. ; 145 ;107 PXCT 14, DOES NOT GET THE INDEX REGISTER IN THE PREVIOUS ; 146 ; CONTEXT ALL THE TIME. ; 147 ;110 FIX TYPO IN EDIT 103 ; 148 ;111 63. BIT BYTES DO NOT WORK CORRECTLY. DSKDA FAILS BECAUSE OF THIS ; 149 ; PROBLEM. ; 150 ;******* VERSION 111 WENT OUT WITH SYSTEM REV 2 ******* ; 151 ; 152 ;112 FIX COMMENT IN TEST INSTRUCTIONS ; 153 ;113 CORRECT IOEA TO COMPUTE CORRECT ADDRESS IF JUST LOCAL INDEXING ; 154 ; IS USED. ; 155 ;114 CORRECT INTERRUPT BUG IN DMUL ; 156 ;115 CORRECT COMMENTS HALT STATUS BLOCK ; 157 ;116 CORRECT PROBLEM WHERE CST MODIFIED BIT GETS SET BY MISTAKE. ; 158 ;117 RDINT INSTRUCTION DOES NOT WORK AT ALL. IT STORES RANDOM TRASH ; 159 ; IN THE WRONG PLACE. NEED TO LOAD BR NOT AR. ; 160 ;120 FLOATING POINT OPERATIONS SOMETIMES GET THE WRONG RESULT WITH ; 161 ; INPUTS OF UNNORMALIZED ZEROS. THIS SHOULD NEVER HAPPEN WITH ; 162 ; FORTRAN OR ANY OTHER DEC LANGUAGE. ; 163 ;121 PREVENT KEEP-ALIVE CRASHES FROM OCCURRING BECAUSE THE MOVSRJ ; 164 ; INSTRUCTION CAN LOCK OUT THE 1MS TIMER INTERRUPTS FROM BEING ; 165 ; HANDLED. THIS CAUSES THE OPERATING SYSTEM TO LOSE TRACK OF THE ; 166 ; PASSAGE OF TIME. ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 6-1 ; KS10.MIC[7,3] 14:54 7-JAN-1986 REVISION HISTORY ; 167 ;122 DFAD FOLLOWED BY A FSC OF -5 CAUSES THE FSC TO GET WRONG ; 168 ; ANSWER. HAD TO CLEAR FLAG WORD AT EXIT OF DFAD TO FIX PROBLEM ; 169 ;123 MORE CODE FOR EDIT 121. ADDED ANOTHER DISPATCH ADDRESS FOR ; 170 ; PAGE FAIL CODE AT PFD:. ; 171 ;124 ADD ASSEMBLY OPTIONS FOR NOCST AND INHIBIT CST UPDATE. ; 172 ; ADD BLTUB/BLTBU TO GET UBA STYLE BYTES SWAPPED TO/FROM ILDB FORM. ; 173 ; ADD ASSEMBLY OPTIONS FOR KI/KL PAGE. NEED THE SPACE FOR BLTUB/BU. ; 174 ;125 SUPPORT THE "MAJOR/MINOR VERSION IN 136" UCODE STANDARD. ; 175 ; FIX BAD CONSTRAINT FOR INHCST ASSEMBLIES (NOT CURRENTLY USED) ; 176 ;126 FIX NON-TRIVIAL CASES OF RDUBR,WRUBR, AND PROCESS CONTEXT WORD. ; 177 ;127 JSR IN A TRAP CYCLE STORES E+1 SOMETIMES. TRAP CYCLE WAS NOT BEING ; 178 ; CLEARED (BY NICOND) BEFORE STARTING THE NEXT MEMORY READ. ; 179 ;130 FIX UCODE HANG WITH STOPPPED CLOCKS ON WR (KL-PAGING REGISTER) IF ; 180 ; PAGING IS ON. IDEALLY, WE WOULD REMOVE WRITE TEST FROM THE DROM ; 181 ; FIELD, BUT IT'S TOO LATE TO ECO THE ROMS. ; 182 ; RESTRICTION: WRITE KLPAGE REGISTER LOCATION MUST BE WRITABLE. ; 183 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 7 ; KS10.MIC[7,3] 14:54 7-JAN-1986 HOW TO READ THE MICROCODE ; 184 .TOC "HOW TO READ THE MICROCODE" ; 185 ; 186 ; ; 187 ; ; 188 ; 1.0 FIELD DEFINITIONS ; 189 ; ; 190 ; THESE OCCUR AT THE BEGINNING OF THE LISTING, IN THE SOURCE FILE KS10.MIC ; 191 ; (CONTROL AND DISPATCH RAM DEFINITIONS). THEY HAVE THE FORM: ; 192 ; ; 193 ; SYMBOL/=M,J ; 194 ; ; 195 ; THE PARAMETER (J) IS MEANINGFUL WHEN "D" IS SPECIFIED AS THE DEFAULT MECHANISM, ; 196 ; AND IN THAT CASE, GIVES THE DEFAULT VALUE OF THE FIELD IN OCTAL. WHEN "F" IS ; 197 ; SPECIFIED AS THE DEFAULT MECHANISM, (J) IS THE NAME OF A FIELD WHICH CONTAINS ; 198 ; THE DEFAULT VALUE FOR THIS FIELD. ; 199 ; ; 200 ; THE PARAMETER (L) GIVES THE BIT POSITION OF THE LEFTMOST BIT IN THE FIELD. THE ; 201 ; SAME METHOD IS USED AS FOR (R) BELOW. ; 202 ; ; 203 ; THE PARAMETER (R) GIVES THE FIELD POSITION IN DECIMAL AS THE BIT NUMBER OF THE ; 204 ; RIGHTMOST BIT OF THE FIELD. BITS ARE NUMBERED FROM 0 ON THE LEFT. NOTE THAT ; 205 ; THE POSITION OF BITS IN THE MICROWORD SHOWN IN THE LISTING BEARS NO RELATION TO ; 206 ; THE ORDERING OF BITS IN THE HARDWARE MICROWORD, WHERE FIELDS ARE OFTEN BROKEN UP ; 207 ; AND SCATTERED. ; 208 ; ; 209 ; THE PARAMETER (M) IS OPTIONAL, AND SELECTS A DEFAULT MECHANISM FOR THE FIELD. ; 210 ; THE LEGAL VALUES OF THIS PARAMETER ARE THE CHARACTERS "D", "F", "T", "P", OR ; 211 ; "+". ; 212 ; ; 213 ; "D" MEANS (J) IS THE DEFAULT VALUE OF THE FIELD IF NO EXPLICIT VALUE IS ; 214 ; SPECIFIED. ; 215 ; ; 216 ; "F" IS USED TO CAUSE THIS FIELD TO DEFAULT TO SOME OTHER FIELD. ; 217 ; ; 218 ; "T" IS USED ON THE TIME FIELD TO SPECIFY THAT THE VALUE OF THE FIELD ; 219 ; DEPENDS ON THE TIME PARAMETERS SELECTED FOR OTHER FIELDS. "T" IS NOT ; 220 ; USED IN THE KS10. ; 221 ; ; 222 ; "P" IS USED ON THE PARITY FIELD TO SPECIFY THAT THE VALUE OF THE FIELD ; 223 ; SHOULD DEFAULT SUCH THAT PARITY OF THE ENTIRE WORD IS ODD. "P" IS NOT ; 224 ; USED ON THE KS10. ; 225 ; ; 226 ; "+" IS USED ON THE JUMP ADDRESS FIELD TO SPECIFY THAT THE DEFAULT JUMP ; 227 ; ADDRESS IS THE ADDRESS OF THE NEXT INSTRUCTION ASSEMBLED (NOT, IN ; 228 ; GENERAL, THE CURRENT LOCATION +1). ; 229 ; ; 230 ; IN GENERAL, A FIELD CORRESPONDS TO THE SET OF BITS WHICH PROVIDE SELECT INPUTS ; 231 ; FOR MIXERS OR DECODERS, OR CONTROLS FOR ALU'S. ; 232 ; ; 233 ; ; 234 ; KS10.MCR[7,3] 15:03 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 ; 235 ; 2.0 VALUE DEFINITIONS ; 236 ; ; 237 ; FOLLOWING A FIELD DEFINITION, SYMBOLS MAY BE CREATED IN THAT FIELD TO CORRESPOND ; 238 ; TO VALUES OF THE FIELD. THE FORM IS: ; 239 ; ; 240 ; SYMBOL=N ; 241 ; ; 242 ; "N" IS, IN OCTAL, THE VALUE OF SYMBOL WHEN USED IN THE FIELD. ; 243 ; ; 244 ; ; 245 ; ; 246 ; 3.0 LABEL DEFINITIONS ; 247 ; ; 248 ; A MICRO INSTRUCTION MAY BE LABELLED BY A SYMBOL FOLLOWED BY COLON PRECEDING THE ; 249 ; MICROINSTRUCTION DEFINITION. THE ADDRESS OF THE MICROINSTRUCTION BECOMES THE ; 250 ; VALUE OF THE SYMBOL IN THE FIELD NAMED "J". EXAMPLE: ; 251 ; ; 252 ; FOO: J/FOO ; 253 ; ; 254 ; THIS IS A MICROINSTRUCTION WHOSE "J" FIELD (JUMP ADDRESS) CONTAINS THE VALUE ; 255 ; "FOO". IT ALSO DEFINES THE SYMBOL "FOO" TO BE THE ADDRESS OF ITSELF. ; 256 ; THEREFORE, IF EXECUTED BY THE MICROPROCESSOR, IT WOULD LOOP ON ITSELF. ; 257 ; ; 258 ; ; 259 ; ; 260 ; 4.0 COMMENTS ; 261 ; ; 262 ; A SEMICOLON ANYWHERE ON A LINE CAUSES THE REST OF THE LINE TO BE IGNORED BY THE ; 263 ; ASSEMBLER. THIS TEXT IS AN EXAMPLE OF COMMENTS. ; 264 ; ; 265 ; ; 266 ; ; 267 ; 5.0 MICROINSTRUCTION DEFINITION ; 268 ; ; 269 ; A WORD OF MICROCODE IS DEFINED BY SPECIFYING A FIELD NAME, FOLLOWED BY SLASH ; 270 ; (/), FOLLOWED BY A VALUE. THE VALUE MAY BE A SYMBOL DEFINED FOR THAT FIELD, AN ; 271 ; OCTAL DIGIT STRING, OR A DECIMAL DIGIT STRING (DISTINGUISHED BY THE FACT THAT IT ; 272 ; CONTAINS "8" AND/OR "9" AND/OR IS TERMINATED BY A PERIOD). SEVERAL FIELDS MAY ; 273 ; BE SPECIFIED IN ONE MICROINSTRUCTION BY SEPARATING FIELD/VALUE SPECIFICATIONS ; 274 ; WITH COMMAS. EXAMPLE: ; 275 ; ; 276 ; AD/ZERO,RAMADR/AC*#,ACALU/AC+N,ACN/1,DBUS/DP ; 277 ; ; 278 ; ; 279 ; 6.0 CONTINUATION ; 280 ; ; 281 ; THE DEFINITION OF A MICROINSTRUCTION MAY CONTINUED ONTO TWO OR MORE LINES BY ; 282 ; BREAKING IT AFTER ANY COMMA. IN OTHER WORDS, IF THE LAST NON-BLANK, NON-COMMENT ; 283 ; CHARACTER ON A LINE IS A COMMA, THE INSTRUCTION SPECIFICATION IS CONTINUED ON ; 284 ; KS10.MCR[7,3] 15:03 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 ; 285 ; THE FOLLOWING LINE. EXAMPLE: ; 286 ; READ [AR], ;LOOK AT EFFECTIVE ADDRESS ; 287 ; SKIP DP18, ;SEE IF RIGHT OR LEFT SHIFT ; 288 ; SC_SHIFT-1, ;PUT NUMBER OF PLACE TO ; 289 ; ;SHIFT IN SC ; 290 ; LOAD FE, ; AND IN FE ; 291 ; INST DISP ;GO DO THE SHIFT ; 292 ; ; 293 ; ; 294 ; ; 295 ; 7.0 MACROS ; 296 ; ; 297 ; A MACRO IS A SYMBOL WHOSE VALUE IS ONE OR MORE FIELD/VALUE SPECIFICATIONS AND/OR ; 298 ; MACROS. A MACRO DEFINITION IS A LINE CONTAINING THE MACRO NAME FOLLOWED BY A ; 299 ; QUOTED STRING WHICH IS THE VALUE OF THE MACRO. EXAMPLE: ; 300 ; ; 301 ; LOAD VMA "MEM/1, LDVMA/1 ; 302 ; ; 303 ; THE APPEARANCE OF A MACRO IN A MICROINSTRUCTION DEFINITION IS EQUIVALENT TO THE ; 304 ; APPEARANCE OF ITS VALUE. ; 305 ; ; 306 ; MACRO MAY HAVE PARAMETERS ENCLOSED IN []. FOR EXAMPLE, ; 307 ; ; 308 ; []_[] "AD/A,A/@2,DEST/AD,B/@1" ; 309 ; ; 310 ; THE @1 GETS REPLACED BY WHAT IS WRITTEN IN THE FIRST SET OF [] AND @2 IS ; 311 ; REPLACED BY WHAT IS WRITTEN IN THE SECOND SET OF []. THUS ; 312 ; ; 313 ; [AR]_[ARX] ; 314 ; ; 315 ; HAS THE SAME EFFECT AS SAYING ; 316 ; ; 317 ; AD/A,A/ARX,DEST/AD,B/AR ; 318 ; ; 319 ; ; 320 ; SEE DESCRIPTION OF RULES FOR MACRO NAMES. ; 321 ; ; 322 ; 8.0 PSEUDO OPS ; 323 ; ; 324 ; THE MICRO ASSEMBLER HAS 13 PSEUDO-OPERATORS: ; 325 ; ; 326 ; .DCODE AND .UCODE SELECT THE RAM INTO WHICH SUBSEQUENT MICROCODE WILL BE ; 327 ; LOADED, AND THEREFORE THE FIELD DEFINITIONS AND MACROS WHICH ARE ; 328 ; MEANINGFUL IN SUBSEQUENT MICROCODE ; 329 ; .TITLE DEFINES A STRING OF TEXT TO APPEAR IN THE PAGE HEADER, AND ; 330 ; .TOC DEFINES AN ENTRY FOR THE TABLE OF CONTENTS AT THE BEGINNING. ; 331 ; .SET DEFINES THE VALUE OF A CONDITIONAL ASSEMBLY PARAMETER, ; 332 ; .CHANGE REDEFINES A CONDITIONAL ASSEMBLY PARAMETER, ; 333 ; .DEFAULT ASSIGNS A VALUE TO AN UNDEFINED PARAMETER. ; 334 ; .IF ENABLES ASSEMBLY IF THE VALUE OF THE PARAMETER IS NOT ZERO, ; 335 ; .IFNOT ENABLES ASSEMBLY IF THE PARAMETER VALUE IS ZERO, AND ; 336 ; .ENDIF RE-ENABLES ASSEMBLY IF SUPPRESSED BY THE PARAMETER NAMED. ; 337 ; .NOBIN TURNS OFF THE BINARY A GETS RID OF THE SPACE USED TO LIST IT, ; 338 ; .BIN TURN BINARY BACK ON AGAIN. ; 339 ; .WIDTH CONTROLS THE NUMBER OF BITS IN THE CRAM ; 340 ; KS10.MCR[7,3] 15:03 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 ; 341 ; 9.0 LOCATION CONTROL ; 342 ; ; 343 ; A MICROINSTRUCTION "LABELLED" WITH A NUMBER IS ASSIGNED TO THAT ADDRESS. ; 344 ; ; 345 ; THE CHARACTER "=" AT THE BEGINNING OF A LINE, FOLLOWED BY A STRING OF 0'S, 1'S, ; 346 ; AND/OR *'S, SPECIFIES A CONSTRAINT ON THE ADDRESS OF FOLLOWING ; 347 ; MICROINSTRUCTIONS. THE NUMBER OF CHARACTERS IN THE CONSTRAINT STRING (EXCLUDING ; 348 ; THE "=") IS THE NUMBER OF LOW-ORDER BITS CONSTRAINED IN THE ADDRESS. THE ; 349 ; MICROASSEMBLER ATTEMPTS TO FIND AN UNUSED LOCATION WHOSE ADDRESS HAS 0 BITS IN ; 350 ; THE POSITIONS CORRESPONDING TO 0'S IN THE CONSTRAINT STRING AND 1 BITS WHERE THE ; 351 ; CONSTRAINT HAS 1'S. ASTERISKS DENOTE "DON'T CARE" BIT POSITIONS. ; 352 ; ; 353 ; IF THERE ARE ANY 0'S IN THE CONSTRAINT STRING, THE CONSTRAINT IMPLIES A BLOCK OF ; 354 ; <2**N> MICROWORDS, WHERE N IS THE NUMBER OF 0'S IN THE STRING. ALL LOCATIONS IN ; 355 ; THE BLOCK WILL HAVE 1'S IN THE ADDRESS BITS CORRESPONDING TO 1'S IN THE STRING, ; 356 ; AND BIT POSITIONS DENOTED BY *'S WILL BE THE SAME IN ALL LOCATIONS OF THE BLOCK. ; 357 ; ; 358 ; IN SUCH A CONSTRAINT BLOCK, THE DEFAULT ADDRESS PROGRESSION IS COUNTING IN THE ; 359 ; "0" POSITIONS OF THE CONSTRAINT STRING, BUT A NEW CONSTRAINT STRING OCCURING ; 360 ; WITHIN A BLOCK MAY FORCE SKIPPING OVER SOME LOCATIONS OF THE BLOCK. WITHIN A ; 361 ; BLOCK, A NEW CONSTRAINT STRING DOES NOT CHANGE THE PATTERN OF DEFAULT ADDRESS ; 362 ; PROGRESSION, IT MERELY ADVANCES THE LOCATION COUNTER OVER THOSE LOCATIONS. THE ; 363 ; MICROASSEMBLER WILL LATER FILL THEM IN. ; 364 ; ; 365 ; A NULL CONSTRAINT STRING ("=" FOLLOWED BY ANYTHING BUT "0", "1", OR "*") SERVES ; 366 ; TO TERMINATE A CONSTRAINT BLOCK. EXAMPLES: ; 367 ; ; 368 ; =0 ; 369 ; ; 370 ; THIS SPECIFIES THAT THE LOW-ORDER ADDRESS BIT MUST BE ZERO-- THE MICROASSEMBLER ; 371 ; FINDS AN EVEN-ODD PAIR OF LOCATIONS, AND PUTS THE NEXT TWO MICROINSTRUCTIONS ; 372 ; INTO THEM. ; 373 ; ; 374 ; =11 ; 375 ; THIS SPECIFIES THAT THE TWO LOW-ORDER BITS OF THE ADDRESS MUST BOTH BE ONES. ; 376 ; SINCE THERE ARE NO 0'S IN THIS CONSTRAINT, THE ASSEMBLER FINDS ONLY ONE LOCATION ; 377 ; MEETING THE CONSTRAINT. ; 378 ; ; 379 ; =0***** ; 380 ; ; 381 ; THIS SPECIFIES AN ADDRESS IN WHICH THE "40" BIT IS ZERO. DUE TO THE ; 382 ; IMPLEMENTATION OF THIS FEATURE IN THE ASSEMBLER, THE DEFAULT ADDRESS PROGRESSION ; 383 ; APPLIES ONLY TO THE LOW-ORDER 5 BITS, SO THIS CONSTRAINT FINDS ONE WORD IN WHICH ; 384 ; THE "40" BIT IS ZERO, AND DOES NOT ATTEMPT TO FIND ONE IN WHICH THAT BIT IS A ; 385 ; ONE. THIS LIMITATION HAS BEEN CHANGED WITH NEWER ASSEMBLER VERSIONS. HOWEVER ; 386 ; NONE OF THE LOCATIONS IN THE MICROCODE REQUIRE ANYTHING BUT THE CONSTRAINT ; 387 ; MENTIONED ABOVE. ; 388 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 11 ; KS10.MIC[7,3] 14:54 7-JAN-1986 CONDITIONAL ASSEMBLY DEFINITIONS ; 389 .TOC "CONDITIONAL ASSEMBLY DEFINITIONS" ; 390 ; 391 .DEFAULT/SIM=0 ;0=RUN ON REAL HARDWARE ; 392 ;1=RUN UNDER SIMULATOR ; 393 ; 394 .DEFAULT/FULL=1 ;0=INCLUDE ONLY BASIC INSTRUCTIONS ; 395 ;1=INCLUDE FULL INSTRUCTION SET ; 396 ; 397 .DEFAULT/INHCST=0 ;0=NO CODE TO INHIBIT CST UPDATE IF CSB=0 ; 398 ;1=DON'T UPDATE CST IF CSB=0 ; 399 ; 400 .DEFAULT/NOCST=0 ;0=INCLUDE SUPPORT FOR WRITING THE CST ; 401 ;1=COMPLETELY DESUPPORT CST (FOR TOPS-10) ; 402 ; 403 .DEFAULT/UBABLT=0 ;0=NO UBABLT SUPPORT ; 404 ;1=SUPPORT UBA STYLE BLT INSTRUCTIONS. ; 405 ; 406 .DEFAULT/KIPAGE=1 ;0=DON'T SUPPORT KI PAGING ; 407 ;1=DO ; 408 ; 409 .DEFAULT/KLPAGE=1 ;0=DON'T SUPPORT KL PAGING ; 410 ;1=DO ; 411 ;;412 .IF/UBABLT ;THESE INSTRUCTIONS ;;413 .IF/KLPAGE ;;414 .CHANGE/KIPAGE=0 ;;415 .ENDIF/KLPAGE ;;416 .IF/KIPAGE ;ALLOW ONLY ONE PAGING MODE ;;417 .CHANGE/KLPAGE=0 ;;418 .ENDIF/KIPAGE ; 419 .ENDIF/UBABLT ;OTHERWISE, MAY HAVE EITHER OR BOTH ; 420 ;;421 .IF/NOCST ;;422 .CHANGE/INHCST=0 ; 423 .ENDIF/NOCST ; 424 ; 425 .DEFAULT/NONSTD=0 ;0=STANDARD MICROCODE ; 426 ;1=NON-STANDARD MICROCODE ; 427 ; 428 .WIDTH/108 ;ONLY FIELDS BETWEEN BITS 0 AND 107 EVER ; 429 ; GET LOADED INTO THE CRAM. OTHER FIELDS ; 430 ; ARE USED FOR DEFAULTING PROCESS. ; 431 ; 432 .REGION/0,1377/2000,3777/1400,1777 ; 433 ;TRY AND KEEP STUFF OUT OF DROM SPACE ; 434 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 12 ; KS10.MIC[7,3] 14:54 7-JAN-1986 2901 REGISTER USAGE ; 435 .TOC "2901 REGISTER USAGE" ; 436 ; 437 ; !=========================================================================! ; 438 ;0: ! MAG (ONES IN BITS 1-36, REST ZERO) ! ; 439 ; !-------------------------------------------------------------------------! ; 440 ;1: ! PC (ADDRESS OF CURRENT INSTRUCTION + 1) ! ; 441 ; !-------------------------------------------------------------------------! ; 442 ;2: ! HR (CURRENT INSTRUCTION) ! ; 443 ; !-------------------------------------------------------------------------! ; 444 ;3: ! AR (TEMP -- MEM OP AT INST START) ! ; 445 ; !-------------------------------------------------------------------------! ; 446 ;4: ! ARX (TEMP -- LOW ORDER HALF OF DOUBLE PREC) ! ; 447 ; !-------------------------------------------------------------------------! ; 448 ;5: ! BR (TEMP) ! ; 449 ; !-------------------------------------------------------------------------! ; 450 ;6: ! BRX (TEMP -- LOW ORDER HALF OF DOUBLE PREC BR!BRX) ! ; 451 ; !-------------------------------------------------------------------------! ; 452 ;7: ! ONE (THE CONSTANT 1) ! ; 453 ; !-------------------------------------------------------------------------! ; 454 ;10: ! EBR (EXEC BASE REGISTER) ! ; 455 ; !-------------------------------------------------------------------------! ; 456 ;11: ! UBR (USER BASE REGISTER) ! ; 457 ; !-------------------------------------------------------------------------! ; 458 ;12: ! MASK (ONES IN BITS 0-35, ZERO IN -1, -2, 36 AND 37) ! ; 459 ; !-------------------------------------------------------------------------! ; 460 ;13: ! FLG (FLAG BITS) ! PAGE FAIL CODE ! ; 461 ; !-------------------------------------------------------------------------! ; 462 ;14: ! PI (PI SYSTEM STATUS REGISTER [RDPI]) ! ; 463 ; !-------------------------------------------------------------------------! ; 464 ;15: ! XWD1 (1 IN EACH HALF WORD) ! ; 465 ; !-------------------------------------------------------------------------! ; 466 ;16: ! T0 (TEMP) ! ; 467 ; !-------------------------------------------------------------------------! ; 468 ;17: ! T1 (TEMP) ! ; 469 ; !=========================================================================! ; 470 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 13 ; KS10.MIC[7,3] 14:54 7-JAN-1986 MICROCODE FIELDS -- LISTING FORMAT ; 471 .TOC "MICROCODE FIELDS -- LISTING FORMAT" ; 472 ; 473 ; ; 3633 1561: ; 474 ; ; 3634 SUB: [AR]_AC-[AR], ; 475 ; ; 3635 AD FLAGS, 3T, ; 476 ; U 1561, 1500,2551,0303,0274,4463,7701,4200,0001,0001 ; 3636 EXIT ; 477 ; [--] [--] !!!! [][] !!![-][][-][]! !!! [----] ; 478 ; ! ! !!!! ! ! !!!! ! ! ! ! !!! ! ; 479 ; ! ! !!!! ! ! !!!! ! ! ! ! !!! +---- # (MAGIC NUMBER) ; 480 ; ! ! !!!! ! ! !!!! ! ! ! ! !!! ; 481 ; ! ! !!!! ! ! !!!! ! ! ! ! !!+------------- MULTI PREC, MULTI SHIFT, CALL (4S, 2S, 1S) ; 482 ; ! ! !!!! ! ! !!!! ! ! ! ! !! ; 483 ; ! ! !!!! ! ! !!!! ! ! ! ! !+-------------- FM WRITE, MEM, DIVIDE (4S, 2S, 1S) ; 484 ; ! ! !!!! ! ! !!!! ! ! ! ! ! ; 485 ; ! ! !!!! ! ! !!!! ! ! ! ! +--------------- CRY38, LOAD SC, LOAD FE (4S, 2S, 1S) ; 486 ; ! ! !!!! ! ! !!!! ! ! ! ! ; 487 ; ! ! !!!! ! ! !!!! ! ! ! +----------------- T ; 488 ; ! ! !!!! ! ! !!!! ! ! ! ; 489 ; ! ! !!!! ! ! !!!! ! ! +------------------- SKIP ; 490 ; ! ! !!!! ! ! !!!! ! ! ; 491 ; ! ! !!!! ! ! !!!! ! +---------------------- DISP ; 492 ; ! ! !!!! ! ! !!!! ! ; 493 ; ! ! !!!! ! ! !!!! +------------------------ SPEC ; 494 ; ! ! !!!! ! ! !!!! ; 495 ; ! ! !!!! ! ! !!!+--------------------------- CLOCKS & PARITY (CLKR, GENR, CHKR, CLKL, GENL, CHKL) ; 496 ; ! ! !!!! ! ! !!! ; 497 ; ! ! !!!! ! ! !!+---------------------------- DBM ; 498 ; ! ! !!!! ! ! !! ; 499 ; ! ! !!!! ! ! !+----------------------------- DBUS ; 500 ; ! ! !!!! ! ! ! ; 501 ; ! ! !!!! ! ! +------------------------------ RAM ADDRESS ; 502 ; ! ! !!!! ! ! ; 503 ; ! ! !!!! ! +--------------------------------- B ; 504 ; ! ! !!!! ! ; 505 ; ! ! !!!! +----------------------------------- A ; 506 ; ! ! !!!! ; 507 ; ! ! !!!+------------------------------------- DEST ; 508 ; ! ! !!! ; 509 ; ! ! !!+-------------------------------------- RSRC ; 510 ; ! ! !! ; 511 ; ! ! !+--------------------------------------- LSRC ] ; 512 ; ! ! ! ] - AD ; 513 ; ! ! +---------------------------------------- ALU ] ; 514 ; ! ! ; 515 ; ! +--------------------------------------------- J ; 516 ; ! ; 517 ; LOCATION OF THIS MICRO WORD ; 518 ; KS10.MCR[7,3] 15:03 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 -- DATAPATH CHIP ; 519 .TOC "MICROCODE FIELDS -- DATAPATH CHIP" ; 520 ; 521 J/=<0:11>+ ;CRA1 ; 522 ;NEXT MICROCODE ADDRESS ; 523 ; 524 ;ALU FUNCTIONS ; 525 ; 526 ;NOTE: THE AD FIELD IS A 2 DIGIT FIELD. THE LEFT DIGIT IS THE ; 527 ; 2901 ALU FUNCTION. THE RIGHT DIGIT IS THE 2901 SRC CODE FOR ; 528 ; THE LEFT HALF. NORMALY THE RIGHT HALF SRC CODE IS THE SAME AS ; 529 ; THE LEFT HALF. ; 530 AD/=<12:17>D,44 ;DPE1 & DPE2 ; 531 A+Q=00 ; 532 A+B=01 ; 533 0+Q=02 ; 534 0+B=03 ; 535 0+A=04 ; 536 D+A=05 ; 537 D+Q=06 ; 538 0+D=07 ; 539 Q-A-.25=10 ; 540 B-A-.25=11 ; 541 Q-.25=12 ; 542 B-.25=13 ; 543 A-.25=14 ; 544 A-D-.25=15 ; 545 Q-D-.25=16 ; 546 -D-.25=17 ; 547 A-Q-.25=20 ; 548 A-B-.25=21 ; 549 -Q-.25=22 ; 550 -B-.25=23 ; 551 -A-.25=24 ; 552 D-A-.25=25 ; 553 D-Q-.25=26 ; 554 D-.25=27 ; 555 A.OR.Q=30 ; 556 A.OR.B=31 ; 557 Q=32 ; 558 B=33 ; 559 A=34 ; 560 D.OR.A=35 ; 561 D.OR.Q=36 ; 562 D=37 ; 563 A.AND.Q=40 ; 564 A.AND.B=41 ; 565 ; KS10.MCR[7,3] 15:03 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 ; 566 ;MORE ALU FUNCTIONS ; 567 ; 568 ZERO=42 ; 569 ; ZERO=43 ; 570 ; ZERO=44 ; 571 D.AND.A=45 ; 572 D.AND.Q=46 ; 573 ; ZERO=47 ; 574 .NOT.A.AND.Q=50 ; 575 .NOT.A.AND.B=51 ; 576 ; Q=52 ; 577 ; B=53 ; 578 ; A=54 ; 579 .NOT.D.AND.A=55 ; 580 .NOT.D.AND.Q=56 ; 581 ; ZERO=57 ; 582 A.XOR.Q=60 ; 583 A.XOR.B=61 ; 584 ; Q=62 ; 585 ; B=63 ; 586 ; A=64 ; 587 D.XOR.A=65 ; 588 D.XOR.Q=66 ; 589 ; D=67 ; 590 A.EQV.Q=70 ; 591 A.EQV.B=71 ; 592 .NOT.Q=72 ; 593 .NOT.B=73 ; 594 .NOT.A=74 ; 595 D.EQV.A=75 ; 596 D.EQV.Q=76 ; 597 .NOT.D=77 ; 598 ; 599 ;THIS FIELD IS THE RIGHTMOST 3 BITS OF THE ; 600 ; AD FIELD. IT IS USED ONLY TO DEFAULT THE RSRC ; 601 ; FIELD. ; 602 LSRC/=<15:17> ;DPE1 ; 603 ; 604 ;THIS IS THE SOURCE FOR THE RIGHT HALF OF THE ; 605 ; DATA PATH. IT LETS US MAKE THE RIGHT AND LEFT ; 606 ; HALF WORDS DO SLIGHTLY DIFFERENT THINGS. ; 607 RSRC/=<18:20>F,LSRC ;DPE2 ; 608 AQ=0 ;A Q ; 609 AB=1 ;A B ; 610 0Q=2 ;0 Q ; 611 0B=3 ;0 B ; 612 0A=4 ;0 A ; 613 DA=5 ;D A ; 614 DQ=6 ;D Q ; 615 D0=7 ;D 0 ; 616 ; KS10.MCR[7,3] 15:03 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 ; 617 ;DESTINATION CONTROL ; 618 ;SEE DPE1 AND DPE2 (2'S WEIGHT IS INVERTED ON DPE5) ; 619 DEST/=<21:23>D,3 ;DPE1 & DPE2 ; 620 A=0 ;A REG IS CHIP OUTPUT, AD IS WRITTEN ; 621 ; INTO REG FILE ; 622 AD=1 ;REG FILE GETS AD ; 623 Q_AD=2 ;REG FILE IS NOT LOADED ; 624 PASS=3 ;AD OUTPUT IS CHIP OUTPUT ; 625 ; Q AND REG FILE LEFT ALONE ; 626 Q_Q*2=4 ;ALSO REG FILE GETS AD*2 ; 627 AD*2=5 ;AND Q IS LEFT ALONE ; 628 Q_Q*.5=6 ;ALSO REG FILE GETS AD*.5 ; 629 AD*.5=7 ;AND Q IS LEFT ALONE ; 630 ; 631 ; <24:25> ;UNUSED ; 632 ; 633 A/=<26:29> ;DPE1 & DPE2 ; 634 MAG=0 ; 635 PC=1 ; 636 HR=2 ; 637 AR=3 ; 638 ARX=4 ; 639 BR=5 ; 640 BRX=6 ; 641 ONE=7 ; 642 EBR=10 ; 643 UBR=11 ; 644 MASK=12 ; 645 FLG=13 ; 646 PI=14 ; 647 XWD1=15 ; 648 T0=16 ; 649 T1=17 ; 650 ; 651 ; <30:31> ;UNUSED ; 652 ; 653 B/=<32:35>D,0 ;DPE1 & DPE2 ; 654 MAG=0 ; 655 PC=1 ; 656 HR=2 ; 657 AR=3 ; 658 ARX=4 ; 659 BR=5 ; 660 BRX=6 ; 661 ONE=7 ; 662 EBR=10 ; 663 UBR=11 ; 664 MASK=12 ; 665 FLG=13 ; 666 PI=14 ; 667 XWD1=15 ; 668 T0=16 ; 669 T1=17 ; 670 ; KS10.MCR[7,3] 15:03 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 -- RAM FILE ADDRESS AND D-BUS ; 671 .TOC "MICROCODE FIELDS -- RAM FILE ADDRESS AND D-BUS" ; 672 ; 673 RAMADR/=<36:38>D,4 ;DPE6 ; 674 AC#=0 ;AC NUMBER ; 675 AC*#=1 ;AC .FN. # ; 676 XR#=2 ;INDEX REGISTER ; 677 VMA=4 ;VIRTUAL MEMORY REFERENCE ; 678 RAM=6 ;VMA SUPPLIES 10-BIT RAM ADDRESS ; 679 #=7 ;ABSOLUTE RAM FILE REFERENCE ; 680 ; 681 ; <39:39> ; 682 ; 683 ;LEFT HALF ON DPE3 AND RIGHT HALF ON DPE4 ; 684 DBUS/=<40:41>D,1 ;DPE3 & DPE4 ; 685 PC FLAGS=0 ;PC FLAGS IN LEFT HALF ; 686 PI NEW=0 ;NEW PI LEVEL IN BITS 19-21 ; 687 ; VMA=0 ;VMA IN BITS 27-35 ; 688 DP=1 ;DATA PATH ; 689 RAM=2 ;CACHE, AC'S AND WORKSPACE ; 690 DBM=3 ;DBM MIXER ; 691 ; 692 ;LEFT HALF ON DPM1 AND RIGHT HALF ON DPM2 ; 693 DBM/=<42:44>D,7 ;DPM1 & DPM2 ; 694 SCAD DIAG=0 ;(LH) SCAD DIAGNOSTIC ; 695 PF DISP=0 ;PAGE FAIL DISP IN BITS 18-21 ; 696 APR FLAGS=0 ;APR FLAGS IN BITS 22-35 ; 697 BYTES=1 ;5 COPIES OF SCAD 1-7 ; 698 EXP=2 ;LH=EXPONENT, RH=TIME FRACTION ; 699 DP=3 ;DATA PATH ; 700 DP SWAP=4 ;DATA PATH SWAPPED ; 701 VMA=5 ;VMA FLAGS,,VMA ; 702 MEM=6 ;MEMORY BUFFER ; 703 #=7 ;NUMBER FIELD IN BOTH HALVES ; 704 ; KS10.MCR[7,3] 15:03 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 -- PARITY GENERATION & HALF WORD CONTROL ; 705 .TOC "MICROCODE FIELDS -- PARITY GENERATION & HALF WORD CONTROL" ; 706 ; 707 AD PARITY OK/=<108>D,0 ;**NOT STORED IN CRAM** ; 708 ;THIS BIT IS A 1 IF THE ALU IS DOING ; 709 ; SOMETHING WHICH DOES NOT INVALIDATE ; 710 ; PARITY. IT DOES NOT APPEAR IN THE ; 711 ; REAL MACHINE. WE JUST USE IT TO SET ; 712 ; THE DEFAULT FOR GENR & GENL ; 713 ; 714 CLKL/=<45:45>D,1 ;DPE5 ; 715 ;CLOCK THE LEFT HALF OF THE MACHINE ; 716 GENL/=<46:46>F,AD PARITY OK ;DPE4 FROM CRM2 PARITY EN LEFT H ; 717 ;STORE PARITY FOR 2901 LEFT ; 718 CHKL/=<47:47> ;DPE4 FROM CRM2 PARITY CHK LEFT H ; 719 ;CHECK LEFT HALF DBUS PARITY ; 720 ; 721 CLKR/=<48:48>D,1 ;DPE5 ; 722 ;CLOCK THE RIGHT HALF OF THE MACHINE ; 723 GENR/=<49:49>F,AD PARITY OK ;DPE4 FROM CRM2 PARITY EN RIGHT H ; 724 ;STORE PARITY FOR 2901 RIGHT ; 725 CHKR/=<50:50> ;DPE4 FROM CRM2 PARITY CHK RIGHT H ; 726 ;CHECK RIGHT HALF DBUS PARITY ; 727 ; KS10.MCR[7,3] 15:03 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 -- SPEC ; 728 .TOC "MICROCODE FIELDS -- SPEC" ; 729 ; 730 ; 731 ; ; 732 ;THE FOLLOWING SPECIAL FUNCTION ARE DECODED ON DPE1, DPE5, AND DPMA: ; 733 ; !=========================================================================! ; 734 ; !S! EFFECT ! CRA6 SPEC ! CRA6 SPEC ! CRA6 SPEC ! ; 735 ; !P! ON SHIFT ! EN 40 ! EN 20 ! EN 10 ! ; 736 ; !E! PATHS ! E102 ON DPE5 ! E101 ON DPE5 ! E410 ON DPMA ! ; 737 ; !C! (SEE DPE1) ! ! E411 ON DPMA ! E113 ON CRA2 ! ; 738 ; !=========================================================================! ; 739 ; !0! NORMAL ! CRY 18 INH ! PREVIOUS ! # ! ; 740 ; !-------------------------------------------------------------------------! ; 741 ; !1! ZERO ! IR LOAD ! XR LOAD ! CLR 1 MSEC ! ; 742 ; !-------------------------------------------------------------------------! ; 743 ; !2! ONES ! ! ! CLR IO LATCH ! ; 744 ; !-------------------------------------------------------------------------! ; 745 ; !3! ROT ! PI LOAD ! APR FLAGS ! CLR IO BUSY ! ; 746 ; !-------------------------------------------------------------------------! ; 747 ; !4! ASHC ! ASH TEST ! SET SWEEP ! PAGE WRITE ! ; 748 ; !-------------------------------------------------------------------------! ; 749 ; !5! LSHC ! EXP TEST ! APR EN ! NICOND ! ; 750 ; !-------------------------------------------------------------------------! ; 751 ; !6! DIV ! PC FLAGS ! PXCT OFF ! PXCT EN ! ; 752 ; !-------------------------------------------------------------------------! ; 753 ; !7! ROTC ! AC BLOCKS EN ! MEM CLR ! MEM WAIT ! ; 754 ; !=========================================================================! ; 755 ; THE DPM BOARD USES THE SPEC FIELD TO CONTROL THE ; 756 ; DBM MIXER, AS FOLLOWS: ; 757 ; ; 758 ; !=====================================! ; 759 ; ! S ! ! ; 760 ; ! P ! ACTION WHEN DBM ! ; 761 ; ! E ! SELECTS DP ! ; 762 ; ! C ! GET DP BITS ! GET SCAD 1-7 ! ; 763 ; !=====================================! ; 764 ; ! 0 ! ALL ! NONE ! ; 765 ; !-------------------------------------! ; 766 ; ! 1 ! 7-35 ! 0-6 ! ; 767 ; !-------------------------------------! ; 768 ; ! 2 !0-6 AND 14-35 ! 7-13 ! ; 769 ; !-------------------------------------! ; 770 ; ! 3 !0-13 AND 21-35! 14-20 ! ; 771 ; !-------------------------------------! ; 772 ; ! 4 !0-20 AND 28-35! 21-27 ! ; 773 ; !-------------------------------------! ; 774 ; ! 5 ! 0-27 AND 35 ! 28-34 ! ; 775 ; !-------------------------------------! ; 776 ; ! 6 ! SAME AS ZERO ! ; 777 ; !-------------------------------------! ; 778 ; ! 7 ! SAME AS ZERO ! ; 779 ; !=====================================! ; 780 ; KS10.MCR[7,3] 15:03 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 ; 781 ;THE SPEC FIELD IS DEFINED AS A 6-BIT FIELD. THE TOP 3 BITS ; 782 ; ARE SPEC SEL A, SPEC SEL B, AND SPEC SEL C. THE LOW 3 BITS ARE ; 783 ; THE SELECT CODE. ; 784 ; 785 SPEC/=<51:56>D,0 ;DPE1 & DPE5 & DPM1 & DPMA ; 786 #=10 ;DECODE # BITS ; 787 CLRCLK=11 ;CLEAR 1MS NICOND FLAG ; 788 CLR IO LATCH=12 ;CLEAR IO LATCH ; 789 CLR IO BUSY=13 ;CLEAR IO BUSY ; 790 LDPAGE=14 ;WRITE PAGE TABLE ; 791 NICOND=15 ;DOING NICOND DISPATCH ; 792 LDPXCT=16 ;LOAD PXCT FLAGS ; 793 WAIT=17 ;MEM WAIT ; 794 PREV=20 ;FORCE PREVIOUS CONTEXT ; 795 LOADXR=21 ;LOAD XR #, USES PXCT FIELD TO SELECT ; 796 ; CORRECT AC BLOCK ; 797 APR FLAGS=23 ;LOAD APR FLAGS ; 798 CLRCSH=24 ;CLEAR CACHE ; 799 APR EN=25 ;SET APR ENABLES ; 800 MEMCLR=27 ;CLEAR PAGE FAULT CONDITION ; 801 SWEEP=34 ;SET SWEEP ; 802 PXCT OFF=36 ;TURN OFF THE EFFECT OF PXCT ; 803 INHCRY18=40 ;INHIBIT CARRY INTO LEFT HALF ; 804 LOADIR=41 ;LOAD THE IR ; 805 LDPI=43 ;LOAD PI SYSTEM ; 806 ASHOV=44 ;TEST RESULT OF ASH ; 807 EXPTST=45 ;TEST RESULT OF FLOATING POINT ; 808 FLAGS=46 ;CHANGE PC FLAGS ; 809 LDACBLK=47 ;LOAD AC BLOCK NUMBERS ; 810 LDINST=61 ;LOAD INSTRUCTION ; 811 ; 812 ;THE SPEC FIELD IS REDEFINED WHEN USED FOR BYTE MODE STUFF ; 813 BYTE/=<54:56> ;DPM1 (SPEC SEL) ; 814 BYTE1=1 ; 815 BYTE2=2 ; 816 BYTE3=3 ; 817 BYTE4=4 ; 818 BYTE5=5 ; 819 ; 820 ;THE SPEC FIELD IS REDEFINED WHEN USED TO CONTROL SHIFT PATHS ; 821 SHSTYLE/=<54:56> ;DPE1 (SPEC SEL) ; 822 NORM=0 ;2 40-BIT REGISTERS ; 823 ZERO=1 ;SHIFT ZERO INTO 36 BITS (ASH TOP 2901) ; 824 ONES=2 ;SHIFT IN ONES ; 825 ROT=3 ;ROTATE ; 826 ASHC=4 ;ASHC ; 827 LSHC=5 ;LSHC ; 828 DIV=6 ;SPECIAL DIVIDE ; 829 ROTC=7 ;ROTATE DOUBLE ; 830 ; KS10.MCR[7,3] 15:03 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 -- DISPATCH ; 831 .TOC "MICROCODE FIELDS -- DISPATCH" ; 832 ; !=======================================================! ; 833 ; ! D ! CRA1 ! CRA1 ! DPEA ! ; 834 ; ! I ! DISP ! DISP ! DISP ! ; 835 ; ! S ! 10 ! 20 ! 40 ! ; 836 ; ! P ! ! ! ! ; 837 ; !=======================================================! ; 838 ; ! 0 ! DIAG ADR ! DIAG ADR ! 0 ! ; 839 ; !-------------------------------------------------------! ; 840 ; ! 1 ! RETURN ! RETURN ! DP 18-21 ! ; 841 ; !-------------------------------------------------------! ; 842 ; ! 2 ! MULTIPLY ! J ! J ! ; 843 ; !-------------------------------------------------------! ; 844 ; ! 3 ! PAGE FAIL ! AREAD ! AREAD ! ; 845 ; !-------------------------------------------------------! ; 846 ; ! 4 ! NICOND ! NOT USABLE ! NORM ! ; 847 ; !-------------------------------------------------------! ; 848 ; ! 5 ! BYTE ! NOT USABLE ! DP 32-35 ! ; 849 ; !-------------------------------------------------------! ; 850 ; ! 6 ! EA MODE ! NOT USABLE ! DROM A ! ; 851 ; !-------------------------------------------------------! ; 852 ; ! 7 ! SCAD ! NOT USABLE ! DROM B ! ; 853 ; !=======================================================! ; 854 ;NOTE: DISP EN 40 & DISP EN 10 ONLY CONTROL THE LOW 4 BITS OF THE ; 855 ; JUMP ADDRESS. DISP EN 20 ONLY CONTROLS THE HI 7 BITS. TO DO ; 856 ; SOMETHING TO ALL 11 BITS BOTH 20 & 40 OR 20 & 10 MUST BE ENABLED. ; 857 ; 858 DISP/=<57:62>D,70 ;CRA1 & DPEA ; 859 CONSOLE=00 ;CONSOLE DISPATCH ; 860 DROM=12 ;DROM ; 861 AREAD=13 ;AREAD ; 862 DP LEFT=31 ;DP 18-21 ; 863 NORM=34 ;NORMALIZE ; 864 DP=35 ;DP 32-35 ; 865 ADISP=36 ;DROM A FIELD ; 866 BDISP=37 ;DROM B FIELD ; 867 RETURN=41 ;RETURN ; 868 MUL=62 ;MULTIPLY ; 869 PAGE FAIL=63 ;PAGE FAIL ; 870 NICOND=64 ;NEXT INSTRUCTION DISPATCH ; 871 BYTE=65 ;BYTE SIZE AND POSITION ; 872 EAMODE=66 ;EFFECTIVE ADDRESS MODE ; 873 SCAD0=67 ;J!2 IF SCAD BIT 0 = 1 ; 874 ; KS10.MCR[7,3] 15:03 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 -- SKIP ; 875 .TOC "MICROCODE FIELDS -- SKIP" ; 876 ; !=======================================================! ; 877 ; ! S ! CRA2 ! DPEA ! DPEA ! ; 878 ; ! K ! SKIP ! SKIP ! SKIP ! ; 879 ; ! I ! 10 ! 20 ! 40 ! ; 880 ; ! P ! ! ! ! ; 881 ; !=======================================================! ; 882 ; ! 0 ! 0 ! 0 ! 0 ! ; 883 ; !-------------------------------------------------------! ; 884 ; ! 1 ! TRAP CYCLE ! CRY 02 ! CARRY OUT ! ; 885 ; !-------------------------------------------------------! ; 886 ; ! 2 ! AD=0 ! ADL SIGN ! ADL=0 ! ; 887 ; !-------------------------------------------------------! ; 888 ; ! 3 ! SC SIGN ! ADR SIGN ! ADR=0 ! ; 889 ; !-------------------------------------------------------! ; 890 ; ! 4 ! EXECUTE ! USER IOT ! -USER ! ; 891 ; !-------------------------------------------------------! ; 892 ; ! 5 ! -BUS IO BUSY ! JFCL SKIP ! FPD FLAG ! ; 893 ; !-------------------------------------------------------! ; 894 ; ! 6 ! -CONTINUE ! CRY 01 ! AC # IS ZERO ! ; 895 ; !-------------------------------------------------------! ; 896 ; ! 7 ! -1 MSEC ! TXXX ! INTERRUPT REQ ! ; 897 ; !=======================================================! ; 898 ; 899 SKIP/=<63:68>D,70 ;CRA2 & DPEA ; 900 IOLGL=04 ;(.NOT.USER)!(USER IOT)!(CONSOLE EXECUTE MODE) ; 901 LLE=12 ;AD LEFT .LE. 0 ; 902 CRY0=31 ;AD CRY -2 ; 903 ADLEQ0=32 ;ADDER LEFT = 0 ; 904 ADREQ0=33 ;ADDER RIGHT = 0 ; 905 KERNEL=34 ;.NOT. USER ; 906 FPD=35 ;FIRST PART DONE ; 907 AC0=36 ;AC NUMBER IS ZERO ; 908 INT=37 ;INTERRUPT REQUEST ; 909 LE=42 ;(AD SIGN)!(AD.EQ.0) ; 910 CRY2=51 ;AD CRY 02 ; 911 DP0=52 ;AD SIGN ; 912 DP18=53 ;AD BIT 18 ; 913 IOT=54 ;USER IOT ; 914 JFCL=55 ;JFCL SKIP ; 915 CRY1=56 ;AD CRY 1 ; 916 TXXX=57 ;TEST INSTRUCTION SHOULD SKIP ; 917 TRAP CYCLE=61 ;THIS INSTRUCTION IS THE RESULT OF A ; 918 ; TRAP 1, 2, OR 3 ; 919 ADEQ0=62 ;AD.EQ.0 ; 920 SC=63 ;SC SIGN BIT ; 921 EXECUTE=64 ;CONSOLE EXECUTE MODE ; 922 -IO BUSY=65 ;.NOT. I/O LATCH ; 923 -CONTINUE=66 ;.NOT. CONTINUE ; 924 -1 MS=67 ;.NOT. 1 MS. TIMER ; 925 ; KS10.MCR[7,3] 15:03 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 -- TIME CONTROL ; 926 .TOC "MICROCODE FIELDS -- TIME CONTROL" ; 927 ; 928 DT/=<109:111>D,0 ;**NOT STORED IN CRAM** ; 929 ;DEFAULT TIME FIELD (USED IN MACROS) ; 930 ; CAN BE OVERRIDDEN IN MACRO CALL ; 931 2T=0 ; 932 3T=1 ; 933 4T=2 ; 934 5T=3 ; 935 ; 936 ; 937 T/=<69:71>F,DT ;CSL5 (E601) ; 938 ;CLOCK TICKS MINUS TWO REQUIRED TO ; 939 ; DO A MICRO INSTRUCTION ; 940 2T=0 ;TWO TICKS ; 941 3T=1 ;THREE TICKS ; 942 4T=2 ;FOUR TICKS ; 943 5T=3 ;FIVE TICKS ; 944 ; 945 ; KS10.MCR[7,3] 15:03 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 -- RANDOM CONTROL BITS ; 946 .TOC "MICROCODE FIELDS -- RANDOM CONTROL BITS" ; 947 ; 948 CRY38/=<72> ;DPE5 ; 949 ;INJECT A CARRY INTO THE 2901 ADDER ; 950 LOADSC/=<73> ;DPM4 ; 951 ;LOAD THE STEP COUNTER FROM THE SCAD ; 952 LOADFE/=<74> ;DPM4 ; 953 ;LOAD THE FE REGISTER FROM THE SCAD ; 954 FMWRITE/=<75> ;DPE5 (E302) ; 955 ;WRITE THE RAM FILE. ; 956 MEM/=<76> ;DPM5 (E612) & DPE5 (E205) ; 957 ;START (OR COMPLETE) A MEMORY OR I/O CYCLE UNDER ; 958 ; CONTROL OF THE NUMBER FIELD. ; 959 DIVIDE/=<77> ;DPE5 ; 960 ;THIS MICROINSTRUCTION IS DOING A DIVIDE ; 961 MULTI PREC/=<78> ;DPE5 ; 962 ;MULTIPRECISION STEP IN DIVIDE, DFAD, DFSB ; 963 MULTI SHIFT/=<79> ;CSL5 (HAS NOTHING TO DO WITH DPE5 MULTI SHIFT) ; 964 ;FAST SHIFT ; 965 CALL/=<80> ;CRA2 (STACK IS ON CRA3) ; 966 ;THIS IS A CALL ; 967 ; KS10.MCR[7,3] 15:03 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 -- NUMBER FIELD ; 968 .TOC "MICROCODE FIELDS -- NUMBER FIELD" ; 969 ; 970 ;HERE IS THE GENERAL FIELD ; 971 #/=<90:107> ;MANY PLACES ; 972 ; 973 ;# REDEFINED WHEN USED AS SCAD CONTROL: ; 974 SCAD/=<90:92> ;DPM3 ; 975 A*2=0 ; 976 A.OR.B=1 ; 977 A-B-1=2 ; 978 A-B=3 ; 979 A+B=4 ; 980 A.AND.B=5 ; 981 A-1=6 ; 982 A=7 ; 983 SCADA/=<93:95> ;DPM3 ; 984 SC=0 ; 985 S#=1 ; 986 PTR44=2 ;44 AND BIT 6 (SEE DPM3) ; 987 BYTE1=3 ; 988 BYTE2=4 ; 989 BYTE3=5 ; 990 BYTE4=6 ; 991 BYTE5=7 ; 992 SCADB/=<96:97> ;DPM3 ; 993 FE=0 ; 994 EXP=1 ; 995 SHIFT=2 ; 996 SIZE=3 ; 997 S#/=<98:107> ;DPM3 ; 998 ; 999 ;# REDEFINED WHEN USED AS STATE REGISTER CONTROL: ; 1000 STATE/=<90:107> ;NOT USED BY HARDWARE ; 1001 SIMPLE=0 ;SIMPLE INSTRUCTIONS ; 1002 BLT=1 ;BLT IN PROGRESS ; 1003 MAP=400002 ;MAP IN PROGRESS ; 1004 SRC=3 ;MOVE STRING SOURCE IN PROGRESS ; 1005 DST=4 ;MOVE STRING FILL IN PROGRESS ; 1006 SRC+DST=5 ;MOVE STRING DEST IN PROGRESS ; 1007 DSTF=6 ;FILLING DEST ; 1008 CVTDB=7 ;CONVERT DEC TO BIN ; 1009 COMP-DST=10 ;COMPARE DEST ; 1010 EDIT-SRC=11 ;EDIT SOURCE ; 1011 EDIT-DST=12 ;EDIT DEST ; 1012 EDIT-S+D=13 ;BOTH SRC AND DST POINTERS ; 1013 ; KS10.MCR[7,3] 15:03 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 ; 1014 ;# REDEFINED WHEN USED AS WORSPACE ADDRESS ; 1015 ; 1016 WORK/=<98:107> ;DPE6 ; 1017 BADW0=160 ;AC BLK 7 WORD 0 (BAD DATA FROM MEMORY) ; 1018 BADW1=161 ;AC BLK 7 WORD 1 (BAD DATA FROM MEMORY) ; 1019 MUL=200 ;TEMP FOR MULTIPLY ; 1020 DIV=201 ;TEMP FOR DIVIDE ; 1021 SV.VMA=210 ;SAVE VMA ; 1022 SV.AR=211 ;SAVE AR ; 1023 SV.ARX=212 ;SAVE ARX ; 1024 SV.BR=213 ;SAVE BR ; 1025 SV.BRX=214 ;SAVE BRX ; 1026 SBR=215 ;SPT BASE REGISTER ; 1027 CBR=216 ;CST BASE ADDRESS ; 1028 CSTM=217 ;CST MASK ; 1029 PUR=220 ;PROCESS USE REGISTER ; 1030 ADJP=221 ;"P" FOR ADJBP ; 1031 ADJS=222 ;"S" FOR ADJBP ; 1032 ADJPTR=223 ;BYTE POINTER FOR ADJBP ; 1033 ADJQ1=224 ;TEMP FOR ADJBP ; 1034 ADJR2=225 ;TEMP FOR ADJBP ; 1035 ADJBPW=226 ;(BYTES/WORD) FOR ADJBP ; 1036 HSBADR=227 ;ADDRESS OF HALT STATUS BLOCK ; 1037 APR=230 ;APR ENABLES ; 1038 ;THE FOLLOWING WORDS ARE USED BY EXTEND INSTRUCTION ; 1039 E0=240 ;ORIGINAL EFFECTIVE ADDRESS ; 1040 E1=241 ;EFFECTIVE ADDRESS OF WORD AT E0 ; 1041 SLEN=242 ;SOURCE LENGTH ; 1042 MSK=243 ;BYTE MASK ; 1043 FILL=244 ;FILL BYTE ; 1044 CMS=245 ;SRC BYTE IN STRING COMPARE ; 1045 FSIG=246 ;PLACE TO SAVE ARX WHILE STORING ; 1046 ; THE FLOAT CHAR ; 1047 BDH=247 ;BINARY BEING CONVERTED TO ; 1048 BDL=250 ; DECIMAL ; 1049 ; 1050 ;TIMER STUFF ; 1051 TIME0=300 ;HIGH ORDER 36 BITS OF TIME ; 1052 TIME1=301 ;LOW ORDER 36 BITS OF TIME ; 1053 PERIOD=302 ;INTERRUPT PERIOD ; 1054 TTG=303 ;TIME TO GO TO NEXT INTERRUPT ; 1055 ; KS10.MCR[7,3] 15:03 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 ; 1056 ;DDIV STUFF ; 1057 AC0=314 ; 1058 AC1=315 ; 1059 AC2=316 ; 1060 AC3=317 ; 1061 DDIV SGN=320 ; 1062 DVSOR H=321 ; 1063 DVSOR L=322 ; 1064 ;POWERS OF TEN ; 1065 DECLO=344 ;LOW WORD ; 1066 DECHI=373 ;HIGH WORD ; 1067 ; 1068 YSAVE=422 ;Y OF LAST INDIRECT POINTER ; 1069 PTA.E=423 ;ADDRESS OF EXEC PAGE MAP (NOT PROCESS TABLE) ; 1070 PTA.U=424 ;ADDRESS OF USER PAGE MAP ; 1071 TRAPPC=425 ;SAVED PC FROM TRAP CYCLE ; 1072 SV.AR1=426 ;ANOTHER PLACE TO SAVE AR ; 1073 ; KS10.MCR[7,3] 15:03 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 ; 1074 ;# REDEFINED WHEN USED AS PC FLAG CONTROL (ALL ON DPE9) ; 1075 ; 1076 SETOV/=<90> ;DPE9 ; 1077 ;SET ARITHMETIC OVERFLOW ; 1078 SETFOV/=<91> ;SET FLOATING OVERFLOW ; 1079 SETNDV/=<92> ;SET NO DIVIDE ; 1080 ; 1081 ;--------------------------------------------------------------------- ; 1082 ; 1083 CLRFPD/=<93> ;CLEAR FIRST PART DONE ; 1084 SETFPD/=<94> ;SET FIRST PART DONE ; 1085 HOLD USER/=<95> ;WHEN THIS BIT IS SET IT: ; 1086 ; 1. PREVENTS SETTING USER IOT IN USER MODE ; 1087 ; 2. PREVENTS CLEARING USER IN USER MODE ; 1088 ; 1089 ;--------------------------------------------------------------------- ; 1090 ; 1091 ; <96> ;SPARE ; 1092 TRAP2/=<97> ;SET TRAP 2 ; 1093 TRAP1/=<98> ;SET TRAP 1 ; 1094 ; 1095 ;--------------------------------------------------------------------- ; 1096 ; 1097 LD PCU/=<99> ;LOAD PCU FROM USER ; 1098 ; <100> ;SPARE ; 1099 ; <101> ;SPARE ; 1100 ; 1101 ;--------------------------------------------------------------------- ; 1102 ; 1103 ; <102> ;SPARE ; 1104 ; <103> ;SPARE ; 1105 JFCLFLG/=<104> ;DO A JFCL INSTRUCTION ; 1106 ; 1107 ;--------------------------------------------------------------------- ; 1108 ; 1109 LD FLAGS/=<105> ;LOAD FLAGS FROM DP ; 1110 ; <106> ; 1111 ADFLGS/=<107> ;UPDATE CARRY FLAGS ; 1112 ; KS10.MCR[7,3] 15:03 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 ; 1113 ;# REDEFINED WHEN USED AS MEMORY CYCLE CONTROL ; 1114 ; 1115 FORCE USER/=<90> ;FORCE USER MODE REFERENCE ; 1116 FORCE EXEC/=<91> ;FORCE EXEC MODE REFERENCE ; 1117 ; (DOES NOT WORK UNDER PXCT) ; 1118 FETCH/=<92> ;THIS IS AN INSTRUCTION FETCH ; 1119 ; 1120 ;--------------------------------------------------------------------- ; 1121 ; 1122 READ CYCLE/=<93> ;SELECT A READ CYCLE ; 1123 WRITE TEST/=<94> ;PAGE FAILE IF NOT WRITTEN ; 1124 WRITE CYCLE/=<95> ;SELECT A MEMORY WRITE CYCLE ; 1125 ; 1126 ;--------------------------------------------------------------------- ; 1127 ; 1128 ; <96> ;SPARE BIT ; 1129 DONT CACHE/=<97> ;DO NOT LOOK IN CACHE ; 1130 PHYSICAL/=<98> ;DO NOT INVOKE PAGING HARDWARE ; 1131 ; 1132 ;--------------------------------------------------------------------- ; 1133 ; 1134 PXCT/=<99:101> ;WHICH PXCT BITS TO LOOK AT ; 1135 CURRENT=0 ; 1136 E1=1 ; 1137 D1=3 ; 1138 BIS-SRC-EA=4 ; 1139 E2=5 ; 1140 BIS-DST-EA=6 ; 1141 D2=7 ; 1142 ; 1143 ;--------------------------------------------------------------------- ; 1144 ; 1145 AREAD/=<102> ;LET DROM SELECT SYSLE TYPE AND VMA LOAD ; 1146 DP FUNC/=<103> ;IGNORE # BITS 0-11 AND USE DP 0-13 INSTEAD ; 1147 ; DP9 MEANS "FORCE PREVIOUS" ; 1148 LDVMA/=<104> ;LOAD THE VMA ; 1149 ; 1150 ;--------------------------------------------------------------------- ; 1151 ; 1152 EXT ADR/=<105> ;PUT VMA BITS 14-17 ONTO BUS ; 1153 WAIT/=<106> ;START A MEMORY OR I/O CYCLE ; 1154 BWRITE/=<107> ;START A MEMORY CYCLE IF DROM ASKS FOR IT ; 1155 ; KS10.MCR[7,3] 15:03 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 ; 1156 ;THESE BITS ARE USED ONLY TO SETUP DP FOR A DP FUNCTION ; 1157 ; 1158 ; <99> ;PREVIOUS ; 1159 IO CYCLE/=<100> ;THIS IS AN I/O CYCLE ; 1160 WRU CYCLE/=<101> ;WHO ARE YOU CYCLE ; 1161 ; 1162 ;--------------------------------------------------------------------- ; 1163 ; 1164 VECTOR CYCLE/=<102> ;READ INTERRUPT VECTOR ; 1165 IO BYTE/=<103> ;BYTE CYCLE ; 1166 ; <104> ; 1167 ; KS10.MCR[7,3] 15:03 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 ;# REDEFINED WHEN USED AS PI RIGHT BITS ; 1169 PI.ZER/=<90:92> ;ZEROS ; 1170 PI.IP1/=<93> ;PI 1 IN PROG ; 1171 PI.IP2/=<94> ; 1172 PI.IP3/=<95> ; 1173 PI.IP4/=<96> ; 1174 PI.IP5/=<97> ; 1175 PI.IP6/=<98> ; 1176 PI.IP7/=<99> ; 1177 PI.ON/=<100> ;SYSTEM IS ON ; 1178 PI.CO1/=<101> ;CHAN 1 IS ON ; 1179 PI.CO2/=<102> ; 1180 I.CO3/=<103> ; 1181 I.CO4/=<104> ; 1182 I.CO5/=<105> ; 1183 I.CO6/=<106> ; 1184 I.CO7/=<107> ; 1185 ; 1186 ;# REDEFINED WHEN USED AS WRPI DATA ; 1187 PI.MBZ/=<90:93> ;MUST BE ZERO ; 1188 PI.DIR/=<94> ;DROP INTERRUPT REQUESTS ; 1189 PI.CLR/=<95> ;CLEAR SYSTEM ; 1190 PI.REQ/=<96> ;REQUEST INTERRUPT ; 1191 PI.TCN/=<97> ;TURN CHANNEL ON ; 1192 PI.TCF/=<98> ;TURN CHANNEL OFF ; 1193 PI.TSF/=<99> ;TURN SYSTEM OFF ; 1194 PI.TSN/=<100> ;TURN SYSTEM ON ; 1195 PI.SC1/=<101> ;SELECT CHANNEL 1 ; 1196 PI.SC2/=<102> ; 1197 PI.SC3/=<103> ; 1198 PI.SC4/=<104> ; 1199 PI.SC5/=<105> ; 1200 PI.SC6/=<106> ; 1201 PI.SC7/=<107> ; 1202 ; KS10.MCR[7,3] 15:03 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 ; 1203 ;# REDEFINED WHEN USED AS AC CONTROL ; 1204 ; 1205 ; 1206 ;THIS FIELD CONTROLS THE INPUT TO A 74LS181 ON DPE6. THE NUMBER ; 1207 ; FIELD HAS THIS FORMAT IN <98:107>: ; 1208 ; ; 1209 ; !-----!-----!-----!-----!-----!-----!-----!-----!-----!-----! ; 1210 ; !CARRY! S8 ! S4 ! S2 ! S1 ! MODE! B8 ! B4 ! B2 ! B1 ! ; 1211 ; ! IN ! FUNCTION ! ! DATA INPUTS ! ; 1212 ; !-----!-----------------------!-----!-----------------------! ; 1213 ; ; 1214 ; 1215 ACALU/=<98:103> ; 1216 B=25 ; 1217 AC+N=62 ; 1218 ACN/=<104:107> ; 1219 ;AC NAMES FOR STRING INSTRUCTIONS ; 1220 SRCLEN=0 ;SOURCE LENGTH ; 1221 SRCP=1 ;SOURCE POINTER ; 1222 DLEN=3 ;DEST LENGTH ; 1223 DSTP=4 ;DEST POINTER ; 1224 MARK=3 ;POINTER TO MARK ; 1225 BIN0=3 ;HIGH WORD OF BINARY ; 1226 BIN1=4 ;LOW WORD OF BINARY ; 1227 ; KS10.MCR[7,3] 15:03 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 ; 1228 ;# FIELD REDEFINED WHEN USE AS APRID DATA ; 1229 MICROCODE OPTIONS/=<90:98> ; 1230 ;100 - NON-STANDARD MICROCODE ; 1231 ;200 - NO CST AT ALL ; 1232 ;400 - INHIBIT CST UPDATE IS AVAILABLE ; 1233 ;040 - UBABLT INSTRUCTIONS ARE PRESENT ; 1234 ;020 - KI PAGING IS PRESENT ; 1235 ;010 - KL PAGING IS PRESENT ; 1236 MICROCODE OPTION(INHCST)/=<90> ;;1237 .IF/INHCST ;;1238 OPT=1 ; 1239 .IFNOT/INHCST ; 1240 OPT=0 ; 1241 .ENDIF/INHCST ; 1242 MICROCODE OPTION(NOCST)/=<91> ;;1243 .IF/NOCST ;;1244 OPT=1 ; 1245 .IFNOT/NOCST ; 1246 OPT=0 ; 1247 .ENDIF/NOCST ; 1248 MICROCODE OPTION(NONSTD)/=<92> ;;1249 .IF/NONSTD ;;1250 OPT=1 ; 1251 .IFNOT/NONSTD ; 1252 OPT=0 ; 1253 .ENDIF/NONSTD ; 1254 MICROCODE OPTION(UBABLT)/=<93> ;;1255 .IF/UBABLT ;;1256 OPT=1 ; 1257 .IFNOT/UBABLT ; 1258 OPT=0 ; 1259 .ENDIF/UBABLT ; 1260 MICROCODE OPTION(KIPAGE)/=<94> ; 1261 .IF/KIPAGE ; 1262 OPT=1 ;;1263 .IFNOT/KIPAGE ;;1264 OPT=0 ; 1265 .ENDIF/KIPAGE ; 1266 MICROCODE OPTION(KLPAGE)/=<95> ; 1267 .IF/KLPAGE ; 1268 OPT=1 ;;1269 .IFNOT/KLPAGE ;;1270 OPT=0 ; 1271 .ENDIF/KLPAGE ; 1272 ; 1273 MICROCODE VERSION/=<99:107> ; 1274 UCV=130 ; 1275 ; 1276 MICROCODE RELEASE(MAJOR)/=<99:104> ; 1277 UCR=2 ;MAJOR VERSION NUMBER (1,2,3,....) ; 1278 ; 1279 MICROCODE RELEASE(MINOR)/=<105:107> ; 1280 UCR=0 ;MINOR VERSION NUMBER (.1,.2,.3,...) ; 1281 ; KS10.MCR[7,3] 15:03 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 ; 1282 ;# FIELD REDEFINED WHEN USED AS A HALT CODE ; 1283 ; 1284 HALT/=<90:107> ; 1285 ;CODES 0 TO 77 ARE "NORMAL" HALTS ; 1286 POWER=0 ;POWER UP ; 1287 HALT=1 ;HALT INSTRUCTION ; 1288 CSL=2 ;CONSOLE HALT ; 1289 ;CODES 100 TO 777 ARE SOFTWARE ERRORS ; 1290 IOPF=100 ;I/O PAGE FAIL ; 1291 ILLII=101 ;ILLEGAL INTERRUPT INSTRUCTION ; 1292 ILLINT=102 ;BAD POINTER TO UNIBUS INTERRUPT VECTOR ; 1293 ;CODES 1000 TO 1777 ARE HARDWARE ERRORS ; 1294 BW14=1000 ;ILLEGAL BWRITE FUNCTION (BAD DROM) ; 1295 NICOND 5=1004 ;ILLEGAL NICOND DISPATCH ; 1296 MULERR=1005 ;VALUE COMPUTED FOR 10**21 WAS WRONG ;;1297 .IFNOT/FULL ;;1298 PAGEF=1777 ;PAGE FAIL IN SMALL MICROCODE ; 1299 .ENDIF/FULL ; 1300 ; 1301 ; 1302 ; 1303 ;# FIELD REDEFINED WHEN USED AS FLG BITS ; 1304 ; 1305 FLG.W/=<94> ;W BIT FROM PAGE MAP ; 1306 FLG.PI/=<95> ;PI CYCLE ; 1307 FLG.C/=<96> ;CACHE BIT FROM PAGE MAP ; 1308 FLG.SN/=<97> ;SPECIAL NEGATE IN FDV & DFDV ; 1309 ; 1310 ;RIGHT HALF OF FLG USED TO RECOVER FROM PAGE FAILS ; 1311 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 35 ; KS10.MIC[7,3] 14:54 7-JAN-1986 DISPATCH ROM DEFINITIONS ; 1312 .TOC "DISPATCH ROM DEFINITIONS" ; 1313 ; 1314 ;ALL ON DPEA ; 1315 ; 1316 .DCODE ; 1317 A/=<2:5> ;OPERAND FETCH MODE ; 1318 READ=0 ;READ ; 1319 WRITE=1 ;WRITE ; 1320 DREAD=2 ;DOUBLE READ ; 1321 DBLAC=3 ;DOUBLE AC ; 1322 SHIFT=4 ;SIMPLE SHIFT ; 1323 DSHIFT=5 ;DOUBLE SHIFT ; 1324 FPI=6 ;FLOATING POINT IMMEDIATE ; 1325 FP=7 ;FLOATING POINT ; 1326 RD-PF=10 ;READ, THEN START PREFETCH ; 1327 DFP=11 ;DOUBLE FLOATING POINT ; 1328 IOT=12 ;CHECK FOR IO LEGAL THEN SAME AS I ; 1329 ; 1330 B/=<8:11> ;STORE RESULTS AS ; 1331 SELF=4 ;SELF ; 1332 DBLAC=5 ;DOUBLE AC ; 1333 DBLB=6 ;DOUBLE BOTH ; 1334 AC=15 ;AC ; 1335 MEM=16 ;MEMORY ; 1336 BOTH=17 ;BOTH ; 1337 ; 1338 ;B-FIELD WHEN USED IN FLOATING POINT OPERATIONS ; 1339 ROUND/=<8> ;ROUND THE RESULT ; 1340 MODE/=<9> ;SEPARATE ADD/SUB & MUL/DIV ETC. ; 1341 FL-B/=<10:11> ;STORE RESULTS AS ; 1342 AC=1 ;AC ; 1343 MEM=2 ;MEMORY ; 1344 BOTH=3 ;BOTH ; 1345 ; 1346 J/=<12:23> ;DISPATCH ADDRESS (MUST BE 1400 TO 1777) ; 1347 ; 1348 ACDISP/=<24> ;DISPATCH ON AC FIELD ; 1349 I/=<25> ;IMMEDIATE DISPATCH. DISP/AREAD DOES A DISP/DROM ; 1350 ; IF THIS BIT IS SET. ; 1351 READ/=<26> ;START A READ AT AREAD ; 1352 TEST/=<27> ;START A WRITE TEST AT AREAD ; 1353 COND FUNC/=<28> ;START A MEMORY CYCLE ON BWRITE ; 1354 VMA/=<29>D,1 ;LOAD THE VMA ON AREAD ; 1355 WRITE/=<30> ;START A WRITE ON AREAD ; 1356 .UCODE ; 1357 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 36 ; KS10.MIC[7,3] 14:54 7-JAN-1986 HOW TO READ MACROS ; 1358 .TOC "HOW TO READ MACROS" ; 1359 ; ; 1360 ; 1.0 REGISTER TRANSFER MACROS ; 1361 ; ; 1362 ; MOST MACROS USED IN THE KS10 ARE USED TO OPERATE ON DATA IN (OR FROM/TO) 2901 ; 1363 ; REGISTERS. THE NAMES OF THE 2901 REGISTERS ARE MACRO PARAMETERS AND ARE ; 1364 ; ENCLOSED IN []. A TYPICAL MACRO IS: ; 1365 ; ; 1366 ; [AR]_[AR]+[BR] ; 1367 ; ; 1368 ; THE SYMBOL _ IS PRONOUNCED "GETS". THE ABOVE MACRO WOULD BE READ "THE AR GETS ; 1369 ; THE AR PLUS THE BR". ; 1370 ; ; 1371 ; IF A MACRO DOES NOT HAVE A _ IN IT, THERE IS NO RESULT STORED. THUS, [AR]-[BR] ; 1372 ; JUST COMPARES THE AR AND THE BR AND ALLOWS FOR SKIPS ON THE VARIOUS ALU BITS. ; 1373 ; ; 1374 ; ; 1375 ; ; 1376 ; 1.1 SPECIAL SYMBOLS ; 1377 ; ; 1378 ; THERE ARE A BUNCH OF SYMBOLS USED IN THE MACROS WHICH ARE NOT 2901 REGISTERS. ; 1379 ; THEY ARE DEFINED HERE: ; 1380 ; ; 1381 ; 1. AC -- THE AC SELECTED BY THE CURRENT INSTRUCTION. SEE DPEA ; 1382 ; ; 1383 ; 2. AC[] -- AC+N. AC[1] IS AC+1, AC[2] IS AC+2, ETC. ; 1384 ; ; 1385 ; 3. APR -- THE APR FLAGS FROM DPMA ; 1386 ; ; 1387 ; 4. EA -- THE EFFECTIVE ADDRESS. THAT IS, 0 IN THE LEFT HALF AND THE ; 1388 ; CONTENTS OF THE HR IN THE RIGHT HALF. ; 1389 ; ; 1390 ; 5. EXP -- THE F.P. EXPONENT FROM THE SCAD. [AR]_EXP WILL TAKE THE ; 1391 ; EXPONENT OUT OF THE FE AND PUT IT BACK INTO THE NUMBER IN THE AR. ; 1392 ; ; 1393 ; 6. FE -- THE FE REGISTER ; 1394 ; ; 1395 ; 7. FLAGS -- THE PC FLAGS (FROM DPE9) IN THE LEFT HALF. ; 1396 ; ; 1397 ; 8. Q -- THE Q REGISTER ; 1398 ; ; 1399 ; 9. RAM -- THE RAM FILE, RAM ADDRESS IS IN THE VMA. ; 1400 ; ; 1401 ; 10. P -- THE P FIELD OF THE BYTE POINTER. SAME IDEA AS EXP. ; 1402 ; ; 1403 ; 11. TIME -- THE 1MS. TIMER ; 1404 ; ; 1405 ; 12. VMA -- THE VMA. WHEN READ IT INCLUDES THE VMA FLAGS ; 1406 ; ; 1407 ; 13. XR -- INDEX REGISTER ; 1408 ; KS10.MCR[7,3] 15:03 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 ; 1409 ; 14. XWD -- HALF WORD. USED TO GENERATE CONSTANTS. FOR EXAMPLE, [AR]_0 XWD ; 1410 ; [40] WOULD LOAD THE CONSTANT 40 (OCTAL) INTO THE AR. ; 1411 ; ; 1412 ; 15. +SIGN AND -SIGN -- SIGN BITS USED TO SIGN SMEAR F.P. NUMBERS. FOR ; 1413 ; EXAMPLE, [AR]_+SIGN WOULD CLEAR AR BITS 0 TO 8. ; 1414 ; ; 1415 ; 16. WORK[] -- LOCATIONS IN THE WORKSPACE USED AS SCRATCH SPACE. FOR ; 1416 ; EXAMPLE, [AR]_WORK[CSTM] WOULD LOAD THE AR WITH THE CST MASK FROM THE ; 1417 ; RAM. CSTM IS A SYMBOL DEFINED IN THE WORK FIELD. ; 1418 ; ; 1419 ; ; 1420 ; ; 1421 ; ; 1422 ; 1.2 LONG ; 1423 ; ; 1424 ; LONG IS USED ON SHIFT OPERATIONS TO INDICATE THAT THE Q REGISTER IS ALSO ; 1425 ; SHIFTED. THIS SAYS NOTHING ABOUT HOW THE SHIFT PATHS ARE CONNECTED UP. ; 1426 ; ; 1427 ; ; 1428 ; ; 1429 ; 2.0 MEMORY MACROS ; 1430 ; ; 1431 ; MEMORY IS INDICATED BY THE SYMBOL "MEM". WHEN WE ARE WAITING FOR DATA FROM ; 1432 ; MEMORY THE "MEM READ" MACRO IS USED. WHEN WE ARE SENDING DATA TO MEMORY, THE ; 1433 ; "MEM WRITE" MACRO IS USED. EXAMPLE, ; 1434 ; MEM READ, ;WAIT FOR MEMORY ; 1435 ; [AR]_MEM ;LOAD DATA INTO AR ; 1436 ; VMA_ IS USED THE LOAD THE VMA. THUS, VMA_[PC] LOADS THE VMA FROM THE PC. ; 1437 ; ; 1438 ; ; 1439 ; ; 1440 ; 3.0 TIME CONTROL ; 1441 ; ; 1442 ; THERE ARE 2 SETS OF MACROS USED FOR TIME CONTROL. THE FIRST, SELECTS THE RAM ; 1443 ; ADDRESS TO SPEED UP THE NEXT INSTRUCTION. THESE MACROS ARE AC, AC[], XR, VMA, ; 1444 ; WORK[]. THE SECOND, SETS THE TIME FIELD. THESE ARE 2T, 3T, 4T, AND 5T TO ; 1445 ; SELECT 2, 3, 4, OR 5 TICKS. ; 1446 ; ; 1447 ; ; 1448 ; ; 1449 ; 4.0 SCAD MACROS ; 1450 ; ; 1451 ; THE SCAD MACROS LOOK LIKE THE 2901 MACROS EXECPT NO [] ARE REQUIRED. THERE ARE ; 1452 ; ONLY A FEW SYMBOLS USED. ; 1453 ; ; 1454 ; 1. FE -- THE FE REGISTER ; 1455 ; ; 1456 ; 2. SC -- THE SC REGISTER ; 1457 ; KS10.MCR[7,3] 15:03 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 ; 1458 ; 3. EXP -- THE EXPONENT FROM A F.P. NUMBER. FOR EXAMPLE FE_EXP LOADS THE ; 1459 ; FE FROM DP BITS 1-8. ; 1460 ; ; 1461 ; 4. SHIFT -- THE SHIFT COUNT FROM SHIFT INSTRUCTIONS. THAT IS DP BITS 18 ; 1462 ; AND 28-35. ; 1463 ; ; 1464 ; 5. S# -- THE SMALL NUMBER. THE 10 BIT MAGIC NUMBER INPUT TO THE SCADA ; 1465 ; MIXER. ; 1466 ; ; 1467 ; ; 1468 ; ; 1469 ; ; 1470 ; 5.0 CONTROL MACROS ; 1471 ; ; 1472 ; ALL CONTROL MACROS LOOK LIKE ENGLISH COMMANDS. SOME EXAMPLES, ; 1473 ; HOLD LEFT ;DO NOT CLOCK LEFT HALF OF DP ; 1474 ; SET APR ENABLES ;LOAD APR ENABLES FROM DP ; 1475 ; SET NO DIVIDE ;SET NO DIVIDE PC FLAG ; 1476 ; ; 1477 ; ; 1478 ; ; 1479 ; 6.0 SKIPS ; 1480 ; ; 1481 ; ALL SKIPS CAUSE THE NEXT MICRO INSTRUCTION TO COME FROM THE ODD WORD OF AN ; 1482 ; EVEN/ODD PAIR. THE MACROS HAVE THE FORMAT OF SKIP COND. THEY SKIP IF CONDITION ; 1483 ; IS TRUE. SOME EXAMPLES, ; 1484 ; SKIP AD.EQ.0 ;SKIP IF ADDER OUTPUT IS ZERO ; 1485 ; SKIP IRPT ;SKIP IF INTERRUPT IS PENDING ; 1486 ; ; 1487 ; ; 1488 ; ; 1489 ; 7.0 DISPATCH MACROS ; 1490 ; ; 1491 ; DISPATCH MACROS CAUSE THE MACHINE TO GO TO ONE OF MANY PLACES. IN MOST CASES ; 1492 ; THEY HAVE THE WORD "DISP" IN THE NAME OF THE MACRO. FOR EXAMPLE, MUL DISP, BYTE ; 1493 ; DISP. ; 1494 ; ; 1495 ; ; 1496 ; ; 1497 ; 8.0 SUPER MACROS ; 1498 ; ; 1499 ; THERE ARE PLACES WHERE ONE MICRO INSTRUCTION IS USED IN MANY PLACES. FOR ; 1500 ; EXAMPLE, MANY PLACES DETECT ILLEGAL OPERATIONS AND WANT TO GENERATE A TRAP TO ; 1501 ; THE MONITOR. WE COULD WRITE ; 1502 ; J/UUO ; 1503 ; BUT THIS WASTES A MICRO STEP DOING A USELESS JUMP. INSTEAD WE WRITE, ; 1504 ; UUO ; 1505 ; THIS MACRO IS THE FIRST STEP OF THE UUO ROUTINE AND JUMPS TO THE SECOND ; 1506 ; INSTRUCTION. WE WRITE THE EXPANSION OF THE UUO MACRO AS THE FIRST INSTRUCTION ; 1507 ; OF THE UUO ROUTINE SO THAT THE READER CAN SEE WHAT IT DOES. SOME EXAMPLES OF ; 1508 ; KS10.MCR[7,3] 15:03 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 ; 1509 ; SUPER MACROS ARE: ; 1510 ; PAGE FAIL TRAP ;GENERATE A PAGE FAIL TRAP ; 1511 ; DONE ;THIS INSTRUCTION IS NOW COMPLETE ; 1512 ; ; USED WITH A SKIP OR DISP WHERE ; 1513 ; ; SOME PATHS ARE NOP'S ; 1514 ; HALT [] ;JUMP TO HALT LOOP. ARGUMENT IS A ; 1515 ; ; CODE ; 1516 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 40 ; KS10.MIC[7,3] 14:54 7-JAN-1986 MACROS -- DATA PATH CHIP -- GENERAL ; 1517 .TOC "MACROS -- DATA PATH CHIP -- GENERAL" ; 1518 ; 1519 .NOT.[] "AD/.NOT.A,A/@1" ; 1520 []+[] "AD/A+B,A/@1,B/@2" ; 1521 []-[] "AD/A-B-.25,A/@1,B/@2,ADD .25" ; 1522 []-# "AD/A-D-.25,DBUS/DBM,DBM/#,A/@1,ADD .25" ; 1523 [].AND.# "AD/D.AND.A,DBUS/DBM,DBM/#,A/@1" ; 1524 [].AND.Q "AD/A.AND.Q,A/@1,DEST/PASS" ; 1525 [].AND.[] "AD/A.AND.B,A/@2,B/@1,DEST/PASS" ; 1526 [].AND.NOT.[] "AD/.NOT.A.AND.B,A/@2,B/@1,DEST/PASS" ; 1527 [].OR.[] "AD/A.OR.B,A/@2,B/@1,DEST/PASS" ; 1528 [].XOR.# "AD/D.XOR.A,DBUS/DBM,DBM/#,A/@1" ; 1529 [].XOR.[] "AD/A.XOR.B,A/@2,B/@1,DEST/PASS" ; 1530 []_#-[] "AD/D-A-.25,DEST/AD,A/@2,B/@1,DBUS/DBM,DBM/#,ADD .25" ; 1531 []_# "AD/D,DBUS/DBM,DBM/#,DEST/AD,B/@1" ; 1532 []_-1 "AD/-A-.25,A/ONE,DEST/AD,B/@1,ADD .25" ; 1533 []_-2 "AD/-A-.25,DEST/AD*2,A/ONE,B/@1,ADD .25" ; 1534 []_-Q "AD/-Q-.25,DEST/AD,B/@1,ADD .25" ; 1535 []_-Q*2 "AD/-Q-.25,DEST/AD*2,B/@1,ADD .25" ; 1536 []_-Q*.5 "AD/-Q-.25,DEST/AD*.5,B/@1,ADD .25" ; 1537 []_-[] "AD/-A-.25,A/@2,DEST/AD,B/@1,ADD .25" ; 1538 []_-[]-.25 "AD/-A-.25,A/@2,DEST/AD,B/@1" ; 1539 []_-[]*2 "AD/-A-.25,A/@2,DEST/AD*2,B/@1,ADD .25" ; 1540 []_.NOT.AC "AD/.NOT.D,DBUS/RAM,RAMADR/AC#,DEST/AD,B/@1" ; 1541 []_.NOT.AC[] "AD/.NOT.D,DBUS/RAM,RAMADR/AC*#,ACALU/AC+N,ACN/@2,DEST/AD,B/@1,DT/3T" ; 1542 []_.NOT.Q "AD/.NOT.Q,DEST/AD,B/@1" ; 1543 []_.NOT.[] "AD/.NOT.A,A/@2,DEST/AD,B/@1" ; 1544 []_0 "AD/ZERO,DEST/AD,B/@1" ; 1545 []_0*.5 LONG "AD/ZERO,DEST/Q_Q*.5,B/@1" ; 1546 []_0 XWD [] "AD/47,DEST/AD,B/@1,DBM/#,DBUS/DBM,#/@2,RSRC/DA,A/MASK" ; 1547 []_AC "AD/D,DBUS/RAM,RAMADR/AC#,DEST/AD,B/@1,AD PARITY" ; 1548 []_-AC "AD/-D-.25,DBUS/RAM,RAMADR/AC#,DEST/AD,B/@1,ADD .25" ; 1549 []_-AC[] "AD/-D-.25,DBUS/RAM,RAMADR/AC*#,ACALU/AC+N,ACN/@2,DEST/AD,B/@1,ADD .25,DT/3T" ; 1550 []_AC*.5 "AD/D,DBUS/RAM,RAMADR/AC#,DEST/AD*.5,B/@1,DT/3T" ; 1551 []_AC*.5 LONG "AD/D,DBUS/RAM,RAMADR/AC#,DEST/Q_Q*.5,B/@1,DT/3T" ; 1552 []_AC*2 "AD/D,DBUS/RAM,RAMADR/AC#,DEST/AD*2,B/@1,DT/3T" ; 1553 []_AC+1 "AD/D+A,DBUS/RAM,RAMADR/AC#,A/ONE,DEST/AD,B/@1" ; 1554 []_AC+1000001 "AD/D+A,DBUS/RAM,RAMADR/AC#,A/XWD1,DEST/AD,B/@1" ; 1555 []_AC+[] "AD/D+A,A/@2,DBUS/RAM,RAMADR/AC#,DEST/AD,B/@1,DT/3T" ; 1556 []_AC-1 "AD/D-A-.25,DBUS/RAM,RAMADR/AC#,A/ONE,DEST/AD,B/@1,ADD .25" ; 1557 []_AC-[] "AD/D-A-.25,A/@2,DBUS/RAM,RAMADR/AC#,DEST/AD,B/@1,ADD .25" ; 1558 []_AC-[]-.25 "AD/D-A-.25,A/@2,DBUS/RAM,RAMADR/AC#,DEST/AD,B/@1" ; 1559 []_AC[]-[] "AD/D-A-.25,A/@3,DBUS/RAM,RAMADR/AC*#,ACALU/AC+N,ACN/@2,DEST/AD,B/@1,ADD .25,DT/3T" ; 1560 []_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" ; 1561 []_AC[].AND.[] "AD/D.AND.A,A/@3,DBUS/RAM,RAMADR/AC*#,ACALU/AC+N,ACN/@2,DEST/AD,B/@1,DT/3T" ; 1562 []_AC.AND.MASK "AD/D.AND.A,A/MASK,DBUS/RAM,RAMADR/AC#,DEST/AD,B/@1,AD PARITY" ; 1563 []_AC[] "AD/D,DBUS/RAM,RAMADR/AC*#,ACALU/AC+N,ACN/@2,DEST/AD,B/@1,AD PARITY,DT/3T" ; 1564 []_AC[]*2 "AD/D,DBUS/RAM,RAMADR/AC*#,ACALU/AC+N,ACN/@2,DEST/AD*2,B/@1,AD PARITY,DT/3T" ; 1565 []_AC[]*.5 "AD/D,DBUS/RAM,RAMADR/AC*#,ACALU/AC+N,ACN/@2,DEST/AD*.5,B/@1,AD PARITY,DT/3T" ; 1566 []_APR "AD/D,DBUS/DBM,DBM/APR FLAGS,DEST/AD,B/@1,DT/3T" ; 1567 []_CURRENT AC [] "AD/D,DBUS/RAM,RAMADR/#,ACALU/B,ACN/@2,DEST/AD,B/@1,AD PARITY,DT/3T" ; 1568 []_EA FROM [] "AD/57,RSRC/0A,A/@2,DEST/AD,B/@1" ; 1569 ; KS10.MCR[7,3] 15:03 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 ; 1570 []_EA "AD/57,RSRC/0A,A/HR,DEST/AD,B/@1" ; 1571 []_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" ; 1572 []_FE "AD/D,DEST/AD*.5,B/@1,DBUS/DBM,DBM/DP,SCAD/A+B,SCADA/S#,S#/0,SCADB/FE,BYTE/BYTE5" ; 1573 []_FLAGS "AD/D.AND.A,DBUS/PC FLAGS,A/MASK,DEST/AD,B/@1,RSRC/0Q" ; 1574 []_P "AD/D,DEST/A,A/@1,B/@1,DBUS/DBM,DBM/DP,BYTE/BYTE1,SCAD/A+B,SCADA/S#,S#/0,SCADB/FE" ; 1575 []_PC WITH FLAGS "AD/D,DBUS/PC FLAGS,RSRC/0A,A/PC,DEST/AD,B/@1" ; 1576 []_Q "AD/Q,DEST/AD,B/@1" ; 1577 []_Q*.5 "AD/Q,DEST/AD*.5,B/@1" ; 1578 []_Q*2 "AD/Q,DEST/AD*2,B/@1" ; 1579 []_Q*2 LONG "AD/Q,DEST/Q_Q*2,B/@1" ; 1580 []_Q+1 "AD/A+Q,A/ONE,DEST/AD,B/@1" ; 1581 []_RAM "AD/D,DBUS/RAM,RAMADR/RAM,DEST/AD,B/@1,AD PARITY" ; 1582 []_TIME "AD/44,RSRC/DA,A/MASK,DBUS/DBM,DBM/EXP,DEST/AD,B/@1" ; 1583 []_VMA "AD/D,DEST/AD,B/@1,DBUS/DBM,DBM/VMA" ; 1584 []_XR "AD/D,DBUS/RAM,RAMADR/XR#,DEST/AD,B/@1" ; 1585 []_[] "AD/A,A/@2,DEST/AD,B/@1" ; 1586 []_[] SWAP "AD/D,DBUS/DBM,DBM/DP SWAP,DEST/A,A/@2,B/@1" ; 1587 []_[] XWD 0 "AD/45,DEST/AD,B/@1,DBM/#,DBUS/DBM,#/@2,RSRC/D0,A/MASK" ; 1588 []_[]*.5 "AD/A,A/@2,DEST/AD*.5,B/@1" ; 1589 []_[]*.5 LONG "AD/A,A/@2,DEST/Q_Q*.5,B/@1" ; 1590 []_[]*2 "AD/A,A/@2,DEST/AD*2,B/@1" ; 1591 []_[]*2 LONG "AD/A,A/@2,DEST/Q_Q*2,B/@1" ; 1592 []_[]*4 "AD/A+B,A/@2,B/@1,DEST/AD*2" ; 1593 []_[]+# "AD/D+A,DBUS/DBM,DBM/#,A/@2,DEST/AD,B/@1" ; 1594 []_[]+.25 "AD/0+A,A/@2,DEST/AD,B/@1, ADD .25" ; 1595 []_[]+0 "AD/0+A,A/@2,DEST/AD,B/@1" ; 1596 []_[]+1 "AD/A+B,A/ONE,B/@1,B/@2,DEST/AD" ; 1597 []_[]+1000001 "AD/D+A,A/@2,DBUS/DBM,DBM/#,#/1,DEST/AD,B/@1" ; 1598 []_[]+AC "AD/D+A,A/@2,DBUS/RAM,RAMADR/AC#,DEST/AD,B/@1" ; 1599 []_[]+AC[] "AD/D+A,A/@2,DBUS/RAM,RAMADR/AC*#,ACALU/AC+N,ACN/@3,DEST/AD,B/@1,DT/3T" ; 1600 []_[]+Q "AD/A+Q,A/@2,DEST/AD,B/@1" ; 1601 []_[]+RAM "AD/D+A,A/@2,DBUS/RAM,RAMADR/RAM,DEST/AD,B/@1" ; 1602 []_[]+XR "AD/D+A,DBUS/RAM,RAMADR/XR#,A/@2,DEST/AD,B/@1,HOLD LEFT" ; 1603 []_[]+[] "AD/A+B,A/@3,B/@1,B/@2,DEST/AD" ; 1604 []_[]+[]+.25 "AD/A+B,A/@3,B/@1,B/@2,DEST/AD, ADD .25" ; 1605 []_[]-# "AD/A-D-.25,DBUS/DBM,DBM/#,A/@2,DEST/AD,B/@1, ADD .25" ; 1606 []_[]-1 "AD/B-A-.25,B/@1,A/ONE,DEST/AD,ADD .25" ; 1607 []_[]-1000001 "AD/A-D-.25,A/@2,DBUS/DBM,DBM/#,#/1,DEST/AD,B/@1,ADD .25" ; 1608 []_[]-AC "AD/A-D-.25,A/@2,DBUS/RAM,RAMADR/AC#,DEST/AD,B/@1,ADD .25" ; 1609 []_[]-RAM "AD/A-D-.25,A/@2,DBUS/RAM,RAMADR/RAM,DEST/AD,B/@1,ADD .25" ; 1610 []_[]-[] "AD/B-A-.25,B/@1,B/@2,A/@3,DEST/AD,ADD .25" ; 1611 []_[]-[] REV "AD/A-B-.25,B/@1,B/@3,A/@2,DEST/AD,ADD .25" ; 1612 []_[].AND.# "AD/D.AND.A,DBUS/DBM,DBM/#,DEST/AD,A/@2,B/@1" ; 1613 []_[].AND.# CLR LH "AD/ZERO,RSRC/DA,DBUS/DBM,DBM/#,DEST/AD,A/@2,B/@1" ; 1614 []_[].AND.# CLR RH "AD/D.AND.A,RSRC/0Q,DBUS/DBM,DBM/#,DEST/AD,A/@2,B/@1" ; 1615 []_(AC[].AND.[])*.5 "AD/D.AND.A,DEST/AD*.5,A/@3,B/@1,RAMADR/AC*#,DBUS/RAM,ACALU/AC+N,ACN/@2" ; 1616 []_(Q+1)*.5 "AD/A+Q,A/ONE,DEST/AD*.5,B/@1" ; 1617 []_(#-[])*2 "AD/D-A-.25,DEST/AD*2,A/@2,B/@1,DBUS/DBM,DBM/#,ADD .25" ; 1618 []_(-[])*.5 "AD/-A-.25,A/@2,DEST/AD*.5,B/@1,ADD .25" ; 1619 []_(-[]-.25)*.5 LONG "AD/-A-.25,A/@2,DEST/Q_Q*.5,B/@1" ; 1620 []_(-[]-.25)*2 LONG "AD/-A-.25,A/@2,DEST/Q_Q*2,B/@1" ; 1621 ; KS10.MCR[7,3] 15:03 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 ; 1622 []_([].AND.#)*.5 "AD/D.AND.A,DBUS/DBM,DBM/#,DEST/AD*.5,A/@2,B/@1" ; 1623 []_([].AND.#)*2 "AD/D.AND.A,DBUS/DBM,DBM/#,DEST/AD*2,A/@2,B/@1" ; 1624 []_([].AND.NOT.#)*.5 "AD/.NOT.D.AND.A,DBUS/DBM,DBM/#,DEST/AD*.5,A/@2,B/@1" ; 1625 []_([].AND.NOT.#)*2 "AD/.NOT.D.AND.A,DBUS/DBM,DBM/#,DEST/AD*2,A/@2,B/@1" ; 1626 []_([].AND.[])*.5 "AD/A.AND.B,DEST/AD*.5,A/@3,B/@1,B/@2" ; 1627 []_([].AND.[])*2 "AD/A.AND.B,DEST/AD*2,A/@3,B/@1,B/@2" ; 1628 []_([].OR.#)*.5 "AD/D.OR.A,DBUS/DBM,DBM/#,DEST/AD*.5,A/@2,B/@1" ; 1629 []_([].OR.#)*2 "AD/D.OR.A,DBUS/DBM,DBM/#,DEST/AD*2,A/@2,B/@1" ; 1630 []_([]+#)*2 "AD/D+A,DBUS/DBM,DBM/#,DEST/AD*2,A/@2,B/@1" ; 1631 []_([]+1)*2 "AD/A+B,A/ONE,B/@1,B/@2,DEST/AD*2" ; 1632 []_([]+[])*.5 LONG "AD/A+B,A/@3,B/@1,B/@2,DEST/Q_Q*.5" ; 1633 []_([]+[])*2 LONG "AD/A+B,A/@3,B/@1,B/@2,DEST/Q_Q*2" ; 1634 []_([]-[])*.5 LONG "AD/B-A-.25,A/@3,B/@1,B/@2,DEST/Q_Q*.5, ADD .25" ; 1635 []_([]-[])*2 LONG "AD/B-A-.25,A/@3,B/@1,B/@2,DEST/Q_Q*2, ADD .25" ; 1636 []_([]+[]+.25)*.5 LONG "AD/A+B,A/@3,B/@1,B/@2,DEST/Q_Q*.5, ADD .25" ; 1637 []_[].AND.AC "AD/D.AND.A,DBUS/RAM,RAMADR/AC#,A/@2,DEST/AD,B/@1" ; 1638 []_[].AND.NOT.# "AD/.NOT.D.AND.A,DBUS/DBM,DBM/#,A/@2,DEST/AD,B/@1" ; 1639 []_[].AND.NOT.[] "AD/.NOT.A.AND.B,DEST/AD,B/@1,B/@2,A/@3" ; 1640 []_[].AND.NOT.AC "AD/.NOT.D.AND.A,DBUS/RAM,RAMADR/AC#,A/@2,DEST/AD,B/@1" ; 1641 []_[].AND.Q "AD/A.AND.Q,A/@2,DEST/AD,B/@1" ; 1642 []_[].AND.[] "AD/A.AND.B,A/@3,B/@1,B/@2,DEST/AD" ; 1643 []_[].EQV.AC "AD/D.EQV.A,DBUS/RAM,RAMADR/AC#,A/@2,DEST/AD,B/@1" ; 1644 []_[].EQV.Q "AD/A.EQV.Q,A/@2,DEST/AD,B/@1" ; 1645 []_[].OR.# "AD/D.OR.A,DBUS/DBM,DBM/#,A/@2,DEST/AD,B/@1" ; 1646 []_[].OR.AC "AD/D.OR.A,DBUS/RAM,RAMADR/AC#,A/@2,DEST/AD,B/@1" ; 1647 []_[].OR.FLAGS "AD/D.OR.A,DBUS/PC FLAGS,RSRC/0A,A/@1,DEST/AD,B/@1" ; 1648 []_[].OR.[] "AD/A.OR.B,A/@3,B/@2,B/@1,DEST/AD" ; 1649 []_[].XOR.# "AD/D.XOR.A,DBUS/DBM,DBM/#,DEST/AD,A/@2,B/@1" ; 1650 []_[].XOR.AC "AD/D.XOR.A,DBUS/RAM,RAMADR/AC#,A/@1,DEST/AD,B/@2" ; 1651 []_[].XOR.[] "AD/A.XOR.B,A/@3,B/@1,B/@2,DEST/AD" ; 1652 ; 1653 [] LEFT_0 "AD/57,RSRC/0B,DEST/AD,B/@1" ; 1654 [] RIGHT_0 "AD/53,RSRC/D0,DEST/AD,B/@1" ; 1655 [] LEFT_-1 "AD/54,RSRC/0B,DEST/AD,A/MASK,B/@1" ; 1656 [] RIGHT_-1 "AD/53,RSRC/0A,DEST/AD,A/MASK,B/@1" ; 1657 ; 1658 ; 1659 []_+SIGN "[@1]_[@1].AND.#, #/777, HOLD RIGHT" ; 1660 []_-SIGN "[@1]_[@1].OR.#, #/777000, HOLD RIGHT" ; 1661 ;THE FOLLOWING 2 MACROS ARE USED IN DOUBLE FLOATING STUFF ; 1662 ; THEY ASSUME THAT THE OPERAND HAS BEEN SHIFTED RIGHT 1 PLACE. ; 1663 ; THEY SHIFT 1 MORE PLACE ; 1664 []_+SIGN*.5 "AD/.NOT.D.AND.A,A/@1,B/@1,DEST/AD*.5,DBUS/DBM,DBM/#,#/777400,RSRC/0A" ; 1665 []_-SIGN*.5 "AD/D.OR.A,A/@1,B/@1,DEST/AD*.5,DBUS/DBM,DBM/#,#/777400,RSRC/0A" ; 1666 ; KS10.MCR[7,3] 15:03 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 -- Q ; 1667 .TOC "MACROS -- DATA PATH CHIP -- Q" ; 1668 ; 1669 Q-[] "AD/Q-A-.25,A/@1,ADD .25" ; 1670 Q.AND.NOT.[] "AD/.NOT.A.AND.Q,A/@1,DEST/PASS" ; 1671 Q_[] "AD/A,DEST/Q_AD,A/@1" ; 1672 Q_[]-[] "AD/A-B-.25,A/@1,B/@2,DEST/Q_AD,ADD .25" ; 1673 Q_[]+[] "AD/A+B,A/@1,B/@2,DEST/Q_AD" ; 1674 Q_[].AND.[] "AD/A.AND.B,A/@1,B/@2,DEST/Q_AD" ; 1675 Q_.NOT.AC[] "AD/.NOT.D,DBUS/RAM,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DEST/Q_AD,DT/3T" ; 1676 Q_-[] "AD/-A-.25,DEST/Q_AD,A/@1, ADD .25" ; 1677 Q_-1 "Q_-[ONE]" ; 1678 Q_-AC[] "AD/-D-.25,DBUS/RAM,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DEST/Q_AD,ADD .25,DT/3T" ; 1679 Q_-Q "AD/-Q-.25,ADD .25,DEST/Q_AD" ; 1680 Q_AC "AD/D,DBUS/RAM,RAMADR/AC#,DEST/Q_AD,CHK PARITY" ; 1681 Q_AC[] "AD/D,DBUS/RAM,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DEST/Q_AD,CHK PARITY,DT/3T" ; 1682 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" ; 1683 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" ; 1684 Q_.NOT.Q "AD/.NOT.Q,DEST/Q_AD" ; 1685 Q_# "AD/D,DBUS/DBM,DBM/#,DEST/Q_AD" ; 1686 Q_0 "AD/ZERO,DEST/Q_AD" ; 1687 Q_0 XWD [] "AD/47,DEST/Q_AD,DBM/#,DBUS/DBM,#/@1,RSRC/DA,A/MASK" ; 1688 Q_Q+.25 "AD/0+Q,DEST/Q_AD,ADD .25" ; 1689 Q_Q+1 "AD/A+Q,A/ONE,DEST/Q_AD" ; 1690 Q_Q-1 "AD/Q-A-.25,A/ONE,DEST/Q_AD, ADD .25" ; 1691 Q_Q+AC "AD/D+Q,DBUS/RAM,RAMADR/AC#,DEST/Q_AD" ; 1692 Q_Q*.5 "[MAG]_[MASK]*.5 LONG, SHSTYLE/NORM" ; 1693 Q_Q*2 "[MASK]_[MAG]*2 LONG, SHSTYLE/NORM" ; 1694 Q_Q.OR.# "AD/D.OR.Q,DBUS/DBM,DBM/#,DEST/Q_AD" ; 1695 Q_Q.AND.# "AD/D.AND.Q,DBUS/DBM,DBM/#,DEST/Q_AD" ; 1696 Q_Q.AND.[] "AD/A.AND.Q,A/@1,DEST/Q_AD" ; 1697 Q_Q.AND.NOT.[] "AD/.NOT.A.AND.Q,A/@1,DEST/Q_AD" ; 1698 Q_Q+[] "AD/A+Q,A/@1,DEST/Q_AD" ; 1699 Q_[].AND.Q "AD/A.AND.Q,A/@1,DEST/Q_AD" ; 1700 Q_[].OR.Q "AD/A.OR.Q,A/@1,DEST/Q_AD" ; 1701 ; KS10.MCR[7,3] 15:03 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 -- MISC. ; 1702 .TOC "MACROS -- DATA PATH CHIP -- MISC." ; 1703 ; 1704 CLEAR []0 "AD/D.AND.A,A/@1,DBUS/DBM,DBM/#,#/377777,DEST/AD,B/@1,HOLD RIGHT" ; 1705 CLEAR ARX0 "CLEAR [ARX]0" ; 1706 ; 1707 ;CYCLE CHIP REGISTERS THRU AD SO WE CAN TEST BITS ; 1708 READ XR "AD/D,DBUS/RAM,RAMADR/XR#" ; 1709 READ [] "AD/B,B/@1" ; 1710 READ Q "AD/Q" ; 1711 ; 1712 ;TEST BITS IN REGISTERS (SKIP IF ZERO) ; 1713 TR [] "AD/D.AND.A,DBUS/DBM,DBM/#,A/@1,SKIP ADR.EQ.0,DT/3T" ; 1714 TL [] "AD/D.AND.A,DBUS/DBM,DBM/#,A/@1,SKIP ADL.EQ.0,DT/3T" ; 1715 ; 1716 ; 1717 ;CAUSE BITS -2 AND -1 TO MATCH BIT 0. ; 1718 FIX [] SIGN "AD/D,DEST/A,A/@1,B/@1,DBUS/DP,HOLD RIGHT" ; 1719 ; 1720 ;GENERATE A MASK IN Q AND ZERO A 2901 REGISTER ; 1721 GEN MSK [] "AD/ZERO,DEST/Q_Q*2,B/@1,ONES" ; 1722 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 45 ; KS10.MIC[7,3] 14:54 7-JAN-1986 MACROS -- STORE IN AC ; 1723 .TOC "MACROS -- STORE IN AC" ; 1724 ; 1725 FM WRITE "FMWRITE/1" ; 1726 ; 1727 AC[]_[] VIA AD "AD/B,DEST/PASS,B/@2,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DBUS/DP,FM WRITE,CHK PARITY" ; 1728 AC_[] VIA AD "AD/B,DEST/PASS,B/@1,RAMADR/AC#,DBUS/DP,FM WRITE,CHK PARITY" ; 1729 AC[]_[] "AD/A,DEST/A,B/@2,A/@2,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DBUS/DP, FM WRITE" ; 1730 AC[]_[] TEST "AD/D,DBUS/DP,DEST/A,B/@2,A/@2,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DBUS/DP, FM WRITE" ; 1731 AC[]_[]+1 "AD/A+B,DEST/PASS,A/ONE,B/@2,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DBUS/DP,FM WRITE" ; 1732 AC[]_[]*2 "AD/A+B,DEST/PASS,A/@2,B/@2,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DBUS/DP,FM WRITE" ; 1733 AC_[] "AD/A,DEST/A,B/@1,A/@1,RAMADR/AC#,DBUS/DP, FM WRITE" ; 1734 AC_[] TEST "AD/D,DBUS/DP,DEST/A,B/@1,A/@1,RAMADR/AC#,DBUS/DP, FM WRITE" ; 1735 AC_[]+1 "AD/A+B,DEST/PASS,A/ONE,B/@1,RAMADR/AC#, FM WRITE" ; 1736 AC_[]+Q "AD/A+Q,DEST/PASS,A/@1,B/@1,RAMADR/AC#, FM WRITE" ; 1737 AC[]_[]+Q "AD/A+Q,DEST/PASS,A/@2,B/@2,RAMADR/AC*#,ACALU/AC+N,ACN/@1, FM WRITE" ; 1738 AC[]_[]-[] "AD/A-B-.25,DEST/PASS,B/@3,A/@2,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DBUS/DP,FM WRITE,ADD .25" ; 1739 AC[]_[]+[] "AD/A+B,DEST/PASS,B/@3,A/@2,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DBUS/DP,FM WRITE" ; 1740 AC_[]+[] "AD/A+B,DEST/PASS,B/@2,A/@1,RAMADR/AC#,DBUS/DP,FM WRITE" ; 1741 AC[]_[].AND.[] "AD/A.AND.B,DEST/PASS,B/@3,A/@2,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DBUS/DP,FM WRITE" ; 1742 AC[]_Q.AND.[] "AD/A.AND.Q,DEST/PASS,A/@2,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DBUS/DP,FM WRITE" ; 1743 AC[]_[].EQV.Q "AD/A.EQV.Q,DEST/PASS,A/@2,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DBUS/DP,FM WRITE" ; 1744 AC[]_-[] "AD/-B-.25,DEST/PASS,B/@2,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DBUS/DP,FM WRITE,ADD .25" ; 1745 AC_-[] "AD/-A-.25,DEST/PASS,A/@1,RAMADR/AC#,DBUS/DP, ADD .25,FM WRITE" ; 1746 AC_[].OR.[] "AD/A.OR.B,A/@1,B/@2,RAMADR/AC#,DBUS/DP, FM WRITE" ; 1747 AC[]_.NOT.[] "AD/.NOT.B,DEST/PASS,B/@2,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DBUS/DP,FM WRITE" ; 1748 AC_.NOT.[] "AD/.NOT.B,DEST/PASS,B/@1,RAMADR/AC#,DBUS/DP,FM WRITE" ; 1749 AC[]_-Q "AD/-Q-.25,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DBUS/DP,FM WRITE,ADD .25" ; 1750 AC_Q "AD/Q,RAMADR/AC#,DBUS/DP, FM WRITE" ; 1751 AC[]_0 "AD/ZERO,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DBUS/DP, FM WRITE" ; 1752 AC[]_1 "AD/B,DEST/PASS,B/ONE,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DBUS/DP,FM WRITE" ; 1753 AC[]_Q "AD/Q,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DBUS/DP, FM WRITE" ; 1754 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 46 ; KS10.MIC[7,3] 14:54 7-JAN-1986 MACROS -- MICROCODE WORK SPACE ; 1755 .TOC "MACROS -- MICROCODE WORK SPACE" ; 1756 ; 1757 ; 1758 WORK[]_Q "AD/Q,DEST/PASS,RAMADR/#,WORK/@1,FM WRITE" ; 1759 Q_WORK[] "AD/D,DEST/Q_AD,RAMADR/#,DBUS/RAM,WORK/@1,DT/3T" ; 1760 WORK[]_0 "AD/ZERO,DEST/PASS,RAMADR/#,WORK/@1,FM WRITE" ; 1761 WORK[]_1 "AD/B,DEST/PASS,RAMADR/#,WORK/@1,B/ONE,FM WRITE" ; 1762 WORK[]_[] "AD/B,DEST/PASS,RAMADR/#,WORK/@1,B/@2,FM WRITE" ; 1763 WORK[]_[] CLR LH "AD/47,RSRC/AB,DEST/PASS,RAMADR/#,WORK/@1,B/@2,A/MASK,FM WRITE" ; 1764 WORK[]_[]-1 "AD/A-B-.25,A/@2,B/ONE,DEST/PASS,RAMADR/#,WORK/@1,FM WRITE, ADD .25" ; 1765 WORK[]_.NOT.[] "AD/.NOT.B,DEST/PASS,RAMADR/#,WORK/@1,B/@2,FM WRITE" ; 1766 WORK[]_[].AND.[] "AD/A.AND.B,DEST/PASS,RAMADR/#,WORK/@1,A/@2,B/@3,FM WRITE" ; 1767 [].AND.NOT.WORK[] "AD/.NOT.D.AND.A,A/@1,DBUS/RAM,RAMADR/#,WORK/@2,DT/3T" ; 1768 [].AND.WORK[] "AD/D.AND.A,A/@1,DBUS/RAM,RAMADR/#,WORK/@2,DT/3T" ; 1769 []_[]+WORK[] "AD/D+A,A/@2,DEST/AD,B/@1,DBUS/RAM,RAMADR/#,WORK/@3,DT/3T" ; 1770 []_[].AND.WORK[] "AD/D.AND.A,A/@2,DEST/AD,B/@1,DBUS/RAM,RAMADR/#,WORK/@3,DT/3T" ; 1771 []_[].AND.NOT.WORK[] "AD/.NOT.D.AND.A,A/@2,DEST/AD,B/@1,DBUS/RAM,RAMADR/#,WORK/@3,DT/3T" ; 1772 []_[].OR.WORK[] "AD/D.OR.A,A/@2,DEST/AD,B/@1,DBUS/RAM,RAMADR/#,WORK/@3,DT/3T" ; 1773 []_WORK[] "AD/D,DEST/AD,B/@1,DBUS/RAM,RAMADR/#,WORK/@2,DT/3T" ; 1774 []_.NOT.WORK[] "AD/.NOT.D,DEST/AD,B/@1,DBUS/RAM,RAMADR/#,WORK/@2,DT/3T" ; 1775 []_-WORK[] "AD/-D-.25,ADD .25,DEST/AD,B/@1,DBUS/RAM,RAMADR/#,WORK/@2,DT/3T" ; 1776 []_WORK[]+1 "AD/D+A,A/ONE,DEST/AD,B/@1,DBUS/RAM,RAMADR/#,WORK/@2,DT/3T" ; 1777 Q_Q-WORK[] "AD/Q-D-.25,DEST/Q_AD,DBUS/RAM,RAMADR/#,WORK/@1,ADD .25,DT/3T" ; 1778 []_[]-WORK[] "AD/A-D-.25,DEST/AD,A/@2,B/@1,DBUS/RAM,RAMADR/#,WORK/@3,ADD .25,DT/3T" ; 1779 ; 1780 RAM_[] "AD/B,DEST/PASS,RAMADR/RAM,B/@1,FM WRITE" ; 1781 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 47 ; KS10.MIC[7,3] 14:54 7-JAN-1986 MACROS -- MEMORY CONTROL ; 1782 .TOC "MACROS -- MEMORY CONTROL" ; 1783 ; 1784 MEM CYCLE "MEM/1" ; 1785 ; 1786 ;THE FOLLOWING MACROS CONTROL MEMORY ADDRESS ; 1787 LOAD VMA "MEM CYCLE,LDVMA/1" ; 1788 FORCE EXEC "FORCE EXEC/1" ; 1789 VMA PHYSICAL "PHYSICAL/1,FORCE EXEC/1,FORCE USER/0,EXT ADR/1,LOAD VMA" ; 1790 VMA PHYSICAL WRITE "LOAD VMA,VMA PHYSICAL,WAIT/1,MEM/1,WRITE CYCLE/1,WRITE TEST/0" ; 1791 VMA PHYSICAL READ "LOAD VMA,VMA PHYSICAL,WAIT/1,MEM/1,READ CYCLE/1,WRITE TEST/0" ; 1792 VMA EXTENDED "EXT ADR/1" ; 1793 ; 1794 PXCT EA "PXCT/E1" ; 1795 PXCT DATA "PXCT/D1" ; 1796 PXCT BLT DEST "PXCT/D1" ; 1797 PXCT BYTE PTR EA "PXCT/E2" ; 1798 PXCT BYTE DATA "PXCT/D2" ; 1799 PXCT STACK WORD "PXCT/D2" ; 1800 PXCT BLT SRC "PXCT/D2" ; 1801 PXCT EXTEND EA "PXCT/E2" ; 1802 ; 1803 ;THE FOLLOWING MACROS GET MEMORY CYCLES STARTED ; 1804 WRITE TEST "WRITE TEST/1,WAIT/1" ; 1805 START READ "MEM CYCLE,READ CYCLE/1,WAIT/1" ; 1806 START WRITE "MEM CYCLE,WRITE TEST,WRITE CYCLE/1,WAIT/1" ; 1807 START NO TEST WRITE "MEM CYCLE,WRITE CYCLE/1,WAIT/1" ; 1808 FETCH "START READ,FETCH/1,PXCT/CURRENT,WAIT/1" ; 1809 ; 1810 ;THE FOLLOWING MACROS COMPLETE MEMORY CYCLES ; 1811 MEM WAIT "MEM CYCLE,WAIT/1" ; 1812 MEM READ "MEM WAIT,DBUS/DBM,DBM/MEM" ; 1813 MEM WRITE "MEM WAIT,DT/3T" ; 1814 SPEC MEM READ "SPEC/WAIT,DBUS/DBM,DBM/MEM" ; 1815 SPEC MEM WRITE "SPEC/WAIT,DT/3T" ; 1816 ; 1817 ; 1818 ;THINGS WHICH WRITE MEMORY ; 1819 MEM_[] "AD/B,DEST/PASS,B/@1,DBUS/DP,RAMADR/VMA,CHK PARITY" ; 1820 MEM_Q "AD/Q,DBUS/DP,RAMADR/VMA" ; 1821 ; 1822 ; 1823 ;THINGS WHICH READ MEMORY ; 1824 []_IO DATA "AD/D,DBUS/DBM,RAMADR/VMA,DEST/AD,B/@1" ; 1825 []_MEM "AD/D,DBUS/DBM,RAMADR/VMA,DEST/AD,B/@1,CHK PARITY" ; 1826 []_MEM THEN FETCH "AD/D,DBUS/DBM,RAMADR/VMA,DEST/A,A/PC,B/@1,CHK PARITY, FETCH, LOAD VMA" ; 1827 []_MEM*.5 "AD/D,DBUS/DBM,RAMADR/VMA,DEST/AD*.5,B/@1,CHK PARITY" ; 1828 []_MEM.AND.MASK "AD/D.AND.A,A/MASK,DBUS/DBM,RAMADR/VMA,DEST/AD,B/@1,CHK PARITY" ; 1829 []_(MEM.AND.[])*.5 "AD/D.AND.A,A/@2,DBUS/DBM,RAMADR/VMA,DEST/AD*.5,B/@1,CHK PARITY" ; 1830 Q_MEM "AD/D,DBUS/DBM,RAMADR/VMA,DEST/Q_AD,CHK PARITY" ; 1831 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 48 ; KS10.MIC[7,3] 14:54 7-JAN-1986 MACROS -- VMA ; 1832 .TOC "MACROS -- VMA" ; 1833 ; 1834 VMA_[] "AD/A,A/@1,DEST/PASS,LOAD VMA" ; 1835 VMA_[] WITH FLAGS "AD/A,A/@1,DEST/PASS,LOAD VMA,WAIT/1, MEM/1, EXT ADR/1, DP FUNC/1, DT/3T" ; 1836 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" ; 1837 VMA_[]+1 "AD/A+B,A/ONE,B/@1,DEST/AD,HOLD LEFT,LOAD VMA" ; 1838 VMA_[]-1 "AD/B-A-.25,A/ONE,B/@1,ADD .25,HOLD LEFT,LOAD VMA" ; 1839 VMA_[]+XR "AD/D+A,DBUS/RAM,RAMADR/XR#,A/@1,LOAD VMA" ; 1840 VMA_[]+[] "AD/A+B,DEST/PASS,A/@1,B/@2,LOAD VMA" ; 1841 ; 1842 NEXT [] PHYSICAL WRITE "AD/A+B,A/ONE,B/@1,DEST/AD,HOLD LEFT,LOAD VMA, VMA PHYSICAL, START WRITE" ; 1843 ; 1844 ;MACROS TO LOAD A 2901 REGISTER WITH VMA FLAG BITS ; 1845 []_VMA FLAGS "AD/45,DEST/AD,B/@1,DBM/#,DBUS/DBM,RSRC/D0,A/MASK" ; 1846 []_VMA IO READ "[@1]_VMA FLAGS,READ CYCLE/1,IO CYCLE/1,WRITE TEST/0, PHYSICAL/1, FORCE EXEC/1, FORCE USER/0" ; 1847 []_VMA IO WRITE "[@1]_VMA FLAGS,WRITE CYCLE/1,IO CYCLE/1,WRITE TEST/0, PHYSICAL/1, FORCE EXEC/1, FORCE USER/0" ; 1848 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 49 ; KS10.MIC[7,3] 14:54 7-JAN-1986 MACROS -- TIME CONTROL ; 1849 .TOC "MACROS -- TIME CONTROL" ; 1850 ; 1851 AC "RAMADR/AC#" ; 1852 AC[] "RAMADR/AC*#,ACALU/AC+N,ACN/@1" ; 1853 XR "RAMADR/XR#" ; 1854 VMA "RAMADR/VMA" ; 1855 WORK[] "RAMADR/#, WORK/@1" ; 1856 ; 1857 2T "T/2T" ; 1858 3T "T/3T" ; 1859 4T "T/4T" ; 1860 5T "T/5T" ; 1861 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 50 ; KS10.MIC[7,3] 14:54 7-JAN-1986 MACROS -- SCAD, SC, FE LOGIC ; 1862 .TOC "MACROS -- SCAD, SC, FE LOGIC" ; 1863 ; 1864 LOAD SC "LOADSC/1" ; 1865 LOAD FE "LOADFE/1" ; 1866 STEP SC "SCAD/A-1,SCADA/SC,LOAD SC,SKIP/SC" ; 1867 SHIFT "SCAD/A+B,SCADA/S#,SCADB/FE,S#/1, LOAD FE, MULTI SHIFT/1" ; 1868 ; 1869 SC_SC-1 "SCAD/A-1,SCADA/SC,LOAD SC" ; 1870 SC_SHIFT "SCAD/A+B,SCADA/S#,S#/0,SCADB/SHIFT,LOAD SC" ; 1871 SC_SHIFT-1 "SCAD/A+B,SCADA/S#,S#/1777,SCADB/SHIFT,LOAD SC" ; 1872 SC_SHIFT-2 "SCAD/A+B,SCADA/S#,S#/1776,SCADB/SHIFT,LOAD SC" ; 1873 SC_-SHIFT "SCAD/A-B,SCADA/S#,S#/0000,SCADB/SHIFT,LOAD SC" ; 1874 SC_-SHIFT-1 "SCAD/A-B,SCADA/S#,SCADB/SHIFT,S#/1777,LOAD SC" ; 1875 SC_-SHIFT-2 "SCAD/A-B,SCADA/S#,SCADB/SHIFT,S#/1776,LOAD SC" ; 1876 SC_SC-EXP "SCAD/A-B,SCADA/SC,SCADB/EXP,LOAD SC" ; 1877 SC_SC-EXP-1 "SCAD/A-B-1,SCADA/SC,SCADB/EXP,LOAD SC" ; 1878 SC_SC-FE-1 "SCAD/A-B-1,SCADA/SC,SCADB/FE,LOAD SC" ; 1879 SC_SC-FE "SCAD/A-B,SCADA/SC,SCADB/FE,LOAD SC" ; 1880 SC_EXP "SCAD/A+B,SCADA/S#,S#/0,SCADB/EXP,LOAD SC" ; 1881 SC_S#-FE "SCAD/A-B,SCADA/S#,SCADB/FE,LOAD SC" ; 1882 SC_FE+S# "SCAD/A+B,SCADA/S#,SCADB/FE,LOAD SC" ; 1883 SC_FE "SCAD/A.OR.B,SCADA/S#,S#/0,SCADB/FE,LOAD SC" ; 1884 SC_S# "SCAD/A,SCADA/S#,LOAD SC" ; 1885 ; 1886 ; 1887 SC_36. "SC_S#,S#/36." ; 1888 SC_35. "SC_S#,S#/35." ; 1889 SC_34. "SC_S#,S#/34." ; 1890 SC_28. "SC_S#,S#/28." ; 1891 SC_27. "SC_S#,S#/27." ; 1892 SC_26. "SC_S#,S#/26." ; 1893 SC_24. "SC_S#,S#/24." ; 1894 SC_22. "SC_S#,S#/22." ; 1895 SC_20. "SC_S#,S#/20." ; 1896 SC_19. "SC_S#,S#/19." ; 1897 SC_14. "SC_S#,S#/14." ; 1898 SC_11. "SC_S#,S#/11." ; 1899 SC_9. "SC_S#,S#/9." ; 1900 SC_8. "SC_S#,S#/8." ; 1901 SC_7 "SC_S#,S#/7" ; 1902 SC_6 "SC_S#,S#/6" ; 1903 SC_5 "SC_S#,S#/5" ; 1904 SC_4 "SC_S#,S#/4" ; 1905 SC_3 "SC_S#,S#/3" ; 1906 SC_2 "SC_S#,S#/2" ; 1907 SC_1 "SC_S#,S#/1" ; 1908 SC_0 "SC_S#,S#/0." ; 1909 SC_-1 "SC_S#,S#/1777" ; 1910 SC_-2 "SC_S#,S#/1776" ; 1911 ; KS10.MCR[7,3] 15:03 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 ; 1912 FE_-FE "SCAD/A-B,SCADA/S#,S#/0,SCADB/FE,LOAD FE" ; 1913 FE_-FE-1 "SCAD/A-B,SCADA/S#,S#/1777,SCADB/FE,LOAD FE" ; 1914 FE_FE-19 "SCAD/A+B,SCADB/FE,SCADA/S#,S#/1550,LOAD FE" ; 1915 FE_-FE+S# "SCAD/A-B,SCADA/S#,SCADB/FE,LOAD FE" ; 1916 FE_FE+SC "SCAD/A+B,SCADA/SC,SCADB/FE, LOAD FE" ; 1917 FE_FE.AND.S# "SCAD/A.AND.B,SCADA/S#,SCADB/FE, LOAD FE" ; 1918 FE_P "SCAD/A,SCADA/BYTE1, LOAD FE" ; 1919 FE_S "SCAD/A+B, SCADA/S#, S#/0 ,SCADB/SIZE, LOAD FE" ; 1920 FE_S+2 "SCAD/A+B, SCADA/S#, S#/20, SCADB/SIZE, LOAD FE" ; 1921 FE_-S-20 "SCAD/A-B,SCADA/S#,S#/1760,SCADB/SIZE, LOAD FE" ; 1922 FE_-S-10 "SCAD/A-B,SCADA/S#,S#/1770,SCADB/SIZE, LOAD FE" ; 1923 FE_S# "SCAD/A,SCADA/S#,LOAD FE" ; 1924 FE_S#-FE "SCAD/A-B,SCADA/S#,SCADB/FE,LOAD FE" ; 1925 FE_-2 "FE_S#,S#/1776" ; 1926 FE_-12. "FE_S#,S#/1764" ; 1927 FE_0 "FE_S#,S#/0" ; 1928 FE_-1 "FE_S#,S#/1777" ; 1929 FE_FE+1 "SCAD/A+B,SCADA/S#,SCADB/FE,S#/1,LOAD FE" ; 1930 FE_FE+2 "SCAD/A+B,SCADA/S#,SCADB/FE,S#/2,LOAD FE" ; 1931 FE_FE+10 "SCAD/A+B,SCADA/S#,SCADB/FE,S#/10,LOAD FE" ; 1932 FE_FE-1 "SCAD/A+B,SCADA/S#,SCADB/FE,S#/1777,LOAD FE" ; 1933 FE_FE+4 "SCAD/A+B,SCADA/S#,SCADB/FE,S#/4,LOAD FE" ; 1934 FE_EXP "SCAD/A+B,SCADA/S#,S#/0,SCADB/EXP,LOAD FE" ; 1935 FE_SC+EXP "SCAD/A+B,SCADA/SC,SCADB/EXP,LOAD FE" ; 1936 FE_SC-EXP "SCAD/A-B,SCADA/SC,SCADB/EXP,LOAD FE" ; 1937 FE_FE+P "SCAD/A+B,SCADA/BYTE1,SCADB/FE, LOAD FE" ; 1938 FE_FE-200 "SCAD/A+B,SCADA/S#,S#/1600,SCADB/FE,LOAD FE" ; 1939 FE_-FE+200 "SCAD/A-B,SCADA/S#,S#/200,SCADB/FE,LOAD FE" ; 1940 FE_FE+S# "SCAD/A+B,SCADA/S#,SCADB/FE,LOAD FE" ; 1941 ; 1942 ; 1943 GEN 17-FE "SCAD/A-B,SCADA/S#,S#/210,SCADB/FE" ; 1944 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 52 ; KS10.MIC[7,3] 14:54 7-JAN-1986 MACROS -- DATA PATH FIELD CONTROL ; 1945 .TOC "MACROS -- DATA PATH FIELD CONTROL" ; 1946 ; 1947 HOLD LEFT "CLKL/0,GENL/0" ; 1948 ADL PARITY "GENL/1" ; 1949 CHK PARITY L "CHKL/1" ; 1950 ; 1951 HOLD RIGHT "CLKR/0,GENR/0" ; 1952 ADR PARITY "GENR/1" ; 1953 CHK PARITY R "CHKR/1" ; 1954 ; 1955 AD PARITY "AD PARITY OK/1" ; 1956 CHK PARITY "CHKL/1,CHKR/1" ; 1957 BAD PARITY "CHKL/0,CHKR/0" ; 1958 ; 1959 INH CRY18 "SPEC/INHCRY18" ; 1960 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 53 ; KS10.MIC[7,3] 14:54 7-JAN-1986 MACROS -- SHIFT PATH CONTROL ; 1961 .TOC "MACROS -- SHIFT PATH CONTROL" ; 1962 ; 1963 ASH "SHSTYLE/NORM" ;ASH SHIFT ; 1964 LSH "SHSTYLE/NORM" ;LSH SHIFT (SAME HARDWARE AS ASH BUT ; 1965 ; BITS -2 AND -1 ARE PRESET TO ZERO) ; 1966 ROT "SHSTYLE/ROT" ; 1967 LSHC "SHSTYLE/LSHC" ; 1968 ASHC "SHSTYLE/ASHC" ; 1969 ROTC "SHSTYLE/ROTC" ; 1970 ONES "SHSTYLE/ONES" ;SHIFT IN 1 BITS ; 1971 DIV "SHSTYLE/DIV" ;SPECIAL PATH FOR DIVIDE (LIKE ROTC BUT ; 1972 ; COMPLEMENT BIT AS IT GOES AROUND) ; 1973 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 54 ; KS10.MIC[7,3] 14:54 7-JAN-1986 MACROS -- SPECIAL FUNCTIONS ; 1974 .TOC "MACROS -- SPECIAL FUNCTIONS" ; 1975 ; 1976 LOAD IR "SPEC/LOADIR" ;LOAD INSTRUCTION REG FROM ; 1977 ; DBUS0-DBUS8, LOAD AC# FROM ; 1978 ; DBUS9-DBUS12 ; 1979 ; UPDATE LAST-INST-PUBLIC PC FLAG ; 1980 LOAD INST "SPEC/LDINST" ; 1981 LOAD INST EA "SPEC/LOADXR,PXCT/CURRENT" ; 1982 LOAD BYTE EA "SPEC/LOADXR,PXCT/E2" ; 1983 LOAD IND EA "SPEC/LOADXR,PXCT/E1" ; 1984 LOAD SRC EA "SPEC/LOADXR,PXCT/BIS-SRC-EA" ; 1985 LOAD DST EA "SPEC/LOADXR,PXCT/BIS-DST-EA" ; 1986 ADD .25 "CRY38/1" ;GENERATE CARRY IN TO BIT 37 ; 1987 CALL [] "CALL/1,J/@1" ;CALL A SUBROUTINE ; 1988 LOAD PXCT "SPEC/LDPXCT" ;LOAD PXCT FLAGS IF EXEC MODE ; 1989 TURN OFF PXCT "SPEC/PXCT OFF" ; 1990 LOAD PAGE TABLE "SPEC/LDPAGE" ; 1991 LOAD AC BLOCKS "SPEC/LDACBLK" ; 1992 SWEEP "SPEC/SWEEP,PHYSICAL/1" ; 1993 CLRCSH "SPEC/CLRCSH,PHYSICAL/1" ; 1994 LOAD PI "SPEC/LDPI" ; 1995 SET HALT "SPEC/#,#/74" ; 1996 CLEAR CONTINUE "SPEC/#,#/40" ; 1997 CLEAR EXECUTE "SPEC/#,#/20" ; 1998 CLEAR RUN "SPEC/#,#/10" ; 1999 UNHALT "SPEC/#,#/62" ; 2000 SET APR ENABLES "SPEC/APR EN" ; 2001 ABORT MEM CYCLE "DBUS/DBM,RAMADR/VMA,DBM/MEM,AD/ZERO,SPEC/MEMCLR,LOAD VMA" ; 2002 CLR IO BUSY "SPEC/CLR IO BUSY" ; 2003 CLR IO LATCH "SPEC/CLR IO LATCH" ; 2004 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 55 ; KS10.MIC[7,3] 14:54 7-JAN-1986 MACROS -- PC FLAGS ; 2005 .TOC "MACROS -- PC FLAGS" ; 2006 ; 2007 CHANGE FLAGS "SPEC/FLAGS" ; 2008 ; 2009 SET AROV "CHANGE FLAGS, HOLD USER/1, SETOV/1, TRAP1/1" ; 2010 SET FOV "CHANGE FLAGS, HOLD USER/1, SETFOV/1, TRAP1/1" ; 2011 SET NO DIVIDE "CHANGE FLAGS, HOLD USER/1, SETOV/1, SETNDV/1, TRAP1/1" ; 2012 SET FL NO DIVIDE "SET NO DIVIDE, SETFOV/1" ; 2013 ; 2014 ASH AROV "SPEC/ASHOV" ; 2015 SET FPD "CHANGE FLAGS, HOLD USER/1, SETFPD/1" ; 2016 CLR FPD "CHANGE FLAGS, HOLD USER/1, CLRFPD/1" ; 2017 ; 2018 SET PDL OV "CHANGE FLAGS, HOLD USER/1, TRAP2/1" ; 2019 SET TRAP1 "CHANGE FLAGS, HOLD USER/1, TRAP1/1" ; 2020 ; 2021 LOAD PCU "CHANGE FLAGS, LD PCU/1" ; 2022 UPDATE USER "CHANGE FLAGS, HOLD USER/1" ; 2023 LEAVE USER "CHANGE FLAGS, HOLD USER/0" ; 2024 ; 2025 JFCL FLAGS "CHANGE FLAGS, HOLD USER/1, JFCLFLG/1" ; 2026 ; 2027 LOAD FLAGS "CHANGE FLAGS, LD FLAGS/1" ; 2028 EXP TEST "SPEC/EXPTST" ; 2029 AD FLAGS "CHANGE FLAGS, ADFLGS/1, HOLD USER/1" ; 2030 ; 2031 NO DIVIDE "SET NO DIVIDE, J/NIDISP" ; 2032 FL NO DIVIDE "SET FL NO DIVIDE, J/NIDISP" ; 2033 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 56 ; KS10.MIC[7,3] 14:54 7-JAN-1986 MACROS -- PAGE FAIL FLAGS ; 2034 .TOC "MACROS -- PAGE FAIL FLAGS" ; 2035 ; 2036 STATE_[] "[FLG]_#,STATE/@1,HOLD LEFT" ; 2037 END STATE "[FLG]_0, HOLD LEFT" ; 2038 ; 2039 END BLT "END STATE" ; 2040 END MAP "END STATE" ; 2041 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 57 ; KS10.MIC[7,3] 14:54 7-JAN-1986 MACROS -- SINGLE SKIPS ; 2042 .TOC "MACROS -- SINGLE SKIPS" ; 2043 ;SKIPS IF: ; 2044 SKIP IF AC0 "SKIP/AC0" ;THE AC NUMBER IS ZERO ; 2045 SKIP DP0 "SKIP/DP0" ;DP BIT 0=1 ; 2046 SKIP DP18 "SKIP/DP18" ;DP BIT 18=1 ; 2047 SKIP AD.EQ.0 "SKIP/ADEQ0,DT/3T" ;ADDER OUTPUT IS ZERO ; 2048 SKIP AD.LE.0 "SKIP/LE,DT/3T" ;ADDER OUTPUT IS LESS THAN OR EQUAL ; 2049 ; TO ZERO. ; 2050 SKIP ADL.LE.0 "SKIP/LLE,DT/3T" ;ADDER LEFT IS LESS THAN OR EQUAL ; 2051 ; TO ZERO. ; 2052 SKIP FPD "SKIP/FPD" ;FIRST-PART-DONE PC FLAG IS SET ; 2053 SKIP KERNEL "SKIP/KERNEL" ;USER=0 ; 2054 SKIP IO LEGAL "SKIP/IOLGL" ;USER=0 OR USER IOT=1 ; 2055 SKIP CRY0 "SKIP/CRY0" ;ADDER BIT CRY0=1 (NOT PC FLAG BIT) ; 2056 SKIP CRY1 "SKIP/CRY1" ;ADDER BIT CRY1=1 (NOT PC FLAG BIT) ; 2057 SKIP CRY2 "SKIP/CRY2,DT/3T" ;ADDER BIT CRY2=1 ; 2058 SKIP JFCL "SKIP/JFCL" ;IF JFCL SHOULD JUMP ; 2059 SKIP ADL.EQ.0 "SKIP/ADLEQ0" ;ALU BITS -2 TO 17 = 0 ; 2060 SKIP ADR.EQ.0 "SKIP/ADREQ0" ;ALU BITS 18-35 = 0 ; 2061 SKIP IRPT "SKIP/INT" ;INTERRUPT IS PENDING ; 2062 SKIP -1MS "SKIP/-1 MS" ;DON'T SKIP IF 1MS TIMER HAS EXPIRED. ; 2063 SKIP AC REF "SKIP/ACREF" ;VMA IS 0-17 ; 2064 SKIP EXECUTE "SKIP/EXECUTE" ;CONSOLE EXECUTE ; 2065 TXXX TEST "SKIP/TXXX" ;TEST INSTRUCTION SHOULD SKIP ; 2066 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 58 ; KS10.MIC[7,3] 14:54 7-JAN-1986 MACROS -- SPECIAL DISPATCH MACROS ; 2067 .TOC "MACROS -- SPECIAL DISPATCH MACROS" ; 2068 ; 2069 NEXT INST "DISP/NICOND,SPEC/NICOND,J/NICOND" ; 2070 NEXT INST FETCH "DISP/NICOND,SPEC/NICOND,J/NICOND-FETCH" ; 2071 EA MODE DISP "DISP/EAMODE,RAMADR/XR#" ; 2072 AREAD "DISP/AREAD,WAIT/1,AREAD/1,MEM/1,J/0" ; 2073 B DISP "DISP/BDISP" ; 2074 BWRITE DISP "B DISP,MEM/1,BWRITE/1,WRITE CYCLE/1,J/BWRITE" ; 2075 INST DISP "DISP/DROM,J/0" ; 2076 EXIT "BWRITE DISP,SPEC/0, WRITE TEST/1" ; 2077 AD FLAGS EXIT "BWRITE DISP, WRITE TEST/0, AD FLAGS" ; 2078 FL-EXIT "WRITE CYCLE/1,WRITE TEST/1,MEM/1,BWRITE/1,B DISP,J/FL-BWRITE" ; 2079 TEST DISP "B DISP,J/TEST-TABLE" ; 2080 SKIP-COMP DISP "B DISP,J/SKIP-COMP-TABLE" ; 2081 JUMP DISP "B DISP,J/JUMP-TABLE" ; 2082 DONE "VMA_[PC],LOAD VMA, FETCH, NEXT INST FETCH" ; 2083 JUMPA "[PC]_[AR],HOLD LEFT,LOAD VMA,FETCH,NEXT INST FETCH" ; 2084 UUO "[HR]_[HR].AND.#,#/777740,HOLD RIGHT,J/UUOGO" ; 2085 LUUO "[AR]_0 XWD [40], J/LUUO1" ; 2086 PAGE FAIL TRAP "TL [FLG], FLG.PI/1, J/PFT" ; 2087 TAKE INTERRUPT "[FLG]_[FLG].OR.#,FLG.PI/1,HOLD RIGHT,J/PI" ; 2088 INTERRUPT TRAP "WORK[SV.AR]_[AR], J/ITRAP" ; 2089 MUL DISP "DISP/MUL" ; 2090 DIV DISP "DISP/DIV" ; 2091 BYTE DISP "DISP/BYTE, DT/3T" ; 2092 SCAD DISP "DISP/SCAD0" ;SKIP (2'S WEIGHT) IS SCAD IS MINUS ; 2093 RETURN [] "DISP/RETURN,J/@1" ; 2094 PI DISP "DISP/PI" ; 2095 NORM DISP "DISP/NORM,DT/3T" ; 2096 DISMISS "TR [PI], #/077400, CALL [JEN1],DT/3T" ; 2097 CALL LOAD PI "[T0]_[PI] SWAP, CALL [LDPI2]" ; 2098 HALT [] "AD/47,DEST/AD,B/T1,DBM/#,DBUS/DBM,HALT/@1,RSRC/DA,A/MASK, J/HALTED" ; 2099 CLEANUP DISP "READ [FLG], DBUS/DP, DISP/DP, 3T, J/CLEANUP" ; 2100 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 59 ; KS10.MIC[7,3] 14:54 7-JAN-1986 DISPATCH ROM MACROS ; 2101 .TOC "DISPATCH ROM MACROS" ; 2102 .DCODE ; 2103 ; 2104 ;"A FIELD" MACROS SAY HOW TO FETCH ARGUMENTS ; 2105 ; 2106 I "I/1" ; 2107 I-PF "I/1,VMA/0,READ/1" ; 2108 R "A/READ,READ/1" ; 2109 R-PF "A/RD-PF,READ/1" ; 2110 W "A/WRITE,TEST/1" ; 2111 RW "A/READ,TEST/1,READ/1" ; 2112 IW "I/1,TEST/1" ;IMMED WHICH STORE IN E. (SETZM, ETC.) ; 2113 IR "I/1,READ/1" ;START READ A GO TO EXECUTE CODE ; 2114 DBL R "A/DREAD,READ/1" ;AR!ARX _ E!E+1 ; 2115 DBL AC "A/DBLAC" ; 2116 SH "A/SHIFT,VMA/0,READ/1" ; 2117 SHC "A/DSHIFT,VMA/0,READ/1" ; 2118 FL-R "A/FP,READ/1" ;FLOATING POINT READ ; 2119 FL-RW "A/FP,READ/1,TEST/1" ; 2120 FL-I "A/FPI,READ/0" ;FLOATING POINT IMMEDIATE ; 2121 DBL FL-R "A/DFP,READ/1" ; 2122 IOT "A/IOT" ;CHECK FOR IO LEGAL ; 2123 ; 2124 ;"B FIELD" MACROS SAY HOW TO STORE RESULTS ; 2125 ; 2126 AC "B/AC" ; 2127 M "B/MEM,TEST/1,COND FUNC/1" ; 2128 B "B/BOTH,TEST/1,COND FUNC/1" ; 2129 S "B/SELF,TEST/1,COND FUNC/1" ; 2130 DAC "B/DBLAC" ; 2131 DBL B "B/DBLB,TEST/1,COND FUNC/1" ; 2132 FL-AC "FL-B/AC" ;FLOATING POINT ; 2133 FL-MEM "FL-B/MEM,TEST/1,COND FUNC/1" ;FLOATING POINT TO MEMORY ; 2134 FL-BOTH "FL-B/BOTH,TEST/1,COND FUNC/1" ;FLOATING POINT TO BOTH ; 2135 ROUND "ROUND/1" ;FLOATING POINT ROUNDED ; 2136 ; 2137 ; 2138 ;CONTROL BITS ; 2139 W TEST "TEST/1" ; 2140 AC DISP "ACDISP/1" ; 2141 .UCODE ; 2142 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 60 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 DISPATCH ROM MACROS ; 2143 .BIN ; 2144 .TOC "POWER UP SEQUENCE" ; 2145 ; 2146 .UCODE ; 2147 ; 2148 ;HERE IS WHERE WE FIRE THE MACHINE UP DURING POWER ON ; 2149 ; 2150 U 0000, 0002,3771,0012,4374,4007,0700,0000,0037,7777 ; 2151 0: [MASK]_#, #/377777 ;BUILD A MASK WITH U 0002, 0013,3445,1212,4174,4007,0700,0000,0000,0000 ; 2152 [MASK]_[MASK]*2 ; A ONE IN 36-BITS AND 0 U 0013, 0053,3551,1212,4374,4007,0700,0000,0000,0001 ; 2153 [MASK]_[MASK].OR.#,#/1 ; IN BITS -2,-1,36,37 U 0053, 0061,3447,1200,4174,4007,0700,0000,0000,0000 ; 2154 [MAG]_[MASK]*.5 ;MAKE CONSTANT U 0061, 0071,3771,0015,4374,4007,0700,0000,0000,0001 ; 2155 [XWD1]_#, #/1 ;CONSTANT WITH 1 IN EACH ; 2156 ; HALF WORD ; 2157 [ONE]_0 XWD [1], ;THE CONSTANT 1 U 0071, 0003,4751,1207,4374,4007,0700,0010,0000,0001 ; 2158 CALL/1 ;RESET STACK (CAN NEVER RETURN ; 2159 ; TO WHERE MR LEFT US) U 0003, 0100,4751,1203,4374,4007,0700,0000,0037,6000 ; 2160 3: [AR]_0 XWD [376000] ;ADDRESS OF HALT STATUS ; 2161 ; BLOCK U 0100, 0106,3333,0003,7174,4007,0700,0400,0000,0227 ; 2162 WORK[HSBADR]_[AR] ;SAVE FOR HALT LOOP U 0106, 0110,4221,0011,4364,4277,0700,0200,0000,0010 ; 2163 [UBR]_0, ABORT MEM CYCLE ;CLEAR THE UBR AND RESET ; 2164 ; MEMORY CONTROL LOGIC U 0110, 0125,4221,0010,4174,4477,0700,0000,0000,0000 ; 2165 [EBR]_0, LOAD AC BLOCKS ;CLEAR THE EBR AND FORCE ; 2166 ; PREVIOUS AND CURRENT AC ; 2167 ; BLOCKS TO ZERO U 0125, 0131,4221,0013,4174,4257,0700,0000,0000,0000 ; 2168 [FLG]_0, SET APR ENABLES ;CLEAR THE STATUS FLAGS AND ; 2169 ; DISABLE ALL APR CONDITIONS U 0131, 0162,3333,0013,7174,4007,0700,0400,0000,0230 ; 2170 WORK[APR]_[FLG] ;ZERO REMEMBERED ENABLES ; 2171 U 0162, 0212,3333,0013,7174,4007,0700,0400,0000,0300 ; 2172 WORK[TIME0]_[FLG] ;CLEAR TIME BASE U 0212, 0214,3333,0013,7174,4007,0700,0400,0000,0301 ; 2173 WORK[TIME1]_[FLG] ; .. ; 2174 .IF/FULL U 0214, 0223,4223,0000,1174,4007,0700,0400,0000,1443 ; 2175 AC[BIN0]_0 ;COMPUTE A TABLE OF POWERS OF U 0223, 0226,3333,0007,1174,4007,0700,0400,0000,1444 ; 2176 AC[BIN1]_1 ; TEN U 0226, 0235,4221,0003,4174,4007,0700,2000,0071,0023 ; 2177 [AR]_0, SC_19. ;WE WANT TO GET 22 NUMBERS U 0235, 0242,3333,0007,7174,4007,0700,0400,0000,0344 ; 2178 WORK[DECLO]_1 ;STARTING WITH 1 U 0242, 0244,4223,0000,7174,4007,0700,0400,0000,0373 ; 2179 WORK[DECHI]_0 ; .. U 0244, 0311,3771,0002,4374,4007,0700,0000,0000,0344 ; 2180 [HR]_#, WORK/DECLO ;ADDRESS OF LOW WORD U 0311, 0323,3771,0006,4374,4007,0700,0000,0000,0373 ; 2181 [BRX]_#, WORK/DECHI ;ADDRESS OF HIGH WORD U 0323, 0010,0111,0706,4174,4007,0700,0200,0000,0010 ; 2182 TENLP: [BRX]_[BRX]+1, LOAD VMA ;ADDRESS THE HIGH WORD ; 2183 =0* [ARX]_AC[BIN1], ;LOW WORD TO ARX U 0010, 0560,3771,0004,1276,6007,0701,0010,0000,1444 ; 2184 CALL [DBSLOW] ;MULTIPLY BY TEN U 0012, 0324,3333,0005,6174,4007,0700,0400,0000,0000 ; 2185 RAM_[BR] ;SAVE HIGH WORD U 0324, 0334,0111,0702,4174,4007,0700,0200,0000,0010 ; 2186 [HR]_[HR]+1, LOAD VMA ;WHERE TO STORE LOW WORD U 0334, 0224,3333,0004,6174,4007,0630,2400,0060,0000 ; 2187 RAM_[ARX], STEP SC ;STORE LOW WORD AND SEE IF ; 2188 ; WE ARE DONE U 0224, 0323,4443,0000,4174,4007,0700,0000,0000,0000 ; 2189 =0 J/TENLP ;NOT YET--KEEP GOING U 0225, 0140,6553,0500,4374,4007,0321,0000,0033,0656 ; 2190 [BR].XOR.#, 3T, SKIP ADL.EQ.0, #/330656 ; 2191 ;DID WE GET THE RIGHT ANSWER ; 2192 ; IN THE TOP 18 BITS? U 0140, 0104,4751,1217,4374,4007,0700,0000,0000,1005 ; 2193 =0**0 HALT [MULERR] ;NO--CPU IS BROKEN ; 2194 .ENDIF/FULL ; 2195 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 61 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 POWER UP SEQUENCE U 0141, 3607,4221,0014,4174,4007,0700,0010,0000,0000 ; 2196 =0**1 [PI]_0, CALL [LOADPI] ;CLEAR PI STATE ; 2197 =1**1 ;CLEAR REGISTERS SO NO ; 2198 ;PARITY ERROR HAPPEN ;;2199 .IFNOT/FULL ;;2200 [ARX]_0 ;WRITTEN WHILE COMPUTING POWERS ;;2201 [BR]_0 ;OF 10 ;;2202 [BRX]_0 ; 2203 .ENDIF/FULL U 0151, 0343,4751,1217,4374,4007,0700,0000,0000,0120 ; 2204 [T1]_0 XWD [120] ;RH OF 120 CONTAINS START ADDRESS ; 2205 ; FOR SIMULATOR. FOR THE REAL ; 2206 ; MACHINE IT IS JUST DATA WITH ; 2207 ; GOOD PARITY. ; 2208 = ; 2209 ;THE CODE UNDER .IF/SIM MUST USE THE SAME ADDRESS AS THE CODE ; 2210 ; UNDER .IFNOT/SIM SO THAT MICROCODE ADDRESSES DO NOT CHANGE BETWEEN ; 2211 ; VERSIONS ;;2212 .IF/SIM ;;2213 VMA_[T1], START READ ;READ THE WORD ;;2214 MEM READ, [PC]_MEM, HOLD LEFT, J/START ;;2215 ;GO FIRE UP SIMULATOR AT THE ;;2216 ; PROGRAMS STARTING ADDRESS ; 2217 .IFNOT/SIM ; 2218 [PC]_0, ;CLEAR LH OF PC ; 2219 LEAVE USER, ;ENTER EXEC MODE U 0343, 0346,4221,0001,4174,4467,0700,0000,0000,0004 ; 2220 LOAD FLAGS ;CLEAR TRAP FLAGS ; 2221 [T1]_#, HALT/POWER, ;LOAD T1 WITH POWER UP CODE U 0346, 0116,3771,0017,4374,4007,0700,0000,0000,0000 ; 2222 J/PWRON ;ENTER HALT LOOP. DO NOT STORE ; 2223 ; HALT STATUS BLOCK ; 2224 .ENDIF/SIM ; 2225 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 62 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 THE INSTRUCTION LOOP -- START NEXT INSTRUCTION ; 2226 .TOC "THE INSTRUCTION LOOP -- START NEXT INSTRUCTION" ; 2227 ; 2228 ;ALL INSTRUCTIONS EXCEPT JUMP'S AND UUO'S END UP HERE ; 2229 1400: U 1400, 0110,3443,0100,4174,4156,4700,0200,0014,0012 ; 2230 DONE: DONE U 1401, 0110,0111,0701,4170,4156,4700,0200,0014,0012 ; 2231 1401: VMA_[PC]+1, NEXT INST FETCH, FETCH ; 2232 =0 U 0260, 0110,0111,0701,4170,4156,4700,0200,0014,0012 ; 2233 SKIP: VMA_[PC]+1, NEXT INST FETCH, FETCH U 0261, 0110,3443,0100,4174,4156,4700,0200,0014,0012 ; 2234 DONE ; 2235 ; 2236 ; 2237 ;16-WAY DISPATCH BASED ON NEXT INSTRUCTION ; 2238 =0000 ; 2239 NICOND: ; 2240 =0001 [AR]_0 XWD [423], ;TRAP TYPE 3 ; 2241 ; GET ADDRESS OF TRAP INST ; 2242 TURN OFF PXCT, ;CLEAR PXCT U 0101, 3474,4751,1203,4374,4367,0700,0000,0000,0423 ; 2243 J/TRAP ;PROCESS TRAP (INOUT.MIC) ; 2244 =0010 [AR]_0 XWD [422], ;TRAP TYPE 2 ; 2245 TURN OFF PXCT, ;CLEAR PXCT U 0102, 3474,4751,1203,4374,4367,0700,0000,0000,0422 ; 2246 J/TRAP ;GO TRAP ; 2247 =0011 [AR]_0 XWD [421], ;TRAP TYPE 1 ; 2248 TURN OFF PXCT, ;TURN OF PXCT U 0103, 3474,4751,1203,4374,4367,0700,0000,0000,0421 ; 2249 J/TRAP ;GO TRAP U 0105, 0104,4751,1217,4374,4007,0700,0000,0000,0002 ; 2250 =0101 HALT [CSL] ;"HA" COMMAND TO 8080 ; 2251 =0111 ; 2252 VMA_[PC], ;LOAD VMA ; 2253 FETCH, ;INDICATE INSTRUCTION FETCH U 0107, 0117,3443,0100,4174,4007,0700,0200,0014,0012 ; 2254 J/XCTGO ;GO GET INSTRUCTION ; 2255 ;THE NEXT SET OF CASES ARE USED WHEN THERE IS A FETCH ; 2256 ; IN PROGESS ; 2257 =1000 ; 2258 NICOND-FETCH: ; 2259 =1001 [AR]_0 XWD [423], ;TRAP TYPE 3 ; 2260 TURN OFF PXCT, U 0111, 3474,4751,1203,4374,4367,0700,0000,0000,0423 ; 2261 J/TRAP ; 2262 =1010 [AR]_0 XWD [422], ;TRAP TYPE 2 ; 2263 TURN OFF PXCT, U 0112, 3474,4751,1203,4374,4367,0700,0000,0000,0422 ; 2264 J/TRAP ; 2265 =1011 [AR]_0 XWD [421], ;TRAP TYPE 1 ; 2266 TURN OFF PXCT, U 0113, 3474,4751,1203,4374,4367,0700,0000,0000,0421 ; 2267 J/TRAP U 0115, 0104,4751,1217,4374,4007,0700,0000,0000,0002 ; 2268 =1101 HALT [CSL] ;"HA" COMMAND TO 8080 ; 2269 =1111 ; 2270 XCTGO: MEM READ, ;WAIT FOR MEMORY ; 2271 [HR]_MEM, ;PUT DATA IN HR ; 2272 LOAD INST, ;LOAD IR & AC # U 0117, 0363,3771,0002,4365,5617,0700,0200,0000,0002 ; 2273 J/INCPC ;GO BUMP PC ; 2274 = ; 2275 ; KS10.MCR[7,3] 15:03 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 ; 2276 ;HERE WE POINT PC TO NEXT INSTRUCTION WHILE WE WAIT FOR ; 2277 ; EFFECTIVE ADDRESS LOGIC TO SETTLE ; 2278 INCPC: VMA_[PC]+1, ;ADDRESS OF NEXT INSTRUCTION ; 2279 FETCH/1, ;INSTRUCTION FETCH ; 2280 TURN OFF PXCT, ;CLEAR EFFECT OF PXCT U 0363, 0201,0111,0701,2170,4366,6700,0200,0010,0010 ; 2281 EA MODE DISP ;DISPACTH OF INDEXING AND @ ; 2282 ; 2283 ;MAIN EFFECTIVE ADDRESS CALCULATION ; 2284 =0001 ; 2285 EACALC: ; 2286 ; ; 2287 ; THE FIRST 4 CASES ARE USED ONLY FOR JRST ; 2288 ; ; 2289 ; 2290 ;CASE 0 -- JRST 0,FOO(XR) ; 2291 [PC]_[HR]+XR, ;UPDATE PC ; 2292 HOLD LEFT, ;ONLY RH ; 2293 LOAD VMA, FETCH, ;START GETTING IT U 0201, 0110,0551,0201,2270,4156,4700,0200,0014,0012 ; 2294 NEXT INST FETCH ;START NEXT INST ; 2295 ; 2296 ;CASE 2 -- JRST 0,FOO ; 2297 [PC]_[HR], ;NEW PC ; 2298 HOLD LEFT, ;ONLY RH ; 2299 LOAD VMA, FETCH, ;START GETTING IT U 0203, 0110,3441,0201,4170,4156,4700,0200,0014,0012 ; 2300 NEXT INST FETCH ;START NEXT INST ; 2301 ; 2302 ;CASE 4 -- JRST 0,@FOO(XR) ; 2303 [HR]_[HR]+XR, ;ADD IN INDEX ; 2304 START READ, ;START TO FETCH @ WORD ; 2305 LOAD VMA, ;PUT ADDRESS IN VMA U 0205, 0366,0551,0202,2270,4007,0700,0200,0004,0012 ; 2306 J/FETIND ;GO DO MEM WAIT (FORGET ABOUT JRST) ; 2307 ; 2308 ;CASE 6 -- JRST 0,@FOO ; 2309 VMA_[HR], ;LOAD UP ADDRESS ; 2310 START READ, ;START TO FETCH @ WORD U 0207, 0366,3443,0200,4174,4007,0700,0200,0004,0012 ; 2311 J/FETIND ;GO DO MEM WAIT (FORGET ABOUT JRST) ; 2312 ; KS10.MCR[7,3] 15:03 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 ; 2313 ; ; 2314 ;THESE 4 ARE FOR THE NON-JRST CASE ; 2315 ; ; 2316 ; 2317 ;CASE 10 -- JUST INDEXING ; 2318 INDEX: [HR]_[HR]+XR, ;ADD IN INDEX REGISTER U 0211, 0213,0551,0202,2270,4007,0700,0000,0000,0000 ; 2319 HOLD LEFT ;JUST DO RIGHT HALF ; 2320 ; 2321 ;CASE 12 -- NO INDEXING OR INDIRECT ; 2322 NOMOD: [AR]_EA, ;PUT 0,,E IN AR U 0213, 0000,5741,0203,4174,4001,3700,0200,0000,0342 ; 2323 PXCT DATA, AREAD ;DO ONE OR MORE OF THE FOLLWING ; 2324 ; ACCORDING TO THE DROM: ; 2325 ;1. LOAD VMA ; 2326 ;2. START READ OR WRITE ; 2327 ;3. DISPATCH TO 40-57 ; 2328 ; OR DIRECTLY TO EXECUTE CODE ; 2329 ; 2330 ;CASE 14 -- BOTH INDEXING AND INDIRECT ; 2331 BOTH: [HR]_[HR]+XR, ;ADD IN INDEX REGISTER ; 2332 LOAD VMA, PXCT EA, ;PUT ADDRESS IN VMA U 0215, 0366,0551,0202,2270,4007,0700,0200,0004,0112 ; 2333 START READ, J/FETIND ;START CYCLE AND GO WAIT FOR DATA ; 2334 ; 2335 ;CASE 16 -- JUST INDIRECT ; 2336 INDRCT: VMA_[HR], ;LOAD ADDRESS OF @ WORD U 0217, 0366,3443,0200,4174,4007,0700,0200,0004,0112 ; 2337 START READ, PXCT EA ;START CYCLE ; 2338 ; 2339 ; 2340 ;HERE TO FETCH INDIRECT WORD ; 2341 FETIND: MEM READ, [HR]_MEM, ;GET DATA WORD ; 2342 HOLD LEFT, ;JUST RIGHT HALF U 0366, 0371,3771,0002,4361,5217,0700,0200,0000,0102 ; 2343 LOAD IND EA ;RELOAD @ AND INDEX FLOPS ; 2344 ; 2345 XCT2: VMA_[PC], ;PUT PC BACK IN VMA ; 2346 FETCH/1, ;TURN ON FETCH FLAG ; 2347 EA MODE DISP, ;REDO CALCULATION FOR U 0371, 0201,3443,0100,2174,4006,6700,0200,0010,0010 ; 2348 J/EACALC ; NEW WORD ; 2349 ; KS10.MCR[7,3] 15:03 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 -- FETCH ARGUMENTS ; 2350 .TOC "THE INSTRUCTION LOOP -- FETCH ARGUMENTS" ; 2351 ;HERE ON AREAD DISP TO HANDLE VARIOUS CASES OF ARGUMENT FETCH ; 2352 ; 2353 ;CASE 0 -- READ (E) ; 2354 40: MEM READ, ;WAIT FOR DATA ; 2355 [AR]_MEM, ;PUT WORD IN AR U 0040, 0000,3771,0003,4365,5001,2700,0200,0000,0002 ; 2356 INST DISP ;GO TO EXECUTE CODE ; 2357 ; 2358 ;CASE 1 -- WRITE (E) ; 2359 41: [AR]_AC, ;PUT AC IN AR U 0041, 0000,3771,0003,0276,6001,2700,0000,0000,0000 ; 2360 INST DISP ;GO TO EXECUTE CODE ; 2361 ; 2362 ;CASE 2 -- DOUBLE READ ; 2363 42: MEM READ, ;WAIT FOR DATA U 0042, 0401,3771,0003,4365,5007,0700,0200,0000,0002 ; 2364 [AR]_MEM ;PUT HI WORD IN AR ; 2365 VMA_[HR]+1, PXCT DATA, ;POINT TO E+1 U 0401, 0406,0111,0702,4170,4007,0700,0200,0004,0312 ; 2366 START READ ;START MEMORY CYCLE ; 2367 MEM READ, ;WAIT FOR DATA ; 2368 [ARX]_MEM, ;LOW WORD IN ARX U 0406, 0000,3771,0004,4365,5001,2700,0200,0000,0002 ; 2369 INST DISP ;GO TO EXECUTE CODE ; 2370 ; 2371 ;CASE 3 -- DOUBLE AC U 0043, 0415,3771,0003,0276,6007,0700,0000,0000,0000 ; 2372 43: [AR]_AC ;GET HIGH AC ; 2373 [ARX]_AC[1], ;PUT C(AC+1) IN ARX U 0415, 0000,3771,0004,1276,6001,2701,0000,0000,1441 ; 2374 INST DISP ;GO TO EXECUTE CODE ; 2375 ; 2376 ;CASE 4 -- SHIFT ; 2377 44: ; 2378 SHIFT: READ [AR], ;LOOK AT EFFECTIVE ADDRESS ; 2379 SKIP DP18, ;SEE IF LEFT OR RIGHT ; 2380 SC_SHIFT-1, ;PUT NUMBER OF PLACES TO SHIFT IN ; 2381 LOAD FE, ; SC AND FE U 0044, 0000,3333,0003,4174,4001,2530,3000,0041,5777 ; 2382 INST DISP ;GO DO THE SHIFT ; 2383 ; 2384 ;CASE 5 -- SHIFT COMBINED U 0045, 0416,3772,0000,1275,5007,0701,0000,0000,1441 ; 2385 45: Q_AC[1] ;PUT LOW WORD IN Q U 0416, 0431,3776,0005,0274,4007,0701,0000,0000,0000 ; 2386 [BR]_AC*.5 LONG ;PUT AC IN BR & SHIFT BR!Q RIGHT ; 2387 [BR]_[BR]*.5 LONG, ;SHIFT BR!Q 1 MORE PLACE RIGHT U 0431, 0044,3446,0505,4174,4007,0700,0000,0000,0000 ; 2388 J/SHIFT ;GO DO SHIFT SETUP ; 2389 ; KS10.MCR[7,3] 15:03 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 ; 2390 ;CASE 6 -- FLOATING POINT IMMEDIATE ; 2391 46: [AR]_[AR] SWAP, ;FLIP BITS TO LEFT HALF U 0046, 0372,3770,0303,4344,4007,0700,0000,0000,0000 ; 2392 J/FPR0 ;JOIN COMMON F.P. CODE ; 2393 ; 2394 ;CASE 7 -- FLOATING POINT ; 2395 47: MEM READ, ;WAIT FOR MEMORY (SPEC/MEM WAIT) U 0047, 0372,3771,0003,4365,5007,0700,0200,0000,0002 ; 2396 [AR]_MEM ;DATA INTO AR ; 2397 =0 ; 2398 FPR0: READ [AR], ;LOOK AT NUMBER ; 2399 SC_EXP, FE_EXP, ;PUT EXPONENT IN SC & FE ; 2400 SKIP DP0, ;SEE IF NEGATIVE U 0372, 0412,3333,0003,4174,4007,0520,3010,0041,2000 ; 2401 CALL [ARSIGN] ;EXTEND AR SIGN ; 2402 FPR1: [ARX]_0, ;ZERO ARX U 0373, 0000,4221,0004,4174,4001,2700,0000,0000,0000 ; 2403 INST DISP ;GO TO EXECUTE CODE ; 2404 ; 2405 ;CASE 10 -- READ THEN PREFETCH ; 2406 50: MEM READ, ;WAIT FOR DATA ; 2407 [AR]_MEM THEN FETCH, ;PUT DATA IN AR AND START A READ ; 2408 ; VMA HAS PC+1. U 0050, 0000,3770,0103,4365,5001,2700,0200,0014,0012 ; 2409 INST DISP ;GO DO IT ; 2410 ; 2411 ;CASE 11 -- DOUBLE FLOATING READ ; 2412 51: SPEC MEM READ, ;WAIT FOR DATA ; 2413 [BR]_MEM, ;HOLD IN BR ; 2414 SC_EXP, FE_EXP, ;SAVE EXPONENT U 0051, 0402,3771,0005,4365,5177,0521,3000,0041,2000 ; 2415 SKIP DP0, 3T ;SEE IF MINUS ; 2416 =0 [AR]_[AR]+1, ;POINT TO E+1 ; 2417 LOAD VMA, PXCT DATA, ;PUT IN VMA U 0402, 0445,0111,0703,4174,4007,0700,0200,0004,0312 ; 2418 START READ, J/DFPR1 ;GO GET POSITIVE DATA ; 2419 [AR]_[AR]+1, ;POINT TO E+1 ; 2420 LOAD VMA, PXCT DATA, ;PUT IN VMA U 0403, 0432,0111,0703,4174,4007,0700,0200,0004,0312 ; 2421 START READ ;GO GET NEGATIVE DATA ; 2422 [BR]_-SIGN, ;SMEAR MINUS SIGN U 0432, 0451,3551,0505,4374,0007,0700,0000,0077,7000 ; 2423 J/DFPR2 ;CONTINUE BELOW U 0445, 0451,4551,0505,4374,0007,0700,0000,0000,0777 ; 2424 DFPR1: [BR]_+SIGN ;SMEAR PLUS SIGN ; 2425 DFPR2: MEM READ, 3T, ;WAIT FOR MEMORY ; 2426 [ARX]_(MEM.AND.[MAG])*.5, U 0451, 0452,4557,0004,4365,5007,0701,0200,0000,0002 ; 2427 ASH ;SET SHIFT PATHS U 0452, 0467,3447,0503,4174,4007,0700,0000,0000,0000 ; 2428 [AR]_[BR]*.5 ;SHIFT AR ; 2429 [AR]_[AR]*.5, ;COMPLETE SHIFTING U 0467, 0471,3447,0303,4174,4007,0700,2000,0011,0000 ; 2430 SC_FE ;PAGE FAIL MAY HAVE ZAPPED ; 2431 ; THE SC. ; 2432 VMA_[PC], FETCH, ;GET NEXT INST U 0471, 0000,3443,0100,4174,4001,2700,0200,0014,0012 ; 2433 INST DISP ;DO THIS ONE ; 2434 ; KS10.MCR[7,3] 15:03 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 ; 2435 ;CASE 12 -- TEST FOR IO LEGAL U 0052, 0404,4443,0000,4174,4007,0040,0000,0000,0000 ; 2436 52: SKIP IO LEGAL ;IS IO LEGAL? U 0404, 2737,4551,0202,4374,0007,0700,0000,0077,7740 ; 2437 =0 UUO ;NO U 0405, 0000,4443,0000,4174,4001,2700,0000,0000,0000 ; 2438 INST DISP ;YES--DO THE INSTRUCTION ; 2439 ; 2440 ; 2441 ;CASE 13 -- RESERVED ; 2442 ;53: ; 2443 ; 2444 ;CASE 14 -- RESERVED ; 2445 ;54: ; 2446 ; 2447 ;CASE 15 -- RESERVED ; 2448 ;55: ; 2449 ; 2450 ;CASE 16 -- RESERVED ; 2451 ;56: ; 2452 ; 2453 ;CASE 17 -- RESERVED ; 2454 ;57: ; 2455 ; 2456 ;EXTEND AR SIGN. ; 2457 ;CALL WITH SKIP ON AR0, RETURNS 1 ALWAYS ; 2458 =0 U 0412, 0001,4551,0303,4374,0004,1700,0000,0000,0777 ; 2459 ARSIGN: [AR]_+SIGN, RETURN [1] ;EXTEND + SIGN U 0413, 0001,3551,0303,4374,0004,1700,0000,0077,7000 ; 2460 [AR]_-SIGN, RETURN [1] ;EXTEND - SIGN ; 2461 ; KS10.MCR[7,3] 15:03 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 -- STORE ANSWERS ; 2462 .TOC "THE INSTRUCTION LOOP -- STORE ANSWERS" ; 2463 ; 2464 ;NOTE: INSTRUCTIONS WHICH STORE IN BOTH AC AND MEMORY ; 2465 ; (E.G. ADDB, AOS) MUST STORE IN MEMORY FIRST ; 2466 ; SO THAT IF A PAGE FAIL HAPPENS THE AC IS ; 2467 ; STILL INTACT. ; 2468 ; 2469 1500: ; 2470 BWRITE: ;BASE ADDRESS OF BWRITE DISPATCH ; 2471 ; 2472 ;CASE 0 -- RESERVED ; 2473 ;1500: ; 2474 ; 2475 ;CASE 1 -- RESERVED ; 2476 ;1501: ; 2477 ; 2478 ;CASE 2 -- RESERVED ; 2479 ;1502: ; 2480 ; 2481 ;CASE 3 -- RESERVED ; 2482 ;1503: ; 2483 ; 2484 ;CASE 4 -- STORE SELF ; 2485 1504: ; 2486 STSELF: SKIP IF AC0, ;IS AC # ZERO? U 1504, 0434,4443,0000,4174,4007,0360,0000,0000,0000 ; 2487 J/STBTH1 ;GO TO STORE BOTH CASE ; 2488 ; 2489 ;CASE 5 -- STORE DOUBLE AC ; 2490 1505: ; 2491 DAC: AC[1]_[ARX], ;STORE AC 1 U 1505, 1515,3440,0404,1174,4007,0700,0400,0000,1441 ; 2492 J/STAC ;GO STORE AC ; 2493 ; 2494 ;CASE 6 -- STORE DOUBLE BOTH (KA10 STYLE MEM_AR ONLY) ; 2495 1506: ; 2496 STDBTH: MEM WRITE, ;WAIT FOR MEMORY ; 2497 MEM_[AR], ;STORE AR U 1506, 1505,3333,0003,4175,5007,0701,0200,0000,0002 ; 2498 J/DAC ;NOW STORE AC & AC+1 ; 2499 ; 2500 ;CASE 7 -- RESERVED ; 2501 ;1507: ; 2502 ; KS10.MCR[7,3] 15:03 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 ; 2503 ;CASE 10 -- RESERVED ; 2504 ;1510: ; 2505 ; 2506 ;CASE 11 -- RESERVED ; 2507 ;1511: ; 2508 ; 2509 ;CASE 12 -- RESERVED ; 2510 ;1512: ; 2511 ; 2512 ;CASE 13 -- RESERVED ; 2513 ;1513: ; 2514 ; 2515 ;CASE 14 -- RESERVED ; 2516 1514: ; 2517 FL-BWRITE: ;THE NEXT 4 CASES ARE ALSO ; 2518 ;USED IN FLOATING POINT U 1514, 0104,4751,1217,4374,4007,0700,0000,0000,1000 ; 2519 HALT [BW14] ; 2520 ; 2521 ;CASE 15 -- STORE AC ; 2522 1515: ; 2523 STAC: AC_[AR], ;STORE AC U 1515, 0100,3440,0303,0174,4156,4700,0400,0000,0000 ; 2524 NEXT INST ;DO NEXT INSTRUCTION ; 2525 ; 2526 ;CASE 16 -- STORE IN MEMORY ; 2527 1516: ; 2528 STMEM: MEM WRITE, ;WAIT FOR MEMORY ; 2529 MEM_[AR], ;STORE AR U 1516, 1400,3333,0003,4175,5007,0701,0200,0000,0002 ; 2530 J/DONE ;START FETCH OF NEXT ; 2531 ; 2532 ;CASE 17 -- STORE BOTH ; 2533 1517: ; 2534 STBOTH: MEM WRITE, ;WAIT FOR MEMORY ; 2535 MEM_[AR], ;STORE AR U 1517, 1515,3333,0003,4175,5007,0701,0200,0000,0002 ; 2536 J/STAC ;NOW STORE AC ; 2537 ; 2538 =0 ; 2539 STBTH1: MEM WRITE, ;WAIT FOR MEMORY ; 2540 MEM_[AR], ;STORE AR U 0434, 1515,3333,0003,4175,5007,0701,0200,0000,0002 ; 2541 J/STAC ;NOW STORE AC ; 2542 STORE: MEM WRITE, ;WAIT FOR MEMORY ; 2543 MEM_[AR], ;STORE AC U 0435, 1400,3333,0003,4175,5007,0701,0200,0000,0002 ; 2544 J/DONE ;START NEXT INST ; 2545 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 70 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 MOVE GROUP ; 2546 .TOC "MOVE GROUP" ; 2547 ; 2548 .DCODE D 0200, 1015,1515,1100 ; 2549 200: R-PF, AC, J/STAC ;MOVE D 0201, 0015,1515,3000 ; 2550 I-PF, AC, J/STAC ;MOVEI D 0202, 0116,1404,0700 ; 2551 W, M, J/MOVE ;MOVEM D 0203, 0004,1504,1700 ; 2552 RW, S, J/STSELF ;MOVES ; 2553 D 0204, 1015,1402,1100 ; 2554 204: R-PF, AC, J/MOVS ;MOVS D 0205, 0015,1402,3000 ; 2555 I-PF, AC, J/MOVS ;MOVSI D 0206, 0116,1402,0700 ; 2556 W, M, J/MOVS ;MOVSM D 0207, 0004,1402,1700 ; 2557 RW, S, J/MOVS ;MOVSS ; 2558 D 0210, 1015,1405,1100 ; 2559 210: R-PF, AC, J/MOVN ;MOVN D 0211, 0015,1405,3000 ; 2560 I-PF, AC, J/MOVN ;MOVNI D 0212, 0116,1405,0700 ; 2561 W, M, J/MOVN ;MOVNM D 0213, 0004,1405,1700 ; 2562 RW, S, J/MOVN ;MOVNS ; 2563 D 0214, 1015,1403,1100 ; 2564 214: R-PF, AC, J/MOVM ;MOVM D 0215, 0015,1515,3000 ; 2565 I-PF, AC, J/STAC ;MOVMI D 0216, 0116,1403,0700 ; 2566 W, M, J/MOVM ;MOVMM D 0217, 0004,1403,1700 ; 2567 RW, S, J/MOVM ;MOVNS ; 2568 .UCODE ; 2569 ; 2570 1402: U 1402, 1500,3770,0303,4344,4003,7700,0200,0003,0001 ; 2571 MOVS: [AR]_[AR] SWAP,EXIT ; 2572 ; 2573 1403: U 1403, 1404,3333,0003,4174,4007,0520,0000,0000,0000 ; 2574 MOVM: READ [AR], SKIP DP0, J/MOVE ; 2575 ; 2576 1404: U 1404, 1500,4443,0000,4174,4003,7700,0200,0003,0001 ; 2577 MOVE: EXIT ; 2578 1405: ; 2579 MOVN: [AR]_-[AR], ;NEGATE NUMBER ; 2580 AD FLAGS, 3T, ;UPDATE FLAGS U 1405, 1404,2441,0303,4174,4467,0701,4000,0001,0001 ; 2581 J/MOVE ;STORE ANSWER ; 2582 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 71 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 EXCH ; 2583 .TOC "EXCH" ; 2584 ; 2585 .DCODE D 0250, 0015,1406,1500 ; 2586 250: R,W TEST, AC, J/EXCH ; 2587 .UCODE ; 2588 ; 2589 1406: ; 2590 EXCH: [BR]_AC, ;COPY AC TO THE BR U 1406, 0506,3771,0005,0276,6007,0700,0200,0003,0002 ; 2591 START WRITE ;START A WRITE CYCLE ; 2592 MEM WRITE, ;COMPLETE WRITE CYCLE ; 2593 MEM_[BR], ;STORE BR (AC) IN MEMORY U 0506, 1515,3333,0005,4175,5007,0701,0200,0000,0002 ; 2594 J/STAC ;STORE THE AR IN AC. NOTE: AR ; 2595 ; WAS LOADED WITH MEMORY OPERAND ; 2596 ; AS PART OF INSTRUCTION DISPATCH ; 2597 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 72 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 HALFWORD GROUP ; 2598 .TOC "HALFWORD GROUP" ; 2599 ; DESTINATION LEFT HALF ; 2600 ; 2601 .DCODE D 0500, 1015,1410,1100 ; 2602 500: R-PF, AC, J/HLL D 0501, 0015,1410,3000 ; 2603 I-PF, AC, J/HLL D 0502, 0016,1407,1700 ; 2604 RW, M, J/HRR ;HLLM = HRR EXCEPT FOR STORE D 0503, 0004,1404,1700 ; 2605 RW, S, J/MOVE ;HLLS = MOVES ; 2606 D 0504, 1015,1411,1100 ; 2607 R-PF, AC, J/HRL D 0505, 0015,1411,3000 ; 2608 I-PF, AC, J/HRL D 0506, 0016,1413,1700 ; 2609 RW, M, J/HRLM D 0507, 0004,1414,1700 ; 2610 RW, S, J/HRLS ; 2611 D 0510, 1015,1432,1100 ; 2612 510: R-PF, AC, J/HLLZ D 0511, 0015,1432,3000 ; 2613 I-PF, AC, J/HLLZ D 0512, 0116,1432,0700 ; 2614 W, M, J/HLLZ D 0513, 0004,1432,1700 ; 2615 RW, S, J/HLLZ ; 2616 D 0514, 1015,1424,1100 ; 2617 R-PF, AC, J/HRLZ D 0515, 0015,1424,3000 ; 2618 I-PF, AC, J/HRLZ D 0516, 0116,1424,0700 ; 2619 W, M, J/HRLZ D 0517, 0004,1424,1700 ; 2620 RW, S, J/HRLZ ; 2621 D 0520, 1015,1433,1100 ; 2622 520: R-PF, AC, J/HLLO D 0521, 0015,1433,3000 ; 2623 I-PF, AC, J/HLLO D 0522, 0116,1433,0700 ; 2624 W, M, J/HLLO D 0523, 0004,1433,1700 ; 2625 RW, S, J/HLLO ; 2626 D 0524, 1015,1425,1100 ; 2627 R-PF, AC, J/HRLO D 0525, 0015,1425,3000 ; 2628 I-PF, AC, J/HRLO D 0526, 0116,1425,0700 ; 2629 W, M, J/HRLO D 0527, 0004,1425,1700 ; 2630 RW, S, J/HRLO ; 2631 D 0530, 1015,1430,1100 ; 2632 530: R-PF, AC, J/HLLE D 0531, 0015,1430,3000 ; 2633 I-PF, AC, J/HLLE D 0532, 0116,1430,0700 ; 2634 W, M, J/HLLE D 0533, 0004,1430,1700 ; 2635 RW, S, J/HLLE ; 2636 D 0534, 1015,1422,1100 ; 2637 R-PF, AC, J/HRLE D 0535, 0015,1422,3000 ; 2638 I-PF, AC, J/HRLE D 0536, 0116,1422,0700 ; 2639 W, M, J/HRLE D 0537, 0004,1422,1700 ; 2640 RW, S, J/HRLE ; 2641 ; KS10.MCR[7,3] 15:03 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 ; 2642 ; DESTINATION RIGHT HALF ; 2643 D 0540, 1015,1407,1100 ; 2644 540: R-PF, AC, J/HRR D 0541, 0015,1407,3000 ; 2645 I-PF, AC, J/HRR D 0542, 0016,1410,1700 ; 2646 RW, M, J/HLL ;HRRM = HLL EXCEPT FOR STORE D 0543, 0004,1404,1700 ; 2647 RW, S, J/MOVE ;HRRS = MOVES ; 2648 D 0544, 1015,1412,1100 ; 2649 R-PF, AC, J/HLR D 0545, 0015,1412,3000 ; 2650 I-PF, AC, J/HLR D 0546, 0016,1415,1700 ; 2651 RW, M, J/HLRM D 0547, 0004,1416,1700 ; 2652 RW, S, J/HLRS ; 2653 D 0550, 1015,1420,1100 ; 2654 550: R-PF, AC, J/HRRZ D 0551, 0015,1420,3000 ; 2655 I-PF, AC, J/HRRZ D 0552, 0116,1420,0700 ; 2656 W, M, J/HRRZ D 0553, 0004,1420,1700 ; 2657 RW, S, J/HRRZ ; 2658 D 0554, 1015,1426,1100 ; 2659 R-PF, AC, J/HLRZ D 0555, 0015,1426,3000 ; 2660 I-PF, AC, J/HLRZ D 0556, 0116,1426,0700 ; 2661 W, M, J/HLRZ D 0557, 0004,1426,1700 ; 2662 RW, S, J/HLRZ ; 2663 D 0560, 1015,1421,1100 ; 2664 560: R-PF, AC, J/HRRO D 0561, 0015,1421,3000 ; 2665 I-PF, AC, J/HRRO D 0562, 0116,1421,0700 ; 2666 W, M, J/HRRO D 0563, 0004,1421,1700 ; 2667 RW, S, J/HRRO ; 2668 D 0564, 1015,1427,1100 ; 2669 R-PF, AC, J/HLRO D 0565, 0015,1427,3000 ; 2670 I-PF, AC, J/HLRO D 0566, 0116,1427,0700 ; 2671 W, M, J/HLRO D 0567, 0004,1427,1700 ; 2672 RW, S, J/HLRO ; 2673 D 0570, 1015,1417,1100 ; 2674 570: R-PF, AC, J/HRRE D 0571, 0015,1417,3000 ; 2675 I-PF, AC, J/HRRE D 0572, 0116,1417,0700 ; 2676 W, M, J/HRRE D 0573, 0004,1417,1700 ; 2677 RW, S, J/HRRE ; 2678 D 0574, 1015,1423,1100 ; 2679 R-PF, AC, J/HLRE D 0575, 0015,1423,3000 ; 2680 I-PF, AC, J/HLRE D 0576, 0116,1423,0700 ; 2681 W, M, J/HLRE D 0577, 0004,1423,1700 ; 2682 RW, S, J/HLRE ; 2683 ; 2684 .UCODE ; 2685 ; KS10.MCR[7,3] 15:03 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 ; 2686 ;FIRST THE GUYS THAT LEAVE THE OTHER HALF ALONE ; 2687 ; 2688 ;THE AR CONTAINS THE MEMORY OPERAND. SO WE WANT TO PUT THE LH OF ; 2689 ; AC INTO AR TO DO A HRR. OBVIOUS THING FOR HLL. ; 2690 1407: U 1407, 1500,3771,0003,0276,0003,7700,0200,0003,0001 ; 2691 HRR: [AR]_AC,HOLD RIGHT,EXIT ; 2692 1410: U 1410, 1500,3771,0003,0270,6003,7700,0200,0003,0001 ; 2693 HLL: [AR]_AC,HOLD LEFT,EXIT ; 2694 ; 2695 ;HRL FLOW: ; 2696 ;AT HRL AR CONTAINS: ; 2697 ; ; 2698 ; !------------------!------------------! ; 2699 ; ! LH OF (E) ! RH OF (E) ! ; 2700 ; !------------------!------------------! ; 2701 ; ; 2702 ;AR_AR SWAP GIVES: ; 2703 ; ; 2704 ; !------------------!------------------! ; 2705 ; ! RH OF (E) ! LH OF (E) ! ; 2706 ; !------------------!------------------! ; 2707 ; ; 2708 ;AT HLL, AR_AC,HOLD LEFT GIVES: ; 2709 ; ; 2710 ; !------------------!------------------! ; 2711 ; ! RH OF (E) ! RH OF AC ! ; 2712 ; !------------------!------------------! ; 2713 ; ; 2714 ;THE EXIT MACRO CAUSES THE AR TO BE STORED IN AC (AT STAC). ; 2715 ; THE REST OF THE HALF WORD IN THIS GROUP ARE VERY SIMILAR. ; 2716 ; 2717 1411: U 1411, 1410,3770,0303,4344,4007,0700,0000,0000,0000 ; 2718 HRL: [AR]_[AR] SWAP,J/HLL ; 2719 1412: U 1412, 1407,3770,0303,4344,4007,0700,0000,0000,0000 ; 2720 HLR: [AR]_[AR] SWAP,J/HRR ; 2721 ; 2722 1413: U 1413, 0511,3770,0303,4344,4007,0700,0000,0000,0000 ; 2723 HRLM: [AR]_[AR] SWAP U 0511, 1402,3771,0003,0270,6007,0700,0000,0000,0000 ; 2724 [AR]_AC,HOLD LEFT,J/MOVS ; 2725 1414: U 1414, 1500,3770,0303,4344,0003,7700,0200,0003,0001 ; 2726 HRLS: [AR]_[AR] SWAP,HOLD RIGHT,EXIT ; 2727 ; 2728 1415: U 1415, 0512,3770,0303,4344,4007,0700,0000,0000,0000 ; 2729 HLRM: [AR]_[AR] SWAP U 0512, 1402,3771,0003,0276,0007,0700,0000,0000,0000 ; 2730 [AR]_AC,HOLD RIGHT,J/MOVS ; 2731 1416: U 1416, 1500,3770,0303,4340,4003,7700,0200,0003,0001 ; 2732 HLRS: [AR]_[AR] SWAP,HOLD LEFT,EXIT ; 2733 ; KS10.MCR[7,3] 15:03 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 ; 2734 ;NOW THE HALFWORD OPS WHICH CONTROL THE "OTHER" HALF. ; 2735 ; ENTER WITH 0,,E (E) OR (AC) IN AR ; 2736 ; 2737 1417: U 1417, 1420,3333,0003,4174,4007,0530,0000,0000,0000 ; 2738 HRRE: READ [AR],SKIP DP18 ; 2739 1420: U 1420, 1500,5731,0003,4174,4003,7700,0200,0003,0001 ; 2740 HRRZ: [AR] LEFT_0, EXIT ; 2741 1421: U 1421, 1500,5431,1203,4174,4003,7700,0200,0003,0001 ; 2742 HRRO: [AR] LEFT_-1, EXIT ; 2743 ; 2744 1422: U 1422, 1424,3333,0003,4174,4007,0530,0000,0000,0000 ; 2745 HRLE: READ [AR],SKIP DP18 ; 2746 1424: U 1424, 1402,3771,0003,4374,0007,0700,0000,0000,0000 ; 2747 HRLZ: [AR]_#,#/0,HOLD RIGHT,J/MOVS ; 2748 1425: U 1425, 1402,3771,0003,4374,0007,0700,0000,0077,7777 ; 2749 HRLO: [AR]_#,#/777777,HOLD RIGHT,J/MOVS ; 2750 ; 2751 1423: U 1423, 1426,3333,0003,4174,4007,0520,0000,0000,0000 ; 2752 HLRE: READ [AR],SKIP DP0 ; 2753 1426: U 1426, 1402,3771,0003,4370,4007,0700,0000,0000,0000 ; 2754 HLRZ: [AR]_#,#/0,HOLD LEFT,J/MOVS ; 2755 1427: U 1427, 1402,3771,0003,4370,4007,0700,0000,0077,7777 ; 2756 HLRO: [AR]_#,#/777777,HOLD LEFT,J/MOVS ; 2757 ; 2758 1430: U 1430, 1432,3333,0003,4174,4007,0520,0000,0000,0000 ; 2759 HLLE: READ [AR],SKIP DP0 ; 2760 1432: U 1432, 1500,5371,0003,4174,4003,7700,0200,0003,0001 ; 2761 HLLZ: [AR] RIGHT_0, EXIT ; 2762 1433: U 1433, 1500,5341,1203,4174,4003,7700,0200,0003,0001 ; 2763 HLLO: [AR] RIGHT_-1, EXIT ; 2764 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 76 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 DMOVE, DMOVN, DMOVEM, DMOVNM ; 2765 .TOC "DMOVE, DMOVN, DMOVEM, DMOVNM" ; 2766 ; 2767 .DCODE D 0120, 0205,1505,1100 ; 2768 120: DBL R, DAC, J/DAC D 0121, 0215,1434,1100 ; 2769 DBL R, AC, J/DMOVN ; 2770 .UCODE ; 2771 ; 2772 1434: U 1434, 3070,4551,0404,4374,0007,0700,0010,0037,7777 ; 2773 DMOVN: CLEAR ARX0, CALL [DBLNGA] U 1436, 1515,3440,0404,1174,4007,0700,0400,0000,1441 ; 2774 1436: AC[1]_[ARX], J/STAC ; 2775 ; 2776 .DCODE D 0124, 0300,1567,0100 ; 2777 124: DBL AC, J/DMOVN1 D 0125, 0100,1565,0500 ; 2778 W, J/DMOVNM ; 2779 .UCODE ; 2780 ; 2781 ; 2782 1565: U 1565, 3067,3771,0004,1276,6007,0701,0010,0000,1441 ; 2783 DMOVNM: [ARX]_AC[1],CALL [DBLNEG] ; 2784 1567: ; 2785 DMOVN1: [HR]+[ONE], ;GET E+1 ; 2786 LOAD VMA, ;PUT THAT IN VMA ; 2787 START WRITE, ;STORE IN E+1 U 1567, 0531,0113,0207,4174,4007,0700,0200,0003,0312 ; 2788 PXCT DATA ;DATA CYCLE U 0531, 0532,3333,0004,4175,5007,0701,0200,0000,0002 ; 2789 MEM WRITE, MEM_[ARX] ;STORE LOW WORD ; 2790 VMA_[HR], ;GET E ; 2791 LOAD VMA, ;SAVE IN VMA ; 2792 PXCT DATA, ;OPERAND STORE ; 2793 START WRITE, ;START MEM CYCLE U 0532, 0435,3443,0200,4174,4007,0700,0200,0003,0312 ; 2794 J/STORE ;GO STORE AR ; 2795 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 77 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 BOOLEAN GROUP ; 2796 .TOC "BOOLEAN GROUP" ; 2797 ; 2798 .DCODE D 0400, 0015,1441,3000 ; 2799 400: I-PF, AC, J/SETZ D 0401, 0015,1441,3000 ; 2800 I-PF, AC, J/SETZ D 0402, 0016,1441,2700 ; 2801 IW, M, J/SETZ D 0403, 0017,1441,2700 ; 2802 IW, B, J/SETZ ; 2803 .UCODE ; 2804 ; 2805 1441: U 1441, 1500,4221,0003,4174,4003,7700,0200,0003,0001 ; 2806 SETZ: [AR]_0, EXIT ; 2807 ; 2808 .DCODE D 0404, 1015,1442,1100 ; 2809 404: R-PF, AC, J/AND D 0405, 0015,1442,3000 ; 2810 I-PF, AC, J/AND D 0406, 0016,1442,1700 ; 2811 RW, M, J/AND D 0407, 0017,1442,1700 ; 2812 RW, B, J/AND ; 2813 .UCODE ; 2814 ; 2815 1442: U 1442, 1500,4551,0303,0274,4003,7700,0200,0003,0001 ; 2816 AND: [AR]_[AR].AND.AC,EXIT ; 2817 ; 2818 .DCODE D 0410, 1015,1443,1100 ; 2819 410: R-PF, AC, J/ANDCA D 0411, 0015,1443,3000 ; 2820 I-PF, AC, J/ANDCA D 0412, 0016,1443,1700 ; 2821 RW, M, J/ANDCA D 0413, 0017,1443,1700 ; 2822 RW, B, J/ANDCA ; 2823 .UCODE ; 2824 ; 2825 1443: U 1443, 1500,5551,0303,0274,4003,7700,0200,0003,0001 ; 2826 ANDCA: [AR]_[AR].AND.NOT.AC,EXIT ; 2827 ; 2828 .DCODE D 0414, 1015,1404,1100 ; 2829 414: R-PF, AC, J/MOVE ;SETM = MOVE D 0415, 0015,1404,3000 ; 2830 I-PF, AC, J/MOVE D 0416, 0016,1404,1700 ; 2831 RW, M, J/MOVE ;SETMM = NOP THAT WRITES MEMORY D 0417, 0017,1404,1700 ; 2832 RW, B, J/MOVE ;SETMB = MOVE THAT WRITES MEMORY ; 2833 D 0420, 1015,1444,1100 ; 2834 420: R-PF, AC, J/ANDCM D 0421, 0015,1444,3000 ; 2835 I-PF, AC, J/ANDCM D 0422, 0016,1444,1700 ; 2836 RW, M, J/ANDCM D 0423, 0017,1444,1700 ; 2837 RW, B, J/ANDCM ; 2838 .UCODE ; 2839 ; 2840 1444: U 1444, 1442,7441,0303,4174,4007,0700,0000,0000,0000 ; 2841 ANDCM: [AR]_.NOT.[AR],J/AND ; 2842 ; 2843 .DCODE D 0424, 0000,1400,1100 ; 2844 424: R, J/DONE D 0425, 0000,1400,2100 ; 2845 I, J/DONE D 0426, 0116,1404,0700 ; 2846 W, M, J/MOVE ;SETAM = MOVEM D 0427, 0116,1404,0700 ; 2847 W, M, J/MOVE ;SETAB, TOO ; 2848 .UCODE ; 2849 ; KS10.MCR[7,3] 15:03 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 ; 2850 .DCODE D 0430, 1015,1445,1100 ; 2851 430: R-PF, AC, J/XOR D 0431, 0015,1445,3000 ; 2852 I-PF, AC, J/XOR D 0432, 0016,1445,1700 ; 2853 RW, M, J/XOR D 0433, 0017,1445,1700 ; 2854 RW, B, J/XOR ; 2855 .UCODE ; 2856 ; 2857 1445: U 1445, 1500,6551,0303,0274,4003,7700,0200,0003,0001 ; 2858 XOR: [AR]_[AR].XOR.AC,EXIT ; 2859 ; 2860 .DCODE D 0434, 1015,1446,1100 ; 2861 434: R-PF, AC, J/IOR D 0435, 0015,1446,3000 ; 2862 I-PF, AC, J/IOR D 0436, 0016,1446,1700 ; 2863 RW, M, J/IOR D 0437, 0017,1446,1700 ; 2864 RW, B, J/IOR ; 2865 .UCODE ; 2866 ; 2867 1446: U 1446, 1500,3551,0303,0274,4003,7700,0200,0003,0001 ; 2868 IOR: [AR]_[AR].OR.AC,EXIT ; 2869 ; 2870 .DCODE D 0440, 1015,1447,1100 ; 2871 440: R-PF, AC, J/ANDCB D 0441, 0015,1447,3000 ; 2872 I-PF, AC, J/ANDCB D 0442, 0016,1447,1700 ; 2873 RW, M, J/ANDCB D 0443, 0017,1447,1700 ; 2874 RW, B, J/ANDCB ; 2875 .UCODE ; 2876 ; 2877 1447: U 1447, 1443,7441,0303,4174,4007,0700,0000,0000,0000 ; 2878 ANDCB: [AR]_.NOT.[AR],J/ANDCA ; 2879 ; 2880 .DCODE D 0444, 1015,1450,1100 ; 2881 444: R-PF, AC, J/EQV D 0445, 0015,1450,3000 ; 2882 I-PF, AC, J/EQV D 0446, 0016,1450,1700 ; 2883 RW, M, J/EQV D 0447, 0017,1450,1700 ; 2884 RW, B, J/EQV ; 2885 .UCODE ; 2886 ; 2887 1450: U 1450, 1500,7551,0303,0274,4003,7700,0200,0003,0001 ; 2888 EQV: [AR]_[AR].EQV.AC,EXIT ; 2889 ; 2890 .DCODE D 0450, 0015,1451,3000 ; 2891 450: I-PF, AC, J/SETCA D 0451, 0015,1451,3000 ; 2892 I-PF, AC, J/SETCA D 0452, 0016,1451,2700 ; 2893 IW, M, J/SETCA D 0453, 0017,1451,2700 ; 2894 IW, B, J/SETCA ; 2895 .UCODE ; 2896 ; 2897 1451: U 1451, 1500,7771,0003,0274,4003,7700,0200,0003,0001 ; 2898 SETCA: [AR]_.NOT.AC,EXIT ; 2899 ; KS10.MCR[7,3] 15:03 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 ; 2900 .DCODE D 0454, 1015,1452,1100 ; 2901 454: R-PF, AC, J/ORCA D 0455, 0015,1452,3000 ; 2902 I-PF, AC, J/ORCA D 0456, 0016,1452,1700 ; 2903 RW, M, J/ORCA D 0457, 0017,1452,1700 ; 2904 RW, B, J/ORCA ; 2905 .UCODE ; 2906 ; 2907 1452: U 1452, 0564,7771,0005,0274,4007,0700,0000,0000,0000 ; 2908 ORCA: [BR]_.NOT.AC U 0564, 1500,3111,0503,4174,4003,7700,0200,0003,0001 ; 2909 [AR]_[AR].OR.[BR],EXIT ; 2910 ; 2911 .DCODE D 0460, 1015,1453,1100 ; 2912 460: R-PF, AC, J/SETCM D 0461, 0015,1453,3000 ; 2913 I-PF, AC, J/SETCM D 0462, 0016,1453,1700 ; 2914 RW, M, J/SETCM D 0463, 0017,1453,1700 ; 2915 RW, B, J/SETCM ; 2916 .UCODE ; 2917 ; 2918 1453: U 1453, 1500,7441,0303,4174,4003,7700,0200,0003,0001 ; 2919 SETCM: [AR]_.NOT.[AR],EXIT ; 2920 ; 2921 .DCODE D 0464, 1015,1454,1100 ; 2922 464: R-PF, AC, J/ORCM D 0465, 0015,1454,3000 ; 2923 I-PF, AC, J/ORCM D 0466, 0016,1454,1700 ; 2924 RW, M, J/ORCM D 0467, 0017,1454,1700 ; 2925 RW, B, J/ORCM ; 2926 .UCODE ; 2927 ; 2928 1454: U 1454, 1446,7441,0303,4174,4007,0700,0000,0000,0000 ; 2929 ORCM: [AR]_.NOT.[AR],J/IOR ; 2930 ; 2931 .DCODE D 0470, 1015,1455,1100 ; 2932 470: R-PF, AC, J/ORCB D 0471, 0015,1455,3000 ; 2933 I-PF, AC, J/ORCB D 0472, 0016,1455,1700 ; 2934 RW, M, J/ORCB D 0473, 0017,1455,1700 ; 2935 RW, B, J/ORCB ; 2936 .UCODE ; 2937 ; 2938 1455: U 1455, 1453,4551,0303,0274,4007,0700,0000,0000,0000 ; 2939 ORCB: [AR]_[AR].AND.AC,J/SETCM ; 2940 ; 2941 .DCODE D 0474, 0015,1456,3000 ; 2942 474: I-PF, AC, J/SETO D 0475, 0015,1456,3000 ; 2943 I-PF, AC, J/SETO D 0476, 0016,1456,2700 ; 2944 IW, M, J/SETO D 0477, 0017,1456,2700 ; 2945 IW, B, J/SETO ; 2946 .UCODE ; 2947 ; 2948 1456: U 1456, 1500,2441,0703,4174,4003,7700,4200,0003,0001 ; 2949 SETO: [AR]_-[ONE], EXIT ; 2950 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 80 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 ROTATES AND LOGICAL SHIFTS -- ROT, LSH, JFFO ; 2951 .TOC "ROTATES AND LOGICAL SHIFTS -- ROT, LSH, JFFO" ; 2952 ; 2953 .DCODE D 0240, 0400,1622,1000 ; 2954 240: SH, J/ASH D 0241, 0400,1632,1000 ; 2955 SH, J/ROT D 0242, 0400,1612,1000 ; 2956 SH, J/LSH D 0243, 0000,1462,2100 ; 2957 I, J/JFFO D 0244, 0000,1466,3000 ; 2958 I-PF, J/ASHC D 0245, 0500,1470,1000 ; 2959 245: SHC, J/ROTC D 0246, 0500,1464,1000 ; 2960 SHC, J/LSHC ; 2961 .UCODE ; 2962 ; 2963 ; 2964 ;HERE IS THE CODE FOR LOGICAL SHIFT. THE EFFECTIVE ADDRESS IS ; 2965 ; IN AR. ; 2966 1612: ; 2967 LSH: [AR]_AC, ;PICK UP AC ; 2968 FE_-FE-1, ;NEGATIVE SHIFT U 1612, 0572,3771,0003,0276,6007,0700,1000,0031,1777 ; 2969 J/LSHL ;SHIFT LEFT ; 2970 1613: [AR]_AC.AND.MASK, ;MAKE IT LOOK POSITIVE ; 2971 FE_FE+1, ;UNDO -1 AT SHIFT U 1613, 0611,4551,1203,0276,6007,0700,1000,0041,0001 ; 2972 J/ASHR ;GO SHIFT RIGHT ; 2973 ; 2974 LSHL: [AR]_[AR]*2, ;SHIFT LEFT U 0572, 1515,3445,0303,4174,4007,0700,1020,0041,0001 ; 2975 SHIFT, J/STAC ;FAST SHIFT & GO STORE AC ; 2976 ; KS10.MCR[7,3] 15:03 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 ; 2977 ;HERE IS THE CODE FOR ARITHMETIC SHIFT. THE EFFECTIVE ADDRESS IS ; 2978 ; IN AR. ; 2979 ; 2980 ASH36 LEFT "[AR]_[AR]*2 LONG, ASHC, STEP SC, ASH AROV" ; 2981 ; 2982 1622: U 1622, 0632,4222,0000,4174,4007,0700,0000,0000,0000 ; 2983 ASH: Q_0, J/ASHL0 ;HARDWARE ONLY DOES ASHC ; 2984 1623: [AR]_AC, ;GET THE ARGUMENT U 1623, 0611,3771,0003,0276,6007,0700,1000,0041,0001 ; 2985 FE_FE+1 ;FE HAS NEGATIVE SHIFT COUNT ; 2986 ASHR: [AR]_[AR]*.5, ;SHIFT RIGHT ; 2987 ASH, SHIFT, ;FAST SHIFT U 0611, 1515,3447,0303,4174,4007,0700,1020,0041,0001 ; 2988 J/STAC ;STORE AC WHEN DONE ; 2989 ; 2990 ASHL0: [AR]_AC*.5, ;GET INTO 9 CHIPS U 0632, 0454,3777,0003,0274,4007,0631,2000,0060,0000 ; 2991 STEP SC ;SEE IF NULL SHIFT ; 2992 =0 U 0454, 0454,3444,0303,4174,4447,0630,2000,0060,0000 ; 2993 ASHL: ASH36 LEFT, J/ASHL ;SHIFT LEFT ; 2994 ;SLOW BECAUSE WE HAVE TO ; 2995 ; TEST FOR OVERFLOW ; 2996 U 0455, 1515,3445,0303,4174,4007,0700,0000,0000,0000 ; 2997 ASHX: [AR]_[AR]*2, J/STAC ;SHIFT BACK INTO 10 CHIPS ; 2998 ; KS10.MCR[7,3] 15:03 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 ; 2999 ;HERE IS THE CODE FOR ROTATE. THE EFFECTIVE ADDRESS IS ; 3000 ; IN AR. ; 3001 1632: ; 3002 ROT: [AR]_AC*.5, ;PICK UP THE AC (& SHIFT) ; 3003 FE_-FE-1, ;NEGATIVE SHIFT COUNT U 1632, 0747,3777,0003,0274,4007,0701,1000,0031,1777 ; 3004 J/ROTL ;ROTATE LEFT ; 3005 1633: [AR]_AC*.5, ;PICK UP THE AC (& SHIFT) U 1633, 0646,3777,0003,0274,4007,0701,1000,0041,0001 ; 3006 FE_FE+1 ;NEGATIVE SHIFT COUNT U 0646, 0701,3447,0303,4174,4007,0700,0000,0000,0000 ; 3007 [AR]_[AR]*.5 ;PUT IN 9 DIPS ; 3008 [AR]_[AR]*.5, ;SHIFT RIGHT U 0701, 0706,3447,0303,4174,4037,0700,1020,0041,0001 ; 3009 ROT, SHIFT ;FAST SHIFT U 0706, 0455,3445,0303,4174,4007,0700,0000,0000,0000 ; 3010 ASHXX: [AR]_[AR]*2,J/ASHX ;SHIFT TO STD PLACE ; 3011 U 0747, 0752,3447,0303,4174,4007,0700,0000,0000,0000 ; 3012 ROTL: [AR]_[AR]*.5 ;PUT IN RIGHT 36-BITS ; 3013 [AR]_[AR]*2, ;ROTATE LEFT ; 3014 ROT, SHIFT, ;FAST SHIFT U 0752, 0706,3445,0303,4174,4037,0700,1020,0041,0001 ; 3015 J/ASHXX ;ALL DONE--SHIFT BACK ; 3016 ; KS10.MCR[7,3] 15:03 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 ; 3017 1462: ; 3018 JFFO: [BR]_AC.AND.MASK, 4T, ;GET AC WITH NO SIGN U 1462, 0502,4551,1205,0276,6007,0622,0000,0000,0000 ; 3019 SKIP AD.EQ.0 ; EXTENSION. SKIP IF ; 3020 ; ZERO. ; 3021 =0 [PC]_[AR], ;NOT ZERO--JUMP ; 3022 LOAD VMA, FETCH, ;GET NEXT INST U 0502, 0767,3441,0301,4174,4007,0700,0200,0014,0012 ; 3023 J/JFFO1 ;ENTER LOOP U 0503, 1400,4223,0000,1174,4007,0700,0400,0000,1441 ; 3024 AC[1]_0, J/DONE ;ZERO--DONE ; 3025 U 0767, 0514,4443,0000,4174,4007,0700,1000,0071,1764 ; 3026 JFFO1: FE_-12. ;WHY -12.? WELL THE ; 3027 ; HARDWARE LOOKS AT ; 3028 ; BIT -2 SO THE FIRST ; 3029 ; 2 STEPS MOVE THE BR ; 3030 ; OVER. WE ALSO LOOK AT ; 3031 ; THE DATA BEFORE THE SHIFT ; 3032 ; SO WE END UP GOING 1 PLACE ; 3033 ; TOO MANY. THAT MEANS THE ; 3034 ; FE SHOULD START AT -3. ; 3035 ; HOWEVER, WE COUNT THE FE BY ; 3036 ; 4 (BECAUSE THE 2 LOW ORDER ; 3037 ; BITS DO NOT COME BACK) SO ; 3038 ; FE_-12. ; 3039 =0 ; 3040 JFFOL: [BR]_[BR]*2, ;SHIFT LEFT ; 3041 FE_FE+4, ;COUNT UP BIT NUMBER U 0514, 0514,3445,0505,4174,4007,0520,1000,0041,0004 ; 3042 SKIP DP0, J/JFFOL ;LOOP TILL WE FIND THE BIT U 0515, 1006,3777,0003,4334,4057,0700,0000,0041,0000 ; 3043 [AR]_FE ;GET ANSWER BACK U 1006, 1023,4251,0303,4374,4007,0700,0000,0000,0077 ; 3044 [AR]_[AR].AND.# CLR LH,#/77 ;MASK TO 1 COPY U 1023, 0100,3440,0303,1174,4156,4700,0400,0000,1441 ; 3045 AC[1]_[AR], NEXT INST ;STORE AND EXIT ; 3046 ; KS10.MCR[7,3] 15:03 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 -- LSHC ; 3047 .TOC "ROTATES AND LOGICAL SHIFTS -- LSHC" ; 3048 ; 3049 ;SHIFT CONNECTIONS WHEN THE SPECIAL FUNCTION "LSHC" IS DONE: ; 3050 ; ; 3051 ; !-! !----!------------------------------------! ; 3052 ; !0!-->!0000! HIGH ORDER 36 BITS ! RAM FILE ; 3053 ; !-! !----!------------------------------------! ; 3054 ; ^ ; 3055 ; : ; 3056 ; .................................... ; 3057 ; : ; 3058 ; !----!------------------------------------! ; 3059 ; !0000! LOW ORDER 36 BITS ! Q-REGISTER ; 3060 ; !----!------------------------------------! ; 3061 ; ^ ; 3062 ; : ; 3063 ; !-! ; 3064 ; !0! ; 3065 ; !-! ; 3066 ; ; 3067 ; 3068 1464: U 1464, 0544,4443,0000,4174,4007,0630,2000,0060,0000 ; 3069 LSHC: STEP SC, J/LSHCL U 1465, 1026,3333,0003,4174,4007,0700,2000,0031,5777 ; 3070 1465: READ [AR], SC_-SHIFT-1 U 1026, 0534,4443,0000,4174,4007,0630,2000,0060,0000 ; 3071 STEP SC ; 3072 =0 U 0534, 0534,3446,0505,4174,4057,0630,2000,0060,0000 ; 3073 LSHCR: [BR]_[BR]*.5 LONG,STEP SC,LSHC,J/LSHCR U 0535, 1033,3444,0505,4174,4007,0700,0000,0000,0000 ; 3074 [BR]_[BR]*2 LONG,J/LSHCX ; 3075 ; 3076 =0 U 0544, 0544,3444,0505,4174,4057,0630,2000,0060,0000 ; 3077 LSHCL: [BR]_[BR]*2 LONG,LSHC,STEP SC,J/LSHCL U 0545, 1033,3444,0505,4174,4007,0700,0000,0000,0000 ; 3078 [BR]_[BR]*2 LONG U 1033, 1036,3444,0505,4174,4007,0700,0000,0000,0000 ; 3079 LSHCX: [BR]_[BR]*2 LONG U 1036, 1064,3440,0505,0174,4007,0700,0400,0000,0000 ; 3080 AC_[BR], J/ASHCQ1 ; 3081 ; KS10.MCR[7,3] 15:03 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 -- ASHC ; 3082 .TOC "ROTATES AND LOGICAL SHIFTS -- ASHC" ; 3083 ; 3084 ; 3085 1466: ; 3086 ASHC: READ [AR], ;PUT AR ON DP ; 3087 SC_SHIFT, LOAD FE, ;PUT SHIFT IN BOTH SC AND FE U 1466, 0554,3333,0003,4174,4007,0330,3000,0041,4000 ; 3088 SKIP ADR.EQ.0 ;SEE IF NULL SHIFT ; 3089 =0 Q_AC[1], ;NOT NULL--GET LOW WORD U 0554, 1046,3772,0000,1275,5007,0701,0000,0000,1441 ; 3090 J/ASHC1 ;CONTINUE BELOW U 0555, 0100,4443,0000,4174,4156,4700,0000,0000,0000 ; 3091 NIDISP: NEXT INST ;NULL--ALL DONE ; 3092 ASHC1: [BR]_AC*.5 LONG, ;GET HIGH WORD ; 3093 ;AND SHIFT Q U 1046, 0614,3776,0005,0274,4007,0631,0000,0000,0000 ; 3094 SKIP/SC ;SEE WHICH DIRECTION ; 3095 =0 [BR]_[BR]*.5, ;ADJUST POSITION ; 3096 SC_FE+S#, S#/1776, ;SUBRTACT 2 FROM FE U 0614, 0634,3447,0505,4174,4007,0700,2000,0041,1776 ; 3097 J/ASHCL ;GO LEFT ; 3098 [BR]_[BR]*.5, ;ADJUST POSITION U 0615, 0624,3447,0505,4174,4007,0700,2000,0031,1776 ; 3099 SC_S#-FE, S#/1776 ;SC_-2-FE, SC_+# OF STEPS ; 3100 =0 ;HERE TO GO RIGHT ; 3101 ASHCR: [BR]_[BR]*.5 LONG, ;GO RIGHT ; 3102 ASHC, ;SET DATA PATHS FOR ASHC (SEE DPE1) U 0624, 0624,3446,0505,4174,4047,0630,2000,0060,0000 ; 3103 STEP SC, J/ASHCR ;COUNT THE STEP AND KEEP LOOPING ; 3104 [BR]_[BR]*2 LONG, ;PUT BACK WHERE IT GOES U 0625, 1053,3444,0505,4174,4047,0700,0000,0000,0000 ; 3105 ASHC, J/ASHCX ;COMPLETE INSTRUCTION ; 3106 ; 3107 =0 ; 3108 ASHCL: [BR]_[BR]*2 LONG, ;GO LEFT ; 3109 ASHC, ASH AROV, ;SEE IF OVERFLOW U 0634, 0634,3444,0505,4174,4447,0630,2000,0060,0000 ; 3110 STEP SC, J/ASHCL ;LOOP OVER ALL PLACES ; 3111 [BR]_[BR]*2 LONG, ;SHIFT BACK WHERE IT GOES U 0635, 1053,3444,0505,4174,4447,0700,0000,0000,0000 ; 3112 ASHC, ASH AROV ;CAN STILL OVERFLOW ; 3113 ASHCX: AC_[BR]+[BR], 3T, ;PUT BACK HIGH WORD U 1053, 0642,0113,0505,0174,4007,0521,0400,0000,0000 ; 3114 SKIP DP0 ;SEE HOW TO FIX LOW SIGN ; 3115 =0 Q_Q.AND.#, #/377777, ;POSITIVE, CLEAR LOW SIGN U 0642, 1064,4662,0000,4374,0007,0700,0000,0037,7777 ; 3116 HOLD RIGHT, J/ASHCQ1 ;GO STORE ANSWER ; 3117 Q_Q.OR.#, #/400000, ;NEGATIVE, SET LOW SIGN U 0643, 1064,3662,0000,4374,0007,0700,0000,0040,0000 ; 3118 HOLD RIGHT ;IN LEFT HALF U 1064, 0100,3223,0000,1174,4156,4700,0400,0000,1441 ; 3119 ASHCQ1: AC[1]_Q, NEXT INST ;PUT BACK Q AND EXIT ; 3120 ; KS10.MCR[7,3] 15:03 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 -- ROTC ; 3121 .TOC "ROTATES AND LOGICAL SHIFTS -- ROTC" ; 3122 ; 3123 ;SHIFT CONNECTIONS WHEN THE SPECIAL FUNCTION "ROTC" IS DONE: ; 3124 ; ; 3125 ; !----!------------------------------------! ; 3126 ; .....>!0000! HIGH ORDER 36 BITS ! RAM FILE ; 3127 ; : !----!------------------------------------! ; 3128 ; : ^ ; 3129 ; : : ; 3130 ; : ............................................ ; 3131 ; : : ; 3132 ; : : !----!------------------------------------! ; 3133 ; : ..!0000! LOW ORDER 36 BITS ! Q-REGISTER ; 3134 ; : !----!------------------------------------! ; 3135 ; : ^ ; 3136 ; : : ; 3137 ; :..............................................: ; 3138 ; ; 3139 ; 3140 1470: U 1470, 0742,4443,0000,4174,4007,0630,2000,0060,0000 ; 3141 ROTC: STEP SC, J/ROTCL U 1471, 1077,3333,0003,4174,4007,0700,2000,0031,5777 ; 3142 1471: READ [AR], SC_-SHIFT-1 U 1077, 0644,4443,0000,4174,4007,0630,2000,0060,0000 ; 3143 STEP SC ; 3144 =0 U 0644, 0644,3446,0505,4174,4077,0630,2000,0060,0000 ; 3145 ROTCR: [BR]_[BR]*.5 LONG,STEP SC,ROTC,J/ROTCR U 0645, 1033,3444,0505,4174,4007,0700,0000,0000,0000 ; 3146 [BR]_[BR]*2 LONG,J/LSHCX ; 3147 ; 3148 =0 U 0742, 0742,3444,0505,4174,4077,0630,2000,0060,0000 ; 3149 ROTCL: [BR]_[BR]*2 LONG,ROTC,STEP SC,J/ROTCL ; 3150 [BR]_[BR]*2 LONG, U 0743, 1033,3444,0505,4174,4007,0700,0000,0000,0000 ; 3151 J/LSHCX ; 3152 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 87 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 TEST GROUP ; 3153 .TOC "TEST GROUP" ; 3154 ; 3155 .DCODE ; 3156 ; 3157 ;SPECIAL MACROS USED ONLY IN B-FIELD OF TEST INSTRUCTIONS ; 3158 TN- "B/4" ; 3159 TNE "B/0" ; 3160 WORD-TNE "B/10" ;USED IN TIOE ; 3161 TNA "B/0" ; 3162 TNN "B/4" ; 3163 WORD-TNN "B/14" ;USED IN TION ; 3164 TZ- "B/5" ; 3165 TZE "B/1" ; 3166 TZA "B/1" ; 3167 TZN "B/5" ; 3168 TC- "B/6" ; 3169 TCE "B/2" ; 3170 TCA "B/2" ; 3171 TCN "B/6" ; 3172 TO- "B/7" ; 3173 TOE "B/3" ; 3174 TOA "B/3" ; 3175 TON "B/7" ; 3176 D 0600, 0000,1400,2100 ; 3177 600: I, J/DONE ;TRN- IS NOP D 0601, 0000,1400,2100 ; 3178 I, J/DONE ;SO IS TLN- D 0602, 0000,1475,2100 ; 3179 I, TNE, J/TDXX D 0603, 0000,1474,2100 ; 3180 I, TNE, J/TSXX D 0604, 0000,1473,2100 ; 3181 I, TNA, J/TDX D 0605, 0000,1472,2100 ; 3182 I, TNA, J/TSX D 0606, 0004,1475,2100 ; 3183 I, TNN, J/TDXX D 0607, 0004,1474,2100 ; 3184 I, TNN, J/TSXX ; 3185 D 0610, 0000,1400,2100 ; 3186 610: I, J/DONE ;TDN- IS A NOP D 0611, 0000,1400,2100 ; 3187 I, J/DONE ;TSN- ALSO D 0612, 0000,1475,1100 ; 3188 R, TNE, J/TDXX D 0613, 0000,1474,1100 ; 3189 R, TNE, J/TSXX D 0614, 0000,1473,1100 ; 3190 R, TNA, J/TDX D 0615, 0000,1472,1100 ; 3191 R, TNA, J/TSX D 0616, 0004,1475,1100 ; 3192 R, TNN, J/TDXX D 0617, 0004,1474,1100 ; 3193 R, TNN, J/TSXX ; 3194 D 0620, 0005,1473,2100 ; 3195 620: I, TZ-, J/TDX D 0621, 0005,1472,2100 ; 3196 I, TZ-, J/TSX D 0622, 0001,1475,2100 ; 3197 I, TZE, J/TDXX D 0623, 0001,1474,2100 ; 3198 I, TZE, J/TSXX D 0624, 0001,1473,2100 ; 3199 I, TZA, J/TDX D 0625, 0001,1472,2100 ; 3200 I, TZA, J/TSX D 0626, 0005,1475,2100 ; 3201 I, TZN, J/TDXX D 0627, 0005,1474,2100 ; 3202 I, TZN, J/TSXX ; 3203 ; KS10.MCR[7,3] 15:03 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 D 0630, 0005,1473,1100 ; 3204 630: R, TZ-, J/TDX D 0631, 0005,1472,1100 ; 3205 R, TZ-, J/TSX D 0632, 0001,1475,1100 ; 3206 R, TZE, J/TDXX D 0633, 0001,1474,1100 ; 3207 R, TZE, J/TSXX D 0634, 0001,1473,1100 ; 3208 R, TZA, J/TDX D 0635, 0001,1472,1100 ; 3209 R, TZA, J/TSX D 0636, 0005,1475,1100 ; 3210 R, TZN, J/TDXX D 0637, 0005,1474,1100 ; 3211 R, TZN, J/TSXX ; 3212 D 0640, 0006,1473,2100 ; 3213 640: I, TC-, J/TDX D 0641, 0006,1472,2100 ; 3214 I, TC-, J/TSX D 0642, 0002,1475,2100 ; 3215 I, TCE, J/TDXX D 0643, 0002,1474,2100 ; 3216 I, TCE, J/TSXX D 0644, 0002,1473,2100 ; 3217 I, TCA, J/TDX D 0645, 0002,1472,2100 ; 3218 I, TCA, J/TSX D 0646, 0006,1475,2100 ; 3219 I, TCN, J/TDXX D 0647, 0006,1474,2100 ; 3220 I, TCN, J/TSXX ; 3221 D 0650, 0006,1473,1100 ; 3222 650: R, TC-, J/TDX D 0651, 0006,1472,1100 ; 3223 R, TC-, J/TSX D 0652, 0002,1475,1100 ; 3224 R, TCE, J/TDXX D 0653, 0002,1474,1100 ; 3225 R, TCE, J/TSXX D 0654, 0002,1473,1100 ; 3226 R, TCA, J/TDX D 0655, 0002,1472,1100 ; 3227 R, TCA, J/TSX D 0656, 0006,1475,1100 ; 3228 R, TCN, J/TDXX D 0657, 0006,1474,1100 ; 3229 R, TCN, J/TSXX D 0660, 0007,1473,2100 ; 3230 660: I, TO-, J/TDX D 0661, 0007,1472,2100 ; 3231 I, TO-, J/TSX D 0662, 0003,1475,2100 ; 3232 I, TOE, J/TDXX D 0663, 0003,1474,2100 ; 3233 I, TOE, J/TSXX D 0664, 0003,1473,2100 ; 3234 I, TOA, J/TDX D 0665, 0003,1472,2100 ; 3235 I, TOA, J/TSX D 0666, 0007,1475,2100 ; 3236 I, TON, J/TDXX D 0667, 0007,1474,2100 ; 3237 I, TON, J/TSXX ; 3238 D 0670, 0007,1473,1100 ; 3239 670: R, TO-, J/TDX D 0671, 0007,1472,1100 ; 3240 R, TO-, J/TSX D 0672, 0003,1475,1100 ; 3241 R, TOE, J/TDXX D 0673, 0003,1474,1100 ; 3242 R, TOE, J/TSXX D 0674, 0003,1473,1100 ; 3243 R, TOA, J/TDX D 0675, 0003,1472,1100 ; 3244 R, TOA, J/TSX D 0676, 0007,1475,1100 ; 3245 R, TON, J/TDXX D 0677, 0007,1474,1100 ; 3246 R, TON, J/TSXX ; 3247 ; KS10.MCR[7,3] 15:03 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 ; 3248 .UCODE ; 3249 ; 3250 ;THESE 64 INSTRUCTIONS ARE DECODED BY MASK MODE(IMMEDIATE OR MEMORY) ; 3251 ; IN THE A FIELD, DISPATCH TO HERE ON THE J FIELD, AND RE-DISPATCH ; 3252 ; FOR THE MODIFICATION ON THE B FIELD. ; 3253 ; 3254 ; ENTER WITH 0,E OR (E) IN AR, B FIELD BITS 2 AND 3 AS FOLLOWS: ; 3255 ; 0 0 NO MODIFICATION ; 3256 ; 0 1 0S ; 3257 ; 1 0 COMPLEMENT ; 3258 ; 1 1 ONES ; 3259 ; THIS ORDER HAS NO SIGNIFICANCE EXCEPT THAT IT CORRESPONDS TO THE ; 3260 ; ORDER OF INSTRUCTIONS AT TGROUP. ; 3261 ; 3262 ;THE BIT 1 OF THE B FIELD IS USED TO DETERMINE THE SENSE ; 3263 ; OF THE SKIP ; 3264 ; 1 SKIP IF AC.AND.MASK .NE. 0 (TXX- AND TXXN) ; 3265 ; 0 SKIP IF AC.AND.MASK .EQ. 0 (TXXA AND TXXE) ; 3266 ; 3267 ;BIT 0 IS UNUSED AND MUST BE ZERO ; 3268 ; 3269 ; 3270 1472: U 1472, 1473,3770,0303,4344,4007,0700,0000,0000,0000 ; 3271 TSX: [AR]_[AR] SWAP ;TSXX AND TLXX ; 3272 1473: U 1473, 0014,4221,0005,4174,4003,7700,0000,0000,0000 ; 3273 TDX: [BR]_0,TEST DISP ; ALWAYS AND NEVER SKIP CASES ; 3274 ; 3275 1474: U 1474, 1475,3770,0303,4344,4007,0700,0000,0000,0000 ; 3276 TSXX: [AR]_[AR] SWAP ;TSXE, TSXN, TLXE, TLXN ; 3277 1475: ; 3278 TDXX: [BR]_[AR].AND.AC, ;TDXE, TDXN, TRXE, TRXN U 1475, 0014,4551,0305,0274,4003,7700,0000,0000,0000 ; 3279 TEST DISP ; 3280 ; KS10.MCR[7,3] 15:03 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 ; 3281 ;TEST DISP DOES AN 8 WAY BRANCH BASED ON THE B-FIELD OF DROM ; 3282 ; 3283 =1100 ; 3284 TEST-TABLE: ; 3285 ; 3286 ;CASE 0 & 4 -- TXNX U 0014, 1400,3333,0005,4174,4007,0571,0000,0000,0000 ; 3287 TXXX: READ [BR], TXXX TEST, 3T, J/DONE ; 3288 ; 3289 ;CASE 1 & 5 -- TXZ AND TXZX U 0015, 1116,7441,0303,4174,4007,0700,0000,0000,0000 ; 3290 [AR]_.NOT.[AR],J/TXZX ; 3291 ; 3292 ;CASE 2 & 6 -- TXC AND TXCX U 0016, 1123,6551,0303,0274,4007,0700,0000,0000,0000 ; 3293 [AR]_[AR].XOR.AC,J/TDONE ; 3294 ; 3295 ;CASE 3 & 7 -- TXO AND TXOX U 0017, 1123,3551,0303,0274,4007,0700,0000,0000,0000 ; 3296 [AR]_[AR].OR.AC,J/TDONE ; 3297 ; 3298 ;THE SPECIAL FUNCTION TXXX TEST CAUSES A MICROCODE SKIP IF ; 3299 ; AD.EQ.0 AND DROM B IS 0-3 OR AD.NE.0 AND DROM B IS 4-7. ; 3300 U 1116, 1123,4551,0303,0274,4007,0700,0000,0000,0000 ; 3301 TXZX: [AR]_[AR].AND.AC U 1123, 0014,3440,0303,0174,4007,0700,0400,0000,0000 ; 3302 TDONE: AC_[AR],J/TXXX ; 3303 ; READ BR,TXXX TEST,J/DONE ; 3304 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 91 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 COMPARE -- CAI, CAM ; 3305 .TOC "COMPARE -- CAI, CAM" ; 3306 ; 3307 .DCODE ; 3308 ; 3309 ;SPECIAL B-FIELD ENCODING USED BY SKIP-JUMP-COMPARE CLASS ; 3310 ; INSTRUCTIONS: ; 3311 ; 3312 SJC- "B/0" ;NEVER ; 3313 SJCL "B/1" ;LESS ; 3314 SJCE "B/2" ;EQUAL ; 3315 SJCLE "B/3" ;LESS EQUAL ; 3316 SJCA "B/4" ;ALWAYS ; 3317 SJCGE "B/5" ;GREATER THAN OR EQUAL ; 3318 SJCN "B/6" ;NOT EQUAL ; 3319 SJCG "B/7" ;GREATER ; 3320 ; 3321 .UCODE ; 3322 ; 3323 ;COMPARE TABLE ; 3324 =1000 ; 3325 SKIP-COMP-TABLE: ; 3326 ; 3327 ;CASE 0 -- NEVER U 0250, 0110,3443,0100,4174,4156,4700,0200,0014,0012 ; 3328 DONE ; 3329 ; 3330 ;CASE 1 -- LESS U 0251, 1400,3333,0003,4174,4007,0520,0000,0000,0000 ; 3331 READ [AR], SKIP DP0,J/DONE ; 3332 ; 3333 ;CASE 2 -- EQUAL U 0252, 1400,3333,0003,4174,4007,0621,0000,0000,0000 ; 3334 SKIPE: READ [AR], SKIP AD.EQ.0,J/DONE ; 3335 ; 3336 ;CASE 3 -- LESS OR EQUAL U 0253, 1400,3333,0003,4174,4007,0421,0000,0000,0000 ; 3337 READ [AR], SKIP AD.LE.0,J/DONE ; 3338 ; 3339 ;CASE 4 -- ALWAYS U 0254, 0110,0111,0701,4170,4156,4700,0200,0014,0012 ; 3340 VMA_[PC]+1, NEXT INST FETCH, FETCH ; 3341 ; 3342 ;CASE 5 -- GREATER THAN OR EQUAL U 0255, 0260,3333,0003,4174,4007,0520,0000,0000,0000 ; 3343 READ [AR], SKIP DP0,J/SKIP ; 3344 ; 3345 ;CASE 6 -- NOT EQUAL U 0256, 0260,3333,0003,4174,4007,0621,0000,0000,0000 ; 3346 READ [AR], SKIP AD.EQ.0,J/SKIP ; 3347 ; 3348 ;CASE 7 -- GREATER U 0257, 0260,3333,0003,4174,4007,0421,0000,0000,0000 ; 3349 READ [AR], SKIP AD.LE.0,J/SKIP ; 3350 ; KS10.MCR[7,3] 15:03 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 ; 3351 .DCODE D 0300, 0000,1400,2100 ; 3352 300: I, SJC-, J/DONE ;CAI D 0301, 0001,1476,2100 ; 3353 I, SJCL, J/CAIM D 0302, 0002,1476,2100 ; 3354 I, SJCE, J/CAIM D 0303, 0003,1476,2100 ; 3355 I, SJCLE, J/CAIM D 0304, 0004,1476,2100 ; 3356 I, SJCA, J/CAIM D 0305, 0005,1476,2100 ; 3357 I, SJCGE, J/CAIM D 0306, 0006,1476,2100 ; 3358 I, SJCN, J/CAIM D 0307, 0007,1476,2100 ; 3359 I, SJCG, J/CAIM ; 3360 D 0310, 0000,1476,1100 ; 3361 310: R, SJC-, J/CAIM ;CAM D 0311, 0001,1476,1100 ; 3362 R, SJCL, J/CAIM D 0312, 0002,1476,1100 ; 3363 R, SJCE, J/CAIM D 0313, 0003,1476,1100 ; 3364 R, SJCLE, J/CAIM D 0314, 0004,1476,1100 ; 3365 R, SJCA, J/CAIM D 0315, 0005,1476,1100 ; 3366 R, SJCGE, J/CAIM D 0316, 0006,1476,1100 ; 3367 R, SJCN, J/CAIM D 0317, 0007,1476,1100 ; 3368 R, SJCG, J/CAIM ; 3369 .UCODE ; 3370 ; 3371 1476: U 1476, 0250,2551,0303,0274,4003,7701,4000,0000,0000 ; 3372 CAIM: [AR]_AC-[AR], 3T, SKIP-COMP DISP ; 3373 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 93 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 ARITHMETIC SKIPS -- AOS, SOS, SKIP ; 3374 .TOC "ARITHMETIC SKIPS -- AOS, SOS, SKIP" ; 3375 ;ENTER WITH (E) IN AR ; 3376 ; 3377 .DCODE D 0330, 0000,1477,1100 ; 3378 330: R, SJC-, J/SKIPS ;NOT A NOP IF AC .NE. 0 D 0331, 0001,1477,1100 ; 3379 R, SJCL, J/SKIPS D 0332, 0002,1477,1100 ; 3380 R, SJCE, J/SKIPS D 0333, 0003,1477,1100 ; 3381 R, SJCLE, J/SKIPS D 0334, 0004,1477,1100 ; 3382 R, SJCA, J/SKIPS D 0335, 0005,1477,1100 ; 3383 R, SJCGE, J/SKIPS D 0336, 0006,1477,1100 ; 3384 R, SJCN, J/SKIPS D 0337, 0007,1477,1100 ; 3385 R, SJCG, J/SKIPS ; 3386 .UCODE ; 3387 ; 3388 1477: ; 3389 SKIPS: FIX [AR] SIGN, U 1477, 0744,3770,0303,4174,0007,0360,0000,0000,0000 ; 3390 SKIP IF AC0 U 0744, 0250,3440,0303,0174,4003,7700,0400,0000,0000 ; 3391 =0 AC_[AR],SKIP-COMP DISP U 0745, 0250,4443,0000,4174,4003,7700,0000,0000,0000 ; 3392 SKIP-COMP DISP ; 3393 ; 3394 .DCODE D 0350, 0000,1431,1500 ; 3395 350: RW, SJC-, J/AOS D 0351, 0001,1431,1500 ; 3396 RW, SJCL, J/AOS D 0352, 0002,1431,1500 ; 3397 RW, SJCE, J/AOS D 0353, 0003,1431,1500 ; 3398 RW, SJCLE, J/AOS D 0354, 0004,1431,1500 ; 3399 RW, SJCA, J/AOS D 0355, 0005,1431,1500 ; 3400 RW, SJCGE, J/AOS D 0356, 0006,1431,1500 ; 3401 RW, SJCN, J/AOS D 0357, 0007,1431,1500 ; 3402 RW, SJCG, J/AOS ; 3403 .UCODE ; 3404 ; 3405 1431: U 1431, 1136,0111,0703,4174,4467,0701,0000,0001,0001 ; 3406 AOS: [AR]_[AR]+1, 3T, AD FLAGS U 1136, 1143,4443,0000,4174,4007,0700,0200,0003,0002 ; 3407 XOS: START WRITE U 1143, 1477,3333,0003,4175,5007,0701,0200,0000,0002 ; 3408 MEM WRITE,MEM_[AR],J/SKIPS ; 3409 ; 3410 .DCODE D 0370, 0000,1437,1500 ; 3411 370: RW, SJC-, J/SOS D 0371, 0001,1437,1500 ; 3412 RW, SJCL, J/SOS D 0372, 0002,1437,1500 ; 3413 RW, SJCE, J/SOS D 0373, 0003,1437,1500 ; 3414 RW, SJCLE, J/SOS D 0374, 0004,1437,1500 ; 3415 RW, SJCA, J/SOS D 0375, 0005,1437,1500 ; 3416 RW, SJCGE, J/SOS D 0376, 0006,1437,1500 ; 3417 RW, SJCN, J/SOS D 0377, 0007,1437,1500 ; 3418 RW, SJCG, J/SOS ; 3419 .UCODE ; 3420 ; 3421 1437: U 1437, 1136,1111,0703,4174,4467,0701,4000,0001,0001 ; 3422 SOS: [AR]_[AR]-1, 3T, AD FLAGS, J/XOS ; 3423 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 94 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 CONDITIONAL JUMPS -- JUMP, AOJ, SOJ, AOBJ ; 3424 .TOC "CONDITIONAL JUMPS -- JUMP, AOJ, SOJ, AOBJ" ; 3425 ; ENTER WITH E IN AR ; 3426 ; 3427 =1000 ; 3428 JUMP-TABLE: ; 3429 ; 3430 ;CASE 0 -- NEVER U 0270, 0100,3440,0505,0174,4156,4700,0400,0000,0000 ; 3431 AC_[BR], NEXT INST ; 3432 ; 3433 ;CASE 1 -- LESS U 0271, 0762,3770,0505,0174,4007,0520,0400,0000,0000 ; 3434 AC_[BR] TEST, SKIP DP0, J/JUMP- ; 3435 ; 3436 ;CASE 2 -- EQUAL U 0272, 0762,3770,0505,0174,4007,0621,0400,0000,0000 ; 3437 AC_[BR] TEST, SKIP AD.EQ.0, J/JUMP- ; 3438 ; 3439 ;CASE 3 -- LESS THAN OR EQUAL U 0273, 0762,3770,0505,0174,4007,0421,0400,0000,0000 ; 3440 AC_[BR] TEST, SKIP AD.LE.0, J/JUMP- ; 3441 ; 3442 ;CASE 4 -- ALWAYS U 0274, 0764,3440,0505,0174,4007,0700,0400,0000,0000 ; 3443 JMPA: AC_[BR], J/JUMPA ; 3444 ; 3445 ;CASE 5 -- GREATER THAN OR EQUAL TO U 0275, 0764,3770,0505,0174,4007,0520,0400,0000,0000 ; 3446 AC_[BR] TEST, SKIP DP0, J/JUMPA ; 3447 ; 3448 ;CASE 6 -- NOT EQUAL U 0276, 0764,3770,0505,0174,4007,0621,0400,0000,0000 ; 3449 AC_[BR] TEST, SKIP AD.EQ.0, J/JUMPA ; 3450 ; 3451 ;CASE 7 -- GREATER U 0277, 0764,3770,0505,0174,4007,0421,0400,0000,0000 ; 3452 AC_[BR] TEST, SKIP AD.LE.0, J/JUMPA ; 3453 ; 3454 =0 U 0762, 0110,3443,0100,4174,4156,4700,0200,0014,0012 ; 3455 JUMP-: DONE U 0763, 0110,3441,0301,4170,4156,4700,0200,0014,0012 ; 3456 JUMPA ; 3457 ; 3458 =0 U 0764, 0110,3441,0301,4170,4156,4700,0200,0014,0012 ; 3459 JUMPA: JUMPA U 0765, 0110,3443,0100,4174,4156,4700,0200,0014,0012 ; 3460 DONE ; 3461 ; 3462 ; KS10.MCR[7,3] 15:03 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 ; 3463 .DCODE D 0320, 0000,1400,2100 ; 3464 320: I, SJC-, J/DONE D 0321, 0001,1440,2100 ; 3465 I, SJCL, J/JUMP D 0322, 0002,1440,2100 ; 3466 I, SJCE, J/JUMP D 0323, 0003,1440,2100 ; 3467 I, SJCLE, J/JUMP D 0324, 0004,1520,2100 ; 3468 I, SJCA, J/JRST D 0325, 0005,1440,2100 ; 3469 I, SJCGE, J/JUMP D 0326, 0006,1440,2100 ; 3470 I, SJCN, J/JUMP D 0327, 0007,1440,2100 ; 3471 I, SJCG, J/JUMP ; 3472 .UCODE ; 3473 ; 3474 1440: U 1440, 0270,3771,0005,0276,6003,7700,0000,0000,0000 ; 3475 JUMP: [BR]_AC,JUMP DISP ; 3476 ; 3477 .DCODE D 0340, 0000,1611,3000 ; 3478 340: I-PF, SJC-, J/AOJ D 0341, 0001,1611,2100 ; 3479 I, SJCL, J/AOJ D 0342, 0002,1611,2100 ; 3480 I, SJCE, J/AOJ D 0343, 0003,1611,2100 ; 3481 I, SJCLE, J/AOJ D 0344, 0004,1611,2100 ; 3482 I, SJCA, J/AOJ D 0345, 0005,1611,2100 ; 3483 I, SJCGE, J/AOJ D 0346, 0006,1611,2100 ; 3484 I, SJCN, J/AOJ D 0347, 0007,1611,2100 ; 3485 I, SJCG, J/AOJ ; 3486 .UCODE ; 3487 ; 3488 1611: U 1611, 0270,0551,0705,0274,4463,7702,0000,0001,0001 ; 3489 AOJ: [BR]_AC+1, AD FLAGS, 4T, JUMP DISP ; 3490 ; 3491 .DCODE D 0360, 0000,1542,3000 ; 3492 360: I-PF, SJC-, J/SOJ D 0361, 0001,1542,2100 ; 3493 I, SJCL, J/SOJ D 0362, 0002,1542,2100 ; 3494 I, SJCE, J/SOJ D 0363, 0003,1542,2100 ; 3495 I, SJCLE, J/SOJ D 0364, 0004,1542,2100 ; 3496 I, SJCA, J/SOJ D 0365, 0005,1542,2100 ; 3497 I, SJCGE, J/SOJ D 0366, 0006,1542,2100 ; 3498 I, SJCN, J/SOJ D 0367, 0007,1542,2100 ; 3499 I, SJCG, J/SOJ ; 3500 .UCODE ; 3501 ; 3502 1542: U 1542, 0270,2551,0705,0274,4463,7702,4000,0001,0001 ; 3503 SOJ: [BR]_AC-1, AD FLAGS, 4T, JUMP DISP ; 3504 ; 3505 .DCODE D 0252, 0005,1547,2100 ; 3506 252: I, SJCGE, J/AOBJ D 0253, 0001,1547,2100 ; 3507 I, SJCL, J/AOBJ ; 3508 .UCODE ; 3509 ; 3510 1547: ; 3511 AOBJ: [BR]_AC+1000001, ;ADD 1 TO BOTH HALF WORDS ; 3512 INH CRY18, 3T, ;NO CARRY INTO LEFT HALF U 1547, 0270,0551,1505,0274,4403,7701,0000,0000,0000 ; 3513 JUMP DISP ;HANDLE EITHER AOBJP OR AOBJN ; 3514 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 96 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 AC DECODE JUMPS -- JRST, JFCL ; 3515 .TOC "AC DECODE JUMPS -- JRST, JFCL" ; 3516 ; 3517 .DCODE D 0254, 0000,1520,6000 ; 3518 254: I,VMA/0, AC DISP, J/JRST ;DISPATCHES TO 1 OF 16 ; 3519 ; PLACES ON AC BITS D 0255, 0000,1540,2100 ; 3520 I, J/JFCL ; 3521 .UCODE ; 3522 ; 3523 ;JRST DISPATCHES TO ONE OF 16 LOC'NS ON AC BITS ; 3524 ; 3525 =0000 ; 3526 1520: U 1520, 0110,3441,0301,4170,4156,4700,0200,0014,0012 ; 3527 JRST: JUMPA ;(0) JRST 0, U 1521, 0110,3441,0301,4170,4156,4700,0200,0014,0012 ; 3528 1521: JUMPA ;(1) PORTAL IS SAME AS JRST ; 3529 1522: VMA_[PC]-1, START READ, ;(2) JRSTF U 1522, 0150,1113,0701,4170,4007,0700,4200,0004,0012 ; 3530 J/JRSTF U 1523, 2737,4551,0202,4374,0007,0700,0000,0077,7740 ; 3531 1523: UUO ;(3) U 1524, 1004,4443,0000,4174,4007,0340,0000,0000,0000 ; 3532 1524: SKIP KERNEL, J/HALT ;(4) HALT ; 3533 1525: ; 3534 XJRSTF0: VMA_[AR], START READ, ;(5) XJRSTF U 1525, 2606,3443,0300,4174,4007,0700,0200,0004,0012 ; 3535 J/XJRSTF U 1526, 0320,4443,0000,4174,4007,0340,0000,0000,0000 ; 3536 1526: SKIP KERNEL, J/XJEN ;(6) XJEN U 1527, 1014,4443,0000,4174,4007,0340,0000,0000,0000 ; 3537 1527: SKIP KERNEL, J/XPCW ;(7) XPCW ; 3538 1530: VMA_[PC]-1, START READ, ;(10) U 1530, 1010,1113,0701,4170,4007,0040,4200,0004,0012 ; 3539 SKIP IO LEGAL, J/JRST10 U 1531, 2737,4551,0202,4374,0007,0700,0000,0077,7740 ; 3540 1531: UUO ;(11) ; 3541 1532: VMA_[PC]-1, START READ, ;(12) JEN U 1532, 0300,1113,0701,4170,4007,0040,4200,0004,0012 ; 3542 SKIP IO LEGAL, J/JEN U 1533, 2737,4551,0202,4374,0007,0700,0000,0077,7740 ; 3543 1533: UUO ;(13) U 1534, 1024,4443,0000,4174,4007,0340,0000,0000,0000 ; 3544 1534: SKIP KERNEL, J/SFM ;(14) SFM U 1535, 2737,4551,0202,4374,0007,0700,0000,0077,7740 ; 3545 1535: UUO ;(15) U 1536, 2737,4551,0202,4374,0007,0700,0000,0077,7740 ; 3546 1536: UUO ;(16) U 1537, 2737,4551,0202,4374,0007,0700,0000,0077,7740 ; 3547 1537: UUO ;(17) ; 3548 ; KS10.MCR[7,3] 15:03 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 ; 3549 =0* ; 3550 JRSTF: MEM READ, ;WAIT FOR DATA ; 3551 [HR]_MEM, ;STICK IN HR ; 3552 LOAD INST EA, ;LOAD @ AND XR U 0150, 2551,3771,0002,4365,5217,0700,0210,0000,0002 ; 3553 CALL [JRST0] ;COMPUTE EA AGAIN U 0152, 0110,3441,0301,4170,4156,4700,0200,0014,0012 ; 3554 JUMPA ;JUMP ; 3555 U 2551, 0030,4443,0000,2174,4006,6700,0000,0000,0000 ; 3556 JRST0: EA MODE DISP ;WHAT TYPE OF EA? ; 3557 =100* ; 3558 READ XR, ;INDEXED ; 3559 LOAD FLAGS, ;GET FLAGS FROM XR ; 3560 UPDATE USER, ;ALLOW USER TO SET U 0030, 0002,3773,0000,2274,4464,1700,0000,0001,0004 ; 3561 RETURN [2] ;ALL DONE ; 3562 READ [HR], ;PLAIN ; 3563 LOAD FLAGS, ;LOAD FLAGS FROM INST ; 3564 UPDATE USER, ;ALLOW USER TO SET U 0032, 0002,3333,0002,4174,4464,1700,0000,0001,0004 ; 3565 RETURN [2] ;RETURN ; 3566 [HR]_[HR]+XR, ;BOTH ; 3567 LOAD VMA, ;FETCH IND WORD ; 3568 START READ, ;START MEM CYCLE U 0034, 2556,0551,0202,2270,4007,0700,0200,0004,0012 ; 3569 J/JRST1 ;CONTINUE BELOW ; 3570 VMA_[HR], ;INDIRECT ; 3571 START READ, ;FETCH IND WORD ; 3572 PXCT EA, ;SETUP PXCT STUFF U 0036, 2556,3443,0200,4174,4007,0700,0200,0004,0112 ; 3573 J/JRST1 ;CONTINUE BELOW ; 3574 JRST1: MEM READ, ;WAIT FOR DATA ; 3575 [HR]_MEM, ;LOAD THE HR ; 3576 LOAD INST EA, ;LOAD @ AND XR U 2556, 2551,3771,0002,4365,5217,0700,0200,0000,0002 ; 3577 J/JRST0 ;LOOP BACK ; 3578 ; KS10.MCR[7,3] 15:03 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 ; 3579 =0 U 1004, 2737,4551,0202,4374,0007,0700,0000,0077,7740 ; 3580 HALT: UUO ;USER MODE U 1005, 2601,3441,0301,4174,4007,0700,0000,0000,0000 ; 3581 [PC]_[AR] ;EXEC MODE--CHANGE PC U 2601, 0104,4751,1217,4374,4007,0700,0000,0000,0001 ; 3582 HALT [HALT] ;HALT INSTRUCTION ; 3583 ; 3584 =0 U 1010, 2737,4551,0202,4374,0007,0700,0000,0077,7740 ; 3585 JRST10: UUO U 1011, 0303,4443,0000,4174,4007,0700,0000,0000,0000 ; 3586 J/JEN2 ;DISMISS INTERRUPT ; 3587 =0000 U 0300, 2737,4551,0202,4374,0007,0700,0000,0077,7740 ; 3588 JEN: UUO ; FLAGS ; 3589 MEM READ, ; 3590 [HR]_MEM, ;GET INST ; 3591 LOAD INST EA, ;LOAD XR & @ U 0301, 2551,3771,0002,4365,5217,0700,0210,0000,0002 ; 3592 CALL [JRST0] ;COMPUTE FLAGS ; 3593 =0011 U 0303, 2432,4553,1400,4374,4007,0331,0010,0007,7400 ; 3594 JEN2: DISMISS ;DISMISS INTERRUPT U 0307, 3610,3770,1416,4344,4007,0700,0010,0000,0000 ; 3595 =0111 CALL LOAD PI ;RELOAD PI HARDWARE U 0317, 0110,3441,0301,4170,4156,4700,0200,0014,0012 ; 3596 =1111 JUMPA ;GO JUMP ; 3597 = ; 3598 ; 3599 1540: ; 3600 JFCL: JFCL FLAGS, ;ALL DONE IN HARDWARE ; 3601 SKIP JFCL, ;SEE IF SKIPS ; 3602 3T, ;ALLOW TIME U 1540, 0762,4443,0000,4174,4467,0551,0000,0001,0010 ; 3603 J/JUMP- ;JUMP IF WE SHOULD ; 3604 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 99 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 EXTENDED ADDRESSING INSTRUCTIONS ; 3605 .TOC "EXTENDED ADDRESSING INSTRUCTIONS" ; 3606 ; 3607 =0000 U 0320, 2737,4551,0202,4374,0007,0700,0000,0077,7740 ; 3608 XJEN: UUO ;HERE IF USER MODE U 0321, 2432,4553,1400,4374,4007,0331,0010,0007,7400 ; 3609 DISMISS ;CLEAR HIGHEST INTERRUPT U 0325, 0335,3333,0012,4174,4437,0700,0000,0000,0000 ; 3610 =0101 READ [MASK], LOAD PI ;NO MORE INTERRUPTS ; 3611 =1101 ABORT MEM CYCLE, ;AVOID INTERRUPT PAGE FAIL U 0335, 1525,4223,0000,4364,4277,0700,0200,0000,0010 ; 3612 J/XJRSTF0 ;START READING FLAG WORD ; 3613 = ; 3614 U 2606, 2623,3771,0005,4365,5007,0700,0200,0000,0002 ; 3615 XJRSTF: MEM READ, [BR]_MEM ;PUT FLAGS IN BR ; 3616 [AR]_[AR]+1, ;INCREMENT ADDRESS ; 3617 LOAD VMA, ;PUT RESULT IN VMA U 2623, 2627,0111,0703,4174,4007,0700,0200,0004,0012 ; 3618 START READ ;START MEMORY ; 3619 MEM READ, [PC]_MEM, ;PUT DATA IN PC U 2627, 2701,3771,0001,4361,5007,0700,0200,0000,0002 ; 3620 HOLD LEFT ;IGNORE SECTION NUMBER ; 3621 READ [BR], LOAD FLAGS, ;LOAD NEW FLAGS U 2701, 2714,3333,0005,4174,4467,0700,0000,0001,0004 ; 3622 UPDATE USER ;BUT HOLD USER FLAG ; 3623 PISET: [FLG]_[FLG].AND.NOT.#, ;CLEAR PI CYCLE U 2714, 0305,5551,1313,4374,4007,0700,0000,0001,0000 ; 3624 FLG.PI/1, J/PIEXIT ;RELOAD PI HARDWARE ; 3625 ; INCASE THIS IS AN ; 3626 ; INTERRUPT INSTRUCTION ; 3627 ; 3628 =0 U 1014, 2737,4551,0202,4374,0007,0700,0000,0077,7740 ; 3629 XPCW: UUO ;USER MODE U 1015, 0060,4521,1205,4074,4007,0700,0000,0000,0000 ; 3630 [BR]_FLAGS ;PUT FLAGS IN BR ; 3631 =0*0 ; 3632 PIXPCW: VMA_[AR], START WRITE, ;STORE FLAGS U 0060, 3667,3443,0300,4174,4007,0700,0210,0003,0012 ; 3633 CALL [STOBR] ;PUT BR IN MEMORY ; 3634 =1*0 VMA_[AR]+1, LOAD VMA, ; 3635 START WRITE, ;PREPEARE TO STORE PC U 0064, 3670,0111,0703,4170,4007,0700,0210,0003,0012 ; 3636 CALL [STOPC] ;PUT PC IN MEMORY ; 3637 =1*1 [AR]_[AR]+1, ;DO NEW PC PART U 0065, 2606,0111,0703,4174,4007,0700,0200,0004,0002 ; 3638 START READ, J/XJRSTF ; 3639 = ; 3640 ; 3641 =0 U 1024, 2737,4551,0202,4374,0007,0700,0000,0077,7740 ; 3642 SFM: UUO U 1025, 2715,3443,0300,4174,4007,0700,0200,0003,0012 ; 3643 VMA_[AR], START WRITE ;STORE FLAGS U 2715, 0435,4521,1203,4074,4007,0700,0000,0000,0000 ; 3644 [AR]_FLAGS, J/STORE ;STORE AND EXIT ; 3645 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 100 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 XCT ; 3646 .TOC "XCT" ; 3647 ; 3648 .DCODE D 0256, 0000,1541,1100 ; 3649 256: R, J/XCT ;OPERAND FETCHED AS DATA ; 3650 .UCODE ; 3651 ; 3652 1541: U 1541, 1034,4443,0000,4174,4007,0340,0000,0000,0000 ; 3653 XCT: SKIP KERNEL ;SEE IF MAY BE PXCT ; 3654 =0 ; 3655 XCT1A: [HR]_[AR], ;STUFF INTO HR ; 3656 DBUS/DP, ;PLACE ON DBUS FOR IR ; 3657 LOAD INST, ;LOAD IR, AC, XR, ETC. ; 3658 PXCT/E1, ;ALLOW XR TO BE PREVIOUS U 1034, 2716,3441,0302,4174,4617,0700,0000,0000,0100 ; 3659 J/XCT1 ;CONTINUE BELOW ; 3660 ; 3661 READ [HR], ;LOAD PXCT FLAGS ; 3662 LOAD PXCT, ; .. U 1035, 1034,3333,0002,4174,4167,0700,0000,0000,0000 ; 3663 J/XCT1A ;CONTINUE WITH NORMAL FLOW ; 3664 ; 3665 XCT1: WORK[YSAVE]_[HR] CLR LH,;SAVE FOR IO INSTRUCTIONS U 2716, 0371,4713,1202,7174,4007,0700,0400,0000,0422 ; 3666 J/XCT2 ;GO EXECUTE IT ; 3667 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 101 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 STACK INSTRUCTIONS -- PUSHJ, PUSH, POP, POPJ ; 3668 .TOC "STACK INSTRUCTIONS -- PUSHJ, PUSH, POP, POPJ" ; 3669 ; 3670 .DCODE D 0260, 0000,1544,2100 ; 3671 260: I, B/0, J/PUSHJ D 0261, 0002,1543,3100 ; 3672 IR, B/2, J/PUSH D 0262, 0002,1545,2100 ; 3673 I, B/2, J/POP D 0263, 0000,1546,2100 ; 3674 I, J/POPJ ; 3675 .UCODE ; 3676 ; 3677 ;ALL START WITH E IN AR ; 3678 1543: ; 3679 PUSH: MEM READ, ;PUT MEMOP IN BR U 1543, 2717,3771,0005,4365,5007,0700,0200,0000,0002 ; 3680 [BR]_MEM ; .. ; 3681 PUSH1: [ARX]_AC+1000001, ;BUMP BOTH HALVES OF AC ; 3682 INH CRY18, ;NO CARRY ; 3683 LOAD VMA, ;START TO STORE ITEM ; 3684 START WRITE, ;START MEM CYCLE ; 3685 PXCT STACK WORD, ;THIS IS THE STACK DATA WORD ; 3686 3T, ;ALLOW TIME ; 3687 SKIP CRY0, ;GO TO STMAC, SKIP IF PDL OV U 2717, 1044,0551,1504,0274,4407,0311,0200,0003,0712 ; 3688 J/STMAC ; .. ; 3689 ; 3690 1544: ; 3691 PUSHJ: [BR]_PC WITH FLAGS, ;COMPUTE UPDATED FLAGS ; 3692 CLR FPD, ;CLEAR FIRST-PART-DONE U 1544, 2717,3741,0105,4074,4467,0700,0000,0005,0000 ; 3693 J/PUSH1 ; AND JOIN PUSH CODE ; 3694 ; 3695 =0 ; 3696 STMAC: MEM WRITE, ;WAIT FOR MEMORY ; 3697 MEM_[BR], ;STORE BR ON STACK ; 3698 B DISP, ;SEE IF PUSH OR PUSHJ U 1044, 0220,3333,0005,4175,5003,7701,0200,0000,0002 ; 3699 J/JSTAC ;BELOW ; 3700 ;WE MUST STORE THE STACK WORD PRIOR TO SETTING PDL OV IN CASE OF ; 3701 ; PAGE FAIL. ; 3702 MEM WRITE, ;WAIT FOR MEMORY U 1045, 2720,3333,0005,4175,5007,0701,0200,0000,0002 ; 3703 MEM_[BR] ;STORE BR ; 3704 SETPDL: SET PDL OV, ;OVERFLOW ; 3705 B DISP, ;SEE IF PUSH OR PUSHJ U 2720, 0220,4443,0000,4174,4463,7700,0000,0001,2000 ; 3706 J/JSTAC ;BELOW ; 3707 ; 3708 =00 ; 3709 JSTAC: [PC]_[AR], ;PUSHJ--LOAD PC ; 3710 LOAD VMA, ;LOAD ADDRESS U 0220, 0221,3441,0301,4174,4007,0700,0200,0014,0012 ; 3711 FETCH ;GET NEXT INST ; 3712 JSTAC1: AC_[ARX], ;STORE BACK STACK PTR U 0221, 0100,3440,0404,0174,4156,4700,0400,0000,0000 ; 3713 NEXT INST ;DO NEXT INST ; 3714 AC_[ARX], ;UPDATE STACK POINTER U 0222, 1400,3440,0404,0174,4007,0700,0400,0000,0000 ; 3715 J/DONE ;DO NEXT INST ; 3716 = ; 3717 ; KS10.MCR[7,3] 15:03 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 ; 3718 1545: ; 3719 POP: [ARX]_AC, ;GET POINTER ; 3720 LOAD VMA, ;ADDRESS OF STACK WORD ; 3721 START READ, 3T, ;START CYCLE U 1545, 2721,3771,0004,0276,6007,0701,0200,0004,0712 ; 3722 PXCT STACK WORD ;FOR PXCT ; 3723 ; 3724 MEM READ, ;LOAD BR (QUIT IF PAGE FAIL) U 2721, 2722,3771,0005,4365,5007,0700,0200,0000,0002 ; 3725 [BR]_MEM ;STACK WORD TO BR ; 3726 ; 3727 [ARX]_[ARX]+#, ;UPDATE POINTER ; 3728 #/777777, ;-1 IN EACH HALF ; 3729 INH CRY18, 3T, ;BUT NO CARRY U 2722, 1144,0551,0404,4374,4407,0311,0000,0077,7777 ; 3730 SKIP CRY0 ;SEE IF OVERFLOW ; 3731 ; 3732 =0 VMA_[AR], ;EFFECTIVE ADDRESS ; 3733 PXCT DATA, ;FOR PXCT ; 3734 START WRITE, ;WHERE TO STORE RESULT U 1144, 2724,3443,0300,4174,4007,0700,0200,0003,0312 ; 3735 J/POPX1 ;OVERFLOW ; 3736 ; 3737 VMA_[AR], ;EFFECTIVE ADDRESS ; 3738 PXCT DATA, ;FOR PXCT U 1145, 2723,3443,0300,4174,4007,0700,0200,0003,0312 ; 3739 START WRITE ;WHERE TO STORE RESULT ; 3740 ; 3741 MEM WRITE, ;WAIT FOR MEM ; 3742 MEM_[BR], ;STORE BR ; 3743 B DISP, ;POP OR POPJ? U 2723, 0220,3333,0005,4175,5003,7701,0200,0000,0002 ; 3744 J/JSTAC ;STORE POINTER ; 3745 ; 3746 ; 3747 POPX1: MEM WRITE, ;WAIT FOR MEMORY ; 3748 MEM_[BR], ;STORE BR U 2724, 2720,3333,0005,4175,5007,0701,0200,0000,0002 ; 3749 J/SETPDL ;GO SET PDL OV ; 3750 ; 3751 1546: ; 3752 POPJ: [ARX]_AC, ;GET POINTER ; 3753 LOAD VMA, ;POINT TO STACK WORD ; 3754 PXCT STACK WORD, 3T, ;FOR PXCT U 1546, 2725,3771,0004,0276,6007,0701,0200,0004,0712 ; 3755 START READ ;START READ ; 3756 [ARX]_[ARX]+#, ;UPDATE POINTER ; 3757 #/777777, ;-1 IN BOTH HALFS ; 3758 INH CRY18, 3T, ;INHIBIT CARRY 18 U 2725, 1146,0551,0404,4374,4407,0311,0000,0077,7777 ; 3759 SKIP CRY0 ;SEE IF OVERFLOW U 1146, 1147,4443,0000,4174,4467,0700,0000,0001,2000 ; 3760 =0 SET PDL OV ;SET OVERFLOW ; 3761 MEM READ, [PC]_MEM, ;STICK DATA IN PC ; 3762 HOLD LEFT, ;NO FLAGS U 1147, 0221,3771,0001,4361,5007,0700,0200,0000,0002 ; 3763 J/JSTAC1 ;STORE POINTER ; 3764 ; KS10.MCR[7,3] 15:03 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 -- ADJSP ; 3765 .TOC "STACK INSTRUCTIONS -- ADJSP" ; 3766 ; 3767 .DCODE D 0105, 0000,1551,3000 ; 3768 105: I-PF, B/0, J/ADJSP ; 3769 .UCODE ; 3770 ; 3771 1551: ; 3772 ADJSP: [AR]_[AR] SWAP, ;MAKE 2 COPIES OF RH U 1551, 2726,3770,0303,4344,0007,0700,0000,0000,0000 ; 3773 HOLD RIGHT ; 3774 [BR]_AC, ;READ AC, SEE IF MINUS ; 3775 3T, U 2726, 1150,3771,0005,0276,6007,0521,0000,0000,0000 ; 3776 SKIP DP0 ; 3777 =0 AC_[BR]+[AR], ;UPDATE AC ; 3778 INH CRY18, ;NO CARRY ; 3779 SKIP DP0, ;SEE IF STILL OK ; 3780 3T, ;ALLOW TIME U 1150, 1152,0113,0503,0174,4407,0521,0400,0000,0000 ; 3781 J/ADJSP1 ;TEST FOR OFLO ; 3782 AC_[BR]+[AR], ;UPDATE AC ; 3783 INH CRY18, ;NO CARRY ; 3784 SKIP DP0, ;SEE IF STILL MINUS ; 3785 3T, ;ALLOW TIME FOR SKIP U 1151, 1154,0113,0503,0174,4407,0521,0400,0000,0000 ; 3786 J/ADJSP2 ;CONTINUE BELOW ; 3787 ; 3788 =0 U 1152, 0100,4443,0000,4174,4156,4700,0000,0000,0000 ; 3789 ADJSP1: NEXT INST ;NO OVERFLOW ; 3790 SET PDL OV, ;SET PDL OV U 1153, 0555,4443,0000,4174,4467,0700,0000,0001,2000 ; 3791 J/NIDISP ;GO DO NICOND DISP ; 3792 ; 3793 =0 ; 3794 ADJSP2: SET PDL OV, ;SET PDL OV U 1154, 0555,4443,0000,4174,4467,0700,0000,0001,2000 ; 3795 J/NIDISP ;GO DO NICOND DISP U 1155, 0100,4443,0000,4174,4156,4700,0000,0000,0000 ; 3796 NEXT INST ;NO OVERFLOW ; 3797 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 104 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 SUBROUTINE CALL/RETURN -- JSR, JSP, JSA, JRA ; 3798 .TOC "SUBROUTINE CALL/RETURN -- JSR, JSP, JSA, JRA" ; 3799 ; 3800 .DCODE D 0264, 0000,1552,2100 ; 3801 264: I, J/JSR D 0265, 0000,1550,2100 ; 3802 I, J/JSP D 0266, 0000,1554,2100 ; 3803 I, J/JSA D 0267, 0000,1555,2100 ; 3804 I, J/JRA ; 3805 .UCODE ; 3806 ; 3807 1550: U 1550, 2727,3741,0105,4074,4007,0700,0000,0000,0000 ; 3808 JSP: [BR]_PC WITH FLAGS ;GET PC WITH FLAGS ; 3809 CLR FPD, ;CLEAR FIRST-PART-DONE ; 3810 AC_[BR], ;STORE FLAGS U 2727, 0764,3440,0505,0174,4467,0700,0400,0005,0000 ; 3811 J/JUMPA ;GO JUMP ; 3812 ; 3813 1552: ; 3814 JSR: [BR]_PC WITH FLAGS, ;GET PC WITH FLAGS U 1552, 2730,3741,0105,4074,4467,0700,0000,0005,0000 ; 3815 CLR FPD ;CLEAR FIRST-PART-DONE ; 3816 VMA_[AR], ;EFFECTIVE ADDRESS U 2730, 2731,3443,0300,4174,4007,0700,0200,0003,0012 ; 3817 START WRITE ;STORE OLD PC WORD ; 3818 MEM WRITE, ;WAIT FOR MEMORY U 2731, 2732,3333,0005,4175,5007,0701,0200,0000,0002 ; 3819 MEM_[BR] ;STORE ; 3820 [PC]_[AR]+1000001, ;PC _ E+1 ; 3821 HOLD LEFT, ;NO JUNK IN LEFT ; 3822 3T, ;ALLOW TIME FOR DBM U 2732, 1400,0551,0301,4370,4007,0701,0000,0000,0001 ; 3823 J/DONE ;[127] START AT E+1 ; 3824 ;[127] MUST NICOND TO CLEAR TRAP CYCLE ; 3825 ; 3826 ; 3827 ; 3828 1554: ; 3829 JSA: [BR]_[AR], ;SAVE E U 1554, 2733,3441,0305,4174,4007,0700,0200,0003,0002 ; 3830 START WRITE ;START TO STORE U 2733, 0130,3770,0304,4344,4007,0700,0000,0000,0000 ; 3831 [ARX]_[AR] SWAP ;ARX LEFT _ E ; 3832 =0*0 [AR]_AC, ;GET OLD AC U 0130, 3075,3771,0003,0276,6007,0700,0010,0000,0000 ; 3833 CALL [IBPX] ;SAVE AR IN MEMORY ; 3834 =1*0 [ARX]_[PC], ;ARX NOW HAS E,,PC ; 3835 HOLD LEFT, ; .. U 0134, 3671,3441,0104,4170,4007,0700,0010,0000,0000 ; 3836 CALL [AC_ARX] ;GO PUT ARX IN AC ; 3837 =1*1 [PC]_[BR]+1000001, ;NEW PC ; 3838 3T, ;ALLOW TIME ; 3839 HOLD LEFT, ;NO JUNK IN PC LEFT U 0135, 1400,0551,0501,4370,4007,0701,0000,0000,0001 ; 3840 J/DONE ;[127] START AT E+1 ; 3841 ;[127] NICOND MUST CLEAR TRAP CYCLE ; 3842 = ; 3843 ; 3844 1555: U 1555, 2734,3771,0005,0276,6007,0700,0000,0000,0000 ; 3845 JRA: [BR]_AC ;GET AC U 2734, 2735,3770,0505,4344,4007,0700,0000,0000,0000 ; 3846 [BR]_[BR] SWAP ;OLD E IN BR RIGHT ; 3847 VMA_[BR], ;LOAD VMA U 2735, 2736,3443,0500,4174,4007,0700,0200,0004,0012 ; 3848 START READ ;FETCH SAVED AC ; 3849 MEM READ, ;WAIT FOR MEMORY ; 3850 [BR]_MEM, ;LOAD BR WITH SAVE AC U 2736, 0274,3771,0005,4365,5007,0700,0200,0000,0002 ; 3851 J/JMPA ;GO JUMP ; 3852 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 105 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 ILLEGAL INSTRUCTIONS AND UUO'S ; 3853 .TOC "ILLEGAL INSTRUCTIONS AND UUO'S" ; 3854 ;LUUO'S TRAP TO CURRENT CONTEXT ; 3855 ; 3856 .DCODE D 0030, 0000,1557,2100 ; 3857 030: I, B/0, J/LUUO D 0031, 0001,1557,2100 ; 3858 I, B/1, J/LUUO D 0032, 0002,1557,2100 ; 3859 I, B/2, J/LUUO D 0033, 0003,1557,2100 ; 3860 I, B/3, J/LUUO D 0034, 0004,1557,2100 ; 3861 I, B/4, J/LUUO D 0035, 0005,1557,2100 ; 3862 I, B/5, J/LUUO D 0036, 0006,1557,2100 ; 3863 I, B/6, J/LUUO D 0037, 0007,1557,2100 ; 3864 I, B/7, J/LUUO ; 3865 ; 3866 ;MONITOR UUO'S -- TRAP TO EXEC ; 3867 D 0040, 0000,1556,2100 ; 3868 040: I, J/MUUO ;CALL D 0041, 0000,1556,2100 ; 3869 I, J/MUUO ;INIT D 0042, 0000,1556,2100 ; 3870 I, J/MUUO D 0043, 0000,1556,2100 ; 3871 I, J/MUUO D 0044, 0000,1556,2100 ; 3872 I, J/MUUO D 0045, 0000,1556,2100 ; 3873 I, J/MUUO D 0046, 0000,1556,2100 ; 3874 I, J/MUUO D 0047, 0000,1556,2100 ; 3875 I, J/MUUO ;CALLI D 0050, 0000,1556,2100 ; 3876 I, J/MUUO ;OPEN D 0051, 0000,1556,2100 ; 3877 I, J/MUUO ;TTCALL D 0052, 0000,1556,2100 ; 3878 I, J/MUUO D 0053, 0000,1556,2100 ; 3879 I, J/MUUO D 0054, 0000,1556,2100 ; 3880 I, J/MUUO D 0055, 0000,1556,2100 ; 3881 I, J/MUUO ;RENAME D 0056, 0000,1556,2100 ; 3882 I, J/MUUO ;IN D 0057, 0000,1556,2100 ; 3883 I, J/MUUO ;OUT D 0060, 0000,1556,2100 ; 3884 I, J/MUUO ;SETSTS D 0061, 0000,1556,2100 ; 3885 I, J/MUUO ;STATO D 0062, 0000,1556,2100 ; 3886 I, J/MUUO ;GETSTS D 0063, 0000,1556,2100 ; 3887 I, J/MUUO ;STATZ D 0064, 0000,1556,2100 ; 3888 I, J/MUUO ;INBUF D 0065, 0000,1556,2100 ; 3889 I, J/MUUO ;OUTBUF D 0066, 0000,1556,2100 ; 3890 I, J/MUUO ;INPUT D 0067, 0000,1556,2100 ; 3891 I, J/MUUO ;OUTPUT D 0070, 0000,1556,2100 ; 3892 I, J/MUUO ;CLOSE D 0071, 0000,1556,2100 ; 3893 I, J/MUUO ;RELEAS D 0072, 0000,1556,2100 ; 3894 I, J/MUUO ;MTAPE D 0073, 0000,1556,2100 ; 3895 I, J/MUUO ;UGETF D 0074, 0000,1556,2100 ; 3896 I, J/MUUO ;USETI D 0075, 0000,1556,2100 ; 3897 I, J/MUUO ;USETO D 0076, 0000,1556,2100 ; 3898 I, J/MUUO ;LOOKUP D 0077, 0000,1556,2100 ; 3899 I, J/MUUO ;ENTER ; 3900 ; 3901 ;EXPANSION OPCODES ; 3902 D 0100, 0000,1556,2100 ; 3903 100: I, J/UUO ;UJEN D 0101, 0000,1661,2100 ; 3904 I, J/UUO101 D 0102, 0000,1662,2100 ; 3905 I, J/UUO102 ;GFAD D 0103, 0000,1663,2100 ; 3906 I, J/UUO103 ;GFSB ; 3907 ; KS10.MCR[7,3] 15:03 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 ; 3908 ;RESERVED OPCODES ; 3909 D 0000, 0000,1556,2100 ; 3910 000: I, J/UUO D 0104, 0000,1664,2100 ; 3911 104: I, J/JSYS ;JSYS D 0106, 0000,1666,2100 ; 3912 106: I, J/UUO106 ;GFMP D 0107, 0000,1667,2100 ; 3913 I, J/UUO107 ;GFDV D 0130, 0000,1660,2100 ; 3914 130: I, B/0, J/FP-LONG ;UFA D 0131, 0001,1660,2100 ; 3915 I, B/1, J/FP-LONG ;DFN D 0141, 0002,1660,2100 ; 3916 141: I, B/2, J/FP-LONG ;FADL D 0151, 0003,1660,2100 ; 3917 151: I, B/3, J/FP-LONG ;FSBL D 0161, 0004,1660,2100 ; 3918 161: I, B/4, J/FP-LONG ;FMPL D 0171, 0005,1660,2100 ; 3919 171: I, B/5, J/FP-LONG ;FDVL D 0247, 0000,1665,2100 ; 3920 247: I, J/UUO247 ;RESERVED ; 3921 .UCODE ; 3922 ; 3923 1661: U 1661, 2737,4551,0202,4374,0007,0700,0000,0077,7740 ; 3924 UUO101: UUO ; 3925 1662: U 1662, 2737,4551,0202,4374,0007,0700,0000,0077,7740 ; 3926 UUO102: UUO ; 3927 1663: U 1663, 2737,4551,0202,4374,0007,0700,0000,0077,7740 ; 3928 UUO103: UUO ; 3929 1664: U 1664, 2737,4551,0202,4374,0007,0700,0000,0077,7740 ; 3930 JSYS: UUO ; 3931 1666: U 1666, 2737,4551,0202,4374,0007,0700,0000,0077,7740 ; 3932 UUO106: UUO ; 3933 1667: U 1667, 2737,4551,0202,4374,0007,0700,0000,0077,7740 ; 3934 UUO107: UUO ; 3935 1660: U 1660, 2737,4551,0202,4374,0007,0700,0000,0077,7740 ; 3936 FP-LONG:UUO ; 3937 1665: U 1665, 2737,4551,0202,4374,0007,0700,0000,0077,7740 ; 3938 UUO247: UUO ; 3939 ; KS10.MCR[7,3] 15:03 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 ; 3940 ;HERE FOR UUO'S WHICH TRAP TO EXEC ; 3941 1556: ; 3942 UUO: ;THIS TAG IS USED FOR ILLEGAL THINGS WHICH DO UUO TRAPS ; 3943 MUUO: ;THIS TAG IS USED FOR MONITOR CALL INSTRUCTIONS ; 3944 [HR]_[HR].AND.#, ;MASK OUT @ AND XR ; 3945 #/777740, ;MASK U 1556, 2737,4551,0202,4374,0007,0700,0000,0077,7740 ; 3946 HOLD RIGHT ;KEEP RIGHT ; 3947 ;THE UUO MACRO DOES THE ABOVE INSTRUCTION AND GOES TO UUOGO U 2737, 1156,4751,1204,4374,4007,0700,0000,0000,0424 ; 3948 UUOGO: [ARX]_0 XWD [424] ;HERE FROM UUO MACRO ; 3949 ;GET OFFSET TO UPT ; 3950 =0 [ARX]_[ARX]+[UBR], ;ADDRESS OF MUUO WORD U 1156, 1510,0111,1104,4174,4007,0700,0010,0000,0000 ; 3951 CALL [ABORT] ;STOP MEMORY ; 3952 .IF/KIPAGE ; 3953 .IF/KLPAGE ; 3954 READ [EBR], ;IF BOTH POSSIBLE, SEE WHICH IS ENABLED U 1157, 1160,3333,0010,4174,4007,0520,0000,0000,0000 ; 3955 SKIP DP0 ;KL PAGING ?? ; 3956 =0 ; 3957 .ENDIF/KLPAGE ; 3958 READ [ARX], ;GET THE ADDRESS ; 3959 LOAD VMA, ;START WRITE ; 3960 VMA PHYSICAL WRITE, ;ABSOLUTE ADDRESS U 1160, 0310,3333,0004,4174,4007,0700,0200,0021,1016 ; 3961 J/KIMUUO ;GO STORE KI STYLE ; 3962 .ENDIF/KIPAGE ; 3963 .IF/KLPAGE U 1161, 1162,3770,0203,4344,4007,0700,0000,0000,0000 ; 3964 [AR]_[HR] SWAP ;PUT IN RIGHT HALF ; 3965 =0 [AR]_FLAGS, ;FLAGS IN LEFT HALF ; 3966 HOLD RIGHT, ;JUST WANT FLAGS U 1162, 2745,4521,1203,4074,0007,0700,0010,0000,0000 ; 3967 CALL [UUOFLG] ;CLEAR TRAP FLAGS ; 3968 READ [ARX], ;LOOK AT ADDRESS ; 3969 LOAD VMA, ;LOAD THE VMA U 1163, 0314,3333,0004,4174,4007,0700,0200,0021,1016 ; 3970 VMA PHYSICAL WRITE ;STORE FLAG WORD ; 3971 =0* MEM WRITE, ;WAIT FOR MEMORY U 0314, 2746,3333,0003,4175,5007,0701,0210,0000,0002 ; 3972 MEM_[AR], CALL [NEXT] ;STORE ; 3973 MEM WRITE, ;WAIT FOR MEMORY U 0316, 0020,3333,0001,4175,5007,0701,0200,0000,0002 ; 3974 MEM_[PC] ;STORE FULL WORD PC ; 3975 =000 [HR]_0, ;SAVE E U 0020, 2746,4221,0002,4174,0007,0700,0010,0000,0000 ; 3976 HOLD RIGHT, CALL [NEXT] ;BUT CLEAR OPCODE ; 3977 .ENDIF/KLPAGE ; 3978 =010 ; 3979 UUOPCW: MEM WRITE, ;WAIT FOR MEMORY ; 3980 MEM_[HR], ;STORE INSTRUCTION IN KI ; 3981 ; OR FULL WORD E IN KL U 0022, 3541,3333,0002,4175,5007,0701,0210,0000,0002 ; 3982 CALL [GETPCW] ;GET PROCESS-CONTEXT-WORD ; 3983 ; 3984 =011 NEXT [ARX] PHYSICAL WRITE, ;POINT TO NEXT WORD U 0023, 3667,0111,0704,4170,4007,0700,0210,0023,1016 ; 3985 CALL [STOBR] ;STORE PROCESS CONTEXT WORD ; 3986 ; KS10.MCR[7,3] 15:03 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 ; 3987 ;NOW WE MUST PICK ONE OF 8 NEW PC WORDS BASED ON PC FLAGS U 0027, 2740,4751,1205,4374,4007,0700,0000,0000,0430 ; 3988 =111 [BR]_0 XWD [430] ;OFFSET INTO UPT ; 3989 = U 2740, 2741,0111,1105,4174,4007,0700,0000,0000,0000 ; 3990 [BR]_[BR]+[UBR] ;ADDRESS OF WORD U 2741, 2742,4521,1203,4074,4007,0700,0000,0000,0000 ; 3991 [AR]_FLAGS ;GET FLAGS ; 3992 TL [AR], ;LOOK AT FLAGS U 2742, 1164,4553,0300,4374,4007,0321,0000,0000,0600 ; 3993 #/600 ;TRAP SET? ; 3994 =0 [BR]_[BR].OR.#, ;YES--POINT TO TRAP CASE ; 3995 #/1, ; .. U 1164, 1165,3551,0505,4370,4007,0700,0000,0000,0001 ; 3996 HOLD LEFT ;LEAVE LEFT ALONE ; 3997 TL [AR], ;USER OR EXEC U 1165, 1166,4553,0300,4374,4007,0321,0000,0001,0000 ; 3998 #/10000 ; .. ; 3999 =0 [BR]_[BR].OR.#, ;USER ; 4000 #/4, ;POINT TO USER WORDS U 1166, 1167,3551,0505,4370,4007,0700,0000,0000,0004 ; 4001 HOLD LEFT ; 4002 READ [BR], ;LOOK AT ADDRESS ; 4003 LOAD VMA, ;PLACE IN VMA ; 4004 VMA PHYSICAL, ;PHYSICAL ADDRESS U 1167, 2743,3333,0005,4174,4007,0700,0200,0024,1016 ; 4005 START READ ;GET NEW PC WORD ; 4006 GOEXEC: MEM READ, ;WAIT FOR DATA U 2743, 2744,3771,0003,4365,5007,0700,0200,0000,0002 ; 4007 [AR]_MEM ;STICK IN AR ; 4008 READ [AR], ;LOOK AT DATA ; 4009 LOAD FLAGS, ;LOAD NEW FLAGS ; 4010 LEAVE USER, ;ALLOW USER TO LOAD ; 4011 LOAD PCU, ;SET PCU FROM USER U 2744, 0764,3333,0003,4174,4467,0700,0000,0000,0404 ; 4012 J/JUMPA ;JUMP ; 4013 ; 4014 .IF/KIPAGE ; 4015 ;HERE FOR TOPS-10 STYLE PAGING ; 4016 ; 4017 =00 ; 4018 KIMUUO: MEM WRITE, ;STORE INSTRUCTION U 0310, 2746,3333,0002,4175,5007,0701,0210,0000,0002 ; 4019 MEM_[HR], CALL [NEXT] ;IN MEMORY ; 4020 =10 [AR]_PC WITH FLAGS, ;GET PC WORD U 0312, 2745,3741,0103,4074,4007,0700,0010,0000,0000 ; 4021 CALL [UUOFLG] ;CLEAR TRAP FLAGS ; 4022 =11 MEM WRITE, ;STORE PC WORD ; 4023 MEM_[AR], ; .. U 0313, 0022,3333,0003,4175,5007,0701,0200,0000,0002 ; 4024 J/UUOPCW ;GO STORE PROCESS CONTEXT ; 4025 .ENDIF/KIPAGE ; 4026 ; 4027 UUOFLG: [AR]_[AR].AND.NOT.#, ;CLEAR TRAP FLAGS ; 4028 #/600, HOLD RIGHT, ; IN WORD TO SAVE U 2745, 0001,5551,0303,4374,0004,1700,0000,0000,0600 ; 4029 RETURN [1] ; BACK TO CALLER ; 4030 ; 4031 NEXT: NEXT [ARX] PHYSICAL WRITE, ;POINT TO NEXT WORD U 2746, 0002,0111,0704,4170,4004,1700,0200,0023,1016 ; 4032 RETURN [2] ; 4033 ; KS10.MCR[7,3] 15:03 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 ; 4034 ;HERE FOR LUUO'S ; 4035 1557: U 1557, 0400,4751,1203,4374,4007,0700,0000,0000,0040 ; 4036 LUUO: [AR]_0 XWD [40] ;AR GET CONSTANT 40 ; 4037 ;THE LUUO MACRO DOES THE ABOVE INSTRUCTION AND GOES TO LUUO1 ; 4038 400: ;FOR SIMULATOR ; 4039 LUUO1: READ [AR], ;LOAD 40 INTO ; 4040 LOAD VMA, ; THE VMA AND U 0400, 2747,3333,0003,4174,4007,0700,0200,0003,0012 ; 4041 START WRITE ; PREPARE TO STORE ; 4042 [HR]_[HR].AND.#, ;CLEAR OUT INDEX AND @ ; 4043 #/777740, ; .. U 2747, 2750,4551,0202,4374,0007,0700,0000,0077,7740 ; 4044 HOLD RIGHT ; 4045 MEM WRITE, ;STORE LUUO IN 40 U 2750, 2751,3333,0002,4175,5007,0701,0200,0000,0002 ; 4046 MEM_[HR] ; 4047 VMA_[AR]+1, ;POINT TO 41 ; 4048 LOAD VMA, ;PUT 41 IN VMA ; 4049 START READ, ;START FETCH U 2751, 2501,0111,0703,4170,4007,0700,0200,0004,0012 ; 4050 J/CONT1 ;GO EXECUTE THE INSTRUCTION ; 4051 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 110 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 ARITHMETIC -- ADD, SUB ; 4052 .TOC "ARITHMETIC -- ADD, SUB" ; 4053 ; 4054 .DCODE D 0270, 1015,1560,1100 ; 4055 270: R-PF, AC, J/ADD D 0271, 0015,1560,3000 ; 4056 I-PF, AC, J/ADD D 0272, 0016,1560,1700 ; 4057 RW, M, J/ADD D 0273, 0017,1560,1700 ; 4058 RW, B, J/ADD ; 4059 .UCODE ; 4060 ; 4061 1560: ; 4062 ADD: [AR]_[AR]+AC, ;DO THE ADD U 1560, 1500,0551,0303,0274,4463,7701,0200,0001,0001 ; 4063 AD FLAGS EXIT, 3T ;UPDATE CARRY FLAGS ; 4064 ;STORE ANSWER ; 4065 ;MISSES 3-TICKS BY 3 NS. ; 4066 ; 4067 ; 4068 .DCODE D 0274, 1015,1561,1100 ; 4069 274: R-PF, AC, J/SUB D 0275, 0015,1561,3000 ; 4070 I-PF, AC, J/SUB D 0276, 0016,1561,1700 ; 4071 RW, M, J/SUB D 0277, 0017,1561,1700 ; 4072 RW, B, J/SUB ; 4073 .UCODE ; 4074 ; 4075 1561: ; 4076 SUB: [AR]_AC-[AR], ;DO THE SUBTRACT U 1561, 1500,2551,0303,0274,4463,7701,4200,0001,0001 ; 4077 AD FLAGS EXIT, 3T ;UPDATE PC CARRY FLAGS ; 4078 ;ALL DONE ; 4079 ;MISSES 3-TICKS BY 3 NS. ; 4080 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 111 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 ARITHMETIC -- DADD, DSUB ; 4081 .TOC "ARITHMETIC -- DADD, DSUB" ; 4082 ; 4083 .DCODE D 0114, 0205,1457,1100 ; 4084 114: DBL R, DAC, J/DADD D 0115, 0205,1615,1100 ; 4085 DBL R, DAC, J/DSUB ; 4086 .UCODE ; 4087 ; 4088 1457: ; 4089 DADD: [ARX]_[ARX]+AC[1], 4T, ;ADD LOW WORDS U 1457, 1170,0551,0404,1274,4007,0562,0000,0000,1441 ; 4090 SKIP CRY1 ;SEE IF CARRY TO HIGH WORD ; 4091 =0 ; 4092 DADD1: [AR]_[AR]+AC, ;ADD HIGH WORDS ; 4093 ADD .25, ;ADD IN ANY CARRY FROM LOW WORD ; 4094 AD FLAGS, 4T, ;UPDATE PC FLAGS U 1170, 2753,0551,0303,0274,4467,0702,4000,0001,0001 ; 4095 J/CPYSGN ;COPY SIGN TO LOW WORD U 1171, 2752,7441,1205,4174,4007,0700,0000,0000,0000 ; 4096 [BR]_.NOT.[MASK] ;SET BITS 35 AND 36 IN ; 4097 [AR]_[AR].OR.[BR], ; AR SO THAT ADD .25 WILL U 2752, 1170,3111,0503,4170,4007,0700,0000,0000,0000 ; 4098 HOLD LEFT, J/DADD1 ; ADD 1. ; 4099 ; 4100 1615: ; 4101 DSUB: [ARX]_AC[1]-[ARX], 4T, ;SUBTRACT LOW WORD U 1615, 1172,2551,0404,1274,4007,0562,4000,0000,1441 ; 4102 SKIP CRY1 ;SEE IF CARRY ; 4103 =0 [AR]_AC-[AR]-.25, ;NO CARRY ; 4104 AD FLAGS, 4T, ;UPDATE PC FLAGS U 1172, 2753,2551,0303,0274,4467,0702,0000,0001,0001 ; 4105 J/CPYSGN ;GO COPY SIGN ; 4106 [AR]_AC-[AR], 4T, ;THERE WAS A CARRY U 1173, 2753,2551,0303,0274,4467,0702,4000,0001,0001 ; 4107 AD FLAGS ;UPDATE CARRY FLAGS ; 4108 U 2753, 1174,3770,0303,4174,0007,0520,0000,0000,0000 ; 4109 CPYSGN: FIX [AR] SIGN, SKIP DP0 U 1174, 1404,4551,0404,4374,0007,0700,0000,0037,7777 ; 4110 =0 [ARX]_[ARX].AND.#, #/377777, HOLD RIGHT, J/MOVE U 1175, 1404,3551,0404,4374,0007,0700,0000,0040,0000 ; 4111 [ARX]_[ARX].OR.#, #/400000, HOLD RIGHT, J/MOVE ; 4112 ; 4113 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 112 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 ARITHMETIC -- MUL, IMUL ; 4114 .TOC "ARITHMETIC -- MUL, IMUL" ; 4115 ; 4116 .DCODE D 0220, 1015,1641,1100 ; 4117 220: R-PF, AC, J/IMUL D 0221, 0015,1641,3000 ; 4118 I-PF, AC, J/IMUL D 0222, 0016,1641,1700 ; 4119 RW, M, J/IMUL D 0223, 0017,1641,1700 ; 4120 RW, B, J/IMUL ; 4121 .UCODE ; 4122 1641: U 1641, 2754,3441,0306,0174,4007,0700,0000,0000,0000 ; 4123 IMUL: [BRX]_[AR], AC ;COPY C(E) U 2754, 0021,3772,0000,0275,5007,0700,2000,0071,0043 ; 4124 Q_AC, SC_35. ;GET THE AC ; 4125 =0** [BRX]_[BRX]*.5 LONG, ;SHIFT RIGHT U 0021, 3000,3446,0606,4174,4007,0700,0010,0000,0000 ; 4126 CALL [MULSUB] ;MULTIPLY U 0025, 1176,3333,0004,4174,4007,0621,0000,0000,0000 ; 4127 READ [ARX], SKIP AD.EQ.0 ;SEE IF FITS U 1176, 2755,3445,0404,4174,4007,0700,0000,0000,0000 ; 4128 =0 [ARX]_[ARX]*2, J/IMUL2 ;NOT ZERO--SHIFT LEFT U 1177, 1500,3221,0003,4174,4003,7700,0200,0003,0001 ; 4129 IMUL1: [AR]_Q, EXIT ;POSITIVE ; 4130 ; 4131 IMUL2: [MASK].AND.NOT.[ARX], ;SEE IF ALL SIGN BITS U 2755, 1200,5113,0412,4174,4007,0621,0000,0000,0000 ; 4132 SKIP AD.EQ.0 ; .. ; 4133 =0 FIX [ARX] SIGN, ;NOT ALL SIGN BITS U 1200, 1202,3770,0404,4174,0007,0520,0000,0000,0000 ; 4134 SKIP DP0, J/IMUL3 ;GIVE + OR - OVERFLOW U 1201, 1500,7001,0003,4174,4003,7700,0200,0003,0001 ; 4135 [AR]_[MAG].EQV.Q, EXIT ;NEGATIVE ; 4136 =0 U 1202, 1404,3221,0003,4174,4467,0700,0000,0041,1000 ; 4137 IMUL3: [AR]_Q, SET AROV, J/MOVE U 1203, 1404,7001,0003,4174,4467,0700,0000,0041,1000 ; 4138 [AR]_[MAG].EQV.Q, SET AROV, J/MOVE ; 4139 ; 4140 ; 4141 .DCODE D 0224, 1005,1571,1100 ; 4142 224: R-PF, DAC, J/MUL D 0225, 0005,1571,3000 ; 4143 I-PF, DAC, J/MUL D 0226, 0016,1571,1700 ; 4144 RW, M, J/MUL D 0227, 0006,1571,1700 ; 4145 RW, DBL B, J/MUL ; 4146 .UCODE ; 4147 ; 4148 ; 4149 1571: U 1571, 2756,3442,0300,0174,4007,0700,0000,0000,0000 ; 4150 MUL: Q_[AR], AC ;COPY C(E) U 2756, 2757,3441,0316,4174,4007,0700,0000,0000,0000 ; 4151 [T0]_[AR] ;SAVE FOR OVERFLOW TEST U 2757, 0031,3771,0006,0276,6007,0700,2000,0071,0043 ; 4152 [BRX]_AC, SC_35. ;GET THE AC ; 4153 =0** [BRX]_[BRX]*.5 LONG, ;SHIFT OVER U 0031, 3000,3446,0606,4174,4007,0700,0010,0000,0000 ; 4154 CALL [MULSUB] ;MULTIPLY U 0035, 2760,3445,0403,4174,4007,0700,0000,0000,0000 ; 4155 [AR]_[ARX]*2 ;SHIFT OVER U 2760, 1204,3770,0303,4174,0007,0520,0000,0000,0000 ; 4156 FIX [AR] SIGN, SKIP DP0 ;SEE IF NEGATIVE ; 4157 =0 [ARX]_[MAG].AND.Q, ;POSITIVE U 1204, 1500,4001,0004,4174,4003,7700,0200,0003,0001 ; 4158 EXIT U 1205, 1206,4113,0616,4174,4007,0520,0000,0000,0000 ; 4159 [T0].AND.[BRX], SKIP DP0 ;TRIED TO SQUARE 1B0? U 1206, 1500,7001,0004,4174,4003,7700,0200,0003,0001 ; 4160 =0 [ARX]_[MAG].EQV.Q, EXIT ;NO ; 4161 [ARX]_[MAG].EQV.Q, ;YES U 1207, 1404,7001,0004,4174,4467,0700,0000,0041,1000 ; 4162 SET AROV, J/MOVE ; 4163 ; 4164 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 113 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 ARITHMETIC -- DMUL ; 4165 .TOC "ARITHMETIC -- DMUL" ; 4166 ; 4167 .DCODE D 0116, 0205,1566,1100 ; 4168 116: DBL R, DAC, J/DMUL ; 4169 .UCODE ; 4170 ; 4171 .IF/FULL ; 4172 1566: U 1566, 2761,3447,0303,4174,4007,0700,0000,0000,0000 ; 4173 DMUL: [AR]_[AR]*.5 ;SHIFT MEM OPERAND RIGHT U 2761, 2762,4117,0004,4174,4007,0700,0000,0000,0000 ; 4174 [ARX]_([ARX].AND.[MAG])*.5 ; 4175 [BR]_[ARX], ;COPY LOW WORD U 2762, 0120,3441,0405,4174,4007,0350,0000,0000,0000 ; 4176 SKIP FPD ;SEE IF FIRST PART DONE ; 4177 ; ; 4178 ; BRX * BR ==> C(E+1) * C(AC+1) ; 4179 ; ; 4180 =000 [BRX]_(AC[1].AND.[MAG])*.5, 3T, ;GET LOW AC U 0120, 2774,4557,0006,1274,4007,0701,0010,0000,1441 ; 4181 CALL [DMULGO] ;START MULTIPLY ; 4182 [ARX]_(AC[2].AND.[MAG])*.5, 3T, ;FIRST PART DONE U 0121, 2764,4557,0004,1274,4007,0701,0000,0000,1442 ; 4183 J/DMUL1 ;GO DO SECOND PART U 0124, 0171,3223,0000,1174,4007,0700,0400,0000,1443 ; 4184 =100 AC[3]_Q ;SALT AWAY 1 WORD OF PRODUCT ; 4185 = ; 4186 ; ; 4187 ; BRX * Q ==> C(E) * C(AC+1) ; 4188 ; ; 4189 =0** Q_[AR], SC_35., ;GO MULT NEXT HUNK U 0171, 0563,3442,0300,4174,4007,0700,2010,0071,0043 ; 4190 CALL [QMULT] ; .. U 0175, 2763,3441,0416,4174,4007,0700,0000,0000,0000 ; 4191 [T0]_[ARX] ;SAVE PRODUCT ; 4192 AC[2]_Q, [ARX]_Q*.5, ;SAVE PRODUCT U 2763, 0410,3227,0004,1174,4007,0700,0400,0000,1442 ; 4193 J/DMUL2 ;GO DO HIGH HALF U 2764, 0410,3777,0016,1276,6007,0701,0000,0000,1441 ; 4194 DMUL1: [T0]_AC[1]*.5 ;RESTORE T0 ; 4195 =0*0 ; 4196 ; ; 4197 ; BRX * BR ==> C(AC) * C(E+1) ; 4198 ; ; 4199 DMUL2: [BRX]_AC*.5, ;PREPARE TO DO HIGH HALF U 0410, 2775,3777,0006,0274,4007,0701,0010,0000,0000 ; 4200 CALL [DBLMUL] ; GO DO IT ; 4201 AC[1]_[T0]*2, 3T, ;INTERRUPT, SAVE T0 U 0411, 2777,0113,1616,1174,4007,0701,0400,0000,1441 ; 4202 J/DMLINT ;SET FPD AND INTERRUPT U 0414, 2765,3223,0000,1174,4007,0700,0400,0000,1442 ; 4203 AC[2]_Q ;SAVE PRODUCT ; 4204 = U 2765, 0543,0111,1604,4174,4007,0700,0000,0000,0000 ; 4205 [ARX]_[ARX]+[T0] ;PREPARE FOR LAST MUL ; 4206 ; ; 4207 ; BRX * Q ==> C(AC) * C(E) ; 4208 ; ; 4209 =0** Q_[AR], SC_35., ;DO THE LAST MULTIPLY U 0543, 0563,3442,0300,4174,4007,0700,2010,0071,0043 ; 4210 CALL [QMULT] ; GO DO IT ; 4211 [ARX]_[ARX]*2, ;SHIFT BACK U 0547, 2766,3445,0404,4174,4467,0700,0000,0005,0000 ; 4212 CLR FPD ;CLEAR FPD ; 4213 ; KS10.MCR[7,3] 15:03 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 U 2766, 1210,3770,0404,0174,4007,0520,0400,0000,0000 ; 4214 AC_[ARX] TEST, SKIP DP0 ;PUT BACK INTO AC U 1210, 2773,3223,0000,1174,4007,0700,0400,0000,1441 ; 4215 =0 AC[1]_Q, J/DMTRAP ;POSITIVE U 1211, 2767,7003,0000,1174,4007,0700,0400,0000,1441 ; 4216 AC[1]_[MAG].EQV.Q ;NEGATIVE U 2767, 2770,3772,0000,1275,5007,0701,0000,0000,1442 ; 4217 Q_AC[2] U 2770, 2771,7003,0000,1174,4007,0700,0400,0000,1442 ; 4218 AC[2]_[MAG].EQV.Q U 2771, 2772,3772,0000,1275,5007,0701,0000,0000,1443 ; 4219 Q_AC[3] U 2772, 2773,7003,0000,1174,4007,0700,0400,0000,1443 ; 4220 AC[3]_[MAG].EQV.Q ; 4221 DMTRAP: [AR]_PC WITH FLAGS, ;LOOK AT FLAGS U 2773, 1212,3741,0103,4074,4007,0520,0000,0000,0000 ; 4222 SKIP DP0 ;SEE IF AROV SET? U 1212, 0110,3443,0100,4174,4156,4700,0200,0014,0012 ; 4223 =0 DONE ;NO--ALL DONE U 1213, 1400,4443,0000,4174,4467,0700,0000,0041,1000 ; 4224 SET AROV, J/DONE ;YES--FORCE TRAP 1 ALSO ; 4225 ; 4226 ; 4227 ;WAYS TO CALL MULTIPLY U 2774, 2775,4221,0004,4174,4007,0700,0000,0000,0000 ; 4228 DMULGO: [ARX]_0 ;CLEAR ARX U 2775, 2776,3442,0500,4174,4007,0700,2000,0071,0043 ; 4229 DBLMUL: Q_[BR], SC_35. U 2776, 0563,3447,0606,4174,4007,0700,0000,0000,0000 ; 4230 [BRX]_[BRX]*.5 ; 4231 =0** ; 4232 QMULT: Q_Q*.5, U 0563, 3002,3446,1200,4174,4007,0700,0010,0000,0000 ; 4233 CALL [MULTIPLY] ; 4234 [ARX]+[ARX], AD FLAGS, ;TEST FOR OVERFLOW U 0567, 0004,0113,0404,4174,4464,1701,0000,0001,0001 ; 4235 3T, RETURN [4] ;AND RETURN ; 4236 U 2777, 2677,4443,0000,4174,4467,0700,0000,0003,0000 ; 4237 DMLINT: SET FPD, J/FIXPC ;SET FPD, BACKUP PC ; 4238 ; INTERRUPT ;;4239 .IFNOT/FULL ;;4240 1566: ;;4241 DMUL: UUO ; 4242 .ENDIF/FULL ; 4243 ; KS10.MCR[7,3] 15:03 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 ; 4244 ;MULTIPLY SUBROUTINE ; 4245 ;ENTERED WITH: ; 4246 ; MULTIPLIER IN Q ; 4247 ; MULTIPLICAND IN BRX ; 4248 ;RETURNS 4 WITH PRODUCT IN ARX!Q ; 4249 ; 4250 MUL STEP "A/BRX,B/ARX,DEST/Q_Q*.5,ASHC,STEP SC,MUL DISP" ; 4251 MUL FINAL "A/BRX,B/ARX,DEST/Q_Q*2" ; 4252 U 3000, 3001,3446,0606,4174,4007,0700,0000,0000,0000 ; 4253 MULSUB: [BRX]_[BRX]*.5 LONG ; 4254 MULSB1: [ARX]_0*.5 LONG, ;CLEAR ARX AND SHIFT Q ; 4255 STEP SC, ;COUNT FIRST STEP U 3001, 0122,4226,0004,4174,4007,0630,2000,0060,0000 ; 4256 J/MUL+ ;ENTER LOOP ; 4257 ; 4258 ;MULTIPLY SUBROUTINE ; 4259 ;ENTERED WITH: ; 4260 ; MULTIPLIER IN Q ; 4261 ; MULTIPLICAND IN BRX ; 4262 ; PARTIAL PRODUCT IN ARX ; 4263 ;RETURNS 4 WITH Q*BRX+ARX IN ARX!Q ; 4264 ; 4265 MULTIPLY: ; 4266 Q_Q*.5, ;SHIFT Q ; 4267 STEP SC, ;COUNT FIRST STEP U 3002, 0122,3446,1200,4174,4007,0630,2000,0060,0000 ; 4268 J/MUL+ ;ENTER LOOP ; 4269 ; KS10.MCR[7,3] 15:03 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 ; 4270 ;HERE FOR POSITIVE STEPS ; 4271 =010 ;0 IN A POSITIVE STEP ; 4272 MUL+: AD/B, ;DON'T ADD ; 4273 MUL STEP, ;SHIFT U 0122, 0122,3336,0604,4174,4046,2630,2000,0060,0000 ; 4274 J/MUL+ ;KEEP POSITIVE ; 4275 =011 ;DONE ; 4276 AD/B, ;DON'T ADD ; 4277 MUL FINAL, ;SHIFT U 0123, 0004,3334,0604,4174,4004,1700,0000,0000,0000 ; 4278 RETURN [4] ;SHIFT Q AND RETURN ; 4279 =110 ;1 IN A POSITIVE STEP ; 4280 AD/B-A-.25, ADD .25, ;SUBTRACT ; 4281 MUL STEP, ;SHIFT AND COUNT U 0126, 0142,1116,0604,4174,4046,2630,6000,0060,0000 ; 4282 J/MUL- ;NEGATIVE NOW ; 4283 =111 ;DONE ; 4284 AD/B-A-.25, ADD .25, ;SUBTRACT ; 4285 MUL FINAL, ;SHIFT U 0127, 0004,1114,0604,4174,4004,1700,4000,0000,0000 ; 4286 RETURN [4] ; AND RETURN ; 4287 ; 4288 ;HERE FOR NEGATIVE STEPS ; 4289 =010 ;0 IN NEGATIVE STEP ; 4290 MUL-: AD/A+B, ;ADD ; 4291 MUL STEP, ;SHIFT AND COUNT U 0142, 0122,0116,0604,4174,4046,2630,2000,0060,0000 ; 4292 J/MUL+ ;POSITIVE NOW ; 4293 =011 ;DONE ; 4294 AD/A+B, ;ADD ; 4295 MUL FINAL, ;SHIFT U 0143, 0004,0114,0604,4174,4004,1700,0000,0000,0000 ; 4296 RETURN [4] ;FIX Q AND RETURN ; 4297 =110 ;1 IN NEGATIVE STEP ; 4298 AD/B, ;DON'T ADD ; 4299 MUL STEP, ;SHIFT AND COUNT U 0146, 0142,3336,0604,4174,4046,2630,2000,0060,0000 ; 4300 J/MUL- ;STILL NEGATIVE ; 4301 =111 ;DONE ; 4302 AD/B, ;DON'T ADD ; 4303 MUL FINAL, ;SHIFT U 0147, 0004,3334,0604,4174,4004,1700,0000,0000,0000 ; 4304 RETURN [4] ;FIX Q AND RETURN ; 4305 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 117 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 ARITHMETIC -- DIV, IDIV ; 4306 .TOC "ARITHMETIC -- DIV, IDIV" ; 4307 ; 4308 .DCODE D 0230, 1005,1600,1100 ; 4309 230: R-PF, DAC, J/IDIV D 0231, 0005,1600,3000 ; 4310 I-PF, DAC, J/IDIV D 0232, 0016,1600,1700 ; 4311 RW, M, J/IDIV D 0233, 0006,1600,1700 ; 4312 RW, DBL B, J/IDIV ; 4313 D 0234, 1005,1601,1100 ; 4314 234: R-PF, DAC, J/DIV D 0235, 0005,1601,3000 ; 4315 I-PF, DAC, J/DIV D 0236, 0016,1601,1700 ; 4316 RW, M, J/DIV D 0237, 0006,1601,1700 ; 4317 RW, DBL B, J/DIV ; 4318 .UCODE ; 4319 ; 4320 1600: U 1600, 3003,3441,0305,0174,4007,0700,0000,0000,0000 ; 4321 IDIV: [BR]_[AR], AC ;COPY MEMORY OPERAND ; 4322 Q_AC, ;LOAD Q U 3003, 1214,3772,0000,0275,5007,0520,0000,0000,0000 ; 4323 SKIP DP0 ;SEE IF MINUS ; 4324 =0 [AR]_0, ;EXTEND + SIGN U 1214, 0161,4221,0003,4174,4007,0700,0000,0000,0000 ; 4325 J/DIV1 ;NOW SAME AS DIV ; 4326 [AR]_-1, ;EXTEND - SIGN U 1215, 0161,2441,0703,4174,4007,0700,4000,0000,0000 ; 4327 J/DIV1 ;SAME AS DIV ; 4328 ; 4329 1601: U 1601, 3004,3441,0305,4174,4007,0700,0000,0000,0000 ; 4330 DIV: [BR]_[AR] ;COPY MEM OPERAND U 3004, 3005,3771,0003,0276,6007,0700,0000,0000,0000 ; 4331 [AR]_AC ;GET AC U 3005, 3006,3772,0000,1275,5007,0701,0000,0000,1441 ; 4332 Q_AC[1] ;AND AC+1 ; 4333 READ [AR], ;TEST FOR NO DIVIDE U 3006, 0160,3333,0003,4174,4007,0621,0000,0000,0000 ; 4334 SKIP AD.EQ.0 ; 4335 =000 .NOT.[AR], ;SEE IF ALL SIGN BITS IN AR ; 4336 SKIP AD.EQ.0, ; .. U 0160, 1216,7443,0300,4174,4007,0621,0000,0000,0000 ; 4337 J/DIVA ;CONTINUE BELOW ; 4338 =001 ; 4339 DIV1: READ [BR], ;SEE IF DIVIDE BY U 0161, 0164,3333,0005,4174,4007,0621,0000,0000,0000 ; 4340 SKIP AD.EQ.0 ; ZERO ; 4341 =100 ; 4342 DIV2: SC_34., ;NOT ZERO--LOAD STEP COUNT U 0164, 0370,4443,0000,4174,4007,0700,2010,0071,0042 ; 4343 CALL [DIVSUB] ;DIVIDE U 0165, 0555,4443,0000,4174,4467,0700,0000,0051,1000 ; 4344 =101 NO DIVIDE ;DIVIDE BY ZERO ; 4345 =110 [ARX]_[AR], ;COPY REMAINDER U 0166, 1177,3441,0304,4174,4007,0700,0000,0000,0000 ; 4346 J/IMUL1 ;STORE ANSWER ; 4347 = ; 4348 ; 4349 ; 4350 =0 ; 4351 DIVA: [BRX]_[AR], ;HIGH WORD IS NOT SIGNS U 1216, 3007,3441,0306,4174,4007,0700,0000,0000,0000 ; 4352 J/DIVB ;GO TEST FOR NO DIVIDE ; 4353 READ [BR], ;ALL SIGN BITS ; 4354 SKIP AD.EQ.0, ;SEE IF ZERO DIVIDE U 1217, 0164,3333,0005,4174,4007,0621,0000,0000,0000 ; 4355 J/DIV2 ;BACK TO MAIN FLOW ; 4356 ; KS10.MCR[7,3] 15:03 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 U 3007, 3010,3221,0004,4174,4007,0700,0000,0000,0000 ; 4357 DIVB: [ARX]_Q ;MAKE ABS VALUES ; 4358 READ [AR], ;SEE IF + U 3010, 0330,3333,0003,4174,4007,0520,0000,0000,0000 ; 4359 SKIP DP0 ; 4360 =00 READ [BR], ;SEE IF + ; 4361 SKIP DP0, U 0330, 1220,3333,0005,4174,4007,0520,0000,0000,0000 ; 4362 J/DIVC ;CONTINUE BELOW ; 4363 CLEAR [ARX]0, ;FLUSH DUPLICATE SIGN U 0331, 3071,4551,0404,4374,0007,0700,0010,0037,7777 ; 4364 CALL [DBLNG1] ;NEGATE AR!ARX ; 4365 =11 READ [BR], ;SEE IF TOO BIG ; 4366 SKIP DP0, U 0333, 1220,3333,0005,4174,4007,0520,0000,0000,0000 ; 4367 J/DIVC ; 4368 = ; 4369 =0 ; 4370 DIVC: [AR]-[BR], ;COMPUTE DIFFERENCE ; 4371 SKIP DP0, ;SEE IF IT GOES ; 4372 3T, ;ALLOW TIME U 1220, 1222,2113,0305,4174,4007,0521,4000,0000,0000 ; 4373 J/NODIV ;TEST ; 4374 [AR]+[BR], ; 4375 SKIP DP0, ;SAME TEST FOR -VE BR ; 4376 3T, U 1221, 1222,0113,0305,4174,4007,0521,0000,0000,0000 ; 4377 J/NODIV ; 4378 =0 U 1222, 0555,4443,0000,4174,4467,0700,0000,0051,1000 ; 4379 NODIV: NO DIVIDE ;TOO BIG ; 4380 [AR]_[BRX], ;FITS U 1223, 0161,3441,0603,4174,4007,0700,0000,0000,0000 ; 4381 J/DIV1 ;GO BACK AND DIVIDE ; 4382 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 119 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 ARITHMETIC -- DDIV ; 4383 .TOC "ARITHMETIC -- DDIV" ; 4384 ; 4385 .DCODE D 0117, 0205,1627,1100 ; 4386 117: DBL R, DAC, J/DDIV ; 4387 .UCODE ; 4388 ; 4389 .IF/FULL ; 4390 1627: U 1627, 3011,4112,0400,4174,4007,0700,0000,0000,0000 ; 4391 DDIV: Q_[ARX].AND.[MAG] ;COPY LOW WORD ; 4392 [BR]_[AR]*.5, ;COPY MEMORY OPERAND U 3011, 1224,3447,0305,4174,4007,0421,0000,0000,0000 ; 4393 SKIP AD.LE.0 ;SEE IF POSITIVE ; 4394 =0 [BR]_[BR]*.5 LONG, ;POSITIVE U 1224, 1230,3446,0505,4174,4007,0700,0000,0000,0000 ; 4395 J/DDIV1 ;CONTINUE BELOW ; 4396 [BR]_[BR]*.5 LONG, ;NEGATIVE OR ZERO U 1225, 1226,3446,0505,4174,4007,0520,0000,0000,0000 ; 4397 SKIP DP0 ;SEE WHICH? ; 4398 =0 [MAG].AND.Q, ;SEE IF ALL ZERO U 1226, 1230,4003,0000,4174,4007,0621,0000,0000,0000 ; 4399 SKIP AD.EQ.0, J/DDIV1 ;CONTINUE BELOW U 1227, 3012,4751,1217,4374,4007,0700,0000,0000,0005 ; 4400 [T1]_0 XWD [5] ;NEGATE MEM OP ; 4401 Q_Q.OR.#, #/600000, ;SIGN EXTEND THE LOW U 3012, 3013,3662,0000,4374,0007,0700,0000,0060,0000 ; 4402 HOLD RIGHT ; WORD U 3013, 3014,2222,0000,4174,4007,0700,4000,0000,0000 ; 4403 Q_-Q ;MAKE Q POSITIVE ; 4404 [BR]_(-[BR]-.25)*.5 LONG, ;NEGATE HIGH WORD ; 4405 ASHC, MULTI PREC/1, ;USE CARRY FROM LOW WORD U 3014, 3016,2446,0505,4174,4047,0700,0040,0000,0000 ; 4406 J/DDIV3 ;CONTINUE BELOW ; 4407 =0 ; 4408 DDIV1: [BR]_[BR]*.5 LONG, ;SHIFT OVER 1 PLACE U 1230, 3015,3446,0505,4174,4047,0700,0000,0000,0000 ; 4409 ASHC, J/DDIV2 ;CONTINUE BELOW U 1231, 0555,4443,0000,4174,4467,0700,0000,0051,1000 ; 4410 NO DIVIDE ;DIVIDE BY ZERO U 3015, 3016,4751,1217,4374,4007,0700,0000,0000,0004 ; 4411 DDIV2: [T1]_0 XWD [4] ;MEM OPERAND IS POSITIVE U 3016, 3017,3221,0006,0174,4007,0700,0000,0000,0000 ; 4412 DDIV3: [BRX]_Q, AC ;COPY Q ; 4413 U 3017, 0054,3777,0003,0274,4007,0520,0000,0000,0000 ; 4414 [AR]_AC*.5, 2T, SKIP DP0 ;GET AC--SEE IF NEGATIVE ; 4415 =0*1*0 ; 4416 DDIV3A: Q_AC[1].AND.[MAG], ;POSITIVE (OR ZERO) U 0054, 1232,4552,0000,1275,5007,0701,0000,0000,1441 ; 4417 J/DDIV4 ;CONTINUE BELOW ; 4418 [T1]_[T1].XOR.#, ;NEGATIVE U 0055, 3060,6551,1717,4374,4007,0700,0010,0000,0007 ; 4419 #/7, CALL [QDNEG] ;UPDATE SAVED FLAGS ; 4420 =1*1*1 [AR]_[AR]*.5, ;SHIFT AR OVER U 0075, 0054,3447,0303,4174,4007,0700,0000,0000,0000 ; 4421 J/DDIV3A ;GO BACK AND LOAD Q ; 4422 = ; 4423 =0 ; 4424 DDIV4: [AR]_[AR]*.5 LONG, ;SHIFT AR OVER U 1232, 3042,3446,0303,4174,4007,0700,0010,0000,0000 ; 4425 CALL [DDIVS] ;SHIFT 1 MORE PLACE U 1233, 1234,2113,0305,4174,4007,0521,4000,0000,0000 ; 4426 [AR]-[BR], 3T, SKIP DP0 ;TEST MAGNITUDE ; 4427 =0 [AR]-[BR], 2T, U 1234, 1236,2113,0305,4174,4007,0620,4000,0000,0000 ; 4428 SKIP AD.EQ.0, J/DDIV5 U 1235, 3020,3221,0004,4174,4007,0700,0000,0000,0000 ; 4429 [ARX]_Q, J/DDIV5A ;ANSWER FITS ; 4430 ; 4431 =0 U 1236, 0033,3333,0017,4174,4003,5701,0000,0000,0000 ; 4432 DDIV5: READ [T1], 3T, DISP/DP, J/NODDIV U 1237, 1240,1003,0600,4174,4007,0521,4000,0000,0000 ; 4433 Q-[BRX], 3T, SKIP DP0 U 1240, 0033,3333,0017,4174,4003,5701,0000,0000,0000 ; 4434 =0 READ [T1], 3T, DISP/DP, J/NODDIV U 1241, 3020,3221,0004,4174,4007,0700,0000,0000,0000 ; 4435 [ARX]_Q ;COPY LOW WORD ; 4436 ; KS10.MCR[7,3] 15:03 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 ; 4437 ;HERE WITH EVERYTHING SETUP AND READY TO GO U 3020, 0354,4552,0000,1275,5007,0701,0000,0000,1442 ; 4438 DDIV5A: Q_AC[2].AND.[MAG] U 0354, 1264,3446,1200,4174,4007,0700,2010,0071,0042 ; 4439 =0* Q_Q*.5, SC_34., CALL [DBLDIV] U 0356, 3021,3224,0016,4174,4007,0700,0000,0000,0000 ; 4440 [T0]_Q*2 LONG U 3021, 3022,0002,1600,4174,4007,0700,0000,0000,0000 ; 4441 Q_Q+[T0] U 3022, 1242,4003,0000,1174,4007,0700,0400,0000,1440 ; 4442 AC[0]_Q.AND.[MAG] ;STORE ANSWER U 1242, 3042,3442,0400,4174,4007,0700,0010,0000,0000 ; 4443 =0 Q_[ARX], CALL [DDIVS] ;SHIFT OUT EXTRA ZERO BIT U 1243, 3023,3221,0004,4174,4007,0700,0000,0000,0000 ; 4444 [ARX]_Q ; .. U 3023, 0551,4552,0000,1275,5007,0701,0000,0000,1443 ; 4445 Q_AC[3].AND.[MAG] ; 4446 =0* [T0]_[AR]*.5 LONG, ;SHIFT Q, PUT AR ON DP ; 4447 SC_34., ;LOAD SHIFT COUNT ; 4448 SKIP DP0, ;LOOK AT AR SIGN U 0551, 1264,3446,0316,4174,4007,0520,2010,0071,0042 ; 4449 CALL [DBLDIV] ;GO DIVIDE U 0553, 3024,3224,0016,4174,4007,0700,0000,0000,0000 ; 4450 [T0]_Q*2 LONG U 3024, 0056,3333,0017,4174,4003,5701,0000,0000,0000 ; 4451 READ [T1], 3T, DISP/DP ;WHAT SIGN IS QUO ; 4452 =1110 [T0]_[T0]+Q, ;POSITIVE QUO U 0056, 3027,0001,1616,4174,4007,0700,0000,0000,0000 ; 4453 J/DDIV5B ;CONTINUE BELOW U 0057, 3025,2225,0016,4174,4007,0700,4000,0000,0000 ; 4454 [T0]_-Q*2 ;NEGATIVE QUO ; 4455 AD/-D-.25, DBUS/RAM, 3T, ; 4456 RAMADR/AC#, DEST/Q_AD, U 3025, 3026,1772,0000,0274,4007,0701,0040,0000,0000 ; 4457 MULTI PREC/1 U 3026, 1244,3223,0000,0174,4007,0621,0400,0000,0000 ; 4458 AC_Q, SKIP AD.EQ.0 U 1244, 3030,3440,1616,1174,4007,0700,0400,0000,1441 ; 4459 =0 AC[1]_[T0], J/DDIV5C U 1245, 3032,4223,0000,1174,4007,0700,0400,0000,1441 ; 4460 AC[1]_0, J/DDIV6 ; 4461 U 3027, 3032,4113,1600,1174,4007,0700,0400,0000,1441 ; 4462 DDIV5B: AC[1]_[T0].AND.[MAG], J/DDIV6 ;STORE LOW WORD IN + CASE ; 4463 U 3030, 3031,3551,1616,4374,0007,0700,0000,0040,0000 ; 4464 DDIV5C: [T0]_[T0].OR.#, #/400000, HOLD RIGHT U 3031, 3032,3440,1616,1174,4007,0700,0400,0000,1441 ; 4465 AC[1]_[T0] ; 4466 U 3032, 1246,3333,0003,4174,4007,0520,0000,0000,0000 ; 4467 DDIV6: READ [AR], SKIP DP0 ;LOOK AT AR SIGN ; 4468 =0 U 1246, 3036,3442,0400,4174,4007,0700,0000,0000,0000 ; 4469 DDIV7: Q_[ARX], J/DDIV8 U 1247, 3033,0112,0406,4174,4007,0700,0000,0000,0000 ; 4470 Q_[ARX]+[BRX] ; 4471 [AR]_[AR]+[BR], U 3033, 3034,0111,0503,4174,4007,0700,0040,0000,0000 ; 4472 MULTI PREC/1 U 3034, 3035,0002,0600,4174,4007,0700,0000,0000,0000 ; 4473 Q_Q+[BRX] ; 4474 [AR]_[AR]+[BR], U 3035, 3036,0111,0503,4174,4007,0700,0040,0000,0000 ; 4475 MULTI PREC/1 U 3036, 0355,3333,0017,4174,4003,5701,0000,0000,0000 ; 4476 DDIV8: READ [T1], 3T, DISP/DP ; 4477 =1101 ; 4478 DDIV8A: [AR]_[AR]*2 LONG, ASHC, ;POSITIVE REMAINDER U 0355, 3040,3444,0303,4174,4047,0700,0000,0000,0000 ; 4479 J/DDIV9 ;CONTINUE BELOW U 0357, 3037,2222,0000,4174,4007,0700,4000,0000,0000 ; 4480 Q_-Q ;NEGATE REMAINDER IN AR!Q ; 4481 [AR]_(-[AR]-.25)*2 LONG, U 3037, 3040,2444,0303,4174,4047,0700,0040,0000,0000 ; 4482 MULTI PREC/1, ASHC ; 4483 ; KS10.MCR[7,3] 15:03 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 ; 4484 DDIV9: AC[2]_[AR]+[AR], 3T, U 3040, 1250,0113,0303,1174,4007,0521,0400,0000,1442 ; 4485 SKIP DP0 ; 4486 =0 AC[3]_Q.AND.[MAG], U 1250, 0100,4003,0000,1174,4156,4700,0400,0000,1443 ; 4487 NEXT INST U 1251, 3041,4002,0000,1174,4007,0700,0000,0000,1443 ; 4488 Q_Q.AND.[MAG], AC[3] ; 4489 AC[3]_[MAG].EQV.Q, U 3041, 0100,7003,0000,1174,4156,4700,0400,0000,1443 ; 4490 NEXT INST ; 4491 ; 4492 ; 4493 ;HERE IF WE WANT TO SET NO DIVIDE ; 4494 =11011 U 0033, 3060,4443,0000,4174,4007,0700,0010,0000,0000 ; 4495 NODDIV: CALL [QDNEG] ;FIXUP AC TO AC+3 U 0037, 0555,4443,0000,4174,4467,0700,0000,0051,1000 ; 4496 NO DIVIDE ;ABORT DIVIDE ; 4497 U 3042, 0001,3446,0303,4174,4044,1700,0000,0000,0000 ; 4498 DDIVS: [AR]_[AR]*.5 LONG, ASHC, RETURN [1] ;;4499 .IFNOT/FULL ;;4500 1627: ;;4501 DDIV: UUO ; 4502 .ENDIF/FULL ; 4503 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 122 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 ARITHMETIC -- DIVIDE SUBROUTINE ; 4504 .TOC "ARITHMETIC -- DIVIDE SUBROUTINE" ; 4505 ; 4506 ;HERE IS THE SUBROUTINE TO DO DIVIDE ; 4507 ;ENTER WITH: ; 4508 ; AR!Q = D'END ; 4509 ; BR = D'SOR ; 4510 ;RETURN 2 WITH: ; 4511 ; AR = REMAINDER ; 4512 ; Q = QUOTIENT ; 4513 ;CALLER MUST CHECK FOR ZERO DIVIDE PRIOR TO CALL ; 4514 ; ; 4515 =1000 ; 4516 DIVSUB: Q_Q.AND.#, ;CLEAR SIGN BIT IN ; 4517 #/377777, ;MASK ; 4518 HOLD RIGHT, ;JUST CLEAR BIT 0 U 0370, 3043,4662,0000,4374,0007,0700,0010,0037,7777 ; 4519 CALL [DIVSGN] ;DO REAL DIVIDE U 0374, 0002,4443,0000,4174,4004,1700,0000,0000,0000 ; 4520 =1100 RETURN [2] ;ALL POSITIVE U 0375, 0002,2222,0000,4174,4004,1700,4000,0000,0000 ; 4521 =1101 Q_-Q, RETURN [2] ;-QUO +REM U 0376, 0377,2222,0000,4174,4007,0700,4000,0000,0000 ; 4522 =1110 Q_-Q ;ALL NEGATIVE U 0377, 0002,2441,0303,4174,4004,1700,4000,0000,0000 ; 4523 =1111 [AR]_-[AR], RETURN [2] ;NEGATIVE REMAINDER ; 4524 ; KS10.MCR[7,3] 15:03 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 ; 4525 ;HERE IS THE INNER DIVIDE SUBROUTINE ; 4526 ;SAME SETUP AS DIVSUB ; 4527 ;RETURNS WITH AR AND Q POSITIVE AND ; 4528 ; 14 IF ALL POSITIVE ; 4529 ; 15 IF -QUO ; 4530 ; 16 IF ALL NEGATIVE ; 4531 ; 17 IF NEGATIVE REMAINDER ; 4532 ; 4533 BASIC DIV STEP "DEST/Q_Q*2, DIV, A/BR, B/AR, STEP SC" ; 4534 DIV STEP "BASIC DIV STEP, AD/A+B, DIVIDE/1" ; 4535 FIRST DIV STEP "BASIC DIV STEP, AD/B-A-.25, ADD .25" ; 4536 U 3043, 1252,3333,0003,4174,4007,0520,0000,0000,0000 ; 4537 DIVSGN: READ [AR], SKIP DP0 U 1252, 3045,4221,0004,4174,4007,0700,0000,0000,0000 ; 4538 =0 [ARX]_0, J/DVSUB2 ;REMAINDER IS POSITIVE U 1253, 1254,2222,0000,4174,4007,0621,4000,0000,0000 ; 4539 Q_-Q, SKIP AD.EQ.0 ;COMPLEMENT LOW WORD U 1254, 3044,7441,0303,4174,4007,0700,0000,0000,0000 ; 4540 =0 [AR]_.NOT.[AR], J/DVSUB1 ;COMPLEMENT HI WORD U 1255, 3044,2441,0303,4174,4007,0700,4000,0000,0000 ; 4541 [AR]_-[AR] ;TWO'S COMPLEMENT HI WORD SINCE ; 4542 ; LOW WORD WAS ZERO U 3044, 3045,3771,0004,4374,4007,0700,0000,0010,0000 ; 4543 DVSUB1: [ARX]_#, #/100000 ;REMAINDER IS NEGATIVE U 3045, 1256,3333,0005,4174,4007,0520,0000,0000,0000 ; 4544 DVSUB2: READ [BR], SKIP DP0 ;IS THE DIVISOR NEGATIVE ; 4545 =0 ; 4546 DVSUB3: [AR]_[AR]*.5 LONG, ;START TO PUT IN 9-CHIPS U 1256, 3047,3446,0303,4174,4007,0700,0000,0000,0000 ; 4547 J/DIVSET ;JOIN MAIN STREAM U 1257, 3046,2441,0505,4174,4007,0700,4000,0000,0000 ; 4548 [BR]_-[BR] ;COMPLEMENT DIVISOR ; 4549 [ARX]_[ARX].OR.#, ;ADJUST SIGN OF QUOTIENT U 3046, 1256,3551,0404,4374,4007,0700,0000,0004,0000 ; 4550 #/40000, J/DVSUB3 ;USE 9 CHIPS U 3047, 3050,3447,0303,4174,4007,0700,0000,0000,0000 ; 4551 DIVSET: [AR]_[AR]*.5 U 3050, 3051,3447,0505,4174,4007,0700,0000,0000,0000 ; 4552 [BR]_[BR]*.5 U 3051, 3052,3447,0505,4174,4007,0700,0000,0000,0000 ; 4553 [BR]_[BR]*.5 U 3052, 1260,1114,0503,4174,4067,0630,6000,0060,0000 ; 4554 FIRST DIV STEP ; 4555 ;HERE IS THE MAIN DIVIDE LOOP ; 4556 =0 U 1260, 1260,0114,0503,4174,4067,0630,2100,0060,0000 ; 4557 DIVIDE: DIV STEP, J/DIVIDE U 1261, 3053,3444,1717,4174,4067,0700,0100,0000,0000 ; 4558 [T1]_[T1]*2 LONG, DIVIDE/1, DIV U 3053, 1262,3447,0303,4174,4007,0520,0000,0000,0000 ; 4559 [AR]_[AR]*.5, SKIP DP0 ; 4560 =0 U 1262, 3054,3444,0303,4174,4007,0700,0000,0000,0000 ; 4561 FIX++: [AR]_[AR]*2 LONG, J/FIX1++ U 1263, 1262,0111,0503,4174,4007,0700,0000,0000,0000 ; 4562 [AR]_[AR]+[BR], J/FIX++ U 3054, 3055,3444,0303,4174,4007,0700,0000,0000,0000 ; 4563 FIX1++: [AR]_[AR]*2 LONG U 3055, 3056,4002,1200,4174,4007,0700,0000,0000,0000 ; 4564 Q_[MASK].AND.Q ; 4565 READ [ARX], 3T, ;RETURN TO 1 OF 4 PLACES ; 4566 DISP/1, ;BASED ON SIGN OF RESULT U 3056, 0014,3333,0004,4174,4000,1701,0000,0000,0000 ; 4567 J/14 ;RETURN ; 4568 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 124 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 ARITHMETIC -- DOUBLE DIVIDE SUBROUTINE ; 4569 .TOC "ARITHMETIC -- DOUBLE DIVIDE SUBROUTINE" ; 4570 .IF/FULL ; 4571 ;CALL WITH: ; 4572 ; AR!ARX!Q = 3 WORD DV'END ; 4573 ; BR!BRX = 2 WORD DV'SOR ; 4574 ;RETURN 2 WITH: ; 4575 ; AR!ARX = 2 WORD REMAINDER ; 4576 ; CORRECT IF POSITIVE (Q IS ODD) ; 4577 ; WRONG (BY BR!BRX) IF NEGATIVE (Q IS EVEN) ; 4578 ; Q = 1 WORD QUOTIENT ; 4579 ;CALLER MUST CHECK FOR ZERO DIVIDE PRIOR TO CALL ; 4580 ; ; 4581 ;NOTE: THIS SUBROUTINE ONLY WORKS FOR POSITIVE NUMBERS ; 4582 ; ; 4583 =0 ; 4584 ;HERE FOR NORMAL STARTUP ; 4585 DBLDIV: [ARX]_([ARX]-[BRX])*2 LONG, ;SUBTRACT LOW WORD U 1264, 3057,1114,0604,4174,4057,0700,4000,0000,0000 ; 4586 LSHC, J/DIVHI ;GO ENTER LOOP ; 4587 ;SKIP ENTRY POINT IF FINAL STEP IN PREVIOUS ENTRY WAS IN ERROR ; 4588 [ARX]_([ARX]+[BRX])*2 LONG, ;CORRECTION STEP U 1265, 3057,0114,0604,4174,4057,0700,0000,0000,0000 ; 4589 LSHC, J/DIVHI ;GO ENTER LOOP ; 4590 ; 4591 ;HERE IS DOUBLE DIVIDE LOOP ; 4592 DIVHI: AD/A+B, ;ADD (HARDWARE MAY OVERRIDE) ; 4593 A/BR, B/AR, ;OPERANDS ARE AR AND BR ; 4594 DEST/AD*2, ;SHIFT LEFT ; 4595 SHSTYLE/NORM, ;SET SHIFT PATHS (SEE DPE1) ; 4596 MULTI PREC/1, ;INJECT SAVED BITS U 3057, 1266,0115,0503,4174,4007,0630,2040,0060,0000 ; 4597 STEP SC ;COUNT DOWN LOOP ; 4598 =0 AD/A+B, ;ADD (HARDWARE MAY OVERRIDE) ; 4599 A/BRX, B/ARX, ;LOW WORDS ; 4600 DEST/Q_Q*2, ;SHIFT WHOLE MESS LEFT ; 4601 SHSTYLE/DIV, ;SET SHIFT PATHS (SEE DPE1) ; 4602 DIVIDE/1, ;SAVE BITS U 1266, 3057,0114,0604,4174,4067,0700,0100,0000,0000 ; 4603 J/DIVHI ;KEEP LOOPING ; 4604 ;HERE WHEN ALL DONE ; 4605 DEST/Q_Q*2, DIV, ;SHIFT IN LAST Q BIT ; 4606 DIVIDE/1, ;GENERATE BIT U 1267, 0002,4444,0002,4174,4064,1700,0100,0000,0000 ; 4607 B/HR, RETURN [2] ;ZERO HR AND RETURN ; 4608 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 125 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 ARITHMETIC -- SUBROUTINES FOR ARITHMETIC ; 4609 .TOC "ARITHMETIC -- SUBROUTINES FOR ARITHMETIC" ; 4610 ; 4611 ;QUAD WORD NEGATE ; 4612 ;ARGUMENT IN AC!AC1!AC2!AC3 ; 4613 ;LEAVES COPY OF AC!AC1 IN AR!Q ; 4614 ;RETURNS TO CALL!24 U 3060, 3061,1772,0000,1274,4007,0701,4000,0000,1443 ; 4615 QDNEG: Q_-AC[3] ; 4616 AC[3]_Q.AND.[MAG], ;PUT BACK LOW WORD U 3061, 1270,4003,0000,1174,4007,0621,0400,0000,1443 ; 4617 SKIP AD.EQ.0 ;SEE IF ANY CARRY ; 4618 =0 U 1270, 3064,7772,0000,1274,4007,0701,0000,0000,1442 ; 4619 COM2A: Q_.NOT.AC[2], J/COM2 ;CARRY--DO 1'S COMPLEMENT U 1271, 3062,1772,0000,1274,4007,0701,4000,0000,1442 ; 4620 Q_-AC[2] ;NEXT WORD ; 4621 AC[2]_Q.AND.[MAG], ;PUT BACK WORD U 3062, 1272,4003,0000,1174,4007,0621,0400,0000,1442 ; 4622 SKIP AD.EQ.0 ; 4623 =0 U 1272, 3065,7772,0000,1274,4007,0701,0000,0000,1441 ; 4624 COM1A: Q_.NOT.AC[1], J/COM1 U 1273, 3063,1772,0000,1274,4007,0701,4000,0000,1441 ; 4625 Q_-AC[1] ; 4626 AC[1]_Q.AND.[MAG], U 3063, 1274,4003,0000,1174,4007,0621,0400,0000,1441 ; 4627 SKIP AD.EQ.0 ; 4628 =0 U 1274, 3066,7771,0003,0274,4007,0700,0000,0000,0000 ; 4629 COM0A: [AR]_.NOT.AC, J/COM0 U 1275, 3066,1771,0003,0274,4007,0701,4000,0000,0000 ; 4630 [AR]_-AC, 3T, J/COM0 ; 4631 U 3064, 1272,4003,0000,1174,4007,0700,0400,0000,1442 ; 4632 COM2: AC[2]_Q.AND.[MAG], J/COM1A U 3065, 1274,4003,0000,1174,4007,0700,0400,0000,1441 ; 4633 COM1: AC[1]_Q.AND.[MAG], J/COM0A U 3066, 0024,3440,0303,0174,4004,1700,0400,0000,0000 ; 4634 COM0: AC_[AR], RETURN [24] ; 4635 .ENDIF/FULL ; 4636 ; 4637 ;DOUBLE WORD NEGATE ; 4638 ;ARGUMENT IN AR AND ARX ; 4639 ;RETURNS TO CALL!2 ; 4640 U 3067, 3070,4551,0404,4374,0007,0700,0000,0037,7777 ; 4641 DBLNEG: CLEAR ARX0 ;FLUSH DUPLICATE SIGN ; 4642 DBLNGA: [ARX]_-[ARX], ;FLIP LOW WORD U 3070, 1276,2441,0404,4174,4007,0621,4000,0000,0000 ; 4643 SKIP AD.EQ.0 ;SEE IF CARRY ; 4644 =0 [AR]_.NOT.[AR], ;NO CARRY-- 1 COMP U 1276, 2220,7441,0303,4174,4467,0700,0000,0001,0001 ; 4645 AD FLAGS, J/CLARX0 ;CLEAR LOW SIGN ; 4646 [AR]_-[AR], ;CARRY U 1277, 2220,2441,0303,4174,4467,0701,4000,0001,0001 ; 4647 AD FLAGS, 3T, J/CLARX0 ; 4648 ; 4649 ;SAME THING BUT DOES NOT SET PC FLAGS U 3071, 1300,2441,0404,4174,4007,0621,4000,0000,0000 ; 4650 DBLNG1: [ARX]_-[ARX], SKIP AD.EQ.0 U 1300, 2220,7441,0303,4174,4007,0700,0000,0000,0000 ; 4651 =0 [AR]_.NOT.[AR], J/CLARX0 U 1301, 2220,2441,0303,4174,4007,0700,4000,0000,0000 ; 4652 [AR]_-[AR], J/CLARX0 ; 4653 ; KS10.MCR[7,3] 15:03 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 ; 4654 .NOBIN ; 4655 .TOC "BYTE GROUP -- IBP, ILDB, LDB, IDPB, DPB" ; 4656 ; 4657 ; 4658 ;ALL FIVE INSTRUCTIONS OF THIS GROUP ARE CALLED WITH THE BYTE POINTER ; 4659 ;IN THE AR. ALL INSTRUCTIONS SHARE COMMON SUBROUTINES. ; 4660 ; 4661 ;IBP OR ADJBP ; 4662 ;IBP IF AC#0, ADJBP OTHERWISE ; 4663 ; HERE WITH THE BASE POINTER IN AR ; 4664 ; 4665 ;HERE IS A MACRO TO DO IBP. WHAT HAPPENS IS: ; 4666 ; THE AR IS PUT ON THE DP. ; 4667 ; THE BR IS LOADED FROM THE DP WITH BITS 0-5 FROM SCAD ; 4668 ; THE SCAD COMPUTES P-S ; 4669 ; IBPS IS CALLED WITH A 4-WAY DISPATCH ON SCAD0 AND FIRST-PART-DONE ; 4670 ;THE MACRO IS WRITTEN WITH SEVERAL SUB-MACROS BECAUSE OF RESTRICTIONS ; 4671 ; IN THE MICRO ASSEMBLER ; 4672 ; 4673 IBP DP "AD/D, DEST/A, A/AR, B/BR, DBUS/DBM, DBM/DP, BYTE/BYTE1" ; 4674 IBP SCAD "SCAD/A-B, SCADA/BYTE1, SCADB/SIZE" ; 4675 IBP SPEC "SCAD DISP, SKIP FPD" ; 4676 CALL IBP "IBP DP, IBP SCAD, IBP SPEC, CALL [IBPS], DT/3T" ; 4677 ; 4678 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" ; 4679 ; 4680 ;THE FOLLOWING MACRO IS USED FOR COUNTING SHIFTS IN THE BYTE ROUTINES. IT ; 4681 ; USES THE FE AND COUNTS BY 8. NOTE: BYTE STEP IS A 2S WEIGHT SKIP NOT 1S. ; 4682 BYTE STEP "SCAD/A+B,SCADA/S#,S#/1770,SCADB/FE,LOAD FE, 3T,SCAD DISP" ; 4683 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 127 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 BYTE GROUP -- IBP, ILDB, LDB, IDPB, DPB ; 4684 .BIN ; 4685 ; 4686 .DCODE D 0133, 0015,1610,1100 ; 4687 133: R, AC, J/IBP ;OR ADJBP D 0134, 0000,1620,1500 ; 4688 134: R,W TEST, J/ILDB ;CAN'T USE RPW BECAUSE OF FPD D 0135, 0000,1624,1100 ; 4689 R, J/LDB D 0136, 0000,1630,1500 ; 4690 R,W TEST, J/IDPB D 0137, 0000,1634,1100 ; 4691 R, J/DPB ; 4692 .UCODE ; 4693 1610: U 1610, 0240,4443,0000,4174,4007,0360,0000,0000,0000 ; 4694 IBP: SKIP IF AC0 ;SEE IF ADJBP ; 4695 =000 WORK[ADJPTR]_[AR], ;SAVE POINTER U 0240, 3127,3333,0003,7174,4007,0700,0400,0000,0223 ; 4696 J/ADJBP ;GO ADJUST BYTE POINTER U 0241, 0350,3770,0305,4334,4016,7351,0010,0033,6000 ; 4697 =001 CALL IBP ;BUMP BYTE POINTER U 0245, 0110,3443,0100,4174,4156,4700,0200,0014,0012 ; 4698 =101 DONE ;POINTER STORED ; 4699 = ; 4700 ; 4701 1620: U 1620, 0350,3770,0305,4334,4016,7351,0010,0033,6000 ; 4702 ILDB: CALL IBP ;BUMP BYTE POINTER ; 4703 1624: ; 4704 LDB: READ [AR], ;LOOK AT POINTER ; 4705 LOAD BYTE EA, FE_P, 3T, ;GET STUFF OUT OF POINTER U 1624, 3077,3333,0003,4174,4217,0701,1010,0073,0500 ; 4706 CALL [BYTEA] ;COMPUTE EFFECTIVE ADDRESS U 1625, 0604,3443,0100,4174,4007,0700,0200,0014,0012 ; 4707 1625: VMA_[PC], FETCH ;START FETCH OF NEXT INST ; 4708 =0* READ [AR], ;LOOK AT POINTER ; 4709 FE_FE.AND.S#, S#/0770, ;MASK OUT JUNK IN FE ; 4710 BYTE DISP, ;DISPATCH ON BYTE SIZE U 0604, 0340,3333,0003,4174,4006,5701,1010,0051,0770 ; 4711 CALL [LDB1] ;GET BYTE ; 4712 AC_[AR], CLR FPD, ;STORE AC U 0606, 0555,3440,0303,0174,4467,0700,0400,0005,0000 ; 4713 J/NIDISP ;GO DO NEXT INST ; 4714 ; 4715 1630: U 1630, 0350,3770,0305,4334,4016,7351,0010,0033,6000 ; 4716 IDPB: CALL IBP ;BUMP BYTE POINTER ; 4717 1634: U 1634, 3072,3775,0004,0274,4007,0701,0000,0000,0000 ; 4718 DPB: [ARX]_AC*2 ;PUT 7 BIT BYTE IN 28-34 ; 4719 AD/A, A/ARX, SCAD/A, ;PUT THE BYTE INTO ; 4720 SCADA/BYTE5, 3T, ; INTO THE FE REGISTER U 3072, 3073,3443,0400,4174,4007,0701,1000,0077,0000 ; 4721 LOAD FE ; FE REGISTER U 3073, 0264,3771,0004,0276,6007,0700,0000,0000,0000 ; 4722 [ARX]_AC ;PUT BYTE IN ARX ; 4723 =100 READ [AR], ;LOOK AT BYTE POINTER ; 4724 LOAD BYTE EA, ;LOAD UP EFFECTIVE ADDRESS U 0264, 3077,3333,0003,4174,4217,0700,0010,0000,0500 ; 4725 CALL [BYTEA] ;COMPUTE EFFECTIVE ADDRESS ; 4726 READ [AR], ;LOOK AT POINTER AGAIN ; 4727 BYTE DISP, ;DISPATCH ON SIZE U 0265, 0360,3333,0003,4174,4006,5701,0010,0000,0000 ; 4728 CALL [DPB1] ;GO STORE BYTE U 0267, 1400,4443,0000,4174,4467,0700,0000,0005,0000 ; 4729 =111 CLR FPD, J/DONE ;ALL DONE ; 4730 = ; 4731 ; KS10.MCR[7,3] 15:03 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 -- INCREMENT BYTE POINTER SUBROUTINE ; 4732 .TOC "BYTE GROUP -- INCREMENT BYTE POINTER SUBROUTINE" ; 4733 ; 4734 =00 U 0350, 3075,3441,0503,4174,4007,0700,0200,0003,0002 ; 4735 IBPS: [AR]_[BR], START WRITE, J/IBPX ;NO OVERFLOW, BR HAS ANSWER U 0351, 0004,4443,0000,4174,4004,1700,0000,0000,0000 ; 4736 RETURN [4] ;FIRST PART DONE SET U 0352, 3074,3770,0503,4334,4017,0700,0000,0032,6000 ; 4737 SET P TO 36-S, J/NXTWRD ;WORD OVERFLOW U 0353, 0004,4443,0000,4174,4004,1700,0000,0000,0000 ; 4738 RETURN [4] ;FPD WAS SET IGNORE OVERFLOW ; 4739 ; AND RETURN ; 4740 U 3074, 3075,0111,0703,4170,4007,0700,0200,0003,0002 ; 4741 NXTWRD: [AR]_[AR]+1, HOLD LEFT, START WRITE ;BUMP Y AND RETURN U 3075, 0004,3333,0003,4175,5004,1701,0200,0000,0002 ; 4742 IBPX: MEM WRITE, MEM_[AR], RETURN [4] ; 4743 ; 4744 ; 4745 .TOC "BYTE GROUP -- BYTE EFFECTIVE ADDRESS EVALUATOR" ; 4746 ; 4747 ;ENTER WITH POINTER IN AR ; 4748 ;RETURN1 WITH (EA) IN VMA AND WORD IN BR ; 4749 BYTEAS: EA MODE DISP, ;HERE TO AVOID FPD U 3076, 0070,4443,0000,2174,4006,6700,0000,0000,0000 ; 4750 J/BYTEA0 ;GO COMPUTE EA ; 4751 BYTEA: SET FPD, ;SET FIRST-PART-DONE U 3077, 0070,4443,0000,2174,4466,6700,0000,0003,0000 ; 4752 EA MODE DISP ;DISPATCH ; 4753 =100* ; 4754 BYTEA0: VMA_[AR]+XR, ;INDEXING ; 4755 START READ, ;FETCH DATA WORD ; 4756 PXCT BYTE DATA, ;FOR PXCT U 0070, 3101,0553,0300,2274,4007,0700,0200,0004,0712 ; 4757 J/BYTFET ;GO WAIT ; 4758 VMA_[AR], ;PLAIN ; 4759 START READ, ;START CYCLE ; 4760 PXCT BYTE DATA, ;FOR PXCT U 0072, 3101,3443,0300,4174,4007,0700,0200,0004,0712 ; 4761 J/BYTFET ;GO WAIT ; 4762 VMA_[AR]+XR, ;BOTH ; 4763 START READ, ;START CYCLE ; 4764 PXCT BYTE PTR EA, ;FOR PXCT U 0074, 3100,0553,0300,2274,4007,0700,0200,0004,0512 ; 4765 J/BYTIND ;GO DO INDIRECT ; 4766 VMA_[AR], ;JUST @ ; 4767 START READ, ;START READ U 0076, 3100,3443,0300,4174,4007,0700,0200,0004,0512 ; 4768 PXCT BYTE PTR EA ;FOR PXCT ; 4769 BYTIND: MEM READ, ;WAIT FOR @ WORD ; 4770 [AR]_MEM, ;PUT IN AR ; 4771 HOLD LEFT, ;JUST IN RH (SAVE P & S) ; 4772 LOAD BYTE EA, ;LOOP BACK U 3100, 3076,3771,0003,4361,5217,0700,0200,0000,0502 ; 4773 J/BYTEAS ; .. ; 4774 ; 4775 BYTFET: MEM READ, ;WAIT FOR BYTE DATA ; 4776 [BR]_MEM.AND.MASK, ; WORD. UNSIGNED U 3101, 0001,4551,1205,4365,5004,1700,0200,0000,0002 ; 4777 RETURN [1] ;RETURN TO CALLER ; 4778 ; KS10.MCR[7,3] 15:03 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 -- LOAD BYTE SUBROUTINE ; 4779 .TOC "BYTE GROUP -- LOAD BYTE SUBROUTINE" ; 4780 ; 4781 ;CALL WITH: ; 4782 ; WORD IN BR ; 4783 ; POINTER IN AR ; 4784 ; P IN FE ; 4785 ; BYTE DISPATCH ; 4786 ;RETURN2 WITH BYTE IN AR ; 4787 LDB SCAD "SCAD/A,BYTE/BYTE5" ; 4788 7-BIT LDB "AD/D,DBUS/DBM,DBM/DP,DEST/A,A/BR,B/BR, LDB SCAD" ; 4789 ; 4790 =000 ; 4791 LDB1: GEN 17-FE, 3T, ;GO SEE IF ALL THE BITS ; 4792 SCAD DISP, ; ARE IN THE LEFT HALF U 0340, 0550,4443,0000,4174,4006,7701,0000,0031,0210 ; 4793 J/LDBSWP ;GO TO LDBSWP & SKIP IF LH ; 4794 ; 4795 ;HERE ARE THE 7-BIT BYTES U 0341, 3102,3770,0505,4334,4057,0700,0000,0073,0000 ; 4796 =001 7-BIT LDB, SCADA/BYTE1, J/LDB7 U 0342, 3102,3770,0505,4334,4057,0700,0000,0074,0000 ; 4797 =010 7-BIT LDB, SCADA/BYTE2, J/LDB7 U 0344, 3102,3770,0505,4334,4057,0700,0000,0075,0000 ; 4798 =100 7-BIT LDB, SCADA/BYTE3, J/LDB7 U 0345, 3102,3770,0505,4334,4057,0700,0000,0076,0000 ; 4799 =101 7-BIT LDB, SCADA/BYTE4, J/LDB7 U 0347, 3102,3770,0505,4334,4057,0700,0000,0077,0000 ; 4800 =111 7-BIT LDB, SCADA/BYTE5, J/LDB7 ; 4801 = ; 4802 ; 4803 ;FOR 7-BIT BYTES WE HAVE BYTE IN BR 28-35 AND JUNK IN REST OF BR. ; 4804 ; WE JUST MASK THE SELECTED BYTE AND SHIFT ONE PLACE RIGHT. ; 4805 LDB7: AD/ZERO,RSRC/DA, ;LH_ZERO, RH_D.AND.A ; 4806 DBUS/DBM,DBM/#,#/376, ;D INPUT IS 376 ; 4807 A/BR, ;A IS BR ; 4808 B/AR, ;PUT RESULT IN AR ; 4809 DEST/AD*.5, 3T, ;SHIFT RESULT 1 PLACE U 3102, 0002,4257,0503,4374,4004,1701,0000,0000,0376 ; 4810 RETURN [2] ;RETURN TO CALLER ; 4811 ; KS10.MCR[7,3] 15:03 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 ; 4812 ;HERE FOR NORMAL BYTES ; 4813 =00 ; 4814 LDBSWP: FE_-FE, ;MAKE P NEGATIVE U 0550, 3104,4443,0000,4174,4007,0700,1000,0031,0000 ; 4815 J/LDBSH ;JOIN MAIN LDB LOOP U 0552, 3103,3770,0505,4344,4007,0700,0000,0000,0000 ; 4816 =10 [BR]_[BR] SWAP ;SHIFT 18 STEPS ; 4817 = ; 4818 [BR]_0, HOLD RIGHT, ;PUT ZERO IN LH U 3103, 3104,4221,0005,4174,0007,0700,1000,0031,0220 ; 4819 FE_-FE+S#, S#/220 ;UPDATE FE ; 4820 LDBSH: [BR]_[BR]*.5, ;SHIFT RIGHT ; 4821 FE_FE+10, ;UPDATE THE FE U 3104, 3105,3447,0505,4174,4007,0700,1020,0041,0010 ; 4822 MULTI SHIFT/1 ;FAST SHIFT U 3105, 3106,3333,0003,4174,4007,0700,1000,0031,7770 ; 4823 READ [AR], FE_-S-10 ;GET SIZE U 3106, 3107,4222,0000,4174,4007,0700,0000,0000,0000 ; 4824 Q_0 ;CLEAR Q ; 4825 GEN MSK [AR], ;PUT MASK IN Q (WIPEOUT AR) ; 4826 FE_FE+10, ;COUNT UP ALL STEPS U 3107, 3110,4224,0003,4174,4027,0700,1020,0041,0010 ; 4827 MULTI SHIFT/1 ;FAST SHIFT U 3110, 3111,4224,0003,4174,4027,0700,0000,0000,0000 ; 4828 GEN MSK [AR] ;ONE MORE BIT U 3111, 0002,4001,0503,4174,4004,1700,0000,0000,0000 ; 4829 [AR]_[BR].AND.Q, RETURN [2] ; 4830 ; KS10.MCR[7,3] 15:03 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 ; 4831 .NOBIN ; 4832 .TOC "BYTE GROUP -- DEPOSIT BYTE IN MEMORY" ; 4833 ; 4834 ;FLOW FOR DPB (NOT 7-BIT BYTE) ; 4835 ; ; 4836 ;FIRST SET ARX TO -1 AND Q TO ZERO AND ROTATE LEFT ; 4837 ; S PLACES GIVING: ; 4838 ; 4839 ; ARX Q ; 4840 ; +------------------!------------------+ ; 4841 ; !111111111111000000!000000000000111111! ; 4842 ; +------------------!------------------+ ; 4843 ; !<--->! ; 4844 ; S BITS ; 4845 ; ; 4846 ; 4847 ;NOW THE AC IS LOAD INTO THE ARX AND BOTH THE ARX AND Q ; 4848 ; ARE SHIFTED LEFT P BITS GIVING: ; 4849 ; 4850 ; +------------------!------------------+ ; 4851 ; !??????BBBBBB000000!000000111111000000! ; 4852 ; +------------------!------------------+ ; 4853 ; <----><----> <----><----> ; 4854 ; JUNK BYTE MASK P BITS ; 4855 ; ; 4856 ; 4857 ;AT THIS POINT WE ARE ALMOST DONE. WE NEED TO AND ; 4858 ; THE BR WITH .NOT. Q TO ZERO THE BITS FOR THE BYTE ; 4859 ; AND AND ARX WITH Q TO MASK OUT THE JUNK THIS GIVES: ; 4860 ; ; 4861 ; ARX ; 4862 ; +------------------+ ; 4863 ; !000000BBBBBB000000! ; 4864 ; +------------------! ; 4865 ; ; 4866 ; AR ; 4867 ; +------------------+ ; 4868 ; !DDDDDD000000DDDDDD! ; 4869 ; +------------------+ ; 4870 ; ; 4871 ;WE NOW OR THE AR WITH ARX TO GENERATE THE ANSWER. ; 4872 ; KS10.MCR[7,3] 15:03 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 -- DEPOSIT BYTE IN MEMORY ; 4873 .BIN ; 4874 ; 4875 ;DEPOSIT BYTE SUBROUTINE ; 4876 ;CALL WITH: ; 4877 ; BYTE POINTER IN AR ; 4878 ; BYTE TO STORE IN ARX ; 4879 ; WORD TO MERGE WITH IN BR ; 4880 ; (E) OF BYTE POINTER IN VMA ; 4881 ; 7-BIT BYTE IN FE ; 4882 ; BYTE DISPATCH ; 4883 ;RETURN2 WITH BYTE IN MEMORY ; 4884 ; ; 4885 DPB SCAD "SCAD/A+B,SCADA/S#,SCADB/FE,S#/0" ; 4886 7-BIT DPB "AD/D,DEST/A,A/BR,DBUS/DBM,DBM/DP,B/AR, DPB SCAD" ; 4887 ; 4888 =000 U 0360, 3114,3333,0003,4174,4007,0700,1000,0031,7770 ; 4889 DPB1: READ [AR], FE_-S-10, J/DPBSLO ;NOT SPECIAL U 0361, 3112,3770,0503,4334,4017,0700,0000,0041,0000 ; 4890 =001 7-BIT DPB, BYTE/BYTE1, J/DPB7 U 0362, 3112,3770,0503,4334,4027,0700,0000,0041,0000 ; 4891 =010 7-BIT DPB, BYTE/BYTE2, J/DPB7 U 0364, 3112,3770,0503,4334,4037,0700,0000,0041,0000 ; 4892 =100 7-BIT DPB, BYTE/BYTE3, J/DPB7 U 0365, 3112,3770,0503,4334,4047,0700,0000,0041,0000 ; 4893 =101 7-BIT DPB, BYTE/BYTE4, J/DPB7 U 0367, 3112,3770,0503,4334,4057,0700,0000,0041,0000 ; 4894 =111 7-BIT DPB, BYTE/BYTE5, J/DPB7 ; 4895 = U 3112, 3113,3447,1200,4174,4007,0700,0200,0003,0002 ; 4896 DPB7: [MAG]_[MASK]*.5, START WRITE U 3113, 0002,3333,0003,4175,5004,1701,0200,0000,0002 ; 4897 MEM WRITE, MEM_[AR], RETURN [2] ; 4898 ; 4899 U 3114, 3115,4222,0000,4174,4007,0700,0000,0000,0000 ; 4900 DPBSLO: Q_0 ;CLEAR Q ; 4901 GEN MSK [MAG], ;GENERATE MASK IN Q (ZAP MAG) ; 4902 FE_FE+10, ;COUNT STEPS U 3115, 3116,4224,0000,4174,4027,0700,1020,0041,0010 ; 4903 MULTI SHIFT/1 ;FAST SHIFT U 3116, 3117,4224,0000,4174,4027,0700,0000,0000,0000 ; 4904 GEN MSK [MAG] ;ONE MORE BITS U 3117, 3120,3333,0003,4174,4007,0701,1000,0073,0000 ; 4905 READ [AR], 3T, FE_P ;AMOUNT TO SHIFT U 3120, 3121,4443,0000,4174,4007,0700,1000,0051,0770 ; 4906 FE_FE.AND.S#, S#/0770 ;MASK OUT JUNK ; 4907 Q_Q.AND.[MASK], ;CLEAR BITS 36 AND 37 U 3121, 3122,4002,1200,4174,4007,0700,1000,0031,0000 ; 4908 FE_-FE ;MINUS NUMBER OF STEPS ; 4909 [ARX]_[ARX]*2 LONG, ;SHIFT BYTE AND MASK ; 4910 FE_FE+10, ;COUNT OUT STEPS U 3122, 3123,3444,0404,4174,4007,0700,1020,0041,0010 ; 4911 MULTI SHIFT/1 ;FAST SHIFT ; 4912 ;AT THIS POINT WE HAVE DONE ALL THE SHIFTING WE NEED. THE BYTE IS ; 4913 ; IN ARX AND THE MASK IS IN Q. U 3123, 3124,7221,0003,4174,4007,0700,0000,0000,0000 ; 4914 [AR]_.NOT.Q U 3124, 3125,4111,0503,4174,4007,0700,0000,0000,0000 ; 4915 [AR]_[AR].AND.[BR] U 3125, 3126,4001,0404,4174,4007,0700,0000,0000,0000 ; 4916 [ARX]_[ARX].AND.Q ; 4917 [AR]_[AR].OR.[ARX], U 3126, 3112,3111,0403,4174,4007,0700,0000,0000,0000 ; 4918 J/DPB7 ; 4919 ; KS10.MCR[7,3] 15:03 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 -- ADJUST BYTE POINTER ; 4920 .TOC "BYTE GROUP -- ADJUST BYTE POINTER" ; 4921 .IF/FULL ; 4922 ;FIRST THE NUMBER OF BYTES PER WORD IS COMPUTED FROM THE ; 4923 ; FOLLOWING FORMULA: ; 4924 ; ; 4925 ; ( P ) ( 36-P ) ; 4926 ; BYTES PER WORD = INT( --- ) + INT( ---- ) ; 4927 ; ( S ) ( S ) ; 4928 ; ; 4929 ;THIS GIVES 2 BYTES PER WORD FOR THE FOLLOWING 12 BIT BYTE: ; 4930 ; !=====================================! ; 4931 ; ! 6 !////////////! 12 ! 6 ! ; 4932 ; !=====================================! ; 4933 ; P=18 AND S=12 ; 4934 ; ; 4935 ;WE GET 3 BYTES/WORD IF THE BYTES FALL IN THE NATURAL PLACE: ; 4936 ; !=====================================! ; 4937 ; ! 12 !\\\\\\\\\\\\! 12 ! ; 4938 ; !=====================================! ; 4939 ; P=12 AND S=12 ; 4940 ; 4941 ;WE COME HERE WITH THE BYTE POINTER IN AR, AND ADJPTR ; 4942 ADJBP: [ARX]_[AR] SWAP, ;MOVE SIZE OVER U 3127, 1302,3770,0304,4344,4007,0700,2000,0071,0011 ; 4943 SC_9. ;READY TO SHIFT ; 4944 =0 ; 4945 ADJBP0: [ARX]_[ARX]*.5, ;SHIFT P OVER ; 4946 STEP SC, ; .. U 1302, 1302,3447,0404,4174,4007,0630,2000,0060,0000 ; 4947 J/ADJBP0 ; .. ; 4948 [ARX]_([ARX].AND.#)*.5, ;SHIFT AND MASK ; 4949 3T, ;WAIT U 1303, 3130,4557,0404,4374,4007,0701,0000,0000,0176 ; 4950 #/176 ;6 BIT MASK ; 4951 [ARX]_#, ;CLEAR LH ; 4952 #/0, ; .. U 3130, 3131,3771,0004,4374,0007,0700,0000,0000,0000 ; 4953 HOLD RIGHT ; .. U 3131, 3132,3333,0004,7174,4007,0700,0400,0000,0221 ; 4954 WORK[ADJP]_[ARX] ;SAVE P ; 4955 [BR]_([AR].AND.#)*.5, ;START ON S ; 4956 3T, ;EXTRACT S U 3132, 3133,4557,0305,4374,4007,0701,0000,0000,7700 ; 4957 #/007700 ; .. ; 4958 [BR]_[BR] SWAP, ;SHIFT 18 PLACES U 3133, 3134,3770,0505,4344,4007,0700,2000,0071,0003 ; 4959 SC_3 ; .. ; 4960 [BR]_0, ;CLEAR LH U 3134, 1304,4221,0005,4174,0007,0700,0000,0000,0000 ; 4961 HOLD RIGHT ; .. ; 4962 ; KS10.MCR[7,3] 15:03 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 ; 4963 =0 ; 4964 ADJBP1: [BR]_[BR]*.5, ;SHIFT S OVER ; 4965 STEP SC, ; .. U 1304, 1304,3447,0505,4174,4007,0630,2000,0060,0000 ; 4966 J/ADJBP1 ; .. ; 4967 WORK[ADJS]_[BR], ;SALT S AWAY U 1305, 1306,3333,0005,7174,4007,0621,0400,0000,0222 ; 4968 SKIP AD.EQ.0 ;SEE IF ZERO ; 4969 =0 Q_[ARX], ;DIVIDE P BY S ; 4970 SC_34., ;STEP COUNT U 1306, 0660,3442,0400,4174,4007,0700,2000,0071,0042 ; 4971 J/ADJBP2 ;SKIP NEXT WORD U 1307, 1404,3771,0003,7274,4007,0701,0000,0000,0223 ; 4972 [AR]_WORK[ADJPTR], J/MOVE ;S=0 -- SAME AS MOVE ; 4973 =0* ; 4974 ADJBP2: [AR]_#, ;FILL AR WITH SIGN BITS ; 4975 #/0, ;POSITIVE U 0660, 0370,3771,0003,4374,4007,0700,0010,0000,0000 ; 4976 CALL [DIVSUB] ;GO DIVIDE U 0662, 3135,3223,0000,7174,4007,0700,0400,0000,0224 ; 4977 WORK[ADJQ1]_Q ;SAVE QUOTIENT ; 4978 Q_#, ;COMPUTE (36-P)/S ; 4979 #/36., ; .. U 3135, 3136,3772,0000,4370,4007,0700,0000,0000,0044 ; 4980 HOLD LEFT ;SMALL ANSWER U 3136, 3137,1662,0000,7274,4007,0701,4000,0000,0221 ; 4981 Q_Q-WORK[ADJP] ;SUBTRACT P U 3137, 3140,3771,0005,7274,4007,0701,0000,0000,0222 ; 4982 [BR]_WORK[ADJS] ;DIVIDE BY S U 3140, 0664,4443,0000,4174,4007,0700,2000,0071,0042 ; 4983 SC_34. ;STEP COUNT ; 4984 =0* [AR]_#, ;MORE SIGN BITS ; 4985 #/0, ; .. U 0664, 0370,3771,0003,4374,4007,0700,0010,0000,0000 ; 4986 CALL [DIVSUB] ;GO DIVIDE U 0666, 3141,3333,0003,7174,4007,0700,0400,0000,0225 ; 4987 WORK[ADJR2]_[AR] ;SAVE REMAINDER ; 4988 [AR]_#, ;ASSUME NEGATIVE ADJ U 3141, 3142,3771,0003,4374,4007,0700,0000,0077,7777 ; 4989 #/777777 ;EXTEND SIGN ; 4990 AD/D+Q, ;BR_(P/S)+((36-P)/S) ; 4991 DEST/AD, ; .. ; 4992 B/BR, ; .. ; 4993 RAMADR/#, ; .. ; 4994 DBUS/RAM, ; .. ; 4995 WORK/ADJQ1, ; .. ; 4996 4T, ; .. U 3142, 1310,0661,0005,7274,4007,0622,0000,0000,0224 ; 4997 SKIP AD.EQ.0 ;SEE IF ZERO ; 4998 =0 Q_Q+AC, ;GET ADJUSTMENT ; 4999 SC_34., ;STEP COUNT ; 5000 SKIP DP0, ;GO DO DIVIDE ; 5001 4T, ;WAIT FOR DP U 1310, 0570,0662,0000,0274,4007,0522,2000,0071,0042 ; 5002 J/ADJBP3 ;BELOW U 1311, 0555,4443,0000,4174,4467,0700,0000,0051,1000 ; 5003 NO DIVIDE ;0 BYTES/WORD ; 5004 ; KS10.MCR[7,3] 15:03 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 ; 5005 ;WE NOW DIVIDE THE ADJUSTMENT BY THE BYTES PER WORD AND FORCE THE ; 5006 ; REMAINDER (R) TO BE A POSITIVE NUMBER (MUST NOT BE ZERO). THE ; 5007 ; QUOTIENT IS ADDED TO THE Y FIELD IN THE BYTE POINTER AND THE NEW ; 5008 ; P FIELD IS COMPUTED BY: ; 5009 ; ; 5010 ; ( ( 36-P )) ; 5011 ; NEW P = 36-((R * S) + RMDR( ---- )) ; 5012 ; ( ( S )) ; 5013 ; ; 5014 ;WE NOW HAVE BYTES/WORD IN BR AND ADJUSTMENT IN Q. DIVIDE TO GET ; 5015 ; WORDS TO ADJUST BY. ; 5016 =00 ; 5017 ADJBP3: [AR]_#, ;POSITIVE ADJUSTMENT U 0570, 0571,3771,0003,4374,4007,0700,0000,0000,0000 ; 5018 #/0. ; 5019 WORK[ADJBPW]_[BR], ;SAVE BYTES/WORD & COMPUTE U 0571, 0370,3333,0005,7174,4007,0700,0410,0000,0226 ; 5020 CALL [DIVSUB] ; ADJ/(BYTES/WORD) ; 5021 ;WE NOW WANT TO ADJUST THE REMAINDER SO THAT IT IS POSITIVE ; 5022 =11 Q_#, ;ONLY RIGHT HALF ; 5023 #/0, ; .. U 0573, 3143,3772,0000,4374,0007,0700,0000,0000,0000 ; 5024 HOLD RIGHT ; .. ; 5025 = ; 5026 READ [AR], ;ALREADY + U 3143, 1312,3333,0003,4174,4007,0421,0000,0000,0000 ; 5027 SKIP AD.LE.0 ; .. ; 5028 =0 ; 5029 ADJBP4: AD/D+Q, ;ADD Q TO POINTER AND STORE ; 5030 DEST/AD, ; .. ; 5031 B/BR, ;RESULT TO BR ; 5032 RAMADR/#, ;PTR IS IN RAM ; 5033 DBUS/RAM, ; .. ; 5034 WORK/ADJPTR, ; .. ; 5035 INH CRY18, ;JUST RH ; 5036 3T, ;WAIT FOR RAM U 1312, 3145,0661,0005,7274,4407,0701,0000,0000,0223 ; 5037 J/ADJBP5 ;CONTINUE BELOW ; 5038 Q_Q-1, ;NO--MAKE Q SMALLER U 1313, 3144,1002,0700,4170,4007,0700,4000,0000,0000 ; 5039 HOLD LEFT ; .. ; 5040 [AR]_[AR]+WORK[ADJBPW], ;MAKE REM BIGGER U 3144, 1312,0551,0303,7274,4007,0701,0000,0000,0226 ; 5041 J/ADJBP4 ;NOW HAVE + REMAINDER ; 5042 ; KS10.MCR[7,3] 15:03 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 ; 5043 ADJBP5: [BRX]_[AR], ;COMPUTE R*S U 3145, 3146,3441,0306,4174,4007,0700,2000,0071,0043 ; 5044 SC_35. ;STEP COUNT U 3146, 0062,3772,0000,7274,4007,0701,0000,0000,0222 ; 5045 Q_WORK[ADJS] ;GET S ; 5046 =01* [BRX]_[BRX]*.5 LONG, ;SHIFT OVER U 0062, 3000,3446,0606,4174,4007,0700,0010,0000,0000 ; 5047 CALL [MULSUB] ; .. ; 5048 AD/D+Q, ;AR_(R*S)+RMDR(36-P)/S ; 5049 DEST/AD, ; .. ; 5050 B/AR, ; .. ; 5051 RAMADR/#, ; .. ; 5052 3T, ; .. ; 5053 DBUS/RAM, ; .. U 0066, 3147,0661,0003,7274,4007,0701,0000,0000,0225 ; 5054 WORK/ADJR2 ; .. ; 5055 [AR]_(#-[AR])*2, ;COMPUTE 36-AR ; 5056 3T, ;AND START LEFT U 3147, 3150,2555,0303,4374,4007,0701,4000,0000,0044 ; 5057 #/36. ; .. ; 5058 [AR]_[AR] SWAP, ;PUT THE POSITION BACK U 3150, 3151,3770,0303,4344,4007,0700,2000,0071,0011 ; 5059 SC_9. ; .. ; 5060 [AR]_#, ;CLEAR JUNK FROM RH ; 5061 #/0, ; .. U 3151, 1314,3771,0003,4370,4007,0700,0000,0000,0000 ; 5062 HOLD LEFT ; .. ; 5063 =0 ; 5064 ADJBP6: [AR]_[AR]*2, ;LOOP OVER ALL BITS ; 5065 STEP SC, ; .. U 1314, 1314,3445,0303,4174,4007,0630,2000,0060,0000 ; 5066 J/ADJBP6 ; .. ; 5067 [BR]_[BR].AND.#, ; .. ; 5068 #/007777, ; .. U 1315, 3152,4551,0505,4374,0007,0700,0000,0000,7777 ; 5069 HOLD RIGHT ; .. ; 5070 AC_[AR].OR.[BR], ;ALL DONE U 3152, 1400,3113,0305,0174,4007,0700,0400,0000,0000 ; 5071 J/DONE ;;5072 .IFNOT/FULL ;;5073 ;;5074 ADJBP: UUO ;NO ADJBP IN SMALL ;;5075 ; MICROCODE ; 5076 .ENDIF/FULL ; 5077 ; KS10.MCR[7,3] 15:03 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 ; 5078 .NOBIN ; 5079 .TOC "BLT" ; 5080 ; 5081 ;THIS CODE PROVIDES A GUARANTEED RESULT IN AC ON COMPLETION OF ; 5082 ; THE TRANSFER (EXCEPT IN THE CASE AC IS PART OF BUT NOT THE LAST WORD ; 5083 ; OF THE DESTINATION BLOCK). WHEN AC IS NOT PART OF THE DESTINATION ; 5084 ; BLOCK, IT IS LEFT CONTAINING THE ADDRESSES OF THE FIRST WORD FOLLOWING ; 5085 ; THE SOURCE BLOCK (IN THE LH), AND THE FIRST WORD FOLLOWING THE DEST- ; 5086 ; INATION BLOCK (IN THE RH). IF AC IS THE LAST WORD OF THE DESTINATION ; 5087 ; BLOCK, IT WILL BE A COPY OF THE LAST WORD OF THE SOURCE BLOCK. ; 5088 ; 5089 ;IN ADDITION, A SPECIAL-CASE CHECK IS MADE FOR THE CASE IN WHICH EACH ; 5090 ; WORD STORED IS USED AS THE SOURCE OF THE NEXT TRANSFER. IN THIS CASE, ; 5091 ; ONLY ONE READ NEED BE PERFORMED, AND THAT DATA MAY BE STORED FOR EACH ; 5092 ; TRANSFER. THUS THE COMMON USE OF BLT TO CLEAR CORE IS SPEEDED UP. ; 5093 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 138 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 BLT ; 5094 .BIN ; 5095 ; 5096 ;HERE TO SETUP FOR A BLT/UBABLT ; 5097 U 3153, 1316,3770,0604,4344,4007,0700,0000,0000,0000 ; 5098 SETBLT: [ARX]_[BRX] SWAP ;COPY TO ARX (SRC IN RH) ; 5099 =0 VMA_[ARX], ;ADDRESS OF FIRST WORD ; 5100 START READ, ; 5101 PXCT BLT SRC, U 1316, 3663,3443,0400,4174,4007,0700,0210,0004,0712 ; 5102 CALL [CLARXL] ;CLEAR THE LEFT HALF OF ; 5103 [BRX]_0, ; BOTH SRC AND DEST U 1317, 3154,4221,0006,4174,0007,0700,0000,0000,0000 ; 5104 HOLD RIGHT U 3154, 3155,2112,0306,4174,4007,0700,4000,0000,0000 ; 5105 Q_[AR]-[BRX] ;NUMBER OF WORDS TO MOVE U 3155, 3156,0001,0705,4174,4007,0700,0000,0000,0000 ; 5106 [BR]_Q+1 ;LENGTH +1 ; 5107 [BR]_[BR] SWAP, ;COPY TO BOTH HALFS U 3156, 3157,3770,0505,4344,0007,0700,0000,0000,0000 ; 5108 HOLD RIGHT ; 5109 [BR]_AC+[BR], ;FINAL AC U 3157, 3160,0551,0505,0274,4407,0701,0000,0000,0000 ; 5110 INH CRY18 ;KEEP AC CORRECT IF DEST IS 777777 U 3160, 0002,3771,0013,4370,4004,1700,0000,0000,0001 ; 5111 STATE_[BLT],RETURN [2] ;SET PAGE FAIL FLAGS ; 5112 ; 5113 .DCODE D 0251, 0000,1640,2100 ; 5114 251: I, J/BLT ; 5115 .UCODE ; 5116 ; 5117 1640: U 1640, 3153,3771,0006,0276,6007,0700,0010,0000,0000 ; 5118 BLT: [BRX]_AC,CALL [SETBLT] ;FETCH THE AC (DEST IN RH) ; 5119 1642: AC_[BR], ;STORE BACK IN AC U 1642, 3662,3440,0505,0174,4007,0700,0410,0000,0000 ; 5120 CALL [LOADQ] ;LOAD FIRST WORD INTO Q ; 5121 1643: [BR]_[ARX]+1000001, ;SRC+1 ; 5122 3T, U 1643, 3161,0551,0405,4370,4007,0701,0000,0000,0001 ; 5123 HOLD LEFT ; 5124 [BR]-[BRX], 3T, ;IS THIS THE CORE CLEAR CASE U 3161, 1320,2113,0506,4174,4007,0331,4000,0000,0000 ; 5125 SKIP ADR.EQ.0 ; 5126 =0 ; 5127 BLTLP1: VMA_[BRX], ;NO, GET DEST ADR ; 5128 START WRITE, ;START TO STORE NEXT WORD ; 5129 PXCT BLT DEST, ;WHERE TO STORE U 1320, 3164,3443,0600,4174,4007,0700,0200,0003,0312 ; 5130 J/BLTGO ; 5131 ; 5132 ;SKIP TO NEXT PAGE IF CLEARING CORE ; 5133 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 139 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 BLT ; 5134 ;CLEAR CORE CASE ; 5135 VMA_[BRX], ; 5136 START WRITE, U 1321, 3162,3443,0600,4174,4007,0700,0200,0003,0312 ; 5137 PXCT BLT DEST ; 5138 BLTCLR: MEM WRITE, ;STORE WORD ; 5139 MEM_Q, U 3162, 1322,3223,0000,4174,4007,0671,0200,0000,0002 ; 5140 SKIP/-1 MS ;1 MS TIMER UP U 1322, 3165,4443,0000,4174,4007,0700,0000,0000,0000 ; 5141 =0 J/BLTGOT ;GO TAKE INTERRUPT ; 5142 [BRX]-[AR], ;BELOW E? ; 5143 3T, U 1323, 1324,2113,0603,4174,4007,0521,4000,0000,0000 ; 5144 SKIP DP0 ; 5145 =0 END BLT, ;NO--STOP BLT U 1324, 1400,4221,0013,4170,4007,0700,0000,0000,0000 ; 5146 J/DONE ; 5147 [ARX]_[ARX]+1, ;FOR PAGE FAIL LOGIC U 1325, 1326,0111,0704,4174,4007,0370,0000,0000,0000 ; 5148 SKIP IRPT ; 5149 =0 VMA_[BRX]+1, ; 5150 LOAD VMA, ; 5151 PXCT BLT DEST, ; 5152 START WRITE, ;YES--KEEP STORING U 1326, 3162,0111,0706,4170,4007,0700,0200,0003,0312 ; 5153 J/BLTCLR ; 5154 VMA_[BRX]+1, ;INTERRUPT ; 5155 LOAD VMA, ; 5156 PXCT BLT DEST, ; 5157 START WRITE, U 1327, 3164,0111,0706,4170,4007,0700,0200,0003,0312 ; 5158 J/BLTGO ; 5159 ; 5160 ;HERE FOR NORMAL BLT ; 5161 BLTLP: MEM READ, ;FETCH ; 5162 Q_MEM, U 3163, 1320,3772,0000,4365,5007,0700,0200,0000,0002 ; 5163 J/BLTLP1 ; 5164 BLTGO: MEM WRITE, ;STORE U 3164, 3165,3223,0000,4174,4007,0701,0200,0000,0002 ; 5165 MEM_Q ; 5166 BLTGOT: [BRX]-[AR], ;BELOW E? ; 5167 3T, U 3165, 1330,2113,0603,4174,4007,0521,4000,0000,0000 ; 5168 SKIP DP0 ; 5169 =0 END BLT, ;NO--STOP BLT U 1330, 1400,4221,0013,4170,4007,0700,0000,0000,0000 ; 5170 J/DONE U 1331, 3166,0111,0706,4174,4007,0700,0000,0000,0000 ; 5171 [BRX]_[BRX]+1 ;UPDATE DEST ADDRESS ; 5172 VMA_[ARX]+1, ; 5173 LOAD VMA, ; 5174 PXCT BLT SRC, ; 5175 START READ, ;YES--MOVE 1 MORE WORD U 3166, 3163,0111,0704,4170,4007,0700,0200,0004,0712 ; 5176 J/BLTLP ; 5177 ; 5178 ;HERE TO CLEAN UP AFTER BLT PAGE FAILS ; 5179 BLT-CLEANUP: U 3167, 3170,3770,0303,4344,4007,0700,0000,0000,0000 ; 5180 [AR]_[AR] SWAP ;PUT SRC IN LEFT HALF ; 5181 [AR]_WORK[SV.BRX], U 3170, 3171,3771,0003,7270,4007,0701,0000,0000,0214 ; 5182 HOLD LEFT ; 5183 AC_[AR], ;STORE THE AC AND RETURN U 3171, 1100,3440,0303,0174,4007,0700,0400,0000,0000 ; 5184 J/CLEANED ; 5185 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 140 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 BLT ;;5186 .IF/UBABLT ;;5187 .TOC "UBABLT - BLT BYTES TO/FROM UNIBUS FORMAT" ;;5188 ;;5189 ;THESE INSTRUCTION MOVE WORDS FROM BYTE TO UNIBUS AND UNIBUS TO BYTE ;;5190 ;FORMAT. FORMATS ARE: ;;5191 ; ;;5192 ;BYTE FORMAT: ;;5193 ; ;;5194 ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;5195 ; ;; BYTE 0 ;; BYTE 1 ;; BYTE 2 ;; BYTE 3 ;; 4 BITS ;; ;;5196 ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;5197 ; ;;5198 ;UNIBUS FORMAT: ;;5199 ; ;;5200 ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;5201 ; ;; 2 BITS ;; BYTE 1 ;; BYTE 0 ;; 2 BITS ;; BYTE 3 ;; BYTE 2 ;; ;;5202 ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;5203 ; ;;5204 ;;5205 =0* ;;5206 BLTX: [BRX]_AC, ;FETCH THE AC (DEST IN RH) ;;5207 CALL [SETBLT] ;DO THE REST OF THE SETUP ;;5208 AC_[BR] ;STORE THE FINAL AC IN AC ;;5209 ;;5210 BLTXLP: MEM READ, ;READ THE SOURCE WORD ;;5211 Q_MEM, ;FROM MEMORY ;;5212 B DISP ;SKIP IF BLTUB (OPCODE 717) ;;5213 =110 Q_Q*.5, ;BLTBU (OPCODE 716) - SHIFT RIGHT 1 BIT ;;5214 J/BLTBU1 ;CONTINUE INSTRUCTION ;;5215 ;;5216 AD/D.AND.Q,DBUS/DBM, ;BLTUB - MASK LOW BYTES, SHIFT LEFT ;;5217 DBM/#,#/377,DEST/AD*2,B/T1 ;AND STORE RESULT ;;5218 =00 FE_S#,S#/1767, ;-9 MORE BITS TO PUT LOW BYTE OF LH ;;5219 CALL [T1LSH] ; IN TOP OF LH SHIFT LEFT ;;5220 =01 FE_S#,S#/1772, ;-6 BITS TO PUT HI BYTE TO RIGHT ;;5221 CALL [Q_RSH] ; OF LOW BYTE. ;;5222 =11 Q_Q.AND.#,#/001774 ;KEEP ONLY HI BYTES ;;5223 = ;;5224 AD/A.OR.Q,A/T1,DEST/AD, ;MERGE PAIRS OF BYTES. NOW SWAPPED, ;;5225 B/T1 ;BUT STILL IN HALF-WORDS ;;5226 AD/57,RSRC/0A,A/T1, ;CLEAR LH OF Q WHILE LOADING ;;5227 DEST/Q_AD ;RH WITH LOW WORD ;;5228 Q_Q*2 ;SHIFT LOW WORD ACROSS 1/2 WORD ;;5229 Q_Q*2 ;AND INTO FINAL POSITION ;;5230 [T1]_[T1].AND.# CLR RH, ;CLEAR ALL BUT HIGH 16-BIT WORD ;;5231 #/777774,J/BLTXV ;FROM T1 AND CONTINUE ;;5232 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 141 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 BLT ;;5233 BLTBU1: Q_Q*.5 ;NOW IN 1/2 WORDS ;;5234 Q_Q*.5,HOLD LEFT ;INSERT A NULL BIT IN RH ;;5235 Q_Q*.5,HOLD LEFT ;ONE MORE - NOW IN HALF WORDS ;;5236 AD/D.AND.Q,DBUS/DBM, ;BUT NOT SWAPPED. COPY RIGHT BYTE ;;5237 DBM/#,#/377,DEST/AD*2,B/T1 ;TO T1 AND SHIFT LEFT 1 POSITION ;;5238 =00 FE_S#,S#/1771, ;-7 BITS MORE ;;5239 CALL [T1LSH] ;TO FINAL RESTING PLACE ;;5240 =01 FE_S#,S#/1770, ;-8. LEFT BYTES MOVE RIGHT ;;5241 CALL [Q_RSH] ;TO FINAL RESTING PLACE ;;5242 =11 Q_Q.AND.#,#/377 ;WANT ONLY THE NEW BYTES ;;5243 = ;;5244 ;;5245 BLTXV: Q_[T1].OR.Q, ;MERGE RESULTS ;;5246 J/BLTXW ;AND STUFF IN MEMORY ;;5247 ;;5248 T1LSH: [T1]_[T1]*2,SHIFT,RETURN [1] ;;5249 Q_RSH: Q_Q*.5,SHIFT,RETURN [2] ;;5250 ;;5251 BLTXW: VMA_[BRX],START WRITE, ;DEST TO VMA ;;5252 PXCT BLT DEST ;;5253 MEM WRITE,MEM_Q ;STORE ;;5254 [BRX]-[AR],3T,SKIP DP0 ;DONE? ;;5255 =0 END BLT,J/DONE ;YES ;;5256 [BRX]_[BRX]+1 ;NO, INC DEST ;;5257 VMA_[ARX]+1,LOAD VMA, ; AND SOURCE (LOADING VMA) ;;5258 PXCT BLT SRC,START READ,;START UP MEMORY ;;5259 J/BLTXLP ;AND CONTINUE WITH NEXT WORD ; 5260 .ENDIF/UBABLT ; 5261 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 142 ; FLT.MIC[7,3] 01:46 20-MAR-1981 FLOATING POINT -- FAD, FSB ; 5262 .TOC "FLOATING POINT -- FAD, FSB" ; 5263 ; 5264 .DCODE D 0140, 0701,1577,1100 ; 5265 140: FL-R, FL-AC, J/FAD D 0142, 0702,1577,1700 ; 5266 142: FL-RW, FL-MEM, J/FAD D 0143, 0703,1577,1700 ; 5267 FL-RW, FL-BOTH, J/FAD D 0144, 0711,1577,1100 ; 5268 FL-R, FL-AC, ROUND, J/FAD D 0145, 0611,1577,0100 ; 5269 FL-I, FL-AC, ROUND, J/FAD D 0146, 0712,1577,1700 ; 5270 FL-RW, FL-MEM, ROUND, J/FAD D 0147, 0713,1577,1700 ; 5271 FL-RW, FL-BOTH, ROUND, J/FAD ; 5272 D 0150, 0701,1576,1100 ; 5273 150: FL-R, FL-AC, J/FSB D 0152, 0702,1576,1700 ; 5274 152: FL-RW, FL-MEM, J/FSB D 0153, 0703,1576,1700 ; 5275 FL-RW, FL-BOTH, J/FSB D 0154, 0711,1576,1100 ; 5276 FL-R, FL-AC, ROUND, J/FSB D 0155, 0611,1576,0100 ; 5277 FL-I, FL-AC, ROUND, J/FSB D 0156, 0712,1576,1700 ; 5278 FL-RW, FL-MEM, ROUND, J/FSB D 0157, 0713,1576,1700 ; 5279 FL-RW, FL-BOTH, ROUND, J/FSB ; 5280 .UCODE ; 5281 ; 5282 ;BOTH FAD & FSB ARE ENTERED WITH THE MEMORY OPERAND IN AR ; 5283 ; SIGN SMEARED. THE EXPONENT IN BOTH SC AND FE. ; 5284 1576: U 1576, 1577,2441,0303,4174,4007,0700,4000,0000,0000 ; 5285 FSB: [AR]_-[AR] ;MAKE MEMOP NEGATIVE ; 5286 ; 5287 1577: U 1577, 0670,3771,0005,0276,6006,7701,2000,0020,2000 ; 5288 FAD: [BR]_AC, SC_SC-EXP-1, 3T, SCAD DISP ; 5289 =0* U 0670, 1334,3333,0005,4174,4007,0520,0000,0000,0000 ; 5290 FAS1: READ [BR], SKIP DP0, J/FAS2 ;BR .LE. AR U 0672, 3172,3441,0304,4174,4007,0700,0000,0000,0000 ; 5291 [ARX]_[AR] ;SWAP AR AND BR U 3172, 3173,3441,0503,4174,4007,0700,2000,0041,2000 ; 5292 [AR]_[BR], SC_EXP U 3173, 3174,3441,0405,4174,4007,0700,2000,0020,0000 ; 5293 [BR]_[ARX], SC_SC-FE-1 ;NUMBER OF SHIFT STEPS U 3174, 1332,3333,0003,4174,4007,0520,1000,0041,2000 ; 5294 READ [AR], FE_EXP, 2T, SKIP DP0 U 1332, 3175,4551,0303,4374,0007,0700,0000,0000,0777 ; 5295 =0 [AR]_+SIGN, J/FAS3 U 1333, 3175,3551,0303,4374,0007,0700,0000,0077,7000 ; 5296 [AR]_-SIGN, J/FAS3 ; 5297 ; 5298 =0 ;SIGN SMEAR BR AND UNNORMALIZE U 1334, 3175,4551,0505,4374,0007,0700,0000,0000,0777 ; 5299 FAS2: [BR]_+SIGN, J/FAS3 U 1335, 3175,3551,0505,4374,0007,0700,0000,0077,7000 ; 5300 [BR]_-SIGN, J/FAS3 ; 5301 U 3175, 1336,4222,0000,4174,4007,0630,2000,0060,0000 ; 5302 FAS3: Q_0, STEP SC ; 5303 =0 U 1336, 1336,3446,0505,4174,4047,0630,2000,0060,0000 ; 5304 FAS4: [BR]_[BR]*.5 LONG, STEP SC, ASHC, J/FAS4 U 1337, 0420,0111,0503,4174,4003,4701,0000,0000,0000 ; 5305 [AR]_[AR]+[BR], NORM DISP, J/SNORM ; 5306 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 143 ; FLT.MIC[7,3] 01:46 20-MAR-1981 FLAOTING POINT -- FMP ; 5307 .TOC "FLAOTING POINT -- FMP" ; 5308 ; 5309 .DCODE D 0160, 0701,1570,1100 ; 5310 160: FL-R, FL-AC, J/FMP D 0162, 0702,1570,1700 ; 5311 162: FL-RW, FL-MEM, J/FMP D 0163, 0703,1570,1700 ; 5312 FL-RW, FL-BOTH, J/FMP ; 5313 D 0164, 0711,1570,1100 ; 5314 FL-R, FL-AC, ROUND, J/FMP D 0165, 0611,1570,0100 ; 5315 FL-I, FL-AC, ROUND, J/FMP D 0166, 0712,1570,1700 ; 5316 FL-RW, FL-MEM, ROUND, J/FMP D 0167, 0713,1570,1700 ; 5317 FL-RW, FL-BOTH, ROUND, J/FMP ; 5318 .UCODE ; 5319 ; 5320 1570: ; 5321 FMP: [BRX]_AC, ;GET AC ; 5322 FE_SC+EXP, 3T, ;EXPONENT OF ANSWER U 1570, 1340,3771,0006,0276,6007,0521,1000,0040,2000 ; 5323 SKIP DP0 ;GET READY TO SMEAR SIGN U 1340, 3176,4551,0606,4374,0007,0700,0000,0000,0777 ; 5324 =0 [BRX]_+SIGN, J/FMP1 ;POSITIVE U 1341, 3176,3551,0606,4374,0007,0700,0000,0077,7000 ; 5325 [BRX]_-SIGN, J/FMP1 ;NEGATIVE U 3176, 0163,3442,0300,4174,4007,0700,2000,0071,0033 ; 5326 FMP1: Q_[AR], SC_27. ;GET MEMORY OPERAND ; 5327 =01* [BRX]_[BRX]*.5 LONG, ;SHIFT RIGHT U 0163, 3000,3446,0606,4174,4007,0700,0010,0000,0000 ; 5328 CALL [MULSUB] ;MULTIPLY ; 5329 Q_Q.AND.#, #/777000, ;WE ONLY COMPUTED U 0167, 3177,4662,0000,4370,4007,0700,0000,0077,7000 ; 5330 HOLD LEFT ; 27 BITS U 3177, 3200,3441,0403,4174,4007,0700,1000,0041,0002 ; 5331 [AR]_[ARX], FE_FE+2 ;SET SHIFT PATHS ; 5332 [AR]_[AR]*.5 LONG, ;SHIFT OVER ; 5333 FE_FE-200, ;ADJUST EXPONENT U 3200, 0420,3446,0303,4174,4003,4701,1000,0041,1600 ; 5334 NORM DISP, J/SNORM ;NORMALIZE & EXIT ; 5335 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 144 ; FLT.MIC[7,3] 01:46 20-MAR-1981 FLOATING POINT -- FDV ; 5336 .TOC "FLOATING POINT -- FDV" ; 5337 ; 5338 .DCODE D 0170, 0701,1574,1100 ; 5339 170: FL-R, FL-AC, J/FDV D 0172, 0702,1574,1700 ; 5340 172: FL-RW, FL-MEM, J/FDV D 0173, 0703,1574,1700 ; 5341 FL-RW, FL-BOTH, J/FDV ; 5342 D 0174, 0711,1574,1100 ; 5343 FL-R, FL-AC, ROUND, J/FDV D 0175, 0611,1574,0100 ; 5344 FL-I, FL-AC, ROUND, J/FDV D 0176, 0712,1574,1700 ; 5345 FL-RW, FL-MEM, ROUND, J/FDV D 0177, 0713,1574,1700 ; 5346 FL-RW, FL-BOTH, ROUND, J/FDV ; 5347 .UCODE ; 5348 ; 5349 ; 5350 1574: U 1574, 1342,3441,0305,0174,4007,0621,0000,0000,0000 ; 5351 FDV: [BR]_[AR], SKIP AD.EQ.0, AC ;COPY DIVSOR SEE IF 0 ; 5352 =0 ; 5353 [AR]_AC, FE_SC-EXP, SKIP DP0, ;GET AC & COMPUTE NEW U 1342, 1344,3771,0003,0276,6007,0520,1000,0030,2000 ; 5354 J/FDV0 ; EXPONENT U 1343, 0555,4443,0000,4174,4467,0700,0000,0071,1000 ; 5355 FL NO DIVIDE ;DIVIDE BY ZERO ; 5356 =0 U 1344, 3201,4551,0303,4374,0007,0700,0000,0000,0777 ; 5357 FDV0: [AR]_+SIGN, J/FDV1 U 1345, 3202,3551,0303,4374,0007,0700,0000,0077,7000 ; 5358 [AR]_-SIGN, J/FDV2 U 3201, 3203,3441,0304,4174,4007,0700,1000,0031,0200 ; 5359 FDV1: [ARX]_[AR],FE_-FE+200,J/FDV3 ;COMPUTE 2*DVND U 3202, 3203,2441,0304,4174,4007,0700,5000,0031,0200 ; 5360 FDV2: [ARX]_-[AR],FE_-FE+200,J/FDV3 ;ABSOLUTE VALUE U 3203, 1346,3445,0506,4174,4007,0520,0000,0000,0000 ; 5361 FDV3: [BRX]_[BR]*2, SKIP DP0 ;ABSOLUTE VALUE ; 5362 =0 U 1346, 1350,2113,0406,4174,4007,0311,4000,0000,0000 ; 5363 FDV4: [ARX]-[BRX], SKIP CRY0, 3T, J/FDV5 ;FLOATING NO DIV? U 1347, 1346,2445,0506,4174,4007,0700,4000,0000,0000 ; 5364 [BRX]_-[BR]*2, J/FDV4 ;FORCE ABSOLUTE VALUE ; 5365 =0 U 1350, 1352,3447,0606,4174,4007,0700,0000,0000,0000 ; 5366 FDV5: [BRX]_[BRX]*.5, J/FDV6 ;SHIFT BACK ARX U 1351, 0555,4443,0000,4174,4467,0700,0000,0071,1000 ; 5367 FL NO DIVIDE ;UNNORMALIZED INPUT ; 5368 =0 ; 5369 FDV6: [AR]_[AR]*2, ;DO NOT DROP A BIT U 1352, 3665,3445,0303,4174,4007,0700,0010,0000,0000 ; 5370 CALL [SBRL] ;AT FDV7+1 U 1353, 0144,2113,0604,4174,4007,0421,4000,0000,0000 ; 5371 [BRX]-[ARX], SKIP AD.LE.0 ;IS ANSWER .LE. 1? ; 5372 =00100 U 0144, 3043,4222,0000,4174,4007,0700,2010,0071,0033 ; 5373 FDV7: Q_0, SC_27., CALL [DIVSGN] ;DIVIDE U 0145, 0144,3447,0303,4174,4007,0700,1000,0041,0001 ; 5374 =00101 [AR]_[AR]*.5, FE_FE+1, J/FDV7 ;SCALE DV'END ; 5375 =01100 U 0154, 3204,3227,0003,4174,4007,0700,0000,0000,0000 ; 5376 FDV8: [AR]_Q*.5, J/FDV9 ;PUT ANSWER IN AR ; 5377 =01101 READ [AR], SKIP AD.EQ.0, ;-VE ANSWER, LOOK AT RMDR U 0155, 2054,3333,0003,4174,4007,0621,0010,0000,0000 ; 5378 CALL [SETSN] ; SEE HOW TO NEGATE ; 5379 =01110 READ [AR], SKIP AD.EQ.0, ;-VE ANSWER, LOOK AT RMDR U 0156, 2054,3333,0003,4174,4007,0621,0010,0000,0000 ; 5380 CALL [SETSN] ; SEE HOW TO NEGATE U 0157, 3204,3227,0003,4174,4007,0700,0000,0000,0000 ; 5381 =01111 [AR]_Q*.5, J/FDV9 ;PUT ANSWER IN AR U 0177, 3204,2227,0003,4174,4007,0700,4000,0000,0000 ; 5382 =11111 [AR]_-Q*.5, J/FDV9 ;ZERO RMDR ; 5383 U 3204, 1363,4222,0000,4174,4007,0700,0000,0000,0000 ; 5384 FDV9: Q_0, J/SNORM0 ;GO NORMALIZE ; 5385 ; KS10.MCR[7,3] 15:03 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 -- FLTR, FSC ; 5386 .TOC "FLOATING POINT -- FLTR, FSC" ; 5387 ; 5388 .DCODE D 0127, 0011,1616,1100 ; 5389 127: R, FL-AC,ROUND, J/FLTR D 0132, 0001,1621,2100 ; 5390 132: I, FL-AC, J/FSC ; 5391 .UCODE ; 5392 ; 5393 1616: U 1616, 1354,4553,0300,4374,4007,0321,0000,0077,7000 ; 5394 FLTR: [AR].AND.#, #/777000, 3T, SKIP ADL.EQ.0 ;SMALL POS NUMBER? U 1354, 1356,2441,0305,4174,4007,0521,4000,0000,0000 ; 5395 =0 [BR]_-[AR], SKIP DP0, 3T, J/FLTR1 ;NO--SEE IF MINUS U 1355, 1363,4222,0000,4174,4007,0700,1000,0071,0233 ; 5396 Q_0, FE_S#, S#/233, J/SNORM0 ;FITS IN 27 BITS ; 5397 =0 ; 5398 FLTR1: [BR].AND.#, #/777000, 3T, U 1356, 1360,4553,0500,4374,4007,0321,0000,0077,7000 ; 5399 SKIP ADL.EQ.0, J/FLTR1A ;SMALL NEGATIVE NUMBER U 1357, 3205,4222,0000,4174,4007,0700,1000,0071,0244 ; 5400 Q_0, FE_S#, S#/244, J/FLTR2 ;LARGE POS NUMBER ; 5401 =0 U 1360, 3205,4222,0000,4174,4007,0700,1000,0071,0244 ; 5402 FLTR1A: Q_0, FE_S#, S#/244, J/FLTR2 ;BIG NUMBER U 1361, 1363,4222,0000,4174,4007,0700,1000,0071,0233 ; 5403 Q_0, FE_S#, S#/233, J/SNORM0 ;FITS IN 27 BITS ; 5404 ;AT THIS POINT WE KNOW THE NUMBER TAKES MORE THAN 27 BITS. WE JUST ; 5405 ; SHIFT 8 PLACES RIGHT AND NORMALIZE. WE COULD BE MORE CLEVER BUT ; 5406 ; THIS IS THE RARE CASE ANYWAY. U 3205, 1362,3446,0303,4174,4047,0700,2000,0071,0006 ; 5407 FLTR2: [AR]_[AR]*.5 LONG, ASHC, SC_6 ;SHOVE OVER TO THE RIGHT ; 5408 =0 ; 5409 FLTR3: [AR]_[AR]*.5 LONG, ASHC, ;SHIFT RIGHT 9 PLACES U 1362, 1362,3446,0303,4174,4047,0630,2000,0060,0000 ; 5410 STEP SC, J/FLTR3 ; SO IT WILL FIT U 1363, 0420,3333,0003,4174,4003,4701,0000,0000,0000 ; 5411 SNORM0: READ [AR], NORM DISP, J/SNORM ;NORMALIZE ANSWER ; 5412 ; 5413 ; 5414 1621: U 1621, 3206,3333,0003,4174,4007,0700,2000,0041,4000 ; 5415 FSC: READ [AR], SC_SHIFT U 3206, 3207,4222,0000,0174,4007,0700,0000,0000,0000 ; 5416 Q_0, AC ;DON'T SHIFT IN JUNK U 3207, 1364,3771,0003,0276,6007,0520,1000,0040,2000 ; 5417 [AR]_AC, FE_SC+EXP, SKIP DP0 ;SIGN SMEAR U 1364, 1363,4551,0303,4374,0007,0700,0000,0000,0777 ; 5418 =0 [AR]_+SIGN, J/SNORM0 U 1365, 1363,3551,0303,4374,0007,0700,0000,0077,7000 ; 5419 [AR]_-SIGN, J/SNORM0 ; 5420 ; KS10.MCR[7,3] 15:03 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 -- FIX AND FIXR ; 5421 .TOC "FLOATING POINT -- FIX AND FIXR" ; 5422 ; 5423 .DCODE D 0122, 0701,1626,1100 ; 5424 122: FL-R, FL-AC, J/FIX D 0126, 0711,1626,1100 ; 5425 126: FL-R, FL-AC,ROUND, J/FIX ; 5426 .UCODE ; 5427 ; 5428 1626: ; 5429 FIX: Q_0, SCAD/A+B, SCADA/S#, ;CLEAR Q, SEE IF ; 5430 S#/1534, SCADB/FE, 3T, ; ANSWER FITS IN U 1626, 0674,4222,0000,4174,4006,7701,0000,0041,1534 ; 5431 SCAD DISP ; 35 BITS. U 0674, 0555,4443,0000,4174,4467,0700,0000,0041,1000 ; 5432 =0* SET AROV, J/NIDISP ;TOO BIG U 0676, 0720,4443,0000,4174,4006,7701,2000,0041,1544 ; 5433 SC_FE+S#, S#/1544, 3T, SCAD DISP ;NEED TO MOVE LEFT? U 0720, 1370,4443,0000,4174,4007,0630,2000,0060,0000 ; 5434 =0* STEP SC, J/FIXL U 0722, 3210,4443,0000,4174,4007,0700,2000,0031,0232 ; 5435 SC_S#-FE, S#/232 ;NUMBER OF PLACES TO SHIFT ; 5436 ; RIGHT U 3210, 1366,4443,0000,4174,4007,0630,2000,0060,0000 ; 5437 STEP SC ;ALREADY THERE ; 5438 =0 ; 5439 FIXR: [AR]_[AR]*.5 LONG, ASHC, ;SHIFT BINARY POINT U 1366, 1366,3446,0303,4174,4047,0630,2000,0060,0000 ; 5440 STEP SC, J/FIXR ; TO BIT 35.5 U 1367, 0063,3447,0705,4174,4003,7700,0000,0000,0000 ; 5441 [BR]_[ONE]*.5, B DISP, J/FIXX ;WHICH KIND OF FIX? ; 5442 ; 5443 =0 U 1370, 1370,3445,0303,4174,4007,0630,2000,0060,0000 ; 5444 FIXL: [AR]_[AR]*2, STEP SC, J/FIXL ;SHIFT LEFT U 1371, 0100,3440,0303,0174,4156,4700,0400,0000,0000 ; 5445 AC_[AR], NEXT INST ;WE ARE NOW DONE ; 5446 ; 5447 =0*11 U 0063, 1372,3333,0003,4174,4007,0520,0000,0000,0000 ; 5448 FIXX: READ [AR], SKIP DP0, J/FIXT ;FIX--SEE IF MINUS U 0073, 1514,0111,0503,4174,4003,7700,0200,0003,0001 ; 5449 FIXX1: [AR]_[AR]+[BR], FL-EXIT ;FIXR--ROUND UP ; 5450 =0 U 1372, 0100,3440,0303,0174,4156,4700,0400,0000,0000 ; 5451 FIXT: AC_[AR], NEXT INST ;FIX & +, TRUNCATE U 1373, 1374,3223,0000,4174,4007,0621,0000,0000,0000 ; 5452 READ Q, SKIP AD.EQ.0 ;NEGATIVE--ANY FRACTION? U 1374, 1514,0111,0703,4174,4003,7700,0200,0003,0001 ; 5453 =0 [AR]_[AR]+1, FL-EXIT ;YES--ROUND UP ; 5454 [BR]_.NOT.[MASK], ;MAYBE--GENERATE .75 U 1375, 0073,7441,1205,4174,4007,0700,0000,0000,0000 ; 5455 J/FIXX1 ;ROUND UP IF BIT 36 OR ; 5456 ; 37 SET ; 5457 ; KS10.MCR[7,3] 15:03 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 -- SINGLE PRECISION NORMALIZE ; 5458 .TOC "FLOATING POINT -- SINGLE PRECISION NORMALIZE" ; 5459 ; 5460 ;NORMALIZE DISPATCH IS A 9-WAY DISPATCH. THE HARDWARE LOOKS AT ; 5461 ; 4 SIGNALS: DP=0, DP BIT 8, DP BIT 9, DP BIT -2. THE 9 CASES ; 5462 ; ARE: ; 5463 ; 5464 ; DP=0 DP08 DP09 DP00 ACTION TO TAKE ; 5465 ; 0 0 0 0 SHIFT LEFT ; 5466 ; ; 5467 ; 0 0 0 1 NEGATE AND RETRY ; 5468 ; ; 5469 ; 0 0 1 0 ALL DONE ; 5470 ; ; 5471 ; 0 0 1 1 NEGATE AND RETRY ; 5472 ; ; 5473 ; 0 1 0 0 SHIFT RIGHT ; 5474 ; ; 5475 ; 0 1 0 1 NEGATE AND RETRY ; 5476 ; ; 5477 ; 0 1 1 0 SHIFT RIGHT ; 5478 ; ; 5479 ; 0 1 1 1 NEGATE AND RETRY ; 5480 ; ; 5481 ; 1 - - - LOOK AT Q BITS ; 5482 ; 5483 ;ENTER HERE WITH UNNORMALIZED NUMBER IN AR!Q. FE HOLDS THE NEW ; 5484 ; EXPONENT. CALL WITH NORM DISP ; 5485 =0000 ;9-WAY DISPATCH U 0420, 0420,3444,0303,4174,4063,4701,1000,0041,1777 ; 5486 SNORM: [AR]_[AR]*2 LONG, DIV, FE_FE-1, NORM DISP, J/SNORM U 0421, 2000,2222,0000,4174,4007,0311,4000,0000,0000 ; 5487 Q_-Q, SKIP CRY0, 3T, J/SNNEG U 0422, 0262,3333,0003,4174,4003,4701,0010,0000,0000 ; 5488 READ [AR], NORM DISP, CALL [SROUND] U 0423, 2000,2222,0000,4174,4007,0311,4000,0000,0000 ; 5489 Q_-Q, SKIP CRY0, 3T, J/SNNEG U 0424, 0262,3447,0303,4174,4007,0700,1010,0041,0001 ; 5490 [AR]_[AR]*.5, FE_FE+1, CALL [SROUND] U 0425, 2000,2222,0000,4174,4007,0311,4000,0000,0000 ; 5491 Q_-Q, SKIP CRY0, 3T, J/SNNEG U 0426, 0262,3447,0303,4174,4007,0700,1010,0041,0001 ; 5492 [AR]_[AR]*.5, FE_FE+1, CALL [SROUND] U 0427, 2000,2222,0000,4174,4007,0311,4000,0000,0000 ; 5493 Q_-Q, SKIP CRY0, 3T, J/SNNEG U 0430, 1376,3223,0000,4174,4007,0621,0000,0000,0000 ; 5494 READ Q, SKIP AD.EQ.0, J/SNORM1 U 0436, 1377,3770,0303,4324,0457,0700,0000,0041,0000 ; 5495 =1110 [AR]_EXP, J/FLEX ; 5496 = ; 5497 =0 U 1376, 0420,3444,0303,4174,4063,4701,1000,0041,1777 ; 5498 SNORM1: [AR]_[AR]*2 LONG, DIV, FE_FE-1, NORM DISP, J/SNORM U 1377, 1514,4443,0000,4174,4003,7700,0200,0003,0001 ; 5499 FLEX: FL-EXIT ; 5500 ; KS10.MCR[7,3] 15:03 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 ; 5501 =0 U 2000, 0440,7441,0303,4174,4003,4701,0000,0000,0000 ; 5502 SNNEG: [AR]_.NOT.[AR], NORM DISP, J/SNNORM ;NEGATE HIGH WORD ; 5503 ; (NO CARRY) U 2001, 0440,2441,0303,4174,4003,4701,4000,0000,0000 ; 5504 [AR]_-[AR], NORM DISP, J/SNNORM ;NEGATE HIGH WORD (W/CARRY) ; 5505 =0000 U 0440, 0440,3444,0303,4174,4063,4701,1000,0041,1777 ; 5506 SNNORM: [AR]_[AR]*2 LONG, DIV, FE_FE-1, NORM DISP, J/SNNORM U 0442, 0262,3333,0003,4174,4003,4701,0010,0000,0000 ; 5507 =0010 READ [AR], NORM DISP, CALL [SROUND] U 0444, 0262,3447,0303,4174,4007,0700,1010,0041,0001 ; 5508 =0100 [AR]_[AR]*.5, FE_FE+1, CALL [SROUND] U 0446, 0262,3447,0303,4174,4007,0700,1010,0041,0001 ; 5509 =0110 [AR]_[AR]*.5, FE_FE+1, CALL [SROUND] U 0450, 0440,3444,0303,4174,4063,4701,1000,0041,1777 ; 5510 =1000 [AR]_[AR]*2 LONG, DIV, FE_FE-1, NORM DISP, J/SNNORM U 0456, 0327,3770,0303,4324,0453,7700,0000,0041,0000 ; 5511 =1110 [AR]_EXP, B DISP ; 5512 = U 0327, 2002,4553,1300,4374,4007,0321,0000,0000,2000 ; 5513 =0111 TL [FLG], FLG.SN/1, J/SNNOT ; 5514 [AR]_[AR].AND.[MASK], ;CLEAR ANY LEFT OVER BITS U 0337, 2005,4111,1203,4174,4007,0700,0000,0000,0000 ; 5515 J/SNNOT1 ; 5516 =0 U 2002, 3211,7441,0303,4174,4007,0700,0000,0000,0000 ; 5517 SNNOT: [AR]_.NOT.[AR], J/SNNOT2 U 2003, 2004,3223,0000,4174,4007,0621,0000,0000,0000 ; 5518 READ Q, SKIP AD.EQ.0 U 2004, 3211,7441,0303,4174,4007,0700,0000,0000,0000 ; 5519 =0 [AR]_.NOT.[AR], J/SNNOT2 U 2005, 3211,2441,0303,4174,4007,0700,4000,0000,0000 ; 5520 SNNOT1: [AR]_-[AR], J/SNNOT2 ;NORMAL NEGATE AND EXIT U 3211, 1514,4221,0013,4174,4003,7700,0200,0003,0001 ; 5521 SNNOT2: [FLG]_0, FL-EXIT ; 5522 ; 5523 ; 5524 ; 5525 .TOC "FLOATING POINT -- ROUND ANSWER" ; 5526 ; 5527 =*01* U 0262, 0407,3447,0705,4174,4003,7700,0000,0000,0000 ; 5528 SROUND: [BR]_[ONE]*.5, B DISP, J/SRND1 U 0266, 0262,3447,0303,4174,4007,0700,1000,0041,0001 ; 5529 [AR]_[AR]*.5, FE_FE+1, J/SROUND ;WE WENT TOO FAR ; 5530 =0111 U 0407, 0016,4443,0000,4174,4004,1700,0000,0000,0000 ; 5531 SRND1: RETURN [16] ;NOT ROUNDING INSTRUCTION U 0417, 0302,0111,0503,4174,4003,4701,0000,0000,0000 ; 5532 [AR]_[AR]+[BR], NORM DISP U 0302, 0016,4443,0000,4174,4004,1700,0000,0000,0000 ; 5533 =*01* RETURN [16] U 0306, 0016,3447,0303,4174,4004,1700,1000,0041,0001 ; 5534 [AR]_[AR]*.5, FE_FE+1, RETURN [16] ; 5535 ; KS10.MCR[7,3] 15:03 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 -- DFAD, DFSB ; 5536 .TOC "FLOATING POINT -- DFAD, DFSB" ; 5537 ; 5538 .DCODE D 0110, 1100,1637,1100 ; 5539 110: DBL FL-R, J/DFAD D 0111, 1100,1635,1100 ; 5540 111: DBL FL-R, J/DFSB ; 5541 .UCODE ; 5542 ; 5543 ;ENTER FROM A-READ CODE WITH: ; 5544 ;FE/ EXP ; 5545 ;SC/ EXP ; 5546 ;AR/ C(E) SHIFT RIGHT 2 PLACES ; 5547 ;ARX/ C(E+1) SHIFTED RIGHT 1 PLACE ; 5548 1635: U 1635, 3212,2441,0404,4174,4007,0700,4000,0000,0000 ; 5549 DFSB: [ARX]_-[ARX] ;NEGATE LOW WORD U 3212, 1637,2441,0303,4174,4007,0700,0040,0000,0000 ; 5550 [AR]_-[AR]-.25, MULTI PREC/1 ; 5551 1637: U 1637, 3213,4557,0006,1274,4007,0701,0000,0000,1441 ; 5552 DFAD: [BRX]_(AC[1].AND.[MAG])*.5, 3T ;GET LOW WORD ; 5553 [BR]_AC*.5, 3T, ;GET AC AND START TO SHIFT ; 5554 SC_SC-EXP-1, ;NUMBER OF PLACES TO SHIFT U 3213, 2006,3777,0005,0274,4007,0521,2000,0020,2000 ; 5555 SKIP DP0 ;SEE WHAT SIGN ; 5556 =0 [BR]_+SIGN*.5, 3T, ;SIGN SMEAR U 2006, 2010,5547,0505,0374,4007,0631,0000,0077,7400 ; 5557 AC, SKIP/SC, J/DFAS1 ;SEE WHICH IS BIGGER ; 5558 [BR]_-SIGN*.5, 3T, ;SIGN SMEAR U 2007, 2010,3547,0505,0374,4007,0631,0000,0077,7400 ; 5559 AC, SKIP/SC, J/DFAS1 ;SEE WHICH IS BIGGER ; 5560 =0 ; 5561 DFAS1: Q_[BRX], ;AR IS BIGGER U 2010, 2012,3442,0600,4174,4007,0700,0000,0000,0000 ; 5562 J/DFAS2 ;ADJUST BR!Q ; 5563 [T0]_AC, ;BR IS BIGGER OR EQUAL U 2011, 3215,3771,0016,0276,6007,0700,2000,0041,2000 ; 5564 SC_EXP, 2T, J/DFAS3 ;SET SC TO THAT EXPONENT ; 5565 ; KS10.MCR[7,3] 15:03 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 ; 5566 ;HERE IF AR!ARX IS GREATER THAN BR!BRX ; 5567 =0 U 2012, 0153,3441,0516,4174,4007,0700,0010,0000,0000 ; 5568 DFAS2: [T0]_[BR], CALL [DFADJ] ;ADJUST BR!Q U 2013, 3214,3441,1605,4174,4007,0700,0000,0000,0000 ; 5569 [BR]_[T0] ;PUT ANSWER BACK U 3214, 3220,0002,0400,4174,4007,0700,0000,0000,0000 ; 5570 Q_Q+[ARX], J/DFAS5 ;ADD LOW WORDS ; 5571 ; 5572 ;HERE IS BR!BRX IF GREATER THAN OR EQUAL TO AR!ARX ; 5573 DFAS3: Q_[ARX], ;SETUP TO SHIFT AR!ARX U 3215, 3216,3442,0400,4174,4007,0700,2000,0020,0000 ; 5574 SC_SC-FE-1 ;COMPUTE # OF PLACES U 3216, 2014,3333,0016,4174,4007,0700,1000,0041,2000 ; 5575 READ [T0], FE_EXP ;EXPONENT OF ANSWER U 2014, 0153,3441,0316,4174,4007,0700,0010,0000,0000 ; 5576 =0 [T0]_[AR], CALL [DFADJ] ;ADJUST AR!Q U 2015, 3217,3441,1603,4174,4007,0700,0000,0000,0000 ; 5577 [AR]_[T0] ;PUT ANSWER BACK U 3217, 3220,0002,0600,4174,4007,0700,0000,0000,0000 ; 5578 Q_Q+[BRX], J/DFAS5 ;ADD LOW WORDS ; 5579 ; 5580 ;BIT DIDDLE TO GET THE ANSWER (INCLUDING 2 GUARD BITS) INTO ; 5581 ; AR!Q ; 5582 DFAS5: [AR]_([AR]+[BR])*.5 LONG, ;ADD HIGH WORDS U 3220, 3221,0116,0503,4174,4047,0700,0040,0000,0000 ; 5583 MULTI PREC/1, ASHC ;INJECT SAVED CRY2 ; 5584 [AR]_[AR]*2 LONG, ;SHIFT BACK LEFT U 3221, 0433,3444,0303,4174,4046,2700,0000,0000,0000 ; 5585 ASHC, MUL DISP ;SEE IF WE LOST A 1 ; 5586 =1011 U 0433, 3222,5111,1217,4174,4007,0700,0000,0000,0000 ; 5587 DFAS6: [T1]_[T1].AND.NOT.[MASK], J/DFAS7 U 0437, 0433,0222,0000,4174,4007,0700,4000,0000,0000 ; 5588 Q_Q+.25, J/DFAS6 ; 5589 DFAS7: [AR]_[AR]*2 LONG, ASHC, ;PUT IN GUARD BITS U 3222, 3223,3444,0303,4174,4047,0700,1000,0041,1777 ; 5590 FE_FE-1 ; 5591 [AR]_[AR]*2 LONG, ASHC, U 3223, 3224,3444,0303,4174,4047,0700,1000,0041,1777 ; 5592 FE_FE-1 U 3224, 2027,3002,1700,4170,4007,0700,0000,0000,0000 ; 5593 Q_[T1].OR.Q, HOLD LEFT, J/DNORM0 ; 5594 ; KS10.MCR[7,3] 15:03 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 ; 5595 ;SUBROUTINE TO ADJUST NUMBER IN T0!Q ; 5596 ;RETURNS 1 WITH ; 5597 ; T0!Q ADJUSTED ; 5598 ; FLG.SN=1 IF WE SHIFTED OUT ANY 1 BITS (STICKY BIT) ; 5599 ; T1 HAS Q TWO STEPS PRIOR TO BEING DONE ; 5600 DFADJ "STEP SC, ASHC, MUL DISP" ; 5601 ; 5602 =0**11 ; 5603 DFADJ: [T0]_[T0]*2 LONG, DIV, ;MOVE EVERYTHING 2 PLACES U 0153, 2055,3444,1616,4174,4067,0700,0010,0000,0000 ; 5604 CALL [CLRSN] U 0173, 3225,3444,1616,4174,4067,0700,0000,0000,0000 ; 5605 [T0]_[T0]*2 LONG, DIV U 3225, 3226,3444,1616,4174,4067,0700,0000,0000,0000 ; 5606 [T0]_[T0]*2 LONG, DIV ; 5607 [T0]_[T0]*.5 LONG, ASHC, ;SHIFT AT LEAST 1 PLACE U 3226, 0472,3446,1616,4174,4047,0630,2000,0060,0000 ; 5608 STEP SC ; 5609 =1010 ; 5610 DFADJ1: [T0]_[T0]*.5 LONG, ;UNNORMALIZE T0!Q U 0472, 0472,3446,1616,4174,4046,2630,2000,0060,0000 ; 5611 DFADJ, J/DFADJ1 ;LOOP TILL DONE ; 5612 DFADJ2: [T1]_Q, ;SAVE GUARD BITS U 0473, 0453,3221,0017,4174,4006,2700,0000,0000,0000 ; 5613 MUL DISP, J/DFADJ5 ;LOOK AT LAST BIT U 0476, 2016,3551,1313,4374,0007,0700,0000,0000,2000 ; 5614 [FLG]_[FLG].OR.#, FLG.SN/1, HOLD RIGHT, J/DFADJ3 U 0477, 2017,3551,1313,4374,0007,0700,0000,0000,2000 ; 5615 [FLG]_[FLG].OR.#, FLG.SN/1, HOLD RIGHT, J/DFADJ4 ; 5616 ; 5617 =0 U 2016, 2016,3446,1616,4174,4047,0630,2000,0060,0000 ; 5618 DFADJ3: [T0]_[T0]*.5 LONG, ASHC, STEP SC, J/DFADJ3 U 2017, 0453,3221,0017,4174,4007,0700,0000,0000,0000 ; 5619 DFADJ4: [T1]_Q ;SAVE 2 GUARD BITS ; 5620 =1011 U 0453, 3227,3446,1616,4174,4047,0700,0000,0000,0000 ; 5621 DFADJ5: [T0]_[T0]*.5 LONG, ASHC, J/DFADJ6 U 0457, 0453,3551,1313,4374,0007,0700,0000,0000,2000 ; 5622 [FLG]_[FLG].OR.#, FLG.SN/1, HOLD RIGHT, J/DFADJ5 U 3227, 0001,3446,1616,4174,4044,1700,0000,0000,0000 ; 5623 DFADJ6: [T0]_[T0]*.5 LONG, ASHC, RETURN [1] ; 5624 ; KS10.MCR[7,3] 15:03 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 -- DFMP ; 5625 .TOC "FLOATING POINT -- DFMP" ; 5626 ; 5627 .DCODE D 0112, 1105,1631,1100 ; 5628 112: DBL FL-R, DAC, J/DFMP ; 5629 .UCODE ; 5630 ; 5631 ;SAME ENTRY CONDITIONS AS DFAD/DFSB ; 5632 1631: U 1631, 2020,3442,0400,4174,4007,0700,2000,0071,0006 ; 5633 DFMP: Q_[ARX], SC_6 ;SHIFT MEM OP 8 PLACES ; 5634 =0 ; 5635 DFMP1: [AR]_[AR]*2 LONG, ASHC, ;SHIFT U 2020, 2020,3444,0303,4174,4047,0630,2000,0060,0000 ; 5636 STEP SC, J/DFMP1 U 2021, 3230,3446,1200,4174,4007,0700,0000,0000,0000 ; 5637 Q_Q*.5 U 3230, 3231,4662,0000,4374,0007,0700,0000,0007,7777 ; 5638 Q_Q.AND.#, #/077777, HOLD RIGHT U 3231, 3232,3221,0005,4174,4007,0700,0000,0000,0000 ; 5639 [BR]_Q ;COPY LOW WORD ; 5640 ; ; 5641 ; BRX * BR ==> C(E+1) * C(AC+1) ; 5642 ; U 3232, 0623,4557,0006,1274,4007,0700,0000,0000,1441 ; 5643 [BRX]_(AC[1].AND.[MAG])*.5 ;GET LOW AC U 0623, 3001,3447,0606,4174,4007,0700,2010,0071,0043 ; 5644 =0** [BRX]_[BRX]*.5, SC_35., CALL [MULSB1] ; 5645 ; ; 5646 ; BRX * Q ==> C(E) * C(AC+1) ; 5647 ; U 0627, 0730,3442,0300,4174,4007,0700,2000,0071,0043 ; 5648 Q_[AR], SC_35. ;GO MULT NEXT HUNK U 0730, 3002,4443,0000,4174,4007,0700,0010,0000,0000 ; 5649 =0** CALL [MULTIPLY] U 0734, 3233,3441,0416,4174,4007,0700,0000,0000,0000 ; 5650 [T0]_[ARX] ;SAVE PRODUCT U 3233, 3234,3227,0004,4174,4007,0700,2000,0011,0000 ; 5651 [ARX]_Q*.5, SC_FE ;PUT IN NEXT STEP ; 5652 ; ; 5653 ; BRX * BR ==> C(AC) * C(E+1) ; 5654 ; ; 5655 [BRX]_AC*.5, ;PREPARE TO DO HIGH HALF ; 5656 FE_SC+EXP, ;EXPONENT ON ANSWER U 3234, 2022,3777,0006,0274,4007,0521,1000,0040,2000 ; 5657 SKIP DP0, 3T U 2022, 0732,5547,0606,4374,4007,0701,0000,0077,7400 ; 5658 =0 [BRX]_+SIGN*.5, 3T, J/DFMP2 U 2023, 0732,3547,0606,4374,4007,0701,0000,0077,7400 ; 5659 [BRX]_-SIGN*.5, 3T ; 5660 =0** U 0732, 3002,3442,0500,4174,4007,0700,2010,0071,0043 ; 5661 DFMP2: Q_[BR], SC_35., CALL [MULTIPLY] ;GO MULTIPLY U 0736, 3235,3221,0017,4174,4007,0700,0000,0000,0000 ; 5662 [T1]_Q ;SAVE FOR ROUNDING U 3235, 1012,0111,1604,4174,4007,0700,0000,0000,0000 ; 5663 [ARX]_[ARX]+[T0] ;PREPARE FOR LAST MUL ; 5664 ; ; 5665 ; BRX * Q ==> C(AC) * C(E) ; 5666 ; ; 5667 =0** Q_[AR], SC_35., ;DO THE LAST MULTIPLY U 1012, 3002,3442,0300,4174,4007,0700,2010,0071,0043 ; 5668 CALL [MULTIPLY] ; .. ; 5669 ; KS10.MCR[7,3] 15:03 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 ; 5670 ;OK, WE NOW HAVE THE PRODUCT IN ARX!Q!T1. ALL WE NEED TO DO ; 5671 ; IS SOME BIT DIDDLES TO GET EVERYTHING IN THE RIGHT PLACE ; 5672 [AR]_[ARX]*.5 LONG, ;SHIFT THE ANSWER U 1016, 0243,3446,0403,4174,4007,0700,1000,0041,1576 ; 5673 FE_FE+S#, S#/1576 ;CORRECT EXPONENT ; 5674 =0**11 READ [T1], SKIP AD.EQ.0, ;SEE IF LOW ORDER 1 U 0243, 2054,3333,0017,4174,4007,0621,0010,0000,0000 ; 5675 CALL [SETSN] ; BITS AROUND SOMEPLACE U 0263, 3236,3444,0303,4174,4047,0700,0000,0000,0000 ; 5676 [AR]_[AR]*2 LONG, ASHC ;SHIFT LEFT U 3236, 3237,3447,0705,4174,4007,0700,0000,0000,0000 ; 5677 [BR]_[ONE]*.5 ;PLACE TO INSTERT BITS U 3237, 2024,4553,1700,4374,4007,0321,0000,0020,0000 ; 5678 TL [T1], #/200000 ;ANYTHING TO INJECT? U 2024, 2025,0002,0500,4174,4007,0700,0000,0000,0000 ; 5679 =0 Q_Q+[BR] ;YES--PUT IT IN U 2025, 3240,3444,0303,4174,4047,0700,0000,0000,0000 ; 5680 [AR]_[AR]*2 LONG, ASHC ;MAKE ROOM FOR MORE U 3240, 2026,4553,1700,4374,4007,0321,0000,0010,0000 ; 5681 TL [T1], #/100000 ;ANOTHER BIT NEEDED U 2026, 2027,0002,0500,4174,4007,0700,0000,0000,0000 ; 5682 =0 Q_Q+[BR] ;YES--PUT IN LAST BIT ; 5683 DNORM0: READ [AR], NORM DISP, ;SEE WHAT WE NEED TO DO U 2027, 0520,3333,0003,4174,4003,4701,1000,0041,0002 ; 5684 FE_FE+S#, S#/2, J/DNORM ;ADJUST FOR INITIAL SHIFTS ; 5685 ; KS10.MCR[7,3] 15:03 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 -- DFDV ; 5686 .TOC "FLOATING POINT -- DFDV" ; 5687 ; 5688 .DCODE D 0113, 1105,1636,1100 ; 5689 113: DBL FL-R, DAC, J/DFDV ; 5690 .UCODE ; 5691 1636: U 1636, 0132,3441,0406,4174,4007,0700,0000,0000,0000 ; 5692 DFDV: [BRX]_[ARX] ;COPY OPERAND (COULD SAVE TIME ; 5693 ; WITH SEPERATE A-READ FOR DFDV) U 0132, 2055,4221,0017,4174,4007,0700,0010,0000,0000 ; 5694 =1**10 [T1]_0, CALL [CLRSN] ;CLEAR FLAG ; 5695 [BR]_[AR], SKIP AD.LE.0, ;SEE IF POSITIVE U 0133, 2030,3441,0305,1174,4007,0421,0000,0000,1441 ; 5696 AC[1] ;WARM UP RAM ; 5697 =0 ; 5698 DFDV1: [ARX]_(AC[1].AND.[MAG])*.5, ;POSITIVE--GET AC U 2030, 3243,4557,0004,1274,4007,0700,0000,0000,1441 ; 5699 J/DFDV2 ; AND CONTINUE BELOW U 2031, 3241,7441,1717,4174,4007,0700,0000,0000,0000 ; 5700 [T1]_.NOT.[T1] ;DV'SOR NEGATIVE (OR ZERO) U 3241, 3242,2441,0606,4174,4007,0700,4000,0000,0000 ; 5701 [BRX]_-[BRX] ;NEGATE LOW WORD ; 5702 AD/-B-.25, B/BR, DEST/AD, ;NEGATE HIGH WORD ; 5703 MULTI PREC/1, 3T, ;ADDING IN CRY02 ; 5704 SKIP DP0, AC[1], ;SEE IF STILL NEGATIVE U 3242, 2030,2331,0005,1174,4007,0521,0040,0000,1441 ; 5705 J/DFDV1 ; .. ; 5706 DFDV2: [AR]_AC*.5, ;GET AC AND SHIFT ; 5707 FE_SC-EXP, 3T, ;COMPUTE NEW EXPONENT U 3243, 2032,3777,0003,0274,4007,0521,1000,0030,2000 ; 5708 SKIP DP0 ;SEE IF NEGATIVE U 2032, 2034,5547,0303,4374,4007,0701,0000,0077,7400 ; 5709 =0 [AR]_+SIGN*.5, 3T, J/DFDV3 ;POSITIVE U 2033, 3244,7441,1717,4174,4007,0700,0000,0000,0000 ; 5710 [T1]_.NOT.[T1] ;NEGATIVE OR ZERO U 3244, 3245,3547,0303,4374,4007,0701,0000,0077,7400 ; 5711 [AR]_-SIGN*.5, 3T ;SIGN SMEAR U 3245, 3246,2442,0400,4174,4007,0700,4000,0000,0000 ; 5712 Q_-[ARX] ;NEGATE OPERAND ; 5713 [AR]_(-[AR]-.25)*.5 LONG, ;NEGATE HIGH WORD ; 5714 MULTI PREC/1, ;USE SAVED CARRY U 3246, 2035,2446,0303,4174,4047,0700,0040,0000,0000 ; 5715 ASHC, J/DFDV4 ;CONTINUE BELOW ; 5716 =0 ; 5717 DFDV3: Q_[ARX], ;COPY OPERAND U 2034, 3042,3442,0400,4174,4007,0700,0010,0000,0000 ; 5718 CALL [DDIVS] ;SHIFT OVER U 2035, 2036,2113,0305,4174,4007,0521,4000,0000,0000 ; 5719 DFDV4: [AR]-[BR], 3T, SKIP DP0 ;SEE IF OVERFLOW U 2036, 0555,4443,0000,4174,4467,0700,0000,0071,1000 ; 5720 =0 FL NO DIVIDE U 2037, 0724,3221,0004,4174,4007,0700,0000,0000,0000 ; 5721 [ARX]_Q ;START DIVISION U 0724, 1264,4222,0000,4174,4007,0700,2010,0071,0032 ; 5722 =0* Q_0, SC_26., CALL [DBLDIV] U 0726, 1054,3221,0016,4174,4007,0700,2000,0071,0043 ; 5723 [T0]_Q, SC_35. ; 5724 =0* Q_Q.AND.NOT.[MAG], ;SEE IF ODD ; 5725 SKIP AD.EQ.0, ;SKIP IF EVEN U 1054, 1264,5002,0000,4174,4007,0621,0010,0000,0000 ; 5726 CALL [DBLDIV] ;GO DIVIDE U 1056, 3247,3446,1200,4174,4007,0700,0000,0000,0000 ; 5727 Q_Q*.5 ;MOVE ANSWER OVER ; 5728 = ; 5729 [T0]_[T0]*2 LONG, ASHC, ;DO FIRST NORM STEP U 3247, 0513,3444,1616,4174,4046,2700,0000,0000,0000 ; 5730 MUL DISP ; SEE IF A 1 FELL OUT ; 5731 =1011 ; 5732 DFDV4A: READ [T1], SKIP DP0, ;SHOULD RESULT BE NEGATIVE ; 5733 FE_S#-FE, S#/202, ;CORRECT EXPONENT U 0513, 2040,3333,0017,4174,4007,0520,1000,0031,0202 ; 5734 J/DFDV4B ;LOOK BELOW U 0517, 0513,0222,0000,4174,4007,0700,4000,0000,0000 ; 5735 Q_Q+.25, J/DFDV4A ;PUT BACK THE BIT ; 5736 =0 U 2040, 0520,3441,1603,4174,4003,4701,0000,0000,0000 ; 5737 DFDV4B: [AR]_[T0], NORM DISP, J/DNORM ;PLUS U 2041, 0200,3441,1603,4174,4003,4701,0000,0000,0000 ; 5738 [AR]_[T0], NORM DISP, J/DNNORM ;MINUS ; 5739 ; KS10.MCR[7,3] 15:03 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 -- DOUBLE PRECISION NORMALIZE ; 5740 .TOC "FLOATING POINT -- DOUBLE PRECISION NORMALIZE" ; 5741 ; 5742 ;NORMALIZE AR!Q ; 5743 ;DNORM0: READ [AR], NORM DISP, ;SEE WHAT WE NEED TO DO ; 5744 ; FE_FE+S#, S#/2, J/DNORM ;ADJUST FOR INITIAL SHIFTS ; 5745 =0000 ; 5746 DNORM: [AR]_[AR]*2 LONG, ;SHIFT LEFT ; 5747 FE_FE-1, ASHC, ;ADJUST EXPONENT U 0520, 0520,3444,0303,4174,4043,4701,1000,0041,1777 ; 5748 NORM DISP, J/DNORM ;TRY AGAIN U 0521, 2044,4553,1300,4374,4007,0321,0000,0000,2000 ; 5749 TL [FLG], FLG.SN/1, J/DNEG ;RESULT IS NEGATIVE ; 5750 READ [AR], NORM DISP, ;SEE IF WE WENT TOO FAR U 0522, 0322,3333,0003,4174,4003,4701,0010,0000,0000 ; 5751 CALL [DROUND] ; AND ROUND ANSWER U 0523, 2044,4553,1300,4374,4007,0321,0000,0000,2000 ; 5752 TL [FLG], FLG.SN/1, J/DNEG ;RESULT IS NEGATIVE ; 5753 [AR]_[AR]*.5 LONG, ASHC, U 0524, 0322,3446,0303,4174,4047,0700,1010,0041,0001 ; 5754 FE_FE+1, CALL [DROUND] U 0525, 2044,4553,1300,4374,4007,0321,0000,0000,2000 ; 5755 TL [FLG], FLG.SN/1, J/DNEG ;RESULT IS NEGATIVE ; 5756 [AR]_[AR]*.5 LONG, ASHC, U 0526, 0322,3446,0303,4174,4047,0700,1010,0041,0001 ; 5757 FE_FE+1, CALL [DROUND] U 0527, 2044,4553,1300,4374,4007,0321,0000,0000,2000 ; 5758 TL [FLG], FLG.SN/1, J/DNEG ;RESULT IS NEGATIVE ; 5759 Q_[MAG].AND.Q, ;HIGH WORD IS ZERO U 0530, 3251,4002,0000,4174,0007,0700,0000,0000,0000 ; 5760 HOLD RIGHT, J/DNORM1 ;GO TEST LOW WORD U 0536, 3250,4221,0013,4174,4007,0700,0000,0000,0000 ; 5761 =1110 [FLG]_0 ;[122] CLEAR FLAG WORD ; 5762 = ; 5763 AC[1]_[ARX].AND.[MAG], ;STORE LOW WORD U 3250, 1515,4113,0400,1174,4007,0700,0400,0000,1441 ; 5764 J/STAC ;GO DO HIGH WORD ; 5765 ; 5766 U 3251, 2042,3223,0000,4174,4007,0621,0000,0000,0000 ; 5767 DNORM1: READ Q, SKIP AD.EQ.0 ;TEST LOW WORD ; 5768 =0 [AR]_[AR]*2 LONG, ;LOW WORD IS NON-ZERO ; 5769 FE_FE-1, ASHC, ;ADJUST EXPONENT U 2042, 0520,3444,0303,4174,4043,4701,1000,0041,1777 ; 5770 NORM DISP, J/DNORM ;KEEP LOOKING U 2043, 1515,3440,0303,1174,4007,0700,0400,0000,1441 ; 5771 AC[1]_[AR], J/STAC ;WHOLE ANSWER IS ZERO ; 5772 ; KS10.MCR[7,3] 15:03 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 ; 5773 ;HERE TO NORMALIZE NEGATIVE D.P. RESULTS ; 5774 =0 U 2044, 3252,7222,0000,4174,4007,0700,0000,0000,0000 ; 5775 DNEG: Q_.NOT.Q, J/DNEG1 ;ONES COMP U 2045, 2046,2222,0000,4174,4007,0511,4000,0000,0000 ; 5776 Q_-Q, SKIP CRY2, J/DNEG2 U 3252, 2046,4221,0013,4174,4007,0700,0000,0000,0000 ; 5777 DNEG1: [FLG]_0 ; 5778 =0 ; 5779 DNEG2: [AR]_.NOT.[AR], ;NO CARRY U 2046, 0200,7441,0303,4174,4003,4701,0000,0000,0000 ; 5780 NORM DISP, J/DNNORM ;GO NORMALIZE ; 5781 [AR]_-[AR], ;CARRY U 2047, 0200,2441,0303,4174,4003,4701,4000,0000,0000 ; 5782 NORM DISP, J/DNNORM ;NORMALIZE ; 5783 ; 5784 =000* ; 5785 DNNORM: [AR]_[AR]*2 LONG, ;SHIFT 1 PLACE ; 5786 FE_FE-1, ASHC, ;ADJUST EXPONENT U 0200, 0200,3444,0303,4174,4043,4701,1000,0041,1777 ; 5787 NORM DISP, J/DNNORM ;LOOP TILL DONE ; 5788 =001* READ [AR], NORM DISP, ;SEE IF WE WENT TOO FAR U 0202, 0322,3333,0003,4174,4003,4701,0010,0000,0000 ; 5789 CALL [DROUND] ; AND ROUND ANSWER ; 5790 =010* [AR]_[AR]*.5 LONG, ASHC, U 0204, 0322,3446,0303,4174,4047,0700,1010,0041,0001 ; 5791 FE_FE+1, CALL [DROUND] ; 5792 =011* [AR]_[AR]*.5 LONG, ASHC, U 0206, 0322,3446,0303,4174,4047,0700,1010,0041,0001 ; 5793 FE_FE+1, CALL [DROUND] ; 5794 =100* Q_[MAG].AND.Q, ;HIGH WORD IS ZERO U 0210, 3255,4002,0000,4174,0007,0700,0000,0000,0000 ; 5795 HOLD RIGHT, J/DNNRM1 ;GO TEST LOW WORD U 0216, 0610,4111,1204,4174,4007,0700,0000,0000,0000 ; 5796 =111* [ARX]_[ARX].AND.[MASK] ;REMOVE ROUNDING BIT ; 5797 = ; 5798 =00 [ARX]_[ARX].AND.[MAG], ;ALSO CLEAR SIGN U 0610, 3256,4111,0004,4174,4007,0700,0010,0000,0000 ; 5799 CALL [CHKSN] ;ONES COMP? ; 5800 =10 [ARX]_[ARX].XOR.[MAG], ;YES--ONES COMP U 0612, 3253,6111,0004,4174,4007,0700,0000,0000,0000 ; 5801 J/DNN1 ;CONTINUE BELOW ; 5802 =11 [ARX]_-[ARX], 3T, ;NEGATE RESULT U 0613, 2050,2441,0404,4174,4007,0561,4000,0000,0000 ; 5803 SKIP CRY1, J/DNN2 ; 5804 = U 3253, 2050,4221,0013,4174,4007,0700,0000,0000,0000 ; 5805 DNN1: [FLG]_0 ;CLEAR FLAG ; 5806 =0 U 2050, 3254,7333,0003,0174,4007,0700,0400,0000,0000 ; 5807 DNN2: AC_.NOT.[AR], J/DNORM2 U 2051, 3254,2443,0300,0174,4007,0701,4400,0000,0000 ; 5808 AC_-[AR], 3T ; 5809 DNORM2: AC[1]_[ARX].AND.[MAG], ;STORE LOW WORD U 3254, 0100,4113,0400,1174,4156,4700,0400,0000,1441 ; 5810 NEXT INST ;ALL DONE ; 5811 U 3255, 2052,3223,0000,4174,4007,0621,0000,0000,0000 ; 5812 DNNRM1: READ Q, SKIP AD.EQ.0 ;TEST LOW WORD ; 5813 =0 [AR]_[AR]*2 LONG, ;LOW WORD IS NON-ZERO ; 5814 FE_FE-1, ASHC, ;ADJUST EXPONENT U 2052, 0200,3444,0303,4174,4043,4701,1000,0041,1777 ; 5815 NORM DISP, J/DNNORM ;KEEP LOOKING U 2053, 1515,3440,0303,1174,4007,0700,0400,0000,1441 ; 5816 AC[1]_[AR], J/STAC ;WHOLE ANSWER IS ZERO ; 5817 ; KS10.MCR[7,3] 15:03 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 U 3256, 0002,4553,1300,4374,4004,1321,0000,0000,2000 ; 5818 CHKSN: TL [FLG], FLG.SN/1, RETURN [2] ; 5819 ; 5820 ;SUBROUTINE TO SET/CLEAR FLG.SN ; 5821 ;CALL WITH: ; 5822 ; CALL [SETSN], SKIP IF WE SHOULD CLEAR ; 5823 ;RETURNS 23 ; 5824 =0 U 2054, 0023,3551,1313,4374,0004,1700,0000,0000,2000 ; 5825 SETSN: [FLG]_[FLG].OR.#, FLG.SN/1, HOLD RIGHT, RETURN [23] U 2055, 0023,5551,1313,4374,0004,1700,0000,0000,2000 ; 5826 CLRSN: [FLG]_[FLG].AND.NOT.#, FLG.SN/1, HOLD RIGHT, RETURN [23] ; 5827 ; 5828 ; 5829 ;SUBROUTINE TO ROUND A FLOATING POINT NUMBER ; 5830 ;CALL WITH: ; 5831 ; NUMBER IN AR!Q AND NORM DISP ; 5832 ;RETURNS 16 WITH ROUNDED NUMBER IN AR!ARX ; 5833 ; ; 5834 =*01* ; 5835 DROUND: [ARX]_(Q+1)*.5, ;ROUND AND SHIFT ; 5836 SKIP CRY2, ;SEE IF OVERFLOW U 0322, 0462,0007,0704,4174,4007,0511,0000,0000,0000 ; 5837 J/DRND1 ;COMPLETE ROUNDING ; 5838 [AR]_[AR]*.5 LONG, ;WE WENT TOO FAR U 0326, 0322,3446,0303,4174,4047,0700,1000,0041,0001 ; 5839 FE_FE+1, ASHC, J/DROUND ;SHIFT BACK AND ROUND ; 5840 =*010 U 0462, 0016,3770,0303,4324,0454,1700,0000,0041,0000 ; 5841 DRND1: [AR]_EXP, RETURN [16] ;NO OVERFLOW ; 5842 =011 [AR]_[AR]+.25, ;ADD CARRY (BITS 36 AND 37 ; 5843 ; ARE COPIES OF Q BITS) ; 5844 NORM DISP, ;SEE IF OVERFLOW U 0463, 0462,0441,0303,4174,4003,4701,4000,0000,0000 ; 5845 J/DRND1 ; .. ; 5846 =110 [AR]_[AR]*.5, ;SHIFT RIGHT ; 5847 FE_FE+1, ;KEEP EXP RIGHT U 0466, 0462,3447,0303,4174,4007,0700,1000,0041,0001 ; 5848 J/DRND1 ;ALL SET NOW ; 5849 = ; 5850 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 158 ; EXTEND.MIC[7,3] 11:35 26-JULY-1984 EXTEND -- DISPATCH ROM ENTRIES ; 5851 .TOC "EXTEND -- DISPATCH ROM ENTRIES" ; 5852 ; 5853 .DCODE D 0001, 0001,1740,2100 ; 5854 001: I, SJCL, J/L-CMS D 0002, 0002,1740,2100 ; 5855 I, SJCE, J/L-CMS D 0003, 0003,1740,2100 ; 5856 I, SJCLE, J/L-CMS D 0004, 0002,1741,2100 ; 5857 I, B/2, J/L-EDIT D 0005, 0005,1740,2100 ; 5858 I, SJCGE, J/L-CMS D 0006, 0006,1740,2100 ; 5859 I, SJCN, J/L-CMS D 0007, 0007,1740,2100 ; 5860 I, SJCG, J/L-CMS ; 5861 D 0010, 0001,1742,2100 ; 5862 010: I, B/1, J/L-DBIN ;CVTDBO D 0011, 0004,1742,2100 ; 5863 I, B/4, J/L-DBIN ;CVTDBT D 0012, 0001,1743,2100 ; 5864 I, B/1, J/L-BDEC ;CVTBDO D 0013, 0000,1743,2100 ; 5865 I, B/0, J/L-BDEC ;CVTBDT ; 5866 D 0014, 0001,1744,2100 ; 5867 014: I, B/1, J/L-MVS ;MOVSO D 0015, 0000,1744,2100 ; 5868 I, B/0, J/L-MVS ;MOVST D 0016, 0002,1744,2100 ; 5869 I, B/2, J/L-MVS ;MOVSLJ D 0017, 0003,1744,2100 ; 5870 I, B/3, J/L-MVS ;MOVSRJ ; 5871 D 0020, 0000,1746,2100 ; 5872 020: I, J/L-XBLT ;XBLT D 0021, 0000,1747,2100 ; 5873 I, J/L-SPARE-A ;GSNGL D 0022, 0000,1750,2100 ; 5874 I, J/L-SPARE-B ;GDBLE D 0023, 0000,1751,2100 ; 5875 I, B/0, J/L-SPARE-C ;GDFIX D 0024, 0001,1751,2100 ; 5876 I, B/1, J/L-SPARE-C ;GFIX D 0025, 0002,1751,2100 ; 5877 I, B/2, J/L-SPARE-C ;GDFIXR D 0026, 0004,1751,2100 ; 5878 I, B/4, J/L-SPARE-C ;GFIXR D 0027, 0010,1751,2100 ; 5879 I, B/10, J/L-SPARE-C ;DGFLTR ; 5880 ;30: ;GFLTR ; 5881 ;GFSC ; 5882 .UCODE ; 5883 ; KS10.MCR[7,3] 15:03 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 ; 5884 1740: U 1740, 0400,4751,1203,4374,4007,0700,0000,0000,0040 ; 5885 L-CMS: LUUO ; 5886 1741: U 1741, 0400,4751,1203,4374,4007,0700,0000,0000,0040 ; 5887 L-EDIT: LUUO ; 5888 1742: U 1742, 0400,4751,1203,4374,4007,0700,0000,0000,0040 ; 5889 L-DBIN: LUUO ; 5890 1743: U 1743, 0400,4751,1203,4374,4007,0700,0000,0000,0040 ; 5891 L-BDEC: LUUO ; 5892 1744: U 1744, 0400,4751,1203,4374,4007,0700,0000,0000,0040 ; 5893 L-MVS: LUUO ; 5894 1746: U 1746, 0400,4751,1203,4374,4007,0700,0000,0000,0040 ; 5895 L-XBLT: LUUO ; 5896 1747: U 1747, 0400,4751,1203,4374,4007,0700,0000,0000,0040 ; 5897 L-SPARE-A: LUUO ; 5898 1750: U 1750, 0400,4751,1203,4374,4007,0700,0000,0000,0040 ; 5899 L-SPARE-B: LUUO ; 5900 1751: U 1751, 0400,4751,1203,4374,4007,0700,0000,0000,0040 ; 5901 L-SPARE-C: LUUO ; 5902 ; 5903 ;NOTE: WE DO NOT NEED TO RESERVE 3746 TO 3751 BECAUSE THE CODE ; 5904 ; AT EXTEND DOES A RANGE CHECK. ; 5905 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 160 ; EXTEND.MIC[7,3] 11:35 26-JULY-1984 EXTEND -- INSTRUCTION SET DECODING ; 5906 .TOC "EXTEND -- INSTRUCTION SET DECODING" ; 5907 ; 5908 ;EACH INSTRUCTION IN THE RANGE 1-23 GOES TO 1 OF 2 PLACES ; 5909 ; 1740-1747 IF NOT UNDER EXTEND ; 5910 ; 3740-3747 IF UNDER EXTEND ; 5911 ; 5912 .DCODE D 0123, 0000,1467,3100 ; 5913 123: I,READ/1, J/EXTEND ; 5914 .UCODE ; 5915 ; 5916 1467: U 1467, 1062,3771,0005,4365,5007,0700,0200,0000,0002 ; 5917 EXTEND: MEM READ, [BR]_MEM ;FETCH INSTRUCTION ; 5918 =0** TL [BR], #/760740, ;IN RANGE 0-17 (AND AC#=0) U 1062, 3556,4553,0500,4374,4007,0321,0010,0076,0740 ; 5919 CALL [BITCHK] ;TRAP IF NON-ZERO BITS FOUND ; 5920 [BRX]_[HR].AND.# CLR RH, ;SPLIT OUT AC NUMBER U 1066, 3257,4521,0206,4374,4007,0700,0000,0000,0740 ; 5921 #/000740 ; FROM EXTEND INSTRUCTION ; 5922 [BR]_[BR].OR.[BRX], ;LOAD IR AND AC # U 3257, 3260,3111,0605,4174,0417,0700,0000,0000,0000 ; 5923 HOLD RIGHT, LOAD IR ; .. ; 5924 READ [BR], LOAD BYTE EA, ;LOAD XR # U 3260, 3261,3333,0005,4174,4217,0700,0000,0000,0500 ; 5925 J/EXTEA0 ;COMPUTE E1 ; 5926 U 3261, 3262,3333,0003,7174,4007,0700,0400,0000,0240 ; 5927 EXTEA0: WORK[E0]_[AR] U 3262, 0170,4443,0000,2174,4006,6700,0000,0000,0000 ; 5928 EXTEA1: EA MODE DISP ; 5929 =100* U 0170, 0172,0551,0505,2270,4007,0700,0000,0000,0000 ; 5930 EXTEA: [BR]_[BR]+XR ; 5931 EXTDSP: [BR]_EA FROM [BR], LOAD VMA, U 0172, 0556,5741,0505,4174,4003,7700,0200,0000,0010 ; 5932 B DISP, J/EXTEXT U 0174, 3263,0551,0505,2270,4007,0700,0200,0004,0512 ; 5933 [BR]_[BR]+XR, START READ, PXCT EXTEND EA, LOAD VMA, J/EXTIND U 0176, 3263,3443,0500,4174,4007,0700,0200,0004,0512 ; 5934 VMA_[BR], START READ, PXCT EXTEND EA ; 5935 U 3263, 3262,3771,0005,4361,5217,0700,0200,0000,0502 ; 5936 EXTIND: MEM READ, [BR]_MEM, HOLD LEFT, LOAD BYTE EA, J/EXTEA1 ; 5937 ; 5938 ;HERE TO EXTEND SIGN FOR OFFSET MODES ; 5939 =1110 ; 5940 EXTEXT: WORK[E1]_[BR], ;SAVE E1 U 0556, 3400,3333,0005,7174,4001,2700,0400,0000,0241 ; 5941 DISP/DROM, J/3400 ;GO TO EXTENDED EXECUTE CODE U 0557, 2056,3333,0005,4174,4007,0530,0000,0000,0000 ; 5942 READ [BR], SKIP DP18 ;NEED TO EXTEND SIGN ; 5943 =0 WORK[E1]_[BR], ;POSITIVE U 2056, 3400,3333,0005,7174,4001,2700,0400,0000,0241 ; 5944 DISP/DROM, J/3400 ; 5945 [BR]_#, #/777777, HOLD RIGHT, ;NEGATIVE U 2057, 0556,3771,0005,4374,0007,0700,0000,0077,7777 ; 5946 J/EXTEXT ; 5947 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 161 ; EXTEND.MIC[7,3] 11:35 26-JULY-1984 EXTEND -- MOVE STRING -- SETUP ; 5948 .TOC "EXTEND -- MOVE STRING -- SETUP" ; 5949 ; 5950 ;HERE TO MOVE A STRING ; 5951 ;COME HERE WITH: ; 5952 ; AR/ E0 ; 5953 ; BR/ E1 ; 5954 ; ; 5955 3744: ; 5956 MVS: [AR]_[AR]+1, ;GO FETCH FILL ; 5957 LOAD VMA, ; BYTE ; 5958 START READ, ; .. U 3744, 3456,0111,0703,4174,4007,0700,0210,0004,0012 ; 5959 CALL [GTFILL] ;SUBROUTINE TO COMPLETE U 3754, 2060,3771,0005,1276,6007,0701,0000,0000,1443 ; 5960 3754: [BR]_AC[DLEN] ;GET DEST LENGTH AND FLAGS ; 5961 =0** TL [BR], #/777000, ;ANY FLAGS SET? U 2060, 3556,4553,0500,4374,4007,0321,0010,0077,7000 ; 5962 CALL [BITCHK] ;SEE IF ILLEGAL U 2064, 2062,3771,0003,0276,6007,0700,0000,0000,0000 ; 5963 [AR]_AC ;GET SRC LENGTH AND FLAGS ; 5964 =0 [BRX]_[AR].AND.# CLR RH, ;COPY FLAGS TO BRX ; 5965 #/777000, ; .. U 2062, 3460,4521,0306,4374,4007,0700,0010,0077,7000 ; 5966 CALL [CLRFLG] ;CLEAR FLAGS IN AR ; 5967 ;NEW DLEN IS - ; 5968 AC[DLEN]_[AR]-[BR], 3T, ;COMPUTE DIFFERENCE U 2063, 2066,2113,0305,1174,4007,0521,4400,0000,1443 ; 5969 SKIP DP0 ;WHICH IS SHORTER? ; 5970 =0 [AR]_.NOT.[BR], ;DESTINATION U 2066, 3264,7441,0503,4174,4007,0700,0000,0000,0000 ; 5971 J/MVS1 ;GET NEGATIVE LENGTH U 2067, 3264,7441,0303,4174,4007,0700,0000,0000,0000 ; 5972 [AR]_.NOT.[AR] ;SOURCE ; 5973 MVS1: WORK[SLEN]_[AR], ; .. U 3264, 0574,3333,0003,7174,4003,7700,0400,0000,0242 ; 5974 B DISP ;SEE WHAT TYPE OF MOVE ; 5975 ;SLEN NOW HAS --1 ; 5976 =1100 U 0574, 0500,3771,0013,4370,4007,0700,0000,0000,0003 ; 5977 STATE_[SRC], J/MOVELP ;TRANSLATE--ALL SET U 0575, 3265,3771,0005,1276,6007,0701,0000,0000,1444 ; 5978 [BR]_AC[DSTP], J/MVSO ;OFFSET BUILD MASK ; 5979 [ARX]_[AR], ;LEFT JUSTIFY U 0576, 3305,3441,0304,4174,4007,0700,0000,0000,0000 ; 5980 J/MOVST0 ; .. ; 5981 [ARX]_AC[DLEN], ;RIGHT JUSTIFY ; 5982 SKIP DP0, 4T, ;WHICH IS SHORTER? U 0577, 0630,3771,0004,1276,6007,0522,0000,0000,1443 ; 5983 J/MOVRJ ; 5984 U 3265, 3266,3333,0005,4174,4007,0700,1000,0041,6020 ; 5985 MVSO: READ [BR], FE_S+2 ;GET DST BYTE SIZE U 3266, 2070,4222,0000,4174,4006,7701,1000,0041,1770 ; 5986 Q_0, BYTE STEP ;BUILD AN S BIT MASK ; 5987 =0* U 2070, 2070,4224,0003,4174,4026,7701,1000,0041,1770 ; 5988 MVSO1: GEN MSK [AR], BYTE STEP, J/MVSO1 U 2072, 3267,7221,0003,4174,4007,0700,0000,0000,0000 ; 5989 [AR]_.NOT.Q ;BITS WHICH MUST NOT BE SET ; 5990 WORK[MSK]_[AR].AND.[MASK], ;SAVE FOR SRCMOD U 3267, 0507,4113,0312,7174,4007,0700,0400,0000,0243 ; 5991 J/MOVLP0 ;GO ENTER LOOP ; 5992 ; KS10.MCR[7,3] 15:03 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 -- OFFSET/TRANSLATE ; 5993 .TOC "EXTEND -- MOVE STRING -- OFFSET/TRANSLATE" ; 5994 ; 5995 ;HERE IS THE LOOP FOR OFFSET AND TRANSLATED MOVES ; 5996 =000 ; 5997 MOVELP: [AR]_WORK[SLEN]+1, ;UPDATE STRING LENGTH U 0500, 1074,0551,0703,7274,4007,0701,0010,0000,0242 ; 5998 CALL [SRCMOD] ;GET A SOURCE BYTE ; 5999 =001 [ARX]_[AR], SKIP DP0, ;(1) LENGTH EXHAUSTED U 0501, 0750,3441,0304,4174,4007,0520,0000,0000,0000 ; 6000 J/MOVST2 ; SEE IF FILL IS NEEDED ; 6001 =100 [AR]_-WORK[SLEN], ;(4) ABORT U 0504, 3270,1771,0003,7274,4007,0701,4000,0000,0242 ; 6002 J/MVABT ; .. ; 6003 STATE_[SRC+DST], ;(5) NORMAL--STORE DST BYTE U 0505, 3450,3771,0013,4370,4007,0700,0010,0000,0005 ; 6004 CALL [PUTDST] ; .. ; 6005 =111 U 0507, 0500,3771,0013,4370,4007,0700,0000,0000,0003 ; 6006 MOVLP0: STATE_[SRC], J/MOVELP ;(7) DPB DONE ; 6007 = ; 6008 ; 6009 ;HERE TO ABORT A STRING MOVE DUE TO TRANSLATE OR OFFSET FAILURE ; 6010 ; 6011 MVABT: [BR]_AC[DLEN], ;WHICH STRING IS LONGER U 3270, 2074,3771,0005,1276,6007,0522,0000,0000,1443 ; 6012 SKIP DP0, 4T ; 6013 =0 U 2074, 3271,3440,0303,1174,4007,0700,0400,0000,1443 ; 6014 MVABT1: AC[DLEN]_[AR], J/MVABT2 ;PUT AWAY DEST LEN ; 6015 [AR]_[AR]-[BR], ;DEST LEN WAS GREATER U 2075, 2074,1111,0503,4174,4007,0700,4000,0000,0000 ; 6016 J/MVABT1 ;STICK BACK IN AC ; 6017 U 3271, 3272,7771,0003,7274,4007,0701,0000,0000,0242 ; 6018 MVABT2: [AR]_.NOT.WORK[SLEN] ;GET UNDECREMENTED SLEN U 3272, 2076,3333,0005,4174,4007,0520,0000,0000,0000 ; 6019 READ [BR], SKIP DP0 ;NEED TO FIXUP SRC? U 2076, 2077,0111,0503,4174,4007,0700,0000,0000,0000 ; 6020 =0 [AR]_[AR]+[BR] ;SRC LONGER BY (DLEN) U 2077, 3273,3111,0603,4174,4007,0700,0000,0000,0000 ; 6021 MVEND: [AR]_[AR].OR.[BRX] ;PUT BACK SRC FLAGS U 3273, 1515,4221,0013,4170,4007,0700,0000,0000,0000 ; 6022 END STATE, J/STAC ;ALL DONE ; 6023 ; KS10.MCR[7,3] 15:03 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 -- MOVSRJ ; 6024 .TOC "EXTEND -- MOVE STRING -- MOVSRJ" ; 6025 ; 6026 =00 U 0630, 3274,3771,0003,1276,6007,0701,0000,0000,1441 ; 6027 MOVRJ: [AR]_AC[SRCP], J/MVSKP ;SRC LONGER, SKIP OVER SOME ; 6028 STATE_[DSTF], ;DST LONGER, FILL IT U 0631, 2263,3771,0013,4370,4007,0700,0010,0000,0006 ; 6029 CALL [MOVFIL] ; .. ; 6030 =11 [ARX]_WORK[SLEN]+1, ;DONE FILLING U 0633, 3306,0551,0704,7274,4007,0701,0000,0000,0242 ; 6031 J/MOVST1 ;GO MOVE STRING ; 6032 ; 6033 ;HERE TO SKIP OVER EXTRA SOURCE BYTES U 3274, 2100,3440,0303,1174,4007,0670,0400,0000,1441 ; 6034 MVSKP: AC[SRCP]_[AR], SKIP -1MS ;[121] Is there a timer interrupt? U 2100, 3277,3333,0003,7174,4007,0700,0400,0000,0211 ; 6035 =0 WORK[SV.AR]_[AR], J/MVSK2 ;[121][123] Yes, save regs for interrupt. ; 6036 [ARX]_[ARX]-1, 3T, ;DONE SKIPPING? U 2101, 2102,1111,0704,4174,4007,0521,4000,0000,0000 ; 6037 SKIP DP0 ; 6038 =0 IBP DP, IBP SCAD, ;NO--START THE IBP ; 6039 SCAD DISP, SKIP IRPT, ;4-WAY DISPATCH U 2102, 0650,3770,0305,4334,4016,7371,0000,0033,6000 ; 6040 3T, J/MVSKP1 ;GO BUMP POINTER ; 6041 AC[DLEN]_0, ;LENGTHS ARE NOW EQUAL U 2103, 0546,4223,0000,1174,4007,0700,0400,0000,1443 ; 6042 J/MOVST4 ;GO MOVE STRING ; 6043 ; 6044 =00 U 0650, 3274,3441,0503,4174,4007,0700,0000,0000,0000 ; 6045 MVSKP1: [AR]_[BR], J/MVSKP ;NO OVERFLOW ; 6046 [AR]_.NOT.WORK[SLEN], ;INTERRUPT U 0651, 3275,7771,0003,7274,4007,0701,0000,0000,0242 ; 6047 J/MVSK3 ; .. ; 6048 SET P TO 36-S, ;WORD OVERFLOW U 0652, 3276,3770,0503,4334,4017,0700,0000,0032,6000 ; 6049 J/MVSKP2 ;FIXUP Y U 0653, 3275,7771,0003,7274,4007,0701,0000,0000,0242 ; 6050 [AR]_.NOT.WORK[SLEN] ;[121] INTERRUPT or timer. U 3275, 2104,3440,0303,1174,4007,0700,0400,0000,1443 ; 6051 MVSK3: AC[DLEN]_[AR] ;RESET DLEN ; 6052 =0 [AR]_[AR]+[ARX], U 2104, 3664,0111,0403,4174,4007,0700,0010,0000,0000 ; 6053 CALL [INCAR] ;ADD 1 TO AR ; 6054 AC_[AR].OR.[BRX], ;PUT BACK FLAGS U 2105, 3720,3113,0306,0174,4007,0700,0400,0000,0000 ; 6055 J/ITRAP ;DO INTERRUPT TRAP ; 6056 ; 6057 MVSKP2: [AR]_[AR]+1, HOLD LEFT, ;BUMP Y U 3276, 3274,0111,0703,4170,4007,0700,0000,0000,0000 ; 6058 J/MVSKP ;KEEP GOING ; 6059 ; 6060 ;BEGIN EDIT [123] U 3277, 3300,3333,0005,7174,4007,0700,0400,0000,0213 ; 6061 MVSK2: WORK[SV.BR]_[BR] ;SAVE ALL U 3300, 3301,3333,0004,7174,4007,0700,0400,0000,0212 ; 6062 WORK[SV.ARX]_[ARX] ;THE REGISTERS U 3301, 2071,3333,0006,7174,4007,0700,0400,0000,0214 ; 6063 WORK[SV.BRX]_[BRX] ;FOR THE TICK U 2071, 3560,4443,0000,4174,4007,0700,0010,0000,0000 ; 6064 =0* CALL [TICK] ;UPDATE CLOCK AND SET INTERUPT U 2073, 3302,3771,0003,7274,4007,0701,0000,0000,0211 ; 6065 [AR]_WORK[SV.AR] ;NOW PUT U 3302, 3303,3771,0005,7274,4007,0701,0000,0000,0213 ; 6066 [BR]_WORK[SV.BR] ;THEM ALL U 3303, 3304,3771,0004,7274,4007,0701,0000,0000,0212 ; 6067 [ARX]_WORK[SV.ARX] ;BACK SO WE ; 6068 [BRX]_WORK[SV.BRX], ;CAN CONTINUE U 3304, 3274,3771,0006,7274,4007,0701,0000,0000,0214 ; 6069 J/MVSKP ; 6070 ;END EDIT [123] ; 6071 ; KS10.MCR[7,3] 15:03 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 -- SIMPLE MOVE LOOP ; 6072 .TOC "EXTEND -- MOVE STRING -- SIMPLE MOVE LOOP" ; 6073 ; 6074 ;HERE FOR NO-MODIFICATION STRING MOVES U 3305, 3306,0111,0704,4174,4007,0700,0000,0000,0000 ; 6075 MOVST0: [ARX]_[ARX]+1 ;CANT DO [ARX]_[AR]+1 U 3306, 0540,3771,0013,4370,4007,0700,0000,0000,0003 ; 6076 MOVST1: STATE_[SRC] ;PREPARE FOR PAGE FAIL ; 6077 =000 ; 6078 WORK[SLEN]_[ARX], ;GO GET A SOURCE BYTE U 0540, 2274,3333,0004,7174,4007,0520,0410,0000,0242 ; 6079 SKIP DP0, CALL [GSRC] ; .. ; 6080 MOVSTX: [ARX]_[AR], ;SHORT STRING RAN OUT U 0541, 0750,3441,0304,4174,4007,0520,0000,0000,0000 ; 6081 SKIP DP0, J/MOVST2 ;GO SEE IF FILL NEEDED ; 6082 =010 STATE_[SRC+DST], ;WILL NEED TO BACK UP BOTH POINTERS U 0542, 3450,3771,0013,4370,4007,0700,0010,0000,0005 ; 6083 CALL [PUTDST] ;STORE BYTE ; 6084 =110 ; 6085 MOVST4: [ARX]_WORK[SLEN]+1, ;COUNT DOWN LENGTH U 0546, 3306,0551,0704,7274,4007,0701,0000,0000,0242 ; 6086 J/MOVST1 ;LOOP OVER STRING ; 6087 = ; 6088 =00 U 0750, 3307,4223,0000,1174,4007,0700,0400,0000,1443 ; 6089 MOVST2: AC[DLEN]_0, J/MOVST3 ;CLEAR DEST LEN, REBUILD SRC U 0751, 2263,3771,0013,4370,4007,0700,0010,0000,0004 ; 6090 STATE_[DST], CALL [MOVFIL] ;FILL OUT DEST U 0753, 2147,3440,0606,0174,4007,0700,0400,0000,0000 ; 6091 =11 AC_[BRX], J/ENDSKP ;ALL DONE ; 6092 U 3307, 3310,3113,0406,0174,4007,0700,0400,0000,0000 ; 6093 MOVST3: AC_[ARX].OR.[BRX] ;REBUILD SRC U 3310, 0252,4221,0013,4170,4007,0700,0000,0000,0000 ; 6094 END STATE, J/SKIPE ; .. ; 6095 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 165 ; EXTEND.MIC[7,3] 11:35 26-JULY-1984 EXTEND -- COMPARE STRING ; 6096 .TOC "EXTEND -- COMPARE STRING" ; 6097 ; 6098 3740: U 3740, 2061,3771,0004,1276,6007,0701,0000,0000,1443 ; 6099 CMS: [ARX]_AC[DLEN] ;GET DEST LEN U 2061, 3556,4553,0400,4374,4007,0321,0010,0077,7000 ; 6100 =0** TL [ARX], #/777000, CALL [BITCHK] U 2065, 2110,3771,0006,0276,6007,0700,0000,0000,0000 ; 6101 [BRX]_AC ;GET SRC LEN U 2110, 3556,4553,0600,4374,4007,0321,0010,0077,7000 ; 6102 =0** TL [BRX], #/777000, CALL [BITCHK] U 2114, 2106,2113,0604,4174,4007,0521,4000,0000,0000 ; 6103 [BRX]-[ARX], 3T, SKIP DP0 ;WHICH STRING IS LONGER? U 2106, 2107,0111,0703,4174,4007,0700,0000,0000,0000 ; 6104 =0 [AR]_[AR]+1 ;SRC STRING IS LONGER U 2107, 2112,0111,0703,4170,4007,0700,0200,0004,0012 ; 6105 VMA_[AR]+1, START READ ;DST STRING ; 6106 =0 [AR]_0, ;FORCE FIRST COMPARE TO BE ; 6107 ;EQUAL U 2112, 3662,4221,0003,4174,4007,0700,0010,0000,0000 ; 6108 CALL [LOADQ] ;PUT FILL INTO Q ; 6109 WORK[FILL]_Q, ;SAVE FILLER U 2113, 3320,3223,0000,7174,4007,0700,0400,0000,0244 ; 6110 J/CMS2 ;ENTER LOOP ; 6111 ; KS10.MCR[7,3] 15:03 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 ; 6112 ;HERE IS THE COMPARE LOOP. ; 6113 ; ARX/ CONATINS REMAINING DEST LENGTH ; 6114 ; BRX/ CONTAINS REMAINING SOURCE LENGTH ; 6115 =0 ; 6116 CMS3: ;BYTES ARE NOT EQUAL ; 6117 END STATE, ;NO MORE SPECIAL PAGE FAIL ACTION U 2116, 0250,4221,0013,4170,4003,7700,0000,0000,0000 ; 6118 SKIP-COMP DISP ;SEE SKIP-COMP-TABLE U 2117, 3311,3771,0003,1276,6007,0701,0000,0000,1441 ; 6119 CMS4: [AR]_AC[SRCP] ;GET BYTE POINTER U 3311, 1020,3333,0006,4174,4007,0520,0000,0000,0000 ; 6120 READ [BRX], SKIP DP0 ;MORE IN SOURCE STRING? ; 6121 =00 STATE_[EDIT-SRC], ;PREPARE FOR PAGE FAIL U 1020, 2275,3771,0013,4370,4007,0700,0010,0000,0011 ; 6122 CALL [GETSRC] ; GO GET BYTE ; 6123 READ [ARX], SKIP DP0, ;NO MORE SRC--SEE IF MORE DEST U 1021, 2120,3333,0004,4174,4007,0520,0000,0000,0000 ; 6124 J/CMS5 ; .. U 1022, 3312,3333,0003,7174,4007,0700,0400,0000,0245 ; 6125 WORK[CMS]_[AR] ;SAVE SRC BYTE ; 6126 = U 3312, 3313,3440,0606,0174,4007,0700,0400,0000,0000 ; 6127 AC_[BRX] ;PUT BACK SRC LEN U 3313, 3314,3771,0013,4370,4007,0700,0000,0000,0010 ; 6128 STATE_[COMP-DST] ;HAVE TO BACK UP IF DST FAILS U 3314, 1030,3333,0004,4174,4007,0520,0000,0000,0000 ; 6129 READ [ARX], SKIP DP0 ;ANY MORE DEST? ; 6130 =00 U 1030, 2122,4443,0000,4174,4007,0700,0010,0000,0000 ; 6131 CMS6: CALL [CMPDST] ;MORE DEST BYTES ; 6132 [AR]_WORK[FILL], ;OUT OF DEST BYTES U 1031, 3315,3771,0003,7274,4007,0701,0000,0000,0244 ; 6133 J/CMS7 ;GO DO COMPARE U 1032, 3315,3440,0404,1174,4007,0700,0400,0000,1443 ; 6134 AC[DLEN]_[ARX] ;GOT A BYTE, UPDATE LENGTH ; 6135 = ; 6136 CMS7: [AR]_[AR].AND.[MASK], ;MAKE MAGNITUDES U 3315, 3316,4111,1203,7174,4007,0700,0000,0000,0245 ; 6137 WORK[CMS] ;WARM UP RAM U 3316, 3317,4551,1205,7274,4007,0700,0000,0000,0245 ; 6138 [BR]_[MASK].AND.WORK[CMS], 2T ;GET SRC MAGNITUDE U 3317, 3320,2111,0503,4174,4007,0700,4000,0000,0000 ; 6139 [AR]_[BR]-[AR] REV ;UNSIGNED COMPARE U 3320, 3321,1111,0704,4174,4007,0700,4000,0000,0000 ; 6140 CMS2: [ARX]_[ARX]-1 ;UPDATE LENGTHS U 3321, 3322,1111,0706,4174,4007,0700,4000,0000,0000 ; 6141 [BRX]_[BRX]-1 ; .. U 3322, 2116,3333,0003,4174,4007,0621,0000,0000,0000 ; 6142 READ [AR], SKIP AD.EQ.0, J/CMS3 ;SEE IF EQUAL ; 6143 ; 6144 =0 U 2120, 3323,3772,0000,7274,4007,0701,0000,0000,0244 ; 6145 CMS5: Q_WORK[FILL], J/CMS8 ;MORE DST--GET SRC FILL U 2121, 2116,4221,0003,4174,4007,0700,0000,0000,0000 ; 6146 [AR]_0, J/CMS3 ;STRINGS ARE EQUAL U 3323, 3324,3771,0013,4370,4007,0700,0000,0000,0012 ; 6147 CMS8: STATE_[EDIT-DST] ;JUST DST POINTER ON PAGE FAIL U 3324, 1030,3223,0000,7174,4007,0700,0400,0000,0245 ; 6148 WORK[CMS]_Q, J/CMS6 ;MORE DST--SAVE SRC FILL ; 6149 ; 6150 =0 ; 6151 CMPDST: [AR]_AC[DSTP], ;GET DEST POINTER U 2122, 3451,3771,0003,1276,6007,0701,0010,0000,1444 ; 6152 CALL [IDST] ;UPDATE IT ; 6153 READ [AR], ;LOOK AT BYTE POINTER ; 6154 FE_FE.AND.S#, S#/0770, ;MASK OUT BIT 6 U 2123, 0340,3333,0003,4174,4006,5701,1000,0051,0770 ; 6155 BYTE DISP, J/LDB1 ;GO LOAD BYTE ; 6156 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 167 ; EXTEND.MIC[7,3] 11:35 26-JULY-1984 EXTEND -- DECIMAL TO BINARY CONVERSION ; 6157 .TOC "EXTEND -- DECIMAL TO BINARY CONVERSION" ; 6158 ; 6159 3742: U 3742, 3325,4571,1203,4374,4007,0700,0000,0077,7777 ; 6160 DBIN: [AR]_[777777] XWD 0 ;IF WE ARE IN OFFSET MODE U 3325, 3326,3333,0003,7174,4007,0700,0400,0000,0243 ; 6161 WORK[MSK]_[AR] ; ONLY ALLOW 18 BITS ; 6162 ;RANGE CHECKED (0-10) LATER U 3326, 3327,3771,0003,0276,6007,0700,0000,0000,0000 ; 6163 [AR]_AC ;GET SRC LENGTH ; 6164 [BRX]_[AR].AND.# CLR RH, ;SPLIT OUT FLAGS U 3327, 2124,4521,0306,4374,4007,0700,0000,0077,7000 ; 6165 #/777000 ; .. ; 6166 =0* [ARX]_AC[BIN1], ;GET LOW WORD U 2124, 2220,3771,0004,1276,6007,0701,0010,0000,1444 ; 6167 CALL [CLARX0] ;CLEAR BIT 0 OF ARX U 2126, 2130,3440,0404,1174,4007,0700,0400,0000,1444 ; 6168 AC[BIN1]_[ARX] ;STORE BACK ; 6169 =0 READ [BRX], SKIP DP0, ;IS S ALREADY SET? U 2130, 2154,3333,0006,4174,4007,0520,0010,0000,0000 ; 6170 CALL [CLRBIN] ;GO CLEAR BIN IF NOT ; 6171 [AR]_[AR].AND.#, ;CLEAR FLAGS FROM LENGTH ; 6172 #/000777, HOLD RIGHT, ; .. U 2131, 0616,4551,0303,4374,0003,7700,0000,0000,0777 ; 6173 B DISP ;SEE IF OFFSET OR TRANSLATE ; 6174 =1110 U 0616, 3330,3771,0013,4370,4007,0700,0000,0000,0007 ; 6175 DBIN1: STATE_[CVTDB], J/DBIN2 ;TRANSLATE--LEAVE S ALONE ; 6176 [BRX]_[BRX].OR.#, ;OFFSET--FORCE S TO 1 ; 6177 #/400000, HOLD RIGHT, U 0617, 0616,3551,0606,4374,0007,0700,0000,0040,0000 ; 6178 J/DBIN1 U 3330, 0460,7333,0003,7174,4007,0700,0400,0000,0242 ; 6179 DBIN2: WORK[SLEN]_.NOT.[AR] ;STORE -SLEN-1 ; 6180 ; 6181 ;HERE IS THE MAIN LOOP ; 6182 =0*0 U 0460, 1074,0551,0703,7274,4007,0701,0010,0000,0242 ; 6183 DBINLP: [AR]_WORK[SLEN]+1, CALL [SRCMOD] ;(0) GET MODIFIED SRC BYTE ; 6184 TL [BRX], #/100000, ;(1) DONE, IS M SET? U 0461, 2142,4553,0600,4374,4007,0321,0000,0010,0000 ; 6185 J/DBXIT ; 6186 [AR]_.NOT.WORK[SLEN], ;(4) ABORT U 0464, 3335,7771,0003,7274,4007,0701,0000,0000,0242 ; 6187 J/DBABT ; .. ; 6188 [AR]-#, #/10., ;(5) NORMAL--SEE IF 0-9 U 0465, 2132,1553,0300,4374,4007,0532,4000,0000,0012 ; 6189 4T, SKIP DP18 ; .. ; 6190 =0 [AR]_.NOT.WORK[SLEN], ;DIGIT TOO BIG U 2132, 3335,7771,0003,7274,4007,0701,0000,0000,0242 ; 6191 J/DBABT ;GO ABORT CVT ; 6192 ; KS10.MCR[7,3] 15:03 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 ; 6193 ;HERE TO ADD IN A DIGIT ; 6194 [BR]_AC[BIN0], 4T, ;GET HIGH BINARY U 2133, 1050,3771,0005,1276,6007,0622,0000,0000,1443 ; 6195 SKIP AD.EQ.0 ;SEE IF SMALL ; 6196 =00 ; 6197 DBSLO: [ARX]_AC[BIN1], ;TOO BIG U 1050, 0560,3771,0004,1276,6007,0701,0010,0000,1444 ; 6198 CALL [DBSLOW] ;GO USE DOUBLE PRECISION PATHS ; 6199 [BR]_AC[BIN1], ;GET LOW WORD U 1051, 3331,3771,0005,1276,6007,0701,0000,0000,1444 ; 6200 J/DBFAST ;MIGHT FIT IN 1 WORD U 1052, 0460,4443,0000,4174,4007,0700,0000,0000,0000 ; 6201 J/DBINLP ;RETURN FROM DBSLOW ; 6202 ;GO DO NEXT DIGIT ; 6203 = U 3331, 2134,4553,0500,4374,4007,0321,0000,0076,0000 ; 6204 DBFAST: TL [BR], #/760000 ;WILL RESULT FIT IN 36 BITS? U 2134, 1050,4443,0000,4174,4007,0700,0000,0000,0000 ; 6205 =0 J/DBSLO ;MAY NOT FIT--USE DOUBLE WORD U 2135, 3332,3775,0005,1276,6007,0701,0000,0000,1444 ; 6206 [BR]_AC[BIN1]*2 ;COMPUTE AC*2 U 3332, 2136,3445,0505,1174,4007,0700,0000,0000,1444 ; 6207 [BR]_[BR]*2, AC[BIN1] ;COMPUTE AC*4 ; 6208 =0 [BR]_[BR]+AC[BIN1], 2T, ;COMPUTE AC*5 U 2136, 3665,0551,0505,1274,4007,0700,0010,0000,1444 ; 6209 CALL [SBRL] ;COMPUTE AC*10 ; 6210 AC[BIN1]_[AR]+[BR], 3T, ;NEW BINARY RESULT U 2137, 0460,0113,0305,1174,4007,0701,0400,0000,1444 ; 6211 J/DBINLP ;DO NEXT DIGIT ; 6212 ; KS10.MCR[7,3] 15:03 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 ; 6213 ;HERE IF NUMBER DOES NOT FIT IN ONE WORD ; 6214 ; 6215 =000 ; 6216 DBSLOW: [BR]_AC[BIN0], ;FETCH HIGH WORD U 0560, 0620,3771,0005,1276,6007,0701,0010,0000,1443 ; 6217 CALL [MULBY4] ;MULTIPLY BY 4 ; 6218 [ARX]_[ARX]+AC[BIN1], ;COMPUTE VALUE * 5 ; 6219 SKIP CRY1, 4T, ;SEE IF OVERFLOW U 0561, 2140,0551,0404,1274,4007,0562,0010,0000,1444 ; 6220 CALL [ADDCRY] ;GO ADD CARRY U 0565, 0600,0551,0505,1274,4007,0701,0000,0000,1443 ; 6221 =101 [BR]_[BR]+AC[BIN0] ;ADD IN HIGH WORD ; 6222 = U 0600, 0621,4443,0000,4174,4007,0700,0010,0000,0000 ; 6223 =000 CALL [DBLDBL] ;MAKE * 10 ; 6224 [ARX]_[ARX]+[AR], 3T, ;ADD IN NEW DIGIT ; 6225 SKIP CRY1, ;SEE IF OVERFLOW U 0601, 2140,0111,0304,4174,4007,0561,0010,0000,0000 ; 6226 CALL [ADDCRY] ;ADD IN THE CARRY U 0605, 3333,3440,0404,1174,4007,0700,0400,0000,1444 ; 6227 =101 AC[BIN1]_[ARX] ;PUT BACK ANSWER ; 6228 = ; 6229 AC[BIN0]_[BR], ; .. U 3333, 0002,3440,0505,1174,4004,1700,0400,0000,1443 ; 6230 RETURN [2] ;GO DO NEXT BYTE ; 6231 ; 6232 ;HERE TO DOUBLE BR!ARX ; 6233 =000 U 0620, 0621,4443,0000,4174,4007,0700,0010,0000,0000 ; 6234 MULBY4: CALL [DBLDBL] ;DOUBLE TWICE U 0621, 0622,0111,0505,4174,4007,0700,0000,0000,0000 ; 6235 DBLDBL: [BR]_[BR]+[BR] ;DOUBLE HIGH WORD FIRST ; 6236 ;(SO WE DON'T DOUBLE CARRY) ; 6237 [ARX]_[ARX]+[ARX], ;DOUBLE LOW WORD ; 6238 SKIP CRY1, 3T, ;SEE IF CARRY U 0622, 2140,0111,0404,4174,4007,0561,0010,0000,0000 ; 6239 CALL [ADDCRY] ;ADD IN CARRY U 0626, 0001,4443,0000,4174,4004,1700,0000,0000,0000 ; 6240 =110 RETURN [1] ;ALL DONE ; 6241 = ; 6242 ; 6243 ;HERE TO ADD THE CARRY ; 6244 =0 U 2140, 0004,4443,0000,4174,4004,1700,0000,0000,0000 ; 6245 ADDCRY: RETURN [4] ;NO CARRY U 2141, 3334,4551,0404,4374,0007,0700,0000,0037,7777 ; 6246 CLEAR [ARX]0 ;KEEP LOW WORD POSITIVE ; 6247 [BR]_[BR]+1, ;ADD CARRY U 3334, 0004,0111,0705,4174,4004,1700,0000,0000,0000 ; 6248 RETURN [4] ;ALL DONE ; 6249 ; KS10.MCR[7,3] 15:03 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 ; 6250 ;HERE TO ABORT CONVERSION U 3335, 3336,3111,0306,4174,4007,0700,0000,0000,0000 ; 6251 DBABT: [BRX]_[BRX].OR.[AR] ;PUT BACK UNUSED LENGTH ; 6252 [PC]_[PC]-1, HOLD LEFT, ;DO NOT SKIP U 3336, 2143,1111,0701,4170,4007,0700,4000,0000,0000 ; 6253 J/DBDONE ;GO FIX UP SIGN COPY ; 6254 ; 6255 ;HERE AT END ; 6256 =0 ; 6257 DBXIT: [ARX]_AC[BIN1], ;GET LOW WORD U 2142, 3341,3771,0004,1276,6007,0701,0000,0000,1444 ; 6258 J/DBNEG ;GO NEGATE U 2143, 3337,3771,0003,1276,6007,0701,0000,0000,1444 ; 6259 DBDONE: [AR]_AC[BIN1] ;FETCH LOW WORD ; 6260 [BR]_AC[BIN0], 4T, ;GET HIGH WORD U 3337, 2144,3771,0005,1276,6007,0522,0000,0000,1443 ; 6261 SKIP DP0 ;WHAT SIGN U 2144, 3340,4551,0303,4374,0007,0700,0000,0037,7777 ; 6262 =0 CLEAR [AR]0, J/DBDN1 ;POSITIVE U 2145, 3340,3551,0303,4374,0007,0700,0000,0040,0000 ; 6263 [AR]_[AR].OR.#, #/400000, HOLD RIGHT U 3340, 2146,3440,0303,1174,4007,0700,0400,0000,1444 ; 6264 DBDN1: AC[BIN1]_[AR] ;STORE AC BACK ; 6265 =0 AC_[BRX] TEST, ;RETURN FLAGS U 2146, 2154,3770,0606,0174,4007,0520,0410,0000,0000 ; 6266 SKIP DP0, CALL [CLRBIN] ;CLEAR BIN IS S=0 U 2147, 0260,4221,0013,4170,4007,0700,0000,0000,0000 ; 6267 ENDSKP: END STATE, J/SKIP ;NO--ALL DONE ; 6268 U 3341, 3342,4551,0404,4374,0007,0700,0000,0037,7777 ; 6269 DBNEG: CLEAR ARX0 ;CLEAR EXTRA SIGN BIT ; 6270 [ARX]_-[ARX], 3T, ;NEGATE AND SEE IF U 3342, 2150,2441,0404,1174,4007,0621,4000,0000,1443 ; 6271 SKIP AD.EQ.0, AC[BIN0] ; ANY CARRY U 2150, 2153,7771,0003,1274,4007,0700,0000,0000,1443 ; 6272 =0 [AR]_.NOT.AC[BIN0], 2T, J/STAC34 ;NO CARRY ; 6273 [AR]_-AC[BIN0], 3T, ;CARRY U 2151, 2152,1771,0003,1274,4007,0621,4000,0000,1443 ; 6274 SKIP AD.EQ.0 ;SEE IF ALL ZERO U 2152, 2153,4571,1204,4374,4007,0700,0000,0040,0000 ; 6275 =0 [ARX]_[400000] XWD 0 ;MAKE COPY OF SIGN ; 6276 ; UNLESS HIGH WORD IS ZERO U 2153, 3343,3440,0303,1174,4007,0700,0400,0000,1443 ; 6277 STAC34: AC[BIN0]_[AR] ;PUT BACK ANSWER U 3343, 2143,3440,0404,1174,4007,0700,0400,0000,1444 ; 6278 AC[BIN1]_[ARX], J/DBDONE ; .. ; 6279 ; 6280 ;HELPER SUBROUTINE TO CLEAR AC[BIN0] AND AC[BIN1] IF S=0 ; 6281 ;CALL WITH: ; 6282 ; READ [BRX], SKIP DP0, CALL [CLRBIN] ; 6283 ;RETURNS 1 ALWAYS ; 6284 =0 U 2154, 3344,4223,0000,1174,4007,0700,0400,0000,1443 ; 6285 CLRBIN: AC[BIN0]_0, J/CLRB1 U 2155, 0001,4443,0000,4174,4004,1700,0000,0000,0000 ; 6286 RETURN [1] U 3344, 0001,4223,0000,1174,4004,1700,0400,0000,1444 ; 6287 CLRB1: AC[BIN1]_0, RETURN [1] ; 6288 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 171 ; EXTEND.MIC[7,3] 11:35 26-JULY-1984 EXTEND -- BINARY TO DECIMAL CONVERSION ; 6289 .TOC "EXTEND -- BINARY TO DECIMAL CONVERSION" ; 6290 ; 6291 3743: ; 6292 BDEC: [BRX]_AC[DLEN], ;GET LENGTH AND FLAGS U 3743, 2156,3771,0006,1276,6007,0351,0000,0000,1443 ; 6293 SKIP FPD ;CONTINUE FROM INTERUPT? ; 6294 =0 [BRX]_[BRX].AND.#, ;JUST KEEP THE FLAGS ; 6295 #/777000, ; .. U 2156, 3345,4551,0606,4374,4007,0700,0000,0077,7000 ; 6296 J/BDEC0 ;COMPUTE NEW FLAGS U 2157, 3363,3771,0003,0276,6007,0700,0000,0000,0000 ; 6297 DOCVT: [AR]_AC, J/DOCVT1 ;ALL SET PRIOR TO TRAP U 3345, 3346,3771,0004,1276,6007,0701,0000,0000,1441 ; 6298 BDEC0: [ARX]_AC[1] ;GET LOW BINARY U 3346, 2125,3771,0003,0276,6007,0700,2000,0071,0024 ; 6299 [AR]_AC, SC_20. ;GET HIGH WORD, SET STEP COUNT ; 6300 =0* WORK[BDL]_[ARX], ;SAVE IN CASE OF ABORT U 2125, 2220,3333,0004,7174,4007,0700,0410,0000,0250 ; 6301 CALL [CLARX0] ;MAKE SURE BIT 0 IS OFF ; 6302 WORK[BDH]_[AR], ;SAVE HIGH WORD AND U 2127, 2160,3333,0003,7174,4007,0520,0400,0000,0247 ; 6303 SKIP DP0 ; TEST SIGN ; 6304 =0 ; 6305 BDEC1: [BRX]_0, HOLD LEFT, ;POSITIVE, CLEAR RH OF BRX U 2160, 2170,4221,0006,4170,4007,0700,0000,0000,0000 ; 6306 J/BDEC3 ;COMPUTE # OF DIGITS REQUIRED ; 6307 [BRX]_[BRX].OR.#, ;NEGATIVE, SET M U 2161, 2164,3551,0606,4374,0007,0700,0000,0010,0000 ; 6308 #/100000, HOLD RIGHT ; .. ; 6309 =0* U 2164, 3071,4551,0404,4374,0007,0700,0010,0037,7777 ; 6310 BDEC2: CLEAR ARX0, CALL [DBLNG1] ;NEGATE AR!ARX ; 6311 AC_[AR] TEST, ;PUT BACK ANSWER U 2166, 2162,3770,0303,0174,4007,0520,0400,0000,0000 ; 6312 SKIP DP0 ;IF STILL MINUS WE HAVE ; 6313 ; 1B0, AND NO OTHER BITS U 2162, 2160,3440,0404,1174,4007,0700,0400,0000,1441 ; 6314 =0 AC[1]_[ARX], J/BDEC1 ;POSITIVE NOW U 2163, 3347,0111,0704,4174,4007,0700,0000,0000,0000 ; 6315 [ARX]_[ARX]+1 ;JUST 1B0--ADD 1 ; 6316 [BRX]_[BRX].OR.#, ;AND REMEMBER THAT WE DID ; 6317 #/040000, HOLD RIGHT, ; IN LEFT HALF OF AC+3 U 3347, 2164,3551,0606,4374,0007,0700,0000,0004,0000 ; 6318 J/BDEC2 ; NEGATE IT AGAIN ; 6319 =0 U 2170, 0441,3771,0003,0276,6007,0700,0000,0000,0000 ; 6320 BDEC3: [AR]_AC, J/BDEC4 ;GET HIGH AC ; 6321 [BRX]_[BRX].OR.#, ;NO LARGER POWER OF 10 FITS ; 6322 #/200000, ;SET N FLAG (CLEARLY NOT 0) U 2171, 2174,3551,0606,4374,0007,0700,0000,0020,0000 ; 6323 HOLD RIGHT, J/BDEC5 ;SETUP TO FILL, ETC. ; 6324 =001 ; 6325 BDEC4: [ARX]_AC[1], ;GET HIGH WORD U 0441, 2214,3771,0004,1276,6007,0701,0010,0000,1441 ; 6326 CALL [BDSUB] ;SEE IF 10**C(BRX) FITS ; 6327 =011 [BRX]_[BRX]+1, ;NUMBER FITS--TRY A LARGER ONE U 0443, 2170,0111,0706,4174,4007,0630,2000,0060,0000 ; 6328 STEP SC, J/BDEC3 ;UNLESS WE ARE OUT OF NUMBERS U 0447, 2172,4553,0600,4374,4007,0331,0000,0077,7777 ; 6329 =111 TR [BRX], #/777777 ;ANY DIGITS REQUIRED? ; 6330 = ; 6331 =0 [BRX]_[BRX].OR.#, ;SOME DIGITS NEEDED, ; 6332 #/200000, HOLD RIGHT, ; SET N FLAG U 2172, 2174,3551,0606,4374,0007,0700,0000,0020,0000 ; 6333 J/BDEC5 ;CONTINUE BELOW U 2173, 2174,0111,0706,4174,4007,0700,0000,0000,0000 ; 6334 [BRX]_[BRX]+1 ;ZERO--FORCE AT LEAST 1 DIGIT ; 6335 ; KS10.MCR[7,3] 15:03 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 ; 6336 =0 ; 6337 BDEC5: [AR]_AC[DLEN], ;GET LENGTH U 2174, 3460,3771,0003,1276,6007,0701,0010,0000,1443 ; 6338 CALL [CLRFLG] ;REMOVE FLAGS FROM AR U 2175, 3350,4221,0005,4174,4007,0700,0000,0000,0000 ; 6339 [BR]_0 U 3350, 3351,3441,0605,4170,4007,0700,0000,0000,0000 ; 6340 [BR]_[BRX], HOLD LEFT ;GET # OF DIGITS NEEDED ; 6341 [BR]_[BR]-[AR], ;NUMBER OF FILLS NEEDED U 3351, 2176,1111,0305,4174,4007,0421,4000,0000,0000 ; 6342 SKIP AD.LE.0 ;SEE IF ENOUGH ROOM ; 6343 =0 [ARX]_WORK[BDL], ;DOES NOT FIT IN SPACE ALLOWED U 2176, 3373,3771,0004,7274,4007,0701,0000,0000,0250 ; 6344 J/BDABT ; DO NOT DO CONVERT U 2177, 2200,3333,0006,4174,4007,0520,0000,0000,0000 ; 6345 READ [BRX], SKIP DP0 ;IS L ALREADY SET ; 6346 =0 AC[DLEN]_[BRX], ;NO--NO FILLERS U 2200, 2157,3440,0606,1174,4007,0700,0400,0000,1443 ; 6347 J/DOCVT ;GO CHURN OUT THE NUMBER ; 6348 ; 6349 ; 6350 ;HERE TO STORE LEADING FILLERS U 2201, 3352,3441,0603,4174,0007,0700,0000,0000,0000 ; 6351 [AR]_[BRX], HOLD RIGHT ;MAKE SURE THE FLAGS GET SET U 3352, 3353,3440,0303,1174,4007,0700,0400,0000,1443 ; 6352 AC[DLEN]_[AR] ; BEFORE WE PAGE FAIL U 3353, 3354,3771,0003,7274,4007,0701,0000,0000,0240 ; 6353 [AR]_WORK[E0] ;ADDRESS OF FILL (-1) ; 6354 [AR]_[AR]+1, LOAD VMA, ;FETCH FILLER U 3354, 3355,0111,0703,4174,4007,0700,0200,0004,0012 ; 6355 START READ U 3355, 3356,3771,0016,4365,5007,0700,0200,0000,0002 ; 6356 MEM READ, [T0]_MEM ;GET FILLER INTO AR U 3356, 3357,3771,0013,4370,4007,0700,0000,0000,0012 ; 6357 STATE_[EDIT-DST] ;PAGE FAILS BACKUP DST U 3357, 3360,2113,0507,7174,4007,0701,4400,0000,0242 ; 6358 WORK[SLEN]_[BR]-1, 3T ;SAVE # OF FILLERS U 3360, 3361,3441,1603,7174,4007,0700,0000,0000,0242 ; 6359 BDFILL: [AR]_[T0], WORK[SLEN] ;RESTORE FILL BYTE AND ; 6360 ; WARM UP RAM FILE ; 6361 [BR]_WORK[SLEN]+1, 3T, ;MORE FILLERS NEEDED? U 3361, 0640,0551,0705,7274,4007,0521,0000,0000,0242 ; 6362 SKIP DP0 U 0640, 2157,3440,0606,1174,4007,0700,0400,0000,1443 ; 6363 =000 AC[DLEN]_[BRX], J/DOCVT ;ALL DONE FIX FLAGS AND CONVERT ; 6364 =001 WORK[SLEN]_[BR], ;SAVE UPDATED LENGTH U 0641, 3450,3333,0005,7174,4007,0700,0410,0000,0242 ; 6365 CALL [PUTDST] ; AND STORE FILLER U 0647, 3362,2551,0705,1274,4007,0701,4000,0000,1443 ; 6366 =111 [BR]_AC[DLEN]-1 ;COUNT DOWN STRING LENGTH ; 6367 = U 3362, 3360,3440,0505,1174,4007,0700,0400,0000,1443 ; 6368 AC[DLEN]_[BR], J/BDFILL ;KEEP FILLING ; 6369 ; KS10.MCR[7,3] 15:03 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 ; 6370 ;HERE TO STORE THE ANSWER ; 6371 ; 6372 DOCVT1: [ARX]_AC[1], ;GET LOW WORD U 3363, 3372,3771,0004,1276,6007,0701,0000,0000,1441 ; 6373 J/DOCVT2 ;ENTER LOOP FROM BOTTOM ; 6374 =010 ; 6375 BDECLP: [BR]_[BR]+1, ;COUNT DIGITS U 0562, 2214,0111,0705,4174,4007,0700,0010,0000,0000 ; 6376 CALL [BDSUB] ;KEEP SUBTRACTING 10**C(BRX) U 0566, 3364,3333,0003,7174,4007,0700,0400,0000,0247 ; 6377 =110 WORK[BDH]_[AR] ;SAVE BINARY ; 6378 = ; 6379 [AR]_[BR]+WORK[E1], ;OFFSET DIGIT U 3364, 0636,0551,0503,7274,4003,7701,0000,0000,0241 ; 6380 B DISP ;SEE WHICH MODE ; 6381 =1110 READ [AR], LOAD VMA, ;TRANSLATE, START READING TABLE U 0636, 2206,3333,0003,4174,4007,0700,0200,0004,0012 ; 6382 START READ, J/BDTBL ; GO GET ENTRY FROM TABLE U 0637, 0510,3333,0004,7174,4007,0700,0400,0000,0250 ; 6383 BDSET: WORK[BDL]_[ARX] ;SAVE LOW BINARY U 0510, 3450,3771,0013,4370,4007,0700,0010,0000,0012 ; 6384 =00* STATE_[EDIT-DST], CALL [PUTDST] U 0516, 3365,2551,0705,1274,4007,0701,4000,0000,1443 ; 6385 =11* [BR]_AC[DLEN]-1 ;UPDATE STRING LENGTH U 3365, 3366,3771,0003,7274,4007,0701,0000,0000,0247 ; 6386 [AR]_WORK[BDH] U 3366, 3367,3771,0004,7274,4007,0701,0000,0000,0250 ; 6387 [ARX]_WORK[BDL] U 3367, 2202,4553,0500,4374,4007,0321,0000,0004,0000 ; 6388 TL [BR], #/040000 ;ARE WE CONVERTING 1B0? U 2202, 3374,0111,0704,4174,4007,0700,0000,0000,0000 ; 6389 =0 [ARX]_[ARX]+1, J/BDCFLG ;YES--FIX THE NUMBER AND CLEAR FLAG U 2203, 3370,3440,0303,0174,4007,0700,0400,0000,0000 ; 6390 DOCVT3: AC_[AR] U 3370, 3371,3440,0404,1174,4007,0700,0400,0000,1441 ; 6391 AC[1]_[ARX] U 3371, 3372,3440,0505,1174,4007,0700,0400,0000,1443 ; 6392 AC[DLEN]_[BR] ;STORE BACK NEW STRING LENGTH U 3372, 2204,1111,0706,4174,4007,0531,4000,0000,0000 ; 6393 DOCVT2: [BRX]_[BRX]-1, 3T, SKIP DP18 U 2204, 0562,2441,0705,4174,4467,0701,4000,0003,0000 ; 6394 =0 [BR]_-1, SET FPD, 3T, J/BDECLP U 2205, 0260,4221,0013,4170,4467,0700,0000,0005,0000 ; 6395 END STATE, CLR FPD, J/SKIP ; 6396 ; 6397 ;HERE TO TRANSLATE 1 DIGIT ; 6398 =0 ; 6399 BDTBL: END STATE, ;DON'T CHANGE BYTE POINTER IF ; 6400 ; THIS PAGE FAILS U 2206, 3660,4221,0013,4170,4007,0700,0010,0000,0000 ; 6401 CALL [LOADAR] ;GO PUT WORD IN AR U 2207, 2210,4553,0600,4374,4007,0331,0000,0077,7777 ; 6402 TR [BRX], #/777777 ;LAST DIGIT U 2210, 0637,4221,0003,4174,0007,0700,0000,0000,0000 ; 6403 =0 [AR]_0, HOLD RIGHT, J/BDSET U 2211, 2212,4553,0600,4374,4007,0321,0000,0010,0000 ; 6404 TL [BRX], #/100000 ;AND NEGATIVE U 2212, 2213,3770,0303,4344,4007,0700,0000,0000,0000 ; 6405 =0 [AR]_[AR] SWAP ;LAST AND MINUS, USE LH U 2213, 0637,4221,0003,4174,0007,0700,0000,0000,0000 ; 6406 [AR]_0, HOLD RIGHT, J/BDSET ; 6407 U 3373, 1505,3771,0003,7274,4007,0701,0000,0000,0247 ; 6408 BDABT: [AR]_WORK[BDH], J/DAC ; 6409 ; 6410 BDCFLG: [BR]_[BR].AND.NOT.#, ;CLEAR FLAG THAT TELLS US ; 6411 #/040000, HOLD RIGHT, ; TO SUBTRACT 1 AND U 3374, 2203,5551,0505,4374,0007,0700,0000,0004,0000 ; 6412 J/DOCVT3 ; CONTINUE CONVERTING ; 6413 ; KS10.MCR[7,3] 15:03 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 ; 6414 ;SUBROUTINE TO SUBRTACT A POWER OF 10 FROM AR!ARX ; 6415 ;CALL WITH: ; 6416 ; AR!ARX/ NUMBER TO BE CONVERTED ; 6417 ; BRX(RIGHT)/ POWER OF 10 ; 6418 ;RETURNS: ; 6419 ; 2 RESULT IS STILL POSITIVE ; 6420 ; 6 RESULT WOULD HAVE BEEN NEGATIVE (RESTORE DONE) ; 6421 =0 ; 6422 BDSUB: [T0]_[BRX]+#, 3T, WORK/DECLO, ;ADDRESS OF LOW WORD U 2214, 2165,0551,0616,4374,4007,0701,0000,0000,0344 ; 6423 J/BDSUB1 ;NO INTERRUPT U 2215, 2677,4443,0000,4174,4007,0700,0000,0000,0000 ; 6424 J/FIXPC ;INTERRUPT ; 6425 =0* ; 6426 BDSUB1: [T1]_[T0], LOAD VMA, ;PUT IN VMA, U 2165, 2220,3441,1617,4174,4007,0700,0210,0000,0010 ; 6427 CALL [CLARX0] ;FIX UP SIGN OF LOW WORD ; 6428 [ARX]_[ARX]-RAM, 3T, ;SUBTRACT U 2167, 2216,1551,0404,6274,4007,0561,4000,0000,0000 ; 6429 SKIP CRY1 ;SEE IF OVERFLOW U 2216, 2217,1111,0703,4174,4007,0700,4000,0000,0000 ; 6430 =0 [AR]_[AR]-1 ;PROCESS CARRY U 2217, 3375,0551,0616,4374,4007,0701,0000,0000,0373 ; 6431 [T0]_[BRX]+#, 3T, WORK/DECHI ;ADDRESS OF HIGH WORD U 3375, 3376,3333,0016,4174,4007,0700,0200,0000,0010 ; 6432 READ [T0], LOAD VMA ;PLACE IN VMA ; 6433 [AR]_[AR]-RAM, 4T, ;SUBTRACT U 3376, 2220,1551,0303,6274,4007,0522,4000,0000,0000 ; 6434 SKIP DP0 ;SEE IF IT FIT ; 6435 =0 ; 6436 CLARX0: CLEAR ARX0, ;IT FIT, KEEP LOW WORD + U 2220, 0002,4551,0404,4374,0004,1700,0000,0037,7777 ; 6437 RETURN [2] ; AND RETURN U 2221, 3377,0551,0303,6274,4007,0700,0000,0000,0000 ; 6438 [AR]_[AR]+RAM ;RESTORE U 3377, 3400,3333,0017,4174,4007,0700,0200,0000,0010 ; 6439 READ [T1], LOAD VMA U 3400, 2222,0551,0404,6274,4007,0561,0000,0000,0000 ; 6440 [ARX]_[ARX]+RAM, 3T, SKIP CRY1 ; 6441 =0 ; 6442 BDSUB2: CLEAR ARX0, ;KEEP LOW WORD + U 2222, 0006,4551,0404,4374,0004,1700,0000,0037,7777 ; 6443 RETURN [6] ;RETURN OVERFLOW ; 6444 [AR]_[AR]+1, ;ADD BACK THE CARRY U 2223, 2222,0111,0703,4174,4007,0700,0000,0000,0000 ; 6445 J/BDSUB2 ;COMPLETE SUBTRACT ; 6446 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 175 ; EXTEND.MIC[7,3] 11:35 26-JULY-1984 EXTEND -- EDIT -- MAIN LOOP ; 6447 .TOC "EXTEND -- EDIT -- MAIN LOOP" ; 6448 ; 6449 ;HERE FOR EDIT INSTRUCTION ; 6450 ;CALL WITH: ; 6451 ; AR/ E0 ADDRESS OF FILL, FLOAT, AND MESSAGE TABLE ; 6452 ; BR/ E1 TRANSLATE TABLE ; 6453 ; ; 6454 3741: ; 6455 EDIT: VMA_[AR]+1, START READ, ;FIRST GET FILL BYTE U 3741, 3456,0111,0703,4170,4007,0700,0210,0004,0012 ; 6456 CALL [GTFILL] ;GO GET IT U 3751, 2111,3771,0006,0276,6007,0700,0000,0000,0000 ; 6457 3751: [BRX]_AC ;GET PATTERN POINTER ; 6458 =0** TL [BRX], #/047777, ;MAKE SURE SECTION 0 U 2111, 3556,4553,0600,4374,4007,0321,0010,0004,7777 ; 6459 CALL [BITCHK] ; .. U 2115, 3401,3443,0600,4174,4007,0700,0200,0004,0012 ; 6460 EDITLP: VMA_[BRX], START READ ;FETCH PATTERN WORD U 3401, 3402,4221,0013,4170,4007,0700,0000,0000,0000 ; 6461 END STATE ;NO SPECIAL PAGE FAIL ACTION U 3402, 2224,3770,0605,4344,4007,0700,0000,0000,0000 ; 6462 [BR]_[BRX] SWAP ;GET PBN IN BITS 20 & 21 ; 6463 =0 [BR]_[BR]*4, ; .. U 2224, 3660,0115,0505,4174,4007,0700,0010,0000,0000 ; 6464 CALL [LOADAR] ;GET PATTERN WORD U 2225, 0654,3333,0005,4174,4003,1701,0000,0000,0000 ; 6465 READ [BR], 3T, DISP/DP LEFT ; 6466 =1100 U 0654, 2226,3770,0303,4344,4007,0700,2000,0071,0007 ; 6467 [AR]_[AR] SWAP, SC_7, J/MOVPAT ;(0) BITS 0-8 U 0655, 2227,3770,0303,4344,4007,0700,0000,0000,0000 ; 6468 [AR]_[AR] SWAP, J/MSKPAT ;(1) BITS 9-17 U 0656, 2226,3447,0303,4174,4007,0700,2000,0071,0006 ; 6469 [AR]_[AR]*.5, SC_6, J/MOVPAT ;(2) BITS 18-27 U 0657, 3403,4551,0303,4374,4007,0700,0000,0000,0777 ; 6470 [AR]_[AR].AND.#, #/777, J/EDISP ;(3) BITS 28-35 ; 6471 =0 U 2226, 2226,3447,0303,4174,4007,0630,2000,0060,0000 ; 6472 MOVPAT: [AR]_[AR]*.5, STEP SC, J/MOVPAT ;SHIFT OVER U 2227, 3403,4551,0303,4374,4007,0700,0000,0000,0777 ; 6473 MSKPAT: [AR]_[AR].AND.#, #/777 ; 6474 ; KS10.MCR[7,3] 15:03 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 ; 6475 ;HERE WITH PATTERN BYTE RIGHT ADJUSTED IN AR U 3403, 2230,3447,0305,4174,4007,0700,2000,0071,0002 ; 6476 EDISP: [BR]_[AR]*.5, SC_2 ;SHIFT OVER ; 6477 =0 U 2230, 2230,3447,0505,4174,4007,0630,2000,0060,0000 ; 6478 EDISP1: [BR]_[BR]*.5, STEP SC, J/EDISP1 U 2231, 0661,3333,0005,4174,4003,5701,0000,0000,0000 ; 6479 READ [BR], 3T, DISP/DP ;LOOK AT HIGH 3 BITS ; 6480 =0001 ;(0) OPERATE GROUP ; 6481 [AR]-#, #/5, 4T, ; SEE IF 0-4 U 0661, 2232,1553,0300,4374,4007,0532,4000,0000,0005 ; 6482 SKIP DP18, J/EDOPR ; 6483 ;(1) MESSAGE BYTE ; 6484 READ [BRX], SKIP DP0, U 0663, 2250,3333,0006,4174,4007,0520,0000,0000,0000 ; 6485 J/EDMSG ; 6486 ;(2) UNDEFINED U 0665, 3423,4443,0000,4174,4007,0700,0000,0000,0000 ; 6487 J/EDNOP ; 6488 ;(3) UNDEFINED U 0667, 3423,4443,0000,4174,4007,0700,0000,0000,0000 ; 6489 J/EDNOP ; 6490 ;(4) UNDEFINED U 0671, 3423,4443,0000,4174,4007,0700,0000,0000,0000 ; 6491 J/EDNOP ; 6492 ;(5) SKIP IF M SET ; 6493 TL [BRX], #/100000, U 0673, 2254,4553,0600,4374,4007,0321,0000,0010,0000 ; 6494 J/EDSKP ; 6495 ;(6) SKIP IF N SET ; 6496 TL [BRX], #/200000, U 0675, 2254,4553,0600,4374,4007,0321,0000,0020,0000 ; 6497 J/EDSKP ; 6498 ;(7) SKIP ALWAYS U 0677, 2254,4443,0000,4174,4007,0700,0000,0000,0000 ; 6499 J/EDSKP ; 6500 ; 6501 .TOC "EXTEND -- EDIT -- DECODE OPERATE GROUP" ; 6502 ; 6503 ;HERE FOR OPERATE GROUP. SKIP IF IN RANGE ; 6504 =0 U 2232, 3423,4443,0000,4174,4007,0700,0000,0000,0000 ; 6505 EDOPR: J/EDNOP ;OUT OF RANGE U 2233, 0710,3333,0003,4174,4003,5701,0000,0000,0000 ; 6506 READ [AR], 3T, DISP/DP ;DISPATCH ON TYPE U 0710, 3404,0111,0701,4174,4007,0700,0000,0000,0000 ; 6507 =1000 [PC]_[PC]+1, J/EDSTOP ;(0) STOP EDIT ; 6508 STATE_[EDIT-SRC], ;(1) SELECT SOURCE BYTE U 0711, 2240,3771,0013,4370,4007,0700,0000,0000,0011 ; 6509 J/EDSEL ; 6510 READ [BRX], SKIP DP0, ;(2) START SIGNIFICANCE U 0712, 0006,3333,0006,4174,4007,0520,0000,0000,0000 ; 6511 J/EDSSIG ; 6512 [BRX]_[BRX].AND.#, ;(3) FIELD SEPERATOR ; 6513 #/77777, HOLD RIGHT, U 0713, 3423,4551,0606,4374,0007,0700,0000,0007,7777 ; 6514 J/EDNOP U 0714, 0715,3771,0005,1276,6007,0701,0000,0000,1443 ; 6515 [BR]_AC[MARK] ;(4) EXCHANGE MARK AND DEST ; 6516 VMA_[BR], START READ, U 0715, 2236,3443,0500,4174,4007,0700,0200,0004,0012 ; 6517 J/EDEXMD ; 6518 = ; 6519 ; KS10.MCR[7,3] 15:03 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 -- STOP EDIT ; 6520 .TOC "EXTEND -- EDIT -- STOP EDIT" ; 6521 ; 6522 ;HERE TO END AN EDIT OPERATION. PC IS SET TO SKIP IF NORMAL END ; 6523 ; OR NON-SKIP IF ABORT ; 6524 EDSTOP: [BR]_.NOT.[BRX], ;AD WILL NOT DO D.AND.NOT.A U 3404, 3405,7441,0605,4174,4007,0700,1000,0071,0010 ; 6525 FE_S#, S#/10 ;PRESET FE U 3405, 3406,3441,0603,4174,4007,0701,1000,0043,0000 ; 6526 [AR]_[BRX], 3T, FE_FE+P ;MOVE POINTER, UPBATE PBN ; 6527 [BR].AND.#, 3T, ;WAS OLD NUMBER 3? U 3406, 2234,4553,0500,4374,4007,0321,0000,0003,0000 ; 6528 #/030000, SKIP ADL.EQ.0 ; .. ; 6529 =0 U 2234, 1515,3770,0303,4334,4017,0700,0000,0041,0000 ; 6530 EDSTP1: [AR]_P, J/STAC ;NO--ALL DONE ; 6531 [AR]_[AR]+1, ;YES--BUMP WORD # ; 6532 FE_FE.AND.S#, S#/0700, ;KEEP ONLY FLAG BITS U 2235, 2234,0111,0703,4174,4007,0700,1000,0051,0700 ; 6533 J/EDSTP1 ;GO STOP EDIT ; 6534 ; 6535 .TOC "EXTEND -- EDIT -- START SIGNIFICANCE" ; 6536 ; 6537 ;HERE WITH DST POINTER IN AR ; 6538 =110 U 0006, 3412,4443,0000,4174,4007,0700,0010,0000,0000 ; 6539 EDSSIG: CALL [EDFLT] ;STORE FLT CHAR U 0007, 3423,4443,0000,4174,4007,0700,0000,0000,0000 ; 6540 J/EDNOP ;DO NEXT PATTERN BYTE ; 6541 ; 6542 .TOC "EXTEND -- EDIT -- EXCHANGE MARK AND DESTINATION" ; 6543 ; 6544 ;HERE WITH ADDRESS OF MARK POINTER IN BR ; 6545 =0 ; 6546 EDEXMD: Q_AC[DSTP], ;GET DEST POINTER U 2236, 3660,3772,0000,1275,5007,0701,0010,0000,1444 ; 6547 CALL [LOADAR] ;GO PUT MARK IN AR U 2237, 3407,4443,0000,4174,4007,0700,0200,0003,0002 ; 6548 START WRITE ;START WRITE. SEPERATE STEP TO AVOID ; 6549 ; PROBLEM ON DPM5 U 3407, 3410,3223,0000,4174,4007,0701,0200,0000,0002 ; 6550 MEM WRITE, MEM_Q ;PUT OLD DEST IN MARK U 3410, 3423,3440,0303,1174,4007,0700,0400,0000,1444 ; 6551 AC[DSTP]_[AR], J/EDNOP ;PUT BACK DEST POINTER ; 6552 ; KS10.MCR[7,3] 15:03 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 -- PROCESS SOURCE BYTE ; 6553 .TOC "EXTEND -- EDIT -- PROCESS SOURCE BYTE" ; 6554 ; 6555 =0* ; 6556 EDSEL: [AR]_AC[SRCP], ;PICK UP SRC POINTER U 2240, 2275,3771,0003,1276,6007,0701,0010,0000,1441 ; 6557 CALL [GETSRC] ;GET SOURCE BYTE U 2242, 0700,3447,0303,7174,4007,0700,0000,0000,0241 ; 6558 [AR]_[AR]*.5, WORK[E1] ;PREPARE TO TRANSLATE ; 6559 =000 [AR]_[AR]+WORK[E1], ;GO TRANSLATE BY HALFWORDS U 0700, 3443,0551,0303,7274,4007,0700,0010,0000,0241 ; 6560 2T, CALL [TRNAR] ; .. ; 6561 =010 ; 6562 EDFILL: READ [AR], ;(2) NO SIGNIFICANCE, GO FILL ; 6563 SKIP AD.EQ.0, ; SEE IF ANY FILLER U 0702, 2244,3333,0003,4174,4007,0621,0000,0000,0000 ; 6564 J/EDFIL1 ; GO TO IT ; 6565 STATE_[EDIT-SRC], ;(3) SIG START, DO FLOAT CHAR U 0703, 0246,3771,0013,4370,4007,0700,0000,0000,0011 ; 6566 J/EDSFLT U 0704, 3404,4443,0000,4174,4007,0700,0000,0000,0000 ; 6567 =100 J/EDSTOP ;(4) ABORT ; 6568 =101 ; 6569 EDSPUT: STATE_[EDIT-S+D], ;(5) NORMAL, STORE AT DST U 0705, 3450,3771,0013,4370,4007,0700,0010,0000,0013 ; 6570 CALL [PUTDST] ; .. ; 6571 =111 U 0707, 3423,4443,0000,4174,4007,0700,0000,0000,0000 ; 6572 J/EDNOP ;(7) BYTE STORED ; 6573 = ; 6574 ; 6575 ;HERE TO COMPLETE STORING FILL ; 6576 =0 U 2244, 0705,4443,0000,4174,4007,0700,0000,0000,0000 ; 6577 EDFIL1: J/EDSPUT ;STORE FILLER U 2245, 3423,4443,0000,4174,4007,0700,0000,0000,0000 ; 6578 J/EDNOP ;NO FILLER TO STORE ; 6579 ; 6580 ;HERE TO DO FLOAT BYTE ; 6581 =110 ; 6582 EDSFLT: WORK[FSIG]_[ARX], ;SAVE SIG CHAR U 0246, 3412,3333,0004,7174,4007,0700,0410,0000,0246 ; 6583 CALL [EDFLT] ;STORE FLOAT CHAR U 0247, 3411,3771,0003,7274,4007,0701,0000,0000,0246 ; 6584 [AR]_WORK[FSIG] ;RESTORE CHAR ; 6585 [AR]_[AR].AND.# CLR LH, ;JUST KEEP THE BYTE IN CASE ; 6586 #/77777, ; DEST BYTE .GT. 15 BITS U 3411, 0705,4251,0303,4374,4007,0700,0000,0007,7777 ; 6587 J/EDSPUT ;GO STORE CHAR WHICH STARTED THIS ALL ; 6588 ; KS10.MCR[7,3] 15:03 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 ; 6589 ;SUBRUTINE TO PROCESS FLOAT CHAR ; 6590 ;CALL WITH: ; 6591 ; AR/ POINTER TO STORE @ MARK ; 6592 ;RETURN 7 WITH FLOAT STORED U 3412, 3413,3771,0005,1276,6007,0701,0000,0000,1443 ; 6593 EDFLT: [BR]_AC[MARK] ;ADDRESS OF MARK POINTER U 3413, 3414,3443,0500,4174,4007,0700,0200,0003,0012 ; 6594 VMA_[BR], START WRITE ;READY TO STORE U 3414, 3415,3771,0005,1276,6007,0701,0000,0000,1444 ; 6595 [BR]_AC[DSTP] ;GET DST POINTER U 3415, 2246,3333,0005,4175,5007,0701,0200,0000,0002 ; 6596 MEM WRITE, MEM_[BR] ;STORE POINTER ; 6597 =0 [AR]_0 XWD [2], ;FETCH FLOAT CHAR U 2246, 3417,4751,1203,4374,4007,0700,0010,0000,0002 ; 6598 CALL [EDBYTE] ;GET TBL BYTE ; 6599 MEM READ, [AR]_MEM, ;GET FLOAT CHAR U 2247, 0740,3771,0003,4365,5007,0621,0200,0000,0002 ; 6600 SKIP AD.EQ.0 ;SEE IF NULL ; 6601 =000 ; 6602 [FLG]_[FLG].OR.#, ;REMEMBER TO BACKUP DST POINTER ; 6603 STATE/EDIT-DST, ; WILL ALSO BACKUP SRC IF CALLED ; 6604 HOLD LEFT, ; FROM SELECT U 0740, 3450,3551,1313,4370,4007,0700,0010,0000,0012 ; 6605 CALL [PUTDST] ; STORE FLOAT ; 6606 =001 [BRX]_[BRX].OR.#, #/400000, U 0741, 3416,3551,0606,4374,0007,0700,0000,0040,0000 ; 6607 HOLD RIGHT, J/EDFLT1 ;NULL ; 6608 =110 [BRX]_[BRX].OR.#, #/400000, U 0746, 3416,3551,0606,4374,0007,0700,0000,0040,0000 ; 6609 HOLD RIGHT, J/EDFLT1 ;MARK STORED ; 6610 = ; 6611 EDFLT1: AC_[BRX], ;SAVE FLAGS SO WE DON'T ; 6612 ;TRY TO DO THIS AGAIN IF ; 6613 ;NEXT STORE PAGE FAILS U 3416, 0007,3440,0606,0174,4004,1700,0400,0000,0000 ; 6614 RETURN [7] ;AND RETURN ; 6615 ; 6616 .TOC "EXTEND -- EDIT -- MESSAGE BYTE" ; 6617 ; 6618 ;HERE WITH SKIP ON S ; 6619 =0 ; 6620 EDMSG: [AR]_WORK[FILL], ;GET FILL BYTE ; 6621 SKIP AD.EQ.0, 4T, ;SEE IF NULL U 2250, 0760,3771,0003,7274,4007,0622,0000,0000,0244 ; 6622 J/EDMSG1 ;GO STORE ; 6623 [AR]_[AR].AND.# CLR LH, ;GET OFFSET INTO TABLE U 2251, 2252,4251,0303,4374,4007,0700,0000,0000,0077 ; 6624 #/77 ; 6625 =0 [AR]_[AR]+1, WORK[E0], ;PLUS 1 U 2252, 3417,0111,0703,7174,4007,0700,0010,0000,0240 ; 6626 CALL [EDBYTE] ;GET TBL BYTE U 2253, 0760,3771,0003,4365,5007,0700,0200,0000,0002 ; 6627 MEM READ, [AR]_MEM ;FROM MEMORY ; 6628 =000 ; 6629 EDMSG1: STATE_[EDIT-DST], ;WHAT TO DO ON PAGE FAILS U 0760, 3450,3771,0013,4370,4007,0700,0010,0000,0012 ; 6630 CALL [PUTDST] ;STORE MESSAGE BYTE U 0761, 3423,4443,0000,4174,4007,0700,0000,0000,0000 ; 6631 =001 J/EDNOP ;NULL FILLER U 0766, 3423,4443,0000,4174,4007,0700,0000,0000,0000 ; 6632 =110 J/EDNOP ;NEXT BYTE ; 6633 = ; 6634 U 3417, 3420,0551,0303,7274,4007,0701,0000,0000,0240 ; 6635 EDBYTE: [AR]_[AR]+WORK[E0] ;GET OFFSET INTO TABLE ; 6636 VMA_[AR], START READ, ;START MEMORY CYCLE U 3420, 0001,3443,0300,4174,4004,1700,0200,0004,0012 ; 6637 RETURN [1] ;RETURN TO CALLER ; 6638 ; KS10.MCR[7,3] 15:03 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 -- SKIP ; 6639 .TOC "EXTEND -- EDIT -- SKIP" ; 6640 ; 6641 =0 ; 6642 ;HERE TO SKIP ALWAYS ; 6643 EDSKP: [AR]_[AR].AND.#, #/77, ;JUST KEEP SKIP DISTANCE U 2254, 3421,4551,0303,4374,4007,0700,0000,0000,0077 ; 6644 J/EDSKP1 ;CONTINUE BELOW ; 6645 ;HERE IF WE DO NOT WANT TO SKIP U 2255, 3423,4443,0000,4174,4007,0700,0000,0000,0000 ; 6646 J/EDNOP U 3421, 3422,0115,0703,4174,4007,0700,0000,0000,0000 ; 6647 EDSKP1: [AR]_([AR]+1)*2 ;GIVE 1 EXTRA SKIP ; 6648 READ [AR], SCAD/A*2, ;PUT THE ADJUSTMENT ; 6649 SCADA/BYTE5, 3T, LOAD SC, ; THE SC U 3422, 3424,3333,0003,4174,4007,0701,2000,0007,0000 ; 6650 J/EDNOP1 ;JOIN MAIN LOOP ; 6651 ; 6652 ; 6653 .TOC "EXTEND -- EDIT -- ADVANCE PATTERN POINTER" ; 6654 U 3423, 3424,4443,0000,4174,4007,0700,2000,0071,0000 ; 6655 EDNOP: SC_0 ;NO SKIP U 3424, 3425,3333,0006,4174,4007,0701,1000,0073,0000 ; 6656 EDNOP1: READ [BRX], 3T, FE_P ;PUT PBN IN FE U 3425, 3426,4443,0000,4174,4007,0700,1000,0051,0030 ; 6657 FE_FE.AND.S#, S#/30 ;JUST BYTE # U 3426, 3427,4443,0000,4174,4007,0700,1000,0040,0000 ; 6658 FE_FE+SC ;ADD IN ANY SKIP DISTANCE U 3427, 3430,4443,0000,4174,4007,0700,1000,0041,0010 ; 6659 FE_FE+S#, S#/10 ;BUMP PBN ; 6660 [AR]_FE, ;GET NUMBER OF WORDS U 3430, 3431,3777,0003,4334,4057,0700,2000,0041,0000 ; 6661 LOAD SC ;PUT MSB WHERE IT CAN BE TESTED ; 6662 ; QUICKLY ; 6663 [AR]_[AR].AND.# CLR LH, ;KEEP ONLY 1 COPY U 3431, 2256,4251,0303,4374,4007,0630,0000,0000,0170 ; 6664 #/170, SKIP/SC ; .. ; 6665 =0 ; 6666 EDN1A: [AR]_[AR]*.5, SC_0, U 2256, 2260,3447,0303,4174,4007,0700,2000,0071,0000 ; 6667 J/EDNOP2 ;READY TO SHIFT OFF BYTE WITHIN ; 6668 ; WORD ; 6669 [AR]_[AR].OR.#, #/200, ;GET THE SIGN BIT OF THE FE ; 6670 HOLD LEFT, ; INTO THE AR. ONLY HAPPENS ON U 2257, 2256,3551,0303,4370,4007,0700,0000,0000,0200 ; 6671 J/EDN1A ; SKP 76 OR SKP 77 ; 6672 =0 U 2260, 2260,3447,0303,4174,4007,0630,2000,0060,0000 ; 6673 EDNOP2: [AR]_[AR]*.5, STEP SC, J/EDNOP2 ; 6674 [BRX]_[BRX]+[AR], ;UPDATE WORD ADDRESS U 2261, 3432,0111,0306,4170,4007,0700,0000,0000,0000 ; 6675 HOLD LEFT U 3432, 3433,3770,0303,4334,4017,0700,0000,0041,0000 ; 6676 [AR]_P ;PUT PBN BACK IN BRX ; 6677 [BRX]_[BRX].AND.#, ;JUST KEEP FLAGS ; 6678 #/700000, ; .. U 3433, 3434,4551,0606,4374,0007,0700,0000,0070,0000 ; 6679 HOLD RIGHT ; 6680 [AR]_[AR].AND.#, ;JUST KEEP PBN U 3434, 3435,4551,0303,4374,4007,0700,0000,0003,0000 ; 6681 #/030000 ; 6682 [BRX]_[BRX].OR.[AR], ;FINAL ANSWER U 3435, 3436,3111,0306,4174,0007,0700,0000,0000,0000 ; 6683 HOLD RIGHT U 3436, 2115,3440,0606,0174,4007,0700,0400,0000,0000 ; 6684 AC_[BRX], J/EDITLP ;DO NEXT FUNCTION ; 6685 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 181 ; EXTEND.MIC[7,3] 11:35 26-JULY-1984 EXTEND SUBROUTINES -- FILL OUT DESTINATION ; 6686 .TOC "EXTEND SUBROUTINES -- FILL OUT DESTINATION" ; 6687 ; 6688 ;CALL WITH ; 6689 ; AC[DLEN]/ NEGATIVE NUMBER OF BYTES LEFT IN DEST ; 6690 ; FILL/ FILL BYTE ; 6691 ; RETURN [2] WITH FILLERS STORED ; 6692 ; ; 6693 ;NOTE: THIS ROUTINE NEED NOT TEST FOR INTERRUPTS ON EACH BYTE ; 6694 ; BECAUSE EVERY BYTE STORE DOES A MEMORY READ. ; 6695 ; ; 6696 =01* ; 6697 MOVF1: [AR]_WORK[FILL], 2T, ;GET FILL BYTE U 0332, 3450,3771,0003,7274,4007,0700,0010,0000,0244 ; 6698 CALL [PUTDST] ;PLACE IN DEST U 0336, 3437,3771,0003,1276,6007,0701,0000,0000,1443 ; 6699 [AR]_AC[DLEN] ;AMOUNT LEFT ; 6700 AC[DLEN]_[AR]+1, 3T, ;STORE UPDATED LEN U 3437, 2262,0113,0703,1174,4007,0521,0400,0000,1443 ; 6701 SKIP DP0 ; AND SEE IF DONE U 2262, 0002,4443,0000,4174,4004,1700,0000,0000,0000 ; 6702 =0 RETURN [2] ;DONE U 2263, 0332,4443,0000,7174,4007,0700,0000,0000,0244 ; 6703 MOVFIL: WORK[FILL], J/MOVF1 ;DO ANOTHER BYTE ; 6704 ;ENTERING HERE SAVES 150NS ; 6705 ; PER BYTE BUT COSTS 300NS ; 6706 ; PER FIELD MOVED. I ASSUME (BUT DO ; 6707 ; NOT KNOW) THAT THIS SPEEDS ; 6708 ; THINGS UP. ; 6709 ; KS10.MCR[7,3] 15:03 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 -- GET MODIFIED SOURCE BYTE ; 6710 .TOC"EXTEND SUBROUTINES -- GET MODIFIED SOURCE BYTE" ; 6711 ; 6712 ;CALL WITH: ; 6713 ;SLEN = MINUS LENGTH OF STRING ; 6714 ;MSK = MASK FOR BYTE SIZE (1 IF BIT MUST BE ZERO) ; 6715 ;E1 = EFFECTIVE ADDRESS OF OPERATION WORD (SIGN EXTENDED IF OFFSET) ; 6716 ; [AR]_WORK[SLEN]+1, CALL [SRCMOD] ; 6717 ;RETURNS: ; 6718 ; 1 LENGTH EXHAUSTED ; 6719 ; 2 (EDIT ONLY) NO SIGNIFICANCE ; 6720 ; 3 (EDIT ONLY) SIGNIFICANCE START: ; 6721 ; 4 ABORT: OUT OF RANGE OR TRANSLATE FAILURE ; 6722 ; 5 NORMAL: BYTE IN AR ; 6723 ; ; 6724 ;DROM B SET AS FOLLOWS: ; 6725 ; 0 TRANSLATE ; 6726 ; 1 OFFSET ; 6727 ; 2 EDIT ; 6728 ; 4 CVTDBT ; 6729 =00 ; 6730 SRCMOD: WORK[SLEN]_[AR], ;PUT BACK SOURCE LENGTH ; 6731 SKIP DP0, ;SEE IF DONE U 1074, 2274,3333,0003,7174,4007,0520,0410,0000,0242 ; 6732 CALL [GSRC] ;GET A SOURCE BYTE U 1075, 0001,4221,0013,4170,4004,1700,0000,0000,0000 ; 6733 END STATE, RETURN [1] ;DONE U 1076, 0716,4443,0000,7174,4003,7700,0000,0000,0241 ; 6734 WORK[E1], B DISP ;OFFSET OR TRANSLATE? ; 6735 = U 0716, 3442,3447,0303,4174,4007,0700,0000,0000,0000 ; 6736 =1110 [AR]_[AR]*.5, J/XLATE ;TRANSLATE U 0717, 3440,3770,0303,7174,0007,0700,0000,0000,0241 ; 6737 FIX [AR] SIGN, WORK[E1] ;IF WE ARE PROCESSING FULL WORD ; 6738 ; BYTES, AND THEY ARE NEGATIVE, ; 6739 ; AND THE OFFSET IS POSITIVE THEN ; 6740 ; WE HAVE TO MAKE BITS -1 AND -2 ; 6741 ; COPIES OF THE SIGN BIT. U 3440, 3441,0551,0303,7274,4007,0700,0000,0000,0241 ; 6742 [AR]_[AR]+WORK[E1], 2T ;OFFSET ; 6743 [AR].AND.WORK[MSK], ;VALID BYTE? ; 6744 SKIP AD.EQ.0, 4T, ;SKIP IF OK U 3441, 0004,4553,0300,7274,4004,1622,0000,0000,0243 ; 6745 RETURN [4] ;RETURN 4 IF BAD, 5 IF OK ; 6746 ; KS10.MCR[7,3] 15:03 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 -- TRANSLATE ; 6747 .TOC "EXTEND SUBROUTINES -- TRANSLATE" ; 6748 ; 6749 ;HERE WITH BYTE IN AR 1-36. FETCH TABLE ENTRY. U 3442, 3443,0551,0303,7274,4007,0701,0000,0000,0241 ; 6750 XLATE: [AR]_[AR]+WORK[E1] ;COMPUTE ADDRESS ; 6751 TRNAR: READ [AR], LOAD VMA, ;FETCH WORD U 3443, 2264,3333,0003,4174,4007,0700,0200,0004,0012 ; 6752 START READ ; .. ; 6753 =0 [AR]_[AR]*2, ;GET BACK LSB ; 6754 ;BIT 36 IS NOT PRESERVED ; 6755 ; BY PAGE FAILS U 2264, 3661,3445,0303,4174,4007,0700,0010,0000,0000 ; 6756 CALL [LOADARX] ;PUT ENTRY IN ARX U 2265, 2266,4553,0300,4374,4007,0331,0000,0000,0001 ; 6757 TR [AR], #/1 ;WHICH HALF? ; 6758 =0 ; 6759 XLATE1: [AR]_[ARX], 3T, ;RH -- COPY TO AR ; 6760 DISP/DP LEFT, ;DISPATCH ON CODE U 2266, 0721,3441,0403,4174,4003,1701,0000,0000,0000 ; 6761 J/TRNFNC ;DISPATCH TABLE ; 6762 [ARX]_[ARX] SWAP, ;LH -- FLIP AROUND U 2267, 2266,3770,0404,4344,4007,0700,0000,0000,0000 ; 6763 J/XLATE1 ;START SHIFT ; 6764 ; KS10.MCR[7,3] 15:03 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 ; 6765 ;HERE ON TRANSLATE OPERATION TO PERFORM FUNCTIONS REQUIRED BY ; 6766 ; THE 3 HIGH ORDER BITS OF THE TRANSLATE FUNCTION HALFWORD. WE ; 6767 ; DISPATCH ON FUNCTION AND HAVE: ; 6768 ; BRX/ FLAGS ; 6769 ; ARX/ TABLE ENTRY IN RH ; 6770 ; ; 6771 =0001 ; 6772 ;(0) NOP ; 6773 TRNFNC: READ [BRX], SKIP DP0, ;S FLAG ALREADY SET? U 0721, 2270,3333,0006,4174,4007,0520,0000,0000,0000 ; 6774 J/TRNRET ; .. ; 6775 ;(1) ABORT U 0723, 0004,4443,0000,4174,4004,1700,0000,0000,0000 ; 6776 RETURN [4] ; 6777 ;(2) CLEAR M FLAG ; 6778 [BRX]_[BRX].AND.NOT.#, ; 6779 #/100000, HOLD RIGHT, U 0725, 0721,5551,0606,4374,0007,0700,0000,0010,0000 ; 6780 J/TRNFNC ; 6781 ;(3) SET M FLAG ; 6782 [BRX]_[BRX].OR.#, ; 6783 #/100000, HOLD RIGHT, U 0727, 0721,3551,0606,4374,0007,0700,0000,0010,0000 ; 6784 J/TRNFNC ; 6785 ;(4) SET N FLAG ; 6786 TRNSIG: [BRX]_[BRX].OR.#, ; 6787 #/200000, HOLD RIGHT, U 0731, 0721,3551,0606,4374,0007,0700,0000,0020,0000 ; 6788 J/TRNFNC ; 6789 ;(5) SET N FLAG THEN ABORT ; 6790 [BRX]_[BRX].OR.#, ; 6791 #/200000, HOLD RIGHT, U 0733, 0004,3551,0606,4374,0004,1700,0000,0020,0000 ; 6792 RETURN [4] ; 6793 ;(6) CLEAR M THEN SET N ; 6794 [BRX]_[BRX].AND.NOT.#, ; 6795 #/100000, HOLD RIGHT, U 0735, 0731,5551,0606,4374,0007,0700,0000,0010,0000 ; 6796 J/TRNSIG ; 6797 ;(7) SET N AND M ; 6798 [BRX]_[BRX].OR.#, ; 6799 #/300000, HOLD RIGHT, U 0737, 0721,3551,0606,4374,0007,0700,0000,0030,0000 ; 6800 J/TRNFNC ; 6801 ; KS10.MCR[7,3] 15:03 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 ; 6802 ;HERE TO COMPLETE A TRANSLATE ; 6803 ; 6804 =0 ; 6805 TRNRET: READ [ARX], SKIP DP18, ;S-FLAG IS ZERO ; 6806 B DISP, SKIP DP18, ;SEE IF EDIT OR SIG START U 2270, 0754,3333,0004,4174,4003,7530,0000,0000,0000 ; 6807 J/TRNSS ; .. ; 6808 TRNSS1: [AR]_[ARX].AND.# CLR LH, ;S IS SET, JUST RETURN BYTE U 2271, 0005,4251,0403,4374,4004,1700,0000,0007,7777 ; 6809 #/77777, RETURN [5] ; .. ; 6810 ; 6811 =1100 ; 6812 TRNSS: [AR]_AC[DLEN], ;NO SIG ON MOVE OR D2B U 0754, 0533,3771,0003,1276,6003,7701,0000,0000,1443 ; 6813 B DISP, J/TRNNS1 ;SEE IF D2B ; 6814 [BRX]_[BRX].OR.#, ;SIG START ON MOVE OR D2B ; 6815 #/400000, HOLD RIGHT, U 0755, 2271,3551,0606,4374,0007,0700,0000,0040,0000 ; 6816 J/TRNSS1 ;RETURN BYTE ; 6817 [AR]_WORK[FILL], ;EDIT--NO SIG RETURN FILL U 0756, 0002,3771,0003,7274,4004,1701,0000,0000,0244 ; 6818 RETURN [2] ; .. ; 6819 [AR]_AC[DSTP], ;EDIT--START OF SIG U 0757, 0003,3771,0003,1276,6004,1701,0000,0000,1444 ; 6820 RETURN [3] ; .. ; 6821 ; 6822 =1011 U 0533, 3444,1111,0703,4174,4007,0700,4000,0000,0000 ; 6823 TRNNS1: [AR]_[AR]-1, J/TRNNS2 ;COMPENSATE FOR IGNORING SRC ; 6824 [AR]_WORK[SLEN]+1, ;DEC TO BIN HAS NO DEST LENGTH U 0537, 1074,0551,0703,7274,4007,0701,0000,0000,0242 ; 6825 J/SRCMOD ;JUST UPDATE SRC LENTH ; 6826 TRNNS2: AC[DLEN]_[AR] TEST, ;PUT BACK DLEN AND U 3444, 2272,3770,0303,1174,4007,0520,0400,0000,1443 ; 6827 SKIP DP0 ; SEE WHICH IS NOW SHORTER ; 6828 =0 [AR]_WORK[SLEN], ;DEST IS SHORTER. DO NOT CHANGE U 2272, 1074,3771,0003,7274,4007,0701,0000,0000,0242 ; 6829 J/SRCMOD ; AMOUNT LEFT ; 6830 [AR]_WORK[SLEN]+1, ;GO LOOK AT NEXT BYTE U 2273, 1074,0551,0703,7274,4007,0701,0000,0000,0242 ; 6831 J/SRCMOD ; 6832 ; KS10.MCR[7,3] 15:03 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 -- GET UNMODIFIED SOURCE BYTE ; 6833 .TOC "EXTEND SUBROUTINES -- GET UNMODIFIED SOURCE BYTE" ; 6834 ; 6835 ;CALL: ; 6836 ; GSRC WITH SKIP ON SOURCE LENGTH ; 6837 ; GETSRC IF LENGHT IS OK ; 6838 ;WITH: ; 6839 ; AC1/ SOURCE BYTE POINTER ; 6840 ;RETURNS: ; 6841 ; 1 IF LENGTH RAN OUT ; 6842 ; 2 IF OK (BYTE IN AR) ; 6843 ; ; 6844 =0 ; 6845 GSRC: [AR]_AC[DLEN], ;LENGTH RAN OUT U 2274, 0001,3771,0003,1276,6004,1701,0000,0000,1443 ; 6846 RETURN [1] ;RESTORE AR AND RETURN U 2275, 3445,3771,0003,1276,6007,0701,0000,0000,1441 ; 6847 GETSRC: [AR]_AC[SRCP] ;GET SRC PTR ; 6848 IBP DP, IBP SCAD, ;UPDATE BYTE POINTER U 3445, 0231,3770,0305,4334,4016,7701,0000,0033,6000 ; 6849 SCAD DISP, 3T ;SEE IF OFLOW U 0231, 3447,3441,0503,4174,4007,0700,0000,0000,0000 ; 6850 =01 [AR]_[BR], J/GSRC1 ;NO OFLOW U 0233, 3446,3770,0503,4334,4017,0700,0000,0032,6000 ; 6851 SET P TO 36-S ;RESET P U 3446, 3447,0111,0703,4170,4007,0700,0000,0000,0000 ; 6852 [AR]_[AR]+1, HOLD LEFT ;BUMP Y ; 6853 U 3447, 2276,3440,0303,1174,4007,0700,0400,0000,1441 ; 6854 GSRC1: AC[SRCP]_[AR] ;STORE UPDATED POINTER ; 6855 =0 READ [AR], LOAD BYTE EA,;SETUP TO FIGURE OUT U 2276, 3076,3333,0003,4174,4217,0701,1010,0073,0500 ; 6856 FE_P, 3T, CALL [BYTEAS] ; EFFECTIVE ADDRESS ; 6857 READ [AR], ;LOOK AT POINTER ; 6858 BYTE DISP, ;SEE IF 7 BIT ; 6859 FE_FE.AND.S#, S#/0770, ;MASK OUT P FIELD U 2277, 0340,3333,0003,4174,4006,5701,1000,0051,0770 ; 6860 J/LDB1 ;GO GET THE BYTE ; 6861 ; KS10.MCR[7,3] 15:03 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 -- STORE BYTE IN DESTINATION STRING ; 6862 .TOC "EXTEND SUBROUTINES -- STORE BYTE IN DESTINATION STRING" ; 6863 ; 6864 ;CALL WITH: ; 6865 ; AR/ BYTE TO STORE ; 6866 ; AC4/ DESTINATION BYTE POINTER ; 6867 ;RETURNS: ; 6868 ; AR & AC4/ UPDATED BYTE POINTER ; 6869 ; ARX/ BYTE TO STORE ; 6870 ; BR/ WORD TO MERGE WITH ; 6871 ; 6 ALWAYS ; 6872 ; U 3450, 2300,3441,0304,4174,4007,0700,0000,0000,0000 ; 6873 PUTDST: [ARX]_[AR] ;SAVE BYTE ; 6874 =0 [AR]_AC[DSTP], ;GET DEST POINTER U 2300, 3451,3771,0003,1276,6007,0701,0010,0000,1444 ; 6875 CALL [IDST] ;BUMP DEST POINTER ; 6876 AD/A+B, A/ARX, B/ARX, ;SHIFT 7-BIT BYTE TO ; 6877 SCAD/A, 3T, ; NATURAL PLACE, AND PUT U 2301, 2241,0113,0404,4174,4007,0701,1000,0077,0000 ; 6878 SCADA/BYTE5, LOAD FE ; INTO FE ; 6879 =0* READ [AR], BYTE DISP, ;GO PUT BYTE IN MEMORY U 2241, 0360,3333,0003,4174,4006,5701,0010,0000,0000 ; 6880 CALL [DPB1] ; .. U 2243, 0006,4443,0000,4174,4004,1700,0000,0000,0000 ; 6881 RETURN [6] ;ALL DONE ; 6882 ; KS10.MCR[7,3] 15:03 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 -- UPDATE DEST STRING POINTERS ; 6883 .TOC "EXTEND SUBROUTINES -- UPDATE DEST STRING POINTERS" ; 6884 ; 6885 ; 6886 ;SUBROUTINE TO BUMP DST POINTERS ; 6887 ;CALL WITH: ; 6888 ; AR/ AC[DSTP] ; 6889 ; RETURN 1 WITH UPDATED POINTER STORED ; 6890 ; U 3451, 2304,3770,0305,4334,4016,7701,0000,0033,6000 ; 6891 IDST: IBP DP, IBP SCAD, SCAD DISP, 3T U 2304, 3453,3441,0503,4174,4217,0700,0000,0000,0600 ; 6892 =0* [AR]_[BR], LOAD DST EA, J/IDSTX U 2306, 3452,3770,0503,4334,4017,0700,0000,0032,6000 ; 6893 SET P TO 36-S U 3452, 3453,0111,0703,4170,4217,0700,0000,0000,0600 ; 6894 [AR]_[AR]+1, HOLD LEFT, LOAD DST EA ; 6895 IDSTX: AC[DSTP]_[AR], 3T, ;STORE PTR BACK U 3453, 0230,3440,0303,1174,4006,6701,1400,0073,1444 ; 6896 FE_P, DISP/EAMODE ;SAVE P FOR CMPDST ; 6897 =100* U 0230, 3101,0553,0300,2274,4007,0701,0200,0004,0712 ; 6898 DSTEA: VMA_[AR]+XR, START READ, PXCT BYTE DATA, 3T, J/BYTFET U 0232, 3101,3443,0300,4174,4007,0700,0200,0004,0712 ; 6899 VMA_[AR], START READ, PXCT BYTE DATA, J/BYTFET U 0234, 3454,0553,0300,2274,4007,0701,0200,0004,0612 ; 6900 VMA_[AR]+XR, START READ, PXCT/BIS-DST-EA, 3T, J/DSTIND U 0236, 3454,3443,0300,4174,4007,0700,0200,0004,0612 ; 6901 VMA_[AR], START READ, PXCT/BIS-DST-EA, J/DSTIND ; 6902 U 3454, 3455,3771,0003,4361,5217,0700,0200,0000,0602 ; 6903 DSTIND: MEM READ, [AR]_MEM, HOLD LEFT, LOAD DST EA U 3455, 0230,4443,0000,2174,4006,6700,0000,0000,0000 ; 6904 EA MODE DISP, J/DSTEA ; 6905 ; 6906 ; 6907 ;HERE TO TEST ILLEGAL BITS SET ; 6908 ;CALL WITH: ; 6909 ; SKIP IF ALL BITS LEGAL ; 6910 ; RETURN [4] IF OK, ELSE DO UUO ; 6911 ; ; 6912 3556: ;EXTEND OF 0 COMES HERE U 3556, 2737,4551,0202,4374,0007,0700,0000,0077,7740 ; 6913 BITCHK: UUO U 3557, 0004,4443,0000,4174,4004,1700,0000,0000,0000 ; 6914 3557: RETURN [4] ; 6915 ; 6916 ;HERE TO PUT FILL IN [AR] AND WORK[FILL] ; 6917 GTFILL: MEM READ, ;WAIT FOR DATA U 3456, 3457,3771,0003,4365,5007,0700,0200,0000,0002 ; 6918 [AR]_MEM ;PLACE IN AR ; 6919 WORK[FILL]_[AR], ;SAVE FOR LATER U 3457, 0010,3333,0003,7174,4004,1700,0400,0000,0244 ; 6920 RETURN [10] ;RETURN TO CALLER ; 6921 ; 6922 ;SUBROUTINE TO CLEAR FLAGS IN AR ; 6923 CLRFLG: [AR]_[AR].AND.#, ;CLEAR FLAGS IN AR ; 6924 #/000777, ; .. U 3460, 0001,4551,0303,4374,0004,1700,0000,0000,0777 ; 6925 HOLD RIGHT, RETURN [1] ; 6926 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 189 ; EXTEND.MIC[7,3] 11:35 26-JULY-1984 EXTEND -- PAGE FAIL CLEANUP ; 6927 .TOC "EXTEND -- PAGE FAIL CLEANUP" ; 6928 ; 6929 ;BACK UP SOURCE POINTER ; 6930 =0 ; 6931 BACKS: [AR]_AC[SRCP], U 2302, 3473,3771,0003,1276,6007,0701,0010,0000,1441 ; 6932 CALL [BACKBP] ;BACKUP BP U 2303, 2700,3440,0505,1174,4007,0700,0400,0000,1441 ; 6933 AC[SRCP]_[BR], J/CLDISP ; 6934 U 3461, 3462,3771,0003,7274,4007,0701,0000,0000,0214 ; 6935 CMSDST: [AR]_WORK[SV.BRX] ;GET OLD SRC LEN U 3462, 2310,0113,0703,0174,4007,0701,0400,0000,0000 ; 6936 AC_[AR]+1, 3T ;BACK UP ; 6937 ;BACK UP DESTINATION POINTER ; 6938 =0 ; 6939 BACKD: [AR]_AC[DSTP], U 2310, 3473,3771,0003,1276,6007,0701,0010,0000,1444 ; 6940 CALL [BACKBP] U 2311, 2700,3440,0505,1174,4007,0700,0400,0000,1444 ; 6941 AC[DSTP]_[BR], J/CLDISP ; 6942 ; 6943 ;FAILURES DURING MOVE STRING (BACKUP LENGTHS) U 3463, 3464,1771,0003,7274,4007,0701,4000,0000,0242 ; 6944 STRPF: [AR]_-WORK[SLEN] ;GET AMOUNT LEFT ; 6945 STRPF0: [BR]_AC[DLEN], 4T, ;WHICH STRING IS LONGER? U 3464, 2312,3771,0005,1276,6007,0522,0000,0000,1443 ; 6946 SKIP DP0 ; 6947 =0 U 2312, 3466,3440,0303,1174,4007,0700,0400,0000,1443 ; 6948 STRPF1: AC[DLEN]_[AR], J/STPF1A ;SRC LONGER U 2313, 2314,3441,0304,4174,4007,0700,0000,0000,0000 ; 6949 [ARX]_[AR] ;COPY SRC LENGTH ; 6950 =0 [ARX]_[ARX].OR.WORK[SV.BRX], ;REBUILD FLAGS U 2314, 3671,3551,0404,7274,4007,0701,0010,0000,0214 ; 6951 CALL [AC_ARX] ;RESET AC]SLEN] U 2315, 3465,1111,0503,4174,4007,0700,4000,0000,0000 ; 6952 [AR]_[AR]-[BR] ;MAKE DEST LEN ; 6953 STRPF3: AC[DLEN]_[AR], ;PUT BACK DEST LEN U 3465, 2700,3440,0303,1174,4007,0700,0400,0000,1443 ; 6954 J/CLDISP ;DO NEXT CLEANUP ; 6955 U 3466, 3470,0111,0503,4174,4007,0700,0000,0000,0000 ; 6956 STPF1A: [AR]_[AR]+[BR], J/STRPF2 ; 6957 U 3467, 3470,1771,0003,7274,4007,0701,4000,0000,0242 ; 6958 PFDBIN: [AR]_-WORK[SLEN] ;RESTORE LENGTH U 3470, 3471,3551,0303,7274,4007,0701,0000,0000,0214 ; 6959 STRPF2: [AR]_[AR].OR.WORK[SV.BRX] U 3471, 2700,3440,0303,0174,4007,0700,0400,0000,0000 ; 6960 PFGAC0: AC_[AR], J/CLDISP ;PUT BACK SRC LEN AND FLAGS ; 6961 U 3472, 3464,7771,0003,7274,4007,0701,0000,0000,0242 ; 6962 STRPF4: [AR]_.NOT.WORK[SLEN], J/STRPF0 ; 6963 ; 6964 BACKBP: IBP DP, SCAD/A+B, SCADA/BYTE1, SCADB/SIZE, ;P_P+S U 3473, 0001,3770,0305,4334,4014,1700,0000,0043,6000 ; 6965 RETURN [1] ; 6966 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 190 ; INOUT.MIC[7,3] 13:32 7-JAN-1986 TRAPS ; 6967 .TOC "TRAPS" ; 6968 U 3474, 3475,3741,0104,4074,4007,0700,0000,0000,0000 ; 6969 TRAP: [ARX]_PC WITH FLAGS ;SAVE THE PC WHICH CAUSED THE ; 6970 WORK[TRAPPC]_[ARX], ; TRAP U 3475, 2316,3333,0004,7174,4007,0340,0400,0000,0425 ; 6971 SKIP KERNEL ;SEE IF UBR OR EBR ; 6972 =0 [AR]_[AR]+[UBR], ;ADDRESS OF INSTRUCTION ; 6973 MEM READ, ;WAIT FOR PREFETCH TO GET INTO ; 6974 ; THE CACHE. MAY PAGE FAIL BUT ; 6975 ; THAT IS OK ; 6976 START READ, ;START FETCH ; 6977 VMA PHYSICAL, ;ABSOLUTE ADDRESSING U 2316, 3476,0111,1103,4364,4007,0700,0200,0024,1016 ; 6978 J/TRP1 ;JOIN COMMON CODE ; 6979 ; 6980 [AR]_[AR]+[EBR], ;WE COME HERE IN EXEC MODE ; 6981 MEM READ, ;WAIT FOR PREFETCH TO GET INTO ; 6982 ; THE CACHE. MAY PAGE FAIL BUT ; 6983 ; THAT IS OK ; 6984 START READ, ;START FETCH ; 6985 VMA PHYSICAL, ;ABSOLUTE ADDRESSING U 2317, 3476,0111,1003,4364,4007,0700,0200,0024,1016 ; 6986 J/TRP1 ;JOIN COMMON CODE ; 6987 ; 6988 TRP1: MEM READ, [HR]_MEM, ;PLACE INSTRUCTION IN HR U 3476, 3477,3771,0002,4365,5617,0700,0200,0000,0002 ; 6989 LOAD INST ;LOAD IR, XR, @ ; 6990 [HR].AND.#, ;TEST TO SEE IF THIS ; 6991 #/700000, 3T, ; IS A UUO U 3477, 2320,4553,0200,4374,4007,0321,0000,0070,0000 ; 6992 SKIP ADL.EQ.0 ; 6993 =0 CHANGE FLAGS, ;NOT A UUO ; 6994 HOLD USER/1, ;CLEAR TRAP FLAGS U 2320, 2716,4443,0000,4174,4467,0700,0000,0001,0000 ; 6995 J/XCT1 ;DO THE INSTRUCTION U 2321, 2737,4551,0202,4374,0007,0700,0000,0077,7740 ; 6996 UUO ;DO THE UUO ; 6997 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 191 ; INOUT.MIC[7,3] 13:32 7-JAN-1986 IO -- INTERNAL DEVICES ; 6998 .TOC "IO -- INTERNAL DEVICES" ; 6999 ; 7000 .DCODE D 0700, 1200,1700,4100 ; 7001 700: IOT,AC DISP, J/GRP700 D 0701, 1200,1720,4100 ; 7002 IOT,AC DISP, J/GRP701 ; 7003 .UCODE ; 7004 U 1701, 2737,4551,0202,4374,0007,0700,0000,0077,7740 ; 7005 1701: UUO ;DATAI APR, U 1702, 2737,4551,0202,4374,0007,0700,0000,0077,7740 ; 7006 1702: UUO ;BLKO APR, U 1703, 2737,4551,0202,4374,0007,0700,0000,0077,7740 ; 7007 1703: UUO ;DATAO APR, U 1706, 3502,3771,0005,4304,4007,0701,0000,0000,0000 ; 7008 1706: [BR]_APR, J/APRSZ ;CONSZ APR, U 1707, 3500,3771,0005,4304,4007,0701,0000,0000,0000 ; 7009 1707: [BR]_APR, J/APRSO ;CONSO APR, ; 7010 1710: U 1710, 2737,4551,0202,4374,0007,0700,0000,0077,7740 ; 7011 RDERA: UUO ;BLKI PI, U 1711, 2737,4551,0202,4374,0007,0700,0000,0077,7740 ; 7012 1711: UUO ;DATAI PI, U 1712, 2737,4551,0202,4374,0007,0700,0000,0077,7740 ; 7013 1712: UUO ;BLKO PI, U 1713, 2737,4551,0202,4374,0007,0700,0000,0077,7740 ; 7014 1713: UUO ;DATAO PI, U 1716, 0136,3441,1405,4174,4007,0700,0000,0000,0000 ; 7015 1716: [BR]_[PI], J/CONSZ ;CONSZ PI, U 1717, 3501,3441,1405,4174,4007,0700,0000,0000,0000 ; 7016 1717: [BR]_[PI], J/CONSO ;CONSO PI, ; 7017 ; 7018 1720: U 1720, 2737,4551,0202,4374,0007,0700,0000,0077,7740 ; 7019 GRP701: UUO ;BLKI PAG, U 1726, 2737,4551,0202,4374,0007,0700,0000,0077,7740 ; 7020 1726: UUO ;CONSZ PAG, U 1727, 2737,4551,0202,4374,0007,0700,0000,0077,7740 ; 7021 1727: UUO ;CONSO PAG, ; 7022 ; 7023 ;680I AND CACHE SWEEP STUFF U 1730, 2737,4551,0202,4374,0007,0700,0000,0077,7740 ; 7024 1730: UUO U 1731, 2737,4551,0202,4374,0007,0700,0000,0077,7740 ; 7025 1731: UUO U 1732, 2737,4551,0202,4374,0007,0700,0000,0077,7740 ; 7026 1732: UUO U 1733, 2737,4551,0202,4374,0007,0700,0000,0077,7740 ; 7027 1733: UUO U 1734, 2737,4551,0202,4374,0007,0700,0000,0077,7740 ; 7028 1734: UUO U 1735, 2737,4551,0202,4374,0007,0700,0000,0077,7740 ; 7029 1735: UUO U 1736, 2737,4551,0202,4374,0007,0700,0000,0077,7740 ; 7030 1736: UUO U 1737, 2737,4551,0202,4374,0007,0700,0000,0077,7740 ; 7031 1737: UUO ; 7032 U 3500, 3501,4251,0505,4374,4007,0700,0000,0000,7770 ; 7033 APRSO: [BR]_[BR].AND.# CLR LH, #/7770 U 3501, 0260,4113,0305,4174,4007,0330,0000,0000,0000 ; 7034 CONSO: [BR].AND.[AR], SKIP ADR.EQ.0, J/SKIP ; 7035 U 3502, 0136,4251,0505,4374,4007,0700,0000,0000,7770 ; 7036 APRSZ: [BR]_[BR].AND.# CLR LH, #/7770 ; 7037 136: ;STANDARD LOCATION FOR VERSION INFO, ; 7038 ;ANY UWORD THAT HAS A FREE # FIELD CAN ; 7039 ;BE USED. ; 7040 CONSZ: [BR].AND.[AR], SKIP ADR.EQ.0, J/DONE, ; 7041 MICROCODE RELEASE(MAJOR)/UCR, ;MAJOR VERSION # U 0136, 1400,4113,0305,4174,4007,0330,0000,0000,0020 ; 7042 MICROCODE RELEASE(MINOR)/UCR ;MINOR VERSION # (FOR ID ONLY) ; 7043 ; KS10.MCR[7,3] 15:03 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 ; 7044 1700: ; 7045 GRP700: ; 7046 APRID: [BR]_#, U 1700, 0137,3771,0005,4374,4007,0700,0000,0001,0001 ; 7047 #/4097. ; 7048 137: [BR]_#, ; 7049 MICROCODE OPTION(INHCST)/OPT, ; 7050 MICROCODE OPTION(NOCST)/OPT, ; 7051 MICROCODE OPTION(NONSTD)/OPT, ; 7052 MICROCODE OPTION(UBABLT)/OPT, ; 7053 MICROCODE OPTION(KIPAGE)/OPT, ; 7054 MICROCODE OPTION(KLPAGE)/OPT, ; 7055 MICROCODE VERSION/UCV, ; 7056 HOLD RIGHT, U 0137, 3613,3771,0005,4374,0007,0700,0000,0003,0130 ; 7057 J/RTNREG ; 7058 ; 7059 1704: U 1704, 3503,3771,0005,7274,4007,0701,0000,0000,0230 ; 7060 WRAPR: [BR]_WORK[APR] ; 7061 [BR]_[BR].AND.NOT.#, ;CLEAR THE OLD PIA U 3503, 3504,5551,0505,4370,4007,0700,0000,0000,0007 ; 7062 #/7, HOLD LEFT ; .. U 3504, 3505,4551,0304,4374,4007,0700,0000,0000,0007 ; 7063 [ARX]_[AR].AND.#, #/7 ;PUT NEW PIA IN ARX U 3505, 3506,3111,0405,4174,4007,0700,0000,0000,0000 ; 7064 [BR]_[BR].OR.[ARX] ;PUT NEW PIA IN BR ; 7065 [ARX]_[AR].AND.#, ;MASK THE DATA BITS U 3506, 3507,4551,0304,4374,4007,0700,0000,0000,7760 ; 7066 #/007760 ; DOWN TO ENABLES U 3507, 2322,4553,0300,4374,4007,0331,0000,0010,0000 ; 7067 TR [AR], #/100000 ;WANT TO ENABLE ANY? U 2322, 2323,3111,0405,4174,4007,0700,0000,0000,0000 ; 7068 =0 [BR]_[BR].OR.[ARX] ;YES--SET THEM U 2323, 2324,4553,0300,4374,4007,0331,0000,0004,0000 ; 7069 TR [AR], #/40000 ;WANT TO DISABLE ANY? U 2324, 2325,5111,0405,4174,4007,0700,0000,0000,0000 ; 7070 =0 [BR]_[BR].AND.NOT.[ARX] ;YES--CLEAR THEM U 2325, 3510,3771,0006,4304,4007,0701,0000,0000,0000 ; 7071 [BRX]_APR ;GET CURRENT STATUS U 3510, 2326,4553,0300,4374,4007,0331,0000,0002,0000 ; 7072 TR [AR], #/20000 ;WANT TO CLEAR FLAGS? U 2326, 2327,5111,0406,4174,4007,0700,0000,0000,0000 ; 7073 =0 [BRX]_[BRX].AND.NOT.[ARX] ;YES--CLEAR BITS U 2327, 2330,4553,0300,4374,4007,0331,0000,0001,0000 ; 7074 TR [AR], #/10000 ;WANT TO SET ANY FLAGS? U 2330, 2331,3111,0406,4174,4007,0700,0000,0000,0000 ; 7075 =0 [BRX]_[BRX].OR.[ARX] ;YES--SET FLAGS U 2331, 2332,4553,0300,4374,4007,0331,0000,0003,0000 ; 7076 TR [AR], #/30000 ;ANY CHANGE AT ALL? ; 7077 =0 READ [BRX], ;YES--LOAD NEW FLAGS U 2332, 3513,3333,0006,4174,4007,0700,0000,0000,0000 ; 7078 J/WRAPR2 ;TURN OFF INTERRUPT 8080 U 2333, 3511,3333,0005,4174,4007,0700,0000,0000,0000 ; 7079 WRAPR1: READ [BR] ;FIX DPM TIMING BUG ; 7080 READ [BR], ;ENABLE CONDITIONS U 3511, 3512,3333,0005,4174,4257,0700,0000,0000,0000 ; 7081 SET APR ENABLES ; 7082 WORK[APR]_[BR], ;SAVE FOR RDAPR U 3512, 1400,3333,0005,7174,4007,0700,0400,0000,0230 ; 7083 J/DONE ;ALL DONE ; 7084 ; 7085 WRAPR2: READ [BRX], ;LOAD NEW FLAGS U 3513, 3514,3333,0006,4174,4237,0700,0000,0000,0000 ; 7086 SPEC/APR FLAGS ; .. ; 7087 [BRX]_[BRX].AND.NOT.#, ;CLEAR INTERRUPT THE 8080 U 3514, 3515,5551,0606,4370,4007,0700,0000,0000,2000 ; 7088 #/002000, HOLD LEFT ; FLAG ; 7089 READ [BRX], ;LOAD NEW FLAGS ; 7090 SPEC/APR FLAGS, ; .. U 3515, 2333,3333,0006,4174,4237,0700,0000,0000,0000 ; 7091 J/WRAPR1 ;LOOP BACK ; 7092 ; KS10.MCR[7,3] 15:03 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 ; 7093 1705: U 1705, 3516,3771,0005,7274,4007,0701,0000,0000,0230 ; 7094 RDAPR: [BR]_WORK[APR] ; 7095 [BR]_[BR] SWAP, ;PUT ENABLES IN BOTH U 3516, 3517,3770,0505,4344,0007,0700,0000,0000,0000 ; 7096 HOLD RIGHT ; HALVES ; 7097 [BR]_[BR].AND.#, ;SAVE ENABLES IN LH ; 7098 #/7760, ; U 3517, 3520,4551,0505,4374,0007,0700,0000,0000,7760 ; 7099 HOLD RIGHT ; 7100 [BR]_[BR].AND.#, ;SAVE PIA IN RH ; 7101 #/7, U 3520, 3521,4551,0505,4370,4007,0700,0000,0000,0007 ; 7102 HOLD LEFT U 3521, 3522,3771,0004,4304,4007,0701,0000,0000,0000 ; 7103 [ARX]_APR ;READ THE APR FLAGS ; 7104 [ARX]_[ARX].AND.# CLR LH, ;MASK OUT JUNK U 3522, 3523,4251,0404,4374,4007,0700,0000,0000,7770 ; 7105 #/007770 ;KEEP 8 FLAGS ; 7106 [BR]_[BR].OR.[ARX], ;MASH THE STUFF TOGETHER U 3523, 3613,3111,0405,4174,4007,0700,0000,0000,0000 ; 7107 J/RTNREG ;RETURN ; 7108 ; KS10.MCR[7,3] 15:03 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 -- EBR & UBR ; 7109 .TOC "IO -- INTERNAL DEVICES -- EBR & UBR" ; 7110 ; 7111 ;UBR FORMAT: ; 7112 ;BITS 0 & 2 LOAD FLAGS (RETURNED ON RDUBR) ; 7113 ;BITS 3 - 5 ZERO ; 7114 ;BITS 6 -11 AC BLOCKS SELECTED - CUR,PREV ; 7115 ;BITS 16 -35 UPT PHYSICAL ADDRESS ; 7116 ; 7117 1723: ; 7118 WRUBR: VMA_[AR], ;LOAD E INTO VMA U 1723, 3524,3443,0300,4174,4007,0700,0200,0004,0012 ; 7119 START READ ;START MEMORY ; 7120 MEM READ, ;WAIT FOR DATA ; 7121 [AR]_MEM, 3T, ;PUT IT INTO THE AR U 3524, 2334,3771,0003,4365,5007,0521,0200,0000,0002 ; 7122 SKIP DP0 ;SEE IF WE WANT TO LOAD ; 7123 ; AC BLOCK NUMBERS ; 7124 ; 7125 =0 [AR]_[AR].AND.#, ;NO--CLEAR JUNK IN AR (ALL BUT LD UBR) ; 7126 #/100000, ; LEAVE ONLY LOAD UBR ; 7127 HOLD RIGHT, ; IN LEFT HALF ; 7128 SKIP ADL.EQ.0, 3T, ;SEE IF WE WANT TO LOAD UBR U 2334, 2336,4551,0303,4374,0007,0321,0000,0010,0000 ; 7129 J/ACBSET ;SKIP AROUND UBR LOAD ; 7130 ; 7131 ;HERE WHEN WE WANT TO LOAD AC BLOCK SELECTION ; 7132 [UBR]_[UBR].AND.#, ;MASK OUT THE UBR'S OLD ; 7133 #/770077, ; AC BLOCK NUMBERS U 2335, 3525,4551,1111,4374,0007,0700,0000,0077,0077 ; 7134 HOLD RIGHT ;IN THE LEFT HALF ; 7135 ; 7136 [AR]_[AR].AND.#, ;CLEAR ALL BUT NEW SELECTION ; 7137 #/507700, ;AND LOAD BITS U 3525, 3526,4551,0303,4374,0007,0700,0000,0050,7700 ; 7138 HOLD RIGHT ;IN AR LEFT ; 7139 ; 7140 [AR].AND.#, ;SEE IF WE WANT TO LOAD ; 7141 #/100000, 3T, ; UBR ALSO U 3526, 2336,4553,0300,4374,4007,0321,0000,0010,0000 ; 7142 SKIP ADL.EQ.0 ; 7143 ; 7144 ;HERE WITH AR LEFT = NEW AC BLOCKS OR ZERO, ; 7145 ;SKIP IF DON'T LOAD UBR ; 7146 =0 ; 7147 ACBSET: [BR]_[AR].AND.#, ;COPY UBR PAGE NUMBER ; 7148 #/3777, ; INTO BR U 2336, 3527,4551,0305,4374,4007,0700,0000,0000,3777 ; 7149 J/SETUBR ;GO LOAD UBR ; 7150 ; 7151 [UBR]_[UBR].OR.[AR], ;DO NOT LOAD UBR ; 7152 ; PUT AC BLOCK # IN ; 7153 HOLD RIGHT, ; THE LEFT HALF ; 7154 LOAD AC BLOCKS, ;LOAD HARDWARE U 2337, 1400,3111,0311,4174,0477,0700,0000,0000,0000 ; 7155 J/DONE ;ALL DONE ; 7156 ; KS10.MCR[7,3] 15:03 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 ; 7157 ;HERE WITH AR LEFT AS BEFORE, AR RIGHT = MASKED PAGE # ; 7158 SETUBR: [BR]_0, ;CLEAR BR LEFT ; 7159 HOLD RIGHT, ;BR IS 0,,PAGE # U 3527, 2340,4221,0005,4174,0007,0700,2000,0071,0007 ; 7160 SC_7 ;PUT THE COUNT IN SC ; 7161 =0 ; 7162 STUBRS: [BR]_[BR]*2, ;SHIFT BR OVER ; 7163 STEP SC, ; 9 PLACES U 2340, 2340,3445,0505,4174,4007,0630,2000,0060,0000 ; 7164 J/STUBRS ;PRODUCING UPT ADDRESS ; 7165 ; 7166 [UBR]_[UBR].AND.#, ;MASK OUT OLD UBR ; 7167 #/777774, ; BITS IN U 2341, 3530,4551,1111,4374,0007,0700,0000,0077,7774 ; 7168 HOLD RIGHT ; LEFT HALF ; 7169 ; 7170 [UBR]_0, ;CLEAR RIGHT HALF U 3530, 3531,4221,0011,4170,4007,0700,0000,0000,0000 ; 7171 HOLD LEFT ;UBR IS FLGS+ACBLK+0,,0 ; 7172 U 3531, 3532,3111,0511,4174,4007,0700,0000,0000,0000 ; 7173 [UBR]_[UBR].OR.[BR] ;PUT IN PAGE TABLE ADDRESS ; 7174 ; 7175 [UBR]_[UBR].OR.[AR], ;PUT IN AC BLOCK # ; 7176 HOLD RIGHT, ; IN LEFT HALF ; 7177 LOAD AC BLOCKS, ;TELL HARDWARE U 3532, 2406,3111,0311,4174,0477,0700,0000,0000,0000 ; 7178 J/SWEEP ;CLEAR CACHE ; 7179 ; KS10.MCR[7,3] 15:03 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 ; 7180 1724: U 1724, 2342,3445,0303,4174,4007,0700,2000,0071,0006 ; 7181 WREBR: [AR]_[AR]*2, SC_6 ;DO A SHIFT OVER 8 MORE ; 7182 =0 U 2342, 2342,3445,0303,4174,4007,0630,2000,0060,0000 ; 7183 WREBR1: [AR]_[AR]*2, STEP SC, J/WREBR1 ;SKIP WHEN = -1 ; 7184 .IF/FULL ;DO NOT ENABLE PAGING IN SMALL ; 7185 ; MICROCODE. U 2343, 3533,3771,0005,7274,4007,0701,0000,0000,0230 ; 7186 [BR]_WORK[APR] U 3533, 3534,4551,0505,4370,4007,0700,0000,0074,7777 ; 7187 [BR]_[BR].AND.#, #/747777, HOLD LEFT U 3534, 2344,4553,0300,4374,4007,0321,0000,0000,0020 ; 7188 [AR].AND.#, #/20, 3T, SKIP ADL.EQ.0 ;BIT 22 - TRAP ENABLE U 2344, 2345,3551,0505,4370,4007,0700,0000,0003,0000 ; 7189 =0 [BR]_[BR].OR.#, #/030000, HOLD LEFT ;SET - ALLOW TRAPS TO HAPPEN U 2345, 3535,3333,0005,4174,4257,0700,0000,0000,0000 ; 7190 READ [BR], SET APR ENABLES U 3535, 3536,3333,0005,7174,4007,0700,0400,0000,0230 ; 7191 WORK[APR]_[BR] ; 7192 .ENDIF/FULL ; 7193 ; 7194 .IF/KIPAGE ; 7195 .IF/KLPAGE U 3536, 3537,3441,0310,4174,4007,0700,0000,0000,0000 ; 7196 [EBR]_[AR] ;NOTE: SHIFTED LEFT 9 BITS U 3537, 2346,4553,1000,4374,4007,0321,0000,0000,0040 ; 7197 [EBR].AND.#, #/40, 3T, SKIP ADL.EQ.0 ;BIT 21 - KL PAGING ENABLE U 2346, 2406,3551,1010,4374,0007,0700,0000,0040,0000 ; 7198 =0 [EBR]_[EBR].OR.#, #/400000, HOLD RIGHT, J/SWEEP ;YES, SET INTERNAL FLAG U 2347, 2406,5551,1010,4374,0007,0700,0000,0040,0000 ; 7199 [EBR]_[EBR].AND.NOT.#, #/400000, HOLD RIGHT, J/SWEEP ;NO, CLR BIT 0 ; 7200 .ENDIF/KLPAGE ; 7201 .ENDIF/KIPAGE ; 7202 ;;7203 .IFNOT/KLPAGE ;MUST BE KI ONLY ;;7204 [EBR]_[AR],J/SWEEP ;SO INTERNAL FLAG ISN'T USED ; 7205 .ENDIF/KLPAGE ; 7206 ;;7207 .IFNOT/KIPAGE ;MUST BE KL ONLY ;;7208 [EBR]_[AR],J/SWEEP ;SO INTERNAL FLAG ISN'T USED ; 7209 .ENDIF/KIPAGE ; 7210 ; 7211 1725: U 1725, 2350,3447,1005,4174,4007,0700,2000,0071,0006 ; 7212 RDEBR: [BR]_[EBR]*.5, SC_6 ; 7213 =0 U 2350, 2350,3447,0505,4174,4007,0630,2000,0060,0000 ; 7214 RDEBR1: [BR]_[BR]*.5, STEP SC, J/RDEBR1 U 2351, 3540,4551,0505,4374,4007,0700,0000,0006,3777 ; 7215 [BR]_[BR].AND.#, #/63777 ;MASK TO JUST EBR ; 7216 [BR]_0, ;CLEAR LEFT HALF ; 7217 HOLD RIGHT, ; BITS U 3540, 3613,4221,0005,4174,0007,0700,0000,0000,0000 ; 7218 J/RTNREG ;RETURN ANSWER ; 7219 ; KS10.MCR[7,3] 15:03 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 ; 7220 1721: U 1721, 2352,4551,1105,4374,0007,0700,0000,0050,7700 ; 7221 RDUBR: [BR]_[UBR].AND.#,#/507700,HOLD RIGHT ;GET LOAD BITS AND AC BLOCKS U 2352, 2354,3447,1106,4174,4007,0700,2010,0071,0006 ; 7222 =0 [BRX]_[UBR]*.5, SC_6, CALL [GTPCW1] ;SET SC (9) START SHIFT,GET UBR ; 7223 VMA_[AR],START WRITE, ;START TO U 2353, 3614,3443,0300,4174,4007,0700,0200,0003,0012 ; 7224 J/RTNRG1 ;RETURN DATA ; 7225 ; 7226 U 3541, 3542,4551,1105,4374,0007,0700,0000,0050,7700 ; 7227 GETPCW: [BR]_[UBR].AND.#,#/507700,HOLD RIGHT ;GET LOAD BITS AND AC BLOCKS U 3542, 2354,3447,1106,4174,4007,0700,2000,0071,0006 ; 7228 [BRX]_[UBR]*.5, SC_6 ;SET SC (9) START SHIFT ; 7229 ; 7230 =0 U 2354, 2354,3447,0606,4174,4007,0630,2000,0060,0000 ; 7231 GTPCW1: [BRX]_[BRX]*.5, STEP SC, J/GTPCW1 ;SHIFT UBR ADDR TO PAGE # U 2355, 3543,4551,0606,4374,4007,0700,0000,0000,3777 ; 7232 [BRX]_[BRX].AND.#, #/3777 ;ONLY PAGE # U 3543, 0001,3441,0605,4170,4004,1700,0000,0000,0000 ; 7233 [BR]_[BRX], HOLD LEFT, RETURN [1] ;MOVE PAGE # TO RH OF RESULT ; 7234 ; KS10.MCR[7,3] 15:03 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 -- KL PAGING REGISTERS ; 7235 .TOC "IO -- INTERNAL DEVICES -- KL PAGING REGISTERS" ; 7236 ; 7237 .DCODE D 0702, 1216,1760,4700 ; 7238 702: IOT,AC DISP, M, J/GRP702 ; 7239 .UCODE ; 7240 ; 7241 1760: ; 7242 GRP702: U 1760, 3613,3771,0005,7274,4007,0701,0000,0000,0215 ; 7243 RDSPB: [BR]_WORK[SBR], J/RTNREG ; 7244 1761: U 1761, 3613,3771,0005,7274,4007,0701,0000,0000,0216 ; 7245 RDCSB: [BR]_WORK[CBR], J/RTNREG ; 7246 1762: U 1762, 3613,3771,0005,7274,4007,0701,0000,0000,0220 ; 7247 RDPUR: [BR]_WORK[PUR], J/RTNREG ; 7248 1763: U 1763, 3613,3771,0005,7274,4007,0701,0000,0000,0217 ; 7249 RDCSTM: [BR]_WORK[CSTM], J/RTNREG ; 7250 1766: U 1766, 3613,3771,0005,7274,4007,0701,0000,0000,0227 ; 7251 RDHSB: [BR]_WORK[HSBADR], J/RTNREG U 1767, 2737,4551,0202,4374,0007,0700,0000,0077,7740 ; 7252 1767: UUO ; 7253 ; 7254 1770: U 1770, 3544,4443,0000,4174,4007,0703,0200,0006,0002 ; 7255 WRSPB: START READ,WRITE TEST,5T ;WAIT FOR (?) WRITE-TEST PF U 3544, 3545,3771,0003,4365,5007,0700,0200,0000,0002 ; 7256 MEM READ, [AR]_MEM U 3545, 1400,3333,0003,7174,4007,0700,0400,0000,0215 ; 7257 WORK[SBR]_[AR], J/DONE ; 7258 1771: U 1771, 3546,4443,0000,4174,4007,0703,0200,0006,0002 ; 7259 WRCSB: START READ,WRITE TEST,5T ;WAIT FOR (?) WRITE-TEST PF U 3546, 3547,3771,0003,4365,5007,0700,0200,0000,0002 ; 7260 MEM READ, [AR]_MEM U 3547, 1400,3333,0003,7174,4007,0700,0400,0000,0216 ; 7261 WORK[CBR]_[AR], J/DONE ; 7262 1772: U 1772, 3550,4443,0000,4174,4007,0703,0200,0006,0002 ; 7263 WRPUR: START READ,WRITE TEST,5T ;WAIT FOR (?) WRITE-TEST PF U 3550, 3551,3771,0003,4365,5007,0700,0200,0000,0002 ; 7264 MEM READ, [AR]_MEM U 3551, 1400,3333,0003,7174,4007,0700,0400,0000,0220 ; 7265 WORK[PUR]_[AR], J/DONE ; 7266 1773: U 1773, 3552,4443,0000,4174,4007,0703,0200,0006,0002 ; 7267 WRCSTM: START READ,WRITE TEST,5T ;WAIT FOR (?) WRITE-TEST PF U 3552, 3553,3771,0003,4365,5007,0700,0200,0000,0002 ; 7268 MEM READ, [AR]_MEM U 3553, 1400,3333,0003,7174,4007,0700,0400,0000,0217 ; 7269 WORK[CSTM]_[AR], J/DONE ; 7270 1776: U 1776, 3554,4443,0000,4174,4007,0703,0200,0006,0002 ; 7271 WRHSB: START READ,WRITE TEST,5T ;WAIT FOR (?) WRITE-TEST PF U 3554, 3555,3771,0003,4365,5007,0700,0200,0000,0002 ; 7272 MEM READ, [AR]_MEM U 3555, 1400,3333,0003,7174,4007,0700,0400,0000,0227 ; 7273 WORK[HSBADR]_[AR], J/DONE ; 7274 U 1777, 2737,4551,0202,4374,0007,0700,0000,0077,7740 ; 7275 1777: UUO ; 7276 ; KS10.MCR[7,3] 15:03 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 -- TIMER CONTROL ; 7277 .TOC "IO -- INTERNAL DEVICES -- TIMER CONTROL" ; 7278 ; 7279 ; 7280 ;BEGIN [123] ; 7281 TICK: [AR]_WORK[TIME1], ;GET LOW WORD U 3560, 3561,3771,0003,7274,4117,0701,0000,0000,0301 ; 7282 SPEC/CLRCLK ;CLEAR CLOCK FLAG ; 7283 ;END [123] U 3561, 3562,4751,1205,4374,4007,0700,0000,0001,0000 ; 7284 TOCK: [BR]_0 XWD [10000] ;2^12 UNITS PER MS U 3562, 3563,0111,0503,4174,4007,0700,0000,0000,0000 ; 7285 [AR]_[AR]+[BR] ;INCREMENT THE TIMER U 3563, 2356,3770,0303,4174,0007,0520,0000,0000,0000 ; 7286 FIX [AR] SIGN, SKIP DP0 ;SEE IF IT OVERFLOWED ; 7287 =0 ; 7288 TOCK1: WORK[TIME1]_[AR], ;STORE THE NEW TIME U 2356, 3564,3333,0003,7174,4007,0700,0400,0000,0301 ; 7289 J/TOCK2 ;SKIP OVER THE OVERFLOW CODE U 2357, 2305,3771,0003,7274,4007,0701,0000,0000,0300 ; 7290 [AR]_WORK[TIME0] ;GET HIGH WORD ; 7291 =0* [AR]_[AR]+1, ;BUMP IT U 2305, 3572,0111,0703,4174,4007,0700,0010,0000,0000 ; 7292 CALL [WRTIM1] ;STORE BACK IN RAM ; 7293 [AR]_0, ;CAUSE LOW WORD WORD U 2307, 2356,4221,0003,4174,4007,0700,0000,0000,0000 ; 7294 J/TOCK1 ; TO GET STORED U 3564, 3565,3771,0003,7274,4007,0701,0000,0000,0303 ; 7295 TOCK2: [AR]_WORK[TTG] ; 7296 [AR]_[AR]-[BR], ;COUNT DOWN TIME TO GO U 3565, 2360,1111,0503,4174,4007,0421,4000,0000,0000 ; 7297 SKIP AD.LE.0 ;SEE IF IT TIMED OUT ; 7298 =0 ; 7299 TOCK3: WORK[TTG]_[AR], ;SAVE NEW TIME TO GO U 2360, 0002,3333,0003,7174,4004,1700,0400,0000,0303 ; 7300 RETURN [2] ;ALL DONE U 2361, 3566,3771,0003,7274,4007,0701,0000,0000,0302 ; 7301 [AR]_WORK[PERIOD] U 3566, 3567,3771,0005,4304,4007,0701,0000,0000,0000 ; 7302 [BR]_APR ;GET CURRENT FLAGS U 3567, 3570,3551,0505,4374,4007,0700,0000,0000,0040 ; 7303 [BR]_[BR].OR.#, #/40 ;SET TIMER INTERRUPT FLAG ; 7304 READ [BR], ;PLACE ON DP AND ; 7305 SPEC/APR FLAGS, ; LOAD INTO HARDWARE U 3570, 2360,3333,0005,4174,4237,0700,0000,0000,0000 ; 7306 J/TOCK3 ;ALL DONE ; 7307 ; KS10.MCR[7,3] 15:03 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 -- WRTIME & RDTIME ; 7308 .TOC "IO -- INTERNAL DEVICES -- WRTIME & RDTIME" ; 7309 ; 7310 1774: U 1774, 3571,4443,0000,4174,4007,0700,0200,0004,0002 ; 7311 WRTIME: START READ ;FETCH WORD AT E ; 7312 MEM READ, ;WAIT FOR DATA U 3571, 1114,3771,0003,4365,5007,0700,0200,0000,0002 ; 7313 [AR]_MEM ;PUT WORD IN AR ; 7314 =00 VMA_[HR]+1, ;BUMP E ; 7315 START READ, ;START MEMORY U 1114, 3661,0111,0702,4170,4007,0700,0210,0004,0012 ; 7316 CALL [LOADARX] ;PUT DATA IN ARX ; 7317 [ARX]_[ARX].AND.#, ;CLEAR PART HELD IN ; 7318 #/770000, ; HARDWARE COUNTER U 1115, 3572,4551,0404,4370,4007,0700,0010,0077,0000 ; 7319 HOLD LEFT, CALL [WRTIM1] ; 7320 =11 WORK[TIME1]_[ARX], ;IN WORK SPACE U 1117, 1400,3333,0004,7174,4007,0700,0400,0000,0301 ; 7321 J/DONE ;NEXT INSTRUCTION ; 7322 = ; 7323 WRTIM1: WORK[TIME0]_[AR], ;SAVE THE NEW VALUE U 3572, 0002,3333,0003,7174,4004,1700,0400,0000,0300 ; 7324 RETURN [2] ; 7325 ; 7326 1764: U 1764, 3573,4451,1205,4324,4007,0700,0000,0000,0000 ; 7327 RDTIME: [BR]_TIME ;READ THE TIME U 3573, 3574,4451,1204,4324,4007,0700,0000,0000,0000 ; 7328 [ARX]_TIME ; AGAIN U 3574, 3575,4451,1206,4324,4007,0700,0000,0000,0000 ; 7329 [BRX]_TIME ; AGAIN ; 7330 [BR].XOR.[ARX], ;SEE IF STABLE U 3575, 2362,6113,0405,4174,4007,0621,0000,0000,0000 ; 7331 SKIP AD.EQ.0 ; .. U 2362, 2363,3441,0604,4174,4007,0700,0000,0000,0000 ; 7332 =0 [ARX]_[BRX] ;NO THEN NEXT TRY MUST BE OK U 2363, 3576,3771,0005,7274,4007,0701,0000,0000,0300 ; 7333 [BR]_WORK[TIME0] ; 7334 [ARX]_[ARX]+WORK[TIME1], ;COMBINE PARTS U 3576, 1120,0551,0404,7274,4007,0671,0000,0000,0301 ; 7335 SKIP/-1 MS ;SEE IF OVERFLOW HAPPENED ; 7336 =00 SPEC/CLRCLK, ;CLEAR CLOCK FLAG ; 7337 [AR]_WORK[TIME1], 2T, ;GET LOW WORD FOR TOCK U 1120, 3561,3771,0003,7274,4117,0700,0010,0000,0301 ; 7338 CALL [TOCK] ;UPDATE CLOCKS ; 7339 READ [HR], LOAD VMA, ;DID NOT OVERFLOW U 1121, 3577,3333,0002,4174,4007,0700,0200,0003,0012 ; 7340 START WRITE, J/RDTIM1 ;STORE ANSWER U 1122, 1764,4443,0000,4174,4007,0700,0000,0000,0000 ; 7341 J/RDTIME ;TRY AGAIN ; 7342 = U 3577, 3600,3333,0005,4175,5007,0701,0200,0000,0002 ; 7343 RDTIM1: MEM WRITE, MEM_[BR] U 3600, 3601,0111,0702,4170,4007,0700,0200,0003,0012 ; 7344 VMA_[HR]+1, LOAD VMA, START WRITE U 3601, 1400,3333,0004,4175,5007,0701,0200,0000,0002 ; 7345 MEM WRITE, MEM_[ARX], J/DONE ; 7346 ; KS10.MCR[7,3] 15:03 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 -- WRINT & RDINT ; 7347 .TOC "IO -- INTERNAL DEVICES -- WRINT & RDINT" ; 7348 ; 7349 ; 7350 1775: U 1775, 3602,4443,0000,4174,4007,0700,0200,0004,0002 ; 7351 WRINT: START READ U 3602, 3603,3771,0003,4365,5007,0700,0200,0000,0002 ; 7352 MEM READ, [AR]_MEM U 3603, 3604,3333,0003,7174,4007,0700,0400,0000,0302 ; 7353 WORK[PERIOD]_[AR] ; 7354 WORK[TTG]_[AR], U 3604, 1400,3333,0003,7174,4007,0700,0400,0000,0303 ; 7355 J/DONE ; 7356 ; 7357 1765: ; 7358 RDINT: [BR]_WORK[PERIOD], U 1765, 3613,3771,0005,7274,4007,0701,0000,0000,0302 ; 7359 J/RTNREG ; 7360 ; KS10.MCR[7,3] 15:03 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 -- RDPI & WRPI ; 7361 .TOC "IO -- INTERNAL DEVICES -- RDPI & WRPI" ; 7362 ; 7363 1715: U 1715, 3613,3441,1405,4174,4007,0700,0000,0000,0000 ; 7364 RDPI: [BR]_[PI], J/RTNREG ; 7365 ; 7366 1714: U 1714, 2364,4553,0300,4374,4007,0331,0000,0001,0000 ; 7367 WRPI: TR [AR], PI.CLR/1 U 2364, 2365,4221,0014,4174,4007,0700,0000,0000,0000 ; 7368 =0 [PI]_0 U 2365, 2366,4553,0300,4374,4007,0331,0000,0074,0000 ; 7369 TR [AR], PI.MBZ/17 U 2366, 2737,4551,0202,4374,0007,0700,0000,0077,7740 ; 7370 =0 UUO U 2367, 3605,4551,0305,4374,4007,0700,0000,0000,0177 ; 7371 [BR]_[AR].AND.#,#/177 U 3605, 3606,3770,0505,4344,0007,0700,0000,0000,0000 ; 7372 [BR]_[BR] SWAP, HOLD RIGHT U 3606, 2370,4553,0300,4374,4007,0331,0000,0002,0000 ; 7373 TR [AR], PI.DIR/1 U 2370, 2371,5111,0514,4174,0007,0700,0000,0000,0000 ; 7374 =0 [PI]_[PI].AND.NOT.[BR], HOLD RIGHT U 2371, 2372,4553,0300,4374,4007,0331,0000,0000,4000 ; 7375 TR [AR], PI.REQ/1 U 2372, 2373,3111,0514,4174,0007,0700,0000,0000,0000 ; 7376 =0 [PI]_[PI].OR.[BR], HOLD RIGHT U 2373, 2374,4553,0300,4374,4007,0331,0000,0000,0200 ; 7377 TR [AR], PI.TSN/1 U 2374, 2375,3551,1414,4370,4007,0700,0000,0000,0200 ; 7378 =0 [PI]_[PI].OR.#,PI.ON/1, HOLD LEFT U 2375, 2376,4553,0300,4374,4007,0331,0000,0000,0400 ; 7379 TR [AR], PI.TSF/1 U 2376, 2377,5551,1414,4370,4007,0700,0000,0000,0200 ; 7380 =0 [PI]_[PI].AND.NOT.#,PI.ON/1, HOLD LEFT U 2377, 2400,4553,0300,4374,4007,0331,0000,0000,2000 ; 7381 TR [AR], PI.TCN/1 U 2400, 2401,3111,0514,4170,4007,0700,0000,0000,0000 ; 7382 =0 [PI]_[PI].OR.[BR], HOLD LEFT U 2401, 0304,4553,0300,4374,4007,0331,0000,0000,1000 ; 7383 TR [AR], PI.TCF/1 U 0304, 0305,5111,0514,4170,4007,0700,0000,0000,0000 ; 7384 =0**0 [PI]_[PI].AND.NOT.[BR], HOLD LEFT U 0305, 3610,3770,1416,4344,4007,0700,0010,0000,0000 ; 7385 PIEXIT: CALL LOAD PI ; 7386 =1**1 U 0315, 0110,3443,0100,4174,4156,4700,0200,0014,0012 ; 7387 DONE ; 7388 = ; 7389 ; 7390 ;SUBROUTINE TO LOAD PI HARDWARE ; 7391 ;CALL WITH: ; 7392 ; CALL LOAD PI ; 7393 ;RETURNS 10 WITH PI HARDWARE LOADED ; 7394 ; U 3607, 3610,3770,1416,4344,4007,0700,0000,0000,0000 ; 7395 LOADPI: [T0]_[PI] SWAP ;PUT ACTIVE CHANS IN LH U 3610, 3611,2441,0716,4170,4007,0700,4000,0000,0000 ; 7396 LDPI2: [T0]_-1, HOLD LEFT ;DONT MASK RH U 3611, 3612,4111,1416,4174,4007,0700,0000,0000,0000 ; 7397 [T0]_[T0].AND.[PI] ;ONLY REQUEST CHANS THAT ARE ON ; 7398 .NOT.[T0], LOAD PI, ;RELOAD HARDWARE U 3612, 0010,7443,1600,4174,4434,1700,0000,0000,0000 ; 7399 RETURN [10] ;RETURN TO CALLER ; 7400 ; KS10.MCR[7,3] 15:03 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 -- SUBROUTINES ; 7401 .TOC "IO -- INTERNAL DEVICES -- SUBROUTINES" ; 7402 ; 7403 ; 7404 ;HERE WITH SOMETHING IN BR STORE IT @AR U 3613, 3614,3443,0300,4174,4007,0700,0200,0003,0012 ; 7405 RTNREG: VMA_[AR], START WRITE U 3614, 1400,3333,0005,4175,5007,0701,0200,0000,0002 ; 7406 RTNRG1: MEM WRITE, MEM_[BR], J/DONE ; 7407 ; KS10.MCR[7,3] 15:03 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 ; 7408 ;CACHE SWEEP ; 7409 ; 7410 1722: ; 7411 CLRPT: VMA_[AR], ;PUT CORRECT ADDRESS IN VMA U 1722, 3615,3443,0300,4174,4147,0700,0200,0000,0010 ; 7412 LOAD PAGE TABLE ;GET SET TO WRITE PAGE TABLE U 3615, 2402,4221,0003,4174,4007,0700,0000,0000,0000 ; 7413 [AR]_0 ;CLEAR ENTRY ; 7414 =0 [AR]_#,#/377377, ;INITIAL VMA VALUE U 2402, 3621,3771,0003,4374,4007,0700,0010,0037,7377 ; 7415 CALL [SSWEEP] ;LOAD THE SC ; 7416 [BR]_#, #/1001, ;CONSTANT TO KEEP ADDING U 2403, 3616,3771,0005,4374,4247,0700,0000,0000,1001 ; 7417 CLRCSH ;START TO CLEAR CACHE U 3616, 2404,3333,0003,4174,4247,0700,0000,0000,1000 ; 7418 READ [AR], CLRCSH ;FIRST THING TO CLEAR ; 7419 =0 ; 7420 CLRPTL: [AR]_[AR]-[BR], ;UPDATE AR (AND PUT ON DP) ; 7421 CLRCSH, ;SWEEP ON NEXT STEP ; 7422 STEP SC, ;SKIP IF WE ARE DONE U 2404, 2404,1111,0503,4174,4247,0630,6000,0060,1000 ; 7423 J/CLRPTL ;LOOP FOR ALL ENTRIES U 2405, 2411,3333,0003,4174,4007,0700,0000,0000,0000 ; 7424 READ [AR], J/ZAPPTA ;CLEAR LAST ENTRY ; 7425 ; 7426 =0 ; 7427 SWEEP: [AR]_#,#/377377, ;INITIAL VMA VALUE U 2406, 3621,3771,0003,4374,4007,0700,0010,0037,7377 ; 7428 CALL [SSWEEP] ;LOAD NUMBER OF STEPS INTO SC ; 7429 [BR]_#, #/1001, ;CONSTANT TO KEEP ADDING U 2407, 3617,3771,0005,4374,4347,0700,0000,0000,1001 ; 7430 SWEEP ;START SWEEP U 3617, 2410,3333,0003,4174,4347,0700,0000,0000,1000 ; 7431 READ [AR], SWEEP ;FIRST THING TO CLEAR ; 7432 =0 ; 7433 SWEEPL: [AR]_[AR]-[BR], ;UPDATE AR (AND PUT ON DP) ; 7434 SWEEP, ;SWEEP ON NEXT STEP ; 7435 STEP SC, ;SKIP IF WE ARE DONE U 2410, 2410,1111,0503,4174,4347,0630,6000,0060,1000 ; 7436 J/SWEEPL ;LOOP FOR ALL ENTRIES ; 7437 ;CLEAR LAST ENTRY AND U 2411, 3620,4223,0000,7174,4007,0700,0400,0000,0424 ; 7438 ZAPPTA: WORK[PTA.U]_0 ; FORGET PAGE TABLE ADDRESS ; 7439 WORK[PTA.E]_0, ;FORGET PAGE TABLE ADDRESS U 3620, 1400,4223,0000,7174,4007,0700,0400,0000,0423 ; 7440 J/DONE ;ALL DONE ; 7441 ; 7442 SSWEEP: SC_S#, S#/375, ;NUMBER OF STEPS U 3621, 0001,4443,0000,4174,4004,1700,2000,0071,0375 ; 7443 RETURN [1] ;RETURN ; 7444 ; KS10.MCR[7,3] 15:03 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 ; 7445 ;WE COME HERE EITHER FROM NEXT INSTRUCTION DISPATCH OR PAGE FAIL ; 7446 ; LOGIC. IN ALL CASES, THE CURRENT INSTRUCTION IS CORRECTLY SETUP ; 7447 ; TO RESTART PROPERLY. ; 7448 ; 7449 ;FIRST SET THE CORRECT PI IN PROGRESS BIT ; 7450 ; [FLG]_[FLG].OR.#,FLG.PI/1, HOLD RIGHT, ; 7451 ; J/PI ;SET PI CYCLE AND PROCESS PI ; 7452 =1000 ; 7453 PI: AD/D, DBUS/PI NEW, ;LOOK AT NEW LEVEL ; 7454 DISP/DP LEFT, 3T, ;DISPATCH ON IT U 0770, 0770,3773,0000,4074,4003,1701,0000,0000,0000 ; 7455 J/PI ;GO TO 1 OF NEXT 7 PLACES U 0771, 3622,3551,1414,4370,4007,0700,0000,0004,0000 ; 7456 =1001 [PI]_[PI].OR.#, #/040000, HOLD LEFT, J/PIP1 U 0772, 3623,3551,1414,4370,4007,0700,0000,0002,0000 ; 7457 =1010 [PI]_[PI].OR.#, #/020000, HOLD LEFT, J/PIP2 U 0773, 3624,3551,1414,4370,4007,0700,0000,0001,0000 ; 7458 =1011 [PI]_[PI].OR.#, #/010000, HOLD LEFT, J/PIP3 U 0774, 3625,3551,1414,4370,4007,0700,0000,0000,4000 ; 7459 =1100 [PI]_[PI].OR.#, #/004000, HOLD LEFT, J/PIP4 U 0775, 3626,3551,1414,4370,4007,0700,0000,0000,2000 ; 7460 =1101 [PI]_[PI].OR.#, #/002000, HOLD LEFT, J/PIP5 U 0776, 3627,3551,1414,4370,4007,0700,0000,0000,1000 ; 7461 =1110 [PI]_[PI].OR.#, #/001000, HOLD LEFT, J/PIP6 U 0777, 3630,3551,1414,4370,4007,0700,0000,0000,0400 ; 7462 =1111 [PI]_[PI].OR.#, #/000400, HOLD LEFT, J/PIP7 U 3622, 3631,4751,1206,4374,4007,0700,0000,0000,0001 ; 7463 PIP1: [BRX]_0 XWD [1], J/PI10 ;REMEMBER WE ARE AT LEVEL 1 U 3623, 3631,4751,1206,4374,4007,0700,0000,0000,0002 ; 7464 PIP2: [BRX]_0 XWD [2], J/PI10 ;REMEMBER WE ARE AT LEVEL 2 U 3624, 3631,4751,1206,4374,4007,0700,0000,0000,0003 ; 7465 PIP3: [BRX]_0 XWD [3], J/PI10 ;REMEMBER WE ARE AT LEVEL 3 U 3625, 3631,4751,1206,4374,4007,0700,0000,0000,0004 ; 7466 PIP4: [BRX]_0 XWD [4], J/PI10 ;REMEMBER WE ARE AT LEVEL 4 U 3626, 3631,4751,1206,4374,4007,0700,0000,0000,0005 ; 7467 PIP5: [BRX]_0 XWD [5], J/PI10 ;REMEMBER WE ARE AT LEVEL 5 U 3627, 3631,4751,1206,4374,4007,0700,0000,0000,0006 ; 7468 PIP6: [BRX]_0 XWD [6], J/PI10 ;REMEMBER WE ARE AT LEVEL 6 U 3630, 3631,4751,1206,4374,4007,0700,0000,0000,0007 ; 7469 PIP7: [BRX]_0 XWD [7], J/PI10 ;REMEMBER WE ARE AT LEVEL 7 ; 7470 ; 7471 PI10: [AR]_[PI].AND.# CLR LH, ;TURN OFF PI SYSTEM U 3631, 3632,4251,1403,4374,4007,0700,0000,0007,7577 ; 7472 #/077577 ; TILL WE ARE DONE U 3632, 3633,7443,0300,4174,4437,0700,0000,0000,0000 ; 7473 .NOT.[AR], LOAD PI ; .. U 3633, 2412,4223,0000,4364,4277,0700,0200,0000,0010 ; 7474 ABORT MEM CYCLE ;NO MORE TRAPS ; 7475 =0 [AR]_VMA IO READ, ;SETUP TO READ WRU BITS ; 7476 WRU CYCLE/1, ; .. U 2412, 3666,4571,1203,4374,4007,0700,0010,0024,1300 ; 7477 CALL [STRTIO] ;START THE CYCLE ; 7478 MEM READ, ;WAIT FOR DATA ; 7479 [AR]_IO DATA, 3T, ;PUT DATA IN AR U 2413, 2414,3771,0003,4364,4007,0331,0200,0000,0002 ; 7480 SKIP ADR.EQ.0 ;SEE IF ANYONE THERE U 2414, 3642,4221,0004,4174,4007,0700,0000,0000,0000 ; 7481 =0 [ARX]_0, J/VECINT ;YES--VECTORED INTERRUPT U 2415, 3634,3445,0603,4174,4007,0700,0000,0000,0000 ; 7482 [AR]_[BRX]*2 ;N*2 ; 7483 [AR]_[AR]+#, #/40, 3T, ;2*N+40 U 3634, 3635,0551,0303,4370,4007,0701,0000,0000,0040 ; 7484 HOLD LEFT ; .. ; 7485 [AR]_[AR]+[EBR], ;ABSOULTE ADDRESS OF U 3635, 3636,0111,1003,4174,4007,0700,0000,0000,0000 ; 7486 J/PI40 ; INTERRUPT INSTRUCTION ; 7487 ; KS10.MCR[7,3] 15:03 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 ; 7488 ;HERE WITH ABSOLUTE ADDRESS OF INTERRUPT INSTRUCTION IN [AR] U 3636, 3637,3443,0300,4174,4007,0700,0200,0024,1016 ; 7489 PI40: VMA_[AR], VMA PHYSICAL READ ;FETCH THE INSTRUCTION ; 7490 PI50: MEM READ, [AR]_MEM, LOAD VMA, ;FETCH INSTRUCTION U 3637, 3640,3771,0003,4365,5007,0701,0200,0020,0012 ; 7491 3T, FORCE EXEC ;E IS EXEC MODE U 3640, 2416,6553,0300,4374,4007,0321,0000,0025,4340 ; 7492 [AR].XOR.#, #/254340, 3T, SKIP ADL.EQ.0 U 2416, 2420,6553,0300,4374,4007,0321,0000,0026,4000 ; 7493 =0 [AR].XOR.#, #/264000, SKIP ADL.EQ.0, 3T, J/PIJSR U 2417, 3641,4521,1205,4074,4007,0700,0000,0000,0000 ; 7494 [BR]_FLAGS ;SAVE FLAGS ; 7495 AD/ZERO, LOAD FLAGS, U 3641, 0060,4223,0000,4174,4467,0700,0000,0000,0004 ; 7496 J/PIXPCW ;ENTER EXEC MODE AND ASSUME ; 7497 ; WE HAVE AN XPCW ; 7498 ;IF WE HALT HERE ON A VECTORED INTERRUPT, WE HAVE ; 7499 ; T0/ WHAT WE READ FROM BUS AS VECTOR ; 7500 ; ARX/ EPT+100+DEVICE ; 7501 ; BR/ ADDRESS OF ILLEGAL INSTRUCTION ; 7502 ; BRX/ VECTOR (MASKED AND SHIFTED) ; 7503 =0 U 2420, 0104,4751,1217,4374,4007,0700,0000,0000,0101 ; 7504 PIJSR: HALT [ILLII] ;NOT A JSR OR XPCW U 2421, 0470,4443,0000,4174,4007,0700,0200,0023,0002 ; 7505 START WRITE, FORCE EXEC ;PREPARE TO STORE OLD PC ; 7506 =0*0 [BR]_PC WITH FLAGS, ;OLD PC U 0470, 3667,3741,0105,4074,4007,0700,0010,0000,0000 ; 7507 CALL [STOBR] ;STORE OLD PC ; 7508 =1*0 [AR]_#, #/0, HOLD RIGHT, ;PREPARE TO CLEAR FLAGS U 0474, 3664,3771,0003,4374,0007,0700,0010,0000,0000 ; 7509 CALL [INCAR] ;BUMP POINTER ; 7510 =1*1 [PC]_[AR], LOAD FLAGS, ;NEW PC U 0475, 2714,3441,0301,4174,4467,0700,0000,0000,0004 ; 7511 J/PISET ;CLEAR PI CYCLE & START ; 7512 ; INTERRUPT PROGRAM ; 7513 = ; 7514 ; KS10.MCR[7,3] 15:03 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 ; 7515 ;HERE TO PROCESS A VECTORED INTERRUPT. AT THIS POINT: ; 7516 ; AR/ WRU BITS (BIT 18 FOR DEVICE 0) ; 7517 ; ARX/ 0 ; 7518 VECINT: [AR]_[AR]*2, ;SHIFT LEFT (UNSHIFTED ON DP) U 3642, 2422,3445,0303,4174,4007,0530,0000,0000,0000 ; 7519 SKIP DP18 ;ANYONE THERE? ; 7520 =0 [ARX]_[ARX]+[XWD1], ;NO--BUMP BOTH HALVES U 2422, 3642,0111,1504,4174,4007,0700,0000,0000,0000 ; 7521 J/VECINT ;KEEP LOOKING ; 7522 [AR]_VMA IO READ, ;SETUP FOR VECTOR CYCLE U 2423, 2424,4571,1203,4374,4007,0700,0000,0024,1240 ; 7523 VECTOR CYCLE/1 ; .. ; 7524 =0 [AR]_[AR].OR.[ARX], ;PUT IN UNIT NUMBER U 2424, 3666,3111,0403,4174,4007,0700,0010,0000,0000 ; 7525 CALL [STRTIO] ;START CYCLE ; 7526 MEM READ, ;WAIT FOR VECTOR (SEE DPM5) U 2425, 2426,3771,0016,4364,4007,0700,0200,0000,0002 ; 7527 [T0]_IO DATA ;GET VECTOR ; 7528 =0 [BR]_[EBR]+#, 3T, #/100, ;EPT+100 U 2426, 3663,0551,1005,4374,4007,0701,0010,0000,0100 ; 7529 CALL [CLARXL] ;CLEAR ARX LEFT ; 7530 [ARX]_[ARX]+[BR], ;EPT+100+DEVICE U 2427, 3643,0111,0504,4174,4007,0700,0200,0024,1016 ; 7531 VMA PHYSICAL READ ;FETCH WORD ; 7532 MEM READ, [BR]_MEM, 3T, ;GET POINTER U 3643, 2430,3771,0005,4365,5007,0331,0200,0000,0002 ; 7533 SKIP ADR.EQ.0 ;SEE IF NON-ZERO ; 7534 =0 [BRX]_([T0].AND.#)*.5, 3T, ;OK--MAKE VECTOR MOD 400 U 2430, 3644,4557,1606,4374,4007,0701,0000,0000,0774 ; 7535 #/774, J/VECIN1 ; AND SHIFT OVER U 2431, 0104,4751,1217,4374,4007,0700,0000,0000,0102 ; 7536 HALT [ILLINT] U 3644, 3645,3447,0606,4174,4007,0700,0000,0000,0000 ; 7537 VECIN1: [BRX]_[BRX]*.5 ;SHIFT 1 MORE PLACE ; 7538 [BR]_[BR]+[BRX], ;ADDRESS OF WORD TO USE ; 7539 LOAD VMA, FORCE EXEC, ;FORCE EXEC VIRTUAL ADDRESS U 3645, 3637,0111,0605,4174,4007,0700,0200,0024,0012 ; 7540 START READ, J/PI50 ;GO GET INSTRUCTION ; 7541 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 208 ; INOUT.MIC[7,3] 13:32 7-JAN-1986 PRIORITY INTERRUPTS -- DISMISS SUBROUTINE ; 7542 .TOC "PRIORITY INTERRUPTS -- DISMISS SUBROUTINE" ; 7543 ; 7544 ;SUBROUTINE TO DISMISS THE HIGHEST PI IN PROGRESS ; 7545 ;RETURNS 4 ALWAYS ; 7546 ; 7547 ;DISMISS: ; 7548 ; TR [PI], #/077400 ;ANY PI IN PROGRESS? ; 7549 =0 U 2432, 3646,3771,0005,4374,4007,0700,0000,0004,0000 ; 7550 JEN1: [BR]_#, PI.IP1/1, J/DSMS1 ;YES--START LOOP U 2433, 0004,4443,0000,4174,4004,1700,0000,0000,0000 ; 7551 RETURN [4] ;NO--JUST RETURN ; 7552 U 3646, 2434,4113,0514,4174,4007,0330,0000,0000,0000 ; 7553 DSMS1: [PI].AND.[BR], SKIP ADR.EQ.0 U 2434, 0004,5111,0514,4170,4004,1700,0000,0000,0000 ; 7554 =0 [PI]_[PI].AND.NOT.[BR], HOLD LEFT, RETURN [4] U 2435, 3646,3447,0505,4174,4007,0700,0000,0000,0000 ; 7555 [BR]_[BR]*.5, J/DSMS1 ; 7556 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 209 ; INOUT.MIC[7,3] 13:32 7-JAN-1986 EXTERNAL IO INSTRUCTIONS ; 7557 .TOC "EXTERNAL IO INSTRUCTIONS" ; 7558 ; 7559 .DCODE D 0710, 1210,1614,0100 ; 7560 710: IOT, WORD-TNE, J/TIOX D 0711, 1214,1614,0100 ; 7561 711: IOT, WORD-TNN, J/TIOX D 0720, 1200,1614,0100 ; 7562 720: IOT, TNE, J/TIOX D 0721, 1204,1614,0100 ; 7563 721: IOT, TNN, J/TIOX ; 7564 .UCODE ; 7565 ; 7566 1614: U 1614, 2436,4443,0000,4174,4007,0700,0010,0000,0000 ; 7567 TIOX: CALL [IORD] U 1617, 0014,4551,0305,0274,4003,7700,0000,0000,0000 ; 7568 1617: [BR]_[AR].AND.AC, TEST DISP ; 7569 ; 7570 .DCODE D 0712, 1210,1460,0100 ; 7571 712: IOT, B/10, J/RDIO D 0713, 1210,1461,0100 ; 7572 713: IOT, B/10, J/WRIO D 0722, 1200,1460,0100 ; 7573 722: IOT, B/0, J/RDIO D 0723, 1200,1461,0100 ; 7574 723: IOT, B/0, J/WRIO ; 7575 .UCODE ; 7576 ; 7577 1460: U 1460, 2436,4443,0000,4174,4007,0700,0010,0000,0000 ; 7578 RDIO: CALL [IORD] U 1463, 1400,3440,0303,0174,4007,0700,0400,0000,0000 ; 7579 1463: AC_[AR], J/DONE ; 7580 ; 7581 1461: U 1461, 2446,3771,0005,0276,6007,0700,0000,0000,0000 ; 7582 WRIO: [BR]_AC, J/IOWR ; 7583 ; 7584 .DCODE D 0714, 1210,1644,0100 ; 7585 714: IOT, B/10, J/BIXUB D 0715, 1214,1644,0100 ; 7586 715: IOT, B/14, J/BIXUB D 0724, 1200,1644,0100 ; 7587 724: IOT, B/0, J/BIXUB D 0725, 1204,1644,0100 ; 7588 725: IOT, B/4, J/BIXUB ; 7589 .UCODE ; 7590 ; 7591 1644: ; 7592 BIXUB: [BRX]_[AR], ;SAVE EFFECTIVE ADDRESS U 1644, 2436,3441,0306,4174,4007,0700,0010,0000,0000 ; 7593 CALL [IORD] ;GO GET THE DATA ; 7594 1647: [BR]_[AR], ;COPY DATA ITEM U 1647, 1013,3441,0305,4174,4003,7700,0000,0000,0000 ; 7595 B DISP ;SEE IF SET OR CLEAR ; 7596 =1011 [BR]_[BR].OR.AC, ;SET BITS U 1013, 3647,3551,0505,0274,4007,0700,0000,0000,0000 ; 7597 J/BIXUB1 ;GO DO WRITE ; 7598 [BR]_[BR].AND.NOT.AC, ;CLEAR BITS U 1017, 3647,5551,0505,0274,4007,0700,0000,0000,0000 ; 7599 J/BIXUB1 ;GO DO WRITE ; 7600 ; 7601 BIXUB1: [AR]_[BRX], ;RESTORE ADDRESS U 3647, 2446,3441,0603,4174,4007,0700,0000,0000,0000 ; 7602 J/IOWR ; 7603 ; KS10.MCR[7,3] 15:03 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 ; 7604 ;SUBROUTINE TO READ FROM AN IO DEVICE ; 7605 ;CALL WITH: ; 7606 ; SECTION 0 EFFECTIVE ADDRESS IN AR ; 7607 ; INSTRUCTION IN HR ; 7608 ;RETURN 3 WITH WORD OR BYTE IN AR ; 7609 ; ; 7610 =0 ; 7611 IORD: CLR IO BUSY, ;CLEAR BUSY U 2436, 2456,4443,0000,4174,4137,0700,0010,0000,0000 ; 7612 CALL [IOEA] ;COMPUTE IO EA U 2437, 0067,4443,0000,4174,4003,7700,0000,0000,0000 ; 7613 B DISP ; 7614 =10111 [BR]_VMA IO READ, ;BYTE MODE ; 7615 IO BYTE/1, ;SET BYTE FLAG U 0067, 2440,4571,1205,4374,4007,0700,0000,0024,1220 ; 7616 J/IORD1 ;GO DO C/A CYCLE U 0077, 2440,4571,1205,4374,4007,0700,0000,0024,1200 ; 7617 =11111 [BR]_VMA IO READ ;WORD MODE ; 7618 = ; 7619 =0 ; 7620 IORD1: VMA_[AR].OR.[BR] WITH FLAGS, U 2440, 3656,3113,0305,4174,4007,0701,0210,0000,0036 ; 7621 CALL [IOWAIT] ;WAIT FOR THINGS COMPLETE ; 7622 MEM READ, ;MAKE SURE REALLY READY ; 7623 [BR]_IO DATA, ;PUT DATA IN BR U 2441, 1027,3771,0005,4364,4003,7700,0200,0000,0002 ; 7624 B DISP ;SEE IF BYTE MODE U 1027, 2442,4553,0300,4374,4007,0331,0000,0000,0001 ; 7625 =0111 TR [AR], #/1, J/IORD2 ;BYTE MODE SEE IF ODD U 1037, 0003,3441,0503,4174,4004,1700,0000,0000,0000 ; 7626 [AR]_[BR], RETURN [3] ;ALL DONE ; 7627 ; 7628 ;HERE ON WORD MODE ; 7629 =0 ; 7630 IORD2: [BR]_[BR]*.5, SC_5, ;LEFT BYTE U 2442, 2444,3447,0505,4174,4007,0700,2000,0071,0005 ; 7631 J/IORD3 ;GO SHIFT IT ; 7632 [AR]_[BR].AND.#, ;MASK IT U 2443, 0003,4551,0503,4374,4004,1700,0000,0000,0377 ; 7633 #/377, RETURN [3] ;ALL DONE ; 7634 ; 7635 =0 ; 7636 IORD3: [BR]_[BR]*.5, ;SHIFT OVER U 2444, 2444,3447,0505,4174,4007,0630,2000,0060,0000 ; 7637 STEP SC, J/IORD3 ; .. ; 7638 [AR]_[BR].AND.#, ;MASK IT U 2445, 0003,4551,0503,4374,4004,1700,0000,0000,0377 ; 7639 #/377, RETURN [3] ;ALL DONE ; 7640 ; KS10.MCR[7,3] 15:03 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 ; 7641 ;ROUTINE TO WRITE TO AN IO DEVICE ; 7642 ;CALL WITH: ; 7643 ; SECTION 0 EFFECTIVE ADDRESS IN AR ; 7644 ; INSTRUCTION IN HR ; 7645 ; WORD OR BYTE IN BR ; 7646 ;RETURNS BACK TO USER ; 7647 ; ; 7648 =0 ; 7649 IOWR: CLR IO BUSY, ;CLEAR BUSY U 2446, 2456,4443,0000,4174,4137,0700,0010,0000,0000 ; 7650 CALL [IOEA] ;COMPUTE IO EA U 2447, 0227,4443,0000,4174,4003,7700,0000,0000,0000 ; 7651 B DISP U 0227, 2452,4553,0300,4374,4007,0331,0000,0000,0001 ; 7652 =10111 TR [AR], #/1, J/IOWR2 ;BYTE MODE U 0237, 3650,4571,1204,4374,4007,0700,0000,0021,1200 ; 7653 =11111 [ARX]_VMA IO WRITE ;SETUP FLAGS ; 7654 = U 3650, 2450,3113,0304,4174,4007,0701,0200,0000,0036 ; 7655 IOWR1: VMA_[AR].OR.[ARX] WITH FLAGS ; 7656 =0 MEM WRITE, MEM_[BR], ;SEND DATA U 2450, 3656,3333,0005,4175,5007,0701,0210,0000,0002 ; 7657 CALL [IOWAIT] ;WAIT FOR DATA U 2451, 0110,3443,0100,4174,4156,4700,0200,0014,0012 ; 7658 DONE ;RETURN ; 7659 ; 7660 ;HERE FOR BYTE MODE ; 7661 =0 ; 7662 IOWR2: [BR]_[BR]*2, SC_5, ;ODD--MOVE LEFT U 2452, 2454,3445,0505,4174,4007,0700,2000,0071,0005 ; 7663 J/IOWR3 ; .. ; 7664 [ARX]_VMA IO WRITE, ;SETUP FLAGS U 2453, 3650,4571,1204,4374,4007,0700,0000,0021,1220 ; 7665 IO BYTE/1, J/IOWR1 ; .. ; 7666 ; 7667 =0 ; 7668 IOWR3: [BR]_[BR]*2, STEP SC, ;SHIFT LEFT U 2454, 2454,3445,0505,4174,4007,0630,2000,0060,0000 ; 7669 J/IOWR3 ;KEEP SHIFTING ; 7670 [ARX]_VMA IO WRITE, ;SETUP FLAGS U 2455, 3650,4571,1204,4374,4007,0700,0000,0021,1220 ; 7671 IO BYTE/1, J/IOWR1 ; .. ; 7672 ; KS10.MCR[7,3] 15:03 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 ; 7673 ;HERE TO COMPUTE IO EFFECTIVE ADDRESS ; 7674 ;CALL WITH: ; 7675 ; SECTION 0 EFFECTIVE ADDRESS IN AR ; 7676 ; INSTRUCTION IN HR ; 7677 ;RETURN 1 WITH EA IN AR ; 7678 ; ; 7679 =0 ; 7680 IOEA: VMA_[PC]-1, ;GET INSTRUCTION ; 7681 START READ, ; .. U 2456, 3660,1113,0701,4170,4007,0700,4210,0004,0012 ; 7682 CALL [LOADAR] ;PUT WORD IN AR U 2457, 3651,7441,0306,4174,4007,0700,0000,0000,0000 ; 7683 [BRX]_.NOT.[AR] ;SEE IF IN RANGE 700-777 U 3651, 2460,4553,0600,4374,4007,0321,0000,0070,0000 ; 7684 TL [BRX], #/700000 ; .. ; 7685 =0 U 2460, 2462,4553,0200,4374,4007,0321,0000,0000,0020 ; 7686 IOEA1: TL [HR], #/20, J/IOEA2 ;INDIRECT? ; 7687 WORK[YSAVE]_[AR] CLR LH, ;DIRECT IO INSTRUCTION U 2461, 2460,4713,1203,7174,4007,0700,0400,0000,0422 ; 7688 J/IOEA1 ;SAVE Y FOR EA CALCULATION ; 7689 =0 ; 7690 IOEA2: [AR]_WORK[YSAVE], ;@--GET SAVED Y U 2462, 3652,3771,0003,7274,4007,0701,0000,0000,0422 ; 7691 J/IOEAI ;GET Y AND GO U 2463, 1055,4443,0000,2174,4006,6700,0000,0000,0000 ; 7692 EA MODE DISP ;WAS THERE INDEXING? ; 7693 =1101 [ARX]_XR, SKIP ADL.LE.0, ;SEE IF LOCAL OR GLOBAL INDEXING U 1055, 2466,3771,0004,2274,4007,0120,0000,0000,0000 ; 7694 2T, J/IOEAX ; .. ; 7695 [AR]_WORK[YSAVE], ;JUST PLAIN IO U 1057, 0001,3771,0003,7274,4124,1701,0000,0000,0422 ; 7696 CLR IO LATCH, RETURN [1] ; 7697 ; 7698 IOEAI: READ [HR], DBUS/DP, ;LOAD XR FLOPS IN CASE U 3652, 3653,3333,0002,4174,4217,0700,0000,0000,0000 ; 7699 LOAD INST EA ; THERE IS INDEXING U 3653, 2464,4553,0200,4374,4007,0321,0000,0000,0017 ; 7700 TL [HR], #/17 ;WAS THERE ALSO INDEXING U 2464, 2465,0551,0303,2270,4007,0701,0000,0000,0000 ; 7701 =0 [AR]_[AR]+XR, 3T, HOLD LEFT ;YES--ADD IN INDEX VALUE U 2465, 3654,3443,0300,4174,4007,0700,0200,0004,0012 ; 7702 VMA_[AR], START READ ;FETCH DATA WORD ; 7703 MEM READ, [AR]_MEM, ;GO GET DATA WORD U 3654, 0001,3771,0003,4365,5124,1700,0200,0000,0002 ; 7704 CLR IO LATCH, RETURN [1] ; 7705 ; 7706 =0 ; 7707 IOEAX: [AR]_[ARX]+WORK[YSAVE], ;GLOBAL INDEXING U 2466, 0001,0551,0403,7274,4124,1701,0000,0000,0422 ; 7708 CLR IO LATCH, RETURN [1] U 2467, 3655,0551,0403,7274,4007,0701,0000,0000,0422 ; 7709 [AR]_[ARX]+WORK[YSAVE] ;LOCAL INDEXING ; 7710 [AR]_0, HOLD RIGHT, U 3655, 0001,4221,0003,4174,0124,1700,0000,0000,0000 ; 7711 CLR IO LATCH, RETURN [1] ; 7712 ; KS10.MCR[7,3] 15:03 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 ; 7713 ;WAIT FOR IO TO COMPLETE ; 7714 ;RETURNS 1 OR PAGE FAILS ; 7715 ; ; 7716 IOWAIT: SC_S#, S#/200, ;DELAY ; 7717 [T0]_VMA, ;GET VMA U 3656, 1124,3771,0016,4354,4007,0650,2000,0071,0200 ; 7718 SKIP/-IO BUSY ;SEE IF BUSY YET ; 7719 =00 ; 7720 IOW1: CLR IO LATCH, ;WENT BUSY ; 7721 WORK[SV.VMA]_[T0], ;MAKE SURE SV.VMA IS SETUP U 1124, 3657,3333,0016,7174,4127,0700,0400,0000,0210 ; 7722 J/IOW2 ;WAIT FOR IT TO CLEAR ; 7723 SC_SC-1, SCAD DISP, 5T, ;SEE IF DONE YET ; 7724 SKIP/-IO BUSY, ; .. U 1125, 1124,4443,0000,4174,4006,7653,2000,0060,0000 ; 7725 J/IOW1 ;BACK TO LOOP ; 7726 CLR IO LATCH, ;WENT BUSY AND TIMEOUT ; 7727 WORK[SV.VMA]_[T0], ;MAKE SURE SV.VMA IS SETUP U 1126, 3657,3333,0016,7174,4127,0700,0400,0000,0210 ; 7728 J/IOW2 ; .. ; 7729 WORK[SV.VMA]_[T0], ;MAKE SURE SV.VMA IS SETUP U 1127, 2473,3333,0016,7174,4007,0700,0400,0000,0210 ; 7730 J/IOW5 ;GO TRAP ; 7731 ; 7732 IOW2: SC_S#, S#/777, ;GO TIME IO U 3657, 2470,4443,0000,4174,4007,0650,2000,0071,0777 ; 7733 SKIP/-IO BUSY ; .. ; 7734 =0 ; 7735 IOW3: CLR IO LATCH, ;TRY TO CLEAR LATCH U 2470, 2472,4443,0000,4174,4127,0630,2000,0060,0000 ; 7736 STEP SC, J/IOW4 ;STILL BUSY U 2471, 0001,4443,0000,4174,4004,1700,0000,0000,0000 ; 7737 RETURN [1] ;IDLE ; 7738 ; 7739 =0 ; 7740 IOW4: CLR IO LATCH, 5T, ;TRY TO CLEAR LATCH ; 7741 SKIP/-IO BUSY, ;SEE IF STILL BUSY U 2472, 2470,4443,0000,4174,4127,0653,0000,0000,0000 ; 7742 J/IOW3 ; .. U 2473, 1501,4571,1206,4374,4007,0700,0000,0020,0000 ; 7743 IOW5: [BRX]_[200000] XWD 0, J/HARD ; 7744 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 214 ; INOUT.MIC[7,3] 13:32 7-JAN-1986 SMALL SUBROUTINES ; 7745 .TOC "SMALL SUBROUTINES" ; 7746 ; 7747 ;HERE ARE A COLLECTION ON 1-LINE SUBROUTINES ; 7748 LOADAR: MEM READ, [AR]_MEM, ;FROM MEMORY TO AR U 3660, 0001,3771,0003,4365,5004,1700,0200,0000,0002 ; 7749 RETURN [1] ;RETURN TO CALLER ; 7750 U 3661, 0001,3771,0004,4365,5004,1700,0200,0000,0002 ; 7751 LOADARX: MEM READ, [ARX]_MEM, RETURN [1] ; 7752 U 3662, 0001,3772,0000,4365,5004,1700,0200,0000,0002 ; 7753 LOADQ: MEM READ, Q_MEM, RETURN [1] ; 7754 U 3663, 0001,4221,0004,4174,0004,1700,0000,0000,0000 ; 7755 CLARXL: [ARX]_0, HOLD RIGHT, RETURN [1] ; 7756 U 3664, 0001,0111,0703,4174,4004,1700,0000,0000,0000 ; 7757 INCAR: [AR]_[AR]+1, RETURN [1] ; 7758 U 3665, 0001,3445,0505,4174,4004,1700,0000,0000,0000 ; 7759 SBRL: [BR]_[BR]*2, RETURN [1] ; 7760 U 3666, 0001,3443,0300,4174,4004,1701,0200,0000,0036 ; 7761 STRTIO: VMA_[AR] WITH FLAGS, RETURN [1] ; 7762 U 3667, 0004,3333,0005,4175,5004,1701,0200,0000,0002 ; 7763 STOBR: MEM WRITE, MEM_[BR], RETURN [4] ; 7764 U 3670, 0001,3333,0001,4175,5004,1701,0200,0000,0002 ; 7765 STOPC: MEM WRITE, MEM_[PC], RETURN [1] ; 7766 U 3671, 0001,3440,0404,0174,4004,1700,0400,0000,0000 ; 7767 AC_ARX: AC_[ARX], RETURN [1] ; 7768 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 215 ; INOUT.MIC[7,3] 13:32 7-JAN-1986 UNDEFINED IO INSTRUCTIONS ; 7769 .TOC "UNDEFINED IO INSTRUCTIONS" ; 7770 ; 7771 .DCODE D 0703, 0003,1650,2100 ; 7772 703: I, B/3, J/IOT700 D 0706, 0006,1650,2100 ; 7773 706: I, B/6, J/IOT700 D 0707, 0007,1650,2100 ; 7774 I, B/7, J/IOT700 ; 7775 D 0716, 0006,1651,2100 ; 7776 716: I, B/6, J/IOT710 D 0717, 0007,1651,2100 ; 7777 I, B/7, J/IOT710 ; 7778 D 0726, 0006,1652,2100 ; 7779 726: I, B/6, J/IOT720 D 0727, 0007,1652,2100 ; 7780 I, B/7, J/IOT720 ; 7781 D 0730, 0000,1653,2100 ; 7782 730: I, B/0, J/IOT730 D 0731, 0001,1653,2100 ; 7783 I, B/1, J/IOT730 D 0732, 0002,1653,2100 ; 7784 I, B/2, J/IOT730 D 0733, 0003,1653,2100 ; 7785 I, B/3, J/IOT730 D 0734, 0004,1653,2100 ; 7786 I, B/4, J/IOT730 D 0735, 0005,1653,2100 ; 7787 I, B/5, J/IOT730 D 0736, 0006,1653,2100 ; 7788 I, B/6, J/IOT730 D 0737, 0007,1653,2100 ; 7789 I, B/7, J/IOT730 ; 7790 D 0740, 0000,1654,2100 ; 7791 740: I, B/0, J/IOT740 D 0741, 0001,1654,2100 ; 7792 I, B/1, J/IOT740 D 0742, 0002,1654,2100 ; 7793 I, B/2, J/IOT740 D 0743, 0003,1654,2100 ; 7794 I, B/3, J/IOT740 D 0744, 0004,1654,2100 ; 7795 I, B/4, J/IOT740 D 0745, 0005,1654,2100 ; 7796 I, B/5, J/IOT740 D 0746, 0006,1654,2100 ; 7797 I, B/6, J/IOT740 D 0747, 0007,1654,2100 ; 7798 I, B/7, J/IOT740 ; 7799 D 0750, 0000,1655,2100 ; 7800 750: I, B/0, J/IOT750 D 0751, 0001,1655,2100 ; 7801 I, B/1, J/IOT750 D 0752, 0002,1655,2100 ; 7802 I, B/2, J/IOT750 D 0753, 0003,1655,2100 ; 7803 I, B/3, J/IOT750 D 0754, 0004,1655,2100 ; 7804 I, B/4, J/IOT750 D 0755, 0005,1655,2100 ; 7805 I, B/5, J/IOT750 D 0756, 0006,1655,2100 ; 7806 I, B/6, J/IOT750 D 0757, 0007,1655,2100 ; 7807 I, B/7, J/IOT750 ; 7808 D 0760, 0000,1656,2100 ; 7809 760: I, B/0, J/IOT760 D 0761, 0001,1656,2100 ; 7810 I, B/1, J/IOT760 D 0762, 0002,1656,2100 ; 7811 I, B/2, J/IOT760 D 0763, 0003,1656,2100 ; 7812 I, B/3, J/IOT760 D 0764, 0004,1656,2100 ; 7813 I, B/4, J/IOT760 D 0765, 0005,1656,2100 ; 7814 I, B/5, J/IOT760 D 0766, 0006,1656,2100 ; 7815 I, B/6, J/IOT760 D 0767, 0007,1656,2100 ; 7816 I, B/7, J/IOT760 ; 7817 ; KS10.MCR[7,3] 15:03 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 D 0770, 0000,1657,2100 ; 7818 770: I, B/0, J/IOT770 D 0771, 0001,1657,2100 ; 7819 I, B/1, J/IOT770 D 0772, 0002,1657,2100 ; 7820 I, B/2, J/IOT770 D 0773, 0003,1657,2100 ; 7821 I, B/3, J/IOT770 D 0774, 0004,1657,2100 ; 7822 I, B/4, J/IOT770 D 0775, 0005,1657,2100 ; 7823 I, B/5, J/IOT770 D 0776, 0006,1657,2100 ; 7824 I, B/6, J/IOT770 D 0777, 0007,1657,2100 ; 7825 I, B/7, J/IOT770 ; 7826 .UCODE ; 7827 ; 7828 1650: U 1650, 2737,4551,0202,4374,0007,0700,0000,0077,7740 ; 7829 IOT700: UUO ; 7830 1651: ; 7831 IOT710: ; 7832 .IFNOT/UBABLT U 1651, 2737,4551,0202,4374,0007,0700,0000,0077,7740 ; 7833 UUO ;;7834 .IF/UBABLT ;;7835 J/BLTX ;GO TO COMMON CODE FOR UBABLT INSTRS ; 7836 .ENDIF/UBABLT ; 7837 1652: U 1652, 2737,4551,0202,4374,0007,0700,0000,0077,7740 ; 7838 IOT720: UUO ; 7839 1653: U 1653, 2737,4551,0202,4374,0007,0700,0000,0077,7740 ; 7840 IOT730: UUO ; 7841 1654: U 1654, 2737,4551,0202,4374,0007,0700,0000,0077,7740 ; 7842 IOT740: UUO ; 7843 1655: U 1655, 2737,4551,0202,4374,0007,0700,0000,0077,7740 ; 7844 IOT750: UUO ; 7845 1656: U 1656, 2737,4551,0202,4374,0007,0700,0000,0077,7740 ; 7846 IOT760: UUO ; 7847 1657: U 1657, 2737,4551,0202,4374,0007,0700,0000,0077,7740 ; 7848 IOT770: UUO ; 7849 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 217 ; INOUT.MIC[7,3] 13:32 7-JAN-1986 UMOVE AND UMOVEM ; 7850 .TOC "UMOVE AND UMOVEM" ; 7851 ; 7852 .DCODE D 0704, 1200,1754,0100 ; 7853 704: IOT, J/UMOVE D 0705, 1200,1755,0100 ; 7854 IOT, J/UMOVEM ; 7855 .UCODE ; 7856 ; 7857 1754: ; 7858 UMOVE: VMA_[AR], ;LOAD VMA ; 7859 START READ, ;START MEMORY U 1754, 3672,3443,0300,4174,4207,0700,0200,0004,0012 ; 7860 SPEC/PREV ;FORCE PREVIOUS ; 7861 MEM READ, ;WAIT FOR MEMORY ; 7862 [AR]_MEM, ;PUT DATA IN AR U 3672, 1515,3771,0003,4365,5007,0700,0200,0000,0002 ; 7863 J/STAC ;GO PUT AR IN AC ; 7864 ; 7865 1755: ; 7866 UMOVEM: VMA_[AR], ;LOAD VMA ; 7867 START WRITE, ;START MEMORY U 1755, 3673,3443,0300,4174,4207,0700,0200,0003,0012 ; 7868 SPEC/PREV ;FORCE PREVIOUS ; 7869 [AR]_AC, ;FETCH AC U 3673, 1516,3771,0003,0276,6007,0700,0000,0000,0000 ; 7870 J/STMEM ;STORE IN MEMORY ; 7871 ; KS10.MCR[7,3] 15:03 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 ; 7872 ;HERE WITH HALT CODE IN THE T1 ; 7873 =010* ; 7874 HALTED: WORK[SV.ARX]_[ARX], ;SAVE TEMP REGISTER U 0104, 3676,3333,0004,7174,4007,0700,0410,0000,0212 ; 7875 CALL [SAVVMA] ;PUT VMA IN WORK[SV.VMA] ; 7876 =110* ABORT MEM CYCLE, ;ABORT CYCLE IN PROGRESS U 0114, 3675,4223,0000,4364,4277,0700,0210,0000,0010 ; 7877 CALL [WRTHSB] ;WRITE HALT STATUS BLOCK ; 7878 =111* U 0116, 3674,4221,0004,4174,4007,0700,0200,0021,1016 ; 7879 PWRON: [ARX]_0, VMA PHYSICAL WRITE ;STORE HALT CODE ; 7880 = U 3674, 2474,3333,0017,4175,5007,0701,0200,0000,0002 ; 7881 MEM WRITE, MEM_[T1] ; IN LOCATION 0 ; 7882 =0 NEXT [ARX] PHYSICAL WRITE, U 2474, 3670,0111,0704,4170,4007,0700,0210,0023,1016 ; 7883 CALL [STOPC] U 2475, 0005,4443,0000,4174,4107,0700,0000,0000,0074 ; 7884 H1: SET HALT, J/HALTLP ;TELL CONSOLE WE HAVE HALTED ; 7885 ; 7886 ; 7887 4: UNHALT, ;RESET CONSOLE U 0004, 2476,4443,0000,4174,4107,0640,0000,0000,0062 ; 7888 SKIP EXECUTE, J/CONT ;SEE IF CO OR EX ; 7889 5: U 0005, 0004,4443,0000,4174,4007,0660,0000,0000,0000 ; 7890 HALTLP: SKIP/-CONTINUE, J/4 ;WAIT FOR CONTINUE ; 7891 ; 7892 =0 ; 7893 CONT: VMA_[PC], ;LOAD PC INTO VMA ; 7894 FETCH, ;START READ U 2476, 0117,3443,0100,4174,4007,0700,0200,0014,0012 ; 7895 J/XCTGO ;DO THE INSTRUCTION U 2477, 2500,4571,1203,4374,4007,0700,0000,0024,1200 ; 7896 [AR]_VMA IO READ ;PUT FLAGS IN AR ; 7897 =0 [AR]_[AR].OR.#, ;PUT IN ADDRESS ; 7898 #/200000, HOLD LEFT, ; OF CSL REGISTER U 2500, 3666,3551,0303,4370,4007,0700,0010,0020,0000 ; 7899 CALL [STRTIO] ; 7900 CONT1: MEM READ, ;WAIT FOR DATA ; 7901 [HR]_MEM, ;PUT IN HR ; 7902 LOAD INST, ;LOAD IR, ETC. U 2501, 2716,3771,0002,4365,5617,0700,0200,0000,0002 ; 7903 J/XCT1 ;GO DO THE INSTRUCTION ; 7904 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 219 ; INOUT.MIC[7,3] 13:32 7-JAN-1986 WRITE HALT STATUS BLOCK ; 7905 .TOC "WRITE HALT STATUS BLOCK" ; 7906 ; 7907 ;THE HALT STATUS BLOCK LOOKS LIKE: ; 7908 ; 7909 ; !=======================================================! ; 7910 ; !00! MAG ! ; 7911 ; !-------------------------------------------------------! ; 7912 ; !01! PC ! ; 7913 ; !-------------------------------------------------------! ; 7914 ; !02! HR ! ; 7915 ; !-------------------------------------------------------! ; 7916 ; !03! AR ! ; 7917 ; !-------------------------------------------------------! ; 7918 ; !04! ARX ! ; 7919 ; !-------------------------------------------------------! ; 7920 ; !05! BR ! ; 7921 ; !-------------------------------------------------------! ; 7922 ; !06! BRX ! ; 7923 ; !-------------------------------------------------------! ; 7924 ; !07! ONE ! ; 7925 ; !-------------------------------------------------------! ; 7926 ; !10! EBR ! ; 7927 ; !-------------------------------------------------------! ; 7928 ; !11! UBR ! ; 7929 ; !-------------------------------------------------------! ; 7930 ; !12! MASK ! ; 7931 ; !-------------------------------------------------------! ; 7932 ; !13! FLG ! ; 7933 ; !-------------------------------------------------------! ; 7934 ; !14! PI ! ; 7935 ; !-------------------------------------------------------! ; 7936 ; !15! XWD1 ! ; 7937 ; !-------------------------------------------------------! ; 7938 ; !16! T0 ! ; 7939 ; !-------------------------------------------------------! ; 7940 ; !17! T1 ! ; 7941 ; !=======================================================! ; 7942 ; ! VMA FLAGS ! VMA ! ; 7943 ; !=======================================================! ; 7944 ; KS10.MCR[7,3] 15:03 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 ; 7945 ;START AT 1 TO DUMP 2901 REGISTERS INTO MAIN MEMORY ; 7946 1: WORK[SV.ARX]_[ARX], ;SAVE TEMP REGISTER U 0001, 3676,3333,0004,7174,4007,0700,0410,0000,0212 ; 7947 CALL [SAVVMA] ;WORK[SV.VMA]_VMA U 0011, 0024,3771,0004,7274,4007,0701,0000,0000,0227 ; 7948 11: [ARX]_WORK[HSBADR] U 0024, 3700,4223,0000,4364,4277,0700,0210,0000,0010 ; 7949 =10* ABORT MEM CYCLE, CALL [DUMP] U 0026, 2475,4443,0000,4174,4107,0700,0000,0000,0074 ; 7950 SET HALT, J/H1 ; 7951 ; 7952 ; 7953 WRTHSB: [ARX]_WORK[HSBADR], ;GET ADDRESS OF HSB U 3675, 2502,3771,0004,7274,4007,0422,0000,0000,0227 ; 7954 SKIP AD.LE.0, 4T ;SEE IF VALID ; 7955 =0 READ [MASK], LOAD PI, ;TURN OFF PI SYSTEM U 2502, 3700,3333,0012,4174,4437,0700,0000,0000,0000 ; 7956 J/DUMP ; AND GO TAKE DUMP ; 7957 [ARX]_WORK[SV.ARX], U 2503, 0002,3771,0004,7274,4004,1701,0000,0000,0212 ; 7958 RETURN [2] ;DO NOT DUMP ANYTHING ; 7959 U 3676, 3677,3771,0004,4354,4007,0700,0000,0000,0000 ; 7960 SAVVMA: [ARX]_VMA ; 7961 WORK[SV.VMA]_[ARX], U 3677, 0010,3333,0004,7174,4004,1700,0400,0000,0210 ; 7962 RETURN [10] ; 7963 ; KS10.MCR[7,3] 15:03 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 ; 7964 ;DUMP OUT THE 2901 U 3700, 2504,3333,0004,4174,4007,0700,0200,0021,1016 ; 7965 DUMP: READ [ARX], VMA PHYSICAL WRITE U 2504, 2746,3333,0000,4175,5007,0701,0210,0000,0002 ; 7966 =0* MEM WRITE, MEM_[MAG], CALL [NEXT] U 2506, 3701,3333,0001,4175,5007,0701,0200,0000,0002 ; 7967 MEM WRITE, MEM_[PC] U 3701, 2505,0111,0704,4170,4007,0700,0200,0023,1016 ; 7968 NEXT [ARX] PHYSICAL WRITE U 2505, 2746,3333,0002,4175,5007,0701,0210,0000,0002 ; 7969 =0* MEM WRITE, MEM_[HR], CALL [NEXT] U 2507, 2510,3333,0003,4175,5007,0701,0200,0000,0002 ; 7970 MEM WRITE, MEM_[AR] U 2510, 2746,3333,0003,7174,4007,0700,0410,0000,0211 ; 7971 =0* WORK[SV.AR]_[AR], CALL [NEXT] U 2512, 2511,3771,0003,7274,4007,0701,0000,0000,0212 ; 7972 [AR]_WORK[SV.ARX] U 2511, 2746,3333,0003,4175,5007,0701,0210,0000,0002 ; 7973 =0* MEM WRITE, MEM_[AR], CALL [NEXT] U 2513, 3702,3333,0005,4175,5007,0701,0200,0000,0002 ; 7974 MEM WRITE, MEM_[BR] U 3702, 2514,0111,0704,4170,4007,0700,0200,0023,1016 ; 7975 NEXT [ARX] PHYSICAL WRITE U 2514, 2746,3333,0006,4175,5007,0701,0210,0000,0002 ; 7976 =0* MEM WRITE, MEM_[BRX], CALL [NEXT] U 2516, 3703,3333,0007,4175,5007,0701,0200,0000,0002 ; 7977 MEM WRITE, MEM_[ONE] U 3703, 2515,0111,0704,4170,4007,0700,0200,0023,1016 ; 7978 NEXT [ARX] PHYSICAL WRITE U 2515, 2746,3333,0010,4175,5007,0701,0210,0000,0002 ; 7979 =0* MEM WRITE, MEM_[EBR], CALL [NEXT] U 2517, 3704,3333,0011,4175,5007,0701,0200,0000,0002 ; 7980 MEM WRITE, MEM_[UBR] U 3704, 2520,0111,0704,4170,4007,0700,0200,0023,1016 ; 7981 NEXT [ARX] PHYSICAL WRITE U 2520, 2746,3333,0012,4175,5007,0701,0210,0000,0002 ; 7982 =0* MEM WRITE, MEM_[MASK], CALL [NEXT] U 2522, 3705,3333,0013,4175,5007,0701,0200,0000,0002 ; 7983 MEM WRITE, MEM_[FLG] U 3705, 2521,0111,0704,4170,4007,0700,0200,0023,1016 ; 7984 NEXT [ARX] PHYSICAL WRITE U 2521, 2746,3333,0014,4175,5007,0701,0210,0000,0002 ; 7985 =0* MEM WRITE, MEM_[PI], CALL [NEXT] U 2523, 3706,3333,0015,4175,5007,0701,0200,0000,0002 ; 7986 MEM WRITE, MEM_[XWD1] U 3706, 2524,0111,0704,4170,4007,0700,0200,0023,1016 ; 7987 NEXT [ARX] PHYSICAL WRITE U 2524, 2746,3333,0016,4175,5007,0701,0210,0000,0002 ; 7988 =0* MEM WRITE, MEM_[T0], CALL [NEXT] U 2526, 2525,3333,0017,4175,5007,0701,0200,0000,0002 ; 7989 MEM WRITE, MEM_[T1] U 2525, 2746,3771,0003,7274,4007,0701,0010,0000,0210 ; 7990 =0* [AR]_WORK[SV.VMA], CALL [NEXT] U 2527, 3707,3333,0003,4175,5007,0701,0200,0000,0002 ; 7991 MEM WRITE, MEM_[AR] U 3707, 3710,3771,0003,7274,4007,0701,0000,0000,0211 ; 7992 HSBDON: [AR]_WORK[SV.AR] U 3710, 3711,3771,0004,7274,4007,0701,0000,0000,0210 ; 7993 [ARX]_WORK[SV.VMA] U 3711, 3712,3443,0400,4174,4007,0700,0200,0000,0010 ; 7994 VMA_[ARX] ; 7995 [ARX]_WORK[SV.ARX], U 3712, 0006,3771,0004,7274,4004,1701,0000,0000,0212 ; 7996 RETURN [6] ; 7997 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 222 ; PAGEF.MIC[7,3] 12:15 10-APR-1985 WRITE HALT STATUS BLOCK ; 7998 .NOBIN ; 7999 .TOC "PAGE FAIL REFIL LOGIC" ; 8000 ; 8001 ;WHEN THE CPU CAN NOT COMPLETE A MEMORY REFERENCE BECAUSE THE PAGE ; 8002 ; TABLE DOES NOT CONTAIN VALID INFORMATION FOR THE VIRTUAL PAGE INVOLVED ; 8003 ; THE HARDWARE CALLS THIS ROUTINE TO RELOAD THE HARDWARE PAGE TABLE. ; 8004 ; ; 8005 ;THIS CODE WILL EITHER DO THE RELOAD OR GENERATE A PAGE FAIL FOR THE ; 8006 ; SOFTWARE. THE INFORMATION LOADED CONSISTS OF THE PHYSICAL PAGE NUMBER, ; 8007 ; THE CACHE ENABLE BIT AND THE WRITE ENABLE BIT. ; 8008 ; 8009 ;THIS LOGIC USES MANY VARIABLES. THEY ARE DESCRIBED BRIEFLY HERE: ; 8010 ; 8011 ;THING WHERE KEPT USE ; 8012 ;OLD VMA WORKSPACE WORD 210 SAVES VMA ; 8013 ;OLD AR WORKSPACE WORD 211 SAVES AR ; 8014 ;OLD ARX WORKSPACE WORD 212 SAVES ARX ; 8015 ;OLD BR WORKSPACE WORD 213 SAVES BR ; 8016 ;OLD BRX WORKSPACE WORD 214 SAVES BRX ; 8017 ;KL PAGING BIT EBR BIT 1 (IN 2901) INDICATES KL STYLE (TOPS-20) PAGING ; 8018 ; INSTEAD OF KI STYLE (TOPS-10 AND DIAGNOSTIC) ; 8019 ; MODE PAGING ; 8020 ;W BIT FLG BIT 4 PAGE CAN BE WRITTEN ; 8021 ;C BIT FLG BIT 6 DATA IN THIS PAGE MAY BE PUT ; 8022 ; INTO CACHE ; 8023 ;PI CYCLE FLG BIT 5 STORING OLD PC DURING PI ; 8024 ;MAP FLAG FLG BIT 18 MAP INSTRUCTION IN PROGRESS ; 8025 ;CLEANUP CODE FLG BITS 32-35 WHAT TO DO SO INSTRUCTION MAY BE ; 8026 ; RESTARTED ; 8027 ;SPT BASE WORKSPACE WORD 215 ADDRESS OF SHARED-POINTER-TABLE ; 8028 ;CST BASE WORKSPACE WORD 216 ADDRESS OF CORE-STATUS-TABLE ; 8029 ;CST MASK WORKSPACE WORD 217 BITS TO KEEP ON CST UPDATE ; 8030 ;CST DATA (PUR) WORKSPACE WORD 220 BITS TO SET ON CST UPDATE ; 8031 ;PAGE TABLE ADDRESS AR WHERE THIS PAGE TABLE IS LOCATED ; 8032 ;PHYSICAL PAGE # (PPN) AR RESULT OF THIS PROCESS ; 8033 ;CST ENTRY AR CORE STATUS TABLE ENTRY ; 8034 ;SPT ENTRY AR WORD FROM SPT ; 8035 ;PAGE TABLE ENTRY AR WORD FROM PT ; 8036 ;PAGE NUMBER BR INDEX INTO CURENT PAGE TABLE ; 8037 ;PAGE FAIL WORD BRX WHAT HAPPENED (ALSO MAP RESULT) ; 8038 ;;8039 .IF/INHCST ;;8040 SKIP NO CST "AD/D,DBUS/RAM,RAMADR/#,WORK/CBR,DT/4T,SKIP/ADEQ0" ; 8041 .ENDIF/INHCST ; 8042 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 223 ; PAGEF.MIC[7,3] 12:15 10-APR-1985 PAGE FAIL REFIL LOGIC ; 8043 ; ; 8044 ; ; 8045 ; ; 8046 ; KL10 PAGING - WORD FORMATS ; 8047 ; ; 8048 ;Section Pointer ; 8049 ; ; 8050 ;The section pointer is found in the user or exec section table. ; 8051 ;(Part of UPT or EPT.) ; 8052 ; ; 8053 ;Section pointer provides (via the SPT) the physical address of ; 8054 ;the PAGE TABLE for the given section. ; 8055 ; ; 8056 ; Code: 0 No-access (trap) ; 8057 ; 1 Immediate ; 8058 ; 2 Share ; 8059 ; 3 Indirect ; 8060 ; 4-7 Unused, reserved ; 8061 ; ; 8062 ; 0 1 2 3 4 5 6 18 35 ; 8063 ; +----+-+-+-+-+---------+-------------------------+ ; 8064 ; !CODE!P!W! !C!/////////! PAGE TABLE IDENTIFIER ! ; 8065 ; !010 ! ! ! ! !/////////! (SPT INDEX) ! ; 8066 ; +----+-+-+-+-+---------+-------------------------+ ; 8067 ; ; 8068 ; NORMAL SECTION POINTER (Code = 2) ; 8069 ; ; 8070 ; 0 2 3 4 5 6 9 18 35 ; 8071 ; +----+-+-+-+-+---+-----------+------------------------+ ; 8072 ; !CODE!P!W! !C!///!SECTION !SECTION TABLE IDENTIFIER! ; 8073 ; !011 ! ! ! ! !///!TABLE INDEX! (SPT INDEX) ! ; 8074 ; +----+-+-+-+-+---+-----------+------------------------+ ; 8075 ; ; 8076 ; INDIRECT SECTION POINTER (Code = 3) ; 8077 ; KS10.MCR[7,3] 15:03 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 ; 8078 ;PAGE POINTERS ; 8079 ; ; 8080 ;FOUND IN PAGE TABLES ; 8081 ; ; 8082 ; 0 1 2 3 4 5 6 12 35 ; 8083 ; +----+-+-+-+-+----+------------------------------+ ; 8084 ; !CODE!P!W! !C!////! PHYSICAL ADDRESS OF PAGE ! ; 8085 ; !001 ! ! ! ! !////! ! ; 8086 ; +----+-+-+-+-+----+------------------------------+ ; 8087 ; ; 8088 ; IMMEDIATE POINTER (code field = 1) ; 8089 ; ; 8090 ; B12-35 give PHYSICAL ADDRESS OF PAGE ; 8091 ; if B12-17 >< 0, page not in core-trap ; 8092 ; if B12-17 = 0, B23-35 give CORE PAGE ; 8093 ; NUMBER of page, B18-22 MBZ ; 8094 ; ; 8095 ; ; 8096 ; ; 8097 ; ; 8098 ; ; 8099 ; 0 2 3 6 18 35 ; 8100 ; +-----+-------+---------+------------------------+ ; 8101 ; !CODE !SAME AS!/////////! SPT INDEX ! ; 8102 ; !010 ! IMMED.!/////////! ! ; 8103 ; +-----+-------+---------+------------------------+ ; 8104 ; ; 8105 ; SHARED POINTER (code field = 2) ; 8106 ; ; 8107 ; B18-35 Give SPT INDEX (SPTX). SPTX + SPT BASE ; 8108 ; ADDRESS = physical core address of word ; 8109 ; holding physical address of page. ; 8110 ; KS10.MCR[7,3] 15:03 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 ; 8111 ; 0 1 2 3 6 9 17 18 35 ; 8112 ; +----+--------+---+-------+----------------------+ ; 8113 ; !CODE!SAME AS !///! PAGE ! PAGE TABLE IDENTIFIER! ; 8114 ; !011 ! IMMED. !///!NUMBER ! (SPT INDEX) ! ; 8115 ; +----+--------+---+-------+----------------------+ ; 8116 ; ; 8117 ; INDIRECT POINTER (code field = 3) ; 8118 ; ; 8119 ; This pointer type causes another pointer to be fetched ; 8120 ; and interpreted. The new pointer is found in word N ; 8121 ; (B9-17) of the page addressed by C(SPT + SPTX). ; 8122 ; ; 8123 ; ; 8124 ; ; 8125 ; SPT ENTRY ; 8126 ; ; 8127 ; Found in the SPT, i.e., when fetching C(SPT +SPTX) ; 8128 ; ; 8129 ; 12 35 ; 8130 ; +--------------------+---------------------------+ ; 8131 ; !////////////////////! PHYSICAL ADDRESS OF PAGE ! ; 8132 ; !////////////////////! OR PAGE TABLE ! ; 8133 ; +--------------------+---------------------------+ ; 8134 ; ; 8135 ; B12-35 Give PHYSICAL ADDRESS of page. ; 8136 ; ; 8137 ; The base address (physical core address) of the SPT ; 8138 ; resides in one AC of the reserved AC block. ; 8139 ; KS10.MCR[7,3] 15:03 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 ; 8140 ;PHYSICAL STORAGE ADDRESS ; 8141 ; ; 8142 ;Found in B12-35 of IMMEDIATE POINTERS and SPT ENTRIES. ; 8143 ; ; 8144 ; 12 17 18 23 35 ; 8145 ; +---------+----+-----------------+ ; 8146 ; ! !MBZ ! CORE PAGE NUMBER! ; 8147 ; ! ! ! IF B12-17 = 0 ! ; 8148 ; +---------+----+-----------------+ ; 8149 ; ; 8150 ; If B12-17 = 0, then B23-35 are CORE PAGE NUMBER (i.e., ; 8151 ; B14-26 of physical core address) of page and B18-22 ; 8152 ; MBZ. If B12-17 >< 0, then address is not core and ; 8153 ; pager traps. ; 8154 ; ; 8155 ; ; 8156 ; ; 8157 ;CORE STATUS TABLE ENTRY ; 8158 ; ; 8159 ;Found when fetching C(CBR + CORE PAGENO) ; 8160 ; ; 8161 ; 0 5 32 34 35 ; 8162 ; +-------+-------------------------------+------+-+ ; 8163 ; ! CODE ! ! !M! ; 8164 ; +-------+-------------------------------+------+-+ ; 8165 ; ; 8166 ; B0-5 are code field: ; 8167 ; ; 8168 ; 0 - unavailable, trap ; 8169 ; ; 8170 ; 1-77 - available ; 8171 ; ; 8172 ; ; 8173 ; ; 8174 ; B32-34 reserved for future hardware specification. ; 8175 ; ; 8176 ; B35 is "modified" bit, set on any write ref to page. ; 8177 ; KS10.MCR[7,3] 15:03 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 ; 8178 ;QUANTITIES IN HARDWARE REGISTERS ; 8179 ; ; 8180 ;SPT SPT Base Register ; 8181 ; ; 8182 ; 14 35 ; 8183 ; +--------------------------------+ ; 8184 ; ! PHYSICAL CORE WORD ADDRESS ! ; 8185 ; +--------------------------------+ ; 8186 ; ; 8187 ;CBR CST Base Register ; 8188 ; ; 8189 ; 14 35 ; 8190 ; +--------------------------------+ ; 8191 ; ! PHYSICAL CORE WORD ADDRESS ! ; 8192 ; +--------------------------------+ ; 8193 ; ; 8194 ;CSTMSK CST Update Mask ; 8195 ; ; 8196 ; 0 32 35 ; 8197 ; +------------------------------------------+---+-+ ; 8198 ; ! MASK !111!1! ; 8199 ; +------------------------------------------+---+-+ ; 8200 ; ; 8201 ; ANDed with CST word during update ; 8202 ; ; 8203 ;(B32-35 must be all 1's to preserve existing CST information) ; 8204 ; ; 8205 ;CSTDATA CST Update Data ; 8206 ; ; 8207 ; 0 32 34 35 ; 8208 ; +------------------------------------------+---+-+ ; 8209 ; ! DATA !000!0! ; 8210 ; +------------------------------------------+---+-+ ; 8211 ; ; 8212 ; IORed with CST word during update ; 8213 ; ; 8214 ;(B32-35 must be all 0's to preserve existing CST information) ; 8215 ; ; 8216 ;All unspecified bits and fields are reserved for future ; 8217 ;specification by DEC. ; 8218 ; ; 8219 ; KS10.MCR[7,3] 15:03 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 ; 8220 .BIN ; 8221 ; 8222 .DCODE D 0257, 1215,1553,0100 ; 8223 257: IOT, AC, J/MAP ; 8224 .UCODE ; 8225 ; 8226 1553: ; 8227 MAP: [AR]_[AR].OR.#, ;ASSUME PHYSICAL REF ; 8228 #/160000, ;FAKE ANSWER U 1553, 3713,3551,0303,4374,0007,0700,0000,0016,0000 ; 8229 HOLD RIGHT ; .. U 3713, 3714,3771,0006,4354,4007,0700,0000,0000,0000 ; 8230 [BRX]_VMA ;PUT VMA AND FLAGS IN BRX ; 8231 [BRX]_[BRX].AND.#, ;JUST KEEP USER BIT U 3714, 3715,4551,0606,4374,0007,0700,0000,0040,0000 ; 8232 #/400000, HOLD RIGHT ; .. U 3715, 3716,3333,0006,7174,4007,0700,0400,0000,0210 ; 8233 WORK[SV.VMA]_[BRX] ;SAVE IN WORKSPACE U 3716, 3717,3771,0005,7274,4007,0701,0000,0000,0230 ; 8234 [BR]_WORK[APR] ;GET APR FLAGS U 3717, 2530,4553,0500,4374,4007,0331,0000,0003,0000 ; 8235 TR [BR], #/030000 ;PAGING ENABLED? U 2530, 3727,3771,0013,4370,4007,0700,0000,0040,0002 ; 8236 =0 STATE_[MAP], J/PFMAP ;YES--DO REAL MAP U 2531, 0100,3440,0303,0174,4156,4700,0400,0000,0000 ; 8237 AC_[AR], NEXT INST ;NO--RETURN VIRTUAL ADDRESS ; 8238 ;HARDWARE COMES HERE ON PAGE TABLE NOT VALID (OR INTERRUPT) WHEN ; 8239 ; STARTING A MEMORY REFERENCE. MICOWORD ADDRESS OF INSTRUCTION DOING ; 8240 ; MEM WAIT IS SAVED ON THE STACK. ; 8241 3777: ; 8242 PAGE-FAIL: U 3777, 3720,3333,0003,7174,4007,0700,0400,0000,0211 ; 8243 WORK[SV.AR]_[AR] U 3720, 3721,3333,0006,7174,4007,0700,0400,0000,0214 ; 8244 ITRAP: WORK[SV.BRX]_[BRX] U 3721, 3722,3771,0006,4354,4007,0700,0000,0000,0000 ; 8245 [BRX]_VMA U 3722, 3723,3333,0006,7174,4007,0700,0400,0000,0210 ; 8246 WORK[SV.VMA]_[BRX] ; 8247 WORK[SV.ARX]_[ARX], U 3723, 1060,3333,0004,7174,4007,0370,0400,0000,0212 ; 8248 SKIP IRPT ;SEE IF INTERRUPT (SAVE DISPATCH) ; 8249 =0000 ; 8250 PFD: DBM/PF DISP, DBUS/DBM, ;BRING CODE TO 2901'S ; 8251 AD/D, DEST/PASS, 4T, ;PUT ON DP 18-21 U 1060, 1060,3773,0000,4304,4003,1702,0000,0000,0000 ; 8252 DISP/DP LEFT, J/PFD ;DISPATCH ON IT ; 8253 =0001 ;(1) INTERRUPT U 1061, 1503,3333,0005,7174,4007,0700,0400,0000,0213 ; 8254 WORK[SV.BR]_[BR], J/PFPI1 ; 8255 =0011 ;(3) BAD DATA FROM MEMORY ; 8256 [BRX]_IO DATA, ;GET THE BAD DATA ; 8257 AD PARITY OK/0, ; DO NOT LOOK AT PARITY U 1063, 3724,3771,0006,4374,4007,0700,0000,0000,0000 ; 8258 J/BADDATA ;SAVE IN AC BLK 7 ; 8259 =0101 ;(5) NXM ERROR U 1065, 1501,4571,1206,4374,4007,0700,0000,0037,0000 ; 8260 [BRX]_[370000] XWD 0, J/HARD ; 8261 =0111 ;(7) NXM & BAD DATA U 1067, 1501,4571,1206,4374,4007,0700,0000,0037,0000 ; 8262 [BRX]_[370000] XWD 0, J/HARD ; 8263 =1000 ;(10) WRITE VIOLATION U 1070, 3727,3333,0005,7174,4007,0700,0400,0000,0213 ; 8264 WORK[SV.BR]_[BR], J/PFMAP ; 8265 =1001 ;[123] (11) 1 ms timer and movsrj U 1071, 1503,3333,0005,7174,4007,0700,0400,0000,0213 ; 8266 WORK[SV.BR]_[BR], J/PFPI1 ; 8267 =1010 ;(12) PAGE NOT VALID U 1072, 3727,3333,0005,7174,4007,0700,0400,0000,0213 ; 8268 WORK[SV.BR]_[BR], J/PFMAP ; 8269 =1011 ;(13) EXEC/USER MISMATCH U 1073, 3727,3333,0005,7174,4007,0700,0400,0000,0213 ; 8270 WORK[SV.BR]_[BR], J/PFMAP ; 8271 = ; 8272 ; 8273 BADDATA: U 3724, 3725,3333,0006,7174,4007,0700,0400,0000,0160 ; 8274 WORK[BADW0]_[BRX] ;SAVE BAD WORD U 3725, 3726,3333,0006,7174,4007,0700,0400,0000,0161 ; 8275 WORK[BADW1]_[BRX] ;AGAIN ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 228-1 ; PAGEF.MIC[7,3] 12:15 10-APR-1985 PAGE FAIL REFIL LOGIC U 3726, 1501,4571,1206,4374,4007,0700,0000,0036,0000 ; 8276 [BRX]_[360000] XWD 0, J/HARD ; 8277 ; KS10.MCR[7,3] 15:03 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 ; 8278 ;WE HAVE SAVED AR, ARX, BR AND BRX. WE MERGE IN HERE FROM MAP ; 8279 ; INSTRUCTION, SAVE THE VMA AND START THE PAGE FAIL WORD. U 3727, 3730,4223,0000,4364,4277,0700,0200,0000,0010 ; 8280 PFMAP: ABORT MEM CYCLE ;CLEAR PAGE FAIL ; 8281 [FLG]_[FLG].OR.#, ;PRESET W AND C TO 1 ; 8282 FLG.W/1, FLG.C/1, ;BITS INVOLVED U 3730, 3731,3551,1313,4374,0007,0700,0000,0002,4000 ; 8283 HOLD RIGHT ;LEAVE RH ALONE U 3731, 2532,4553,0600,4374,4007,0321,0000,0002,0000 ; 8284 TL [BRX], WRITE TEST/1 ;IS THIS A WRITE TEST? ; 8285 =0 [BRX]_[BRX].OR.#, ; 8286 #/10000, U 2532, 2533,3551,0606,4374,0007,0700,0000,0001,0000 ; 8287 HOLD RIGHT ;YES--TURN INTO WRITE REF ; 8288 [BRX]_[BRX].AND.#, ;START PAGE FAIL WORD ; 8289 #/411000, ;SAVE 3 INTERESTING BITS U 2533, 3732,4551,0606,4374,0007,0700,0000,0041,1000 ; 8290 HOLD RIGHT ;SAVE VIRTUAL ADDRESS ; 8291 ;USER ADDR (400000) ; 8292 ;WRITE REF (010000) ; 8293 ;PAGED REF (001000) ; 8294 [BRX]_[BRX].XOR.#, ;FIX BIT 8 U 3732, 3733,6551,0606,4374,0007,0700,0000,0000,1000 ; 8295 #/1000, HOLD RIGHT ; 8296 [BR]_[BRX], ;COPY VIRTUAL ADDRESS U 3733, 2534,3441,0605,4174,4007,0700,2000,0071,0007 ; 8297 SC_7 ;PREPARE TO SHIFT 9 PLACES ; 8298 =0 ; 8299 PF25: [BR]_[BR]*.5, ;RIGHT ADJUST PAGE # ; 8300 STEP SC, ;COUNT SHIFT STEPS U 2534, 2534,3447,0505,4174,4007,0630,2000,0060,0000 ; 8301 J/PF25 ;LOOP FOR 9 ; 8302 [BR]_[BR].AND.# CLR LH, ;MASK TO 9 BITS U 2535, 3734,4251,0505,4374,4007,0700,0000,0000,0777 ; 8303 #/777 ; .. ; 8304 .IF/KLPAGE ; 8305 .IF/KIPAGE ; 8306 TL [EBR], ;KI MODE REFILL? U 3734, 2536,4553,1000,4374,4007,0321,0000,0000,0040 ; 8307 #/40 ;FLAG BIT ; 8308 =0 ; 8309 .ENDIF/KIPAGE ; 8310 READ [BRX], ;USER REF? (KL MODE) ; 8311 SKIP DP0, ; .. U 2536, 2540,3333,0006,4174,4007,0520,0000,0000,0000 ; 8312 J/PF30 ;CONTINUE AT PF30 ; 8313 .ENDIF/KLPAGE ; 8314 .IF/KIPAGE ; 8315 [ARX]_[BR]*.5, ;KI10 MODE REFILL U 2537, 3774,3447,0504,4174,4007,0700,0000,0000,0000 ; 8316 J/KIFILL ;GO HANDLE EASY CASE ; 8317 .ENDIF/KIPAGE ; 8318 ; KS10.MCR[7,3] 15:03 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 ; 8319 .IF/KLPAGE ; 8320 ;HERE IN TOPS-20 MODE ; 8321 ;PICK UP CORRECT SECTION POINTER ; 8322 =0 ; 8323 PF30: [ARX]_WORK[PTA.E], ;EXEC MODE ; 8324 SKIP AD.EQ.0, 4T, ;SEE IF VALID U 2540, 2544,3771,0004,7274,4007,0622,0000,0000,0423 ; 8325 J/PF35 ;CONTINUE BELOW ; 8326 [ARX]_WORK[PTA.U], ;USER MODE U 2541, 2542,3771,0004,7274,4007,0622,0000,0000,0424 ; 8327 SKIP AD.EQ.0, 4T ;SEE IF VALID ; 8328 =0 VMA_[ARX]+[BR], ;POINTER VALID ; 8329 VMA PHYSICAL READ, ;START MEMORY U 2542, 1130,0113,0405,4174,4007,0700,0200,0024,1016 ; 8330 J/PF77 ;CONTINUE BELOW ; 8331 [AR]_[UBR]+#, 3T, ;USER MODE ; 8332 #/540, ;OFFSET TO UPT U 2543, 3735,0551,1103,4374,4007,0701,0000,0000,0540 ; 8333 J/PF40 ;GO GET POINTER ; 8334 ; 8335 =0 ; 8336 PF35: VMA_[ARX]+[BR], ;POINTER VALID ; 8337 VMA PHYSICAL READ, ;START MEMORY U 2544, 1130,0113,0405,4174,4007,0700,0200,0024,1016 ; 8338 J/PF77 ;CONTINUE BELOW ; 8339 [AR]_[EBR]+#, 3T, ;EXEC MODE U 2545, 3735,0551,1003,4374,4007,0701,0000,0000,0540 ; 8340 #/540 ;OFFSET TO EPT ; 8341 PF40: VMA_[AR], ;LOAD THE VMA ; 8342 START READ, ;START THE MEMORY CRANKING U 3735, 3736,3443,0300,4174,4007,0700,0200,0024,1016 ; 8343 VMA PHYSICAL ;ABSOLUTE ADDRESS ; 8344 MEM READ, ;WAIT FOR MEMORY U 3736, 1000,3771,0003,4365,5007,0700,0200,0000,0002 ; 8345 [AR]_MEM ;POINT POINTER IN AR ; 8346 ;LOOK AT SECTION POINTER AND DISPATCH ON TYPE ; 8347 =000 ; 8348 PF45: SC_7, ;FETCH SECTION 0 POINTER U 1000, 3767,4443,0000,4174,4007,0700,2010,0071,0007 ; 8349 CALL [SETPTR] ;FIGURE OUT POINTER TYPE ; 8350 SECIMM: TL [AR], ;IMMEDIATE POINTER ; 8351 #/77, ;TEST FOR 12-17 = 0 U 1001, 2552,4553,0300,4374,4007,0321,0000,0000,0077 ; 8352 J/PF50 ;CONTINUE AT PF50 ; 8353 [AR]_[AR]+WORK[SBR], ;SHARED SECTION U 1002, 2550,0551,0303,7274,4007,0701,0000,0000,0215 ; 8354 J/SECSHR ;GO FETCH POINTER FROM SPT ; 8355 [AR]_[AR]+WORK[SBR], ;INDIRECT SECTION POINTER U 1003, 3772,0551,0303,7274,4007,0701,0010,0000,0215 ; 8356 CALL [RDPT] ;GO FETCH SPT ENTRY ; 8357 =111 TL [AR], ;12 TO 17 = 0? U 1007, 2546,4553,0300,4374,4007,0321,0000,0000,0077 ; 8358 #/77 ; .. ; 8359 = U 2546, 2672,4553,1300,4374,4007,0321,0000,0001,0000 ; 8360 =0 PAGE FAIL TRAP ;NO ; 8361 [AR]_[AR]*2, ;FIRST SHIFT U 2547, 0602,3445,0303,4174,4007,0630,2000,0060,0000 ; 8362 STEP SC ;SC WAS LOADED AT PF45 ; 8363 =0*0 ; 8364 PF60: [AR]_[AR]*2, ;CONVERT TO ADDRESS OF ; 8365 STEP SC, ; SECTION TABLE U 0602, 0602,3445,0303,4174,4007,0630,2000,0060,0000 ; 8366 J/PF60 U 0603, 3772,4443,0000,4174,4007,0700,0010,0000,0000 ; 8367 CALL [RDPT] ;READ SECTION TABLE U 0607, 1000,4443,0000,4174,4007,0700,0000,0000,0000 ; 8368 =1*1 J/PF45 ;TRY AGAIN ; 8369 = ; 8370 ; KS10.MCR[7,3] 15:03 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 ; 8371 ;STILL .IF/KLPAGE ; 8372 ;HERE FOR SHARED SECTION. AR GETS THE ADDRESS OF PAGE TABLE ; 8373 =0** U 2550, 3772,4443,0000,4174,4007,0700,0010,0000,0000 ; 8374 SECSHR: CALL [RDPT] ;READ WORD FROM SPT U 2554, 2552,4553,0300,4374,4007,0321,0000,0000,0077 ; 8375 TL [AR], #/77 ;TEST FOR BITS 12-17 = 0 ; 8376 ; 8377 ;HERE WITH ADDRESS OF PAGE TABLE IN AR AND SKIP ON ; 8378 ; BITS 12 THRU 17 EQUAL TO ZERO ; 8379 =0 U 2552, 2672,4553,1300,4374,4007,0321,0000,0001,0000 ; 8380 PF50: PAGE FAIL TRAP ;BITS 12-17 .NE. 0 ; 8381 [ARX]_[AR].AND.# CLR LH, ;PAGE NUMBER OF PAGE TABLE U 2553, 2555,4251,0304,4374,4007,0700,0000,0000,3777 ; 8382 #/3777 ;11 BIT PHYSICAL PAGE # ; 8383 .IFNOT/NOCST ; 8384 =0* [AR]_[ARX], ;COPY ADDRESS U 2555, 2622,3441,0403,4174,4007,0700,0010,0000,0000 ; 8385 CALL [UPCST] ;UPDATE CST0 U 2557, 2560,3551,0303,7274,4007,0701,0000,0000,0220 ; 8386 PF70: [AR]_[AR].OR.WORK[PUR] ;PUT IN NEW AGE AND ; 8387 ; USE BITS ; 8388 .IFNOT/INHCST ; 8389 =0** START NO TEST WRITE, ;START MEMORY WRITE U 2560, 3075,4443,0000,4174,4007,0700,0210,0001,0002 ; 8390 CALL [IBPX] ;GO STORE IN MEMORY ; 8391 .ENDIF/INHCST ;;8392 .IF/INHCST ;;8393 =0** SKIP NO CST, ;SEE IF A CST ;;8394 CALL [WRCST] ;AND GO WRITE IN MEMORY ; 8395 .ENDIF/INHCST U 2564, 2562,4443,0000,4174,4007,0700,2000,0071,0007 ; 8396 SC_7 ;THIS CAN BE BUMMED ; 8397 =0 ; 8398 PF75: [ARX]_[ARX]*2, ;CONVERT PAGE NUMBER TO ; 8399 STEP SC, ; PAGE ADDRESS U 2562, 2562,3445,0404,4174,4007,0630,2000,0060,0000 ; 8400 J/PF75 ;LOOP OVER 9 STEPS ; 8401 ; KS10.MCR[7,3] 15:03 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 ; 8402 ;STILL .IF/KLPAGE ; 8403 ;WE NOW HAVE THE ADDRESS OF THE PAGE TABLE ENTRY. GO ; 8404 ; READ IT AND START ANALYSIS ; 8405 ; 8406 ;IF WE ARE HERE FOR THE FIRST TIME FOR THE USER OR EXEC SAVE THE ; 8407 ; ADDRESS OF THE PAGE TABLE IN PTA.E OR PTA.U SO THAT WE DO NOT ; 8408 ; HAVE TO DO THE SECTION LOOKUP EVERY TIME. U 2563, 1040,3333,0006,4174,4007,0520,0000,0000,0000 ; 8409 READ [BRX], SKIP DP0 ;USER OR EXEC REF? ; 8410 =000 [AR]_WORK[PTA.E], ;EXEC MODE ; 8411 SKIP AD.EQ.0, 4T, ;SEE IF SET YET U 1040, 2642,3771,0003,7274,4007,0622,0010,0000,0423 ; 8412 CALL [SHDREM] ;SHOULD WE REMEMBER PTR ; 8413 [AR]_WORK[PTA.U], ;USER MODE ; 8414 SKIP AD.EQ.0, 4T, ;SEE IF SET YET U 1041, 2642,3771,0003,7274,4007,0622,0010,0000,0424 ; 8415 CALL [SHDREM] ;SHOULD WE REMEMBER PTR ; 8416 WORK[PTA.E]_[ARX], ;SAVE FOR EXEC U 1042, 1047,3333,0004,7174,4007,0700,0400,0000,0423 ; 8417 J/PF76 ;CONTINUE BELOW ; 8418 WORK[PTA.U]_[ARX], ;SAVE FOR USER U 1043, 1047,3333,0004,7174,4007,0700,0400,0000,0424 ; 8419 J/PF76 ;CONTINUE BELOW ; 8420 =111 ; 8421 PF76: VMA_[ARX]+[BR], ;READ PAGE POINTER ; 8422 START READ, U 1047, 1130,0113,0405,4174,4007,0700,0200,0024,1016 ; 8423 VMA PHYSICAL ; 8424 = ; 8425 =00 ; 8426 PF77: MEM READ, ;START ANALYSIS OF POINTER ; 8427 [AR]_MEM, U 1130, 3767,3771,0003,4365,5007,0700,0210,0000,0002 ; 8428 CALL [SETPTR] ; 8429 PTRIMM: TL [AR], ;IMMEDIATE POINTER ; 8430 #/77, ;CHECK FOR BITS 0-5 U 1131, 1134,4553,0300,4374,4007,0321,0000,0000,0077 ; 8431 J/PF80 ;GO TO PF80 ; 8432 [AR]_[AR]+WORK[SBR], ;SHARED POINTER U 1132, 2561,0551,0303,7274,4007,0701,0000,0000,0215 ; 8433 J/PTRSHR ;GO TO READ SPT ; 8434 ; KS10.MCR[7,3] 15:03 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 ; 8435 ;STILL .IF/KLPAGE ; 8436 ;INDIRECT POINTER. CHANGE PAGE # AND LOOK FOR PAGE TABLE ; 8437 PTRIND: [BR]_[AR] SWAP, ;PUT IN RIGHT HALF U 1133, 2566,3770,0305,4344,4007,0670,0000,0000,0000 ; 8438 SKIP/-1 MS ;DID CLOCK GO OFF ; 8439 =0 WORK[SV.AR1]_[AR], ;YES--UPDATE CLOCK U 2566, 2600,3333,0003,7174,4007,0700,0400,0000,0426 ; 8440 J/PFTICK ; .. ; 8441 [BR]_[BR].AND.# CLR LH, ;UPDATE PAGE # AND RESTART ; 8442 #/777, ;MASK FOR PAGE # U 2567, 2570,4251,0505,4374,4007,0370,0000,0000,0777 ; 8443 SKIP IRPT ;SEE IF THIS IS A LOOP ; 8444 =0 [AR]_[AR].AND.#, ;CHANGE INDIRECT POINTER ; 8445 #/277000, ; INTO SHARE POINTER ; 8446 HOLD RIGHT, ; .. U 2570, 1000,4551,0303,4374,0007,0700,0000,0027,7000 ; 8447 J/PF45 ;GO BACK AND TRY AGAIN U 2571, 2672,4553,1300,4374,4007,0321,0000,0001,0000 ; 8448 PAGE FAIL TRAP ;POINTER LOOP ; 8449 ; 8450 =0** U 2561, 3772,4443,0000,4174,4007,0700,0010,0000,0000 ; 8451 PTRSHR: CALL [RDPT] ;GO LOOK AT POINTER ; 8452 TL [AR], ;BITS 12-17 .EQ. 0? U 2565, 1134,4553,0300,4374,4007,0321,0000,0000,0077 ; 8453 #/77 ; 8454 ; 8455 ;HERE WITH FINAL POINTER. SKIP IF 12-17 NOT EQUAL TO ZERO ; 8456 .IFNOT/NOCST ; 8457 =00 U 1134, 2672,4553,1300,4374,4007,0321,0000,0001,0000 ; 8458 PF80: PAGE FAIL TRAP ;NO--TAKE A TRAP ; 8459 [ARX]_[AR].AND.# CLR LH, ;SAVE PHYSICAL PAGE # ; 8460 #/3777, ;MASK TO 13 BITS U 1135, 2622,4251,0304,4374,4007,0700,0010,0000,3777 ; 8461 CALL [UPCST] ;UPDATE CST0 ; 8462 =11 ;;8463 .IF/NOCST ;;8464 =0 ;;8465 PF80: PAGE FAIL TRAP ;NO--TAKE A TRAP ; 8466 .ENDIF/NOCST ; 8467 ; 8468 ;HERE WE HAVE CST ENTRY IN AR, PAGE FAIL WORD IN BRX. GO LOOK ; 8469 ; AT WRITABLE AND WRITTEN BITS ; 8470 PF90: [BRX]_[BRX].OR.#, ;TRANSLATION IS VALID U 1137, 3737,3551,0606,4374,0007,0700,0000,0010,0000 ; 8471 #/100000, HOLD RIGHT ; .. U 3737, 2572,4553,1300,4374,4007,0321,0000,0002,0000 ; 8472 TL [FLG], FLG.W/1 ;IS THIS PAGE WRITABLE? ; 8473 =0 [BRX]_[BRX].OR.#, ;YES--INDICATE THAT IN PFW ; 8474 #/020000, U 2572, 3745,3551,0606,4374,4007,0700,0000,0002,0000 ; 8475 J/PF100 ;NOT WRITE VIOLATION ; 8476 TL [BRX], ;IS THIS A WRITE REF? U 2573, 2574,4553,0600,4374,4007,0321,0000,0003,0000 ; 8477 WRITE TEST/1, WRITE CYCLE/1 U 2574, 2672,4553,1300,4374,4007,0321,0000,0001,0000 ; 8478 =0 PAGE FAIL TRAP ;WRITE VIOLATION ; 8479 PF107: ; 8480 .IFNOT/NOCST ; 8481 [AR]_[AR].OR.WORK[PUR], ;PUT IN NEW AGE U 2575, 2603,3551,0303,7274,4007,0701,0000,0000,0220 ; 8482 J/PF110 ;GO TO STORE CST ENTRY ; 8483 .ENDIF/NOCST ;;8484 .IF/NOCST ;;8485 PFDONE: TR [FLG], ;;8486 #/400000, ;;8487 J/PF140 ; 8488 .ENDIF/NOCST ; 8489 ; 8490 =0* ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 233-1 ; PAGEF.MIC[7,3] 12:15 10-APR-1985 PAGE FAIL REFIL LOGIC ; 8491 PFTICK: [AR]_WORK[TIME1], ;UPDATE TIMER U 2600, 3561,3771,0003,7274,4117,0701,0010,0000,0301 ; 8492 SPEC/CLRCLK, CALL [TOCK] ; 8493 [AR]_WORK[SV.AR1], ;RESTORE AR U 2602, 1133,3771,0003,7274,4007,0701,0000,0000,0426 ; 8494 J/PTRIND ;GO TRY AGAIN ; 8495 ; KS10.MCR[7,3] 15:03 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 ; 8496 ;STILL .IF/KLPAGE ; 8497 ;HERE IF PAGE IS WRITABLE U 3745, 2576,4553,0600,4374,4007,0321,0000,0001,0000 ; 8498 PF100: TL [BRX], WRITE CYCLE/1 ;IS THIS A WRITE REF? ; 8499 =0 [AR]_[AR].OR.#, ;YES--SET WRITTEN BIT ; 8500 #/1, ; 8501 HOLD LEFT, U 2576, 2604,3551,0303,4370,4007,0700,0000,0000,0001 ; 8502 J/PF105 ; 8503 TR [AR], ;NOT WRITE, ALREADY WRITTEN? U 2577, 2604,4553,0300,4374,4007,0331,0000,0000,0001 ; 8504 #/1 ; 8505 =0 ; 8506 PF105: [BRX]_[BRX].OR.#, ;WRITTEN SET BIT ; 8507 #/040000, ;MARK PAGE AS ; 8508 HOLD RIGHT, ;WRITABLE U 2604, 2575,3551,0606,4374,0007,0700,0000,0004,0000 ; 8509 J/PF107 ;STORE CST WORD ; 8510 [FLG]_[FLG].AND.NOT.#, ;NOT WRITTEN, CAUSE TRAP ON ; 8511 FLG.W/1, ; WRITE ATTEMPT ; 8512 HOLD RIGHT, ;ONLY CLEAR LH U 2605, 2575,5551,1313,4374,0007,0700,0000,0002,0000 ; 8513 J/PF107 ; 8514 .IFNOT/NOCST ; 8515 =0** ; 8516 PF110: ; 8517 .IFNOT/INHCST ; 8518 START NO TEST WRITE, U 2603, 3075,4443,0000,4174,4007,0700,0210,0001,0002 ; 8519 CALL [IBPX] ;STORE CST ENTRY ; 8520 .ENDIF/INHCST ;;8521 .IF/INHCST ;;8522 SKIP NO CST, ;;8523 CALL [WRCST] ; 8524 .ENDIF/INHCST ; 8525 ; 8526 .ENDIF/KLPAGE ; 8527 ; KS10.MCR[7,3] 15:03 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 ; 8528 ; 8529 ;HERE WHEN WE HAVE FIGURED OUT PHYSICAL ADDRESS (IN ARX) AND FLAGS ; 8530 ; (IN BRX) RELOAD PAGE TABLE. ; 8531 PFDONE: TR [FLG], ;MAP INSTRUCTION? U 2607, 2610,4553,1300,4374,4007,0331,0000,0040,0000 ; 8532 #/400000 ; 8533 .ENDIF/NOCST ; 8534 =0 ; 8535 PF140: [AR]_[ARX], ;GET PHYSCIAL PAGE # ; 8536 SC_7, ;PREPARE TO CONVERT TO U 2610, 2612,3441,0403,4174,4007,0700,2000,0071,0007 ; 8537 J/PF130 ; WORD ADDRESS ; 8538 [AR]_WORK[SV.VMA], ;RESTORE VMA U 2611, 3753,3771,0003,7274,4007,0701,0000,0000,0210 ; 8539 J/PF120 ; 8540 =0 ; 8541 PF130: [AR]_[AR]*2, ;CONVERT TO WORD # ; 8542 STEP SC, U 2612, 2612,3445,0303,4174,4007,0630,2000,0060,0000 ; 8543 J/PF130 ; 8544 [AR]_[AR].AND.#, ;JUST ADDRESS BITS ; 8545 #/3, U 2613, 3746,4551,0303,4374,0007,0700,0000,0000,0003 ; 8546 HOLD RIGHT U 3746, 3747,4221,0013,4170,4007,0700,0000,0000,0000 ; 8547 END MAP ;CLEAR MAP FLAGS ; 8548 [BRX]_[BRX].OR.#, ;TURN ON THE TRANSLATION ; 8549 #/100000, ; VALID BIT U 3747, 3750,3551,0606,4374,0007,0700,0000,0010,0000 ; 8550 HOLD RIGHT ; IN LEFT HALF ONLY U 3750, 2614,4553,1300,4374,4007,0321,0000,0000,4000 ; 8551 TL [FLG], FLG.C/1 ;CACHE BIT SET? ; 8552 =0 [BRX]_[BRX].OR.#, ;YES--SET IN MAP WORD U 2614, 2615,3551,0606,4374,0007,0700,0000,0000,2000 ; 8553 #/002000, HOLD RIGHT ; .. ; 8554 [BRX]_[BRX].AND.#, ;PRESERVE WORD # U 2615, 3752,4551,0606,4370,4007,0700,0000,0000,0777 ; 8555 #/777, HOLD LEFT ; IN PAGE FAIL WORD ; 8556 [AR]_[AR].OR.[BRX], ;COMPLETE MAP INSTRUCTION U 3752, 1500,3111,0603,4174,4003,7700,0200,0003,0001 ; 8557 EXIT ; 8558 ; KS10.MCR[7,3] 15:03 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 U 3753, 3755,3441,0305,4174,4007,0700,0000,0000,0000 ; 8559 PF120: [BR]_[AR] ;COPY PAGE FAIL WORD ; 8560 [BR]_[AR].AND.NOT.#, ;CLEAR BITS WHICH START A CYCLE ; 8561 READ CYCLE/1, ; .. ; 8562 WRITE CYCLE/1, ; .. ; 8563 WRITE TEST/1, ; .. U 3755, 3756,5551,0305,4374,0007,0700,0000,0007,0000 ; 8564 HOLD RIGHT ;JUST DO LEFT HALF ; 8565 VMA_[BR], 3T, ;RESTORE VMA U 3756, 3757,3443,0500,4174,4007,0701,0200,0000,0030 ; 8566 DP FUNC/1 ;SET USER ACCORDING TO WHAT IT WAS ; 8567 [ARX]_[ARX].AND.# CLR LH, ;JUST KEEP PAGE # U 3757, 3760,4251,0404,4374,4007,0700,0000,0000,3777 ; 8568 #/3777 ; .. U 3760, 3761,3551,0406,4374,4007,0700,0000,0040,0000 ; 8569 [BRX]_[ARX].OR.#, #/400000 ;SET VALID BITS U 3761, 2616,4553,1300,4374,4007,0321,0000,0002,0000 ; 8570 TL [FLG], FLG.W/1 ;WANT WRITE SET? U 2616, 2617,3551,0606,4374,4007,0700,0000,0004,0000 ; 8571 =0 [BRX]_[BRX].OR.#, #/040000 ;SET WRITE BIT ; 8572 TL [FLG], FLG.C/1, ;WANT CACHE SET? U 2617, 2620,4553,1300,4374,4147,0321,0000,0000,4000 ; 8573 LOAD PAGE TABLE ;LOAD PAGE TABLE ON NEXT ; 8574 ; MICRO INSTRUCTION ; 8575 =0 [BRX]_[BRX].OR.#, ;SET CACHE BIT U 2620, 3762,3551,0606,4374,4007,0700,0000,0002,0000 ; 8576 #/020000, J/PF125 ;CACHE BIT U 2621, 3762,3333,0006,4174,4007,0700,0000,0000,0000 ; 8577 READ [BRX] ;LOAD PAGE TABLE U 3762, 3763,3771,0004,7274,4007,0701,0000,0000,0212 ; 8578 PF125: [ARX]_WORK[SV.ARX] U 3763, 3764,3771,0005,7274,4007,0701,0000,0000,0213 ; 8579 [BR]_WORK[SV.BR] U 3764, 3765,3771,0006,7274,4007,0701,0000,0000,0214 ; 8580 [BRX]_WORK[SV.BRX] ; 8581 VMA_[AR], ;MAKE MEM REQUEST ; 8582 DP FUNC/1, 3T, ;FROM DATA PATH U 3765, 3766,3443,0300,4174,4007,0701,0200,0000,0032 ; 8583 WAIT/1 ;WAIT FOR PREVIOUS CYCLE TO ; 8584 ; COMPLETE. (NEED THIS TO ; 8585 ; START ANOTHER CYCLE) ; 8586 [AR]_WORK[SV.AR], U 3766, 0000,3771,0003,7274,4004,1701,0000,0000,0211 ; 8587 RETURN [0] ; 8588 ; KS10.MCR[7,3] 15:03 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 ; 8589 .IF/KLPAGE ; 8590 .IFNOT/NOCST ; 8591 ;SUBROUTINE TO START CST UPDATE ; 8592 ;CALL WITH: ; 8593 ; AR/ PHYSICAL PAGE NUMBER ; 8594 ;RETURN 2 WITH ENTRY IN AR, PAGE FAIL IF AGE TOO SMALL ; 8595 .IFNOT/INHCST ; 8596 =0** ; 8597 UPCST: [AR]_[AR]+WORK[CBR], ;ADDRESS OF CST0 ENTRY U 2622, 3772,0551,0303,7274,4007,0701,0010,0000,0216 ; 8598 CALL [RDPT] ;READ OLD VALUE ; 8599 TL [AR], ;0 - 5 = 0? U 2626, 2624,4553,0300,4374,4007,0321,0000,0077,0000 ; 8600 #/770000 ; .. ; 8601 =0 [AR]_[AR].AND.WORK[CSTM], ;CLEAR AGE FIELD U 2624, 0002,4551,0303,7274,4004,1701,0000,0000,0217 ; 8602 RETURN [2] ;AGE IS NOT ZERO U 2625, 2672,4553,1300,4374,4007,0321,0000,0001,0000 ; 8603 PAGE FAIL TRAP ;AGE TOO SMALL ; 8604 .ENDIF/INHCST ;;8605 .IF/INHCST ;;8606 UPCST: SKIP NO CST ;SEE IF A CST IS PRESENT ;;8607 =0*0 [AR]_[AR]+WORK[CBR], ;YES, ADDRESS OF CST0 ENTRY ;;8608 CALL [RDPT] ;READ OLD VALUE ;;8609 [AR]_0,RETURN [2] ;NO CST, RETURN ;;8610 TL [AR], ;CHECK AGE FIELD ;;8611 #/770000 ;;8612 = ;;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 ;;8617 =0 ;;8618 WRCST: START NO TEST WRITE, ;;8619 J/IBPX ;;8620 RETURN [4] ; 8621 .ENDIF/INHCST ; 8622 .ENDIF/NOCST ; 8623 ; KS10.MCR[7,3] 15:03 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 ; 8624 ;STILL .IF/KLPAGE ; 8625 ;SUBROUTINE TO LOOK AT PAGE POINTER ; 8626 ;CALL WITH POINTER IN AR ; 8627 ;RETURNS 1 IF TYPE 1 ; 8628 ;RETURNS 2 IF TYPE 2 ; 8629 ;RETURNS 3 IF TYPE 3 ; 8630 ;GOES TO PFT IF TYPE 0 OR 4 THRU 7 ; 8631 SETPTR: [ARX]_[AR].OR.#, ;AND C AND W BITS U 3767, 3770,3551,0304,4374,4007,0700,0000,0075,3777 ; 8632 #/753777 ; OF ALL POINTERS ; 8633 [FLG]_[FLG].AND.[ARX], ; .. U 3770, 3771,4111,0413,4174,0007,0700,0000,0000,0000 ; 8634 HOLD RIGHT ;KEEP IN LH OF FLG ; 8635 READ [AR], ;TYPE 4,5,6 OR 7? U 3771, 2630,3333,0003,4174,4007,0520,0000,0000,0000 ; 8636 SKIP DP0 ; .. ; 8637 =0 TL [AR], ;HERE WE TEST FOR TYPE ; 8638 #/300000, ; ZERO POINTER U 2630, 2632,4553,0300,4374,4007,0321,0000,0030,0000 ; 8639 J/STPTR1 ;CHECK AT STPTR1 U 2631, 2672,4553,1300,4374,4007,0321,0000,0001,0000 ; 8640 PAGE FAIL TRAP ;BAD TYPE ; 8641 =0 ; 8642 STPTR1: TL [AR], ;NOT ZERO ; 8643 #/100000, ;SEPERATE TYPE 2 U 2632, 2634,4553,0300,4374,4007,0321,0000,0010,0000 ; 8644 J/STPTR2 ; .. U 2633, 2672,4553,1300,4374,4007,0321,0000,0001,0000 ; 8645 PAGE FAIL TRAP ;TYPE 0 ; 8646 ; 8647 =0 ; 8648 STPTR2: TL [AR], ;SEPERATE TYPE 1 ; 8649 #/200000, ; AND 3 U 2634, 2636,4553,0300,4374,4007,0321,0000,0020,0000 ; 8650 J/STPTR3 ; .. U 2635, 0002,4443,0000,4174,4004,1700,0000,0000,0000 ; 8651 RETURN [2] ;TYPE 2 ; 8652 ; 8653 =0 U 2636, 0003,4443,0000,4174,4004,1700,0000,0000,0000 ; 8654 STPTR3: RETURN [3] ;TYPE 3 U 2637, 0001,4443,0000,4174,4004,1700,0000,0000,0000 ; 8655 RETURN [1] ;TYPE 1 ; 8656 ; KS10.MCR[7,3] 15:03 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 ; 8657 ;STILL .IF/KLPAGE ; 8658 ;SUBROUTINE TO FETCH A PAGE POINTER OR CST ENTRY ; 8659 ;CALL WITH ADDRESS IN AR ; 8660 ;RETURN 4 WITH WORD IN AR ; 8661 ; ; 8662 RDPT: VMA_[AR], ;LOAD THE VMA ; 8663 START READ, ;START MEM CYCLE ; 8664 VMA PHYSICAL, ;ABSOLUTE ADDRESS U 3772, 2640,3443,0300,4174,4007,0370,0200,0024,1016 ; 8665 SKIP IRPT ;CHECK FOR INTERRUPTS ; 8666 =0 MEM READ, ;NO INTERRUPTS ; 8667 [AR]_MEM, ;PUT THE DATA INTO AR U 2640, 0004,3771,0003,4365,5004,1700,0200,0000,0002 ; 8668 RETURN [4] ;AND RETURN U 2641, 2672,4553,1300,4374,4007,0321,0000,0001,0000 ; 8669 PAGE FAIL TRAP ;INTERRUPT ; 8670 ; 8671 ; 8672 ;SUBROUTINE TO SEE IF WE SHOULD REMEMBER AN EXEC SECTION PTR ; 8673 ;CALL WITH SKIP ON ADR.EQ.0 ; 8674 ;RETURNS 2 IF WE SHOULD STORE AND 7 IF WE SHOULD NOT ; 8675 ; ; 8676 =0 U 2642, 0007,4443,0000,4174,4004,1700,0000,0000,0000 ; 8677 SHDREM: RETURN [7] ;INDIRECT PTR U 2643, 3773,7441,1303,4174,4007,0700,0000,0000,0000 ; 8678 [AR]_.NOT.[FLG] ;FLIP BITS U 3773, 2644,4553,0300,4374,4007,0321,0000,0002,4000 ; 8679 TL [AR], FLG.W/1, FLG.C/1 ;BOTH BITS SET U 2644, 0007,4443,0000,4174,4004,1700,0000,0000,0000 ; 8680 =0 RETURN [7] ;NO--DON'T STORE U 2645, 0002,4443,0000,4174,4004,1700,0000,0000,0000 ; 8681 RETURN [2] ;STORE ; 8682 ; 8683 .ENDIF/KLPAGE ; 8684 ; KS10.MCR[7,3] 15:03 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 ; 8685 .IF/KIPAGE ; 8686 ;HERE IN KI10 MODE ; 8687 ;BR CONTAINS PAGE # AND ARX CONTAINS PAGE #/2 ; 8688 ; 8689 KIFILL: READ [BRX], ;USER REF? U 3774, 2646,3333,0006,4174,4007,0520,0000,0000,0000 ; 8690 SKIP DP0 ; .. ; 8691 =0 [BR]-#, ;EXEC--LESS THAN 340? ; 8692 #/340, ; .. ; 8693 SKIP DP18, 4T, ; .. U 2646, 2650,1553,0500,4374,4007,0532,4000,0000,0340 ; 8694 J/KIF10 ;FOLLOW EXEC PATH ; 8695 KIUPT: [ARX]_[ARX]+[UBR], ;POINTER TO PAGE MAP ENTRY ; 8696 LOAD VMA, ;PUT ADDRESS IN VMA ; 8697 VMA PHYSICAL, ;ABSOLUTE ADDRESS ; 8698 START READ, ;FETCH UPT WORD U 2647, 3775,0111,1104,4174,4007,0700,0200,0024,1016 ; 8699 J/KIF30 ;JOIN COMMON CODE ; 8700 =0 ; 8701 KIF10: [BR]-#, ;EXEC ADDRESS .GE. 340 ; 8702 #/400, ; SEE IF .GT. 400 ; 8703 SKIP DP18, 4T, ; .. U 2650, 2652,1553,0500,4374,4007,0532,4000,0000,0400 ; 8704 J/KIEPT ;LOOK AT KIF20 ; 8705 [ARX]_[ARX]+#, 3T, ;EXEC ADDRESS .LT. 340 ; 8706 #/600, ;IN EBR+600 U 2651, 2652,0551,0404,4374,4007,0701,0000,0000,0600 ; 8707 J/KIEPT ;JOIN COMMON CODE ; 8708 ; 8709 =0 ; 8710 KIEPT: [ARX]_[ARX]+[EBR], ;ADD OFFSET TO ; 8711 LOAD VMA, ; EPT ; 8712 START READ, ;START FETCH ; 8713 VMA PHYSICAL, ;ABSOLUTE ADDRESS U 2652, 3775,0111,1004,4174,4007,0700,0200,0024,1016 ; 8714 J/KIF30 ;GO GET POINTER ; 8715 [ARX]_[ARX]+#, ;PER PROCESS PAGE ; 8716 #/220, 3T, ; IS IN UPT + 400 U 2653, 2647,0551,0404,4374,4007,0701,0000,0000,0220 ; 8717 J/KIUPT ;JOIN COMMON CODE ; 8718 KIF30: MEM READ, ;WAIT FOR DATA U 3775, 3776,3771,0004,4365,5007,0700,0200,0000,0002 ; 8719 [ARX]_MEM ;PLACE IT IN ARX ; 8720 TR [BR], ;SEE IF EVEN OR ODD U 3776, 2654,4553,0500,4374,4007,0331,0000,0000,0001 ; 8721 #/1 ; .. ; 8722 ; KS10.MCR[7,3] 15:03 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 ; 8723 ;STILL .IF/KIPAGE ; 8724 =0 ; 8725 KIF40: READ [ARX], ;ODD ; 8726 SKIP DP18, ;SEE IF VALID U 2654, 2656,3333,0004,4174,4007,0530,0000,0000,0000 ; 8727 J/KIF50 ;JOIN COMMON CODE ; 8728 [ARX]_[ARX] SWAP, ;EVEN--FLIP AROUND U 2655, 2654,3770,0404,4344,4007,0700,0000,0000,0000 ; 8729 J/KIF40 ; AND CONTINUE ; 8730 ; 8731 .ENDIF/KIPAGE ; 8732 =0 U 2656, 2672,4553,1300,4374,4007,0321,0000,0001,0000 ; 8733 KIF50: PAGE FAIL TRAP ; 8734 ;AT THIS POINT WE HAVE THE PAGE MAP ENTRY IN RH OF AR ; 8735 [FLG]_[FLG].AND.NOT.#, ;CLEAR W AND C U 2657, 1435,5551,1313,4374,4007,0700,0000,0002,4000 ; 8736 FLG.W/1, FLG.C/1 ; FLAGS U 1435, 2660,4553,0400,4374,4007,0331,0000,0002,0000 ; 8737 TR [ARX], #/020000 ;CACHE ENABLED? ; 8738 =0 [FLG]_[FLG].OR.#, ;SET CACHE BITS U 2660, 2661,3551,1313,4374,0007,0700,0000,0000,4000 ; 8739 FLG.C/1, HOLD RIGHT ; .. U 2661, 2662,4553,0400,4374,4007,0331,0000,0004,0000 ; 8740 TR [ARX], #/040000 ;DO NOT CACHE ; 8741 ;SEE IF CACHE BIT SET ; 8742 =0 [BRX]_[BRX].OR.#, ;COPY BITS TO BRX ; 8743 #/020000, U 2662, 2663,3551,0606,4374,0007,0700,0000,0002,0000 ; 8744 HOLD RIGHT ; 8745 TR [ARX], ; .. U 2663, 2664,4553,0400,4374,4007,0331,0000,0010,0000 ; 8746 #/100000 ; 8747 =0 [FLG]_[FLG].OR.#, ;SAVE W ; 8748 FLG.W/1, ; .. ; 8749 HOLD RIGHT, ; .. U 2664, 1500,3551,1313,4374,0007,0700,0000,0002,0000 ; 8750 J/KIF90 ;ALL DONE ; 8751 TL [BRX], ;W=0, WRITE REF? U 2665, 2666,4553,0600,4374,4007,0321,0000,0001,0000 ; 8752 WRITE CYCLE/1 ; 8753 =0 ; 8754 KIF80: [BRX]_[BRX].OR.#, ;WRITE FAILURE ; 8755 #/100000, HOLD RIGHT, ;INDICATE THAT ACCESS WAS ON U 2666, 2656,3551,0606,4374,0007,0700,0000,0010,0000 ; 8756 J/KIF50 ;GO PAGE FAIL U 2667, 2607,4443,0000,4174,4007,0700,0000,0000,0000 ; 8757 J/PFDONE ;ALL DONE ; 8758 ; 8759 KIF90: [BRX]_[BRX].OR.#, ;PAGE IS WRITABLE ; 8760 #/40000, ;TURN ON IN BRX U 1500, 2607,3551,0606,4374,4007,0700,0000,0004,0000 ; 8761 J/PFDONE ;ALL SET ; 8762 ; KS10.MCR[7,3] 15:03 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 ; 8763 ;HERE ON HARD PAGE FAILURES U 1501, 2670,3333,0005,7174,4007,0700,0400,0000,0213 ; 8764 HARD: WORK[SV.BR]_[BR] ;SAVE BR (CLEANUP MAY NEED IT) ; 8765 =0 [BR]_VMA, ;BUILD PAGE FAIL WORD U 2670, 1510,3771,0005,4354,4007,0700,0010,0000,0000 ; 8766 CALL [ABORT] ;CLEAR ERROR ; 8767 [BR]_[BR].AND.#, ;SAVE THE FLAGS ; 8768 #/401237, ; .. U 2671, 1502,4551,0505,4374,0007,0700,0000,0040,1237 ; 8769 HOLD RIGHT ; .. ; 8770 [BRX]_[BRX].OR.[BR], ;COMPLETE PAGE FAIL WORD U 1502, 2656,3111,0506,4174,4007,0700,0000,0000,0000 ; 8771 J/KIF50 ;GO TRAP ; 8772 U 1503, 1140,4443,0000,4174,4007,0370,0000,0000,0000 ; 8773 PFPI1: SKIP IRPT ;TIMER TRAP? ; 8774 =00 ; 8775 [AR]_WORK[TIME1], ;YES--GET LOW WORD ; 8776 SPEC/CLRCLK, ;CLEAR CLOCK FLAG U 1140, 3561,3771,0003,7274,4117,0701,0010,0000,0301 ; 8777 CALL [TOCK] ;DO THE UPDATE U 1141, 2673,4443,0000,4174,4007,0700,0000,0000,0000 ; 8778 J/PFT1 ;EXTERNAL INTERRUPT U 1142, 1507,4223,0000,4364,4277,0700,0200,0000,0010 ; 8779 ABORT MEM CYCLE ;CLEAR 1MS FLAGS ; 8780 = ; 8781 PFPI2: [AR]_WORK[SV.VMA], ;RESTORE VMA U 1507, 3762,3771,0003,7274,4007,0701,0000,0000,0210 ; 8782 J/PF125 ; 8783 ; 8784 U 1510, 0001,4223,0000,4364,4274,1700,0200,0000,0010 ; 8785 ABORT: ABORT MEM CYCLE, RETURN [1] ; 8786 ; KS10.MCR[7,3] 15:03 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 ; 8787 ;HERE ON PAGE FAIL TRAP ; 8788 =0 U 2672, 0104,4751,1217,4374,4007,0700,0000,0000,0100 ; 8789 PFT: HALT [IOPF] ;IO PAGE FAILURE ; 8790 PFT1: [AR]_WORK[SV.VMA], U 2673, 2674,3771,0003,7274,4007,0611,0000,0000,0210 ; 8791 SKIP/TRAP CYCLE ;SEE IF TRAP CYCLE ; 8792 =0 TL [AR], FETCH/1, ;IS THIS AN INSTRUCTION FETCH U 2674, 2676,4553,0300,4374,4007,0321,0000,0010,0000 ; 8793 J/PFT1A ;GO LOOK BELOW U 2675, 1511,3771,0003,7274,4007,0701,0000,0000,0425 ; 8794 [AR]_WORK[TRAPPC] ;RESTORE PC U 1511, 2700,3333,0003,4174,4467,0700,0000,0000,0004 ; 8795 READ [AR], LOAD FLAGS, J/CLDISP ; 8796 =0 U 2676, 1100,4443,0000,4174,4007,0700,0000,0000,0000 ; 8797 PFT1A: J/CLEANED ;YES--NO PC TO BACK UP U 2677, 2700,1111,0701,4170,4007,0700,4000,0000,0000 ; 8798 FIXPC: [PC]_[PC]-1, HOLD LEFT ;DATA FAILURE--BACKUP PC ; 8799 =0 U 2700, 1100,3333,0013,4174,4003,5701,0000,0000,0000 ; 8800 CLDISP: CLEANUP DISP ;GO CLEANUP AFTER PAGE FAIL ; 8801 =0000 ; 8802 CLEANUP: ; 8803 CLEANED: ;(0) NORMAL CASE ; 8804 END STATE, SKIP IRPT, ;NO MORE CLEANUP NEEDED U 1100, 2702,4221,0013,4170,4007,0370,0000,0000,0000 ; 8805 J/PFT2 ;HANDLE PAGE FAIL OR INTERRUPT ; 8806 [AR]_WORK[SV.ARX], ;(1) BLT U 1101, 3167,3771,0003,7274,4007,0701,0000,0000,0212 ; 8807 J/BLT-CLEANUP ; 8808 [PC]_[PC]+1, ;(2) MAP U 1102, 1562,0111,0701,4174,4007,0700,0000,0000,0000 ; 8809 J/MAPDON ; 8810 STATE_[EDIT-SRC], ;(3) SRC IN STRING MOVE U 1103, 3463,3771,0013,4370,4007,0700,0000,0000,0011 ; 8811 J/STRPF ; 8812 STATE_[EDIT-DST], ;(4) DST IN STRING MOVE U 1104, 3463,3771,0013,4370,4007,0700,0000,0000,0012 ; 8813 J/STRPF ; 8814 STATE_[SRC], ;(5) SRC+DST IN STRING MOVE U 1105, 2310,3771,0013,4370,4007,0700,0000,0000,0003 ; 8815 J/BACKD ; 8816 STATE_[EDIT-DST], ;(6) FILL IN MOVSRJ U 1106, 3472,3771,0013,4370,4007,0700,0000,0000,0012 ; 8817 J/STRPF4 ; 8818 STATE_[EDIT-SRC], ;(7) DEC TO BIN U 1107, 3467,3771,0013,4370,4007,0700,0000,0000,0011 ; 8819 J/PFDBIN ; 8820 STATE_[EDIT-SRC], ;(10) SRC+DST IN COMP U 1110, 3461,3771,0013,4370,4007,0700,0000,0000,0011 ; 8821 J/CMSDST U 1111, 2302,4221,0013,4170,4007,0700,0000,0000,0000 ; 8822 END STATE, J/BACKS ;(11) EDIT SRC FAIL U 1112, 2310,4221,0013,4170,4007,0700,0000,0000,0000 ; 8823 END STATE, J/BACKD ;(12) EDIT DST FAIL ; 8824 STATE_[EDIT-SRC], ;(13) SRC+DST IN EDIT U 1113, 2310,3771,0013,4370,4007,0700,0000,0000,0011 ; 8825 J/BACKD ; 8826 = ; 8827 ; KS10.MCR[7,3] 15:03 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 ; 8828 =0 ; 8829 PFT2: [AR]_[UBR]+#, ;PREPARE TO STORE PFW ; 8830 #/500, 3T, U 2702, 1512,0551,1103,4374,4007,0701,0000,0000,0500 ; 8831 J/PFT10 U 2703, 0770,3551,1313,4374,0007,0700,0000,0001,0000 ; 8832 PFT3: TAKE INTERRUPT ;PROCESS INTERRUPT ; 8833 PFT10: VMA_[AR], ;WHERE TO STORE PFW U 1512, 2704,3443,0300,4174,4007,0700,0200,0021,1016 ; 8834 VMA PHYSICAL WRITE ; 8835 =0 MEM WRITE, ;STORE PFW ; 8836 MEM_[BRX], U 2704, 1564,3333,0006,4175,5007,0701,0210,0000,0002 ; 8837 CALL [NEXTAR] ;ADVANCE POINTER TO ; 8838 ;PREPARE TO STORE PC ; 8839 .IF/KLPAGE ; 8840 .IF/KIPAGE U 2705, 2706,4553,1000,4374,4007,0321,0000,0040,0000 ; 8841 TL [EBR], #/400000 ;KL PAGING? ; 8842 =0 ; 8843 .ENDIF/KIPAGE U 2706, 2712,4521,1205,4074,4007,0700,0000,0000,0000 ; 8844 [BR]_FLAGS,J/EAPF ;YES--DO EXTENDED THING ; 8845 .ENDIF/KLPAGE ; 8846 ; 8847 .IF/KIPAGE U 2707, 1513,3741,0105,4074,4007,0700,0000,0000,0000 ; 8848 [BR]_PC WITH FLAGS ;GET OLD PC ; 8849 MEM WRITE, ;STORE OLD PC ; 8850 MEM_[BR], U 1513, 1563,3333,0005,4175,5007,0701,0200,0000,0002 ; 8851 J/EAPF1 ; 8852 .ENDIF/KIPAGE ; 8853 ; 8854 MAPDON: END STATE, ;CLEAR MAP BIT U 1562, 2710,4221,0013,4170,4007,0370,0000,0000,0000 ; 8855 SKIP IRPT ;ANY INTERRUPT? ; 8856 =0 [AR]_[BRX], ;RETURN PAGE FAIL WORD U 2710, 1500,3441,0603,4174,4003,7700,0200,0003,0001 ; 8857 EXIT U 2711, 2703,1111,0701,4174,4007,0700,4000,0000,0000 ; 8858 [PC]_[PC]-1, J/PFT3 ;INTERRUPTED OUT OF MAP ; 8859 ; RETRY INSTRUCTION ; 8860 ; KS10.MCR[7,3] 15:03 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 ; 8861 ; 8862 .IF/KLPAGE ; 8863 =0 ; 8864 EAPF: MEM WRITE, MEM_[BR], ;STORE FLAGS U 2712, 1564,3333,0005,4175,5007,0701,0210,0000,0002 ; 8865 CALL [NEXTAR] ;STORE PC WORD U 2713, 1563,3333,0001,4175,5007,0701,0200,0000,0002 ; 8866 MEM WRITE, MEM_[PC] ; .. ; 8867 .ENDIF/KLPAGE ; 8868 ; 8869 EAPF1: [AR]_[AR]+1, ; 8870 VMA PHYSICAL READ, U 1563, 2743,0111,0703,4174,4007,0700,0200,0024,1016 ; 8871 J/GOEXEC ; 8872 U 1564, 0001,0111,0703,4170,4004,1700,0200,0023,1016 ; 8873 NEXTAR: NEXT [AR] PHYSICAL WRITE, RETURN [1] ; 8874 ; Number of microwords used: ; D words= 512 ; U words= 2024, Highest= 2047 END ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 246 ; Cross Reference Listing (U) A 633 # AR 637 # 2391 2429 2459 2460 2523 2571 2579 2718 2720 2723 2726 2729 2732 2816 2826 2841 2858 2868 2878 2888 2919 2929 2939 2974 2986 2993 2997 3007 3008 3010 3012 3013 3021 3044 3045 3271 3276 3278 3290 3293 3296 3301 3302 3372 3389 3391 3456 3459 3527 3528 3534 3554 3581 3596 3632 3643 3655 3709 3732 3737 3772 3816 3820 3829 3831 3992 3997 4027 4062 4076 4092 4103 4106 4109 4123 4150 4151 4156 4173 4189 4209 4321 4330 4335 4345 4351 4370 4374 4392 4420 4424 4426 4427 4446 4478 4481 4484 4498 4523 4540 4541 4546 4551 4559 4561 4563 4634 4644 4646 4651 4652 4697 4702 4712 4716 4754 4758 4762 4766 4942 4955 5040 5043 5055 5058 5064 5070 5105 5180 5183 5285 5291 5295 5296 5326 5332 5351 5357 5358 5359 5360 5369 5374 5394 5395 5407 5409 5418 5419 5439 5444 5445 5451 5486 5490 5492 5495 5498 5502 5504 5506 5508 5509 5510 5511 5517 5519 5520 5529 5534 5550 5576 5584 5589 5591 5635 5648 5667 5676 5680 5695 5709 5711 5713 5719 5746 5753 5756 5768 5771 5779 5781 5785 5790 5792 5808 5813 5816 5838 5841 5842 5846 5964 5968 5972 5979 5990 5999 6014 6034 6038 6051 6054 6080 6164 6171 6188 6210 6224 6251 6262 6263 6264 6277 6311 6341 6352 6390 6405 6433 6438 6467 6468 6469 6470 6472 6473 6476 6481 6530 6551 6558 6559 6585 6623 6635 6636 6643 6663 6666 6669 6673 6674 6676 6680 6682 6736 6737 6742 6743 6750 6753 6757 6826 6848 6854 6873 6891 6895 6898 6899 6900 6901 6923 6948 6949 6953 6959 6960 6964 7034 7040 7063 7065 7067 7069 7072 7074 7076 7118 7125 7136 7140 7147 7151 7175 7181 7183 7188 7196 7223 7286 7367 7369 7371 7373 7375 7377 7379 7381 7383 7405 7411 7473 7483 7489 7492 7493 7510 7518 7568 7579 7592 7594 7620 7625 7652 7655 7683 7701 7702 7761 7858 7866 7897 8227 8237 8341 8350 8353 8355 8357 8361 8364 8375 8381 8386 8429 8432 8437 8444 8452 8459 8481 8499 8503 8541 8544 8559 8560 8581 8597 8599 8601 8631 8637 8642 8648 8662 8679 8792 8833 ARX 638 # 2491 2773 2774 3712 3714 3727 3756 4089 4101 4110 4111 4128 4131 4133 4155 4175 4191 4211 4214 4234 4363 4391 4443 4469 4470 4549 4641 4642 4650 4719 4909 4916 4917 4945 4948 4969 5099 5121 5293 5331 5363 5549 5570 5573 5633 5650 5672 5692 5712 5717 5763 5802 5809 6052 6093 6100 6134 6168 6218 6227 6237 6246 6269 6270 6278 6310 6314 6391 6428 6436 6440 6442 6759 6762 6808 6876 6950 7064 7068 7070 7073 7075 7104 7106 7317 7330 7334 7524 7707 7709 7767 7994 8328 8336 8384 8398 8421 8535 8567 8569 8633 8705 8715 8728 8737 8740 8745 BR 639 # 2190 2387 2422 2424 2428 2909 3040 3073 3074 3077 3078 3079 3080 3095 3098 3101 3104 3108 3111 3113 3145 3146 3149 3150 3431 3434 3437 3440 3443 3446 3449 3452 3777 3782 3810 3837 3846 3847 3994 3999 4097 4229 4394 4396 4404 4408 4471 4474 4548 4552 4553 4554 4557 4562 4593 4735 4737 4796 4797 4798 4799 4800 4807 4816 4820 4829 4890 4891 4892 4893 4894 4915 4958 4964 5067 5107 5109 5119 5124 5292 5299 5300 5304 5305 5361 5364 5398 5449 5532 5556 5558 5568 5582 5661 5679 5682 5918 5930 5931 5933 5934 5961 5970 6015 6020 6045 6048 6139 6204 6207 6208 6221 6229 6235 6358 6368 6379 6388 6392 6410 6463 6478 6516 6527 6594 6850 6851 6892 6893 6933 6941 6952 6956 7033 7036 7061 7095 7097 7100 7162 7173 7187 7189 7214 7215 7285 7296 7303 7372 7374 7376 7382 7384 7420 7433 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 247 ; Cross Reference Listing 7530 7553 7554 7555 7596 7598 7626 7630 7632 7636 7638 7662 7668 7759 8235 8299 8302 8315 8441 8565 8691 8701 8720 8767 8770 BRX 640 # 4125 4153 4159 4230 4253 4273 4277 4281 4285 4291 4295 4299 4303 4380 4433 4473 4585 4588 4599 5046 5098 5127 5135 5142 5166 5324 5325 5327 5366 5371 5561 5578 5644 5658 5659 5701 5922 6021 6091 6102 6103 6127 6176 6184 6265 6294 6307 6316 6321 6329 6331 6340 6346 6351 6363 6402 6404 6422 6431 6458 6460 6462 6493 6496 6512 6524 6526 6606 6608 6611 6677 6684 6778 6782 6786 6790 6794 6798 6814 7087 7231 7232 7233 7332 7482 7537 7538 7601 7684 8231 8284 8285 8288 8294 8296 8470 8473 8476 8498 8506 8548 8552 8554 8556 8571 8575 8742 8751 8754 8759 8856 EBR 642 # 6980 7197 7198 7199 7212 7485 7528 8306 8339 8710 8841 FLG 645 # 3623 5513 5614 5615 5622 5749 5752 5755 5758 5818 5825 5826 6602 8281 8360 8380 8448 8458 8472 8478 8510 8531 8551 8570 8572 8603 8640 8645 8669 8678 8733 8735 8738 8747 8832 HR 636 # 2291 2297 2303 2309 2318 2322 2331 2336 2437 2785 2790 3531 3540 3543 3545 3546 3547 3566 3570 3580 3585 3588 3608 3629 3642 3924 3926 3928 3930 3932 3934 3936 3938 3944 3964 4042 5920 6913 6990 6996 7005 7006 7007 7011 7012 7013 7014 7019 7020 7021 7024 7025 7026 7027 7028 7029 7030 7031 7252 7275 7370 7686 7700 7829 7833 7838 7840 7842 7844 7846 7848 MAG 634 # 2426 4135 4138 4157 4160 4161 4174 4180 4182 4216 4218 4220 4398 4416 4438 4442 4445 4486 4488 4489 4616 4621 4626 4632 4633 5552 5643 5698 5724 5759 5794 5798 5800 MASK 644 # 2152 2153 2154 2157 2160 2193 2204 2240 2244 2247 2250 2259 2262 2265 2268 2519 2742 2763 2970 3018 3582 3630 3644 3665 3948 3965 3988 3991 4036 4096 4232 4266 4400 4411 4439 4564 4776 4896 4907 5454 5514 5587 5637 5727 5796 5885 5887 5889 5891 5893 5895 5897 5899 5901 6136 6138 6160 6275 6597 7284 7327 7328 7329 7463 7464 7465 7466 7467 7468 7469 7475 7494 7504 7522 7536 7614 7617 7653 7664 7670 7687 7743 7896 8260 8262 8276 8789 8844 ONE 641 # 2182 2186 2231 2233 2278 2365 2416 2419 2949 3340 3406 3422 3489 3503 3529 3538 3541 3616 3634 3637 3984 4031 4047 4326 4741 5038 5106 5147 5149 5154 5171 5172 5441 5453 5528 5677 5835 5956 5997 6030 6036 6057 6075 6085 6104 6105 6140 6141 6183 6247 6252 6315 6327 6334 6354 6361 6366 6375 6385 6389 6393 6394 6430 6444 6455 6507 6531 6625 6647 6700 6823 6824 6830 6852 6894 6936 7291 7314 7344 7396 7680 7757 7882 7968 7975 7978 7981 7984 7987 8798 8808 8858 8869 8873 PC 635 # 2230 2234 2252 2345 2407 2432 3328 3455 3460 3691 3808 3814 3834 4020 4221 4223 4698 4707 6969 7387 7506 7658 7893 8848 PI 646 # 3594 3595 3609 7015 7016 7364 7378 7380 7385 7395 7397 7456 7457 7458 7459 7460 7461 7462 7471 T0 648 # 4201 4205 4441 4452 4459 4462 4464 4465 5569 5577 5603 5605 5606 5607 5610 5618 5621 5623 5663 5729 5737 5738 6359 6426 7398 7534 T1 649 # 4418 4558 5593 5678 5681 5700 5710 UBR 643 # 3950 3990 6972 7132 7166 7221 7222 7227 7228 8331 8695 8829 XWD1 647 # 3511 3681 7520 (D) A 1317 # ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 248 ; Cross Reference Listing DBLAC 1321 # 2777 DFP 1327 # 5539 5540 5628 5689 DREAD 1320 # 2768 2769 4084 4085 4168 4386 DSHIFT 1323 # 2959 2960 FP 1325 # 5265 5266 5267 5268 5270 5271 5273 5274 5275 5276 5278 5279 5310 5311 5312 5314 5316 5317 5339 5340 5341 5343 5345 5346 5424 5425 FPI 1324 # 5269 5277 5315 5344 IOT 1328 # 7001 7002 7238 7560 7561 7562 7563 7571 7572 7573 7574 7585 7586 7587 7588 7853 7854 8223 RD-PF 1326 # 2549 2554 2559 2564 2602 2607 2612 2617 2622 2627 2632 2637 2644 2649 2654 2659 2664 2669 2674 2679 2809 2819 2829 2834 2851 2861 2871 2881 2901 2912 2922 2932 4055 4069 4117 4142 4309 4314 READ 1318 # 2552 2557 2562 2567 2586 2604 2605 2609 2610 2615 2620 2625 2630 2635 2640 2646 2647 2651 2652 2657 2662 2667 2672 2677 2682 2811 2812 2821 2822 2831 2832 2836 2837 2844 2853 2854 2863 2864 2873 2874 2883 2884 2903 2904 2914 2915 2924 2925 2934 2935 3188 3189 3190 3191 3192 3193 3204 3205 3206 3207 3208 3209 3210 3211 3222 3223 3224 3225 3226 3227 3228 3229 3239 3240 3241 3242 3243 3244 3245 3246 3361 3362 3363 3364 3365 3366 3367 3368 3378 3379 3380 3381 3382 3383 3384 3385 3395 3396 3397 3398 3399 3400 3401 3402 3411 3412 3413 3414 3415 3416 3417 3418 3649 4057 4058 4071 4072 4119 4120 4144 4145 4311 4312 4316 4317 4687 4688 4689 4690 4691 5389 SHIFT 1322 # 2954 2955 2956 WRITE 1319 # 2551 2556 2561 2566 2614 2619 2624 2629 2634 2639 2656 2661 2666 2671 2676 2681 2778 2846 2847 (U) ACALU 1215 # AC+N 1217 # 2175 2176 2183 2373 2385 2491 2774 2783 3024 3045 3089 3119 4089 4101 4180 4182 4184 4192 4194 4201 4203 4215 4216 4217 4218 4219 4220 4332 4416 4438 4442 4445 4459 4460 4462 4465 4484 4486 4488 4489 4615 4616 4619 4620 4621 4624 4625 4626 4632 4633 5552 5643 5696 5698 5704 5763 5771 5809 5816 5960 5968 5978 5981 6011 6014 6027 6034 6041 6051 6089 6099 6119 6134 6151 6166 6168 6194 6197 6199 6206 6207 6208 6210 6216 6218 6221 6227 6229 6257 6259 6260 6264 6271 6272 6273 6277 6278 6285 6287 6292 6298 6314 6325 6337 6346 6352 6363 6366 6368 6372 6385 6391 6392 6515 6546 6551 6556 6593 6595 6699 6700 6812 6819 6826 6845 6847 6854 6874 6895 6931 6933 6939 6941 6945 6948 6953 B 1216 # (D) ACDISP 1348 # 3518 7001 7002 7238 (U) ACN 1218 # 2373 2385 2491 2774 2783 3024 3045 3089 3119 4089 4101 4180 4182 4184 4192 4194 4201 4203 4215 4216 4217 4218 4219 4220 4332 4416 4438 4442 4445 4459 4460 4462 4465 4484 4486 4488 4489 4615 4616 4619 4620 4621 4624 4625 4626 4632 4633 5552 5643 5696 5698 5704 5763 5771 5809 5816 6298 6314 6325 6372 6391 BIN0 1225 # 2175 6194 6216 6221 6229 6260 6271 6272 6273 6277 6285 BIN1 1226 # 2176 2183 6166 6168 6197 6199 6206 6207 6208 6210 6218 6227 6257 6259 6264 6278 6287 DLEN 1222 # 5960 5968 5981 6011 6014 6041 6051 6089 6099 6134 6292 6337 6346 6352 6363 6366 6368 6385 6392 6699 6700 6812 6826 6845 6945 6948 6953 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 249 ; Cross Reference Listing DSTP 1223 # 5978 6151 6546 6551 6595 6819 6874 6895 6939 6941 MARK 1224 # 6515 6593 SRCLEN 1220 # SRCP 1221 # 6027 6034 6119 6556 6847 6854 6931 6933 (U) AD 530 # 2157 2160 2193 2204 2240 2244 2247 2250 2259 2262 2265 2268 2322 2519 2740 2742 2761 2763 3582 3665 3948 3988 4036 4400 4411 5885 5887 5889 5891 5893 5895 5897 5899 5901 5931 6160 6275 6597 7284 7327 7328 7329 7463 7464 7465 7466 7467 7468 7469 7475 7504 7522 7536 7614 7617 7653 7664 7670 7687 7743 7896 8260 8262 8276 8789 A 559 # 2152 2154 2230 2234 2252 2297 2309 2336 2345 2387 2428 2429 2432 2491 2523 2774 2790 2974 2986 2993 2997 3007 3008 3010 3012 3013 3021 3040 3045 3073 3074 3077 3078 3079 3080 3095 3098 3101 3104 3108 3111 3145 3146 3149 3150 3302 3328 3391 3431 3443 3455 3456 3459 3460 3527 3528 3534 3554 3570 3581 3596 3632 3643 3655 3709 3712 3714 3732 3737 3810 3816 3829 3834 3847 4123 4125 4128 4150 4151 4153 4155 4173 4175 4189 4191 4209 4211 4223 4229 4230 4232 4253 4266 4321 4330 4345 4351 4380 4392 4394 4396 4408 4420 4424 4439 4443 4446 4459 4465 4469 4478 4498 4546 4551 4552 4553 4558 4559 4561 4563 4634 4698 4707 4712 4719 4735 4758 4766 4820 4896 4909 4945 4964 4969 5043 5046 5064 5099 5119 5127 5135 5183 5291 5292 5293 5304 5326 5327 5331 5332 5351 5359 5361 5366 5369 5374 5407 5409 5439 5441 5444 5445 5451 5486 5490 5492 5498 5506 5508 5509 5510 5528 5529 5534 5561 5568 5569 5573 5576 5577 5584 5589 5591 5603 5605 5606 5607 5610 5618 5621 5623 5633 5635 5637 5644 5648 5650 5661 5667 5672 5676 5677 5680 5692 5695 5717 5727 5729 5737 5738 5746 5753 5756 5768 5771 5785 5790 5792 5813 5816 5838 5846 5934 5979 5999 6014 6034 6045 6051 6080 6091 6127 6134 6168 6207 6227 6229 6264 6277 6278 6314 6340 6346 6351 6352 6359 6363 6368 6390 6391 6392 6426 6460 6469 6472 6476 6478 6516 6526 6551 6558 6594 6611 6636 6666 6673 6684 6736 6753 6759 6850 6854 6873 6892 6895 6899 6901 6933 6941 6948 6949 6953 6960 7015 7016 7118 7162 7181 7183 7196 7212 7214 7222 7223 7228 7231 7233 7332 7364 7387 7405 7411 7482 7489 7510 7518 7537 7555 7579 7592 7594 7601 7626 7630 7636 7658 7662 7668 7702 7759 7761 7767 7858 7866 7893 7994 8237 8296 8299 8315 8341 8361 8364 8384 8398 8535 8541 8559 8565 8581 8662 8833 8856 A+B 532 # 2182 2186 2231 2233 2278 2365 2416 2419 2785 3113 3340 3406 3616 3634 3637 3777 3782 3950 3984 3990 4031 4047 4201 4205 4234 4290 4294 4374 4470 4471 4474 4484 4557 4562 4588 4592 4598 4741 5147 5149 5154 5171 5172 5305 5449 5453 5532 5582 5663 5956 6020 6052 6057 6075 6104 6105 6210 6224 6235 6237 6247 6315 6327 6334 6354 6375 6389 6444 6455 6463 6507 6531 6625 6647 6674 6700 6852 6876 6894 6936 6956 6972 6980 7285 7291 7314 7344 7485 7520 7530 7538 7757 7882 7968 7975 7978 7981 7984 7987 8328 8336 8421 8695 8710 8808 8869 8873 A+Q 531 # 4441 4452 4473 5106 5570 5578 5679 5682 5835 A-.25 543 # A-B-.25 548 # 4370 4426 4427 5105 5124 5142 5166 5363 5371 5719 5968 6103 6139 6358 A-D-.25 544 # 6188 6428 6433 6481 8691 8701 A-Q-.25 547 # A.AND.B 564 # 4159 4174 4391 4462 4915 5514 5763 5796 5798 5809 5990 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 250 ; Cross Reference Listing 6136 7034 7040 7397 7553 8633 A.AND.Q 563 # 4157 4398 4442 4486 4488 4564 4616 4621 4626 4632 4633 4829 4907 4916 5759 5794 A.EQV.B 591 # A.EQV.Q 590 # 4135 4138 4160 4161 4216 4218 4220 4489 A.OR.B 556 # 2909 4097 4917 5070 5922 6021 6054 6093 6251 6682 7064 7068 7075 7106 7151 7173 7175 7376 7382 7524 7620 7655 8556 8770 A.OR.Q 555 # 5593 A.XOR.B 583 # 5800 7330 A.XOR.Q 582 # B 558 # 2162 2170 2172 2173 2176 2178 2185 2187 2378 2398 2497 2529 2535 2540 2543 2574 2593 2738 2745 2752 2759 2789 3070 3086 3142 3287 3331 3334 3337 3343 3346 3349 3408 3562 3610 3621 3661 3697 3703 3742 3748 3819 3954 3958 3968 3972 3974 3980 4002 4008 4019 4023 4039 4046 4127 4272 4276 4298 4302 4333 4339 4353 4358 4360 4365 4432 4434 4451 4467 4476 4537 4544 4565 4695 4704 4708 4723 4726 4742 4823 4889 4897 4905 4954 4967 4987 5019 5026 5290 5294 5377 5379 5411 5415 5448 5488 5507 5575 5674 5683 5732 5750 5788 5924 5927 5940 5942 5943 5973 5985 6019 6035 6061 6062 6063 6078 6120 6123 6125 6129 6142 6153 6161 6169 6300 6302 6345 6364 6377 6381 6383 6432 6439 6465 6479 6484 6506 6510 6562 6582 6596 6648 6656 6730 6751 6773 6805 6855 6857 6879 6919 6970 7077 7079 7080 7082 7085 7089 7190 7191 7257 7261 7265 7269 7273 7288 7299 7304 7320 7323 7339 7343 7345 7353 7354 7406 7418 7424 7431 7656 7698 7721 7727 7729 7763 7765 7874 7881 7946 7955 7961 7965 7966 7967 7969 7970 7971 7973 7974 7976 7977 7979 7980 7982 7983 7985 7986 7988 7989 7991 8233 8243 8244 8246 8247 8254 8264 8266 8268 8270 8274 8275 8310 8409 8416 8418 8439 8577 8635 8689 8725 8764 8795 8800 8836 8850 8864 8866 B-.25 542 # B-A-.25 540 # 3422 3529 3538 3541 4280 4284 4554 4585 6015 6036 6140 6141 6252 6341 6393 6430 6823 6952 7296 7420 7433 7680 8798 8858 D 562 # 2151 2155 2180 2181 2183 2221 2271 2341 2355 2359 2364 2368 2372 2373 2385 2386 2391 2396 2407 2413 2571 2590 2691 2693 2718 2720 2723 2724 2726 2729 2730 2732 2747 2749 2754 2756 2783 2967 2984 2990 3002 3005 3043 3089 3092 3271 3276 3389 3434 3437 3440 3446 3449 3452 3475 3551 3558 3575 3590 3595 3615 3619 3680 3691 3719 3725 3752 3761 3772 3774 3808 3814 3831 3832 3845 3846 3850 3964 4007 4020 4109 4124 4133 4152 4156 4194 4199 4214 4217 4219 4221 4322 4331 4332 4414 4543 4697 4702 4716 4718 4722 4737 4770 4796 4797 4798 4799 4800 4816 4890 4891 4892 4893 4894 4942 4951 4958 4972 4974 4978 4982 4984 4988 5017 5022 5045 5058 5060 5098 5107 5111 5118 5162 5180 5181 5288 5321 5353 5417 5495 5511 5553 5563 5655 5706 5841 5917 5936 5945 5960 5963 5977 5978 5981 6003 6006 6011 6027 6028 6038 6048 6065 6066 6067 6068 6076 6082 6090 6099 6101 6119 6121 6128 6132 6145 6147 6151 6163 6166 6175 6194 6197 6199 6206 6216 6257 6259 6260 6265 6292 6297 6298 6299 6311 6320 6325 6337 6343 6353 6356 6357 6372 6384 6386 6387 6405 6408 6457 6462 6467 6468 6508 6515 6530 6546 6556 6565 6569 6584 6593 6595 6599 6620 6627 6629 6660 6676 6697 6699 6737 6762 6812 6817 6819 6826 6828 6845 6847 6848 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 251 ; Cross Reference Listing 6851 6874 6891 6893 6903 6918 6931 6935 6939 6945 6964 6969 6988 7008 7009 7046 7048 7060 7071 7094 7095 7103 7121 7186 7243 7245 7247 7249 7251 7256 7260 7264 7268 7272 7281 7286 7290 7295 7301 7302 7313 7333 7337 7352 7358 7372 7385 7395 7414 7416 7427 7429 7453 7479 7490 7506 7508 7527 7532 7550 7582 7623 7690 7693 7695 7703 7717 7748 7751 7753 7862 7869 7901 7948 7953 7957 7960 7972 7990 7992 7993 7995 8230 8234 8236 8245 8251 8256 8323 8326 8345 8410 8413 8427 8437 8491 8493 8538 8578 8579 8580 8586 8667 8719 8728 8765 8775 8781 8790 8794 8806 8810 8812 8814 8816 8818 8820 8824 8848 D+A 536 # 2291 2303 2318 2331 3489 3511 3566 3681 3727 3756 3820 3837 4062 4089 4092 4754 4762 5040 5109 5121 5930 5933 5997 6030 6085 6183 6208 6218 6221 6361 6379 6422 6431 6438 6440 6559 6635 6742 6750 6824 6830 6898 6900 7334 7483 7528 7701 7707 7709 8331 8339 8353 8355 8432 8597 8705 8715 8829 D+Q 537 # 4990 4998 5029 5048 D-.25 554 # D-A-.25 552 # 3372 3503 4076 4101 4103 4106 5055 6366 6385 D-Q-.25 553 # D.AND.A 571 # 2424 2426 2437 2459 2773 2816 2939 2970 3018 3278 3301 3531 3540 3543 3545 3546 3547 3580 3585 3588 3594 3608 3609 3629 3630 3642 3644 3924 3926 3928 3930 3932 3934 3936 3938 3944 3965 3991 3992 3997 4042 4110 4180 4182 4363 4416 4438 4445 4641 4776 4948 4955 5067 5295 5299 5324 5357 5394 5398 5418 5513 5552 5643 5678 5681 5698 5749 5752 5755 5758 5818 5918 5920 5961 5964 6100 6102 6138 6164 6171 6184 6204 6246 6262 6269 6294 6310 6329 6388 6402 6404 6436 6442 6458 6470 6473 6493 6496 6512 6527 6643 6677 6680 6743 6757 6913 6923 6990 6996 7005 7006 7007 7011 7012 7013 7014 7019 7020 7021 7024 7025 7026 7027 7028 7029 7030 7031 7063 7065 7067 7069 7072 7074 7076 7097 7100 7125 7132 7136 7140 7147 7166 7187 7188 7197 7215 7221 7227 7232 7252 7275 7317 7367 7369 7370 7371 7373 7375 7377 7379 7381 7383 7494 7534 7568 7625 7632 7638 7652 7684 7686 7700 7829 7833 7838 7840 7842 7844 7846 7848 8231 8235 8284 8288 8306 8350 8357 8360 8375 8380 8429 8444 8448 8452 8458 8472 8476 8478 8498 8503 8531 8544 8551 8554 8570 8572 8599 8601 8603 8637 8640 8642 8645 8648 8669 8679 8720 8733 8737 8740 8745 8751 8767 8792 8841 8844 D.AND.Q 572 # 3115 4516 5329 5638 D.EQV.A 595 # 2888 D.EQV.Q 596 # D.OR.A 560 # 2153 2422 2460 2868 3296 3994 3999 4111 4464 4549 5296 5300 5325 5358 5419 5558 5614 5615 5622 5659 5711 5825 6176 6263 6307 6316 6321 6331 6602 6606 6608 6669 6782 6786 6790 6798 6814 6950 6959 7189 7198 7303 7378 7456 7457 7458 7459 7460 7461 7462 7596 7897 8227 8281 8285 8386 8470 8473 8481 8499 8506 8548 8552 8569 8571 8575 8631 8738 8742 8747 8754 8759 8832 D.OR.Q 561 # 3117 4401 D.XOR.A 587 # 2190 2858 3293 4418 7492 7493 8294 D.XOR.Q 588 # Q 557 # 3119 4129 4137 4184 4192 4192 4203 4215 4357 4412 4429 4435 4440 4444 4450 4458 4977 5139 5165 5376 5381 5452 5494 5518 5612 5619 5639 5651 5662 5721 5723 5767 5812 6109 6148 6550 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 252 ; Cross Reference Listing Q-.25 541 # Q-A-.25 539 # 4433 5038 Q-D-.25 545 # 4981 ZERO 568 # 2163 2163 2165 2168 2175 2177 2179 2196 2218 2402 2806 2983 3024 3044 3273 3611 3975 4228 4254 4324 4460 4538 4805 4818 4824 4825 4828 4900 4901 4904 4960 5103 5145 5169 5302 5373 5384 5396 5400 5402 5403 5416 5429 5521 5694 5722 5761 5777 5805 5986 5988 6022 6041 6089 6094 6106 6117 6146 6267 6285 6287 6305 6339 6395 6399 6403 6406 6461 6585 6623 6663 6733 6808 7033 7036 7104 7158 7170 7216 7293 7368 7413 7438 7439 7471 7474 7481 7495 7710 7755 7876 7879 7949 8280 8302 8381 8441 8459 8547 8567 8779 8785 8804 8822 8823 8854 -A-.25 551 # 2579 2949 4326 4404 4481 4523 4541 4548 4642 4646 4650 4652 5285 5360 5364 5395 5504 5520 5549 5550 5701 5712 5713 5781 5802 5808 6270 6394 7396 -B-.25 550 # 5702 -D-.25 546 # 4455 4615 4620 4625 4630 6001 6273 6944 6958 -Q-.25 549 # 4403 4454 4480 4521 4522 4539 5382 5487 5489 5491 5493 5776 .NOT.A 594 # 2841 2878 2919 2929 3290 4096 4335 4540 4644 4651 5454 5502 5517 5519 5700 5710 5779 5970 5972 6524 7398 7473 7683 8678 .NOT.A.AND.B 575 # 4131 5587 7070 7073 7374 7384 7554 .NOT.A.AND.Q 574 # 5724 .NOT.B 593 # 5807 6179 .NOT.D 597 # 2898 2908 4619 4624 4629 6018 6046 6050 6186 6190 6272 6962 .NOT.D.AND.A 579 # 2826 3623 4027 5556 5658 5709 5826 6410 6778 6794 7061 7087 7199 7380 7598 8510 8560 8735 .NOT.D.AND.Q 580 # .NOT.Q 592 # 4914 5775 5989 0+A 535 # 5842 0+B 534 # 0+D 538 # 0+Q 533 # 5588 5735 (U) AD PARITY OK 707 # 2183 2359 2372 2373 2590 2691 2693 2724 2730 2783 2967 2970 2984 3018 3475 3719 3752 3774 3832 3845 4152 4194 4331 4722 5118 5288 5321 5353 5417 5563 5960 5963 5978 5981 6011 6027 6099 6101 6119 6151 6163 6166 6194 6197 6199 6206 6216 6257 6259 6260 6292 6297 6298 6299 6320 6325 6337 6372 6457 6515 6556 6593 6595 6699 6812 6819 6845 6847 6874 6931 6939 6945 7582 7869 8257 (U) ADFLGS 1111 # 2580 3406 3422 3489 3503 4063 4077 4094 4104 4107 4234 4645 4647 (U) AREAD 1145 # 2323 (U) B 653 # AR 657 # 2160 2162 2177 2240 2244 2247 2259 2262 2265 2322 2355 2359 2364 2372 2378 2391 2396 2398 2407 2416 2416 2419 2419 2428 2429 2459 2460 2497 2523 2529 2535 2540 2543 2571 2574 2579 2691 2693 2718 2720 2723 2724 2726 2729 2730 2732 2738 2740 2742 2745 2747 2749 2752 2754 2756 2759 2761 2763 2806 2816 2826 2841 2858 2868 2878 2888 2898 2909 2909 2919 2929 2939 2949 2967 2970 2974 2984 2986 2990 2993 2997 3002 3005 3007 3008 3010 3012 3013 3043 3044 3045 3070 3086 3142 3271 3276 3290 3293 3296 3301 3302 3331 3334 3337 3343 3346 3349 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 253 ; Cross Reference Listing 3372 3389 3391 3406 3406 3408 3422 3616 3616 3634 3637 3637 3644 3772 3777 3782 3832 3964 3965 3972 3991 4007 4008 4020 4023 4027 4036 4039 4047 4062 4076 4092 4097 4097 4103 4106 4109 4129 4135 4137 4138 4155 4156 4173 4221 4324 4326 4331 4333 4358 4380 4414 4420 4424 4467 4471 4471 4474 4474 4478 4481 4484 4498 4523 4537 4540 4541 4546 4551 4554 4557 4559 4561 4562 4562 4563 4593 4629 4630 4634 4644 4646 4651 4652 4695 4704 4708 4712 4723 4726 4735 4737 4741 4741 4742 4770 4808 4823 4825 4828 4829 4889 4890 4891 4892 4893 4894 4897 4905 4914 4915 4915 4917 4917 4972 4974 4984 4987 4988 5017 5026 5040 5050 5055 5058 5060 5064 5142 5166 5180 5181 5183 5285 5292 5294 5295 5296 5305 5305 5331 5332 5353 5357 5358 5369 5374 5376 5377 5379 5381 5382 5407 5409 5411 5415 5417 5418 5419 5439 5444 5445 5448 5449 5449 5451 5453 5453 5486 5488 5490 5492 5495 5498 5502 5504 5506 5507 5508 5509 5510 5511 5514 5514 5517 5519 5520 5529 5532 5532 5534 5550 5577 5582 5582 5584 5589 5591 5635 5672 5676 5680 5683 5706 5709 5711 5713 5737 5738 5746 5750 5753 5756 5768 5771 5779 5781 5785 5788 5790 5792 5807 5813 5816 5838 5841 5842 5846 5885 5887 5889 5891 5893 5895 5897 5899 5901 5927 5956 5956 5963 5970 5972 5973 5988 5989 5997 6001 6014 6015 6015 6018 6020 6020 6021 6021 6027 6034 6035 6045 6046 6048 6050 6051 6052 6052 6057 6057 6065 6104 6104 6105 6106 6119 6125 6132 6136 6136 6139 6139 6142 6146 6151 6153 6160 6161 6163 6171 6179 6183 6186 6190 6259 6262 6263 6264 6272 6273 6277 6297 6299 6302 6311 6320 6337 6351 6352 6353 6354 6354 6359 6377 6379 6381 6386 6390 6403 6405 6406 6408 6430 6433 6438 6444 6444 6455 6467 6468 6469 6470 6472 6473 6506 6526 6530 6531 6531 6551 6556 6558 6559 6562 6584 6585 6597 6599 6620 6623 6625 6625 6627 6635 6643 6647 6647 6648 6660 6663 6666 6669 6673 6676 6680 6697 6699 6700 6730 6736 6737 6742 6750 6751 6753 6759 6808 6812 6817 6819 6823 6824 6826 6828 6830 6845 6847 6850 6851 6852 6852 6854 6855 6857 6874 6879 6892 6893 6894 6894 6895 6903 6918 6919 6923 6931 6935 6936 6939 6944 6948 6952 6952 6953 6956 6956 6958 6959 6960 6962 6972 6972 6980 6980 7121 7125 7136 7181 7183 7256 7257 7260 7261 7264 7265 7268 7269 7272 7273 7281 7285 7285 7286 7288 7290 7291 7291 7293 7295 7296 7296 7299 7301 7313 7323 7337 7352 7353 7354 7413 7414 7418 7420 7420 7424 7427 7431 7433 7433 7471 7475 7479 7482 7483 7485 7485 7490 7508 7518 7522 7524 7524 7579 7601 7626 7632 7638 7687 7690 7695 7701 7703 7707 7709 7710 7748 7757 7757 7862 7869 7896 7897 7970 7971 7972 7973 7990 7991 7992 8227 8237 8243 8331 8339 8345 8353 8355 8361 8364 8384 8386 8410 8413 8427 8432 8439 8444 8481 8491 8493 8499 8535 8538 8541 8544 8556 8556 8586 8597 8601 8635 8667 8678 8775 8781 8790 8794 8795 8806 8829 8856 8869 8869 8873 ARX 658 # 2183 2187 2368 2373 2402 2426 2491 2773 2774 2783 2789 3681 3712 3714 3719 3727 3752 3756 3831 3834 3948 3950 3950 3958 3968 3984 4031 4089 4101 4110 4111 4127 4128 4133 4157 4160 4161 4174 4174 4182 4192 4205 4205 4211 4214 4228 4234 4254 4273 4277 4281 4285 4291 4295 4299 4303 4345 4357 4363 4429 4435 4444 4538 4543 4549 4565 4585 4585 4588 4588 4599 4641 4642 4650 4718 4722 4909 4916 4942 4945 4948 4951 4954 5098 5147 5147 5172 5291 5359 5360 5371 5549 5651 5663 5663 5698 5721 5796 5796 5798 5798 5800 5800 5802 5835 5979 5981 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 254 ; Cross Reference Listing 5999 6030 6036 6062 6067 6075 6075 6078 6080 6085 6099 6103 6123 6129 6134 6140 6166 6168 6197 6218 6224 6224 6227 6237 6237 6246 6257 6269 6270 6275 6278 6298 6300 6310 6314 6315 6315 6325 6343 6372 6383 6387 6389 6389 6391 6428 6436 6440 6442 6582 6762 6805 6873 6876 6949 6950 6969 6970 7063 7065 7103 7104 7317 7320 7328 7332 7334 7345 7481 7520 7520 7530 7530 7653 7655 7664 7670 7693 7751 7755 7767 7874 7879 7882 7946 7948 7953 7957 7960 7961 7965 7968 7975 7978 7981 7984 7987 7993 7995 8247 8315 8323 8326 8381 8398 8416 8418 8459 8567 8578 8631 8695 8695 8705 8710 8710 8715 8719 8725 8728 BR 659 # 2185 2386 2387 2413 2422 2424 2590 2593 2908 3018 3040 3073 3074 3077 3078 3079 3080 3092 3095 3098 3101 3104 3108 3111 3113 3145 3146 3149 3150 3273 3278 3287 3431 3434 3437 3440 3443 3446 3449 3452 3475 3489 3503 3511 3615 3621 3630 3680 3691 3697 3703 3725 3742 3748 3774 3808 3810 3814 3819 3829 3845 3846 3850 3988 3990 3990 3994 3999 4002 4096 4175 4321 4330 4339 4353 4360 4365 4370 4374 4392 4394 4396 4404 4408 4426 4427 4544 4548 4552 4553 4697 4702 4716 4776 4796 4797 4798 4799 4800 4816 4818 4820 4955 4958 4960 4964 4967 4982 4992 5019 5031 5067 5070 5106 5107 5109 5119 5121 5288 5290 5293 5299 5300 5304 5351 5395 5441 5454 5528 5553 5556 5558 5569 5639 5677 5695 5702 5719 5917 5922 5922 5924 5930 5931 5933 5936 5940 5942 5943 5945 5960 5968 5978 5985 6011 6019 6038 6061 6066 6138 6194 6199 6206 6207 6208 6210 6216 6221 6229 6235 6235 6247 6247 6260 6339 6340 6341 6341 6361 6364 6366 6368 6375 6375 6385 6392 6394 6410 6462 6463 6465 6476 6478 6479 6515 6524 6593 6595 6596 6848 6891 6933 6941 6945 6964 7008 7009 7015 7016 7033 7034 7036 7040 7046 7048 7060 7061 7064 7064 7068 7068 7070 7070 7079 7080 7082 7094 7095 7097 7100 7106 7106 7147 7158 7162 7186 7187 7189 7190 7191 7212 7214 7215 7216 7221 7227 7233 7243 7245 7247 7249 7251 7284 7302 7303 7304 7327 7330 7333 7343 7358 7364 7371 7372 7406 7416 7429 7494 7506 7528 7532 7538 7538 7550 7555 7568 7582 7594 7596 7598 7614 7617 7620 7623 7630 7636 7656 7662 7668 7759 7763 7974 8234 8254 8264 8266 8268 8270 8296 8299 8302 8328 8336 8421 8437 8441 8559 8560 8579 8764 8765 8767 8844 8848 8850 8864 BRX 660 # 2181 2182 2182 4123 4125 4152 4153 4180 4199 4230 4253 4351 4412 4470 5043 5046 5103 5105 5118 5124 5149 5154 5171 5171 5321 5324 5325 5327 5361 5363 5364 5366 5552 5643 5644 5655 5658 5659 5692 5701 5920 5964 6054 6063 6068 6091 6093 6101 6120 6127 6141 6164 6169 6176 6251 6251 6265 6292 6294 6305 6307 6316 6321 6327 6327 6331 6334 6334 6345 6346 6363 6393 6457 6484 6510 6512 6606 6608 6611 6656 6674 6674 6677 6682 6682 6684 6773 6778 6782 6786 6790 6794 6798 6814 7071 7073 7073 7075 7075 7077 7085 7087 7089 7222 7228 7231 7232 7329 7463 7464 7465 7466 7467 7468 7469 7534 7537 7592 7683 7743 7976 8230 8231 8233 8244 8245 8246 8256 8260 8262 8274 8275 8276 8285 8288 8294 8310 8409 8470 8473 8506 8548 8552 8554 8569 8571 8575 8577 8580 8689 8742 8754 8759 8770 8770 8836 EBR 662 # 2165 3954 7196 7198 7199 7979 FLG 665 # 2168 2170 2172 2173 3623 5111 5145 5169 5521 5614 5615 5622 5761 5777 5805 5825 5826 5977 6003 6006 6022 6028 6076 6082 6090 6094 6117 6121 6128 6147 6175 6267 6357 6384 6395 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 255 ; Cross Reference Listing 6399 6461 6508 6565 6569 6602 6629 6733 7983 8236 8281 8510 8547 8633 8633 8735 8738 8747 8800 8804 8810 8812 8814 8816 8818 8820 8822 8823 8824 8832 8854 HR 656 # 2180 2186 2186 2271 2303 2318 2331 2341 2365 2437 3531 3540 3543 3545 3546 3547 3551 3562 3566 3575 3580 3585 3588 3590 3608 3629 3642 3655 3661 3665 3924 3926 3928 3930 3932 3934 3936 3938 3944 3975 3980 4019 4042 4046 4607 6913 6988 6996 7005 7006 7007 7011 7012 7013 7014 7019 7020 7021 7024 7025 7026 7027 7028 7029 7030 7031 7252 7275 7314 7339 7344 7370 7698 7829 7833 7838 7840 7842 7844 7846 7848 7901 7969 MAG 654 # 2154 4232 4266 4391 4439 4462 4896 4901 4904 5637 5727 5763 5809 7966 MASK 664 # 2151 2152 2153 3610 4131 5990 7955 7982 ONE 661 # 2157 2176 2178 2785 6358 7977 PC 655 # 2218 2231 2233 2278 2291 2297 3021 3340 3456 3459 3527 3528 3529 3538 3541 3554 3581 3596 3619 3709 3761 3820 3837 3974 6252 6507 6507 7510 7680 7765 7967 8798 8808 8808 8858 8866 PI 666 # 2196 7368 7374 7374 7376 7376 7378 7380 7382 7382 7384 7384 7456 7457 7458 7459 7460 7461 7462 7553 7554 7554 7985 T0 668 # 3595 4151 4159 4191 4194 4201 4440 4446 4450 4452 4454 4459 4464 4465 5563 5568 5575 5576 5603 5605 5606 5607 5610 5618 5621 5623 5650 5723 5729 6356 6422 6431 6432 7385 7395 7396 7397 7397 7527 7717 7721 7727 7729 7988 T1 669 # 2193 2204 2221 2250 2268 2519 3582 4400 4411 4418 4432 4434 4451 4476 4558 5587 5587 5612 5619 5662 5674 5694 5700 5710 5732 6426 6439 7504 7536 7881 7989 8789 UBR 663 # 2163 7132 7151 7151 7166 7170 7173 7173 7175 7175 7980 XWD1 667 # 2155 7986 (D) B 1330 # 3179 3180 3181 3182 3183 3184 3188 3189 3190 3191 3192 3193 3195 3196 3197 3198 3199 3200 3201 3202 3204 3205 3206 3207 3208 3209 3210 3211 3213 3214 3215 3216 3217 3218 3219 3220 3222 3223 3224 3225 3226 3227 3228 3229 3230 3231 3232 3233 3234 3235 3236 3237 3239 3240 3241 3242 3243 3244 3245 3246 3352 3353 3354 3355 3356 3357 3358 3359 3361 3362 3363 3364 3365 3366 3367 3368 3378 3379 3380 3381 3382 3383 3384 3385 3395 3396 3397 3398 3399 3400 3401 3402 3411 3412 3413 3414 3415 3416 3417 3418 3464 3465 3466 3467 3468 3469 3470 3471 3478 3479 3480 3481 3482 3483 3484 3485 3492 3493 3494 3495 3496 3497 3498 3499 3506 3507 3671 3672 3673 3768 3857 3858 3859 3860 3861 3862 3863 3864 3914 3915 3916 3917 3918 3919 5854 5855 5856 5857 5858 5859 5860 5862 5863 5864 5865 5867 5868 5869 5870 5875 5876 5877 5878 5879 7560 7561 7562 7563 7571 7572 7573 7574 7585 7586 7587 7588 7772 7773 7774 7776 7777 7779 7780 7782 7783 7784 7785 7786 7787 7788 7789 7791 7792 7793 7794 7795 7796 7797 7798 7800 7801 7802 7803 7804 7805 7806 7807 7809 7810 7811 7812 7813 7814 7815 7816 7818 7819 7820 7821 7822 7823 7824 7825 AC 1334 # 2549 2550 2554 2555 2559 2560 2564 2565 2586 2602 2603 2607 2608 2612 2613 2617 2618 2622 2623 2627 2628 2632 2633 2637 2638 2644 2645 2649 2650 2654 2655 2659 2660 2664 2665 2669 2670 2674 2675 2679 2680 2769 2799 2800 2809 2810 2819 2820 2829 2830 2834 2835 2851 2852 2861 2862 2871 2872 2881 2882 2891 2892 2901 2902 2912 2913 2922 2923 2932 2933 2942 2943 4055 4056 4069 4070 4117 4118 4687 8223 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 256 ; Cross Reference Listing BOTH 1336 # 2802 2812 2822 2832 2837 2854 2864 2874 2884 2894 2904 2915 2925 2935 2945 4058 4072 4120 DBLAC 1332 # 2768 4084 4085 4142 4143 4168 4309 4310 4314 4315 4386 5628 5689 DBLB 1333 # 4145 4312 4317 MEM 1335 # 2551 2556 2561 2566 2604 2609 2614 2619 2624 2629 2634 2639 2646 2651 2656 2661 2666 2671 2676 2681 2801 2811 2821 2831 2836 2846 2847 2853 2863 2873 2883 2893 2903 2914 2924 2934 2944 4057 4071 4119 4144 4311 4316 7238 SELF 1331 # 2552 2557 2562 2567 2605 2610 2615 2620 2625 2630 2635 2640 2647 2652 2657 2662 2667 2672 2677 2682 (U) BWRITE 1154 # 2571 2577 2691 2693 2726 2732 2740 2742 2761 2763 2806 2816 2826 2858 2868 2888 2898 2909 2919 2949 4063 4077 4129 4135 4158 4160 5449 5453 5499 5521 8557 8857 (U) BYTE 813 # BYTE1 814 # 4697 4702 4716 4737 4890 6038 6048 6530 6676 6848 6851 6891 6893 6964 BYTE2 815 # 4891 BYTE3 816 # 4892 BYTE4 817 # 4893 BYTE5 818 # 3043 4796 4797 4798 4799 4800 4894 6660 (U) CALL 965 # 2158 2184 2196 2401 2773 2783 3553 3592 3594 3595 3609 3633 3636 3833 3836 3951 3967 3972 3976 3982 3985 4019 4021 4126 4154 4181 4190 4200 4210 4233 4343 4364 4419 4425 4439 4443 4449 4495 4519 4697 4702 4706 4711 4716 4725 4728 4976 4986 5020 5047 5102 5118 5120 5328 5370 5373 5378 5380 5488 5490 5492 5507 5508 5509 5568 5576 5604 5644 5649 5661 5668 5675 5694 5718 5722 5726 5751 5754 5757 5789 5791 5793 5799 5919 5959 5962 5966 5998 6004 6029 6053 6064 6079 6083 6090 6100 6102 6108 6122 6131 6152 6167 6170 6183 6198 6209 6217 6220 6223 6226 6234 6239 6266 6301 6310 6326 6338 6365 6376 6384 6401 6427 6456 6459 6464 6539 6547 6557 6560 6570 6583 6598 6605 6626 6630 6698 6732 6756 6856 6875 6880 6932 6940 6951 7222 7292 7316 7319 7338 7385 7415 7428 7477 7507 7509 7525 7529 7567 7578 7593 7612 7621 7650 7657 7682 7875 7877 7883 7899 7947 7949 7966 7969 7971 7973 7976 7979 7982 7985 7988 7990 8349 8356 8367 8374 8385 8390 8412 8415 8428 8451 8461 8492 8519 8598 8766 8777 8837 8865 (U) CHKL 718 # 2271 2341 2355 2364 2368 2385 2396 2407 2413 2426 2497 2529 2535 2540 2543 2593 2789 3089 3408 3551 3575 3590 3615 3619 3680 3697 3703 3725 3742 3748 3761 3819 3850 3972 3974 3980 4007 4019 4023 4046 4124 4217 4219 4322 4332 4416 4438 4445 4742 4770 4776 4897 5162 5917 5936 6356 6546 6596 6599 6627 6903 6918 6988 7121 7256 7260 7264 7268 7272 7313 7343 7345 7352 7406 7490 7532 7656 7703 7748 7751 7753 7763 7765 7862 7881 7901 7966 7967 7969 7970 7973 7974 7976 7977 7979 7980 7982 7983 7985 7986 7988 7989 7991 8345 8427 8667 8719 8836 8850 8864 8866 (U) CHKR 725 # 2271 2341 2355 2364 2368 2385 2396 2407 2413 2426 2497 2529 2535 2540 2543 2593 2789 3089 3408 3551 3575 3590 3615 3619 3680 3697 3703 3725 3742 3748 3761 3819 3850 3972 3974 3980 4007 4019 4023 4046 4124 4217 4219 4322 4332 4416 4438 4445 4742 4770 4776 4897 5162 5917 5936 6356 6546 6596 6599 6627 6903 6918 6988 7121 7256 7260 7264 7268 7272 7313 7343 7345 7352 7406 7490 7532 7656 7703 7748 7751 7753 7763 7765 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 257 ; Cross Reference Listing 7862 7881 7901 7966 7967 7969 7970 7973 7974 7976 7977 7979 7980 7982 7983 7985 7986 7988 7989 7991 8345 8427 8667 8719 8836 8850 8864 8866 (U) CLKL 714 # 2231 2233 2278 2291 2292 2298 2303 2318 2319 2331 2342 2365 2693 2724 2732 2754 2756 3340 3456 3459 3527 3528 3529 3538 3541 3554 3566 3596 3620 3634 3762 3821 3835 3839 3984 3996 4001 4031 4047 4098 4741 4771 4980 5039 5062 5111 5123 5145 5149 5154 5169 5172 5182 5330 5593 5930 5933 5936 5977 6003 6006 6022 6028 6057 6076 6082 6090 6094 6105 6117 6121 6128 6147 6175 6252 6267 6305 6340 6357 6384 6395 6399 6455 6461 6508 6565 6569 6604 6629 6670 6675 6733 6852 6894 6903 7062 7088 7102 7171 7187 7189 7233 7314 7319 7344 7378 7380 7382 7384 7396 7456 7457 7458 7459 7460 7461 7462 7484 7554 7680 7701 7701 7882 7898 7968 7975 7978 7981 7984 7987 8236 8501 8547 8555 8798 8804 8810 8812 8814 8816 8818 8820 8822 8823 8824 8854 8873 (U) CLKR 721 # 2422 2424 2437 2459 2460 2691 2726 2730 2747 2749 2773 3116 3118 3389 3531 3540 3543 3545 3546 3547 3580 3585 3588 3608 3629 3642 3773 3924 3926 3928 3930 3932 3934 3936 3938 3946 3966 3976 4028 4044 4109 4110 4111 4133 4156 4363 4402 4464 4518 4641 4818 4953 4961 5024 5069 5104 5108 5295 5296 5299 5300 5324 5325 5357 5358 5418 5419 5495 5511 5614 5615 5622 5638 5760 5795 5825 5826 5841 5923 5945 6172 6177 6246 6262 6263 6269 6308 6310 6317 6323 6332 6351 6403 6406 6411 6436 6442 6513 6607 6609 6679 6683 6737 6779 6783 6787 6791 6795 6799 6815 6913 6925 6996 7005 7006 7007 7011 7012 7013 7014 7019 7020 7021 7024 7025 7026 7027 7028 7029 7030 7031 7056 7096 7099 7127 7134 7138 7153 7159 7168 7176 7198 7199 7217 7221 7227 7252 7275 7286 7370 7372 7374 7376 7508 7710 7755 7829 7833 7838 7840 7842 7844 7846 7848 8229 8232 8283 8287 8290 8295 8446 8471 8508 8512 8546 8550 8553 8564 8634 8739 8744 8749 8755 8769 8832 (U) CLRFPD 1083 # 3692 3809 3815 4212 4712 4729 6395 (D) COND FUNC 1353 # 2551 2552 2556 2557 2561 2562 2566 2567 2604 2605 2609 2610 2614 2615 2619 2620 2624 2625 2629 2630 2634 2635 2639 2640 2646 2647 2651 2652 2656 2657 2661 2662 2666 2667 2671 2672 2676 2677 2681 2682 2801 2802 2811 2812 2821 2822 2831 2832 2836 2837 2846 2847 2853 2854 2863 2864 2873 2874 2883 2884 2893 2894 2903 2904 2914 2915 2924 2925 2934 2935 2944 2945 4057 4058 4071 4072 4119 4120 4144 4145 4311 4312 4316 4317 5266 5267 5270 5271 5274 5275 5278 5279 5311 5312 5316 5317 5340 5341 5345 5346 7238 (U) CRY38 948 # 2579 2949 3372 3422 3503 3529 3538 3541 4076 4093 4101 4106 4280 4284 4326 4370 4403 4426 4427 4433 4454 4480 4521 4522 4523 4539 4541 4548 4554 4585 4615 4620 4625 4630 4642 4646 4650 4652 4981 5038 5055 5105 5124 5142 5166 5285 5360 5363 5364 5371 5382 5395 5487 5489 5491 5493 5504 5520 5549 5588 5701 5712 5719 5735 5776 5781 5802 5808 5842 5968 6001 6015 6036 6103 6139 6140 6141 6188 6252 6270 6273 6341 6358 6366 6385 6393 6394 6428 6430 6433 6481 6823 6944 6952 6958 7296 7396 7420 7433 7680 8691 8701 8798 8858 (U) DBM 693 # APR FLAGS 696 # 7008 7009 7071 7103 7302 BYTES 697 # DP 699 # 3043 4697 4702 4716 4737 4796 4797 4798 4799 4800 4890 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 258 ; Cross Reference Listing 4891 4892 4893 4894 6038 6048 6530 6660 6676 6848 6851 6891 6893 6964 DP SWAP 700 # 2391 2571 2718 2720 2723 2726 2729 2732 3271 3276 3595 3772 3831 3846 3964 4816 4942 4958 5058 5098 5107 5180 6405 6462 6467 6468 6762 7095 7372 7385 7395 8437 8728 EXP 698 # 5495 5511 5841 7327 7328 7329 MEM 702 # 2163 2270 2341 2354 2363 2367 2395 2406 2412 2425 3550 3574 3589 3611 3615 3619 3679 3724 3761 3849 4006 4769 4775 5161 5917 5936 6356 6599 6627 6903 6917 6973 6981 6988 7120 7256 7260 7264 7268 7272 7312 7352 7474 7478 7490 7526 7532 7622 7703 7748 7751 7753 7861 7876 7900 7949 8280 8344 8426 8666 8718 8779 8785 PF DISP 695 # 8250 SCAD DIAG 694 # VMA 701 # 7717 7960 8230 8245 8765 # 703 # 2151 2153 2155 2157 2160 2180 2181 2190 2193 2204 2221 2240 2244 2247 2250 2259 2262 2265 2268 2422 2424 2437 2459 2460 2519 2747 2749 2754 2756 2773 3044 3115 3117 3531 3540 3543 3545 3546 3547 3580 3582 3585 3588 3594 3608 3609 3623 3629 3642 3727 3756 3820 3837 3924 3926 3928 3930 3932 3934 3936 3938 3944 3948 3988 3992 3994 3997 3999 4027 4036 4042 4110 4111 4363 4400 4401 4411 4418 4464 4516 4543 4549 4641 4806 4948 4951 4955 4974 4978 4984 4988 5017 5022 5055 5060 5067 5111 5121 5295 5296 5299 5300 5324 5325 5329 5357 5358 5394 5398 5418 5419 5513 5556 5558 5614 5615 5622 5638 5658 5659 5678 5681 5709 5711 5749 5752 5755 5758 5818 5825 5826 5885 5887 5889 5891 5893 5895 5897 5899 5901 5918 5920 5945 5961 5964 5977 6003 6006 6028 6076 6082 6090 6100 6102 6121 6128 6147 6160 6164 6171 6175 6176 6184 6188 6204 6246 6262 6263 6269 6275 6294 6307 6310 6316 6321 6329 6331 6357 6384 6388 6402 6404 6410 6422 6431 6436 6442 6458 6470 6473 6481 6493 6496 6508 6512 6527 6565 6569 6585 6597 6602 6606 6608 6623 6629 6643 6663 6669 6677 6680 6757 6778 6782 6786 6790 6794 6798 6808 6814 6913 6923 6990 6996 7005 7006 7007 7011 7012 7013 7014 7019 7020 7021 7024 7025 7026 7027 7028 7029 7030 7031 7033 7036 7046 7048 7061 7063 7065 7067 7069 7072 7074 7076 7087 7097 7100 7104 7125 7132 7136 7140 7147 7166 7187 7188 7189 7197 7198 7199 7215 7221 7227 7232 7252 7275 7284 7303 7317 7367 7369 7370 7371 7373 7375 7377 7378 7379 7380 7381 7383 7414 7416 7427 7429 7456 7457 7458 7459 7460 7461 7462 7463 7464 7465 7466 7467 7468 7469 7471 7475 7483 7492 7493 7504 7508 7522 7528 7534 7536 7550 7614 7617 7625 7632 7638 7652 7653 7664 7670 7684 7686 7700 7743 7829 7833 7838 7840 7842 7844 7846 7848 7896 7897 8227 8231 8235 8236 8260 8262 8276 8281 8284 8285 8288 8294 8302 8306 8331 8339 8350 8357 8360 8375 8380 8381 8429 8441 8444 8448 8452 8458 8459 8470 8472 8473 8476 8478 8498 8499 8503 8506 8510 8531 8544 8548 8551 8552 8554 8560 8567 8569 8570 8571 8572 8575 8599 8603 8631 8637 8640 8642 8645 8648 8669 8679 8691 8701 8705 8715 8720 8733 8735 8737 8738 8740 8742 8745 8747 8751 8754 8759 8767 8789 8792 8810 8812 8814 8816 8818 8820 8824 8829 8832 8841 (U) DBUS 684 # DBM 690 # 2151 2153 2155 2157 2160 2163 2180 2181 2190 2193 2204 2221 2240 2244 2247 2250 2259 2262 2265 2268 2270 2271 2341 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 259 ; Cross Reference Listing 2341 2354 2355 2363 2364 2367 2368 2391 2395 2396 2406 2407 2412 2413 2422 2424 2425 2426 2437 2459 2460 2519 2571 2718 2720 2723 2726 2729 2732 2747 2749 2754 2756 2773 3043 3044 3115 3117 3271 3276 3531 3540 3543 3545 3546 3547 3550 3551 3574 3575 3580 3582 3585 3588 3589 3590 3594 3595 3608 3609 3611 3615 3615 3619 3619 3623 3629 3642 3679 3680 3724 3725 3727 3756 3761 3761 3772 3820 3831 3837 3846 3849 3850 3924 3926 3928 3930 3932 3934 3936 3938 3944 3948 3964 3988 3992 3994 3997 3999 4006 4007 4027 4036 4042 4110 4111 4363 4400 4401 4411 4418 4464 4516 4543 4549 4641 4697 4702 4716 4737 4769 4770 4775 4776 4796 4797 4798 4799 4800 4806 4816 4890 4891 4892 4893 4894 4942 4948 4951 4955 4958 4974 4978 4984 4988 5017 5022 5055 5058 5060 5067 5098 5107 5111 5121 5161 5162 5180 5295 5296 5299 5300 5324 5325 5329 5357 5358 5394 5398 5418 5419 5495 5511 5513 5556 5558 5614 5615 5622 5638 5658 5659 5678 5681 5709 5711 5749 5752 5755 5758 5818 5825 5826 5841 5885 5887 5889 5891 5893 5895 5897 5899 5901 5917 5917 5918 5920 5936 5936 5945 5961 5964 5977 6003 6006 6028 6038 6048 6076 6082 6090 6100 6102 6121 6128 6147 6160 6164 6171 6175 6176 6184 6188 6204 6246 6262 6263 6269 6275 6294 6307 6310 6316 6321 6329 6331 6356 6356 6357 6384 6388 6402 6404 6405 6410 6422 6431 6436 6442 6458 6462 6467 6468 6470 6473 6481 6493 6496 6508 6512 6527 6530 6565 6569 6585 6597 6599 6599 6602 6606 6608 6623 6627 6627 6629 6643 6660 6663 6669 6676 6677 6680 6757 6762 6778 6782 6786 6790 6794 6798 6808 6814 6848 6851 6891 6893 6903 6903 6913 6917 6918 6923 6964 6973 6981 6988 6988 6990 6996 7005 7006 7007 7008 7009 7011 7012 7013 7014 7019 7020 7021 7024 7025 7026 7027 7028 7029 7030 7031 7033 7036 7046 7048 7061 7063 7065 7067 7069 7071 7072 7074 7076 7087 7095 7097 7100 7103 7104 7120 7121 7125 7132 7136 7140 7147 7166 7187 7188 7189 7197 7198 7199 7215 7221 7227 7232 7252 7256 7256 7260 7260 7264 7264 7268 7268 7272 7272 7275 7284 7302 7303 7312 7313 7317 7327 7328 7329 7352 7352 7367 7369 7370 7371 7372 7373 7375 7377 7378 7379 7380 7381 7383 7385 7395 7414 7416 7427 7429 7456 7457 7458 7459 7460 7461 7462 7463 7464 7465 7466 7467 7468 7469 7471 7474 7475 7478 7479 7483 7490 7490 7492 7493 7504 7508 7522 7526 7527 7528 7532 7532 7534 7536 7550 7614 7617 7622 7623 7625 7632 7638 7652 7653 7664 7670 7684 7686 7700 7703 7703 7717 7743 7748 7748 7751 7751 7753 7753 7829 7833 7838 7840 7842 7844 7846 7848 7861 7862 7876 7896 7897 7900 7901 7949 7960 8227 8230 8231 8235 8236 8245 8250 8256 8260 8262 8276 8280 8281 8284 8285 8288 8294 8302 8306 8331 8339 8344 8345 8350 8357 8360 8375 8380 8381 8426 8427 8429 8437 8441 8444 8448 8452 8458 8459 8470 8472 8473 8476 8478 8498 8499 8503 8506 8510 8531 8544 8548 8551 8552 8554 8560 8567 8569 8570 8571 8572 8575 8599 8603 8631 8637 8640 8642 8645 8648 8666 8667 8669 8679 8691 8701 8705 8715 8718 8719 8720 8728 8733 8735 8737 8738 8740 8742 8745 8747 8751 8754 8759 8765 8767 8779 8785 8789 8792 8810 8812 8814 8816 8818 8820 8824 8829 8832 8841 DP 688 # 2175 2176 2491 2497 2523 2529 2535 2540 2543 2593 2774 2789 3024 3045 3080 3113 3119 3302 3389 3391 3408 3431 3434 3434 3437 3437 3440 3440 3443 3446 3446 3449 3449 3452 3452 3656 3697 3703 3712 3714 3742 3748 3777 3782 3810 3819 3972 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 260 ; Cross Reference Listing 3974 3980 4019 4023 4046 4109 4133 4156 4184 4192 4201 4203 4214 4214 4215 4216 4218 4220 4442 4458 4459 4460 4462 4465 4484 4486 4489 4616 4621 4626 4632 4633 4634 4712 4742 4897 5070 5119 5139 5165 5183 5445 5451 5763 5771 5807 5808 5809 5816 5968 6014 6034 6041 6051 6054 6089 6091 6093 6127 6134 6168 6210 6227 6229 6264 6265 6265 6277 6278 6285 6287 6311 6311 6314 6346 6352 6363 6368 6390 6391 6392 6550 6551 6596 6611 6684 6700 6737 6826 6826 6854 6895 6933 6941 6948 6953 6960 7286 7343 7345 7406 7579 7656 7698 7763 7765 7767 7881 7966 7967 7969 7970 7973 7974 7976 7977 7979 7980 7982 7983 7985 7986 7988 7989 7991 8237 8800 8836 8850 8864 8866 PC FLAGS 685 # 3630 3644 3691 3808 3814 3965 3991 4020 4221 6969 7494 7506 8844 8848 PI NEW 686 # 7453 RAM 689 # 2183 2291 2303 2318 2331 2359 2372 2373 2385 2386 2590 2691 2693 2724 2730 2783 2816 2826 2858 2868 2888 2898 2908 2939 2967 2970 2984 2990 3002 3005 3018 3089 3092 3278 3293 3296 3301 3372 3475 3489 3503 3511 3558 3566 3681 3719 3752 3774 3832 3845 4062 4076 4089 4092 4101 4103 4106 4124 4152 4180 4182 4194 4199 4217 4219 4322 4331 4332 4414 4416 4438 4445 4455 4615 4619 4620 4624 4625 4629 4630 4718 4722 4754 4762 4972 4981 4982 4994 4998 5033 5040 5045 5053 5109 5118 5181 5288 5321 5353 5417 5552 5553 5563 5643 5655 5698 5706 5930 5933 5960 5963 5978 5981 5997 6001 6011 6018 6027 6030 6046 6050 6065 6066 6067 6068 6085 6099 6101 6119 6132 6138 6145 6151 6163 6166 6183 6186 6190 6194 6197 6199 6206 6208 6216 6218 6221 6257 6259 6260 6272 6273 6292 6297 6298 6299 6320 6325 6337 6343 6353 6361 6366 6372 6379 6385 6386 6387 6408 6428 6433 6438 6440 6457 6515 6546 6556 6559 6584 6593 6595 6620 6635 6697 6699 6742 6743 6750 6812 6817 6819 6824 6828 6830 6845 6847 6874 6898 6900 6931 6935 6939 6944 6945 6950 6958 6959 6962 7060 7094 7186 7243 7245 7247 7249 7251 7281 7290 7295 7301 7333 7334 7337 7358 7568 7582 7596 7598 7690 7693 7695 7701 7707 7709 7869 7948 7953 7957 7972 7990 7992 7993 7995 8234 8323 8326 8353 8355 8386 8410 8413 8432 8481 8491 8493 8538 8578 8579 8580 8586 8597 8601 8775 8781 8790 8794 8806 (U) DEST 619 # A 620 # 2391 2407 2491 2523 2571 2718 2720 2723 2726 2729 2732 2774 3045 3080 3271 3276 3302 3389 3391 3431 3434 3437 3440 3443 3446 3449 3452 3595 3712 3714 3772 3810 3831 3846 3964 4109 4133 4156 4214 4459 4465 4634 4697 4702 4712 4716 4737 4796 4797 4798 4799 4800 4816 4890 4891 4892 4893 4894 4942 4958 5058 5098 5107 5119 5180 5183 5445 5451 5495 5511 5771 5816 5841 6014 6034 6038 6048 6051 6091 6127 6134 6168 6227 6229 6264 6265 6277 6278 6311 6314 6346 6352 6363 6368 6390 6391 6392 6405 6462 6467 6468 6530 6551 6611 6676 6684 6737 6762 6826 6848 6851 6854 6891 6893 6895 6933 6941 6948 6953 6960 6964 7095 7286 7372 7385 7395 7579 7767 8237 8437 8728 AD 622 # 2151 2153 2155 2157 2160 2163 2165 2168 2177 2180 2181 2182 2183 2186 2193 2196 2204 2218 2221 2231 2233 2240 2244 2247 2250 2259 2262 2265 2268 2271 2278 2291 2297 2303 2318 2322 2331 2341 2355 2359 2364 2365 2368 2372 2373 2396 2402 2413 2416 2419 2422 2424 2437 2459 2460 2519 2579 2590 2691 2693 2724 2730 2740 2742 2747 2749 2754 2756 2761 2763 2773 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 261 ; Cross Reference Listing 2783 2806 2816 2826 2841 2858 2868 2878 2888 2898 2908 2909 2919 2929 2939 2949 2967 2970 2984 3018 3021 3044 3273 3278 3290 3293 3296 3301 3340 3372 3406 3422 3456 3459 3475 3489 3503 3511 3527 3528 3531 3540 3543 3545 3546 3547 3551 3554 3566 3575 3580 3581 3582 3585 3588 3590 3596 3608 3615 3616 3619 3623 3629 3630 3634 3637 3642 3644 3655 3680 3681 3691 3709 3719 3725 3727 3752 3756 3761 3774 3808 3814 3820 3829 3832 3834 3837 3845 3850 3924 3926 3928 3930 3932 3934 3936 3938 3944 3948 3950 3965 3975 3984 3988 3990 3991 3994 3999 4007 4020 4027 4031 4036 4042 4047 4062 4076 4089 4092 4096 4097 4101 4103 4106 4110 4111 4123 4129 4135 4137 4138 4151 4152 4157 4160 4161 4175 4191 4205 4221 4228 4321 4324 4326 4330 4331 4345 4351 4357 4363 4380 4400 4411 4412 4418 4429 4435 4444 4452 4464 4471 4474 4523 4538 4540 4541 4543 4548 4549 4562 4629 4630 4641 4642 4644 4646 4650 4651 4652 4722 4735 4741 4770 4776 4818 4829 4914 4915 4916 4917 4951 4960 4972 4974 4982 4984 4988 4991 5017 5030 5040 5043 5049 5060 5067 5103 5106 5109 5111 5118 5121 5145 5147 5149 5154 5169 5171 5172 5181 5285 5288 5291 5292 5293 5295 5296 5299 5300 5305 5321 5324 5325 5331 5351 5353 5357 5358 5359 5360 5395 5417 5418 5419 5449 5453 5454 5502 5504 5514 5517 5519 5520 5521 5532 5549 5550 5563 5568 5569 5576 5577 5587 5612 5614 5615 5619 5622 5639 5650 5662 5663 5692 5694 5695 5700 5701 5702 5710 5721 5723 5737 5738 5761 5777 5779 5781 5796 5798 5800 5802 5805 5825 5826 5842 5885 5887 5889 5891 5893 5895 5897 5899 5901 5917 5920 5922 5930 5931 5933 5936 5945 5956 5960 5963 5964 5970 5972 5977 5978 5979 5981 5989 5997 5999 6001 6003 6006 6011 6015 6018 6020 6021 6022 6027 6028 6030 6036 6045 6046 6050 6052 6057 6065 6066 6067 6068 6075 6076 6080 6082 6085 6090 6094 6099 6101 6104 6105 6106 6117 6119 6121 6128 6132 6136 6138 6139 6140 6141 6146 6147 6151 6160 6163 6164 6166 6171 6175 6176 6183 6186 6190 6194 6197 6199 6208 6216 6218 6221 6224 6235 6237 6246 6247 6251 6252 6257 6259 6260 6262 6263 6267 6269 6270 6272 6273 6275 6292 6294 6297 6298 6299 6305 6307 6310 6315 6316 6320 6321 6325 6327 6331 6334 6337 6339 6340 6341 6343 6351 6353 6354 6356 6357 6359 6361 6366 6372 6375 6379 6384 6385 6386 6387 6389 6393 6394 6395 6399 6403 6406 6408 6410 6422 6426 6428 6430 6431 6433 6436 6438 6440 6442 6444 6455 6457 6461 6470 6473 6507 6508 6512 6515 6524 6526 6531 6556 6559 6565 6569 6584 6585 6593 6595 6597 6599 6602 6606 6608 6620 6623 6625 6627 6629 6635 6643 6663 6669 6674 6677 6680 6682 6697 6699 6733 6742 6750 6759 6778 6782 6786 6790 6794 6798 6808 6812 6814 6817 6819 6823 6824 6828 6830 6845 6847 6850 6852 6873 6874 6892 6894 6903 6913 6918 6923 6931 6935 6939 6944 6945 6949 6950 6952 6956 6958 6959 6962 6969 6972 6980 6988 6996 7005 7006 7007 7008 7009 7011 7012 7013 7014 7015 7016 7019 7020 7021 7024 7025 7026 7027 7028 7029 7030 7031 7033 7036 7046 7048 7060 7061 7063 7064 7065 7068 7070 7071 7073 7075 7087 7094 7097 7100 7103 7104 7106 7121 7125 7132 7136 7147 7151 7158 7166 7170 7173 7175 7186 7187 7189 7196 7198 7199 7215 7216 7221 7227 7232 7233 7243 7245 7247 7249 7251 7252 7256 7260 7264 7268 7272 7275 7281 7284 7285 7290 7291 7293 7295 7296 7301 7302 7303 7313 7314 7317 7327 7328 7329 7332 7333 7334 7337 7344 7352 7358 7364 7368 7370 7371 7374 7376 7378 7380 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 262 ; Cross Reference Listing 7382 7384 7396 7397 7413 7414 7416 7420 7427 7429 7433 7456 7457 7458 7459 7460 7461 7462 7463 7464 7465 7466 7467 7468 7469 7471 7475 7479 7481 7483 7485 7490 7494 7504 7506 7508 7510 7520 7522 7524 7527 7528 7530 7532 7536 7538 7550 7554 7568 7582 7592 7594 7596 7598 7601 7614 7617 7623 7626 7632 7638 7653 7664 7670 7683 7690 7693 7695 7701 7703 7707 7709 7710 7717 7743 7748 7751 7755 7757 7829 7833 7838 7840 7842 7844 7846 7848 7862 7869 7879 7882 7896 7897 7901 7948 7953 7957 7960 7968 7972 7975 7978 7981 7984 7987 7990 7992 7993 7995 8227 8230 8231 8234 8236 8245 8256 8260 8262 8276 8281 8285 8288 8294 8296 8302 8323 8326 8331 8339 8345 8353 8355 8381 8384 8386 8410 8413 8427 8432 8441 8444 8459 8470 8473 8481 8491 8493 8499 8506 8510 8535 8538 8544 8547 8548 8552 8554 8556 8559 8560 8567 8569 8571 8575 8578 8579 8580 8586 8597 8601 8631 8633 8667 8678 8695 8705 8710 8715 8719 8735 8738 8742 8747 8754 8759 8765 8767 8770 8775 8781 8789 8790 8794 8798 8804 8806 8808 8810 8812 8814 8816 8818 8820 8822 8823 8824 8829 8832 8844 8848 8854 8856 8858 8869 8873 AD*.5 629 # 2154 2426 2428 2429 2986 2990 3002 3005 3007 3008 3012 3043 3095 3098 4173 4174 4180 4182 4192 4194 4199 4230 4392 4414 4420 4551 4552 4553 4559 4809 4820 4896 4945 4948 4955 4964 5366 5374 5376 5381 5382 5441 5490 5492 5508 5509 5528 5529 5534 5552 5553 5556 5558 5643 5644 5651 5655 5658 5659 5677 5698 5706 5709 5711 5835 5846 6469 6472 6476 6478 6558 6660 6666 6673 6736 7212 7214 7222 7228 7231 7534 7537 7555 7630 7636 8299 8315 AD*2 627 # 2152 2974 2997 3010 3013 3040 4128 4155 4211 4454 4594 4718 5055 5064 5361 5364 5369 5444 6206 6207 6463 6647 6753 7162 7181 7183 7482 7518 7662 7668 7759 8361 8364 8398 8541 PASS 624 # 2162 2170 2172 2173 2176 2178 2179 2185 2187 2230 2234 2252 2309 2336 2345 2432 2497 2529 2535 2540 2543 2593 2789 2790 3113 3328 3408 3455 3460 3534 3570 3632 3643 3665 3697 3703 3732 3737 3742 3748 3777 3782 3816 3819 3847 3972 3974 3980 4019 4023 4046 4131 4159 4201 4216 4218 4220 4223 4398 4442 4462 4484 4486 4489 4616 4621 4626 4632 4633 4695 4698 4707 4742 4758 4766 4897 4954 4967 4977 4987 5019 5099 5127 5135 5763 5807 5808 5809 5927 5934 5940 5943 5968 5973 5990 6035 6061 6062 6063 6078 6109 6125 6148 6161 6179 6210 6300 6302 6358 6364 6377 6383 6460 6516 6582 6594 6596 6636 6700 6730 6899 6901 6919 6936 6970 7034 7040 7082 7118 7191 7223 7257 7261 7265 7269 7273 7288 7299 7320 7323 7330 7343 7345 7353 7354 7387 7405 7406 7411 7438 7439 7489 7553 7620 7655 7656 7658 7687 7702 7721 7727 7729 7761 7763 7765 7858 7866 7874 7881 7893 7946 7961 7966 7967 7969 7970 7971 7973 7974 7976 7977 7979 7980 7982 7983 7985 7986 7988 7989 7991 7994 8233 8243 8244 8246 8247 8251 8254 8264 8266 8268 8270 8274 8275 8328 8336 8341 8416 8418 8421 8439 8565 8581 8662 8764 8833 8836 8850 8864 8866 Q_AD 623 # 2385 2983 3089 3115 3117 4124 4150 4189 4209 4217 4219 4229 4322 4332 4391 4401 4403 4416 4438 4441 4443 4445 4456 4469 4470 4473 4480 4488 4516 4521 4522 4539 4564 4615 4619 4620 4624 4625 4824 4900 4907 4969 4978 4981 4998 5022 5038 5045 5105 5162 5302 5326 5329 5373 5384 5396 5400 5402 5403 5416 5429 5487 5489 5491 5493 5561 5570 5573 5578 5588 5593 5633 5638 5648 5661 5667 5679 5682 5712 5717 5722 5724 5735 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 263 ; Cross Reference Listing 5759 5775 5776 5794 5986 6145 6546 7753 Q_Q*.5 628 # 2386 2387 3073 3092 3101 3145 4125 4153 4232 4253 4254 4266 4273 4281 4291 4299 4394 4396 4404 4408 4424 4439 4446 4498 4546 5046 5304 5327 5332 5407 5409 5439 5582 5607 5610 5618 5621 5623 5637 5672 5713 5727 5753 5756 5790 5792 5838 Q_Q*2 626 # 2993 3074 3077 3078 3079 3104 3108 3111 3146 3149 3150 4277 4285 4295 4303 4440 4450 4478 4481 4554 4557 4558 4561 4563 4585 4588 4600 4605 4825 4828 4901 4904 4909 5486 5498 5506 5510 5584 5589 5591 5603 5605 5606 5635 5676 5680 5729 5746 5768 5785 5813 5988 (U) DISP 858 # 4566 ADISP 865 # AREAD 861 # 2323 BDISP 866 # 2571 2577 2691 2693 2726 2732 2740 2742 2761 2763 2806 2816 2826 2858 2868 2888 2898 2909 2919 2949 3273 3279 3372 3391 3392 3475 3489 3503 3513 3698 3705 3743 4063 4077 4129 4135 4158 4160 5441 5449 5453 5499 5511 5521 5528 5932 5974 6118 6173 6380 6734 6806 6813 7568 7595 7613 7624 7651 8557 8857 BYTE 871 # 4710 4727 6155 6858 6879 CONSOLE 859 # DP 864 # 4432 4434 4451 4476 6479 6506 8800 DP LEFT 862 # 6465 6760 7454 8252 DROM 860 # 2356 2360 2369 2374 2382 2403 2409 2433 2438 5941 5944 EAMODE 872 # 2281 2347 3556 4749 4752 5928 6896 6904 7692 MUL 868 # 4273 4281 4291 4299 5585 5611 5613 5730 NICOND 870 # 2230 2231 2233 2234 2294 2300 2524 3045 3091 3119 3328 3340 3431 3455 3456 3459 3460 3527 3528 3554 3596 3713 3789 3796 4223 4487 4490 4698 5445 5451 5810 7387 7658 8237 NORM 863 # 5305 5334 5411 5486 5488 5498 5502 5504 5506 5507 5510 5532 5683 5737 5738 5748 5750 5770 5780 5782 5787 5788 5815 5844 PAGE FAIL 869 # RETURN 867 # 2459 2460 3561 3565 4029 4032 4235 4278 4286 4296 4304 4498 4520 4521 4523 4607 4634 4736 4738 4742 4777 4810 4829 4897 5111 5531 5533 5534 5623 5818 5825 5826 5841 6230 6240 6245 6248 6286 6287 6437 6443 6614 6637 6702 6733 6745 6776 6792 6809 6818 6820 6846 6881 6914 6920 6925 6965 7233 7300 7324 7399 7443 7551 7554 7626 7633 7639 7696 7704 7708 7711 7737 7749 7751 7753 7755 7757 7759 7761 7763 7765 7767 7958 7962 7996 8587 8602 8651 8654 8655 8668 8677 8680 8681 8785 8873 SCAD0 873 # 4697 4702 4716 4792 5288 5431 5433 5986 5988 6039 6849 6891 7723 (U) DIVIDE 959 # 4557 4558 4602 4606 (U) DONT CACHE 1129 # (U) DP FUNC 1146 # 7620 7655 7761 8566 8582 (U) DT 928 # 2T 931 # 3T 932 # 2183 2373 2385 2386 2496 2528 2534 2539 2542 2592 2783 2789 2990 3002 3005 3019 3089 3092 3334 3337 3346 3349 3408 3437 3440 3449 3452 3594 3594 3609 3609 3696 3702 3741 3747 3818 3971 3973 3979 3992 3997 4018 4022 4045 4089 4101 4127 4132 4194 4199 4217 4219 4332 4334 4336 4340 4354 4393 4399 4414 4416 4428 4438 4445 4458 4539 4615 4617 4619 4620 4622 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 264 ; Cross Reference Listing 4624 4625 4627 4643 4650 4697 4702 4710 4716 4718 4727 4742 4897 4968 4972 4981 4982 4997 5027 5040 5045 5109 5138 5164 5181 5305 5334 5351 5371 5377 5379 5411 5452 5486 5488 5494 5498 5502 5504 5506 5507 5510 5513 5518 5532 5553 5655 5674 5678 5681 5683 5695 5706 5725 5737 5738 5748 5749 5750 5752 5755 5758 5767 5770 5776 5780 5782 5787 5788 5812 5815 5818 5836 5844 5918 5960 5961 5978 5981 5997 6001 6011 6018 6027 6030 6046 6050 6065 6066 6067 6068 6085 6099 6100 6102 6119 6132 6138 6142 6145 6151 6155 6166 6183 6184 6186 6190 6194 6195 6197 6199 6204 6206 6208 6216 6218 6221 6257 6259 6260 6271 6272 6273 6274 6292 6298 6325 6329 6337 6342 6343 6353 6361 6366 6372 6379 6385 6386 6387 6388 6402 6404 6408 6458 6493 6496 6515 6546 6550 6556 6559 6563 6584 6593 6595 6596 6600 6620 6621 6635 6697 6699 6742 6743 6744 6750 6757 6812 6817 6819 6824 6828 6830 6845 6847 6858 6874 6879 6931 6935 6939 6944 6945 6950 6958 6959 6962 7008 7009 7060 7067 7069 7071 7072 7074 7076 7094 7103 7186 7243 7245 7247 7249 7251 7281 7290 7295 7297 7301 7302 7331 7333 7334 7337 7343 7345 7358 7367 7369 7373 7375 7377 7379 7381 7383 7406 7620 7625 7652 7655 7656 7684 7686 7690 7693 7695 7700 7707 7709 7761 7763 7765 7881 7948 7953 7954 7957 7966 7967 7969 7970 7972 7973 7974 7976 7977 7979 7980 7982 7983 7985 7986 7988 7989 7990 7991 7992 7993 7995 8234 8235 8284 8306 8323 8324 8326 8327 8350 8353 8355 8357 8360 8375 8380 8386 8410 8411 8413 8414 8429 8432 8448 8452 8458 8472 8476 8478 8481 8491 8493 8498 8503 8531 8538 8551 8570 8572 8578 8579 8580 8586 8597 8599 8601 8603 8637 8640 8642 8645 8648 8669 8679 8720 8733 8737 8740 8745 8751 8775 8781 8790 8792 8794 8806 8835 8841 8849 8864 8866 4T 933 # 5T 934 # (U) EXT ADR 1152 # 3960 3970 3984 4004 4031 6977 6985 7489 7531 7620 7655 7761 7879 7882 7965 7968 7975 7978 7981 7984 7987 8329 8337 8343 8423 8664 8697 8713 8834 8870 8873 (U) FETCH 1118 # 2230 2231 2233 2234 2253 2279 2293 2299 2346 2407 2432 3022 3328 3340 3455 3456 3459 3460 3527 3528 3554 3596 3711 4223 4698 4707 7387 7658 7894 8792 (D) FL-B 1341 # AC 1342 # 5265 5268 5269 5273 5276 5277 5310 5314 5315 5339 5343 5344 5389 5390 5424 5425 BOTH 1344 # 5267 5271 5275 5279 5312 5317 5341 5346 MEM 1343 # 5266 5270 5274 5278 5311 5316 5340 5345 (U) FLG.C 1307 # 8282 8551 8572 8679 8736 8739 (U) FLG.PI 1306 # 3624 8360 8380 8448 8458 8478 8603 8640 8645 8669 8733 8832 (U) FLG.SN 1308 # 5513 5614 5615 5622 5749 5752 5755 5758 5818 5825 5826 (U) FLG.W 1305 # 8282 8472 8511 8570 8679 8736 8748 (U) FMWRITE 954 # 2162 2170 2172 2173 2175 2176 2178 2179 2185 2187 2491 2523 2774 3024 3045 3080 3113 3119 3302 3391 3431 3434 3437 3440 3443 3446 3449 3452 3665 3712 3714 3777 3782 3810 4184 4192 4201 4203 4214 4215 4216 4218 4220 4442 4458 4459 4460 4462 4465 4484 4486 4489 4616 4621 4626 4632 4633 4634 4695 4712 4954 4967 4977 4987 5019 5070 5119 5183 5445 5451 5763 5771 5807 5808 5809 5816 5927 5940 5943 5968 5973 5990 6014 6034 6035 6041 6051 6054 6061 6062 6063 6078 6089 6091 6093 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 265 ; Cross Reference Listing 6109 6125 6127 6134 6148 6161 6168 6179 6210 6227 6229 6264 6265 6277 6278 6285 6287 6300 6302 6311 6314 6346 6352 6358 6363 6364 6368 6377 6383 6390 6391 6392 6551 6582 6611 6684 6700 6730 6826 6854 6895 6919 6933 6936 6941 6948 6953 6960 6970 7082 7191 7257 7261 7265 7269 7273 7288 7299 7320 7323 7353 7354 7438 7439 7579 7687 7721 7727 7729 7767 7874 7946 7961 7971 8233 8237 8243 8244 8246 8247 8254 8264 8266 8268 8270 8274 8275 8416 8418 8439 8764 (U) FORCE EXEC 1116 # 3960 3970 3984 4004 4031 6977 6985 7475 7489 7491 7505 7522 7531 7539 7614 7617 7653 7664 7670 7879 7882 7896 7965 7968 7975 7978 7981 7984 7987 8329 8337 8343 8423 8664 8697 8713 8834 8870 8873 (U) FORCE USER 1115 # 3960 3970 3984 4004 4031 6977 6985 7475 7489 7522 7531 7614 7617 7653 7664 7670 7879 7882 7896 7965 7968 7975 7978 7981 7984 7987 8329 8337 8343 8423 8664 8697 8713 8834 8870 8873 (U) GENL 716 # 2231 2233 2278 2291 2292 2298 2303 2318 2319 2331 2342 2365 2693 2724 2732 2754 2756 3340 3456 3459 3527 3528 3529 3538 3541 3554 3566 3596 3620 3634 3762 3821 3835 3839 3984 3996 4001 4031 4047 4098 4741 4771 4980 5039 5062 5111 5123 5145 5149 5154 5169 5172 5182 5330 5593 5930 5933 5936 5977 6003 6006 6022 6028 6057 6076 6082 6090 6094 6105 6117 6121 6128 6147 6175 6252 6267 6305 6340 6357 6384 6395 6399 6455 6461 6508 6565 6569 6604 6629 6670 6675 6733 6852 6894 6903 7062 7088 7102 7171 7187 7189 7233 7314 7319 7344 7378 7380 7382 7384 7396 7456 7457 7458 7459 7460 7461 7462 7484 7554 7680 7701 7701 7882 7898 7968 7975 7978 7981 7984 7987 8236 8501 8547 8555 8798 8804 8810 8812 8814 8816 8818 8820 8822 8823 8824 8854 8873 (U) GENR 723 # 2422 2424 2437 2459 2460 2691 2726 2730 2747 2749 2773 3116 3118 3389 3531 3540 3543 3545 3546 3547 3580 3585 3588 3608 3629 3642 3773 3924 3926 3928 3930 3932 3934 3936 3938 3946 3966 3976 4028 4044 4109 4110 4111 4133 4156 4363 4402 4464 4518 4641 4818 4953 4961 5024 5069 5104 5108 5295 5296 5299 5300 5324 5325 5357 5358 5418 5419 5495 5511 5614 5615 5622 5638 5760 5795 5825 5826 5841 5923 5945 6172 6177 6246 6262 6263 6269 6308 6310 6317 6323 6332 6351 6403 6406 6411 6436 6442 6513 6607 6609 6679 6683 6737 6779 6783 6787 6791 6795 6799 6815 6913 6925 6996 7005 7006 7007 7011 7012 7013 7014 7019 7020 7021 7024 7025 7026 7027 7028 7029 7030 7031 7056 7096 7099 7127 7134 7138 7153 7159 7168 7176 7198 7199 7217 7221 7227 7252 7275 7286 7370 7372 7374 7376 7508 7710 7755 7829 7833 7838 7840 7842 7844 7846 7848 8229 8232 8283 8287 8290 8295 8446 8471 8508 8512 8546 8550 8553 8564 8634 8739 8744 8749 8755 8769 8832 (U) HALT 1284 # BW14 1294 # 2519 CSL 1288 # 2250 2268 HALT 1287 # 3582 ILLII 1291 # 7504 ILLINT 1292 # 7536 IOPF 1290 # 8789 MULERR 1296 # 2193 NICOND 5 1295 # POWER 1286 # 2221 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 266 ; Cross Reference Listing (U) HOLD USER 1085 # 2219 2580 3406 3422 3489 3503 3560 3564 3600 3622 3692 3704 3760 3790 3794 3809 3815 4010 4063 4077 4094 4104 4107 4137 4138 4162 4212 4224 4234 4237 4344 4379 4410 4496 4645 4647 4712 4729 4751 5003 5355 5367 5432 5720 6394 6395 6994 (D) I 1349 # 2550 2555 2560 2565 2603 2608 2613 2618 2623 2628 2633 2638 2645 2650 2655 2660 2665 2670 2675 2680 2799 2800 2801 2802 2810 2820 2830 2835 2845 2852 2862 2872 2882 2891 2892 2893 2894 2902 2913 2923 2933 2942 2943 2944 2945 2957 2958 3177 3178 3179 3180 3181 3182 3183 3184 3186 3187 3195 3196 3197 3198 3199 3200 3201 3202 3213 3214 3215 3216 3217 3218 3219 3220 3230 3231 3232 3233 3234 3235 3236 3237 3352 3353 3354 3355 3356 3357 3358 3359 3464 3465 3466 3467 3468 3469 3470 3471 3478 3479 3480 3481 3482 3483 3484 3485 3492 3493 3494 3495 3496 3497 3498 3499 3506 3507 3518 3520 3671 3672 3673 3674 3768 3801 3802 3803 3804 3857 3858 3859 3860 3861 3862 3863 3864 3868 3869 3870 3871 3872 3873 3874 3875 3876 3877 3878 3879 3880 3881 3882 3883 3884 3885 3886 3887 3888 3889 3890 3891 3892 3893 3894 3895 3896 3897 3898 3899 3903 3904 3905 3906 3910 3911 3912 3913 3914 3915 3916 3917 3918 3919 3920 4056 4070 4118 4143 4310 4315 5114 5390 5854 5855 5856 5857 5858 5859 5860 5862 5863 5864 5865 5867 5868 5869 5870 5872 5873 5874 5875 5876 5877 5878 5879 5913 7772 7773 7774 7776 7777 7779 7780 7782 7783 7784 7785 7786 7787 7788 7789 7791 7792 7793 7794 7795 7796 7797 7798 7800 7801 7802 7803 7804 7805 7806 7807 7809 7810 7811 7812 7813 7814 7815 7816 7818 7819 7820 7821 7822 7823 7824 7825 (U) I.CO3 1180 # (U) I.CO4 1181 # (U) I.CO5 1182 # (U) I.CO6 1183 # (U) I.CO7 1184 # (U) IO BYTE 1165 # 7615 7665 7671 (U) IO CYCLE 1159 # 7475 7522 7614 7617 7653 7664 7670 7896 (U) J 521 # 2323 2356 2360 2369 2374 2382 2403 2409 2433 2438 2459 2460 3561 3565 4029 4032 4235 4278 4286 4296 4304 4498 4520 4521 4523 4567 4607 4634 4736 4738 4742 4777 4810 4829 4897 5111 5531 5533 5534 5623 5818 5825 5826 5841 5941 5944 6230 6240 6245 6248 6286 6287 6437 6443 6614 6637 6702 6733 6745 6776 6792 6809 6818 6820 6846 6881 6914 6920 6925 6965 7233 7300 7324 7399 7443 7551 7554 7626 7633 7639 7696 7704 7708 7711 7737 7749 7751 7753 7755 7757 7759 7761 7763 7765 7767 7890 7958 7962 7996 8587 8602 8651 8654 8655 8668 8677 8680 8681 8785 8873 ABORT 8785 # 3951 8766 ACBSET 7147 # 7129 AC_ARX 7767 # 3836 6951 ADD 4062 # 4055 4056 4057 4058 ADDCRY 6245 # 6220 6226 6239 ADJBP 4942 # 4696 ADJBP0 4945 # 4947 ADJBP1 4964 # 4966 ADJBP2 4974 # 4971 ADJBP3 5017 # 5002 ADJBP4 5029 # 5041 ADJBP5 5043 # 5037 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 267 ; Cross Reference Listing ADJBP6 5064 # 5066 ADJSP 3772 # 3768 ADJSP1 3789 # 3781 ADJSP2 3794 # 3786 AND 2816 # 2809 2810 2811 2812 2841 ANDCA 2826 # 2819 2820 2821 2822 2878 ANDCB 2878 # 2871 2872 2873 2874 ANDCM 2841 # 2834 2835 2836 2837 AOBJ 3511 # 3506 3507 AOJ 3489 # 3478 3479 3480 3481 3482 3483 3484 3485 AOS 3406 # 3395 3396 3397 3398 3399 3400 3401 3402 APRID 7046 # APRSO 7033 # 7009 APRSZ 7036 # 7008 ARSIGN 2459 # 2401 ASH 2983 # 2954 ASHC 3086 # 2958 ASHC1 3092 # 3090 ASHCL 3108 # 3097 3110 ASHCQ1 3119 # 3080 3116 ASHCR 3101 # 3103 ASHCX 3113 # 3105 ASHL 2993 # 2993 ASHL0 2990 # 2983 ASHR 2986 # 2972 ASHX 2997 # 3010 ASHXX 3010 # 3015 BACKBP 6964 # 6932 6940 BACKD 6939 # 8815 8823 8825 BACKS 6931 # 8822 BADDATA 8273 # 8258 BDABT 6408 # 6344 BDCFLG 6410 # 6389 BDEC 6292 # BDEC0 6298 # 6296 BDEC1 6305 # 6314 BDEC2 6310 # 6318 BDEC3 6320 # 6306 6328 BDEC4 6325 # 6320 BDEC5 6337 # 6323 6333 BDECLP 6375 # 6394 BDFILL 6359 # 6368 BDSET 6383 # 6403 6406 BDSUB 6422 # 6326 6376 BDSUB1 6426 # 6423 BDSUB2 6442 # 6445 BDTBL 6399 # 6382 BITCHK 6913 # 5919 5962 6100 6102 6459 BIXUB 7592 # 7585 7586 7587 7588 BIXUB1 7601 # 7597 7599 BLT 5118 # 5114 BLT-CLEANUP 5179 # 8807 BLTCLR 5138 # 5153 BLTGOT 5166 # 5141 BLTGO 5164 # 5130 5158 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 268 ; Cross Reference Listing BLTLP 5161 # 5176 BLTLP1 5127 # 5163 BOTH 2331 # BWRITE 2470 # 2571 2577 2691 2693 2726 2732 2740 2742 2761 2763 2806 2816 2826 2858 2868 2888 2898 2909 2919 2949 4063 4077 4129 4135 4158 4160 8557 8857 BYTEAS 4749 # 4773 6856 BYTEA 4751 # 4706 4725 BYTEA0 4754 # 4750 BYTFET 4775 # 4757 4761 6898 6899 BYTIND 4769 # 4765 CAIM 3372 # 3353 3354 3355 3356 3357 3358 3359 3361 3362 3363 3364 3365 3366 3367 3368 CHKSN 5818 # 5799 CLARXL 7755 # 5102 7529 CLARX0 6436 # 4645 4647 4651 4652 6167 6301 6427 CLDISP 8800 # 6933 6941 6954 6960 8795 CLEANED 8803 # 5184 8797 CLEANUP 8802 # 8800 CLRB1 6287 # 6285 CLRBIN 6285 # 6170 6266 CLRFLG 6923 # 5966 6338 CLRPTL 7420 # 7423 CLRPT 7411 # CLRSN 5826 # 5604 5694 CMPDST 6151 # 6131 CMS 6099 # CMS2 6140 # 6110 CMS3 6116 # 6142 6146 CMS4 6119 # CMS5 6145 # 6124 CMS6 6131 # 6148 CMS7 6136 # 6133 CMS8 6147 # 6145 CMSDST 6935 # 8821 COM0 4634 # 4629 4630 COM0A 4629 # 4633 COM1 4633 # 4624 COM1A 4624 # 4632 COM2 4632 # 4619 COM2A 4619 # CONSO 7034 # 7016 CONSZ 7040 # 7015 CONT 7893 # 7888 CONT1 7900 # 4050 CPYSGN 4109 # 4095 4105 DAC 2491 # 2498 2768 6408 DADD 4089 # 4084 DADD1 4092 # 4098 DBABT 6251 # 6187 6191 DBDN1 6264 # 6262 DBDONE 6259 # 6253 6278 DBFAST 6204 # 6200 DBIN 6160 # DBIN1 6175 # 6178 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 269 ; Cross Reference Listing DBIN2 6179 # 6175 DBINLP 6183 # 6201 6211 DBLDBL 6235 # 6223 6234 DBLDIV 4585 # 4439 4449 5722 5726 DBLMUL 4229 # 4200 DBLNEG 4641 # 2783 DBLNGA 4642 # 2773 DBLNG1 4650 # 4364 6310 DBNEG 6269 # 6258 DBSLOW 6216 # 2184 6198 DBSLO 6197 # 6205 DBXIT 6257 # 6185 DDIV 4391 # 4386 DDIV1 4408 # 4395 4399 DDIV2 4411 # 4409 DDIV3A 4416 # 4421 DDIV3 4412 # 4406 DDIV4 4424 # 4417 DDIV5A 4438 # 4429 DDIV5B 4462 # 4453 DDIV5C 4464 # 4459 DDIV5 4432 # 4428 DDIV6 4467 # 4460 4462 DDIV7 4469 # DDIV8A 4478 # DDIV8 4476 # 4469 DDIV9 4484 # 4479 DDIVS 4498 # 4425 4443 5718 DFAD 5552 # 5539 DFADJ 5603 # 5568 5576 DFADJ1 5610 # 5611 DFADJ2 5612 # DFADJ3 5618 # 5614 5618 DFADJ4 5619 # 5615 DFADJ5 5621 # 5613 5622 DFADJ6 5623 # 5621 DFAS1 5561 # 5557 5559 DFAS2 5568 # 5562 DFAS3 5573 # 5564 DFAS5 5582 # 5570 5578 DFAS6 5587 # 5588 DFAS7 5589 # 5587 DFDV 5692 # 5689 DFDV1 5698 # 5705 DFDV2 5706 # 5699 DFDV3 5717 # 5709 DFDV4A 5732 # 5735 DFDV4B 5737 # 5734 DFDV4 5719 # 5715 DFMP 5633 # 5628 DFMP1 5635 # 5636 DFMP2 5661 # 5658 DFPR1 2424 # 2418 DFPR2 2425 # 2423 DFSB 5549 # 5540 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 270 ; Cross Reference Listing DIV 4330 # 4314 4315 4316 4317 DIV1 4339 # 4325 4327 4381 DIV2 4342 # 4355 DIVA 4351 # 4337 DIVB 4357 # 4352 DIVC 4370 # 4362 4367 DIVHI 4592 # 4586 4589 4603 DIVIDE 4557 # 4557 DIVSET 4551 # 4547 DIVSGN 4537 # 4519 5373 DIVSUB 4516 # 4343 4976 4986 5020 DMLINT 4237 # 4202 DMOVNM 2783 # 2778 DMOVN 2773 # 2769 DMOVN1 2785 # 2777 DMTRAP 4221 # 4215 DMUL 4173 # 4168 DMUL1 4194 # 4183 DMUL2 4199 # 4193 DMULGO 4228 # 4181 DNEG 5775 # 5749 5752 5755 5758 DNEG1 5777 # 5775 DNEG2 5779 # 5776 DNN1 5805 # 5801 DNN2 5807 # 5803 DNNORM 5785 # 5738 5780 5782 5787 5815 DNNRM1 5812 # 5795 DNORM 5746 # 5684 5737 5748 5770 DNORM0 5683 # 5593 DNORM1 5767 # 5760 DNORM2 5809 # 5807 DOCVT 6297 # 6347 6363 DOCVT1 6372 # 6297 DOCVT2 6393 # 6373 DOCVT3 6390 # 6412 DONE 2230 # 2530 2544 2844 2845 3024 3177 3178 3186 3187 3287 3331 3334 3337 3352 3464 3715 3823 3840 4224 4729 5071 5146 5170 7040 7083 7155 7257 7261 7265 7269 7273 7321 7345 7355 7406 7440 7579 DPB 4718 # 4691 DPB1 4889 # 4728 6880 DPB7 4896 # 4890 4891 4892 4893 4894 4918 DPBSLO 4900 # 4889 DRND1 5841 # 5837 5845 5848 DROUND 5835 # 5751 5754 5757 5789 5791 5793 5839 DSMS1 7553 # 7550 7555 DSTEA 6898 # 6904 DSTIND 6903 # 6900 6901 DSUB 4101 # 4085 DUMP 7965 # 7949 7956 DVSUB1 4543 # 4540 DVSUB2 4544 # 4538 DVSUB3 4546 # 4550 EACALC 2285 # 2348 EAPF 8864 # 8844 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 271 ; Cross Reference Listing EAPF1 8869 # 8851 EDBYTE 6635 # 6598 6626 EDEXMD 6546 # 6517 EDFILL 6562 # EDFIL1 6577 # 6564 EDFLT 6593 # 6539 6583 EDFLT1 6611 # 6607 6609 EDISP 6476 # 6470 EDISP1 6478 # 6478 EDIT 6455 # EDITLP 6460 # 6684 EDMSG 6620 # 6485 EDMSG1 6629 # 6622 EDN1A 6666 # 6671 EDNOP 6655 # 6487 6489 6491 6505 6514 6540 6551 6572 6578 6631 6632 6646 EDNOP1 6656 # 6650 EDNOP2 6673 # 6667 6673 EDOPR 6505 # 6482 EDSEL 6556 # 6509 EDSFLT 6582 # 6566 EDSKP 6643 # 6494 6497 6499 EDSKP1 6647 # 6644 EDSPUT 6569 # 6577 6587 EDSSIG 6539 # 6511 EDSTOP 6524 # 6507 6567 EDSTP1 6530 # 6533 ENDSKP 6267 # 6091 EQV 2888 # 2881 2882 2883 2884 EXCH 2590 # 2586 EXTDSP 5931 # EXTEA 5930 # EXTEA0 5927 # 5925 EXTEA1 5928 # 5936 EXTEND 5917 # 5913 EXTEXT 5940 # 5932 5946 EXTIND 5936 # 5933 FAD 5288 # 5265 5266 5267 5268 5269 5270 5271 FAS1 5290 # FAS2 5299 # 5290 FAS3 5302 # 5295 5296 5299 5300 FAS4 5304 # 5304 FDV 5351 # 5339 5340 5341 5343 5344 5345 5346 FDV0 5357 # 5354 FDV1 5359 # 5357 FDV2 5360 # 5358 FDV3 5361 # 5359 5360 FDV4 5363 # 5364 FDV5 5366 # 5363 FDV6 5369 # 5366 FDV7 5373 # 5374 FDV8 5376 # FDV9 5384 # 5376 5381 5382 FETIND 2341 # 2306 2311 2333 FIX 5429 # 5424 5425 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 272 ; Cross Reference Listing FIX++ 4561 # 4562 FIX1++ 4563 # 4561 FIXL 5444 # 5434 5444 FIXPC 8798 # 4237 6424 FIXR 5439 # 5440 FIXT 5451 # 5448 FIXX 5448 # 5441 FIXX1 5449 # 5455 FL-BWRITE 2517 # 5449 5453 5499 5521 FLEX 5499 # 5495 FLTR 5394 # 5389 FLTR1A 5402 # 5399 FLTR1 5398 # 5395 FLTR2 5407 # 5400 5402 FLTR3 5409 # 5410 FMP 5321 # 5310 5311 5312 5314 5315 5316 5317 FMP1 5326 # 5324 5325 FP-LONG 3936 # 3914 3915 3916 3917 3918 3919 FPR0 2398 # 2392 FPR1 2402 # FSB 5285 # 5273 5274 5275 5276 5277 5278 5279 FSC 5415 # 5390 GETPCW 7227 # 3982 GETSRC 6847 # 6122 6557 GOEXEC 4006 # 8871 GRP700 7045 # 7001 GRP701 7019 # 7002 GRP702 7242 # 7238 GSRC 6845 # 6079 6732 GSRC1 6854 # 6850 GTFILL 6917 # 5959 6456 GTPCW1 7231 # 7222 7231 H1 7884 # 7950 HALT 3580 # 3532 HALTED 7874 # 2193 2250 2268 2519 3582 7504 7536 8789 HALTLP 7890 # 7884 HARD 8764 # 7743 8260 8262 8276 HLL 2693 # 2602 2603 2646 2718 HLLE 2759 # 2632 2633 2634 2635 HLLO 2763 # 2622 2623 2624 2625 HLLZ 2761 # 2612 2613 2614 2615 HLR 2720 # 2649 2650 HLRE 2752 # 2679 2680 2681 2682 HLRM 2729 # 2651 HLRO 2756 # 2669 2670 2671 2672 HLRS 2732 # 2652 HLRZ 2754 # 2659 2660 2661 2662 HRL 2718 # 2607 2608 HRLE 2745 # 2637 2638 2639 2640 HRLM 2723 # 2609 HRLO 2749 # 2627 2628 2629 2630 HRLS 2726 # 2610 HRLZ 2747 # 2617 2618 2619 2620 HRR 2691 # 2604 2644 2645 2720 HRRE 2738 # 2674 2675 2676 2677 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 273 ; Cross Reference Listing HRRO 2742 # 2664 2665 2666 2667 HRRZ 2740 # 2654 2655 2656 2657 HSBDON 7992 # IBP 4694 # 4687 IBPS 4735 # 4697 4702 4716 IBPX 4742 # 3833 4735 8390 8519 IDIV 4321 # 4309 4310 4311 4312 IDPB 4716 # 4690 IDST 6891 # 6152 6875 IDSTX 6895 # 6892 ILDB 4702 # 4688 IMUL 4123 # 4117 4118 4119 4120 IMUL1 4129 # 4346 IMUL2 4131 # 4128 IMUL3 4137 # 4134 INCAR 7757 # 6053 7509 INCPC 2278 # 2273 INDEX 2318 # INDRCT 2336 # IOEA 7680 # 7612 7650 IOEA1 7686 # 7688 IOEA2 7690 # 7686 IOEAI 7698 # 7691 IOEAX 7707 # 7694 IOR 2868 # 2861 2862 2863 2864 2929 IORD 7611 # 7567 7578 7593 IORD1 7620 # 7616 IORD2 7630 # 7625 IORD3 7636 # 7631 7637 IOT700 7829 # 7772 7773 7774 IOT710 7831 # 7776 7777 IOT720 7838 # 7779 7780 IOT730 7840 # 7782 7783 7784 7785 7786 7787 7788 7789 IOT740 7842 # 7791 7792 7793 7794 7795 7796 7797 7798 IOT750 7844 # 7800 7801 7802 7803 7804 7805 7806 7807 IOT760 7846 # 7809 7810 7811 7812 7813 7814 7815 7816 IOT770 7848 # 7818 7819 7820 7821 7822 7823 7824 7825 IOW1 7720 # 7725 IOW2 7732 # 7722 7728 IOW3 7735 # 7742 IOW4 7740 # 7736 IOW5 7743 # 7730 IOWAIT 7716 # 7621 7657 IOWR 7649 # 7582 7602 IOWR1 7655 # 7665 7671 IOWR2 7662 # 7652 IOWR3 7668 # 7663 7669 ITRAP 8244 # 6055 JEN 3588 # 3542 JEN1 7550 # 3594 3609 JEN2 3594 # 3586 JFCL 3600 # 3520 JFFO 3018 # 2957 JFFO1 3026 # 3023 JFFOL 3040 # 3042 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 274 ; Cross Reference Listing JMPA 3443 # 3851 JRA 3845 # 3804 JRST 3527 # 3468 3518 JRST0 3556 # 3553 3577 3592 JRST1 3574 # 3569 3573 JRST10 3585 # 3539 JRSTF 3550 # 3530 JSA 3829 # 3803 JSP 3808 # 3802 JSR 3814 # 3801 JSTAC 3709 # 3699 3706 3744 JSTAC1 3712 # 3763 JSYS 3930 # 3911 JUMP 3475 # 3465 3466 3467 3469 3470 3471 JUMP-TABLE 3428 # 3475 3489 3503 3513 JUMP- 3455 # 3434 3437 3440 3603 JUMPA 3459 # 3443 3446 3449 3452 3811 4012 KIEPT 8710 # 8704 8707 KIF10 8701 # 8694 KIF30 8718 # 8699 8714 KIF40 8725 # 8729 KIF50 8733 # 8727 8756 8771 KIF80 8754 # KIF90 8759 # 8750 KIFILL 8689 # 8316 KIMUUO 4018 # 3961 KIUPT 8695 # 8717 L-BDEC 5891 # 5864 5865 L-CMS 5885 # 5854 5855 5856 5858 5859 5860 L-DBIN 5889 # 5862 5863 L-EDIT 5887 # 5857 L-MVS 5893 # 5867 5868 5869 5870 L-SPARE-A 5897 # 5873 L-SPARE-B 5899 # 5874 L-SPARE-C 5901 # 5875 5876 5877 5878 5879 L-XBLT 5895 # 5872 LDB 4704 # 4689 LDB1 4791 # 4711 6155 6860 LDB7 4805 # 4796 4797 4798 4799 4800 LDBSH 4820 # 4815 LDBSWP 4814 # 4793 LDPI2 7396 # 3595 7385 LOADAR 7748 # 6401 6464 6547 7682 LOADARX 7751 # 6756 7316 LOADPI 7395 # 2196 LOADQ 7753 # 5120 6108 LSH 2967 # 2956 LSHC 3069 # 2960 LSHCL 3077 # 3069 3077 LSHCR 3073 # 3073 LSHCX 3079 # 3074 3146 3151 LSHL 2974 # 2969 LUUO 4036 # 3857 3858 3859 3860 3861 3862 3863 3864 LUUO1 4039 # 5885 5887 5889 5891 5893 5895 5897 5899 5901 MAP 8227 # 8223 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 275 ; Cross Reference Listing MAPDON 8854 # 8809 MOVE 2577 # 2551 2574 2581 2605 2647 2829 2830 2831 2832 2846 2847 4110 4111 4137 4138 4162 4972 MOVELP 5997 # 5977 6006 MOVF1 6697 # 6703 MOVFIL 6703 # 6029 6090 MOVLP0 6006 # 5991 MOVM 2574 # 2564 2566 2567 MOVN 2579 # 2559 2560 2561 2562 MOVPAT 6472 # 6467 6469 6472 MOVRJ 6027 # 5983 MOVS 2571 # 2554 2555 2556 2557 2724 2730 2747 2749 2754 2756 MOVSTX 6080 # MOVST0 6075 # 5980 MOVST1 6076 # 6031 6086 MOVST2 6089 # 6000 6081 MOVST3 6093 # 6089 MOVST4 6085 # 6042 MSKPAT 6473 # 6468 MUL 4150 # 4142 4143 4144 4145 MUL+ 4272 # 4256 4268 4274 4292 MUL- 4290 # 4282 4300 MULBY4 6234 # 6217 MULSB1 4254 # 5644 MULSUB 4253 # 4126 4154 5047 5328 MULTIPLY 4265 # 4233 5649 5661 5668 MUUO 3943 # 3868 3869 3870 3871 3872 3873 3874 3875 3876 3877 3878 3879 3880 3881 3882 3883 3884 3885 3886 3887 3888 3889 3890 3891 3892 3893 3894 3895 3896 3897 3898 3899 MVABT 6011 # 6002 MVABT1 6014 # 6016 MVABT2 6018 # 6014 MVEND 6021 # MVS 5956 # MVS1 5973 # 5971 MVSK2 6061 # 6035 MVSK3 6051 # 6047 MVSKP 6034 # 6027 6045 6058 6069 MVSKP1 6045 # 6040 MVSKP2 6057 # 6049 MVSO 5985 # 5978 MVSO1 5988 # 5988 NEXT 4031 # 3972 3976 4019 7966 7969 7971 7973 7976 7979 7982 7985 7988 7990 NEXTAR 8873 # 8837 8865 NICOND 2239 # 2524 3045 3091 3119 3431 3713 3789 3796 4487 4490 5445 5451 5810 8237 NICOND-FETCH 2258 # 2230 2231 2233 2234 2294 2300 3328 3340 3455 3456 3459 3460 3527 3528 3554 3596 4223 4698 7387 7658 NIDISP 3091 # 3791 3795 4344 4379 4410 4496 4713 5003 5355 5367 5432 5720 NODDIV 4495 # 4432 4434 NODIV 4379 # 4373 4377 NOMOD 2322 # NXTWRD 4741 # 4737 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 276 ; Cross Reference Listing ORCA 2908 # 2901 2902 2903 2904 ORCB 2939 # 2932 2933 2934 2935 ORCM 2929 # 2922 2923 2924 2925 PAGE-FAIL 8242 # PF100 8498 # 8475 PF105 8506 # 8502 PF107 8479 # 8509 8513 PF110 8516 # 8482 PF120 8559 # 8539 PF125 8578 # 8576 8782 PF130 8541 # 8537 8543 PF140 8535 # PF25 8299 # 8301 PF30 8323 # 8312 PF35 8336 # 8325 PF40 8341 # 8333 PF45 8348 # 8368 8447 PF50 8380 # 8352 PF60 8364 # 8366 PF70 8386 # PF75 8398 # 8400 PF76 8421 # 8417 8419 PF77 8426 # 8330 8338 PF80 8458 # 8431 PF90 8470 # PFD 8250 # 8252 PFDBIN 6958 # 8819 PFDONE 8531 # 8757 8761 PFGAC0 6960 # PFMAP 8280 # 8236 8264 8268 8270 PFPI1 8773 # 8254 8266 PFPI2 8781 # PFT 8789 # 8360 8380 8448 8458 8478 8603 8640 8645 8669 8733 PFT1 8790 # 8778 PFT10 8833 # 8831 PFT1A 8797 # 8793 PFT2 8829 # 8805 PFT3 8832 # 8858 PFTICK 8491 # 8440 PI 7453 # 7455 8832 PI10 7471 # 7463 7464 7465 7466 7467 7468 7469 PI40 7489 # 7486 PI50 7490 # 7540 PIEXIT 7385 # 3624 PIJSR 7504 # 7493 PIP1 7463 # 7456 PIP2 7464 # 7457 PIP3 7465 # 7458 PIP4 7466 # 7459 PIP5 7467 # 7460 PIP6 7468 # 7461 PIP7 7469 # 7462 PISET 3623 # 7511 PIXPCW 3632 # 7496 POP 3719 # 3673 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 277 ; Cross Reference Listing POPJ 3752 # 3674 POPX1 3747 # 3735 PTRIMM 8429 # PTRIND 8437 # 8494 PTRSHR 8451 # 8433 PUSH 3679 # 3672 PUSH1 3681 # 3693 PUSHJ 3691 # 3671 PUTDST 6873 # 6004 6083 6365 6384 6570 6605 6630 6698 PWRON 7879 # 2222 QDNEG 4615 # 4419 4495 QMULT 4232 # 4190 4210 RDAPR 7094 # RDCSB 7245 # RDCSTM 7249 # RDEBR 7212 # RDEBR1 7214 # 7214 RDERA 7011 # RDHSB 7251 # RDINT 7358 # RDIO 7578 # 7571 7573 RDPI 7364 # RDPT 8662 # 8356 8367 8374 8451 8598 RDPUR 7247 # RDSPB 7243 # RDTIME 7327 # 7341 RDTIM1 7343 # 7340 RDUBR 7221 # ROT 3002 # 2955 ROTC 3141 # 2959 ROTCL 3149 # 3141 3149 ROTCR 3145 # 3145 ROTL 3012 # 3004 RTNREG 7405 # 7057 7107 7218 7243 7245 7247 7249 7251 7359 7364 RTNRG1 7406 # 7224 SAVVMA 7960 # 7875 7947 SBRL 7759 # 5370 6209 SECIMM 8350 # SECSHR 8374 # 8354 SETBLT 5098 # 5118 SETCA 2898 # 2891 2892 2893 2894 SETCM 2919 # 2912 2913 2914 2915 2939 SETO 2949 # 2942 2943 2944 2945 SETPDL 3704 # 3749 SETPTR 8631 # 8349 8428 SETSN 5825 # 5378 5380 5675 SETUBR 7158 # 7149 SETZ 2806 # 2799 2800 2801 2802 SFM 3642 # 3544 SHDREM 8677 # 8412 8415 SHIFT 2378 # 2388 SKIP 2233 # 3343 3346 3349 6267 6395 7034 SKIP-COMP-TABLE 3325 # 3372 3391 3392 6118 SKIPE 3334 # 6094 SKIPS 3389 # 3378 3379 3380 3381 3382 3383 3384 3385 3408 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 278 ; Cross Reference Listing SNNEG 5502 # 5487 5489 5491 5493 SNNORM 5506 # 5502 5504 5506 5510 SNNOT 5517 # 5513 SNNOT1 5520 # 5515 SNNOT2 5521 # 5517 5519 5520 SNORM 5486 # 5305 5334 5411 5486 5498 SNORM0 5411 # 5384 5396 5403 5418 5419 SNORM1 5498 # 5494 SOJ 3503 # 3492 3493 3494 3495 3496 3497 3498 3499 SOS 3422 # 3411 3412 3413 3414 3415 3416 3417 3418 SRCMOD 6730 # 5998 6183 6825 6829 6831 SRND1 5531 # 5528 SROUND 5528 # 5488 5490 5492 5507 5508 5509 5529 SSWEEP 7442 # 7415 7428 STAC 2523 # 2492 2536 2541 2549 2550 2565 2594 2774 2975 2988 2997 5764 5771 5816 6022 6530 7863 STAC34 6277 # 6272 STBOTH 2534 # STBTH1 2539 # 2487 STDBTH 2496 # STMAC 3696 # 3688 STMEM 2528 # 7870 STOBR 7763 # 3633 3985 7507 STOPC 7765 # 3636 7883 STORE 2542 # 2794 3644 STPF1A 6956 # 6948 STPTR1 8642 # 8639 STPTR2 8648 # 8644 STPTR3 8654 # 8650 STRPF 6944 # 8811 8813 STRPF0 6945 # 6962 STRPF1 6948 # STRPF2 6959 # 6956 STRPF3 6953 # STRPF4 6962 # 8817 STRTIO 7761 # 7477 7525 7899 STSELF 2486 # 2552 STUBRS 7162 # 7164 SUB 4076 # 4069 4070 4071 4072 SWEEPL 7433 # 7436 SWEEP 7427 # 7178 7198 7199 TDONE 3302 # 3293 3296 TDX 3273 # 3181 3190 3195 3199 3204 3208 3213 3217 3222 3226 3230 3234 3239 3243 TDXX 3278 # 3179 3183 3188 3192 3197 3201 3206 3210 3215 3219 3224 3228 3232 3236 3241 3245 TENLP 2182 # 2189 TEST-TABLE 3284 # 3273 3279 7568 TICK 7281 # 6064 TIOX 7567 # 7560 7561 7562 7563 TOCK 7284 # 7338 8492 8777 TOCK1 7288 # 7294 TOCK2 7295 # 7289 TOCK3 7299 # 7306 TRAP 6969 # 2243 2246 2249 2261 2264 2267 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 279 ; Cross Reference Listing TRNAR 6751 # 6560 TRNFNC 6773 # 6761 6780 6784 6788 6800 TRNNS1 6823 # 6813 TRNNS2 6826 # 6823 TRNRET 6805 # 6774 TRNSIG 6786 # 6796 TRNSS 6812 # 6807 TRNSS1 6808 # 6816 TRP1 6988 # 6978 6986 TSX 3271 # 3182 3191 3196 3200 3205 3209 3214 3218 3223 3227 3231 3235 3240 3244 TSXX 3276 # 3180 3184 3189 3193 3198 3202 3207 3211 3216 3220 3225 3229 3233 3237 3242 3246 TXXX 3287 # 3302 TXZX 3301 # 3290 UMOVEM 7866 # 7854 UMOVE 7858 # 7853 UPCST 8597 # 8385 8461 UUO 3942 # 3903 3910 UUO101 3924 # 3904 UUO102 3926 # 3905 UUO103 3928 # 3906 UUO106 3932 # 3912 UUO107 3934 # 3913 UUO247 3938 # 3920 UUOFLG 4027 # 3967 4021 UUOGO 3948 # 2437 3531 3540 3543 3545 3546 3547 3580 3585 3588 3608 3629 3642 3924 3926 3928 3930 3932 3934 3936 3938 6913 6996 7005 7006 7007 7011 7012 7013 7014 7019 7020 7021 7024 7025 7026 7027 7028 7029 7030 7031 7252 7275 7370 7829 7833 7838 7840 7842 7844 7846 7848 UUOPCW 3979 # 4024 VECINT 7518 # 7481 7521 VECIN1 7537 # 7535 WRAPR 7060 # WRAPR1 7079 # 7091 WRAPR2 7085 # 7078 WRCSB 7259 # WRCSTM 7267 # WREBR 7181 # WREBR1 7183 # 7183 WRHSB 7271 # WRINT 7351 # WRIO 7582 # 7572 7574 WRPI 7367 # WRPUR 7263 # WRSPB 7255 # WRTHSB 7953 # 7877 WRTIME 7311 # WRTIM1 7323 # 7292 7319 WRUBR 7118 # XCT 3653 # 3649 XCT1 3665 # 3659 6995 7903 XCT1A 3655 # 3663 XCT2 2345 # 3666 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 280 ; Cross Reference Listing XCTGO 2270 # 2254 7895 XJEN 3608 # 3536 XJRSTF 3615 # 3535 3638 XJRSTF0 3534 # 3612 XLATE 6750 # 6736 XLATE1 6759 # 6763 XOR 2858 # 2851 2852 2853 2854 XOS 3407 # 3422 XPCW 3629 # 3537 ZAPPTA 7438 # 7424 (D) J 1346 # (U) JFCLFLG 1105 # 3600 (U) LD FLAGS 1109 # 2220 3559 3563 3621 4009 7495 7510 8795 (U) LD PCU 1097 # 4011 (U) LDVMA 1148 # 2163 2182 2186 2230 2230 2231 2233 2234 2234 2252 2278 2293 2299 2305 2309 2332 2336 2345 2365 2407 2417 2420 2432 2786 2790 2791 3022 3328 3328 3340 3455 3455 3456 3459 3460 3460 3527 3528 3529 3534 3538 3541 3554 3567 3570 3596 3611 3617 3632 3634 3634 3643 3683 3710 3720 3732 3737 3753 3816 3847 3959 3960 3960 3969 3970 3970 3984 3984 4003 4004 4031 4031 4040 4047 4048 4223 4223 4698 4698 4707 4754 4758 4762 4766 5099 5127 5135 5149 5150 5154 5155 5172 5173 5931 5933 5934 5957 6105 6354 6381 6426 6432 6439 6455 6460 6516 6594 6636 6751 6898 6899 6900 6901 6977 6985 7118 7223 7314 7339 7344 7344 7387 7387 7405 7411 7474 7489 7489 7489 7490 7531 7531 7539 7620 7655 7658 7658 7680 7702 7761 7858 7866 7876 7879 7879 7882 7882 7893 7949 7965 7965 7968 7968 7975 7975 7978 7978 7981 7981 7984 7984 7987 7987 7994 8280 8328 8329 8329 8336 8337 8337 8341 8343 8421 8423 8565 8581 8662 8664 8696 8697 8711 8713 8779 8785 8833 8834 8834 8870 8870 8873 8873 (U) LOADFE 952 # 2381 2399 2414 2968 2971 2975 2985 2987 3003 3006 3009 3014 3026 3041 3087 4705 4709 4721 4814 4819 4821 4823 4826 4889 4902 4905 4906 4908 4910 5294 5322 5331 5333 5353 5359 5360 5374 5396 5400 5402 5403 5417 5486 5490 5492 5498 5506 5508 5509 5510 5529 5534 5575 5590 5592 5656 5673 5684 5707 5733 5747 5754 5757 5769 5786 5791 5793 5814 5839 5847 5985 5986 5988 6154 6525 6526 6532 6656 6657 6658 6659 6856 6859 6878 6896 (U) LOADSC 950 # 2177 2187 2380 2399 2414 2430 2991 2993 3069 3070 3071 3073 3077 3087 3096 3099 3103 3110 3141 3142 3143 3145 3149 4124 4152 4189 4209 4229 4255 4267 4273 4281 4291 4299 4342 4439 4447 4554 4557 4597 4943 4946 4959 4965 4970 4983 4999 5044 5059 5065 5288 5292 5293 5302 5304 5326 5373 5407 5410 5415 5433 5434 5435 5437 5440 5444 5554 5564 5574 5608 5611 5618 5633 5636 5644 5648 5651 5661 5667 5722 5723 6299 6328 6467 6469 6472 6476 6478 6649 6655 6661 6666 6673 7160 7163 7181 7183 7212 7214 7222 7228 7231 7422 7435 7442 7630 7637 7662 7668 7716 7723 7732 7736 8297 8300 8348 8362 8365 8396 8399 8536 8542 (U) LSRC 602 # (U) MACRO% ABORT MEM CYCLE 2001 # 2163 3611 7474 7876 7949 8280 8779 8785 AC 1851 # 4123 4150 4321 4412 5351 5416 5557 5559 AC[] 1852 # 4488 5696 5704 6207 6271 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 281 ; Cross Reference Listing AC[]_Q 1753 # 3119 4184 4192 4203 4215 AC[]_Q.AND.[] 1742 # 4442 4486 4616 4621 4626 4632 4633 AC[]_[] 1729 # 2491 2774 3045 4459 4465 5771 5816 6014 6034 6051 6134 6168 6227 6229 6264 6277 6278 6314 6346 6352 6363 6368 6391 6392 6551 6854 6895 6933 6941 6948 6953 AC[]_[] TEST 1730 # 6826 AC[]_[] VIA AD 1727 # AC[]_[]*2 1732 # 4201 AC[]_[]+1 1731 # 6700 AC[]_[]+Q 1737 # AC[]_[]+[] 1739 # 4484 6210 AC[]_[]-[] 1738 # 5968 AC[]_[].AND.[] 1741 # 4462 5763 5809 AC[]_[].EQV.Q 1743 # 4216 4218 4220 4489 AC[]_-Q 1749 # AC[]_-[] 1744 # AC[]_.NOT.[] 1747 # AC[]_0 1751 # 2175 3024 4460 6041 6089 6285 6287 AC[]_1 1752 # 2176 AC_-[] 1745 # 5808 AC_.NOT.[] 1748 # 5807 AC_Q 1750 # 4458 AC_[] 1733 # 2523 3080 3302 3391 3431 3443 3712 3714 3810 4634 4712 5119 5183 5445 5451 6091 6127 6390 6611 6684 6960 7579 7767 8237 AC_[] TEST 1734 # 3434 3437 3440 3446 3449 3452 4214 6265 6311 AC_[] VIA AD 1728 # AC_[]+1 1735 # 6936 AC_[]+Q 1736 # AC_[]+[] 1740 # 3113 3777 3782 AC_[].OR.[] 1746 # 5070 6054 6093 AD FLAGS 2029 # 2580 3406 3422 3489 3503 4063 4077 4094 4104 4107 4234 4645 4647 AD FLAGS EXIT 2077 # 4063 4077 AD PARITY 1955 # 2183 2359 2372 2373 2590 2691 2693 2724 2730 2783 2967 2970 2984 3018 3475 3719 3752 3774 3832 3845 4152 4194 4331 4722 5118 5288 5321 5353 5417 5563 5960 5963 5978 5981 6011 6027 6099 6101 6119 6151 6163 6166 6194 6197 6199 6206 6216 6257 6259 6260 6292 6297 6298 6299 6320 6325 6337 6372 6457 6515 6556 6593 6595 6699 6812 6819 6845 6847 6874 6931 6939 6945 7582 7869 ADD .25 1986 # 2579 2949 3372 3422 3503 3529 3538 3541 4076 4093 4101 4106 4280 4284 4326 4370 4403 4426 4427 4433 4454 4480 4521 4522 4523 4539 4541 4548 4554 4585 4615 4620 4625 4630 4642 4646 4650 4652 4981 5038 5055 5105 5124 5142 5166 5285 5360 5363 5364 5371 5382 5395 5487 5489 5491 5493 5504 5520 5549 5588 5701 5712 5719 5735 5776 5781 5802 5808 5842 5968 6001 6015 6036 6103 6139 6140 6141 6188 6252 6270 6273 6341 6358 6366 6385 6393 6394 6428 6430 6433 6481 6823 6944 6952 6958 7296 7396 7420 7433 7680 8691 8701 8798 8858 ADL PARITY 1948 # ADR PARITY 1952 # AREAD 2072 # 2323 ASH 1963 # 2427 2987 ASH AROV 2014 # 2993 3109 3112 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 282 ; Cross Reference Listing ASH36 LEFT 2980 # 2993 ASHC 1968 # 2993 3102 3105 3109 3112 4273 4281 4291 4299 4405 4409 4478 4482 4498 5304 5407 5409 5439 5583 5585 5589 5591 5607 5611 5618 5621 5623 5635 5676 5680 5715 5729 5747 5753 5756 5769 5786 5790 5792 5814 5839 B DISP 2073 # 2571 2577 2691 2693 2726 2732 2740 2742 2761 2763 2806 2816 2826 2858 2868 2888 2898 2909 2919 2949 3273 3279 3372 3391 3392 3475 3489 3503 3513 3698 3705 3743 4063 4077 4129 4135 4158 4160 5441 5449 5453 5499 5511 5521 5528 5932 5974 6118 6173 6380 6734 6806 6813 7568 7595 7613 7624 7651 8557 8857 BAD PARITY 1957 # BASIC DIV STEP 4533 # 4554 4557 BWRITE DISP 2074 # 2571 2577 2691 2693 2726 2732 2740 2742 2761 2763 2806 2816 2826 2858 2868 2888 2898 2909 2919 2949 4063 4077 4129 4135 4158 4160 8557 8857 BYTE DISP 2091 # 4710 4727 6155 6858 6879 BYTE STEP 4682 # 5986 5988 CALL IBP 4676 # 4697 4702 4716 CALL LOAD PI 2097 # 3595 7385 CALL [] 1987 # 2184 2196 2401 2773 2783 3553 3592 3594 3595 3609 3633 3636 3833 3836 3951 3967 3972 3976 3982 3985 4019 4021 4126 4154 4181 4190 4200 4210 4233 4343 4364 4419 4425 4439 4443 4449 4495 4519 4697 4702 4706 4711 4716 4725 4728 4976 4986 5020 5047 5102 5118 5120 5328 5370 5373 5378 5380 5488 5490 5492 5507 5508 5509 5568 5576 5604 5644 5649 5661 5668 5675 5694 5718 5722 5726 5751 5754 5757 5789 5791 5793 5799 5919 5959 5962 5966 5998 6004 6029 6053 6064 6079 6083 6090 6100 6102 6108 6122 6131 6152 6167 6170 6183 6198 6209 6217 6220 6223 6226 6234 6239 6266 6301 6310 6326 6338 6365 6376 6384 6401 6427 6456 6459 6464 6539 6547 6557 6560 6570 6583 6598 6605 6626 6630 6698 6732 6756 6856 6875 6880 6932 6940 6951 7222 7292 7316 7319 7338 7385 7415 7428 7477 7507 7509 7525 7529 7567 7578 7593 7612 7621 7650 7657 7682 7875 7877 7883 7899 7947 7949 7966 7969 7971 7973 7976 7979 7982 7985 7988 7990 8349 8356 8367 8374 8385 8390 8412 8415 8428 8451 8461 8492 8519 8598 8766 8777 8837 8865 CHANGE FLAGS 2007 # 2219 2220 2580 3406 3422 3489 3503 3559 3560 3563 3564 3600 3621 3622 3692 3704 3760 3790 3794 3809 3815 4009 4010 4011 4063 4077 4094 4104 4107 4137 4138 4162 4212 4224 4234 4237 4344 4379 4410 4496 4645 4647 4712 4729 4751 5003 5355 5367 5432 5720 6394 6395 6993 7495 7510 8795 CHK PARITY 1956 # 2271 2341 2355 2364 2368 2385 2396 2407 2413 2426 2497 2529 2535 2540 2543 2593 2789 3089 3408 3551 3575 3590 3615 3619 3680 3697 3703 3725 3742 3748 3761 3819 3850 3972 3974 3980 4007 4019 4023 4046 4124 4217 4219 4322 4332 4416 4438 4445 4742 4770 4776 4897 5162 5917 5936 6356 6546 6596 6599 6627 6903 6918 6988 7121 7256 7260 7264 7268 7272 7313 7343 7345 7352 7406 7490 7532 7656 7703 7748 7751 7753 7763 7765 7862 7881 7901 7966 7967 7969 7970 7973 7974 7976 7977 7979 7980 7982 7983 7985 7986 7988 7989 7991 8345 8427 8667 8719 8836 8850 8864 8866 CHK PARITY L 1949 # CHK PARITY R 1953 # CLEANUP DISP 2099 # 8800 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 283 ; Cross Reference Listing CLEAR ARX0 1705 # 2773 4641 6269 6310 6436 6442 CLEAR CONTINUE 1996 # CLEAR EXECUTE 1997 # CLEAR RUN 1998 # CLEAR []0 1704 # 2773 4363 4641 6246 6262 6269 6310 6436 6442 CLR FPD 2016 # 3692 3809 3815 4212 4712 4729 6395 CLR IO BUSY 2002 # 7611 7649 CLR IO LATCH 2003 # 7696 7704 7708 7711 7720 7726 7735 7740 CLRCSH 1993 # 7417 7418 7421 DFADJ 5600 # 5611 DISMISS 2096 # 3594 3609 DIV 1971 # 4554 4557 4558 4605 5486 5498 5506 5510 5603 5605 5606 DIV DISP 2090 # DIV STEP 4534 # 4557 DONE 2082 # 2230 2234 3328 3455 3460 4223 4698 7387 7658 DPB SCAD 4885 # 4890 4891 4892 4893 4894 EA MODE DISP 2071 # 2281 2347 3556 4749 4752 5928 6904 7692 END BLT 2039 # 5145 5169 END MAP 2040 # 8547 END STATE 2037 # 5145 5169 6022 6094 6117 6267 6395 6399 6461 6733 8547 8804 8822 8823 8854 EXIT 2076 # 2571 2577 2691 2693 2726 2732 2740 2742 2761 2763 2806 2816 2826 2858 2868 2888 2898 2909 2919 2949 4129 4135 4158 4160 8557 8857 EXP TEST 2028 # 5495 5511 5841 FETCH 1808 # 2230 2231 2233 2234 2253 2293 2299 2407 2432 3022 3328 3340 3455 3456 3459 3460 3527 3528 3554 3596 3711 4223 4698 4707 7387 7658 7894 FE_-1 1928 # FE_-12. 1926 # 3026 FE_-2 1925 # FE_-FE 1912 # 4814 4908 FE_-FE+200 1939 # 5359 5360 FE_-FE+S# 1915 # 4819 FE_-FE-1 1913 # 2968 3003 FE_-S-10 1922 # 4823 4889 FE_-S-20 1921 # FE_0 1927 # FE_EXP 1934 # 2399 2414 5294 5575 FE_FE+1 1929 # 2971 2985 3006 5374 5490 5492 5508 5509 5529 5534 5754 5757 5791 5793 5839 5847 FE_FE+10 1931 # 4821 4826 4902 4910 FE_FE+2 1930 # 5331 FE_FE+4 1933 # 3041 FE_FE+P 1937 # 6526 FE_FE+S# 1940 # 5673 5684 6659 FE_FE+SC 1916 # 6658 FE_FE-1 1932 # 5486 5498 5506 5510 5590 5592 5747 5769 5786 5814 FE_FE-19 1914 # FE_FE-200 1938 # 5333 FE_FE.AND.S# 1917 # 4709 4906 6154 6532 6657 6859 FE_P 1918 # 4705 4905 6656 6856 6896 FE_S 1919 # FE_S# 1923 # 3026 5396 5400 5402 5403 6525 FE_S#-FE 1924 # 5733 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 284 ; Cross Reference Listing FE_S+2 1920 # 5985 FE_SC+EXP 1935 # 5322 5417 5656 FE_SC-EXP 1936 # 5353 5707 FIRST DIV STEP 4535 # 4554 FIX [] SIGN 1718 # 3389 4109 4133 4156 6737 7286 FL NO DIVIDE 2032 # 5355 5367 5720 FL-EXIT 2078 # 5449 5453 5499 5521 FM WRITE 1725 # 2162 2170 2172 2173 2175 2176 2178 2179 2185 2187 2491 2523 2774 3024 3045 3080 3113 3119 3302 3391 3431 3434 3437 3440 3443 3446 3449 3452 3665 3712 3714 3777 3782 3810 4184 4192 4201 4203 4214 4215 4216 4218 4220 4442 4458 4459 4460 4462 4465 4484 4486 4489 4616 4621 4626 4632 4633 4634 4695 4712 4954 4967 4977 4987 5019 5070 5119 5183 5445 5451 5763 5771 5807 5808 5809 5816 5927 5940 5943 5968 5973 5990 6014 6034 6035 6041 6051 6054 6061 6062 6063 6078 6089 6091 6093 6109 6125 6127 6134 6148 6161 6168 6179 6210 6227 6229 6264 6265 6277 6278 6285 6287 6300 6302 6311 6314 6346 6352 6358 6363 6364 6368 6377 6383 6390 6391 6392 6551 6582 6611 6684 6700 6730 6826 6854 6895 6919 6933 6936 6941 6948 6953 6960 6970 7082 7191 7257 7261 7265 7269 7273 7288 7299 7320 7323 7353 7354 7438 7439 7579 7687 7721 7727 7729 7767 7874 7946 7961 7971 8233 8237 8243 8244 8246 8247 8254 8264 8266 8268 8270 8274 8275 8416 8418 8439 8764 FORCE EXEC 1788 # 7491 7505 7539 GEN 17-FE 1943 # 4791 GEN MSK [] 1721 # 4825 4828 4901 4904 5988 HALT [] 2098 # 2193 2250 2268 2519 3582 7504 7536 8789 HOLD LEFT 1947 # 2231 2233 2278 2291 2292 2298 2303 2318 2319 2331 2342 2365 2693 2724 2732 2754 2756 3340 3456 3459 3527 3528 3529 3538 3541 3554 3566 3596 3620 3634 3762 3821 3835 3839 3984 3996 4001 4031 4047 4098 4741 4771 4980 5039 5062 5111 5123 5145 5149 5154 5169 5172 5182 5330 5593 5930 5933 5936 5977 6003 6006 6022 6028 6057 6076 6082 6090 6094 6105 6117 6121 6128 6147 6175 6252 6267 6305 6340 6357 6384 6395 6399 6455 6461 6508 6565 6569 6604 6629 6670 6675 6733 6852 6894 6903 7062 7088 7102 7171 7187 7189 7233 7314 7319 7344 7378 7380 7382 7384 7396 7456 7457 7458 7459 7460 7461 7462 7484 7554 7680 7701 7701 7882 7898 7968 7975 7978 7981 7984 7987 8236 8501 8547 8555 8798 8804 8810 8812 8814 8816 8818 8820 8822 8823 8824 8854 8873 HOLD RIGHT 1951 # 2422 2424 2437 2459 2460 2691 2726 2730 2747 2749 2773 3116 3118 3389 3531 3540 3543 3545 3546 3547 3580 3585 3588 3608 3629 3642 3773 3924 3926 3928 3930 3932 3934 3936 3938 3946 3966 3976 4028 4044 4109 4110 4111 4133 4156 4363 4402 4464 4518 4641 4818 4953 4961 5024 5069 5104 5108 5295 5296 5299 5300 5324 5325 5357 5358 5418 5419 5495 5511 5614 5615 5622 5638 5760 5795 5825 5826 5841 5923 5945 6172 6177 6246 6262 6263 6269 6308 6310 6317 6323 6332 6351 6403 6406 6411 6436 6442 6513 6607 6609 6679 6683 6737 6779 6783 6787 6791 6795 6799 6815 6913 6925 6996 7005 7006 7007 7011 7012 7013 7014 7019 7020 7021 7024 7025 7026 7027 7028 7029 7030 7031 7056 7096 7099 7127 7134 7138 7153 7159 7168 7176 7198 7199 7217 7221 7227 7252 7275 7286 7370 7372 7374 7376 7508 7710 7755 7829 7833 7838 7840 7842 7844 7846 7848 8229 8232 8283 8287 8290 8295 8446 8471 8508 8512 8546 8550 8553 8564 8634 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 285 ; Cross Reference Listing 8739 8744 8749 8755 8769 8832 IBP DP 4673 # 4697 4702 4716 6038 6848 6891 6964 IBP SCAD 4674 # 4697 4702 4716 6038 6848 6891 IBP SPEC 4675 # 4697 4702 4716 INH CRY18 1959 # 3512 3682 3729 3758 3778 3783 5035 5110 INST DISP 2075 # 2356 2360 2369 2374 2382 2403 2409 2433 2438 INTERRUPT TRAP 2088 # JFCL FLAGS 2025 # 3600 JUMP DISP 2081 # 3475 3489 3503 3513 JUMPA 2083 # 3456 3459 3527 3528 3554 3596 LDB SCAD 4787 # 4796 4797 4798 4799 4800 LEAVE USER 2023 # 2219 4010 LOAD AC BLOCKS 1991 # 2165 7154 7177 LOAD BYTE EA 1982 # 4705 4724 4772 5924 5936 6855 LOAD DST EA 1985 # 6892 6894 6903 LOAD FE 1865 # 2381 2399 2414 2968 2971 2975 2985 2987 3003 3006 3009 3014 3026 3041 3087 4705 4709 4721 4814 4819 4821 4823 4826 4889 4902 4905 4906 4908 4910 5294 5322 5331 5333 5353 5359 5360 5374 5396 5400 5402 5403 5417 5486 5490 5492 5498 5506 5508 5509 5510 5529 5534 5575 5590 5592 5656 5673 5684 5707 5733 5747 5754 5757 5769 5786 5791 5793 5814 5839 5847 5985 5986 5988 6154 6525 6526 6532 6656 6657 6658 6659 6856 6859 6878 6896 LOAD FLAGS 2027 # 2220 3559 3563 3621 4009 7495 7510 8795 LOAD IND EA 1983 # 2343 LOAD INST 1980 # 2272 3657 6989 7902 LOAD INST EA 1981 # 3552 3576 3591 7699 LOAD IR 1976 # 5923 LOAD PAGE TABLE 1990 # 7412 8573 LOAD PCU 2021 # 4011 LOAD PI 1994 # 3610 7398 7473 7955 LOAD PXCT 1988 # 3662 LOAD SC 1864 # 2177 2187 2380 2399 2414 2430 2991 2993 3069 3070 3071 3073 3077 3087 3096 3099 3103 3110 3141 3142 3143 3145 3149 4124 4152 4189 4209 4229 4255 4267 4273 4281 4291 4299 4342 4439 4447 4554 4557 4597 4943 4946 4959 4965 4970 4983 4999 5044 5059 5065 5288 5292 5293 5302 5304 5326 5373 5407 5410 5415 5433 5434 5435 5437 5440 5444 5554 5564 5574 5608 5611 5618 5633 5636 5644 5648 5651 5661 5667 5722 5723 6299 6328 6467 6469 6472 6476 6478 6649 6655 6661 6666 6673 7160 7163 7181 7183 7212 7214 7222 7228 7231 7422 7435 7442 7630 7637 7662 7668 7716 7723 7732 7736 8297 8300 8348 8362 8365 8396 8399 8536 8542 LOAD SRC EA 1984 # LOAD VMA 1787 # 2163 2182 2186 2230 2230 2231 2233 2234 2234 2252 2278 2293 2299 2305 2309 2332 2336 2345 2365 2407 2417 2420 2432 2786 2790 2791 3022 3328 3328 3340 3455 3455 3456 3459 3460 3460 3527 3528 3529 3534 3538 3541 3554 3567 3570 3596 3611 3617 3632 3634 3634 3643 3683 3710 3720 3732 3737 3753 3816 3847 3959 3960 3960 3969 3970 3970 3984 3984 4003 4004 4031 4031 4040 4047 4048 4223 4223 4698 4698 4707 4754 4758 4762 4766 5099 5127 5135 5149 5150 5154 5155 5172 5173 5931 5933 5934 5957 6105 6354 6381 6426 6432 6439 6455 6460 6516 6594 6636 6751 6898 6899 6900 6901 6977 6985 7118 7223 7314 7339 7344 7344 7387 7387 7405 7411 7474 7489 7489 7489 7490 7531 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 286 ; Cross Reference Listing 7531 7539 7620 7655 7658 7658 7680 7702 7761 7858 7866 7876 7879 7879 7882 7882 7893 7949 7965 7965 7968 7968 7975 7975 7978 7978 7981 7981 7984 7984 7987 7987 7994 8280 8328 8329 8329 8336 8337 8337 8341 8343 8421 8423 8565 8581 8662 8664 8696 8697 8711 8713 8779 8785 8833 8834 8834 8870 8870 8873 8873 LSH 1964 # LSHC 1967 # 3073 3077 4586 4589 LUUO 2085 # 5885 5887 5889 5891 5893 5895 5897 5899 5901 MEM CYCLE 1784 # 2163 2182 2186 2230 2230 2230 2231 2231 2233 2233 2234 2234 2234 2252 2253 2270 2278 2293 2293 2299 2299 2304 2305 2309 2310 2332 2333 2336 2337 2341 2345 2354 2363 2365 2366 2367 2395 2406 2407 2407 2417 2418 2420 2421 2425 2432 2432 2496 2528 2534 2539 2542 2591 2592 2786 2787 2789 2790 2791 2793 3022 3022 3328 3328 3328 3340 3340 3407 3408 3455 3455 3455 3456 3456 3459 3459 3460 3460 3460 3527 3527 3528 3528 3529 3529 3534 3534 3538 3538 3541 3541 3550 3554 3554 3567 3568 3570 3571 3574 3589 3596 3596 3611 3615 3617 3618 3619 3632 3632 3634 3634 3635 3638 3643 3643 3679 3683 3684 3696 3702 3710 3711 3720 3721 3724 3732 3734 3737 3739 3741 3747 3753 3755 3761 3816 3817 3818 3830 3847 3848 3849 3959 3960 3960 3969 3970 3970 3971 3973 3979 3984 3984 3984 4003 4004 4005 4006 4018 4022 4031 4031 4031 4040 4041 4045 4047 4048 4049 4223 4223 4223 4698 4698 4698 4707 4707 4735 4741 4742 4754 4755 4758 4759 4762 4763 4766 4767 4769 4775 4896 4897 5099 5100 5127 5128 5135 5136 5138 5149 5150 5152 5154 5155 5157 5161 5164 5172 5173 5175 5917 5931 5933 5933 5934 5934 5936 5957 5958 6105 6105 6354 6355 6356 6381 6382 6426 6432 6439 6455 6455 6460 6460 6516 6516 6548 6550 6594 6594 6596 6599 6627 6636 6636 6751 6752 6898 6898 6899 6899 6900 6900 6901 6901 6903 6917 6973 6976 6977 6981 6984 6985 6988 7118 7119 7120 7223 7223 7255 7256 7259 7260 7263 7264 7267 7268 7271 7272 7311 7312 7314 7315 7339 7340 7343 7344 7344 7344 7345 7351 7352 7387 7387 7387 7405 7405 7406 7411 7474 7478 7489 7489 7489 7490 7490 7505 7526 7531 7531 7532 7539 7540 7620 7622 7655 7656 7658 7658 7658 7680 7681 7702 7702 7703 7748 7751 7753 7761 7763 7765 7858 7859 7861 7866 7867 7876 7879 7879 7881 7882 7882 7882 7893 7894 7900 7949 7965 7965 7966 7967 7968 7968 7968 7969 7970 7973 7974 7975 7975 7975 7976 7977 7978 7978 7978 7979 7980 7981 7981 7981 7982 7983 7984 7984 7984 7985 7986 7987 7987 7987 7988 7989 7991 7994 8280 8328 8329 8329 8336 8337 8337 8341 8342 8343 8344 8389 8421 8422 8423 8426 8518 8565 8581 8662 8663 8664 8666 8696 8697 8698 8711 8712 8713 8718 8779 8785 8833 8834 8834 8835 8849 8864 8866 8870 8870 8873 8873 8873 MEM READ 1812 # 2270 2341 2354 2363 2367 2395 2406 2425 3550 3574 3589 3615 3619 3679 3724 3761 3849 4006 4769 4775 5161 5917 5936 6356 6599 6627 6903 6917 6973 6981 6988 7120 7256 7260 7264 7268 7272 7312 7352 7478 7490 7526 7532 7622 7703 7748 7751 7753 7861 7900 8344 8426 8666 8718 MEM WAIT 1811 # 2270 2341 2354 2363 2367 2395 2406 2425 2496 2528 2534 2539 2542 2592 2789 3408 3550 3574 3589 3615 3619 3679 3696 3702 3724 3741 3747 3761 3818 3849 3971 3973 3979 4006 4018 4022 4045 4742 4769 4775 4897 5138 5161 5164 5917 5936 6356 6550 6596 6599 6627 6903 6917 6973 6981 6988 7120 7256 7260 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 287 ; Cross Reference Listing 7264 7268 7272 7312 7343 7345 7352 7406 7478 7490 7526 7532 7622 7656 7703 7748 7751 7753 7763 7765 7861 7881 7900 7966 7967 7969 7970 7973 7974 7976 7977 7979 7980 7982 7983 7985 7986 7988 7989 7991 8344 8426 8666 8718 8835 8849 8864 8866 MEM WRITE 1813 # 2496 2528 2534 2539 2542 2592 2789 3408 3696 3702 3741 3747 3818 3971 3973 3979 4018 4022 4045 4742 4897 5138 5164 6550 6596 7343 7345 7406 7656 7763 7765 7881 7966 7967 7969 7970 7973 7974 7976 7977 7979 7980 7982 7983 7985 7986 7988 7989 7991 8835 8849 8864 8866 MEM_Q 1820 # 5139 5165 6550 MEM_[] 1819 # 2497 2529 2535 2540 2543 2593 2789 3408 3697 3703 3742 3748 3819 3972 3974 3980 4019 4023 4046 4742 4897 6596 7343 7345 7406 7656 7763 7765 7881 7966 7967 7969 7970 7973 7974 7976 7977 7979 7980 7982 7983 7985 7986 7988 7989 7991 8836 8850 8864 8866 MUL DISP 2089 # 4273 4281 4291 4299 5585 5611 5613 5730 MUL FINAL 4251 # 4277 4285 4295 4303 MUL STEP 4250 # 4273 4281 4291 4299 NEXT INST 2069 # 2524 3045 3091 3119 3431 3713 3789 3796 4487 4490 5445 5451 5810 8237 NEXT INST FETCH 2070 # 2230 2231 2233 2234 2294 2300 3328 3340 3455 3456 3459 3460 3527 3528 3554 3596 4223 4698 7387 7658 NEXT [] PHYSICAL WRI 1842 # 3984 4031 7882 7968 7975 7978 7981 7984 7987 8873 NO DIVIDE 2031 # 4344 4379 4410 4496 5003 NORM DISP 2095 # 5305 5334 5411 5486 5488 5498 5502 5504 5506 5507 5510 5532 5683 5737 5738 5748 5750 5770 5780 5782 5787 5788 5815 5844 ONES 1970 # 4825 4828 4901 4904 5988 PAGE FAIL TRAP 2086 # 8360 8380 8448 8458 8478 8603 8640 8645 8669 8733 PI DISP 2094 # PXCT BLT DEST 1796 # 5129 5137 5151 5156 PXCT BLT SRC 1800 # 5101 5174 PXCT BYTE DATA 1798 # 4756 4760 6898 6899 PXCT BYTE PTR EA 1797 # 4764 4768 PXCT DATA 1795 # 2323 2365 2417 2420 2788 2792 3733 3738 PXCT EA 1794 # 2332 2337 3572 PXCT EXTEND EA 1801 # 5933 5934 PXCT STACK WORD 1799 # 3685 3722 3754 Q-[] 1669 # 4433 Q.AND.NOT.[] 1670 # Q_# 1685 # 4978 5022 Q_-1 1677 # Q_-AC[] 1678 # 4615 4620 4625 Q_-Q 1679 # 4403 4480 4521 4522 4539 5487 5489 5491 5493 5776 Q_-[] 1676 # 5712 Q_.NOT.AC[] 1675 # 4619 4624 Q_.NOT.Q 1684 # 5775 Q_0 1686 # 2983 4824 4900 5302 5373 5384 5396 5400 5402 5403 5416 5429 5722 5986 Q_0 XWD [] 1687 # Q_AC 1680 # 4124 4322 Q_AC[] 1681 # 2385 3089 4217 4219 4332 6546 Q_AC[].AND.MASK 1682 # Q_AC[].AND.[] 1683 # 4416 4438 4445 Q_MEM 1830 # 5162 7753 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 288 ; Cross Reference Listing Q_Q*.5 1692 # 4232 4266 4439 5637 5727 Q_Q*2 1693 # Q_Q+.25 1688 # 5588 5735 Q_Q+1 1689 # Q_Q+AC 1691 # 4998 Q_Q+[] 1698 # 4441 4473 5570 5578 5679 5682 Q_Q-1 1690 # 5038 Q_Q-WORK[] 1777 # 4981 Q_Q.AND.# 1695 # 3115 4516 5329 5638 Q_Q.AND.NOT.[] 1697 # 5724 Q_Q.AND.[] 1696 # 4488 4907 Q_Q.OR.# 1694 # 3117 4401 Q_WORK[] 1759 # 5045 6145 Q_[] 1671 # 4150 4189 4209 4229 4443 4469 4969 5326 5561 5573 5633 5648 5661 5667 5717 Q_[]+[] 1673 # 4470 Q_[]-[] 1672 # 5105 Q_[].AND.Q 1699 # 4564 5759 5794 Q_[].AND.[] 1674 # 4391 Q_[].OR.Q 1700 # 5593 RAM_[] 1780 # 2185 2187 READ Q 1710 # 5452 5494 5518 5767 5812 READ XR 1708 # 3558 READ [] 1709 # 2378 2398 2574 2738 2745 2752 2759 3070 3086 3142 3287 3331 3334 3337 3343 3346 3349 3562 3610 3621 3661 3954 3958 3968 4002 4008 4039 4127 4333 4339 4353 4358 4360 4365 4432 4434 4451 4467 4476 4537 4544 4565 4704 4708 4723 4726 4823 4889 4905 5026 5290 5294 5377 5379 5411 5415 5448 5488 5507 5575 5674 5683 5732 5750 5788 5924 5942 5985 6019 6120 6123 6129 6142 6153 6169 6345 6381 6432 6439 6465 6479 6484 6506 6510 6562 6648 6656 6751 6773 6805 6855 6857 6879 7077 7079 7080 7085 7089 7190 7304 7339 7418 7424 7431 7698 7955 7965 8310 8409 8577 8635 8689 8725 8795 8800 RETURN [] 2093 # 2459 2460 3561 3565 4029 4032 4235 4278 4286 4296 4304 4498 4520 4521 4523 4607 4634 4736 4738 4742 4777 4810 4829 4897 5111 5531 5533 5534 5623 5818 5825 5826 5841 6230 6240 6245 6248 6286 6287 6437 6443 6614 6637 6702 6733 6745 6776 6792 6809 6818 6820 6846 6881 6914 6920 6925 6965 7233 7300 7324 7399 7443 7551 7554 7626 7633 7639 7696 7704 7708 7711 7737 7749 7751 7753 7755 7757 7759 7761 7763 7765 7767 7958 7962 7996 8587 8602 8651 8654 8655 8668 8677 8680 8681 8785 8873 ROT 1966 # 3009 3014 ROTC 1969 # 3145 3149 SCAD DISP 2092 # 4697 4702 4716 4792 5288 5431 5433 5986 5988 6039 6849 6891 7723 SC_-1 1909 # SC_-2 1910 # SC_-SHIFT 1873 # SC_-SHIFT-1 1874 # 3070 3142 SC_-SHIFT-2 1875 # SC_0 1908 # 6655 6666 SC_1 1907 # SC_11. 1898 # SC_14. 1897 # ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 289 ; Cross Reference Listing SC_19. 1896 # 2177 SC_2 1906 # 6476 SC_20. 1895 # 6299 SC_22. 1894 # SC_24. 1893 # SC_26. 1892 # 5722 SC_27. 1891 # 5326 5373 SC_28. 1890 # SC_3 1905 # 4959 SC_34. 1889 # 4342 4439 4447 4970 4983 4999 SC_35. 1888 # 4124 4152 4189 4209 4229 5044 5644 5648 5661 5667 5723 SC_36. 1887 # SC_4 1904 # SC_5 1903 # 7630 7662 SC_6 1902 # 5407 5633 6469 7181 7212 7222 7228 SC_7 1901 # 6467 7160 8297 8348 8396 8536 SC_8. 1900 # SC_9. 1899 # 4943 5059 SC_EXP 1880 # 2399 2414 5292 5564 SC_FE 1883 # 2430 5651 SC_FE+S# 1882 # 3096 5433 SC_S# 1884 # 2177 4124 4152 4189 4209 4229 4342 4439 4447 4943 4959 4970 4983 4999 5044 5059 5326 5373 5407 5633 5644 5648 5661 5667 5722 5723 6299 6467 6469 6476 6655 6666 7160 7181 7212 7222 7228 7442 7630 7662 7716 7732 8297 8348 8396 8536 SC_S#-FE 1881 # 3099 5435 SC_SC-1 1869 # 7723 SC_SC-EXP 1876 # SC_SC-EXP-1 1877 # 5288 5554 SC_SC-FE 1879 # SC_SC-FE-1 1878 # 5293 5574 SC_SHIFT 1870 # 3087 5415 SC_SHIFT-1 1871 # 2380 SC_SHIFT-2 1872 # SET APR ENABLES 2000 # 2168 7081 7190 SET AROV 2009 # 4137 4138 4162 4224 5432 SET FL NO DIVIDE 2012 # 5355 5367 5720 SET FOV 2010 # SET FPD 2015 # 4237 4751 6394 SET HALT 1995 # 7884 7950 SET NO DIVIDE 2011 # 4344 4379 4410 4496 5003 5355 5367 5720 SET PDL OV 2018 # 3704 3760 3790 3794 SET P TO 36-S 4678 # 4737 6048 6851 6893 SET TRAP1 2019 # SHIFT 1867 # 2975 2987 3009 3014 SKIP AC REF 2063 # SKIP AD.EQ.0 2047 # 3019 3334 3346 3437 3449 4127 4132 4334 4336 4340 4354 4399 4428 4458 4539 4617 4622 4627 4643 4650 4968 4997 5351 5377 5379 5452 5494 5518 5674 5725 5767 5812 6142 6195 6271 6274 6563 6600 6621 6744 7331 8324 8327 8411 8414 SKIP AD.LE.0 2048 # 3337 3349 3440 3452 4393 5027 5371 5695 6342 7297 7954 SKIP ADL.EQ.0 2059 # 2190 3992 3997 5394 5399 5513 5678 5681 5749 5752 5755 5758 5818 5918 5961 6100 6102 6184 6204 6388 6404 6458 6493 6496 6528 6992 7128 7142 7188 7197 7492 7493 7684 7686 7700 8284 8306 8350 8357 8360 8375 8380 8429 8448 8452 8458 8472 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 290 ; Cross Reference Listing 8476 8478 8498 8551 8570 8572 8599 8603 8637 8640 8642 8645 8648 8669 8679 8733 8751 8792 8841 SKIP ADL.LE.0 2050 # 7693 SKIP ADR.EQ.0 2060 # 3088 3594 3609 5125 6329 6402 6757 7034 7040 7067 7069 7072 7074 7076 7367 7369 7373 7375 7377 7379 7381 7383 7480 7533 7553 7625 7652 8235 8503 8531 8720 8737 8740 8745 SKIP CRY0 2055 # 3687 3730 3759 5363 5487 5489 5491 5493 SKIP CRY1 2056 # 4090 4102 5803 6219 6225 6238 6429 6440 SKIP CRY2 2057 # 5776 5836 SKIP DP0 2045 # 2400 2415 2574 2752 2759 3042 3114 3331 3343 3434 3446 3776 3779 3784 3955 4109 4134 4156 4159 4214 4222 4323 4359 4361 4366 4371 4375 4397 4414 4426 4433 4448 4467 4485 4537 4544 4559 5000 5144 5168 5290 5294 5323 5353 5361 5395 5417 5448 5555 5657 5704 5708 5719 5732 5969 5982 5999 6012 6019 6037 6079 6081 6103 6120 6123 6129 6169 6261 6266 6303 6312 6345 6362 6434 6484 6510 6701 6731 6773 6827 6946 7122 7286 8311 8409 8636 8690 SKIP DP18 2046 # 2379 2738 2745 5942 6189 6393 6482 6805 6806 7519 8693 8703 8726 SKIP EXECUTE 2064 # 7888 SKIP FPD 2052 # 4176 4697 4702 4716 6293 SKIP IF AC0 2044 # 2486 3390 4694 SKIP IO LEGAL 2054 # 2436 3539 3542 SKIP IRPT 2061 # 5148 6039 8248 8443 8665 8773 8804 8855 SKIP JFCL 2058 # 3601 SKIP KERNEL 2053 # 3532 3536 3537 3544 3653 6971 SKIP -1MS 2062 # 6034 SKIP-COMP DISP 2080 # 3372 3391 3392 6118 SPEC MEM READ 1814 # 2412 SPEC MEM WRITE 1815 # START NO TEST WRITE 1807 # 8389 8518 START READ 1805 # 2230 2231 2233 2234 2253 2293 2299 2304 2310 2333 2337 2366 2407 2418 2421 2432 3022 3328 3340 3455 3456 3459 3460 3527 3528 3529 3534 3538 3541 3554 3568 3571 3596 3618 3638 3711 3721 3755 3848 4005 4049 4223 4698 4707 4755 4759 4763 4767 5100 5175 5933 5934 5958 6105 6355 6382 6455 6460 6516 6636 6752 6898 6899 6900 6901 6976 6984 7119 7255 7259 7263 7267 7271 7311 7315 7351 7387 7540 7658 7681 7702 7859 7894 8342 8422 8663 8698 8712 START WRITE 1806 # 2591 2787 2793 3407 3632 3635 3643 3684 3734 3739 3817 3830 3984 4031 4041 4735 4741 4896 5128 5136 5152 5157 6548 6594 7223 7340 7344 7405 7505 7867 7882 7968 7975 7978 7981 7984 7987 8873 STATE_[] 2036 # 5111 5977 6003 6006 6028 6076 6082 6090 6121 6128 6147 6175 6357 6384 6508 6565 6569 6629 8236 8810 8812 8814 8816 8818 8820 8824 STEP SC 1866 # 2187 2991 2993 3069 3071 3073 3077 3103 3110 3141 3143 3145 3149 4255 4267 4273 4281 4291 4299 4554 4557 4597 4946 4965 5065 5302 5304 5410 5434 5437 5440 5444 5608 5611 5618 5636 6328 6472 6478 6673 7163 7183 7214 7231 7422 7435 7637 7668 7736 8300 8362 8365 8399 8542 SWEEP 1992 # 7430 7431 7434 TAKE INTERRUPT 2087 # 8832 TEST DISP 2079 # 3273 3279 7568 TL [] 1714 # 3992 3997 5513 5678 5681 5749 5752 5755 5758 5818 5918 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 291 ; Cross Reference Listing 5961 6100 6102 6184 6204 6388 6404 6458 6493 6496 7684 7686 7700 8284 8306 8350 8357 8360 8375 8380 8429 8448 8452 8458 8472 8476 8478 8498 8551 8570 8572 8599 8603 8637 8640 8642 8645 8648 8669 8679 8733 8751 8792 8841 TR [] 1713 # 3594 3609 6329 6402 6757 7067 7069 7072 7074 7076 7367 7369 7373 7375 7377 7379 7381 7383 7625 7652 8235 8503 8531 8720 8737 8740 8745 TURN OFF PXCT 1989 # 2242 2245 2248 2260 2263 2266 2280 TXXX TEST 2065 # 3287 UNHALT 1999 # 7887 UPDATE USER 2022 # 3560 3564 3622 UUO 2084 # 2437 3531 3540 3543 3545 3546 3547 3580 3585 3588 3608 3629 3642 3924 3926 3928 3930 3932 3934 3936 3938 6913 6996 7005 7006 7007 7011 7012 7013 7014 7019 7020 7021 7024 7025 7026 7027 7028 7029 7030 7031 7252 7275 7370 7829 7833 7838 7840 7842 7844 7846 7848 VMA 1854 # VMA EXTENDED 1792 # VMA PHYSICAL 1789 # 3960 3970 3984 4004 4031 6977 6985 7489 7531 7879 7882 7965 7968 7975 7978 7981 7984 7987 8329 8337 8343 8423 8664 8697 8713 8834 8870 8873 VMA PHYSICAL READ 1791 # 7489 7531 8329 8337 8870 VMA PHYSICAL WRITE 1790 # 3960 3970 7879 7965 8834 VMA_[] 1834 # 2230 2234 2252 2309 2336 2345 2432 2790 3328 3455 3460 3534 3570 3632 3643 3732 3737 3816 3847 4223 4698 4707 4758 4766 5099 5127 5135 5934 6460 6516 6594 6636 6899 6901 7118 7223 7387 7405 7411 7489 7658 7702 7858 7866 7893 7994 8341 8565 8581 8662 8833 VMA_[] WITH FLAGS 1835 # 7761 VMA_[]+1 1837 # 2231 2233 2278 2365 3340 3634 4047 5149 5154 5172 6105 6455 7314 7344 VMA_[]+XR 1839 # 4754 4762 6898 6900 VMA_[]+[] 1840 # 8328 8336 8421 VMA_[]-1 1838 # 3529 3538 3541 7680 VMA_[].OR.[] WITH FL 1836 # 7620 7655 WORK[] 1855 # 6137 6359 6558 6625 6703 6734 6737 WORK[]_.NOT.[] 1765 # 6179 WORK[]_0 1760 # 2179 7438 7439 WORK[]_1 1761 # 2178 WORK[]_Q 1758 # 4977 6109 6148 WORK[]_[] 1762 # 2162 2170 2172 2173 4695 4954 4967 4987 5019 5927 5940 5943 5973 6035 6061 6062 6063 6078 6125 6161 6300 6302 6364 6377 6383 6582 6730 6919 6970 7082 7191 7257 7261 7265 7269 7273 7288 7299 7320 7323 7353 7354 7721 7727 7729 7874 7946 7961 7971 8233 8243 8244 8246 8247 8254 8264 8266 8268 8270 8274 8275 8416 8418 8439 8764 WORK[]_[] CLR LH 1763 # 3665 7687 WORK[]_[]-1 1764 # 6358 WORK[]_[].AND.[] 1766 # 5990 WRITE TEST 1804 # 2591 2787 2793 3407 3632 3635 3643 3684 3734 3739 3817 3830 3984 4031 4041 4735 4741 4896 5128 5136 5152 5157 6548 6594 7223 7255 7259 7263 7267 7271 7340 7344 7405 7505 7867 7882 7968 7975 7978 7981 7984 7987 8873 XR 1853 # [] LEFT_-1 1655 # 2742 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 292 ; Cross Reference Listing [] LEFT_0 1653 # 2740 [] RIGHT_-1 1656 # 2763 [] RIGHT_0 1654 # 2761 []+[] 1520 # 2785 4234 4374 []-# 1522 # 6188 6481 8691 8701 []-[] 1521 # 4370 4426 4427 5124 5142 5166 5363 5371 5719 6103 [].AND.# 1523 # 5394 5398 6527 6990 7140 7188 7197 [].AND.NOT.WORK[] 1767 # [].AND.NOT.[] 1526 # 4131 [].AND.Q 1524 # 4398 [].AND.WORK[] 1768 # 6743 [].AND.[] 1525 # 4159 7034 7040 7553 [].OR.[] 1527 # [].XOR.# 1528 # 2190 7492 7493 [].XOR.[] 1529 # 7330 []_# 1531 # 2151 2155 2180 2181 2221 2747 2749 2754 2756 4543 4951 4974 4984 4988 5017 5060 5111 5945 5977 6003 6006 6028 6076 6082 6090 6121 6128 6147 6175 6357 6384 6508 6565 6569 6629 7046 7048 7414 7416 7427 7429 7508 7550 8236 8810 8812 8814 8816 8818 8820 8824 []_#-[] 1530 # []_(#-[])*2 1617 # 5055 []_(-[])*.5 1618 # []_(-[]-.25)*.5 LONG 1619 # 4404 5713 []_(-[]-.25)*2 LONG 1620 # 4481 []_(AC[].AND.[])*.5 1615 # 4180 4182 5552 5643 5698 []_(MEM.AND.[])*.5 1829 # 2426 []_(Q+1)*.5 1616 # 5835 []_([]+#)*2 1630 # []_([]+1)*2 1631 # 6647 []_([]+[])*.5 LONG 1632 # 5582 []_([]+[])*2 LONG 1633 # 4588 []_([]+[]+.25)*.5 LO 1636 # []_([]-[])*.5 LONG 1634 # []_([]-[])*2 LONG 1635 # 4585 []_([].AND.#)*.5 1622 # 4948 4955 7534 []_([].AND.#)*2 1623 # []_([].AND.NOT.#)*.5 1624 # []_([].AND.NOT.#)*2 1625 # []_([].AND.[])*.5 1626 # 4174 []_([].AND.[])*2 1627 # []_([].OR.#)*.5 1628 # []_([].OR.#)*2 1629 # []_+SIGN 1659 # 2424 2459 5295 5299 5324 5357 5418 []_+SIGN*.5 1664 # 5556 5658 5709 []_-1 1532 # 4326 6394 7396 []_-2 1533 # []_-AC 1548 # 4630 []_-AC[] 1549 # 6273 []_-Q 1534 # []_-Q*.5 1536 # 5382 []_-Q*2 1535 # 4454 []_-SIGN 1660 # 2422 2460 5296 5300 5325 5358 5419 []_-SIGN*.5 1665 # 5558 5659 5711 []_-WORK[] 1775 # 6001 6944 6958 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 293 ; Cross Reference Listing []_-[] 1537 # 2579 2949 4523 4541 4548 4642 4646 4650 4652 5285 5360 5395 5504 5520 5549 5701 5781 5802 6270 []_-[]*2 1539 # 5364 []_-[]-.25 1538 # 5550 []_.NOT.AC[] 1541 # 6272 []_.NOT.AC 1540 # 2898 2908 4629 []_.NOT.Q 1542 # 4914 5989 []_.NOT.WORK[] 1774 # 6018 6046 6050 6186 6190 6962 []_.NOT.[] 1543 # 2841 2878 2919 2929 3290 4096 4540 4644 4651 5454 5502 5517 5519 5700 5710 5779 5970 5972 6524 7683 8678 []_0 1544 # 2163 2165 2168 2177 2196 2218 2402 2806 3273 3975 4228 4324 4538 4818 4960 5103 5145 5169 5521 5694 5761 5777 5805 6022 6094 6106 6117 6146 6267 6305 6339 6395 6399 6403 6406 6461 6733 7158 7170 7216 7293 7368 7413 7481 7710 7755 7879 8547 8804 8822 8823 8854 []_0 XWD [] 1546 # 2157 2160 2204 2240 2244 2247 2259 2262 2265 3948 3988 4036 4400 4411 5885 5887 5889 5891 5893 5895 5897 5899 5901 6597 7284 7463 7464 7465 7466 7467 7468 7469 []_0*.5 LONG 1545 # 4254 []_AC[] 1563 # 2183 2373 2783 5960 5978 5981 6011 6027 6099 6119 6151 6166 6194 6197 6199 6216 6257 6259 6260 6292 6298 6325 6337 6372 6515 6556 6593 6595 6699 6812 6819 6845 6847 6874 6931 6939 6945 []_AC[]*.5 1565 # 4194 []_AC[]*2 1564 # 6206 []_AC[]-1 1560 # 6366 6385 []_AC[]-[] 1559 # 4101 []_AC[].AND.[] 1561 # []_AC 1547 # 2359 2372 2590 2691 2693 2724 2730 2967 2984 3475 3719 3752 3774 3832 3845 4152 4331 4722 5118 5288 5321 5353 5417 5563 5963 6101 6163 6297 6299 6320 6457 7582 7869 []_AC*.5 1550 # 2990 3002 3005 4199 4414 5553 5655 5706 []_AC*.5 LONG 1551 # 2386 3092 []_AC*2 1552 # 4718 []_AC+1 1553 # 3489 []_AC+1000001 1554 # 3511 3681 []_AC+[] 1555 # 5109 []_AC-1 1556 # 3503 []_AC-[] 1557 # 3372 4076 4106 []_AC-[]-.25 1558 # 4103 []_AC.AND.MASK 1562 # 2970 3018 []_APR 1566 # 7008 7009 7071 7103 7302 []_CURRENT AC [] 1567 # []_EA 1570 # 2322 []_EA FROM [] 1568 # 5931 []_EXP 1571 # 5495 5511 5841 []_FE 1572 # 3043 6660 []_FLAGS 1573 # 3630 3644 3965 3991 7494 8844 []_IO DATA 1824 # 7479 7527 7623 8256 []_MEM 1825 # 2271 2341 2355 2364 2368 2396 2413 3551 3575 3590 3615 3619 3680 3725 3761 3850 4007 4770 5917 5936 6356 6599 6627 6903 6918 6988 7121 7256 7260 7264 7268 7272 7313 7352 7490 7532 7703 7748 7751 7862 7901 8345 8427 8667 8719 []_MEM THEN FETCH 1826 # 2407 []_MEM*.5 1827 # ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 294 ; Cross Reference Listing []_MEM.AND.MASK 1828 # 4776 []_P 1574 # 6530 6676 []_PC WITH FLAGS 1575 # 3691 3808 3814 4020 4221 6969 7506 8848 []_Q 1576 # 4129 4137 4357 4412 4429 4435 4444 5612 5619 5639 5662 5721 5723 []_Q*.5 1577 # 4192 5376 5381 5651 []_Q*2 1578 # []_Q*2 LONG 1579 # 4440 4450 []_Q+1 1580 # 5106 []_RAM 1581 # []_TIME 1582 # 7327 7328 7329 []_VMA 1583 # 7717 7960 8230 8245 8765 []_VMA FLAGS 1845 # 7475 7522 7614 7617 7653 7664 7670 7896 []_VMA IO READ 1846 # 7475 7522 7614 7617 7896 []_VMA IO WRITE 1847 # 7653 7664 7670 []_WORK[] 1773 # 4972 4982 5181 6065 6066 6067 6068 6132 6343 6353 6386 6387 6408 6584 6620 6697 6817 6828 6935 7060 7094 7186 7243 7245 7247 7249 7251 7281 7290 7295 7301 7333 7337 7358 7690 7695 7948 7953 7957 7972 7990 7992 7993 7995 8234 8323 8326 8410 8413 8491 8493 8538 8578 8579 8580 8586 8775 8781 8790 8794 8806 []_WORK[]+1 1776 # 5997 6030 6085 6183 6361 6824 6830 []_XR 1584 # 7693 []_[] 1585 # 2297 3021 3456 3459 3527 3528 3554 3581 3596 3655 3709 3829 3834 4123 4151 4175 4191 4321 4330 4345 4351 4380 4735 5043 5291 5292 5293 5331 5351 5359 5568 5569 5576 5577 5650 5692 5695 5737 5738 5979 5999 6045 6080 6340 6351 6359 6426 6526 6759 6850 6873 6892 6949 7015 7016 7196 7233 7332 7364 7510 7592 7594 7601 7626 8296 8384 8535 8559 8856 []_[] SWAP 1586 # 2391 2571 2718 2720 2723 2726 2729 2732 3271 3276 3595 3772 3831 3846 3964 4816 4942 4958 5058 5098 5107 5180 6405 6462 6467 6468 6762 7095 7372 7385 7395 8437 8728 []_[] XWD 0 1587 # 6160 6275 7743 8260 8262 8276 []_[]*.5 1588 # 2154 2428 2429 2986 3007 3008 3012 3095 3098 4173 4230 4392 4420 4551 4552 4553 4559 4820 4896 4945 4964 5366 5374 5441 5490 5492 5508 5509 5528 5529 5534 5644 5677 5846 6469 6472 6476 6478 6558 6666 6673 6736 7212 7214 7222 7228 7231 7537 7555 7630 7636 8299 8315 []_[]*.5 LONG 1589 # 2387 3073 3101 3145 4125 4153 4232 4253 4266 4394 4396 4408 4424 4439 4446 4498 4546 5046 5304 5327 5332 5407 5409 5439 5607 5610 5618 5621 5623 5637 5672 5727 5753 5756 5790 5792 5838 []_[]*2 1590 # 2152 2974 2997 3010 3013 3040 4128 4155 4211 5064 5361 5369 5444 6207 6753 7162 7181 7183 7482 7518 7662 7668 7759 8361 8364 8398 8541 []_[]*2 LONG 1591 # 2993 3074 3077 3078 3079 3104 3108 3111 3146 3149 3150 4478 4558 4561 4563 4909 5486 5498 5506 5510 5584 5589 5591 5603 5605 5606 5635 5676 5680 5729 5746 5768 5785 5813 []_[]*4 1592 # 6463 []_[]+# 1593 # 3727 3756 6422 6431 7483 7528 8331 8339 8705 8715 8829 []_[]+.25 1594 # 5842 []_[]+0 1595 # []_[]+1 1596 # 2182 2186 2416 2419 3406 3616 3637 4741 5147 5171 5453 5956 6057 6075 6104 6247 6315 6327 6334 6354 6375 6389 6444 6507 6531 6625 6852 6894 7291 7757 8808 8869 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 295 ; Cross Reference Listing []_[]+1000001 1597 # 3820 3837 5121 []_[]+AC 1598 # 4062 4092 []_[]+AC[] 1599 # 4089 6208 6218 6221 []_[]+Q 1600 # 4452 []_[]+RAM 1601 # 6438 6440 []_[]+WORK[] 1769 # 5040 6379 6559 6635 6742 6750 7334 7707 7709 8353 8355 8432 8597 []_[]+XR 1602 # 2291 2303 2318 2331 3566 5930 5933 7701 []_[]+[] 1603 # 3950 3990 4205 4471 4474 4562 5305 5449 5532 5663 6020 6052 6224 6235 6237 6674 6956 6972 6980 7285 7485 7520 7530 7538 8695 8710 []_[]+[]+.25 1604 # []_[]-# 1605 # []_[]-1 1606 # 3422 6036 6140 6141 6252 6393 6430 6823 8798 8858 []_[]-1000001 1607 # []_[]-AC 1608 # []_[]-RAM 1609 # 6428 6433 []_[]-WORK[] 1778 # []_[]-[] 1610 # 6015 6341 6952 7296 7420 7433 []_[]-[] REV 1611 # 6139 []_[].AND.AC 1637 # 2816 2939 3278 3301 7568 []_[].AND.NOT.# 1638 # 3623 4027 5826 6410 6778 6794 7061 7087 7199 7380 8510 8560 8735 []_[].AND.NOT.AC 1640 # 2826 7598 []_[].AND.NOT.WORK[] 1771 # []_[].AND.NOT.[] 1639 # 5587 7070 7073 7374 7384 7554 []_[].AND.Q 1641 # 4157 4829 4916 []_[].AND.WORK[] 1770 # 6138 8601 []_[].AND.[] 1642 # 4915 5514 5796 5798 6136 7397 8633 []_[].AND.# 1612 # 2424 2437 2459 3531 3540 3543 3545 3546 3547 3580 3585 3588 3608 3629 3642 3924 3926 3928 3930 3932 3934 3936 3938 3944 4042 4110 5067 5295 5299 5324 5357 5418 6171 6294 6470 6473 6512 6643 6677 6680 6913 6923 6996 7005 7006 7007 7011 7012 7013 7014 7019 7020 7021 7024 7025 7026 7027 7028 7029 7030 7031 7063 7065 7097 7100 7125 7132 7136 7147 7166 7187 7215 7221 7227 7232 7252 7275 7317 7370 7371 7632 7638 7829 7833 7838 7840 7842 7844 7846 7848 8231 8288 8444 8544 8554 8767 []_[].AND.# CLR LH 1613 # 3044 6585 6623 6663 6808 7033 7036 7104 7471 8302 8381 8441 8459 8567 []_[].AND.# CLR RH 1614 # 5920 5964 6164 []_[].EQV.AC 1643 # 2888 []_[].EQV.Q 1644 # 4135 4138 4160 4161 []_[].OR.# 1645 # 2153 2422 2460 3994 3999 4111 4464 4549 5296 5300 5325 5358 5419 5614 5615 5622 5825 6176 6263 6307 6316 6321 6331 6602 6606 6608 6669 6782 6786 6790 6798 6814 7189 7198 7303 7378 7456 7457 7458 7459 7460 7461 7462 7897 8227 8281 8285 8470 8473 8499 8506 8548 8552 8569 8571 8575 8631 8738 8742 8747 8754 8759 8832 []_[].OR.AC 1646 # 2868 3296 7596 []_[].OR.FLAGS 1647 # []_[].OR.WORK[] 1772 # 6950 6959 8386 8481 []_[].OR.[] 1648 # 2909 4097 4917 5922 6021 6251 6682 7064 7068 7075 7106 7151 7173 7175 7376 7382 7524 8556 8770 []_[].XOR.AC 1650 # 2858 3293 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 296 ; Cross Reference Listing []_[].XOR.[] 1651 # 5800 []_[].XOR.# 1649 # 4418 8294 .NOT.[] 1519 # 4335 7398 7473 2T 1857 # 4414 4427 5294 5564 6138 6208 6272 6560 6697 6742 7337 7694 3T 1858 # 2190 2415 2425 2580 3113 3287 3372 3406 3422 3512 3602 3686 3721 3729 3754 3758 3775 3780 3785 3822 3838 4063 4077 4180 4182 4201 4235 4372 4376 4426 4432 4433 4434 4451 4455 4476 4484 4565 4630 4647 4705 4720 4791 4809 4905 4949 4956 5036 5052 5056 5122 5124 5143 5167 5288 5322 5363 5394 5395 5398 5430 5433 5487 5489 5491 5493 5552 5553 5556 5558 5657 5658 5659 5703 5707 5709 5711 5719 5802 5808 5968 5986 5988 6036 6040 6103 6210 6224 6238 6270 6273 6358 6361 6393 6394 6422 6428 6431 6440 6465 6479 6506 6526 6527 6649 6656 6700 6759 6849 6856 6877 6891 6895 6898 6900 6936 6991 7121 7128 7141 7188 7197 7454 7479 7483 7491 7492 7493 7528 7532 7534 7701 8331 8339 8565 8582 8705 8716 8800 8830 4T 1859 # 3018 3489 3503 4089 4094 4101 4104 4106 4996 5001 5982 6012 6189 6194 6219 6260 6433 6481 6621 6744 6945 7954 8251 8324 8327 8411 8414 8693 8703 5T 1860 # 7255 7259 7263 7267 7271 7723 7740 7-BIT DPB 4886 # 4890 4891 4892 4893 4894 7-BIT LDB 4788 # 4796 4797 4798 4799 4800 (D) MACRO% AC 2126 # 2549 2550 2554 2555 2559 2560 2564 2565 2586 2602 2603 2607 2608 2612 2613 2617 2618 2622 2623 2627 2628 2632 2633 2637 2638 2644 2645 2649 2650 2654 2655 2659 2660 2664 2665 2669 2670 2674 2675 2679 2680 2769 2799 2800 2809 2810 2819 2820 2829 2830 2834 2835 2851 2852 2861 2862 2871 2872 2881 2882 2891 2892 2901 2902 2912 2913 2922 2923 2932 2933 2942 2943 4055 4056 4069 4070 4117 4118 4687 8223 AC DISP 2140 # 3518 7001 7002 7238 B 2128 # 2802 2812 2822 2832 2837 2854 2864 2874 2884 2894 2904 2915 2925 2935 2945 4058 4072 4120 DAC 2130 # 2768 4084 4085 4142 4143 4168 4309 4310 4314 4315 4386 5628 5689 DBL AC 2115 # 2777 DBL B 2131 # 4145 4312 4317 DBL FL-R 2121 # 5539 5540 5628 5689 DBL R 2114 # 2768 2769 4084 4085 4168 4386 FL-AC 2132 # 5265 5268 5269 5273 5276 5277 5310 5314 5315 5339 5343 5344 5389 5390 5424 5425 FL-BOTH 2134 # 5267 5271 5275 5279 5312 5317 5341 5346 FL-I 2120 # 5269 5277 5315 5344 FL-MEM 2133 # 5266 5270 5274 5278 5311 5316 5340 5345 FL-R 2118 # 5265 5268 5273 5276 5310 5314 5339 5343 5424 5425 FL-RW 2119 # 5266 5267 5270 5271 5274 5275 5278 5279 5311 5312 5316 5317 5340 5341 5345 5346 I 2106 # 2845 2957 3177 3178 3179 3180 3181 3182 3183 3184 3186 3187 3195 3196 3197 3198 3199 3200 3201 3202 3213 3214 3215 3216 3217 3218 3219 3220 3230 3231 3232 3233 3234 3235 3236 3237 3352 3353 3354 3355 3356 3357 3358 3359 3464 3465 3466 3467 3468 3469 3470 3471 3479 3480 3481 3482 3483 3484 3485 3493 3494 3495 3496 3497 3498 3499 3506 3507 3518 3520 3671 3673 3674 3801 3802 3803 3804 3857 3858 3859 3860 3861 3862 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 297 ; Cross Reference Listing 3863 3864 3868 3869 3870 3871 3872 3873 3874 3875 3876 3877 3878 3879 3880 3881 3882 3883 3884 3885 3886 3887 3888 3889 3890 3891 3892 3893 3894 3895 3896 3897 3898 3899 3903 3904 3905 3906 3910 3911 3912 3913 3914 3915 3916 3917 3918 3919 3920 5114 5390 5854 5855 5856 5857 5858 5859 5860 5862 5863 5864 5865 5867 5868 5869 5870 5872 5873 5874 5875 5876 5877 5878 5879 5913 7772 7773 7774 7776 7777 7779 7780 7782 7783 7784 7785 7786 7787 7788 7789 7791 7792 7793 7794 7795 7796 7797 7798 7800 7801 7802 7803 7804 7805 7806 7807 7809 7810 7811 7812 7813 7814 7815 7816 7818 7819 7820 7821 7822 7823 7824 7825 I-PF 2107 # 2550 2555 2560 2565 2603 2608 2613 2618 2623 2628 2633 2638 2645 2650 2655 2660 2665 2670 2675 2680 2799 2800 2810 2820 2830 2835 2852 2862 2872 2882 2891 2892 2902 2913 2923 2933 2942 2943 2958 3478 3492 3768 4056 4070 4118 4143 4310 4315 IOT 2122 # 7001 7002 7238 7560 7561 7562 7563 7571 7572 7573 7574 7585 7586 7587 7588 7853 7854 8223 IR 2113 # 3672 IW 2112 # 2801 2802 2893 2894 2944 2945 M 2127 # 2551 2556 2561 2566 2604 2609 2614 2619 2624 2629 2634 2639 2646 2651 2656 2661 2666 2671 2676 2681 2801 2811 2821 2831 2836 2846 2847 2853 2863 2873 2883 2893 2903 2914 2924 2934 2944 4057 4071 4119 4144 4311 4316 7238 R 2108 # 2586 2844 3188 3189 3190 3191 3192 3193 3204 3205 3206 3207 3208 3209 3210 3211 3222 3223 3224 3225 3226 3227 3228 3229 3239 3240 3241 3242 3243 3244 3245 3246 3361 3362 3363 3364 3365 3366 3367 3368 3378 3379 3380 3381 3382 3383 3384 3385 3649 4687 4688 4689 4690 4691 5389 R-PF 2109 # 2549 2554 2559 2564 2602 2607 2612 2617 2622 2627 2632 2637 2644 2649 2654 2659 2664 2669 2674 2679 2809 2819 2829 2834 2851 2861 2871 2881 2901 2912 2922 2932 4055 4069 4117 4142 4309 4314 ROUND 2135 # 5268 5269 5270 5271 5276 5277 5278 5279 5314 5315 5316 5317 5343 5344 5345 5346 5389 5425 RW 2111 # 2552 2557 2562 2567 2604 2605 2609 2610 2615 2620 2625 2630 2635 2640 2646 2647 2651 2652 2657 2662 2667 2672 2677 2682 2811 2812 2821 2822 2831 2832 2836 2837 2853 2854 2863 2864 2873 2874 2883 2884 2903 2904 2914 2915 2924 2925 2934 2935 3395 3396 3397 3398 3399 3400 3401 3402 3411 3412 3413 3414 3415 3416 3417 3418 4057 4058 4071 4072 4119 4120 4144 4145 4311 4312 4316 4317 S 2129 # 2552 2557 2562 2567 2605 2610 2615 2620 2625 2630 2635 2640 2647 2652 2657 2662 2667 2672 2677 2682 SH 2116 # 2954 2955 2956 SHC 2117 # 2959 2960 SJC- 3312 # 3352 3361 3378 3395 3411 3464 3478 3492 SJCA 3316 # 3356 3365 3382 3399 3415 3468 3482 3496 SJCE 3314 # 3354 3363 3380 3397 3413 3466 3480 3494 5855 SJCG 3319 # 3359 3368 3385 3402 3418 3471 3485 3499 5860 SJCGE 3317 # 3357 3366 3383 3400 3416 3469 3483 3497 3506 5858 SJCL 3313 # 3353 3362 3379 3396 3412 3465 3479 3493 3507 5854 SJCLE 3315 # 3355 3364 3381 3398 3414 3467 3481 3495 5856 SJCN 3318 # 3358 3367 3384 3401 3417 3470 3484 3498 5859 TC- 3168 # 3213 3214 3222 3223 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 298 ; Cross Reference Listing TCA 3170 # 3217 3218 3226 3227 TCE 3169 # 3215 3216 3224 3225 TCN 3171 # 3219 3220 3228 3229 TN- 3158 # TNA 3161 # 3181 3182 3190 3191 TNE 3159 # 3179 3180 3188 3189 7562 TNN 3162 # 3183 3184 3192 3193 7563 TO- 3172 # 3230 3231 3239 3240 TOA 3174 # 3234 3235 3243 3244 TOE 3173 # 3232 3233 3241 3242 TON 3175 # 3236 3237 3245 3246 TZ- 3164 # 3195 3196 3204 3205 TZA 3166 # 3199 3200 3208 3209 TZE 3165 # 3197 3198 3206 3207 TZN 3167 # 3201 3202 3210 3211 W 2110 # 2551 2556 2561 2566 2614 2619 2624 2629 2634 2639 2656 2661 2666 2671 2676 2681 2778 2846 2847 W TEST 2139 # 2586 4688 4690 WORD-TNE 3160 # 7560 WORD-TNN 3163 # 7561 (U) MEM 956 # 2163 2182 2186 2230 2230 2230 2231 2231 2233 2233 2234 2234 2234 2252 2253 2270 2278 2293 2293 2299 2299 2304 2305 2309 2310 2323 2332 2333 2336 2337 2341 2345 2354 2363 2365 2366 2367 2395 2406 2407 2407 2417 2418 2420 2421 2425 2432 2432 2496 2528 2534 2539 2542 2571 2577 2591 2592 2691 2693 2726 2732 2740 2742 2761 2763 2786 2787 2789 2790 2791 2793 2806 2816 2826 2858 2868 2888 2898 2909 2919 2949 3022 3022 3328 3328 3328 3340 3340 3407 3408 3455 3455 3455 3456 3456 3459 3459 3460 3460 3460 3527 3527 3528 3528 3529 3529 3534 3534 3538 3538 3541 3541 3550 3554 3554 3567 3568 3570 3571 3574 3589 3596 3596 3611 3615 3617 3618 3619 3632 3632 3634 3634 3635 3638 3643 3643 3679 3683 3684 3696 3702 3710 3711 3720 3721 3724 3732 3734 3737 3739 3741 3747 3753 3755 3761 3816 3817 3818 3830 3847 3848 3849 3959 3960 3960 3960 3969 3970 3970 3970 3971 3973 3979 3984 3984 3984 4003 4004 4005 4006 4018 4022 4031 4031 4031 4040 4041 4045 4047 4048 4049 4063 4077 4129 4135 4158 4160 4223 4223 4223 4698 4698 4698 4707 4707 4735 4741 4742 4754 4755 4758 4759 4762 4763 4766 4767 4769 4775 4896 4897 5099 5100 5127 5128 5135 5136 5138 5149 5150 5152 5154 5155 5157 5161 5164 5172 5173 5175 5449 5453 5499 5521 5917 5931 5933 5933 5934 5934 5936 5957 5958 6105 6105 6354 6355 6356 6381 6382 6426 6432 6439 6455 6455 6460 6460 6516 6516 6548 6550 6594 6594 6596 6599 6627 6636 6636 6751 6752 6898 6898 6899 6899 6900 6900 6901 6901 6903 6917 6973 6976 6977 6981 6984 6985 6988 7118 7119 7120 7223 7223 7255 7256 7259 7260 7263 7264 7267 7268 7271 7272 7311 7312 7314 7315 7339 7340 7343 7344 7344 7344 7345 7351 7352 7387 7387 7387 7405 7405 7406 7411 7474 7478 7489 7489 7489 7489 7490 7490 7505 7526 7531 7531 7531 7532 7539 7540 7620 7620 7622 7655 7655 7656 7658 7658 7658 7680 7681 7702 7702 7703 7748 7751 7753 7761 7761 7763 7765 7858 7859 7861 7866 7867 7876 7879 7879 7879 7881 7882 7882 7882 7893 7894 7900 7949 7965 7965 7965 7966 7967 7968 7968 7968 7969 7970 7973 7974 7975 7975 7975 7976 7977 7978 7978 7978 7979 7980 7981 7981 7981 7982 7983 7984 7984 7984 7985 7986 7987 7987 7987 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 299 ; Cross Reference Listing 7988 7989 7991 7994 8280 8328 8329 8329 8329 8336 8337 8337 8337 8341 8342 8343 8344 8389 8421 8422 8423 8426 8518 8557 8565 8581 8662 8663 8664 8666 8696 8697 8698 8711 8712 8713 8718 8779 8785 8833 8834 8834 8834 8835 8849 8857 8864 8866 8870 8870 8870 8873 8873 8873 (U) MICROCODE OPTION(INH@ 1236 # OPT 1240 # 7049 (U) MICROCODE OPTION(KIP@ 1260 # OPT 1262 # 7053 (U) MICROCODE OPTION(KLP` 1266 # OPT 1268 # 7054 (U) MICROCODE OPTION(NOC` 1242 # OPT 1246 # 7050 (U) MICROCODE OPTION(NON 1248 # OPT 1252 # 7051 (U) MICROCODE OPTION(UBA  1254 # OPT 1258 # 7052 (U) MICROCODE OPTIONS 1229 # (U) MICROCODE RELEASE(MA 1276 # UCR 1277 # 7041 (U) MICROCODE RELEASE(MI` 1279 # UCR 1280 # 7042 (U) MICROCODE VERSION 1273 # UCV 1274 # 7055 (D) MODE 1340 # (U) MULTI PREC 961 # 4405 4457 4472 4475 4482 4596 5550 5583 5703 5714 (U) MULTI SHIFT 963 # 2975 2987 3009 3014 4822 4827 4903 4911 (U) PHYSICAL 1130 # 3960 3970 3984 4004 4031 6977 6985 7417 7418 7421 7430 7431 7434 7475 7489 7522 7531 7614 7617 7653 7664 7670 7879 7882 7896 7965 7968 7975 7978 7981 7984 7987 8329 8337 8343 8423 8664 8697 8713 8834 8870 8873 (U) PI.CLR 1189 # 7367 (U) PI.CO1 1178 # (U) PI.CO2 1179 # (U) PI.DIR 1188 # 7373 (U) PI.IP1 1170 # 7550 (U) PI.IP2 1171 # (U) PI.IP3 1172 # (U) PI.IP4 1173 # (U) PI.IP5 1174 # (U) PI.IP6 1175 # (U) PI.IP7 1176 # (U) PI.MBZ 1187 # 7369 (U) PI.ON 1177 # 7378 7380 (U) PI.REQ 1190 # 7375 (U) PI.SC1 1195 # (U) PI.SC2 1196 # (U) PI.SC3 1197 # (U) PI.SC4 1198 # (U) PI.SC5 1199 # (U) PI.SC6 1200 # (U) PI.SC7 1201 # (U) PI.TCF 1192 # 7383 (U) PI.TCN 1191 # 7381 (U) PI.TSF 1193 # 7379 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 300 ; Cross Reference Listing (U) PI.TSN 1194 # 7377 (U) PI.ZER 1169 # (U) PXCT 1134 # BIS-DST-EA 1140 # 6892 6894 6900 6901 6903 BIS-SRC-EA 1138 # CURRENT 1135 # 2230 2231 2233 2234 2253 2293 2299 2407 2432 3022 3328 3340 3455 3456 3459 3460 3527 3528 3552 3554 3576 3591 3596 3711 4223 4698 4707 7387 7658 7699 7894 D1 1137 # 2323 2365 2417 2420 2788 2792 3733 3738 5129 5137 5151 5156 D2 1141 # 3685 3722 3754 4756 4760 5101 5174 6898 6899 E1 1136 # 2332 2337 2343 3572 3658 E2 1139 # 4705 4724 4764 4768 4772 5924 5933 5934 5936 6855 (U) RAMADR 673 # AC# 674 # 2359 2372 2386 2523 2590 2691 2693 2724 2730 2816 2826 2858 2868 2888 2898 2908 2939 2967 2970 2984 2990 3002 3005 3018 3080 3092 3113 3278 3293 3296 3301 3302 3372 3391 3431 3434 3437 3440 3443 3446 3449 3452 3475 3489 3503 3511 3681 3712 3714 3719 3752 3774 3777 3782 3810 3832 3845 4062 4076 4092 4103 4106 4123 4124 4150 4152 4199 4214 4321 4322 4331 4412 4414 4456 4458 4629 4630 4634 4712 4718 4722 4998 5070 5109 5118 5119 5183 5288 5321 5351 5353 5416 5417 5445 5451 5553 5557 5559 5563 5655 5706 5807 5808 5963 6054 6091 6093 6101 6127 6163 6265 6297 6299 6311 6320 6390 6457 6611 6684 6936 6960 7568 7579 7582 7596 7598 7767 7869 8237 AC*# 675 # 2175 2176 2183 2373 2385 2491 2774 2783 3024 3045 3089 3119 4089 4101 4180 4182 4184 4192 4194 4201 4203 4215 4216 4217 4218 4219 4220 4332 4416 4438 4442 4445 4459 4460 4462 4465 4484 4486 4488 4489 4615 4616 4619 4620 4621 4624 4625 4626 4632 4633 5552 5643 5696 5698 5704 5763 5771 5809 5816 5960 5968 5978 5981 6011 6014 6027 6034 6041 6051 6089 6099 6119 6134 6151 6166 6168 6194 6197 6199 6206 6207 6208 6210 6216 6218 6221 6227 6229 6257 6259 6260 6264 6271 6272 6273 6277 6278 6285 6287 6292 6298 6314 6325 6337 6346 6352 6363 6366 6368 6372 6385 6391 6392 6515 6546 6551 6556 6593 6595 6699 6700 6812 6819 6826 6845 6847 6854 6874 6895 6931 6933 6939 6941 6945 6948 6953 RAM 678 # 2185 2187 6428 6433 6438 6440 VMA 677 # 2163 2271 2341 2355 2364 2368 2396 2407 2413 2426 2497 2529 2535 2540 2543 2593 2789 3408 3551 3575 3590 3611 3615 3619 3680 3697 3703 3725 3742 3748 3761 3819 3850 3972 3974 3980 4007 4019 4023 4046 4742 4770 4776 4897 5139 5162 5165 5917 5936 6356 6550 6596 6599 6627 6903 6918 6988 7121 7256 7260 7264 7268 7272 7313 7343 7345 7352 7406 7474 7479 7490 7527 7532 7623 7656 7703 7748 7751 7753 7763 7765 7862 7876 7881 7901 7949 7966 7967 7969 7970 7973 7974 7976 7977 7979 7980 7982 7983 7985 7986 7988 7989 7991 8256 8280 8345 8427 8667 8719 8779 8785 8836 8850 8864 8866 XR# 676 # 2281 2291 2303 2318 2331 2347 3556 3558 3566 4749 4752 4754 4762 5928 5930 5933 6898 6900 6904 7692 7693 7701 # 679 # 2162 2170 2172 2173 2178 2179 3665 4695 4954 4967 4972 4977 4981 4982 4987 4993 5019 5032 5040 5045 5051 5181 5927 5940 5943 5973 5990 5997 6001 6018 6030 6035 6046 6050 6061 6062 6063 6065 6066 6067 6068 6078 6085 6109 6125 6132 6137 6138 6145 6148 6161 6179 6183 6186 6190 6300 6302 6343 6353 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 301 ; Cross Reference Listing 6358 6359 6361 6364 6377 6379 6383 6386 6387 6408 6558 6559 6582 6584 6620 6625 6635 6697 6703 6730 6734 6737 6742 6743 6750 6817 6824 6828 6830 6919 6935 6944 6950 6958 6959 6962 6970 7060 7082 7094 7186 7191 7243 7245 7247 7249 7251 7257 7261 7265 7269 7273 7281 7288 7290 7295 7299 7301 7320 7323 7333 7334 7337 7353 7354 7358 7438 7439 7687 7690 7695 7707 7709 7721 7727 7729 7874 7946 7948 7953 7957 7961 7971 7972 7990 7992 7993 7995 8233 8234 8243 8244 8246 8247 8254 8264 8266 8268 8270 8274 8275 8323 8326 8353 8355 8386 8410 8413 8416 8418 8432 8439 8481 8491 8493 8538 8578 8579 8580 8586 8597 8601 8764 8775 8781 8790 8794 8806 (D) READ 1351 # 2549 2550 2552 2554 2555 2557 2559 2560 2562 2564 2565 2567 2586 2602 2603 2604 2605 2607 2608 2609 2610 2612 2613 2615 2617 2618 2620 2622 2623 2625 2627 2628 2630 2632 2633 2635 2637 2638 2640 2644 2645 2646 2647 2649 2650 2651 2652 2654 2655 2657 2659 2660 2662 2664 2665 2667 2669 2670 2672 2674 2675 2677 2679 2680 2682 2768 2769 2799 2800 2809 2810 2811 2812 2819 2820 2821 2822 2829 2830 2831 2832 2834 2835 2836 2837 2844 2851 2852 2853 2854 2861 2862 2863 2864 2871 2872 2873 2874 2881 2882 2883 2884 2891 2892 2901 2902 2903 2904 2912 2913 2914 2915 2922 2923 2924 2925 2932 2933 2934 2935 2942 2943 2954 2955 2956 2958 2959 2960 3188 3189 3190 3191 3192 3193 3204 3205 3206 3207 3208 3209 3210 3211 3222 3223 3224 3225 3226 3227 3228 3229 3239 3240 3241 3242 3243 3244 3245 3246 3361 3362 3363 3364 3365 3366 3367 3368 3378 3379 3380 3381 3382 3383 3384 3385 3395 3396 3397 3398 3399 3400 3401 3402 3411 3412 3413 3414 3415 3416 3417 3418 3478 3492 3649 3672 3768 4055 4056 4057 4058 4069 4070 4071 4072 4084 4085 4117 4118 4119 4120 4142 4143 4144 4145 4168 4309 4310 4311 4312 4314 4315 4316 4317 4386 4687 4688 4689 4690 4691 5265 5266 5267 5268 5269 5270 5271 5273 5274 5275 5276 5277 5278 5279 5310 5311 5312 5314 5315 5316 5317 5339 5340 5341 5343 5344 5345 5346 5389 5424 5425 5539 5540 5628 5689 5913 (U) READ CYCLE 1122 # 2230 2231 2233 2234 2253 2293 2299 2304 2310 2333 2337 2366 2407 2418 2421 2432 3022 3328 3340 3455 3456 3459 3460 3527 3528 3529 3534 3538 3541 3554 3568 3571 3596 3618 3638 3711 3721 3755 3848 4005 4049 4223 4698 4707 4755 4759 4763 4767 5100 5175 5933 5934 5958 6105 6355 6382 6455 6460 6516 6636 6752 6898 6899 6900 6901 6976 6984 7119 7255 7259 7263 7267 7271 7311 7315 7351 7387 7475 7489 7522 7531 7540 7614 7617 7658 7681 7702 7859 7894 7896 8329 8337 8342 8422 8561 8663 8698 8712 8870 (D) ROUND 1339 # 5268 5269 5270 5271 5276 5277 5278 5279 5314 5315 5316 5317 5343 5344 5345 5346 5389 5425 (U) RSRC 607 # AB 609 # 3665 7687 AQ 608 # D0 615 # 2761 6160 6275 7475 7522 7614 7617 7653 7664 7670 7743 7896 8260 8262 8276 DA 613 # 2157 2160 2193 2204 2240 2244 2247 2250 2259 2262 2265 2268 2519 3044 3582 3948 3988 4036 4400 4411 4805 5885 5887 5889 5891 5893 5895 5897 5899 5901 6585 6597 6623 6663 6808 7033 7036 7104 7284 7327 7328 7329 7463 7464 7465 7466 7467 7468 7469 7471 7504 7536 8302 8381 8441 8459 8567 8789 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 302 ; Cross Reference Listing DQ 614 # 0A 612 # 2322 2763 3691 3808 3814 4020 4221 5556 5558 5658 5659 5709 5711 5931 6969 7506 8848 0B 611 # 2740 2742 0Q 610 # 3630 3644 3965 3991 5920 5964 6164 7494 8844 (U) S# 997 # 2177 2380 2399 2399 2414 2414 2430 2968 2971 2975 2985 2987 3003 3006 3009 3014 3026 3041 3043 3070 3087 3096 3099 3142 4124 4152 4189 4209 4229 4342 4439 4447 4709 4791 4814 4819 4821 4823 4826 4889 4890 4891 4892 4893 4894 4902 4906 4908 4910 4943 4959 4970 4983 4999 5044 5059 5292 5294 5326 5331 5333 5359 5360 5373 5374 5396 5400 5402 5403 5407 5415 5430 5433 5435 5486 5490 5492 5495 5498 5506 5508 5509 5510 5511 5529 5534 5564 5575 5590 5592 5633 5644 5648 5651 5661 5667 5673 5684 5722 5723 5733 5747 5754 5757 5769 5786 5791 5793 5814 5839 5841 5847 5985 5986 5988 6154 6299 6467 6469 6476 6525 6530 6532 6655 6657 6659 6660 6666 6676 6859 7160 7181 7212 7222 7228 7442 7630 7662 7716 7732 8297 8348 8396 8536 (U) SCAD 974 # A 982 # 2177 3026 4124 4152 4189 4209 4229 4342 4439 4447 4705 4719 4796 4797 4798 4799 4800 4905 4943 4959 4970 4983 4999 5044 5059 5326 5373 5396 5400 5402 5403 5407 5633 5644 5648 5661 5667 5722 5723 6299 6467 6469 6476 6525 6655 6656 6666 6856 6877 6896 7160 7181 7212 7222 7228 7442 7630 7662 7716 7732 8297 8348 8396 8536 A*2 975 # 6648 A+B 979 # 2380 2399 2399 2414 2414 2971 2975 2985 2987 3006 3009 3014 3041 3043 3087 3096 4821 4826 4890 4891 4892 4893 4894 4902 4910 5292 5294 5322 5331 5333 5374 5415 5417 5429 5433 5486 5490 5492 5495 5498 5506 5508 5509 5510 5511 5529 5534 5564 5575 5590 5592 5656 5673 5684 5747 5754 5757 5769 5786 5791 5793 5814 5839 5841 5847 5985 5986 5988 6526 6530 6658 6659 6660 6676 6964 A-1 981 # 2187 2991 2993 3069 3071 3073 3077 3103 3110 3141 3143 3145 3149 4255 4267 4273 4281 4291 4299 4554 4557 4597 4946 4965 5065 5302 5304 5410 5434 5437 5440 5444 5608 5611 5618 5636 6328 6472 6478 6673 7163 7183 7214 7231 7422 7435 7637 7668 7723 7736 8300 8362 8365 8399 8542 A-B 978 # 2968 3003 3070 3099 3142 4697 4702 4716 4737 4791 4814 4819 4823 4889 4908 5353 5359 5360 5435 5707 5733 6038 6048 6848 6851 6891 6893 A-B-1 977 # 5288 5293 5554 5574 A.AND.B 980 # 4709 4906 6154 6532 6657 6859 A.OR.B 976 # 2430 5651 (U) SCADA 983 # BYTE1 987 # 4697 4702 4705 4716 4796 4905 6038 6526 6656 6848 6856 6891 6896 6964 BYTE2 988 # 4797 BYTE3 989 # 4798 BYTE4 990 # 4799 BYTE5 991 # 4720 4800 6649 6878 PTR44 986 # 4737 6048 6851 6893 S# 985 # 2177 2380 2399 2399 2414 2414 2430 2968 2971 2975 2985 2987 3003 3006 3009 3014 3026 3041 3043 3070 3087 3096 3099 3142 4124 4152 4189 4209 4229 4342 4439 4447 4709 4791 4814 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 303 ; Cross Reference Listing 4819 4821 4823 4826 4889 4890 4891 4892 4893 4894 4902 4906 4908 4910 4943 4959 4970 4983 4999 5044 5059 5292 5294 5326 5331 5333 5359 5360 5373 5374 5396 5400 5402 5403 5407 5415 5429 5433 5435 5486 5490 5492 5495 5498 5506 5508 5509 5510 5511 5529 5534 5564 5575 5590 5592 5633 5644 5648 5651 5661 5667 5673 5684 5722 5723 5733 5747 5754 5757 5769 5786 5791 5793 5814 5839 5841 5847 5985 5986 5988 6154 6299 6467 6469 6476 6525 6530 6532 6655 6657 6659 6660 6666 6676 6859 7160 7181 7212 7222 7228 7442 7630 7662 7716 7732 8297 8348 8396 8536 SC 984 # 2187 2991 2993 3069 3071 3073 3077 3103 3110 3141 3143 3145 3149 4255 4267 4273 4281 4291 4299 4554 4557 4597 4946 4965 5065 5288 5293 5302 5304 5322 5353 5410 5417 5434 5437 5440 5444 5554 5574 5608 5611 5618 5636 5656 5707 6328 6472 6478 6658 6673 7163 7183 7214 7231 7422 7435 7637 7668 7723 7736 8300 8362 8365 8399 8542 (U) SCADB 992 # EXP 994 # 2399 2399 2414 2414 5288 5292 5294 5322 5353 5417 5554 5564 5575 5656 5707 FE 993 # 2430 2968 2971 2975 2985 2987 3003 3006 3009 3014 3041 3043 3096 3099 4709 4791 4814 4819 4821 4826 4890 4891 4892 4893 4894 4902 4906 4908 4910 5293 5331 5333 5359 5360 5374 5430 5433 5435 5486 5490 5492 5495 5498 5506 5508 5509 5510 5511 5529 5534 5574 5590 5592 5651 5673 5684 5733 5747 5754 5757 5769 5786 5791 5793 5814 5839 5841 5847 5986 5988 6154 6526 6530 6532 6657 6658 6659 6660 6676 6859 SHIFT 995 # 2380 3070 3087 3142 5415 SIZE 996 # 4697 4702 4716 4737 4823 4889 5985 6038 6048 6848 6851 6891 6893 6964 (U) SETFOV 1078 # 5355 5367 5720 (U) SETFPD 1084 # 4237 4751 6394 (U) SETNDV 1079 # 4344 4379 4410 4496 5003 5355 5367 5720 (U) SETOV 1076 # 4137 4138 4162 4224 4344 4379 4410 4496 5003 5355 5367 5432 5720 (U) SHSTYLE 821 # ASHC 826 # 2993 3102 3105 3109 3112 4273 4281 4291 4299 4405 4409 4478 4482 4498 5304 5407 5409 5439 5583 5585 5589 5591 5607 5611 5618 5621 5623 5635 5676 5680 5715 5729 5747 5753 5756 5769 5786 5790 5792 5814 5839 DIV 828 # 4554 4557 4558 4601 4605 5486 5498 5506 5510 5603 5605 5606 LSHC 827 # 3073 3077 4586 4589 NORM 822 # 2427 2987 4232 4266 4439 4595 5637 5727 ONES 824 # 4825 4828 4901 4904 5988 ROT 825 # 3009 3014 ROTC 829 # 3145 3149 ZERO 823 # (U) SKIP 899 # AC0 907 # 2486 3390 4694 ADEQ0 919 # 3019 3334 3346 3437 3449 4127 4132 4334 4336 4340 4354 4399 4428 4458 4539 4617 4622 4627 4643 4650 4968 4997 5351 5377 5379 5452 5494 5518 5674 5725 5767 5812 6142 6195 6271 6274 6563 6600 6621 6744 7331 8324 8327 8411 8414 ADLEQ0 903 # 2190 3992 3997 5394 5399 5513 5678 5681 5749 5752 5755 5758 5818 5918 5961 6100 6102 6184 6204 6388 6404 6458 6493 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 304 ; Cross Reference Listing 6496 6528 6992 7128 7142 7188 7197 7492 7493 7684 7686 7700 8284 8306 8350 8357 8360 8375 8380 8429 8448 8452 8458 8472 8476 8478 8498 8551 8570 8572 8599 8603 8637 8640 8642 8645 8648 8669 8679 8733 8751 8792 8841 ADREQ0 904 # 3088 3594 3609 5125 6329 6402 6757 7034 7040 7067 7069 7072 7074 7076 7367 7369 7373 7375 7377 7379 7381 7383 7480 7533 7553 7625 7652 8235 8503 8531 8720 8737 8740 8745 CRY0 902 # 3687 3730 3759 5363 5487 5489 5491 5493 CRY1 915 # 4090 4102 5803 6219 6225 6238 6429 6440 CRY2 910 # 5776 5836 DP0 911 # 2400 2415 2574 2752 2759 3042 3114 3331 3343 3434 3446 3776 3779 3784 3955 4109 4134 4156 4159 4214 4222 4323 4359 4361 4366 4371 4375 4397 4414 4426 4433 4448 4467 4485 4537 4544 4559 5000 5144 5168 5290 5294 5323 5353 5361 5395 5417 5448 5555 5657 5704 5708 5719 5732 5969 5982 5999 6012 6019 6037 6079 6081 6103 6120 6123 6129 6169 6261 6266 6303 6312 6345 6362 6434 6484 6510 6701 6731 6773 6827 6946 7122 7286 8311 8409 8636 8690 DP18 912 # 2379 2738 2745 5942 6189 6393 6482 6805 6806 7519 8693 8703 8726 EXECUTE 921 # 7888 FPD 906 # 4176 4697 4702 4716 6293 INT 908 # 5148 6039 8248 8443 8665 8773 8804 8855 IOLGL 900 # 2436 3539 3542 IOT 913 # JFCL 914 # 3601 KERNEL 905 # 3532 3536 3537 3544 3653 6971 LE 909 # 3337 3349 3440 3452 4393 5027 5371 5695 6342 7297 7954 LLE 901 # 7693 SC 920 # 2187 2991 2993 3069 3071 3073 3077 3094 3103 3110 3141 3143 3145 3149 4255 4267 4273 4281 4291 4299 4554 4557 4597 4946 4965 5065 5302 5304 5410 5434 5437 5440 5444 5557 5559 5608 5611 5618 5636 6328 6472 6478 6664 6673 7163 7183 7214 7231 7422 7435 7637 7668 7736 8300 8362 8365 8399 8542 TRAP CYCLE 917 # 8791 TXXX 916 # 3287 -1 MS 924 # 5140 6034 7335 8438 -CONTINUE 923 # 7890 -IO BUSY 922 # 7718 7724 7733 7741 (U) SPEC 785 # 2571 2577 2691 2693 2726 2732 2740 2742 2761 2763 2806 2816 2826 2858 2868 2888 2898 2909 2919 2949 4129 4135 4158 4160 8557 8857 APR EN 799 # 2168 7081 7190 APR FLAGS 797 # 7086 7090 7305 ASHOV 806 # 2993 3109 3112 CLR IO BUSY 789 # 7611 7649 CLR IO LATCH 788 # 7696 7704 7708 7711 7720 7726 7735 7740 CLRCLK 787 # 7282 7336 8492 8776 CLRCSH 798 # 7417 7418 7421 EXPTST 807 # 5495 5511 5841 FLAGS 808 # 2219 2220 2580 3406 3422 3489 3503 3559 3560 3563 3564 3600 3621 3622 3692 3704 3760 3790 3794 3809 3815 4009 4010 4011 4063 4077 4094 4104 4107 4137 4138 4162 4212 4224 4234 4237 4344 4379 4410 4496 4645 4647 4712 4729 4751 5003 5355 5367 5432 5720 6394 6395 6993 7495 7510 8795 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 305 ; Cross Reference Listing INHCRY18 803 # 3512 3682 3729 3758 3778 3783 5035 5110 LDACBLK 809 # 2165 7154 7177 LDINST 810 # 2272 3657 6989 7902 LDPAGE 790 # 7412 8573 LDPI 805 # 3610 7398 7473 7955 LDPXCT 792 # 3662 LOADIR 804 # 5923 LOADXR 795 # 2343 3552 3576 3591 4705 4724 4772 5924 5936 6855 6892 6894 6903 7699 MEMCLR 800 # 2163 3611 7474 7876 7949 8280 8779 8785 NICOND 791 # 2230 2231 2233 2234 2294 2300 2524 3045 3091 3119 3328 3340 3431 3455 3456 3459 3460 3527 3528 3554 3596 3713 3789 3796 4223 4487 4490 4698 5445 5451 5810 7387 7658 8237 PREV 794 # 7860 7868 PXCT OFF 802 # 2242 2245 2248 2260 2263 2266 2280 SWEEP 801 # 7430 7431 7434 WAIT 793 # 2412 # 786 # 7884 7887 7950 (U) STATE 1000 # BLT 1002 # 5111 COMP-DST 1009 # 6128 CVTDB 1008 # 6175 DST 1005 # 6090 DSTF 1007 # 6028 EDIT-DST 1011 # 6147 6357 6384 6603 6629 8812 8816 EDIT-S+D 1012 # 6569 EDIT-SRC 1010 # 6121 6508 6565 8810 8818 8820 8824 MAP 1003 # 8236 SIMPLE 1001 # SRC 1004 # 5977 6006 6076 8814 SRC+DST 1006 # 6003 6082 (U) SWITCH% FULL 394 1297 1299 2174 2194 2199 2203 4171 4239 4242 4389 4499 4502 4570 4635 4921 5072 5076 7184 7192 INHCST 397 1237 1239 1241 8039 8041 8388 8391 8392 8395 8517 8520 8521 8524 8595 8604 8605 8621 KIPAGE 406 416 418 1261 1263 1265 3952 3962 4014 4025 7194 7201 7207 7209 8305 8309 8314 8317 8685 8731 8840 8843 8847 8852 KLPAGE 409 413 415 1267 1269 1271 3953 3957 3963 3977 7195 7200 7203 7205 8304 8313 8319 8526 8589 8683 8839 8845 8862 8867 NOCST 400 421 423 1243 1245 1247 8383 8456 8463 8466 8480 8483 8484 8488 8514 8533 8590 8622 NONSTD 425 1249 1251 1253 SIM 391 2212 2217 2224 UBABLT 403 412 419 1255 1257 1259 5186 5260 7832 7834 7836 (U) T 937 # 2T 940 # 4414 4427 5294 5564 6138 6208 6272 6560 6697 6742 7337 7694 3T 941 # 2190 2415 2425 2580 3113 3287 3372 3406 3422 3512 3602 3686 3721 3729 3754 3758 3775 3780 3785 3822 3838 4063 4077 4180 4182 4201 4235 4372 4376 4426 4432 4433 4434 4451 4455 4476 4484 4565 4630 4647 4705 4720 4791 4809 4905 4949 4956 5036 5052 5056 5122 5124 5143 5167 5288 5322 5363 5394 5395 5398 5430 5433 5487 5489 5491 5493 5552 5553 5556 5558 5657 5658 5659 5703 5707 5709 5711 5719 5802 5808 5968 5986 5988 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 306 ; Cross Reference Listing 6036 6040 6103 6210 6224 6238 6270 6273 6358 6361 6393 6394 6422 6428 6431 6440 6465 6479 6506 6526 6527 6649 6656 6700 6759 6849 6856 6877 6891 6895 6898 6900 6936 6991 7121 7128 7141 7188 7197 7454 7479 7483 7491 7492 7493 7528 7532 7534 7701 8331 8339 8565 8582 8705 8716 8800 8830 4T 942 # 3018 3489 3503 4089 4094 4101 4104 4106 4996 5001 5982 6012 6189 6194 6219 6260 6433 6481 6621 6744 6945 7954 8251 8324 8327 8411 8414 8693 8703 5T 943 # 7255 7259 7263 7267 7271 7723 7740 (D) TEST 1352 # 2551 2551 2552 2552 2556 2556 2557 2557 2561 2561 2562 2562 2566 2566 2567 2567 2586 2604 2604 2605 2605 2609 2609 2610 2610 2614 2614 2615 2615 2619 2619 2620 2620 2624 2624 2625 2625 2629 2629 2630 2630 2634 2634 2635 2635 2639 2639 2640 2640 2646 2646 2647 2647 2651 2651 2652 2652 2656 2656 2657 2657 2661 2661 2662 2662 2666 2666 2667 2667 2671 2671 2672 2672 2676 2676 2677 2677 2681 2681 2682 2682 2778 2801 2801 2802 2802 2811 2811 2812 2812 2821 2821 2822 2822 2831 2831 2832 2832 2836 2836 2837 2837 2846 2846 2847 2847 2853 2853 2854 2854 2863 2863 2864 2864 2873 2873 2874 2874 2883 2883 2884 2884 2893 2893 2894 2894 2903 2903 2904 2904 2914 2914 2915 2915 2924 2924 2925 2925 2934 2934 2935 2935 2944 2944 2945 2945 3395 3396 3397 3398 3399 3400 3401 3402 3411 3412 3413 3414 3415 3416 3417 3418 4057 4057 4058 4058 4071 4071 4072 4072 4119 4119 4120 4120 4144 4144 4145 4145 4311 4311 4312 4312 4316 4316 4317 4317 4688 4690 5266 5266 5267 5267 5270 5270 5271 5271 5274 5274 5275 5275 5278 5278 5279 5279 5311 5311 5312 5312 5316 5316 5317 5317 5340 5340 5341 5341 5345 5345 5346 5346 7238 (U) TRAP1 1093 # 4137 4138 4162 4224 4344 4379 4410 4496 5003 5355 5367 5432 5720 (U) TRAP2 1092 # 3704 3760 3790 3794 (U) VECTOR CYCLE 1164 # 7523 (D) VMA 1354 # 2550 2555 2560 2565 2603 2608 2613 2618 2623 2628 2633 2638 2645 2650 2655 2660 2665 2670 2675 2680 2799 2800 2810 2820 2830 2835 2852 2862 2872 2882 2891 2892 2902 2913 2923 2933 2942 2943 2954 2955 2956 2958 2959 2960 3478 3492 3518 3768 4056 4070 4118 4143 4310 4315 (U) WAIT 1153 # 2230 2230 2231 2231 2233 2233 2234 2234 2253 2253 2270 2293 2293 2299 2299 2304 2310 2323 2333 2337 2341 2354 2363 2366 2367 2395 2406 2407 2407 2418 2421 2425 2432 2432 2496 2528 2534 2539 2542 2591 2591 2592 2787 2787 2789 2793 2793 3022 3022 3328 3328 3340 3340 3407 3407 3408 3455 3455 3456 3456 3459 3459 3460 3460 3527 3527 3528 3528 3529 3534 3538 3541 3550 3554 3554 3568 3571 3574 3589 3596 3596 3615 3618 3619 3632 3632 3635 3635 3638 3643 3643 3679 3684 3684 3696 3702 3711 3711 3721 3724 3734 3734 3739 3739 3741 3747 3755 3761 3817 3817 3818 3830 3830 3848 3849 3960 3970 3971 3973 3979 3984 3984 4005 4006 4018 4022 4031 4031 4041 4041 4045 4049 4223 4223 4698 4698 4707 4707 4735 4735 4741 4741 4742 4755 4759 4763 4767 4769 4775 4896 4896 4897 5100 5128 5128 5136 5136 5138 5152 5152 5157 5157 5161 5164 5175 5917 5933 5934 5936 5958 6105 6355 6356 6382 6455 6460 6516 6548 6548 6550 6594 6594 6596 6599 6627 6636 6752 6898 6899 6900 6901 6903 6917 6973 6976 6981 6984 6988 7119 7120 7223 7223 7255 7255 7256 7259 7259 7260 7263 7263 7264 7267 7267 7268 7271 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 307 ; Cross Reference Listing 7271 7272 7311 7312 7315 7340 7340 7343 7344 7344 7345 7351 7352 7387 7387 7405 7405 7406 7478 7489 7490 7505 7505 7526 7531 7532 7540 7620 7622 7655 7656 7658 7658 7681 7702 7703 7748 7751 7753 7761 7763 7765 7859 7861 7867 7867 7879 7881 7882 7882 7894 7894 7900 7965 7966 7967 7968 7968 7969 7970 7973 7974 7975 7975 7976 7977 7978 7978 7979 7980 7981 7981 7982 7983 7984 7984 7985 7986 7987 7987 7988 7989 7991 8329 8337 8342 8344 8389 8422 8426 8518 8583 8663 8666 8698 8712 8718 8834 8835 8849 8864 8866 8870 8873 8873 (U) WORK 1016 # AC0 1057 # AC1 1058 # AC2 1059 # AC3 1060 # ADJBPW 1035 # 5019 5040 ADJP 1030 # 4954 4981 ADJPTR 1032 # 4695 4972 5034 ADJQ1 1033 # 4977 4995 ADJR2 1034 # 4987 5054 ADJS 1031 # 4967 4982 5045 APR 1037 # 2170 7060 7082 7094 7186 7191 8234 BADW0 1017 # 8274 BADW1 1018 # 8275 BDH 1047 # 6302 6377 6386 6408 BDL 1048 # 6300 6343 6383 6387 CBR 1027 # 7245 7261 8597 CMS 1044 # 6125 6137 6138 6148 CSTM 1028 # 7249 7269 8601 DDIV SGN 1061 # DECHI 1066 # 2179 2181 6431 DECLO 1065 # 2178 2180 6422 DIV 1020 # DVSOR H 1062 # DVSOR L 1063 # E0 1039 # 5927 6353 6625 6635 E1 1040 # 5940 5943 6379 6558 6559 6734 6737 6742 6750 FILL 1043 # 6109 6132 6145 6620 6697 6703 6817 6919 FSIG 1045 # 6582 6584 HSBADR 1036 # 2162 7251 7273 7948 7953 MSK 1042 # 5990 6161 6743 MUL 1019 # PERIOD 1053 # 7301 7353 7358 PTA.E 1069 # 7439 8323 8410 8416 PTA.U 1070 # 7438 8326 8413 8418 PUR 1029 # 7247 7265 8386 8481 SBR 1026 # 7243 7257 8353 8355 8432 SLEN 1041 # 5973 5997 6001 6018 6030 6046 6050 6078 6085 6179 6183 6186 6190 6358 6359 6361 6364 6730 6824 6828 6830 6944 6958 6962 SV.ARX 1023 # 6062 6067 7874 7946 7957 7972 7995 8247 8578 8806 SV.AR 1022 # 6035 6065 7971 7992 8243 8586 SV.AR1 1072 # 8439 8493 SV.BRX 1025 # 5181 6063 6068 6935 6950 6959 8244 8580 SV.BR 1024 # 6061 6066 8254 8264 8266 8268 8270 8579 8764 SV.VMA 1021 # 7721 7727 7729 7961 7990 7993 8233 8246 8538 8781 8790 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 308 ; Cross Reference Listing TIME0 1051 # 2172 7290 7323 7333 TIME1 1052 # 2173 7281 7288 7320 7334 7337 8491 8775 TRAPPC 1071 # 6970 8794 TTG 1054 # 7295 7299 7354 YSAVE 1068 # 3665 7687 7690 7695 7707 7709 (D) WRITE 1355 # (U) WRITE CYCLE 1124 # 2571 2577 2591 2691 2693 2726 2732 2740 2742 2761 2763 2787 2793 2806 2816 2826 2858 2868 2888 2898 2909 2919 2949 3407 3632 3635 3643 3684 3734 3739 3817 3830 3960 3970 3984 4031 4041 4063 4077 4129 4135 4158 4160 4735 4741 4896 5128 5136 5152 5157 5449 5453 5499 5521 6548 6594 7223 7340 7344 7405 7505 7653 7664 7670 7867 7879 7882 7965 7968 7975 7978 7981 7984 7987 8389 8477 8498 8518 8557 8562 8752 8834 8857 8873 (U) WRITE TEST 1123 # 2571 2577 2591 2691 2693 2726 2732 2740 2742 2761 2763 2787 2793 2806 2816 2826 2858 2868 2888 2898 2909 2919 2949 3407 3632 3635 3643 3684 3734 3739 3817 3830 3960 3970 3984 4031 4041 4063 4077 4129 4135 4158 4160 4735 4741 4896 5128 5136 5152 5157 5449 5453 5499 5521 6548 6594 7223 7255 7259 7263 7267 7271 7340 7344 7405 7475 7489 7505 7522 7531 7614 7617 7653 7664 7670 7867 7879 7882 7896 7965 7968 7975 7978 7981 7984 7987 8284 8329 8337 8477 8557 8563 8834 8857 8870 8873 (U) WRU CYCLE 1160 # 7476 (U) # 971 # 2151 2153 2155 2157 2160 2190 2204 2240 2244 2247 2259 2262 2265 2422 2424 2437 2459 2460 2747 2749 2754 2756 2773 3044 3115 3117 3531 3540 3543 3545 3546 3547 3580 3585 3588 3594 3608 3609 3629 3642 3728 3757 3820 3837 3924 3926 3928 3930 3932 3934 3936 3938 3945 3948 3988 3993 3995 3998 4000 4028 4036 4043 4110 4111 4363 4400 4401 4411 4419 4464 4517 4543 4550 4641 4806 4950 4952 4957 4975 4979 4985 4989 5018 5023 5057 5061 5068 5121 5295 5296 5299 5300 5324 5325 5329 5357 5358 5394 5398 5418 5419 5556 5558 5638 5658 5659 5678 5681 5709 5711 5885 5887 5889 5891 5893 5895 5897 5899 5901 5918 5921 5945 5961 5965 6100 6102 6160 6165 6172 6177 6184 6188 6204 6246 6262 6263 6269 6275 6295 6308 6310 6317 6322 6329 6332 6388 6402 6404 6411 6436 6442 6458 6470 6473 6481 6493 6496 6513 6528 6586 6597 6606 6608 6624 6643 6664 6669 6678 6681 6757 6779 6783 6787 6791 6795 6799 6809 6815 6913 6924 6991 6996 7005 7006 7007 7011 7012 7013 7014 7019 7020 7021 7024 7025 7026 7027 7028 7029 7030 7031 7033 7036 7047 7062 7063 7066 7067 7069 7072 7074 7076 7088 7098 7101 7105 7126 7133 7137 7141 7148 7167 7187 7188 7189 7197 7198 7199 7215 7221 7227 7232 7252 7275 7284 7303 7318 7370 7371 7414 7416 7427 7429 7456 7457 7458 7459 7460 7461 7462 7463 7464 7465 7466 7467 7468 7469 7472 7483 7492 7493 7508 7528 7535 7625 7633 7639 7652 7684 7686 7700 7743 7829 7833 7838 7840 7842 7844 7846 7848 7884 7887 7898 7950 8228 8232 8235 8260 8262 8276 8286 8289 8295 8303 8307 8332 8340 8351 8358 8375 8382 8430 8442 8445 8453 8460 8471 8474 8500 8504 8507 8532 8545 8549 8553 8555 8568 8569 8571 8576 8600 8632 8638 8643 8649 8692 8702 8706 8716 8721 8737 8740 8743 8746 8755 8760 8768 8830 8841 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 309 ; Location / Line Number Index ; Dcode Loc'n 0 1 2 3 4 5 6 7 D 0000 3910 5854 5855 5856 5857 5858 5859 5860 D 0010 5862 5863 5864 5865 5867 5868 5869 5870 D 0020 5872 5873 5874 5875 5876 5877 5878 5879 D 0030 3857 3858 3859 3860 3861 3862 3863 3864 D 0040 3868 3869 3870 3871 3872 3873 3874 3875 D 0050 3876 3877 3878 3879 3880 3881 3882 3883 D 0060 3884 3885 3886 3887 3888 3889 3890 3891 D 0070 3892 3893 3894 3895 3896 3897 3898 3899 D 0100 3903 3904 3905 3906 3911 3768 3912 3913 D 0110 5539 5540 5628 5689 4084 4085 4168 4386 D 0120 2768 2769 5424 5913 2777 2778 5425 5389 D 0130 3914 3915 5390 4687 4688 4689 4690 4691 D 0140 5265 3916 5266 5267 5268 5269 5270 5271 D 0150 5273 3917 5274 5275 5276 5277 5278 5279 D 0160 5310 3918 5311 5312 5314 5315 5316 5317 D 0170 5339 3919 5340 5341 5343 5344 5345 5346 D 0200 2549 2550 2551 2552 2554 2555 2556 2557 D 0210 2559 2560 2561 2562 2564 2565 2566 2567 D 0220 4117 4118 4119 4120 4142 4143 4144 4145 D 0230 4309 4310 4311 4312 4314 4315 4316 4317 D 0240 2954 2955 2956 2957 2958 2959 2960 3920 D 0250 2586 5114 3506 3507 3518 3520 3649 8223 D 0260 3671 3672 3673 3674 3801 3802 3803 3804 D 0270 4055 4056 4057 4058 4069 4070 4071 4072 D 0300 3352 3353 3354 3355 3356 3357 3358 3359 D 0310 3361 3362 3363 3364 3365 3366 3367 3368 D 0320 3464 3465 3466 3467 3468 3469 3470 3471 D 0330 3378 3379 3380 3381 3382 3383 3384 3385 D 0340 3478 3479 3480 3481 3482 3483 3484 3485 D 0350 3395 3396 3397 3398 3399 3400 3401 3402 D 0360 3492 3493 3494 3495 3496 3497 3498 3499 D 0370 3411 3412 3413 3414 3415 3416 3417 3418 D 0400 2799 2800 2801 2802 2809 2810 2811 2812 D 0410 2819 2820 2821 2822 2829 2830 2831 2832 D 0420 2834 2835 2836 2837 2844 2845 2846 2847 D 0430 2851 2852 2853 2854 2861 2862 2863 2864 D 0440 2871 2872 2873 2874 2881 2882 2883 2884 D 0450 2891 2892 2893 2894 2901 2902 2903 2904 D 0460 2912 2913 2914 2915 2922 2923 2924 2925 D 0470 2932 2933 2934 2935 2942 2943 2944 2945 D 0500 2602 2603 2604 2605 2607 2608 2609 2610 D 0510 2612 2613 2614 2615 2617 2618 2619 2620 D 0520 2622 2623 2624 2625 2627 2628 2629 2630 D 0530 2632 2633 2634 2635 2637 2638 2639 2640 D 0540 2644 2645 2646 2647 2649 2650 2651 2652 D 0550 2654 2655 2656 2657 2659 2660 2661 2662 D 0560 2664 2665 2666 2667 2669 2670 2671 2672 D 0570 2674 2675 2676 2677 2679 2680 2681 2682 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 310 ; Location / Line Number Index ; Dcode Loc'n 0 1 2 3 4 5 6 7 D 0600 3177 3178 3179 3180 3181 3182 3183 3184 D 0610 3186 3187 3188 3189 3190 3191 3192 3193 D 0620 3195 3196 3197 3198 3199 3200 3201 3202 D 0630 3204 3205 3206 3207 3208 3209 3210 3211 D 0640 3213 3214 3215 3216 3217 3218 3219 3220 D 0650 3222 3223 3224 3225 3226 3227 3228 3229 D 0660 3230 3231 3232 3233 3234 3235 3236 3237 D 0670 3239 3240 3241 3242 3243 3244 3245 3246 D 0700 7001 7002 7238 7772 7853 7854 7773 7774 D 0710 7560 7561 7571 7572 7585 7586 7776 7777 D 0720 7562 7563 7573 7574 7587 7588 7779 7780 D 0730 7782 7783 7784 7785 7786 7787 7788 7789 D 0740 7791 7792 7793 7794 7795 7796 7797 7798 D 0750 7800 7801 7802 7803 7804 7805 7806 7807 D 0760 7809 7810 7811 7812 7813 7814 7815 7816 D 0770 7818 7819 7820 7821 7822 7823 7824 7825 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 311 ; Location / Line Number Index ; Ucode Loc'n 0 1 2 3 4 5 6 7 U 0000 2151: 7947: 2152 2160: 7888: 7890: 6539= 6540= U 0010 2184= 7948: 2185= 2153 3287= 3290= 3293= 3296= U 0020 3976= 4126= 3982= 3985= 7949= 4127= 7950= 3988= U 0030 3561= 4154= 3565= 4495= 3569= 4155= 3573= 4496= U 0040 2356: 2360: 2364: 2372: 2382: 2385: 2392: 2396: U 0050 2409: 2415: 2436: 2154 4417= 4419= 4453= 4454= U 0060 3633= 2155 5047= 5448= 3636= 3638= 5054= 7616= U 0070 4757= 2158 4761= 5449= 4765= 4421= 4768= 7617= U 0100 2162 2243= 2246= 2249= 7875= 2250= 2163 2254= U 0110 2165 2261= 2264= 2267= 7877= 2268= 7879= 2273= U 0120 4181= 4183= 4274= 4278= 4184= 2168 4282= 4286= U 0130 3833= 2170 5694= 5696= 3836= 3840= 7042: 7057: U 0140 2193= 2196= 4292= 4296= 5373= 5374= 4300= 4304= U 0150 3553= 2204= 3554= 5604= 5376= 5378= 5380= 5381= U 0160 4337= 4340= 2172 5328= 4343= 4344= 4346= 5330= U 0170 5930= 4190= 5932= 5605= 5933= 4191= 5934= 5382= U 0200 5787= 2294= 5789= 2300= 5791= 2306= 5793= 2311= U 0210 5795= 2319= 2173 2323= 2175 2333= 5796= 2337= U 0220 3711= 3713= 3715= 2176 2189= 2190= 2177 7652= U 0230 6898= 6850= 6899= 6851= 6900= 2178 6901= 7653= U 0240 4696= 4697= 2179 5675= 2180 4698= 6583= 6584= U 0250 3328= 3331= 3334= 3337= 3340= 3343= 3346= 3349= U 0260 2233= 2234= 5528= 5676= 4725= 4728= 5529= 4729= U 0270 3431= 3434= 3437= 3440= 3443= 3446= 3449= 3452= U 0300 3588= 3592= 5533= 3594= 7384= 7385= 5534= 3595= U 0310 4019= 2181 4021= 4024= 3972= 7387= 3974= 3596= U 0320 3608= 3609= 5837= 2182 2186 3610= 5839= 5513= U 0330 4362= 4364= 6698= 4367= 2187 3612= 6699= 5515= U 0340 4793= 4796= 4797= 2220 4798= 4799= 2222 4800= U 0350 4735= 4736= 4737= 4738= 4439= 4479= 4440= 4480= U 0360 4889= 4890= 4891= 2281 4892= 4893= 2343 4894= U 0370 4519= 2348 2401= 2403= 4520= 4521= 4522= 4523= U 0400 4041: 2366 2418= 2421= 2437= 2438= 2369 5531= U 0410 4200= 4202= 2459= 2460= 4203= 2374 2386 5532= U 0420 5486= 5487= 5488= 5489= 5490= 5491= 5492= 5493= U 0430 5494= 2388 2423 5587= 2541= 2544= 5495= 5588= U 0440 5506= 6326= 5507= 6328= 5508= 2424 5509= 6329= U 0450 5510= 2427 2428 5621= 2993= 2997= 5511= 5622= U 0460 6183= 6185= 5841= 5845= 6187= 6189= 5848= 2430 U 0470 7507= 2433 5611= 5613= 7509= 7511= 5614= 5615= U 0500 5998= 6000= 3023= 3024= 6002= 6004= 2594 6006= U 0510 6384= 2724 2730 5734= 3042= 3043= 6385= 5735= U 0520 5748= 5749= 5751= 5752= 5754= 5755= 5757= 5758= U 0530 5760= 2789 2794 6823= 3073= 3074= 5761= 6825= U 0540 6079= 6081= 6083= 4210= 3077= 3078= 6086= 4212= U 0550 4815= 4449= 4816= 4450= 3090= 3091= 5941= 5942= U 0560 6217= 6220= 6376= 4233= 2909 6221= 6377= 4235= U 0570 5018= 5020= 2975 5024= 5977= 5978= 5980= 5983= ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 312 ; Location / Line Number Index ; Ucode Loc'n 0 1 2 3 4 5 6 7 U 0600 6223= 6226= 8366= 8367= 4711= 6227= 4713= 8368= U 0610 5799= 2988 5801= 5803= 3097= 3099= 6175= 6178= U 0620 6234= 6235= 6239= 5644= 3103= 3105= 6240= 5648= U 0630 6027= 6029= 2991 6031= 3110= 3112= 6382= 6383= U 0640 6363= 6365= 3116= 3118= 3145= 3146= 3007 6366= U 0650 6045= 6047= 6049= 6050= 6467= 6468= 6469= 6470= U 0660 4976= 6482= 4977= 6485= 4986= 6487= 4987= 6489= U 0670 5290= 6491= 5291= 6494= 5432= 6497= 5433= 6499= U 0700 6560= 3009 6564= 6566= 6567= 6570= 3010 6572= U 0710 6507= 6509= 6511= 6514= 6515= 6517= 6736= 6737= U 0720 5434= 6774= 5435= 6776= 5722= 6780= 5723= 6784= U 0730 5649= 6788= 5661= 6792= 5650= 6796= 5662= 6800= U 0740 6605= 6607= 3149= 3151= 3391= 3392= 6609= 3012 U 0750 6089= 6090= 3015 6091= 6813= 6816= 6818= 6820= U 0760 6630= 6631= 3455= 3456= 3459= 3460= 6632= 3026 U 0770 7455= 7456= 7457= 7458= 7459= 7460= 7461= 7462= U 1000 8349= 8352= 8354= 8356= 3580= 3581= 3044 8358= U 1010 3585= 3586= 5668= 7597= 3629= 3630= 5673= 7599= U 1020 6122= 6124= 6125= 3045 3642= 3643= 3071 7625= U 1030 6131= 6133= 6134= 3079 3659= 3663= 3080 7626= U 1040 8412= 8415= 8417= 8419= 3699= 3703= 3094 8423= U 1050 6198= 6200= 6201= 3114 5726= 7694= 5727= 7696= U 1060 8252= 8254= 5919= 8258= 3119 8260= 5921= 8262= U 1070 8264= 8266= 8268= 8270= 6732= 6733= 6734= 3143 U 1100 8805= 8807= 8809= 8811= 8813= 8815= 8817= 8819= U 1110 8821= 8822= 8823= 8825= 7316= 7319= 3301 7321= U 1120 7338= 7340= 7341= 3302 7722= 7725= 7728= 7730= U 1130 8428= 8431= 8433= 8438= 8458= 8461= 3407 8471= U 1140 8777= 8778= 8779= 3408 3735= 3739= 3760= 3763= U 1150 3781= 3786= 3789= 3791= 3795= 3796= 3951= 3955= U 1160 3961= 3964= 3967= 3970= 3996= 3998= 4001= 4005= U 1170 4095= 4096= 4105= 4107= 4110= 4111= 4128= 4129= U 1200 4134= 4135= 4137= 4138= 4158= 4159= 4160= 4162= U 1210 4215= 4216= 4223= 4224= 4325= 4327= 4352= 4355= U 1220 4373= 4377= 4379= 4381= 4395= 4397= 4399= 4400= U 1230 4409= 4410= 4425= 4426= 4428= 4429= 4432= 4433= U 1240 4434= 4435= 4443= 4444= 4459= 4460= 4469= 4470= U 1250 4487= 4488= 4538= 4539= 4540= 4541= 4547= 4548= U 1260 4557= 4558= 4561= 4562= 4586= 4589= 4603= 4607= U 1270 4619= 4620= 4624= 4625= 4629= 4630= 4645= 4647= U 1300 4651= 4652= 4947= 4950= 4966= 4968= 4971= 4972= U 1310 5002= 5003= 5037= 5039= 5066= 5069= 5102= 5104= U 1320 5130= 5137= 5141= 5144= 5146= 5148= 5153= 5158= U 1330 5170= 5171= 5295= 5296= 5299= 5300= 5304= 5305= U 1340 5324= 5325= 5354= 5355= 5357= 5358= 5363= 5364= U 1350 5366= 5367= 5370= 5371= 5395= 5396= 5399= 5400= U 1360 5402= 5403= 5410= 5411= 5418= 5419= 5440= 5441= U 1370 5444= 5445= 5451= 5452= 5453= 5455= 5498= 5499= ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 313 ; Location / Line Number Index ; Ucode Loc'n 0 1 2 3 4 5 6 7 U 1400 2230: 2231: 2571: 2574: 2577: 2581: 2591: 2691: U 1410 2693: 2718: 2720: 2723: 2726: 2729: 2732: 2738: U 1420 2740: 2742: 2745: 2752: 2747: 2749: 2754: 2756: U 1430 2759: 3406: 2761: 2763: 2773: 8737 2774: 3422: U 1440 3475: 2806: 2816: 2826: 2841: 2858: 2868: 2878: U 1450 2888: 2898: 2908: 2919: 2929: 2939: 2949: 4090: U 1460 7578: 7582: 3019: 7579: 3069: 3070: 3088: 5917: U 1470 3141: 3142: 3271: 3273: 3276: 3279: 3372: 3390: U 1500 8761 8764 8771 8773 2487: 2492: 2498: 8782 U 1510 8785 8795 8834 8851 2519: 2524: 2530: 2536: U 1520 3527: 3528: 3530: 3531: 3532: 3535: 3536: 3537: U 1530 3539: 3540: 3542: 3543: 3544: 3545: 3546: 3547: U 1540 3603: 3653: 3503: 3680: 3693: 3722: 3755: 3513: U 1550 3808: 3773: 3815: 8229: 3830: 3845: 3946: 4036: U 1560 4063: 4077: 8855 8871 8873 2783: 4173: 2788: U 1570 5323: 4150: 5351: 5285: 5288: U 1600 4321: 4330: U 1610 4694: 3489: 2969: 2972: 7567: 4102: 5394: 7568: U 1620 4702: 5415: 2983: 2985: 4706: 4707: 5431: 4391: U 1630 4716: 5633: 3004: 3006: 4718: 5549: 5692: 5552: U 1640 5118: 4123: 5120: 5123: 7593: 7595: U 1650 7829: 7833: 7838: 7840: 7842: 7844: 7846: 7848: U 1660 3936: 3924: 3926: 3928: 3930: 3938: 3932: 3934: U 1670 U 1700 7047: 7005: 7006: 7007: 7060: 7094: 7008: 7009: U 1710 7011: 7012: 7013: 7014: 7367: 7364: 7015: 7016: U 1720 7019: 7221: 7412: 7119: 7181: 7212: 7020: 7021: U 1730 7024: 7025: 7026: 7027: 7028: 7029: 7030: 7031: U 1740 5885: 5887: 5889: 5891: 5893: 5895: 5897: U 1750 5899: 5901: 7860: 7868: U 1760 7243: 7245: 7247: 7249: 7327: 7359: 7251: 7252: U 1770 7255: 7259: 7263: 7267: 7311: 7351: 7271: 7275: U 2000 5502= 5504= 5517= 5518= 5519= 5520= 5557= 5559= U 2010 5562= 5564= 5568= 5569= 5576= 5577= 5618= 5619= U 2020 5636= 5637= 5658= 5659= 5679= 5680= 5682= 5684= U 2030 5699= 5700= 5709= 5710= 5718= 5719= 5720= 5721= U 2040 5737= 5738= 5770= 5771= 5775= 5776= 5780= 5782= U 2050 5807= 5808= 5815= 5816= 5825= 5826= 5944= 5946= U 2060 5962= 6100= 5966= 5969= 5963= 6101= 5971= 5972= U 2070 5988= 6064= 5989= 6065= 6014= 6016= 6020= 6021= U 2100 6035= 6037= 6040= 6042= 6053= 6055= 6104= 6105= U 2110 6102= 6459= 6108= 6110= 6103= 6460= 6118= 6119= U 2120 6145= 6146= 6152= 6155= 6167= 6301= 6168= 6303= U 2130 6170= 6173= 6191= 6195= 6205= 6206= 6209= 6211= U 2140 6245= 6246= 6258= 6259= 6262= 6263= 6266= 6267= U 2150 6272= 6274= 6275= 6277= 6285= 6286= 6296= 6297= U 2160 6306= 6308= 6314= 6315= 6310= 6427= 6312= 6429= U 2170 6320= 6323= 6333= 6334= 6338= 6339= 6344= 6345= ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 314 ; Location / Line Number Index ; Ucode Loc'n 0 1 2 3 4 5 6 7 U 2200 6347= 6351= 6389= 6390= 6394= 6395= 6401= 6402= U 2210 6403= 6404= 6405= 6406= 6423= 6424= 6430= 6431= U 2220 6437= 6438= 6443= 6445= 6464= 6465= 6472= 6473= U 2230 6478= 6479= 6505= 6506= 6530= 6533= 6547= 6548= U 2240 6557= 6880= 6558= 6881= 6577= 6578= 6598= 6600= U 2250 6622= 6624= 6626= 6627= 6644= 6646= 6667= 6671= U 2260 6673= 6675= 6702= 6703= 6756= 6757= 6761= 6763= U 2270 6807= 6809= 6829= 6831= 6846= 6847= 6856= 6860= U 2300 6875= 6878= 6932= 6933= 6892= 7292= 6893= 7294= U 2310 6940= 6941= 6948= 6949= 6951= 6952= 6978= 6986= U 2320 6995= 6996= 7068= 7069= 7070= 7071= 7073= 7074= U 2330 7075= 7076= 7078= 7079= 7129= 7134= 7149= 7155= U 2340 7164= 7168= 7183= 7186= 7189= 7190= 7198= 7199= U 2350 7214= 7215= 7222= 7224= 7231= 7232= 7289= 7290= U 2360 7300= 7301= 7332= 7333= 7368= 7369= 7370= 7371= U 2370 7374= 7375= 7376= 7377= 7378= 7379= 7380= 7381= U 2400 7382= 7383= 7415= 7417= 7423= 7424= 7428= 7430= U 2410 7436= 7438= 7477= 7480= 7481= 7482= 7493= 7494= U 2420 7504= 7505= 7521= 7523= 7525= 7527= 7529= 7531= U 2430 7535= 7536= 7550= 7551= 7554= 7555= 7612= 7613= U 2440 7621= 7624= 7631= 7633= 7637= 7639= 7650= 7651= U 2450 7657= 7658= 7663= 7665= 7669= 7671= 7682= 7683= U 2460 7686= 7688= 7691= 7692= 7701= 7702= 7708= 7709= U 2470 7736= 7737= 7742= 7743= 7883= 7884= 7895= 7896= U 2500 7899= 7903= 7956= 7958= 7966= 7969= 7967= 7970= U 2510 7971= 7973= 7972= 7974= 7976= 7979= 7977= 7980= U 2520 7982= 7985= 7983= 7986= 7988= 7990= 7989= 7991= U 2530 8236= 8237= 8287= 8290= 8301= 8303= 8312= 8316= U 2540 8325= 8327= 8330= 8333= 8338= 8340= 8360= 8362= U 2550 8374= 3556 8380= 8382= 8375= 8385= 3577 8386= U 2560 8390= 8451= 8400= 8409= 8396= 8453= 8440= 8443= U 2570 8447= 8448= 8475= 8477= 8478= 8482= 8502= 8504= U 2600 8492= 3582 8494= 8519= 8509= 8513= 3615 8532= U 2610 8537= 8539= 8543= 8546= 8553= 8555= 8571= 8573= U 2620 8576= 8577= 8598= 3618 8602= 8603= 8600= 3620 U 2630 8639= 8640= 8644= 8645= 8650= 8651= 8654= 8655= U 2640 8668= 8669= 8677= 8678= 8680= 8681= 8694= 8699= U 2650 8704= 8707= 8714= 8717= 8727= 8729= 8733= 8736= U 2660 8739= 8740= 8744= 8746= 8750= 8752= 8756= 8757= U 2670 8766= 8769= 8789= 8791= 8793= 8794= 8797= 8798= U 2700 8800= 3622 8831= 8832= 8837= 8841= 8844= 8848= U 2710 8857= 8858= 8865= 8866= 3624 3644 3666 3688 U 2720 3706 3725 3730 3744 3749 3759 3776 3811 U 2730 3817 3819 3823 3831 3846 3848 3851 3948 U 2740 3990 3991 3993 4007 4012 4029 4032 4044 U 2750 4046 4050 4098 4109 4124 4132 4151 4152 U 2760 4156 4174 4176 4193 4194 4205 4214 4217 U 2770 4218 4219 4220 4222 4228 4229 4230 4237 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 315 ; Location / Line Number Index ; Ucode Loc'n 0 1 2 3 4 5 6 7 U 3000 4253 4256 4268 4323 4331 4332 4334 4357 U 3010 4359 4393 4402 4403 4406 4411 4412 4414 U 3020 4438 4441 4442 4445 4451 4457 4458 4462 U 3030 4464 4465 4467 4472 4473 4475 4476 4482 U 3040 4485 4490 4498 4537 4543 4544 4550 4551 U 3050 4552 4553 4554 4559 4563 4564 4567 4597 U 3060 4615 4617 4622 4627 4632 4633 4634 4641 U 3070 4643 4650 4721 4722 4741 4742 4750 4752 U 3100 4773 4777 4810 4819 4822 4823 4824 4827 U 3110 4828 4829 4896 4897 4900 4903 4904 4905 U 3120 4906 4908 4911 4914 4915 4916 4918 4943 U 3130 4953 4954 4957 4959 4961 4980 4981 4982 U 3140 4983 4989 4997 5027 5041 5044 5045 5057 U 3150 5059 5062 5071 5098 5105 5106 5108 5110 U 3160 5111 5125 5140 5163 5165 5168 5176 5180 U 3170 5182 5184 5292 5293 5294 5302 5326 5331 U 3200 5334 5359 5360 5361 5384 5407 5416 5417 U 3210 5437 5521 5550 5555 5570 5574 5575 5578 U 3220 5583 5585 5590 5592 5593 5606 5608 5623 U 3230 5638 5639 5643 5651 5657 5663 5677 5678 U 3240 5681 5701 5705 5708 5711 5712 5715 5730 U 3250 5764 5767 5777 5805 5810 5812 5818 5923 U 3260 5925 5927 5928 5936 5974 5985 5986 5991 U 3270 6012 6018 6019 6022 6034 6051 6058 6061 U 3300 6062 6063 6066 6067 6069 6075 6076 6093 U 3310 6094 6120 6127 6128 6129 6137 6138 6139 U 3320 6140 6141 6142 6147 6148 6161 6163 6165 U 3330 6179 6204 6207 6230 6248 6251 6253 6261 U 3340 6264 6269 6271 6278 6287 6298 6299 6318 U 3350 6340 6342 6352 6353 6355 6356 6357 6358 U 3360 6359 6362 6368 6373 6380 6386 6387 6388 U 3370 6391 6392 6393 6408 6412 6432 6434 6439 U 3400 6440 6461 6462 6476 6525 6526 6528 6550 U 3410 6551 6587 6593 6594 6595 6596 6614 6635 U 3420 6637 6647 6650 6655 6656 6657 6658 6659 U 3430 6661 6664 6676 6679 6681 6683 6684 6701 U 3440 6742 6745 6750 6752 6827 6849 6852 6854 U 3450 6873 6891 6894 6896 6903 6904 6918 6920 U 3460 6925 6935 6936 6944 6946 6954 6956 6958 U 3470 6959 6960 6962 6965 6969 6971 6989 6992 U 3500 7033 7034 7036 7062 7063 7064 7066 7067 U 3510 7072 7081 7083 7086 7088 7091 7096 7099 U 3520 7102 7103 7105 7107 7122 7138 7142 7160 U 3530 7171 7173 7178 7187 7188 7191 7196 7197 U 3540 7218 7227 7228 7233 7256 7257 7260 7261 U 3550 7264 7265 7268 7269 7272 7273 6913: 6914: U 3560 7282 7284 7285 7286 7295 7297 7302 7303 U 3570 7306 7313 7324 7328 7329 7331 7335 7343 ; KS10.MCR[7,3] 15:03 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 316 ; Location / Line Number Index ; Ucode Loc'n 0 1 2 3 4 5 6 7 U 3600 7344 7345 7352 7353 7355 7372 7373 7395 U 3610 7396 7397 7399 7405 7406 7413 7418 7431 U 3620 7440 7443 7463 7464 7465 7466 7467 7468 U 3630 7469 7472 7473 7474 7484 7486 7489 7491 U 3640 7492 7496 7519 7533 7537 7540 7553 7602 U 3650 7655 7684 7699 7700 7704 7711 7718 7733 U 3660 7749 7751 7753 7755 7757 7759 7761 7763 U 3670 7765 7767 7863 7870 7881 7954 7960 7962 U 3700 7965 7968 7975 7978 7981 7984 7987 7992 U 3710 7993 7994 7996 8230 8232 8233 8234 8235 U 3720 8244 8245 8246 8248 8274 8275 8276 8280 U 3730 8283 8284 8295 8297 8307 8343 8345 8472 U 3740 6099: 6456: 6160: 6293: 5959: 8498 8547 8550 U 3750 8551 6457: 8557 8559 5960: 8564 8566 8568 U 3760 8569 8570 8578 8579 8580 8583 8587 8632 U 3770 8634 8636 8665 8679 8690 8719 8721 8243: No errors detected End of microcode assembly 319 pages of listing Used 47.87 seconds, 118 pages of core Symbol table: 31P Text strings: 9P Loc'n assignment: 18P Cross reference: 53P