; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 1 ; TABLE OF CONTENTS ; 3 MICROCODE CONDITIONAL ASSEMBLY PARAMETERS FOR ITS ; 34 MIT REVISION HISTORY ; 114 DEC REVISION HISTORY ; 246 HOW TO READ THE MICROCODE ; 455 CONDITIONAL ASSEMBLY DEFINITIONS ; 505 2901 REGISTER USAGE ; 542 MICROCODE FIELDS -- LISTING FORMAT ; 591 MICROCODE FIELDS -- DATAPATH CHIP ; 746 MICROCODE FIELDS -- RAM FILE ADDRESS AND D-BUS ; 781 MICROCODE FIELDS -- PARITY GENERATION & HALF WORD CONTROL ; 805 MICROCODE FIELDS -- SPEC ; 910 MICROCODE FIELDS -- DISPATCH ; 955 MICROCODE FIELDS -- SKIP ; 1007 MICROCODE FIELDS -- TIME CONTROL ; 1028 MICROCODE FIELDS -- RANDOM CONTROL BITS ; 1051 MICROCODE FIELDS -- NUMBER FIELD ; 1410 SUBFIELD DEFINITIONS FOR .RAMFILE ; 1425 DISPATCH ROM DEFINITIONS ; 1472 HOW TO READ MACROS ; 1634 MACROS -- DATA PATH CHIP -- GENERAL ; 1788 MACROS -- DATA PATH CHIP -- Q ; 1824 MACROS -- DATA PATH CHIP -- MISC. ; 1846 MACROS -- STORE IN AC ; 1880 MACROS -- MICROCODE WORK SPACE ; 1909 MACROS -- MEMORY CONTROL ; 1960 MACROS -- VMA ; 1978 MACROS -- TIME CONTROL ; 1992 MACROS -- SCAD, SC, FE LOGIC ; 2077 MACROS -- DATA PATH FIELD CONTROL ; 2094 MACROS -- SHIFT PATH CONTROL ; 2108 MACROS -- SPECIAL FUNCTIONS ; 2140 MACROS -- PC FLAGS ; 2171 MACROS -- PAGE FAIL FLAGS ; 2180 MACROS -- SINGLE SKIPS ; 2206 MACROS -- SPECIAL DISPATCH MACROS ; 2242 DISPATCH ROM MACROS ; 2287 POWER UP SEQUENCE ; 2378 THE INSTRUCTION LOOP -- START NEXT INSTRUCTION ; 2523 ONE-PROCEED TRAP ; 2538 THE INSTRUCTION LOOP -- FETCH ARGUMENTS ; 2652 THE INSTRUCTION LOOP -- STORE ANSWERS ; 2738 MOVE GROUP ; 2776 EXCH ; 2792 HALFWORD GROUP ; 2962 DMOVE, DMOVN, DMOVEM, DMOVNM ; 2994 BOOLEAN GROUP ; 3152 ROTATES AND LOGICAL SHIFTS -- ROT, LSH, JFFO ; 3253 ROTATES AND LOGICAL SHIFTS -- LSHC ; 3289 ROTATES AND LOGICAL SHIFTS -- ASHC ; 3329 ROTATES AND LOGICAL SHIFTS -- ROTC ; 3362 CIRC ; 3393 TEST GROUP ; 3548 COMPARE -- CAI, CAM ; 3618 ARITHMETIC SKIPS -- AOS, SOS, SKIP ; 3669 CONDITIONAL JUMPS -- JUMP, AOJ, SOJ, AOBJ ; 3762 AC DECODE JUMPS -- JRST, JFCL ; 3875 EXTENDED ADDRESSING INSTRUCTIONS ; 3917 XCT, XCTR, XCTRI ; 3962 STACK INSTRUCTIONS -- PUSHJ, PUSH, POP, POPJ ; 4061 STACK INSTRUCTIONS -- ADJSP ; 4095 SUBROUTINE CALL/RETURN -- JSR, JSP, JSA, JRA ; 4150 ILLEGAL INSTRUCTIONS AND UUO'S ; 4358 ARITHMETIC -- ADD, SUB ; 4388 ARITHMETIC -- DADD, DSUB ; 4422 ARITHMETIC -- MUL, IMUL ; 4474 ARITHMETIC -- DMUL ; 4618 ARITHMETIC -- DIV, IDIV ; 4697 ARITHMETIC -- DDIV ; 4820 ARITHMETIC -- DIVIDE SUBROUTINE ; 4886 ARITHMETIC -- DOUBLE DIVIDE SUBROUTINE ; 4927 ARITHMETIC -- SUBROUTINES FOR ARITHMETIC ; 4974 BYTE GROUP -- IBP, ILDB, LDB, IDPB, DPB ; 5053 BYTE GROUP -- INCREMENT BYTE POINTER SUBROUTINE ; 5067 BYTE GROUP -- BYTE EFFECTIVE ADDRESS EVALUATOR ; 5102 BYTE GROUP -- LOAD BYTE SUBROUTINE ; 5156 BYTE GROUP -- DEPOSIT BYTE IN MEMORY ; 5246 BYTE GROUP -- ADJUST BYTE POINTER ; 5409 BLT ; 5527 UBABLT - BLT BYTES TO/FROM UNIBUS FORMAT ; 5599 FLOATING POINT -- FAD, FSB ; 5645 FLAOTING POINT -- FMP ; 5675 FLOATING POINT -- FDV ; 5726 FLOATING POINT -- FLTR, FSC ; 5762 FLOATING POINT -- FIX AND FIXR ; 5800 FLOATING POINT -- SINGLE PRECISION NORMALIZE ; 5866 FLOATING POINT -- ROUND ANSWER ; 5878 FLOATING POINT -- DFAD, DFSB ; 5968 FLOATING POINT -- DFMP ; 6030 FLOATING POINT -- DFDV ; 6085 FLOATING POINT -- DOUBLE PRECISION NORMALIZE ; 6197 EXTEND -- DISPATCH ROM ENTRIES ; 6251 EXTEND -- INSTRUCTION SET DECODING ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 2 ; TABLE OF CONTENTS ; 6294 EXTEND -- MOVE STRING -- SETUP ; 6340 EXTEND -- MOVE STRING -- OFFSET/TRANSLATE ; 6372 EXTEND -- MOVE STRING -- MOVSRJ ; 6421 EXTEND -- MOVE STRING -- SIMPLE MOVE LOOP ; 6446 EXTEND -- COMPARE STRING ; 6508 EXTEND -- DECIMAL TO BINARY CONVERSION ; 6641 EXTEND -- BINARY TO DECIMAL CONVERSION ; 6800 EXTEND -- EDIT -- MAIN LOOP ; 6855 EXTEND -- EDIT -- DECODE OPERATE GROUP ; 6875 EXTEND -- EDIT -- STOP EDIT ; 6891 EXTEND -- EDIT -- START SIGNIFICANCE ; 6899 EXTEND -- EDIT -- EXCHANGE MARK AND DESTINATION ; 6911 EXTEND -- EDIT -- PROCESS SOURCE BYTE ; 6975 EXTEND -- EDIT -- MESSAGE BYTE ; 6999 EXTEND -- EDIT -- SKIP ; 7014 EXTEND -- EDIT -- ADVANCE PATTERN POINTER ; 7048 EXTEND SUBROUTINES -- FILL OUT DESTINATION ; 7073 EXTEND SUBROUTINES -- GET MODIFIED SOURCE BYTE ; 7111 EXTEND SUBROUTINES -- TRANSLATE ; 7198 EXTEND SUBROUTINES -- GET UNMODIFIED SOURCE BYTE ; 7228 EXTEND SUBROUTINES -- STORE BYTE IN DESTINATION STRING ; 7250 EXTEND SUBROUTINES -- UPDATE DEST STRING POINTERS ; 7295 EXTEND -- PAGE FAIL CLEANUP ; 7337 TRAPS ; 7367 IO -- INTERNAL DEVICES ; 7486 IO -- INTERNAL DEVICES -- EBR & UBR ; 7619 IO -- INTERNAL DEVICES -- KL PAGING REGISTERS ; 7740 IO -- INTERNAL DEVICES -- TIMER CONTROL ; 7790 IO -- INTERNAL DEVICES -- WRTIME & RDTIME ; 7830 IO -- INTERNAL DEVICES -- WRINT & RDINT ; 7845 IO -- INTERNAL DEVICES -- RDPI & WRPI ; 7888 IO -- INTERNAL DEVICES -- SUBROUTINES ; 8059 PRIORITY INTERRUPTS -- DISMISS SUBROUTINE ; 8075 ITS IO INSTRUCTIONS ; 8168 EXTERNAL IO INSTRUCTIONS ; 8365 SMALL SUBROUTINES ; 8392 UNDEFINED IO INSTRUCTIONS ; 8470 UMOVE AND UMOVEM ; 8526 WRITE HALT STATUS BLOCK ; 8622 ITS PAGE REFILL CODE ; 9057 PAGE FAIL REFIL LOGIC ; CROSS REFERENCE INDEX ; DCODE LOCATION / LINE # INDEX ; UCODE LOCATION / LINE # INDEX ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 3 ; DSK: KSHACK; ITS 15 15:29:13 12-JUNE-86 MICROCODE CONDITIONAL ASSEMBLY PARAMETERS FOR ITS ; 1 ;;;-*-Fundamental-*- ; 2 ; 3 .TOC "MICROCODE CONDITIONAL ASSEMBLY PARAMETERS FOR ITS" ; 4 ; 5 .SET/CIRC=1 ;Enable CIRC instruction. ; 6 ; 7 .SET/ITS=1 ;ITS style microcode. ; 8 ; 9 .SET/JPC=0 ;No JPC initially. ; 10 ; 11 .SET/1PROC=1 ;One-Proceed feature. ; 12 ; 13 .SET/PCST=1 ;PC Sample Table ; 14 ; 15 .SET/ITSIO=1 ;ITS I/O instructions. ; 16 ; 17 .SET/TEST=0 ;1 => Testing some new feature. ; 18 ; 19 MICROCODE VERSION/=<99:107> ; 20 UCV=262. ; 21 ; 22 HARDWARE OPTIONS/=<90:92> ; 23 HWOPT=0 ; 24 ; 25 HARDWARE SERIAL NUMBER/=<93:107> ; 26 HWSER=1729. ; 27 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 4 ; DSK: KSHACK; KS10 47 21:53:04 16-JAN-87 MICROCODE CONDITIONAL ASSEMBLY PARAMETERS FOR ITS ; 28 ;;;-*-Fundamental-*- ; 29 ; 30 .NOBIN ; 31 .TITLE "KS10 MICROCODE FOR ITS" ; 32 ;FROM KS10 MICROCODE V117, 12 JANUARY 1979 -- DON LEWINE ; 33 ; 34 .TOC "MIT REVISION HISTORY" ; 35 ; 36 ;;; 1/16/87 Merge in DEC versions 120-130 inclusive (see comments below) ; 37 ;;; Change floating-point code to keep its hands off flag bits ; 38 ;;; other than FLG.SN, so it doesn't interfere with one-proceed. ; 39 ;;; 8/1/86 262. Try T/4T at XCTGO, see if one-proc in ACs works. ; 40 ;;; Afraid not, foo. Took T/4T back out. ; 41 ;;; +++ microcode 261 released +++ ; 42 ;;; 6/8/86 Still 261. Fix XCTR BLT bug, addresses same, spaces different. ; 43 ;;; 5/86 261. One-proceed more or less works, fix page age bug. ; 44 ;;; 5/28/85 Version 261. Started on one-proceed feature. ; 45 ;;; 5/4/85 Version 260. Added ITS I/O instructions. ; 46 ;;; 11/24/84 Flushed PCLSRing hack. More trouble than it was worth. ; 47 ;;; Also moved main program level page fail words back to the ; 48 ;;; EPT. ; 49 ;;; 11/21/84 Fixed last bug in PCLSRing hack: The PC stored in the MUUO ; 50 ;;; old PC location needed to be incremented. ; 51 ;;; 11/20/84 OK, I gave in and made the PCLSRing hack obtain the new PC ; 52 ;;; from a new location as well. ; 53 ;;; 11/19/84 Fixed PCLSRing hack to also store context word. Fixed ; 54 ;;; RDUBR and WRUBR to deal in addresses rather than in page ; 55 ;;; numbers. ; 56 ;;; 11/16/84 Added special PCLSRing hack to page fail trapping. When ; 57 ;;; page fault occurs in user mode, a duplicate copy of the old ; 58 ;;; PC is stashed in the MUUO old PC location. ; 59 ;;; 11/2/84 Fixed quantum counter to count in same units as other ; 60 ;;; timers. Time spent at PI level is only approximately ; 61 ;;; accounted for. ; 62 ;;; 10/25/84 Added quantum counter. Moved main program level page ; 63 ;;; fail words back to UPT. Moved all page fail words down ; 64 ;;; to 440 to compact UPT and EPT. ; 65 ;;; 10/18/84 Fixed interval timer to keep more accurate time on the ; 66 ;;; average. ; 67 ;;; 10/17/84 Finishing touches on ITS paging. ; 68 ;;; 9/29/84 CIRC instruction. Version 259. ; 69 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 5 ; DSK: KSHACK; KS10 47 21:53:04 16-JAN-87 MIT REVISION HISTORY ; 70 ; 71 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 72 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 73 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 74 ;;; ;;; ; 75 ;;; ;;; ; 76 ;;; COPYRIGHT (C) 1976, 1977, 1978, 1979, DIGITAL ;;; ; 77 ;;; EQUIPMENT CORP., MAYNARD, MASS. ;;; ; 78 ;;; ;;; ; 79 ;;; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ;;; ; 80 ;;; ONLY ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ;;; ; 81 ;;; ONLY WITH THE INCLUSION OF THE ABOVE COPYRIGHT ;;; ; 82 ;;; NOTICE. THIS SOFTWARE, OR ANY OTHER COPIES THEREOF, ;;; ; 83 ;;; MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ;;; ; 84 ;;; ANY OTHER PERSON EXCEPT FOR USE ON SUCH SYSTEM AND ;;; ; 85 ;;; TO ONE WHO AGREES TO THESE LICENSE TERMS. TITLE TO ;;; ; 86 ;;; AND OWNERSHIP OF THE SOFTWARE SHALL AT ALL TIMES ;;; ; 87 ;;; REMAIN IN DEC. ;;; ; 88 ;;; ;;; ; 89 ;;; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO ;;; ; 90 ;;; CHANGE WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS ;;; ; 91 ;;; A COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ;;; ; 92 ;;; ;;; ; 93 ;;; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR ;;; ; 94 ;;; RELIABILITY OF ITS SOFTWARE IN EQUIPMENT WHICH IS ;;; ; 95 ;;; NOT SUPPLIED BY DEC. ;;; ; 96 ;;; ;;; ; 97 ;;; DESIGNED AND WRITTEN BY: ;;; ; 98 ;;; DONALD A. LEWINE ;;; ; 99 ;;; DIGITAL EQUIPMENT CORP. ;;; ; 100 ;;; MARLBORO, MASS. ;;; ; 101 ;;; MR1-2/E47 X6430 ;;; ; 102 ;;; ;;; ; 103 ;;; MAINTAINED BY: ;;; ; 104 ;;; DONALD A. LEWINE ;;; ; 105 ;;; DIGITAL EQUIPMENT CORP. ;;; ; 106 ;;; MARLBORO, MASS. ;;; ; 107 ;;; MR1-2/E47 X6430 ;;; ; 108 ;;; ;;; ; 109 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 110 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 111 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 112 ; 113 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 6 ; DSK: KSHACK; KS10 47 21:53:04 16-JAN-87 DEC REVISION HISTORY ; 114 .TOC "DEC REVISION HISTORY" ; 115 ; 116 ;REV WHY ; 117 ;1 START KS10 MICROCODE BASED ON SM10 MICROCODE VERSION 510 ; 118 ;2 UPDATE TO KS10 VERSION 512 ; 119 ;3 FIX SOME DEFAULTS ; 120 ;4 CHANGE HARDWARE TO MATCH ECO #215 ; 121 ;5 START TO UPDATE IO MICROCODE ; 122 ;6 MORE WORK ON IO ; 123 ;7 MAKE INTERRUPT THE 8080 BE A PULSE. ; 124 ;10 ADD NEW RDIO AND WRIO ; 125 ;11 FIX PROBLEMS IN MUUO CODE & CORRECT T-FIELDS ; 126 ;12 FIX PROBLEMS IN DDIV ; 127 ;13 FIX UP PROBLEMS IN PI ; 128 ;14 TURN ON WRITE FOR FL-EXIT ; 129 ;15 FIX UP MAP INSTRUCTION ; 130 ;16 MORE WORK ON KI-STYLE MAP ; 131 ;17 INVERT HOLD RIGHT AND HOLD LEFT BITS ; 132 ;20 FIXUP WRIO & RDIO EFFECTIVE ADDRESS CALC. ; 133 ;21 FIX EDIT 15 ; 134 ;22 HAVE LSH USE FAST SHIFT HARDWARE ; 135 ;23 FIX T-FIELD VALUES FOR PRODUCTION HARDWARE ; 136 ;24 REMOVE WRITE TEST FROM IO READS & WRITES ; 137 ;25 REWRITE MUL & MULI TO BE FASTER AND SMALLER. ALSO MAKE ADJBP ; 138 ; USE NEW MULSUB ; 139 ;26 MAKE BYTES USE FAST SHIFT ECO. ; 140 ;27 MAKE SURE VMA FETCH IS CORRECT ; 141 ;30 MORE OF 25 (FORGOT FMP) ; 142 ;31 FIX SOME PROBLEMS WITH TRAPS ; 143 ;32 SPEED UP EFFECTIVE ADDRESS CALCULATION ; 144 ;33 MORE OF 32 ; 145 ;34 SPEED UP ASH & ROT ; 146 ;35 FIX UP RDTIM SO THAT TIME DOES NOT GO BACKWARDS ; 147 ;36 MORE OF 35 ; 148 ;37 FIX UP PROBLEMS WITH INTERRUPTS AND DOUBLE F.P. ; 149 ;40 IMPROVE LISTING FORMAT ; 150 ;41 SPEEDUP KL-MODE PAGE REFILL ; 151 ;42 FIX UP DDIV ; 152 ;43 STILL MORE DDIV STUFF ; 153 ;44 CORRECT PROBLEMS IN D.P. PARITY STUFF ; 154 ;45 CORRECT THE BLT CLEAR-CORE CASE TO INTERRUPT CORRECTLY ; 155 ;46 MORE OF 45 ; 156 ;47 DO NOT ALLOW SOFTWARE INTERRUPTS IF THE PI LEVEL IS NOT ; 157 ; ACTIVE. ; 158 ;50 MAKE FDV WORK THE SAME AS THE KL10 ; 159 ;51 FIX INTERRUPT IN CVTBDX. MAKE ABORT WORK LIKE SPEC. ; 160 ;52 FIX BUG IN HALT LOOP ; 161 ;53 FIX IOEA TO WORK IF NO @ OR INDEXING ; 162 ;54 EDIT 47 BROKE JEN ; 163 ;55 FIX FLAGS IN MULTIPLY. ALSO CODE BUMS ; 164 ;56 MORE CODE BUMS ; 165 ;57 CORRECT OVERFLOW TRAPS WHICH DO MUUOS TO NOT STORE ; 166 ; THE TRAP FLAGS. ; 167 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 7 ; DSK: KSHACK; KS10 47 21:53:04 16-JAN-87 DEC REVISION HISTORY ; 168 ; 169 ;60 CORRECT TRAPS SO THAT DSKEA RUNS RIGHT ; 170 ;61 MORE OF 60. NOTE: MICROCODE REQUIRES ECO #299!! ; 171 ;62 ONE MORE TRY AT EDIT 60. ; 172 ;63 CORRECT TOPS-10 STYLE PAGING SO THAT A WRITE VIOLATION SETS ; 173 ; BIT 2 IN THE PAGE FAIL WORD (ACCESS ALLOWED). ; 174 ;64 EDIT 63 BROKE HARD PAGE FAILS. (NXM, BAD DATA, AND IO NXM) ; 175 ;65 INTERRUPTS OUT OF MOVSRJ INSTRUCTIONS DO STRANGE THINGS. ; 176 ;66 IO NXM PAGE FAIL FOR MISSING UBA GIVES PC+1 IN PAGE FAIL BLOCK. ; 177 ;67 ON A BAD DATA ERROR, STORE THE BAD WORD IN AC BLOCK 7 WORD 0 AND ; 178 ; 1 ; 179 ;70 FIX A BUG WHICH CAUSED INTERRUPTS OUT OF CVTBDT TO GENERATE A BAD ; 180 ; ANSWER. ; 181 ;71 CLEANUP SOME THINGS TO MAKE LIFE EASIER FOR FIELD SERVICE ; 182 ;72 LOOK FOR 1-MS TRAP ON @ PAGE POINTERS AND ABORT REFILL IF ; 183 ; SET. ; 184 ;73 CORRECT EDIT 72. ; 185 ;74 EDIT 67 GENERATES A DATA PATH PARITY ERROR BECAUSE OF THE BAD ; 186 ; DATA. CORRECT TO NOT CHECK PARITY. ; 187 ; ALSO CHANGE POP TO TIE UP BUS LESS. ; 188 ;75 EDIT 60 BROKE TRAPS. MISSING =0 AT TRAP:. ; 189 ;76 CORRECT BUG IN DFAD AND DFSB ; 190 ;77 FIX PROBLEM SEEN IN SOME (ALL BUT ENGINEERING?) MACHINES CAUSED ; 191 ; BY EDIT 76 ; 192 ;100 CHANGE DFAD/DFSB TO HAVE 2 MORE GUARD BITS. THIS SHOULD PRODUCE ; 193 ; KL10 ANSWERS FOR ALL NORMALIZED INPUTS ; 194 ; ALSO FIX A BUG IN CVTBDX PAGE FAIL LOGIC. ; 195 ;101 DFDV OF 0.0 / -0.5 HANGS THE MACHINE ; 196 ;102 FIX CHOPPED FLOATING POINT INSTRUCTIONS ; 197 ;103 CORRECT DFDV ROUNDING BUG. ; 198 ;104 CORRECT PROBLEMS IN DFMP ; 199 ;105 RDTIME SOMETIMES GIVES WRONG ANSWER. CARRY BETWEEN ; 200 ; WORDS GETS LOST SOMETIME. ; 201 ;106 MOVEM (ALSO, SETZM, SETOM, ETC.) SOMETIMES DOES NOT GENERATE ; 202 ; A WRITE-TRAP IN 100% OF THE CASES THAT IT SHOULD. ; 203 ;107 PXCT 14, DOES NOT GET THE INDEX REGISTER IN THE PREVIOUS ; 204 ; CONTEXT ALL THE TIME. ; 205 ;110 FIX TYPO IN EDIT 103 ; 206 ;111 63. BIT BYTES DO NOT WORK CORRECTLY. DSKDA FAILS BECAUSE OF THIS ; 207 ; PROBLEM. ; 208 ;******* VERSION 111 WENT OUT WITH SYSTEM REV 2 ******* ; 209 ; 210 ;112 FIX COMMENT IN TEST INSTRUCTIONS ; 211 ;113 CORRECT IOEA TO COMPUTE CORRECT ADDRESS IF JUST LOCAL INDEXING ; 212 ; IS USED. ; 213 ;114 CORRECT INTERRUPT BUG IN DMUL ; 214 ;115 CORRECT COMMENTS HALT STATUS BLOCK ; 215 ;116 CORRECT PROBLEM WHERE CST MODIFIED BIT GETS SET BY MISTAKE. ; 216 ;117 RDINT INSTRUCTION DOES NOT WORK AT ALL. IT STORES RANDOM TRASH ; 217 ; IN THE WRONG PLACE. NEED TO LOAD BR NOT AR. ; 218 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 8 ; DSK: KSHACK; KS10 47 21:53:04 16-JAN-87 DEC REVISION HISTORY ; 219 ; 220 ;DEC changes after MIT version 261, merged in where relevant ; 221 ; 222 ;120 FLOATING POINT OPERATIONS SOMETIMES GET THE WRONG RESULT WITH ; 223 ; INPUTS OF UNNORMALIZED ZEROS. THIS SHOULD NEVER HAPPEN WITH ; 224 ; FORTRAN OR ANY OTHER DEC LANGUAGE. ; 225 ;121 PREVENT KEEP-ALIVE CRASHES FROM OCCURRING BECAUSE THE MOVSRJ ; 226 ; INSTRUCTION CAN LOCK OUT THE 1MS TIMER INTERRUPTS FROM BEING ; 227 ; HANDLED. THIS CAUSES THE OPERATING SYSTEM TO LOSE TRACK OF THE ; 228 ; PASSAGE OF TIME. ; 229 ;122 DFAD FOLLOWED BY A FSC OF -5 CAUSES THE FSC TO GET WRONG ; 230 ; ANSWER. HAD TO CLEAR FLAG WORD AT EXIT OF DFAD TO FIX PROBLEM ; 231 ;123 MORE CODE FOR EDIT 121. ADDED ANOTHER DISPATCH ADDRESS FOR ; 232 ; PAGE FAIL CODE AT PFD:. ; 233 ;124 ADD ASSEMBLY OPTIONS FOR NOCST AND INHIBIT CST UPDATE. (not in MIT ucode) ; 234 ; ADD BLTUB/BLTBU TO GET UBA STYLE BYTES SWAPPED TO/FROM ILDB FORM. ; 235 ; ADD ASSEMBLY OPTIONS FOR KI/KL PAGE. NEED THE SPACE FOR BLTUB/BU. (not in MIT ucode) ; 236 ;125 SUPPORT THE "MAJOR/MINOR VERSION IN 136" UCODE STANDARD. (not in MIT ucode) ; 237 ; FIX BAD CONSTRAINT FOR INHCST ASSEMBLIES (NOT CURRENTLY USED) (not in MIT ucode) ; 238 ;126 FIX NON-TRIVIAL CASES OF RDUBR,WRUBR, AND PROCESS CONTEXT WORD. (not in MIT ucode) ; 239 ;127 JSR IN A TRAP CYCLE STORES E+1 SOMETIMES. TRAP CYCLE WAS NOT BEING ; 240 ; CLEARED (BY NICOND) BEFORE STARTING THE NEXT MEMORY READ. ; 241 ;130 FIX UCODE HANG WITH STOPPPED CLOCKS ON WR (KL-PAGING REGISTER) IF (not in MIT ucode) ; 242 ; PAGING IS ON. IDEALLY, WE WOULD REMOVE WRITE TEST FROM THE DROM ; 243 ; FIELD, BUT IT'S TOO LATE TO ECO THE ROMS. ; 244 ; RESTRICTION: WRITE KLPAGE REGISTER LOCATION MUST BE WRITABLE. ; 245 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 9 ; DSK: KSHACK; KS10 47 21:53:04 16-JAN-87 HOW TO READ THE MICROCODE ; 246 .TOC "HOW TO READ THE MICROCODE" ; 247 ; 248 ; ; 249 ; ; 250 ; 1.0 FIELD DEFINITIONS ; 251 ; ; 252 ; THESE OCCUR AT THE BEGINNING OF THE LISTING, IN THE SOURCE FILE KS10.MIC ; 253 ; (CONTROL AND DISPATCH RAM DEFINITIONS). THEY HAVE THE FORM: ; 254 ; ; 255 ; SYMBOL/=M,J ; 256 ; ; 257 ; THE PARAMETER (J) IS MEANINGFUL WHEN "D" IS SPECIFIED AS THE DEFAULT MECHANISM, ; 258 ; AND IN THAT CASE, GIVES THE DEFAULT VALUE OF THE FIELD IN OCTAL. WHEN "F" IS ; 259 ; SPECIFIED AS THE DEFAULT MECHANISM, (J) IS THE NAME OF A FIELD WHICH CONTAINS ; 260 ; THE DEFAULT VALUE FOR THIS FIELD. ; 261 ; ; 262 ; THE PARAMETER (L) GIVES THE BIT POSITION OF THE LEFTMOST BIT IN THE FIELD. THE ; 263 ; SAME METHOD IS USED AS FOR (R) BELOW. ; 264 ; ; 265 ; THE PARAMETER (R) GIVES THE FIELD POSITION IN DECIMAL AS THE BIT NUMBER OF THE ; 266 ; RIGHTMOST BIT OF THE FIELD. BITS ARE NUMBERED FROM 0 ON THE LEFT. NOTE THAT ; 267 ; THE POSITION OF BITS IN THE MICROWORD SHOWN IN THE LISTING BEARS NO RELATION TO ; 268 ; THE ORDERING OF BITS IN THE HARDWARE MICROWORD, WHERE FIELDS ARE OFTEN BROKEN UP ; 269 ; AND SCATTERED. ; 270 ; ; 271 ; THE PARAMETER (M) IS OPTIONAL, AND SELECTS A DEFAULT MECHANISM FOR THE FIELD. ; 272 ; THE LEGAL VALUES OF THIS PARAMETER ARE THE CHARACTERS "D", "F", "T", "P", OR ; 273 ; "+". ; 274 ; ; 275 ; "D" MEANS (J) IS THE DEFAULT VALUE OF THE FIELD IF NO EXPLICIT VALUE IS ; 276 ; SPECIFIED. ; 277 ; ; 278 ; "F" IS USED TO CAUSE THIS FIELD TO DEFAULT TO SOME OTHER FIELD. ; 279 ; ; 280 ; "T" IS USED ON THE TIME FIELD TO SPECIFY THAT THE VALUE OF THE FIELD ; 281 ; DEPENDS ON THE TIME PARAMETERS SELECTED FOR OTHER FIELDS. "T" IS NOT ; 282 ; USED IN THE KS10. ; 283 ; ; 284 ; "P" IS USED ON THE PARITY FIELD TO SPECIFY THAT THE VALUE OF THE FIELD ; 285 ; SHOULD DEFAULT SUCH THAT PARITY OF THE ENTIRE WORD IS ODD. "P" IS NOT ; 286 ; USED ON THE KS10. ; 287 ; ; 288 ; "+" IS USED ON THE JUMP ADDRESS FIELD TO SPECIFY THAT THE DEFAULT JUMP ; 289 ; ADDRESS IS THE ADDRESS OF THE NEXT INSTRUCTION ASSEMBLED (NOT, IN ; 290 ; GENERAL, THE CURRENT LOCATION +1). ; 291 ; ; 292 ; IN GENERAL, A FIELD CORRESPONDS TO THE SET OF BITS WHICH PROVIDE SELECT INPUTS ; 293 ; FOR MIXERS OR DECODERS, OR CONTROLS FOR ALU'S. ; 294 ; ; 295 ; ; 296 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 10 ; DSK: KSHACK; KS10 47 21:53:04 16-JAN-87 HOW TO READ THE MICROCODE ; 297 ; 298 ; 2.0 VALUE DEFINITIONS ; 299 ; ; 300 ; FOLLOWING A FIELD DEFINITION, SYMBOLS MAY BE CREATED IN THAT FIELD TO CORRESPOND ; 301 ; TO VALUES OF THE FIELD. THE FORM IS: ; 302 ; ; 303 ; SYMBOL=N ; 304 ; ; 305 ; "N" IS, IN OCTAL, THE VALUE OF SYMBOL WHEN USED IN THE FIELD. ; 306 ; ; 307 ; ; 308 ; ; 309 ; 3.0 LABEL DEFINITIONS ; 310 ; ; 311 ; A MICRO INSTRUCTION MAY BE LABELLED BY A SYMBOL FOLLOWED BY COLON PRECEDING THE ; 312 ; MICROINSTRUCTION DEFINITION. THE ADDRESS OF THE MICROINSTRUCTION BECOMES THE ; 313 ; VALUE OF THE SYMBOL IN THE FIELD NAMED "J". EXAMPLE: ; 314 ; ; 315 ; FOO: J/FOO ; 316 ; ; 317 ; THIS IS A MICROINSTRUCTION WHOSE "J" FIELD (JUMP ADDRESS) CONTAINS THE VALUE ; 318 ; "FOO". IT ALSO DEFINES THE SYMBOL "FOO" TO BE THE ADDRESS OF ITSELF. ; 319 ; THEREFORE, IF EXECUTED BY THE MICROPROCESSOR, IT WOULD LOOP ON ITSELF. ; 320 ; ; 321 ; ; 322 ; ; 323 ; 4.0 COMMENTS ; 324 ; ; 325 ; A SEMICOLON ANYWHERE ON A LINE CAUSES THE REST OF THE LINE TO BE IGNORED BY THE ; 326 ; ASSEMBLER. THIS TEXT IS AN EXAMPLE OF COMMENTS. ; 327 ; ; 328 ; ; 329 ; ; 330 ; 5.0 MICROINSTRUCTION DEFINITION ; 331 ; ; 332 ; A WORD OF MICROCODE IS DEFINED BY SPECIFYING A FIELD NAME, FOLLOWED BY SLASH ; 333 ; (/), FOLLOWED BY A VALUE. THE VALUE MAY BE A SYMBOL DEFINED FOR THAT FIELD, AN ; 334 ; OCTAL DIGIT STRING, OR A DECIMAL DIGIT STRING (DISTINGUISHED BY THE FACT THAT IT ; 335 ; CONTAINS "8" AND/OR "9" AND/OR IS TERMINATED BY A PERIOD). SEVERAL FIELDS MAY ; 336 ; BE SPECIFIED IN ONE MICROINSTRUCTION BY SEPARATING FIELD/VALUE SPECIFICATIONS ; 337 ; WITH COMMAS. EXAMPLE: ; 338 ; ; 339 ; AD/ZERO,RAMADR/AC*#,ACALU/AC+N,ACN/1,DBUS/DP ; 340 ; ; 341 ; ; 342 ; 6.0 CONTINUATION ; 343 ; ; 344 ; THE DEFINITION OF A MICROINSTRUCTION MAY CONTINUED ONTO TWO OR MORE LINES BY ; 345 ; BREAKING IT AFTER ANY COMMA. IN OTHER WORDS, IF THE LAST NON-BLANK, NON-COMMENT ; 346 ; CHARACTER ON A LINE IS A COMMA, THE INSTRUCTION SPECIFICATION IS CONTINUED ON ; 347 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 11 ; DSK: KSHACK; KS10 47 21:53:04 16-JAN-87 HOW TO READ THE MICROCODE ; 348 ; 349 ; THE FOLLOWING LINE. EXAMPLE: ; 350 ; READ [AR], ;LOOK AT EFFECTIVE ADDRESS ; 351 ; SKIP DP18, ;SEE IF RIGHT OR LEFT SHIFT ; 352 ; SC_SHIFT-1, ;PUT NUMBER OF PLACE TO ; 353 ; ;SHIFT IN SC ; 354 ; LOAD FE, ; AND IN FE ; 355 ; INST DISP ;GO DO THE SHIFT ; 356 ; ; 357 ; ; 358 ; ; 359 ; 7.0 MACROS ; 360 ; ; 361 ; A MACRO IS A SYMBOL WHOSE VALUE IS ONE OR MORE FIELD/VALUE SPECIFICATIONS AND/OR ; 362 ; MACROS. A MACRO DEFINITION IS A LINE CONTAINING THE MACRO NAME FOLLOWED BY A ; 363 ; QUOTED STRING WHICH IS THE VALUE OF THE MACRO. EXAMPLE: ; 364 ; ; 365 ; LOAD VMA "MEM/1, LDVMA/1 ; 366 ; ; 367 ; THE APPEARANCE OF A MACRO IN A MICROINSTRUCTION DEFINITION IS EQUIVALENT TO THE ; 368 ; APPEARANCE OF ITS VALUE. ; 369 ; ; 370 ; MACRO MAY HAVE PARAMETERS ENCLOSED IN []. FOR EXAMPLE, ; 371 ; ; 372 ; []_[] "AD/A,A/@2,DEST/AD,B/@1" ; 373 ; ; 374 ; THE @1 GETS REPLACED BY WHAT IS WRITTEN IN THE FIRST SET OF [] AND @2 IS ; 375 ; REPLACED BY WHAT IS WRITTEN IN THE SECOND SET OF []. THUS ; 376 ; ; 377 ; [AR]_[ARX] ; 378 ; ; 379 ; HAS THE SAME EFFECT AS SAYING ; 380 ; ; 381 ; AD/A,A/ARX,DEST/AD,B/AR ; 382 ; ; 383 ; ; 384 ; SEE DESCRIPTION OF RULES FOR MACRO NAMES. ; 385 ; ; 386 ; 8.0 PSEUDO OPS ; 387 ; ; 388 ; THE MICRO ASSEMBLER HAS 13 PSEUDO-OPERATORS: ; 389 ; ; 390 ; .DCODE AND .UCODE SELECT THE RAM INTO WHICH SUBSEQUENT MICROCODE WILL BE ; 391 ; LOADED, AND THEREFORE THE FIELD DEFINITIONS AND MACROS WHICH ARE ; 392 ; MEANINGFUL IN SUBSEQUENT MICROCODE ; 393 ; .TITLE DEFINES A STRING OF TEXT TO APPEAR IN THE PAGE HEADER, AND ; 394 ; .TOC DEFINES AN ENTRY FOR THE TABLE OF CONTENTS AT THE BEGINNING. ; 395 ; .SET DEFINES THE VALUE OF A CONDITIONAL ASSEMBLY PARAMETER, ; 396 ; .CHANGE REDEFINES A CONDITIONAL ASSEMBLY PARAMETER, ; 397 ; .DEFAULT ASSIGNS A VALUE TO AN UNDEFINED PARAMETER. ; 398 ; .IF ENABLES ASSEMBLY IF THE VALUE OF THE PARAMETER IS NOT ZERO, ; 399 ; .IFNOT ENABLES ASSEMBLY IF THE PARAMETER VALUE IS ZERO, AND ; 400 ; .ENDIF RE-ENABLES ASSEMBLY IF SUPPRESSED BY THE PARAMETER NAMED. ; 401 ; .NOBIN TURNS OFF THE BINARY A GETS RID OF THE SPACE USED TO LIST IT, ; 402 ; .BIN TURN BINARY BACK ON AGAIN. ; 403 ; .WIDTH CONTROLS THE NUMBER OF BITS IN THE CRAM ; 404 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 12 ; DSK: KSHACK; KS10 47 21:53:04 16-JAN-87 HOW TO READ THE MICROCODE ; 405 ; 406 ; 9.0 LOCATION CONTROL ; 407 ; ; 408 ; A MICROINSTRUCTION "LABELLED" WITH A NUMBER IS ASSIGNED TO THAT ADDRESS. ; 409 ; ; 410 ; THE CHARACTER "=" AT THE BEGINNING OF A LINE, FOLLOWED BY A STRING OF 0'S, 1'S, ; 411 ; AND/OR *'S, SPECIFIES A CONSTRAINT ON THE ADDRESS OF FOLLOWING ; 412 ; MICROINSTRUCTIONS. THE NUMBER OF CHARACTERS IN THE CONSTRAINT STRING (EXCLUDING ; 413 ; THE "=") IS THE NUMBER OF LOW-ORDER BITS CONSTRAINED IN THE ADDRESS. THE ; 414 ; MICROASSEMBLER ATTEMPTS TO FIND AN UNUSED LOCATION WHOSE ADDRESS HAS 0 BITS IN ; 415 ; THE POSITIONS CORRESPONDING TO 0'S IN THE CONSTRAINT STRING AND 1 BITS WHERE THE ; 416 ; CONSTRAINT HAS 1'S. ASTERISKS DENOTE "DON'T CARE" BIT POSITIONS. ; 417 ; ; 418 ; IF THERE ARE ANY 0'S IN THE CONSTRAINT STRING, THE CONSTRAINT IMPLIES A BLOCK OF ; 419 ; <2**N> MICROWORDS, WHERE N IS THE NUMBER OF 0'S IN THE STRING. ALL LOCATIONS IN ; 420 ; THE BLOCK WILL HAVE 1'S IN THE ADDRESS BITS CORRESPONDING TO 1'S IN THE STRING, ; 421 ; AND BIT POSITIONS DENOTED BY *'S WILL BE THE SAME IN ALL LOCATIONS OF THE BLOCK. ; 422 ; ; 423 ; IN SUCH A CONSTRAINT BLOCK, THE DEFAULT ADDRESS PROGRESSION IS COUNTING IN THE ; 424 ; "0" POSITIONS OF THE CONSTRAINT STRING, BUT A NEW CONSTRAINT STRING OCCURING ; 425 ; WITHIN A BLOCK MAY FORCE SKIPPING OVER SOME LOCATIONS OF THE BLOCK. WITHIN A ; 426 ; BLOCK, A NEW CONSTRAINT STRING DOES NOT CHANGE THE PATTERN OF DEFAULT ADDRESS ; 427 ; PROGRESSION, IT MERELY ADVANCES THE LOCATION COUNTER OVER THOSE LOCATIONS. THE ; 428 ; MICROASSEMBLER WILL LATER FILL THEM IN. ; 429 ; ; 430 ; A NULL CONSTRAINT STRING ("=" FOLLOWED BY ANYTHING BUT "0", "1", OR "*") SERVES ; 431 ; TO TERMINATE A CONSTRAINT BLOCK. EXAMPLES: ; 432 ; ; 433 ; =0 ; 434 ; ; 435 ; THIS SPECIFIES THAT THE LOW-ORDER ADDRESS BIT MUST BE ZERO-- THE MICROASSEMBLER ; 436 ; FINDS AN EVEN-ODD PAIR OF LOCATIONS, AND PUTS THE NEXT TWO MICROINSTRUCTIONS ; 437 ; INTO THEM. ; 438 ; ; 439 ; =11 ; 440 ; THIS SPECIFIES THAT THE TWO LOW-ORDER BITS OF THE ADDRESS MUST BOTH BE ONES. ; 441 ; SINCE THERE ARE NO 0'S IN THIS CONSTRAINT, THE ASSEMBLER FINDS ONLY ONE LOCATION ; 442 ; MEETING THE CONSTRAINT. ; 443 ; ; 444 ; =0***** ; 445 ; ; 446 ; THIS SPECIFIES AN ADDRESS IN WHICH THE "40" BIT IS ZERO. DUE TO THE ; 447 ; IMPLEMENTATION OF THIS FEATURE IN THE ASSEMBLER, THE DEFAULT ADDRESS PROGRESSION ; 448 ; APPLIES ONLY TO THE LOW-ORDER 5 BITS, SO THIS CONSTRAINT FINDS ONE WORD IN WHICH ; 449 ; THE "40" BIT IS ZERO, AND DOES NOT ATTEMPT TO FIND ONE IN WHICH THAT BIT IS A ; 450 ; ONE. THIS LIMITATION HAS BEEN CHANGED WITH NEWER ASSEMBLER VERSIONS. HOWEVER ; 451 ; NONE OF THE LOCATIONS IN THE MICROCODE REQUIRE ANYTHING BUT THE CONSTRAINT ; 452 ; MENTIONED ABOVE. ; 453 ; 454 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 13 ; DSK: KSHACK; KS10 47 21:53:04 16-JAN-87 CONDITIONAL ASSEMBLY DEFINITIONS ; 455 .TOC "CONDITIONAL ASSEMBLY DEFINITIONS" ; 456 ; 457 .DEFAULT/SIM=0 ;0=RUN ON REAL HARDWARE ; 458 ;1=RUN UNDER SIMULATOR ; 459 ; 460 .DEFAULT/FULL=1 ;0=INCLUDE ONLY BASIC INSTRUCTIONS ; 461 ;1=INCLUDE FULL INSTRUCTION SET ; 462 ; 463 .DEFAULT/CIRC=0 ;1=Assemble the CIRC instruction. ; 464 ; 465 .DEFAULT/ITS=0 ;0=DEC style microcode. ; 466 ;1=ITS style microcode. ; 467 ; 468 .DEFAULT/JPC=0 ;1=Assemble JPC feature. ; 469 ; 470 .DEFAULT/1PROC=0 ;1=Assemble one-proceed feature. ; 471 ; 472 .DEFAULT/PCST=0 ;1=Assemble PC sampling feature. ; 473 ; 474 .DEFAULT/ITSIO=0 ;1=Assemble ITS I/O instructions. ; 475 ; 476 .DEFAULT/TEST=0 ;1=Assemble some temporary experimental feature. ; 477 ; 478 .WIDTH/108 ;ONLY FIELDS BETWEEN BITS 0 AND 107 EVER ; 479 ; GET LOADED INTO THE CRAM. OTHER FIELDS ; 480 ; ARE USED FOR DEFAULTING PROCESS. ; 481 ; 482 ;THIS IS USELESS AND BRAIN DAMAGED ; 483 ;STUFF IS KEPT OUT OF DROM SPACE BY MORE GENERAL MECHANISMS ; 484 ;.REGION/0,1377/2000,3777/1400,1777 ; 485 ; ;TRY AND KEEP STUFF OUT OF DROM SPACE ; 486 ; 487 ;WRITE A RAM FILE WITH THE FIELDS REARRANGED SO THE 8080 CAN HACK THEM ; 488 ;The RAM file format appears to be: ; 489 ; ; 490 ;4000 sequential CRAM locations starting at 0. ; 491 ;Each location is 96 bits expressed as 8 12-bit bytes and one ; 492 ;padding byte packed into three words. Bytes are in right to ; 493 ;left order within 36-bit words, and also within the 96-bit ; 494 ;words. Thus RAM SRC through MARK are in the right 12 bits of ; 495 ;the first 36-bit word and J is in the middle 12 bits of the ; 496 ;third 36-bit word. Parity is even parity, computed separately ; 497 ;for the two halves of the word packaged on different boards. ; 498 ; ; 499 ;.RAMFILE takes the fields in left-to-right (pdp10) order, ; 500 ;thus the 8080's eight 12-bit bytes are given in order 2,1,0,5,4,3,pad,7,6 ; 501 ;One parity bit is for 0-4, the other is for 5-7. ; 502 ; 503 .RAMFILE/ AD,RSRC,DBM,DBUS,A,CLKL,CLKR,B, ;WORDS 2-1 RAMADR,DEST,LOADSC,LOADFE,CHKL,CHKR, OD ; 504 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 14 ; DSK: KSHACK; KS10 47 21:53:04 16-JAN-87 2901 REGISTER USAGE ; 505 .TOC "2901 REGISTER USAGE" ; 506 ; 507 ; !=========================================================================! ; 508 ;0: ! MAG (ONES IN BITS 1-36, REST ZERO) ! ; 509 ; !-------------------------------------------------------------------------! ; 510 ;1: ! PC (ADDRESS OF CURRENT INSTRUCTION + 1) ! ; 511 ; !-------------------------------------------------------------------------! ; 512 ;2: ! HR (CURRENT INSTRUCTION) ! ; 513 ; !-------------------------------------------------------------------------! ; 514 ;3: ! AR (TEMP -- MEM OP AT INST START) ! ; 515 ; !-------------------------------------------------------------------------! ; 516 ;4: ! ARX (TEMP -- LOW ORDER HALF OF DOUBLE PREC) ! ; 517 ; !-------------------------------------------------------------------------! ; 518 ;5: ! BR (TEMP) ! ; 519 ; !-------------------------------------------------------------------------! ; 520 ;6: ! BRX (TEMP -- LOW ORDER HALF OF DOUBLE PREC BR!BRX) ! ; 521 ; !-------------------------------------------------------------------------! ; 522 ;7: ! ONE (THE CONSTANT 1) ! ; 523 ; !-------------------------------------------------------------------------! ; 524 ;10: ! EBR (EXEC BASE REGISTER) ! ; 525 ; !-------------------------------------------------------------------------! ; 526 ;11: ! UBR (USER BASE REGISTER) ! ; 527 ; !-------------------------------------------------------------------------! ; 528 ;12: ! MASK (ONES IN BITS 0-35, ZERO IN -1, -2, 36 AND 37) ! ; 529 ; !-------------------------------------------------------------------------! ; 530 ;13: ! FLG (FLAG BITS) ! PAGE FAIL CODE ! ; 531 ; !-------------------------------------------------------------------------! ; 532 ;14: ! PI (PI SYSTEM STATUS REGISTER [RDPI]) ! ; 533 ; !-------------------------------------------------------------------------! ; 534 ;15: ! XWD1 (1 IN EACH HALF WORD) ! ; 535 ; !-------------------------------------------------------------------------! ; 536 ;16: ! T0 (TEMP) ! ; 537 ; !-------------------------------------------------------------------------! ; 538 ;17: ! T1 (TEMP) ! ; 539 ; !=========================================================================! ; 540 ; 541 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 15 ; DSK: KSHACK; KS10 47 21:53:04 16-JAN-87 MICROCODE FIELDS -- LISTING FORMAT ; 542 .TOC "MICROCODE FIELDS -- LISTING FORMAT" ; 543 ; 544 ; ; 3633 1561: ; 545 ; ; 3634 SUB: [AR]_AC-[AR], ; 546 ; ; 3635 AD FLAGS, 3T, ; 547 ; U 1561, 1500,2551,0303,0274,4463,7701,4200,0001,0001 ; 3636 EXIT ; 548 ; [--] [--] !!!! [][] !!![-][][-][]! !!! [----] ; 549 ; ! ! !!!! ! ! !!!! ! ! ! ! !!! ! ; 550 ; ! ! !!!! ! ! !!!! ! ! ! ! !!! +---- # (MAGIC NUMBER) ; 551 ; ! ! !!!! ! ! !!!! ! ! ! ! !!! ; 552 ; ! ! !!!! ! ! !!!! ! ! ! ! !!+------------- MULTI PREC, MULTI SHIFT, CALL ; 553 ; ! ! !!!! ! ! !!!! ! ! ! ! !! (4S, 2S, 1S) ; 554 ; ! ! !!!! ! ! !!!! ! ! ! ! !+-------------- FM WRITE, MEM, DIVIDE ; 555 ; ! ! !!!! ! ! !!!! ! ! ! ! ! (4S, 2S, 1S) ; 556 ; ! ! !!!! ! ! !!!! ! ! ! ! +--------------- CRY38, LOAD SC, LOAD FE ; 557 ; ! ! !!!! ! ! !!!! ! ! ! ! (4S, 2S, 1S) ; 558 ; ! ! !!!! ! ! !!!! ! ! ! +----------------- T ; 559 ; ! ! !!!! ! ! !!!! ! ! ! ; 560 ; ! ! !!!! ! ! !!!! ! ! +------------------- SKIP ; 561 ; ! ! !!!! ! ! !!!! ! ! ; 562 ; ! ! !!!! ! ! !!!! ! +---------------------- DISP ; 563 ; ! ! !!!! ! ! !!!! ! ; 564 ; ! ! !!!! ! ! !!!! +------------------------ SPEC ; 565 ; ! ! !!!! ! ! !!!! ; 566 ; ! ! !!!! ! ! !!!+--------------------------- CLOCKS & PARITY ; 567 ; ! ! !!!! ! ! !!! (CLKR, GENR, CHKR, CLKL, GENL, CHKL) ; 568 ; ! ! !!!! ! ! !!+---------------------------- DBM ; 569 ; ! ! !!!! ! ! !! ; 570 ; ! ! !!!! ! ! !+----------------------------- DBUS ; 571 ; ! ! !!!! ! ! ! ; 572 ; ! ! !!!! ! ! +------------------------------ RAM ADDRESS ; 573 ; ! ! !!!! ! ! ; 574 ; ! ! !!!! ! +--------------------------------- B ; 575 ; ! ! !!!! ! ; 576 ; ! ! !!!! +----------------------------------- A ; 577 ; ! ! !!!! ; 578 ; ! ! !!!+------------------------------------- DEST ; 579 ; ! ! !!! ; 580 ; ! ! !!+-------------------------------------- RSRC ; 581 ; ! ! !! ; 582 ; ! ! !+--------------------------------------- LSRC ] ; 583 ; ! ! ! ] - AD ; 584 ; ! ! +---------------------------------------- ALU ] ; 585 ; ! ! ; 586 ; ! +--------------------------------------------- J ; 587 ; ! ; 588 ; LOCATION OF THIS MICRO WORD ; 589 ; 590 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 16 ; DSK: KSHACK; KS10 47 21:53:04 16-JAN-87 MICROCODE FIELDS -- DATAPATH CHIP ; 591 .TOC "MICROCODE FIELDS -- DATAPATH CHIP" ; 592 ; 593 J/=<0:11>+ ;CRA1 ; 594 ;NEXT MICROCODE ADDRESS ; 595 ; 596 ;ALU FUNCTIONS ; 597 ; 598 ;NOTE: THE AD FIELD IS A 2 DIGIT FIELD. THE LEFT DIGIT IS THE ; 599 ; 2901 ALU FUNCTION. THE RIGHT DIGIT IS THE 2901 SRC CODE FOR ; 600 ; THE LEFT HALF. NORMALY THE RIGHT HALF SRC CODE IS THE SAME AS ; 601 ; THE LEFT HALF. ; 602 AD/=<12:17>D,44 ;DPE1 & DPE2 ; 603 A+Q=00 ; 604 A+B=01 ; 605 0+Q=02 ; 606 0+B=03 ; 607 0+A=04 ; 608 D+A=05 ; 609 D+Q=06 ; 610 0+D=07 ; 611 Q-A-.25=10 ; 612 B-A-.25=11 ; 613 Q-.25=12 ; 614 B-.25=13 ; 615 A-.25=14 ; 616 A-D-.25=15 ; 617 Q-D-.25=16 ; 618 -D-.25=17 ; 619 A-Q-.25=20 ; 620 A-B-.25=21 ; 621 -Q-.25=22 ; 622 -B-.25=23 ; 623 -A-.25=24 ; 624 D-A-.25=25 ; 625 D-Q-.25=26 ; 626 D-.25=27 ; 627 A.OR.Q=30 ; 628 A.OR.B=31 ; 629 Q=32 ; 630 B=33 ; 631 A=34 ; 632 D.OR.A=35 ; 633 D.OR.Q=36 ; 634 D=37 ; 635 A.AND.Q=40 ; 636 A.AND.B=41 ; 637 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 17 ; DSK: KSHACK; KS10 47 21:53:04 16-JAN-87 MICROCODE FIELDS -- DATAPATH CHIP ; 638 ; 639 ;MORE ALU FUNCTIONS ; 640 ; 641 ZERO=42 ; 642 ; ZERO=43 ; 643 ; ZERO=44 ; 644 D.AND.A=45 ; 645 D.AND.Q=46 ; 646 ; ZERO=47 ; 647 .NOT.A.AND.Q=50 ; 648 .NOT.A.AND.B=51 ; 649 ; Q=52 ; 650 ; B=53 ; 651 ; A=54 ; 652 .NOT.D.AND.A=55 ; 653 .NOT.D.AND.Q=56 ; 654 ; ZERO=57 ; 655 A.XOR.Q=60 ; 656 A.XOR.B=61 ; 657 ; Q=62 ; 658 ; B=63 ; 659 ; A=64 ; 660 D.XOR.A=65 ; 661 D.XOR.Q=66 ; 662 ; D=67 ; 663 A.EQV.Q=70 ; 664 A.EQV.B=71 ; 665 .NOT.Q=72 ; 666 .NOT.B=73 ; 667 .NOT.A=74 ; 668 D.EQV.A=75 ; 669 D.EQV.Q=76 ; 670 .NOT.D=77 ; 671 ; 672 ;THIS FIELD IS THE RIGHTMOST 3 BITS OF THE ; 673 ; AD FIELD. IT IS USED ONLY TO DEFAULT THE RSRC ; 674 ; FIELD. ; 675 LSRC/=<15:17> ;DPE1 ; 676 ; 677 ;THIS IS THE SOURCE FOR THE RIGHT HALF OF THE ; 678 ; DATA PATH. IT LETS US MAKE THE RIGHT AND LEFT ; 679 ; HALF WORDS DO SLIGHTLY DIFFERENT THINGS. ; 680 RSRC/=<18:20>F,LSRC ;DPE2 ; 681 AQ=0 ;A Q ; 682 AB=1 ;A B ; 683 0Q=2 ;0 Q ; 684 0B=3 ;0 B ; 685 0A=4 ;0 A ; 686 DA=5 ;D A ; 687 DQ=6 ;D Q ; 688 D0=7 ;D 0 ; 689 ; 690 ;DESTINATION CONTROL ; 691 ;SEE DPE1 AND DPE2 (2'S WEIGHT IS INVERTED ON DPE5) ; 692 DEST/=<21:23>D,3 ;DPE1 & DPE2 ; 693 A=0 ;A REG IS CHIP OUTPUT, AD IS WRITTEN ; 694 ; INTO REG FILE ; 695 AD=1 ;REG FILE GETS AD ; 696 Q_AD=2 ;REG FILE IS NOT LOADED ; 697 PASS=3 ;AD OUTPUT IS CHIP OUTPUT ; 698 ; Q AND REG FILE LEFT ALONE ; 699 Q_Q*2=4 ;ALSO REG FILE GETS AD*2 ; 700 AD*2=5 ;AND Q IS LEFT ALONE ; 701 Q_Q*.5=6 ;ALSO REG FILE GETS AD*.5 ; 702 AD*.5=7 ;AND Q IS LEFT ALONE ; 703 ; 704 ; <24:25> ;UNUSED ; 705 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 18 ; DSK: KSHACK; KS10 47 21:53:04 16-JAN-87 MICROCODE FIELDS -- DATAPATH CHIP ; 706 ; 707 A/=<26:29> ;DPE1 & DPE2 ; 708 MAG=0 ; 709 PC=1 ; 710 HR=2 ; 711 AR=3 ; 712 ARX=4 ; 713 BR=5 ; 714 BRX=6 ; 715 ONE=7 ; 716 EBR=10 ; 717 UBR=11 ; 718 MASK=12 ; 719 FLG=13 ; 720 PI=14 ; 721 XWD1=15 ; 722 T0=16 ; 723 T1=17 ; 724 ; 725 ; <30:31> ;UNUSED ; 726 ; 727 B/=<32:35>D,0 ;DPE1 & DPE2 ; 728 MAG=0 ; 729 PC=1 ; 730 HR=2 ; 731 AR=3 ; 732 ARX=4 ; 733 BR=5 ; 734 BRX=6 ; 735 ONE=7 ; 736 EBR=10 ; 737 UBR=11 ; 738 MASK=12 ; 739 FLG=13 ; 740 PI=14 ; 741 XWD1=15 ; 742 T0=16 ; 743 T1=17 ; 744 ; 745 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 19 ; DSK: KSHACK; KS10 47 21:53:04 16-JAN-87 MICROCODE FIELDS -- RAM FILE ADDRESS AND D-BUS ; 746 .TOC "MICROCODE FIELDS -- RAM FILE ADDRESS AND D-BUS" ; 747 ; 748 RAMADR/=<36:38>D,4 ;DPE6 ; 749 AC#=0 ;AC NUMBER ; 750 AC*#=1 ;AC .FN. # ; 751 XR#=2 ;INDEX REGISTER ; 752 VMA=4 ;VIRTUAL MEMORY REFERENCE ; 753 RAM=6 ;VMA SUPPLIES 10-BIT RAM ADDRESS ; 754 #=7 ;ABSOLUTE RAM FILE REFERENCE ; 755 ; 756 ; <39:39> ; 757 ; 758 ;LEFT HALF ON DPE3 AND RIGHT HALF ON DPE4 ; 759 DBUS/=<40:41>D,1 ;DPE3 & DPE4 ; 760 PC FLAGS=0 ;PC FLAGS IN LEFT HALF ; 761 PI NEW=0 ;NEW PI LEVEL IN BITS 19-21 ; 762 ; VMA=0 ;VMA IN BITS 27-35 ; 763 DP=1 ;DATA PATH ; 764 RAM=2 ;CACHE, AC'S AND WORKSPACE ; 765 DBM=3 ;DBM MIXER ; 766 ; 767 ;LEFT HALF ON DPM1 AND RIGHT HALF ON DPM2 ; 768 DBM/=<42:44>D,7 ;DPM1 & DPM2 ; 769 SCAD DIAG=0 ;(LH) SCAD DIAGNOSTIC ; 770 PF DISP=0 ;PAGE FAIL DISP IN BITS 18-21 ; 771 APR FLAGS=0 ;APR FLAGS IN BITS 22-35 ; 772 BYTES=1 ;5 COPIES OF SCAD 1-7 ; 773 EXP=2 ;LH=EXPONENT, RH=TIME FRACTION ; 774 DP=3 ;DATA PATH ; 775 DP SWAP=4 ;DATA PATH SWAPPED ; 776 VMA=5 ;VMA FLAGS,,VMA ; 777 MEM=6 ;MEMORY BUFFER ; 778 #=7 ;NUMBER FIELD IN BOTH HALVES ; 779 ; 780 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 20 ; DSK: KSHACK; KS10 47 21:53:04 16-JAN-87 MICROCODE FIELDS -- PARITY GENERATION & HALF WORD CONTROL ; 781 .TOC "MICROCODE FIELDS -- PARITY GENERATION & HALF WORD CONTROL" ; 782 ; 783 AD PARITY OK/=<108>D,0 ;**NOT STORED IN CRAM** ; 784 ;THIS BIT IS A 1 IF THE ALU IS DOING ; 785 ; SOMETHING WHICH DOES NOT INVALIDATE ; 786 ; PARITY. IT DOES NOT APPEAR IN THE ; 787 ; REAL MACHINE. WE JUST USE IT TO SET ; 788 ; THE DEFAULT FOR GENR & GENL ; 789 ; 790 CLKL/=<45:45>D,1 ;DPE5 ; 791 ;CLOCK THE LEFT HALF OF THE MACHINE ; 792 GENL/=<46:46>F,AD PARITY OK ;DPE4 FROM CRM2 PARITY EN LEFT H ; 793 ;STORE PARITY FOR 2901 LEFT ; 794 CHKL/=<47:47> ;DPE4 FROM CRM2 PARITY CHK LEFT H ; 795 ;CHECK LEFT HALF DBUS PARITY ; 796 ; 797 CLKR/=<48:48>D,1 ;DPE5 ; 798 ;CLOCK THE RIGHT HALF OF THE MACHINE ; 799 GENR/=<49:49>F,AD PARITY OK ;DPE4 FROM CRM2 PARITY EN RIGHT H ; 800 ;STORE PARITY FOR 2901 RIGHT ; 801 CHKR/=<50:50> ;DPE4 FROM CRM2 PARITY CHK RIGHT H ; 802 ;CHECK RIGHT HALF DBUS PARITY ; 803 ; 804 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 21 ; DSK: KSHACK; KS10 47 21:53:04 16-JAN-87 MICROCODE FIELDS -- SPEC ; 805 .TOC "MICROCODE FIELDS -- SPEC" ; 806 ; 807 ; 808 ; ; 809 ;THE FOLLOWING SPECIAL FUNCTION ARE DECODED ON DPE1, DPE5, AND DPMA: ; 810 ; !=========================================================================! ; 811 ; !S! EFFECT ! CRA6 SPEC ! CRA6 SPEC ! CRA6 SPEC ! ; 812 ; !P! ON SHIFT ! EN 40 ! EN 20 ! EN 10 ! ; 813 ; !E! PATHS ! E102 ON DPE5 ! E101 ON DPE5 ! E410 ON DPMA ! ; 814 ; !C! (SEE DPE1) ! ! E411 ON DPMA ! E113 ON CRA2 ! ; 815 ; !=========================================================================! ; 816 ; !0! NORMAL ! CRY 18 INH ! PREVIOUS ! # ! ; 817 ; !-------------------------------------------------------------------------! ; 818 ; !1! ZERO ! IR LOAD ! XR LOAD ! CLR 1 MSEC ! ; 819 ; !-------------------------------------------------------------------------! ; 820 ; !2! ONES ! ! ! CLR IO LATCH ! ; 821 ; !-------------------------------------------------------------------------! ; 822 ; !3! ROT ! PI LOAD ! APR FLAGS ! CLR IO BUSY ! ; 823 ; !-------------------------------------------------------------------------! ; 824 ; !4! ASHC ! ASH TEST ! SET SWEEP ! PAGE WRITE ! ; 825 ; !-------------------------------------------------------------------------! ; 826 ; !5! LSHC ! EXP TEST ! APR EN ! NICOND ! ; 827 ; !-------------------------------------------------------------------------! ; 828 ; !6! DIV ! PC FLAGS ! PXCT OFF ! PXCT EN ! ; 829 ; !-------------------------------------------------------------------------! ; 830 ; !7! ROTC ! AC BLOCKS EN ! MEM CLR ! MEM WAIT ! ; 831 ; !=========================================================================! ; 832 ; THE DPM BOARD USES THE SPEC FIELD TO CONTROL THE ; 833 ; DBM MIXER, AS FOLLOWS: ; 834 ; ; 835 ; !=====================================! ; 836 ; ! S ! ! ; 837 ; ! P ! ACTION WHEN DBM ! ; 838 ; ! E ! SELECTS DP ! ; 839 ; ! C ! GET DP BITS ! GET SCAD 1-7 ! ; 840 ; !=====================================! ; 841 ; ! 0 ! ALL ! NONE ! ; 842 ; !-------------------------------------! ; 843 ; ! 1 ! 7-35 ! 0-6 ! ; 844 ; !-------------------------------------! ; 845 ; ! 2 !0-6 AND 14-35 ! 7-13 ! ; 846 ; !-------------------------------------! ; 847 ; ! 3 !0-13 AND 21-35! 14-20 ! ; 848 ; !-------------------------------------! ; 849 ; ! 4 !0-20 AND 28-35! 21-27 ! ; 850 ; !-------------------------------------! ; 851 ; ! 5 ! 0-27 AND 35 ! 28-34 ! ; 852 ; !-------------------------------------! ; 853 ; ! 6 ! SAME AS ZERO ! ; 854 ; !-------------------------------------! ; 855 ; ! 7 ! SAME AS ZERO ! ; 856 ; !=====================================! ; 857 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 22 ; DSK: KSHACK; KS10 47 21:53:04 16-JAN-87 MICROCODE FIELDS -- SPEC ; 858 ; 859 ;THE SPEC FIELD IS DEFINED AS A 6-BIT FIELD. THE TOP 3 BITS ; 860 ; ARE SPEC SEL A, SPEC SEL B, AND SPEC SEL C. THE LOW 3 BITS ARE ; 861 ; THE SELECT CODE. ; 862 ; 863 SPEC/=<51:56>D,0 ;DPE1 & DPE5 & DPM1 & DPMA ; 864 #=10 ;DECODE # BITS ; 865 CLRCLK=11 ;CLEAR 1MS NICOND FLAG ; 866 CLR IO LATCH=12 ;CLEAR IO LATCH ; 867 CLR IO BUSY=13 ;CLEAR IO BUSY ; 868 LDPAGE=14 ;WRITE PAGE TABLE ; 869 NICOND=15 ;DOING NICOND DISPATCH ; 870 LDPXCT=16 ;LOAD PXCT FLAGS ; 871 WAIT=17 ;MEM WAIT ; 872 PREV=20 ;FORCE PREVIOUS CONTEXT ; 873 LOADXR=21 ;LOAD XR #, USES PXCT FIELD TO SELECT ; 874 ; CORRECT AC BLOCK ; 875 APR FLAGS=23 ;LOAD APR FLAGS ; 876 CLRCSH=24 ;CLEAR CACHE ; 877 APR EN=25 ;SET APR ENABLES ; 878 MEMCLR=27 ;CLEAR PAGE FAULT CONDITION ; 879 SWEEP=34 ;SET SWEEP ; 880 PXCT OFF=36 ;TURN OFF THE EFFECT OF PXCT ; 881 INHCRY18=40 ;INHIBIT CARRY INTO LEFT HALF ; 882 LOADIR=41 ;LOAD THE IR ; 883 LDPI=43 ;LOAD PI SYSTEM ; 884 ASHOV=44 ;TEST RESULT OF ASH ; 885 EXPTST=45 ;TEST RESULT OF FLOATING POINT ; 886 FLAGS=46 ;CHANGE PC FLAGS ; 887 LDACBLK=47 ;LOAD AC BLOCK NUMBERS ; 888 LDINST=61 ;LOAD INSTRUCTION ; 889 ; 890 ;THE SPEC FIELD IS REDEFINED WHEN USED FOR BYTE MODE STUFF ; 891 BYTE/=<54:56> ;DPM1 (SPEC SEL) ; 892 BYTE1=1 ; 893 BYTE2=2 ; 894 BYTE3=3 ; 895 BYTE4=4 ; 896 BYTE5=5 ; 897 ; 898 ;THE SPEC FIELD IS REDEFINED WHEN USED TO CONTROL SHIFT PATHS ; 899 SHSTYLE/=<54:56> ;DPE1 (SPEC SEL) ; 900 NORM=0 ;2 40-BIT REGISTERS ; 901 ZERO=1 ;SHIFT ZERO INTO 36 BITS (ASH TOP 2901) ; 902 ONES=2 ;SHIFT IN ONES ; 903 ROT=3 ;ROTATE ; 904 ASHC=4 ;ASHC ; 905 LSHC=5 ;LSHC ; 906 DIV=6 ;SPECIAL DIVIDE ; 907 ROTC=7 ;ROTATE DOUBLE ; 908 ; 909 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 23 ; DSK: KSHACK; KS10 47 21:53:04 16-JAN-87 MICROCODE FIELDS -- DISPATCH ; 910 .TOC "MICROCODE FIELDS -- DISPATCH" ; 911 ; !=======================================================! ; 912 ; ! D ! CRA1 ! CRA1 ! DPEA ! ; 913 ; ! I ! DISP ! DISP ! DISP ! ; 914 ; ! S ! 10 ! 20 ! 40 ! ; 915 ; ! P ! ! ! ! ; 916 ; !=======================================================! ; 917 ; ! 0 ! DIAG ADR ! DIAG ADR ! 0 ! ; 918 ; !-------------------------------------------------------! ; 919 ; ! 1 ! RETURN ! RETURN ! DP 18-21 ! ; 920 ; !-------------------------------------------------------! ; 921 ; ! 2 ! MULTIPLY ! J ! J ! ; 922 ; !-------------------------------------------------------! ; 923 ; ! 3 ! PAGE FAIL ! AREAD ! AREAD ! ; 924 ; !-------------------------------------------------------! ; 925 ; ! 4 ! NICOND ! NOT USABLE ! NORM ! ; 926 ; !-------------------------------------------------------! ; 927 ; ! 5 ! BYTE ! NOT USABLE ! DP 32-35 ! ; 928 ; !-------------------------------------------------------! ; 929 ; ! 6 ! EA MODE ! NOT USABLE ! DROM A ! ; 930 ; !-------------------------------------------------------! ; 931 ; ! 7 ! SCAD ! NOT USABLE ! DROM B ! ; 932 ; !=======================================================! ; 933 ;NOTE: DISP EN 40 & DISP EN 10 ONLY CONTROL THE LOW 4 BITS OF THE ; 934 ; JUMP ADDRESS. DISP EN 20 ONLY CONTROLS THE HI 7 BITS. TO DO ; 935 ; SOMETHING TO ALL 11 BITS BOTH 20 & 40 OR 20 & 10 MUST BE ENABLED. ; 936 ; 937 DISP/=<57:62>D,70 ;CRA1 & DPEA ; 938 CONSOLE=00 ;CONSOLE DISPATCH ; 939 DROM=12 ;DROM ; 940 AREAD=13 ;AREAD ; 941 DP LEFT=31 ;DP 18-21 ; 942 NORM=34 ;NORMALIZE ; 943 DP=35 ;DP 32-35 ; 944 ADISP=36 ;DROM A FIELD ; 945 BDISP=37 ;DROM B FIELD ; 946 RETURN=41 ;RETURN ; 947 MUL=62 ;MULTIPLY ; 948 PAGE FAIL=63 ;PAGE FAIL ; 949 NICOND=64 ;NEXT INSTRUCTION DISPATCH ; 950 BYTE=65 ;BYTE SIZE AND POSITION ; 951 EAMODE=66 ;EFFECTIVE ADDRESS MODE ; 952 SCAD0=67 ;J!2 IF SCAD BIT 0 = 1 ; 953 ; 954 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 24 ; DSK: KSHACK; KS10 47 21:53:04 16-JAN-87 MICROCODE FIELDS -- SKIP ; 955 .TOC "MICROCODE FIELDS -- SKIP" ; 956 ; !=======================================================! ; 957 ; ! S ! CRA2 ! DPEA ! DPEA ! ; 958 ; ! K ! SKIP ! SKIP ! SKIP ! ; 959 ; ! I ! 10 ! 20 ! 40 ! ; 960 ; ! P ! ! ! ! ; 961 ; !=======================================================! ; 962 ; ! 0 ! 0 ! 0 ! 0 ! ; 963 ; !-------------------------------------------------------! ; 964 ; ! 1 ! TRAP CYCLE ! CRY 02 ! CARRY OUT ! ; 965 ; !-------------------------------------------------------! ; 966 ; ! 2 ! AD=0 ! ADL SIGN ! ADL=0 ! ; 967 ; !-------------------------------------------------------! ; 968 ; ! 3 ! SC SIGN ! ADR SIGN ! ADR=0 ! ; 969 ; !-------------------------------------------------------! ; 970 ; ! 4 ! EXECUTE ! USER IOT ! -USER ! ; 971 ; !-------------------------------------------------------! ; 972 ; ! 5 ! -BUS IO BUSY ! JFCL SKIP ! FPD FLAG ! ; 973 ; !-------------------------------------------------------! ; 974 ; ! 6 ! -CONTINUE ! CRY 01 ! AC # IS ZERO ! ; 975 ; !-------------------------------------------------------! ; 976 ; ! 7 ! -1 MSEC ! TXXX ! INTERRUPT REQ ! ; 977 ; !=======================================================! ; 978 ; 979 SKIP/=<63:68>D,70 ;CRA2 & DPEA ; 980 IOLGL=04 ;(.NOT.USER)!(USER IOT)!(CONSOLE EXECUTE MODE) ; 981 LLE=12 ;AD LEFT .LE. 0 ; 982 CRY0=31 ;AD CRY -2 ; 983 ADLEQ0=32 ;ADDER LEFT = 0 ; 984 ADREQ0=33 ;ADDER RIGHT = 0 ; 985 KERNEL=34 ;.NOT. USER ; 986 FPD=35 ;FIRST PART DONE ; 987 AC0=36 ;AC NUMBER IS ZERO ; 988 INT=37 ;INTERRUPT REQUEST ; 989 LE=42 ;(AD SIGN)!(AD.EQ.0) ; 990 CRY2=51 ;AD CRY 02 ; 991 DP0=52 ;AD SIGN ; 992 DP18=53 ;AD BIT 18 ; 993 IOT=54 ;USER IOT ; 994 JFCL=55 ;JFCL SKIP ; 995 CRY1=56 ;AD CRY 1 ; 996 TXXX=57 ;TEST INSTRUCTION SHOULD SKIP ; 997 TRAP CYCLE=61 ;THIS INSTRUCTION IS THE RESULT OF A ; 998 ; TRAP 1, 2, OR 3 ; 999 ADEQ0=62 ;AD.EQ.0 ; 1000 SC=63 ;SC SIGN BIT ; 1001 EXECUTE=64 ;CONSOLE EXECUTE MODE ; 1002 -IO BUSY=65 ;.NOT. I/O LATCH ; 1003 -CONTINUE=66 ;.NOT. CONTINUE ; 1004 -1 MS=67 ;.NOT. 1 MS. TIMER ; 1005 ; 1006 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 25 ; DSK: KSHACK; KS10 47 21:53:04 16-JAN-87 MICROCODE FIELDS -- TIME CONTROL ; 1007 .TOC "MICROCODE FIELDS -- TIME CONTROL" ; 1008 ; 1009 DT/=<109:111>D,0 ;**NOT STORED IN CRAM** ; 1010 ;DEFAULT TIME FIELD (USED IN MACROS) ; 1011 ; CAN BE OVERRIDDEN IN MACRO CALL ; 1012 2T=0 ; 1013 3T=1 ; 1014 4T=2 ; 1015 5T=3 ; 1016 ; 1017 ; 1018 T/=<70:71>F,DT ;CSL5 (E601) ; 1019 ;CLOCK TICKS MINUS TWO REQUIRED TO ; 1020 ; DO A MICRO INSTRUCTION ; 1021 2T=0 ;TWO TICKS ; 1022 3T=1 ;THREE TICKS ; 1023 4T=2 ;FOUR TICKS ; 1024 5T=3 ;FIVE TICKS ; 1025 ; 1026 ; 1027 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 26 ; DSK: KSHACK; KS10 47 21:53:04 16-JAN-87 MICROCODE FIELDS -- RANDOM CONTROL BITS ; 1028 .TOC "MICROCODE FIELDS -- RANDOM CONTROL BITS" ; 1029 ; 1030 CRY38/=<72> ;DPE5 ; 1031 ;INJECT A CARRY INTO THE 2901 ADDER ; 1032 LOADSC/=<73> ;DPM4 ; 1033 ;LOAD THE STEP COUNTER FROM THE SCAD ; 1034 LOADFE/=<74> ;DPM4 ; 1035 ;LOAD THE FE REGISTER FROM THE SCAD ; 1036 FMWRITE/=<75> ;DPE5 (E302) ; 1037 ;WRITE THE RAM FILE. ; 1038 MEM/=<76> ;DPM5 (E612) & DPE5 (E205) ; 1039 ;START (OR COMPLETE) A MEMORY OR I/O CYCLE UNDER ; 1040 ; CONTROL OF THE NUMBER FIELD. ; 1041 DIVIDE/=<77> ;DPE5 ; 1042 ;THIS MICROINSTRUCTION IS DOING A DIVIDE ; 1043 MULTI PREC/=<78> ;DPE5 ; 1044 ;MULTIPRECISION STEP IN DIVIDE, DFAD, DFSB ; 1045 MULTI SHIFT/=<79> ;CSL5 (HAS NOTHING TO DO WITH DPE5 MULTI SHIFT) ; 1046 ;FAST SHIFT ; 1047 CALL/=<80> ;CRA2 (STACK IS ON CRA3) ; 1048 ;THIS IS A CALL ; 1049 ; 1050 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 27 ; DSK: KSHACK; KS10 47 21:53:04 16-JAN-87 MICROCODE FIELDS -- NUMBER FIELD ; 1051 .TOC "MICROCODE FIELDS -- NUMBER FIELD" ; 1052 ; 1053 ;HERE IS THE GENERAL FIELD ; 1054 #/=<90:107> ;MANY PLACES ; 1055 ; 1056 ;# REDEFINED WHEN USED AS SCAD CONTROL: ; 1057 SCAD/=<90:92> ;DPM3 ; 1058 A*2=0 ; 1059 A.OR.B=1 ; 1060 A-B-1=2 ; 1061 A-B=3 ; 1062 A+B=4 ; 1063 A.AND.B=5 ; 1064 A-1=6 ; 1065 A=7 ; 1066 SCADA/=<93:95> ;DPM3 ; 1067 SC=0 ; 1068 S#=1 ; 1069 PTR44=2 ;44 AND BIT 6 (SEE DPM3) ; 1070 BYTE1=3 ; 1071 BYTE2=4 ; 1072 BYTE3=5 ; 1073 BYTE4=6 ; 1074 BYTE5=7 ; 1075 SCADB/=<96:97> ;DPM3 ; 1076 FE=0 ; 1077 EXP=1 ; 1078 SHIFT=2 ; 1079 SIZE=3 ; 1080 S#/=<98:107> ;DPM3 ; 1081 ; 1082 ;# REDEFINED WHEN USED AS STATE REGISTER CONTROL: ; 1083 STATE/=<90:107> ;NOT USED BY HARDWARE ; 1084 SIMPLE=0 ;SIMPLE INSTRUCTIONS ; 1085 BLT=1 ;BLT IN PROGRESS ; 1086 .IFNOT/ITS ; 1087 MAP=400002 ;MAP IN PROGRESS ; 1088 .ENDIF/ITS ; 1089 SRC=3 ;MOVE STRING SOURCE IN PROGRESS ; 1090 DST=4 ;MOVE STRING FILL IN PROGRESS ; 1091 SRC+DST=5 ;MOVE STRING DEST IN PROGRESS ; 1092 DSTF=6 ;FILLING DEST ; 1093 CVTDB=7 ;CONVERT DEC TO BIN ; 1094 COMP-DST=10 ;COMPARE DEST ; 1095 EDIT-SRC=11 ;EDIT SOURCE ; 1096 EDIT-DST=12 ;EDIT DEST ; 1097 EDIT-S+D=13 ;BOTH SRC AND DST POINTERS ; 1098 ; 1099 .IF/1PROC ; 1100 ;# AS PC FLAGS ; 1101 OIPBIT/=<98> ;BIT 8 OF PC IS ONE-PROCEED ON KS (NOT IN HARDWARE) ; 1102 .ENDIF/1PROC ; 1103 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 28 ; DSK: KSHACK; KS10 47 21:53:04 16-JAN-87 MICROCODE FIELDS -- NUMBER FIELD ; 1104 ; 1105 ;# REDEFINED WHEN USED AS WORSPACE ADDRESS ; 1106 ; 1107 WORK/=<98:107> ;DPE6 ; 1108 BADW0=160 ;AC BLK 7 WORD 0 (BAD DATA FROM MEMORY) ; 1109 .IFNOT/ITS ; 1110 BADW1=161 ;AC BLK 7 WORD 1 (BAD DATA FROM MEMORY) ; 1111 .ENDIF/ITS ; 1112 MUL=200 ;TEMP FOR MULTIPLY ; 1113 DIV=201 ;TEMP FOR DIVIDE ; 1114 SV.VMA=210 ;SAVE VMA ; 1115 SV.AR=211 ;SAVE AR ; 1116 SV.ARX=212 ;SAVE ARX ; 1117 SV.BR=213 ;SAVE BR ; 1118 SV.BRX=214 ;SAVE BRX ; 1119 .IF/ITS ; 1120 DBR1=215 ;Pointer to page table for user low addresses. ; 1121 DBR2=216 ;Pointer to page table for user high addresses. ; 1122 DBR3=217 ;Pointer to page table for exec high addresses. ; 1123 DBR4=220 ;Pointer to page table for exec low addresses. ; 1124 .IFNOT/ITS ; 1125 SBR=215 ;SPT BASE REGISTER ; 1126 CBR=216 ;CST BASE ADDRESS ; 1127 CSTM=217 ;CST MASK ; 1128 PUR=220 ;PROCESS USE REGISTER ; 1129 .ENDIF/ITS ; 1130 ADJP=221 ;"P" FOR ADJBP ; 1131 ADJS=222 ;"S" FOR ADJBP ; 1132 ADJPTR=223 ;BYTE POINTER FOR ADJBP ; 1133 ADJQ1=224 ;TEMP FOR ADJBP ; 1134 ADJR2=225 ;TEMP FOR ADJBP ; 1135 ADJBPW=226 ;(BYTES/WORD) FOR ADJBP ; 1136 HSBADR=227 ;ADDRESS OF HALT STATUS BLOCK ; 1137 APR=230 ;APR ENABLES ; 1138 ; 2.5 - 2.4 Both set if paging enabled. ; 1139 ; 2.3 - 1.5 Flags enabled ; 1140 ; 1.3 - 1.1 PI level ; 1141 ;More APR status is kept in APR FLAGS hardware: ; 1142 ; 2.3 - 1.5 Flags set ; 1143 ; 1.4 Some flag is interrupting ; 1144 .IF/JPC ; 1145 U.JPC=231 ;User mode JPC ; 1146 E.JPC=232 ;Exec mode JPC ; 1147 .ENDIF/JPC ; 1148 .IF/PCST ; 1149 PCST=233 ;AOBJN pointer to PC Sample Table ; 1150 .ENDIF/PCST ; 1151 ; 1152 ;THE FOLLOWING WORDS ARE USED BY EXTEND INSTRUCTION ; 1153 E0=240 ;ORIGINAL EFFECTIVE ADDRESS ; 1154 E1=241 ;EFFECTIVE ADDRESS OF WORD AT E0 ; 1155 SLEN=242 ;SOURCE LENGTH ; 1156 MSK=243 ;BYTE MASK ; 1157 FILL=244 ;FILL BYTE ; 1158 CMS=245 ;SRC BYTE IN STRING COMPARE ; 1159 FSIG=246 ;PLACE TO SAVE ARX WHILE STORING ; 1160 ; THE FLOAT CHAR ; 1161 BDH=247 ;BINARY BEING CONVERTED TO ; 1162 BDL=250 ; DECIMAL ; 1163 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 29 ; DSK: KSHACK; KS10 47 21:53:04 16-JAN-87 MICROCODE FIELDS -- NUMBER FIELD ; 1164 ; 1165 ;TIMER STUFF ; 1166 TIME0=300 ;HIGH ORDER 36 BITS OF TIME ; 1167 TIME1=301 ;LOW ORDER 36 BITS OF TIME ; 1168 PERIOD=302 ;INTERRUPT PERIOD ; 1169 TTG=303 ;TIME TO GO TO NEXT INTERRUPT ; 1170 .IF/ITS ; 1171 QUAN=304 ;Quantum counter incremented by TOCK except ; 1172 ;when PI in progress. ; 1173 .ENDIF/ITS ; 1174 ; 1175 ;DDIV STUFF ; 1176 AC0=314 ; 1177 AC1=315 ; 1178 AC2=316 ; 1179 AC3=317 ; 1180 DDIV SGN=320 ; 1181 DVSOR H=321 ; 1182 DVSOR L=322 ; 1183 ;POWERS OF TEN ; 1184 DECLO=344 ;LOW WORD ; 1185 DECHI=373 ;HIGH WORD ; 1186 ; 1187 YSAVE=422 ;Y OF LAST INDIRECT POINTER ; 1188 .IFNOT/ITS ; 1189 PTA.E=423 ;ADDRESS OF EXEC PAGE MAP (NOT PROCESS TABLE) ; 1190 PTA.U=424 ;ADDRESS OF USER PAGE MAP ; 1191 .ENDIF/ITS ; 1192 TRAPPC=425 ;SAVED PC FROM TRAP CYCLE ; 1193 SV.AR1=426 ;ANOTHER PLACE TO SAVE AR ; 1194 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 30 ; DSK: KSHACK; KS10 47 21:53:04 16-JAN-87 MICROCODE FIELDS -- NUMBER FIELD ; 1195 ; 1196 ;# REDEFINED WHEN USED AS PC FLAG CONTROL (ALL ON DPE9) ; 1197 ; 1198 SETOV/=<90> ;DPE9 ; 1199 ;SET ARITHMETIC OVERFLOW ; 1200 SETFOV/=<91> ;SET FLOATING OVERFLOW ; 1201 SETNDV/=<92> ;SET NO DIVIDE ; 1202 ; 1203 ;--------------------------------------------------------------------- ; 1204 ; 1205 CLRFPD/=<93> ;CLEAR FIRST PART DONE ; 1206 SETFPD/=<94> ;SET FIRST PART DONE ; 1207 HOLD USER/=<95> ;WHEN THIS BIT IS SET IT: ; 1208 ; 1. PREVENTS SETTING USER IOT IN USER MODE ; 1209 ; 2. PREVENTS CLEARING USER IN USER MODE ; 1210 ; 1211 ;--------------------------------------------------------------------- ; 1212 ; 1213 ; <96> ;SPARE ; 1214 TRAP2/=<97> ;SET TRAP 2 ; 1215 TRAP1/=<98> ;SET TRAP 1 ; 1216 ; 1217 ;--------------------------------------------------------------------- ; 1218 ; 1219 LD PCU/=<99> ;LOAD PCU FROM USER ; 1220 ; <100> ;SPARE ; 1221 ; <101> ;SPARE ; 1222 ; 1223 ;--------------------------------------------------------------------- ; 1224 ; 1225 ; <102> ;SPARE ; 1226 ; <103> ;SPARE ; 1227 JFCLFLG/=<104> ;DO A JFCL INSTRUCTION ; 1228 ; 1229 ;--------------------------------------------------------------------- ; 1230 ; 1231 LD FLAGS/=<105> ;LOAD FLAGS FROM DP ; 1232 ; <106> ; 1233 ADFLGS/=<107> ;UPDATE CARRY FLAGS ; 1234 ; 1235 ;# REDEFINED WHEN USED AS MEMORY CYCLE CONTROL ; 1236 ; 1237 FORCE USER/=<90> ;FORCE USER MODE REFERENCE ; 1238 FORCE EXEC/=<91> ;FORCE EXEC MODE REFERENCE ; 1239 ; (DOES NOT WORK UNDER PXCT) ; 1240 FETCH/=<92> ;THIS IS AN INSTRUCTION FETCH ; 1241 ; 1242 ;--------------------------------------------------------------------- ; 1243 ; 1244 READ CYCLE/=<93> ;SELECT A READ CYCLE ; 1245 WRITE TEST/=<94> ;PAGE FAILE IF NOT WRITTEN ; 1246 WRITE CYCLE/=<95> ;SELECT A MEMORY WRITE CYCLE ; 1247 ; 1248 ;--------------------------------------------------------------------- ; 1249 ; 1250 ; <96> ;SPARE BIT ; 1251 DONT CACHE/=<97> ;DO NOT LOOK IN CACHE ; 1252 PHYSICAL/=<98> ;DO NOT INVOKE PAGING HARDWARE ; 1253 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 31 ; DSK: KSHACK; KS10 47 21:53:04 16-JAN-87 MICROCODE FIELDS -- NUMBER FIELD ; 1254 ; 1255 ;--------------------------------------------------------------------- ; 1256 ; 1257 PXCT/=<99:101> ;WHICH PXCT BITS TO LOOK AT ; 1258 CURRENT=0 ; 1259 E1=1 ; 1260 D1=3 ; 1261 BIS-SRC-EA=4 ; 1262 E2=5 ; 1263 BIS-DST-EA=6 ; 1264 D2=7 ; 1265 ; 1266 ;--------------------------------------------------------------------- ; 1267 ; 1268 AREAD/=<102> ;LET DROM SELECT SYSLE TYPE AND VMA LOAD ; 1269 DP FUNC/=<103> ;IGNORE # BITS 0-11 AND USE DP 0-13 INSTEAD ; 1270 ; DP9 MEANS "FORCE PREVIOUS" ; 1271 LDVMA/=<104> ;LOAD THE VMA ; 1272 ; 1273 ;--------------------------------------------------------------------- ; 1274 ; 1275 EXT ADR/=<105> ;PUT VMA BITS 14-17 ONTO BUS ; 1276 WAIT/=<106> ;START A MEMORY OR I/O CYCLE ; 1277 BWRITE/=<107> ;START A MEMORY CYCLE IF DROM ASKS FOR IT ; 1278 ; 1279 ;THESE BITS ARE USED ONLY TO SETUP DP FOR A DP FUNCTION ; 1280 ; 1281 ; <99> ;PREVIOUS ; 1282 IO CYCLE/=<100> ;THIS IS AN I/O CYCLE ; 1283 WRU CYCLE/=<101> ;WHO ARE YOU CYCLE ; 1284 ; 1285 ;--------------------------------------------------------------------- ; 1286 ; 1287 VECTOR CYCLE/=<102> ;READ INTERRUPT VECTOR ; 1288 IO BYTE/=<103> ;BYTE CYCLE ; 1289 ; <104> ; 1290 ; 1291 ;# REDEFINED WHEN USED AS PI RIGHT BITS ; 1292 PI.ZER/=<90:92> ;ZEROS ; 1293 PI.IP1/=<93> ;PI 1 IN PROG ; 1294 PI.IP2/=<94> ; 1295 PI.IP3/=<95> ; 1296 PI.IP4/=<96> ; 1297 PI.IP5/=<97> ; 1298 PI.IP6/=<98> ; 1299 PI.IP7/=<99> ; 1300 PI.ON/=<100> ;SYSTEM IS ON ; 1301 PI.CO1/=<101> ;CHAN 1 IS ON ; 1302 PI.CO2/=<102> ; 1303 I.CO3/=<103> ; 1304 I.CO4/=<104> ; 1305 I.CO5/=<105> ; 1306 I.CO6/=<106> ; 1307 I.CO7/=<107> ; 1308 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 32 ; DSK: KSHACK; KS10 47 21:53:04 16-JAN-87 MICROCODE FIELDS -- NUMBER FIELD ; 1309 ; 1310 ;# REDEFINED WHEN USED AS WRPI DATA ; 1311 PI.MBZ/=<90:93> ;MUST BE ZERO ; 1312 PI.DIR/=<94> ;DROP INTERRUPT REQUESTS ; 1313 PI.CLR/=<95> ;CLEAR SYSTEM ; 1314 PI.REQ/=<96> ;REQUEST INTERRUPT ; 1315 PI.TCN/=<97> ;TURN CHANNEL ON ; 1316 PI.TCF/=<98> ;TURN CHANNEL OFF ; 1317 PI.TSF/=<99> ;TURN SYSTEM OFF ; 1318 PI.TSN/=<100> ;TURN SYSTEM ON ; 1319 PI.SC1/=<101> ;SELECT CHANNEL 1 ; 1320 PI.SC2/=<102> ; 1321 PI.SC3/=<103> ; 1322 PI.SC4/=<104> ; 1323 PI.SC5/=<105> ; 1324 PI.SC6/=<106> ; 1325 PI.SC7/=<107> ; 1326 ; 1327 ;# REDEFINED WHEN USED AS AC CONTROL ; 1328 ; 1329 ; 1330 ;THIS FIELD CONTROLS THE INPUT TO A 74LS181 ON DPE6. THE NUMBER ; 1331 ; FIELD HAS THIS FORMAT IN <98:107>: ; 1332 ; ; 1333 ; !-----!-----!-----!-----!-----!-----!-----!-----!-----!-----! ; 1334 ; !CARRY! S8 ! S4 ! S2 ! S1 ! MODE! B8 ! B4 ! B2 ! B1 ! ; 1335 ; ! IN ! FUNCTION ! ! DATA INPUTS ! ; 1336 ; !-----!-----------------------!-----!-----------------------! ; 1337 ; ; 1338 ; 1339 ACALU/=<98:103> ; 1340 B=25 ; 1341 AC+N=62 ; 1342 ACN/=<104:107> ; 1343 ;AC NAMES FOR STRING INSTRUCTIONS ; 1344 SRCLEN=0 ;SOURCE LENGTH ; 1345 SRCP=1 ;SOURCE POINTER ; 1346 DLEN=3 ;DEST LENGTH ; 1347 DSTP=4 ;DEST POINTER ; 1348 MARK=3 ;POINTER TO MARK ; 1349 BIN0=3 ;HIGH WORD OF BINARY ; 1350 BIN1=4 ;LOW WORD OF BINARY ; 1351 ; 1352 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 33 ; DSK: KSHACK; KS10 47 21:53:04 16-JAN-87 MICROCODE FIELDS -- NUMBER FIELD ; 1353 ; 1354 ;# FIELD REDEFINED WHEN USE AS APRID DATA ; 1355 ; 1356 MICROCODE OPTIONS/=<90:98> ; 1357 .IF/ITS ; 1358 OPT=020 ;4.5 Indicates ITS ucode, just like on KL. ; 1359 .IFNOT/ITS ; 1360 OPT=000 ; 1361 .ENDIF/ITS ; 1362 ; 1363 ;Actually defined in configuration file: ; 1364 ; ; 1365 ; MICROCODE VERSION/=<99:107> ; 1366 ; UCV=259. ; 1367 ; ; 1368 ; HARDWARE OPTIONS/=<90:92> ; 1369 ; HWOPT=0 ; 1370 ; ; 1371 ; HARDWARE SERIAL NUMBER/=<93:107> ; 1372 ; HWSER=4097. ; 1373 ; 1374 ;# FIELD REDEFINED WHEN USED AS A HALT CODE ; 1375 ; 1376 HALT/=<90:107> ; 1377 ;CODES 0 TO 77 ARE "NORMAL" HALTS ; 1378 POWER=0 ;POWER UP ; 1379 HALT=1 ;HALT INSTRUCTION ; 1380 CSL=2 ;CONSOLE HALT ; 1381 ;CODES 100 TO 777 ARE SOFTWARE ERRORS ; 1382 IOPF=100 ;I/O PAGE FAIL ; 1383 ILLII=101 ;ILLEGAL INTERRUPT INSTRUCTION ; 1384 ILLINT=102 ;BAD POINTER TO UNIBUS INTERRUPT VECTOR ; 1385 ;CODES 1000 TO 1777 ARE HARDWARE ERRORS ; 1386 BW14=1000 ;ILLEGAL BWRITE FUNCTION (BAD DROM) ; 1387 NICOND 5=1004 ;ILLEGAL NICOND DISPATCH ; 1388 MULERR=1005 ;VALUE COMPUTED FOR 10**21 WAS WRONG ; 1389 .IFNOT/FULL ; 1390 PAGEF=1777 ;PAGE FAIL IN SMALL MICROCODE ; 1391 .ENDIF/FULL ; 1392 ; 1393 ; 1394 ; 1395 ;# FIELD REDEFINED WHEN USED AS FLG BITS ; 1396 ; 1397 FLG.W/=<94> ;W BIT FROM PAGE MAP ; 1398 FLG.PI/=<95> ;PI CYCLE ; 1399 FLG.C/=<96> ;CACHE BIT FROM PAGE MAP ; 1400 FLG.SN/=<97> ;SPECIAL NEGATE IN FDV & DFDV ; 1401 .IF/1PROC ; 1402 FLG.1PROC/=<98> ;1-PROCEED IN PROGRESS ; 1403 FLG.2PROC/=<100> ;INSTRUCTION ACTUALLY RUNNING IF THIS IS SET TOO ; 1404 ;<99> RESERVED FOR JPC MODE ; 1405 .ENDIF/1PROC ; 1406 ; 1407 ;RIGHT HALF OF FLG USED TO RECOVER FROM PAGE FAILS ; 1408 ; 1409 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 34 ; DSK: KSHACK; KS10 47 21:53:04 16-JAN-87 SUBFIELD DEFINITIONS FOR .RAMFILE ; 1410 .TOC "SUBFIELD DEFINITIONS FOR .RAMFILE" ; 1411 ; 1412 SPEC HIGH/=<51:53> ; 1413 SPEC LOW/=<54:56> ; 1414 ; 1415 DISP HIGH/=<57:59> ; 1416 DISP LOW/=<60:62> ; 1417 ; 1418 SKIP HIGH/=<63:65> ; 1419 SKIP LOW/=<66:68> ; 1420 ; 1421 # HIGH/=<90:95> ; 1422 # LOW/=<96:107> ; 1423 ; 1424 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 35 ; DSK: KSHACK; KS10 47 21:53:04 16-JAN-87 DISPATCH ROM DEFINITIONS ; 1425 .TOC "DISPATCH ROM DEFINITIONS" ; 1426 ; 1427 ;ALL ON DPEA ; 1428 ; 1429 .DCODE ; 1430 A/=<2:5> ;OPERAND FETCH MODE ; 1431 READ=0 ;READ ; 1432 WRITE=1 ;WRITE ; 1433 DREAD=2 ;DOUBLE READ ; 1434 DBLAC=3 ;DOUBLE AC ; 1435 SHIFT=4 ;SIMPLE SHIFT ; 1436 DSHIFT=5 ;DOUBLE SHIFT ; 1437 FPI=6 ;FLOATING POINT IMMEDIATE ; 1438 FP=7 ;FLOATING POINT ; 1439 RD-PF=10 ;READ, THEN START PREFETCH ; 1440 DFP=11 ;DOUBLE FLOATING POINT ; 1441 IOT=12 ;CHECK FOR IO LEGAL THEN SAME AS I ; 1442 ; 1443 B/=<8:11> ;STORE RESULTS AS ; 1444 SELF=4 ;SELF ; 1445 DBLAC=5 ;DOUBLE AC ; 1446 DBLB=6 ;DOUBLE BOTH ; 1447 AC=15 ;AC ; 1448 MEM=16 ;MEMORY ; 1449 BOTH=17 ;BOTH ; 1450 ; 1451 ;B-FIELD WHEN USED IN FLOATING POINT OPERATIONS ; 1452 ROUND/=<8> ;ROUND THE RESULT ; 1453 MODE/=<9> ;SEPARATE ADD/SUB & MUL/DIV ETC. ; 1454 FL-B/=<10:11> ;STORE RESULTS AS ; 1455 AC=1 ;AC ; 1456 MEM=2 ;MEMORY ; 1457 BOTH=3 ;BOTH ; 1458 ; 1459 J/=<12:23> ;DISPATCH ADDRESS (MUST BE 1400 TO 1777) ; 1460 ; 1461 ACDISP/=<24> ;DISPATCH ON AC FIELD ; 1462 I/=<25> ;IMMEDIATE DISPATCH. DISP/AREAD DOES A DISP/DROM ; 1463 ; IF THIS BIT IS SET. ; 1464 READ/=<26> ;START A READ AT AREAD ; 1465 TEST/=<27> ;START A WRITE TEST AT AREAD ; 1466 COND FUNC/=<28> ;START A MEMORY CYCLE ON BWRITE ; 1467 VMA/=<29>D,1 ;LOAD THE VMA ON AREAD ; 1468 WRITE/=<30> ;START A WRITE ON AREAD ; 1469 .UCODE ; 1470 ; 1471 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 36 ; DSK: KSHACK; KS10 47 21:53:04 16-JAN-87 HOW TO READ MACROS ; 1472 .TOC "HOW TO READ MACROS" ; 1473 ; ; 1474 ; 1.0 REGISTER TRANSFER MACROS ; 1475 ; ; 1476 ; MOST MACROS USED IN THE KS10 ARE USED TO OPERATE ON DATA IN (OR FROM/TO) 2901 ; 1477 ; REGISTERS. THE NAMES OF THE 2901 REGISTERS ARE MACRO PARAMETERS AND ARE ; 1478 ; ENCLOSED IN []. A TYPICAL MACRO IS: ; 1479 ; ; 1480 ; [AR]_[AR]+[BR] ; 1481 ; ; 1482 ; THE SYMBOL _ IS PRONOUNCED "GETS". THE ABOVE MACRO WOULD BE READ "THE AR GETS ; 1483 ; THE AR PLUS THE BR". ; 1484 ; ; 1485 ; IF A MACRO DOES NOT HAVE A _ IN IT, THERE IS NO RESULT STORED. THUS, [AR]-[BR] ; 1486 ; JUST COMPARES THE AR AND THE BR AND ALLOWS FOR SKIPS ON THE VARIOUS ALU BITS. ; 1487 ; ; 1488 ; ; 1489 ; ; 1490 ; 1.1 SPECIAL SYMBOLS ; 1491 ; ; 1492 ; THERE ARE A BUNCH OF SYMBOLS USED IN THE MACROS WHICH ARE NOT 2901 REGISTERS. ; 1493 ; THEY ARE DEFINED HERE: ; 1494 ; ; 1495 ; 1. AC -- THE AC SELECTED BY THE CURRENT INSTRUCTION. SEE DPEA ; 1496 ; ; 1497 ; 2. AC[] -- AC+N. AC[1] IS AC+1, AC[2] IS AC+2, ETC. ; 1498 ; ; 1499 ; 3. APR -- THE APR FLAGS FROM DPMA ; 1500 ; ; 1501 ; 4. EA -- THE EFFECTIVE ADDRESS. THAT IS, 0 IN THE LEFT HALF AND THE ; 1502 ; CONTENTS OF THE HR IN THE RIGHT HALF. ; 1503 ; ; 1504 ; 5. EXP -- THE F.P. EXPONENT FROM THE SCAD. [AR]_EXP WILL TAKE THE ; 1505 ; EXPONENT OUT OF THE FE AND PUT IT BACK INTO THE NUMBER IN THE AR. ; 1506 ; ; 1507 ; 6. FE -- THE FE REGISTER ; 1508 ; ; 1509 ; 7. FLAGS -- THE PC FLAGS (FROM DPE9) IN THE LEFT HALF. ; 1510 ; ; 1511 ; 8. Q -- THE Q REGISTER ; 1512 ; ; 1513 ; 9. RAM -- THE RAM FILE, RAM ADDRESS IS IN THE VMA. ; 1514 ; ; 1515 ; 10. P -- THE P FIELD OF THE BYTE POINTER. SAME IDEA AS EXP. ; 1516 ; ; 1517 ; 11. TIME -- THE 1MS. TIMER ; 1518 ; ; 1519 ; 12. VMA -- THE VMA. WHEN READ IT INCLUDES THE VMA FLAGS ; 1520 ; ; 1521 ; 13. XR -- INDEX REGISTER ; 1522 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 37 ; DSK: KSHACK; KS10 47 21:53:04 16-JAN-87 HOW TO READ MACROS ; 1523 ; 1524 ; 14. XWD -- HALF WORD. USED TO GENERATE CONSTANTS. FOR EXAMPLE, [AR]_0 XWD ; 1525 ; [40] WOULD LOAD THE CONSTANT 40 (OCTAL) INTO THE AR. ; 1526 ; ; 1527 ; 15. +SIGN AND -SIGN -- SIGN BITS USED TO SIGN SMEAR F.P. NUMBERS. FOR ; 1528 ; EXAMPLE, [AR]_+SIGN WOULD CLEAR AR BITS 0 TO 8. ; 1529 ; ; 1530 ; 16. WORK[] -- LOCATIONS IN THE WORKSPACE USED AS SCRATCH SPACE. FOR ; 1531 ; EXAMPLE, [AR]_WORK[CSTM] WOULD LOAD THE AR WITH THE CST MASK FROM THE ; 1532 ; RAM. CSTM IS A SYMBOL DEFINED IN THE WORK FIELD. ; 1533 ; ; 1534 ; ; 1535 ; ; 1536 ; ; 1537 ; 1.2 LONG ; 1538 ; ; 1539 ; LONG IS USED ON SHIFT OPERATIONS TO INDICATE THAT THE Q REGISTER IS ALSO ; 1540 ; SHIFTED. THIS SAYS NOTHING ABOUT HOW THE SHIFT PATHS ARE CONNECTED UP. ; 1541 ; ; 1542 ; ; 1543 ; ; 1544 ; 2.0 MEMORY MACROS ; 1545 ; ; 1546 ; MEMORY IS INDICATED BY THE SYMBOL "MEM". WHEN WE ARE WAITING FOR DATA FROM ; 1547 ; MEMORY THE "MEM READ" MACRO IS USED. WHEN WE ARE SENDING DATA TO MEMORY, THE ; 1548 ; "MEM WRITE" MACRO IS USED. EXAMPLE, ; 1549 ; MEM READ, ;WAIT FOR MEMORY ; 1550 ; [AR]_MEM ;LOAD DATA INTO AR ; 1551 ; VMA_ IS USED THE LOAD THE VMA. THUS, VMA_[PC] LOADS THE VMA FROM THE PC. ; 1552 ; ; 1553 ; ; 1554 ; ; 1555 ; 3.0 TIME CONTROL ; 1556 ; ; 1557 ; THERE ARE 2 SETS OF MACROS USED FOR TIME CONTROL. THE FIRST, SELECTS THE RAM ; 1558 ; ADDRESS TO SPEED UP THE NEXT INSTRUCTION. THESE MACROS ARE AC, AC[], XR, VMA, ; 1559 ; WORK[]. THE SECOND, SETS THE TIME FIELD. THESE ARE 2T, 3T, 4T, AND 5T TO ; 1560 ; SELECT 2, 3, 4, OR 5 TICKS. ; 1561 ; ; 1562 ; ; 1563 ; ; 1564 ; 4.0 SCAD MACROS ; 1565 ; ; 1566 ; THE SCAD MACROS LOOK LIKE THE 2901 MACROS EXECPT NO [] ARE REQUIRED. THERE ARE ; 1567 ; ONLY A FEW SYMBOLS USED. ; 1568 ; ; 1569 ; 1. FE -- THE FE REGISTER ; 1570 ; ; 1571 ; 2. SC -- THE SC REGISTER ; 1572 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 38 ; DSK: KSHACK; KS10 47 21:53:04 16-JAN-87 HOW TO READ MACROS ; 1573 ; 1574 ; 3. EXP -- THE EXPONENT FROM A F.P. NUMBER. FOR EXAMPLE FE_EXP LOADS THE ; 1575 ; FE FROM DP BITS 1-8. ; 1576 ; ; 1577 ; 4. SHIFT -- THE SHIFT COUNT FROM SHIFT INSTRUCTIONS. THAT IS DP BITS 18 ; 1578 ; AND 28-35. ; 1579 ; ; 1580 ; 5. S# -- THE SMALL NUMBER. THE 10 BIT MAGIC NUMBER INPUT TO THE SCADA ; 1581 ; MIXER. ; 1582 ; ; 1583 ; ; 1584 ; ; 1585 ; ; 1586 ; 5.0 CONTROL MACROS ; 1587 ; ; 1588 ; ALL CONTROL MACROS LOOK LIKE ENGLISH COMMANDS. SOME EXAMPLES, ; 1589 ; HOLD LEFT ;DO NOT CLOCK LEFT HALF OF DP ; 1590 ; SET APR ENABLES ;LOAD APR ENABLES FROM DP ; 1591 ; SET NO DIVIDE ;SET NO DIVIDE PC FLAG ; 1592 ; ; 1593 ; ; 1594 ; ; 1595 ; 6.0 SKIPS ; 1596 ; ; 1597 ; ALL SKIPS CAUSE THE NEXT MICRO INSTRUCTION TO COME FROM THE ODD WORD OF AN ; 1598 ; EVEN/ODD PAIR. THE MACROS HAVE THE FORMAT OF SKIP COND. THEY SKIP IF CONDITION ; 1599 ; IS TRUE. SOME EXAMPLES, ; 1600 ; SKIP AD.EQ.0 ;SKIP IF ADDER OUTPUT IS ZERO ; 1601 ; SKIP IRPT ;SKIP IF INTERRUPT IS PENDING ; 1602 ; ; 1603 ; ; 1604 ; ; 1605 ; 7.0 DISPATCH MACROS ; 1606 ; ; 1607 ; DISPATCH MACROS CAUSE THE MACHINE TO GO TO ONE OF MANY PLACES. IN MOST CASES ; 1608 ; THEY HAVE THE WORD "DISP" IN THE NAME OF THE MACRO. FOR EXAMPLE, MUL DISP, BYTE ; 1609 ; DISP. ; 1610 ; ; 1611 ; ; 1612 ; ; 1613 ; 8.0 SUPER MACROS ; 1614 ; ; 1615 ; THERE ARE PLACES WHERE ONE MICRO INSTRUCTION IS USED IN MANY PLACES. FOR ; 1616 ; EXAMPLE, MANY PLACES DETECT ILLEGAL OPERATIONS AND WANT TO GENERATE A TRAP TO ; 1617 ; THE MONITOR. WE COULD WRITE ; 1618 ; J/UUO ; 1619 ; BUT THIS WASTES A MICRO STEP DOING A USELESS JUMP. INSTEAD WE WRITE, ; 1620 ; UUO ; 1621 ; THIS MACRO IS THE FIRST STEP OF THE UUO ROUTINE AND JUMPS TO THE SECOND ; 1622 ; INSTRUCTION. WE WRITE THE EXPANSION OF THE UUO MACRO AS THE FIRST INSTRUCTION ; 1623 ; OF THE UUO ROUTINE SO THAT THE READER CAN SEE WHAT IT DOES. SOME EXAMPLES OF ; 1624 ; 1625 ; SUPER MACROS ARE: ; 1626 ; PAGE FAIL TRAP ;GENERATE A PAGE FAIL TRAP ; 1627 ; DONE ;THIS INSTRUCTION IS NOW COMPLETE ; 1628 ; ; USED WITH A SKIP OR DISP WHERE ; 1629 ; ; SOME PATHS ARE NOP'S ; 1630 ; HALT [] ;JUMP TO HALT LOOP. ARGUMENT IS A ; 1631 ; ; CODE ; 1632 ; 1633 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 39 ; DSK: KSHACK; KS10 47 21:53:04 16-JAN-87 MACROS -- DATA PATH CHIP -- GENERAL ; 1634 .TOC "MACROS -- DATA PATH CHIP -- GENERAL" ; 1635 ; 1636 .NOT.[] "AD/.NOT.A,A/@1" ; 1637 []+[] "AD/A+B,A/@1,B/@2" ; 1638 []-[] "AD/A-B-.25,A/@1,B/@2,ADD .25" ; 1639 []-# "AD/A-D-.25,DBUS/DBM,DBM/#,A/@1,ADD .25" ; 1640 [].AND.# "AD/D.AND.A,DBUS/DBM,DBM/#,A/@1" ; 1641 [].AND.Q "AD/A.AND.Q,A/@1,DEST/PASS" ; 1642 [].AND.[] "AD/A.AND.B,A/@2,B/@1,DEST/PASS" ; 1643 [].AND.NOT.[] "AD/.NOT.A.AND.B,A/@2,B/@1,DEST/PASS" ; 1644 [].OR.[] "AD/A.OR.B,A/@2,B/@1,DEST/PASS" ; 1645 [].XOR.# "AD/D.XOR.A,DBUS/DBM,DBM/#,A/@1" ; 1646 [].XOR.VMA "AD/D.XOR.A,DBUS/DBM,DBM/VMA,A/@1" ; 1647 [].XOR.[] "AD/A.XOR.B,A/@2,B/@1,DEST/PASS" ; 1648 []_#-[] "AD/D-A-.25,DEST/AD,A/@2,B/@1,DBUS/DBM,DBM/#,ADD .25" ; 1649 []_# "AD/D,DBUS/DBM,DBM/#,DEST/AD,B/@1" ; 1650 []_-1 "AD/-A-.25,A/ONE,DEST/AD,B/@1,ADD .25" ; 1651 []_-2 "AD/-A-.25,DEST/AD*2,A/ONE,B/@1,ADD .25" ; 1652 []_-Q "AD/-Q-.25,DEST/AD,B/@1,ADD .25" ; 1653 []_-Q*2 "AD/-Q-.25,DEST/AD*2,B/@1,ADD .25" ; 1654 []_-Q*.5 "AD/-Q-.25,DEST/AD*.5,B/@1,ADD .25" ; 1655 []_-[] "AD/-A-.25,A/@2,DEST/AD,B/@1,ADD .25" ; 1656 []_-[]-.25 "AD/-A-.25,A/@2,DEST/AD,B/@1" ; 1657 []_-[]*2 "AD/-A-.25,A/@2,DEST/AD*2,B/@1,ADD .25" ; 1658 []_.NOT.AC "AD/.NOT.D,DBUS/RAM,RAMADR/AC#,DEST/AD,B/@1" ; 1659 []_.NOT.AC[] "AD/.NOT.D,DBUS/RAM,RAMADR/AC*#,ACALU/AC+N,ACN/@2,DEST/AD,B/@1,DT/3T" ; 1660 []_.NOT.Q "AD/.NOT.Q,DEST/AD,B/@1" ; 1661 []_.NOT.[] "AD/.NOT.A,A/@2,DEST/AD,B/@1" ; 1662 []_0 "AD/ZERO,DEST/AD,B/@1" ; 1663 []_0*.5 LONG "AD/ZERO,DEST/Q_Q*.5,B/@1" ; 1664 []_0 XWD [] "AD/47,DEST/AD,B/@1,DBM/#,DBUS/DBM,#/@2,RSRC/DA,A/MASK" ; 1665 []_AC "AD/D,DBUS/RAM,RAMADR/AC#,DEST/AD,B/@1,AD PARITY" ; 1666 []_-AC "AD/-D-.25,DBUS/RAM,RAMADR/AC#,DEST/AD,B/@1,ADD .25" ; 1667 []_-AC[] "AD/-D-.25,DBUS/RAM,RAMADR/AC*#,ACALU/AC+N,ACN/@2,DEST/AD,B/@1,ADD .25,DT/3T" ; 1668 []_AC*.5 "AD/D,DBUS/RAM,RAMADR/AC#,DEST/AD*.5,B/@1,DT/3T" ; 1669 []_AC*.5 LONG "AD/D,DBUS/RAM,RAMADR/AC#,DEST/Q_Q*.5,B/@1,DT/3T" ; 1670 []_AC*2 "AD/D,DBUS/RAM,RAMADR/AC#,DEST/AD*2,B/@1,DT/3T" ; 1671 []_AC+1 "AD/D+A,DBUS/RAM,RAMADR/AC#,A/ONE,DEST/AD,B/@1" ; 1672 []_AC+1000001 "AD/D+A,DBUS/RAM,RAMADR/AC#,A/XWD1,DEST/AD,B/@1" ; 1673 []_AC+[] "AD/D+A,A/@2,DBUS/RAM,RAMADR/AC#,DEST/AD,B/@1,DT/3T" ; 1674 []_AC-1 "AD/D-A-.25,DBUS/RAM,RAMADR/AC#,A/ONE,DEST/AD,B/@1,ADD .25" ; 1675 []_AC-[] "AD/D-A-.25,A/@2,DBUS/RAM,RAMADR/AC#,DEST/AD,B/@1,ADD .25" ; 1676 []_AC-[]-.25 "AD/D-A-.25,A/@2,DBUS/RAM,RAMADR/AC#,DEST/AD,B/@1" ; 1677 []_AC[]-[] "AD/D-A-.25,A/@3,DBUS/RAM,RAMADR/AC*#,ACALU/AC+N,ACN/@2,DEST/AD,B/@1,ADD .25,DT/3T" ; 1678 []_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" ; 1679 []_AC[].AND.[] "AD/D.AND.A,A/@3,DBUS/RAM,RAMADR/AC*#,ACALU/AC+N,ACN/@2,DEST/AD,B/@1,DT/3T" ; 1680 []_AC.AND.MASK "AD/D.AND.A,A/MASK,DBUS/RAM,RAMADR/AC#,DEST/AD,B/@1,AD PARITY" ; 1681 []_AC[] "AD/D,DBUS/RAM,RAMADR/AC*#,ACALU/AC+N,ACN/@2,DEST/AD,B/@1,AD PARITY,DT/3T" ; 1682 []_AC[]*2 "AD/D,DBUS/RAM,RAMADR/AC*#,ACALU/AC+N,ACN/@2,DEST/AD*2,B/@1,AD PARITY,DT/3T" ; 1683 []_AC[]*.5 "AD/D,DBUS/RAM,RAMADR/AC*#,ACALU/AC+N,ACN/@2,DEST/AD*.5,B/@1,AD PARITY,DT/3T" ; 1684 []_APR "AD/D,DBUS/DBM,DBM/APR FLAGS,DEST/AD,B/@1,DT/3T" ; 1685 []_CURRENT AC [] "AD/D,DBUS/RAM,RAMADR/#,ACALU/B,ACN/@2,DEST/AD,B/@1,AD PARITY,DT/3T" ; 1686 []_EA FROM [] "AD/57,RSRC/0A,A/@2,DEST/AD,B/@1" ; 1687 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 40 ; DSK: KSHACK; KS10 47 21:53:04 16-JAN-87 MACROS -- DATA PATH CHIP -- GENERAL ; 1688 ; 1689 []_EA "AD/57,RSRC/0A,A/HR,DEST/AD,B/@1" ; 1690 []_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 TES ; 1691 []_FE "AD/D,DEST/AD*.5,B/@1,DBUS/DBM,DBM/DP,SCAD/A+B,SCADA/S#,S#/0,SCADB/FE,BYTE/BYTE5" ; 1692 []_FLAGS "AD/D.AND.A,DBUS/PC FLAGS,A/MASK,DEST/AD,B/@1,RSRC/0Q" ; 1693 []_P "AD/D,DEST/A,A/@1,B/@1,DBUS/DBM,DBM/DP,BYTE/BYTE1,SCAD/A+B,SCADA/S#,S#/0,SCADB/FE" ; 1694 []_PC WITH FLAGS "AD/D,DBUS/PC FLAGS,RSRC/0A,A/PC,DEST/AD,B/@1" ; 1695 []_Q "AD/Q,DEST/AD,B/@1" ; 1696 []_Q*.5 "AD/Q,DEST/AD*.5,B/@1" ; 1697 []_Q*2 "AD/Q,DEST/AD*2,B/@1" ; 1698 []_Q*2 LONG "AD/Q,DEST/Q_Q*2,B/@1" ; 1699 []_Q+1 "AD/A+Q,A/ONE,DEST/AD,B/@1" ; 1700 []_RAM "AD/D,DBUS/RAM,RAMADR/RAM,DEST/AD,B/@1,AD PARITY" ; 1701 []_TIME "AD/44,RSRC/DA,A/MASK,DBUS/DBM,DBM/EXP,DEST/AD,B/@1" ; 1702 []_VMA "AD/D,DEST/AD,B/@1,DBUS/DBM,DBM/VMA" ; 1703 []_XR "AD/D,DBUS/RAM,RAMADR/XR#,DEST/AD,B/@1" ; 1704 []_[] "AD/A,A/@2,DEST/AD,B/@1" ; 1705 []_[] SWAP "AD/D,DBUS/DBM,DBM/DP SWAP,DEST/A,A/@2,B/@1" ; 1706 []_[] XWD 0 "AD/45,DEST/AD,B/@1,DBM/#,DBUS/DBM,#/@2,RSRC/D0,A/MASK" ; 1707 []_[]*.5 "AD/A,A/@2,DEST/AD*.5,B/@1" ; 1708 []_[]*.5 LONG "AD/A,A/@2,DEST/Q_Q*.5,B/@1" ; 1709 []_[]*2 "AD/A,A/@2,DEST/AD*2,B/@1" ; 1710 []_[]*2 LONG "AD/A,A/@2,DEST/Q_Q*2,B/@1" ; 1711 []_[]*4 "AD/A+B,A/@2,B/@1,DEST/AD*2" ; 1712 []_[]+# "AD/D+A,DBUS/DBM,DBM/#,A/@2,DEST/AD,B/@1" ; 1713 []_[]+.25 "AD/0+A,A/@2,DEST/AD,B/@1, ADD .25" ; 1714 []_[]+0 "AD/0+A,A/@2,DEST/AD,B/@1" ; 1715 []_[]+1 "AD/A+B,A/ONE,B/@1,B/@2,DEST/AD" ; 1716 []_[]+1000001 "AD/D+A,A/@2,DBUS/DBM,DBM/#,#/1,DEST/AD,B/@1" ; 1717 []_[]+AC "AD/D+A,A/@2,DBUS/RAM,RAMADR/AC#,DEST/AD,B/@1" ; 1718 []_[]+AC[] "AD/D+A,A/@2,DBUS/RAM,RAMADR/AC*#,ACALU/AC+N,ACN/@3,DEST/AD,B/@1,DT/3T" ; 1719 []_[]+Q "AD/A+Q,A/@2,DEST/AD,B/@1" ; 1720 []_[]+RAM "AD/D+A,A/@2,DBUS/RAM,RAMADR/RAM,DEST/AD,B/@1" ; 1721 []_[]+XR "AD/D+A,DBUS/RAM,RAMADR/XR#,A/@2,DEST/AD,B/@1,HOLD LEFT" ; 1722 []_[]+[] "AD/A+B,A/@3,B/@1,B/@2,DEST/AD" ; 1723 []_[]+[]+.25 "AD/A+B,A/@3,B/@1,B/@2,DEST/AD, ADD .25" ; 1724 []_[]-# "AD/A-D-.25,DBUS/DBM,DBM/#,A/@2,DEST/AD,B/@1, ADD .25" ; 1725 []_[]-1 "AD/B-A-.25,B/@1,A/ONE,DEST/AD,ADD .25" ; 1726 []_[]-1000001 "AD/A-D-.25,A/@2,DBUS/DBM,DBM/#,#/1,DEST/AD,B/@1,ADD .25" ; 1727 []_[]-AC "AD/A-D-.25,A/@2,DBUS/RAM,RAMADR/AC#,DEST/AD,B/@1,ADD .25" ; 1728 []_[]-RAM "AD/A-D-.25,A/@2,DBUS/RAM,RAMADR/RAM,DEST/AD,B/@1,ADD .25" ; 1729 []_[]-[] "AD/B-A-.25,B/@1,B/@2,A/@3,DEST/AD,ADD .25" ; 1730 []_[]-[] REV "AD/A-B-.25,B/@1,B/@3,A/@2,DEST/AD,ADD .25" ; 1731 []_[].AND.# "AD/D.AND.A,DBUS/DBM,DBM/#,DEST/AD,A/@2,B/@1" ; 1732 []_[].AND.# CLR LH "AD/ZERO,RSRC/DA,DBUS/DBM,DBM/#,DEST/AD,A/@2,B/@1" ; 1733 []_[].AND.# CLR RH "AD/D.AND.A,RSRC/0Q,DBUS/DBM,DBM/#,DEST/AD,A/@2,B/@1" ; 1734 []_(AC[].AND.[])*.5 "AD/D.AND.A,DEST/AD*.5,A/@3,B/@1,RAMADR/AC*#,DBUS/RAM,ACALU/AC+N,ACN/@2" ; 1735 []_(Q+1)*.5 "AD/A+Q,A/ONE,DEST/AD*.5,B/@1" ; 1736 []_(#-[])*2 "AD/D-A-.25,DEST/AD*2,A/@2,B/@1,DBUS/DBM,DBM/#,ADD .25" ; 1737 []_(-[])*.5 "AD/-A-.25,A/@2,DEST/AD*.5,B/@1,ADD .25" ; 1738 []_(-[]-.25)*.5 LONG "AD/-A-.25,A/@2,DEST/Q_Q*.5,B/@1" ; 1739 []_(-[]-.25)*2 LONG "AD/-A-.25,A/@2,DEST/Q_Q*2,B/@1" ; 1740 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 41 ; DSK: KSHACK; KS10 47 21:53:04 16-JAN-87 MACROS -- DATA PATH CHIP -- GENERAL ; 1741 ; 1742 []_([].AND.#)*.5 "AD/D.AND.A,DBUS/DBM,DBM/#,DEST/AD*.5,A/@2,B/@1" ; 1743 []_([].AND.#)*2 "AD/D.AND.A,DBUS/DBM,DBM/#,DEST/AD*2,A/@2,B/@1" ; 1744 []_([].AND.NOT.#)*.5 "AD/.NOT.D.AND.A,DBUS/DBM,DBM/#,DEST/AD*.5,A/@2,B/@1" ; 1745 []_([].AND.NOT.#)*2 "AD/.NOT.D.AND.A,DBUS/DBM,DBM/#,DEST/AD*2,A/@2,B/@1" ; 1746 []_([].AND.[])*.5 "AD/A.AND.B,DEST/AD*.5,A/@3,B/@1,B/@2" ; 1747 []_([].AND.[])*2 "AD/A.AND.B,DEST/AD*2,A/@3,B/@1,B/@2" ; 1748 []_([].OR.#)*.5 "AD/D.OR.A,DBUS/DBM,DBM/#,DEST/AD*.5,A/@2,B/@1" ; 1749 []_([].OR.#)*2 "AD/D.OR.A,DBUS/DBM,DBM/#,DEST/AD*2,A/@2,B/@1" ; 1750 []_([]+#)*2 "AD/D+A,DBUS/DBM,DBM/#,DEST/AD*2,A/@2,B/@1" ; 1751 []_([]+1)*2 "AD/A+B,A/ONE,B/@1,B/@2,DEST/AD*2" ; 1752 []_([]+[])*.5 LONG "AD/A+B,A/@3,B/@1,B/@2,DEST/Q_Q*.5" ; 1753 []_([]+[])*2 LONG "AD/A+B,A/@3,B/@1,B/@2,DEST/Q_Q*2" ; 1754 []_([]-[])*.5 LONG "AD/B-A-.25,A/@3,B/@1,B/@2,DEST/Q_Q*.5, ADD .25" ; 1755 []_([]-[])*2 LONG "AD/B-A-.25,A/@3,B/@1,B/@2,DEST/Q_Q*2, ADD .25" ; 1756 []_([]+[]+.25)*.5 LONG "AD/A+B,A/@3,B/@1,B/@2,DEST/Q_Q*.5, ADD .25" ; 1757 []_[].AND.AC "AD/D.AND.A,DBUS/RAM,RAMADR/AC#,A/@2,DEST/AD,B/@1" ; 1758 []_[].AND.NOT.# "AD/.NOT.D.AND.A,DBUS/DBM,DBM/#,A/@2,DEST/AD,B/@1" ; 1759 []_[].AND.NOT.[] "AD/.NOT.A.AND.B,DEST/AD,B/@1,B/@2,A/@3" ; 1760 []_[].AND.NOT.AC "AD/.NOT.D.AND.A,DBUS/RAM,RAMADR/AC#,A/@2,DEST/AD,B/@1" ; 1761 []_[].AND.Q "AD/A.AND.Q,A/@2,DEST/AD,B/@1" ; 1762 []_[].AND.[] "AD/A.AND.B,A/@3,B/@1,B/@2,DEST/AD" ; 1763 []_[].EQV.AC "AD/D.EQV.A,DBUS/RAM,RAMADR/AC#,A/@2,DEST/AD,B/@1" ; 1764 []_[].EQV.Q "AD/A.EQV.Q,A/@2,DEST/AD,B/@1" ; 1765 []_[].OR.# "AD/D.OR.A,DBUS/DBM,DBM/#,A/@2,DEST/AD,B/@1" ; 1766 []_[].OR.AC "AD/D.OR.A,DBUS/RAM,RAMADR/AC#,A/@2,DEST/AD,B/@1" ; 1767 []_[].OR.FLAGS "AD/D.OR.A,DBUS/PC FLAGS,RSRC/0A,A/@1,DEST/AD,B/@1" ; 1768 []_[].OR.[] "AD/A.OR.B,A/@3,B/@2,B/@1,DEST/AD" ; 1769 []_[].XOR.# "AD/D.XOR.A,DBUS/DBM,DBM/#,DEST/AD,A/@2,B/@1" ; 1770 []_[].XOR.AC "AD/D.XOR.A,DBUS/RAM,RAMADR/AC#,A/@1,DEST/AD,B/@2" ; 1771 []_[].XOR.[] "AD/A.XOR.B,A/@3,B/@1,B/@2,DEST/AD" ; 1772 ; 1773 [] LEFT_0 "AD/57,RSRC/0B,DEST/AD,B/@1" ; 1774 [] RIGHT_0 "AD/53,RSRC/D0,DEST/AD,B/@1" ; 1775 [] LEFT_-1 "AD/54,RSRC/0B,DEST/AD,A/MASK,B/@1" ; 1776 [] RIGHT_-1 "AD/53,RSRC/0A,DEST/AD,A/MASK,B/@1" ; 1777 ; 1778 ; 1779 []_+SIGN "[@1]_[@1].AND.#, #/777, HOLD RIGHT" ; 1780 []_-SIGN "[@1]_[@1].OR.#, #/777000, HOLD RIGHT" ; 1781 ;THE FOLLOWING 2 MACROS ARE USED IN DOUBLE FLOATING STUFF ; 1782 ; THEY ASSUME THAT THE OPERAND HAS BEEN SHIFTED RIGHT 1 PLACE. ; 1783 ; THEY SHIFT 1 MORE PLACE ; 1784 []_+SIGN*.5 "AD/.NOT.D.AND.A,A/@1,B/@1,DEST/AD*.5,DBUS/DBM,DBM/#,#/777400,RSRC/0A" ; 1785 []_-SIGN*.5 "AD/D.OR.A,A/@1,B/@1,DEST/AD*.5,DBUS/DBM,DBM/#,#/777400,RSRC/0A" ; 1786 ; 1787 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 42 ; DSK: KSHACK; KS10 47 21:53:04 16-JAN-87 MACROS -- DATA PATH CHIP -- Q ; 1788 .TOC "MACROS -- DATA PATH CHIP -- Q" ; 1789 ; 1790 Q-[] "AD/Q-A-.25,A/@1,ADD .25" ; 1791 Q.AND.NOT.[] "AD/.NOT.A.AND.Q,A/@1,DEST/PASS" ; 1792 Q_[] "AD/A,DEST/Q_AD,A/@1" ; 1793 Q_[]-[] "AD/A-B-.25,A/@1,B/@2,DEST/Q_AD,ADD .25" ; 1794 Q_[]+[] "AD/A+B,A/@1,B/@2,DEST/Q_AD" ; 1795 Q_[].AND.[] "AD/A.AND.B,A/@1,B/@2,DEST/Q_AD" ; 1796 Q_.NOT.AC[] "AD/.NOT.D,DBUS/RAM,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DEST/Q_AD,DT/3T" ; 1797 Q_-[] "AD/-A-.25,DEST/Q_AD,A/@1, ADD .25" ; 1798 Q_-1 "Q_-[ONE]" ; 1799 Q_-AC[] "AD/-D-.25,DBUS/RAM,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DEST/Q_AD,ADD .25,DT/3T" ; 1800 Q_-Q "AD/-Q-.25,ADD .25,DEST/Q_AD" ; 1801 Q_AC "AD/D,DBUS/RAM,RAMADR/AC#,DEST/Q_AD,CHK PARITY" ; 1802 Q_AC[] "AD/D,DBUS/RAM,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DEST/Q_AD,CHK PARITY,DT/3T" ; 1803 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/ ; 1804 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" ; 1805 Q_.NOT.Q "AD/.NOT.Q,DEST/Q_AD" ; 1806 Q_# "AD/D,DBUS/DBM,DBM/#,DEST/Q_AD" ; 1807 Q_0 "AD/ZERO,DEST/Q_AD" ; 1808 Q_0 XWD [] "AD/47,DEST/Q_AD,DBM/#,DBUS/DBM,#/@1,RSRC/DA,A/MASK" ; 1809 Q_Q+.25 "AD/0+Q,DEST/Q_AD,ADD .25" ; 1810 Q_Q+1 "AD/A+Q,A/ONE,DEST/Q_AD" ; 1811 Q_Q-1 "AD/Q-A-.25,A/ONE,DEST/Q_AD, ADD .25" ; 1812 Q_Q+AC "AD/D+Q,DBUS/RAM,RAMADR/AC#,DEST/Q_AD" ; 1813 Q_Q*.5 "[MAG]_[MASK]*.5 LONG, SHSTYLE/NORM" ; 1814 Q_Q*2 "[MASK]_[MAG]*2 LONG, SHSTYLE/NORM" ; 1815 Q_Q.OR.# "AD/D.OR.Q,DBUS/DBM,DBM/#,DEST/Q_AD" ; 1816 Q_Q.AND.# "AD/D.AND.Q,DBUS/DBM,DBM/#,DEST/Q_AD" ; 1817 Q_Q.AND.[] "AD/A.AND.Q,A/@1,DEST/Q_AD" ; 1818 Q_Q.AND.NOT.[] "AD/.NOT.A.AND.Q,A/@1,DEST/Q_AD" ; 1819 Q_Q+[] "AD/A+Q,A/@1,DEST/Q_AD" ; 1820 Q_[].AND.Q "AD/A.AND.Q,A/@1,DEST/Q_AD" ; 1821 Q_[].OR.Q "AD/A.OR.Q,A/@1,DEST/Q_AD" ; 1822 ; 1823 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 43 ; DSK: KSHACK; KS10 47 21:53:04 16-JAN-87 MACROS -- DATA PATH CHIP -- MISC. ; 1824 .TOC "MACROS -- DATA PATH CHIP -- MISC." ; 1825 ; 1826 CLEAR []0 "AD/D.AND.A,A/@1,DBUS/DBM,DBM/#,#/377777,DEST/AD,B/@1,HOLD RIGHT" ; 1827 CLEAR ARX0 "CLEAR [ARX]0" ; 1828 ; 1829 ;CYCLE CHIP REGISTERS THRU AD SO WE CAN TEST BITS ; 1830 READ XR "AD/D,DBUS/RAM,RAMADR/XR#" ; 1831 READ [] "AD/B,B/@1" ; 1832 READ Q "AD/Q" ; 1833 ; 1834 ;TEST BITS IN REGISTERS (SKIP IF ZERO) ; 1835 TR [] "AD/D.AND.A,DBUS/DBM,DBM/#,A/@1,SKIP ADR.EQ.0,DT/3T" ; 1836 TL [] "AD/D.AND.A,DBUS/DBM,DBM/#,A/@1,SKIP ADL.EQ.0,DT/3T" ; 1837 ; 1838 ; 1839 ;CAUSE BITS -2 AND -1 TO MATCH BIT 0. ; 1840 FIX [] SIGN "AD/D,DEST/A,A/@1,B/@1,DBUS/DP,HOLD RIGHT" ; 1841 ; 1842 ;GENERATE A MASK IN Q AND ZERO A 2901 REGISTER ; 1843 GEN MSK [] "AD/ZERO,DEST/Q_Q*2,B/@1,ONES" ; 1844 ; 1845 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 44 ; DSK: KSHACK; KS10 47 21:53:04 16-JAN-87 MACROS -- STORE IN AC ; 1846 .TOC "MACROS -- STORE IN AC" ; 1847 ; 1848 FM WRITE "FMWRITE/1" ; 1849 ; 1850 AC[]_[] VIA AD "AD/B,DEST/PASS,B/@2,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DBUS/DP,FM WRITE,CHK PARITY" ; 1851 AC_[] VIA AD "AD/B,DEST/PASS,B/@1,RAMADR/AC#,DBUS/DP,FM WRITE,CHK PARITY" ; 1852 AC[]_[] "AD/A,DEST/A,B/@2,A/@2,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DBUS/DP, FM WRITE" ; 1853 AC[]_[] TEST "AD/D,DBUS/DP,DEST/A,B/@2,A/@2,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DBUS/DP, FM WRITE" ; 1854 AC[]_[]+1 "AD/A+B,DEST/PASS,A/ONE,B/@2,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DBUS/DP,FM WRITE" ; 1855 AC[]_[]*2 "AD/A+B,DEST/PASS,A/@2,B/@2,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DBUS/DP,FM WRITE" ; 1856 AC_[] "AD/A,DEST/A,B/@1,A/@1,RAMADR/AC#,DBUS/DP, FM WRITE" ; 1857 AC_[] TEST "AD/D,DBUS/DP,DEST/A,B/@1,A/@1,RAMADR/AC#,DBUS/DP, FM WRITE" ; 1858 AC_[]+1 "AD/A+B,DEST/PASS,A/ONE,B/@1,RAMADR/AC#, FM WRITE" ; 1859 AC_[]+Q "AD/A+Q,DEST/PASS,A/@1,B/@1,RAMADR/AC#, FM WRITE" ; 1860 AC[]_[]+Q "AD/A+Q,DEST/PASS,A/@2,B/@2,RAMADR/AC*#,ACALU/AC+N,ACN/@1, FM WRITE" ; 1861 AC[]_[]-[] "AD/A-B-.25,DEST/PASS,B/@3,A/@2,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DBUS/DP,FM WRITE,ADD .25" ; 1862 AC[]_[]+[] "AD/A+B,DEST/PASS,B/@3,A/@2,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DBUS/DP,FM WRITE" ; 1863 AC_[]+[] "AD/A+B,DEST/PASS,B/@2,A/@1,RAMADR/AC#,DBUS/DP,FM WRITE" ; 1864 AC_[]-[] "AD/A-B-.25,DEST/PASS,B/@2,A/@1,RAMADR/AC#,DBUS/DP,FM WRITE,ADD .25" ; 1865 AC[]_[].AND.[] "AD/A.AND.B,DEST/PASS,B/@3,A/@2,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DBUS/DP,FM WRITE" ; 1866 AC[]_Q.AND.[] "AD/A.AND.Q,DEST/PASS,A/@2,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DBUS/DP,FM WRITE" ; 1867 AC[]_[].EQV.Q "AD/A.EQV.Q,DEST/PASS,A/@2,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DBUS/DP,FM WRITE" ; 1868 AC[]_-[] "AD/-B-.25,DEST/PASS,B/@2,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DBUS/DP,FM WRITE,ADD .25" ; 1869 AC_-[] "AD/-A-.25,DEST/PASS,A/@1,RAMADR/AC#,DBUS/DP, ADD .25,FM WRITE" ; 1870 AC_[].OR.[] "AD/A.OR.B,A/@1,B/@2,RAMADR/AC#,DBUS/DP, FM WRITE" ; 1871 AC[]_.NOT.[] "AD/.NOT.B,DEST/PASS,B/@2,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DBUS/DP,FM WRITE" ; 1872 AC_.NOT.[] "AD/.NOT.B,DEST/PASS,B/@1,RAMADR/AC#,DBUS/DP,FM WRITE" ; 1873 AC[]_-Q "AD/-Q-.25,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DBUS/DP,FM WRITE,ADD .25" ; 1874 AC_Q "AD/Q,RAMADR/AC#,DBUS/DP, FM WRITE" ; 1875 AC[]_0 "AD/ZERO,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DBUS/DP, FM WRITE" ; 1876 AC[]_1 "AD/B,DEST/PASS,B/ONE,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DBUS/DP,FM WRITE" ; 1877 AC[]_Q "AD/Q,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DBUS/DP, FM WRITE" ; 1878 ; 1879 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 45 ; DSK: KSHACK; KS10 47 21:53:04 16-JAN-87 MACROS -- MICROCODE WORK SPACE ; 1880 .TOC "MACROS -- MICROCODE WORK SPACE" ; 1881 ; 1882 ; 1883 WORK[]_Q "AD/Q,DEST/PASS,RAMADR/#,WORK/@1,FM WRITE" ; 1884 Q_WORK[] "AD/D,DEST/Q_AD,RAMADR/#,DBUS/RAM,WORK/@1,DT/3T" ; 1885 WORK[]_0 "AD/ZERO,DEST/PASS,RAMADR/#,WORK/@1,FM WRITE" ; 1886 WORK[]_1 "AD/B,DEST/PASS,RAMADR/#,WORK/@1,B/ONE,FM WRITE" ; 1887 WORK[]_[] "AD/B,DEST/PASS,RAMADR/#,WORK/@1,B/@2,FM WRITE" ; 1888 WORK[]_[] CLR LH "AD/47,RSRC/AB,DEST/PASS,RAMADR/#,WORK/@1,B/@2,A/MASK,FM WRITE" ; 1889 WORK[]_[]-1 "AD/A-B-.25,A/@2,B/ONE,DEST/PASS,RAMADR/#,WORK/@1,FM WRITE, ADD .25" ; 1890 WORK[]_.NOT.[] "AD/.NOT.B,DEST/PASS,RAMADR/#,WORK/@1,B/@2,FM WRITE" ; 1891 WORK[]_[].AND.[] "AD/A.AND.B,DEST/PASS,RAMADR/#,WORK/@1,A/@2,B/@3,FM WRITE" ; 1892 WORK[]_[]+[] "AD/A+B,DEST/PASS,RAMADR/#,WORK/@1,A/@2,B/@3,FM WRITE" ; 1893 [].AND.NOT.WORK[] "AD/.NOT.D.AND.A,A/@1,DBUS/RAM,RAMADR/#,WORK/@2,DT/3T" ; 1894 [].AND.WORK[] "AD/D.AND.A,A/@1,DBUS/RAM,RAMADR/#,WORK/@2,DT/3T" ; 1895 []_[]+WORK[] "AD/D+A,A/@2,DEST/AD,B/@1,DBUS/RAM,RAMADR/#,WORK/@3,DT/3T" ; 1896 []_[].AND.WORK[] "AD/D.AND.A,A/@2,DEST/AD,B/@1,DBUS/RAM,RAMADR/#,WORK/@3,DT/3T" ; 1897 []_[].AND.NOT.WORK[] "AD/.NOT.D.AND.A,A/@2,DEST/AD,B/@1,DBUS/RAM,RAMADR/#,WORK/@3,DT/3T" ; 1898 []_[].OR.WORK[] "AD/D.OR.A,A/@2,DEST/AD,B/@1,DBUS/RAM,RAMADR/#,WORK/@3,DT/3T" ; 1899 []_WORK[] "AD/D,DEST/AD,B/@1,DBUS/RAM,RAMADR/#,WORK/@2,DT/3T" ; 1900 []_.NOT.WORK[] "AD/.NOT.D,DEST/AD,B/@1,DBUS/RAM,RAMADR/#,WORK/@2,DT/3T" ; 1901 []_-WORK[] "AD/-D-.25,ADD .25,DEST/AD,B/@1,DBUS/RAM,RAMADR/#,WORK/@2,DT/3T" ; 1902 []_WORK[]+1 "AD/D+A,A/ONE,DEST/AD,B/@1,DBUS/RAM,RAMADR/#,WORK/@2,DT/3T" ; 1903 Q_Q-WORK[] "AD/Q-D-.25,DEST/Q_AD,DBUS/RAM,RAMADR/#,WORK/@1,ADD .25,DT/3T" ; 1904 []_[]-WORK[] "AD/A-D-.25,DEST/AD,A/@2,B/@1,DBUS/RAM,RAMADR/#,WORK/@3,ADD .25,DT/3T" ; 1905 ; 1906 RAM_[] "AD/B,DEST/PASS,RAMADR/RAM,B/@1,FM WRITE" ; 1907 ; 1908 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 46 ; DSK: KSHACK; KS10 47 21:53:04 16-JAN-87 MACROS -- MEMORY CONTROL ; 1909 .TOC "MACROS -- MEMORY CONTROL" ; 1910 ; 1911 MEM CYCLE "MEM/1" ; 1912 ; 1913 ;THE FOLLOWING MACROS CONTROL MEMORY ADDRESS ; 1914 LOAD VMA "MEM CYCLE,LDVMA/1" ; 1915 FORCE EXEC "FORCE EXEC/1" ; 1916 VMA PHYSICAL "PHYSICAL/1,FORCE EXEC/1,FORCE USER/0,EXT ADR/1,LOAD VMA" ; 1917 VMA PHYSICAL WRITE "LOAD VMA,VMA PHYSICAL,WAIT/1,MEM/1,WRITE CYCLE/1,WRITE TEST/0" ; 1918 VMA PHYSICAL READ "LOAD VMA,VMA PHYSICAL,WAIT/1,MEM/1,READ CYCLE/1,WRITE TEST/0" ; 1919 VMA EXTENDED "EXT ADR/1" ; 1920 ; 1921 PXCT EA "PXCT/E1" ; 1922 PXCT DATA "PXCT/D1" ; 1923 PXCT BLT DEST "PXCT/D1" ; 1924 PXCT BYTE PTR EA "PXCT/E2" ; 1925 PXCT BYTE DATA "PXCT/D2" ; 1926 PXCT STACK WORD "PXCT/D2" ; 1927 PXCT BLT SRC "PXCT/D2" ; 1928 PXCT EXTEND EA "PXCT/E2" ; 1929 ; 1930 ;THE FOLLOWING MACROS GET MEMORY CYCLES STARTED ; 1931 WRITE TEST "WRITE TEST/1,WAIT/1" ; 1932 START READ "MEM CYCLE,READ CYCLE/1,WAIT/1" ; 1933 START WRITE "MEM CYCLE,WRITE TEST,WRITE CYCLE/1,WAIT/1" ; 1934 START NO TEST WRITE "MEM CYCLE,WRITE CYCLE/1,WAIT/1" ; 1935 FETCH "START READ,FETCH/1,PXCT/CURRENT,WAIT/1" ; 1936 ; 1937 ;THE FOLLOWING MACROS COMPLETE MEMORY CYCLES ; 1938 MEM WAIT "MEM CYCLE,WAIT/1" ; 1939 MEM READ "MEM WAIT,DBUS/DBM,DBM/MEM" ; 1940 MEM WRITE "MEM WAIT,DT/3T" ; 1941 SPEC MEM READ "SPEC/WAIT,DBUS/DBM,DBM/MEM" ; 1942 SPEC MEM WRITE "SPEC/WAIT,DT/3T" ; 1943 ; 1944 ; 1945 ;THINGS WHICH WRITE MEMORY ; 1946 MEM_[] "AD/B,DEST/PASS,B/@1,DBUS/DP,RAMADR/VMA,CHK PARITY" ; 1947 MEM_Q "AD/Q,DBUS/DP,RAMADR/VMA" ; 1948 ; 1949 ; 1950 ;THINGS WHICH READ MEMORY ; 1951 []_IO DATA "AD/D,DBUS/DBM,RAMADR/VMA,DEST/AD,B/@1" ; 1952 []_MEM "AD/D,DBUS/DBM,RAMADR/VMA,DEST/AD,B/@1,CHK PARITY" ; 1953 []_MEM THEN FETCH "AD/D,DBUS/DBM,RAMADR/VMA,DEST/A,A/PC,B/@1,CHK PARITY, FETCH, LOAD VMA" ; 1954 []_MEM*.5 "AD/D,DBUS/DBM,RAMADR/VMA,DEST/AD*.5,B/@1,CHK PARITY" ; 1955 []_MEM.AND.MASK "AD/D.AND.A,A/MASK,DBUS/DBM,RAMADR/VMA,DEST/AD,B/@1,CHK PARITY" ; 1956 []_(MEM.AND.[])*.5 "AD/D.AND.A,A/@2,DBUS/DBM,RAMADR/VMA,DEST/AD*.5,B/@1,CHK PARITY" ; 1957 Q_MEM "AD/D,DBUS/DBM,RAMADR/VMA,DEST/Q_AD,CHK PARITY" ; 1958 []_MEM AND READ [] "AD/D,DBUS/DBM,RAMADR/VMA,DEST/A,B/@1,A/@2,CHK PARITY" ; 1959 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 47 ; DSK: KSHACK; KS10 47 21:53:04 16-JAN-87 MACROS -- VMA ; 1960 .TOC "MACROS -- VMA" ; 1961 ; 1962 VMA_[] "AD/A,A/@1,DEST/PASS,LOAD VMA" ; 1963 VMA_[] WITH FLAGS "AD/A,A/@1,DEST/PASS,LOAD VMA,WAIT/1, MEM/1, EXT ADR/1, DP FUNC/1, DT/3T" ; 1964 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/ ; 1965 VMA_[]+1 "AD/A+B,A/ONE,B/@1,DEST/AD,HOLD LEFT,LOAD VMA" ; 1966 VMA_[]-1 "AD/B-A-.25,A/ONE,B/@1,ADD .25,HOLD LEFT,LOAD VMA" ; 1967 VMA_[]+XR "AD/D+A,DBUS/RAM,RAMADR/XR#,A/@1,LOAD VMA" ; 1968 VMA_[]+[] "AD/A+B,DEST/PASS,A/@1,B/@2,LOAD VMA" ; 1969 ; 1970 NEXT [] PHYSICAL WRITE "AD/A+B,A/ONE,B/@1,DEST/AD,HOLD LEFT,LOAD VMA, VMA PHYSICAL, START WRITE" ; 1971 ; 1972 ;MACROS TO LOAD A 2901 REGISTER WITH VMA FLAG BITS ; 1973 []_VMA FLAGS "AD/45,DEST/AD,B/@1,DBM/#,DBUS/DBM,RSRC/D0,A/MASK" ; 1974 []_VMA IO READ "[@1]_VMA FLAGS,READ CYCLE/1,IO CYCLE/1,WRITE TEST/0, PHYSICAL/1, FORCE EXEC/1, FOR ; 1975 []_VMA IO WRITE "[@1]_VMA FLAGS,WRITE CYCLE/1,IO CYCLE/1,WRITE TEST/0, PHYSICAL/1, FORCE EXEC/1, F ; 1976 ; 1977 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 48 ; DSK: KSHACK; KS10 47 21:53:04 16-JAN-87 MACROS -- TIME CONTROL ; 1978 .TOC "MACROS -- TIME CONTROL" ; 1979 ; 1980 AC "RAMADR/AC#" ; 1981 AC[] "RAMADR/AC*#,ACALU/AC+N,ACN/@1" ; 1982 XR "RAMADR/XR#" ; 1983 VMA "RAMADR/VMA" ; 1984 WORK[] "RAMADR/#, WORK/@1" ; 1985 ; 1986 2T "T/2T" ; 1987 3T "T/3T" ; 1988 4T "T/4T" ; 1989 5T "T/5T" ; 1990 ; 1991 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 49 ; DSK: KSHACK; KS10 47 21:53:04 16-JAN-87 MACROS -- SCAD, SC, FE LOGIC ; 1992 .TOC "MACROS -- SCAD, SC, FE LOGIC" ; 1993 ; 1994 LOAD SC "LOADSC/1" ; 1995 LOAD FE "LOADFE/1" ; 1996 STEP SC "SCAD/A-1,SCADA/SC,LOAD SC,SKIP/SC" ; 1997 SHIFT "SCAD/A+B,SCADA/S#,SCADB/FE,S#/1, LOAD FE, MULTI SHIFT/1" ; 1998 ; 1999 SC_SC-1 "SCAD/A-1,SCADA/SC,LOAD SC" ; 2000 SC_SHIFT "SCAD/A+B,SCADA/S#,S#/0,SCADB/SHIFT,LOAD SC" ; 2001 SC_SHIFT-1 "SCAD/A+B,SCADA/S#,S#/1777,SCADB/SHIFT,LOAD SC" ; 2002 SC_SHIFT-2 "SCAD/A+B,SCADA/S#,S#/1776,SCADB/SHIFT,LOAD SC" ; 2003 SC_-SHIFT "SCAD/A-B,SCADA/S#,S#/0000,SCADB/SHIFT,LOAD SC" ; 2004 SC_-SHIFT-1 "SCAD/A-B,SCADA/S#,SCADB/SHIFT,S#/1777,LOAD SC" ; 2005 SC_-SHIFT-2 "SCAD/A-B,SCADA/S#,SCADB/SHIFT,S#/1776,LOAD SC" ; 2006 SC_SC-EXP "SCAD/A-B,SCADA/SC,SCADB/EXP,LOAD SC" ; 2007 SC_SC-EXP-1 "SCAD/A-B-1,SCADA/SC,SCADB/EXP,LOAD SC" ; 2008 SC_SC-FE-1 "SCAD/A-B-1,SCADA/SC,SCADB/FE,LOAD SC" ; 2009 SC_SC-FE "SCAD/A-B,SCADA/SC,SCADB/FE,LOAD SC" ; 2010 SC_EXP "SCAD/A+B,SCADA/S#,S#/0,SCADB/EXP,LOAD SC" ; 2011 SC_S#-FE "SCAD/A-B,SCADA/S#,SCADB/FE,LOAD SC" ; 2012 SC_FE+S# "SCAD/A+B,SCADA/S#,SCADB/FE,LOAD SC" ; 2013 SC_FE "SCAD/A.OR.B,SCADA/S#,S#/0,SCADB/FE,LOAD SC" ; 2014 SC_S# "SCAD/A,SCADA/S#,LOAD SC" ; 2015 ; 2016 ; 2017 SC_36. "SC_S#,S#/36." ; 2018 SC_35. "SC_S#,S#/35." ; 2019 SC_34. "SC_S#,S#/34." ; 2020 SC_28. "SC_S#,S#/28." ; 2021 SC_27. "SC_S#,S#/27." ; 2022 SC_26. "SC_S#,S#/26." ; 2023 SC_24. "SC_S#,S#/24." ; 2024 SC_22. "SC_S#,S#/22." ; 2025 SC_20. "SC_S#,S#/20." ; 2026 SC_19. "SC_S#,S#/19." ; 2027 SC_14. "SC_S#,S#/14." ; 2028 SC_11. "SC_S#,S#/11." ; 2029 SC_9. "SC_S#,S#/9." ; 2030 SC_8. "SC_S#,S#/8." ; 2031 SC_7 "SC_S#,S#/7" ; 2032 SC_6 "SC_S#,S#/6" ; 2033 SC_5 "SC_S#,S#/5" ; 2034 SC_4 "SC_S#,S#/4" ; 2035 SC_3 "SC_S#,S#/3" ; 2036 SC_2 "SC_S#,S#/2" ; 2037 SC_1 "SC_S#,S#/1" ; 2038 SC_0 "SC_S#,S#/0." ; 2039 SC_-1 "SC_S#,S#/1777" ; 2040 SC_-2 "SC_S#,S#/1776" ; 2041 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 50 ; DSK: KSHACK; KS10 47 21:53:04 16-JAN-87 MACROS -- SCAD, SC, FE LOGIC ; 2042 ; 2043 FE_-FE "SCAD/A-B,SCADA/S#,S#/0,SCADB/FE,LOAD FE" ; 2044 FE_-FE-1 "SCAD/A-B,SCADA/S#,S#/1777,SCADB/FE,LOAD FE" ; 2045 FE_FE-19 "SCAD/A+B,SCADB/FE,SCADA/S#,S#/1550,LOAD FE" ; 2046 FE_-FE+S# "SCAD/A-B,SCADA/S#,SCADB/FE,LOAD FE" ; 2047 FE_FE+SC "SCAD/A+B,SCADA/SC,SCADB/FE, LOAD FE" ; 2048 FE_FE.AND.S# "SCAD/A.AND.B,SCADA/S#,SCADB/FE, LOAD FE" ; 2049 FE_P "SCAD/A,SCADA/BYTE1, LOAD FE" ; 2050 FE_S "SCAD/A+B, SCADA/S#, S#/0 ,SCADB/SIZE, LOAD FE" ; 2051 FE_S+2 "SCAD/A+B, SCADA/S#, S#/20, SCADB/SIZE, LOAD FE" ; 2052 FE_-S-20 "SCAD/A-B,SCADA/S#,S#/1760,SCADB/SIZE, LOAD FE" ; 2053 FE_-S-10 "SCAD/A-B,SCADA/S#,S#/1770,SCADB/SIZE, LOAD FE" ; 2054 FE_S# "SCAD/A,SCADA/S#,LOAD FE" ; 2055 FE_S#-FE "SCAD/A-B,SCADA/S#,SCADB/FE,LOAD FE" ; 2056 FE_-2 "FE_S#,S#/1776" ; 2057 FE_-12. "FE_S#,S#/1764" ; 2058 FE_0 "FE_S#,S#/0" ; 2059 FE_-1 "FE_S#,S#/1777" ; 2060 FE_FE+1 "SCAD/A+B,SCADA/S#,SCADB/FE,S#/1,LOAD FE" ; 2061 FE_FE+2 "SCAD/A+B,SCADA/S#,SCADB/FE,S#/2,LOAD FE" ; 2062 FE_FE+10 "SCAD/A+B,SCADA/S#,SCADB/FE,S#/10,LOAD FE" ; 2063 FE_FE-1 "SCAD/A+B,SCADA/S#,SCADB/FE,S#/1777,LOAD FE" ; 2064 FE_FE+4 "SCAD/A+B,SCADA/S#,SCADB/FE,S#/4,LOAD FE" ; 2065 FE_EXP "SCAD/A+B,SCADA/S#,S#/0,SCADB/EXP,LOAD FE" ; 2066 FE_SC+EXP "SCAD/A+B,SCADA/SC,SCADB/EXP,LOAD FE" ; 2067 FE_SC-EXP "SCAD/A-B,SCADA/SC,SCADB/EXP,LOAD FE" ; 2068 FE_FE+P "SCAD/A+B,SCADA/BYTE1,SCADB/FE, LOAD FE" ; 2069 FE_FE-200 "SCAD/A+B,SCADA/S#,S#/1600,SCADB/FE,LOAD FE" ; 2070 FE_-FE+200 "SCAD/A-B,SCADA/S#,S#/200,SCADB/FE,LOAD FE" ; 2071 FE_FE+S# "SCAD/A+B,SCADA/S#,SCADB/FE,LOAD FE" ; 2072 ; 2073 ; 2074 GEN 17-FE "SCAD/A-B,SCADA/S#,S#/210,SCADB/FE" ; 2075 ; 2076 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 51 ; DSK: KSHACK; KS10 47 21:53:04 16-JAN-87 MACROS -- DATA PATH FIELD CONTROL ; 2077 .TOC "MACROS -- DATA PATH FIELD CONTROL" ; 2078 ; 2079 HOLD LEFT "CLKL/0,GENL/0" ; 2080 ADL PARITY "GENL/1" ; 2081 CHK PARITY L "CHKL/1" ; 2082 ; 2083 HOLD RIGHT "CLKR/0,GENR/0" ; 2084 ADR PARITY "GENR/1" ; 2085 CHK PARITY R "CHKR/1" ; 2086 ; 2087 AD PARITY "AD PARITY OK/1" ; 2088 CHK PARITY "CHKL/1,CHKR/1" ; 2089 BAD PARITY "CHKL/0,CHKR/0" ; 2090 ; 2091 INH CRY18 "SPEC/INHCRY18" ; 2092 ; 2093 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 52 ; DSK: KSHACK; KS10 47 21:53:04 16-JAN-87 MACROS -- SHIFT PATH CONTROL ; 2094 .TOC "MACROS -- SHIFT PATH CONTROL" ; 2095 ; 2096 ASH "SHSTYLE/NORM" ;ASH SHIFT ; 2097 LSH "SHSTYLE/NORM" ;LSH SHIFT (SAME HARDWARE AS ASH BUT ; 2098 ; BITS -2 AND -1 ARE PRESET TO ZERO) ; 2099 ROT "SHSTYLE/ROT" ; 2100 LSHC "SHSTYLE/LSHC" ; 2101 ASHC "SHSTYLE/ASHC" ; 2102 ROTC "SHSTYLE/ROTC" ; 2103 ONES "SHSTYLE/ONES" ;SHIFT IN 1 BITS ; 2104 DIV "SHSTYLE/DIV" ;SPECIAL PATH FOR DIVIDE (LIKE ROTC BUT ; 2105 ; COMPLEMENT BIT AS IT GOES AROUND) ; 2106 ; 2107 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 53 ; DSK: KSHACK; KS10 47 21:53:04 16-JAN-87 MACROS -- SPECIAL FUNCTIONS ; 2108 .TOC "MACROS -- SPECIAL FUNCTIONS" ; 2109 ; 2110 LOAD IR "SPEC/LOADIR" ;LOAD INSTRUCTION REG FROM ; 2111 ; DBUS0-DBUS8, LOAD AC# FROM ; 2112 ; DBUS9-DBUS12 ; 2113 ; UPDATE LAST-INST-PUBLIC PC FLAG ; 2114 LOAD INST "SPEC/LDINST" ; 2115 LOAD INST EA "SPEC/LOADXR,PXCT/CURRENT" ; 2116 LOAD BYTE EA "SPEC/LOADXR,PXCT/E2" ; 2117 LOAD IND EA "SPEC/LOADXR,PXCT/E1" ; 2118 LOAD SRC EA "SPEC/LOADXR,PXCT/BIS-SRC-EA" ; 2119 LOAD DST EA "SPEC/LOADXR,PXCT/BIS-DST-EA" ; 2120 ADD .25 "CRY38/1" ;GENERATE CARRY IN TO BIT 37 ; 2121 CALL [] "CALL/1,J/@1" ;CALL A SUBROUTINE ; 2122 LOAD PXCT "SPEC/LDPXCT" ;LOAD PXCT FLAGS IF EXEC MODE ; 2123 TURN OFF PXCT "SPEC/PXCT OFF" ; 2124 LOAD PAGE TABLE "SPEC/LDPAGE" ; 2125 LOAD AC BLOCKS "SPEC/LDACBLK" ; 2126 SWEEP "SPEC/SWEEP,PHYSICAL/1" ; 2127 CLRCSH "SPEC/CLRCSH,PHYSICAL/1" ; 2128 LOAD PI "SPEC/LDPI" ; 2129 SET HALT "SPEC/#,#/74" ; 2130 CLEAR CONTINUE "SPEC/#,#/40" ; 2131 CLEAR EXECUTE "SPEC/#,#/20" ; 2132 CLEAR RUN "SPEC/#,#/10" ; 2133 UNHALT "SPEC/#,#/62" ; 2134 SET APR ENABLES "SPEC/APR EN" ; 2135 ABORT MEM CYCLE "DBUS/DBM,RAMADR/VMA,DBM/MEM,AD/ZERO,SPEC/MEMCLR,LOAD VMA" ; 2136 CLR IO BUSY "SPEC/CLR IO BUSY" ; 2137 CLR IO LATCH "SPEC/CLR IO LATCH" ; 2138 ; 2139 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 54 ; DSK: KSHACK; KS10 47 21:53:04 16-JAN-87 MACROS -- PC FLAGS ; 2140 .TOC "MACROS -- PC FLAGS" ; 2141 ; 2142 CHANGE FLAGS "SPEC/FLAGS" ; 2143 ; 2144 SET AROV "CHANGE FLAGS, HOLD USER/1, SETOV/1, TRAP1/1" ; 2145 SET FOV "CHANGE FLAGS, HOLD USER/1, SETFOV/1, TRAP1/1" ; 2146 SET NO DIVIDE "CHANGE FLAGS, HOLD USER/1, SETOV/1, SETNDV/1, TRAP1/1" ; 2147 SET FL NO DIVIDE "SET NO DIVIDE, SETFOV/1" ; 2148 ; 2149 ASH AROV "SPEC/ASHOV" ; 2150 SET FPD "CHANGE FLAGS, HOLD USER/1, SETFPD/1" ; 2151 CLR FPD "CHANGE FLAGS, HOLD USER/1, CLRFPD/1" ; 2152 ; 2153 SET PDL OV "CHANGE FLAGS, HOLD USER/1, TRAP2/1" ; 2154 SET TRAP1 "CHANGE FLAGS, HOLD USER/1, TRAP1/1" ; 2155 SET TRAP3 "CHANGE FLAGS, HOLD USER/1, TRAP1/1, TRAP2/1" ; 2156 ; 2157 LOAD PCU "CHANGE FLAGS, LD PCU/1" ; 2158 UPDATE USER "CHANGE FLAGS, HOLD USER/1" ; 2159 LEAVE USER "CHANGE FLAGS, HOLD USER/0" ; 2160 ; 2161 JFCL FLAGS "CHANGE FLAGS, HOLD USER/1, JFCLFLG/1" ; 2162 ; 2163 LOAD FLAGS "CHANGE FLAGS, LD FLAGS/1" ; 2164 EXP TEST "SPEC/EXPTST" ; 2165 AD FLAGS "CHANGE FLAGS, ADFLGS/1, HOLD USER/1" ; 2166 ; 2167 NO DIVIDE "SET NO DIVIDE, J/NIDISP" ; 2168 FL NO DIVIDE "SET FL NO DIVIDE, J/NIDISP" ; 2169 ; 2170 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 55 ; DSK: KSHACK; KS10 47 21:53:04 16-JAN-87 MACROS -- PAGE FAIL FLAGS ; 2171 .TOC "MACROS -- PAGE FAIL FLAGS" ; 2172 ; 2173 STATE_[] "[FLG]_#,STATE/@1,HOLD LEFT" ; 2174 END STATE "[FLG]_0, HOLD LEFT" ; 2175 ; 2176 END BLT "END STATE" ; 2177 END MAP "END STATE" ; 2178 ; 2179 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 56 ; DSK: KSHACK; KS10 47 21:53:04 16-JAN-87 MACROS -- SINGLE SKIPS ; 2180 .TOC "MACROS -- SINGLE SKIPS" ; 2181 ;SKIPS IF: ; 2182 SKIP IF AC0 "SKIP/AC0" ;THE AC NUMBER IS ZERO ; 2183 SKIP DP0 "SKIP/DP0" ;DP BIT 0=1 ; 2184 SKIP DP18 "SKIP/DP18" ;DP BIT 18=1 ; 2185 SKIP AD.EQ.0 "SKIP/ADEQ0,DT/3T" ;ADDER OUTPUT IS ZERO ; 2186 SKIP AD.LE.0 "SKIP/LE,DT/3T" ;ADDER OUTPUT IS LESS THAN OR EQUAL ; 2187 ; TO ZERO. ; 2188 SKIP ADL.LE.0 "SKIP/LLE,DT/3T" ;ADDER LEFT IS LESS THAN OR EQUAL ; 2189 ; TO ZERO. ; 2190 SKIP FPD "SKIP/FPD" ;FIRST-PART-DONE PC FLAG IS SET ; 2191 SKIP KERNEL "SKIP/KERNEL" ;USER=0 ; 2192 SKIP IO LEGAL "SKIP/IOLGL" ;USER=0 OR USER IOT=1 ; 2193 SKIP CRY0 "SKIP/CRY0" ;ADDER BIT CRY0=1 (NOT PC FLAG BIT) ; 2194 SKIP CRY1 "SKIP/CRY1" ;ADDER BIT CRY1=1 (NOT PC FLAG BIT) ; 2195 SKIP CRY2 "SKIP/CRY2,DT/3T" ;ADDER BIT CRY2=1 ; 2196 SKIP JFCL "SKIP/JFCL" ;IF JFCL SHOULD JUMP ; 2197 SKIP ADL.EQ.0 "SKIP/ADLEQ0" ;ALU BITS -2 TO 17 = 0 ; 2198 SKIP ADR.EQ.0 "SKIP/ADREQ0" ;ALU BITS 18-35 = 0 ; 2199 SKIP IRPT "SKIP/INT" ;INTERRUPT IS PENDING ; 2200 SKIP -1MS "SKIP/-1 MS" ;DON'T SKIP IF 1MS TIMER HAS EXPIRED. ; 2201 SKIP AC REF "SKIP/ACREF" ;VMA IS 0-17 ; 2202 SKIP EXECUTE "SKIP/EXECUTE" ;CONSOLE EXECUTE ; 2203 TXXX TEST "SKIP/TXXX" ;TEST INSTRUCTION SHOULD SKIP ; 2204 ; 2205 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 57 ; DSK: KSHACK; KS10 47 21:53:04 16-JAN-87 MACROS -- SPECIAL DISPATCH MACROS ; 2206 .TOC "MACROS -- SPECIAL DISPATCH MACROS" ; 2207 ; 2208 NEXT INST "DISP/NICOND,SPEC/NICOND,J/NICOND" ; 2209 NEXT INST FETCH "DISP/NICOND,SPEC/NICOND,J/NICOND-FETCH" ; 2210 EA MODE DISP "DISP/EAMODE,RAMADR/XR#" ; 2211 AREAD "DISP/AREAD,WAIT/1,AREAD/1,MEM/1,J/0" ; 2212 B DISP "DISP/BDISP" ; 2213 BWRITE DISP "B DISP,MEM/1,BWRITE/1,WRITE CYCLE/1,J/BWRITE" ; 2214 INST DISP "DISP/DROM,J/0" ; 2215 EXIT "BWRITE DISP,SPEC/0, WRITE TEST/1" ; 2216 AD FLAGS EXIT "BWRITE DISP, WRITE TEST/0, AD FLAGS" ; 2217 FL-EXIT "WRITE CYCLE/1,WRITE TEST/1,MEM/1,BWRITE/1,B DISP,J/FL-BWRITE" ; 2218 TEST DISP "B DISP,J/TEST-TABLE" ; 2219 SKIP-COMP DISP "B DISP,J/SKIP-COMP-TABLE" ; 2220 JUMP DISP "B DISP,J/JUMP-TABLE" ; 2221 DONE "VMA_[PC],LOAD VMA, FETCH, NEXT INST FETCH" ; 2222 JUMPA "[PC]_[AR],HOLD LEFT,LOAD VMA,FETCH,NEXT INST FETCH" ; 2223 UUO "[HR]_[HR].AND.#,#/777740,HOLD RIGHT,J/UUOGO" ; 2224 LUUO "[AR]_0 XWD [40], J/LUUO1" ; 2225 PAGE FAIL TRAP "TL [FLG], FLG.PI/1, J/PFT" ; 2226 TAKE INTERRUPT "[FLG]_[FLG].OR.#,FLG.PI/1,HOLD RIGHT,J/PI" ; 2227 TAKE 1-PROCEED TRAP "[FLG]_[FLG].AND.NOT.#,FLG.1PROC/1,FLG.2PROC/1,HOLD RIGHT,J/1PROC-TRAP" ; 2228 INTERRUPT TRAP "WORK[SV.AR]_[AR], J/ITRAP" ; 2229 MUL DISP "DISP/MUL" ; 2230 DIV DISP "DISP/DIV" ; 2231 BYTE DISP "DISP/BYTE, DT/3T" ; 2232 SCAD DISP "DISP/SCAD0" ;SKIP (2'S WEIGHT) IS SCAD IS MINUS ; 2233 RETURN [] "DISP/RETURN,J/@1" ; 2234 PI DISP "DISP/PI" ; 2235 NORM DISP "DISP/NORM,DT/3T" ; 2236 DISMISS "TR [PI], #/077400, CALL [JEN1],DT/3T" ; 2237 CALL LOAD PI "[T0]_[PI] SWAP, CALL [LDPI2]" ; 2238 HALT [] "AD/47,DEST/AD,B/T1,DBM/#,DBUS/DBM,HALT/@1,RSRC/DA,A/MASK, J/HALTED" ; 2239 CLEANUP DISP "READ [FLG], DBUS/DP, DISP/DP, 3T, J/CLEANUP" ; 2240 ; 2241 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 58 ; DSK: KSHACK; KS10 47 21:53:04 16-JAN-87 DISPATCH ROM MACROS ; 2242 .TOC "DISPATCH ROM MACROS" ; 2243 .DCODE ; 2244 ; 2245 ;"A FIELD" MACROS SAY HOW TO FETCH ARGUMENTS ; 2246 ; 2247 I "I/1" ; 2248 I-PF "I/1,VMA/0,READ/1" ; 2249 R "A/READ,READ/1" ; 2250 R-PF "A/RD-PF,READ/1" ; 2251 W "A/WRITE,TEST/1" ; 2252 RW "A/READ,TEST/1,READ/1" ; 2253 IW "I/1,TEST/1" ;IMMED WHICH STORE IN E. (SETZM, ETC.) ; 2254 IR "I/1,READ/1" ;START READ A GO TO EXECUTE CODE ; 2255 DBL R "A/DREAD,READ/1" ;AR!ARX _ E!E+1 ; 2256 DBL AC "A/DBLAC" ; 2257 SH "A/SHIFT,VMA/0,READ/1" ; 2258 SHC "A/DSHIFT,VMA/0,READ/1" ; 2259 FL-R "A/FP,READ/1" ;FLOATING POINT READ ; 2260 FL-RW "A/FP,READ/1,TEST/1" ; 2261 FL-I "A/FPI,READ/0" ;FLOATING POINT IMMEDIATE ; 2262 DBL FL-R "A/DFP,READ/1" ; 2263 IOT "A/IOT" ;CHECK FOR IO LEGAL ; 2264 ; 2265 ;"B FIELD" MACROS SAY HOW TO STORE RESULTS ; 2266 ; 2267 AC "B/AC" ; 2268 M "B/MEM,TEST/1,COND FUNC/1" ; 2269 B "B/BOTH,TEST/1,COND FUNC/1" ; 2270 S "B/SELF,TEST/1,COND FUNC/1" ; 2271 DAC "B/DBLAC" ; 2272 DBL B "B/DBLB,TEST/1,COND FUNC/1" ; 2273 FL-AC "FL-B/AC" ;FLOATING POINT ; 2274 FL-MEM "FL-B/MEM,TEST/1,COND FUNC/1" ;FLOATING POINT TO MEMORY ; 2275 FL-BOTH "FL-B/BOTH,TEST/1,COND FUNC/1" ;FLOATING POINT TO BOTH ; 2276 ROUND "ROUND/1" ;FLOATING POINT ROUNDED ; 2277 ; 2278 ; 2279 ;CONTROL BITS ; 2280 W TEST "TEST/1" ; 2281 AC DISP "ACDISP/1" ; 2282 .UCODE ; 2283 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 59 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 DISPATCH ROM MACROS ; 2284 ;;;-*-Fundamental-*- ; 2285 ; 2286 .BIN ; 2287 .TOC "POWER UP SEQUENCE" ; 2288 ; 2289 .UCODE ; 2290 ; 2291 ;HERE IS WHERE WE FIRE THE MACHINE UP DURING POWER ON ; 2292 ; 2293 U 0000, 0002,3771,0012,4374,4007,0700,0000,0037,7777 ; 2294 0: [MASK]_#, #/377777 ;BUILD A MASK WITH U 0002, 0016,3445,1212,4174,4007,0700,0000,0000,0000 ; 2295 [MASK]_[MASK]*2 ; A ONE IN 36-BITS AND 0 U 0016, 0030,3551,1212,4374,4007,0700,0000,0000,0001 ; 2296 [MASK]_[MASK].OR.#,#/1 ; IN BITS -2,-1,36,37 U 0030, 0053,3447,1200,4174,4007,0700,0000,0000,0000 ; 2297 [MAG]_[MASK]*.5 ;MAKE CONSTANT U 0053, 0060,3771,0015,4374,4007,0700,0000,0000,0001 ; 2298 [XWD1]_#, #/1 ;CONSTANT WITH 1 IN EACH ; 2299 ; HALF WORD ; 2300 [ONE]_0 XWD [1], ;THE CONSTANT 1 U 0060, 0003,4751,1207,4374,4007,0700,0010,0000,0001 ; 2301 CALL/1 ;RESET STACK (CAN NEVER RETURN ; 2302 ; TO WHERE MR LEFT US) ; 2303 .IFNOT/ITS ; 2304 3: [AR]_0 XWD [376000] ;ADDRESS OF HALT STATUS ; 2305 ; BLOCK ; 2306 .IF/ITS U 0003, 0070,4751,1203,4374,4007,0700,0000,0000,0500 ; 2307 3: [AR]_0 XWD [500] ; ITS makes it 500, so start that way... ; 2308 .ENDIF/ITS U 0070, 0136,3333,0003,7174,4007,0700,0400,0000,0227 ; 2309 WORK[HSBADR]_[AR] ;SAVE FOR HALT LOOP U 0136, 0231,4221,0011,4364,4277,0700,0200,0000,0010 ; 2310 [UBR]_0, ABORT MEM CYCLE ;CLEAR THE UBR AND RESET ; 2311 ; MEMORY CONTROL LOGIC U 0231, 0236,4221,0010,4174,4477,0700,0000,0000,0000 ; 2312 [EBR]_0, LOAD AC BLOCKS ;CLEAR THE EBR AND FORCE ; 2313 ; PREVIOUS AND CURRENT AC ; 2314 ; BLOCKS TO ZERO U 0236, 0253,4221,0013,4174,4257,0700,0000,0000,0000 ; 2315 [FLG]_0, SET APR ENABLES ;CLEAR THE STATUS FLAGS AND ; 2316 ; DISABLE ALL APR CONDITIONS U 0253, 0271,3333,0013,7174,4007,0700,0400,0000,0230 ; 2317 WORK[APR]_[FLG] ;ZERO REMEMBERED ENABLES ; 2318 U 0271, 0301,3333,0013,7174,4007,0700,0400,0000,0300 ; 2319 WORK[TIME0]_[FLG] ;CLEAR TIME BASE U 0301, 0306,3333,0013,7174,4007,0700,0400,0000,0301 ; 2320 WORK[TIME1]_[FLG] ; .. ; 2321 .IF/PCST U 0306, 0311,3333,0013,7174,4007,0700,0400,0000,0233 ; 2322 WORK[PCST]_[FLG] ;Turn off PC sampling ; 2323 .ENDIF/PCST ; 2324 .IF/FULL U 0311, 0377,4223,0000,1174,4007,0700,0400,0000,1443 ; 2325 AC[BIN0]_0 ;COMPUTE A TABLE OF POWERS OF U 0377, 0401,3333,0007,1174,4007,0700,0400,0000,1444 ; 2326 AC[BIN1]_1 ; TEN U 0401, 0406,4221,0003,4174,4007,0700,2000,0071,0023 ; 2327 [AR]_0, SC_19. ;WE WANT TO GET 22 NUMBERS U 0406, 0435,3333,0007,7174,4007,0700,0400,0000,0344 ; 2328 WORK[DECLO]_1 ;STARTING WITH 1 U 0435, 0506,4223,0000,7174,4007,0700,0400,0000,0373 ; 2329 WORK[DECHI]_0 ; .. U 0506, 0511,3771,0002,4374,4007,0700,0000,0000,0344 ; 2330 [HR]_#, WORK/DECLO ;ADDRESS OF LOW WORD U 0511, 0527,3771,0006,4374,4007,0700,0000,0000,0373 ; 2331 [BRX]_#, WORK/DECHI ;ADDRESS OF HIGH WORD U 0527, 0010,0111,0706,4174,4007,0700,0200,0000,0010 ; 2332 TENLP: [BRX]_[BRX]+1, LOAD VMA ;ADDRESS THE HIGH WORD ; 2333 =0* [ARX]_AC[BIN1], ;LOW WORD TO ARX U 0010, 1310,3771,0004,1276,6007,0701,0010,0000,1444 ; 2334 CALL [DBSLOW] ;MULTIPLY BY TEN U 0012, 0553,3333,0005,6174,4007,0700,0400,0000,0000 ; 2335 RAM_[BR] ;SAVE HIGH WORD U 0553, 0556,0111,0702,4174,4007,0700,0200,0000,0010 ; 2336 [HR]_[HR]+1, LOAD VMA ;WHERE TO STORE LOW WORD U 0556, 0006,3333,0004,6174,4007,0630,2400,0060,0000 ; 2337 RAM_[ARX], STEP SC ;STORE LOW WORD AND SEE IF ; 2338 ; WE ARE DONE U 0006, 0527,4443,0000,4174,4007,0700,0000,0000,0000 ; 2339 =0 J/TENLP ;NOT YET--KEEP GOING U 0007, 0020,6553,0500,4374,4007,0321,0000,0033,0656 ; 2340 [BR].XOR.#, 3T, SKIP ADL.EQ.0, #/330656 ; 2341 ;DID WE GET THE RIGHT ANSWER ; 2342 ; IN THE TOP 18 BITS? U 0020, 2404,4751,1217,4374,4007,0700,0000,0000,1005 ; 2343 =0**0 HALT [MULERR] ;NO--CPU IS BROKEN ; 2344 .ENDIF/FULL ; 2345 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 60 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 POWER UP SEQUENCE ; 2346 U 0021, 3472,4221,0014,4174,4007,0700,0010,0000,0000 ; 2347 =0**1 [PI]_0, CALL [LOADPI] ;CLEAR PI STATE ; 2348 =1**1 ;CLEAR REGISTERS SO NO ; 2349 ;PARITY ERROR HAPPEN ; 2350 .IFNOT/FULL ; 2351 [ARX]_0 ;WRITTEN WHILE COMPUTING POWERS ; 2352 [BR]_0 ;OF 10 ; 2353 [BRX]_0 ; 2354 .ENDIF/FULL U 0031, 0563,4751,1217,4374,4007,0700,0000,0000,0120 ; 2355 [T1]_0 XWD [120] ;RH OF 120 CONTAINS START ADDRESS ; 2356 ; FOR SIMULATOR. FOR THE REAL ; 2357 ; MACHINE IT IS JUST DATA WITH ; 2358 ; GOOD PARITY. ; 2359 = ; 2360 ;THE CODE UNDER .IF/SIM MUST USE THE SAME ADDRESS AS THE CODE ; 2361 ; UNDER .IFNOT/SIM SO THAT MICROCODE ADDRESSES DO NOT CHANGE BETWEEN ; 2362 ; VERSIONS ; 2363 .IF/SIM ; 2364 VMA_[T1], START READ ;READ THE WORD ; 2365 MEM READ, [PC]_MEM, HOLD LEFT, J/START ; 2366 ;GO FIRE UP SIMULATOR AT THE ; 2367 ; PROGRAMS STARTING ADDRESS ; 2368 .IFNOT/SIM ; 2369 [PC]_0, ;CLEAR LH OF PC ; 2370 LEAVE USER, ;ENTER EXEC MODE U 0563, 0632,4221,0001,4174,4467,0700,0000,0000,0004 ; 2371 LOAD FLAGS ;CLEAR TRAP FLAGS ; 2372 [T1]_#, HALT/POWER, ;LOAD T1 WITH POWER UP CODE U 0632, 2416,3771,0017,4374,4007,0700,0000,0000,0000 ; 2373 J/PWRON ;ENTER HALT LOOP. DO NOT STORE ; 2374 ; HALT STATUS BLOCK ; 2375 .ENDIF/SIM ; 2376 ; 2377 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 61 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 THE INSTRUCTION LOOP -- START NEXT INSTRUCTION ; 2378 .TOC "THE INSTRUCTION LOOP -- START NEXT INSTRUCTION" ; 2379 ; 2380 ;ALL INSTRUCTIONS EXCEPT JUMP'S AND UUO'S END UP HERE ; 2381 1400: U 1400, 0070,3443,0100,4174,4156,4700,0200,0014,0012 ; 2382 DONE: DONE U 1401, 0070,0111,0701,4170,4156,4700,0200,0014,0012 ; 2383 1401: VMA_[PC]+1, NEXT INST FETCH, FETCH ; 2384 =0 U 0014, 0070,0111,0701,4170,4156,4700,0200,0014,0012 ; 2385 SKIP: VMA_[PC]+1, NEXT INST FETCH, FETCH U 0015, 0070,3443,0100,4174,4156,4700,0200,0014,0012 ; 2386 DONE ; 2387 ; 2388 ; 2389 ;16-WAY DISPATCH BASED ON NEXT INSTRUCTION ; 2390 =0000 ; 2391 NICOND: ; 2392 ; 2393 =0001 [AR]_0 XWD [423], ;TRAP TYPE 3 ; 2394 ; GET ADDRESS OF TRAP INST ; 2395 TURN OFF PXCT, ;CLEAR PXCT U 0061, 3364,4751,1203,4374,4367,0700,0000,0000,0423 ; 2396 J/TRAP ;PROCESS TRAP (INOUT.MIC) ; 2397 =0010 [AR]_0 XWD [422], ;TRAP TYPE 2 ; 2398 TURN OFF PXCT, ;CLEAR PXCT U 0062, 3364,4751,1203,4374,4367,0700,0000,0000,0422 ; 2399 J/TRAP ;GO TRAP ; 2400 =0011 [AR]_0 XWD [421], ;TRAP TYPE 1 ; 2401 TURN OFF PXCT, ;TURN OF PXCT U 0063, 3364,4751,1203,4374,4367,0700,0000,0000,0421 ; 2402 J/TRAP ;GO TRAP U 0065, 2404,4751,1217,4374,4007,0700,0000,0000,0002 ; 2403 =0101 HALT [CSL] ;"HA" COMMAND TO 8080 ; 2404 =0111 ; 2405 START: VMA_[PC], ;LOAD VMA ; 2406 FETCH, ;INDICATE INSTRUCTION FETCH U 0067, 0077,3443,0100,4174,4007,0700,0200,0014,0012 ; 2407 J/XCTGO ;GO GET INSTRUCTION ; 2408 ;THE NEXT SET OF CASES ARE USED WHEN THERE IS A FETCH ; 2409 ; IN PROGESS ; 2410 =1000 ; 2411 NICOND-FETCH: ; 2412 =1001 [AR]_0 XWD [423], ;TRAP TYPE 3 ; 2413 TURN OFF PXCT, U 0071, 3364,4751,1203,4374,4367,0700,0000,0000,0423 ; 2414 J/TRAP ; 2415 =1010 [AR]_0 XWD [422], ;TRAP TYPE 2 ; 2416 TURN OFF PXCT, U 0072, 3364,4751,1203,4374,4367,0700,0000,0000,0422 ; 2417 J/TRAP ; 2418 =1011 [AR]_0 XWD [421], ;TRAP TYPE 1 ; 2419 TURN OFF PXCT, U 0073, 3364,4751,1203,4374,4367,0700,0000,0000,0421 ; 2420 J/TRAP U 0075, 2404,4751,1217,4374,4007,0700,0000,0000,0002 ; 2421 =1101 HALT [CSL] ;"HA" COMMAND TO 8080 ; 2422 =1111 ; 2423 .IF/1PROC ; 2424 XCTGO: MEM READ, ;WAIT FOR MEMORY ; 2425 [HR]_MEM AND READ [FLG], ;PUT DATA IN HR ; 2426 LOAD INST, ;LOAD IR & AC # ; 2427 NORM DISP, ;TEST FLG<8> (1-PROCEED FLAG) U 0077, 0013,3770,1302,4365,5613,4701,0200,0000,0002 ; 2428 J/INCPC ;GO BUMP PC ; 2429 .IFNOT/1PROC ; 2430 XCTGO: MEM READ, ;WAIT FOR MEMORY ; 2431 [HR]_MEM, ;PUT DATA IN HR ; 2432 LOAD INST, ;LOAD IR & AC # ; 2433 J/INCPC ;GO BUMP PC ; 2434 .ENDIF/1PROC ; 2435 = ; 2436 ; 2437 .IF/1PROC ; 2438 =1011 ;FOR NORM DISP AT XCTGO ; 2439 .ENDIF/1PROC ; 2440 ;HERE WE POINT PC TO NEXT INSTRUCTION WHILE WE WAIT FOR ; 2441 ; EFFECTIVE ADDRESS LOGIC TO SETTLE ; 2442 INCPC: VMA_[PC]+1, ;ADDRESS OF NEXT INSTRUCTION ; 2443 FETCH/1, ;INSTRUCTION FETCH ; 2444 TURN OFF PXCT, ;CLEAR EFFECT OF PXCT ; 2445 EA MODE DISP, ;DISPATCH OFF INDEXING AND @ U 0013, 0101,0111,0701,2170,4366,6700,0200,0010,0010 ; 2446 J/EACALC ; 2447 .IF/1PROC ; 2448 ;COME HERE WHEN FLG.1PROC IS SET U 0017, 0022,4553,1300,4374,4007,0321,0000,0000,0200 ; 2449 TL [FLG], FLG.2PROC/1 ;Skip if this is the first time through U 0022, 0751,5551,1313,4374,0007,0700,0000,0000,1200 ; 2450 =0 TAKE 1-PROCEED TRAP U 0023, 0013,3551,1313,4374,0007,0700,0000,0000,0200 ; 2451 [FLG]_[FLG].OR.#, FLG.2PROC/1, HOLD RIGHT, J/INCPC ;Trap next time ; 2452 .ENDIF/1PROC ; 2453 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 62 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 THE INSTRUCTION LOOP -- START NEXT INSTRUCTION ; 2454 ; 2455 ;MAIN EFFECTIVE ADDRESS CALCULATION ; 2456 =0001 ; 2457 EACALC: ; 2458 ; ; 2459 ; THE FIRST 4 CASES ARE USED ONLY FOR JRST ; 2460 ; ; 2461 ; 2462 ;CASE 0 -- JRST 0,FOO(XR) ; 2463 [PC]_[HR]+XR, ;UPDATE PC ; 2464 HOLD LEFT, ;ONLY RH ; 2465 LOAD VMA, FETCH, ;START GETTING IT U 0101, 0070,0551,0201,2270,4156,4700,0200,0014,0012 ; 2466 NEXT INST FETCH ;START NEXT INST ; 2467 ; 2468 ;CASE 2 -- JRST 0,FOO ; 2469 [PC]_[HR], ;NEW PC ; 2470 HOLD LEFT, ;ONLY RH ; 2471 LOAD VMA, FETCH, ;START GETTING IT U 0103, 0070,3441,0201,4170,4156,4700,0200,0014,0012 ; 2472 NEXT INST FETCH ;START NEXT INST ; 2473 ; 2474 ;CASE 4 -- JRST 0,@FOO(XR) ; 2475 [HR]_[HR]+XR, ;ADD IN INDEX ; 2476 START READ, ;START TO FETCH @ WORD ; 2477 LOAD VMA, ;PUT ADDRESS IN VMA U 0105, 0642,0551,0202,2270,4007,0700,0200,0004,0012 ; 2478 J/FETIND ;GO DO MEM WAIT (FORGET ABOUT JRST) ; 2479 ; 2480 ;CASE 6 -- JRST 0,@FOO ; 2481 VMA_[HR], ;LOAD UP ADDRESS ; 2482 START READ, ;START TO FETCH @ WORD U 0107, 0642,3443,0200,4174,4007,0700,0200,0004,0012 ; 2483 J/FETIND ;GO DO MEM WAIT (FORGET ABOUT JRST) ; 2484 ; 2485 ; ; 2486 ;THESE 4 ARE FOR THE NON-JRST CASE ; 2487 ; ; 2488 ; 2489 ;CASE 10 -- JUST INDEXING ; 2490 INDEX: [HR]_[HR]+XR, ;ADD IN INDEX REGISTER U 0111, 0113,0551,0202,2270,4007,0700,0000,0000,0000 ; 2491 HOLD LEFT ;JUST DO RIGHT HALF ; 2492 ; 2493 ;CASE 12 -- NO INDEXING OR INDIRECT ; 2494 NOMOD: [AR]_EA, ;PUT 0,,E IN AR U 0113, 0000,5741,0203,4174,4001,3700,0200,0000,0342 ; 2495 PXCT DATA, AREAD ;DO ONE OR MORE OF THE FOLLWING ; 2496 ; ACCORDING TO THE DROM: ; 2497 ;1. LOAD VMA ; 2498 ;2. START READ OR WRITE ; 2499 ;3. DISPATCH TO 40-57 ; 2500 ; OR DIRECTLY TO EXECUTE CODE ; 2501 ; 2502 ;CASE 14 -- BOTH INDEXING AND INDIRECT ; 2503 BOTH: [HR]_[HR]+XR, ;ADD IN INDEX REGISTER ; 2504 LOAD VMA, PXCT EA, ;PUT ADDRESS IN VMA U 0115, 0642,0551,0202,2270,4007,0700,0200,0004,0112 ; 2505 START READ, J/FETIND ;START CYCLE AND GO WAIT FOR DATA ; 2506 ; 2507 ;CASE 16 -- JUST INDIRECT ; 2508 INDRCT: VMA_[HR], ;LOAD ADDRESS OF @ WORD U 0117, 0642,3443,0200,4174,4007,0700,0200,0004,0112 ; 2509 START READ, PXCT EA ;START CYCLE ; 2510 ; 2511 ; 2512 ;HERE TO FETCH INDIRECT WORD ; 2513 FETIND: MEM READ, [HR]_MEM, ;GET DATA WORD ; 2514 HOLD LEFT, ;JUST RIGHT HALF U 0642, 0722,3771,0002,4361,5217,0700,0200,0000,0102 ; 2515 LOAD IND EA ;RELOAD @ AND INDEX FLOPS ; 2516 ; 2517 XCT2: VMA_[PC], ;PUT PC BACK IN VMA ; 2518 FETCH/1, ;TURN ON FETCH FLAG ; 2519 EA MODE DISP, ;REDO CALCULATION FOR U 0722, 0101,3443,0100,2174,4006,6700,0200,0010,0010 ; 2520 J/EACALC ; NEW WORD ; 2521 ; 2522 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 63 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 ONE-PROCEED TRAP ; 2523 .TOC "ONE-PROCEED TRAP" ; 2524 ; 2525 .IF/1PROC ; 2526 1PROC-TRAP: U 0751, 0752,4751,1203,4374,4007,0700,0000,0000,0432 ; 2527 [AR]_0 XWD [432] ; 432 in UPT gets old PC. ; 2528 [AR]_[AR]+[UBR], U 0752, 0763,0111,1103,4174,4007,0700,0200,0021,1016 ; 2529 VMA PHYSICAL WRITE U 0763, 0771,3741,0104,4074,4007,0700,0000,0000,0000 ; 2530 [ARX]_PC WITH FLAGS U 0771, 1016,3333,0004,4175,5007,0701,0200,0000,0002 ; 2531 MEM WRITE, MEM_[ARX] ; 2532 [AR]_[AR]+1, ; 433 in UPT holds new PC. ; 2533 VMA PHYSICAL READ, U 1016, 2611,0111,0703,4174,4007,0700,0200,0024,1016 ; 2534 J/GOEXEC ; 2535 .ENDIF/1PROC ; 2536 ; 2537 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 64 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 THE INSTRUCTION LOOP -- FETCH ARGUMENTS ; 2538 .TOC "THE INSTRUCTION LOOP -- FETCH ARGUMENTS" ; 2539 ;HERE ON AREAD DISP TO HANDLE VARIOUS CASES OF ARGUMENT FETCH ; 2540 ; 2541 ;CASE 0 -- READ (E) ; 2542 40: MEM READ, ;WAIT FOR DATA ; 2543 [AR]_MEM, ;PUT WORD IN AR U 0040, 0000,3771,0003,4365,5001,2700,0200,0000,0002 ; 2544 INST DISP ;GO TO EXECUTE CODE ; 2545 ; 2546 ;CASE 1 -- WRITE (E) ; 2547 41: [AR]_AC, ;PUT AC IN AR U 0041, 0000,3771,0003,0276,6001,2700,0000,0000,0000 ; 2548 INST DISP ;GO TO EXECUTE CODE ; 2549 ; 2550 ;CASE 2 -- DOUBLE READ ; 2551 42: MEM READ, ;WAIT FOR DATA U 0042, 1022,3771,0003,4365,5007,0700,0200,0000,0002 ; 2552 [AR]_MEM ;PUT HI WORD IN AR ; 2553 VMA_[HR]+1, PXCT DATA, ;POINT TO E+1 U 1022, 1042,0111,0702,4170,4007,0700,0200,0004,0312 ; 2554 START READ ;START MEMORY CYCLE ; 2555 MEM READ, ;WAIT FOR DATA ; 2556 [ARX]_MEM, ;LOW WORD IN ARX U 1042, 0000,3771,0004,4365,5001,2700,0200,0000,0002 ; 2557 INST DISP ;GO TO EXECUTE CODE ; 2558 ; 2559 ;CASE 3 -- DOUBLE AC U 0043, 1061,3771,0003,0276,6007,0700,0000,0000,0000 ; 2560 43: [AR]_AC ;GET HIGH AC ; 2561 [ARX]_AC[1], ;PUT C(AC+1) IN ARX U 1061, 0000,3771,0004,1276,6001,2701,0000,0000,1441 ; 2562 INST DISP ;GO TO EXECUTE CODE ; 2563 ; 2564 ;CASE 4 -- SHIFT ; 2565 44: ; 2566 SHIFT: READ [AR], ;LOOK AT EFFECTIVE ADDRESS ; 2567 SKIP DP18, ;SEE IF LEFT OR RIGHT ; 2568 SC_SHIFT-1, ;PUT NUMBER OF PLACES TO SHIFT IN ; 2569 LOAD FE, ; SC AND FE U 0044, 0000,3333,0003,4174,4001,2530,3000,0041,5777 ; 2570 INST DISP ;GO DO THE SHIFT ; 2571 ; 2572 ;CASE 5 -- SHIFT COMBINED U 0045, 1071,3772,0000,1275,5007,0701,0000,0000,1441 ; 2573 45: Q_AC[1] ;PUT LOW WORD IN Q U 1071, 1076,3776,0005,0274,4007,0701,0000,0000,0000 ; 2574 [BR]_AC*.5 LONG ;PUT AC IN BR & SHIFT BR!Q RIGHT ; 2575 [BR]_[BR]*.5 LONG, ;SHIFT BR!Q 1 MORE PLACE RIGHT U 1076, 0044,3446,0505,4174,4007,0700,0000,0000,0000 ; 2576 J/SHIFT ;GO DO SHIFT SETUP ; 2577 ; 2578 ;CASE 6 -- FLOATING POINT IMMEDIATE ; 2579 46: [AR]_[AR] SWAP, ;FLIP BITS TO LEFT HALF U 0046, 0024,3770,0303,4344,4007,0700,0000,0000,0000 ; 2580 J/FPR0 ;JOIN COMMON F.P. CODE ; 2581 ; 2582 ;CASE 7 -- FLOATING POINT ; 2583 47: MEM READ, ;WAIT FOR MEMORY (SPEC/MEM WAIT) U 0047, 0024,3771,0003,4365,5007,0700,0200,0000,0002 ; 2584 [AR]_MEM ;DATA INTO AR ; 2585 =0 ; 2586 FPR0: READ [AR], ;LOOK AT NUMBER ; 2587 SC_EXP, FE_EXP, ;PUT EXPONENT IN SC & FE ; 2588 SKIP DP0, ;SEE IF NEGATIVE U 0024, 0034,3333,0003,4174,4007,0520,3010,0041,2000 ; 2589 CALL [ARSIGN] ;EXTEND AR SIGN ; 2590 FPR1: [ARX]_0, ;ZERO ARX U 0025, 0000,4221,0004,4174,4001,2700,0000,0000,0000 ; 2591 INST DISP ;GO TO EXECUTE CODE ; 2592 ; 2593 ;CASE 10 -- READ THEN PREFETCH ; 2594 50: MEM READ, ;WAIT FOR DATA ; 2595 [AR]_MEM THEN FETCH, ;PUT DATA IN AR AND START A READ ; 2596 ; VMA HAS PC+1. U 0050, 0000,3770,0103,4365,5001,2700,0200,0014,0012 ; 2597 INST DISP ;GO DO IT ; 2598 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 65 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 THE INSTRUCTION LOOP -- FETCH ARGUMENTS ; 2599 ; 2600 ;CASE 11 -- DOUBLE FLOATING READ ; 2601 51: SPEC MEM READ, ;WAIT FOR DATA ; 2602 [BR]_MEM, ;HOLD IN BR ; 2603 SC_EXP, FE_EXP, ;SAVE EXPONENT U 0051, 0026,3771,0005,4365,5177,0521,3000,0041,2000 ; 2604 SKIP DP0, 3T ;SEE IF MINUS ; 2605 =0 [AR]_[AR]+1, ;POINT TO E+1 ; 2606 LOAD VMA, PXCT DATA, ;PUT IN VMA U 0026, 1112,0111,0703,4174,4007,0700,0200,0004,0312 ; 2607 START READ, J/DFPR1 ;GO GET POSITIVE DATA ; 2608 [AR]_[AR]+1, ;POINT TO E+1 ; 2609 LOAD VMA, PXCT DATA, ;PUT IN VMA U 0027, 1111,0111,0703,4174,4007,0700,0200,0004,0312 ; 2610 START READ ;GO GET NEGATIVE DATA ; 2611 [BR]_-SIGN, ;SMEAR MINUS SIGN U 1111, 1131,3551,0505,4374,0007,0700,0000,0077,7000 ; 2612 J/DFPR2 ;CONTINUE BELOW U 1112, 1131,4551,0505,4374,0007,0700,0000,0000,0777 ; 2613 DFPR1: [BR]_+SIGN ;SMEAR PLUS SIGN ; 2614 DFPR2: MEM READ, 3T, ;WAIT FOR MEMORY ; 2615 [ARX]_(MEM.AND.[MAG])*.5, U 1131, 1137,4557,0004,4365,5007,0701,0200,0000,0002 ; 2616 ASH ;SET SHIFT PATHS U 1137, 1141,3447,0503,4174,4007,0700,0000,0000,0000 ; 2617 [AR]_[BR]*.5 ;SHIFT AR ; 2618 [AR]_[AR]*.5, ;COMPLETE SHIFTING U 1141, 1154,3447,0303,4174,4007,0700,2000,0011,0000 ; 2619 SC_FE ;PAGE FAIL MAY HAVE ZAPPED ; 2620 ; THE SC. ; 2621 VMA_[PC], FETCH, ;GET NEXT INST U 1154, 0000,3443,0100,4174,4001,2700,0200,0014,0012 ; 2622 INST DISP ;DO THIS ONE ; 2623 ; 2624 ;CASE 12 -- TEST FOR IO LEGAL U 0052, 0032,4443,0000,4174,4007,0040,0000,0000,0000 ; 2625 52: SKIP IO LEGAL ;IS IO LEGAL? U 0032, 2605,4551,0202,4374,0007,0700,0000,0077,7740 ; 2626 =0 UUO ;NO U 0033, 0000,4443,0000,4174,4001,2700,0000,0000,0000 ; 2627 INST DISP ;YES--DO THE INSTRUCTION ; 2628 ; 2629 ; 2630 ;CASE 13 -- RESERVED ; 2631 ;53: ; 2632 ; 2633 ;CASE 14 -- RESERVED ; 2634 ;54: ; 2635 ; 2636 ;CASE 15 -- RESERVED ; 2637 ;55: ; 2638 ; 2639 ;CASE 16 -- RESERVED ; 2640 ;56: ; 2641 ; 2642 ;CASE 17 -- RESERVED ; 2643 ;57: ; 2644 ; 2645 ;EXTEND AR SIGN. ; 2646 ;CALL WITH SKIP ON AR0, RETURNS 1 ALWAYS ; 2647 =0 U 0034, 0001,4551,0303,4374,0004,1700,0000,0000,0777 ; 2648 ARSIGN: [AR]_+SIGN, RETURN [1] ;EXTEND + SIGN U 0035, 0001,3551,0303,4374,0004,1700,0000,0077,7000 ; 2649 [AR]_-SIGN, RETURN [1] ;EXTEND - SIGN ; 2650 ; 2651 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 66 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 THE INSTRUCTION LOOP -- STORE ANSWERS ; 2652 .TOC "THE INSTRUCTION LOOP -- STORE ANSWERS" ; 2653 ; 2654 ;NOTE: INSTRUCTIONS WHICH STORE IN BOTH AC AND MEMORY ; 2655 ; (E.G. ADDB, AOS) MUST STORE IN MEMORY FIRST ; 2656 ; SO THAT IF A PAGE FAIL HAPPENS THE AC IS ; 2657 ; STILL INTACT. ; 2658 ; 2659 1500: ; 2660 BWRITE: ;BASE ADDRESS OF BWRITE DISPATCH ; 2661 ; 2662 ;CASE 0 -- RESERVED ; 2663 ;1500: ; 2664 ; 2665 ;CASE 1 -- RESERVED ; 2666 ;1501: ; 2667 ; 2668 ;CASE 2 -- RESERVED ; 2669 ;1502: ; 2670 ; 2671 ;CASE 3 -- RESERVED ; 2672 ;1503: ; 2673 ; 2674 ;CASE 4 -- STORE SELF ; 2675 1504: ; 2676 STSELF: SKIP IF AC0, ;IS AC # ZERO? U 1504, 0036,4443,0000,4174,4007,0360,0000,0000,0000 ; 2677 J/STBTH1 ;GO TO STORE BOTH CASE ; 2678 ; 2679 ;CASE 5 -- STORE DOUBLE AC ; 2680 1505: ; 2681 DAC: AC[1]_[ARX], ;STORE AC 1 U 1505, 1515,3440,0404,1174,4007,0700,0400,0000,1441 ; 2682 J/STAC ;GO STORE AC ; 2683 ; 2684 ;CASE 6 -- STORE DOUBLE BOTH (KA10 STYLE MEM_AR ONLY) ; 2685 1506: ; 2686 STDBTH: MEM WRITE, ;WAIT FOR MEMORY ; 2687 MEM_[AR], ;STORE AR U 1506, 1505,3333,0003,4175,5007,0701,0200,0000,0002 ; 2688 J/DAC ;NOW STORE AC & AC+1 ; 2689 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 67 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 THE INSTRUCTION LOOP -- STORE ANSWERS ; 2690 ; 2691 ;CASE 7 -- RESERVED ; 2692 ;1507: ; 2693 ; 2694 ;CASE 10 -- RESERVED ; 2695 ;1510: ; 2696 ; 2697 ;CASE 11 -- RESERVED ; 2698 ;1511: ; 2699 ; 2700 ;CASE 12 -- RESERVED ; 2701 ;1512: ; 2702 ; 2703 ;CASE 13 -- RESERVED ; 2704 ;1513: ; 2705 ; 2706 ;CASE 14 -- RESERVED ; 2707 1514: ; 2708 FL-BWRITE: ;THE NEXT 4 CASES ARE ALSO ; 2709 ;USED IN FLOATING POINT U 1514, 2404,4751,1217,4374,4007,0700,0000,0000,1000 ; 2710 HALT [BW14] ; 2711 ; 2712 ;CASE 15 -- STORE AC ; 2713 1515: ; 2714 STAC: AC_[AR], ;STORE AC U 1515, 0060,3440,0303,0174,4156,4700,0400,0000,0000 ; 2715 NEXT INST ;DO NEXT INSTRUCTION ; 2716 ; 2717 ;CASE 16 -- STORE IN MEMORY ; 2718 1516: ; 2719 STMEM: MEM WRITE, ;WAIT FOR MEMORY ; 2720 MEM_[AR], ;STORE AR U 1516, 1400,3333,0003,4175,5007,0701,0200,0000,0002 ; 2721 J/DONE ;START FETCH OF NEXT ; 2722 ; 2723 ;CASE 17 -- STORE BOTH ; 2724 1517: ; 2725 STBOTH: MEM WRITE, ;WAIT FOR MEMORY ; 2726 MEM_[AR], ;STORE AR U 1517, 1515,3333,0003,4175,5007,0701,0200,0000,0002 ; 2727 J/STAC ;NOW STORE AC ; 2728 ; 2729 =0 ; 2730 STBTH1: MEM WRITE, ;WAIT FOR MEMORY ; 2731 MEM_[AR], ;STORE AR U 0036, 1515,3333,0003,4175,5007,0701,0200,0000,0002 ; 2732 J/STAC ;NOW STORE AC ; 2733 STORE: MEM WRITE, ;WAIT FOR MEMORY ; 2734 MEM_[AR], ;STORE AC U 0037, 1400,3333,0003,4175,5007,0701,0200,0000,0002 ; 2735 J/DONE ;START NEXT INST ; 2736 ; 2737 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 68 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 MOVE GROUP ; 2738 .TOC "MOVE GROUP" ; 2739 ; 2740 .DCODE D 0200, 1015,1515,1100 ; 2741 200: R-PF, AC, J/STAC ;MOVE D 0201, 0015,1515,3000 ; 2742 I-PF, AC, J/STAC ;MOVEI D 0202, 0116,1404,0700 ; 2743 W, M, J/MOVE ;MOVEM D 0203, 0004,1504,1700 ; 2744 RW, S, J/STSELF ;MOVES ; 2745 D 0204, 1015,1402,1100 ; 2746 204: R-PF, AC, J/MOVS ;MOVS D 0205, 0015,1402,3000 ; 2747 I-PF, AC, J/MOVS ;MOVSI D 0206, 0116,1402,0700 ; 2748 W, M, J/MOVS ;MOVSM D 0207, 0004,1402,1700 ; 2749 RW, S, J/MOVS ;MOVSS ; 2750 D 0210, 1015,1405,1100 ; 2751 210: R-PF, AC, J/MOVN ;MOVN D 0211, 0015,1405,3000 ; 2752 I-PF, AC, J/MOVN ;MOVNI D 0212, 0116,1405,0700 ; 2753 W, M, J/MOVN ;MOVNM D 0213, 0004,1405,1700 ; 2754 RW, S, J/MOVN ;MOVNS ; 2755 D 0214, 1015,1403,1100 ; 2756 214: R-PF, AC, J/MOVM ;MOVM D 0215, 0015,1515,3000 ; 2757 I-PF, AC, J/STAC ;MOVMI D 0216, 0116,1403,0700 ; 2758 W, M, J/MOVM ;MOVMM D 0217, 0004,1403,1700 ; 2759 RW, S, J/MOVM ;MOVNS ; 2760 .UCODE ; 2761 ; 2762 1402: U 1402, 1500,3770,0303,4344,4003,7700,0200,0003,0001 ; 2763 MOVS: [AR]_[AR] SWAP,EXIT ; 2764 ; 2765 1403: U 1403, 1404,3333,0003,4174,4007,0520,0000,0000,0000 ; 2766 MOVM: READ [AR], SKIP DP0, J/MOVE ; 2767 ; 2768 1404: U 1404, 1500,4443,0000,4174,4003,7700,0200,0003,0001 ; 2769 MOVE: EXIT ; 2770 1405: ; 2771 MOVN: [AR]_-[AR], ;NEGATE NUMBER ; 2772 AD FLAGS, 3T, ;UPDATE FLAGS U 1405, 1404,2441,0303,4174,4467,0701,4000,0001,0001 ; 2773 J/MOVE ;STORE ANSWER ; 2774 ; 2775 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 69 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 EXCH ; 2776 .TOC "EXCH" ; 2777 ; 2778 .DCODE D 0250, 0015,1406,1500 ; 2779 250: R,W TEST, AC, J/EXCH ; 2780 .UCODE ; 2781 ; 2782 1406: ; 2783 EXCH: [BR]_AC, ;COPY AC TO THE BR U 1406, 1166,3771,0005,0276,6007,0700,0200,0003,0002 ; 2784 START WRITE ;START A WRITE CYCLE ; 2785 MEM WRITE, ;COMPLETE WRITE CYCLE ; 2786 MEM_[BR], ;STORE BR (AC) IN MEMORY U 1166, 1515,3333,0005,4175,5007,0701,0200,0000,0002 ; 2787 J/STAC ;STORE THE AR IN AC. NOTE: AR ; 2788 ; WAS LOADED WITH MEMORY OPERAND ; 2789 ; AS PART OF INSTRUCTION DISPATCH ; 2790 ; 2791 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 70 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 HALFWORD GROUP ; 2792 .TOC "HALFWORD GROUP" ; 2793 ; DESTINATION LEFT HALF ; 2794 ; 2795 .DCODE D 0500, 1015,1410,1100 ; 2796 500: R-PF, AC, J/HLL D 0501, 0015,1410,3000 ; 2797 I-PF, AC, J/HLL D 0502, 0016,1407,1700 ; 2798 RW, M, J/HRR ;HLLM = HRR EXCEPT FOR STORE D 0503, 0004,1404,1700 ; 2799 RW, S, J/MOVE ;HLLS = MOVES ; 2800 D 0504, 1015,1411,1100 ; 2801 R-PF, AC, J/HRL D 0505, 0015,1411,3000 ; 2802 I-PF, AC, J/HRL D 0506, 0016,1413,1700 ; 2803 RW, M, J/HRLM D 0507, 0004,1414,1700 ; 2804 RW, S, J/HRLS ; 2805 D 0510, 1015,1432,1100 ; 2806 510: R-PF, AC, J/HLLZ D 0511, 0015,1432,3000 ; 2807 I-PF, AC, J/HLLZ D 0512, 0116,1432,0700 ; 2808 W, M, J/HLLZ D 0513, 0004,1432,1700 ; 2809 RW, S, J/HLLZ ; 2810 D 0514, 1015,1424,1100 ; 2811 R-PF, AC, J/HRLZ D 0515, 0015,1424,3000 ; 2812 I-PF, AC, J/HRLZ D 0516, 0116,1424,0700 ; 2813 W, M, J/HRLZ D 0517, 0004,1424,1700 ; 2814 RW, S, J/HRLZ ; 2815 D 0520, 1015,1433,1100 ; 2816 520: R-PF, AC, J/HLLO D 0521, 0015,1433,3000 ; 2817 I-PF, AC, J/HLLO D 0522, 0116,1433,0700 ; 2818 W, M, J/HLLO D 0523, 0004,1433,1700 ; 2819 RW, S, J/HLLO ; 2820 D 0524, 1015,1425,1100 ; 2821 R-PF, AC, J/HRLO D 0525, 0015,1425,3000 ; 2822 I-PF, AC, J/HRLO D 0526, 0116,1425,0700 ; 2823 W, M, J/HRLO D 0527, 0004,1425,1700 ; 2824 RW, S, J/HRLO ; 2825 D 0530, 1015,1430,1100 ; 2826 530: R-PF, AC, J/HLLE D 0531, 0015,1430,3000 ; 2827 I-PF, AC, J/HLLE D 0532, 0116,1430,0700 ; 2828 W, M, J/HLLE D 0533, 0004,1430,1700 ; 2829 RW, S, J/HLLE ; 2830 D 0534, 1015,1422,1100 ; 2831 R-PF, AC, J/HRLE D 0535, 0015,1422,3000 ; 2832 I-PF, AC, J/HRLE D 0536, 0116,1422,0700 ; 2833 W, M, J/HRLE D 0537, 0004,1422,1700 ; 2834 RW, S, J/HRLE ; 2835 ; 2836 ; DESTINATION RIGHT HALF ; 2837 D 0540, 1015,1407,1100 ; 2838 540: R-PF, AC, J/HRR D 0541, 0015,1407,3000 ; 2839 I-PF, AC, J/HRR D 0542, 0016,1410,1700 ; 2840 RW, M, J/HLL ;HRRM = HLL EXCEPT FOR STORE D 0543, 0004,1404,1700 ; 2841 RW, S, J/MOVE ;HRRS = MOVES ; 2842 D 0544, 1015,1412,1100 ; 2843 R-PF, AC, J/HLR D 0545, 0015,1412,3000 ; 2844 I-PF, AC, J/HLR D 0546, 0016,1415,1700 ; 2845 RW, M, J/HLRM D 0547, 0004,1416,1700 ; 2846 RW, S, J/HLRS ; 2847 D 0550, 1015,1420,1100 ; 2848 550: R-PF, AC, J/HRRZ D 0551, 0015,1420,3000 ; 2849 I-PF, AC, J/HRRZ D 0552, 0116,1420,0700 ; 2850 W, M, J/HRRZ D 0553, 0004,1420,1700 ; 2851 RW, S, J/HRRZ ; 2852 D 0554, 1015,1426,1100 ; 2853 R-PF, AC, J/HLRZ D 0555, 0015,1426,3000 ; 2854 I-PF, AC, J/HLRZ D 0556, 0116,1426,0700 ; 2855 W, M, J/HLRZ D 0557, 0004,1426,1700 ; 2856 RW, S, J/HLRZ ; 2857 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 71 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 HALFWORD GROUP ; 2858 D 0560, 1015,1421,1100 ; 2859 560: R-PF, AC, J/HRRO D 0561, 0015,1421,3000 ; 2860 I-PF, AC, J/HRRO D 0562, 0116,1421,0700 ; 2861 W, M, J/HRRO D 0563, 0004,1421,1700 ; 2862 RW, S, J/HRRO ; 2863 D 0564, 1015,1427,1100 ; 2864 R-PF, AC, J/HLRO D 0565, 0015,1427,3000 ; 2865 I-PF, AC, J/HLRO D 0566, 0116,1427,0700 ; 2866 W, M, J/HLRO D 0567, 0004,1427,1700 ; 2867 RW, S, J/HLRO ; 2868 D 0570, 1015,1417,1100 ; 2869 570: R-PF, AC, J/HRRE D 0571, 0015,1417,3000 ; 2870 I-PF, AC, J/HRRE D 0572, 0116,1417,0700 ; 2871 W, M, J/HRRE D 0573, 0004,1417,1700 ; 2872 RW, S, J/HRRE ; 2873 D 0574, 1015,1423,1100 ; 2874 R-PF, AC, J/HLRE D 0575, 0015,1423,3000 ; 2875 I-PF, AC, J/HLRE D 0576, 0116,1423,0700 ; 2876 W, M, J/HLRE D 0577, 0004,1423,1700 ; 2877 RW, S, J/HLRE ; 2878 ; 2879 .UCODE ; 2880 ; 2881 ;FIRST THE GUYS THAT LEAVE THE OTHER HALF ALONE ; 2882 ; 2883 ;THE AR CONTAINS THE MEMORY OPERAND. SO WE WANT TO PUT THE LH OF ; 2884 ; AC INTO AR TO DO A HRR. OBVIOUS THING FOR HLL. ; 2885 1407: U 1407, 1500,3771,0003,0276,0003,7700,0200,0003,0001 ; 2886 HRR: [AR]_AC,HOLD RIGHT,EXIT ; 2887 1410: U 1410, 1500,3771,0003,0270,6003,7700,0200,0003,0001 ; 2888 HLL: [AR]_AC,HOLD LEFT,EXIT ; 2889 ; 2890 ;HRL FLOW: ; 2891 ;AT HRL AR CONTAINS: ; 2892 ; ; 2893 ; !------------------!------------------! ; 2894 ; ! LH OF (E) ! RH OF (E) ! ; 2895 ; !------------------!------------------! ; 2896 ; ; 2897 ;AR_AR SWAP GIVES: ; 2898 ; ; 2899 ; !------------------!------------------! ; 2900 ; ! RH OF (E) ! LH OF (E) ! ; 2901 ; !------------------!------------------! ; 2902 ; ; 2903 ;AT HLL, AR_AC,HOLD LEFT GIVES: ; 2904 ; ; 2905 ; !------------------!------------------! ; 2906 ; ! RH OF (E) ! RH OF AC ! ; 2907 ; !------------------!------------------! ; 2908 ; ; 2909 ;THE EXIT MACRO CAUSES THE AR TO BE STORED IN AC (AT STAC). ; 2910 ; THE REST OF THE HALF WORD IN THIS GROUP ARE VERY SIMILAR. ; 2911 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 72 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 HALFWORD GROUP ; 2912 ; 2913 1411: U 1411, 1410,3770,0303,4344,4007,0700,0000,0000,0000 ; 2914 HRL: [AR]_[AR] SWAP,J/HLL ; 2915 1412: U 1412, 1407,3770,0303,4344,4007,0700,0000,0000,0000 ; 2916 HLR: [AR]_[AR] SWAP,J/HRR ; 2917 ; 2918 1413: U 1413, 1202,3770,0303,4344,4007,0700,0000,0000,0000 ; 2919 HRLM: [AR]_[AR] SWAP U 1202, 1402,3771,0003,0270,6007,0700,0000,0000,0000 ; 2920 [AR]_AC,HOLD LEFT,J/MOVS ; 2921 1414: U 1414, 1500,3770,0303,4344,0003,7700,0200,0003,0001 ; 2922 HRLS: [AR]_[AR] SWAP,HOLD RIGHT,EXIT ; 2923 ; 2924 1415: U 1415, 1232,3770,0303,4344,4007,0700,0000,0000,0000 ; 2925 HLRM: [AR]_[AR] SWAP U 1232, 1402,3771,0003,0276,0007,0700,0000,0000,0000 ; 2926 [AR]_AC,HOLD RIGHT,J/MOVS ; 2927 1416: U 1416, 1500,3770,0303,4340,4003,7700,0200,0003,0001 ; 2928 HLRS: [AR]_[AR] SWAP,HOLD LEFT,EXIT ; 2929 ; 2930 ;NOW THE HALFWORD OPS WHICH CONTROL THE "OTHER" HALF. ; 2931 ; ENTER WITH 0,,E (E) OR (AC) IN AR ; 2932 ; 2933 1417: U 1417, 1420,3333,0003,4174,4007,0530,0000,0000,0000 ; 2934 HRRE: READ [AR],SKIP DP18 ; 2935 1420: U 1420, 1500,5731,0003,4174,4003,7700,0200,0003,0001 ; 2936 HRRZ: [AR] LEFT_0, EXIT ; 2937 1421: U 1421, 1500,5431,1203,4174,4003,7700,0200,0003,0001 ; 2938 HRRO: [AR] LEFT_-1, EXIT ; 2939 ; 2940 1422: U 1422, 1424,3333,0003,4174,4007,0530,0000,0000,0000 ; 2941 HRLE: READ [AR],SKIP DP18 ; 2942 1424: U 1424, 1402,3771,0003,4374,0007,0700,0000,0000,0000 ; 2943 HRLZ: [AR]_#,#/0,HOLD RIGHT,J/MOVS ; 2944 1425: U 1425, 1402,3771,0003,4374,0007,0700,0000,0077,7777 ; 2945 HRLO: [AR]_#,#/777777,HOLD RIGHT,J/MOVS ; 2946 ; 2947 1423: U 1423, 1426,3333,0003,4174,4007,0520,0000,0000,0000 ; 2948 HLRE: READ [AR],SKIP DP0 ; 2949 1426: U 1426, 1402,3771,0003,4370,4007,0700,0000,0000,0000 ; 2950 HLRZ: [AR]_#,#/0,HOLD LEFT,J/MOVS ; 2951 1427: U 1427, 1402,3771,0003,4370,4007,0700,0000,0077,7777 ; 2952 HLRO: [AR]_#,#/777777,HOLD LEFT,J/MOVS ; 2953 ; 2954 1430: U 1430, 1432,3333,0003,4174,4007,0520,0000,0000,0000 ; 2955 HLLE: READ [AR],SKIP DP0 ; 2956 1432: U 1432, 1500,5371,0003,4174,4003,7700,0200,0003,0001 ; 2957 HLLZ: [AR] RIGHT_0, EXIT ; 2958 1433: U 1433, 1500,5341,1203,4174,4003,7700,0200,0003,0001 ; 2959 HLLO: [AR] RIGHT_-1, EXIT ; 2960 ; 2961 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 73 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 DMOVE, DMOVN, DMOVEM, DMOVNM ; 2962 .TOC "DMOVE, DMOVN, DMOVEM, DMOVNM" ; 2963 ; 2964 .DCODE D 0120, 0205,1505,1100 ; 2965 120: DBL R, DAC, J/DAC D 0121, 0215,1434,1100 ; 2966 DBL R, AC, J/DMOVN ; 2967 .UCODE ; 2968 ; 2969 1434: U 1434, 2736,4551,0404,4374,0007,0700,0010,0037,7777 ; 2970 DMOVN: CLEAR ARX0, CALL [DBLNGA] U 1436, 1515,3440,0404,1174,4007,0700,0400,0000,1441 ; 2971 1436: AC[1]_[ARX], J/STAC ; 2972 ; 2973 .DCODE D 0124, 0300,1567,0100 ; 2974 124: DBL AC, J/DMOVN1 D 0125, 0100,1565,0500 ; 2975 W, J/DMOVNM ; 2976 .UCODE ; 2977 ; 2978 ; 2979 1565: U 1565, 2735,3771,0004,1276,6007,0701,0010,0000,1441 ; 2980 DMOVNM: [ARX]_AC[1],CALL [DBLNEG] ; 2981 1567: ; 2982 DMOVN1: [HR]+[ONE], ;GET E+1 ; 2983 LOAD VMA, ;PUT THAT IN VMA ; 2984 START WRITE, ;STORE IN E+1 U 1567, 1247,0113,0207,4174,4007,0700,0200,0003,0312 ; 2985 PXCT DATA ;DATA CYCLE U 1247, 1253,3333,0004,4175,5007,0701,0200,0000,0002 ; 2986 MEM WRITE, MEM_[ARX] ;STORE LOW WORD ; 2987 VMA_[HR], ;GET E ; 2988 LOAD VMA, ;SAVE IN VMA ; 2989 PXCT DATA, ;OPERAND STORE ; 2990 START WRITE, ;START MEM CYCLE U 1253, 0037,3443,0200,4174,4007,0700,0200,0003,0312 ; 2991 J/STORE ;GO STORE AR ; 2992 ; 2993 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 74 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 BOOLEAN GROUP ; 2994 .TOC "BOOLEAN GROUP" ; 2995 ; 2996 .DCODE D 0400, 0015,1441,3000 ; 2997 400: I-PF, AC, J/SETZ D 0401, 0015,1441,3000 ; 2998 I-PF, AC, J/SETZ D 0402, 0016,1441,2700 ; 2999 IW, M, J/SETZ D 0403, 0017,1441,2700 ; 3000 IW, B, J/SETZ ; 3001 .UCODE ; 3002 ; 3003 1441: U 1441, 1500,4221,0003,4174,4003,7700,0200,0003,0001 ; 3004 SETZ: [AR]_0, EXIT ; 3005 ; 3006 .DCODE D 0404, 1015,1442,1100 ; 3007 404: R-PF, AC, J/AND D 0405, 0015,1442,3000 ; 3008 I-PF, AC, J/AND D 0406, 0016,1442,1700 ; 3009 RW, M, J/AND D 0407, 0017,1442,1700 ; 3010 RW, B, J/AND ; 3011 .UCODE ; 3012 ; 3013 1442: U 1442, 1500,4551,0303,0274,4003,7700,0200,0003,0001 ; 3014 AND: [AR]_[AR].AND.AC,EXIT ; 3015 ; 3016 .DCODE D 0410, 1015,1443,1100 ; 3017 410: R-PF, AC, J/ANDCA D 0411, 0015,1443,3000 ; 3018 I-PF, AC, J/ANDCA D 0412, 0016,1443,1700 ; 3019 RW, M, J/ANDCA D 0413, 0017,1443,1700 ; 3020 RW, B, J/ANDCA ; 3021 .UCODE ; 3022 ; 3023 1443: U 1443, 1500,5551,0303,0274,4003,7700,0200,0003,0001 ; 3024 ANDCA: [AR]_[AR].AND.NOT.AC,EXIT ; 3025 ; 3026 .DCODE D 0414, 1015,1404,1100 ; 3027 414: R-PF, AC, J/MOVE ;SETM = MOVE D 0415, 0015,1404,3000 ; 3028 I-PF, AC, J/MOVE D 0416, 0016,1404,1700 ; 3029 RW, M, J/MOVE ;SETMM = NOP THAT WRITES MEMORY D 0417, 0017,1404,1700 ; 3030 RW, B, J/MOVE ;SETMB = MOVE THAT WRITES MEMORY ; 3031 D 0420, 1015,1444,1100 ; 3032 420: R-PF, AC, J/ANDCM D 0421, 0015,1444,3000 ; 3033 I-PF, AC, J/ANDCM D 0422, 0016,1444,1700 ; 3034 RW, M, J/ANDCM D 0423, 0017,1444,1700 ; 3035 RW, B, J/ANDCM ; 3036 .UCODE ; 3037 ; 3038 1444: U 1444, 1442,7441,0303,4174,4007,0700,0000,0000,0000 ; 3039 ANDCM: [AR]_.NOT.[AR],J/AND ; 3040 ; 3041 .DCODE D 0424, 0000,1400,1100 ; 3042 424: R, J/DONE D 0425, 0000,1400,2100 ; 3043 I, J/DONE D 0426, 0116,1404,0700 ; 3044 W, M, J/MOVE ;SETAM = MOVEM D 0427, 0116,1404,0700 ; 3045 W, M, J/MOVE ;SETAB, TOO ; 3046 .UCODE ; 3047 ; 3048 .DCODE D 0430, 1015,1445,1100 ; 3049 430: R-PF, AC, J/XOR D 0431, 0015,1445,3000 ; 3050 I-PF, AC, J/XOR D 0432, 0016,1445,1700 ; 3051 RW, M, J/XOR D 0433, 0017,1445,1700 ; 3052 RW, B, J/XOR ; 3053 .UCODE ; 3054 ; 3055 1445: U 1445, 1500,6551,0303,0274,4003,7700,0200,0003,0001 ; 3056 XOR: [AR]_[AR].XOR.AC,EXIT ; 3057 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 75 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 BOOLEAN GROUP ; 3058 ; 3059 .DCODE D 0434, 1015,1446,1100 ; 3060 434: R-PF, AC, J/IOR D 0435, 0015,1446,3000 ; 3061 I-PF, AC, J/IOR D 0436, 0016,1446,1700 ; 3062 RW, M, J/IOR D 0437, 0017,1446,1700 ; 3063 RW, B, J/IOR ; 3064 .UCODE ; 3065 ; 3066 1446: U 1446, 1500,3551,0303,0274,4003,7700,0200,0003,0001 ; 3067 IOR: [AR]_[AR].OR.AC,EXIT ; 3068 ; 3069 .DCODE D 0440, 1015,1447,1100 ; 3070 440: R-PF, AC, J/ANDCB D 0441, 0015,1447,3000 ; 3071 I-PF, AC, J/ANDCB D 0442, 0016,1447,1700 ; 3072 RW, M, J/ANDCB D 0443, 0017,1447,1700 ; 3073 RW, B, J/ANDCB ; 3074 .UCODE ; 3075 ; 3076 1447: U 1447, 1443,7441,0303,4174,4007,0700,0000,0000,0000 ; 3077 ANDCB: [AR]_.NOT.[AR],J/ANDCA ; 3078 ; 3079 .DCODE D 0444, 1015,1450,1100 ; 3080 444: R-PF, AC, J/EQV D 0445, 0015,1450,3000 ; 3081 I-PF, AC, J/EQV D 0446, 0016,1450,1700 ; 3082 RW, M, J/EQV D 0447, 0017,1450,1700 ; 3083 RW, B, J/EQV ; 3084 .UCODE ; 3085 ; 3086 1450: U 1450, 1500,7551,0303,0274,4003,7700,0200,0003,0001 ; 3087 EQV: [AR]_[AR].EQV.AC,EXIT ; 3088 ; 3089 .DCODE D 0450, 0015,1451,3000 ; 3090 450: I-PF, AC, J/SETCA D 0451, 0015,1451,3000 ; 3091 I-PF, AC, J/SETCA D 0452, 0016,1451,2700 ; 3092 IW, M, J/SETCA D 0453, 0017,1451,2700 ; 3093 IW, B, J/SETCA ; 3094 .UCODE ; 3095 ; 3096 1451: U 1451, 1500,7771,0003,0274,4003,7700,0200,0003,0001 ; 3097 SETCA: [AR]_.NOT.AC,EXIT ; 3098 ; 3099 .DCODE D 0454, 1015,1452,1100 ; 3100 454: R-PF, AC, J/ORCA D 0455, 0015,1452,3000 ; 3101 I-PF, AC, J/ORCA D 0456, 0016,1452,1700 ; 3102 RW, M, J/ORCA D 0457, 0017,1452,1700 ; 3103 RW, B, J/ORCA ; 3104 .UCODE ; 3105 ; 3106 1452: U 1452, 1273,7771,0005,0274,4007,0700,0000,0000,0000 ; 3107 ORCA: [BR]_.NOT.AC U 1273, 1500,3111,0503,4174,4003,7700,0200,0003,0001 ; 3108 [AR]_[AR].OR.[BR],EXIT ; 3109 ; 3110 .DCODE D 0460, 1015,1453,1100 ; 3111 460: R-PF, AC, J/SETCM D 0461, 0015,1453,3000 ; 3112 I-PF, AC, J/SETCM D 0462, 0016,1453,1700 ; 3113 RW, M, J/SETCM D 0463, 0017,1453,1700 ; 3114 RW, B, J/SETCM ; 3115 .UCODE ; 3116 ; 3117 1453: U 1453, 1500,7441,0303,4174,4003,7700,0200,0003,0001 ; 3118 SETCM: [AR]_.NOT.[AR],EXIT ; 3119 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 76 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 BOOLEAN GROUP ; 3120 ; 3121 .DCODE D 0464, 1015,1454,1100 ; 3122 464: R-PF, AC, J/ORCM D 0465, 0015,1454,3000 ; 3123 I-PF, AC, J/ORCM D 0466, 0016,1454,1700 ; 3124 RW, M, J/ORCM D 0467, 0017,1454,1700 ; 3125 RW, B, J/ORCM ; 3126 .UCODE ; 3127 ; 3128 1454: U 1454, 1446,7441,0303,4174,4007,0700,0000,0000,0000 ; 3129 ORCM: [AR]_.NOT.[AR],J/IOR ; 3130 ; 3131 .DCODE D 0470, 1015,1455,1100 ; 3132 470: R-PF, AC, J/ORCB D 0471, 0015,1455,3000 ; 3133 I-PF, AC, J/ORCB D 0472, 0016,1455,1700 ; 3134 RW, M, J/ORCB D 0473, 0017,1455,1700 ; 3135 RW, B, J/ORCB ; 3136 .UCODE ; 3137 ; 3138 1455: U 1455, 1453,4551,0303,0274,4007,0700,0000,0000,0000 ; 3139 ORCB: [AR]_[AR].AND.AC,J/SETCM ; 3140 ; 3141 .DCODE D 0474, 0015,1456,3000 ; 3142 474: I-PF, AC, J/SETO D 0475, 0015,1456,3000 ; 3143 I-PF, AC, J/SETO D 0476, 0016,1456,2700 ; 3144 IW, M, J/SETO D 0477, 0017,1456,2700 ; 3145 IW, B, J/SETO ; 3146 .UCODE ; 3147 ; 3148 1456: U 1456, 1500,2441,0703,4174,4003,7700,4200,0003,0001 ; 3149 SETO: [AR]_-[ONE], EXIT ; 3150 ; 3151 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 77 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 ROTATES AND LOGICAL SHIFTS -- ROT, LSH, JFFO ; 3152 .TOC "ROTATES AND LOGICAL SHIFTS -- ROT, LSH, JFFO" ; 3153 ; 3154 .DCODE D 0240, 0400,1622,1000 ; 3155 240: SH, J/ASH D 0241, 0400,1632,1000 ; 3156 SH, J/ROT D 0242, 0400,1612,1000 ; 3157 SH, J/LSH D 0243, 0000,1462,2100 ; 3158 I, J/JFFO D 0244, 0000,1466,3000 ; 3159 I-PF, J/ASHC D 0245, 0500,1470,1000 ; 3160 245: SHC, J/ROTC D 0246, 0500,1464,1000 ; 3161 SHC, J/LSHC ; 3162 .IF/CIRC D 0247, 0000,1665,2100 ; 3163 I, J/CIRC ;That's whats in the DROM... ; 3164 .ENDIF/CIRC ; 3165 .UCODE ; 3166 ; 3167 ; 3168 ;HERE IS THE CODE FOR LOGICAL SHIFT. THE EFFECTIVE ADDRESS IS ; 3169 ; IN AR. ; 3170 1612: ; 3171 LSH: [AR]_AC, ;PICK UP AC ; 3172 FE_-FE-1, ;NEGATIVE SHIFT U 1612, 1314,3771,0003,0276,6007,0700,1000,0031,1777 ; 3173 J/LSHL ;SHIFT LEFT ; 3174 1613: [AR]_AC.AND.MASK, ;MAKE IT LOOK POSITIVE ; 3175 FE_FE+1, ;UNDO -1 AT SHIFT U 1613, 1324,4551,1203,0276,6007,0700,1000,0041,0001 ; 3176 J/ASHR ;GO SHIFT RIGHT ; 3177 ; 3178 LSHL: [AR]_[AR]*2, ;SHIFT LEFT U 1314, 1515,3445,0303,4174,4007,0700,1020,0041,0001 ; 3179 SHIFT, J/STAC ;FAST SHIFT & GO STORE AC ; 3180 ; 3181 ;HERE IS THE CODE FOR ARITHMETIC SHIFT. THE EFFECTIVE ADDRESS IS ; 3182 ; IN AR. ; 3183 ; 3184 ASH36 LEFT "[AR]_[AR]*2 LONG, ASHC, STEP SC, ASH AROV" ; 3185 ; 3186 1622: U 1622, 1435,4222,0000,4174,4007,0700,0000,0000,0000 ; 3187 ASH: Q_0, J/ASHL0 ;HARDWARE ONLY DOES ASHC ; 3188 1623: [AR]_AC, ;GET THE ARGUMENT U 1623, 1324,3771,0003,0276,6007,0700,1000,0041,0001 ; 3189 FE_FE+1 ;FE HAS NEGATIVE SHIFT COUNT ; 3190 ASHR: [AR]_[AR]*.5, ;SHIFT RIGHT ; 3191 ASH, SHIFT, ;FAST SHIFT U 1324, 1515,3447,0303,4174,4007,0700,1020,0041,0001 ; 3192 J/STAC ;STORE AC WHEN DONE ; 3193 ; 3194 ASHL0: [AR]_AC*.5, ;GET INTO 9 CHIPS U 1435, 0054,3777,0003,0274,4007,0631,2000,0060,0000 ; 3195 STEP SC ;SEE IF NULL SHIFT ; 3196 =0 U 0054, 0054,3444,0303,4174,4447,0630,2000,0060,0000 ; 3197 ASHL: ASH36 LEFT, J/ASHL ;SHIFT LEFT ; 3198 ;SLOW BECAUSE WE HAVE TO ; 3199 ; TEST FOR OVERFLOW ; 3200 U 0055, 1515,3445,0303,4174,4007,0700,0000,0000,0000 ; 3201 ASHX: [AR]_[AR]*2, J/STAC ;SHIFT BACK INTO 10 CHIPS ; 3202 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 78 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 ROTATES AND LOGICAL SHIFTS -- ROT, LSH, JFFO ; 3203 ; 3204 ;HERE IS THE CODE FOR ROTATE. THE EFFECTIVE ADDRESS IS ; 3205 ; IN AR. ; 3206 1632: ; 3207 ROT: [AR]_AC*.5, ;PICK UP THE AC (& SHIFT) ; 3208 FE_-FE-1, ;NEGATIVE SHIFT COUNT U 1632, 1575,3777,0003,0274,4007,0701,1000,0031,1777 ; 3209 J/ROTL ;ROTATE LEFT ; 3210 1633: [AR]_AC*.5, ;PICK UP THE AC (& SHIFT) U 1633, 1463,3777,0003,0274,4007,0701,1000,0041,0001 ; 3211 FE_FE+1 ;NEGATIVE SHIFT COUNT U 1463, 1507,3447,0303,4174,4007,0700,0000,0000,0000 ; 3212 [AR]_[AR]*.5 ;PUT IN 9 DIPS ; 3213 [AR]_[AR]*.5, ;SHIFT RIGHT U 1507, 1564,3447,0303,4174,4037,0700,1020,0041,0001 ; 3214 ROT, SHIFT ;FAST SHIFT U 1564, 0055,3445,0303,4174,4007,0700,0000,0000,0000 ; 3215 ASHXX: [AR]_[AR]*2,J/ASHX ;SHIFT TO STD PLACE ; 3216 U 1575, 1617,3447,0303,4174,4007,0700,0000,0000,0000 ; 3217 ROTL: [AR]_[AR]*.5 ;PUT IN RIGHT 36-BITS ; 3218 [AR]_[AR]*2, ;ROTATE LEFT ; 3219 ROT, SHIFT, ;FAST SHIFT U 1617, 1564,3445,0303,4174,4037,0700,1020,0041,0001 ; 3220 J/ASHXX ;ALL DONE--SHIFT BACK ; 3221 ; 3222 1462: ; 3223 JFFO: [BR]_AC.AND.MASK, 4T, ;GET AC WITH NO SIGN U 1462, 0056,4551,1205,0276,6007,0622,0000,0000,0000 ; 3224 SKIP AD.EQ.0 ; EXTENSION. SKIP IF ; 3225 ; ZERO. ; 3226 =0 [PC]_[AR], ;NOT ZERO--JUMP ; 3227 LOAD VMA, FETCH, ;GET NEXT INST U 0056, 1645,3441,0301,4174,4007,0700,0200,0014,0012 ; 3228 J/JFFO1 ;ENTER LOOP U 0057, 1400,4223,0000,1174,4007,0700,0400,0000,1441 ; 3229 AC[1]_0, J/DONE ;ZERO--DONE ; 3230 U 1645, 0120,4443,0000,4174,4007,0700,1000,0071,1764 ; 3231 JFFO1: FE_-12. ;WHY -12.? WELL THE ; 3232 ; HARDWARE LOOKS AT ; 3233 ; BIT -2 SO THE FIRST ; 3234 ; 2 STEPS MOVE THE BR ; 3235 ; OVER. WE ALSO LOOK AT ; 3236 ; THE DATA BEFORE THE SHIFT ; 3237 ; SO WE END UP GOING 1 PLACE ; 3238 ; TOO MANY. THAT MEANS THE ; 3239 ; FE SHOULD START AT -3. ; 3240 ; HOWEVER, WE COUNT THE FE BY ; 3241 ; 4 (BECAUSE THE 2 LOW ORDER ; 3242 ; BITS DO NOT COME BACK) SO ; 3243 ; FE_-12. ; 3244 =0 ; 3245 JFFOL: [BR]_[BR]*2, ;SHIFT LEFT ; 3246 FE_FE+4, ;COUNT UP BIT NUMBER U 0120, 0120,3445,0505,4174,4007,0520,1000,0041,0004 ; 3247 SKIP DP0, J/JFFOL ;LOOP TILL WE FIND THE BIT U 0121, 1745,3777,0003,4334,4057,0700,0000,0041,0000 ; 3248 [AR]_FE ;GET ANSWER BACK U 1745, 2001,4251,0303,4374,4007,0700,0000,0000,0077 ; 3249 [AR]_[AR].AND.# CLR LH,#/77 ;MASK TO 1 COPY U 2001, 0060,3440,0303,1174,4156,4700,0400,0000,1441 ; 3250 AC[1]_[AR], NEXT INST ;STORE AND EXIT ; 3251 ; 3252 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 79 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 ROTATES AND LOGICAL SHIFTS -- LSHC ; 3253 .TOC "ROTATES AND LOGICAL SHIFTS -- LSHC" ; 3254 ; 3255 ;SHIFT CONNECTIONS WHEN THE SPECIAL FUNCTION "LSHC" IS DONE: ; 3256 ; ; 3257 ; !-! !----!------------------------------------! ; 3258 ; !0!-->!0000! HIGH ORDER 36 BITS ! RAM FILE ; 3259 ; !-! !----!------------------------------------! ; 3260 ; ^ ; 3261 ; : ; 3262 ; .................................... ; 3263 ; : ; 3264 ; !----!------------------------------------! ; 3265 ; !0000! LOW ORDER 36 BITS ! Q-REGISTER ; 3266 ; !----!------------------------------------! ; 3267 ; ^ ; 3268 ; : ; 3269 ; !-! ; 3270 ; !0! ; 3271 ; !-! ; 3272 ; ; 3273 ; 3274 1464: U 1464, 0124,4443,0000,4174,4007,0630,2000,0060,0000 ; 3275 LSHC: STEP SC, J/LSHCL U 1465, 2004,3333,0003,4174,4007,0700,2000,0031,5777 ; 3276 1465: READ [AR], SC_-SHIFT-1 U 2004, 0122,4443,0000,4174,4007,0630,2000,0060,0000 ; 3277 STEP SC ; 3278 =0 U 0122, 0122,3446,0505,4174,4057,0630,2000,0060,0000 ; 3279 LSHCR: [BR]_[BR]*.5 LONG,STEP SC,LSHC,J/LSHCR U 0123, 2041,3444,0505,4174,4007,0700,0000,0000,0000 ; 3280 [BR]_[BR]*2 LONG,J/LSHCX ; 3281 ; 3282 =0 U 0124, 0124,3444,0505,4174,4057,0630,2000,0060,0000 ; 3283 LSHCL: [BR]_[BR]*2 LONG,LSHC,STEP SC,J/LSHCL U 0125, 2041,3444,0505,4174,4007,0700,0000,0000,0000 ; 3284 [BR]_[BR]*2 LONG U 2041, 2046,3444,0505,4174,4007,0700,0000,0000,0000 ; 3285 LSHCX: [BR]_[BR]*2 LONG U 2046, 2107,3440,0505,0174,4007,0700,0400,0000,0000 ; 3286 AC_[BR], J/ASHCQ1 ; 3287 ; 3288 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 80 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 ROTATES AND LOGICAL SHIFTS -- ASHC ; 3289 .TOC "ROTATES AND LOGICAL SHIFTS -- ASHC" ; 3290 ; 3291 ; 3292 1466: ; 3293 ASHC: READ [AR], ;PUT AR ON DP ; 3294 SC_SHIFT, LOAD FE, ;PUT SHIFT IN BOTH SC AND FE U 1466, 0126,3333,0003,4174,4007,0330,3000,0041,4000 ; 3295 SKIP ADR.EQ.0 ;SEE IF NULL SHIFT ; 3296 =0 Q_AC[1], ;NOT NULL--GET LOW WORD U 0126, 2067,3772,0000,1275,5007,0701,0000,0000,1441 ; 3297 J/ASHC1 ;CONTINUE BELOW U 0127, 0060,4443,0000,4174,4156,4700,0000,0000,0000 ; 3298 NIDISP: NEXT INST ;NULL--ALL DONE ; 3299 ASHC1: [BR]_AC*.5 LONG, ;GET HIGH WORD ; 3300 ;AND SHIFT Q U 2067, 0130,3776,0005,0274,4007,0631,0000,0000,0000 ; 3301 SKIP/SC ;SEE WHICH DIRECTION ; 3302 =0 [BR]_[BR]*.5, ;ADJUST POSITION ; 3303 SC_FE+S#, S#/1776, ;SUBRTACT 2 FROM FE U 0130, 0134,3447,0505,4174,4007,0700,2000,0041,1776 ; 3304 J/ASHCL ;GO LEFT ; 3305 [BR]_[BR]*.5, ;ADJUST POSITION U 0131, 0132,3447,0505,4174,4007,0700,2000,0031,1776 ; 3306 SC_S#-FE, S#/1776 ;SC_-2-FE, SC_+# OF STEPS ; 3307 =0 ;HERE TO GO RIGHT ; 3308 ASHCR: [BR]_[BR]*.5 LONG, ;GO RIGHT ; 3309 ASHC, ;SET DATA PATHS FOR ASHC (SEE DPE1) U 0132, 0132,3446,0505,4174,4047,0630,2000,0060,0000 ; 3310 STEP SC, J/ASHCR ;COUNT THE STEP AND KEEP LOOPING ; 3311 [BR]_[BR]*2 LONG, ;PUT BACK WHERE IT GOES U 0133, 2077,3444,0505,4174,4047,0700,0000,0000,0000 ; 3312 ASHC, J/ASHCX ;COMPLETE INSTRUCTION ; 3313 ; 3314 =0 ; 3315 ASHCL: [BR]_[BR]*2 LONG, ;GO LEFT ; 3316 ASHC, ASH AROV, ;SEE IF OVERFLOW U 0134, 0134,3444,0505,4174,4447,0630,2000,0060,0000 ; 3317 STEP SC, J/ASHCL ;LOOP OVER ALL PLACES ; 3318 [BR]_[BR]*2 LONG, ;SHIFT BACK WHERE IT GOES U 0135, 2077,3444,0505,4174,4447,0700,0000,0000,0000 ; 3319 ASHC, ASH AROV ;CAN STILL OVERFLOW ; 3320 ASHCX: AC_[BR]+[BR], 3T, ;PUT BACK HIGH WORD U 2077, 0140,0113,0505,0174,4007,0521,0400,0000,0000 ; 3321 SKIP DP0 ;SEE HOW TO FIX LOW SIGN ; 3322 =0 Q_Q.AND.#, #/377777, ;POSITIVE, CLEAR LOW SIGN U 0140, 2107,4662,0000,4374,0007,0700,0000,0037,7777 ; 3323 HOLD RIGHT, J/ASHCQ1 ;GO STORE ANSWER ; 3324 Q_Q.OR.#, #/400000, ;NEGATIVE, SET LOW SIGN U 0141, 2107,3662,0000,4374,0007,0700,0000,0040,0000 ; 3325 HOLD RIGHT ;IN LEFT HALF U 2107, 0060,3223,0000,1174,4156,4700,0400,0000,1441 ; 3326 ASHCQ1: AC[1]_Q, NEXT INST ;PUT BACK Q AND EXIT ; 3327 ; 3328 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 81 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 ROTATES AND LOGICAL SHIFTS -- ROTC ; 3329 .TOC "ROTATES AND LOGICAL SHIFTS -- ROTC" ; 3330 ; 3331 ;SHIFT CONNECTIONS WHEN THE SPECIAL FUNCTION "ROTC" IS DONE: ; 3332 ; ; 3333 ; !----!------------------------------------! ; 3334 ; .....>!0000! HIGH ORDER 36 BITS ! RAM FILE ; 3335 ; : !----!------------------------------------! ; 3336 ; : ^ ; 3337 ; : : ; 3338 ; : ............................................ ; 3339 ; : : ; 3340 ; : : !----!------------------------------------! ; 3341 ; : ..!0000! LOW ORDER 36 BITS ! Q-REGISTER ; 3342 ; : !----!------------------------------------! ; 3343 ; : ^ ; 3344 ; : : ; 3345 ; :..............................................: ; 3346 ; ; 3347 ; 3348 1470: U 1470, 0144,4443,0000,4174,4007,0630,2000,0060,0000 ; 3349 ROTC: STEP SC, J/ROTCL U 1471, 2246,3333,0003,4174,4007,0700,2000,0031,5777 ; 3350 1471: READ [AR], SC_-SHIFT-1 U 2246, 0142,4443,0000,4174,4007,0630,2000,0060,0000 ; 3351 STEP SC ; 3352 =0 U 0142, 0142,3446,0505,4174,4077,0630,2000,0060,0000 ; 3353 ROTCR: [BR]_[BR]*.5 LONG,STEP SC,ROTC,J/ROTCR U 0143, 2041,3444,0505,4174,4007,0700,0000,0000,0000 ; 3354 [BR]_[BR]*2 LONG,J/LSHCX ; 3355 ; 3356 =0 U 0144, 0144,3444,0505,4174,4077,0630,2000,0060,0000 ; 3357 ROTCL: [BR]_[BR]*2 LONG,ROTC,STEP SC,J/ROTCL ; 3358 [BR]_[BR]*2 LONG, U 0145, 2041,3444,0505,4174,4007,0700,0000,0000,0000 ; 3359 J/LSHCX ; 3360 ; 3361 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 82 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 CIRC ; 3362 .TOC "CIRC" ; 3363 ; 3364 .IF/CIRC ; 3365 ; 3366 1665: U 1665, 2257,3772,0000,1275,5007,0701,0000,0000,1441 ; 3367 CIRC: Q_AC[1] ;PUT LOW WORD IN Q U 2257, 2310,3776,0005,0274,4007,0701,0000,0000,0000 ; 3368 [BR]_AC*.5 LONG ;PUT AC IN BR & SHIFT BR!Q RIGHT U 2310, 2324,3446,0505,4174,4007,0700,0000,0000,0000 ; 3369 [BR]_[BR]*.5 LONG ;SHIFT BR!Q 1 MORE PLACE RIGHT ; 3370 READ [AR], ;LOOK AT EFFECTIVE ADDRESS ; 3371 SKIP DP18, ;SEE IF LEFT OR RIGHT U 2324, 0146,3333,0003,4174,4007,0530,2000,0041,5777 ; 3372 SC_SHIFT-1 ;PUT NUMBER OF PLACES TO SHIFT IN ; 3373 ; SC AND FE (ASSUMING LEFT SHIFT) U 0146, 0150,4443,0000,4174,4007,0630,2000,0060,0000 ; 3374 =0 STEP SC, J/CIRCL ;GO LEFT SHIFT U 0147, 2406,3333,0003,4174,4007,0700,2000,0031,5777 ; 3375 READ [AR], SC_-SHIFT-1 ;CORRECT FOR RIGHT SHIFT U 2406, 0152,4443,0000,4174,4007,0630,2000,0060,0000 ; 3376 STEP SC, J/CIRCR ;GO RIGHT SHIFT ; 3377 U 2425, 2427,3446,0505,4174,4077,0700,0000,0000,0000 ; 3378 CIRCLA: [BR]_[BR]*.5 LONG, ROTC ;BOTH WORDS RIGHT U 2427, 0150,3445,0505,4174,4037,0630,2000,0060,0000 ; 3379 [BR]_[BR]*2, ROT, STEP SC ;FIRST WORD LEFT, STEP ; 3380 =0 U 0150, 2425,3445,0505,4174,4037,0700,0000,0000,0000 ; 3381 CIRCL: [BR]_[BR]*2, ROT, J/CIRCLA ;FIRST WORD LEFT U 0151, 2041,3444,0505,4174,4007,0700,0000,0000,0000 ; 3382 [BR]_[BR]*2 LONG, J/LSHCX ;DONE ; 3383 U 2437, 2442,3444,0505,4174,4077,0700,0000,0000,0000 ; 3384 CIRCRA: [BR]_[BR]*2 LONG, ROTC ;BOTH WORDS LEFT U 2442, 0152,3447,0505,4174,4037,0630,2000,0060,0000 ; 3385 [BR]_[BR]*.5, ROT, STEP SC ;FIRST WORD RIGHT, STEP ; 3386 =0 U 0152, 2437,3447,0505,4174,4037,0700,0000,0000,0000 ; 3387 CIRCR: [BR]_[BR]*.5, ROT, J/CIRCRA ;FIRST WORD RIGHT U 0153, 2041,3444,0505,4174,4007,0700,0000,0000,0000 ; 3388 [BR]_[BR]*2 LONG, J/LSHCX ;DONE ; 3389 ; 3390 .ENDIF/CIRC ; 3391 ; 3392 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 83 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 TEST GROUP ; 3393 .TOC "TEST GROUP" ; 3394 ; 3395 .DCODE ; 3396 ; 3397 ;SPECIAL MACROS USED ONLY IN B-FIELD OF TEST INSTRUCTIONS ; 3398 TN- "B/4" ; 3399 TNE "B/0" ; 3400 WORD-TNE "B/10" ;USED IN TIOE ; 3401 TNA "B/0" ; 3402 TNN "B/4" ; 3403 WORD-TNN "B/14" ;USED IN TION ; 3404 TZ- "B/5" ; 3405 TZE "B/1" ; 3406 TZA "B/1" ; 3407 TZN "B/5" ; 3408 TC- "B/6" ; 3409 TCE "B/2" ; 3410 TCA "B/2" ; 3411 TCN "B/6" ; 3412 TO- "B/7" ; 3413 TOE "B/3" ; 3414 TOA "B/3" ; 3415 TON "B/7" ; 3416 D 0600, 0000,1400,2100 ; 3417 600: I, J/DONE ;TRN- IS NOP D 0601, 0000,1400,2100 ; 3418 I, J/DONE ;SO IS TLN- D 0602, 0000,1475,2100 ; 3419 I, TNE, J/TDXX D 0603, 0000,1474,2100 ; 3420 I, TNE, J/TSXX D 0604, 0000,1473,2100 ; 3421 I, TNA, J/TDX D 0605, 0000,1472,2100 ; 3422 I, TNA, J/TSX D 0606, 0004,1475,2100 ; 3423 I, TNN, J/TDXX D 0607, 0004,1474,2100 ; 3424 I, TNN, J/TSXX ; 3425 D 0610, 0000,1400,2100 ; 3426 610: I, J/DONE ;TDN- IS A NOP D 0611, 0000,1400,2100 ; 3427 I, J/DONE ;TSN- ALSO D 0612, 0000,1475,1100 ; 3428 R, TNE, J/TDXX D 0613, 0000,1474,1100 ; 3429 R, TNE, J/TSXX D 0614, 0000,1473,1100 ; 3430 R, TNA, J/TDX D 0615, 0000,1472,1100 ; 3431 R, TNA, J/TSX D 0616, 0004,1475,1100 ; 3432 R, TNN, J/TDXX D 0617, 0004,1474,1100 ; 3433 R, TNN, J/TSXX ; 3434 D 0620, 0005,1473,2100 ; 3435 620: I, TZ-, J/TDX D 0621, 0005,1472,2100 ; 3436 I, TZ-, J/TSX D 0622, 0001,1475,2100 ; 3437 I, TZE, J/TDXX D 0623, 0001,1474,2100 ; 3438 I, TZE, J/TSXX D 0624, 0001,1473,2100 ; 3439 I, TZA, J/TDX D 0625, 0001,1472,2100 ; 3440 I, TZA, J/TSX D 0626, 0005,1475,2100 ; 3441 I, TZN, J/TDXX D 0627, 0005,1474,2100 ; 3442 I, TZN, J/TSXX ; 3443 D 0630, 0005,1473,1100 ; 3444 630: R, TZ-, J/TDX D 0631, 0005,1472,1100 ; 3445 R, TZ-, J/TSX D 0632, 0001,1475,1100 ; 3446 R, TZE, J/TDXX D 0633, 0001,1474,1100 ; 3447 R, TZE, J/TSXX D 0634, 0001,1473,1100 ; 3448 R, TZA, J/TDX D 0635, 0001,1472,1100 ; 3449 R, TZA, J/TSX D 0636, 0005,1475,1100 ; 3450 R, TZN, J/TDXX D 0637, 0005,1474,1100 ; 3451 R, TZN, J/TSXX ; 3452 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 84 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 TEST GROUP ; 3453 D 0640, 0006,1473,2100 ; 3454 640: I, TC-, J/TDX D 0641, 0006,1472,2100 ; 3455 I, TC-, J/TSX D 0642, 0002,1475,2100 ; 3456 I, TCE, J/TDXX D 0643, 0002,1474,2100 ; 3457 I, TCE, J/TSXX D 0644, 0002,1473,2100 ; 3458 I, TCA, J/TDX D 0645, 0002,1472,2100 ; 3459 I, TCA, J/TSX D 0646, 0006,1475,2100 ; 3460 I, TCN, J/TDXX D 0647, 0006,1474,2100 ; 3461 I, TCN, J/TSXX ; 3462 D 0650, 0006,1473,1100 ; 3463 650: R, TC-, J/TDX D 0651, 0006,1472,1100 ; 3464 R, TC-, J/TSX D 0652, 0002,1475,1100 ; 3465 R, TCE, J/TDXX D 0653, 0002,1474,1100 ; 3466 R, TCE, J/TSXX D 0654, 0002,1473,1100 ; 3467 R, TCA, J/TDX D 0655, 0002,1472,1100 ; 3468 R, TCA, J/TSX D 0656, 0006,1475,1100 ; 3469 R, TCN, J/TDXX D 0657, 0006,1474,1100 ; 3470 R, TCN, J/TSXX D 0660, 0007,1473,2100 ; 3471 660: I, TO-, J/TDX D 0661, 0007,1472,2100 ; 3472 I, TO-, J/TSX D 0662, 0003,1475,2100 ; 3473 I, TOE, J/TDXX D 0663, 0003,1474,2100 ; 3474 I, TOE, J/TSXX D 0664, 0003,1473,2100 ; 3475 I, TOA, J/TDX D 0665, 0003,1472,2100 ; 3476 I, TOA, J/TSX D 0666, 0007,1475,2100 ; 3477 I, TON, J/TDXX D 0667, 0007,1474,2100 ; 3478 I, TON, J/TSXX ; 3479 D 0670, 0007,1473,1100 ; 3480 670: R, TO-, J/TDX D 0671, 0007,1472,1100 ; 3481 R, TO-, J/TSX D 0672, 0003,1475,1100 ; 3482 R, TOE, J/TDXX D 0673, 0003,1474,1100 ; 3483 R, TOE, J/TSXX D 0674, 0003,1473,1100 ; 3484 R, TOA, J/TDX D 0675, 0003,1472,1100 ; 3485 R, TOA, J/TSX D 0676, 0007,1475,1100 ; 3486 R, TON, J/TDXX D 0677, 0007,1474,1100 ; 3487 R, TON, J/TSXX ; 3488 ; 3489 .UCODE ; 3490 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 85 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 TEST GROUP ; 3491 ; 3492 ;THESE 64 INSTRUCTIONS ARE DECODED BY MASK MODE(IMMEDIATE OR MEMORY) ; 3493 ; IN THE A FIELD, DISPATCH TO HERE ON THE J FIELD, AND RE-DISPATCH ; 3494 ; FOR THE MODIFICATION ON THE B FIELD. ; 3495 ; 3496 ; ENTER WITH 0,E OR (E) IN AR, B FIELD BITS 2 AND 3 AS FOLLOWS: ; 3497 ; 0 0 NO MODIFICATION ; 3498 ; 0 1 0S ; 3499 ; 1 0 COMPLEMENT ; 3500 ; 1 1 ONES ; 3501 ; THIS ORDER HAS NO SIGNIFICANCE EXCEPT THAT IT CORRESPONDS TO THE ; 3502 ; ORDER OF INSTRUCTIONS AT TGROUP. ; 3503 ; 3504 ;THE BIT 1 OF THE B FIELD IS USED TO DETERMINE THE SENSE ; 3505 ; OF THE SKIP ; 3506 ; 1 SKIP IF AC.AND.MASK .NE. 0 (TXX- AND TXXN) ; 3507 ; 0 SKIP IF AC.AND.MASK .EQ. 0 (TXXA AND TXXE) ; 3508 ; 3509 ;BIT 0 IS UNUSED AND MUST BE ZERO ; 3510 ; 3511 ; 3512 1472: U 1472, 1473,3770,0303,4344,4007,0700,0000,0000,0000 ; 3513 TSX: [AR]_[AR] SWAP ;TSXX AND TLXX ; 3514 1473: U 1473, 0154,4221,0005,4174,4003,7700,0000,0000,0000 ; 3515 TDX: [BR]_0,TEST DISP ; ALWAYS AND NEVER SKIP CASES ; 3516 ; 3517 1474: U 1474, 1475,3770,0303,4344,4007,0700,0000,0000,0000 ; 3518 TSXX: [AR]_[AR] SWAP ;TSXE, TSXN, TLXE, TLXN ; 3519 1475: ; 3520 TDXX: [BR]_[AR].AND.AC, ;TDXE, TDXN, TRXE, TRXN U 1475, 0154,4551,0305,0274,4003,7700,0000,0000,0000 ; 3521 TEST DISP ; 3522 ; 3523 ;TEST DISP DOES AN 8 WAY BRANCH BASED ON THE B-FIELD OF DROM ; 3524 ; 3525 =1100 ; 3526 TEST-TABLE: ; 3527 ; 3528 ;CASE 0 & 4 -- TXNX U 0154, 1400,3333,0005,4174,4007,0571,0000,0000,0000 ; 3529 TXXX: READ [BR], TXXX TEST, 3T, J/DONE ; 3530 ; 3531 ;CASE 1 & 5 -- TXZ AND TXZX U 0155, 2444,7441,0303,4174,4007,0700,0000,0000,0000 ; 3532 [AR]_.NOT.[AR],J/TXZX ; 3533 ; 3534 ;CASE 2 & 6 -- TXC AND TXCX U 0156, 2446,6551,0303,0274,4007,0700,0000,0000,0000 ; 3535 [AR]_[AR].XOR.AC,J/TDONE ; 3536 ; 3537 ;CASE 3 & 7 -- TXO AND TXOX U 0157, 2446,3551,0303,0274,4007,0700,0000,0000,0000 ; 3538 [AR]_[AR].OR.AC,J/TDONE ; 3539 ; 3540 ;THE SPECIAL FUNCTION TXXX TEST CAUSES A MICROCODE SKIP IF ; 3541 ; AD.EQ.0 AND DROM B IS 0-3 OR AD.NE.0 AND DROM B IS 4-7. ; 3542 U 2444, 2446,4551,0303,0274,4007,0700,0000,0000,0000 ; 3543 TXZX: [AR]_[AR].AND.AC U 2446, 0154,3440,0303,0174,4007,0700,0400,0000,0000 ; 3544 TDONE: AC_[AR],J/TXXX ; 3545 ; READ BR,TXXX TEST,J/DONE ; 3546 ; 3547 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 86 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 COMPARE -- CAI, CAM ; 3548 .TOC "COMPARE -- CAI, CAM" ; 3549 ; 3550 .DCODE ; 3551 ; 3552 ;SPECIAL B-FIELD ENCODING USED BY SKIP-JUMP-COMPARE CLASS ; 3553 ; INSTRUCTIONS: ; 3554 ; 3555 SJC- "B/0" ;NEVER ; 3556 SJCL "B/1" ;LESS ; 3557 SJCE "B/2" ;EQUAL ; 3558 SJCLE "B/3" ;LESS EQUAL ; 3559 SJCA "B/4" ;ALWAYS ; 3560 SJCGE "B/5" ;GREATER THAN OR EQUAL ; 3561 SJCN "B/6" ;NOT EQUAL ; 3562 SJCG "B/7" ;GREATER ; 3563 ; 3564 .UCODE ; 3565 ; 3566 ;COMPARE TABLE ; 3567 =1000 ; 3568 SKIP-COMP-TABLE: ; 3569 ; 3570 ;CASE 0 -- NEVER U 0170, 0070,3443,0100,4174,4156,4700,0200,0014,0012 ; 3571 DONE ; 3572 ; 3573 ;CASE 1 -- LESS U 0171, 1400,3333,0003,4174,4007,0520,0000,0000,0000 ; 3574 READ [AR], SKIP DP0,J/DONE ; 3575 ; 3576 ;CASE 2 -- EQUAL U 0172, 1400,3333,0003,4174,4007,0621,0000,0000,0000 ; 3577 SKIPE: READ [AR], SKIP AD.EQ.0,J/DONE ; 3578 ; 3579 ;CASE 3 -- LESS OR EQUAL U 0173, 1400,3333,0003,4174,4007,0421,0000,0000,0000 ; 3580 READ [AR], SKIP AD.LE.0,J/DONE ; 3581 ; 3582 ;CASE 4 -- ALWAYS U 0174, 0070,0111,0701,4170,4156,4700,0200,0014,0012 ; 3583 VMA_[PC]+1, NEXT INST FETCH, FETCH ; 3584 ; 3585 ;CASE 5 -- GREATER THAN OR EQUAL U 0175, 0014,3333,0003,4174,4007,0520,0000,0000,0000 ; 3586 READ [AR], SKIP DP0,J/SKIP ; 3587 ; 3588 ;CASE 6 -- NOT EQUAL U 0176, 0014,3333,0003,4174,4007,0621,0000,0000,0000 ; 3589 READ [AR], SKIP AD.EQ.0,J/SKIP ; 3590 ; 3591 ;CASE 7 -- GREATER U 0177, 0014,3333,0003,4174,4007,0421,0000,0000,0000 ; 3592 READ [AR], SKIP AD.LE.0,J/SKIP ; 3593 ; 3594 .DCODE D 0300, 0000,1400,2100 ; 3595 300: I, SJC-, J/DONE ;CAI D 0301, 0001,1476,2100 ; 3596 I, SJCL, J/CAIM D 0302, 0002,1476,2100 ; 3597 I, SJCE, J/CAIM D 0303, 0003,1476,2100 ; 3598 I, SJCLE, J/CAIM D 0304, 0004,1476,2100 ; 3599 I, SJCA, J/CAIM D 0305, 0005,1476,2100 ; 3600 I, SJCGE, J/CAIM D 0306, 0006,1476,2100 ; 3601 I, SJCN, J/CAIM D 0307, 0007,1476,2100 ; 3602 I, SJCG, J/CAIM ; 3603 D 0310, 0000,1476,1100 ; 3604 310: R, SJC-, J/CAIM ;CAM D 0311, 0001,1476,1100 ; 3605 R, SJCL, J/CAIM D 0312, 0002,1476,1100 ; 3606 R, SJCE, J/CAIM D 0313, 0003,1476,1100 ; 3607 R, SJCLE, J/CAIM D 0314, 0004,1476,1100 ; 3608 R, SJCA, J/CAIM D 0315, 0005,1476,1100 ; 3609 R, SJCGE, J/CAIM D 0316, 0006,1476,1100 ; 3610 R, SJCN, J/CAIM D 0317, 0007,1476,1100 ; 3611 R, SJCG, J/CAIM ; 3612 .UCODE ; 3613 ; 3614 1476: U 1476, 0170,2551,0303,0274,4003,7701,4000,0000,0000 ; 3615 CAIM: [AR]_AC-[AR], 3T, SKIP-COMP DISP ; 3616 ; 3617 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 87 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 ARITHMETIC SKIPS -- AOS, SOS, SKIP ; 3618 .TOC "ARITHMETIC SKIPS -- AOS, SOS, SKIP" ; 3619 ;ENTER WITH (E) IN AR ; 3620 ; 3621 .DCODE D 0330, 0000,1477,1100 ; 3622 330: R, SJC-, J/SKIPS ;NOT A NOP IF AC .NE. 0 D 0331, 0001,1477,1100 ; 3623 R, SJCL, J/SKIPS D 0332, 0002,1477,1100 ; 3624 R, SJCE, J/SKIPS D 0333, 0003,1477,1100 ; 3625 R, SJCLE, J/SKIPS D 0334, 0004,1477,1100 ; 3626 R, SJCA, J/SKIPS D 0335, 0005,1477,1100 ; 3627 R, SJCGE, J/SKIPS D 0336, 0006,1477,1100 ; 3628 R, SJCN, J/SKIPS D 0337, 0007,1477,1100 ; 3629 R, SJCG, J/SKIPS ; 3630 .UCODE ; 3631 ; 3632 1477: ; 3633 SKIPS: FIX [AR] SIGN, U 1477, 0160,3770,0303,4174,0007,0360,0000,0000,0000 ; 3634 SKIP IF AC0 U 0160, 0170,3440,0303,0174,4003,7700,0400,0000,0000 ; 3635 =0 AC_[AR],SKIP-COMP DISP U 0161, 0170,4443,0000,4174,4003,7700,0000,0000,0000 ; 3636 SKIP-COMP DISP ; 3637 ; 3638 .DCODE D 0350, 0000,1431,1500 ; 3639 350: RW, SJC-, J/AOS D 0351, 0001,1431,1500 ; 3640 RW, SJCL, J/AOS D 0352, 0002,1431,1500 ; 3641 RW, SJCE, J/AOS D 0353, 0003,1431,1500 ; 3642 RW, SJCLE, J/AOS D 0354, 0004,1431,1500 ; 3643 RW, SJCA, J/AOS D 0355, 0005,1431,1500 ; 3644 RW, SJCGE, J/AOS D 0356, 0006,1431,1500 ; 3645 RW, SJCN, J/AOS D 0357, 0007,1431,1500 ; 3646 RW, SJCG, J/AOS ; 3647 .UCODE ; 3648 ; 3649 1431: U 1431, 2522,0111,0703,4174,4467,0701,0000,0001,0001 ; 3650 AOS: [AR]_[AR]+1, 3T, AD FLAGS U 2522, 2550,4443,0000,4174,4007,0700,0200,0003,0002 ; 3651 XOS: START WRITE U 2550, 1477,3333,0003,4175,5007,0701,0200,0000,0002 ; 3652 MEM WRITE,MEM_[AR],J/SKIPS ; 3653 ; 3654 .DCODE D 0370, 0000,1437,1500 ; 3655 370: RW, SJC-, J/SOS D 0371, 0001,1437,1500 ; 3656 RW, SJCL, J/SOS D 0372, 0002,1437,1500 ; 3657 RW, SJCE, J/SOS D 0373, 0003,1437,1500 ; 3658 RW, SJCLE, J/SOS D 0374, 0004,1437,1500 ; 3659 RW, SJCA, J/SOS D 0375, 0005,1437,1500 ; 3660 RW, SJCGE, J/SOS D 0376, 0006,1437,1500 ; 3661 RW, SJCN, J/SOS D 0377, 0007,1437,1500 ; 3662 RW, SJCG, J/SOS ; 3663 .UCODE ; 3664 ; 3665 1437: U 1437, 2522,1111,0703,4174,4467,0701,4000,0001,0001 ; 3666 SOS: [AR]_[AR]-1, 3T, AD FLAGS, J/XOS ; 3667 ; 3668 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 88 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 CONDITIONAL JUMPS -- JUMP, AOJ, SOJ, AOBJ ; 3669 .TOC "CONDITIONAL JUMPS -- JUMP, AOJ, SOJ, AOBJ" ; 3670 ; ENTER WITH E IN AR ; 3671 ; 3672 =1000 ; 3673 JUMP-TABLE: ; 3674 ; 3675 ;CASE 0 -- NEVER U 0210, 0060,3440,0505,0174,4156,4700,0400,0000,0000 ; 3676 AC_[BR], NEXT INST ; 3677 ; 3678 ;CASE 1 -- LESS U 0211, 0162,3770,0505,0174,4007,0520,0400,0000,0000 ; 3679 AC_[BR] TEST, SKIP DP0, J/JUMP- ; 3680 ; 3681 ;CASE 2 -- EQUAL U 0212, 0162,3770,0505,0174,4007,0621,0400,0000,0000 ; 3682 AC_[BR] TEST, SKIP AD.EQ.0, J/JUMP- ; 3683 ; 3684 ;CASE 3 -- LESS THAN OR EQUAL U 0213, 0162,3770,0505,0174,4007,0421,0400,0000,0000 ; 3685 AC_[BR] TEST, SKIP AD.LE.0, J/JUMP- ; 3686 ; 3687 ;CASE 4 -- ALWAYS U 0214, 0164,3440,0505,0174,4007,0700,0400,0000,0000 ; 3688 JMPA: AC_[BR], J/JUMPA ; 3689 ; 3690 ;CASE 5 -- GREATER THAN OR EQUAL TO U 0215, 0164,3770,0505,0174,4007,0520,0400,0000,0000 ; 3691 AC_[BR] TEST, SKIP DP0, J/JUMPA ; 3692 ; 3693 ;CASE 6 -- NOT EQUAL U 0216, 0164,3770,0505,0174,4007,0621,0400,0000,0000 ; 3694 AC_[BR] TEST, SKIP AD.EQ.0, J/JUMPA ; 3695 ; 3696 ;CASE 7 -- GREATER U 0217, 0164,3770,0505,0174,4007,0421,0400,0000,0000 ; 3697 AC_[BR] TEST, SKIP AD.LE.0, J/JUMPA ; 3698 ; 3699 =0 U 0162, 0070,3443,0100,4174,4156,4700,0200,0014,0012 ; 3700 JUMP-: DONE U 0163, 0070,3441,0301,4170,4156,4700,0200,0014,0012 ; 3701 JUMPA ; 3702 ; 3703 =0 U 0164, 0070,3441,0301,4170,4156,4700,0200,0014,0012 ; 3704 JUMPA: JUMPA U 0165, 0070,3443,0100,4174,4156,4700,0200,0014,0012 ; 3705 DONE ; 3706 ; 3707 ; 3708 .DCODE D 0320, 0000,1400,2100 ; 3709 320: I, SJC-, J/DONE D 0321, 0001,1440,2100 ; 3710 I, SJCL, J/JUMP D 0322, 0002,1440,2100 ; 3711 I, SJCE, J/JUMP D 0323, 0003,1440,2100 ; 3712 I, SJCLE, J/JUMP D 0324, 0004,1520,2100 ; 3713 I, SJCA, J/JRST D 0325, 0005,1440,2100 ; 3714 I, SJCGE, J/JUMP D 0326, 0006,1440,2100 ; 3715 I, SJCN, J/JUMP D 0327, 0007,1440,2100 ; 3716 I, SJCG, J/JUMP ; 3717 .UCODE ; 3718 ; 3719 1440: U 1440, 0210,3771,0005,0276,6003,7700,0000,0000,0000 ; 3720 JUMP: [BR]_AC,JUMP DISP ; 3721 ; 3722 .DCODE D 0340, 0000,1611,3000 ; 3723 340: I-PF, SJC-, J/AOJ D 0341, 0001,1611,2100 ; 3724 I, SJCL, J/AOJ D 0342, 0002,1611,2100 ; 3725 I, SJCE, J/AOJ D 0343, 0003,1611,2100 ; 3726 I, SJCLE, J/AOJ D 0344, 0004,1611,2100 ; 3727 I, SJCA, J/AOJ D 0345, 0005,1611,2100 ; 3728 I, SJCGE, J/AOJ D 0346, 0006,1611,2100 ; 3729 I, SJCN, J/AOJ D 0347, 0007,1611,2100 ; 3730 I, SJCG, J/AOJ ; 3731 .UCODE ; 3732 ; 3733 1611: U 1611, 0210,0551,0705,0274,4463,7702,0000,0001,0001 ; 3734 AOJ: [BR]_AC+1, AD FLAGS, 4T, JUMP DISP ; 3735 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 89 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 CONDITIONAL JUMPS -- JUMP, AOJ, SOJ, AOBJ ; 3736 ; 3737 .DCODE D 0360, 0000,1542,3000 ; 3738 360: I-PF, SJC-, J/SOJ D 0361, 0001,1542,2100 ; 3739 I, SJCL, J/SOJ D 0362, 0002,1542,2100 ; 3740 I, SJCE, J/SOJ D 0363, 0003,1542,2100 ; 3741 I, SJCLE, J/SOJ D 0364, 0004,1542,2100 ; 3742 I, SJCA, J/SOJ D 0365, 0005,1542,2100 ; 3743 I, SJCGE, J/SOJ D 0366, 0006,1542,2100 ; 3744 I, SJCN, J/SOJ D 0367, 0007,1542,2100 ; 3745 I, SJCG, J/SOJ ; 3746 .UCODE ; 3747 ; 3748 1542: U 1542, 0210,2551,0705,0274,4463,7702,4000,0001,0001 ; 3749 SOJ: [BR]_AC-1, AD FLAGS, 4T, JUMP DISP ; 3750 ; 3751 .DCODE D 0252, 0005,1547,2100 ; 3752 252: I, SJCGE, J/AOBJ D 0253, 0001,1547,2100 ; 3753 I, SJCL, J/AOBJ ; 3754 .UCODE ; 3755 ; 3756 1547: ; 3757 AOBJ: [BR]_AC+1000001, ;ADD 1 TO BOTH HALF WORDS ; 3758 INH CRY18, 3T, ;NO CARRY INTO LEFT HALF U 1547, 0210,0551,1505,0274,4403,7701,0000,0000,0000 ; 3759 JUMP DISP ;HANDLE EITHER AOBJP OR AOBJN ; 3760 ; 3761 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 90 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 AC DECODE JUMPS -- JRST, JFCL ; 3762 .TOC "AC DECODE JUMPS -- JRST, JFCL" ; 3763 ; 3764 .DCODE D 0254, 0000,1520,6000 ; 3765 254: I,VMA/0, AC DISP, J/JRST ;DISPATCHES TO 1 OF 16 ; 3766 ; PLACES ON AC BITS D 0255, 0000,1540,2100 ; 3767 I, J/JFCL ; 3768 .UCODE ; 3769 ; 3770 ;JRST DISPATCHES TO ONE OF 16 LOC'NS ON AC BITS ; 3771 ; 3772 =0000 ; 3773 1520: U 1520, 0070,3441,0301,4170,4156,4700,0200,0014,0012 ; 3774 JRST: JUMPA ;(0) JRST 0, U 1521, 0070,3441,0301,4170,4156,4700,0200,0014,0012 ; 3775 1521: JUMPA ;(1) PORTAL IS SAME AS JRST ; 3776 1522: VMA_[PC]-1, START READ, ;(2) JRSTF U 1522, 0064,1113,0701,4170,4007,0700,4200,0004,0012 ; 3777 J/JRSTF U 1523, 2605,4551,0202,4374,0007,0700,0000,0077,7740 ; 3778 1523: UUO ;(3) U 1524, 0200,4443,0000,4174,4007,0340,0000,0000,0000 ; 3779 1524: SKIP KERNEL, J/HALT ;(4) HALT ; 3780 1525: ; 3781 XJRSTF0: VMA_[AR], START READ, ;(5) XJRSTF U 1525, 2555,3443,0300,4174,4007,0700,0200,0004,0012 ; 3782 J/XJRSTF U 1526, 0240,4443,0000,4174,4007,0340,0000,0000,0000 ; 3783 1526: SKIP KERNEL, J/XJEN ;(6) XJEN U 1527, 0204,4443,0000,4174,4007,0340,0000,0000,0000 ; 3784 1527: SKIP KERNEL, J/XPCW ;(7) XPCW ; 3785 1530: VMA_[PC]-1, START READ, ;(10) U 1530, 0202,1113,0701,4170,4007,0040,4200,0004,0012 ; 3786 SKIP IO LEGAL, J/JRST10 U 1531, 2605,4551,0202,4374,0007,0700,0000,0077,7740 ; 3787 1531: UUO ;(11) ; 3788 1532: VMA_[PC]-1, START READ, ;(12) JEN U 1532, 0220,1113,0701,4170,4007,0040,4200,0004,0012 ; 3789 SKIP IO LEGAL, J/JEN U 1533, 2605,4551,0202,4374,0007,0700,0000,0077,7740 ; 3790 1533: UUO ;(13) U 1534, 0206,4443,0000,4174,4007,0340,0000,0000,0000 ; 3791 1534: SKIP KERNEL, J/SFM ;(14) SFM U 1535, 2605,4551,0202,4374,0007,0700,0000,0077,7740 ; 3792 1535: UUO ;(15) U 1536, 2605,4551,0202,4374,0007,0700,0000,0077,7740 ; 3793 1536: UUO ;(16) U 1537, 2605,4551,0202,4374,0007,0700,0000,0077,7740 ; 3794 1537: UUO ;(17) ; 3795 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 91 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 AC DECODE JUMPS -- JRST, JFCL ; 3796 ; 3797 =0* ; 3798 JRSTF: MEM READ, ;WAIT FOR DATA ; 3799 [HR]_MEM, ;STICK IN HR ; 3800 LOAD INST EA, ;LOAD @ AND XR U 0064, 2551,3771,0002,4365,5217,0700,0210,0000,0002 ; 3801 CALL [JRST0] ;COMPUTE EA AGAIN U 0066, 0070,3441,0301,4170,4156,4700,0200,0014,0012 ; 3802 JUMPA ;JUMP ; 3803 U 2551, 0110,4443,0000,2174,4006,6700,0000,0000,0000 ; 3804 JRST0: EA MODE DISP ;WHAT TYPE OF EA? ; 3805 =100* ; 3806 .IF/1PROC ; 3807 [BR]_XR, ;INDEXED ; 3808 LOAD FLAGS, ;GET FLAGS FROM XR ; 3809 UPDATE USER, ;ALLOW USER TO SET U 0110, 2553,3771,0005,2274,4467,0700,0000,0001,0004 ; 3810 J/JRST2 ; 3811 ; 3812 [BR]_[HR], ;PLAIN ; 3813 LOAD FLAGS, ;LOAD FLAGS FROM INST ; 3814 UPDATE USER, ;ALLOW USER TO SET U 0112, 2553,3441,0205,4174,4467,0700,0000,0001,0004 ; 3815 J/JRST2 ; 3816 .IFNOT/1PROC ; 3817 READ XR, ;INDEXED ; 3818 LOAD FLAGS, ;GET FLAGS FROM XR ; 3819 UPDATE USER, ;ALLOW USER TO SET ; 3820 RETURN [2] ;ALL DONE ; 3821 ; 3822 READ [HR], ;PLAIN ; 3823 LOAD FLAGS, ;LOAD FLAGS FROM INST ; 3824 UPDATE USER, ;ALLOW USER TO SET ; 3825 RETURN [2] ;RETURN ; 3826 .ENDIF/1PROC ; 3827 [HR]_[HR]+XR, ;BOTH ; 3828 LOAD VMA, ;FETCH IND WORD ; 3829 START READ, ;START MEM CYCLE U 0114, 2552,0551,0202,2270,4007,0700,0200,0004,0012 ; 3830 J/JRST1 ;CONTINUE BELOW ; 3831 ; 3832 VMA_[HR], ;INDIRECT ; 3833 START READ, ;FETCH IND WORD ; 3834 PXCT EA, ;SETUP PXCT STUFF U 0116, 2552,3443,0200,4174,4007,0700,0200,0004,0112 ; 3835 J/JRST1 ;CONTINUE BELOW ; 3836 ; 3837 JRST1: MEM READ, ;WAIT FOR DATA ; 3838 [HR]_MEM, ;LOAD THE HR ; 3839 LOAD INST EA, ;LOAD @ AND XR U 2552, 2551,3771,0002,4365,5217,0700,0200,0000,0002 ; 3840 J/JRST0 ;LOOP BACK ; 3841 ; 3842 .IF/1PROC ;BR HAS PC FLAGS THAT WERE JUST LOADED U 2553, 0166,4553,0500,4374,4007,0321,0000,0000,1000 ; 3843 JRST2: TL [BR], OIPBIT/1 ;ARE WE TRYING TO ONE-PROCEED? U 0166, 0002,3551,1313,4374,0004,1700,0000,0000,1000 ; 3844 =0 [FLG]_[FLG].OR.#, FLG.1PROC/1, HOLD RIGHT, RETURN [2] U 0167, 0002,4443,0000,4174,4004,1700,0000,0000,0000 ; 3845 RETURN [2] ; 3846 .ENDIF/1PROC ; 3847 ; 3848 =0 U 0200, 2605,4551,0202,4374,0007,0700,0000,0077,7740 ; 3849 HALT: UUO ;USER MODE U 0201, 2554,3441,0301,4174,4007,0700,0000,0000,0000 ; 3850 [PC]_[AR] ;EXEC MODE--CHANGE PC U 2554, 2404,4751,1217,4374,4007,0700,0000,0000,0001 ; 3851 HALT [HALT] ;HALT INSTRUCTION ; 3852 ; 3853 =0 U 0202, 2605,4551,0202,4374,0007,0700,0000,0077,7740 ; 3854 JRST10: UUO U 0203, 0223,4443,0000,4174,4007,0700,0000,0000,0000 ; 3855 J/JEN2 ;DISMISS INTERRUPT ; 3856 =0000 U 0220, 2605,4551,0202,4374,0007,0700,0000,0077,7740 ; 3857 JEN: UUO ; FLAGS ; 3858 MEM READ, ; 3859 [HR]_MEM, ;GET INST ; 3860 LOAD INST EA, ;LOAD XR & @ U 0221, 2551,3771,0002,4365,5217,0700,0210,0000,0002 ; 3861 CALL [JRST0] ;COMPUTE FLAGS ; 3862 =0011 U 0223, 2340,4553,1400,4374,4007,0331,0010,0007,7400 ; 3863 JEN2: DISMISS ;DISMISS INTERRUPT U 0227, 3473,3770,1416,4344,4007,0700,0010,0000,0000 ; 3864 =0111 CALL LOAD PI ;RELOAD PI HARDWARE U 0237, 0070,3441,0301,4170,4156,4700,0200,0014,0012 ; 3865 =1111 JUMPA ;GO JUMP ; 3866 = ; 3867 ; 3868 1540: ; 3869 JFCL: JFCL FLAGS, ;ALL DONE IN HARDWARE ; 3870 SKIP JFCL, ;SEE IF SKIPS ; 3871 3T, ;ALLOW TIME U 1540, 0162,4443,0000,4174,4467,0551,0000,0001,0010 ; 3872 J/JUMP- ;JUMP IF WE SHOULD ; 3873 ; 3874 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 92 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 EXTENDED ADDRESSING INSTRUCTIONS ; 3875 .TOC "EXTENDED ADDRESSING INSTRUCTIONS" ; 3876 ; 3877 =0000 U 0240, 2605,4551,0202,4374,0007,0700,0000,0077,7740 ; 3878 XJEN: UUO ;HERE IF USER MODE U 0241, 2340,4553,1400,4374,4007,0331,0010,0007,7400 ; 3879 DISMISS ;CLEAR HIGHEST INTERRUPT U 0245, 0255,3333,0012,4174,4437,0700,0000,0000,0000 ; 3880 =0101 READ [MASK], LOAD PI ;NO MORE INTERRUPTS ; 3881 =1101 ABORT MEM CYCLE, ;AVOID INTERRUPT PAGE FAIL U 0255, 1525,4223,0000,4364,4277,0700,0200,0000,0010 ; 3882 J/XJRSTF0 ;START READING FLAG WORD ; 3883 = ; 3884 U 2555, 2556,3771,0005,4365,5007,0700,0200,0000,0002 ; 3885 XJRSTF: MEM READ, [BR]_MEM ;PUT FLAGS IN BR ; 3886 [AR]_[AR]+1, ;INCREMENT ADDRESS ; 3887 LOAD VMA, ;PUT RESULT IN VMA U 2556, 2557,0111,0703,4174,4007,0700,0200,0004,0012 ; 3888 START READ ;START MEMORY ; 3889 MEM READ, [PC]_MEM, ;PUT DATA IN PC U 2557, 2560,3771,0001,4361,5007,0700,0200,0000,0002 ; 3890 HOLD LEFT ;IGNORE SECTION NUMBER ; 3891 READ [BR], LOAD FLAGS, ;LOAD NEW FLAGS U 2560, 2561,3333,0005,4174,4467,0700,0000,0001,0004 ; 3892 UPDATE USER ;SET BUT DON'T CLEAR USER FLAG ; 3893 PISET: [FLG]_[FLG].AND.NOT.#, ;CLEAR PI CYCLE ; 3894 FLG.PI/1, HOLD RIGHT, ;RELOAD PI HARDWARE U 2561, 2301,5551,1313,4374,0007,0700,0000,0001,0000 ; 3895 J/PIEXIT ; IN CASE THIS IS AN ; 3896 ; INTERRUPT INSTRUCTION ; 3897 ; 3898 =0 U 0204, 2605,4551,0202,4374,0007,0700,0000,0077,7740 ; 3899 XPCW: UUO ;USER MODE U 0205, 0230,4521,1205,4074,4007,0700,0000,0000,0000 ; 3900 [BR]_FLAGS ;PUT FLAGS IN BR ; 3901 =0*0 ; 3902 PIXPCW: VMA_[AR], START WRITE, ;STORE FLAGS U 0230, 3554,3443,0300,4174,4007,0700,0210,0003,0012 ; 3903 CALL [STOBR] ;PUT BR IN MEMORY ; 3904 =1*0 VMA_[AR]+1, LOAD VMA, ; 3905 START WRITE, ;PREPEARE TO STORE PC U 0234, 3555,0111,0703,4170,4007,0700,0210,0003,0012 ; 3906 CALL [STOPC] ;PUT PC IN MEMORY ; 3907 =1*1 [AR]_[AR]+1, ;DO NEW PC PART U 0235, 2555,0111,0703,4174,4007,0700,0200,0004,0002 ; 3908 START READ, J/XJRSTF ; 3909 = ; 3910 ; 3911 =0 U 0206, 2605,4551,0202,4374,0007,0700,0000,0077,7740 ; 3912 SFM: UUO U 0207, 2562,3443,0300,4174,4007,0700,0200,0003,0012 ; 3913 VMA_[AR], START WRITE ;STORE FLAGS U 2562, 0037,4521,1203,4074,4007,0700,0000,0000,0000 ; 3914 [AR]_FLAGS, J/STORE ;STORE AND EXIT ; 3915 ; 3916 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 93 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 XCT, XCTR, XCTRI ; 3917 .TOC "XCT, XCTR, XCTRI" ; 3918 ; 3919 .DCODE ; 3920 .IF/ITS D 0102, 0000,1662,2100 ; 3921 102: I, J/XCTRI D 0103, 0000,1663,2100 ; 3922 I, J/XCTR ; 3923 .ENDIF/ITS D 0256, 0000,1541,1100 ; 3924 256: R, J/XCT ;OPERAND FETCHED AS DATA ; 3925 .UCODE ; 3926 ; 3927 .IF/ITS ; 3928 1662: U 1662, 0224,4443,0000,4174,4007,0340,0000,0000,0000 ; 3929 XCTRI: SKIP KERNEL, J/XCTR1 ; 3930 1663: U 1663, 0224,4443,0000,4174,4007,0340,0000,0000,0000 ; 3931 XCTR: SKIP KERNEL, J/XCTR1 ; 3932 =0 U 0224, 2605,4551,0202,4374,0007,0700,0000,0077,7740 ; 3933 XCTR1: UUO U 0225, 2563,3333,0002,4174,4167,0700,0200,0004,0002 ; 3934 READ [HR], LOAD PXCT, START READ U 2563, 1541,3771,0003,4365,5007,0700,0200,0000,0002 ; 3935 = MEM READ, [AR]_MEM, J/XCT ; 3936 ; 3937 1541: ; 3938 XCT: [HR]_[AR], ;STUFF INTO HR ; 3939 DBUS/DP, ;PLACE ON DBUS FOR IR ; 3940 LOAD INST, ;LOAD IR, AC, XR, ETC. U 1541, 2564,3441,0302,4174,4617,0700,0000,0000,0100 ; 3941 PXCT/E1 ;ALLOW XR TO BE PREVIOUS ; 3942 XCT1: WORK[YSAVE]_[HR] CLR LH,;SAVE FOR IO INSTRUCTIONS U 2564, 0722,4713,1202,7174,4007,0700,0400,0000,0422 ; 3943 J/XCT2 ;GO EXECUTE IT ; 3944 .IFNOT/ITS ; 3945 1541: ; 3946 XCT: SKIP KERNEL ;SEE IF MAY BE PXCT ; 3947 =0 ; 3948 XCT1A: [HR]_[AR], ;STUFF INTO HR ; 3949 DBUS/DP, ;PLACE ON DBUS FOR IR ; 3950 LOAD INST, ;LOAD IR, AC, XR, ETC. ; 3951 PXCT/E1, ;ALLOW XR TO BE PREVIOUS ; 3952 J/XCT1 ;CONTINUE BELOW ; 3953 READ [HR], ;LOAD PXCT FLAGS ; 3954 LOAD PXCT, ; .. ; 3955 J/XCT1A ;CONTINUE WITH NORMAL FLOW ; 3956 ; 3957 XCT1: WORK[YSAVE]_[HR] CLR LH,;SAVE FOR IO INSTRUCTIONS ; 3958 J/XCT2 ;GO EXECUTE IT ; 3959 .ENDIF/ITS ; 3960 ; 3961 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 94 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 STACK INSTRUCTIONS -- PUSHJ, PUSH, POP, POPJ ; 3962 .TOC "STACK INSTRUCTIONS -- PUSHJ, PUSH, POP, POPJ" ; 3963 ; 3964 .DCODE D 0260, 0000,1544,2100 ; 3965 260: I, B/0, J/PUSHJ D 0261, 0002,1543,3100 ; 3966 IR, B/2, J/PUSH D 0262, 0002,1545,2100 ; 3967 I, B/2, J/POP D 0263, 0000,1546,2100 ; 3968 I, J/POPJ ; 3969 .UCODE ; 3970 ; 3971 ;ALL START WITH E IN AR ; 3972 1543: ; 3973 PUSH: MEM READ, ;PUT MEMOP IN BR U 1543, 2565,3771,0005,4365,5007,0700,0200,0000,0002 ; 3974 [BR]_MEM ; .. ; 3975 PUSH1: [ARX]_AC+1000001, ;BUMP BOTH HALVES OF AC ; 3976 INH CRY18, ;NO CARRY ; 3977 LOAD VMA, ;START TO STORE ITEM ; 3978 START WRITE, ;START MEM CYCLE ; 3979 PXCT STACK WORD, ;THIS IS THE STACK DATA WORD ; 3980 3T, ;ALLOW TIME ; 3981 SKIP CRY0, ;GO TO STMAC, SKIP IF PDL OV U 2565, 0232,0551,1504,0274,4407,0311,0200,0003,0712 ; 3982 J/STMAC ; .. ; 3983 ; 3984 1544: ; 3985 PUSHJ: [BR]_PC WITH FLAGS, ;COMPUTE UPDATED FLAGS ; 3986 CLR FPD, ;CLEAR FIRST-PART-DONE U 1544, 2565,3741,0105,4074,4467,0700,0000,0005,0000 ; 3987 J/PUSH1 ; AND JOIN PUSH CODE ; 3988 ; 3989 =0 ; 3990 STMAC: MEM WRITE, ;WAIT FOR MEMORY ; 3991 MEM_[BR], ;STORE BR ON STACK ; 3992 B DISP, ;SEE IF PUSH OR PUSHJ U 0232, 0250,3333,0005,4175,5003,7701,0200,0000,0002 ; 3993 J/JSTAC ;BELOW ; 3994 ;WE MUST STORE THE STACK WORD PRIOR TO SETTING PDL OV IN CASE OF ; 3995 ; PAGE FAIL. ; 3996 MEM WRITE, ;WAIT FOR MEMORY U 0233, 2566,3333,0005,4175,5007,0701,0200,0000,0002 ; 3997 MEM_[BR] ;STORE BR ; 3998 SETPDL: SET PDL OV, ;OVERFLOW ; 3999 B DISP, ;SEE IF PUSH OR PUSHJ U 2566, 0250,4443,0000,4174,4463,7700,0000,0001,2000 ; 4000 J/JSTAC ;BELOW ; 4001 ; 4002 =00 ; 4003 JSTAC: [PC]_[AR], ;PUSHJ--LOAD PC ; 4004 LOAD VMA, ;LOAD ADDRESS U 0250, 0251,3441,0301,4174,4007,0700,0200,0014,0012 ; 4005 FETCH ;GET NEXT INST ; 4006 JSTAC1: AC_[ARX], ;STORE BACK STACK PTR U 0251, 0060,3440,0404,0174,4156,4700,0400,0000,0000 ; 4007 NEXT INST ;DO NEXT INST ; 4008 AC_[ARX], ;UPDATE STACK POINTER U 0252, 1400,3440,0404,0174,4007,0700,0400,0000,0000 ; 4009 J/DONE ;DO NEXT INST ; 4010 = ; 4011 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 95 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 STACK INSTRUCTIONS -- PUSHJ, PUSH, POP, POPJ ; 4012 ; 4013 1545: ; 4014 POP: [ARX]_AC, ;GET POINTER ; 4015 LOAD VMA, ;ADDRESS OF STACK WORD ; 4016 START READ, 3T, ;START CYCLE U 1545, 2567,3771,0004,0276,6007,0701,0200,0004,0712 ; 4017 PXCT STACK WORD ;FOR PXCT ; 4018 ; 4019 MEM READ, ;LOAD BR (QUIT IF PAGE FAIL) U 2567, 2570,3771,0005,4365,5007,0700,0200,0000,0002 ; 4020 [BR]_MEM ;STACK WORD TO BR ; 4021 ; 4022 [ARX]_[ARX]+#, ;UPDATE POINTER ; 4023 #/777777, ;-1 IN EACH HALF ; 4024 INH CRY18, 3T, ;BUT NO CARRY U 2570, 0242,0551,0404,4374,4407,0311,0000,0077,7777 ; 4025 SKIP CRY0 ;SEE IF OVERFLOW ; 4026 ; 4027 =0 VMA_[AR], ;EFFECTIVE ADDRESS ; 4028 PXCT DATA, ;FOR PXCT ; 4029 START WRITE, ;WHERE TO STORE RESULT U 0242, 2572,3443,0300,4174,4007,0700,0200,0003,0312 ; 4030 J/POPX1 ;OVERFLOW ; 4031 ; 4032 VMA_[AR], ;EFFECTIVE ADDRESS ; 4033 PXCT DATA, ;FOR PXCT U 0243, 2571,3443,0300,4174,4007,0700,0200,0003,0312 ; 4034 START WRITE ;WHERE TO STORE RESULT ; 4035 ; 4036 MEM WRITE, ;WAIT FOR MEM ; 4037 MEM_[BR], ;STORE BR ; 4038 B DISP, ;POP OR POPJ? U 2571, 0250,3333,0005,4175,5003,7701,0200,0000,0002 ; 4039 J/JSTAC ;STORE POINTER ; 4040 ; 4041 ; 4042 POPX1: MEM WRITE, ;WAIT FOR MEMORY ; 4043 MEM_[BR], ;STORE BR U 2572, 2566,3333,0005,4175,5007,0701,0200,0000,0002 ; 4044 J/SETPDL ;GO SET PDL OV ; 4045 ; 4046 1546: ; 4047 POPJ: [ARX]_AC, ;GET POINTER ; 4048 LOAD VMA, ;POINT TO STACK WORD ; 4049 PXCT STACK WORD, 3T, ;FOR PXCT U 1546, 2573,3771,0004,0276,6007,0701,0200,0004,0712 ; 4050 START READ ;START READ ; 4051 [ARX]_[ARX]+#, ;UPDATE POINTER ; 4052 #/777777, ;-1 IN BOTH HALFS ; 4053 INH CRY18, 3T, ;INHIBIT CARRY 18 U 2573, 0246,0551,0404,4374,4407,0311,0000,0077,7777 ; 4054 SKIP CRY0 ;SEE IF OVERFLOW U 0246, 0247,4443,0000,4174,4467,0700,0000,0001,2000 ; 4055 =0 SET PDL OV ;SET OVERFLOW ; 4056 MEM READ, [PC]_MEM, ;STICK DATA IN PC ; 4057 HOLD LEFT, ;NO FLAGS U 0247, 0251,3771,0001,4361,5007,0700,0200,0000,0002 ; 4058 J/JSTAC1 ;STORE POINTER ; 4059 ; 4060 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 96 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 STACK INSTRUCTIONS -- ADJSP ; 4061 .TOC "STACK INSTRUCTIONS -- ADJSP" ; 4062 ; 4063 .DCODE D 0105, 0000,1551,3000 ; 4064 105: I-PF, B/0, J/ADJSP ; 4065 .UCODE ; 4066 ; 4067 1551: ; 4068 ADJSP: [AR]_[AR] SWAP, ;MAKE 2 COPIES OF RH U 1551, 2574,3770,0303,4344,0007,0700,0000,0000,0000 ; 4069 HOLD RIGHT ; 4070 [BR]_AC, ;READ AC, SEE IF MINUS ; 4071 3T, U 2574, 0256,3771,0005,0276,6007,0521,0000,0000,0000 ; 4072 SKIP DP0 ; 4073 =0 AC_[BR]+[AR], ;UPDATE AC ; 4074 INH CRY18, ;NO CARRY ; 4075 SKIP DP0, ;SEE IF STILL OK ; 4076 3T, ;ALLOW TIME U 0256, 0260,0113,0503,0174,4407,0521,0400,0000,0000 ; 4077 J/ADJSP1 ;TEST FOR OFLO ; 4078 AC_[BR]+[AR], ;UPDATE AC ; 4079 INH CRY18, ;NO CARRY ; 4080 SKIP DP0, ;SEE IF STILL MINUS ; 4081 3T, ;ALLOW TIME FOR SKIP U 0257, 0262,0113,0503,0174,4407,0521,0400,0000,0000 ; 4082 J/ADJSP2 ;CONTINUE BELOW ; 4083 ; 4084 =0 U 0260, 0060,4443,0000,4174,4156,4700,0000,0000,0000 ; 4085 ADJSP1: NEXT INST ;NO OVERFLOW ; 4086 SET PDL OV, ;SET PDL OV U 0261, 0127,4443,0000,4174,4467,0700,0000,0001,2000 ; 4087 J/NIDISP ;GO DO NICOND DISP ; 4088 ; 4089 =0 ; 4090 ADJSP2: SET PDL OV, ;SET PDL OV U 0262, 0127,4443,0000,4174,4467,0700,0000,0001,2000 ; 4091 J/NIDISP ;GO DO NICOND DISP U 0263, 0060,4443,0000,4174,4156,4700,0000,0000,0000 ; 4092 NEXT INST ;NO OVERFLOW ; 4093 ; 4094 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 97 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 SUBROUTINE CALL/RETURN -- JSR, JSP, JSA, JRA ; 4095 .TOC "SUBROUTINE CALL/RETURN -- JSR, JSP, JSA, JRA" ; 4096 ; 4097 .DCODE D 0264, 0000,1552,2100 ; 4098 264: I, J/JSR D 0265, 0000,1550,2100 ; 4099 I, J/JSP D 0266, 0000,1554,2100 ; 4100 I, J/JSA D 0267, 0000,1555,2100 ; 4101 I, J/JRA ; 4102 .UCODE ; 4103 ; 4104 1550: U 1550, 2575,3741,0105,4074,4007,0700,0000,0000,0000 ; 4105 JSP: [BR]_PC WITH FLAGS ;GET PC WITH FLAGS ; 4106 CLR FPD, ;CLEAR FIRST-PART-DONE ; 4107 AC_[BR], ;STORE FLAGS U 2575, 0164,3440,0505,0174,4467,0700,0400,0005,0000 ; 4108 J/JUMPA ;GO JUMP ; 4109 ; 4110 1552: ; 4111 JSR: [BR]_PC WITH FLAGS, ;GET PC WITH FLAGS U 1552, 2576,3741,0105,4074,4467,0700,0000,0005,0000 ; 4112 CLR FPD ;CLEAR FIRST-PART-DONE ; 4113 VMA_[AR], ;EFFECTIVE ADDRESS U 2576, 2577,3443,0300,4174,4007,0700,0200,0003,0012 ; 4114 START WRITE ;STORE OLD PC WORD ; 4115 MEM WRITE, ;WAIT FOR MEMORY U 2577, 2600,3333,0005,4175,5007,0701,0200,0000,0002 ; 4116 MEM_[BR] ;STORE ; 4117 [PC]_[AR]+1000001, ;PC _ E+1 ; 4118 HOLD LEFT, ;NO JUNK IN LEFT ; 4119 3T, ;ALLOW TIME FOR DBM U 2600, 1400,0551,0301,4370,4007,0701,0000,0000,0001 ; 4120 J/DONE ;[127] START AT E+1 ; 4121 ;[127] MUST NICOND TO CLEAR TRAP CYCLE ; 4122 ; 4123 ; 4124 1554: ; 4125 JSA: [BR]_[AR], ;SAVE E U 1554, 2601,3441,0305,4174,4007,0700,0200,0003,0002 ; 4126 START WRITE ;START TO STORE U 2601, 0270,3770,0304,4344,4007,0700,0000,0000,0000 ; 4127 [ARX]_[AR] SWAP ;ARX LEFT _ E ; 4128 =0*0 [AR]_AC, ;GET OLD AC U 0270, 2743,3771,0003,0276,6007,0700,0010,0000,0000 ; 4129 CALL [IBPX] ;SAVE AR IN MEMORY ; 4130 =1*0 [ARX]_[PC], ;ARX NOW HAS E,,PC ; 4131 HOLD LEFT, ; .. U 0274, 3560,3441,0104,4170,4007,0700,0010,0000,0000 ; 4132 CALL [AC_ARX] ;GO PUT ARX IN AC ; 4133 =1*1 [PC]_[BR]+1000001, ;NEW PC ; 4134 3T, ;ALLOW TIME ; 4135 HOLD LEFT, ;NO JUNK IN PC LEFT U 0275, 1400,0551,0501,4370,4007,0701,0000,0000,0001 ; 4136 J/DONE ;[127] START AT E+1 ; 4137 ;[127] MUST NICOND TO CLEAR TRAP CYCLE ; 4138 = ; 4139 ; 4140 1555: U 1555, 2602,3771,0005,0276,6007,0700,0000,0000,0000 ; 4141 JRA: [BR]_AC ;GET AC U 2602, 2603,3770,0505,4344,4007,0700,0000,0000,0000 ; 4142 [BR]_[BR] SWAP ;OLD E IN BR RIGHT ; 4143 VMA_[BR], ;LOAD VMA U 2603, 2604,3443,0500,4174,4007,0700,0200,0004,0012 ; 4144 START READ ;FETCH SAVED AC ; 4145 MEM READ, ;WAIT FOR MEMORY ; 4146 [BR]_MEM, ;LOAD BR WITH SAVE AC U 2604, 0214,3771,0005,4365,5007,0700,0200,0000,0002 ; 4147 J/JMPA ;GO JUMP ; 4148 ; 4149 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 98 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 ILLEGAL INSTRUCTIONS AND UUO'S ; 4150 .TOC "ILLEGAL INSTRUCTIONS AND UUO'S" ; 4151 ;LUUO'S TRAP TO CURRENT CONTEXT ; 4152 ; 4153 .DCODE D 0030, 0000,1557,2100 ; 4154 030: I, B/0, J/LUUO D 0031, 0001,1557,2100 ; 4155 I, B/1, J/LUUO D 0032, 0002,1557,2100 ; 4156 I, B/2, J/LUUO D 0033, 0003,1557,2100 ; 4157 I, B/3, J/LUUO D 0034, 0004,1557,2100 ; 4158 I, B/4, J/LUUO D 0035, 0005,1557,2100 ; 4159 I, B/5, J/LUUO D 0036, 0006,1557,2100 ; 4160 I, B/6, J/LUUO D 0037, 0007,1557,2100 ; 4161 I, B/7, J/LUUO ; 4162 ; 4163 ;MONITOR UUO'S -- TRAP TO EXEC ; 4164 D 0040, 0000,1556,2100 ; 4165 040: I, J/MUUO ;CALL D 0041, 0000,1556,2100 ; 4166 I, J/MUUO ;INIT D 0042, 0000,1556,2100 ; 4167 I, J/MUUO D 0043, 0000,1556,2100 ; 4168 I, J/MUUO D 0044, 0000,1556,2100 ; 4169 I, J/MUUO D 0045, 0000,1556,2100 ; 4170 I, J/MUUO D 0046, 0000,1556,2100 ; 4171 I, J/MUUO D 0047, 0000,1556,2100 ; 4172 I, J/MUUO ;CALLI D 0050, 0000,1556,2100 ; 4173 I, J/MUUO ;OPEN D 0051, 0000,1556,2100 ; 4174 I, J/MUUO ;TTCALL D 0052, 0000,1556,2100 ; 4175 I, J/MUUO D 0053, 0000,1556,2100 ; 4176 I, J/MUUO D 0054, 0000,1556,2100 ; 4177 I, J/MUUO D 0055, 0000,1556,2100 ; 4178 I, J/MUUO ;RENAME D 0056, 0000,1556,2100 ; 4179 I, J/MUUO ;IN D 0057, 0000,1556,2100 ; 4180 I, J/MUUO ;OUT D 0060, 0000,1556,2100 ; 4181 I, J/MUUO ;SETSTS D 0061, 0000,1556,2100 ; 4182 I, J/MUUO ;STATO D 0062, 0000,1556,2100 ; 4183 I, J/MUUO ;GETSTS D 0063, 0000,1556,2100 ; 4184 I, J/MUUO ;STATZ D 0064, 0000,1556,2100 ; 4185 I, J/MUUO ;INBUF D 0065, 0000,1556,2100 ; 4186 I, J/MUUO ;OUTBUF D 0066, 0000,1556,2100 ; 4187 I, J/MUUO ;INPUT D 0067, 0000,1556,2100 ; 4188 I, J/MUUO ;OUTPUT D 0070, 0000,1556,2100 ; 4189 I, J/MUUO ;CLOSE D 0071, 0000,1556,2100 ; 4190 I, J/MUUO ;RELEAS D 0072, 0000,1556,2100 ; 4191 I, J/MUUO ;MTAPE D 0073, 0000,1556,2100 ; 4192 I, J/MUUO ;UGETF D 0074, 0000,1556,2100 ; 4193 I, J/MUUO ;USETI D 0075, 0000,1556,2100 ; 4194 I, J/MUUO ;USETO D 0076, 0000,1556,2100 ; 4195 I, J/MUUO ;LOOKUP D 0077, 0000,1556,2100 ; 4196 I, J/MUUO ;ENTER ; 4197 ; 4198 ;EXPANSION OPCODES ; 4199 D 0100, 0000,1556,2100 ; 4200 100: I, J/UUO ;UJEN D 0101, 0000,1661,2100 ; 4201 I, J/UUO101 ; 4202 .IFNOT/ITS ; 4203 I, J/UUO102 ;XCTRI in ITS ; 4204 I, J/UUO103 ;XCTR in ITS ; 4205 .ENDIF/ITS ; 4206 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 99 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 ILLEGAL INSTRUCTIONS AND UUO'S ; 4207 ; 4208 ;RESERVED OPCODES ; 4209 D 0000, 0000,1556,2100 ; 4210 000: I, J/UUO D 0104, 0000,1664,2100 ; 4211 104: I, J/JSYS ;JSYS D 0106, 0000,1666,2100 ; 4212 106: I, J/UUO106 D 0107, 0000,1667,2100 ; 4213 I, J/UUO107 D 0130, 0000,1660,2100 ; 4214 130: I, B/0, J/FP-LONG ;UFA D 0131, 0001,1660,2100 ; 4215 I, B/1, J/FP-LONG ;DFN D 0141, 0002,1660,2100 ; 4216 141: I, B/2, J/FP-LONG ;FADL D 0151, 0003,1660,2100 ; 4217 151: I, B/3, J/FP-LONG ;FSBL D 0161, 0004,1660,2100 ; 4218 161: I, B/4, J/FP-LONG ;FMPL D 0171, 0005,1660,2100 ; 4219 171: I, B/5, J/FP-LONG ;FDVL ; 4220 .IFNOT/CIRC ; 4221 247: I, J/UUO247 ;RESERVED ; 4222 .ENDIF/CIRC ; 4223 .UCODE ; 4224 ; 4225 1661: U 1661, 2605,4551,0202,4374,0007,0700,0000,0077,7740 ; 4226 UUO101: UUO ; 4227 ; 4228 .IFNOT/ITS ; 4229 1662: ; 4230 UUO102: UUO ;XCTRI in ITS ; 4231 1663: ; 4232 UUO103: UUO ;XCTR in ITS ; 4233 .ENDIF/ITS ; 4234 ; 4235 1664: U 1664, 2605,4551,0202,4374,0007,0700,0000,0077,7740 ; 4236 JSYS: UUO ; 4237 1666: U 1666, 2605,4551,0202,4374,0007,0700,0000,0077,7740 ; 4238 UUO106: UUO ; 4239 1667: U 1667, 2605,4551,0202,4374,0007,0700,0000,0077,7740 ; 4240 UUO107: UUO ; 4241 1660: U 1660, 2605,4551,0202,4374,0007,0700,0000,0077,7740 ; 4242 FP-LONG:UUO ; 4243 .IFNOT/CIRC ; 4244 1665: ; 4245 UUO247: UUO ; 4246 .ENDIF/CIRC ; 4247 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 100 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 ILLEGAL INSTRUCTIONS AND UUO'S ; 4248 ; 4249 ;HERE FOR UUO'S WHICH TRAP TO EXEC ; 4250 1556: ; 4251 UUO: ;THIS TAG IS USED FOR ILLEGAL THINGS WHICH DO UUO TRAPS ; 4252 MUUO: ;THIS TAG IS USED FOR MONITOR CALL INSTRUCTIONS ; 4253 [HR]_[HR].AND.#, ;MASK OUT @ AND XR ; 4254 #/777740, ;MASK U 1556, 2605,4551,0202,4374,0007,0700,0000,0077,7740 ; 4255 HOLD RIGHT ;KEEP RIGHT ; 4256 ;THE UUO MACRO DOES THE ABOVE INSTRUCTION AND GOES TO UUOGO U 2605, 0264,4751,1204,4374,4007,0700,0000,0000,0424 ; 4257 UUOGO: [ARX]_0 XWD [424] ;HERE FROM UUO MACRO ; 4258 ;GET OFFSET TO UPT ; 4259 =0 [ARX]_[ARX]+[UBR], ;ADDRESS OF MUUO WORD U 0264, 3547,0111,1104,4174,4007,0700,0010,0000,0000 ; 4260 CALL [ABORT] ;STOP MEMORY ; 4261 READ [EBR], ;KL PAGING U 0265, 0266,3333,0010,4174,4007,0520,0000,0000,0000 ; 4262 SKIP DP0 ; ?? ; 4263 =0 READ [ARX], ;GET THE ADDRESS ; 4264 LOAD VMA, ;START WRITE ; 4265 VMA PHYSICAL WRITE, ;ABSOLUTE ADDRESS U 0266, 0310,3333,0004,4174,4007,0700,0200,0021,1016 ; 4266 J/KIMUUO ;GO STORE KI STYLE U 0267, 0272,3770,0203,4344,4007,0700,0000,0000,0000 ; 4267 [AR]_[HR] SWAP ;PUT IN RIGHT HALF ; 4268 =0 [AR]_FLAGS, ;FLAGS IN LEFT HALF ; 4269 HOLD RIGHT, ;JUST WANT FLAGS U 0272, 2613,4521,1203,4074,0007,0700,0010,0000,0000 ; 4270 CALL [UUOFLG] ;CLEAR TRAP FLAGS ; 4271 READ [ARX], ;LOOK AT ADDRESS ; 4272 LOAD VMA, ;LOAD THE VMA U 0273, 0074,3333,0004,4174,4007,0700,0200,0021,1016 ; 4273 VMA PHYSICAL WRITE ;STORE FLAG WORD ; 4274 =0* MEM WRITE, ;WAIT FOR MEMORY U 0074, 2614,3333,0003,4175,5007,0701,0210,0000,0002 ; 4275 MEM_[AR], CALL [NEXT] ;STORE ; 4276 MEM WRITE, ;WAIT FOR MEMORY U 0076, 0300,3333,0001,4175,5007,0701,0200,0000,0002 ; 4277 MEM_[PC] ;STORE FULL WORD PC ; 4278 =000 [HR]_0, ;SAVE E U 0300, 2614,4221,0002,4174,0007,0700,0010,0000,0000 ; 4279 HOLD RIGHT, CALL [NEXT] ;BUT CLEAR OPCODE ; 4280 =010 ; 4281 UUOPCW: MEM WRITE, ;WAIT FOR MEMORY ; 4282 MEM_[HR], ;STORE INSTRUCTION IN KI ; 4283 ; OR FULL WORD E IN KL U 0302, 3431,3333,0002,4175,5007,0701,0210,0000,0002 ; 4284 CALL [GETPCW] ;GET PROCESS-CONTEXT-WORD ; 4285 ; 4286 =011 NEXT [ARX] PHYSICAL WRITE, ;POINT TO NEXT WORD U 0303, 3554,0111,0704,4170,4007,0700,0210,0023,1016 ; 4287 CALL [STOBR] ;STORE PROCESS CONTEXT WORD ; 4288 ; 4289 ;NOW WE MUST PICK ONE OF 8 NEW PC WORDS BASED ON PC FLAGS U 0307, 2606,4751,1205,4374,4007,0700,0000,0000,0430 ; 4290 =111 [BR]_0 XWD [430] ;OFFSET INTO UPT ; 4291 = U 2606, 2607,0111,1105,4174,4007,0700,0000,0000,0000 ; 4292 [BR]_[BR]+[UBR] ;ADDRESS OF WORD U 2607, 2610,4521,1203,4074,4007,0700,0000,0000,0000 ; 4293 [AR]_FLAGS ;GET FLAGS ; 4294 TL [AR], ;LOOK AT FLAGS U 2610, 0276,4553,0300,4374,4007,0321,0000,0000,0600 ; 4295 #/600 ;TRAP SET? ; 4296 =0 [BR]_[BR].OR.#, ;YES--POINT TO TRAP CASE ; 4297 #/1, ; .. U 0276, 0277,3551,0505,4370,4007,0700,0000,0000,0001 ; 4298 HOLD LEFT ;LEAVE LEFT ALONE ; 4299 TL [AR], ;USER OR EXEC U 0277, 0304,4553,0300,4374,4007,0321,0000,0001,0000 ; 4300 #/10000 ; .. ; 4301 =0 [BR]_[BR].OR.#, ;USER ; 4302 #/4, ;POINT TO USER WORDS U 0304, 0305,3551,0505,4370,4007,0700,0000,0000,0004 ; 4303 HOLD LEFT ; 4304 READ [BR], ;LOOK AT ADDRESS ; 4305 LOAD VMA, ;PLACE IN VMA ; 4306 VMA PHYSICAL, ;PHYSICAL ADDRESS U 0305, 2611,3333,0005,4174,4007,0700,0200,0024,1016 ; 4307 START READ ;GET NEW PC WORD ; 4308 ;;Page fault delivering code joins in here. ; 4309 ;;J/EAPF1 DEC Paging ; 4310 ;;J/PFTRAP1 ITS Paging ; 4311 GOEXEC: MEM READ, ;WAIT FOR DATA U 2611, 2612,3771,0003,4365,5007,0700,0200,0000,0002 ; 4312 [AR]_MEM ;STICK IN AR ; 4313 READ [AR], ;LOOK AT DATA ; 4314 LOAD FLAGS, ;LOAD NEW FLAGS ; 4315 LEAVE USER, ;ALLOW USER TO LOAD ; 4316 LOAD PCU, ;SET PCU FROM USER U 2612, 0164,3333,0003,4174,4467,0700,0000,0000,0404 ; 4317 J/JUMPA ;JUMP ; 4318 ; 4319 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 101 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 ILLEGAL INSTRUCTIONS AND UUO'S ; 4320 ; 4321 ;HERE FOR TOPS-10 STYLE PAGING ; 4322 ; 4323 =00 ; 4324 KIMUUO: MEM WRITE, ;STORE INSTRUCTION U 0310, 2614,3333,0002,4175,5007,0701,0210,0000,0002 ; 4325 MEM_[HR], CALL [NEXT] ;IN MEMORY ; 4326 =10 [AR]_PC WITH FLAGS, ;GET PC WORD U 0312, 2613,3741,0103,4074,4007,0700,0010,0000,0000 ; 4327 CALL [UUOFLG] ;CLEAR TRAP FLAGS ; 4328 =11 MEM WRITE, ;STORE PC WORD ; 4329 MEM_[AR], ; .. U 0313, 0302,3333,0003,4175,5007,0701,0200,0000,0002 ; 4330 J/UUOPCW ;GO STORE PROCESS CONTEXT ; 4331 ; 4332 UUOFLG: [AR]_[AR].AND.NOT.#, ;CLEAR TRAP FLAGS ; 4333 #/600, HOLD RIGHT, ; IN WORD TO SAVE U 2613, 0001,5551,0303,4374,0004,1700,0000,0000,0600 ; 4334 RETURN [1] ; BACK TO CALLER ; 4335 ; 4336 NEXT: NEXT [ARX] PHYSICAL WRITE, ;POINT TO NEXT WORD U 2614, 0002,0111,0704,4170,4004,1700,0200,0023,1016 ; 4337 RETURN [2] ; 4338 ; 4339 ;HERE FOR LUUO'S ; 4340 1557: U 1557, 0400,4751,1203,4374,4007,0700,0000,0000,0040 ; 4341 LUUO: [AR]_0 XWD [40] ;AR GET CONSTANT 40 ; 4342 ;THE LUUO MACRO DOES THE ABOVE INSTRUCTION AND GOES TO LUUO1 ; 4343 400: ;FOR SIMULATOR ; 4344 LUUO1: READ [AR], ;LOAD 40 INTO ; 4345 LOAD VMA, ; THE VMA AND U 0400, 2615,3333,0003,4174,4007,0700,0200,0003,0012 ; 4346 START WRITE ; PREPARE TO STORE ; 4347 [HR]_[HR].AND.#, ;CLEAR OUT INDEX AND @ ; 4348 #/777740, ; .. U 2615, 2616,4551,0202,4374,0007,0700,0000,0077,7740 ; 4349 HOLD RIGHT ; 4350 MEM WRITE, ;STORE LUUO IN 40 U 2616, 2617,3333,0002,4175,5007,0701,0200,0000,0002 ; 4351 MEM_[HR] ; 4352 VMA_[AR]+1, ;POINT TO 41 ; 4353 LOAD VMA, ;PUT 41 IN VMA ; 4354 START READ, ;START FETCH U 2617, 2375,0111,0703,4170,4007,0700,0200,0004,0012 ; 4355 J/CONT1 ;GO EXECUTE THE INSTRUCTION ; 4356 ; 4357 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 102 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 ARITHMETIC -- ADD, SUB ; 4358 .TOC "ARITHMETIC -- ADD, SUB" ; 4359 ; 4360 .DCODE D 0270, 1015,1560,1100 ; 4361 270: R-PF, AC, J/ADD D 0271, 0015,1560,3000 ; 4362 I-PF, AC, J/ADD D 0272, 0016,1560,1700 ; 4363 RW, M, J/ADD D 0273, 0017,1560,1700 ; 4364 RW, B, J/ADD ; 4365 .UCODE ; 4366 ; 4367 1560: ; 4368 ADD: [AR]_[AR]+AC, ;DO THE ADD U 1560, 1500,0551,0303,0274,4463,7701,0200,0001,0001 ; 4369 AD FLAGS EXIT, 3T ;UPDATE CARRY FLAGS ; 4370 ;STORE ANSWER ; 4371 ;MISSES 3-TICKS BY 3 NS. ; 4372 ; 4373 ; 4374 .DCODE D 0274, 1015,1561,1100 ; 4375 274: R-PF, AC, J/SUB D 0275, 0015,1561,3000 ; 4376 I-PF, AC, J/SUB D 0276, 0016,1561,1700 ; 4377 RW, M, J/SUB D 0277, 0017,1561,1700 ; 4378 RW, B, J/SUB ; 4379 .UCODE ; 4380 ; 4381 1561: ; 4382 SUB: [AR]_AC-[AR], ;DO THE SUBTRACT U 1561, 1500,2551,0303,0274,4463,7701,4200,0001,0001 ; 4383 AD FLAGS EXIT, 3T ;UPDATE PC CARRY FLAGS ; 4384 ;ALL DONE ; 4385 ;MISSES 3-TICKS BY 3 NS. ; 4386 ; 4387 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 103 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 ARITHMETIC -- DADD, DSUB ; 4388 .TOC "ARITHMETIC -- DADD, DSUB" ; 4389 ; 4390 .DCODE D 0114, 0205,1457,1100 ; 4391 114: DBL R, DAC, J/DADD D 0115, 0205,1615,1100 ; 4392 DBL R, DAC, J/DSUB ; 4393 .UCODE ; 4394 ; 4395 1457: ; 4396 DADD: [ARX]_[ARX]+AC[1], 4T, ;ADD LOW WORDS U 1457, 0314,0551,0404,1274,4007,0562,0000,0000,1441 ; 4397 SKIP CRY1 ;SEE IF CARRY TO HIGH WORD ; 4398 =0 ; 4399 DADD1: [AR]_[AR]+AC, ;ADD HIGH WORDS ; 4400 ADD .25, ;ADD IN ANY CARRY FROM LOW WORD ; 4401 AD FLAGS, 4T, ;UPDATE PC FLAGS U 0314, 2621,0551,0303,0274,4467,0702,4000,0001,0001 ; 4402 J/CPYSGN ;COPY SIGN TO LOW WORD U 0315, 2620,7441,1205,4174,4007,0700,0000,0000,0000 ; 4403 [BR]_.NOT.[MASK] ;SET BITS 35 AND 36 IN ; 4404 [AR]_[AR].OR.[BR], ; AR SO THAT ADD .25 WILL U 2620, 0314,3111,0503,4170,4007,0700,0000,0000,0000 ; 4405 HOLD LEFT, J/DADD1 ; ADD 1. ; 4406 ; 4407 1615: ; 4408 DSUB: [ARX]_AC[1]-[ARX], 4T, ;SUBTRACT LOW WORD U 1615, 0316,2551,0404,1274,4007,0562,4000,0000,1441 ; 4409 SKIP CRY1 ;SEE IF CARRY ; 4410 =0 [AR]_AC-[AR]-.25, ;NO CARRY ; 4411 AD FLAGS, 4T, ;UPDATE PC FLAGS U 0316, 2621,2551,0303,0274,4467,0702,0000,0001,0001 ; 4412 J/CPYSGN ;GO COPY SIGN ; 4413 [AR]_AC-[AR], 4T, ;THERE WAS A CARRY U 0317, 2621,2551,0303,0274,4467,0702,4000,0001,0001 ; 4414 AD FLAGS ;UPDATE CARRY FLAGS ; 4415 U 2621, 0320,3770,0303,4174,0007,0520,0000,0000,0000 ; 4416 CPYSGN: FIX [AR] SIGN, SKIP DP0 U 0320, 1404,4551,0404,4374,0007,0700,0000,0037,7777 ; 4417 =0 [ARX]_[ARX].AND.#, #/377777, HOLD RIGHT, J/MOVE U 0321, 1404,3551,0404,4374,0007,0700,0000,0040,0000 ; 4418 [ARX]_[ARX].OR.#, #/400000, HOLD RIGHT, J/MOVE ; 4419 ; 4420 ; 4421 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 104 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 ARITHMETIC -- MUL, IMUL ; 4422 .TOC "ARITHMETIC -- MUL, IMUL" ; 4423 ; 4424 .DCODE D 0220, 1015,1641,1100 ; 4425 220: R-PF, AC, J/IMUL D 0221, 0015,1641,3000 ; 4426 I-PF, AC, J/IMUL D 0222, 0016,1641,1700 ; 4427 RW, M, J/IMUL D 0223, 0017,1641,1700 ; 4428 RW, B, J/IMUL ; 4429 .UCODE ; 4430 1641: U 1641, 2622,3441,0306,0174,4007,0700,0000,0000,0000 ; 4431 IMUL: [BRX]_[AR], AC ;COPY C(E) U 2622, 0100,3772,0000,0275,5007,0700,2000,0071,0043 ; 4432 Q_AC, SC_35. ;GET THE AC ; 4433 =0** [BRX]_[BRX]*.5 LONG, ;SHIFT RIGHT U 0100, 2646,3446,0606,4174,4007,0700,0010,0000,0000 ; 4434 CALL [MULSUB] ;MULTIPLY U 0104, 0322,3333,0004,4174,4007,0621,0000,0000,0000 ; 4435 READ [ARX], SKIP AD.EQ.0 ;SEE IF FITS U 0322, 2623,3445,0404,4174,4007,0700,0000,0000,0000 ; 4436 =0 [ARX]_[ARX]*2, J/IMUL2 ;NOT ZERO--SHIFT LEFT U 0323, 1500,3221,0003,4174,4003,7700,0200,0003,0001 ; 4437 IMUL1: [AR]_Q, EXIT ;POSITIVE ; 4438 ; 4439 IMUL2: [MASK].AND.NOT.[ARX], ;SEE IF ALL SIGN BITS U 2623, 0324,5113,0412,4174,4007,0621,0000,0000,0000 ; 4440 SKIP AD.EQ.0 ; .. ; 4441 =0 FIX [ARX] SIGN, ;NOT ALL SIGN BITS U 0324, 0326,3770,0404,4174,0007,0520,0000,0000,0000 ; 4442 SKIP DP0, J/IMUL3 ;GIVE + OR - OVERFLOW U 0325, 1500,7001,0003,4174,4003,7700,0200,0003,0001 ; 4443 [AR]_[MAG].EQV.Q, EXIT ;NEGATIVE ; 4444 =0 U 0326, 1404,3221,0003,4174,4467,0700,0000,0041,1000 ; 4445 IMUL3: [AR]_Q, SET AROV, J/MOVE U 0327, 1404,7001,0003,4174,4467,0700,0000,0041,1000 ; 4446 [AR]_[MAG].EQV.Q, SET AROV, J/MOVE ; 4447 ; 4448 ; 4449 .DCODE D 0224, 1005,1571,1100 ; 4450 224: R-PF, DAC, J/MUL D 0225, 0005,1571,3000 ; 4451 I-PF, DAC, J/MUL D 0226, 0016,1571,1700 ; 4452 RW, M, J/MUL D 0227, 0006,1571,1700 ; 4453 RW, DBL B, J/MUL ; 4454 .UCODE ; 4455 ; 4456 ; 4457 1571: U 1571, 2624,3442,0300,0174,4007,0700,0000,0000,0000 ; 4458 MUL: Q_[AR], AC ;COPY C(E) U 2624, 2625,3441,0316,4174,4007,0700,0000,0000,0000 ; 4459 [T0]_[AR] ;SAVE FOR OVERFLOW TEST U 2625, 0102,3771,0006,0276,6007,0700,2000,0071,0043 ; 4460 [BRX]_AC, SC_35. ;GET THE AC ; 4461 =0** [BRX]_[BRX]*.5 LONG, ;SHIFT OVER U 0102, 2646,3446,0606,4174,4007,0700,0010,0000,0000 ; 4462 CALL [MULSUB] ;MULTIPLY U 0106, 2626,3445,0403,4174,4007,0700,0000,0000,0000 ; 4463 [AR]_[ARX]*2 ;SHIFT OVER U 2626, 0330,3770,0303,4174,0007,0520,0000,0000,0000 ; 4464 FIX [AR] SIGN, SKIP DP0 ;SEE IF NEGATIVE ; 4465 =0 [ARX]_[MAG].AND.Q, ;POSITIVE U 0330, 1500,4001,0004,4174,4003,7700,0200,0003,0001 ; 4466 EXIT U 0331, 0332,4113,0616,4174,4007,0520,0000,0000,0000 ; 4467 [T0].AND.[BRX], SKIP DP0 ;TRIED TO SQUARE 1B0? U 0332, 1500,7001,0004,4174,4003,7700,0200,0003,0001 ; 4468 =0 [ARX]_[MAG].EQV.Q, EXIT ;NO ; 4469 [ARX]_[MAG].EQV.Q, ;YES U 0333, 1404,7001,0004,4174,4467,0700,0000,0041,1000 ; 4470 SET AROV, J/MOVE ; 4471 ; 4472 ; 4473 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 105 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 ARITHMETIC -- DMUL ; 4474 .TOC "ARITHMETIC -- DMUL" ; 4475 ; 4476 .DCODE D 0116, 0205,1566,1100 ; 4477 116: DBL R, DAC, J/DMUL ; 4478 .UCODE ; 4479 ; 4480 .IF/FULL ; 4481 1566: U 1566, 2627,3447,0303,4174,4007,0700,0000,0000,0000 ; 4482 DMUL: [AR]_[AR]*.5 ;SHIFT MEM OPERAND RIGHT U 2627, 2630,4117,0004,4174,4007,0700,0000,0000,0000 ; 4483 [ARX]_([ARX].AND.[MAG])*.5 ; 4484 [BR]_[ARX], ;COPY LOW WORD U 2630, 0340,3441,0405,4174,4007,0350,0000,0000,0000 ; 4485 SKIP FPD ;SEE IF FIRST PART DONE ; 4486 ; ; 4487 ; BRX * BR ==> C(E+1) * C(AC+1) ; 4488 ; ; 4489 =000 [BRX]_(AC[1].AND.[MAG])*.5, 3T, ;GET LOW AC U 0340, 2642,4557,0006,1274,4007,0701,0010,0000,1441 ; 4490 CALL [DMULGO] ;START MULTIPLY ; 4491 [ARX]_(AC[2].AND.[MAG])*.5, 3T, ;FIRST PART DONE U 0341, 2632,4557,0004,1274,4007,0701,0000,0000,1442 ; 4492 J/DMUL1 ;GO DO SECOND PART U 0344, 0222,3223,0000,1174,4007,0700,0400,0000,1443 ; 4493 =100 AC[3]_Q ;SALT AWAY 1 WORD OF PRODUCT ; 4494 = ; 4495 ; ; 4496 ; BRX * Q ==> C(E) * C(AC+1) ; 4497 ; ; 4498 =0** Q_[AR], SC_35., ;GO MULT NEXT HUNK U 0222, 0351,3442,0300,4174,4007,0700,2010,0071,0043 ; 4499 CALL [QMULT] ; .. U 0226, 2631,3441,0416,4174,4007,0700,0000,0000,0000 ; 4500 [T0]_[ARX] ;SAVE PRODUCT ; 4501 AC[2]_Q, [ARX]_Q*.5, ;SAVE PRODUCT U 2631, 0342,3227,0004,1174,4007,0700,0400,0000,1442 ; 4502 J/DMUL2 ;GO DO HIGH HALF U 2632, 0342,3777,0016,1276,6007,0701,0000,0000,1441 ; 4503 DMUL1: [T0]_AC[1]*.5 ;RESTORE T0 ; 4504 =0*0 ; 4505 ; ; 4506 ; BRX * BR ==> C(AC) * C(E+1) ; 4507 ; ; 4508 DMUL2: [BRX]_AC*.5, ;PREPARE TO DO HIGH HALF U 0342, 2643,3777,0006,0274,4007,0701,0010,0000,0000 ; 4509 CALL [DBLMUL] ; GO DO IT ; 4510 AC[1]_[T0]*2, 3T, ;INTERRUPT, SAVE T0 U 0343, 2645,0113,1616,1174,4007,0701,0400,0000,1441 ; 4511 J/DMLINT ;SET FPD AND INTERRUPT U 0346, 2633,3223,0000,1174,4007,0700,0400,0000,1442 ; 4512 AC[2]_Q ;SAVE PRODUCT ; 4513 = U 2633, 0350,0111,1604,4174,4007,0700,0000,0000,0000 ; 4514 [ARX]_[ARX]+[T0] ;PREPARE FOR LAST MUL ; 4515 ; ; 4516 ; BRX * Q ==> C(AC) * C(E) ; 4517 ; ; 4518 =0** Q_[AR], SC_35., ;DO THE LAST MULTIPLY U 0350, 0351,3442,0300,4174,4007,0700,2010,0071,0043 ; 4519 CALL [QMULT] ; GO DO IT ; 4520 [ARX]_[ARX]*2, ;SHIFT BACK U 0354, 2634,3445,0404,4174,4467,0700,0000,0005,0000 ; 4521 CLR FPD ;CLEAR FPD ; 4522 U 2634, 0334,3770,0404,0174,4007,0520,0400,0000,0000 ; 4523 AC_[ARX] TEST, SKIP DP0 ;PUT BACK INTO AC U 0334, 2641,3223,0000,1174,4007,0700,0400,0000,1441 ; 4524 =0 AC[1]_Q, J/DMTRAP ;POSITIVE U 0335, 2635,7003,0000,1174,4007,0700,0400,0000,1441 ; 4525 AC[1]_[MAG].EQV.Q ;NEGATIVE U 2635, 2636,3772,0000,1275,5007,0701,0000,0000,1442 ; 4526 Q_AC[2] U 2636, 2637,7003,0000,1174,4007,0700,0400,0000,1442 ; 4527 AC[2]_[MAG].EQV.Q U 2637, 2640,3772,0000,1275,5007,0701,0000,0000,1443 ; 4528 Q_AC[3] U 2640, 2641,7003,0000,1174,4007,0700,0400,0000,1443 ; 4529 AC[3]_[MAG].EQV.Q ; 4530 DMTRAP: [AR]_PC WITH FLAGS, ;LOOK AT FLAGS U 2641, 0336,3741,0103,4074,4007,0520,0000,0000,0000 ; 4531 SKIP DP0 ;SEE IF AROV SET? U 0336, 0070,3443,0100,4174,4156,4700,0200,0014,0012 ; 4532 =0 DONE ;NO--ALL DONE U 0337, 1400,4443,0000,4174,4467,0700,0000,0041,1000 ; 4533 SET AROV, J/DONE ;YES--FORCE TRAP 1 ALSO ; 4534 ; 4535 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 106 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 ARITHMETIC -- DMUL ; 4536 ; 4537 ;WAYS TO CALL MULTIPLY U 2642, 2643,4221,0004,4174,4007,0700,0000,0000,0000 ; 4538 DMULGO: [ARX]_0 ;CLEAR ARX U 2643, 2644,3442,0500,4174,4007,0700,2000,0071,0043 ; 4539 DBLMUL: Q_[BR], SC_35. U 2644, 0351,3447,0606,4174,4007,0700,0000,0000,0000 ; 4540 [BRX]_[BRX]*.5 ; 4541 =0** ; 4542 QMULT: Q_Q*.5, U 0351, 2650,3446,1200,4174,4007,0700,0010,0000,0000 ; 4543 CALL [MULTIPLY] ; 4544 [ARX]+[ARX], AD FLAGS, ;TEST FOR OVERFLOW U 0355, 0004,0113,0404,4174,4464,1701,0000,0001,0001 ; 4545 3T, RETURN [4] ;AND RETURN ; 4546 U 2645, 2507,4443,0000,4174,4467,0700,0000,0003,0000 ; 4547 DMLINT: SET FPD, J/FIXPC ;SET FPD, BACKUP PC ; 4548 ; INTERRUPT ; 4549 .IFNOT/FULL ; 4550 1566: ; 4551 DMUL: UUO ; 4552 .ENDIF/FULL ; 4553 ; 4554 ;MULTIPLY SUBROUTINE ; 4555 ;ENTERED WITH: ; 4556 ; MULTIPLIER IN Q ; 4557 ; MULTIPLICAND IN BRX ; 4558 ;RETURNS 4 WITH PRODUCT IN ARX!Q ; 4559 ; 4560 MUL STEP "A/BRX,B/ARX,DEST/Q_Q*.5,ASHC,STEP SC,MUL DISP" ; 4561 MUL FINAL "A/BRX,B/ARX,DEST/Q_Q*2" ; 4562 U 2646, 2647,3446,0606,4174,4007,0700,0000,0000,0000 ; 4563 MULSUB: [BRX]_[BRX]*.5 LONG ; 4564 MULSB1: [ARX]_0*.5 LONG, ;CLEAR ARX AND SHIFT Q ; 4565 STEP SC, ;COUNT FIRST STEP U 2647, 0352,4226,0004,4174,4007,0630,2000,0060,0000 ; 4566 J/MUL+ ;ENTER LOOP ; 4567 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 107 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 ARITHMETIC -- DMUL ; 4568 ; 4569 ;MULTIPLY SUBROUTINE ; 4570 ;ENTERED WITH: ; 4571 ; MULTIPLIER IN Q ; 4572 ; MULTIPLICAND IN BRX ; 4573 ; PARTIAL PRODUCT IN ARX ; 4574 ;RETURNS 4 WITH Q*BRX+ARX IN ARX!Q ; 4575 ; 4576 MULTIPLY: ; 4577 Q_Q*.5, ;SHIFT Q ; 4578 STEP SC, ;COUNT FIRST STEP U 2650, 0352,3446,1200,4174,4007,0630,2000,0060,0000 ; 4579 J/MUL+ ;ENTER LOOP ; 4580 ; 4581 ;HERE FOR POSITIVE STEPS ; 4582 =010 ;0 IN A POSITIVE STEP ; 4583 MUL+: AD/B, ;DON'T ADD ; 4584 MUL STEP, ;SHIFT U 0352, 0352,3336,0604,4174,4046,2630,2000,0060,0000 ; 4585 J/MUL+ ;KEEP POSITIVE ; 4586 =011 ;DONE ; 4587 AD/B, ;DON'T ADD ; 4588 MUL FINAL, ;SHIFT U 0353, 0004,3334,0604,4174,4004,1700,0000,0000,0000 ; 4589 RETURN [4] ;SHIFT Q AND RETURN ; 4590 =110 ;1 IN A POSITIVE STEP ; 4591 AD/B-A-.25, ADD .25, ;SUBTRACT ; 4592 MUL STEP, ;SHIFT AND COUNT U 0356, 0362,1116,0604,4174,4046,2630,6000,0060,0000 ; 4593 J/MUL- ;NEGATIVE NOW ; 4594 =111 ;DONE ; 4595 AD/B-A-.25, ADD .25, ;SUBTRACT ; 4596 MUL FINAL, ;SHIFT U 0357, 0004,1114,0604,4174,4004,1700,4000,0000,0000 ; 4597 RETURN [4] ; AND RETURN ; 4598 ; 4599 ;HERE FOR NEGATIVE STEPS ; 4600 =010 ;0 IN NEGATIVE STEP ; 4601 MUL-: AD/A+B, ;ADD ; 4602 MUL STEP, ;SHIFT AND COUNT U 0362, 0352,0116,0604,4174,4046,2630,2000,0060,0000 ; 4603 J/MUL+ ;POSITIVE NOW ; 4604 =011 ;DONE ; 4605 AD/A+B, ;ADD ; 4606 MUL FINAL, ;SHIFT U 0363, 0004,0114,0604,4174,4004,1700,0000,0000,0000 ; 4607 RETURN [4] ;FIX Q AND RETURN ; 4608 =110 ;1 IN NEGATIVE STEP ; 4609 AD/B, ;DON'T ADD ; 4610 MUL STEP, ;SHIFT AND COUNT U 0366, 0362,3336,0604,4174,4046,2630,2000,0060,0000 ; 4611 J/MUL- ;STILL NEGATIVE ; 4612 =111 ;DONE ; 4613 AD/B, ;DON'T ADD ; 4614 MUL FINAL, ;SHIFT U 0367, 0004,3334,0604,4174,4004,1700,0000,0000,0000 ; 4615 RETURN [4] ;FIX Q AND RETURN ; 4616 ; 4617 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 108 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 ARITHMETIC -- DIV, IDIV ; 4618 .TOC "ARITHMETIC -- DIV, IDIV" ; 4619 ; 4620 .DCODE D 0230, 1005,1600,1100 ; 4621 230: R-PF, DAC, J/IDIV D 0231, 0005,1600,3000 ; 4622 I-PF, DAC, J/IDIV D 0232, 0016,1600,1700 ; 4623 RW, M, J/IDIV D 0233, 0006,1600,1700 ; 4624 RW, DBL B, J/IDIV ; 4625 D 0234, 1005,1601,1100 ; 4626 234: R-PF, DAC, J/DIV D 0235, 0005,1601,3000 ; 4627 I-PF, DAC, J/DIV D 0236, 0016,1601,1700 ; 4628 RW, M, J/DIV D 0237, 0006,1601,1700 ; 4629 RW, DBL B, J/DIV ; 4630 .UCODE ; 4631 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 109 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 ARITHMETIC -- DIV, IDIV ; 4632 ; 4633 1600: U 1600, 2651,3441,0305,0174,4007,0700,0000,0000,0000 ; 4634 IDIV: [BR]_[AR], AC ;COPY MEMORY OPERAND ; 4635 Q_AC, ;LOAD Q U 2651, 0360,3772,0000,0275,5007,0520,0000,0000,0000 ; 4636 SKIP DP0 ;SEE IF MINUS ; 4637 =0 [AR]_0, ;EXTEND + SIGN U 0360, 0371,4221,0003,4174,4007,0700,0000,0000,0000 ; 4638 J/DIV1 ;NOW SAME AS DIV ; 4639 [AR]_-1, ;EXTEND - SIGN U 0361, 0371,2441,0703,4174,4007,0700,4000,0000,0000 ; 4640 J/DIV1 ;SAME AS DIV ; 4641 ; 4642 1601: U 1601, 2652,3441,0305,4174,4007,0700,0000,0000,0000 ; 4643 DIV: [BR]_[AR] ;COPY MEM OPERAND U 2652, 2653,3771,0003,0276,6007,0700,0000,0000,0000 ; 4644 [AR]_AC ;GET AC U 2653, 2654,3772,0000,1275,5007,0701,0000,0000,1441 ; 4645 Q_AC[1] ;AND AC+1 ; 4646 READ [AR], ;TEST FOR NO DIVIDE U 2654, 0370,3333,0003,4174,4007,0621,0000,0000,0000 ; 4647 SKIP AD.EQ.0 ; 4648 =000 .NOT.[AR], ;SEE IF ALL SIGN BITS IN AR ; 4649 SKIP AD.EQ.0, ; .. U 0370, 0364,7443,0300,4174,4007,0621,0000,0000,0000 ; 4650 J/DIVA ;CONTINUE BELOW ; 4651 =001 ; 4652 DIV1: READ [BR], ;SEE IF DIVIDE BY U 0371, 0374,3333,0005,4174,4007,0621,0000,0000,0000 ; 4653 SKIP AD.EQ.0 ; ZERO ; 4654 =100 ; 4655 DIV2: SC_34., ;NOT ZERO--LOAD STEP COUNT U 0374, 0510,4443,0000,4174,4007,0700,2010,0071,0042 ; 4656 CALL [DIVSUB] ;DIVIDE U 0375, 0127,4443,0000,4174,4467,0700,0000,0051,1000 ; 4657 =101 NO DIVIDE ;DIVIDE BY ZERO ; 4658 =110 [ARX]_[AR], ;COPY REMAINDER U 0376, 0323,3441,0304,4174,4007,0700,0000,0000,0000 ; 4659 J/IMUL1 ;STORE ANSWER ; 4660 = ; 4661 ; 4662 ; 4663 =0 ; 4664 DIVA: [BRX]_[AR], ;HIGH WORD IS NOT SIGNS U 0364, 2655,3441,0306,4174,4007,0700,0000,0000,0000 ; 4665 J/DIVB ;GO TEST FOR NO DIVIDE ; 4666 READ [BR], ;ALL SIGN BITS ; 4667 SKIP AD.EQ.0, ;SEE IF ZERO DIVIDE U 0365, 0374,3333,0005,4174,4007,0621,0000,0000,0000 ; 4668 J/DIV2 ;BACK TO MAIN FLOW ; 4669 U 2655, 2656,3221,0004,4174,4007,0700,0000,0000,0000 ; 4670 DIVB: [ARX]_Q ;MAKE ABS VALUES ; 4671 READ [AR], ;SEE IF + U 2656, 0404,3333,0003,4174,4007,0520,0000,0000,0000 ; 4672 SKIP DP0 ; 4673 =00 READ [BR], ;SEE IF + ; 4674 SKIP DP0, U 0404, 0372,3333,0005,4174,4007,0520,0000,0000,0000 ; 4675 J/DIVC ;CONTINUE BELOW ; 4676 CLEAR [ARX]0, ;FLUSH DUPLICATE SIGN U 0405, 2737,4551,0404,4374,0007,0700,0010,0037,7777 ; 4677 CALL [DBLNG1] ;NEGATE AR!ARX ; 4678 =11 READ [BR], ;SEE IF TOO BIG ; 4679 SKIP DP0, U 0407, 0372,3333,0005,4174,4007,0520,0000,0000,0000 ; 4680 J/DIVC ; 4681 = ; 4682 =0 ; 4683 DIVC: [AR]-[BR], ;COMPUTE DIFFERENCE ; 4684 SKIP DP0, ;SEE IF IT GOES ; 4685 3T, ;ALLOW TIME U 0372, 0402,2113,0305,4174,4007,0521,4000,0000,0000 ; 4686 J/NODIV ;TEST ; 4687 [AR]+[BR], ; 4688 SKIP DP0, ;SAME TEST FOR -VE BR ; 4689 3T, U 0373, 0402,0113,0305,4174,4007,0521,0000,0000,0000 ; 4690 J/NODIV ; 4691 =0 U 0402, 0127,4443,0000,4174,4467,0700,0000,0051,1000 ; 4692 NODIV: NO DIVIDE ;TOO BIG ; 4693 [AR]_[BRX], ;FITS U 0403, 0371,3441,0603,4174,4007,0700,0000,0000,0000 ; 4694 J/DIV1 ;GO BACK AND DIVIDE ; 4695 ; 4696 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 110 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 ARITHMETIC -- DDIV ; 4697 .TOC "ARITHMETIC -- DDIV" ; 4698 ; 4699 .DCODE D 0117, 0205,1627,1100 ; 4700 117: DBL R, DAC, J/DDIV ; 4701 .UCODE ; 4702 ; 4703 .IF/FULL ; 4704 1627: U 1627, 2657,4112,0400,4174,4007,0700,0000,0000,0000 ; 4705 DDIV: Q_[ARX].AND.[MAG] ;COPY LOW WORD ; 4706 [BR]_[AR]*.5, ;COPY MEMORY OPERAND U 2657, 0410,3447,0305,4174,4007,0421,0000,0000,0000 ; 4707 SKIP AD.LE.0 ;SEE IF POSITIVE ; 4708 =0 [BR]_[BR]*.5 LONG, ;POSITIVE U 0410, 0414,3446,0505,4174,4007,0700,0000,0000,0000 ; 4709 J/DDIV1 ;CONTINUE BELOW ; 4710 [BR]_[BR]*.5 LONG, ;NEGATIVE OR ZERO U 0411, 0412,3446,0505,4174,4007,0520,0000,0000,0000 ; 4711 SKIP DP0 ;SEE WHICH? ; 4712 =0 [MAG].AND.Q, ;SEE IF ALL ZERO U 0412, 0414,4003,0000,4174,4007,0621,0000,0000,0000 ; 4713 SKIP AD.EQ.0, J/DDIV1 ;CONTINUE BELOW U 0413, 2660,4751,1217,4374,4007,0700,0000,0000,0005 ; 4714 [T1]_0 XWD [5] ;NEGATE MEM OP ; 4715 Q_Q.OR.#, #/600000, ;SIGN EXTEND THE LOW U 2660, 2661,3662,0000,4374,0007,0700,0000,0060,0000 ; 4716 HOLD RIGHT ; WORD U 2661, 2662,2222,0000,4174,4007,0700,4000,0000,0000 ; 4717 Q_-Q ;MAKE Q POSITIVE ; 4718 [BR]_(-[BR]-.25)*.5 LONG, ;NEGATE HIGH WORD ; 4719 ASHC, MULTI PREC/1, ;USE CARRY FROM LOW WORD U 2662, 2664,2446,0505,4174,4047,0700,0040,0000,0000 ; 4720 J/DDIV3 ;CONTINUE BELOW ; 4721 =0 ; 4722 DDIV1: [BR]_[BR]*.5 LONG, ;SHIFT OVER 1 PLACE U 0414, 2663,3446,0505,4174,4047,0700,0000,0000,0000 ; 4723 ASHC, J/DDIV2 ;CONTINUE BELOW U 0415, 0127,4443,0000,4174,4467,0700,0000,0051,1000 ; 4724 NO DIVIDE ;DIVIDE BY ZERO U 2663, 2664,4751,1217,4374,4007,0700,0000,0000,0004 ; 4725 DDIV2: [T1]_0 XWD [4] ;MEM OPERAND IS POSITIVE U 2664, 2665,3221,0006,0174,4007,0700,0000,0000,0000 ; 4726 DDIV3: [BRX]_Q, AC ;COPY Q ; 4727 U 2665, 0416,3777,0003,0274,4007,0520,0000,0000,0000 ; 4728 [AR]_AC*.5, 2T, SKIP DP0 ;GET AC--SEE IF NEGATIVE ; 4729 =0*1*0 ; 4730 DDIV3A: Q_AC[1].AND.[MAG], ;POSITIVE (OR ZERO) U 0416, 0420,4552,0000,1275,5007,0701,0000,0000,1441 ; 4731 J/DDIV4 ;CONTINUE BELOW ; 4732 [T1]_[T1].XOR.#, ;NEGATIVE U 0417, 2726,6551,1717,4374,4007,0700,0010,0000,0007 ; 4733 #/7, CALL [QDNEG] ;UPDATE SAVED FLAGS ; 4734 =1*1*1 [AR]_[AR]*.5, ;SHIFT AR OVER U 0437, 0416,3447,0303,4174,4007,0700,0000,0000,0000 ; 4735 J/DDIV3A ;GO BACK AND LOAD Q ; 4736 = ; 4737 =0 ; 4738 DDIV4: [AR]_[AR]*.5 LONG, ;SHIFT AR OVER U 0420, 2710,3446,0303,4174,4007,0700,0010,0000,0000 ; 4739 CALL [DDIVS] ;SHIFT 1 MORE PLACE U 0421, 0422,2113,0305,4174,4007,0521,4000,0000,0000 ; 4740 [AR]-[BR], 3T, SKIP DP0 ;TEST MAGNITUDE ; 4741 =0 [AR]-[BR], 2T, U 0422, 0424,2113,0305,4174,4007,0620,4000,0000,0000 ; 4742 SKIP AD.EQ.0, J/DDIV5 U 0423, 2666,3221,0004,4174,4007,0700,0000,0000,0000 ; 4743 [ARX]_Q, J/DDIV5A ;ANSWER FITS ; 4744 ; 4745 =0 U 0424, 0533,3333,0017,4174,4003,5701,0000,0000,0000 ; 4746 DDIV5: READ [T1], 3T, DISP/DP, J/NODDIV U 0425, 0426,1003,0600,4174,4007,0521,4000,0000,0000 ; 4747 Q-[BRX], 3T, SKIP DP0 U 0426, 0533,3333,0017,4174,4003,5701,0000,0000,0000 ; 4748 =0 READ [T1], 3T, DISP/DP, J/NODDIV U 0427, 2666,3221,0004,4174,4007,0700,0000,0000,0000 ; 4749 [ARX]_Q ;COPY LOW WORD ; 4750 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 111 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 ARITHMETIC -- DDIV ; 4751 ; 4752 ;HERE WITH EVERYTHING SETUP AND READY TO GO U 2666, 0345,4552,0000,1275,5007,0701,0000,0000,1442 ; 4753 DDIV5A: Q_AC[2].AND.[MAG] U 0345, 0460,3446,1200,4174,4007,0700,2010,0071,0042 ; 4754 =0* Q_Q*.5, SC_34., CALL [DBLDIV] U 0347, 2667,3224,0016,4174,4007,0700,0000,0000,0000 ; 4755 [T0]_Q*2 LONG U 2667, 2670,0002,1600,4174,4007,0700,0000,0000,0000 ; 4756 Q_Q+[T0] U 2670, 0430,4003,0000,1174,4007,0700,0400,0000,1440 ; 4757 AC[0]_Q.AND.[MAG] ;STORE ANSWER U 0430, 2710,3442,0400,4174,4007,0700,0010,0000,0000 ; 4758 =0 Q_[ARX], CALL [DDIVS] ;SHIFT OUT EXTRA ZERO BIT U 0431, 2671,3221,0004,4174,4007,0700,0000,0000,0000 ; 4759 [ARX]_Q ; .. U 2671, 0434,4552,0000,1275,5007,0701,0000,0000,1443 ; 4760 Q_AC[3].AND.[MAG] ; 4761 =0* [T0]_[AR]*.5 LONG, ;SHIFT Q, PUT AR ON DP ; 4762 SC_34., ;LOAD SHIFT COUNT ; 4763 SKIP DP0, ;LOOK AT AR SIGN U 0434, 0460,3446,0316,4174,4007,0520,2010,0071,0042 ; 4764 CALL [DBLDIV] ;GO DIVIDE U 0436, 2672,3224,0016,4174,4007,0700,0000,0000,0000 ; 4765 [T0]_Q*2 LONG U 2672, 0456,3333,0017,4174,4003,5701,0000,0000,0000 ; 4766 READ [T1], 3T, DISP/DP ;WHAT SIGN IS QUO ; 4767 =1110 [T0]_[T0]+Q, ;POSITIVE QUO U 0456, 2675,0001,1616,4174,4007,0700,0000,0000,0000 ; 4768 J/DDIV5B ;CONTINUE BELOW U 0457, 2673,2225,0016,4174,4007,0700,4000,0000,0000 ; 4769 [T0]_-Q*2 ;NEGATIVE QUO ; 4770 AD/-D-.25, DBUS/RAM, 3T, ; 4771 RAMADR/AC#, DEST/Q_AD, U 2673, 2674,1772,0000,0274,4007,0701,0040,0000,0000 ; 4772 MULTI PREC/1 U 2674, 0432,3223,0000,0174,4007,0621,0400,0000,0000 ; 4773 AC_Q, SKIP AD.EQ.0 U 0432, 2676,3440,1616,1174,4007,0700,0400,0000,1441 ; 4774 =0 AC[1]_[T0], J/DDIV5C U 0433, 2700,4223,0000,1174,4007,0700,0400,0000,1441 ; 4775 AC[1]_0, J/DDIV6 ; 4776 U 2675, 2700,4113,1600,1174,4007,0700,0400,0000,1441 ; 4777 DDIV5B: AC[1]_[T0].AND.[MAG], J/DDIV6 ;STORE LOW WORD IN + CASE ; 4778 U 2676, 2677,3551,1616,4374,0007,0700,0000,0040,0000 ; 4779 DDIV5C: [T0]_[T0].OR.#, #/400000, HOLD RIGHT U 2677, 2700,3440,1616,1174,4007,0700,0400,0000,1441 ; 4780 AC[1]_[T0] ; 4781 U 2700, 0440,3333,0003,4174,4007,0520,0000,0000,0000 ; 4782 DDIV6: READ [AR], SKIP DP0 ;LOOK AT AR SIGN ; 4783 =0 U 0440, 2704,3442,0400,4174,4007,0700,0000,0000,0000 ; 4784 DDIV7: Q_[ARX], J/DDIV8 U 0441, 2701,0112,0406,4174,4007,0700,0000,0000,0000 ; 4785 Q_[ARX]+[BRX] ; 4786 [AR]_[AR]+[BR], U 2701, 2702,0111,0503,4174,4007,0700,0040,0000,0000 ; 4787 MULTI PREC/1 U 2702, 2703,0002,0600,4174,4007,0700,0000,0000,0000 ; 4788 Q_Q+[BRX] ; 4789 [AR]_[AR]+[BR], U 2703, 2704,0111,0503,4174,4007,0700,0040,0000,0000 ; 4790 MULTI PREC/1 U 2704, 0475,3333,0017,4174,4003,5701,0000,0000,0000 ; 4791 DDIV8: READ [T1], 3T, DISP/DP ; 4792 =1101 ; 4793 DDIV8A: [AR]_[AR]*2 LONG, ASHC, ;POSITIVE REMAINDER U 0475, 2706,3444,0303,4174,4047,0700,0000,0000,0000 ; 4794 J/DDIV9 ;CONTINUE BELOW U 0477, 2705,2222,0000,4174,4007,0700,4000,0000,0000 ; 4795 Q_-Q ;NEGATE REMAINDER IN AR!Q ; 4796 [AR]_(-[AR]-.25)*2 LONG, U 2705, 2706,2444,0303,4174,4047,0700,0040,0000,0000 ; 4797 MULTI PREC/1, ASHC ; 4798 ; 4799 DDIV9: AC[2]_[AR]+[AR], 3T, U 2706, 0442,0113,0303,1174,4007,0521,0400,0000,1442 ; 4800 SKIP DP0 ; 4801 =0 AC[3]_Q.AND.[MAG], U 0442, 0060,4003,0000,1174,4156,4700,0400,0000,1443 ; 4802 NEXT INST U 0443, 2707,4002,0000,1174,4007,0700,0000,0000,1443 ; 4803 Q_Q.AND.[MAG], AC[3] ; 4804 AC[3]_[MAG].EQV.Q, U 2707, 0060,7003,0000,1174,4156,4700,0400,0000,1443 ; 4805 NEXT INST ; 4806 ; 4807 ; 4808 ;HERE IF WE WANT TO SET NO DIVIDE ; 4809 =11011 U 0533, 2726,4443,0000,4174,4007,0700,0010,0000,0000 ; 4810 NODDIV: CALL [QDNEG] ;FIXUP AC TO AC+3 U 0537, 0127,4443,0000,4174,4467,0700,0000,0051,1000 ; 4811 NO DIVIDE ;ABORT DIVIDE ; 4812 U 2710, 0001,3446,0303,4174,4044,1700,0000,0000,0000 ; 4813 DDIVS: [AR]_[AR]*.5 LONG, ASHC, RETURN [1] ; 4814 .IFNOT/FULL ; 4815 1627: ; 4816 DDIV: UUO ; 4817 .ENDIF/FULL ; 4818 ; 4819 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 112 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 ARITHMETIC -- DIVIDE SUBROUTINE ; 4820 .TOC "ARITHMETIC -- DIVIDE SUBROUTINE" ; 4821 ; 4822 ;HERE IS THE SUBROUTINE TO DO DIVIDE ; 4823 ;ENTER WITH: ; 4824 ; AR!Q = D'END ; 4825 ; BR = D'SOR ; 4826 ;RETURN 2 WITH: ; 4827 ; AR = REMAINDER ; 4828 ; Q = QUOTIENT ; 4829 ;CALLER MUST CHECK FOR ZERO DIVIDE PRIOR TO CALL ; 4830 ; ; 4831 =1000 ; 4832 DIVSUB: Q_Q.AND.#, ;CLEAR SIGN BIT IN ; 4833 #/377777, ;MASK ; 4834 HOLD RIGHT, ;JUST CLEAR BIT 0 U 0510, 2711,4662,0000,4374,0007,0700,0010,0037,7777 ; 4835 CALL [DIVSGN] ;DO REAL DIVIDE U 0514, 0002,4443,0000,4174,4004,1700,0000,0000,0000 ; 4836 =1100 RETURN [2] ;ALL POSITIVE U 0515, 0002,2222,0000,4174,4004,1700,4000,0000,0000 ; 4837 =1101 Q_-Q, RETURN [2] ;-QUO +REM U 0516, 0517,2222,0000,4174,4007,0700,4000,0000,0000 ; 4838 =1110 Q_-Q ;ALL NEGATIVE U 0517, 0002,2441,0303,4174,4004,1700,4000,0000,0000 ; 4839 =1111 [AR]_-[AR], RETURN [2] ;NEGATIVE REMAINDER ; 4840 ; 4841 ;HERE IS THE INNER DIVIDE SUBROUTINE ; 4842 ;SAME SETUP AS DIVSUB ; 4843 ;RETURNS WITH AR AND Q POSITIVE AND ; 4844 ; 14 IF ALL POSITIVE ; 4845 ; 15 IF -QUO ; 4846 ; 16 IF ALL NEGATIVE ; 4847 ; 17 IF NEGATIVE REMAINDER ; 4848 ; 4849 BASIC DIV STEP "DEST/Q_Q*2, DIV, A/BR, B/AR, STEP SC" ; 4850 DIV STEP "BASIC DIV STEP, AD/A+B, DIVIDE/1" ; 4851 FIRST DIV STEP "BASIC DIV STEP, AD/B-A-.25, ADD .25" ; 4852 U 2711, 0444,3333,0003,4174,4007,0520,0000,0000,0000 ; 4853 DIVSGN: READ [AR], SKIP DP0 U 0444, 2713,4221,0004,4174,4007,0700,0000,0000,0000 ; 4854 =0 [ARX]_0, J/DVSUB2 ;REMAINDER IS POSITIVE U 0445, 0446,2222,0000,4174,4007,0621,4000,0000,0000 ; 4855 Q_-Q, SKIP AD.EQ.0 ;COMPLEMENT LOW WORD U 0446, 2712,7441,0303,4174,4007,0700,0000,0000,0000 ; 4856 =0 [AR]_.NOT.[AR], J/DVSUB1 ;COMPLEMENT HI WORD U 0447, 2712,2441,0303,4174,4007,0700,4000,0000,0000 ; 4857 [AR]_-[AR] ;TWO'S COMPLEMENT HI WORD SINCE ; 4858 ; LOW WORD WAS ZERO U 2712, 2713,3771,0004,4374,4007,0700,0000,0010,0000 ; 4859 DVSUB1: [ARX]_#, #/100000 ;REMAINDER IS NEGATIVE U 2713, 0450,3333,0005,4174,4007,0520,0000,0000,0000 ; 4860 DVSUB2: READ [BR], SKIP DP0 ;IS THE DIVISOR NEGATIVE ; 4861 =0 ; 4862 DVSUB3: [AR]_[AR]*.5 LONG, ;START TO PUT IN 9-CHIPS U 0450, 2715,3446,0303,4174,4007,0700,0000,0000,0000 ; 4863 J/DIVSET ;JOIN MAIN STREAM U 0451, 2714,2441,0505,4174,4007,0700,4000,0000,0000 ; 4864 [BR]_-[BR] ;COMPLEMENT DIVISOR ; 4865 [ARX]_[ARX].OR.#, ;ADJUST SIGN OF QUOTIENT U 2714, 0450,3551,0404,4374,4007,0700,0000,0004,0000 ; 4866 #/40000, J/DVSUB3 ;USE 9 CHIPS U 2715, 2716,3447,0303,4174,4007,0700,0000,0000,0000 ; 4867 DIVSET: [AR]_[AR]*.5 U 2716, 2717,3447,0505,4174,4007,0700,0000,0000,0000 ; 4868 [BR]_[BR]*.5 U 2717, 2720,3447,0505,4174,4007,0700,0000,0000,0000 ; 4869 [BR]_[BR]*.5 U 2720, 0452,1114,0503,4174,4067,0630,6000,0060,0000 ; 4870 FIRST DIV STEP ; 4871 ;HERE IS THE MAIN DIVIDE LOOP ; 4872 =0 U 0452, 0452,0114,0503,4174,4067,0630,2100,0060,0000 ; 4873 DIVIDE: DIV STEP, J/DIVIDE U 0453, 2721,3444,1717,4174,4067,0700,0100,0000,0000 ; 4874 [T1]_[T1]*2 LONG, DIVIDE/1, DIV U 2721, 0454,3447,0303,4174,4007,0520,0000,0000,0000 ; 4875 [AR]_[AR]*.5, SKIP DP0 ; 4876 =0 U 0454, 2722,3444,0303,4174,4007,0700,0000,0000,0000 ; 4877 FIX++: [AR]_[AR]*2 LONG, J/FIX1++ U 0455, 0454,0111,0503,4174,4007,0700,0000,0000,0000 ; 4878 [AR]_[AR]+[BR], J/FIX++ U 2722, 2723,3444,0303,4174,4007,0700,0000,0000,0000 ; 4879 FIX1++: [AR]_[AR]*2 LONG U 2723, 2724,4002,1200,4174,4007,0700,0000,0000,0000 ; 4880 Q_[MASK].AND.Q ; 4881 READ [ARX], 3T, ;RETURN TO 1 OF 4 PLACES ; 4882 DISP/1, ;BASED ON SIGN OF RESULT U 2724, 0014,3333,0004,4174,4000,1701,0000,0000,0000 ; 4883 J/14 ;RETURN ; 4884 ; 4885 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 113 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 ARITHMETIC -- DOUBLE DIVIDE SUBROUTINE ; 4886 .TOC "ARITHMETIC -- DOUBLE DIVIDE SUBROUTINE" ; 4887 .IF/FULL ; 4888 ;CALL WITH: ; 4889 ; AR!ARX!Q = 3 WORD DV'END ; 4890 ; BR!BRX = 2 WORD DV'SOR ; 4891 ;RETURN 2 WITH: ; 4892 ; AR!ARX = 2 WORD REMAINDER ; 4893 ; CORRECT IF POSITIVE (Q IS ODD) ; 4894 ; WRONG (BY BR!BRX) IF NEGATIVE (Q IS EVEN) ; 4895 ; Q = 1 WORD QUOTIENT ; 4896 ;CALLER MUST CHECK FOR ZERO DIVIDE PRIOR TO CALL ; 4897 ; ; 4898 ;NOTE: THIS SUBROUTINE ONLY WORKS FOR POSITIVE NUMBERS ; 4899 ; ; 4900 =0 ; 4901 ;HERE FOR NORMAL STARTUP ; 4902 DBLDIV: [ARX]_([ARX]-[BRX])*2 LONG, ;SUBTRACT LOW WORD U 0460, 2725,1114,0604,4174,4057,0700,4000,0000,0000 ; 4903 LSHC, J/DIVHI ;GO ENTER LOOP ; 4904 ;SKIP ENTRY POINT IF FINAL STEP IN PREVIOUS ENTRY WAS IN ERROR ; 4905 [ARX]_([ARX]+[BRX])*2 LONG, ;CORRECTION STEP U 0461, 2725,0114,0604,4174,4057,0700,0000,0000,0000 ; 4906 LSHC, J/DIVHI ;GO ENTER LOOP ; 4907 ; 4908 ;HERE IS DOUBLE DIVIDE LOOP ; 4909 DIVHI: AD/A+B, ;ADD (HARDWARE MAY OVERRIDE) ; 4910 A/BR, B/AR, ;OPERANDS ARE AR AND BR ; 4911 DEST/AD*2, ;SHIFT LEFT ; 4912 SHSTYLE/NORM, ;SET SHIFT PATHS (SEE DPE1) ; 4913 MULTI PREC/1, ;INJECT SAVED BITS U 2725, 0462,0115,0503,4174,4007,0630,2040,0060,0000 ; 4914 STEP SC ;COUNT DOWN LOOP ; 4915 =0 AD/A+B, ;ADD (HARDWARE MAY OVERRIDE) ; 4916 A/BRX, B/ARX, ;LOW WORDS ; 4917 DEST/Q_Q*2, ;SHIFT WHOLE MESS LEFT ; 4918 SHSTYLE/DIV, ;SET SHIFT PATHS (SEE DPE1) ; 4919 DIVIDE/1, ;SAVE BITS U 0462, 2725,0114,0604,4174,4067,0700,0100,0000,0000 ; 4920 J/DIVHI ;KEEP LOOPING ; 4921 ;HERE WHEN ALL DONE ; 4922 DEST/Q_Q*2, DIV, ;SHIFT IN LAST Q BIT ; 4923 DIVIDE/1, ;GENERATE BIT U 0463, 0002,4444,0002,4174,4064,1700,0100,0000,0000 ; 4924 B/HR, RETURN [2] ;ZERO HR AND RETURN ; 4925 ; 4926 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 114 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 ARITHMETIC -- SUBROUTINES FOR ARITHMETIC ; 4927 .TOC "ARITHMETIC -- SUBROUTINES FOR ARITHMETIC" ; 4928 ; 4929 ;QUAD WORD NEGATE ; 4930 ;ARGUMENT IN AC!AC1!AC2!AC3 ; 4931 ;LEAVES COPY OF AC!AC1 IN AR!Q ; 4932 ;RETURNS TO CALL!24 U 2726, 2727,1772,0000,1274,4007,0701,4000,0000,1443 ; 4933 QDNEG: Q_-AC[3] ; 4934 AC[3]_Q.AND.[MAG], ;PUT BACK LOW WORD U 2727, 0464,4003,0000,1174,4007,0621,0400,0000,1443 ; 4935 SKIP AD.EQ.0 ;SEE IF ANY CARRY ; 4936 =0 U 0464, 2732,7772,0000,1274,4007,0701,0000,0000,1442 ; 4937 COM2A: Q_.NOT.AC[2], J/COM2 ;CARRY--DO 1'S COMPLEMENT U 0465, 2730,1772,0000,1274,4007,0701,4000,0000,1442 ; 4938 Q_-AC[2] ;NEXT WORD ; 4939 AC[2]_Q.AND.[MAG], ;PUT BACK WORD U 2730, 0466,4003,0000,1174,4007,0621,0400,0000,1442 ; 4940 SKIP AD.EQ.0 ; 4941 =0 U 0466, 2733,7772,0000,1274,4007,0701,0000,0000,1441 ; 4942 COM1A: Q_.NOT.AC[1], J/COM1 U 0467, 2731,1772,0000,1274,4007,0701,4000,0000,1441 ; 4943 Q_-AC[1] ; 4944 AC[1]_Q.AND.[MAG], U 2731, 0470,4003,0000,1174,4007,0621,0400,0000,1441 ; 4945 SKIP AD.EQ.0 ; 4946 =0 U 0470, 2734,7771,0003,0274,4007,0700,0000,0000,0000 ; 4947 COM0A: [AR]_.NOT.AC, J/COM0 U 0471, 2734,1771,0003,0274,4007,0701,4000,0000,0000 ; 4948 [AR]_-AC, 3T, J/COM0 ; 4949 U 2732, 0466,4003,0000,1174,4007,0700,0400,0000,1442 ; 4950 COM2: AC[2]_Q.AND.[MAG], J/COM1A U 2733, 0470,4003,0000,1174,4007,0700,0400,0000,1441 ; 4951 COM1: AC[1]_Q.AND.[MAG], J/COM0A U 2734, 0024,3440,0303,0174,4004,1700,0400,0000,0000 ; 4952 COM0: AC_[AR], RETURN [24] ; 4953 .ENDIF/FULL ; 4954 ; 4955 ;DOUBLE WORD NEGATE ; 4956 ;ARGUMENT IN AR AND ARX ; 4957 ;RETURNS TO CALL!2 ; 4958 U 2735, 2736,4551,0404,4374,0007,0700,0000,0037,7777 ; 4959 DBLNEG: CLEAR ARX0 ;FLUSH DUPLICATE SIGN ; 4960 DBLNGA: [ARX]_-[ARX], ;FLIP LOW WORD U 2736, 0472,2441,0404,4174,4007,0621,4000,0000,0000 ; 4961 SKIP AD.EQ.0 ;SEE IF CARRY ; 4962 =0 [AR]_.NOT.[AR], ;NO CARRY-- 1 COMP U 0472, 1572,7441,0303,4174,4467,0700,0000,0001,0001 ; 4963 AD FLAGS, J/CLARX0 ;CLEAR LOW SIGN ; 4964 [AR]_-[AR], ;CARRY U 0473, 1572,2441,0303,4174,4467,0701,4000,0001,0001 ; 4965 AD FLAGS, 3T, J/CLARX0 ; 4966 ; 4967 ;SAME THING BUT DOES NOT SET PC FLAGS U 2737, 0500,2441,0404,4174,4007,0621,4000,0000,0000 ; 4968 DBLNG1: [ARX]_-[ARX], SKIP AD.EQ.0 U 0500, 1572,7441,0303,4174,4007,0700,0000,0000,0000 ; 4969 =0 [AR]_.NOT.[AR], J/CLARX0 U 0501, 1572,2441,0303,4174,4007,0700,4000,0000,0000 ; 4970 [AR]_-[AR], J/CLARX0 ; 4971 ; 4972 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 115 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 ARITHMETIC -- SUBROUTINES FOR ARITHMETIC ; 4973 .NOBIN ; 4974 .TOC "BYTE GROUP -- IBP, ILDB, LDB, IDPB, DPB" ; 4975 ; 4976 ; 4977 ;ALL FIVE INSTRUCTIONS OF THIS GROUP ARE CALLED WITH THE BYTE POINTER ; 4978 ;IN THE AR. ALL INSTRUCTIONS SHARE COMMON SUBROUTINES. ; 4979 ; 4980 ;IBP OR ADJBP ; 4981 ;IBP IF AC#0, ADJBP OTHERWISE ; 4982 ; HERE WITH THE BASE POINTER IN AR ; 4983 ; 4984 ;HERE IS A MACRO TO DO IBP. WHAT HAPPENS IS: ; 4985 ; THE AR IS PUT ON THE DP. ; 4986 ; THE BR IS LOADED FROM THE DP WITH BITS 0-5 FROM SCAD ; 4987 ; THE SCAD COMPUTES P-S ; 4988 ; IBPS IS CALLED WITH A 4-WAY DISPATCH ON SCAD0 AND FIRST-PART-DONE ; 4989 ;THE MACRO IS WRITTEN WITH SEVERAL SUB-MACROS BECAUSE OF RESTRICTIONS ; 4990 ; IN THE MICRO ASSEMBLER ; 4991 ; 4992 IBP DP "AD/D, DEST/A, A/AR, B/BR, DBUS/DBM, DBM/DP, BYTE/BYTE1" ; 4993 IBP SCAD "SCAD/A-B, SCADA/BYTE1, SCADB/SIZE" ; 4994 IBP SPEC "SCAD DISP, SKIP FPD" ; 4995 CALL IBP "IBP DP, IBP SCAD, IBP SPEC, CALL [IBPS], DT/3T" ; 4996 ; 4997 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" ; 4998 ; 4999 ;THE FOLLOWING MACRO IS USED FOR COUNTING SHIFTS IN THE BYTE ROUTINES. IT ; 5000 ; USES THE FE AND COUNTS BY 8. NOTE: BYTE STEP IS A 2S WEIGHT SKIP NOT 1S. ; 5001 BYTE STEP "SCAD/A+B,SCADA/S#,S#/1770,SCADB/FE,LOAD FE, 3T,SCAD DISP" ; 5002 ; 5003 .BIN ; 5004 ; 5005 .DCODE D 0133, 0015,1610,1100 ; 5006 133: R, AC, J/IBP ;OR ADJBP D 0134, 0000,1620,1500 ; 5007 134: R,W TEST, J/ILDB ;CAN'T USE RPW BECAUSE OF FPD D 0135, 0000,1624,1100 ; 5008 R, J/LDB D 0136, 0000,1630,1500 ; 5009 R,W TEST, J/IDPB D 0137, 0000,1634,1100 ; 5010 R, J/DPB ; 5011 .UCODE ; 5012 1610: U 1610, 0520,4443,0000,4174,4007,0360,0000,0000,0000 ; 5013 IBP: SKIP IF AC0 ;SEE IF ADJBP ; 5014 =000 WORK[ADJPTR]_[AR], ;SAVE POINTER U 0520, 2775,3333,0003,7174,4007,0700,0400,0000,0223 ; 5015 J/ADJBP ;GO ADJUST BYTE POINTER U 0521, 0540,3770,0305,4334,4016,7351,0010,0033,6000 ; 5016 =001 CALL IBP ;BUMP BYTE POINTER U 0525, 0070,3443,0100,4174,4156,4700,0200,0014,0012 ; 5017 =101 DONE ;POINTER STORED ; 5018 = ; 5019 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 116 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 BYTE GROUP -- IBP, ILDB, LDB, IDPB, DPB ; 5020 ; 5021 1620: U 1620, 0540,3770,0305,4334,4016,7351,0010,0033,6000 ; 5022 ILDB: CALL IBP ;BUMP BYTE POINTER ; 5023 1624: ; 5024 LDB: READ [AR], ;LOOK AT POINTER ; 5025 LOAD BYTE EA, FE_P, 3T, ;GET STUFF OUT OF POINTER U 1624, 2745,3333,0003,4174,4217,0701,1010,0073,0500 ; 5026 CALL [BYTEA] ;COMPUTE EFFECTIVE ADDRESS U 1625, 0474,3443,0100,4174,4007,0700,0200,0014,0012 ; 5027 1625: VMA_[PC], FETCH ;START FETCH OF NEXT INST ; 5028 =0* READ [AR], ;LOOK AT POINTER ; 5029 FE_FE.AND.S#, S#/0770, ;MASK OUT JUNK IN FE ; 5030 BYTE DISP, ;DISPATCH ON BYTE SIZE U 0474, 0550,3333,0003,4174,4006,5701,1010,0051,0770 ; 5031 CALL [LDB1] ;GET BYTE ; 5032 AC_[AR], CLR FPD, ;STORE AC U 0476, 0127,3440,0303,0174,4467,0700,0400,0005,0000 ; 5033 J/NIDISP ;GO DO NEXT INST ; 5034 ; 5035 1630: U 1630, 0540,3770,0305,4334,4016,7351,0010,0033,6000 ; 5036 IDPB: CALL IBP ;BUMP BYTE POINTER ; 5037 1634: U 1634, 2740,3775,0004,0274,4007,0701,0000,0000,0000 ; 5038 DPB: [ARX]_AC*2 ;PUT 7 BIT BYTE IN 28-34 ; 5039 AD/A, A/ARX, SCAD/A, ;PUT THE BYTE INTO ; 5040 SCADA/BYTE5, 3T, ; INTO THE FE REGISTER U 2740, 2741,3443,0400,4174,4007,0701,1000,0077,0000 ; 5041 LOAD FE ; FE REGISTER U 2741, 0504,3771,0004,0276,6007,0700,0000,0000,0000 ; 5042 [ARX]_AC ;PUT BYTE IN ARX ; 5043 =100 READ [AR], ;LOOK AT BYTE POINTER ; 5044 LOAD BYTE EA, ;LOAD UP EFFECTIVE ADDRESS U 0504, 2745,3333,0003,4174,4217,0700,0010,0000,0500 ; 5045 CALL [BYTEA] ;COMPUTE EFFECTIVE ADDRESS ; 5046 READ [AR], ;LOOK AT POINTER AGAIN ; 5047 BYTE DISP, ;DISPATCH ON SIZE U 0505, 0560,3333,0003,4174,4006,5701,0010,0000,0000 ; 5048 CALL [DPB1] ;GO STORE BYTE U 0507, 1400,4443,0000,4174,4467,0700,0000,0005,0000 ; 5049 =111 CLR FPD, J/DONE ;ALL DONE ; 5050 = ; 5051 ; 5052 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 117 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 BYTE GROUP -- INCREMENT BYTE POINTER SUBROUTINE ; 5053 .TOC "BYTE GROUP -- INCREMENT BYTE POINTER SUBROUTINE" ; 5054 ; 5055 =00 U 0540, 2743,3441,0503,4174,4007,0700,0200,0003,0002 ; 5056 IBPS: [AR]_[BR], START WRITE, J/IBPX ;NO OVERFLOW, BR HAS ANSWER U 0541, 0004,4443,0000,4174,4004,1700,0000,0000,0000 ; 5057 RETURN [4] ;FIRST PART DONE SET U 0542, 2742,3770,0503,4334,4017,0700,0000,0032,6000 ; 5058 SET P TO 36-S, J/NXTWRD ;WORD OVERFLOW U 0543, 0004,4443,0000,4174,4004,1700,0000,0000,0000 ; 5059 RETURN [4] ;FPD WAS SET IGNORE OVERFLOW ; 5060 ; AND RETURN ; 5061 U 2742, 2743,0111,0703,4170,4007,0700,0200,0003,0002 ; 5062 NXTWRD: [AR]_[AR]+1, HOLD LEFT, START WRITE ;BUMP Y AND RETURN U 2743, 0004,3333,0003,4175,5004,1701,0200,0000,0002 ; 5063 IBPX: MEM WRITE, MEM_[AR], RETURN [4] ; 5064 ; 5065 ; 5066 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 118 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 BYTE GROUP -- BYTE EFFECTIVE ADDRESS EVALUATOR ; 5067 .TOC "BYTE GROUP -- BYTE EFFECTIVE ADDRESS EVALUATOR" ; 5068 ; 5069 ;ENTER WITH POINTER IN AR ; 5070 ;RETURN1 WITH (EA) IN VMA AND WORD IN BR ; 5071 BYTEAS: EA MODE DISP, ;HERE TO AVOID FPD U 2744, 0530,4443,0000,2174,4006,6700,0000,0000,0000 ; 5072 J/BYTEA0 ;GO COMPUTE EA ; 5073 BYTEA: SET FPD, ;SET FIRST-PART-DONE U 2745, 0530,4443,0000,2174,4466,6700,0000,0003,0000 ; 5074 EA MODE DISP ;DISPATCH ; 5075 =100* ; 5076 BYTEA0: VMA_[AR]+XR, ;INDEXING ; 5077 START READ, ;FETCH DATA WORD ; 5078 PXCT BYTE DATA, ;FOR PXCT U 0530, 2747,0553,0300,2274,4007,0700,0200,0004,0712 ; 5079 J/BYTFET ;GO WAIT ; 5080 VMA_[AR], ;PLAIN ; 5081 START READ, ;START CYCLE ; 5082 PXCT BYTE DATA, ;FOR PXCT U 0532, 2747,3443,0300,4174,4007,0700,0200,0004,0712 ; 5083 J/BYTFET ;GO WAIT ; 5084 VMA_[AR]+XR, ;BOTH ; 5085 START READ, ;START CYCLE ; 5086 PXCT BYTE PTR EA, ;FOR PXCT U 0534, 2746,0553,0300,2274,4007,0700,0200,0004,0512 ; 5087 J/BYTIND ;GO DO INDIRECT ; 5088 VMA_[AR], ;JUST @ ; 5089 START READ, ;START READ U 0536, 2746,3443,0300,4174,4007,0700,0200,0004,0512 ; 5090 PXCT BYTE PTR EA ;FOR PXCT ; 5091 BYTIND: MEM READ, ;WAIT FOR @ WORD ; 5092 [AR]_MEM, ;PUT IN AR ; 5093 HOLD LEFT, ;JUST IN RH (SAVE P & S) ; 5094 LOAD BYTE EA, ;LOOP BACK U 2746, 2744,3771,0003,4361,5217,0700,0200,0000,0502 ; 5095 J/BYTEAS ; .. ; 5096 ; 5097 BYTFET: MEM READ, ;WAIT FOR BYTE DATA ; 5098 [BR]_MEM.AND.MASK, ; WORD. UNSIGNED U 2747, 0001,4551,1205,4365,5004,1700,0200,0000,0002 ; 5099 RETURN [1] ;RETURN TO CALLER ; 5100 ; 5101 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 119 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 BYTE GROUP -- LOAD BYTE SUBROUTINE ; 5102 .TOC "BYTE GROUP -- LOAD BYTE SUBROUTINE" ; 5103 ; 5104 ;CALL WITH: ; 5105 ; WORD IN BR ; 5106 ; POINTER IN AR ; 5107 ; P IN FE ; 5108 ; BYTE DISPATCH ; 5109 ;RETURN2 WITH BYTE IN AR ; 5110 LDB SCAD "SCAD/A,BYTE/BYTE5" ; 5111 7-BIT LDB "AD/D,DBUS/DBM,DBM/DP,DEST/A,A/BR,B/BR, LDB SCAD" ; 5112 ; 5113 =000 ; 5114 LDB1: GEN 17-FE, 3T, ;GO SEE IF ALL THE BITS ; 5115 SCAD DISP, ; ARE IN THE LEFT HALF U 0550, 0544,4443,0000,4174,4006,7701,0000,0031,0210 ; 5116 J/LDBSWP ;GO TO LDBSWP & SKIP IF LH ; 5117 ; 5118 ;HERE ARE THE 7-BIT BYTES U 0551, 2750,3770,0505,4334,4057,0700,0000,0073,0000 ; 5119 =001 7-BIT LDB, SCADA/BYTE1, J/LDB7 U 0552, 2750,3770,0505,4334,4057,0700,0000,0074,0000 ; 5120 =010 7-BIT LDB, SCADA/BYTE2, J/LDB7 U 0554, 2750,3770,0505,4334,4057,0700,0000,0075,0000 ; 5121 =100 7-BIT LDB, SCADA/BYTE3, J/LDB7 U 0555, 2750,3770,0505,4334,4057,0700,0000,0076,0000 ; 5122 =101 7-BIT LDB, SCADA/BYTE4, J/LDB7 U 0557, 2750,3770,0505,4334,4057,0700,0000,0077,0000 ; 5123 =111 7-BIT LDB, SCADA/BYTE5, J/LDB7 ; 5124 = ; 5125 ; 5126 ;FOR 7-BIT BYTES WE HAVE BYTE IN BR 28-35 AND JUNK IN REST OF BR. ; 5127 ; WE JUST MASK THE SELECTED BYTE AND SHIFT ONE PLACE RIGHT. ; 5128 LDB7: AD/ZERO,RSRC/DA, ;LH_ZERO, RH_D.AND.A ; 5129 DBUS/DBM,DBM/#,#/376, ;D INPUT IS 376 ; 5130 A/BR, ;A IS BR ; 5131 B/AR, ;PUT RESULT IN AR ; 5132 DEST/AD*.5, 3T, ;SHIFT RESULT 1 PLACE U 2750, 0002,4257,0503,4374,4004,1701,0000,0000,0376 ; 5133 RETURN [2] ;RETURN TO CALLER ; 5134 ; 5135 ;HERE FOR NORMAL BYTES ; 5136 =00 ; 5137 LDBSWP: FE_-FE, ;MAKE P NEGATIVE U 0544, 2752,4443,0000,4174,4007,0700,1000,0031,0000 ; 5138 J/LDBSH ;JOIN MAIN LDB LOOP U 0546, 2751,3770,0505,4344,4007,0700,0000,0000,0000 ; 5139 =10 [BR]_[BR] SWAP ;SHIFT 18 STEPS ; 5140 = ; 5141 [BR]_0, HOLD RIGHT, ;PUT ZERO IN LH U 2751, 2752,4221,0005,4174,0007,0700,1000,0031,0220 ; 5142 FE_-FE+S#, S#/220 ;UPDATE FE ; 5143 LDBSH: [BR]_[BR]*.5, ;SHIFT RIGHT ; 5144 FE_FE+10, ;UPDATE THE FE U 2752, 2753,3447,0505,4174,4007,0700,1020,0041,0010 ; 5145 MULTI SHIFT/1 ;FAST SHIFT U 2753, 2754,3333,0003,4174,4007,0700,1000,0031,7770 ; 5146 READ [AR], FE_-S-10 ;GET SIZE U 2754, 2755,4222,0000,4174,4007,0700,0000,0000,0000 ; 5147 Q_0 ;CLEAR Q ; 5148 GEN MSK [AR], ;PUT MASK IN Q (WIPEOUT AR) ; 5149 FE_FE+10, ;COUNT UP ALL STEPS U 2755, 2756,4224,0003,4174,4027,0700,1020,0041,0010 ; 5150 MULTI SHIFT/1 ;FAST SHIFT U 2756, 2757,4224,0003,4174,4027,0700,0000,0000,0000 ; 5151 GEN MSK [AR] ;ONE MORE BIT U 2757, 0002,4001,0503,4174,4004,1700,0000,0000,0000 ; 5152 [AR]_[BR].AND.Q, RETURN [2] ; 5153 ; 5154 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 120 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 BYTE GROUP -- LOAD BYTE SUBROUTINE ; 5155 .NOBIN ; 5156 .TOC "BYTE GROUP -- DEPOSIT BYTE IN MEMORY" ; 5157 ; 5158 ;FLOW FOR DPB (NOT 7-BIT BYTE) ; 5159 ; ; 5160 ;FIRST SET ARX TO -1 AND Q TO ZERO AND ROTATE LEFT ; 5161 ; S PLACES GIVING: ; 5162 ; 5163 ; ARX Q ; 5164 ; +------------------!------------------+ ; 5165 ; !111111111111000000!000000000000111111! ; 5166 ; +------------------!------------------+ ; 5167 ; !<--->! ; 5168 ; S BITS ; 5169 ; ; 5170 ; 5171 ;NOW THE AC IS LOAD INTO THE ARX AND BOTH THE ARX AND Q ; 5172 ; ARE SHIFTED LEFT P BITS GIVING: ; 5173 ; 5174 ; +------------------!------------------+ ; 5175 ; !??????BBBBBB000000!000000111111000000! ; 5176 ; +------------------!------------------+ ; 5177 ; <----><----> <----><----> ; 5178 ; JUNK BYTE MASK P BITS ; 5179 ; ; 5180 ; 5181 ;AT THIS POINT WE ARE ALMOST DONE. WE NEED TO AND ; 5182 ; THE BR WITH .NOT. Q TO ZERO THE BITS FOR THE BYTE ; 5183 ; AND AND ARX WITH Q TO MASK OUT THE JUNK THIS GIVES: ; 5184 ; ; 5185 ; ARX ; 5186 ; +------------------+ ; 5187 ; !000000BBBBBB000000! ; 5188 ; +------------------! ; 5189 ; ; 5190 ; AR ; 5191 ; +------------------+ ; 5192 ; !DDDDDD000000DDDDDD! ; 5193 ; +------------------+ ; 5194 ; ; 5195 ;WE NOW OR THE AR WITH ARX TO GENERATE THE ANSWER. ; 5196 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 121 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 BYTE GROUP -- DEPOSIT BYTE IN MEMORY ; 5197 ; 5198 .BIN ; 5199 ; 5200 ;DEPOSIT BYTE SUBROUTINE ; 5201 ;CALL WITH: ; 5202 ; BYTE POINTER IN AR ; 5203 ; BYTE TO STORE IN ARX ; 5204 ; WORD TO MERGE WITH IN BR ; 5205 ; (E) OF BYTE POINTER IN VMA ; 5206 ; 7-BIT BYTE IN FE ; 5207 ; BYTE DISPATCH ; 5208 ;RETURN2 WITH BYTE IN MEMORY ; 5209 ; ; 5210 DPB SCAD "SCAD/A+B,SCADA/S#,SCADB/FE,S#/0" ; 5211 7-BIT DPB "AD/D,DEST/A,A/BR,DBUS/DBM,DBM/DP,B/AR, DPB SCAD" ; 5212 ; 5213 =000 U 0560, 2762,3333,0003,4174,4007,0700,1000,0031,7770 ; 5214 DPB1: READ [AR], FE_-S-10, J/DPBSLO ;NOT SPECIAL U 0561, 2760,3770,0503,4334,4017,0700,0000,0041,0000 ; 5215 =001 7-BIT DPB, BYTE/BYTE1, J/DPB7 U 0562, 2760,3770,0503,4334,4027,0700,0000,0041,0000 ; 5216 =010 7-BIT DPB, BYTE/BYTE2, J/DPB7 U 0564, 2760,3770,0503,4334,4037,0700,0000,0041,0000 ; 5217 =100 7-BIT DPB, BYTE/BYTE3, J/DPB7 U 0565, 2760,3770,0503,4334,4047,0700,0000,0041,0000 ; 5218 =101 7-BIT DPB, BYTE/BYTE4, J/DPB7 U 0567, 2760,3770,0503,4334,4057,0700,0000,0041,0000 ; 5219 =111 7-BIT DPB, BYTE/BYTE5, J/DPB7 ; 5220 = U 2760, 2761,3447,1200,4174,4007,0700,0200,0003,0002 ; 5221 DPB7: [MAG]_[MASK]*.5, START WRITE U 2761, 0002,3333,0003,4175,5004,1701,0200,0000,0002 ; 5222 MEM WRITE, MEM_[AR], RETURN [2] ; 5223 ; 5224 U 2762, 2763,4222,0000,4174,4007,0700,0000,0000,0000 ; 5225 DPBSLO: Q_0 ;CLEAR Q ; 5226 GEN MSK [MAG], ;GENERATE MASK IN Q (ZAP MAG) ; 5227 FE_FE+10, ;COUNT STEPS U 2763, 2764,4224,0000,4174,4027,0700,1020,0041,0010 ; 5228 MULTI SHIFT/1 ;FAST SHIFT U 2764, 2765,4224,0000,4174,4027,0700,0000,0000,0000 ; 5229 GEN MSK [MAG] ;ONE MORE BITS U 2765, 2766,3333,0003,4174,4007,0701,1000,0073,0000 ; 5230 READ [AR], 3T, FE_P ;AMOUNT TO SHIFT U 2766, 2767,4443,0000,4174,4007,0700,1000,0051,0770 ; 5231 FE_FE.AND.S#, S#/0770 ;MASK OUT JUNK ; 5232 Q_Q.AND.[MASK], ;CLEAR BITS 36 AND 37 U 2767, 2770,4002,1200,4174,4007,0700,1000,0031,0000 ; 5233 FE_-FE ;MINUS NUMBER OF STEPS ; 5234 [ARX]_[ARX]*2 LONG, ;SHIFT BYTE AND MASK ; 5235 FE_FE+10, ;COUNT OUT STEPS U 2770, 2771,3444,0404,4174,4007,0700,1020,0041,0010 ; 5236 MULTI SHIFT/1 ;FAST SHIFT ; 5237 ;AT THIS POINT WE HAVE DONE ALL THE SHIFTING WE NEED. THE BYTE IS ; 5238 ; IN ARX AND THE MASK IS IN Q. U 2771, 2772,7221,0003,4174,4007,0700,0000,0000,0000 ; 5239 [AR]_.NOT.Q U 2772, 2773,4111,0503,4174,4007,0700,0000,0000,0000 ; 5240 [AR]_[AR].AND.[BR] U 2773, 2774,4001,0404,4174,4007,0700,0000,0000,0000 ; 5241 [ARX]_[ARX].AND.Q ; 5242 [AR]_[AR].OR.[ARX], U 2774, 2760,3111,0403,4174,4007,0700,0000,0000,0000 ; 5243 J/DPB7 ; 5244 ; 5245 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 122 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 BYTE GROUP -- ADJUST BYTE POINTER ; 5246 .TOC "BYTE GROUP -- ADJUST BYTE POINTER" ; 5247 .IF/FULL ; 5248 ;FIRST THE NUMBER OF BYTES PER WORD IS COMPUTED FROM THE ; 5249 ; FOLLOWING FORMULA: ; 5250 ; ; 5251 ; ( P ) ( 36-P ) ; 5252 ; BYTES PER WORD = INT( --- ) + INT( ---- ) ; 5253 ; ( S ) ( S ) ; 5254 ; ; 5255 ;THIS GIVES 2 BYTES PER WORD FOR THE FOLLOWING 12 BIT BYTE: ; 5256 ; !=====================================! ; 5257 ; ! 6 !////////////! 12 ! 6 ! ; 5258 ; !=====================================! ; 5259 ; P=18 AND S=12 ; 5260 ; ; 5261 ;WE GET 3 BYTES/WORD IF THE BYTES FALL IN THE NATURAL PLACE: ; 5262 ; !=====================================! ; 5263 ; ! 12 !\\\\\\\\\\\\! 12 ! ; 5264 ; !=====================================! ; 5265 ; P=12 AND S=12 ; 5266 ; 5267 ;WE COME HERE WITH THE BYTE POINTER IN AR, AND ADJPTR ; 5268 ADJBP: [ARX]_[AR] SWAP, ;MOVE SIZE OVER U 2775, 0502,3770,0304,4344,4007,0700,2000,0071,0011 ; 5269 SC_9. ;READY TO SHIFT ; 5270 =0 ; 5271 ADJBP0: [ARX]_[ARX]*.5, ;SHIFT P OVER ; 5272 STEP SC, ; .. U 0502, 0502,3447,0404,4174,4007,0630,2000,0060,0000 ; 5273 J/ADJBP0 ; .. ; 5274 [ARX]_([ARX].AND.#)*.5, ;SHIFT AND MASK ; 5275 3T, ;WAIT U 0503, 2776,4557,0404,4374,4007,0701,0000,0000,0176 ; 5276 #/176 ;6 BIT MASK ; 5277 [ARX]_#, ;CLEAR LH ; 5278 #/0, ; .. U 2776, 2777,3771,0004,4374,0007,0700,0000,0000,0000 ; 5279 HOLD RIGHT ; .. U 2777, 3000,3333,0004,7174,4007,0700,0400,0000,0221 ; 5280 WORK[ADJP]_[ARX] ;SAVE P ; 5281 [BR]_([AR].AND.#)*.5, ;START ON S ; 5282 3T, ;EXTRACT S U 3000, 3001,4557,0305,4374,4007,0701,0000,0000,7700 ; 5283 #/007700 ; .. ; 5284 [BR]_[BR] SWAP, ;SHIFT 18 PLACES U 3001, 3002,3770,0505,4344,4007,0700,2000,0071,0003 ; 5285 SC_3 ; .. ; 5286 [BR]_0, ;CLEAR LH U 3002, 0512,4221,0005,4174,0007,0700,0000,0000,0000 ; 5287 HOLD RIGHT ; .. ; 5288 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 123 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 BYTE GROUP -- ADJUST BYTE POINTER ; 5289 ; 5290 =0 ; 5291 ADJBP1: [BR]_[BR]*.5, ;SHIFT S OVER ; 5292 STEP SC, ; .. U 0512, 0512,3447,0505,4174,4007,0630,2000,0060,0000 ; 5293 J/ADJBP1 ; .. ; 5294 WORK[ADJS]_[BR], ;SALT S AWAY U 0513, 0522,3333,0005,7174,4007,0621,0400,0000,0222 ; 5295 SKIP AD.EQ.0 ;SEE IF ZERO ; 5296 =0 Q_[ARX], ;DIVIDE P BY S ; 5297 SC_34., ;STEP COUNT U 0522, 0524,3442,0400,4174,4007,0700,2000,0071,0042 ; 5298 J/ADJBP2 ;SKIP NEXT WORD U 0523, 1404,3771,0003,7274,4007,0701,0000,0000,0223 ; 5299 [AR]_WORK[ADJPTR], J/MOVE ;S=0 -- SAME AS MOVE ; 5300 =0* ; 5301 ADJBP2: [AR]_#, ;FILL AR WITH SIGN BITS ; 5302 #/0, ;POSITIVE U 0524, 0510,3771,0003,4374,4007,0700,0010,0000,0000 ; 5303 CALL [DIVSUB] ;GO DIVIDE U 0526, 3003,3223,0000,7174,4007,0700,0400,0000,0224 ; 5304 WORK[ADJQ1]_Q ;SAVE QUOTIENT ; 5305 Q_#, ;COMPUTE (36-P)/S ; 5306 #/36., ; .. U 3003, 3004,3772,0000,4370,4007,0700,0000,0000,0044 ; 5307 HOLD LEFT ;SMALL ANSWER U 3004, 3005,1662,0000,7274,4007,0701,4000,0000,0221 ; 5308 Q_Q-WORK[ADJP] ;SUBTRACT P U 3005, 3006,3771,0005,7274,4007,0701,0000,0000,0222 ; 5309 [BR]_WORK[ADJS] ;DIVIDE BY S U 3006, 0545,4443,0000,4174,4007,0700,2000,0071,0042 ; 5310 SC_34. ;STEP COUNT ; 5311 =0* [AR]_#, ;MORE SIGN BITS ; 5312 #/0, ; .. U 0545, 0510,3771,0003,4374,4007,0700,0010,0000,0000 ; 5313 CALL [DIVSUB] ;GO DIVIDE U 0547, 3007,3333,0003,7174,4007,0700,0400,0000,0225 ; 5314 WORK[ADJR2]_[AR] ;SAVE REMAINDER ; 5315 [AR]_#, ;ASSUME NEGATIVE ADJ U 3007, 3010,3771,0003,4374,4007,0700,0000,0077,7777 ; 5316 #/777777 ;EXTEND SIGN ; 5317 AD/D+Q, ;BR_(P/S)+((36-P)/S) ; 5318 DEST/AD, ; .. ; 5319 B/BR, ; .. ; 5320 RAMADR/#, ; .. ; 5321 DBUS/RAM, ; .. ; 5322 WORK/ADJQ1, ; .. ; 5323 4T, ; .. U 3010, 0570,0661,0005,7274,4007,0622,0000,0000,0224 ; 5324 SKIP AD.EQ.0 ;SEE IF ZERO ; 5325 =0 Q_Q+AC, ;GET ADJUSTMENT ; 5326 SC_34., ;STEP COUNT ; 5327 SKIP DP0, ;GO DO DIVIDE ; 5328 4T, ;WAIT FOR DP U 0570, 0574,0662,0000,0274,4007,0522,2000,0071,0042 ; 5329 J/ADJBP3 ;BELOW U 0571, 0127,4443,0000,4174,4467,0700,0000,0051,1000 ; 5330 NO DIVIDE ;0 BYTES/WORD ; 5331 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 124 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 BYTE GROUP -- ADJUST BYTE POINTER ; 5332 ; 5333 ;WE NOW DIVIDE THE ADJUSTMENT BY THE BYTES PER WORD AND FORCE THE ; 5334 ; REMAINDER (R) TO BE A POSITIVE NUMBER (MUST NOT BE ZERO). THE ; 5335 ; QUOTIENT IS ADDED TO THE Y FIELD IN THE BYTE POINTER AND THE NEW ; 5336 ; P FIELD IS COMPUTED BY: ; 5337 ; ; 5338 ; ( ( 36-P )) ; 5339 ; NEW P = 36-((R * S) + RMDR( ---- )) ; 5340 ; ( ( S )) ; 5341 ; ; 5342 ;WE NOW HAVE BYTES/WORD IN BR AND ADJUSTMENT IN Q. DIVIDE TO GET ; 5343 ; WORDS TO ADJUST BY. ; 5344 =00 ; 5345 ADJBP3: [AR]_#, ;POSITIVE ADJUSTMENT U 0574, 0575,3771,0003,4374,4007,0700,0000,0000,0000 ; 5346 #/0. ; 5347 WORK[ADJBPW]_[BR], ;SAVE BYTES/WORD & COMPUTE U 0575, 0510,3333,0005,7174,4007,0700,0410,0000,0226 ; 5348 CALL [DIVSUB] ; ADJ/(BYTES/WORD) ; 5349 ;WE NOW WANT TO ADJUST THE REMAINDER SO THAT IT IS POSITIVE ; 5350 =11 Q_#, ;ONLY RIGHT HALF ; 5351 #/0, ; .. U 0577, 3011,3772,0000,4374,0007,0700,0000,0000,0000 ; 5352 HOLD RIGHT ; .. ; 5353 = ; 5354 READ [AR], ;ALREADY + U 3011, 0572,3333,0003,4174,4007,0421,0000,0000,0000 ; 5355 SKIP AD.LE.0 ; .. ; 5356 =0 ; 5357 ADJBP4: AD/D+Q, ;ADD Q TO POINTER AND STORE ; 5358 DEST/AD, ; .. ; 5359 B/BR, ;RESULT TO BR ; 5360 RAMADR/#, ;PTR IS IN RAM ; 5361 DBUS/RAM, ; .. ; 5362 WORK/ADJPTR, ; .. ; 5363 INH CRY18, ;JUST RH ; 5364 3T, ;WAIT FOR RAM U 0572, 3013,0661,0005,7274,4407,0701,0000,0000,0223 ; 5365 J/ADJBP5 ;CONTINUE BELOW ; 5366 Q_Q-1, ;NO--MAKE Q SMALLER U 0573, 3012,1002,0700,4170,4007,0700,4000,0000,0000 ; 5367 HOLD LEFT ; .. ; 5368 [AR]_[AR]+WORK[ADJBPW], ;MAKE REM BIGGER U 3012, 0572,0551,0303,7274,4007,0701,0000,0000,0226 ; 5369 J/ADJBP4 ;NOW HAVE + REMAINDER ; 5370 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 125 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 BYTE GROUP -- ADJUST BYTE POINTER ; 5371 ; 5372 ADJBP5: [BRX]_[AR], ;COMPUTE R*S U 3013, 3014,3441,0306,4174,4007,0700,2000,0071,0043 ; 5373 SC_35. ;STEP COUNT U 3014, 0602,3772,0000,7274,4007,0701,0000,0000,0222 ; 5374 Q_WORK[ADJS] ;GET S ; 5375 =01* [BRX]_[BRX]*.5 LONG, ;SHIFT OVER U 0602, 2646,3446,0606,4174,4007,0700,0010,0000,0000 ; 5376 CALL [MULSUB] ; .. ; 5377 AD/D+Q, ;AR_(R*S)+RMDR(36-P)/S ; 5378 DEST/AD, ; .. ; 5379 B/AR, ; .. ; 5380 RAMADR/#, ; .. ; 5381 3T, ; .. ; 5382 DBUS/RAM, ; .. U 0606, 3015,0661,0003,7274,4007,0701,0000,0000,0225 ; 5383 WORK/ADJR2 ; .. ; 5384 [AR]_(#-[AR])*2, ;COMPUTE 36-AR ; 5385 3T, ;AND START LEFT U 3015, 3016,2555,0303,4374,4007,0701,4000,0000,0044 ; 5386 #/36. ; .. ; 5387 [AR]_[AR] SWAP, ;PUT THE POSITION BACK U 3016, 3017,3770,0303,4344,4007,0700,2000,0071,0011 ; 5388 SC_9. ; .. ; 5389 [AR]_#, ;CLEAR JUNK FROM RH ; 5390 #/0, ; .. U 3017, 0600,3771,0003,4370,4007,0700,0000,0000,0000 ; 5391 HOLD LEFT ; .. ; 5392 =0 ; 5393 ADJBP6: [AR]_[AR]*2, ;LOOP OVER ALL BITS ; 5394 STEP SC, ; .. U 0600, 0600,3445,0303,4174,4007,0630,2000,0060,0000 ; 5395 J/ADJBP6 ; .. ; 5396 [BR]_[BR].AND.#, ; .. ; 5397 #/007777, ; .. U 0601, 3020,4551,0505,4374,0007,0700,0000,0000,7777 ; 5398 HOLD RIGHT ; .. ; 5399 AC_[AR].OR.[BR], ;ALL DONE U 3020, 1400,3113,0305,0174,4007,0700,0400,0000,0000 ; 5400 J/DONE ; 5401 .IFNOT/FULL ; 5402 ; 5403 ADJBP: UUO ;NO ADJBP IN SMALL ; 5404 ; MICROCODE ; 5405 .ENDIF/FULL ; 5406 ; 5407 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 126 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 BYTE GROUP -- ADJUST BYTE POINTER ; 5408 .NOBIN ; 5409 .TOC "BLT" ; 5410 ; 5411 ;THIS CODE PROVIDES A GUARANTEED RESULT IN AC ON COMPLETION OF ; 5412 ; THE TRANSFER (EXCEPT IN THE CASE AC IS PART OF BUT NOT THE LAST WORD ; 5413 ; OF THE DESTINATION BLOCK). WHEN AC IS NOT PART OF THE DESTINATION ; 5414 ; BLOCK, IT IS LEFT CONTAINING THE ADDRESSES OF THE FIRST WORD FOLLOWING ; 5415 ; THE SOURCE BLOCK (IN THE LH), AND THE FIRST WORD FOLLOWING THE DEST- ; 5416 ; INATION BLOCK (IN THE RH). IF AC IS THE LAST WORD OF THE DESTINATION ; 5417 ; BLOCK, IT WILL BE A COPY OF THE LAST WORD OF THE SOURCE BLOCK. ; 5418 ; 5419 ;IN ADDITION, A SPECIAL-CASE CHECK IS MADE FOR THE CASE IN WHICH EACH ; 5420 ; WORD STORED IS USED AS THE SOURCE OF THE NEXT TRANSFER. IN THIS CASE, ; 5421 ; ONLY ONE READ NEED BE PERFORMED, AND THAT DATA MAY BE STORED FOR EACH ; 5422 ; TRANSFER. THUS THE COMMON USE OF BLT TO CLEAR CORE IS SPEEDED UP. ; 5423 .BIN ; 5424 ; 5425 ;HERE TO SETUP FOR A BLT/UBABLT, AC IN BRX, E.A. IN AR ; 5426 ;RETURN 2 WITH ; 5427 ; AR FINAL ADDR ; 5428 ; ARX SRC ADDR ; 5429 ; BR FINAL CONTENTS OF AC ; 5430 ; BRX DST ADDR ; 5431 ; READ OF FIRST SRC WORD IN PROGRESS, STATE=BLT U 3021, 0604,3770,0604,4344,4007,0700,0000,0000,0000 ; 5432 SETBLT: [ARX]_[BRX] SWAP ;COPY AC TO ARX (DST,,SRC) ; 5433 =0 VMA_[ARX], ;ADDRESS OF FIRST WORD ; 5434 START READ, ; 5435 PXCT BLT SRC, U 0604, 3550,3443,0400,4174,4007,0700,0210,0004,0712 ; 5436 CALL [CLARXL] ;CLEAR THE LEFT HALF OF ; 5437 [BRX]_0, ; BOTH SRC AND DEST U 0605, 3022,4221,0006,4174,0007,0700,0000,0000,0000 ; 5438 HOLD RIGHT U 3022, 3023,2112,0306,4174,4007,0700,4000,0000,0000 ; 5439 Q_[AR]-[BRX] ;NUMBER OF WORDS TO MOVE U 3023, 3024,0001,0705,4174,4007,0700,0000,0000,0000 ; 5440 [BR]_Q+1 ;LENGTH +1 ; 5441 [BR]_[BR] SWAP, ;COPY TO BOTH HALFS U 3024, 3025,3770,0505,4344,0007,0700,0000,0000,0000 ; 5442 HOLD RIGHT ; 5443 [BR]_AC+[BR], ;FINAL AC U 3025, 3026,0551,0505,0274,4407,0701,0000,0000,0000 ; 5444 INH CRY18 ;KEEP AC CORRECT IF DEST IS 777777 U 3026, 0002,3771,0013,4370,4004,1700,0000,0000,0001 ; 5445 STATE_[BLT],RETURN [2] ;SET PAGE FAIL FLAGS ; 5446 ; 5447 .DCODE D 0251, 0000,1640,2100 ; 5448 251: I, J/BLT ; 5449 .UCODE ; 5450 ; 5451 1640: U 1640, 3021,3771,0006,0276,6007,0700,0010,0000,0000 ; 5452 BLT: [BRX]_AC,CALL [SETBLT] ;FETCH THE AC, SETUP BR, BRX, ARX, STATE ; 5453 1642: AC_[BR], ;STORE BACK IN AC U 1642, 3546,3440,0505,0174,4007,0700,0410,0000,0000 ; 5454 CALL [LOADQ] ;LOAD FIRST WORD INTO Q ; 5455 1643: [BR]_[ARX]+1000001, ;SRC+1 ; 5456 3T, U 1643, 3027,0551,0405,4370,4007,0701,0000,0000,0001 ; 5457 HOLD LEFT ; 5458 [BR]-[BRX], 3T, ; Check for core clearing case ; 5459 SKIP ADR.EQ.0, U 3027, 0610,2113,0506,4174,4007,0331,4000,0000,0000 ; 5460 J/BLTLP1 ; 5461 ; 5462 =0 ; This instruction is part of the loop for the normal case ; 5463 BLTLP1: VMA_[BRX], ;NOT CLEARING CORE, GET DEST ADR ; 5464 START WRITE, ;START TO STORE NEXT WORD ; 5465 PXCT BLT DEST, ;WHERE TO STORE U 0610, 0613,3443,0600,4174,4007,0700,0200,0003,0312 ; 5466 J/BLTGO ; 5467 U 0611, 3030,3771,0005,4354,4007,0700,0000,0000,0000 ; 5468 [BR]_VMA ; This is the clear core case. ; 5469 ; Fetch back source VMA with flags. ; 5470 VMA_[BRX], ; Start first write ; 5471 START WRITE, U 3030, 3031,3443,0600,4174,4007,0700,0200,0003,0312 ; 5472 PXCT BLT DEST ; 5473 [BR].XOR.VMA, ; Compare destination VMA flags with source ; 5474 SKIP DP0, 3T, ; flags to see if user mode bits match. U 3031, 0612,6553,0500,4354,4007,0521,0000,0000,0000 ; 5475 J/BLTCLR ; Skips if they mismatch into normal case. ; 5476 ; 5477 =0 ; 5478 BLTCLR: MEM WRITE, ; This instruction is part of the loop for ; 5479 MEM_Q, ; The clear core case. ; 5480 SKIP/-1 MS, ; 1 MS timer up? U 0612, 0616,3223,0000,4174,4007,0671,0200,0000,0002 ; 5481 J/BLTCL1 ; 5482 BLTGO: MEM WRITE, ;STORE U 0613, 3032,3223,0000,4174,4007,0701,0200,0000,0002 ; 5483 MEM_Q ; 5484 BLTGOT: [BRX]-[AR], ;BELOW E? U 3032, 0614,2113,0603,4174,4007,0521,4000,0000,0000 ; 5485 SKIP DP0, 3T ; 5486 =0 END BLT, U 0614, 1400,4221,0013,4170,4007,0700,0000,0000,0000 ; 5487 J/DONE U 0615, 3033,0111,0706,4174,4007,0700,0000,0000,0000 ; 5488 [BRX]_[BRX]+1 ; Update destination address ; 5489 VMA_[ARX]+1, ; and source address at the same time! ; 5490 LOAD VMA, ; 5491 PXCT BLT SRC, U 3033, 3034,0111,0704,4170,4007,0700,0200,0004,0712 ; 5492 START READ ; 5493 MEM READ, ; 5494 Q_MEM, U 3034, 0610,3772,0000,4365,5007,0700,0200,0000,0002 ; 5495 J/BLTLP1 ; 5496 ; 5497 =0 U 0616, 3032,4443,0000,4174,4007,0700,0000,0000,0000 ; 5498 BLTCL1: J/BLTGOT ;GO TAKE INTERRUPT ; 5499 [BRX]-[AR], ;BELOW E? ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 127 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 BLT U 0617, 0620,2113,0603,4174,4007,0521,4000,0000,0000 ; 5500 SKIP DP0, 3T ; 5501 =0 END BLT, ;NO--STOP BLT U 0620, 1400,4221,0013,4170,4007,0700,0000,0000,0000 ; 5502 J/DONE ; 5503 [ARX]_[ARX]+1, ;FOR PAGE FAIL LOGIC U 0621, 0622,0111,0704,4174,4007,0370,0000,0000,0000 ; 5504 SKIP IRPT ; 5505 =0 VMA_[BRX]+1, ; 5506 LOAD VMA, ; 5507 PXCT BLT DEST, ; 5508 START WRITE, ;YES--KEEP STORING U 0622, 0612,0111,0706,4170,4007,0700,0200,0003,0312 ; 5509 J/BLTCLR ; 5510 VMA_[BRX]+1, ;INTERRUPT ; 5511 LOAD VMA, ; 5512 PXCT BLT DEST, ; 5513 START WRITE, U 0623, 0613,0111,0706,4170,4007,0700,0200,0003,0312 ; 5514 J/BLTGO ; 5515 ; 5516 ; Cleanup dispatch for BLT does: ; 5517 ; [AR]_WORK[SV.ARX], J/BLT-CLEANUP ; 5518 ; (Remember, you can't touch BRX here!) ; 5519 BLT-CLEANUP: U 3035, 3036,3770,0303,4344,4007,0700,0000,0000,0000 ; 5520 [AR]_[AR] SWAP ;PUT SRC IN LEFT HALF ; 5521 [AR]_WORK[SV.BRX], U 3036, 3037,3771,0003,7270,4007,0701,0000,0000,0214 ; 5522 HOLD LEFT ; 5523 AC_[AR], ;STORE THE AC AND RETURN U 3037, 2520,3440,0303,0174,4007,0700,0400,0000,0000 ; 5524 J/CLEANED ; 5525 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 128 ; DSK: KSHACK; SIMPLE 41 22:17:15 16-JAN-87 BLT ; 5526 ; 5527 .TOC "UBABLT - BLT BYTES TO/FROM UNIBUS FORMAT" ; 5528 ; 5529 ;THESE INSTRUCTION MOVE WORDS FROM BYTE TO UNIBUS AND UNIBUS TO BYTE ; 5530 ;FORMAT. FORMATS ARE: ; 5531 ; ; 5532 ;BYTE FORMAT: ; 5533 ; ; 5534 ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5535 ; ;; BYTE 0 ;; BYTE 1 ;; BYTE 2 ;; BYTE 3 ;; 4 BITS ;; ; 5536 ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5537 ; ; 5538 ;UNIBUS FORMAT: ; 5539 ; ; 5540 ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5541 ; ;; 2 BITS ;; BYTE 1 ;; BYTE 0 ;; 2 BITS ;; BYTE 3 ;; BYTE 2 ;; ; 5542 ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5543 ; ; 5544 ; 5545 ;---This DEC code seems to have been written by someone who didn't understand macros ; 5546 ; 5547 =0* ; 5548 BLTX: [BRX]_AC, ;FETCH THE AC (DEST IN RH) U 0624, 3021,3771,0006,0276,6007,0700,0010,0000,0000 ; 5549 CALL [SETBLT] ;DO THE REST OF THE SETUP U 0626, 3040,3440,0505,0174,4007,0700,0400,0000,0000 ; 5550 AC_[BR] ;STORE THE FINAL AC IN AC ; 5551 BLTXLP: MEM READ, ;READ THE SOURCE WORD ; 5552 Q_MEM, ;FROM MEMORY U 3040, 0636,3772,0000,4365,5003,7700,0200,0000,0002 ; 5553 B DISP ;SKIP IF BLTUB (OPCODE 717) ; 5554 =110 Q_Q*.5, ;BLTBU (OPCODE 716) - SHIFT RIGHT 1 BIT U 0636, 3046,3446,1200,4174,4007,0700,0000,0000,0000 ; 5555 J/BLTBU1 ;CONTINUE INSTRUCTION ; 5556 AD/D.AND.Q,DBUS/DBM, ;BLTUB - MASK LOW BYTES, SHIFT LEFT U 0637, 0630,4665,0017,4374,4007,0700,0000,0000,0377 ; 5557 DBM/#,#/377,DEST/AD*2,B/T1 ;AND STORE RESULT ; 5558 =00 FE_S#,S#/1767, ;-9 MORE BITS TO PUT LOW BYTE OF LH U 0630, 3053,4443,0000,4174,4007,0700,1010,0071,1767 ; 5559 CALL [T1LSH] ; IN TOP OF LH SHIFT LEFT ; 5560 =01 FE_S#,S#/1772, ;-6 BITS TO PUT HI BYTE TO RIGHT U 0631, 3054,4443,0000,4174,4007,0700,1010,0071,1772 ; 5561 CALL [Q_RSH] ; OF LOW BYTE. U 0633, 3041,4662,0000,4374,4007,0700,0000,0000,1774 ; 5562 =11 Q_Q.AND.#,#/001774 ;KEEP ONLY HI BYTES ; 5563 = ; 5564 AD/A.OR.Q,A/T1,DEST/AD, ;MERGE PAIRS OF BYTES. NOW SWAPPED, U 3041, 3042,3001,1717,4174,4007,0700,0000,0000,0000 ; 5565 B/T1 ;BUT STILL IN HALF-WORDS ; 5566 AD/57,RSRC/0A,A/T1, ;CLEAR LH OF Q WHILE LOADING U 3042, 3043,5742,1700,4174,4007,0700,0000,0000,0000 ; 5567 DEST/Q_AD ;RH WITH LOW WORD U 3043, 3044,3444,0012,4174,4007,0700,0000,0000,0000 ; 5568 Q_Q*2 ;SHIFT LOW WORD ACROSS 1/2 WORD U 3044, 3045,3444,0012,4174,4007,0700,0000,0000,0000 ; 5569 Q_Q*2 ;AND INTO FINAL POSITION ; 5570 [T1]_[T1].AND.# CLR RH, ;CLEAR ALL BUT HIGH 16-BIT WORD U 3045, 3052,4521,1717,4374,4007,0700,0000,0077,7774 ; 5571 #/777774,J/BLTXV ;FROM T1 AND CONTINUE U 3046, 3047,3446,1200,4174,4007,0700,0000,0000,0000 ; 5572 BLTBU1: Q_Q*.5 ;NOW IN 1/2 WORDS U 3047, 3050,3446,1200,4170,4007,0700,0000,0000,0000 ; 5573 Q_Q*.5,HOLD LEFT ;INSERT A NULL BIT IN RH U 3050, 3051,3446,1200,4170,4007,0700,0000,0000,0000 ; 5574 Q_Q*.5,HOLD LEFT ;ONE MORE - NOW IN HALF WORDS ; 5575 AD/D.AND.Q,DBUS/DBM, ;BUT NOT SWAPPED. COPY RIGHT BYTE U 3051, 0640,4665,0017,4374,4007,0700,0000,0000,0377 ; 5576 DBM/#,#/377,DEST/AD*2,B/T1 ;TO T1 AND SHIFT LEFT 1 POSITION ; 5577 =00 FE_S#,S#/1771, ;-7 BITS MORE U 0640, 3053,4443,0000,4174,4007,0700,1010,0071,1771 ; 5578 CALL [T1LSH] ;TO FINAL RESTING PLACE ; 5579 =01 FE_S#,S#/1770, ;-8. LEFT BYTES MOVE RIGHT U 0641, 3054,4443,0000,4174,4007,0700,1010,0071,1770 ; 5580 CALL [Q_RSH] ;TO FINAL RESTING PLACE U 0643, 3052,4662,0000,4374,4007,0700,0000,0000,0377 ; 5581 =11 Q_Q.AND.#,#/377 ;WANT ONLY THE NEW BYTES ; 5582 = ; 5583 BLTXV: Q_[T1].OR.Q, ;MERGE RESULTS U 3052, 3055,3002,1700,4174,4007,0700,0000,0000,0000 ; 5584 J/BLTXW ;AND STUFF IN MEMORY U 3053, 0001,3445,1717,4174,4004,1700,1020,0041,0001 ; 5585 T1LSH: [T1]_[T1]*2,SHIFT,RETURN [1] U 3054, 0002,3446,1200,4174,4004,1700,1020,0041,0001 ; 5586 Q_RSH: Q_Q*.5,SHIFT,RETURN [2] ; 5587 BLTXW: VMA_[BRX],START WRITE, ;DEST TO VMA U 3055, 3056,3443,0600,4174,4007,0700,0200,0003,0312 ; 5588 PXCT BLT DEST U 3056, 3057,3223,0000,4174,4007,0701,0200,0000,0002 ; 5589 MEM WRITE,MEM_Q ;STORE U 3057, 0634,2113,0603,4174,4007,0521,4000,0000,0000 ; 5590 [BRX]-[AR],3T,SKIP DP0 ;DONE? U 0634, 1400,4221,0013,4170,4007,0700,0000,0000,0000 ; 5591 =0 END BLT,J/DONE ;YES U 0635, 3060,0111,0706,4174,4007,0700,0000,0000,0000 ; 5592 [BRX]_[BRX]+1 ;NO, INC DEST ; 5593 VMA_[ARX]+1,LOAD VMA, ; AND SOURCE (LOADING VMA) ; 5594 PXCT BLT SRC,START READ, ;START UP MEMORY U 3060, 3040,0111,0704,4170,4007,0700,0200,0004,0712 ; 5595 J/BLTXLP ;AND CONTINUE WITH NEXT WORD ; 5596 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 129 ; DSK: KSHACK; FLT 5 21:53:03 16-JAN-87 UBABLT - BLT BYTES TO/FROM UNIBUS FORMAT ; 5597 ;;;-*-Fundamental-*- ; 5598 ; 5599 .TOC "FLOATING POINT -- FAD, FSB" ; 5600 ; 5601 .DCODE D 0140, 0701,1577,1100 ; 5602 140: FL-R, FL-AC, J/FAD D 0142, 0702,1577,1700 ; 5603 142: FL-RW, FL-MEM, J/FAD D 0143, 0703,1577,1700 ; 5604 FL-RW, FL-BOTH, J/FAD D 0144, 0711,1577,1100 ; 5605 FL-R, FL-AC, ROUND, J/FAD D 0145, 0611,1577,0100 ; 5606 FL-I, FL-AC, ROUND, J/FAD D 0146, 0712,1577,1700 ; 5607 FL-RW, FL-MEM, ROUND, J/FAD D 0147, 0713,1577,1700 ; 5608 FL-RW, FL-BOTH, ROUND, J/FAD ; 5609 D 0150, 0701,1576,1100 ; 5610 150: FL-R, FL-AC, J/FSB D 0152, 0702,1576,1700 ; 5611 152: FL-RW, FL-MEM, J/FSB D 0153, 0703,1576,1700 ; 5612 FL-RW, FL-BOTH, J/FSB D 0154, 0711,1576,1100 ; 5613 FL-R, FL-AC, ROUND, J/FSB D 0155, 0611,1576,0100 ; 5614 FL-I, FL-AC, ROUND, J/FSB D 0156, 0712,1576,1700 ; 5615 FL-RW, FL-MEM, ROUND, J/FSB D 0157, 0713,1576,1700 ; 5616 FL-RW, FL-BOTH, ROUND, J/FSB ; 5617 .UCODE ; 5618 ; 5619 ;BOTH FAD & FSB ARE ENTERED WITH THE MEMORY OPERAND IN AR ; 5620 ; SIGN SMEARED. THE EXPONENT IN BOTH SC AND FE. ; 5621 1576: U 1576, 1577,2441,0303,4174,4007,0700,4000,0000,0000 ; 5622 FSB: [AR]_-[AR] ;MAKE MEMOP NEGATIVE ; 5623 ; 5624 1577: U 1577, 0625,3771,0005,0276,6006,7701,2000,0020,2000 ; 5625 FAD: [BR]_AC, SC_SC-EXP-1, 3T, SCAD DISP ; 5626 =0* U 0625, 0646,3333,0005,4174,4007,0520,0000,0000,0000 ; 5627 FAS1: READ [BR], SKIP DP0, J/FAS2 ;BR .LE. AR U 0627, 3061,3441,0304,4174,4007,0700,0000,0000,0000 ; 5628 [ARX]_[AR] ;SWAP AR AND BR U 3061, 3062,3441,0503,4174,4007,0700,2000,0041,2000 ; 5629 [AR]_[BR], SC_EXP U 3062, 3063,3441,0405,4174,4007,0700,2000,0020,0000 ; 5630 [BR]_[ARX], SC_SC-FE-1 ;NUMBER OF SHIFT STEPS U 3063, 0644,3333,0003,4174,4007,0520,1000,0041,2000 ; 5631 READ [AR], FE_EXP, 2T, SKIP DP0 U 0644, 3064,4551,0303,4374,0007,0700,0000,0000,0777 ; 5632 =0 [AR]_+SIGN, J/FAS3 U 0645, 3064,3551,0303,4374,0007,0700,0000,0077,7000 ; 5633 [AR]_-SIGN, J/FAS3 ; 5634 ; 5635 =0 ;SIGN SMEAR BR AND UNNORMALIZE U 0646, 3064,4551,0505,4374,0007,0700,0000,0000,0777 ; 5636 FAS2: [BR]_+SIGN, J/FAS3 U 0647, 3064,3551,0505,4374,0007,0700,0000,0077,7000 ; 5637 [BR]_-SIGN, J/FAS3 ; 5638 U 3064, 0650,4222,0000,4174,4007,0630,2000,0060,0000 ; 5639 FAS3: Q_0, STEP SC ; 5640 =0 U 0650, 0650,3446,0505,4174,4047,0630,2000,0060,0000 ; 5641 FAS4: [BR]_[BR]*.5 LONG, STEP SC, ASHC, J/FAS4 U 0651, 0740,0111,0503,4174,4003,4701,0000,0000,0000 ; 5642 [AR]_[AR]+[BR], NORM DISP, J/SNORM ; 5643 ; 5644 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 130 ; DSK: KSHACK; FLT 5 21:53:03 16-JAN-87 FLAOTING POINT -- FMP ; 5645 .TOC "FLAOTING POINT -- FMP" ; 5646 ; 5647 .DCODE D 0160, 0701,1570,1100 ; 5648 160: FL-R, FL-AC, J/FMP D 0162, 0702,1570,1700 ; 5649 162: FL-RW, FL-MEM, J/FMP D 0163, 0703,1570,1700 ; 5650 FL-RW, FL-BOTH, J/FMP ; 5651 D 0164, 0711,1570,1100 ; 5652 FL-R, FL-AC, ROUND, J/FMP D 0165, 0611,1570,0100 ; 5653 FL-I, FL-AC, ROUND, J/FMP D 0166, 0712,1570,1700 ; 5654 FL-RW, FL-MEM, ROUND, J/FMP D 0167, 0713,1570,1700 ; 5655 FL-RW, FL-BOTH, ROUND, J/FMP ; 5656 .UCODE ; 5657 ; 5658 1570: ; 5659 FMP: [BRX]_AC, ;GET AC ; 5660 FE_SC+EXP, 3T, ;EXPONENT OF ANSWER U 1570, 0652,3771,0006,0276,6007,0521,1000,0040,2000 ; 5661 SKIP DP0 ;GET READY TO SMEAR SIGN U 0652, 3065,4551,0606,4374,0007,0700,0000,0000,0777 ; 5662 =0 [BRX]_+SIGN, J/FMP1 ;POSITIVE U 0653, 3065,3551,0606,4374,0007,0700,0000,0077,7000 ; 5663 [BRX]_-SIGN, J/FMP1 ;NEGATIVE U 3065, 0603,3442,0300,4174,4007,0700,2000,0071,0033 ; 5664 FMP1: Q_[AR], SC_27. ;GET MEMORY OPERAND ; 5665 =01* [BRX]_[BRX]*.5 LONG, ;SHIFT RIGHT U 0603, 2646,3446,0606,4174,4007,0700,0010,0000,0000 ; 5666 CALL [MULSUB] ;MULTIPLY ; 5667 Q_Q.AND.#, #/777000, ;WE ONLY COMPUTED U 0607, 3066,4662,0000,4370,4007,0700,0000,0077,7000 ; 5668 HOLD LEFT ; 27 BITS U 3066, 3067,3441,0403,4174,4007,0700,1000,0041,0002 ; 5669 [AR]_[ARX], FE_FE+2 ;SET SHIFT PATHS ; 5670 [AR]_[AR]*.5 LONG, ;SHIFT OVER ; 5671 FE_FE-200, ;ADJUST EXPONENT U 3067, 0740,3446,0303,4174,4003,4701,1000,0041,1600 ; 5672 NORM DISP, J/SNORM ;NORMALIZE & EXIT ; 5673 ; 5674 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 131 ; DSK: KSHACK; FLT 5 21:53:03 16-JAN-87 FLOATING POINT -- FDV ; 5675 .TOC "FLOATING POINT -- FDV" ; 5676 ; 5677 .DCODE D 0170, 0701,1574,1100 ; 5678 170: FL-R, FL-AC, J/FDV D 0172, 0702,1574,1700 ; 5679 172: FL-RW, FL-MEM, J/FDV D 0173, 0703,1574,1700 ; 5680 FL-RW, FL-BOTH, J/FDV ; 5681 D 0174, 0711,1574,1100 ; 5682 FL-R, FL-AC, ROUND, J/FDV D 0175, 0611,1574,0100 ; 5683 FL-I, FL-AC, ROUND, J/FDV D 0176, 0712,1574,1700 ; 5684 FL-RW, FL-MEM, ROUND, J/FDV D 0177, 0713,1574,1700 ; 5685 FL-RW, FL-BOTH, ROUND, J/FDV ; 5686 .UCODE ; 5687 ; 5688 ; 5689 1574: U 1574, 0654,3441,0305,0174,4007,0621,0000,0000,0000 ; 5690 FDV: [BR]_[AR], SKIP AD.EQ.0, AC ;COPY DIVSOR SEE IF 0 ; 5691 =0 ; 5692 [AR]_AC, FE_SC-EXP, SKIP DP0, ;GET AC & COMPUTE NEW U 0654, 0656,3771,0003,0276,6007,0520,1000,0030,2000 ; 5693 J/FDV0 ; EXPONENT U 0655, 0127,4443,0000,4174,4467,0700,0000,0071,1000 ; 5694 FL NO DIVIDE ;DIVIDE BY ZERO ; 5695 =0 U 0656, 3070,4551,0303,4374,0007,0700,0000,0000,0777 ; 5696 FDV0: [AR]_+SIGN, J/FDV1 U 0657, 3071,3551,0303,4374,0007,0700,0000,0077,7000 ; 5697 [AR]_-SIGN, J/FDV2 U 3070, 3072,3441,0304,4174,4007,0700,1000,0031,0200 ; 5698 FDV1: [ARX]_[AR],FE_-FE+200,J/FDV3 ;COMPUTE 2*DVND U 3071, 3072,2441,0304,4174,4007,0700,5000,0031,0200 ; 5699 FDV2: [ARX]_-[AR],FE_-FE+200,J/FDV3 ;ABSOLUTE VALUE U 3072, 0660,3445,0506,4174,4007,0520,0000,0000,0000 ; 5700 FDV3: [BRX]_[BR]*2, SKIP DP0 ;ABSOLUTE VALUE ; 5701 =0 U 0660, 0662,2113,0406,4174,4007,0311,4000,0000,0000 ; 5702 FDV4: [ARX]-[BRX], SKIP CRY0, 3T, J/FDV5 ;FLOATING NO DIV? U 0661, 0660,2445,0506,4174,4007,0700,4000,0000,0000 ; 5703 [BRX]_-[BR]*2, J/FDV4 ;FORCE ABSOLUTE VALUE ; 5704 =0 U 0662, 0664,3447,0606,4174,4007,0700,0000,0000,0000 ; 5705 FDV5: [BRX]_[BRX]*.5, J/FDV6 ;SHIFT BACK ARX U 0663, 0127,4443,0000,4174,4467,0700,0000,0071,1000 ; 5706 FL NO DIVIDE ;UNNORMALIZED INPUT ; 5707 =0 ; 5708 FDV6: [AR]_[AR]*2, ;DO NOT DROP A BIT U 0664, 3552,3445,0303,4174,4007,0700,0010,0000,0000 ; 5709 CALL [SBRL] ;AT FDV7+1 U 0665, 0704,2113,0604,4174,4007,0421,4000,0000,0000 ; 5710 [BRX]-[ARX], SKIP AD.LE.0 ;IS ANSWER .LE. 1? ; 5711 =00100 U 0704, 2711,4222,0000,4174,4007,0700,2010,0071,0033 ; 5712 FDV7: Q_0, SC_27., CALL [DIVSGN] ;DIVIDE U 0705, 0704,3447,0303,4174,4007,0700,1000,0041,0001 ; 5713 =00101 [AR]_[AR]*.5, FE_FE+1, J/FDV7 ;SCALE DV'END ; 5714 =01100 U 0714, 3073,3227,0003,4174,4007,0700,0000,0000,0000 ; 5715 FDV8: [AR]_Q*.5, J/FDV9 ;PUT ANSWER IN AR ; 5716 =01101 READ [AR], SKIP AD.EQ.0, ;-VE ANSWER, LOOK AT RMDR U 0715, 1132,3333,0003,4174,4007,0621,0010,0000,0000 ; 5717 CALL [SETSN] ; SEE HOW TO NEGATE ; 5718 =01110 READ [AR], SKIP AD.EQ.0, ;-VE ANSWER, LOOK AT RMDR U 0716, 1132,3333,0003,4174,4007,0621,0010,0000,0000 ; 5719 CALL [SETSN] ; SEE HOW TO NEGATE U 0717, 3073,3227,0003,4174,4007,0700,0000,0000,0000 ; 5720 =01111 [AR]_Q*.5, J/FDV9 ;PUT ANSWER IN AR U 0737, 3073,2227,0003,4174,4007,0700,4000,0000,0000 ; 5721 =11111 [AR]_-Q*.5, J/FDV9 ;ZERO RMDR ; 5722 U 3073, 0675,4222,0000,4174,4007,0700,0000,0000,0000 ; 5723 FDV9: Q_0, J/SNORM0 ;GO NORMALIZE ; 5724 ; 5725 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 132 ; DSK: KSHACK; FLT 5 21:53:03 16-JAN-87 FLOATING POINT -- FLTR, FSC ; 5726 .TOC "FLOATING POINT -- FLTR, FSC" ; 5727 ; 5728 .DCODE D 0127, 0011,1616,1100 ; 5729 127: R, FL-AC,ROUND, J/FLTR D 0132, 0001,1621,2100 ; 5730 132: I, FL-AC, J/FSC ; 5731 .UCODE ; 5732 ; 5733 1616: U 1616, 0666,4553,0300,4374,4007,0321,0000,0077,7000 ; 5734 FLTR: [AR].AND.#, #/777000, 3T, SKIP ADL.EQ.0 ;SMALL POS NUMBER? U 0666, 0670,2441,0305,4174,4007,0521,4000,0000,0000 ; 5735 =0 [BR]_-[AR], SKIP DP0, 3T, J/FLTR1 ;NO--SEE IF MINUS U 0667, 0675,4222,0000,4174,4007,0700,1000,0071,0233 ; 5736 Q_0, FE_S#, S#/233, J/SNORM0 ;FITS IN 27 BITS ; 5737 =0 ; 5738 FLTR1: [BR].AND.#, #/777000, 3T, U 0670, 0672,4553,0500,4374,4007,0321,0000,0077,7000 ; 5739 SKIP ADL.EQ.0, J/FLTR1A ;SMALL NEGATIVE NUMBER U 0671, 3074,4222,0000,4174,4007,0700,1000,0071,0244 ; 5740 Q_0, FE_S#, S#/244, J/FLTR2 ;LARGE POS NUMBER ; 5741 =0 U 0672, 3074,4222,0000,4174,4007,0700,1000,0071,0244 ; 5742 FLTR1A: Q_0, FE_S#, S#/244, J/FLTR2 ;BIG NUMBER U 0673, 0675,4222,0000,4174,4007,0700,1000,0071,0233 ; 5743 Q_0, FE_S#, S#/233, J/SNORM0 ;FITS IN 27 BITS ; 5744 ;AT THIS POINT WE KNOW THE NUMBER TAKES MORE THAN 27 BITS. WE JUST ; 5745 ; SHIFT 8 PLACES RIGHT AND NORMALIZE. WE COULD BE MORE CLEVER BUT ; 5746 ; THIS IS THE RARE CASE ANYWAY. U 3074, 0674,3446,0303,4174,4047,0700,2000,0071,0006 ; 5747 FLTR2: [AR]_[AR]*.5 LONG, ASHC, SC_6 ;SHOVE OVER TO THE RIGHT ; 5748 =0 ; 5749 FLTR3: [AR]_[AR]*.5 LONG, ASHC, ;SHIFT RIGHT 9 PLACES U 0674, 0674,3446,0303,4174,4047,0630,2000,0060,0000 ; 5750 STEP SC, J/FLTR3 ; SO IT WILL FIT U 0675, 0740,3333,0003,4174,4003,4701,0000,0000,0000 ; 5751 SNORM0: READ [AR], NORM DISP, J/SNORM ;NORMALIZE ANSWER ; 5752 ; 5753 ; 5754 1621: U 1621, 3075,3333,0003,4174,4007,0700,2000,0041,4000 ; 5755 FSC: READ [AR], SC_SHIFT U 3075, 3076,4222,0000,0174,4007,0700,0000,0000,0000 ; 5756 Q_0, AC ;DON'T SHIFT IN JUNK U 3076, 0676,3771,0003,0276,6007,0520,1000,0040,2000 ; 5757 [AR]_AC, FE_SC+EXP, SKIP DP0 ;SIGN SMEAR U 0676, 0675,4551,0303,4374,0007,0700,0000,0000,0777 ; 5758 =0 [AR]_+SIGN, J/SNORM0 U 0677, 0675,3551,0303,4374,0007,0700,0000,0077,7000 ; 5759 [AR]_-SIGN, J/SNORM0 ; 5760 ; 5761 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 133 ; DSK: KSHACK; FLT 5 21:53:03 16-JAN-87 FLOATING POINT -- FIX AND FIXR ; 5762 .TOC "FLOATING POINT -- FIX AND FIXR" ; 5763 ; 5764 .DCODE D 0122, 0701,1626,1100 ; 5765 122: FL-R, FL-AC, J/FIX D 0126, 0711,1626,1100 ; 5766 126: FL-R, FL-AC,ROUND, J/FIX ; 5767 .UCODE ; 5768 ; 5769 1626: ; 5770 FIX: Q_0, SCAD/A+B, SCADA/S#, ;CLEAR Q, SEE IF ; 5771 S#/1534, SCADB/FE, 3T, ; ANSWER FITS IN U 1626, 0700,4222,0000,4174,4006,7701,0000,0041,1534 ; 5772 SCAD DISP ; 35 BITS. U 0700, 0127,4443,0000,4174,4467,0700,0000,0041,1000 ; 5773 =0* SET AROV, J/NIDISP ;TOO BIG U 0702, 0701,4443,0000,4174,4006,7701,2000,0041,1544 ; 5774 SC_FE+S#, S#/1544, 3T, SCAD DISP ;NEED TO MOVE LEFT? U 0701, 0710,4443,0000,4174,4007,0630,2000,0060,0000 ; 5775 =0* STEP SC, J/FIXL U 0703, 3077,4443,0000,4174,4007,0700,2000,0031,0232 ; 5776 SC_S#-FE, S#/232 ;NUMBER OF PLACES TO SHIFT ; 5777 ; RIGHT U 3077, 0706,4443,0000,4174,4007,0630,2000,0060,0000 ; 5778 STEP SC ;ALREADY THERE ; 5779 =0 ; 5780 FIXR: [AR]_[AR]*.5 LONG, ASHC, ;SHIFT BINARY POINT U 0706, 0706,3446,0303,4174,4047,0630,2000,0060,0000 ; 5781 STEP SC, J/FIXR ; TO BIT 35.5 U 0707, 0723,3447,0705,4174,4003,7700,0000,0000,0000 ; 5782 [BR]_[ONE]*.5, B DISP, J/FIXX ;WHICH KIND OF FIX? ; 5783 ; 5784 =0 U 0710, 0710,3445,0303,4174,4007,0630,2000,0060,0000 ; 5785 FIXL: [AR]_[AR]*2, STEP SC, J/FIXL ;SHIFT LEFT U 0711, 0060,3440,0303,0174,4156,4700,0400,0000,0000 ; 5786 AC_[AR], NEXT INST ;WE ARE NOW DONE ; 5787 ; 5788 =0*11 U 0723, 0712,3333,0003,4174,4007,0520,0000,0000,0000 ; 5789 FIXX: READ [AR], SKIP DP0, J/FIXT ;FIX--SEE IF MINUS U 0733, 1514,0111,0503,4174,4003,7700,0200,0003,0001 ; 5790 FIXX1: [AR]_[AR]+[BR], FL-EXIT ;FIXR--ROUND UP ; 5791 =0 U 0712, 0060,3440,0303,0174,4156,4700,0400,0000,0000 ; 5792 FIXT: AC_[AR], NEXT INST ;FIX & +, TRUNCATE U 0713, 0720,3223,0000,4174,4007,0621,0000,0000,0000 ; 5793 READ Q, SKIP AD.EQ.0 ;NEGATIVE--ANY FRACTION? U 0720, 1514,0111,0703,4174,4003,7700,0200,0003,0001 ; 5794 =0 [AR]_[AR]+1, FL-EXIT ;YES--ROUND UP ; 5795 [BR]_.NOT.[MASK], ;MAYBE--GENERATE .75 U 0721, 0733,7441,1205,4174,4007,0700,0000,0000,0000 ; 5796 J/FIXX1 ;ROUND UP IF BIT 36 OR ; 5797 ; 37 SET ; 5798 ; 5799 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 134 ; DSK: KSHACK; FLT 5 21:53:03 16-JAN-87 FLOATING POINT -- SINGLE PRECISION NORMALIZE ; 5800 .TOC "FLOATING POINT -- SINGLE PRECISION NORMALIZE" ; 5801 ; 5802 ;NORMALIZE DISPATCH IS A 9-WAY DISPATCH. THE HARDWARE LOOKS AT ; 5803 ; 4 SIGNALS: DP=0, DP BIT 8, DP BIT 9, DP BIT -2. THE 9 CASES ; 5804 ; ARE: ; 5805 ; 5806 ; DP=0 DP08 DP09 DP00 ACTION TO TAKE ; 5807 ; 0 0 0 0 SHIFT LEFT ; 5808 ; ; 5809 ; 0 0 0 1 NEGATE AND RETRY ; 5810 ; ; 5811 ; 0 0 1 0 ALL DONE ; 5812 ; ; 5813 ; 0 0 1 1 NEGATE AND RETRY ; 5814 ; ; 5815 ; 0 1 0 0 SHIFT RIGHT ; 5816 ; ; 5817 ; 0 1 0 1 NEGATE AND RETRY ; 5818 ; ; 5819 ; 0 1 1 0 SHIFT RIGHT ; 5820 ; ; 5821 ; 0 1 1 1 NEGATE AND RETRY ; 5822 ; ; 5823 ; 1 - - - LOOK AT Q BITS ; 5824 ; 5825 ;ENTER HERE WITH UNNORMALIZED NUMBER IN AR!Q. FE HOLDS THE NEW ; 5826 ; EXPONENT. CALL WITH NORM DISP ; 5827 =0000 ;9-WAY DISPATCH U 0740, 0740,3444,0303,4174,4063,4701,1000,0041,1777 ; 5828 SNORM: [AR]_[AR]*2 LONG, DIV, FE_FE-1, NORM DISP, J/SNORM U 0741, 0726,2222,0000,4174,4007,0311,4000,0000,0000 ; 5829 Q_-Q, SKIP CRY0, 3T, J/SNNEG U 0742, 0732,3333,0003,4174,4003,4701,0010,0000,0000 ; 5830 READ [AR], NORM DISP, CALL [SROUND] U 0743, 0726,2222,0000,4174,4007,0311,4000,0000,0000 ; 5831 Q_-Q, SKIP CRY0, 3T, J/SNNEG U 0744, 0732,3447,0303,4174,4007,0700,1010,0041,0001 ; 5832 [AR]_[AR]*.5, FE_FE+1, CALL [SROUND] U 0745, 0726,2222,0000,4174,4007,0311,4000,0000,0000 ; 5833 Q_-Q, SKIP CRY0, 3T, J/SNNEG U 0746, 0732,3447,0303,4174,4007,0700,1010,0041,0001 ; 5834 [AR]_[AR]*.5, FE_FE+1, CALL [SROUND] U 0747, 0726,2222,0000,4174,4007,0311,4000,0000,0000 ; 5835 Q_-Q, SKIP CRY0, 3T, J/SNNEG U 0750, 0724,3223,0000,4174,4007,0621,0000,0000,0000 ; 5836 READ Q, SKIP AD.EQ.0, J/SNORM1 U 0756, 0725,3770,0303,4324,0457,0700,0000,0041,0000 ; 5837 =1110 [AR]_EXP, J/FLEX ; 5838 = ; 5839 =0 U 0724, 0740,3444,0303,4174,4063,4701,1000,0041,1777 ; 5840 SNORM1: [AR]_[AR]*2 LONG, DIV, FE_FE-1, NORM DISP, J/SNORM U 0725, 1514,4443,0000,4174,4003,7700,0200,0003,0001 ; 5841 FLEX: FL-EXIT ; 5842 ; 5843 =0 U 0726, 0760,7441,0303,4174,4003,4701,0000,0000,0000 ; 5844 SNNEG: [AR]_.NOT.[AR], NORM DISP, J/SNNORM ;NEGATE HIGH WORD ; 5845 ; (NO CARRY) U 0727, 0760,2441,0303,4174,4003,4701,4000,0000,0000 ; 5846 [AR]_-[AR], NORM DISP, J/SNNORM ;NEGATE HIGH WORD (W/CARRY) ; 5847 =0000 U 0760, 0760,3444,0303,4174,4063,4701,1000,0041,1777 ; 5848 SNNORM: [AR]_[AR]*2 LONG, DIV, FE_FE-1, NORM DISP, J/SNNORM U 0762, 0732,3333,0003,4174,4003,4701,0010,0000,0000 ; 5849 =0010 READ [AR], NORM DISP, CALL [SROUND] U 0764, 0732,3447,0303,4174,4007,0700,1010,0041,0001 ; 5850 =0100 [AR]_[AR]*.5, FE_FE+1, CALL [SROUND] U 0766, 0732,3447,0303,4174,4007,0700,1010,0041,0001 ; 5851 =0110 [AR]_[AR]*.5, FE_FE+1, CALL [SROUND] U 0770, 0760,3444,0303,4174,4063,4701,1000,0041,1777 ; 5852 =1000 [AR]_[AR]*2 LONG, DIV, FE_FE-1, NORM DISP, J/SNNORM ;[120] U 0776, 0767,3770,0303,4324,0453,7700,0000,0041,0000 ; 5853 =1110 [AR]_EXP, B DISP ; 5854 = U 0767, 0730,4553,1300,4374,4007,0321,0000,0000,2000 ; 5855 =0111 TL [FLG], FLG.SN/1, J/SNNOT ; 5856 [AR]_[AR].AND.[MASK], ;CLEAR ANY LEFT OVER BITS U 0777, 0735,4111,1203,4174,4007,0700,0000,0000,0000 ; 5857 J/SNNOT1 ; 5858 =0 U 0730, 3100,7441,0303,4174,4007,0700,0000,0000,0000 ; 5859 SNNOT: [AR]_.NOT.[AR], J/SNNOT2 U 0731, 0734,3223,0000,4174,4007,0621,0000,0000,0000 ; 5860 READ Q, SKIP AD.EQ.0 U 0734, 3100,7441,0303,4174,4007,0700,0000,0000,0000 ; 5861 =0 [AR]_.NOT.[AR], J/SNNOT2 U 0735, 3100,2441,0303,4174,4007,0700,4000,0000,0000 ; 5862 SNNOT1: [AR]_-[AR], J/SNNOT2 ;NORMAL NEGATE AND EXIT U 3100, 3101,5551,1313,4374,0007,0700,0000,0000,2000 ; 5863 SNNOT2: [FLG]_[FLG].AND.NOT.#, FLG.SN/1, HOLD RIGHT U 3101, 1514,4443,0000,4174,4003,7700,0200,0003,0001 ; 5864 FL-EXIT ; 5865 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 135 ; DSK: KSHACK; FLT 5 21:53:03 16-JAN-87 FLOATING POINT -- ROUND ANSWER ; 5866 .TOC "FLOATING POINT -- ROUND ANSWER" ; 5867 ; 5868 =*01* U 0732, 1007,3447,0705,4174,4003,7700,0000,0000,0000 ; 5869 SROUND: [BR]_[ONE]*.5, B DISP, J/SRND1 U 0736, 0732,3447,0303,4174,4007,0700,1000,0041,0001 ; 5870 [AR]_[AR]*.5, FE_FE+1, J/SROUND ;WE WENT TOO FAR ; 5871 =0111 U 1007, 0016,4443,0000,4174,4004,1700,0000,0000,0000 ; 5872 SRND1: RETURN [16] ;NOT ROUNDING INSTRUCTION U 1017, 0753,0111,0503,4174,4003,4701,0000,0000,0000 ; 5873 [AR]_[AR]+[BR], NORM DISP U 0753, 0016,4443,0000,4174,4004,1700,0000,0000,0000 ; 5874 =*01* RETURN [16] U 0757, 0016,3447,0303,4174,4004,1700,1000,0041,0001 ; 5875 [AR]_[AR]*.5, FE_FE+1, RETURN [16] ; 5876 ; 5877 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 136 ; DSK: KSHACK; FLT 5 21:53:03 16-JAN-87 FLOATING POINT -- DFAD, DFSB ; 5878 .TOC "FLOATING POINT -- DFAD, DFSB" ; 5879 ; 5880 .DCODE D 0110, 1100,1637,1100 ; 5881 110: DBL FL-R, J/DFAD D 0111, 1100,1635,1100 ; 5882 111: DBL FL-R, J/DFSB ; 5883 .UCODE ; 5884 ; 5885 ;ENTER FROM A-READ CODE WITH: ; 5886 ;FE/ EXP ; 5887 ;SC/ EXP ; 5888 ;AR/ C(E) SHIFT RIGHT 2 PLACES ; 5889 ;ARX/ C(E+1) SHIFTED RIGHT 1 PLACE ; 5890 1635: U 1635, 3102,2441,0404,4174,4007,0700,4000,0000,0000 ; 5891 DFSB: [ARX]_-[ARX] ;NEGATE LOW WORD U 3102, 1637,2441,0303,4174,4007,0700,0040,0000,0000 ; 5892 [AR]_-[AR]-.25, MULTI PREC/1 ; 5893 1637: U 1637, 3103,4557,0006,1274,4007,0701,0000,0000,1441 ; 5894 DFAD: [BRX]_(AC[1].AND.[MAG])*.5, 3T ;GET LOW WORD ; 5895 [BR]_AC*.5, 3T, ;GET AC AND START TO SHIFT ; 5896 SC_SC-EXP-1, ;NUMBER OF PLACES TO SHIFT U 3103, 0754,3777,0005,0274,4007,0521,2000,0020,2000 ; 5897 SKIP DP0 ;SEE WHAT SIGN ; 5898 =0 [BR]_+SIGN*.5, 3T, ;SIGN SMEAR U 0754, 0772,5547,0505,0374,4007,0631,0000,0077,7400 ; 5899 AC, SKIP/SC, J/DFAS1 ;SEE WHICH IS BIGGER ; 5900 [BR]_-SIGN*.5, 3T, ;SIGN SMEAR U 0755, 0772,3547,0505,0374,4007,0631,0000,0077,7400 ; 5901 AC, SKIP/SC, J/DFAS1 ;SEE WHICH IS BIGGER ; 5902 =0 ; 5903 DFAS1: Q_[BRX], ;AR IS BIGGER U 0772, 0774,3442,0600,4174,4007,0700,0000,0000,0000 ; 5904 J/DFAS2 ;ADJUST BR!Q ; 5905 [T0]_AC, ;BR IS BIGGER OR EQUAL U 0773, 3105,3771,0016,0276,6007,0700,2000,0041,2000 ; 5906 SC_EXP, 2T, J/DFAS3 ;SET SC TO THAT EXPONENT ; 5907 ; 5908 ;HERE IF AR!ARX IS GREATER THAN BR!BRX ; 5909 =0 U 0774, 1003,3441,0516,4174,4007,0700,0010,0000,0000 ; 5910 DFAS2: [T0]_[BR], CALL [DFADJ] ;ADJUST BR!Q U 0775, 3104,3441,1605,4174,4007,0700,0000,0000,0000 ; 5911 [BR]_[T0] ;PUT ANSWER BACK U 3104, 3110,0002,0400,4174,4007,0700,0000,0000,0000 ; 5912 Q_Q+[ARX], J/DFAS5 ;ADD LOW WORDS ; 5913 ; 5914 ;HERE IS BR!BRX IF GREATER THAN OR EQUAL TO AR!ARX ; 5915 DFAS3: Q_[ARX], ;SETUP TO SHIFT AR!ARX U 3105, 3106,3442,0400,4174,4007,0700,2000,0020,0000 ; 5916 SC_SC-FE-1 ;COMPUTE # OF PLACES U 3106, 1000,3333,0016,4174,4007,0700,1000,0041,2000 ; 5917 READ [T0], FE_EXP ;EXPONENT OF ANSWER U 1000, 1003,3441,0316,4174,4007,0700,0010,0000,0000 ; 5918 =0 [T0]_[AR], CALL [DFADJ] ;ADJUST AR!Q U 1001, 3107,3441,1603,4174,4007,0700,0000,0000,0000 ; 5919 [AR]_[T0] ;PUT ANSWER BACK U 3107, 3110,0002,0600,4174,4007,0700,0000,0000,0000 ; 5920 Q_Q+[BRX], J/DFAS5 ;ADD LOW WORDS ; 5921 ; 5922 ;BIT DIDDLE TO GET THE ANSWER (INCLUDING 2 GUARD BITS) INTO ; 5923 ; AR!Q ; 5924 DFAS5: [AR]_([AR]+[BR])*.5 LONG, ;ADD HIGH WORDS U 3110, 3111,0116,0503,4174,4047,0700,0040,0000,0000 ; 5925 MULTI PREC/1, ASHC ;INJECT SAVED CRY2 ; 5926 [AR]_[AR]*2 LONG, ;SHIFT BACK LEFT U 3111, 1033,3444,0303,4174,4046,2700,0000,0000,0000 ; 5927 ASHC, MUL DISP ;SEE IF WE LOST A 1 ; 5928 =1011 U 1033, 3112,5111,1217,4174,4007,0700,0000,0000,0000 ; 5929 DFAS6: [T1]_[T1].AND.NOT.[MASK], J/DFAS7 U 1037, 1033,0222,0000,4174,4007,0700,4000,0000,0000 ; 5930 Q_Q+.25, J/DFAS6 ; 5931 DFAS7: [AR]_[AR]*2 LONG, ASHC, ;PUT IN GUARD BITS U 3112, 3113,3444,0303,4174,4047,0700,1000,0041,1777 ; 5932 FE_FE-1 ; 5933 [AR]_[AR]*2 LONG, ASHC, U 3113, 3114,3444,0303,4174,4047,0700,1000,0041,1777 ; 5934 FE_FE-1 U 3114, 1027,3002,1700,4170,4007,0700,0000,0000,0000 ; 5935 Q_[T1].OR.Q, HOLD LEFT, J/DNORM0 ; 5936 ; 5937 ;SUBROUTINE TO ADJUST NUMBER IN T0!Q ; 5938 ;RETURNS 1 WITH ; 5939 ; T0!Q ADJUSTED ; 5940 ; FLG.SN=1 IF WE SHIFTED OUT ANY 1 BITS (STICKY BIT) ; 5941 ; T1 HAS Q TWO STEPS PRIOR TO BEING DONE ; 5942 DFADJ "STEP SC, ASHC, MUL DISP" ; 5943 ; 5944 =0**11 ; 5945 DFADJ: [T0]_[T0]*2 LONG, DIV, ;MOVE EVERYTHING 2 PLACES U 1003, 1133,3444,1616,4174,4067,0700,0010,0000,0000 ; 5946 CALL [CLRSN] U 1023, 3115,3444,1616,4174,4067,0700,0000,0000,0000 ; 5947 [T0]_[T0]*2 LONG, DIV U 3115, 3116,3444,1616,4174,4067,0700,0000,0000,0000 ; 5948 [T0]_[T0]*2 LONG, DIV ; 5949 [T0]_[T0]*.5 LONG, ASHC, ;SHIFT AT LEAST 1 PLACE U 3116, 1052,3446,1616,4174,4047,0630,2000,0060,0000 ; 5950 STEP SC ; 5951 =1010 ; 5952 DFADJ1: [T0]_[T0]*.5 LONG, ;UNNORMALIZE T0!Q U 1052, 1052,3446,1616,4174,4046,2630,2000,0060,0000 ; 5953 DFADJ, J/DFADJ1 ;LOOP TILL DONE ; 5954 DFADJ2: [T1]_Q, ;SAVE GUARD BITS U 1053, 1073,3221,0017,4174,4006,2700,0000,0000,0000 ; 5955 MUL DISP, J/DFADJ5 ;LOOK AT LAST BIT U 1056, 1004,3551,1313,4374,0007,0700,0000,0000,2000 ; 5956 [FLG]_[FLG].OR.#, FLG.SN/1, HOLD RIGHT, J/DFADJ3 U 1057, 1005,3551,1313,4374,0007,0700,0000,0000,2000 ; 5957 [FLG]_[FLG].OR.#, FLG.SN/1, HOLD RIGHT, J/DFADJ4 ; 5958 ; 5959 =0 U 1004, 1004,3446,1616,4174,4047,0630,2000,0060,0000 ; 5960 DFADJ3: [T0]_[T0]*.5 LONG, ASHC, STEP SC, J/DFADJ3 U 1005, 1073,3221,0017,4174,4007,0700,0000,0000,0000 ; 5961 DFADJ4: [T1]_Q ;SAVE 2 GUARD BITS ; 5962 =1011 U 1073, 3117,3446,1616,4174,4047,0700,0000,0000,0000 ; 5963 DFADJ5: [T0]_[T0]*.5 LONG, ASHC, J/DFADJ6 U 1077, 1073,3551,1313,4374,0007,0700,0000,0000,2000 ; 5964 [FLG]_[FLG].OR.#, FLG.SN/1, HOLD RIGHT, J/DFADJ5 U 3117, 0001,3446,1616,4174,4044,1700,0000,0000,0000 ; 5965 DFADJ6: [T0]_[T0]*.5 LONG, ASHC, RETURN [1] ; 5966 ; 5967 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 137 ; DSK: KSHACK; FLT 5 21:53:03 16-JAN-87 FLOATING POINT -- DFMP ; 5968 .TOC "FLOATING POINT -- DFMP" ; 5969 ; 5970 .DCODE D 0112, 1105,1631,1100 ; 5971 112: DBL FL-R, DAC, J/DFMP ; 5972 .UCODE ; 5973 ; 5974 ;SAME ENTRY CONDITIONS AS DFAD/DFSB ; 5975 1631: U 1631, 1010,3442,0400,4174,4007,0700,2000,0071,0006 ; 5976 DFMP: Q_[ARX], SC_6 ;SHIFT MEM OP 8 PLACES ; 5977 =0 ; 5978 DFMP1: [AR]_[AR]*2 LONG, ASHC, ;SHIFT U 1010, 1010,3444,0303,4174,4047,0630,2000,0060,0000 ; 5979 STEP SC, J/DFMP1 U 1011, 3120,3446,1200,4174,4007,0700,0000,0000,0000 ; 5980 Q_Q*.5 U 3120, 3121,4662,0000,4374,0007,0700,0000,0007,7777 ; 5981 Q_Q.AND.#, #/077777, HOLD RIGHT U 3121, 3122,3221,0005,4174,4007,0700,0000,0000,0000 ; 5982 [BR]_Q ;COPY LOW WORD ; 5983 ; ; 5984 ; BRX * BR ==> C(E+1) * C(AC+1) ; 5985 ; U 3122, 0531,4557,0006,1274,4007,0700,0000,0000,1441 ; 5986 [BRX]_(AC[1].AND.[MAG])*.5 ;GET LOW AC U 0531, 2647,3447,0606,4174,4007,0700,2010,0071,0043 ; 5987 =0** [BRX]_[BRX]*.5, SC_35., CALL [MULSB1] ; 5988 ; ; 5989 ; BRX * Q ==> C(E) * C(AC+1) ; 5990 ; U 0535, 0761,3442,0300,4174,4007,0700,2000,0071,0043 ; 5991 Q_[AR], SC_35. ;GO MULT NEXT HUNK U 0761, 2650,4443,0000,4174,4007,0700,0010,0000,0000 ; 5992 =0** CALL [MULTIPLY] U 0765, 3123,3441,0416,4174,4007,0700,0000,0000,0000 ; 5993 [T0]_[ARX] ;SAVE PRODUCT U 3123, 3124,3227,0004,4174,4007,0700,2000,0011,0000 ; 5994 [ARX]_Q*.5, SC_FE ;PUT IN NEXT STEP ; 5995 ; ; 5996 ; BRX * BR ==> C(AC) * C(E+1) ; 5997 ; ; 5998 [BRX]_AC*.5, ;PREPARE TO DO HIGH HALF ; 5999 FE_SC+EXP, ;EXPONENT ON ANSWER U 3124, 1012,3777,0006,0274,4007,0521,1000,0040,2000 ; 6000 SKIP DP0, 3T U 1012, 1002,5547,0606,4374,4007,0701,0000,0077,7400 ; 6001 =0 [BRX]_+SIGN*.5, 3T, J/DFMP2 U 1013, 1002,3547,0606,4374,4007,0701,0000,0077,7400 ; 6002 [BRX]_-SIGN*.5, 3T ; 6003 =0** U 1002, 2650,3442,0500,4174,4007,0700,2010,0071,0043 ; 6004 DFMP2: Q_[BR], SC_35., CALL [MULTIPLY] ;GO MULTIPLY U 1006, 3125,3221,0017,4174,4007,0700,0000,0000,0000 ; 6005 [T1]_Q ;SAVE FOR ROUNDING U 3125, 1020,0111,1604,4174,4007,0700,0000,0000,0000 ; 6006 [ARX]_[ARX]+[T0] ;PREPARE FOR LAST MUL ; 6007 ; ; 6008 ; BRX * Q ==> C(AC) * C(E) ; 6009 ; ; 6010 =0** Q_[AR], SC_35., ;DO THE LAST MULTIPLY U 1020, 2650,3442,0300,4174,4007,0700,2010,0071,0043 ; 6011 CALL [MULTIPLY] ; .. ; 6012 ; 6013 ;OK, WE NOW HAVE THE PRODUCT IN ARX!Q!T1. ALL WE NEED TO DO ; 6014 ; IS SOME BIT DIDDLES TO GET EVERYTHING IN THE RIGHT PLACE ; 6015 [AR]_[ARX]*.5 LONG, ;SHIFT THE ANSWER U 1024, 1043,3446,0403,4174,4007,0700,1000,0041,1576 ; 6016 FE_FE+S#, S#/1576 ;CORRECT EXPONENT ; 6017 =0**11 READ [T1], SKIP AD.EQ.0, ;SEE IF LOW ORDER 1 U 1043, 1132,3333,0017,4174,4007,0621,0010,0000,0000 ; 6018 CALL [SETSN] ; BITS AROUND SOMEPLACE U 1063, 3126,3444,0303,4174,4047,0700,0000,0000,0000 ; 6019 [AR]_[AR]*2 LONG, ASHC ;SHIFT LEFT U 3126, 3127,3447,0705,4174,4007,0700,0000,0000,0000 ; 6020 [BR]_[ONE]*.5 ;PLACE TO INSTERT BITS U 3127, 1014,4553,1700,4374,4007,0321,0000,0020,0000 ; 6021 TL [T1], #/200000 ;ANYTHING TO INJECT? U 1014, 1015,0002,0500,4174,4007,0700,0000,0000,0000 ; 6022 =0 Q_Q+[BR] ;YES--PUT IT IN U 1015, 3130,3444,0303,4174,4047,0700,0000,0000,0000 ; 6023 [AR]_[AR]*2 LONG, ASHC ;MAKE ROOM FOR MORE U 3130, 1026,4553,1700,4374,4007,0321,0000,0010,0000 ; 6024 TL [T1], #/100000 ;ANOTHER BIT NEEDED U 1026, 1027,0002,0500,4174,4007,0700,0000,0000,0000 ; 6025 =0 Q_Q+[BR] ;YES--PUT IN LAST BIT ; 6026 DNORM0: READ [AR], NORM DISP, ;SEE WHAT WE NEED TO DO U 1027, 1120,3333,0003,4174,4003,4701,1000,0041,0002 ; 6027 FE_FE+S#, S#/2, J/DNORM ;ADJUST FOR INITIAL SHIFTS ; 6028 ; 6029 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 138 ; DSK: KSHACK; FLT 5 21:53:03 16-JAN-87 FLOATING POINT -- DFDV ; 6030 .TOC "FLOATING POINT -- DFDV" ; 6031 ; 6032 .DCODE D 0113, 1105,1636,1100 ; 6033 113: DBL FL-R, DAC, J/DFDV ; 6034 .UCODE ; 6035 1636: U 1636, 1066,3441,0406,4174,4007,0700,0000,0000,0000 ; 6036 DFDV: [BRX]_[ARX] ;COPY OPERAND (COULD SAVE TIME ; 6037 ; WITH SEPERATE A-READ FOR DFDV) U 1066, 1133,4221,0017,4174,4007,0700,0010,0000,0000 ; 6038 =1**10 [T1]_0, CALL [CLRSN] ;CLEAR FLAG ; 6039 [BR]_[AR], SKIP AD.LE.0, ;SEE IF POSITIVE U 1067, 1030,3441,0305,1174,4007,0421,0000,0000,1441 ; 6040 AC[1] ;WARM UP RAM ; 6041 =0 ; 6042 DFDV1: [ARX]_(AC[1].AND.[MAG])*.5, ;POSITIVE--GET AC U 1030, 3133,4557,0004,1274,4007,0700,0000,0000,1441 ; 6043 J/DFDV2 ; AND CONTINUE BELOW U 1031, 3131,7441,1717,4174,4007,0700,0000,0000,0000 ; 6044 [T1]_.NOT.[T1] ;DV'SOR NEGATIVE (OR ZERO) U 3131, 3132,2441,0606,4174,4007,0700,4000,0000,0000 ; 6045 [BRX]_-[BRX] ;NEGATE LOW WORD ; 6046 AD/-B-.25, B/BR, DEST/AD, ;NEGATE HIGH WORD ; 6047 MULTI PREC/1, 3T, ;ADDING IN CRY02 ; 6048 SKIP DP0, AC[1], ;SEE IF STILL NEGATIVE U 3132, 1030,2331,0005,1174,4007,0521,0040,0000,1441 ; 6049 J/DFDV1 ; .. ; 6050 DFDV2: [AR]_AC*.5, ;GET AC AND SHIFT ; 6051 FE_SC-EXP, 3T, ;COMPUTE NEW EXPONENT U 3133, 1034,3777,0003,0274,4007,0521,1000,0030,2000 ; 6052 SKIP DP0 ;SEE IF NEGATIVE U 1034, 1040,5547,0303,4374,4007,0701,0000,0077,7400 ; 6053 =0 [AR]_+SIGN*.5, 3T, J/DFDV3 ;POSITIVE U 1035, 3134,7441,1717,4174,4007,0700,0000,0000,0000 ; 6054 [T1]_.NOT.[T1] ;NEGATIVE OR ZERO U 3134, 3135,3547,0303,4374,4007,0701,0000,0077,7400 ; 6055 [AR]_-SIGN*.5, 3T ;SIGN SMEAR U 3135, 3136,2442,0400,4174,4007,0700,4000,0000,0000 ; 6056 Q_-[ARX] ;NEGATE OPERAND ; 6057 [AR]_(-[AR]-.25)*.5 LONG, ;NEGATE HIGH WORD ; 6058 MULTI PREC/1, ;USE SAVED CARRY U 3136, 1041,2446,0303,4174,4047,0700,0040,0000,0000 ; 6059 ASHC, J/DFDV4 ;CONTINUE BELOW ; 6060 =0 ; 6061 DFDV3: Q_[ARX], ;COPY OPERAND U 1040, 2710,3442,0400,4174,4007,0700,0010,0000,0000 ; 6062 CALL [DDIVS] ;SHIFT OVER U 1041, 1044,2113,0305,4174,4007,0521,4000,0000,0000 ; 6063 DFDV4: [AR]-[BR], 3T, SKIP DP0 ;SEE IF OVERFLOW U 1044, 0127,4443,0000,4174,4467,0700,0000,0071,1000 ; 6064 =0 FL NO DIVIDE U 1045, 1060,3221,0004,4174,4007,0700,0000,0000,0000 ; 6065 [ARX]_Q ;START DIVISION U 1060, 0460,4222,0000,4174,4007,0700,2010,0071,0032 ; 6066 =0* Q_0, SC_26., CALL [DBLDIV] U 1062, 1070,3221,0016,4174,4007,0700,2000,0071,0043 ; 6067 [T0]_Q, SC_35. ; 6068 =0* Q_Q.AND.NOT.[MAG], ;SEE IF ODD ; 6069 SKIP AD.EQ.0, ;SKIP IF EVEN U 1070, 0460,5002,0000,4174,4007,0621,0010,0000,0000 ; 6070 CALL [DBLDIV] ;GO DIVIDE U 1072, 3137,3446,1200,4174,4007,0700,0000,0000,0000 ; 6071 Q_Q*.5 ;MOVE ANSWER OVER ; 6072 = ; 6073 [T0]_[T0]*2 LONG, ASHC, ;DO FIRST NORM STEP U 3137, 1113,3444,1616,4174,4046,2700,0000,0000,0000 ; 6074 MUL DISP ; SEE IF A 1 FELL OUT ; 6075 =1011 ; 6076 DFDV4A: READ [T1], SKIP DP0, ;SHOULD RESULT BE NEGATIVE ; 6077 FE_S#-FE, S#/202, ;CORRECT EXPONENT U 1113, 1046,3333,0017,4174,4007,0520,1000,0031,0202 ; 6078 J/DFDV4B ;LOOK BELOW U 1117, 1113,0222,0000,4174,4007,0700,4000,0000,0000 ; 6079 Q_Q+.25, J/DFDV4A ;PUT BACK THE BIT ; 6080 =0 U 1046, 1120,3441,1603,4174,4003,4701,0000,0000,0000 ; 6081 DFDV4B: [AR]_[T0], NORM DISP, J/DNORM ;PLUS U 1047, 1100,3441,1603,4174,4003,4701,0000,0000,0000 ; 6082 [AR]_[T0], NORM DISP, J/DNNORM ;MINUS ; 6083 ; 6084 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 139 ; DSK: KSHACK; FLT 5 21:53:03 16-JAN-87 FLOATING POINT -- DOUBLE PRECISION NORMALIZE ; 6085 .TOC "FLOATING POINT -- DOUBLE PRECISION NORMALIZE" ; 6086 ; 6087 ;NORMALIZE AR!Q ; 6088 ;DNORM0: READ [AR], NORM DISP, ;SEE WHAT WE NEED TO DO ; 6089 ; FE_FE+S#, S#/2, J/DNORM ;ADJUST FOR INITIAL SHIFTS ; 6090 =0000 ; 6091 DNORM: [AR]_[AR]*2 LONG, ;SHIFT LEFT ; 6092 FE_FE-1, ASHC, ;ADJUST EXPONENT U 1120, 1120,3444,0303,4174,4043,4701,1000,0041,1777 ; 6093 NORM DISP, J/DNORM ;TRY AGAIN U 1121, 1054,4553,1300,4374,4007,0321,0000,0000,2000 ; 6094 TL [FLG], FLG.SN/1, J/DNEG ;RESULT IS NEGATIVE ; 6095 READ [AR], NORM DISP, ;SEE IF WE WENT TOO FAR U 1122, 1032,3333,0003,4174,4003,4701,0010,0000,0000 ; 6096 CALL [DROUND] ; AND ROUND ANSWER U 1123, 1054,4553,1300,4374,4007,0321,0000,0000,2000 ; 6097 TL [FLG], FLG.SN/1, J/DNEG ;RESULT IS NEGATIVE ; 6098 [AR]_[AR]*.5 LONG, ASHC, U 1124, 1032,3446,0303,4174,4047,0700,1010,0041,0001 ; 6099 FE_FE+1, CALL [DROUND] U 1125, 1054,4553,1300,4374,4007,0321,0000,0000,2000 ; 6100 TL [FLG], FLG.SN/1, J/DNEG ;RESULT IS NEGATIVE ; 6101 [AR]_[AR]*.5 LONG, ASHC, U 1126, 1032,3446,0303,4174,4047,0700,1010,0041,0001 ; 6102 FE_FE+1, CALL [DROUND] U 1127, 1054,4553,1300,4374,4007,0321,0000,0000,2000 ; 6103 TL [FLG], FLG.SN/1, J/DNEG ;RESULT IS NEGATIVE ; 6104 Q_[MAG].AND.Q, ;HIGH WORD IS ZERO U 1130, 3141,4002,0000,4174,0007,0700,0000,0000,0000 ; 6105 HOLD RIGHT, J/DNORM1 ;GO TEST LOW WORD U 1136, 3140,5551,1313,4374,0007,0700,0000,0000,2000 ; 6106 =1110 [FLG]_[FLG].AND.NOT.#, FLG.SN/1, HOLD RIGHT ;[122] CLEAR FLG.SN ; 6107 = ; 6108 AC[1]_[ARX].AND.[MAG], ;STORE LOW WORD U 3140, 1515,4113,0400,1174,4007,0700,0400,0000,1441 ; 6109 J/STAC ;GO DO HIGH WORD ; 6110 U 3141, 1050,3223,0000,4174,4007,0621,0000,0000,0000 ; 6111 DNORM1: READ Q, SKIP AD.EQ.0 ;TEST LOW WORD ; 6112 =0 [AR]_[AR]*2 LONG, ;LOW WORD IS NON-ZERO ; 6113 FE_FE-1, ASHC, ;ADJUST EXPONENT U 1050, 1120,3444,0303,4174,4043,4701,1000,0041,1777 ; 6114 NORM DISP, J/DNORM ;KEEP LOOKING U 1051, 1515,3440,0303,1174,4007,0700,0400,0000,1441 ; 6115 AC[1]_[AR], J/STAC ;WHOLE ANSWER IS ZERO ; 6116 ; 6117 ;HERE TO NORMALIZE NEGATIVE D.P. RESULTS ; 6118 =0 U 1054, 3142,7222,0000,4174,4007,0700,0000,0000,0000 ; 6119 DNEG: Q_.NOT.Q, J/DNEG1 ;ONES COMP U 1055, 1064,2222,0000,4174,4007,0511,4000,0000,0000 ; 6120 Q_-Q, SKIP CRY2, J/DNEG2 U 3142, 1064,5551,1313,4374,0007,0700,0000,0000,2000 ; 6121 DNEG1: [FLG]_[FLG].AND.NOT.#, FLG.SN/1, HOLD RIGHT ; 6122 =0 ; 6123 DNEG2: [AR]_.NOT.[AR], ;NO CARRY U 1064, 1100,7441,0303,4174,4003,4701,0000,0000,0000 ; 6124 NORM DISP, J/DNNORM ;GO NORMALIZE ; 6125 [AR]_-[AR], ;CARRY U 1065, 1100,2441,0303,4174,4003,4701,4000,0000,0000 ; 6126 NORM DISP, J/DNNORM ;NORMALIZE ; 6127 ; 6128 =000* ; 6129 DNNORM: [AR]_[AR]*2 LONG, ;SHIFT 1 PLACE ; 6130 FE_FE-1, ASHC, ;ADJUST EXPONENT U 1100, 1100,3444,0303,4174,4043,4701,1000,0041,1777 ; 6131 NORM DISP, J/DNNORM ;LOOP TILL DONE ; 6132 =001* READ [AR], NORM DISP, ;SEE IF WE WENT TOO FAR U 1102, 1032,3333,0003,4174,4003,4701,0010,0000,0000 ; 6133 CALL [DROUND] ; AND ROUND ANSWER ; 6134 =010* [AR]_[AR]*.5 LONG, ASHC, U 1104, 1032,3446,0303,4174,4047,0700,1010,0041,0001 ; 6135 FE_FE+1, CALL [DROUND] ; 6136 =011* [AR]_[AR]*.5 LONG, ASHC, U 1106, 1032,3446,0303,4174,4047,0700,1010,0041,0001 ; 6137 FE_FE+1, CALL [DROUND] ; 6138 =100* Q_[MAG].AND.Q, ;HIGH WORD IS ZERO U 1110, 3145,4002,0000,4174,0007,0700,0000,0000,0000 ; 6139 HOLD RIGHT, J/DNNRM1 ;GO TEST LOW WORD U 1116, 1140,4111,1204,4174,4007,0700,0000,0000,0000 ; 6140 =111* [ARX]_[ARX].AND.[MASK] ;REMOVE ROUNDING BIT ; 6141 = ; 6142 =00 [ARX]_[ARX].AND.[MAG], ;ALSO CLEAR SIGN U 1140, 3146,4111,0004,4174,4007,0700,0010,0000,0000 ; 6143 CALL [CHKSN] ;ONES COMP? ; 6144 =10 [ARX]_[ARX].XOR.[MAG], ;YES--ONES COMP U 1142, 3143,6111,0004,4174,4007,0700,0000,0000,0000 ; 6145 J/DNN1 ;CONTINUE BELOW ; 6146 =11 [ARX]_-[ARX], 3T, ;NEGATE RESULT U 1143, 1074,2441,0404,4174,4007,0561,4000,0000,0000 ; 6147 SKIP CRY1, J/DNN2 ; 6148 = U 3143, 1074,5551,1313,4374,0007,0700,0000,0000,2000 ; 6149 DNN1: [FLG]_[FLG].AND.NOT.#, FLG.SN/1, HOLD RIGHT ;CLEAR FLAG ; 6150 =0 U 1074, 3144,7333,0003,0174,4007,0700,0400,0000,0000 ; 6151 DNN2: AC_.NOT.[AR], J/DNORM2 U 1075, 3144,2443,0300,0174,4007,0701,4400,0000,0000 ; 6152 AC_-[AR], 3T ; 6153 DNORM2: AC[1]_[ARX].AND.[MAG], ;STORE LOW WORD U 3144, 0060,4113,0400,1174,4156,4700,0400,0000,1441 ; 6154 NEXT INST ;ALL DONE ; 6155 U 3145, 1114,3223,0000,4174,4007,0621,0000,0000,0000 ; 6156 DNNRM1: READ Q, SKIP AD.EQ.0 ;TEST LOW WORD ; 6157 =0 [AR]_[AR]*2 LONG, ;LOW WORD IS NON-ZERO ; 6158 FE_FE-1, ASHC, ;ADJUST EXPONENT U 1114, 1100,3444,0303,4174,4043,4701,1000,0041,1777 ; 6159 NORM DISP, J/DNNORM ;KEEP LOOKING U 1115, 1515,3440,0303,1174,4007,0700,0400,0000,1441 ; 6160 AC[1]_[AR], J/STAC ;WHOLE ANSWER IS ZERO ; 6161 U 3146, 0002,4553,1300,4374,4004,1321,0000,0000,2000 ; 6162 CHKSN: TL [FLG], FLG.SN/1, RETURN [2] ; 6163 ; 6164 ;SUBROUTINE TO SET/CLEAR FLG.SN ; 6165 ;CALL WITH: ; 6166 ; CALL [SETSN], SKIP IF WE SHOULD CLEAR ; 6167 ;RETURNS 23 ; 6168 =0 U 1132, 0023,3551,1313,4374,0004,1700,0000,0000,2000 ; 6169 SETSN: [FLG]_[FLG].OR.#, FLG.SN/1, HOLD RIGHT, RETURN [23] U 1133, 0023,5551,1313,4374,0004,1700,0000,0000,2000 ; 6170 CLRSN: [FLG]_[FLG].AND.NOT.#, FLG.SN/1, HOLD RIGHT, RETURN [23] ; 6171 ; 6172 ; 6173 ;SUBROUTINE TO ROUND A FLOATING POINT NUMBER ; 6174 ;CALL WITH: ; 6175 ; NUMBER IN AR!Q AND NORM DISP ; 6176 ;RETURNS 16 WITH ROUNDED NUMBER IN AR!ARX ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 140 ; DSK: KSHACK; FLT 5 21:53:03 16-JAN-87 FLOATING POINT -- DOUBLE PRECISION NORMALIZE ; 6177 ; ; 6178 =*01* ; 6179 DROUND: [ARX]_(Q+1)*.5, ;ROUND AND SHIFT ; 6180 SKIP CRY2, ;SEE IF OVERFLOW U 1032, 1152,0007,0704,4174,4007,0511,0000,0000,0000 ; 6181 J/DRND1 ;COMPLETE ROUNDING ; 6182 [AR]_[AR]*.5 LONG, ;WE WENT TOO FAR U 1036, 1032,3446,0303,4174,4047,0700,1000,0041,0001 ; 6183 FE_FE+1, ASHC, J/DROUND ;SHIFT BACK AND ROUND ; 6184 =*010 U 1152, 0016,3770,0303,4324,0454,1700,0000,0041,0000 ; 6185 DRND1: [AR]_EXP, RETURN [16] ;NO OVERFLOW ; 6186 =011 [AR]_[AR]+.25, ;ADD CARRY (BITS 36 AND 37 ; 6187 ; ARE COPIES OF Q BITS) ; 6188 NORM DISP, ;SEE IF OVERFLOW U 1153, 1152,0441,0303,4174,4003,4701,4000,0000,0000 ; 6189 J/DRND1 ; .. ; 6190 =110 [AR]_[AR]*.5, ;SHIFT RIGHT ; 6191 FE_FE+1, ;KEEP EXP RIGHT U 1156, 1152,3447,0303,4174,4007,0700,1000,0041,0001 ; 6192 J/DRND1 ;ALL SET NOW ; 6193 = ; 6194 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 141 ; DSK: KSHACK; EXTEND 4 20:01:38 16-JAN-87 FLOATING POINT -- DOUBLE PRECISION NORMALIZE ; 6195 ;;;-*-Fundamental-*- ; 6196 ; 6197 .TOC "EXTEND -- DISPATCH ROM ENTRIES" ; 6198 ; 6199 .DCODE D 0001, 0001,1740,2100 ; 6200 001: I, SJCL, J/L-CMS D 0002, 0002,1740,2100 ; 6201 I, SJCE, J/L-CMS D 0003, 0003,1740,2100 ; 6202 I, SJCLE, J/L-CMS D 0004, 0002,1741,2100 ; 6203 I, B/2, J/L-EDIT D 0005, 0005,1740,2100 ; 6204 I, SJCGE, J/L-CMS D 0006, 0006,1740,2100 ; 6205 I, SJCN, J/L-CMS D 0007, 0007,1740,2100 ; 6206 I, SJCG, J/L-CMS ; 6207 D 0010, 0001,1742,2100 ; 6208 010: I, B/1, J/L-DBIN ;CVTDBO D 0011, 0004,1742,2100 ; 6209 I, B/4, J/L-DBIN ;CVTDBT D 0012, 0001,1743,2100 ; 6210 I, B/1, J/L-BDEC ;CVTBDO D 0013, 0000,1743,2100 ; 6211 I, B/0, J/L-BDEC ;CVTBDT ; 6212 D 0014, 0001,1744,2100 ; 6213 014: I, B/1, J/L-MVS ;MOVSO D 0015, 0000,1744,2100 ; 6214 I, B/0, J/L-MVS ;MOVST D 0016, 0002,1744,2100 ; 6215 I, B/2, J/L-MVS ;MOVSLJ D 0017, 0003,1744,2100 ; 6216 I, B/3, J/L-MVS ;MOVSRJ ; 6217 D 0020, 0000,1746,2100 ; 6218 020: I, J/L-XBLT D 0021, 0000,1747,2100 ; 6219 I, J/L-SPARE-A D 0022, 0000,1750,2100 ; 6220 I, J/L-SPARE-B D 0023, 0000,1751,2100 ; 6221 I, B/0, J/L-SPARE-C D 0024, 0001,1751,2100 ; 6222 I, B/1, J/L-SPARE-C D 0025, 0002,1751,2100 ; 6223 I, B/2, J/L-SPARE-C D 0026, 0004,1751,2100 ; 6224 I, B/4, J/L-SPARE-C D 0027, 0010,1751,2100 ; 6225 I, B/10, J/L-SPARE-C ; 6226 .UCODE ; 6227 ; 6228 1740: U 1740, 0400,4751,1203,4374,4007,0700,0000,0000,0040 ; 6229 L-CMS: LUUO ; 6230 1741: U 1741, 0400,4751,1203,4374,4007,0700,0000,0000,0040 ; 6231 L-EDIT: LUUO ; 6232 1742: U 1742, 0400,4751,1203,4374,4007,0700,0000,0000,0040 ; 6233 L-DBIN: LUUO ; 6234 1743: U 1743, 0400,4751,1203,4374,4007,0700,0000,0000,0040 ; 6235 L-BDEC: LUUO ; 6236 1744: U 1744, 0400,4751,1203,4374,4007,0700,0000,0000,0040 ; 6237 L-MVS: LUUO ; 6238 1746: U 1746, 0400,4751,1203,4374,4007,0700,0000,0000,0040 ; 6239 L-XBLT: LUUO ; 6240 1747: U 1747, 0400,4751,1203,4374,4007,0700,0000,0000,0040 ; 6241 L-SPARE-A: LUUO ; 6242 1750: U 1750, 0400,4751,1203,4374,4007,0700,0000,0000,0040 ; 6243 L-SPARE-B: LUUO ; 6244 1751: U 1751, 0400,4751,1203,4374,4007,0700,0000,0000,0040 ; 6245 L-SPARE-C: LUUO ; 6246 ; 6247 ;NOTE: WE DO NOT NEED TO RESERVE 3746 TO 3751 BECAUSE THE CODE ; 6248 ; AT EXTEND DOES A RANGE CHECK. ; 6249 ; 6250 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 142 ; DSK: KSHACK; EXTEND 4 20:01:38 16-JAN-87 EXTEND -- INSTRUCTION SET DECODING ; 6251 .TOC "EXTEND -- INSTRUCTION SET DECODING" ; 6252 ; 6253 ;EACH INSTRUCTION IN THE RANGE 1-23 GOES TO 1 OF 2 PLACES ; 6254 ; 1740-1747 IF NOT UNDER EXTEND ; 6255 ; 3740-3747 IF UNDER EXTEND ; 6256 ; 6257 .DCODE D 0123, 0000,1467,3100 ; 6258 123: I,READ/1, J/EXTEND ; 6259 .UCODE ; 6260 ; 6261 1467: U 1467, 1021,3771,0005,4365,5007,0700,0200,0000,0002 ; 6262 EXTEND: MEM READ, [BR]_MEM ;FETCH INSTRUCTION ; 6263 =0** TL [BR], #/760740, ;IN RANGE 0-17 (AND AC#=0) U 1021, 3556,4553,0500,4374,4007,0321,0010,0076,0740 ; 6264 CALL [BITCHK] ;TRAP IF NON-ZERO BITS FOUND ; 6265 [BRX]_[HR].AND.# CLR RH, ;SPLIT OUT AC NUMBER U 1025, 3147,4521,0206,4374,4007,0700,0000,0000,0740 ; 6266 #/000740 ; FROM EXTEND INSTRUCTION ; 6267 [BR]_[BR].OR.[BRX], ;LOAD IR AND AC # U 3147, 3150,3111,0605,4174,0417,0700,0000,0000,0000 ; 6268 HOLD RIGHT, LOAD IR ; .. ; 6269 READ [BR], LOAD BYTE EA, ;LOAD XR # U 3150, 3151,3333,0005,4174,4217,0700,0000,0000,0500 ; 6270 J/EXTEA0 ;COMPUTE E1 ; 6271 U 3151, 3152,3333,0003,7174,4007,0700,0400,0000,0240 ; 6272 EXTEA0: WORK[E0]_[AR] U 3152, 1170,4443,0000,2174,4006,6700,0000,0000,0000 ; 6273 EXTEA1: EA MODE DISP ; 6274 =100* U 1170, 1172,0551,0505,2270,4007,0700,0000,0000,0000 ; 6275 EXTEA: [BR]_[BR]+XR ; 6276 EXTDSP: [BR]_EA FROM [BR], LOAD VMA, U 1172, 1216,5741,0505,4174,4003,7700,0200,0000,0010 ; 6277 B DISP, J/EXTEXT U 1174, 3153,0551,0505,2270,4007,0700,0200,0004,0512 ; 6278 [BR]_[BR]+XR, START READ, PXCT EXTEND EA, LOAD VMA, J/EXTIND U 1176, 3153,3443,0500,4174,4007,0700,0200,0004,0512 ; 6279 VMA_[BR], START READ, PXCT EXTEND EA ; 6280 U 3153, 3152,3771,0005,4361,5217,0700,0200,0000,0502 ; 6281 EXTIND: MEM READ, [BR]_MEM, HOLD LEFT, LOAD BYTE EA, J/EXTEA1 ; 6282 ; 6283 ;HERE TO EXTEND SIGN FOR OFFSET MODES ; 6284 =1110 ; 6285 EXTEXT: WORK[E1]_[BR], ;SAVE E1 U 1216, 3400,3333,0005,7174,4001,2700,0400,0000,0241 ; 6286 DISP/DROM, J/3400 ;GO TO EXTENDED EXECUTE CODE U 1217, 1134,3333,0005,4174,4007,0530,0000,0000,0000 ; 6287 READ [BR], SKIP DP18 ;NEED TO EXTEND SIGN ; 6288 =0 WORK[E1]_[BR], ;POSITIVE U 1134, 3400,3333,0005,7174,4001,2700,0400,0000,0241 ; 6289 DISP/DROM, J/3400 ; 6290 [BR]_#, #/777777, HOLD RIGHT, ;NEGATIVE U 1135, 1216,3771,0005,4374,0007,0700,0000,0077,7777 ; 6291 J/EXTEXT ; 6292 ; 6293 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 143 ; DSK: KSHACK; EXTEND 4 20:01:38 16-JAN-87 EXTEND -- MOVE STRING -- SETUP ; 6294 .TOC "EXTEND -- MOVE STRING -- SETUP" ; 6295 ; 6296 ;HERE TO MOVE A STRING ; 6297 ;COME HERE WITH: ; 6298 ; AR/ E0 ; 6299 ; BR/ E1 ; 6300 ; ; 6301 3744: ; 6302 MVS: [AR]_[AR]+1, ;GO FETCH FILL ; 6303 LOAD VMA, ; BYTE ; 6304 START READ, ; .. U 3744, 3346,0111,0703,4174,4007,0700,0210,0004,0012 ; 6305 CALL [GTFILL] ;SUBROUTINE TO COMPLETE U 3754, 1101,3771,0005,1276,6007,0701,0000,0000,1443 ; 6306 3754: [BR]_AC[DLEN] ;GET DEST LENGTH AND FLAGS ; 6307 =0** TL [BR], #/777000, ;ANY FLAGS SET? U 1101, 3556,4553,0500,4374,4007,0321,0010,0077,7000 ; 6308 CALL [BITCHK] ;SEE IF ILLEGAL U 1105, 1144,3771,0003,0276,6007,0700,0000,0000,0000 ; 6309 [AR]_AC ;GET SRC LENGTH AND FLAGS ; 6310 =0 [BRX]_[AR].AND.# CLR RH, ;COPY FLAGS TO BRX ; 6311 #/777000, ; .. U 1144, 3350,4521,0306,4374,4007,0700,0010,0077,7000 ; 6312 CALL [CLRFLG] ;CLEAR FLAGS IN AR ; 6313 ;NEW DLEN IS - ; 6314 AC[DLEN]_[AR]-[BR], 3T, ;COMPUTE DIFFERENCE U 1145, 1146,2113,0305,1174,4007,0521,4400,0000,1443 ; 6315 SKIP DP0 ;WHICH IS SHORTER? ; 6316 =0 [AR]_.NOT.[BR], ;DESTINATION U 1146, 3154,7441,0503,4174,4007,0700,0000,0000,0000 ; 6317 J/MVS1 ;GET NEGATIVE LENGTH U 1147, 3154,7441,0303,4174,4007,0700,0000,0000,0000 ; 6318 [AR]_.NOT.[AR] ;SOURCE ; 6319 MVS1: WORK[SLEN]_[AR], ; .. U 3154, 1234,3333,0003,7174,4003,7700,0400,0000,0242 ; 6320 B DISP ;SEE WHAT TYPE OF MOVE ; 6321 ;SLEN NOW HAS --1 ; 6322 =1100 U 1234, 1160,3771,0013,4370,4007,0700,0000,0000,0003 ; 6323 STATE_[SRC], J/MOVELP ;TRANSLATE--ALL SET U 1235, 3155,3771,0005,1276,6007,0701,0000,0000,1444 ; 6324 [BR]_AC[DSTP], J/MVSO ;OFFSET BUILD MASK ; 6325 [ARX]_[AR], ;LEFT JUSTIFY U 1236, 3175,3441,0304,4174,4007,0700,0000,0000,0000 ; 6326 J/MOVST0 ; .. ; 6327 [ARX]_AC[DLEN], ;RIGHT JUSTIFY ; 6328 SKIP DP0, 4T, ;WHICH IS SHORTER? U 1237, 1200,3771,0004,1276,6007,0522,0000,0000,1443 ; 6329 J/MOVRJ ; 6330 U 3155, 3156,3333,0005,4174,4007,0700,1000,0041,6020 ; 6331 MVSO: READ [BR], FE_S+2 ;GET DST BYTE SIZE U 3156, 1155,4222,0000,4174,4006,7701,1000,0041,1770 ; 6332 Q_0, BYTE STEP ;BUILD AN S BIT MASK ; 6333 =0* U 1155, 1155,4224,0003,4174,4026,7701,1000,0041,1770 ; 6334 MVSO1: GEN MSK [AR], BYTE STEP, J/MVSO1 U 1157, 3157,7221,0003,4174,4007,0700,0000,0000,0000 ; 6335 [AR]_.NOT.Q ;BITS WHICH MUST NOT BE SET ; 6336 WORK[MSK]_[AR].AND.[MASK], ;SAVE FOR SRCMOD U 3157, 1167,4113,0312,7174,4007,0700,0400,0000,0243 ; 6337 J/MOVLP0 ;GO ENTER LOOP ; 6338 ; 6339 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 144 ; DSK: KSHACK; EXTEND 4 20:01:38 16-JAN-87 EXTEND -- MOVE STRING -- OFFSET/TRANSLATE ; 6340 .TOC "EXTEND -- MOVE STRING -- OFFSET/TRANSLATE" ; 6341 ; 6342 ;HERE IS THE LOOP FOR OFFSET AND TRANSLATED MOVES ; 6343 =000 ; 6344 MOVELP: [AR]_WORK[SLEN]+1, ;UPDATE STRING LENGTH U 1160, 2104,0551,0703,7274,4007,0701,0010,0000,0242 ; 6345 CALL [SRCMOD] ;GET A SOURCE BYTE ; 6346 =001 [ARX]_[AR], SKIP DP0, ;(1) LENGTH EXHAUSTED U 1161, 1230,3441,0304,4174,4007,0520,0000,0000,0000 ; 6347 J/MOVST2 ; SEE IF FILL IS NEEDED ; 6348 =100 [AR]_-WORK[SLEN], ;(4) ABORT U 1164, 3160,1771,0003,7274,4007,0701,4000,0000,0242 ; 6349 J/MVABT ; .. ; 6350 STATE_[SRC+DST], ;(5) NORMAL--STORE DST BYTE U 1165, 3340,3771,0013,4370,4007,0700,0010,0000,0005 ; 6351 CALL [PUTDST] ; .. ; 6352 =111 U 1167, 1160,3771,0013,4370,4007,0700,0000,0000,0003 ; 6353 MOVLP0: STATE_[SRC], J/MOVELP ;(7) DPB DONE ; 6354 = ; 6355 ; 6356 ;HERE TO ABORT A STRING MOVE DUE TO TRANSLATE OR OFFSET FAILURE ; 6357 ; 6358 MVABT: [BR]_AC[DLEN], ;WHICH STRING IS LONGER U 3160, 1150,3771,0005,1276,6007,0522,0000,0000,1443 ; 6359 SKIP DP0, 4T ; 6360 =0 U 1150, 3161,3440,0303,1174,4007,0700,0400,0000,1443 ; 6361 MVABT1: AC[DLEN]_[AR], J/MVABT2 ;PUT AWAY DEST LEN ; 6362 [AR]_[AR]-[BR], ;DEST LEN WAS GREATER U 1151, 1150,1111,0503,4174,4007,0700,4000,0000,0000 ; 6363 J/MVABT1 ;STICK BACK IN AC ; 6364 U 3161, 3162,7771,0003,7274,4007,0701,0000,0000,0242 ; 6365 MVABT2: [AR]_.NOT.WORK[SLEN] ;GET UNDECREMENTED SLEN U 3162, 1162,3333,0005,4174,4007,0520,0000,0000,0000 ; 6366 READ [BR], SKIP DP0 ;NEED TO FIXUP SRC? U 1162, 1163,0111,0503,4174,4007,0700,0000,0000,0000 ; 6367 =0 [AR]_[AR]+[BR] ;SRC LONGER BY (DLEN) U 1163, 3163,3111,0603,4174,4007,0700,0000,0000,0000 ; 6368 MVEND: [AR]_[AR].OR.[BRX] ;PUT BACK SRC FLAGS U 3163, 1515,4221,0013,4170,4007,0700,0000,0000,0000 ; 6369 END STATE, J/STAC ;ALL DONE ; 6370 ; 6371 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 145 ; DSK: KSHACK; EXTEND 4 20:01:38 16-JAN-87 EXTEND -- MOVE STRING -- MOVSRJ ; 6372 .TOC "EXTEND -- MOVE STRING -- MOVSRJ" ; 6373 ; 6374 =00 U 1200, 3164,3771,0003,1276,6007,0701,0000,0000,1441 ; 6375 MOVRJ: [AR]_AC[SRCP], J/MVSKP ;SRC LONGER, SKIP OVER SOME ; 6376 STATE_[DSTF], ;DST LONGER, FILL IT U 1201, 2103,3771,0013,4370,4007,0700,0010,0000,0006 ; 6377 CALL [MOVFIL] ; .. ; 6378 =11 [ARX]_WORK[SLEN]+1, ;DONE FILLING U 1203, 3176,0551,0704,7274,4007,0701,0000,0000,0242 ; 6379 J/MOVST1 ;GO MOVE STRING ; 6380 ; 6381 ;HERE TO SKIP OVER EXTRA SOURCE BYTES ; 6382 MVSKP: AC[SRCP]_[AR], ;PUT POINTER BACK U 3164, 1204,3440,0303,1174,4007,0670,0400,0000,1441 ; 6383 SKIP -1MS ;[121] Is there a timer interrupt? U 1204, 3167,3333,0003,7174,4007,0700,0400,0000,0211 ; 6384 =0 WORK[SV.AR]_[AR], J/MVSK2 ;[121][123] Yes, save regs for interrupt. ; 6385 [ARX]_[ARX]-1, 3T, ;DONE SKIPPING? U 1205, 1206,1111,0704,4174,4007,0521,4000,0000,0000 ; 6386 SKIP DP0 ; 6387 =0 IBP DP, IBP SCAD, ;NO--START THE IBP ; 6388 SCAD DISP, SKIP IRPT, ;4-WAY DISPATCH U 1206, 1210,3770,0305,4334,4016,7371,0000,0033,6000 ; 6389 3T, J/MVSKP1 ;GO BUMP POINTER ; 6390 AC[DLEN]_0, ;LENGTHS ARE NOW EQUAL U 1207, 1226,4223,0000,1174,4007,0700,0400,0000,1443 ; 6391 J/MOVST4 ;GO MOVE STRING ; 6392 ; 6393 =00 U 1210, 3164,3441,0503,4174,4007,0700,0000,0000,0000 ; 6394 MVSKP1: [AR]_[BR], J/MVSKP ;NO OVERFLOW ; 6395 [AR]_.NOT.WORK[SLEN], ;INTERRUPT [121] or timer U 1211, 3165,7771,0003,7274,4007,0701,0000,0000,0242 ; 6396 J/MVSK3 ; .. ; 6397 SET P TO 36-S, ;WORD OVERFLOW U 1212, 3166,3770,0503,4334,4017,0700,0000,0032,6000 ; 6398 J/MVSKP2 ;FIXUP Y U 1213, 3165,7771,0003,7274,4007,0701,0000,0000,0242 ; 6399 [AR]_.NOT.WORK[SLEN] ;INTERRUPT U 3165, 1214,3440,0303,1174,4007,0700,0400,0000,1443 ; 6400 MVSK3: AC[DLEN]_[AR] ;RESET DLEN ; 6401 =0 [AR]_[AR]+[ARX], U 1214, 3551,0111,0403,4174,4007,0700,0010,0000,0000 ; 6402 CALL [INCAR] ;ADD 1 TO AR ; 6403 AC_[AR].OR.[BRX], ;PUT BACK FLAGS U 1215, 3602,3113,0306,0174,4007,0700,0400,0000,0000 ; 6404 J/ITRAP ;DO INTERRUPT TRAP ; 6405 ; 6406 MVSKP2: [AR]_[AR]+1, HOLD LEFT, ;BUMP Y U 3166, 3164,0111,0703,4170,4007,0700,0000,0000,0000 ; 6407 J/MVSKP ;KEEP GOING ; 6408 ; 6409 ;BEGIN EDIT [123] U 3167, 3170,3333,0005,7174,4007,0700,0400,0000,0213 ; 6410 MVSK2: WORK[SV.BR]_[BR] ;SAVE ALL U 3170, 3171,3333,0004,7174,4007,0700,0400,0000,0212 ; 6411 WORK[SV.ARX]_[ARX] ;THE REGISTERS U 3171, 1171,3333,0006,7174,4007,0700,0400,0000,0214 ; 6412 WORK[SV.BRX]_[BRX] ;FOR THE TICK U 1171, 3442,4443,0000,4174,4007,0700,0010,0000,0000 ; 6413 =0* CALL [TICK] ;UPDATE CLOCK AND SET INTERUPT U 1173, 3172,3771,0003,7274,4007,0701,0000,0000,0211 ; 6414 [AR]_WORK[SV.AR] ;NOW PUT U 3172, 3173,3771,0005,7274,4007,0701,0000,0000,0213 ; 6415 [BR]_WORK[SV.BR] ;THEM ALL U 3173, 3174,3771,0004,7274,4007,0701,0000,0000,0212 ; 6416 [ARX]_WORK[SV.ARX] ;BACK SO WE ; 6417 [BRX]_WORK[SV.BRX], ;CAN CONTINUE U 3174, 3164,3771,0006,7274,4007,0701,0000,0000,0214 ; 6418 J/MVSKP ; 6419 ;END EDIT [123] ; 6420 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 146 ; DSK: KSHACK; EXTEND 4 20:01:38 16-JAN-87 EXTEND -- MOVE STRING -- SIMPLE MOVE LOOP ; 6421 .TOC "EXTEND -- MOVE STRING -- SIMPLE MOVE LOOP" ; 6422 ; 6423 ;HERE FOR NO-MODIFICATION STRING MOVES U 3175, 3176,0111,0704,4174,4007,0700,0000,0000,0000 ; 6424 MOVST0: [ARX]_[ARX]+1 ;CANT DO [ARX]_[AR]+1 U 3176, 1220,3771,0013,4370,4007,0700,0000,0000,0003 ; 6425 MOVST1: STATE_[SRC] ;PREPARE FOR PAGE FAIL ; 6426 =000 ; 6427 WORK[SLEN]_[ARX], ;GO GET A SOURCE BYTE U 1220, 2142,3333,0004,7174,4007,0520,0410,0000,0242 ; 6428 SKIP DP0, CALL [GSRC] ; .. ; 6429 MOVSTX: [ARX]_[AR], ;SHORT STRING RAN OUT U 1221, 1230,3441,0304,4174,4007,0520,0000,0000,0000 ; 6430 SKIP DP0, J/MOVST2 ;GO SEE IF FILL NEEDED ; 6431 =010 STATE_[SRC+DST], ;WILL NEED TO BACK UP BOTH POINTERS U 1222, 3340,3771,0013,4370,4007,0700,0010,0000,0005 ; 6432 CALL [PUTDST] ;STORE BYTE ; 6433 =110 ; 6434 MOVST4: [ARX]_WORK[SLEN]+1, ;COUNT DOWN LENGTH U 1226, 3176,0551,0704,7274,4007,0701,0000,0000,0242 ; 6435 J/MOVST1 ;LOOP OVER STRING ; 6436 = ; 6437 =00 U 1230, 3177,4223,0000,1174,4007,0700,0400,0000,1443 ; 6438 MOVST2: AC[DLEN]_0, J/MOVST3 ;CLEAR DEST LEN, REBUILD SRC U 1231, 2103,3771,0013,4370,4007,0700,0010,0000,0004 ; 6439 STATE_[DST], CALL [MOVFIL] ;FILL OUT DEST U 1233, 1313,3440,0606,0174,4007,0700,0400,0000,0000 ; 6440 =11 AC_[BRX], J/ENDSKP ;ALL DONE ; 6441 U 3177, 3200,3113,0406,0174,4007,0700,0400,0000,0000 ; 6442 MOVST3: AC_[ARX].OR.[BRX] ;REBUILD SRC U 3200, 0172,4221,0013,4170,4007,0700,0000,0000,0000 ; 6443 END STATE, J/SKIPE ; .. ; 6444 ; 6445 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 147 ; DSK: KSHACK; EXTEND 4 20:01:38 16-JAN-87 EXTEND -- COMPARE STRING ; 6446 .TOC "EXTEND -- COMPARE STRING" ; 6447 ; 6448 3740: U 3740, 1103,3771,0004,1276,6007,0701,0000,0000,1443 ; 6449 CMS: [ARX]_AC[DLEN] ;GET DEST LEN U 1103, 3556,4553,0400,4374,4007,0321,0010,0077,7000 ; 6450 =0** TL [ARX], #/777000, CALL [BITCHK] U 1107, 1223,3771,0006,0276,6007,0700,0000,0000,0000 ; 6451 [BRX]_AC ;GET SRC LEN U 1223, 3556,4553,0600,4374,4007,0321,0010,0077,7000 ; 6452 =0** TL [BRX], #/777000, CALL [BITCHK] U 1227, 1224,2113,0604,4174,4007,0521,4000,0000,0000 ; 6453 [BRX]-[ARX], 3T, SKIP DP0 ;WHICH STRING IS LONGER? U 1224, 1225,0111,0703,4174,4007,0700,0000,0000,0000 ; 6454 =0 [AR]_[AR]+1 ;SRC STRING IS LONGER U 1225, 1240,0111,0703,4170,4007,0700,0200,0004,0012 ; 6455 VMA_[AR]+1, START READ ;DST STRING ; 6456 =0 [AR]_0, ;FORCE FIRST COMPARE TO BE ; 6457 ;EQUAL U 1240, 3546,4221,0003,4174,4007,0700,0010,0000,0000 ; 6458 CALL [LOADQ] ;PUT FILL INTO Q ; 6459 WORK[FILL]_Q, ;SAVE FILLER U 1241, 3210,3223,0000,7174,4007,0700,0400,0000,0244 ; 6460 J/CMS2 ;ENTER LOOP ; 6461 ; 6462 ;HERE IS THE COMPARE LOOP. ; 6463 ; ARX/ CONATINS REMAINING DEST LENGTH ; 6464 ; BRX/ CONTAINS REMAINING SOURCE LENGTH ; 6465 =0 ; 6466 CMS3: ;BYTES ARE NOT EQUAL ; 6467 END STATE, ;NO MORE SPECIAL PAGE FAIL ACTION U 1242, 0170,4221,0013,4170,4003,7700,0000,0000,0000 ; 6468 SKIP-COMP DISP ;SEE SKIP-COMP-TABLE U 1243, 3201,3771,0003,1276,6007,0701,0000,0000,1441 ; 6469 CMS4: [AR]_AC[SRCP] ;GET BYTE POINTER U 3201, 1244,3333,0006,4174,4007,0520,0000,0000,0000 ; 6470 READ [BRX], SKIP DP0 ;MORE IN SOURCE STRING? ; 6471 =00 STATE_[EDIT-SRC], ;PREPARE FOR PAGE FAIL U 1244, 2143,3771,0013,4370,4007,0700,0010,0000,0011 ; 6472 CALL [GETSRC] ; GO GET BYTE ; 6473 READ [ARX], SKIP DP0, ;NO MORE SRC--SEE IF MORE DEST U 1245, 1254,3333,0004,4174,4007,0520,0000,0000,0000 ; 6474 J/CMS5 ; .. U 1246, 3202,3333,0003,7174,4007,0700,0400,0000,0245 ; 6475 WORK[CMS]_[AR] ;SAVE SRC BYTE ; 6476 = U 3202, 3203,3440,0606,0174,4007,0700,0400,0000,0000 ; 6477 AC_[BRX] ;PUT BACK SRC LEN U 3203, 3204,3771,0013,4370,4007,0700,0000,0000,0010 ; 6478 STATE_[COMP-DST] ;HAVE TO BACK UP IF DST FAILS U 3204, 1250,3333,0004,4174,4007,0520,0000,0000,0000 ; 6479 READ [ARX], SKIP DP0 ;ANY MORE DEST? ; 6480 =00 U 1250, 1256,4443,0000,4174,4007,0700,0010,0000,0000 ; 6481 CMS6: CALL [CMPDST] ;MORE DEST BYTES ; 6482 [AR]_WORK[FILL], ;OUT OF DEST BYTES U 1251, 3205,3771,0003,7274,4007,0701,0000,0000,0244 ; 6483 J/CMS7 ;GO DO COMPARE U 1252, 3205,3440,0404,1174,4007,0700,0400,0000,1443 ; 6484 AC[DLEN]_[ARX] ;GOT A BYTE, UPDATE LENGTH ; 6485 = ; 6486 CMS7: [AR]_[AR].AND.[MASK], ;MAKE MAGNITUDES U 3205, 3206,4111,1203,7174,4007,0700,0000,0000,0245 ; 6487 WORK[CMS] ;WARM UP RAM U 3206, 3207,4551,1205,7274,4007,0700,0000,0000,0245 ; 6488 [BR]_[MASK].AND.WORK[CMS], 2T ;GET SRC MAGNITUDE U 3207, 3210,2111,0503,4174,4007,0700,4000,0000,0000 ; 6489 [AR]_[BR]-[AR] REV ;UNSIGNED COMPARE U 3210, 3211,1111,0704,4174,4007,0700,4000,0000,0000 ; 6490 CMS2: [ARX]_[ARX]-1 ;UPDATE LENGTHS U 3211, 3212,1111,0706,4174,4007,0700,4000,0000,0000 ; 6491 [BRX]_[BRX]-1 ; .. U 3212, 1242,3333,0003,4174,4007,0621,0000,0000,0000 ; 6492 READ [AR], SKIP AD.EQ.0, J/CMS3 ;SEE IF EQUAL ; 6493 ; 6494 =0 U 1254, 3213,3772,0000,7274,4007,0701,0000,0000,0244 ; 6495 CMS5: Q_WORK[FILL], J/CMS8 ;MORE DST--GET SRC FILL U 1255, 1242,4221,0003,4174,4007,0700,0000,0000,0000 ; 6496 [AR]_0, J/CMS3 ;STRINGS ARE EQUAL U 3213, 3214,3771,0013,4370,4007,0700,0000,0000,0012 ; 6497 CMS8: STATE_[EDIT-DST] ;JUST DST POINTER ON PAGE FAIL U 3214, 1250,3223,0000,7174,4007,0700,0400,0000,0245 ; 6498 WORK[CMS]_Q, J/CMS6 ;MORE DST--SAVE SRC FILL ; 6499 ; 6500 =0 ; 6501 CMPDST: [AR]_AC[DSTP], ;GET DEST POINTER U 1256, 3341,3771,0003,1276,6007,0701,0010,0000,1444 ; 6502 CALL [IDST] ;UPDATE IT ; 6503 READ [AR], ;LOOK AT BYTE POINTER ; 6504 FE_FE.AND.S#, S#/0770, ;MASK OUT BIT 6 U 1257, 0550,3333,0003,4174,4006,5701,1000,0051,0770 ; 6505 BYTE DISP, J/LDB1 ;GO LOAD BYTE ; 6506 ; 6507 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 148 ; DSK: KSHACK; EXTEND 4 20:01:38 16-JAN-87 EXTEND -- DECIMAL TO BINARY CONVERSION ; 6508 .TOC "EXTEND -- DECIMAL TO BINARY CONVERSION" ; 6509 ; 6510 3742: U 3742, 3215,4571,1203,4374,4007,0700,0000,0077,7777 ; 6511 DBIN: [AR]_[777777] XWD 0 ;IF WE ARE IN OFFSET MODE U 3215, 3216,3333,0003,7174,4007,0700,0400,0000,0243 ; 6512 WORK[MSK]_[AR] ; ONLY ALLOW 18 BITS ; 6513 ;RANGE CHECKED (0-10) LATER U 3216, 3217,3771,0003,0276,6007,0700,0000,0000,0000 ; 6514 [AR]_AC ;GET SRC LENGTH ; 6515 [BRX]_[AR].AND.# CLR RH, ;SPLIT OUT FLAGS U 3217, 1175,4521,0306,4374,4007,0700,0000,0077,7000 ; 6516 #/777000 ; .. ; 6517 =0* [ARX]_AC[BIN1], ;GET LOW WORD U 1175, 1572,3771,0004,1276,6007,0701,0010,0000,1444 ; 6518 CALL [CLARX0] ;CLEAR BIT 0 OF ARX U 1177, 1260,3440,0404,1174,4007,0700,0400,0000,1444 ; 6519 AC[BIN1]_[ARX] ;STORE BACK ; 6520 =0 READ [BRX], SKIP DP0, ;IS S ALREADY SET? U 1260, 1326,3333,0006,4174,4007,0520,0010,0000,0000 ; 6521 CALL [CLRBIN] ;GO CLEAR BIN IF NOT ; 6522 [AR]_[AR].AND.#, ;CLEAR FLAGS FROM LENGTH ; 6523 #/000777, HOLD RIGHT, ; .. U 1261, 1276,4551,0303,4374,0003,7700,0000,0000,0777 ; 6524 B DISP ;SEE IF OFFSET OR TRANSLATE ; 6525 =1110 U 1276, 3220,3771,0013,4370,4007,0700,0000,0000,0007 ; 6526 DBIN1: STATE_[CVTDB], J/DBIN2 ;TRANSLATE--LEAVE S ALONE ; 6527 [BRX]_[BRX].OR.#, ;OFFSET--FORCE S TO 1 ; 6528 #/400000, HOLD RIGHT, U 1277, 1276,3551,0606,4374,0007,0700,0000,0040,0000 ; 6529 J/DBIN1 U 3220, 1262,7333,0003,7174,4007,0700,0400,0000,0242 ; 6530 DBIN2: WORK[SLEN]_.NOT.[AR] ;STORE -SLEN-1 ; 6531 ; 6532 ;HERE IS THE MAIN LOOP ; 6533 =0*0 U 1262, 2104,0551,0703,7274,4007,0701,0010,0000,0242 ; 6534 DBINLP: [AR]_WORK[SLEN]+1, CALL [SRCMOD] ;(0) GET MODIFIED SRC BYTE ; 6535 TL [BRX], #/100000, ;(1) DONE, IS M SET? U 1263, 1304,4553,0600,4374,4007,0321,0000,0010,0000 ; 6536 J/DBXIT ; 6537 [AR]_.NOT.WORK[SLEN], ;(4) ABORT U 1266, 3225,7771,0003,7274,4007,0701,0000,0000,0242 ; 6538 J/DBABT ; .. ; 6539 [AR]-#, #/10., ;(5) NORMAL--SEE IF 0-9 U 1267, 1264,1553,0300,4374,4007,0532,4000,0000,0012 ; 6540 4T, SKIP DP18 ; .. ; 6541 =0 [AR]_.NOT.WORK[SLEN], ;DIGIT TOO BIG U 1264, 3225,7771,0003,7274,4007,0701,0000,0000,0242 ; 6542 J/DBABT ;GO ABORT CVT ; 6543 ; 6544 ;HERE TO ADD IN A DIGIT ; 6545 [BR]_AC[BIN0], 4T, ;GET HIGH BINARY U 1265, 1270,3771,0005,1276,6007,0622,0000,0000,1443 ; 6546 SKIP AD.EQ.0 ;SEE IF SMALL ; 6547 =00 ; 6548 DBSLO: [ARX]_AC[BIN1], ;TOO BIG U 1270, 1310,3771,0004,1276,6007,0701,0010,0000,1444 ; 6549 CALL [DBSLOW] ;GO USE DOUBLE PRECISION PATHS ; 6550 [BR]_AC[BIN1], ;GET LOW WORD U 1271, 3221,3771,0005,1276,6007,0701,0000,0000,1444 ; 6551 J/DBFAST ;MIGHT FIT IN 1 WORD U 1272, 1262,4443,0000,4174,4007,0700,0000,0000,0000 ; 6552 J/DBINLP ;RETURN FROM DBSLOW ; 6553 ;GO DO NEXT DIGIT ; 6554 = U 3221, 1274,4553,0500,4374,4007,0321,0000,0076,0000 ; 6555 DBFAST: TL [BR], #/760000 ;WILL RESULT FIT IN 36 BITS? U 1274, 1270,4443,0000,4174,4007,0700,0000,0000,0000 ; 6556 =0 J/DBSLO ;MAY NOT FIT--USE DOUBLE WORD U 1275, 3222,3775,0005,1276,6007,0701,0000,0000,1444 ; 6557 [BR]_AC[BIN1]*2 ;COMPUTE AC*2 U 3222, 1300,3445,0505,1174,4007,0700,0000,0000,1444 ; 6558 [BR]_[BR]*2, AC[BIN1] ;COMPUTE AC*4 ; 6559 =0 [BR]_[BR]+AC[BIN1], 2T, ;COMPUTE AC*5 U 1300, 3552,0551,0505,1274,4007,0700,0010,0000,1444 ; 6560 CALL [SBRL] ;COMPUTE AC*10 ; 6561 AC[BIN1]_[AR]+[BR], 3T, ;NEW BINARY RESULT U 1301, 1262,0113,0305,1174,4007,0701,0400,0000,1444 ; 6562 J/DBINLP ;DO NEXT DIGIT ; 6563 ; 6564 ;HERE IF NUMBER DOES NOT FIT IN ONE WORD ; 6565 ; 6566 =000 ; 6567 DBSLOW: [BR]_AC[BIN0], ;FETCH HIGH WORD U 1310, 1330,3771,0005,1276,6007,0701,0010,0000,1443 ; 6568 CALL [MULBY4] ;MULTIPLY BY 4 ; 6569 [ARX]_[ARX]+AC[BIN1], ;COMPUTE VALUE * 5 ; 6570 SKIP CRY1, 4T, ;SEE IF OVERFLOW U 1311, 1302,0551,0404,1274,4007,0562,0010,0000,1444 ; 6571 CALL [ADDCRY] ;GO ADD CARRY U 1315, 1320,0551,0505,1274,4007,0701,0000,0000,1443 ; 6572 =101 [BR]_[BR]+AC[BIN0] ;ADD IN HIGH WORD ; 6573 = U 1320, 1331,4443,0000,4174,4007,0700,0010,0000,0000 ; 6574 =000 CALL [DBLDBL] ;MAKE * 10 ; 6575 [ARX]_[ARX]+[AR], 3T, ;ADD IN NEW DIGIT ; 6576 SKIP CRY1, ;SEE IF OVERFLOW U 1321, 1302,0111,0304,4174,4007,0561,0010,0000,0000 ; 6577 CALL [ADDCRY] ;ADD IN THE CARRY U 1325, 3223,3440,0404,1174,4007,0700,0400,0000,1444 ; 6578 =101 AC[BIN1]_[ARX] ;PUT BACK ANSWER ; 6579 = ; 6580 AC[BIN0]_[BR], ; .. U 3223, 0002,3440,0505,1174,4004,1700,0400,0000,1443 ; 6581 RETURN [2] ;GO DO NEXT BYTE ; 6582 ; 6583 ;HERE TO DOUBLE BR!ARX ; 6584 =000 U 1330, 1331,4443,0000,4174,4007,0700,0010,0000,0000 ; 6585 MULBY4: CALL [DBLDBL] ;DOUBLE TWICE U 1331, 1332,0111,0505,4174,4007,0700,0000,0000,0000 ; 6586 DBLDBL: [BR]_[BR]+[BR] ;DOUBLE HIGH WORD FIRST ; 6587 ;(SO WE DON'T DOUBLE CARRY) ; 6588 [ARX]_[ARX]+[ARX], ;DOUBLE LOW WORD ; 6589 SKIP CRY1, 3T, ;SEE IF CARRY U 1332, 1302,0111,0404,4174,4007,0561,0010,0000,0000 ; 6590 CALL [ADDCRY] ;ADD IN CARRY U 1336, 0001,4443,0000,4174,4004,1700,0000,0000,0000 ; 6591 =110 RETURN [1] ;ALL DONE ; 6592 = ; 6593 ; 6594 ;HERE TO ADD THE CARRY ; 6595 =0 U 1302, 0004,4443,0000,4174,4004,1700,0000,0000,0000 ; 6596 ADDCRY: RETURN [4] ;NO CARRY U 1303, 3224,4551,0404,4374,0007,0700,0000,0037,7777 ; 6597 CLEAR [ARX]0 ;KEEP LOW WORD POSITIVE ; 6598 [BR]_[BR]+1, ;ADD CARRY U 3224, 0004,0111,0705,4174,4004,1700,0000,0000,0000 ; 6599 RETURN [4] ;ALL DONE ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 149 ; DSK: KSHACK; EXTEND 4 20:01:38 16-JAN-87 EXTEND -- DECIMAL TO BINARY CONVERSION ; 6600 ; 6601 ;HERE TO ABORT CONVERSION U 3225, 3226,3111,0306,4174,4007,0700,0000,0000,0000 ; 6602 DBABT: [BRX]_[BRX].OR.[AR] ;PUT BACK UNUSED LENGTH ; 6603 [PC]_[PC]-1, HOLD LEFT, ;DO NOT SKIP U 3226, 1305,1111,0701,4170,4007,0700,4000,0000,0000 ; 6604 J/DBDONE ;GO FIX UP SIGN COPY ; 6605 ; 6606 ;HERE AT END ; 6607 =0 ; 6608 DBXIT: [ARX]_AC[BIN1], ;GET LOW WORD U 1304, 3231,3771,0004,1276,6007,0701,0000,0000,1444 ; 6609 J/DBNEG ;GO NEGATE U 1305, 3227,3771,0003,1276,6007,0701,0000,0000,1444 ; 6610 DBDONE: [AR]_AC[BIN1] ;FETCH LOW WORD ; 6611 [BR]_AC[BIN0], 4T, ;GET HIGH WORD U 3227, 1306,3771,0005,1276,6007,0522,0000,0000,1443 ; 6612 SKIP DP0 ;WHAT SIGN U 1306, 3230,4551,0303,4374,0007,0700,0000,0037,7777 ; 6613 =0 CLEAR [AR]0, J/DBDN1 ;POSITIVE U 1307, 3230,3551,0303,4374,0007,0700,0000,0040,0000 ; 6614 [AR]_[AR].OR.#, #/400000, HOLD RIGHT U 3230, 1312,3440,0303,1174,4007,0700,0400,0000,1444 ; 6615 DBDN1: AC[BIN1]_[AR] ;STORE AC BACK ; 6616 =0 AC_[BRX] TEST, ;RETURN FLAGS U 1312, 1326,3770,0606,0174,4007,0520,0410,0000,0000 ; 6617 SKIP DP0, CALL [CLRBIN] ;CLEAR BIN IS S=0 U 1313, 0014,4221,0013,4170,4007,0700,0000,0000,0000 ; 6618 ENDSKP: END STATE, J/SKIP ;NO--ALL DONE ; 6619 U 3231, 3232,4551,0404,4374,0007,0700,0000,0037,7777 ; 6620 DBNEG: CLEAR ARX0 ;CLEAR EXTRA SIGN BIT ; 6621 [ARX]_-[ARX], 3T, ;NEGATE AND SEE IF U 3232, 1316,2441,0404,1174,4007,0621,4000,0000,1443 ; 6622 SKIP AD.EQ.0, AC[BIN0] ; ANY CARRY U 1316, 1323,7771,0003,1274,4007,0700,0000,0000,1443 ; 6623 =0 [AR]_.NOT.AC[BIN0], 2T, J/STAC34 ;NO CARRY ; 6624 [AR]_-AC[BIN0], 3T, ;CARRY U 1317, 1322,1771,0003,1274,4007,0621,4000,0000,1443 ; 6625 SKIP AD.EQ.0 ;SEE IF ALL ZERO U 1322, 1323,4571,1204,4374,4007,0700,0000,0040,0000 ; 6626 =0 [ARX]_[400000] XWD 0 ;MAKE COPY OF SIGN ; 6627 ; UNLESS HIGH WORD IS ZERO U 1323, 3233,3440,0303,1174,4007,0700,0400,0000,1443 ; 6628 STAC34: AC[BIN0]_[AR] ;PUT BACK ANSWER U 3233, 1305,3440,0404,1174,4007,0700,0400,0000,1444 ; 6629 AC[BIN1]_[ARX], J/DBDONE ; .. ; 6630 ; 6631 ;HELPER SUBROUTINE TO CLEAR AC[BIN0] AND AC[BIN1] IF S=0 ; 6632 ;CALL WITH: ; 6633 ; READ [BRX], SKIP DP0, CALL [CLRBIN] ; 6634 ;RETURNS 1 ALWAYS ; 6635 =0 U 1326, 3234,4223,0000,1174,4007,0700,0400,0000,1443 ; 6636 CLRBIN: AC[BIN0]_0, J/CLRB1 U 1327, 0001,4443,0000,4174,4004,1700,0000,0000,0000 ; 6637 RETURN [1] U 3234, 0001,4223,0000,1174,4004,1700,0400,0000,1444 ; 6638 CLRB1: AC[BIN1]_0, RETURN [1] ; 6639 ; 6640 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 150 ; DSK: KSHACK; EXTEND 4 20:01:38 16-JAN-87 EXTEND -- BINARY TO DECIMAL CONVERSION ; 6641 .TOC "EXTEND -- BINARY TO DECIMAL CONVERSION" ; 6642 ; 6643 3743: ; 6644 BDEC: [BRX]_AC[DLEN], ;GET LENGTH AND FLAGS U 3743, 1334,3771,0006,1276,6007,0351,0000,0000,1443 ; 6645 SKIP FPD ;CONTINUE FROM INTERUPT? ; 6646 =0 [BRX]_[BRX].AND.#, ;JUST KEEP THE FLAGS ; 6647 #/777000, ; .. U 1334, 3235,4551,0606,4374,4007,0700,0000,0077,7000 ; 6648 J/BDEC0 ;COMPUTE NEW FLAGS U 1335, 3253,3771,0003,0276,6007,0700,0000,0000,0000 ; 6649 DOCVT: [AR]_AC, J/DOCVT1 ;ALL SET PRIOR TO TRAP U 3235, 3236,3771,0004,1276,6007,0701,0000,0000,1441 ; 6650 BDEC0: [ARX]_AC[1] ;GET LOW BINARY U 3236, 1340,3771,0003,0276,6007,0700,2000,0071,0024 ; 6651 [AR]_AC, SC_20. ;GET HIGH WORD, SET STEP COUNT ; 6652 =0* WORK[BDL]_[ARX], ;SAVE IN CASE OF ABORT U 1340, 1572,3333,0004,7174,4007,0700,0410,0000,0250 ; 6653 CALL [CLARX0] ;MAKE SURE BIT 0 IS OFF ; 6654 WORK[BDH]_[AR], ;SAVE HIGH WORD AND U 1342, 1344,3333,0003,7174,4007,0520,0400,0000,0247 ; 6655 SKIP DP0 ; TEST SIGN ; 6656 =0 ; 6657 BDEC1: [BRX]_0, HOLD LEFT, ;POSITIVE, CLEAR RH OF BRX U 1344, 1350,4221,0006,4170,4007,0700,0000,0000,0000 ; 6658 J/BDEC3 ;COMPUTE # OF DIGITS REQUIRED ; 6659 [BRX]_[BRX].OR.#, ;NEGATIVE, SET M U 1345, 1341,3551,0606,4374,0007,0700,0000,0010,0000 ; 6660 #/100000, HOLD RIGHT ; .. ; 6661 =0* U 1341, 2737,4551,0404,4374,0007,0700,0010,0037,7777 ; 6662 BDEC2: CLEAR ARX0, CALL [DBLNG1] ;NEGATE AR!ARX ; 6663 AC_[AR] TEST, ;PUT BACK ANSWER U 1343, 1346,3770,0303,0174,4007,0520,0400,0000,0000 ; 6664 SKIP DP0 ;IF STILL MINUS WE HAVE ; 6665 ; 1B0, AND NO OTHER BITS U 1346, 1344,3440,0404,1174,4007,0700,0400,0000,1441 ; 6666 =0 AC[1]_[ARX], J/BDEC1 ;POSITIVE NOW U 1347, 3237,0111,0704,4174,4007,0700,0000,0000,0000 ; 6667 [ARX]_[ARX]+1 ;JUST 1B0--ADD 1 ; 6668 [BRX]_[BRX].OR.#, ;AND REMEMBER THAT WE DID ; 6669 #/040000, HOLD RIGHT, ; IN LEFT HALF OF AC+3 U 3237, 1341,3551,0606,4374,0007,0700,0000,0004,0000 ; 6670 J/BDEC2 ; NEGATE IT AGAIN ; 6671 =0 U 1350, 1361,3771,0003,0276,6007,0700,0000,0000,0000 ; 6672 BDEC3: [AR]_AC, J/BDEC4 ;GET HIGH AC ; 6673 [BRX]_[BRX].OR.#, ;NO LARGER POWER OF 10 FITS ; 6674 #/200000, ;SET N FLAG (CLEARLY NOT 0) U 1351, 1354,3551,0606,4374,0007,0700,0000,0020,0000 ; 6675 HOLD RIGHT, J/BDEC5 ;SETUP TO FILL, ETC. ; 6676 =001 ; 6677 BDEC4: [ARX]_AC[1], ;GET HIGH WORD U 1361, 1512,3771,0004,1276,6007,0701,0010,0000,1441 ; 6678 CALL [BDSUB] ;SEE IF 10**C(BRX) FITS ; 6679 =011 [BRX]_[BRX]+1, ;NUMBER FITS--TRY A LARGER ONE U 1363, 1350,0111,0706,4174,4007,0630,2000,0060,0000 ; 6680 STEP SC, J/BDEC3 ;UNLESS WE ARE OUT OF NUMBERS U 1367, 1352,4553,0600,4374,4007,0331,0000,0077,7777 ; 6681 =111 TR [BRX], #/777777 ;ANY DIGITS REQUIRED? ; 6682 = ; 6683 =0 [BRX]_[BRX].OR.#, ;SOME DIGITS NEEDED, ; 6684 #/200000, HOLD RIGHT, ; SET N FLAG U 1352, 1354,3551,0606,4374,0007,0700,0000,0020,0000 ; 6685 J/BDEC5 ;CONTINUE BELOW U 1353, 1354,0111,0706,4174,4007,0700,0000,0000,0000 ; 6686 [BRX]_[BRX]+1 ;ZERO--FORCE AT LEAST 1 DIGIT ; 6687 ; 6688 =0 ; 6689 BDEC5: [AR]_AC[DLEN], ;GET LENGTH U 1354, 3350,3771,0003,1276,6007,0701,0010,0000,1443 ; 6690 CALL [CLRFLG] ;REMOVE FLAGS FROM AR U 1355, 3240,4221,0005,4174,4007,0700,0000,0000,0000 ; 6691 [BR]_0 U 3240, 3241,3441,0605,4170,4007,0700,0000,0000,0000 ; 6692 [BR]_[BRX], HOLD LEFT ;GET # OF DIGITS NEEDED ; 6693 [BR]_[BR]-[AR], ;NUMBER OF FILLS NEEDED U 3241, 1356,1111,0305,4174,4007,0421,4000,0000,0000 ; 6694 SKIP AD.LE.0 ;SEE IF ENOUGH ROOM ; 6695 =0 [ARX]_WORK[BDL], ;DOES NOT FIT IN SPACE ALLOWED U 1356, 3263,3771,0004,7274,4007,0701,0000,0000,0250 ; 6696 J/BDABT ; DO NOT DO CONVERT U 1357, 1364,3333,0006,4174,4007,0520,0000,0000,0000 ; 6697 READ [BRX], SKIP DP0 ;IS L ALREADY SET ; 6698 =0 AC[DLEN]_[BRX], ;NO--NO FILLERS U 1364, 1335,3440,0606,1174,4007,0700,0400,0000,1443 ; 6699 J/DOCVT ;GO CHURN OUT THE NUMBER ; 6700 ; 6701 ; 6702 ;HERE TO STORE LEADING FILLERS U 1365, 3242,3441,0603,4174,0007,0700,0000,0000,0000 ; 6703 [AR]_[BRX], HOLD RIGHT ;MAKE SURE THE FLAGS GET SET U 3242, 3243,3440,0303,1174,4007,0700,0400,0000,1443 ; 6704 AC[DLEN]_[AR] ; BEFORE WE PAGE FAIL U 3243, 3244,3771,0003,7274,4007,0701,0000,0000,0240 ; 6705 [AR]_WORK[E0] ;ADDRESS OF FILL (-1) ; 6706 [AR]_[AR]+1, LOAD VMA, ;FETCH FILLER U 3244, 3245,0111,0703,4174,4007,0700,0200,0004,0012 ; 6707 START READ U 3245, 3246,3771,0016,4365,5007,0700,0200,0000,0002 ; 6708 MEM READ, [T0]_MEM ;GET FILLER INTO AR U 3246, 3247,3771,0013,4370,4007,0700,0000,0000,0012 ; 6709 STATE_[EDIT-DST] ;PAGE FAILS BACKUP DST U 3247, 3250,2113,0507,7174,4007,0701,4400,0000,0242 ; 6710 WORK[SLEN]_[BR]-1, 3T ;SAVE # OF FILLERS U 3250, 3251,3441,1603,7174,4007,0700,0000,0000,0242 ; 6711 BDFILL: [AR]_[T0], WORK[SLEN] ;RESTORE FILL BYTE AND ; 6712 ; WARM UP RAM FILE ; 6713 [BR]_WORK[SLEN]+1, 3T, ;MORE FILLERS NEEDED? U 3251, 1370,0551,0705,7274,4007,0521,0000,0000,0242 ; 6714 SKIP DP0 U 1370, 1335,3440,0606,1174,4007,0700,0400,0000,1443 ; 6715 =000 AC[DLEN]_[BRX], J/DOCVT ;ALL DONE FIX FLAGS AND CONVERT ; 6716 =001 WORK[SLEN]_[BR], ;SAVE UPDATED LENGTH U 1371, 3340,3333,0005,7174,4007,0700,0410,0000,0242 ; 6717 CALL [PUTDST] ; AND STORE FILLER U 1377, 3252,2551,0705,1274,4007,0701,4000,0000,1443 ; 6718 =111 [BR]_AC[DLEN]-1 ;COUNT DOWN STRING LENGTH ; 6719 = U 3252, 3250,3440,0505,1174,4007,0700,0400,0000,1443 ; 6720 AC[DLEN]_[BR], J/BDFILL ;KEEP FILLING ; 6721 ; 6722 ;HERE TO STORE THE ANSWER ; 6723 ; 6724 DOCVT1: [ARX]_AC[1], ;GET LOW WORD U 3253, 3262,3771,0004,1276,6007,0701,0000,0000,1441 ; 6725 J/DOCVT2 ;ENTER LOOP FROM BOTTOM ; 6726 =010 ; 6727 BDECLP: [BR]_[BR]+1, ;COUNT DIGITS U 1602, 1512,0111,0705,4174,4007,0700,0010,0000,0000 ; 6728 CALL [BDSUB] ;KEEP SUBTRACTING 10**C(BRX) U 1606, 3254,3333,0003,7174,4007,0700,0400,0000,0247 ; 6729 =110 WORK[BDH]_[AR] ;SAVE BINARY ; 6730 = ; 6731 [AR]_[BR]+WORK[E1], ;OFFSET DIGIT U 3254, 1676,0551,0503,7274,4003,7701,0000,0000,0241 ; 6732 B DISP ;SEE WHICH MODE ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 151 ; DSK: KSHACK; EXTEND 4 20:01:38 16-JAN-87 EXTEND -- BINARY TO DECIMAL CONVERSION ; 6733 =1110 READ [AR], LOAD VMA, ;TRANSLATE, START READING TABLE U 1676, 1500,3333,0003,4174,4007,0700,0200,0004,0012 ; 6734 START READ, J/BDTBL ; GO GET ENTRY FROM TABLE U 1677, 2000,3333,0004,7174,4007,0700,0400,0000,0250 ; 6735 BDSET: WORK[BDL]_[ARX] ;SAVE LOW BINARY U 2000, 3340,3771,0013,4370,4007,0700,0010,0000,0012 ; 6736 =00* STATE_[EDIT-DST], CALL [PUTDST] U 2006, 3255,2551,0705,1274,4007,0701,4000,0000,1443 ; 6737 =11* [BR]_AC[DLEN]-1 ;UPDATE STRING LENGTH U 3255, 3256,3771,0003,7274,4007,0701,0000,0000,0247 ; 6738 [AR]_WORK[BDH] U 3256, 3257,3771,0004,7274,4007,0701,0000,0000,0250 ; 6739 [ARX]_WORK[BDL] U 3257, 1372,4553,0500,4374,4007,0321,0000,0004,0000 ; 6740 TL [BR], #/040000 ;ARE WE CONVERTING 1B0? U 1372, 3264,0111,0704,4174,4007,0700,0000,0000,0000 ; 6741 =0 [ARX]_[ARX]+1, J/BDCFLG ;YES--FIX THE NUMBER AND CLEAR FLAG U 1373, 3260,3440,0303,0174,4007,0700,0400,0000,0000 ; 6742 DOCVT3: AC_[AR] U 3260, 3261,3440,0404,1174,4007,0700,0400,0000,1441 ; 6743 AC[1]_[ARX] U 3261, 3262,3440,0505,1174,4007,0700,0400,0000,1443 ; 6744 AC[DLEN]_[BR] ;STORE BACK NEW STRING LENGTH U 3262, 1374,1111,0706,4174,4007,0531,4000,0000,0000 ; 6745 DOCVT2: [BRX]_[BRX]-1, 3T, SKIP DP18 U 1374, 1602,2441,0705,4174,4467,0701,4000,0003,0000 ; 6746 =0 [BR]_-1, SET FPD, 3T, J/BDECLP U 1375, 0014,4221,0013,4170,4467,0700,0000,0005,0000 ; 6747 END STATE, CLR FPD, J/SKIP ; 6748 ; 6749 ;HERE TO TRANSLATE 1 DIGIT ; 6750 =0 ; 6751 BDTBL: END STATE, ;DON'T CHANGE BYTE POINTER IF ; 6752 ; THIS PAGE FAILS U 1500, 3544,4221,0013,4170,4007,0700,0010,0000,0000 ; 6753 CALL [LOADAR] ;GO PUT WORD IN AR U 1501, 1502,4553,0600,4374,4007,0331,0000,0077,7777 ; 6754 TR [BRX], #/777777 ;LAST DIGIT U 1502, 1677,4221,0003,4174,0007,0700,0000,0000,0000 ; 6755 =0 [AR]_0, HOLD RIGHT, J/BDSET U 1503, 1510,4553,0600,4374,4007,0321,0000,0010,0000 ; 6756 TL [BRX], #/100000 ;AND NEGATIVE U 1510, 1511,3770,0303,4344,4007,0700,0000,0000,0000 ; 6757 =0 [AR]_[AR] SWAP ;LAST AND MINUS, USE LH U 1511, 1677,4221,0003,4174,0007,0700,0000,0000,0000 ; 6758 [AR]_0, HOLD RIGHT, J/BDSET ; 6759 U 3263, 1505,3771,0003,7274,4007,0701,0000,0000,0247 ; 6760 BDABT: [AR]_WORK[BDH], J/DAC ; 6761 ; 6762 BDCFLG: [BR]_[BR].AND.NOT.#, ;CLEAR FLAG THAT TELLS US ; 6763 #/040000, HOLD RIGHT, ; TO SUBTRACT 1 AND U 3264, 1373,5551,0505,4374,0007,0700,0000,0004,0000 ; 6764 J/DOCVT3 ; CONTINUE CONVERTING ; 6765 ; 6766 ;SUBROUTINE TO SUBRTACT A POWER OF 10 FROM AR!ARX ; 6767 ;CALL WITH: ; 6768 ; AR!ARX/ NUMBER TO BE CONVERTED ; 6769 ; BRX(RIGHT)/ POWER OF 10 ; 6770 ;RETURNS: ; 6771 ; 2 RESULT IS STILL POSITIVE ; 6772 ; 6 RESULT WOULD HAVE BEEN NEGATIVE (RESTORE DONE) ; 6773 =0 ; 6774 BDSUB: [T0]_[BRX]+#, 3T, WORK/DECLO, ;ADDRESS OF LOW WORD U 1512, 1360,0551,0616,4374,4007,0701,0000,0000,0344 ; 6775 J/BDSUB1 ;NO INTERRUPT U 1513, 2507,4443,0000,4174,4007,0700,0000,0000,0000 ; 6776 J/FIXPC ;INTERRUPT ; 6777 =0* ; 6778 BDSUB1: [T1]_[T0], LOAD VMA, ;PUT IN VMA, U 1360, 1572,3441,1617,4174,4007,0700,0210,0000,0010 ; 6779 CALL [CLARX0] ;FIX UP SIGN OF LOW WORD ; 6780 [ARX]_[ARX]-RAM, 3T, ;SUBTRACT U 1362, 1562,1551,0404,6274,4007,0561,4000,0000,0000 ; 6781 SKIP CRY1 ;SEE IF OVERFLOW U 1562, 1563,1111,0703,4174,4007,0700,4000,0000,0000 ; 6782 =0 [AR]_[AR]-1 ;PROCESS CARRY U 1563, 3265,0551,0616,4374,4007,0701,0000,0000,0373 ; 6783 [T0]_[BRX]+#, 3T, WORK/DECHI ;ADDRESS OF HIGH WORD U 3265, 3266,3333,0016,4174,4007,0700,0200,0000,0010 ; 6784 READ [T0], LOAD VMA ;PLACE IN VMA ; 6785 [AR]_[AR]-RAM, 4T, ;SUBTRACT U 3266, 1572,1551,0303,6274,4007,0522,4000,0000,0000 ; 6786 SKIP DP0 ;SEE IF IT FIT ; 6787 =0 ; 6788 CLARX0: CLEAR ARX0, ;IT FIT, KEEP LOW WORD + U 1572, 0002,4551,0404,4374,0004,1700,0000,0037,7777 ; 6789 RETURN [2] ; AND RETURN U 1573, 3267,0551,0303,6274,4007,0700,0000,0000,0000 ; 6790 [AR]_[AR]+RAM ;RESTORE U 3267, 3270,3333,0017,4174,4007,0700,0200,0000,0010 ; 6791 READ [T1], LOAD VMA U 3270, 1604,0551,0404,6274,4007,0561,0000,0000,0000 ; 6792 [ARX]_[ARX]+RAM, 3T, SKIP CRY1 ; 6793 =0 ; 6794 BDSUB2: CLEAR ARX0, ;KEEP LOW WORD + U 1604, 0006,4551,0404,4374,0004,1700,0000,0037,7777 ; 6795 RETURN [6] ;RETURN OVERFLOW ; 6796 [AR]_[AR]+1, ;ADD BACK THE CARRY U 1605, 1604,0111,0703,4174,4007,0700,0000,0000,0000 ; 6797 J/BDSUB2 ;COMPLETE SUBTRACT ; 6798 ; 6799 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 152 ; DSK: KSHACK; EXTEND 4 20:01:38 16-JAN-87 EXTEND -- EDIT -- MAIN LOOP ; 6800 .TOC "EXTEND -- EDIT -- MAIN LOOP" ; 6801 ; 6802 ;HERE FOR EDIT INSTRUCTION ; 6803 ;CALL WITH: ; 6804 ; AR/ E0 ADDRESS OF FILL, FLOAT, AND MESSAGE TABLE ; 6805 ; BR/ E1 TRANSLATE TABLE ; 6806 ; ; 6807 3741: ; 6808 EDIT: VMA_[AR]+1, START READ, ;FIRST GET FILL BYTE U 3741, 3346,0111,0703,4170,4007,0700,0210,0004,0012 ; 6809 CALL [GTFILL] ;GO GET IT U 3751, 1333,3771,0006,0276,6007,0700,0000,0000,0000 ; 6810 3751: [BRX]_AC ;GET PATTERN POINTER ; 6811 =0** TL [BRX], #/047777, ;MAKE SURE SECTION 0 U 1333, 3556,4553,0600,4374,4007,0321,0010,0004,7777 ; 6812 CALL [BITCHK] ; .. U 1337, 3271,3443,0600,4174,4007,0700,0200,0004,0012 ; 6813 EDITLP: VMA_[BRX], START READ ;FETCH PATTERN WORD U 3271, 3272,4221,0013,4170,4007,0700,0000,0000,0000 ; 6814 END STATE ;NO SPECIAL PAGE FAIL ACTION U 3272, 1646,3770,0605,4344,4007,0700,0000,0000,0000 ; 6815 [BR]_[BRX] SWAP ;GET PBN IN BITS 20 & 21 ; 6816 =0 [BR]_[BR]*4, ; .. U 1646, 3544,0115,0505,4174,4007,0700,0010,0000,0000 ; 6817 CALL [LOADAR] ;GET PATTERN WORD U 1647, 2014,3333,0005,4174,4003,1701,0000,0000,0000 ; 6818 READ [BR], 3T, DISP/DP LEFT ; 6819 =1100 U 2014, 1670,3770,0303,4344,4007,0700,2000,0071,0007 ; 6820 [AR]_[AR] SWAP, SC_7, J/MOVPAT ;(0) BITS 0-8 U 2015, 1671,3770,0303,4344,4007,0700,0000,0000,0000 ; 6821 [AR]_[AR] SWAP, J/MSKPAT ;(1) BITS 9-17 U 2016, 1670,3447,0303,4174,4007,0700,2000,0071,0006 ; 6822 [AR]_[AR]*.5, SC_6, J/MOVPAT ;(2) BITS 18-27 U 2017, 3273,4551,0303,4374,4007,0700,0000,0000,0777 ; 6823 [AR]_[AR].AND.#, #/777, J/EDISP ;(3) BITS 28-35 ; 6824 =0 U 1670, 1670,3447,0303,4174,4007,0630,2000,0060,0000 ; 6825 MOVPAT: [AR]_[AR]*.5, STEP SC, J/MOVPAT ;SHIFT OVER U 1671, 3273,4551,0303,4374,4007,0700,0000,0000,0777 ; 6826 MSKPAT: [AR]_[AR].AND.#, #/777 ; 6827 ; 6828 ;HERE WITH PATTERN BYTE RIGHT ADJUSTED IN AR U 3273, 1672,3447,0305,4174,4007,0700,2000,0071,0002 ; 6829 EDISP: [BR]_[AR]*.5, SC_2 ;SHIFT OVER ; 6830 =0 U 1672, 1672,3447,0505,4174,4007,0630,2000,0060,0000 ; 6831 EDISP1: [BR]_[BR]*.5, STEP SC, J/EDISP1 U 1673, 2021,3333,0005,4174,4003,5701,0000,0000,0000 ; 6832 READ [BR], 3T, DISP/DP ;LOOK AT HIGH 3 BITS ; 6833 =0001 ;(0) OPERATE GROUP ; 6834 [AR]-#, #/5, 4T, ; SEE IF 0-4 U 2021, 1674,1553,0300,4374,4007,0532,4000,0000,0005 ; 6835 SKIP DP18, J/EDOPR ; 6836 ;(1) MESSAGE BYTE ; 6837 READ [BRX], SKIP DP0, U 2023, 2062,3333,0006,4174,4007,0520,0000,0000,0000 ; 6838 J/EDMSG ; 6839 ;(2) UNDEFINED U 2025, 3313,4443,0000,4174,4007,0700,0000,0000,0000 ; 6840 J/EDNOP ; 6841 ;(3) UNDEFINED U 2027, 3313,4443,0000,4174,4007,0700,0000,0000,0000 ; 6842 J/EDNOP ; 6843 ;(4) UNDEFINED U 2031, 3313,4443,0000,4174,4007,0700,0000,0000,0000 ; 6844 J/EDNOP ; 6845 ;(5) SKIP IF M SET ; 6846 TL [BRX], #/100000, U 2033, 2072,4553,0600,4374,4007,0321,0000,0010,0000 ; 6847 J/EDSKP ; 6848 ;(6) SKIP IF N SET ; 6849 TL [BRX], #/200000, U 2035, 2072,4553,0600,4374,4007,0321,0000,0020,0000 ; 6850 J/EDSKP ; 6851 ;(7) SKIP ALWAYS U 2037, 2072,4443,0000,4174,4007,0700,0000,0000,0000 ; 6852 J/EDSKP ; 6853 ; 6854 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 153 ; DSK: KSHACK; EXTEND 4 20:01:38 16-JAN-87 EXTEND -- EDIT -- DECODE OPERATE GROUP ; 6855 .TOC "EXTEND -- EDIT -- DECODE OPERATE GROUP" ; 6856 ; 6857 ;HERE FOR OPERATE GROUP. SKIP IF IN RANGE ; 6858 =0 U 1674, 3313,4443,0000,4174,4007,0700,0000,0000,0000 ; 6859 EDOPR: J/EDNOP ;OUT OF RANGE U 1675, 2050,3333,0003,4174,4003,5701,0000,0000,0000 ; 6860 READ [AR], 3T, DISP/DP ;DISPATCH ON TYPE U 2050, 3274,0111,0701,4174,4007,0700,0000,0000,0000 ; 6861 =1000 [PC]_[PC]+1, J/EDSTOP ;(0) STOP EDIT ; 6862 STATE_[EDIT-SRC], ;(1) SELECT SOURCE BYTE U 2051, 2005,3771,0013,4370,4007,0700,0000,0000,0011 ; 6863 J/EDSEL ; 6864 READ [BRX], SKIP DP0, ;(2) START SIGNIFICANCE U 2052, 1756,3333,0006,4174,4007,0520,0000,0000,0000 ; 6865 J/EDSSIG ; 6866 [BRX]_[BRX].AND.#, ;(3) FIELD SEPERATOR ; 6867 #/77777, HOLD RIGHT, U 2053, 3313,4551,0606,4374,0007,0700,0000,0007,7777 ; 6868 J/EDNOP U 2054, 2055,3771,0005,1276,6007,0701,0000,0000,1443 ; 6869 [BR]_AC[MARK] ;(4) EXCHANGE MARK AND DEST ; 6870 VMA_[BR], START READ, U 2055, 2002,3443,0500,4174,4007,0700,0200,0004,0012 ; 6871 J/EDEXMD ; 6872 = ; 6873 ; 6874 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 154 ; DSK: KSHACK; EXTEND 4 20:01:38 16-JAN-87 EXTEND -- EDIT -- STOP EDIT ; 6875 .TOC "EXTEND -- EDIT -- STOP EDIT" ; 6876 ; 6877 ;HERE TO END AN EDIT OPERATION. PC IS SET TO SKIP IF NORMAL END ; 6878 ; OR NON-SKIP IF ABORT ; 6879 EDSTOP: [BR]_.NOT.[BRX], ;AD WILL NOT DO D.AND.NOT.A U 3274, 3275,7441,0605,4174,4007,0700,1000,0071,0010 ; 6880 FE_S#, S#/10 ;PRESET FE U 3275, 3276,3441,0603,4174,4007,0701,1000,0043,0000 ; 6881 [AR]_[BRX], 3T, FE_FE+P ;MOVE POINTER, UPBATE PBN ; 6882 [BR].AND.#, 3T, ;WAS OLD NUMBER 3? U 3276, 1752,4553,0500,4374,4007,0321,0000,0003,0000 ; 6883 #/030000, SKIP ADL.EQ.0 ; .. ; 6884 =0 U 1752, 1515,3770,0303,4334,4017,0700,0000,0041,0000 ; 6885 EDSTP1: [AR]_P, J/STAC ;NO--ALL DONE ; 6886 [AR]_[AR]+1, ;YES--BUMP WORD # ; 6887 FE_FE.AND.S#, S#/0700, ;KEEP ONLY FLAG BITS U 1753, 1752,0111,0703,4174,4007,0700,1000,0051,0700 ; 6888 J/EDSTP1 ;GO STOP EDIT ; 6889 ; 6890 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 155 ; DSK: KSHACK; EXTEND 4 20:01:38 16-JAN-87 EXTEND -- EDIT -- START SIGNIFICANCE ; 6891 .TOC "EXTEND -- EDIT -- START SIGNIFICANCE" ; 6892 ; 6893 ;HERE WITH DST POINTER IN AR ; 6894 =110 U 1756, 3302,4443,0000,4174,4007,0700,0010,0000,0000 ; 6895 EDSSIG: CALL [EDFLT] ;STORE FLT CHAR U 1757, 3313,4443,0000,4174,4007,0700,0000,0000,0000 ; 6896 J/EDNOP ;DO NEXT PATTERN BYTE ; 6897 ; 6898 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 156 ; DSK: KSHACK; EXTEND 4 20:01:38 16-JAN-87 EXTEND -- EDIT -- EXCHANGE MARK AND DESTINATION ; 6899 .TOC "EXTEND -- EDIT -- EXCHANGE MARK AND DESTINATION" ; 6900 ; 6901 ;HERE WITH ADDRESS OF MARK POINTER IN BR ; 6902 =0 ; 6903 EDEXMD: Q_AC[DSTP], ;GET DEST POINTER U 2002, 3544,3772,0000,1275,5007,0701,0010,0000,1444 ; 6904 CALL [LOADAR] ;GO PUT MARK IN AR U 2003, 3277,4443,0000,4174,4007,0700,0200,0003,0002 ; 6905 START WRITE ;START WRITE. SEPERATE STEP TO AVOID ; 6906 ; PROBLEM ON DPM5 U 3277, 3300,3223,0000,4174,4007,0701,0200,0000,0002 ; 6907 MEM WRITE, MEM_Q ;PUT OLD DEST IN MARK U 3300, 3313,3440,0303,1174,4007,0700,0400,0000,1444 ; 6908 AC[DSTP]_[AR], J/EDNOP ;PUT BACK DEST POINTER ; 6909 ; 6910 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 157 ; DSK: KSHACK; EXTEND 4 20:01:38 16-JAN-87 EXTEND -- EDIT -- PROCESS SOURCE BYTE ; 6911 .TOC "EXTEND -- EDIT -- PROCESS SOURCE BYTE" ; 6912 ; 6913 =0* ; 6914 EDSEL: [AR]_AC[SRCP], ;PICK UP SRC POINTER U 2005, 2143,3771,0003,1276,6007,0701,0010,0000,1441 ; 6915 CALL [GETSRC] ;GET SOURCE BYTE U 2007, 2040,3447,0303,7174,4007,0700,0000,0000,0241 ; 6916 [AR]_[AR]*.5, WORK[E1] ;PREPARE TO TRANSLATE ; 6917 =000 [AR]_[AR]+WORK[E1], ;GO TRANSLATE BY HALFWORDS U 2040, 3333,0551,0303,7274,4007,0700,0010,0000,0241 ; 6918 2T, CALL [TRNAR] ; .. ; 6919 =010 ; 6920 EDFILL: READ [AR], ;(2) NO SIGNIFICANCE, GO FILL ; 6921 SKIP AD.EQ.0, ; SEE IF ANY FILLER U 2042, 2010,3333,0003,4174,4007,0621,0000,0000,0000 ; 6922 J/EDFIL1 ; GO TO IT ; 6923 STATE_[EDIT-SRC], ;(3) SIG START, DO FLOAT CHAR U 2043, 2056,3771,0013,4370,4007,0700,0000,0000,0011 ; 6924 J/EDSFLT U 2044, 3274,4443,0000,4174,4007,0700,0000,0000,0000 ; 6925 =100 J/EDSTOP ;(4) ABORT ; 6926 =101 ; 6927 EDSPUT: STATE_[EDIT-S+D], ;(5) NORMAL, STORE AT DST U 2045, 3340,3771,0013,4370,4007,0700,0010,0000,0013 ; 6928 CALL [PUTDST] ; .. ; 6929 =111 U 2047, 3313,4443,0000,4174,4007,0700,0000,0000,0000 ; 6930 J/EDNOP ;(7) BYTE STORED ; 6931 = ; 6932 ; 6933 ;HERE TO COMPLETE STORING FILL ; 6934 =0 U 2010, 2045,4443,0000,4174,4007,0700,0000,0000,0000 ; 6935 EDFIL1: J/EDSPUT ;STORE FILLER U 2011, 3313,4443,0000,4174,4007,0700,0000,0000,0000 ; 6936 J/EDNOP ;NO FILLER TO STORE ; 6937 ; 6938 ;HERE TO DO FLOAT BYTE ; 6939 =110 ; 6940 EDSFLT: WORK[FSIG]_[ARX], ;SAVE SIG CHAR U 2056, 3302,3333,0004,7174,4007,0700,0410,0000,0246 ; 6941 CALL [EDFLT] ;STORE FLOAT CHAR U 2057, 3301,3771,0003,7274,4007,0701,0000,0000,0246 ; 6942 [AR]_WORK[FSIG] ;RESTORE CHAR ; 6943 [AR]_[AR].AND.# CLR LH, ;JUST KEEP THE BYTE IN CASE ; 6944 #/77777, ; DEST BYTE .GT. 15 BITS U 3301, 2045,4251,0303,4374,4007,0700,0000,0007,7777 ; 6945 J/EDSPUT ;GO STORE CHAR WHICH STARTED THIS ALL ; 6946 ; 6947 ;SUBRUTINE TO PROCESS FLOAT CHAR ; 6948 ;CALL WITH: ; 6949 ; AR/ POINTER TO STORE @ MARK ; 6950 ;RETURN 7 WITH FLOAT STORED U 3302, 3303,3771,0005,1276,6007,0701,0000,0000,1443 ; 6951 EDFLT: [BR]_AC[MARK] ;ADDRESS OF MARK POINTER U 3303, 3304,3443,0500,4174,4007,0700,0200,0003,0012 ; 6952 VMA_[BR], START WRITE ;READY TO STORE U 3304, 3305,3771,0005,1276,6007,0701,0000,0000,1444 ; 6953 [BR]_AC[DSTP] ;GET DST POINTER U 3305, 2012,3333,0005,4175,5007,0701,0200,0000,0002 ; 6954 MEM WRITE, MEM_[BR] ;STORE POINTER ; 6955 =0 [AR]_0 XWD [2], ;FETCH FLOAT CHAR U 2012, 3307,4751,1203,4374,4007,0700,0010,0000,0002 ; 6956 CALL [EDBYTE] ;GET TBL BYTE ; 6957 MEM READ, [AR]_MEM, ;GET FLOAT CHAR U 2013, 2060,3771,0003,4365,5007,0621,0200,0000,0002 ; 6958 SKIP AD.EQ.0 ;SEE IF NULL ; 6959 =000 ; 6960 [FLG]_[FLG].OR.#, ;REMEMBER TO BACKUP DST POINTER ; 6961 STATE/EDIT-DST, ; WILL ALSO BACKUP SRC IF CALLED ; 6962 HOLD LEFT, ; FROM SELECT U 2060, 3340,3551,1313,4370,4007,0700,0010,0000,0012 ; 6963 CALL [PUTDST] ; STORE FLOAT ; 6964 =001 [BRX]_[BRX].OR.#, #/400000, U 2061, 3306,3551,0606,4374,0007,0700,0000,0040,0000 ; 6965 HOLD RIGHT, J/EDFLT1 ;NULL ; 6966 =110 [BRX]_[BRX].OR.#, #/400000, U 2066, 3306,3551,0606,4374,0007,0700,0000,0040,0000 ; 6967 HOLD RIGHT, J/EDFLT1 ;MARK STORED ; 6968 = ; 6969 EDFLT1: AC_[BRX], ;SAVE FLAGS SO WE DON'T ; 6970 ;TRY TO DO THIS AGAIN IF ; 6971 ;NEXT STORE PAGE FAILS U 3306, 0007,3440,0606,0174,4004,1700,0400,0000,0000 ; 6972 RETURN [7] ;AND RETURN ; 6973 ; 6974 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 158 ; DSK: KSHACK; EXTEND 4 20:01:38 16-JAN-87 EXTEND -- EDIT -- MESSAGE BYTE ; 6975 .TOC "EXTEND -- EDIT -- MESSAGE BYTE" ; 6976 ; 6977 ;HERE WITH SKIP ON S ; 6978 =0 ; 6979 EDMSG: [AR]_WORK[FILL], ;GET FILL BYTE ; 6980 SKIP AD.EQ.0, 4T, ;SEE IF NULL U 2062, 2070,3771,0003,7274,4007,0622,0000,0000,0244 ; 6981 J/EDMSG1 ;GO STORE ; 6982 [AR]_[AR].AND.# CLR LH, ;GET OFFSET INTO TABLE U 2063, 2064,4251,0303,4374,4007,0700,0000,0000,0077 ; 6983 #/77 ; 6984 =0 [AR]_[AR]+1, WORK[E0], ;PLUS 1 U 2064, 3307,0111,0703,7174,4007,0700,0010,0000,0240 ; 6985 CALL [EDBYTE] ;GET TBL BYTE U 2065, 2070,3771,0003,4365,5007,0700,0200,0000,0002 ; 6986 MEM READ, [AR]_MEM ;FROM MEMORY ; 6987 =000 ; 6988 EDMSG1: STATE_[EDIT-DST], ;WHAT TO DO ON PAGE FAILS U 2070, 3340,3771,0013,4370,4007,0700,0010,0000,0012 ; 6989 CALL [PUTDST] ;STORE MESSAGE BYTE U 2071, 3313,4443,0000,4174,4007,0700,0000,0000,0000 ; 6990 =001 J/EDNOP ;NULL FILLER U 2076, 3313,4443,0000,4174,4007,0700,0000,0000,0000 ; 6991 =110 J/EDNOP ;NEXT BYTE ; 6992 = ; 6993 U 3307, 3310,0551,0303,7274,4007,0701,0000,0000,0240 ; 6994 EDBYTE: [AR]_[AR]+WORK[E0] ;GET OFFSET INTO TABLE ; 6995 VMA_[AR], START READ, ;START MEMORY CYCLE U 3310, 0001,3443,0300,4174,4004,1700,0200,0004,0012 ; 6996 RETURN [1] ;RETURN TO CALLER ; 6997 ; 6998 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 159 ; DSK: KSHACK; EXTEND 4 20:01:38 16-JAN-87 EXTEND -- EDIT -- SKIP ; 6999 .TOC "EXTEND -- EDIT -- SKIP" ; 7000 ; 7001 =0 ; 7002 ;HERE TO SKIP ALWAYS ; 7003 EDSKP: [AR]_[AR].AND.#, #/77, ;JUST KEEP SKIP DISTANCE U 2072, 3311,4551,0303,4374,4007,0700,0000,0000,0077 ; 7004 J/EDSKP1 ;CONTINUE BELOW ; 7005 ;HERE IF WE DO NOT WANT TO SKIP U 2073, 3313,4443,0000,4174,4007,0700,0000,0000,0000 ; 7006 J/EDNOP U 3311, 3312,0115,0703,4174,4007,0700,0000,0000,0000 ; 7007 EDSKP1: [AR]_([AR]+1)*2 ;GIVE 1 EXTRA SKIP ; 7008 READ [AR], SCAD/A*2, ;PUT THE ADJUSTMENT ; 7009 SCADA/BYTE5, 3T, LOAD SC, ; THE SC U 3312, 3314,3333,0003,4174,4007,0701,2000,0007,0000 ; 7010 J/EDNOP1 ;JOIN MAIN LOOP ; 7011 ; 7012 ; 7013 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 160 ; DSK: KSHACK; EXTEND 4 20:01:38 16-JAN-87 EXTEND -- EDIT -- ADVANCE PATTERN POINTER ; 7014 .TOC "EXTEND -- EDIT -- ADVANCE PATTERN POINTER" ; 7015 U 3313, 3314,4443,0000,4174,4007,0700,2000,0071,0000 ; 7016 EDNOP: SC_0 ;NO SKIP U 3314, 3315,3333,0006,4174,4007,0701,1000,0073,0000 ; 7017 EDNOP1: READ [BRX], 3T, FE_P ;PUT PBN IN FE U 3315, 3316,4443,0000,4174,4007,0700,1000,0051,0030 ; 7018 FE_FE.AND.S#, S#/30 ;JUST BYTE # U 3316, 3317,4443,0000,4174,4007,0700,1000,0040,0000 ; 7019 FE_FE+SC ;ADD IN ANY SKIP DISTANCE U 3317, 3320,4443,0000,4174,4007,0700,1000,0041,0010 ; 7020 FE_FE+S#, S#/10 ;BUMP PBN ; 7021 [AR]_FE, ;GET NUMBER OF WORDS U 3320, 3321,3777,0003,4334,4057,0700,2000,0041,0000 ; 7022 LOAD SC ;PUT MSB WHERE IT CAN BE TESTED ; 7023 ; QUICKLY ; 7024 [AR]_[AR].AND.# CLR LH, ;KEEP ONLY 1 COPY U 3321, 2074,4251,0303,4374,4007,0630,0000,0000,0170 ; 7025 #/170, SKIP/SC ; .. ; 7026 =0 ; 7027 EDN1A: [AR]_[AR]*.5, SC_0, U 2074, 2100,3447,0303,4174,4007,0700,2000,0071,0000 ; 7028 J/EDNOP2 ;READY TO SHIFT OFF BYTE WITHIN ; 7029 ; WORD ; 7030 [AR]_[AR].OR.#, #/200, ;GET THE SIGN BIT OF THE FE ; 7031 HOLD LEFT, ; INTO THE AR. ONLY HAPPENS ON U 2075, 2074,3551,0303,4370,4007,0700,0000,0000,0200 ; 7032 J/EDN1A ; SKP 76 OR SKP 77 ; 7033 =0 U 2100, 2100,3447,0303,4174,4007,0630,2000,0060,0000 ; 7034 EDNOP2: [AR]_[AR]*.5, STEP SC, J/EDNOP2 ; 7035 [BRX]_[BRX]+[AR], ;UPDATE WORD ADDRESS U 2101, 3322,0111,0306,4170,4007,0700,0000,0000,0000 ; 7036 HOLD LEFT U 3322, 3323,3770,0303,4334,4017,0700,0000,0041,0000 ; 7037 [AR]_P ;PUT PBN BACK IN BRX ; 7038 [BRX]_[BRX].AND.#, ;JUST KEEP FLAGS ; 7039 #/700000, ; .. U 3323, 3324,4551,0606,4374,0007,0700,0000,0070,0000 ; 7040 HOLD RIGHT ; 7041 [AR]_[AR].AND.#, ;JUST KEEP PBN U 3324, 3325,4551,0303,4374,4007,0700,0000,0003,0000 ; 7042 #/030000 ; 7043 [BRX]_[BRX].OR.[AR], ;FINAL ANSWER U 3325, 3326,3111,0306,4174,0007,0700,0000,0000,0000 ; 7044 HOLD RIGHT U 3326, 1337,3440,0606,0174,4007,0700,0400,0000,0000 ; 7045 AC_[BRX], J/EDITLP ;DO NEXT FUNCTION ; 7046 ; 7047 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 161 ; DSK: KSHACK; EXTEND 4 20:01:38 16-JAN-87 EXTEND SUBROUTINES -- FILL OUT DESTINATION ; 7048 .TOC "EXTEND SUBROUTINES -- FILL OUT DESTINATION" ; 7049 ; 7050 ;CALL WITH ; 7051 ; AC[DLEN]/ NEGATIVE NUMBER OF BYTES LEFT IN DEST ; 7052 ; FILL/ FILL BYTE ; 7053 ; RETURN [2] WITH FILLERS STORED ; 7054 ; ; 7055 ;NOTE: THIS ROUTINE NEED NOT TEST FOR INTERRUPTS ON EACH BYTE ; 7056 ; BECAUSE EVERY BYTE STORE DOES A MEMORY READ. ; 7057 ; ; 7058 =01* ; 7059 MOVF1: [AR]_WORK[FILL], 2T, ;GET FILL BYTE U 1603, 3340,3771,0003,7274,4007,0700,0010,0000,0244 ; 7060 CALL [PUTDST] ;PLACE IN DEST U 1607, 3327,3771,0003,1276,6007,0701,0000,0000,1443 ; 7061 [AR]_AC[DLEN] ;AMOUNT LEFT ; 7062 AC[DLEN]_[AR]+1, 3T, ;STORE UPDATED LEN U 3327, 2102,0113,0703,1174,4007,0521,0400,0000,1443 ; 7063 SKIP DP0 ; AND SEE IF DONE U 2102, 0002,4443,0000,4174,4004,1700,0000,0000,0000 ; 7064 =0 RETURN [2] ;DONE U 2103, 1603,4443,0000,7174,4007,0700,0000,0000,0244 ; 7065 MOVFIL: WORK[FILL], J/MOVF1 ;DO ANOTHER BYTE ; 7066 ;ENTERING HERE SAVES 150NS ; 7067 ; PER BYTE BUT COSTS 300NS ; 7068 ; PER FIELD MOVED. I ASSUME (BUT DO ; 7069 ; NOT KNOW) THAT THIS SPEEDS ; 7070 ; THINGS UP. ; 7071 ; 7072 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 162 ; DSK: KSHACK; EXTEND 4 20:01:38 16-JAN-87 EXTEND SUBROUTINES -- GET MODIFIED SOURCE BYTE ; 7073 .TOC"EXTEND SUBROUTINES -- GET MODIFIED SOURCE BYTE" ; 7074 ; 7075 ;CALL WITH: ; 7076 ;SLEN = MINUS LENGTH OF STRING ; 7077 ;MSK = MASK FOR BYTE SIZE (1 IF BIT MUST BE ZERO) ; 7078 ;E1 = EFFECTIVE ADDRESS OF OPERATION WORD (SIGN EXTENDED IF OFFSET) ; 7079 ; [AR]_WORK[SLEN]+1, CALL [SRCMOD] ; 7080 ;RETURNS: ; 7081 ; 1 LENGTH EXHAUSTED ; 7082 ; 2 (EDIT ONLY) NO SIGNIFICANCE ; 7083 ; 3 (EDIT ONLY) SIGNIFICANCE START: ; 7084 ; 4 ABORT: OUT OF RANGE OR TRANSLATE FAILURE ; 7085 ; 5 NORMAL: BYTE IN AR ; 7086 ; ; 7087 ;DROM B SET AS FOLLOWS: ; 7088 ; 0 TRANSLATE ; 7089 ; 1 OFFSET ; 7090 ; 2 EDIT ; 7091 ; 4 CVTDBT ; 7092 =00 ; 7093 SRCMOD: WORK[SLEN]_[AR], ;PUT BACK SOURCE LENGTH ; 7094 SKIP DP0, ;SEE IF DONE U 2104, 2142,3333,0003,7174,4007,0520,0410,0000,0242 ; 7095 CALL [GSRC] ;GET A SOURCE BYTE U 2105, 0001,4221,0013,4170,4004,1700,0000,0000,0000 ; 7096 END STATE, RETURN [1] ;DONE U 2106, 2116,4443,0000,7174,4003,7700,0000,0000,0241 ; 7097 WORK[E1], B DISP ;OFFSET OR TRANSLATE? ; 7098 = U 2116, 3332,3447,0303,4174,4007,0700,0000,0000,0000 ; 7099 =1110 [AR]_[AR]*.5, J/XLATE ;TRANSLATE U 2117, 3330,3770,0303,7174,0007,0700,0000,0000,0241 ; 7100 FIX [AR] SIGN, WORK[E1] ;IF WE ARE PROCESSING FULL WORD ; 7101 ; BYTES, AND THEY ARE NEGATIVE, ; 7102 ; AND THE OFFSET IS POSITIVE THEN ; 7103 ; WE HAVE TO MAKE BITS -1 AND -2 ; 7104 ; COPIES OF THE SIGN BIT. U 3330, 3331,0551,0303,7274,4007,0700,0000,0000,0241 ; 7105 [AR]_[AR]+WORK[E1], 2T ;OFFSET ; 7106 [AR].AND.WORK[MSK], ;VALID BYTE? ; 7107 SKIP AD.EQ.0, 4T, ;SKIP IF OK U 3331, 0004,4553,0300,7274,4004,1622,0000,0000,0243 ; 7108 RETURN [4] ;RETURN 4 IF BAD, 5 IF OK ; 7109 ; 7110 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 163 ; DSK: KSHACK; EXTEND 4 20:01:38 16-JAN-87 EXTEND SUBROUTINES -- TRANSLATE ; 7111 .TOC "EXTEND SUBROUTINES -- TRANSLATE" ; 7112 ; 7113 ;HERE WITH BYTE IN AR 1-36. FETCH TABLE ENTRY. U 3332, 3333,0551,0303,7274,4007,0701,0000,0000,0241 ; 7114 XLATE: [AR]_[AR]+WORK[E1] ;COMPUTE ADDRESS ; 7115 TRNAR: READ [AR], LOAD VMA, ;FETCH WORD U 3333, 2110,3333,0003,4174,4007,0700,0200,0004,0012 ; 7116 START READ ; .. ; 7117 =0 [AR]_[AR]*2, ;GET BACK LSB ; 7118 ;BIT 36 IS NOT PRESERVED ; 7119 ; BY PAGE FAILS U 2110, 3545,3445,0303,4174,4007,0700,0010,0000,0000 ; 7120 CALL [LOADARX] ;PUT ENTRY IN ARX U 2111, 2112,4553,0300,4374,4007,0331,0000,0000,0001 ; 7121 TR [AR], #/1 ;WHICH HALF? ; 7122 =0 ; 7123 XLATE1: [AR]_[ARX], 3T, ;RH -- COPY TO AR ; 7124 DISP/DP LEFT, ;DISPATCH ON CODE U 2112, 2121,3441,0403,4174,4003,1701,0000,0000,0000 ; 7125 J/TRNFNC ;DISPATCH TABLE ; 7126 [ARX]_[ARX] SWAP, ;LH -- FLIP AROUND U 2113, 2112,3770,0404,4344,4007,0700,0000,0000,0000 ; 7127 J/XLATE1 ;START SHIFT ; 7128 ; 7129 ;HERE ON TRANSLATE OPERATION TO PERFORM FUNCTIONS REQUIRED BY ; 7130 ; THE 3 HIGH ORDER BITS OF THE TRANSLATE FUNCTION HALFWORD. WE ; 7131 ; DISPATCH ON FUNCTION AND HAVE: ; 7132 ; BRX/ FLAGS ; 7133 ; ARX/ TABLE ENTRY IN RH ; 7134 ; ; 7135 =0001 ; 7136 ;(0) NOP ; 7137 TRNFNC: READ [BRX], SKIP DP0, ;S FLAG ALREADY SET? U 2121, 2114,3333,0006,4174,4007,0520,0000,0000,0000 ; 7138 J/TRNRET ; .. ; 7139 ;(1) ABORT U 2123, 0004,4443,0000,4174,4004,1700,0000,0000,0000 ; 7140 RETURN [4] ; 7141 ;(2) CLEAR M FLAG ; 7142 [BRX]_[BRX].AND.NOT.#, ; 7143 #/100000, HOLD RIGHT, U 2125, 2121,5551,0606,4374,0007,0700,0000,0010,0000 ; 7144 J/TRNFNC ; 7145 ;(3) SET M FLAG ; 7146 [BRX]_[BRX].OR.#, ; 7147 #/100000, HOLD RIGHT, U 2127, 2121,3551,0606,4374,0007,0700,0000,0010,0000 ; 7148 J/TRNFNC ; 7149 ;(4) SET N FLAG ; 7150 TRNSIG: [BRX]_[BRX].OR.#, ; 7151 #/200000, HOLD RIGHT, U 2131, 2121,3551,0606,4374,0007,0700,0000,0020,0000 ; 7152 J/TRNFNC ; 7153 ;(5) SET N FLAG THEN ABORT ; 7154 [BRX]_[BRX].OR.#, ; 7155 #/200000, HOLD RIGHT, U 2133, 0004,3551,0606,4374,0004,1700,0000,0020,0000 ; 7156 RETURN [4] ; 7157 ;(6) CLEAR M THEN SET N ; 7158 [BRX]_[BRX].AND.NOT.#, ; 7159 #/100000, HOLD RIGHT, U 2135, 2131,5551,0606,4374,0007,0700,0000,0010,0000 ; 7160 J/TRNSIG ; 7161 ;(7) SET N AND M ; 7162 [BRX]_[BRX].OR.#, ; 7163 #/300000, HOLD RIGHT, U 2137, 2121,3551,0606,4374,0007,0700,0000,0030,0000 ; 7164 J/TRNFNC ; 7165 ; 7166 ;HERE TO COMPLETE A TRANSLATE ; 7167 ; 7168 =0 ; 7169 TRNRET: READ [ARX], SKIP DP18, ;S-FLAG IS ZERO ; 7170 B DISP, SKIP DP18, ;SEE IF EDIT OR SIG START U 2114, 2154,3333,0004,4174,4003,7530,0000,0000,0000 ; 7171 J/TRNSS ; .. ; 7172 TRNSS1: [AR]_[ARX].AND.# CLR LH, ;S IS SET, JUST RETURN BYTE U 2115, 0005,4251,0403,4374,4004,1700,0000,0007,7777 ; 7173 #/77777, RETURN [5] ; .. ; 7174 ; 7175 =1100 ; 7176 TRNSS: [AR]_AC[DLEN], ;NO SIG ON MOVE OR D2B U 2154, 2173,3771,0003,1276,6003,7701,0000,0000,1443 ; 7177 B DISP, J/TRNNS1 ;SEE IF D2B ; 7178 [BRX]_[BRX].OR.#, ;SIG START ON MOVE OR D2B ; 7179 #/400000, HOLD RIGHT, U 2155, 2115,3551,0606,4374,0007,0700,0000,0040,0000 ; 7180 J/TRNSS1 ;RETURN BYTE ; 7181 [AR]_WORK[FILL], ;EDIT--NO SIG RETURN FILL U 2156, 0002,3771,0003,7274,4004,1701,0000,0000,0244 ; 7182 RETURN [2] ; .. ; 7183 [AR]_AC[DSTP], ;EDIT--START OF SIG U 2157, 0003,3771,0003,1276,6004,1701,0000,0000,1444 ; 7184 RETURN [3] ; .. ; 7185 ; 7186 =1011 U 2173, 3334,1111,0703,4174,4007,0700,4000,0000,0000 ; 7187 TRNNS1: [AR]_[AR]-1, J/TRNNS2 ;COMPENSATE FOR IGNORING SRC ; 7188 [AR]_WORK[SLEN]+1, ;DEC TO BIN HAS NO DEST LENGTH U 2177, 2104,0551,0703,7274,4007,0701,0000,0000,0242 ; 7189 J/SRCMOD ;JUST UPDATE SRC LENTH ; 7190 TRNNS2: AC[DLEN]_[AR] TEST, ;PUT BACK DLEN AND U 3334, 2140,3770,0303,1174,4007,0520,0400,0000,1443 ; 7191 SKIP DP0 ; SEE WHICH IS NOW SHORTER ; 7192 =0 [AR]_WORK[SLEN], ;DEST IS SHORTER. DO NOT CHANGE U 2140, 2104,3771,0003,7274,4007,0701,0000,0000,0242 ; 7193 J/SRCMOD ; AMOUNT LEFT ; 7194 [AR]_WORK[SLEN]+1, ;GO LOOK AT NEXT BYTE U 2141, 2104,0551,0703,7274,4007,0701,0000,0000,0242 ; 7195 J/SRCMOD ; 7196 ; 7197 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 164 ; DSK: KSHACK; EXTEND 4 20:01:38 16-JAN-87 EXTEND SUBROUTINES -- GET UNMODIFIED SOURCE BYTE ; 7198 .TOC "EXTEND SUBROUTINES -- GET UNMODIFIED SOURCE BYTE" ; 7199 ; 7200 ;CALL: ; 7201 ; GSRC WITH SKIP ON SOURCE LENGTH ; 7202 ; GETSRC IF LENGHT IS OK ; 7203 ;WITH: ; 7204 ; AC1/ SOURCE BYTE POINTER ; 7205 ;RETURNS: ; 7206 ; 1 IF LENGTH RAN OUT ; 7207 ; 2 IF OK (BYTE IN AR) ; 7208 ; ; 7209 =0 ; 7210 GSRC: [AR]_AC[DLEN], ;LENGTH RAN OUT U 2142, 0001,3771,0003,1276,6004,1701,0000,0000,1443 ; 7211 RETURN [1] ;RESTORE AR AND RETURN U 2143, 3335,3771,0003,1276,6007,0701,0000,0000,1441 ; 7212 GETSRC: [AR]_AC[SRCP] ;GET SRC PTR ; 7213 IBP DP, IBP SCAD, ;UPDATE BYTE POINTER U 3335, 2145,3770,0305,4334,4016,7701,0000,0033,6000 ; 7214 SCAD DISP, 3T ;SEE IF OFLOW U 2145, 3337,3441,0503,4174,4007,0700,0000,0000,0000 ; 7215 =01 [AR]_[BR], J/GSRC1 ;NO OFLOW U 2147, 3336,3770,0503,4334,4017,0700,0000,0032,6000 ; 7216 SET P TO 36-S ;RESET P U 3336, 3337,0111,0703,4170,4007,0700,0000,0000,0000 ; 7217 [AR]_[AR]+1, HOLD LEFT ;BUMP Y ; 7218 U 3337, 2150,3440,0303,1174,4007,0700,0400,0000,1441 ; 7219 GSRC1: AC[SRCP]_[AR] ;STORE UPDATED POINTER ; 7220 =0 READ [AR], LOAD BYTE EA, ;SETUP TO FIGURE OUT U 2150, 2744,3333,0003,4174,4217,0701,1010,0073,0500 ; 7221 FE_P, 3T, CALL [BYTEAS] ; EFFECTIVE ADDRESS ; 7222 READ [AR], ;LOOK AT POINTER ; 7223 BYTE DISP, ;SEE IF 7 BIT ; 7224 FE_FE.AND.S#, S#/0770, ;MASK OUT P FIELD U 2151, 0550,3333,0003,4174,4006,5701,1000,0051,0770 ; 7225 J/LDB1 ;GO GET THE BYTE ; 7226 ; 7227 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 165 ; DSK: KSHACK; EXTEND 4 20:01:38 16-JAN-87 EXTEND SUBROUTINES -- STORE BYTE IN DESTINATION STRING ; 7228 .TOC "EXTEND SUBROUTINES -- STORE BYTE IN DESTINATION STRING" ; 7229 ; 7230 ;CALL WITH: ; 7231 ; AR/ BYTE TO STORE ; 7232 ; AC4/ DESTINATION BYTE POINTER ; 7233 ;RETURNS: ; 7234 ; AR & AC4/ UPDATED BYTE POINTER ; 7235 ; ARX/ BYTE TO STORE ; 7236 ; BR/ WORD TO MERGE WITH ; 7237 ; 6 ALWAYS ; 7238 ; U 3340, 2152,3441,0304,4174,4007,0700,0000,0000,0000 ; 7239 PUTDST: [ARX]_[AR] ;SAVE BYTE ; 7240 =0 [AR]_AC[DSTP], ;GET DEST POINTER U 2152, 3341,3771,0003,1276,6007,0701,0010,0000,1444 ; 7241 CALL [IDST] ;BUMP DEST POINTER ; 7242 AD/A+B, A/ARX, B/ARX, ;SHIFT 7-BIT BYTE TO ; 7243 SCAD/A, 3T, ; NATURAL PLACE, AND PUT U 2153, 2020,0113,0404,4174,4007,0701,1000,0077,0000 ; 7244 SCADA/BYTE5, LOAD FE ; INTO FE ; 7245 =0* READ [AR], BYTE DISP, ;GO PUT BYTE IN MEMORY U 2020, 0560,3333,0003,4174,4006,5701,0010,0000,0000 ; 7246 CALL [DPB1] ; .. U 2022, 0006,4443,0000,4174,4004,1700,0000,0000,0000 ; 7247 RETURN [6] ;ALL DONE ; 7248 ; 7249 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 166 ; DSK: KSHACK; EXTEND 4 20:01:38 16-JAN-87 EXTEND SUBROUTINES -- UPDATE DEST STRING POINTERS ; 7250 .TOC "EXTEND SUBROUTINES -- UPDATE DEST STRING POINTERS" ; 7251 ; 7252 ; 7253 ;SUBROUTINE TO BUMP DST POINTERS ; 7254 ;CALL WITH: ; 7255 ; AR/ AC[DSTP] ; 7256 ; RETURN 1 WITH UPDATED POINTER STORED ; 7257 ; U 3341, 2024,3770,0305,4334,4016,7701,0000,0033,6000 ; 7258 IDST: IBP DP, IBP SCAD, SCAD DISP, 3T U 2024, 3343,3441,0503,4174,4217,0700,0000,0000,0600 ; 7259 =0* [AR]_[BR], LOAD DST EA, J/IDSTX U 2026, 3342,3770,0503,4334,4017,0700,0000,0032,6000 ; 7260 SET P TO 36-S U 3342, 3343,0111,0703,4170,4217,0700,0000,0000,0600 ; 7261 [AR]_[AR]+1, HOLD LEFT, LOAD DST EA ; 7262 IDSTX: AC[DSTP]_[AR], 3T, ;STORE PTR BACK U 3343, 2030,3440,0303,1174,4006,6701,1400,0073,1444 ; 7263 FE_P, DISP/EAMODE ;SAVE P FOR CMPDST ; 7264 =100* U 2030, 2747,0553,0300,2274,4007,0701,0200,0004,0712 ; 7265 DSTEA: VMA_[AR]+XR, START READ, PXCT BYTE DATA, 3T, J/BYTFET U 2032, 2747,3443,0300,4174,4007,0700,0200,0004,0712 ; 7266 VMA_[AR], START READ, PXCT BYTE DATA, J/BYTFET U 2034, 3344,0553,0300,2274,4007,0701,0200,0004,0612 ; 7267 VMA_[AR]+XR, START READ, PXCT/BIS-DST-EA, 3T, J/DSTIND U 2036, 3344,3443,0300,4174,4007,0700,0200,0004,0612 ; 7268 VMA_[AR], START READ, PXCT/BIS-DST-EA, J/DSTIND ; 7269 U 3344, 3345,3771,0003,4361,5217,0700,0200,0000,0602 ; 7270 DSTIND: MEM READ, [AR]_MEM, HOLD LEFT, LOAD DST EA U 3345, 2030,4443,0000,2174,4006,6700,0000,0000,0000 ; 7271 EA MODE DISP, J/DSTEA ; 7272 ; 7273 ; 7274 ;HERE TO TEST ILLEGAL BITS SET ; 7275 ;CALL WITH: ; 7276 ; SKIP IF ALL BITS LEGAL ; 7277 ; RETURN [4] IF OK, ELSE DO UUO ; 7278 ; ; 7279 3556: ;EXTEND OF 0 COMES HERE U 3556, 2605,4551,0202,4374,0007,0700,0000,0077,7740 ; 7280 BITCHK: UUO U 3557, 0004,4443,0000,4174,4004,1700,0000,0000,0000 ; 7281 3557: RETURN [4] ; 7282 ; 7283 ;HERE TO PUT FILL IN [AR] AND WORK[FILL] ; 7284 GTFILL: MEM READ, ;WAIT FOR DATA U 3346, 3347,3771,0003,4365,5007,0700,0200,0000,0002 ; 7285 [AR]_MEM ;PLACE IN AR ; 7286 WORK[FILL]_[AR], ;SAVE FOR LATER U 3347, 0010,3333,0003,7174,4004,1700,0400,0000,0244 ; 7287 RETURN [10] ;RETURN TO CALLER ; 7288 ; 7289 ;SUBROUTINE TO CLEAR FLAGS IN AR ; 7290 CLRFLG: [AR]_[AR].AND.#, ;CLEAR FLAGS IN AR ; 7291 #/000777, ; .. U 3350, 0001,4551,0303,4374,0004,1700,0000,0000,0777 ; 7292 HOLD RIGHT, RETURN [1] ; 7293 ; 7294 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 167 ; DSK: KSHACK; EXTEND 4 20:01:38 16-JAN-87 EXTEND -- PAGE FAIL CLEANUP ; 7295 .TOC "EXTEND -- PAGE FAIL CLEANUP" ; 7296 ; 7297 ;BACK UP SOURCE POINTER ; 7298 =0 ; 7299 BACKS: [AR]_AC[SRCP], U 2160, 3363,3771,0003,1276,6007,0701,0010,0000,1441 ; 7300 CALL [BACKBP] ;BACKUP BP U 2161, 3656,3440,0505,1174,4007,0700,0400,0000,1441 ; 7301 AC[SRCP]_[BR], J/CLDISP ; 7302 U 3351, 3352,3771,0003,7274,4007,0701,0000,0000,0214 ; 7303 CMSDST: [AR]_WORK[SV.BRX] ;GET OLD SRC LEN U 3352, 2162,0113,0703,0174,4007,0701,0400,0000,0000 ; 7304 AC_[AR]+1, 3T ;BACK UP ; 7305 ;BACK UP DESTINATION POINTER ; 7306 =0 ; 7307 BACKD: [AR]_AC[DSTP], U 2162, 3363,3771,0003,1276,6007,0701,0010,0000,1444 ; 7308 CALL [BACKBP] U 2163, 3656,3440,0505,1174,4007,0700,0400,0000,1444 ; 7309 AC[DSTP]_[BR], J/CLDISP ; 7310 ; 7311 ;FAILURES DURING MOVE STRING (BACKUP LENGTHS) U 3353, 3354,1771,0003,7274,4007,0701,4000,0000,0242 ; 7312 STRPF: [AR]_-WORK[SLEN] ;GET AMOUNT LEFT ; 7313 STRPF0: [BR]_AC[DLEN], 4T, ;WHICH STRING IS LONGER? U 3354, 2164,3771,0005,1276,6007,0522,0000,0000,1443 ; 7314 SKIP DP0 ; 7315 =0 U 2164, 3356,3440,0303,1174,4007,0700,0400,0000,1443 ; 7316 STRPF1: AC[DLEN]_[AR], J/STPF1A ;SRC LONGER U 2165, 2166,3441,0304,4174,4007,0700,0000,0000,0000 ; 7317 [ARX]_[AR] ;COPY SRC LENGTH ; 7318 =0 [ARX]_[ARX].OR.WORK[SV.BRX], ;REBUILD FLAGS U 2166, 3560,3551,0404,7274,4007,0701,0010,0000,0214 ; 7319 CALL [AC_ARX] ;RESET AC]SLEN] U 2167, 3355,1111,0503,4174,4007,0700,4000,0000,0000 ; 7320 [AR]_[AR]-[BR] ;MAKE DEST LEN ; 7321 STRPF3: AC[DLEN]_[AR], ;PUT BACK DEST LEN U 3355, 3656,3440,0303,1174,4007,0700,0400,0000,1443 ; 7322 J/CLDISP ;DO NEXT CLEANUP ; 7323 U 3356, 3360,0111,0503,4174,4007,0700,0000,0000,0000 ; 7324 STPF1A: [AR]_[AR]+[BR], J/STRPF2 ; 7325 U 3357, 3360,1771,0003,7274,4007,0701,4000,0000,0242 ; 7326 PFDBIN: [AR]_-WORK[SLEN] ;RESTORE LENGTH U 3360, 3361,3551,0303,7274,4007,0701,0000,0000,0214 ; 7327 STRPF2: [AR]_[AR].OR.WORK[SV.BRX] U 3361, 3656,3440,0303,0174,4007,0700,0400,0000,0000 ; 7328 PFGAC0: AC_[AR], J/CLDISP ;PUT BACK SRC LEN AND FLAGS ; 7329 U 3362, 3354,7771,0003,7274,4007,0701,0000,0000,0242 ; 7330 STRPF4: [AR]_.NOT.WORK[SLEN], J/STRPF0 ; 7331 ; 7332 BACKBP: IBP DP, SCAD/A+B, SCADA/BYTE1, SCADB/SIZE, ;P_P+S U 3363, 0001,3770,0305,4334,4014,1700,0000,0043,6000 ; 7333 RETURN [1] ; 7334 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 168 ; DSK: KSHACK; INOUT 50 20:00:51 16-JAN-87 EXTEND -- PAGE FAIL CLEANUP ; 7335 ;;;-*-Fundamental-*- ; 7336 ; 7337 .TOC "TRAPS" ; 7338 U 3364, 3365,3741,0104,4074,4007,0700,0000,0000,0000 ; 7339 TRAP: [ARX]_PC WITH FLAGS ;SAVE THE PC WHICH CAUSED THE ; 7340 WORK[TRAPPC]_[ARX], ; TRAP U 3365, 2170,3333,0004,7174,4007,0340,0400,0000,0425 ; 7341 SKIP KERNEL ;SEE IF UBR OR EBR ; 7342 =0 [AR]_[AR]+[UBR], ;ADDRESS OF INSTRUCTION ; 7343 MEM READ, ;WAIT FOR PREFETCH TO GET INTO THE CACHE. ; 7344 ; MAY PAGE FAIL BUT THAT IS OK ; 7345 START READ, ;START FETCH ; 7346 VMA PHYSICAL, ;ABSOLUTE ADDRESSING U 2170, 3366,0111,1103,4364,4007,0700,0200,0024,1016 ; 7347 J/TRP1 ;JOIN COMMON CODE ; 7348 ; 7349 [AR]_[AR]+[EBR], ;WE COME HERE IN EXEC MODE ; 7350 MEM READ, ;WAIT FOR PREFETCH TO GET INTO THE CACHE. ; 7351 ; MAY PAGE FAIL BUT THAT IS OK ; 7352 START READ, ;START FETCH ; 7353 VMA PHYSICAL, ;ABSOLUTE ADDRESSING U 2171, 3366,0111,1003,4364,4007,0700,0200,0024,1016 ; 7354 J/TRP1 ;JOIN COMMON CODE ; 7355 ; 7356 TRP1: MEM READ, [HR]_MEM, ;PLACE INSTRUCTION IN HR U 3366, 3367,3771,0002,4365,5617,0700,0200,0000,0002 ; 7357 LOAD INST ;LOAD IR, XR, @ ; 7358 [HR].AND.#, ;TEST TO SEE IF THIS ; 7359 #/700000, 3T, ; IS A UUO U 3367, 2174,4553,0200,4374,4007,0321,0000,0070,0000 ; 7360 SKIP ADL.EQ.0 ; 7361 =0 CHANGE FLAGS, ;NOT A UUO ; 7362 HOLD USER/1, ;CLEAR TRAP FLAGS U 2174, 2564,4443,0000,4174,4467,0700,0000,0001,0000 ; 7363 J/XCT1 ;DO THE INSTRUCTION U 2175, 2605,4551,0202,4374,0007,0700,0000,0077,7740 ; 7364 UUO ;DO THE UUO ; 7365 ; 7366 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 169 ; DSK: KSHACK; INOUT 50 20:00:51 16-JAN-87 IO -- INTERNAL DEVICES ; 7367 .TOC "IO -- INTERNAL DEVICES" ; 7368 ; 7369 .DCODE D 0700, 1200,1700,4100 ; 7370 700: IOT,AC DISP, J/GRP700 D 0701, 1200,1720,4100 ; 7371 IOT,AC DISP, J/GRP701 ; 7372 .UCODE ; 7373 U 1701, 2605,4551,0202,4374,0007,0700,0000,0077,7740 ; 7374 1701: UUO ;DATAI APR, U 1702, 2605,4551,0202,4374,0007,0700,0000,0077,7740 ; 7375 1702: UUO ;BLKO APR, U 1703, 2605,4551,0202,4374,0007,0700,0000,0077,7740 ; 7376 1703: UUO ;DATAO APR, U 1706, 3372,3771,0005,4304,4007,0701,0000,0000,0000 ; 7377 1706: [BR]_APR, J/APRSZ ;CONSZ APR, U 1707, 3370,3771,0005,4304,4007,0701,0000,0000,0000 ; 7378 1707: [BR]_APR, J/APRSO ;CONSO APR, ; 7379 1710: U 1710, 2605,4551,0202,4374,0007,0700,0000,0077,7740 ; 7380 RDERA: UUO ;BLKI PI, U 1711, 2605,4551,0202,4374,0007,0700,0000,0077,7740 ; 7381 1711: UUO ;DATAI PI, U 1712, 2605,4551,0202,4374,0007,0700,0000,0077,7740 ; 7382 1712: UUO ;BLKO PI, U 1713, 2605,4551,0202,4374,0007,0700,0000,0077,7740 ; 7383 1713: UUO ;DATAO PI, U 1716, 3373,3441,1405,4174,4007,0700,0000,0000,0000 ; 7384 1716: [BR]_[PI], J/CONSZ ;CONSZ PI, U 1717, 3371,3441,1405,4174,4007,0700,0000,0000,0000 ; 7385 1717: [BR]_[PI], J/CONSO ;CONSO PI, ; 7386 ; 7387 .IFNOT/ITS ; 7388 1720: ; 7389 GRP701: UUO ;BLKI PAG, ; 7390 .ENDIF/ITS U 1726, 2605,4551,0202,4374,0007,0700,0000,0077,7740 ; 7391 1726: UUO ;CONSZ PAG, U 1727, 2605,4551,0202,4374,0007,0700,0000,0077,7740 ; 7392 1727: UUO ;CONSO PAG, ; 7393 ; 7394 ;680I AND CACHE SWEEP STUFF U 1730, 2605,4551,0202,4374,0007,0700,0000,0077,7740 ; 7395 1730: UUO ;BLKI ; 7396 .IF/PCST U 1731, 3476,3771,0005,7274,4007,0701,0000,0000,0233 ; 7397 1731: [BR]_WORK[PCST], J/RTNREG ;Read PC sample table pointer ; 7398 .IFNOT/PCST ; 7399 1731: UUO ;DATAI ; 7400 .ENDIF/PCST U 1732, 2605,4551,0202,4374,0007,0700,0000,0077,7740 ; 7401 1732: UUO ;BLKO ; 7402 .IF/PCST U 1733, 3374,3443,0300,4174,4007,0700,0200,0004,0012 ; 7403 1733: VMA_[AR], START READ, J/WRPCST ;Write PC sample table pointer ; 7404 .IFNOT/PCST ; 7405 1733: UUO ;DATAO ; 7406 .ENDIF/PCST U 1734, 2605,4551,0202,4374,0007,0700,0000,0077,7740 ; 7407 1734: UUO ;CONO U 1735, 2605,4551,0202,4374,0007,0700,0000,0077,7740 ; 7408 1735: UUO ;CONI U 1736, 2605,4551,0202,4374,0007,0700,0000,0077,7740 ; 7409 1736: UUO ;CONSZ U 1737, 2605,4551,0202,4374,0007,0700,0000,0077,7740 ; 7410 1737: UUO ;CONSO ; 7411 U 3370, 3371,4251,0505,4374,4007,0700,0000,0000,7770 ; 7412 APRSO: [BR]_[BR].AND.# CLR LH, #/7770 U 3371, 0014,4113,0305,4174,4007,0330,0000,0000,0000 ; 7413 CONSO: [BR].AND.[AR], SKIP ADR.EQ.0, J/SKIP ; 7414 U 3372, 3373,4251,0505,4374,4007,0700,0000,0000,7770 ; 7415 APRSZ: [BR]_[BR].AND.# CLR LH, #/7770 U 3373, 1400,4113,0305,4174,4007,0330,0000,0000,0000 ; 7416 CONSZ: [BR].AND.[AR], SKIP ADR.EQ.0, J/DONE ; 7417 ; 7418 .IF/PCST U 3374, 3375,3771,0005,4365,5007,0700,0200,0000,0002 ; 7419 WRPCST: MEM READ, [BR]_MEM U 3375, 1400,3333,0005,7174,4007,0700,0400,0000,0233 ; 7420 WORK[PCST]_[BR], J/DONE ; 7421 .ENDIF/PCST ; 7422 ; 7423 1700: ; 7424 GRP700: ; 7425 APRID: [BR]_#, ; 7426 HARDWARE OPTIONS/HWOPT, U 1700, 0137,3771,0005,4374,4007,0700,0000,0000,3301 ; 7427 HARDWARE SERIAL NUMBER/HWSER ; 7428 137: [BR]_#, ; 7429 MICROCODE OPTIONS/OPT, ; 7430 MICROCODE VERSION/UCV, ; 7431 HOLD RIGHT, U 0137, 3476,3771,0005,4374,0007,0700,0000,0002,0406 ; 7432 J/RTNREG ; 7433 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 170 ; DSK: KSHACK; INOUT 50 20:00:51 16-JAN-87 IO -- INTERNAL DEVICES ; 7434 ; 7435 1704: U 1704, 3376,3771,0005,7274,4007,0701,0000,0000,0230 ; 7436 WRAPR: [BR]_WORK[APR] ; 7437 [BR]_[BR].AND.NOT.#, ;CLEAR THE OLD PIA U 3376, 3377,5551,0505,4370,4007,0700,0000,0000,0007 ; 7438 #/7, HOLD LEFT ; .. U 3377, 3400,4551,0304,4374,4007,0700,0000,0000,0007 ; 7439 [ARX]_[AR].AND.#, #/7 ;PUT NEW PIA IN ARX U 3400, 3401,3111,0405,4174,4007,0700,0000,0000,0000 ; 7440 [BR]_[BR].OR.[ARX] ;PUT NEW PIA IN BR ; 7441 [ARX]_[AR].AND.#, ;MASK THE DATA BITS U 3401, 3402,4551,0304,4374,4007,0700,0000,0000,7760 ; 7442 #/007760 ; DOWN TO ENABLES U 3402, 2200,4553,0300,4374,4007,0331,0000,0010,0000 ; 7443 TR [AR], #/100000 ;WANT TO ENABLE ANY? U 2200, 2201,3111,0405,4174,4007,0700,0000,0000,0000 ; 7444 =0 [BR]_[BR].OR.[ARX] ;YES--SET THEM U 2201, 2202,4553,0300,4374,4007,0331,0000,0004,0000 ; 7445 TR [AR], #/40000 ;WANT TO DISABLE ANY? U 2202, 2203,5111,0405,4174,4007,0700,0000,0000,0000 ; 7446 =0 [BR]_[BR].AND.NOT.[ARX] ;YES--CLEAR THEM U 2203, 3403,3771,0006,4304,4007,0701,0000,0000,0000 ; 7447 [BRX]_APR ;GET CURRENT STATUS U 3403, 2204,4553,0300,4374,4007,0331,0000,0002,0000 ; 7448 TR [AR], #/20000 ;WANT TO CLEAR FLAGS? U 2204, 2205,5111,0406,4174,4007,0700,0000,0000,0000 ; 7449 =0 [BRX]_[BRX].AND.NOT.[ARX] ;YES--CLEAR BITS U 2205, 2206,4553,0300,4374,4007,0331,0000,0001,0000 ; 7450 TR [AR], #/10000 ;WANT TO SET ANY FLAGS? U 2206, 2207,3111,0406,4174,4007,0700,0000,0000,0000 ; 7451 =0 [BRX]_[BRX].OR.[ARX] ;YES--SET FLAGS U 2207, 2210,4553,0300,4374,4007,0331,0000,0003,0000 ; 7452 TR [AR], #/30000 ;ANY CHANGE AT ALL? ; 7453 =0 READ [BRX], ;YES--LOAD NEW FLAGS U 2210, 3406,3333,0006,4174,4007,0700,0000,0000,0000 ; 7454 J/WRAPR2 ;TURN OFF INTERRUPT 8080 U 2211, 3404,3333,0005,4174,4007,0700,0000,0000,0000 ; 7455 WRAPR1: READ [BR] ;FIX DPM TIMING BUG ; 7456 READ [BR], ;ENABLE CONDITIONS U 3404, 3405,3333,0005,4174,4257,0700,0000,0000,0000 ; 7457 SET APR ENABLES ; 7458 WORK[APR]_[BR], ;SAVE FOR RDAPR U 3405, 1400,3333,0005,7174,4007,0700,0400,0000,0230 ; 7459 J/DONE ;ALL DONE ; 7460 ; 7461 WRAPR2: READ [BRX], ;LOAD NEW FLAGS U 3406, 3407,3333,0006,4174,4237,0700,0000,0000,0000 ; 7462 SPEC/APR FLAGS ; .. ; 7463 [BRX]_[BRX].AND.NOT.#, ;CLEAR INTERRUPT THE 8080 U 3407, 3410,5551,0606,4370,4007,0700,0000,0000,2000 ; 7464 #/002000, HOLD LEFT ; FLAG ; 7465 READ [BRX], ;LOAD NEW FLAGS ; 7466 SPEC/APR FLAGS, ; .. U 3410, 2211,3333,0006,4174,4237,0700,0000,0000,0000 ; 7467 J/WRAPR1 ;LOOP BACK ; 7468 ; 7469 1705: U 1705, 3411,3771,0005,7274,4007,0701,0000,0000,0230 ; 7470 RDAPR: [BR]_WORK[APR] ; 7471 [BR]_[BR] SWAP, ;PUT ENABLES IN BOTH U 3411, 3412,3770,0505,4344,0007,0700,0000,0000,0000 ; 7472 HOLD RIGHT ; HALVES ; 7473 [BR]_[BR].AND.#, ;SAVE ENABLES IN LH ; 7474 #/7760, ; U 3412, 3413,4551,0505,4374,0007,0700,0000,0000,7760 ; 7475 HOLD RIGHT ; 7476 [BR]_[BR].AND.#, ;SAVE PIA IN RH ; 7477 #/7, U 3413, 3414,4551,0505,4370,4007,0700,0000,0000,0007 ; 7478 HOLD LEFT U 3414, 3415,3771,0004,4304,4007,0701,0000,0000,0000 ; 7479 [ARX]_APR ;READ THE APR FLAGS ; 7480 [ARX]_[ARX].AND.# CLR LH, ;MASK OUT JUNK U 3415, 3416,4251,0404,4374,4007,0700,0000,0000,7770 ; 7481 #/007770 ;KEEP 8 FLAGS ; 7482 [BR]_[BR].OR.[ARX], ;MASH THE STUFF TOGETHER U 3416, 3476,3111,0405,4174,4007,0700,0000,0000,0000 ; 7483 J/RTNREG ;RETURN ; 7484 ; 7485 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 171 ; DSK: KSHACK; INOUT 50 20:00:51 16-JAN-87 IO -- INTERNAL DEVICES -- EBR & UBR ; 7486 .TOC "IO -- INTERNAL DEVICES -- EBR & UBR" ; 7487 ; 7488 .IF/ITS ; 7489 1723: U 1723, 3417,3443,0300,4174,4007,0700,0200,0004,0012 ; 7490 WRUBR: VMA_[AR], START READ ; 7491 MEM READ, [AR]_MEM, U 3417, 2212,3771,0003,4365,5007,0521,0200,0000,0002 ; 7492 3T, SKIP DP0 ; Load AC blocks? ; 7493 =0 [AR]_[AR].AND.#, ; No: Clear those bits in argument. ; 7494 #/100003, ; 7495 HOLD RIGHT, U 2212, 3420,4551,0303,4374,0007,0700,0000,0010,0003 ; 7496 J/WRUBR1 ; 7497 [UBR]_[UBR].AND.#, ; Yes: Clear those bits in UBR. ; 7498 #/100003, U 2213, 3420,4551,1111,4374,0007,0700,0000,0010,0003 ; 7499 HOLD RIGHT U 3420, 2214,4553,0300,4374,4007,0321,0000,0010,0000 ; 7500 WRUBR1: TL [AR], #/100000 ; Set base address? ; 7501 =0 [UBR]_[UBR].AND.# CLR RH, ; Yes: Clear those bits in UBR. ; 7502 #/407700, U 2214, 3421,4521,1111,4374,4007,0700,0000,0040,7700 ; 7503 J/WRUBR2 ; 7504 [AR]_[AR].AND.# CLR RH, ; No: Clear those bits in argument. U 2215, 3421,4521,0303,4374,4007,0700,0000,0040,7700 ; 7505 #/407700 ; 7506 WRUBR2: [UBR]_[UBR].OR.[AR], ; Put it all together ; 7507 LOAD AC BLOCKS, ; and tell the hardware. U 3421, 2276,3111,0311,4174,4477,0700,0000,0000,0000 ; 7508 J/SWEEP ; 7509 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 172 ; DSK: KSHACK; INOUT 50 20:00:51 16-JAN-87 IO -- INTERNAL DEVICES -- EBR & UBR ; 7510 ; 7511 .IFNOT/ITS ; 7512 1723: ; 7513 WRUBR: VMA_[AR], ;LOAD E INTO VMA ; 7514 START READ ;START MEMORY ; 7515 MEM READ, ;WAIT FOR DATA ; 7516 [AR]_MEM, 3T, ;PUT IT INTO THE AR ; 7517 SKIP DP0 ;SEE IF WE WANT TO LOAD ; 7518 ; AC BLOCK NUMBERS ; 7519 =0 [AR]_[AR].AND.#, ;NO--CLEAR JUNK IN AR ; 7520 #/100000, ; LEAVE ONLY LOAD UBR ; 7521 HOLD RIGHT, ; IN LEFT HALF ; 7522 SKIP ADL.EQ.0, 3T, ;SEE IF WE WANT TO LOAD ; 7523 J/ACBSET ;SKIP AROUND UBR LOAD ; 7524 [UBR]_[UBR].AND.#, ;MASK OUT THE OLD ; 7525 #/770077, ; AC BLOCK NUMBERS ; 7526 HOLD RIGHT ;IN THE LEFT HALF ; 7527 [AR].AND.#, ;SEE IF WE WANT TO LOAD ; 7528 #/100000, 3T, ; UBR ALSO ; 7529 SKIP ADL.EQ.0 ; 7530 =0 ; 7531 ACBSET: [BR]_[AR].AND.#, ;COPY UBR PAGE NUMBER ; 7532 #/17777, ; INTO BR ; 7533 J/SETUBR ;GO LOAD UBR ; 7534 [UBR]_[UBR].OR.[AR], ;DO NOT LOAD UBR ; 7535 ; PUT AC BLOCK # IN ; 7536 HOLD RIGHT, ; THE LEFT HALF ; 7537 LOAD AC BLOCKS, ;LOAD HARDWARE ; 7538 J/DONE ;ALL DONE ; 7539 ; 7540 SETUBR: [BR]_0, ;CLEAR BR LEFT ; 7541 SC_7, ;PUT THE COUNT IN SC ; 7542 HOLD RIGHT ; 7543 =0 ; 7544 STUBRS: [BR]_[BR]*2, ;SHIFT BR OVER ; 7545 STEP SC, ; 9 PLACES ; 7546 J/STUBRS ; 7547 [UBR]_[UBR].AND.#, ;MASK OUT OLD UBR ; 7548 #/777774, ; BITS IN ; 7549 HOLD RIGHT ; LEFT HALF ; 7550 [UBR]_0, ;CLEAR RIGHT HALF ; 7551 HOLD LEFT ; 7552 [UBR]_[UBR].OR.[BR] ;PUT IN PAGE TABLE ADDRESS ; 7553 [UBR]_[UBR].OR.[AR], ;PUT IN AC BLOCK # ; 7554 HOLD RIGHT, ; IN LEFT HALF ; 7555 LOAD AC BLOCKS, ;TELL HARDWARE ; 7556 J/SWEEP ;CLEAR CACHE ; 7557 .ENDIF/ITS ; 7558 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 173 ; DSK: KSHACK; INOUT 50 20:00:51 16-JAN-87 IO -- INTERNAL DEVICES -- EBR & UBR ; 7559 ; 7560 1724: U 1724, 2216,3445,0303,4174,4007,0700,2000,0071,0006 ; 7561 WREBR: [AR]_[AR]*2, SC_6 ; 7562 =0 U 2216, 2216,3445,0303,4174,4007,0630,2000,0060,0000 ; 7563 WREBR1: [AR]_[AR]*2, STEP SC, J/WREBR1 ; 7564 .IF/FULL ;DO NOT ENABLE PAGING IN SMALL ; 7565 ; MICROCODE. U 2217, 3422,3771,0005,7274,4007,0701,0000,0000,0230 ; 7566 [BR]_WORK[APR] U 3422, 3423,4551,0505,4370,4007,0700,0000,0074,7777 ; 7567 [BR]_[BR].AND.#, #/747777, HOLD LEFT U 3423, 2220,4553,0300,4374,4007,0321,0000,0000,0020 ; 7568 [AR].AND.#, #/20, 3T, SKIP ADL.EQ.0 U 2220, 2221,3551,0505,4370,4007,0700,0000,0003,0000 ; 7569 =0 [BR]_[BR].OR.#, #/030000, HOLD LEFT U 2221, 3424,3333,0005,4174,4257,0700,0000,0000,0000 ; 7570 READ [BR], SET APR ENABLES U 3424, 3425,3333,0005,7174,4007,0700,0400,0000,0230 ; 7571 WORK[APR]_[BR] ; 7572 .ENDIF/FULL U 3425, 3426,3441,0310,4174,4007,0700,0000,0000,0000 ; 7573 [EBR]_[AR] U 3426, 2222,4553,1000,4374,4007,0321,0000,0000,0040 ; 7574 [EBR].AND.#, #/40, 3T, SKIP ADL.EQ.0 U 2222, 2276,3551,1010,4374,0007,0700,0000,0040,0000 ; 7575 =0 [EBR]_[EBR].OR.#, #/400000, HOLD RIGHT, J/SWEEP U 2223, 2276,5551,1010,4374,0007,0700,0000,0040,0000 ; 7576 [EBR]_[EBR].AND.NOT.#, #/400000, HOLD RIGHT, J/SWEEP ; 7577 ; 7578 1725: U 1725, 2224,3447,1005,4174,4007,0700,2000,0071,0006 ; 7579 RDEBR: [BR]_[EBR]*.5, SC_6 ; 7580 =0 U 2224, 2224,3447,0505,4174,4007,0630,2000,0060,0000 ; 7581 RDEBR1: [BR]_[BR]*.5, STEP SC, J/RDEBR1 U 2225, 3427,4551,0505,4374,4007,0700,0000,0006,3777 ; 7582 [BR]_[BR].AND.#, #/63777 ;MASK TO JUST EBR ; 7583 [BR]_0, ;CLEAR LEFT HALF ; 7584 HOLD RIGHT, ; BITS U 3427, 3476,4221,0005,4174,0007,0700,0000,0000,0000 ; 7585 J/RTNREG ;RETURN ANSWER ; 7586 ; 7587 .IF/ITS ; 7588 1721: U 1721, 3430,3441,1105,4174,4007,0700,0000,0000,0000 ; 7589 RDUBR: [BR]_[UBR] ; 7590 [BR]_[BR].AND.#, ; 7591 #/507703, ; 7592 HOLD RIGHT, U 3430, 3476,4551,0505,4374,0007,0700,0000,0050,7703 ; 7593 J/RTNREG ; 7594 U 3431, 3432,3441,1105,4174,4007,0700,0000,0000,0000 ; 7595 GETPCW: [BR]_[UBR] ; 7596 [BR]_[BR].AND.#, ; 7597 #/507703, ; 7598 HOLD RIGHT, U 3432, 0001,4551,0505,4374,0004,1700,0000,0050,7703 ; 7599 RETURN [1] ; 7600 ; 7601 .IFNOT/ITS ; 7602 1721: ; 7603 RDUBR: [BR]_[UBR] ; 7604 =0 [BRX]_[BR]*.5, SC_6, CALL [GTPCW1] ; 7605 [BR]_[BR].AND.#, ;JUST RETURN USEFUL ; 7606 #/507700, HOLD RIGHT, ; BITS ; 7607 J/RTNREG ; 7608 ; 7609 ; 7610 GETPCW: [BR]_[UBR] ; 7611 [BRX]_[BR]*.5, SC_6 ; 7612 =0 ; 7613 GTPCW1: [BRX]_[BRX]*.5, STEP SC, J/GTPCW1 ; 7614 [BRX]_[BRX].AND.#, #/17777 ; 7615 [BR]_[BRX], HOLD LEFT, RETURN [1] ; 7616 .ENDIF/ITS ; 7617 ; 7618 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 174 ; DSK: KSHACK; INOUT 50 20:00:51 16-JAN-87 IO -- INTERNAL DEVICES -- KL PAGING REGISTERS ; 7619 .TOC "IO -- INTERNAL DEVICES -- KL PAGING REGISTERS" ; 7620 ; 7621 .DCODE D 0702, 1216,1760,4700 ; 7622 702: IOT,AC DISP, M, J/GRP702 ; 7623 .UCODE ; 7624 ; 7625 .IF/ITS ; 7626 1760: ; 7627 GRP702: U 1760, 3476,3771,0005,7274,4007,0701,0000,0000,0215 ; 7628 SDBR1: [BR]_WORK[DBR1], J/RTNREG ; 7629 1761: U 1761, 3476,3771,0005,7274,4007,0701,0000,0000,0216 ; 7630 SDBR2: [BR]_WORK[DBR2], J/RTNREG ; 7631 1762: U 1762, 3476,3771,0005,7274,4007,0701,0000,0000,0217 ; 7632 SDBR3: [BR]_WORK[DBR3], J/RTNREG ; 7633 1763: U 1763, 3476,3771,0005,7274,4007,0701,0000,0000,0220 ; 7634 SDBR4: [BR]_WORK[DBR4], J/RTNREG ; 7635 .IFNOT/ITS ; 7636 1760: ; 7637 GRP702: ; 7638 RDSPB: [BR]_WORK[SBR], J/RTNREG ; 7639 1761: ; 7640 RDCSB: [BR]_WORK[CBR], J/RTNREG ; 7641 1762: ; 7642 RDPUR: [BR]_WORK[PUR], J/RTNREG ; 7643 1763: ; 7644 RDCSTM: [BR]_WORK[CSTM], J/RTNREG ; 7645 .ENDIF/ITS ; 7646 ; 7647 1766: U 1766, 3476,3771,0005,7274,4007,0701,0000,0000,0227 ; 7648 RDHSB: [BR]_WORK[HSBADR], J/RTNREG ; 7649 ; 7650 .IFNOT/ITS ; 7651 1767: UUO ; 7652 .IF/ITS ; 7653 1767: U 1767, 3433,3771,0004,7274,4007,0701,0000,0000,0215 ; 7654 SPM: [ARX]_WORK[DBR1] U 3433, 3434,3443,0300,4174,4007,0700,0200,0003,0012 ; 7655 VMA_[AR], START WRITE U 3434, 2226,3333,0004,4175,5007,0701,0200,0000,0002 ; 7656 MEM WRITE, MEM_[ARX] U 2226, 3435,3771,0004,7274,4007,0701,0010,0000,0216 ; 7657 =0 [ARX]_WORK[DBR2], CALL [SPM-NEXT] U 2227, 2230,3333,0004,4175,5007,0701,0200,0000,0002 ; 7658 MEM WRITE, MEM_[ARX] U 2230, 3435,3771,0004,7274,4007,0701,0010,0000,0304 ; 7659 =0 [ARX]_WORK[QUAN], CALL [SPM-NEXT] ; 7660 .IFNOT/JPC U 2231, 1400,3333,0004,4175,5007,0701,0200,0000,0002 ; 7661 MEM WRITE, MEM_[ARX], J/DONE ; 7662 .IF/JPC ; 7663 MEM WRITE, MEM_[ARX] ; 7664 =0 [ARX]_WORK[U.JPC], CALL [SPM-NEXT] ; 7665 MEM WRITE, MEM_[ARX] ; 7666 =0 [ARX]_WORK[E.JPC], CALL [SPM-NEXT] ; 7667 MEM WRITE, MEM_[ARX], J/DONE ; 7668 .ENDIF/JPC ; 7669 = ; 7670 ; 7671 SPM-NEXT: U 3435, 0001,0111,0703,4170,4004,1700,0200,0003,0012 ; 7672 [AR]_[AR]+1, LOAD VMA, HOLD LEFT, START WRITE, RETURN [1] ; 7673 ; 7674 .ENDIF/ITS ; 7675 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 175 ; DSK: KSHACK; INOUT 50 20:00:51 16-JAN-87 IO -- INTERNAL DEVICES -- KL PAGING REGISTERS ; 7676 ; 7677 .IF/ITS ; 7678 ;;; These guys could be careful and only sweep half of the page table (but all ; 7679 ;;; of the cache). ; 7680 1770: U 1770, 2276,3333,0003,7174,4007,0700,0400,0000,0215 ; 7681 LDBR1: WORK[DBR1]_[AR], J/SWEEP ; 7682 1771: U 1771, 2276,3333,0003,7174,4007,0700,0400,0000,0216 ; 7683 LDBR2: WORK[DBR2]_[AR], J/SWEEP ; 7684 1772: U 1772, 2276,3333,0003,7174,4007,0700,0400,0000,0217 ; 7685 LDBR3: WORK[DBR3]_[AR], J/SWEEP ; 7686 1773: U 1773, 2276,3333,0003,7174,4007,0700,0400,0000,0220 ; 7687 LDBR4: WORK[DBR4]_[AR], J/SWEEP ; 7688 .IFNOT/ITS ; 7689 1770: ; 7690 WRSPB: START READ ; 7691 MEM READ, [AR]_MEM ; 7692 WORK[SBR]_[AR], J/DONE ; 7693 1771: ; 7694 WRCSB: START READ ; 7695 MEM READ, [AR]_MEM ; 7696 WORK[CBR]_[AR], J/DONE ; 7697 1772: ; 7698 WRPUR: START READ ; 7699 MEM READ, [AR]_MEM ; 7700 WORK[PUR]_[AR], J/DONE ; 7701 1773: ; 7702 WRCSTM: START READ ; 7703 MEM READ, [AR]_MEM ; 7704 WORK[CSTM]_[AR], J/DONE ; 7705 .ENDIF/ITS ; 7706 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 176 ; DSK: KSHACK; INOUT 50 20:00:51 16-JAN-87 IO -- INTERNAL DEVICES -- KL PAGING REGISTERS ; 7707 ; 7708 1776: U 1776, 3436,4443,0000,4174,4007,0700,0200,0004,0002 ; 7709 WRHSB: START READ U 3436, 3437,3771,0003,4365,5007,0700,0200,0000,0002 ; 7710 MEM READ, [AR]_MEM U 3437, 1400,3333,0003,7174,4007,0700,0400,0000,0227 ; 7711 WORK[HSBADR]_[AR], J/DONE ; 7712 ; 7713 .IFNOT/ITS ; 7714 1777: UUO ; 7715 .IF/ITS ; 7716 1777: U 1777, 3440,4443,0000,4174,4007,0700,0200,0004,0002 ; 7717 LPMR: START READ U 3440, 3441,3771,0004,4365,5007,0700,0200,0000,0002 ; 7718 MEM READ, [ARX]_MEM U 3441, 2232,3333,0004,7174,4007,0700,0400,0000,0215 ; 7719 WORK[DBR1]_[ARX] ; 7720 =0 [AR]_[AR]+1, LOAD VMA, HOLD LEFT, START READ, U 2232, 3545,0111,0703,4170,4007,0700,0210,0004,0012 ; 7721 CALL [LOADARX] U 2233, 2234,3333,0004,7174,4007,0700,0400,0000,0216 ; 7722 WORK[DBR2]_[ARX] ; 7723 =0 [AR]_[AR]+1, LOAD VMA, HOLD LEFT, START READ, U 2234, 3545,0111,0703,4170,4007,0700,0210,0004,0012 ; 7724 CALL [LOADARX] ; 7725 .IFNOT/JPC U 2235, 2276,3333,0004,7174,4007,0700,0400,0000,0304 ; 7726 WORK[QUAN]_[ARX], J/SWEEP ; 7727 .IF/JPC ; 7728 WORK[QUAN]_[ARX] ; 7729 =0 [AR]_[AR]+1, LOAD VMA, HOLD LEFT, START READ, ; 7730 CALL [LOADARX] ; 7731 WORK[U.JPC]_[ARX] ; 7732 =0 [AR]_[AR]+1, LOAD VMA, HOLD LEFT, START READ, ; 7733 CALL [LOADARX] ; 7734 WORK[E.JPC]_[ARX], J/SWEEP ; 7735 .ENDIF/JPC ; 7736 = ; 7737 .ENDIF/ITS ; 7738 ; 7739 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 177 ; DSK: KSHACK; INOUT 50 20:00:51 16-JAN-87 IO -- INTERNAL DEVICES -- TIMER CONTROL ; 7740 .TOC "IO -- INTERNAL DEVICES -- TIMER CONTROL" ; 7741 ; 7742 TICK: [AR]_WORK[TIME1], ;[123] GET LOW WORD U 3442, 3443,3771,0003,7274,4117,0701,0000,0000,0301 ; 7743 SPEC/CLRCLK ;[123] CLEAR CLOCK FLAG U 3443, 3444,4751,1205,4374,4007,0700,0000,0001,0000 ; 7744 TOCK: [BR]_0 XWD [10000] ;2^12 UNITS PER MS U 3444, 3445,0111,0503,4174,4007,0700,0000,0000,0000 ; 7745 [AR]_[AR]+[BR] ;INCREMENT THE TIMER U 3445, 2236,3770,0303,4174,0007,0520,0000,0000,0000 ; 7746 FIX [AR] SIGN, SKIP DP0 ;SEE IF IT OVERFLOWED ; 7747 =0 ; 7748 TOCK1: WORK[TIME1]_[AR], ;STORE THE NEW TIME U 2236, 3446,3333,0003,7174,4007,0700,0400,0000,0301 ; 7749 J/TOCK2 ;SKIP OVER THE OVERFLOW CODE U 2237, 2120,3771,0003,7274,4007,0701,0000,0000,0300 ; 7750 [AR]_WORK[TIME0] ;GET HIGH WORD ; 7751 =0* [AR]_[AR]+1, ;BUMP IT U 2120, 3455,0111,0703,4174,4007,0700,0010,0000,0000 ; 7752 CALL [WRTIM1] ;STORE BACK IN RAM ; 7753 [AR]_0, ;CAUSE LOW WORD WORD U 2122, 2236,4221,0003,4174,4007,0700,0000,0000,0000 ; 7754 J/TOCK1 ; TO GET STORED ; 7755 ; 7756 .IF/ITS ; 7757 TOCK2: TR [PI], PI.IP1/1, ;PI in progress? ; 7758 PI.IP2/1, PI.IP3/1, ; 7759 PI.IP4/1, PI.IP5/1, U 3446, 2240,4553,1400,4374,4007,0331,0000,0007,7400 ; 7760 PI.IP6/1, PI.IP7/1 ; 7761 =0 ; 7762 TOCK3: [AR]_WORK[TTG], ;Yes: Skip quantum counter. U 2240, 3450,3771,0003,7274,4007,0701,0000,0000,0303 ; 7763 J/TOCK4 U 2241, 3447,0551,0503,7274,4007,0701,0000,0000,0304 ; 7764 [AR]_[BR]+WORK[QUAN] ;No: Increment quantum counter. ; 7765 = WORK[QUAN]_[AR], U 3447, 2240,3333,0003,7174,4007,0700,0400,0000,0304 ; 7766 J/TOCK3 ; 7767 ; 7768 TOCK4: [AR]_[AR]-[BR], ;COUNT DOWN TIME TO GO U 3450, 2242,1111,0503,4174,4007,0421,4000,0000,0000 ; 7769 SKIP AD.LE.0 ;SEE IF IT TIMED OUT ; 7770 =0 ; 7771 TOCK5: WORK[TTG]_[AR], ;SAVE NEW TIME TO GO U 2242, 0002,3333,0003,7174,4004,1700,0400,0000,0303 ; 7772 RETURN [2] ;ALL DONE U 2243, 3451,0551,0303,7274,4007,0701,0000,0000,0302 ; 7773 [AR]_[AR]+WORK[PERIOD] ;WHY THROW AWAY ALL THAT ACCURACY? ; 7774 .IFNOT/ITS ; 7775 TOCK2: [AR]_WORK[TTG] ; 7776 [AR]_[AR]-[BR], ;COUNT DOWN TIME TO GO ; 7777 SKIP AD.LE.0 ;SEE IF IT TIMED OUT ; 7778 =0 ; 7779 TOCK5: WORK[TTG]_[AR], ;SAVE NEW TIME TO GO ; 7780 RETURN [2] ;ALL DONE ; 7781 [AR]_WORK[PERIOD] ; 7782 .ENDIF/ITS U 3451, 3452,3771,0005,4304,4007,0701,0000,0000,0000 ; 7783 [BR]_APR ;GET CURRENT FLAGS U 3452, 3453,3551,0505,4374,4007,0700,0000,0000,0040 ; 7784 [BR]_[BR].OR.#, #/40 ;SET TIMER INTERRUPT FLAG ; 7785 READ [BR], ;PLACE ON DP AND ; 7786 SPEC/APR FLAGS, ; LOAD INTO HARDWARE U 3453, 2242,3333,0005,4174,4237,0700,0000,0000,0000 ; 7787 J/TOCK5 ;ALL DONE ; 7788 ; 7789 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 178 ; DSK: KSHACK; INOUT 50 20:00:51 16-JAN-87 IO -- INTERNAL DEVICES -- WRTIME & RDTIME ; 7790 .TOC "IO -- INTERNAL DEVICES -- WRTIME & RDTIME" ; 7791 ; 7792 1774: U 1774, 3454,4443,0000,4174,4007,0700,0200,0004,0002 ; 7793 WRTIME: START READ ;FETCH WORD AT E ; 7794 MEM READ, ;WAIT FOR DATA U 3454, 2244,3771,0003,4365,5007,0700,0200,0000,0002 ; 7795 [AR]_MEM ;PUT WORD IN AR ; 7796 =00 VMA_[HR]+1, ;BUMP E ; 7797 START READ, ;START MEMORY U 2244, 3545,0111,0702,4170,4007,0700,0210,0004,0012 ; 7798 CALL [LOADARX] ;PUT DATA IN ARX ; 7799 [ARX]_[ARX].AND.#, ;CLEAR PART HELD IN ; 7800 #/770000, ; HARDWARE COUNTER U 2245, 3455,4551,0404,4370,4007,0700,0010,0077,0000 ; 7801 HOLD LEFT, CALL [WRTIM1] ; 7802 =11 WORK[TIME1]_[ARX], ;IN WORK SPACE U 2247, 1400,3333,0004,7174,4007,0700,0400,0000,0301 ; 7803 J/DONE ;NEXT INSTRUCTION ; 7804 = ; 7805 WRTIM1: WORK[TIME0]_[AR], ;SAVE THE NEW VALUE U 3455, 0002,3333,0003,7174,4004,1700,0400,0000,0300 ; 7806 RETURN [2] ; 7807 ; 7808 1764: U 1764, 3456,4451,1205,4324,4007,0700,0000,0000,0000 ; 7809 RDTIME: [BR]_TIME ;READ THE TIME U 3456, 3457,4451,1204,4324,4007,0700,0000,0000,0000 ; 7810 [ARX]_TIME ; AGAIN U 3457, 3460,4451,1206,4324,4007,0700,0000,0000,0000 ; 7811 [BRX]_TIME ; AGAIN ; 7812 [BR].XOR.[ARX], ;SEE IF STABLE U 3460, 2250,6113,0405,4174,4007,0621,0000,0000,0000 ; 7813 SKIP AD.EQ.0 ; .. U 2250, 2251,3441,0604,4174,4007,0700,0000,0000,0000 ; 7814 =0 [ARX]_[BRX] ;NO THEN NEXT TRY MUST BE OK U 2251, 3461,3771,0005,7274,4007,0701,0000,0000,0300 ; 7815 [BR]_WORK[TIME0] ; 7816 [ARX]_[ARX]+WORK[TIME1], ;COMBINE PARTS U 3461, 2254,0551,0404,7274,4007,0671,0000,0000,0301 ; 7817 SKIP/-1 MS ;SEE IF OVERFLOW HAPPENED ; 7818 =00 SPEC/CLRCLK, ;CLEAR CLOCK FLAG ; 7819 [AR]_WORK[TIME1], 2T, ;GET LOW WORD FOR TOCK U 2254, 3443,3771,0003,7274,4117,0700,0010,0000,0301 ; 7820 CALL [TOCK] ;UPDATE CLOCKS ; 7821 READ [HR], LOAD VMA, ;DID NOT OVERFLOW U 2255, 3462,3333,0002,4174,4007,0700,0200,0003,0012 ; 7822 START WRITE, J/RDTIM1 ;STORE ANSWER U 2256, 1764,4443,0000,4174,4007,0700,0000,0000,0000 ; 7823 J/RDTIME ;TRY AGAIN ; 7824 = U 3462, 3463,3333,0005,4175,5007,0701,0200,0000,0002 ; 7825 RDTIM1: MEM WRITE, MEM_[BR] U 3463, 3464,0111,0702,4170,4007,0700,0200,0003,0012 ; 7826 VMA_[HR]+1, LOAD VMA, START WRITE U 3464, 1400,3333,0004,4175,5007,0701,0200,0000,0002 ; 7827 MEM WRITE, MEM_[ARX], J/DONE ; 7828 ; 7829 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 179 ; DSK: KSHACK; INOUT 50 20:00:51 16-JAN-87 IO -- INTERNAL DEVICES -- WRINT & RDINT ; 7830 .TOC "IO -- INTERNAL DEVICES -- WRINT & RDINT" ; 7831 ; 7832 ; 7833 1775: U 1775, 3465,4443,0000,4174,4007,0700,0200,0004,0002 ; 7834 WRINT: START READ U 3465, 3466,3771,0003,4365,5007,0700,0200,0000,0002 ; 7835 MEM READ, [AR]_MEM U 3466, 3467,3333,0003,7174,4007,0700,0400,0000,0302 ; 7836 WORK[PERIOD]_[AR] ; 7837 WORK[TTG]_[AR], U 3467, 1400,3333,0003,7174,4007,0700,0400,0000,0303 ; 7838 J/DONE ; 7839 ; 7840 1765: ; 7841 RDINT: [BR]_WORK[PERIOD], U 1765, 3476,3771,0005,7274,4007,0701,0000,0000,0302 ; 7842 J/RTNREG ; 7843 ; 7844 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 180 ; DSK: KSHACK; INOUT 50 20:00:51 16-JAN-87 IO -- INTERNAL DEVICES -- RDPI & WRPI ; 7845 .TOC "IO -- INTERNAL DEVICES -- RDPI & WRPI" ; 7846 ; 7847 1715: U 1715, 3476,3441,1405,4174,4007,0700,0000,0000,0000 ; 7848 RDPI: [BR]_[PI], J/RTNREG ; 7849 ; 7850 1714: U 1714, 2252,4553,0300,4374,4007,0331,0000,0001,0000 ; 7851 WRPI: TR [AR], PI.CLR/1 U 2252, 2253,4221,0014,4174,4007,0700,0000,0000,0000 ; 7852 =0 [PI]_0 U 2253, 2260,4553,0300,4374,4007,0331,0000,0074,0000 ; 7853 TR [AR], PI.MBZ/17 ; 7854 U 2260, 2605,4551,0202,4374,0007,0700,0000,0077,7740 ; 7855 =0 UUO U 2261, 3470,4551,0305,4374,4007,0700,0000,0000,0177 ; 7856 [BR]_[AR].AND.#,#/177 U 3470, 3471,3770,0505,4344,0007,0700,0000,0000,0000 ; 7857 [BR]_[BR] SWAP, HOLD RIGHT U 3471, 2262,4553,0300,4374,4007,0331,0000,0002,0000 ; 7858 TR [AR], PI.DIR/1 U 2262, 2263,5111,0514,4174,0007,0700,0000,0000,0000 ; 7859 =0 [PI]_[PI].AND.NOT.[BR], HOLD RIGHT U 2263, 2264,4553,0300,4374,4007,0331,0000,0000,4000 ; 7860 TR [AR], PI.REQ/1 U 2264, 2265,3111,0514,4174,0007,0700,0000,0000,0000 ; 7861 =0 [PI]_[PI].OR.[BR], HOLD RIGHT U 2265, 2266,4553,0300,4374,4007,0331,0000,0000,0200 ; 7862 TR [AR], PI.TSN/1 U 2266, 2267,3551,1414,4370,4007,0700,0000,0000,0200 ; 7863 =0 [PI]_[PI].OR.#,PI.ON/1, HOLD LEFT U 2267, 2270,4553,0300,4374,4007,0331,0000,0000,0400 ; 7864 TR [AR], PI.TSF/1 U 2270, 2271,5551,1414,4370,4007,0700,0000,0000,0200 ; 7865 =0 [PI]_[PI].AND.NOT.#,PI.ON/1, HOLD LEFT U 2271, 2272,4553,0300,4374,4007,0331,0000,0000,2000 ; 7866 TR [AR], PI.TCN/1 U 2272, 2273,3111,0514,4170,4007,0700,0000,0000,0000 ; 7867 =0 [PI]_[PI].OR.[BR], HOLD LEFT U 2273, 2300,4553,0300,4374,4007,0331,0000,0000,1000 ; 7868 TR [AR], PI.TCF/1 U 2300, 2301,5111,0514,4170,4007,0700,0000,0000,0000 ; 7869 =0**0 [PI]_[PI].AND.NOT.[BR], HOLD LEFT U 2301, 3473,3770,1416,4344,4007,0700,0010,0000,0000 ; 7870 PIEXIT: CALL LOAD PI ; 7871 =1**1 U 2311, 0070,3443,0100,4174,4156,4700,0200,0014,0012 ; 7872 DONE ; 7873 = ; 7874 ; 7875 ; 7876 ;SUBROUTINE TO LOAD PI HARDWARE ; 7877 ;CALL WITH: ; 7878 ; CALL LOAD PI ; 7879 ;RETURNS 10 WITH PI HARDWARE LOADED ; 7880 ; U 3472, 3473,3770,1416,4344,4007,0700,0000,0000,0000 ; 7881 LOADPI: [T0]_[PI] SWAP ;PUT ACTIVE CHANS IN LH U 3473, 3474,2441,0716,4170,4007,0700,4000,0000,0000 ; 7882 LDPI2: [T0]_-1, HOLD LEFT ;DONT MASK RH U 3474, 3475,4111,1416,4174,4007,0700,0000,0000,0000 ; 7883 [T0]_[T0].AND.[PI] ;ONLY REQUEST CHANS THAT ARE ON ; 7884 .NOT.[T0], LOAD PI, ;RELOAD HARDWARE U 3475, 0010,7443,1600,4174,4434,1700,0000,0000,0000 ; 7885 RETURN [10] ;RETURN TO CALLER ; 7886 ; 7887 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 181 ; DSK: KSHACK; INOUT 50 20:00:51 16-JAN-87 IO -- INTERNAL DEVICES -- SUBROUTINES ; 7888 .TOC "IO -- INTERNAL DEVICES -- SUBROUTINES" ; 7889 ; 7890 ; 7891 ;HERE WITH SOMETHING IN BR STORE IT @AR U 3476, 3477,3443,0300,4174,4007,0700,0200,0003,0012 ; 7892 RTNREG: VMA_[AR], START WRITE U 3477, 1400,3333,0005,4175,5007,0701,0200,0000,0002 ; 7893 MEM WRITE, MEM_[BR], J/DONE ; 7894 ; 7895 ;CACHE SWEEP ; 7896 ; 7897 1722: ; 7898 CLRPT: VMA_[AR], ;PUT CORRECT ADDRESS IN VMA U 1722, 3500,3443,0300,4174,4147,0700,0200,0000,0010 ; 7899 LOAD PAGE TABLE ;GET SET TO WRITE PAGE TABLE U 3500, 1720,4221,0003,4174,4007,0700,0000,0000,0000 ; 7900 [AR]_0 ;CLEAR ENTRY ; 7901 .IF/ITS ; 7902 1720: ; 7903 GRP701: U 1720, 3501,3771,0003,4374,4007,0700,0000,0037,7377 ; 7904 CLRCSH: [AR]_#, #/377377 ;INITIAL VMA VALUE U 3501, 3502,4443,0000,4174,4007,0700,2000,0071,0375 ; 7905 SC_S#, S#/375 ;LOAD THE SC WITH NUMBER OF STEPS ; 7906 .IFNOT/ITS ; 7907 =0 [AR]_#,#/377377, ;INITIAL VMA VALUE ; 7908 CALL [SSWEEP] ;LOAD THE SC ; 7909 .ENDIF/ITS ; 7910 [BR]_#, #/1001, ;CONSTANT TO KEEP ADDING U 3502, 3503,3771,0005,4374,4247,0700,0000,0000,1001 ; 7911 CLRCSH ;START TO CLEAR CACHE U 3503, 2274,3333,0003,4174,4247,0700,0000,0000,1000 ; 7912 READ [AR], CLRCSH ;FIRST THING TO CLEAR ; 7913 =0 ; 7914 CLRPTL: [AR]_[AR]-[BR], ;UPDATE AR (AND PUT ON DP) ; 7915 CLRCSH, ;SWEEP ON NEXT STEP ; 7916 STEP SC, ;SKIP IF WE ARE DONE U 2274, 2274,1111,0503,4174,4247,0630,6000,0060,1000 ; 7917 J/CLRPTL ;LOOP FOR ALL ENTRIES ; 7918 .IFNOT/ITS ; 7919 READ [AR], J/ZAPPTA ;CLEAR LAST ENTRY ; 7920 .IF/ITS U 2275, 1400,3333,0003,4174,4007,0700,0000,0000,0000 ; 7921 READ [AR], J/DONE ;Clear last entry. ; 7922 .ENDIF/ITS ; 7923 ; 7924 =0 ; 7925 SWEEP: [AR]_#,#/377377, ;INITIAL VMA VALUE U 2276, 3505,3771,0003,4374,4007,0700,0010,0037,7377 ; 7926 CALL [SSWEEP] ;LOAD NUMBER OF STEPS INTO SC ; 7927 [BR]_#, #/1001, ;CONSTANT TO KEEP ADDING U 2277, 3504,3771,0005,4374,4347,0700,0000,0000,1001 ; 7928 SWEEP ;START SWEEP U 3504, 2302,3333,0003,4174,4347,0700,0000,0000,1000 ; 7929 READ [AR], SWEEP ;FIRST THING TO CLEAR ; 7930 =0 ; 7931 SWEEPL: [AR]_[AR]-[BR], ;UPDATE AR (AND PUT ON DP) ; 7932 SWEEP, ;SWEEP ON NEXT STEP ; 7933 STEP SC, ;SKIP IF WE ARE DONE U 2302, 2302,1111,0503,4174,4347,0630,6000,0060,1000 ; 7934 J/SWEEPL ;LOOP FOR ALL ENTRIES ; 7935 ;CLEAR LAST ENTRY AND ; 7936 .IF/ITS U 2303, 1400,4221,0003,4174,4007,0700,0000,0000,0000 ; 7937 [AR]_0, J/DONE ;Clear last entry. ; 7938 .IFNOT/ITS ; 7939 ZAPPTA: WORK[PTA.U]_0 ; FORGET PAGE TABLE ADDRESS ; 7940 WORK[PTA.E]_0, ;FORGET PAGE TABLE ADDRESS ; 7941 J/DONE ;ALL DONE ; 7942 .ENDIF/ITS ; 7943 ; 7944 SSWEEP: SC_S#, S#/375, ;NUMBER OF STEPS U 3505, 0001,4443,0000,4174,4004,1700,2000,0071,0375 ; 7945 RETURN [1] ;RETURN ; 7946 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 182 ; DSK: KSHACK; INOUT 50 20:00:51 16-JAN-87 IO -- INTERNAL DEVICES -- SUBROUTINES ; 7947 ; 7948 ;WE COME HERE EITHER FROM NEXT INSTRUCTION DISPATCH OR PAGE FAIL ; 7949 ; LOGIC. IN ALL CASES, THE CURRENT INSTRUCTION IS CORRECTLY SETUP ; 7950 ; TO RESTART PROPERLY. ; 7951 ; 7952 ;FIRST SET THE CORRECT PI IN PROGRESS BIT ; 7953 ; [FLG]_[FLG].OR.#,FLG.PI/1, HOLD RIGHT, ; 7954 ; J/PI ;SET PI CYCLE AND PROCESS PI ; 7955 =1000 ; 7956 PI: AD/D, DBUS/PI NEW, ;LOOK AT NEW LEVEL ; 7957 DISP/DP LEFT, 3T, ;DISPATCH ON IT U 2330, 2330,3773,0000,4074,4003,1701,0000,0000,0000 ; 7958 J/PI ;GO TO 1 OF NEXT 7 PLACES U 2331, 3506,3551,1414,4370,4007,0700,0000,0004,0000 ; 7959 =1001 [PI]_[PI].OR.#, #/040000, HOLD LEFT, J/PIP1 U 2332, 3507,3551,1414,4370,4007,0700,0000,0002,0000 ; 7960 =1010 [PI]_[PI].OR.#, #/020000, HOLD LEFT, J/PIP2 U 2333, 3510,3551,1414,4370,4007,0700,0000,0001,0000 ; 7961 =1011 [PI]_[PI].OR.#, #/010000, HOLD LEFT, J/PIP3 U 2334, 3511,3551,1414,4370,4007,0700,0000,0000,4000 ; 7962 =1100 [PI]_[PI].OR.#, #/004000, HOLD LEFT, J/PIP4 U 2335, 3512,3551,1414,4370,4007,0700,0000,0000,2000 ; 7963 =1101 [PI]_[PI].OR.#, #/002000, HOLD LEFT, J/PIP5 U 2336, 3513,3551,1414,4370,4007,0700,0000,0000,1000 ; 7964 =1110 [PI]_[PI].OR.#, #/001000, HOLD LEFT, J/PIP6 U 2337, 3514,3551,1414,4370,4007,0700,0000,0000,0400 ; 7965 =1111 [PI]_[PI].OR.#, #/000400, HOLD LEFT, J/PIP7 U 3506, 3515,4751,1206,4374,4007,0700,0000,0000,0001 ; 7966 PIP1: [BRX]_0 XWD [1], J/PI10 ;REMEMBER WE ARE AT LEVEL 1 U 3507, 3515,4751,1206,4374,4007,0700,0000,0000,0002 ; 7967 PIP2: [BRX]_0 XWD [2], J/PI10 ;REMEMBER WE ARE AT LEVEL 2 U 3510, 3515,4751,1206,4374,4007,0700,0000,0000,0003 ; 7968 PIP3: [BRX]_0 XWD [3], J/PI10 ;REMEMBER WE ARE AT LEVEL 3 U 3511, 3515,4751,1206,4374,4007,0700,0000,0000,0004 ; 7969 PIP4: [BRX]_0 XWD [4], J/PI10 ;REMEMBER WE ARE AT LEVEL 4 U 3512, 3515,4751,1206,4374,4007,0700,0000,0000,0005 ; 7970 PIP5: [BRX]_0 XWD [5], J/PI10 ;REMEMBER WE ARE AT LEVEL 5 U 3513, 3515,4751,1206,4374,4007,0700,0000,0000,0006 ; 7971 PIP6: [BRX]_0 XWD [6], J/PI10 ;REMEMBER WE ARE AT LEVEL 6 U 3514, 3515,4751,1206,4374,4007,0700,0000,0000,0007 ; 7972 PIP7: [BRX]_0 XWD [7], J/PI10 ;REMEMBER WE ARE AT LEVEL 7 ; 7973 ; 7974 PI10: [AR]_[PI].AND.# CLR LH, ;TURN OFF PI SYSTEM U 3515, 3516,4251,1403,4374,4007,0700,0000,0007,7577 ; 7975 #/077577 ; TILL WE ARE DONE U 3516, 3517,7443,0300,4174,4437,0700,0000,0000,0000 ; 7976 .NOT.[AR], LOAD PI ; .. U 3517, 2304,4223,0000,4364,4277,0700,0200,0000,0010 ; 7977 ABORT MEM CYCLE ;NO MORE TRAPS ; 7978 =0 [AR]_VMA IO READ, ;SETUP TO READ WRU BITS ; 7979 WRU CYCLE/1, ; .. U 2304, 3553,4571,1203,4374,4007,0700,0010,0024,1300 ; 7980 CALL [STRTIO] ;START THE CYCLE ; 7981 MEM READ, ;WAIT FOR DATA ; 7982 [AR]_IO DATA, 3T, ;PUT DATA IN AR U 2305, 2306,3771,0003,4364,4007,0331,0200,0000,0002 ; 7983 SKIP ADR.EQ.0 ;SEE IF ANYONE THERE U 2306, 3530,4221,0004,4174,4007,0700,0000,0000,0000 ; 7984 =0 [ARX]_0, J/VECINT ;YES--VECTORED INTERRUPT U 2307, 3520,3445,0603,4174,4007,0700,0000,0000,0000 ; 7985 [AR]_[BRX]*2 ;N*2 ; 7986 [AR]_[AR]+#, #/40, 3T, ;2*N+40 U 3520, 3521,0551,0303,4370,4007,0701,0000,0000,0040 ; 7987 HOLD LEFT ; .. ; 7988 [AR]_[AR]+[EBR], ;ABSOULTE ADDRESS OF U 3521, 3522,0111,1003,4174,4007,0700,0000,0000,0000 ; 7989 J/PI40 ; INTERRUPT INSTRUCTION ; 7990 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 183 ; DSK: KSHACK; INOUT 50 20:00:51 16-JAN-87 IO -- INTERNAL DEVICES -- SUBROUTINES ; 7991 ; 7992 ;HERE WITH ABSOLUTE ADDRESS OF INTERRUPT INSTRUCTION IN [AR] U 3522, 3523,3443,0300,4174,4007,0700,0200,0024,1016 ; 7993 PI40: VMA_[AR], VMA PHYSICAL READ ;FETCH THE INSTRUCTION ; 7994 PI50: MEM READ, [AR]_MEM, LOAD VMA, ;FETCH INSTRUCTION U 3523, 3524,3771,0003,4365,5007,0701,0200,0020,0012 ; 7995 3T, FORCE EXEC ;E IS EXEC MODE U 3524, 2312,6553,0300,4374,4007,0321,0000,0025,4340 ; 7996 [AR].XOR.#, #/254340, 3T, SKIP ADL.EQ.0 U 2312, 2320,6553,0300,4374,4007,0321,0000,0026,4000 ; 7997 =0 [AR].XOR.#, #/264000, SKIP ADL.EQ.0, 3T, J/PIJSR U 2313, 3525,4521,1205,4074,4007,0700,0000,0000,0000 ; 7998 [BR]_FLAGS ;SAVE FLAGS ; 7999 AD/ZERO, LOAD FLAGS, U 3525, 0230,4223,0000,4174,4467,0700,0000,0000,0004 ; 8000 J/PIXPCW ;ENTER EXEC MODE AND ASSUME ; 8001 ; WE HAVE AN XPCW ; 8002 ;IF WE HALT HERE ON A VECTORED INTERRUPT, WE HAVE ; 8003 ; T0/ WHAT WE READ FROM BUS AS VECTOR ; 8004 ; ARX/ EPT+100+DEVICE ; 8005 ; BR/ ADDRESS OF ILLEGAL INSTRUCTION ; 8006 ; BRX/ VECTOR (MASKED AND SHIFTED) ; 8007 .IFNOT/1PROC ; 8008 =0 ; 8009 PIJSR: HALT [ILLII] ;NOT A JSR OR XPCW ; 8010 START WRITE, FORCE EXEC ;PREPARE TO STORE OLD PC ; 8011 =0*0 [BR]_PC WITH FLAGS, ;OLD PC ; 8012 CALL [STOBR] ;STORE OLD PC ; 8013 =1*0 [AR]_#, #/0, HOLD RIGHT, ;PREPARE TO CLEAR FLAGS ; 8014 CALL [INCAR] ;BUMP POINTER ; 8015 =1*1 [PC]_[AR], LOAD FLAGS, ;NEW PC ; 8016 J/PISET ;CLEAR PI CYCLE & START ; 8017 ; INTERRUPT PROGRAM ; 8018 = ; 8019 .IF/1PROC ; 8020 =0*0 U 2320, 2404,4751,1217,4374,4007,0700,0000,0000,0101 ; 8021 PIJSR: HALT [ILLII] ;NOT A JSR OR XPCW ; 8022 =0*1 START WRITE, FORCE EXEC, ;STORE OLD PC U 2321, 3661,4443,0000,4174,4007,0700,0210,0023,0002 ; 8023 CALL [STORE-INT-PC] U 2325, 3526,3771,0003,4374,0007,0700,0000,0000,0000 ; 8024 =1*1 [AR]_#, #/0, HOLD RIGHT ;PREPARE TO CLEAR FLAGS U 3526, 3527,0111,0703,4170,4007,0700,0000,0000,0000 ; 8025 [AR]_[AR]+1, HOLD LEFT ;BUMP POINTER ; 8026 [PC]_[AR], LOAD FLAGS, ;NEW PC U 3527, 2561,3441,0301,4174,4467,0700,0000,0000,0004 ; 8027 J/PISET ;CLEAR PI CYCLE & START ; 8028 ; INTERRUPT PROGRAM ; 8029 .ENDIF/1PROC ; 8030 ; 8031 ;HERE TO PROCESS A VECTORED INTERRUPT. AT THIS POINT: ; 8032 ; AR/ WRU BITS (BIT 18 FOR DEVICE 0) ; 8033 ; ARX/ 0 ; 8034 VECINT: [AR]_[AR]*2, ;SHIFT LEFT (UNSHIFTED ON DP) U 3530, 2314,3445,0303,4174,4007,0530,0000,0000,0000 ; 8035 SKIP DP18 ;ANYONE THERE? ; 8036 =0 [ARX]_[ARX]+[XWD1], ;NO--BUMP BOTH HALVES U 2314, 3530,0111,1504,4174,4007,0700,0000,0000,0000 ; 8037 J/VECINT ;KEEP LOOKING ; 8038 [AR]_VMA IO READ, ;SETUP FOR VECTOR CYCLE U 2315, 2316,4571,1203,4374,4007,0700,0000,0024,1240 ; 8039 VECTOR CYCLE/1 ; .. ; 8040 =0 [AR]_[AR].OR.[ARX], ;PUT IN UNIT NUMBER U 2316, 3553,3111,0403,4174,4007,0700,0010,0000,0000 ; 8041 CALL [STRTIO] ;START CYCLE ; 8042 MEM READ, ;WAIT FOR VECTOR (SEE DPM5) U 2317, 2322,3771,0016,4364,4007,0700,0200,0000,0002 ; 8043 [T0]_IO DATA ;GET VECTOR ; 8044 =0 [BR]_[EBR]+#, 3T, #/100, ;EPT+100 U 2322, 3550,0551,1005,4374,4007,0701,0010,0000,0100 ; 8045 CALL [CLARXL] ;CLEAR ARX LEFT ; 8046 [ARX]_[ARX]+[BR], ;EPT+100+DEVICE U 2323, 3531,0111,0504,4174,4007,0700,0200,0024,1016 ; 8047 VMA PHYSICAL READ ;FETCH WORD ; 8048 MEM READ, [BR]_MEM, 3T, ;GET POINTER U 3531, 2326,3771,0005,4365,5007,0331,0200,0000,0002 ; 8049 SKIP ADR.EQ.0 ;SEE IF NON-ZERO ; 8050 =0 [BRX]_([T0].AND.#)*.5, 3T, ;OK--MAKE VECTOR MOD 400 U 2326, 3532,4557,1606,4374,4007,0701,0000,0000,0774 ; 8051 #/774, J/VECIN1 ; AND SHIFT OVER U 2327, 2404,4751,1217,4374,4007,0700,0000,0000,0102 ; 8052 HALT [ILLINT] U 3532, 3533,3447,0606,4174,4007,0700,0000,0000,0000 ; 8053 VECIN1: [BRX]_[BRX]*.5 ;SHIFT 1 MORE PLACE ; 8054 [BR]_[BR]+[BRX], ;ADDRESS OF WORD TO USE ; 8055 LOAD VMA, FORCE EXEC, ;FORCE EXEC VIRTUAL ADDRESS U 3533, 3523,0111,0605,4174,4007,0700,0200,0024,0012 ; 8056 START READ, J/PI50 ;GO GET INSTRUCTION ; 8057 ; 8058 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 184 ; DSK: KSHACK; INOUT 50 20:00:51 16-JAN-87 PRIORITY INTERRUPTS -- DISMISS SUBROUTINE ; 8059 .TOC "PRIORITY INTERRUPTS -- DISMISS SUBROUTINE" ; 8060 ; 8061 ;SUBROUTINE TO DISMISS THE HIGHEST PI IN PROGRESS ; 8062 ;RETURNS 4 ALWAYS ; 8063 ; 8064 ;DISMISS: ; 8065 ; TR [PI], #/077400 ;ANY PI IN PROGRESS? ; 8066 =0 U 2340, 3534,3771,0005,4374,4007,0700,0000,0004,0000 ; 8067 JEN1: [BR]_#, PI.IP1/1, J/DSMS1 ;YES--START LOOP U 2341, 0004,4443,0000,4174,4004,1700,0000,0000,0000 ; 8068 RETURN [4] ;NO--JUST RETURN ; 8069 U 3534, 2342,4113,0514,4174,4007,0330,0000,0000,0000 ; 8070 DSMS1: [PI].AND.[BR], SKIP ADR.EQ.0 U 2342, 0004,5111,0514,4170,4004,1700,0000,0000,0000 ; 8071 =0 [PI]_[PI].AND.NOT.[BR], HOLD LEFT, RETURN [4] U 2343, 3534,3447,0505,4174,4007,0700,0000,0000,0000 ; 8072 [BR]_[BR]*.5, J/DSMS1 ; 8073 ; 8074 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 185 ; DSK: KSHACK; INOUT 50 20:00:51 16-JAN-87 ITS IO INSTRUCTIONS ; 8075 .TOC "ITS IO INSTRUCTIONS" ; 8076 ; 8077 .IF/ITSIO ; 8078 ; 8079 .DCODE D 0710, 1210,1614,0100 ; 8080 710: IOT, B/10, J/IORDI ; IORDI D 0711, 1214,1614,0100 ; 8081 711: IOT, B/14, J/IORDI ; IORDQ D 0712, 1210,1460,0100 ; 8082 712: IOT, B/10, J/IORD ; IORD D 0713, 1210,1461,0100 ; 8083 713: IOT, B/10, J/IOWR ; IOWR D 0714, 1210,1644,0100 ; 8084 714: IOT, B/10, J/IOWRI ; IOWRI D 0715, 1214,1644,0100 ; 8085 715: IOT, B/14, J/IOWRI ; IOWRQ ; 8086 D 0720, 1200,1614,0100 ; 8087 720: IOT, B/0, J/IORDI ; IORDBI D 0721, 1204,1614,0100 ; 8088 721: IOT, B/4, J/IORDI ; IORDBQ D 0722, 1200,1460,0100 ; 8089 722: IOT, B/0, J/IORD ; IORDB D 0723, 1200,1461,0100 ; 8090 723: IOT, B/0, J/IOWR ; IOWRB D 0724, 1200,1644,0100 ; 8091 724: IOT, B/0, J/IOWRI ; IOWRBI D 0725, 1204,1644,0100 ; 8092 725: IOT, B/4, J/IOWRI ; IOWRBQ ; 8093 .UCODE ; 8094 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 186 ; DSK: KSHACK; INOUT 50 20:00:51 16-JAN-87 ITS IO INSTRUCTIONS ; 8095 ; 8096 1460: ; 8097 IORD: CLR IO BUSY, U 1460, 3535,3443,0300,4174,4137,0700,0200,0004,0012 ; 8098 VMA_[AR], START READ ; 8099 MEM READ, [AR]_MEM, U 3535, 3536,3771,0003,4365,5007,0700,0200,0000,0002 ; 8100 J/IORD0 ; 8101 ; 8102 1614: ; 8103 IORDI: CLR IO BUSY, U 1614, 2130,4443,0000,4174,4133,7700,0000,0000,0000 ; 8104 B DISP ; Which bus? ; 8105 =10** [AR]_#, #/3, HOLD RIGHT, ; Unibus I U 2130, 3536,3771,0003,4374,0007,0700,0000,0000,0003 ; 8106 J/IORD0 ; 8107 [AR]_#, #/1, HOLD RIGHT, ; Unibus Q U 2134, 3536,3771,0003,4374,0007,0700,0000,0000,0001 ; 8108 J/IORD0 ; 8109 ; 8110 IORD0: CLR IO LATCH, U 3536, 0244,4443,0000,4174,4123,7700,0000,0000,0000 ; 8111 B DISP ; Which mode? ; 8112 =01** [ARX]_VMA IO READ, ; Byte mode ; 8113 IO BYTE/1, U 0244, 2344,4571,1204,4374,4007,0700,0000,0024,1220 ; 8114 J/IORD1 U 0254, 2344,4571,1204,4374,4007,0700,0000,0024,1200 ; 8115 [ARX]_VMA IO READ ; Word mode ; 8116 =0 ; 8117 IORD1: VMA_[AR].OR.[ARX] WITH FLAGS, ; Set up VMA U 2344, 3542,3113,0304,4174,4007,0701,0210,0000,0036 ; 8118 CALL [IOWAIT] ; and wait for it ; 8119 MEM READ, [BR]_IO DATA, ; Get data U 2345, 0566,3771,0005,4364,4003,7700,0200,0000,0002 ; 8120 B DISP ; Which mode? U 0566, 2346,4553,0300,4374,4007,0331,0000,0000,0001 ; 8121 =01** TR [AR], #/1, J/IORD2 ; Byte mode: which half? U 0576, 1400,3440,0505,0174,4007,0700,0400,0000,0000 ; 8122 IORDEX: AC_[BR], J/DONE ; Word mode: return it ; 8123 ; 8124 =0 U 2346, 2350,3447,0505,4174,4007,0700,2000,0071,0005 ; 8125 IORD2: [BR]_[BR]*.5, SC_5, J/IORD3 ; Odd byte: go shift it U 2347, 0576,4551,0505,4374,4007,0700,0000,0000,0377 ; 8126 [BR]_[BR].AND.#, #/377, J/IORDEX ; Even byte: return it ; 8127 ; 8128 =0 U 2350, 2350,3447,0505,4174,4007,0630,2000,0060,0000 ; 8129 IORD3: [BR]_[BR]*.5, STEP SC, J/IORD3 ; Shift it U 2351, 0576,4551,0505,4374,4007,0700,0000,0000,0377 ; 8130 [BR]_[BR].AND.#, #/377, J/IORDEX ; And return it ; 8131 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 187 ; DSK: KSHACK; INOUT 50 20:00:51 16-JAN-87 ITS IO INSTRUCTIONS ; 8132 ; 8133 1461: ; 8134 IOWR: CLR IO BUSY, U 1461, 3537,3443,0300,4174,4137,0700,0200,0004,0012 ; 8135 VMA_[AR], START READ ; 8136 MEM READ, [AR]_MEM, U 3537, 3540,3771,0003,4365,5007,0700,0200,0000,0002 ; 8137 J/IOWR0 ; 8138 ; 8139 1644: ; 8140 IOWRI: CLR IO BUSY, U 1644, 2132,4443,0000,4174,4133,7700,0000,0000,0000 ; 8141 B DISP ; Which bus? ; 8142 =10** [AR]_#, #/3, HOLD RIGHT, ; Unibus I U 2132, 3540,3771,0003,4374,0007,0700,0000,0000,0003 ; 8143 J/IOWR0 ; 8144 [AR]_#, #/1, HOLD RIGHT, ; Unibus Q U 2136, 3540,3771,0003,4374,0007,0700,0000,0000,0001 ; 8145 J/IOWR0 ; 8146 ; 8147 IOWR0: [BR]_AC, ; Data to write ; 8148 CLR IO LATCH, U 3540, 1366,3771,0005,0276,6123,7700,0000,0000,0000 ; 8149 B DISP ; Which mode? U 1366, 2354,4553,0300,4374,4007,0331,0000,0000,0001 ; 8150 =01** TR [AR], #/1, J/IOWR2 ; Byte mode: which half? U 1376, 3541,4571,1204,4374,4007,0700,0000,0021,1200 ; 8151 [ARX]_VMA IO WRITE ; Word mode U 3541, 2352,3113,0304,4174,4007,0701,0200,0000,0036 ; 8152 IOWR1: VMA_[AR].OR.[ARX] WITH FLAGS ; Set up VMA ; 8153 =0 MEM WRITE, MEM_[BR], ; Put data U 2352, 3542,3333,0005,4175,5007,0701,0210,0000,0002 ; 8154 CALL [IOWAIT] ; and wait for it U 2353, 0070,3443,0100,4174,4156,4700,0200,0014,0012 ; 8155 DONE ; thats it ; 8156 ; 8157 =0 U 2354, 2356,3445,0505,4174,4007,0700,2000,0071,0005 ; 8158 IOWR2: [BR]_[BR]*2, SC_5, J/IOWR3 ; Odd byte: go shift it U 2355, 3541,4571,1204,4374,4007,0700,0000,0021,1220 ; 8159 [ARX]_VMA IO WRITE, IO BYTE/1, J/IOWR1 ; Even byte: all set ; 8160 ; 8161 =0 U 2356, 2356,3445,0505,4174,4007,0630,2000,0060,0000 ; 8162 IOWR3: [BR]_[BR]*2, STEP SC, J/IOWR3 ; Shift it U 2357, 3541,4571,1204,4374,4007,0700,0000,0021,1220 ; 8163 [ARX]_VMA IO WRITE, IO BYTE/1, J/IOWR1 ; All set ; 8164 ; 8165 .ENDIF/ITSIO ; 8166 ; 8167 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 188 ; DSK: KSHACK; INOUT 50 20:00:51 16-JAN-87 EXTERNAL IO INSTRUCTIONS ; 8168 .TOC "EXTERNAL IO INSTRUCTIONS" ; 8169 ; 8170 .IFNOT/ITSIO ; 8171 ; 8172 .DCODE ; 8173 710: IOT, WORD-TNE, J/TIOX ; 8174 711: IOT, WORD-TNN, J/TIOX ; 8175 720: IOT, TNE, J/TIOX ; 8176 721: IOT, TNN, J/TIOX ; 8177 .UCODE ; 8178 ; 8179 1614: ; 8180 TIOX: CALL [IORD] ; 8181 1617: [BR]_[AR].AND.AC, TEST DISP ; 8182 ; 8183 .DCODE ; 8184 712: IOT, B/10, J/RDIO ; 8185 713: IOT, B/10, J/WRIO ; 8186 722: IOT, B/0, J/RDIO ; 8187 723: IOT, B/0, J/WRIO ; 8188 .UCODE ; 8189 ; 8190 1460: ; 8191 RDIO: CALL [IORD] ; 8192 1463: AC_[AR], J/DONE ; 8193 ; 8194 1461: ; 8195 WRIO: [BR]_AC, J/IOWR ; 8196 ; 8197 .DCODE ; 8198 714: IOT, B/10, J/BIXUB ; 8199 715: IOT, B/14, J/BIXUB ; 8200 724: IOT, B/0, J/BIXUB ; 8201 725: IOT, B/4, J/BIXUB ; 8202 .UCODE ; 8203 ; 8204 1644: ; 8205 BIXUB: [BRX]_[AR], ;SAVE EFFECTIVE ADDRESS ; 8206 CALL [IORD] ;GO GET THE DATA ; 8207 1647: [BR]_[AR], ;COPY DATA ITEM ; 8208 B DISP ;SEE IF SET OR CLEAR ; 8209 =1011 [BR]_[BR].OR.AC, ;SET BITS ; 8210 J/BIXUB1 ;GO DO WRITE ; 8211 [BR]_[BR].AND.NOT.AC, ;CLEAR BITS ; 8212 J/BIXUB1 ;GO DO WRITE ; 8213 ; 8214 BIXUB1: [AR]_[BRX], ;RESTORE ADDRESS ; 8215 J/IOWR ; 8216 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 189 ; DSK: KSHACK; INOUT 50 20:00:51 16-JAN-87 EXTERNAL IO INSTRUCTIONS ; 8217 ; 8218 ;SUBROUTINE TO READ FROM AN IO DEVICE ; 8219 ;CALL WITH: ; 8220 ; SECTION 0 EFFECTIVE ADDRESS IN AR ; 8221 ; INSTRUCTION IN HR ; 8222 ;RETURN 3 WITH WORD OR BYTE IN AR ; 8223 ; ; 8224 =0 ; 8225 IORD: CLR IO BUSY, ;CLEAR BUSY ; 8226 CALL [IOEA] ;COMPUTE IO EA ; 8227 B DISP ; 8228 =10111 [BR]_VMA IO READ, ;BYTE MODE ; 8229 IO BYTE/1, ;SET BYTE FLAG ; 8230 J/IORD1 ;GO DO C/A CYCLE ; 8231 =11111 [BR]_VMA IO READ ;WORD MODE ; 8232 = ; 8233 =0 ; 8234 IORD1: VMA_[AR].OR.[BR] WITH FLAGS, ; 8235 CALL [IOWAIT] ;WAIT FOR THINGS COMPLETE ; 8236 MEM READ, ;MAKE SURE REALLY READY ; 8237 [BR]_IO DATA, ;PUT DATA IN BR ; 8238 B DISP ;SEE IF BYTE MODE ; 8239 =0111 TR [AR], #/1, J/IORD2 ;BYTE MODE SEE IF ODD ; 8240 [AR]_[BR], RETURN [3] ;ALL DONE ; 8241 ; 8242 ;HERE ON WORD MODE ; 8243 =0 ; 8244 IORD2: [BR]_[BR]*.5, SC_5, ;LEFT BYTE ; 8245 J/IORD3 ;GO SHIFT IT ; 8246 [AR]_[BR].AND.#, ;MASK IT ; 8247 #/377, RETURN [3] ;ALL DONE ; 8248 ; 8249 =0 ; 8250 IORD3: [BR]_[BR]*.5, ;SHIFT OVER ; 8251 STEP SC, J/IORD3 ; .. ; 8252 [AR]_[BR].AND.#, ;MASK IT ; 8253 #/377, RETURN [3] ;ALL DONE ; 8254 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 190 ; DSK: KSHACK; INOUT 50 20:00:51 16-JAN-87 EXTERNAL IO INSTRUCTIONS ; 8255 ; 8256 ;ROUTINE TO WRITE TO AN IO DEVICE ; 8257 ;CALL WITH: ; 8258 ; SECTION 0 EFFECTIVE ADDRESS IN AR ; 8259 ; INSTRUCTION IN HR ; 8260 ; WORD OR BYTE IN BR ; 8261 ;RETURNS BACK TO USER ; 8262 ; ; 8263 =0 ; 8264 IOWR: CLR IO BUSY, ;CLEAR BUSY ; 8265 CALL [IOEA] ;COMPUTE IO EA ; 8266 B DISP ; 8267 =10111 TR [AR], #/1, J/IOWR2 ;BYTE MODE ; 8268 =11111 [ARX]_VMA IO WRITE ;SETUP FLAGS ; 8269 = ; 8270 IOWR1: VMA_[AR].OR.[ARX] WITH FLAGS ; 8271 =0 MEM WRITE, MEM_[BR], ;SEND DATA ; 8272 CALL [IOWAIT] ;WAIT FOR DATA ; 8273 DONE ;RETURN ; 8274 ; 8275 ;HERE FOR BYTE MODE ; 8276 =0 ; 8277 IOWR2: [BR]_[BR]*2, SC_5, ;ODD--MOVE LEFT ; 8278 J/IOWR3 ; .. ; 8279 [ARX]_VMA IO WRITE, ;SETUP FLAGS ; 8280 IO BYTE/1, J/IOWR1 ; .. ; 8281 ; 8282 =0 ; 8283 IOWR3: [BR]_[BR]*2, STEP SC, ;SHIFT LEFT ; 8284 J/IOWR3 ;KEEP SHIFTING ; 8285 [ARX]_VMA IO WRITE, ;SETUP FLAGS ; 8286 IO BYTE/1, J/IOWR1 ; .. ; 8287 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 191 ; DSK: KSHACK; INOUT 50 20:00:51 16-JAN-87 EXTERNAL IO INSTRUCTIONS ; 8288 ; 8289 ;HERE TO COMPUTE IO EFFECTIVE ADDRESS ; 8290 ;CALL WITH: ; 8291 ; SECTION 0 EFFECTIVE ADDRESS IN AR ; 8292 ; INSTRUCTION IN HR ; 8293 ;RETURN 1 WITH EA IN AR ; 8294 ; ; 8295 =0 ; 8296 IOEA: VMA_[PC]-1, ;GET INSTRUCTION ; 8297 START READ, ; .. ; 8298 CALL [LOADAR] ;PUT WORD IN AR ; 8299 [BRX]_.NOT.[AR] ;SEE IF IN RANGE 700-777 ; 8300 TL [BRX], #/700000 ; .. ; 8301 =0 ; 8302 IOEA1: TL [HR], #/20, J/IOEA2 ;INDIRECT? ; 8303 WORK[YSAVE]_[AR] CLR LH, ;DIRECT IO INSTRUCTION ; 8304 J/IOEA1 ;SAVE Y FOR EA CALCULATION ; 8305 =0 ; 8306 IOEA2: [AR]_WORK[YSAVE], ;@--GET SAVED Y ; 8307 J/IOEAI ;GET Y AND GO ; 8308 EA MODE DISP ;WAS THERE INDEXING? ; 8309 =1101 [ARX]_XR, SKIP ADL.LE.0, ;SEE IF LOCAL OR GLOBAL INDEXING ; 8310 2T, J/IOEAX ; .. ; 8311 [AR]_WORK[YSAVE], ;JUST PLAIN IO ; 8312 CLR IO LATCH, RETURN [1] ; 8313 ; 8314 IOEAI: READ [HR], DBUS/DP, ;LOAD XR FLOPS IN CASE ; 8315 LOAD INST EA ; THERE IS INDEXING ; 8316 TL [HR], #/17 ;WAS THERE ALSO INDEXING ; 8317 =0 [AR]_[AR]+XR, 3T, HOLD LEFT ;YES--ADD IN INDEX VALUE ; 8318 VMA_[AR], START READ ;FETCH DATA WORD ; 8319 MEM READ, [AR]_MEM, ;GO GET DATA WORD ; 8320 CLR IO LATCH, RETURN [1] ; 8321 ; 8322 =0 ; 8323 IOEAX: [AR]_[ARX]+WORK[YSAVE], ;GLOBAL INDEXING ; 8324 CLR IO LATCH, RETURN [1] ; 8325 [AR]_[ARX]+WORK[YSAVE] ;LOCAL INDEXING ; 8326 [AR]_0, HOLD RIGHT, ; 8327 CLR IO LATCH, RETURN [1] ; 8328 ; 8329 .ENDIF/ITSIO ; 8330 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 192 ; DSK: KSHACK; INOUT 50 20:00:51 16-JAN-87 EXTERNAL IO INSTRUCTIONS ; 8331 ; 8332 ;WAIT FOR IO TO COMPLETE ; 8333 ;RETURNS 1 OR PAGE FAILS ; 8334 ; ; 8335 IOWAIT: SC_S#, S#/200, ;DELAY ; 8336 [T0]_VMA, ;GET VMA U 3542, 2360,3771,0016,4354,4007,0650,2000,0071,0200 ; 8337 SKIP/-IO BUSY ;SEE IF BUSY YET ; 8338 =00 ; 8339 IOW1: CLR IO LATCH, ;WENT BUSY ; 8340 WORK[SV.VMA]_[T0], ;MAKE SURE SV.VMA IS SETUP U 2360, 3543,3333,0016,7174,4127,0700,0400,0000,0210 ; 8341 J/IOW2 ;WAIT FOR IT TO CLEAR ; 8342 SC_SC-1, SCAD DISP, 5T, ;SEE IF DONE YET ; 8343 SKIP/-IO BUSY, ; .. U 2361, 2360,4443,0000,4174,4006,7653,2000,0060,0000 ; 8344 J/IOW1 ;BACK TO LOOP ; 8345 CLR IO LATCH, ;WENT BUSY AND TIMEOUT ; 8346 WORK[SV.VMA]_[T0], ;MAKE SURE SV.VMA IS SETUP U 2362, 3543,3333,0016,7174,4127,0700,0400,0000,0210 ; 8347 J/IOW2 ; .. ; 8348 WORK[SV.VMA]_[T0], ;MAKE SURE SV.VMA IS SETUP U 2363, 2367,3333,0016,7174,4007,0700,0400,0000,0210 ; 8349 J/IOW5 ;GO TRAP ; 8350 ; 8351 IOW2: SC_S#, S#/777, ;GO TIME IO U 3543, 2364,4443,0000,4174,4007,0650,2000,0071,0777 ; 8352 SKIP/-IO BUSY ; .. ; 8353 =0 ; 8354 IOW3: CLR IO LATCH, ;TRY TO CLEAR LATCH U 2364, 2366,4443,0000,4174,4127,0630,2000,0060,0000 ; 8355 STEP SC, J/IOW4 ;STILL BUSY U 2365, 0001,4443,0000,4174,4004,1700,0000,0000,0000 ; 8356 RETURN [1] ;IDLE ; 8357 ; 8358 =0 ; 8359 IOW4: CLR IO LATCH, 5T, ;TRY TO CLEAR LATCH ; 8360 SKIP/-IO BUSY, ;SEE IF STILL BUSY U 2366, 2364,4443,0000,4174,4127,0653,0000,0000,0000 ; 8361 J/IOW3 ; .. U 2367, 3610,4571,1206,4374,4007,0700,0000,0020,0000 ; 8362 IOW5: [BRX]_[200000] XWD 0, J/HARD ; 8363 ; 8364 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 193 ; DSK: KSHACK; INOUT 50 20:00:51 16-JAN-87 SMALL SUBROUTINES ; 8365 .TOC "SMALL SUBROUTINES" ; 8366 ; 8367 ;HERE ARE A COLLECTION ON 1-LINE SUBROUTINES ; 8368 LOADAR: MEM READ, [AR]_MEM, ;FROM MEMORY TO AR U 3544, 0001,3771,0003,4365,5004,1700,0200,0000,0002 ; 8369 RETURN [1] ;RETURN TO CALLER ; 8370 U 3545, 0001,3771,0004,4365,5004,1700,0200,0000,0002 ; 8371 LOADARX: MEM READ, [ARX]_MEM, RETURN [1] ; 8372 U 3546, 0001,3772,0000,4365,5004,1700,0200,0000,0002 ; 8373 LOADQ: MEM READ, Q_MEM, RETURN [1] ; 8374 U 3547, 0001,4223,0000,4364,4274,1700,0200,0000,0010 ; 8375 ABORT: ABORT MEM CYCLE, RETURN [1] ; 8376 U 3550, 0001,4221,0004,4174,0004,1700,0000,0000,0000 ; 8377 CLARXL: [ARX]_0, HOLD RIGHT, RETURN [1] ; 8378 U 3551, 0001,0111,0703,4174,4004,1700,0000,0000,0000 ; 8379 INCAR: [AR]_[AR]+1, RETURN [1] ; 8380 U 3552, 0001,3445,0505,4174,4004,1700,0000,0000,0000 ; 8381 SBRL: [BR]_[BR]*2, RETURN [1] ; 8382 U 3553, 0001,3443,0300,4174,4004,1701,0200,0000,0036 ; 8383 STRTIO: VMA_[AR] WITH FLAGS, RETURN [1] ; 8384 U 3554, 0004,3333,0005,4175,5004,1701,0200,0000,0002 ; 8385 STOBR: MEM WRITE, MEM_[BR], RETURN [4] ; 8386 U 3555, 0001,3333,0001,4175,5004,1701,0200,0000,0002 ; 8387 STOPC: MEM WRITE, MEM_[PC], RETURN [1] ; 8388 U 3560, 0001,3440,0404,0174,4004,1700,0400,0000,0000 ; 8389 AC_ARX: AC_[ARX], RETURN [1] ; 8390 ; 8391 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 194 ; DSK: KSHACK; INOUT 50 20:00:51 16-JAN-87 UNDEFINED IO INSTRUCTIONS ; 8392 .TOC "UNDEFINED IO INSTRUCTIONS" ; 8393 ; 8394 .DCODE D 0703, 0003,1650,2100 ; 8395 703: I, B/3, J/IOT700 D 0706, 0006,1650,2100 ; 8396 706: I, B/6, J/IOT700 D 0707, 0007,1650,2100 ; 8397 I, B/7, J/IOT700 ; 8398 D 0716, 0006,1651,2100 ; 8399 716: I, B/6, J/IOT710 D 0717, 0007,1651,2100 ; 8400 I, B/7, J/IOT710 ; 8401 D 0726, 0006,1652,2100 ; 8402 726: I, B/6, J/IOT720 D 0727, 0007,1652,2100 ; 8403 I, B/7, J/IOT720 ; 8404 D 0730, 0000,1653,2100 ; 8405 730: I, B/0, J/IOT730 D 0731, 0001,1653,2100 ; 8406 I, B/1, J/IOT730 D 0732, 0002,1653,2100 ; 8407 I, B/2, J/IOT730 D 0733, 0003,1653,2100 ; 8408 I, B/3, J/IOT730 D 0734, 0004,1653,2100 ; 8409 I, B/4, J/IOT730 D 0735, 0005,1653,2100 ; 8410 I, B/5, J/IOT730 D 0736, 0006,1653,2100 ; 8411 I, B/6, J/IOT730 D 0737, 0007,1653,2100 ; 8412 I, B/7, J/IOT730 ; 8413 D 0740, 0000,1654,2100 ; 8414 740: I, B/0, J/IOT740 D 0741, 0001,1654,2100 ; 8415 I, B/1, J/IOT740 D 0742, 0002,1654,2100 ; 8416 I, B/2, J/IOT740 D 0743, 0003,1654,2100 ; 8417 I, B/3, J/IOT740 D 0744, 0004,1654,2100 ; 8418 I, B/4, J/IOT740 D 0745, 0005,1654,2100 ; 8419 I, B/5, J/IOT740 D 0746, 0006,1654,2100 ; 8420 I, B/6, J/IOT740 D 0747, 0007,1654,2100 ; 8421 I, B/7, J/IOT740 ; 8422 D 0750, 0000,1655,2100 ; 8423 750: I, B/0, J/IOT750 D 0751, 0001,1655,2100 ; 8424 I, B/1, J/IOT750 D 0752, 0002,1655,2100 ; 8425 I, B/2, J/IOT750 D 0753, 0003,1655,2100 ; 8426 I, B/3, J/IOT750 D 0754, 0004,1655,2100 ; 8427 I, B/4, J/IOT750 D 0755, 0005,1655,2100 ; 8428 I, B/5, J/IOT750 D 0756, 0006,1655,2100 ; 8429 I, B/6, J/IOT750 D 0757, 0007,1655,2100 ; 8430 I, B/7, J/IOT750 ; 8431 D 0760, 0000,1656,2100 ; 8432 760: I, B/0, J/IOT760 D 0761, 0001,1656,2100 ; 8433 I, B/1, J/IOT760 D 0762, 0002,1656,2100 ; 8434 I, B/2, J/IOT760 D 0763, 0003,1656,2100 ; 8435 I, B/3, J/IOT760 D 0764, 0004,1656,2100 ; 8436 I, B/4, J/IOT760 D 0765, 0005,1656,2100 ; 8437 I, B/5, J/IOT760 D 0766, 0006,1656,2100 ; 8438 I, B/6, J/IOT760 D 0767, 0007,1656,2100 ; 8439 I, B/7, J/IOT760 ; 8440 D 0770, 0000,1657,2100 ; 8441 770: I, B/0, J/IOT770 D 0771, 0001,1657,2100 ; 8442 I, B/1, J/IOT770 D 0772, 0002,1657,2100 ; 8443 I, B/2, J/IOT770 D 0773, 0003,1657,2100 ; 8444 I, B/3, J/IOT770 D 0774, 0004,1657,2100 ; 8445 I, B/4, J/IOT770 D 0775, 0005,1657,2100 ; 8446 I, B/5, J/IOT770 D 0776, 0006,1657,2100 ; 8447 I, B/6, J/IOT770 D 0777, 0007,1657,2100 ; 8448 I, B/7, J/IOT770 ; 8449 .UCODE ; 8450 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 195 ; DSK: KSHACK; INOUT 50 20:00:51 16-JAN-87 UNDEFINED IO INSTRUCTIONS ; 8451 ; 8452 1650: U 1650, 2605,4551,0202,4374,0007,0700,0000,0077,7740 ; 8453 IOT700: UUO ; 8454 1651: U 1651, 0624,4443,0000,4174,4007,0700,0000,0000,0000 ; 8455 IOT710: J/BLTX ;GO TO COMMON CODE FOR UBABLT INSTRS ; 8456 1652: U 1652, 2605,4551,0202,4374,0007,0700,0000,0077,7740 ; 8457 IOT720: UUO ; 8458 1653: U 1653, 2605,4551,0202,4374,0007,0700,0000,0077,7740 ; 8459 IOT730: UUO ; 8460 1654: U 1654, 2605,4551,0202,4374,0007,0700,0000,0077,7740 ; 8461 IOT740: UUO ; 8462 1655: U 1655, 2605,4551,0202,4374,0007,0700,0000,0077,7740 ; 8463 IOT750: UUO ; 8464 1656: U 1656, 2605,4551,0202,4374,0007,0700,0000,0077,7740 ; 8465 IOT760: UUO ; 8466 1657: U 1657, 2605,4551,0202,4374,0007,0700,0000,0077,7740 ; 8467 IOT770: UUO ; 8468 ; 8469 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 196 ; DSK: KSHACK; INOUT 50 20:00:51 16-JAN-87 UMOVE AND UMOVEM ; 8470 .TOC "UMOVE AND UMOVEM" ; 8471 ; 8472 .DCODE D 0704, 1200,1754,0100 ; 8473 704: IOT, J/UMOVE D 0705, 1200,1755,0100 ; 8474 IOT, J/UMOVEM ; 8475 .UCODE ; 8476 ; 8477 1754: ; 8478 UMOVE: VMA_[AR], ;LOAD VMA ; 8479 START READ, ;START MEMORY U 1754, 3561,3443,0300,4174,4207,0700,0200,0004,0012 ; 8480 SPEC/PREV ;FORCE PREVIOUS ; 8481 MEM READ, ;WAIT FOR MEMORY ; 8482 [AR]_MEM, ;PUT DATA IN AR U 3561, 1515,3771,0003,4365,5007,0700,0200,0000,0002 ; 8483 J/STAC ;GO PUT AR IN AC ; 8484 ; 8485 1755: ; 8486 UMOVEM: VMA_[AR], ;LOAD VMA ; 8487 START WRITE, ;START MEMORY U 1755, 3562,3443,0300,4174,4207,0700,0200,0003,0012 ; 8488 SPEC/PREV ;FORCE PREVIOUS ; 8489 [AR]_AC, ;FETCH AC U 3562, 1516,3771,0003,0276,6007,0700,0000,0000,0000 ; 8490 J/STMEM ;STORE IN MEMORY ; 8491 ; 8492 ;HERE WITH HALT CODE IN THE T1 ; 8493 =010* ; 8494 HALTED: WORK[SV.ARX]_[ARX], ;SAVE TEMP REGISTER U 2404, 3565,3333,0004,7174,4007,0700,0410,0000,0212 ; 8495 CALL [SAVVMA] ;PUT VMA IN WORK[SV.VMA] ; 8496 =110* ABORT MEM CYCLE, ;ABORT CYCLE IN PROGRESS U 2414, 3564,4223,0000,4364,4277,0700,0210,0000,0010 ; 8497 CALL [WRTHSB] ;WRITE HALT STATUS BLOCK ; 8498 =111* U 2416, 3563,4221,0004,4174,4007,0700,0200,0021,1016 ; 8499 PWRON: [ARX]_0, VMA PHYSICAL WRITE ;STORE HALT CODE ; 8500 = U 3563, 2370,3333,0017,4175,5007,0701,0200,0000,0002 ; 8501 MEM WRITE, MEM_[T1] ; IN LOCATION 0 ; 8502 =0 NEXT [ARX] PHYSICAL WRITE, U 2370, 3555,0111,0704,4170,4007,0700,0210,0023,1016 ; 8503 CALL [STOPC] U 2371, 0005,4443,0000,4174,4107,0700,0000,0000,0074 ; 8504 H1: SET HALT, J/HALTLP ;TELL CONSOLE WE HAVE HALTED ; 8505 ; 8506 ; 8507 4: UNHALT, ;RESET CONSOLE U 0004, 2372,4443,0000,4174,4107,0640,0000,0000,0062 ; 8508 SKIP EXECUTE, J/CONT ;SEE IF CO OR EX ; 8509 5: U 0005, 0004,4443,0000,4174,4007,0660,0000,0000,0000 ; 8510 HALTLP: SKIP/-CONTINUE, J/4 ;WAIT FOR CONTINUE ; 8511 ; 8512 =0 ; 8513 CONT: VMA_[PC], ;LOAD PC INTO VMA ; 8514 FETCH, ;START READ U 2372, 0077,3443,0100,4174,4007,0700,0200,0014,0012 ; 8515 J/XCTGO ;DO THE INSTRUCTION U 2373, 2374,4571,1203,4374,4007,0700,0000,0024,1200 ; 8516 [AR]_VMA IO READ ;PUT FLAGS IN AR ; 8517 =0 [AR]_[AR].OR.#, ;PUT IN ADDRESS ; 8518 #/200000, HOLD LEFT, ; OF CSL REGISTER U 2374, 3553,3551,0303,4370,4007,0700,0010,0020,0000 ; 8519 CALL [STRTIO] ; 8520 CONT1: MEM READ, ;WAIT FOR DATA ; 8521 [HR]_MEM, ;PUT IN HR ; 8522 LOAD INST, ;LOAD IR, ETC. U 2375, 2564,3771,0002,4365,5617,0700,0200,0000,0002 ; 8523 J/XCT1 ;GO DO THE INSTRUCTION ; 8524 ; 8525 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 197 ; DSK: KSHACK; INOUT 50 20:00:51 16-JAN-87 WRITE HALT STATUS BLOCK ; 8526 .TOC "WRITE HALT STATUS BLOCK" ; 8527 ; 8528 ;THE HALT STATUS BLOCK LOOKS LIKE: ; 8529 ; 8530 ; !=======================================================! ; 8531 ; !00! MAG ! ; 8532 ; !-------------------------------------------------------! ; 8533 ; !01! PC ! ; 8534 ; !-------------------------------------------------------! ; 8535 ; !02! HR ! ; 8536 ; !-------------------------------------------------------! ; 8537 ; !03! AR ! ; 8538 ; !-------------------------------------------------------! ; 8539 ; !04! ARX ! ; 8540 ; !-------------------------------------------------------! ; 8541 ; !05! BR ! ; 8542 ; !-------------------------------------------------------! ; 8543 ; !06! BRX ! ; 8544 ; !-------------------------------------------------------! ; 8545 ; !07! ONE ! ; 8546 ; !-------------------------------------------------------! ; 8547 ; !10! EBR ! ; 8548 ; !-------------------------------------------------------! ; 8549 ; !11! UBR ! ; 8550 ; !-------------------------------------------------------! ; 8551 ; !12! MASK ! ; 8552 ; !-------------------------------------------------------! ; 8553 ; !13! FLG ! ; 8554 ; !-------------------------------------------------------! ; 8555 ; !14! PI ! ; 8556 ; !-------------------------------------------------------! ; 8557 ; !15! XWD1 ! ; 8558 ; !-------------------------------------------------------! ; 8559 ; !16! T0 ! ; 8560 ; !-------------------------------------------------------! ; 8561 ; !17! T1 ! ; 8562 ; !=======================================================! ; 8563 ; ! VMA FLAGS ! VMA ! ; 8564 ; !=======================================================! ; 8565 ; 8566 ;START AT 1 TO DUMP 2901 REGISTERS INTO MAIN MEMORY ; 8567 1: WORK[SV.ARX]_[ARX], ;SAVE TEMP REGISTER U 0001, 3565,3333,0004,7174,4007,0700,0410,0000,0212 ; 8568 CALL [SAVVMA] ;WORK[SV.VMA]_VMA U 0011, 2124,3771,0004,7274,4007,0701,0000,0000,0227 ; 8569 11: [ARX]_WORK[HSBADR] U 2124, 3567,4223,0000,4364,4277,0700,0210,0000,0010 ; 8570 =10* ABORT MEM CYCLE, CALL [DUMP] U 2126, 2371,4443,0000,4174,4107,0700,0000,0000,0074 ; 8571 SET HALT, J/H1 ; 8572 ; 8573 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 198 ; DSK: KSHACK; INOUT 50 20:00:51 16-JAN-87 WRITE HALT STATUS BLOCK ; 8574 ; 8575 WRTHSB: [ARX]_WORK[HSBADR], ;GET ADDRESS OF HSB U 3564, 2376,3771,0004,7274,4007,0422,0000,0000,0227 ; 8576 SKIP AD.LE.0, 4T ;SEE IF VALID ; 8577 =0 READ [MASK], LOAD PI, ;TURN OFF PI SYSTEM U 2376, 3567,3333,0012,4174,4437,0700,0000,0000,0000 ; 8578 J/DUMP ; AND GO TAKE DUMP ; 8579 [ARX]_WORK[SV.ARX], U 2377, 0002,3771,0004,7274,4004,1701,0000,0000,0212 ; 8580 RETURN [2] ;DO NOT DUMP ANYTHING ; 8581 U 3565, 3566,3771,0004,4354,4007,0700,0000,0000,0000 ; 8582 SAVVMA: [ARX]_VMA ; 8583 WORK[SV.VMA]_[ARX], U 3566, 0010,3333,0004,7174,4004,1700,0400,0000,0210 ; 8584 RETURN [10] ; 8585 ; 8586 ;DUMP OUT THE 2901 U 3567, 2144,3333,0004,4174,4007,0700,0200,0021,1016 ; 8587 DUMP: READ [ARX], VMA PHYSICAL WRITE U 2144, 2614,3333,0000,4175,5007,0701,0210,0000,0002 ; 8588 =0* MEM WRITE, MEM_[MAG], CALL [NEXT] U 2146, 3570,3333,0001,4175,5007,0701,0200,0000,0002 ; 8589 MEM WRITE, MEM_[PC] U 3570, 2400,0111,0704,4170,4007,0700,0200,0023,1016 ; 8590 NEXT [ARX] PHYSICAL WRITE U 2400, 2614,3333,0002,4175,5007,0701,0210,0000,0002 ; 8591 =0* MEM WRITE, MEM_[HR], CALL [NEXT] U 2402, 2401,3333,0003,4175,5007,0701,0200,0000,0002 ; 8592 MEM WRITE, MEM_[AR] U 2401, 2614,3333,0003,7174,4007,0700,0410,0000,0211 ; 8593 =0* WORK[SV.AR]_[AR], CALL [NEXT] U 2403, 2405,3771,0003,7274,4007,0701,0000,0000,0212 ; 8594 [AR]_WORK[SV.ARX] U 2405, 2614,3333,0003,4175,5007,0701,0210,0000,0002 ; 8595 =0* MEM WRITE, MEM_[AR], CALL [NEXT] U 2407, 3571,3333,0005,4175,5007,0701,0200,0000,0002 ; 8596 MEM WRITE, MEM_[BR] U 3571, 2410,0111,0704,4170,4007,0700,0200,0023,1016 ; 8597 NEXT [ARX] PHYSICAL WRITE U 2410, 2614,3333,0006,4175,5007,0701,0210,0000,0002 ; 8598 =0* MEM WRITE, MEM_[BRX], CALL [NEXT] U 2412, 3572,3333,0007,4175,5007,0701,0200,0000,0002 ; 8599 MEM WRITE, MEM_[ONE] U 3572, 2411,0111,0704,4170,4007,0700,0200,0023,1016 ; 8600 NEXT [ARX] PHYSICAL WRITE U 2411, 2614,3333,0010,4175,5007,0701,0210,0000,0002 ; 8601 =0* MEM WRITE, MEM_[EBR], CALL [NEXT] U 2413, 3573,3333,0011,4175,5007,0701,0200,0000,0002 ; 8602 MEM WRITE, MEM_[UBR] U 3573, 2415,0111,0704,4170,4007,0700,0200,0023,1016 ; 8603 NEXT [ARX] PHYSICAL WRITE U 2415, 2614,3333,0012,4175,5007,0701,0210,0000,0002 ; 8604 =0* MEM WRITE, MEM_[MASK], CALL [NEXT] U 2417, 3574,3333,0013,4175,5007,0701,0200,0000,0002 ; 8605 MEM WRITE, MEM_[FLG] U 3574, 2420,0111,0704,4170,4007,0700,0200,0023,1016 ; 8606 NEXT [ARX] PHYSICAL WRITE U 2420, 2614,3333,0014,4175,5007,0701,0210,0000,0002 ; 8607 =0* MEM WRITE, MEM_[PI], CALL [NEXT] U 2422, 3575,3333,0015,4175,5007,0701,0200,0000,0002 ; 8608 MEM WRITE, MEM_[XWD1] U 3575, 2421,0111,0704,4170,4007,0700,0200,0023,1016 ; 8609 NEXT [ARX] PHYSICAL WRITE U 2421, 2614,3333,0016,4175,5007,0701,0210,0000,0002 ; 8610 =0* MEM WRITE, MEM_[T0], CALL [NEXT] U 2423, 2424,3333,0017,4175,5007,0701,0200,0000,0002 ; 8611 MEM WRITE, MEM_[T1] U 2424, 2614,3771,0003,7274,4007,0701,0010,0000,0210 ; 8612 =0* [AR]_WORK[SV.VMA], CALL [NEXT] U 2426, 3576,3333,0003,4175,5007,0701,0200,0000,0002 ; 8613 MEM WRITE, MEM_[AR] U 3576, 3577,3771,0003,7274,4007,0701,0000,0000,0211 ; 8614 HSBDON: [AR]_WORK[SV.AR] U 3577, 3600,3771,0004,7274,4007,0701,0000,0000,0210 ; 8615 [ARX]_WORK[SV.VMA] U 3600, 3601,3443,0400,4174,4007,0700,0200,0000,0010 ; 8616 VMA_[ARX] ; 8617 [ARX]_WORK[SV.ARX], U 3601, 0006,3771,0004,7274,4004,1701,0000,0000,0212 ; 8618 RETURN [6] ; 8619 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 199 ; DSK: KSHACK; ITSPAG 98 20:01:24 16-JAN-87 WRITE HALT STATUS BLOCK ; 8620 ; -*- Fundamental -*- ; 8621 ; 8622 .TOC "ITS PAGE REFILL CODE" ; 8623 ; 8624 .IF/ITS ; 8625 ; 8626 CLEANUP DONE "END STATE, SKIP IRPT, J/PFTRAP" ; 8627 CLEANUP AND TRAP "[AR]_WORK[SV.VMA], SKIP/TRAP CYCLE, J/CLTRP" ; 8628 ; 8629 ;ITS page table entry: ; 8630 ; (when shifted left once the valid bit, cache bit, write bit and page ; 8631 ; number will be in the right place for loading the hardware.) ; 8632 PTE VALID/=<91> ;2.8 (internal to the microcode) ; 8633 PTE AGE/=<94> ;2.5 ; 8634 ALL=1 ; (actually a field of length 1) ; 8635 PTE WRITE/=<94> ;2.5 (internal to the microcode) ; 8636 PTE CACHE/=<95> ;2.4 ; 8637 PTE PAGE/=<98:107> ;2.1 - 1.1 ; 8638 ; 8639 ;Hardware page table control bits: ; 8640 PT VALID/=<90> ;2.9 ; 8641 PT WRITE/=<93> ;2.6 ; 8642 PT CACHE/=<94> ;2.5 ; 8643 PT PAGE/=<97:107> ;2.2 - 1.1 ; 8644 EVEN=3776 ; 8645 ALL=3777 ; 8646 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 200 ; DSK: KSHACK; ITSPAG 98 20:01:24 16-JAN-87 ITS PAGE REFILL CODE ; 8647 ; 8648 ; VMA flags: Page fail word flags: ; 8649 ;4.9 User mode User mode ; 8650 ;FORCE USER ; 8651 ;4.8 Exec mode Nonexistent IO register ; 8652 NONEXISTENT IO REGISTER/=<91> ;J/IOW5 ; 8653 ;4.7 Instruction fetch Nonexistent memory ; 8654 NONEXISTENT MEMORY/=<92> ;J/PFD ; 8655 ;4.6 Read Uncorrectable memory error ; 8656 UNCORRECTABLE MEMORY ERROR/=<93> ;J/PFD, J/BADDATA ; 8657 ;4.5 Write test ; 8658 ;WRITE TEST ; 8659 ;4.4 Write Memory write ; 8660 ;WRITE CYCLE ; 8661 ;4.3 2.9 from page table entry ; 8662 ;4.2 Don't cache 2.8 from page table entry ; 8663 PAGE ACCESS/=<96:97> ; 8664 ;4.1 Physical Physical ; 8665 ;PHYSICAL ; 8666 ;3.4 - 1.1 Address Address ; 8667 ADDRESS HIGH/=<104:107> ; 8668 MEMORY=3 ;20 bits of physical memory address. ; 8669 IO=17 ;22 bits of IO address. ; 8670 ALL=17 ; 8671 ; 8672 ; (These VMA flags only from DP:) ; 8673 ;3.8 IO cycle IO cycle ; 8674 ;IO CYCLE ; 8675 ;3.7 WRU cycle ; 8676 ;3.6 Vector cycle ; 8677 ;3.5 Byte cycle IO byte cycle ; 8678 ;IO BYTE ; 8679 ; 8680 ; (These VMA flags only from #:) ; 8681 ;3.9 - 3.7 XCTR control ; 8682 ;3.6 Hack for AREAD: DROM supplies 4.6 - 4.4 and 3.4 ; 8683 ;3.5 Ignore 4.9 - 3.7 from # and use 4.9 - 3.5 from DP instead. ; 8684 ;3.4 Load the VMA ; 8685 ;3.3 Extended address: Use 3.4 - 3.1 ; 8686 ;3.2 Wait: Start a cycle. ; 8687 ;3.1 Hack for BWRITE: DROM supplies 3.2 ; 8688 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 201 ; DSK: KSHACK; ITSPAG 98 20:01:24 16-JAN-87 ITS PAGE REFILL CODE ; 8689 ; 8690 .DCODE D 0257, 1215,1553,0100 ; 8691 257: IOT, AC, J/UUO257 ;Used to be MAP ; 8692 .UCODE ; 8693 ; 8694 1553: U 1553, 2605,4551,0202,4374,0007,0700,0000,0077,7740 ; 8695 UUO257: UUO ; 8696 ; 8697 ;The hardware comes here with a page fail or pending interrupt: ; 8698 3777: ; 8699 PAGE-FAIL: U 3777, 3602,3333,0003,7174,4007,0700,0400,0000,0211 ; 8700 WORK[SV.AR]_[AR] ; 8701 ;;INTERRUPT-TRAP macro (which nobody uses) does the above and comes ; 8702 ;;here: U 3602, 3603,3333,0004,7174,4007,0700,0400,0000,0212 ; 8703 ITRAP: WORK[SV.ARX]_[ARX] ;J/MVSKP U 3603, 3604,3333,0006,7174,4007,0700,0400,0000,0214 ; 8704 WORK[SV.BRX]_[BRX] U 3604, 3605,3771,0006,4354,4007,0700,0000,0000,0000 ; 8705 [BRX]_VMA ;BRX: FLAGS,,VMA ; 8706 WORK[SV.VMA]_[BRX], U 3605, 2440,3333,0006,7174,4007,0370,0400,0000,0210 ; 8707 SKIP IRPT ;See if interrupt (saves a dispatch) ; 8708 =0000 ; 8709 PFD: DBM/PF DISP, DBUS/DBM, ;Puts page fail condition on ; 8710 AD/D, DEST/PASS, 4T, ;DP 18-21. U 2440, 2440,3773,0000,4304,4003,1702,0000,0000,0000 ; 8711 DISP/DP LEFT, J/PFD ;Dispatch on it. ; 8712 =0001 WORK[SV.BR]_[BR], ;(1) Interrupt U 2441, 3613,3333,0005,7174,4007,0700,0400,0000,0213 ; 8713 J/PF-INT ; 8714 =0011 [BRX]_IO DATA, ;(3) Parity ; 8715 AD PARITY OK/0, ;Don't look at parity. U 2443, 3606,3771,0006,4374,4007,0700,0000,0000,0000 ; 8716 J/BADDATA ; 8717 =0101 [BRX]_[100000] XWD 0, ;(5) NXM U 2445, 3610,4571,1206,4374,4007,0700,0000,0010,0000 ; 8718 J/HARD ; 8719 =0111 [BRX]_[140000] XWD 0, ;(7) NXM & Parity U 2447, 3610,4571,1206,4374,4007,0700,0000,0014,0000 ; 8720 J/HARD ; 8721 =1000 WORK[SV.BR]_[BR], ;(10) Read-only page U 2450, 3622,3333,0005,7174,4007,0700,0400,0000,0213 ; 8722 J/PFMAP ; 8723 =1001 WORK[SV.BR]_[BR], ;[123] (11) 1 ms timer and movsrj U 2451, 3613,3333,0005,7174,4007,0700,0400,0000,0213 ; 8724 J/PF-INT ; 8725 =1010 WORK[SV.BR]_[BR], ;(12) Nonexistent page U 2452, 3622,3333,0005,7174,4007,0700,0400,0000,0213 ; 8726 J/PFMAP ; 8727 =1011 WORK[SV.BR]_[BR], ;(13) Exec/User mismatch U 2453, 3622,3333,0005,7174,4007,0700,0400,0000,0213 ; 8728 J/PFMAP ; 8729 = ; 8730 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 202 ; DSK: KSHACK; ITSPAG 98 20:01:24 16-JAN-87 ITS PAGE REFILL CODE ; 8731 ; 8732 ;Here is how a hard memory error is handled: ; 8733 BADDATA: U 3606, 3607,3333,0006,7174,4007,0700,0400,0000,0160 ; 8734 WORK[BADW0]_[BRX] ;Save bad word. U 3607, 3610,4571,1206,4374,4007,0700,0000,0004,0000 ; 8735 [BRX]_[040000] XWD 0 ; 8736 ;;I/O failures come here from J/IOW5 with 200000 in BRX: U 3610, 2430,3333,0005,7174,4007,0700,0400,0000,0213 ; 8737 HARD: WORK[SV.BR]_[BR] ;Finally save BR ; 8738 =0 [BR]_VMA, ;VMA for page fail word. U 2430, 3547,3771,0005,4354,4007,0700,0010,0000,0000 ; 8739 CALL [ABORT] ;Clear page fault condition. ; 8740 [BR]_[BR].AND.#, ;Save interesting flags: ; 8741 FORCE USER/1, PHYSICAL/1, ; 8742 IO CYCLE/1, IO BYTE/1, U 2431, 3611,4551,0505,4374,0007,0700,0000,0040,1237 ; 8743 ADDRESS HIGH/ALL, HOLD RIGHT U 3611, 3612,3111,0506,4174,4007,0700,0000,0000,0000 ; 8744 = [BRX]_[BRX].OR.[BR] ;BRX: Page fail word U 3612, 2502,4553,1300,4374,4007,0321,0000,0001,0000 ; 8745 PAGE FAIL TRAP ; 8746 ; 8747 ;Here is what happens when the initial dispatch on the page fail condition ; 8748 ;tells us an interrupt is pending: U 3613, 2434,4443,0000,4174,4007,0370,0000,0000,0000 ; 8749 PF-INT: SKIP IRPT ;Timer trap? ; 8750 =00 [AR]_WORK[TIME1], ;Yes: Get low word. ; 8751 SPEC/CLRCLK, ; Clear clock flag. U 2434, 3443,3771,0003,7274,4117,0701,0010,0000,0301 ; 8752 CALL [TOCK] ; Do the update. TOCK returns 2. U 2435, 2504,3771,0003,7274,4007,0611,0000,0000,0210 ; 8753 CLEANUP AND TRAP ;No: External interrupt. Jump away U 2436, 3614,4223,0000,4364,4277,0700,0200,0000,0010 ; 8754 ABORT MEM CYCLE ;Clear 1ms flags. ; 8755 = ; 8756 .IF/PCST ;Take a PC sample every millisecond U 3614, 3615,3771,0003,7274,4007,0701,0000,0000,0210 ; 8757 [AR]_WORK[SV.VMA] ;Recover VMA and flags U 3615, 2432,3771,0004,7274,4007,0521,0000,0000,0233 ; 8758 [ARX]_WORK[PCST], SKIP DP0 ;Skip if PC sampling is enabled U 2432, 3651,3771,0004,7274,4007,0701,0000,0000,0212 ; 8759 =0 [ARX]_WORK[SV.ARX], J/PAGE-CONTINUE1 ;Disabled or table full U 2433, 3616,3741,0105,4074,4007,0700,0000,0000,0000 ; 8760 [BR]_PC WITH FLAGS U 3616, 2454,4553,0300,4374,4007,0321,0000,0010,0000 ; 8761 TL [AR], FETCH/1 ;Skip if PC points at current instruction U 2454, 2455,1111,0705,4170,4007,0700,4000,0000,0000 ; 8762 =0 [BR]_[BR]-1, HOLD LEFT ;No, back up the PC that gets stored U 2455, 3617,0113,0415,7174,4007,0700,0400,0000,0233 ; 8763 WORK[PCST]_[ARX]+[XWD1] ;Increment the AOBJN pointer U 3617, 3620,5731,0004,4174,4007,0700,0000,0000,0000 ; 8764 [ARX] LEFT_0 ;Clear high bits of physical address damn it U 3620, 3621,3443,0400,4174,4007,0700,0200,0021,1016 ; 8765 VMA_[ARX], VMA PHYSICAL WRITE ;Store PC into sample table U 3621, 3650,3333,0005,4175,5007,0701,0200,0000,0002 ; 8766 MEM WRITE, MEM_[BR], J/PAGE-CONTINUE ; 8767 .IFNOT/PCST ; 8768 [AR]_WORK[SV.VMA], ;Restore VMA and continue where ; 8769 J/PAGE-CONTINUE ; we left off. ; 8770 .ENDIF/PCST ; 8771 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 203 ; DSK: KSHACK; ITSPAG 98 20:01:24 16-JAN-87 ITS PAGE REFILL CODE ; 8772 ; 8773 ;Here we handle a soft page failure. BRX contains VMA FLAGS,,VMA. U 3622, 3623,4223,0000,4364,4277,0700,0200,0000,0010 ; 8774 PFMAP: ABORT MEM CYCLE ;Clear page fail condition. U 3623, 2456,4553,0600,4374,4007,0321,0000,0002,0000 ; 8775 TL [BRX], WRITE TEST/1 ;Write test? ; 8776 =0 [BRX]_[BRX].OR.#, ;Yes: Turn into simple write. U 2456, 2457,3551,0606,4374,0007,0700,0000,0001,0000 ; 8777 WRITE CYCLE/1, HOLD RIGHT ; 8778 [BRX]_[BRX].AND.#, ;Save interesting flags: ; 8779 FORCE USER/1, WRITE CYCLE/1, PHYSICAL/1, U 2457, 3624,4551,0606,4374,0007,0700,0000,0041,1003 ; 8780 ADDRESS HIGH/MEMORY, HOLD RIGHT ; 8781 = [AR]_[BRX], ;Copy virtual address and U 3624, 2460,3441,0603,4174,4007,0700,2000,0071,0011 ; 8782 SC_9. ;prepare to shift 11 places. ; 8783 =0 ; 8784 PFMAP1: [AR]_[AR]*.5, ;Right adjust page # U 2460, 2460,3447,0303,4174,4007,0630,2000,0060,0000 ; 8785 STEP SC, J/PFMAP1 ; 8786 [AR]_[AR].AND.# CLR LH, ;AR: index off DBR U 2461, 3625,4251,0303,4374,4007,0700,0000,0000,0077 ; 8787 #/77 U 3625, 2462,3333,0006,4174,4007,0520,0000,0000,0000 ; 8788 = READ [BRX], SKIP DP0 ;User ref? ; 8789 =0 READ [BRX], SKIP DP18, ;Exec high ref? U 2462, 2466,3333,0006,4174,4007,0530,0000,0000,0000 ; 8790 J/EXEC-DBR ; 8791 READ [BRX], SKIP DP18, ;User high ref? U 2463, 2464,3333,0006,4174,4007,0530,0000,0000,0000 ; 8792 J/USER-DBR ; 8793 = ; 8794 ; 8795 =0 ; 8796 USER-DBR: ; 8797 [AR]_[AR]+WORK[DBR1], ;User low U 2464, 3626,0551,0303,7274,4007,0701,0000,0000,0215 ; 8798 J/GOTDBR ; 8799 [AR]_[AR]+WORK[DBR2], ;User high U 2465, 3626,0551,0303,7274,4007,0701,0000,0000,0216 ; 8800 J/GOTDBR ; 8801 = ; 8802 ; 8803 =0 ; 8804 EXEC-DBR: ; 8805 [AR]_[AR]+WORK[DBR4], ;Exec low U 2466, 3626,0551,0303,7274,4007,0701,0000,0000,0220 ; 8806 J/GOTDBR ; 8807 [AR]_[AR]+WORK[DBR3], ;Exec high U 2467, 3626,0551,0303,7274,4007,0701,0000,0000,0217 ; 8808 J/GOTDBR ; 8809 = ; 8810 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 204 ; DSK: KSHACK; ITSPAG 98 20:01:24 16-JAN-87 ITS PAGE REFILL CODE ; 8811 ; 8812 ;BRX: Original VMA FLAGS,,VMA modified as for a page fail word. ; 8813 ;AR: Address of page table word. U 3626, 3627,3443,0300,4174,4007,0700,0200,0024,1016 ; 8814 GOTDBR: VMA_[AR], START READ, VMA PHYSICAL U 3627, 3630,3771,0005,4365,5007,0700,0200,0000,0002 ; 8815 MEM READ, [BR]_MEM U 3630, 2470,4553,0600,4374,4007,0331,0000,0000,2000 ; 8816 TR [BRX], #/2000 ;Odd? ; 8817 =0 [ARX]_[BR], ;Yes: entry is in right half, just copy it U 2470, 3631,3441,0504,4174,4007,0700,0000,0000,0000 ; 8818 J/PTWRH ; into ARX. ; 8819 [ARX]_[BR] SWAP, ;No: entry is in left half, so copy in ARX U 2471, 3632,3770,0504,4344,4007,0700,0000,0000,0000 ; 8820 J/PTWLH ; is swapped first. ; 8821 = ; 8822 ; 8823 PTWRH: [BR]_[BR].AND.NOT.#, ;BR gets the word to write back with the ; 8824 PTE AGE/ALL, ; age bits cleared in the right half. ; 8825 HOLD LEFT, U 3631, 2472,5551,0505,4370,4007,0530,0000,0002,0000 ; 8826 SKIP DP18, J/PTWTST ;Test 2.9 of entry. ; 8827 ; 8828 PTWLH: [BR]_[BR].AND.NOT.#, ;BR gets the word to write back with the ; 8829 PTE AGE/ALL, ; age bits cleared in the left half. ; 8830 HOLD RIGHT, U 3632, 2472,5551,0505,4374,0007,0520,0000,0002,0000 ; 8831 SKIP DP0, J/PTWTST ;Test 2.9 of entry. ; 8832 ; 8833 =0 U 2472, 2474,4553,0400,4374,4007,0331,0000,0020,0000 ; 8834 PTWTST: TR [ARX], #/200000, J/PTWTS0 ;0X: Test 2.8 U 2473, 2476,4553,0400,4374,4007,0331,0000,0020,0000 ; 8835 TR [ARX], #/200000, J/PTWTS1 ;1X: Test 2.8 ; 8836 = ; 8837 ; 8838 =0 ; 8839 PTWTS0: [BRX]_[BRX].OR.#, ;01: Read only ; 8840 PAGE ACCESS/1, ;Indicate that in page fail word. ; 8841 HOLD RIGHT, U 2474, 3633,3551,0606,4374,0007,0700,0000,0000,2000 ; 8842 J/READ-ONLY U 2475, 2502,4553,1300,4374,4007,0321,0000,0001,0000 ; 8843 PAGE FAIL TRAP ;00: Not accessible. ; 8844 = ; 8845 ; 8846 =0 ; 8847 PTWTS1: [ARX]_[ARX].OR.#, ;11: Read/Write ; 8848 PTE WRITE/1, ;Set Writable bit in page table. ; 8849 HOLD LEFT, U 2476, 3634,3551,0404,4370,4007,0700,0000,0002,0000 ; 8850 J/PAGE-REFILL ; 8851 [BRX]_[BRX].OR.#, ;10: Read/Write/First ; 8852 PAGE ACCESS/2, ;Indicate that in page fail word. ; 8853 HOLD RIGHT, U 2477, 3633,3551,0606,4374,0007,0700,0000,0000,4000 ; 8854 J/READ-ONLY ; 8855 = ; 8856 ; 8857 READ-ONLY: ; 8858 TL [BRX], ;Were we perhaps trying to write? U 3633, 2500,4553,0600,4374,4007,0321,0000,0001,0000 ; 8859 WRITE CYCLE/1 U 2500, 2502,4553,1300,4374,4007,0321,0000,0001,0000 ; 8860 =0 PAGE FAIL TRAP ;That would be a problem wouldn't it! ; 8861 [ARX]_[ARX].AND.NOT.#, ;Clear writable bit in page table. ; 8862 PTE WRITE/1, ; 8863 HOLD LEFT, U 2501, 3634,5551,0404,4370,4007,0700,0000,0002,0000 ; 8864 J/PAGE-REFILL ; 8865 = ; 8866 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 205 ; DSK: KSHACK; ITSPAG 98 20:01:24 16-JAN-87 ITS PAGE REFILL CODE ; 8867 ; 8868 ;BRX: Original VMA FLAGS,,VMA modified as for a page fail word. ; 8869 ;AR: Address of page table word. ; 8870 ;ARX: Half formed page table entry in right half. ; 8871 ;BR: Original page table word with the age bit set. ; 8872 PAGE-REFILL: ; 8873 VMA_[AR], ;Prepare to put the word back. ; 8874 START WRITE, U 3634, 3635,3443,0300,4174,4007,0700,0200,0023,1016 ; 8875 VMA PHYSICAL ; 8876 MEM WRITE, ;Write it back. U 3635, 3636,3333,0005,4175,5007,0701,0200,0000,0002 ; 8877 MEM_[BR] U 3636, 3637,3771,0003,7274,4007,0701,0000,0000,0210 ; 8878 [AR]_WORK[SV.VMA] ;AR: For PAGE-CONTINUE to use. ; 8879 [BR]_[AR].AND.NOT.#, ;Clear bits which start a cycle. ; 8880 READ CYCLE/1, WRITE CYCLE/1, U 3637, 3640,5551,0305,4374,0007,0700,0000,0007,0000 ; 8881 WRITE TEST/1, HOLD RIGHT ; 8882 [BR]_[AR].AND.NOT.#, ;Make DEC page number even. U 3640, 3641,5551,0305,4370,4007,0700,0000,0000,1000 ; 8883 #/1000, HOLD LEFT U 3641, 3642,3443,0500,4174,4007,0701,0200,0000,0030 ; 8884 VMA_[BR], 3T, DP FUNC/1 ;Restore VMA and set User according to ; 8885 ;what it was. ; 8886 [ARX]_([ARX].OR.#)*2, ;Set Valid bit and shift into position. ; 8887 3T, PTE VALID/1, U 3642, 3643,3555,0404,4374,4147,0701,0000,0020,0000 ; 8888 LOAD PAGE TABLE ;Load page table on next instruction. ; 8889 [ARX]_[ARX].AND.# CLR LH, ;Mask out all but the correct ; 8890 PT VALID/1, PT WRITE/1, ; bits. Make the DEC physical U 3643, 3644,4251,0404,4374,4007,0700,0000,0046,3776 ; 8891 PT CACHE/1, PT PAGE/EVEN ; page number even. ; 8892 [BR]_[BR].OR.#, ;Make DEC page number in VMA odd. U 3644, 3645,3551,0505,4370,4007,0700,0000,0000,1000 ; 8893 #/1000, HOLD LEFT U 3645, 3646,3443,0500,4174,4007,0701,0200,0000,0030 ; 8894 VMA_[BR], 3T, DP FUNC/1 ;Restore VMA again for the odd page. ; 8895 [ARX]_[ARX].OR.#, ;Then the odd physical page. ; 8896 #/1, HOLD LEFT, U 3646, 3647,3551,0404,4370,4147,0700,0000,0000,0001 ; 8897 LOAD PAGE TABLE ;Load page table on next instruction. ; 8898 READ [ARX], U 3647, 3650,3333,0004,4174,4007,0700,0000,0000,0000 ; 8899 J/PAGE-CONTINUE ; 8900 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 206 ; DSK: KSHACK; ITSPAG 98 20:01:24 16-JAN-87 ITS PAGE REFILL CODE ; 8901 ; 8902 ;Return to interrupted microinstruction after a successful page table ; 8903 ;reload or a timer trap. AR should contain the right VMA to restart the ; 8904 ;memory cycle. ; 8905 PAGE-CONTINUE: U 3650, 3651,3771,0004,7274,4007,0701,0000,0000,0212 ; 8906 [ARX]_WORK[SV.ARX] ;Restore saved stuff ; 8907 PAGE-CONTINUE1: U 3651, 3652,3771,0005,7274,4007,0701,0000,0000,0213 ; 8908 [BR]_WORK[SV.BR] U 3652, 3653,3771,0006,7274,4007,0701,0000,0000,0214 ; 8909 [BRX]_WORK[SV.BRX] ; 8910 VMA_[AR], ;MAKE MEM REQUEST ; 8911 DP FUNC/1, 3T, ;FROM DATA PATH U 3653, 3654,3443,0300,4174,4007,0701,0200,0000,0032 ; 8912 WAIT/1 ;WAIT FOR PREVIOUS CYCLE TO ; 8913 ; COMPLETE. (NEED THIS TO ; 8914 ; START ANOTHER CYCLE) ; 8915 [AR]_WORK[SV.AR], U 3654, 0000,3771,0003,7274,4004,1701,0000,0000,0211 ; 8916 RETURN [0] ; 8917 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 207 ; DSK: KSHACK; ITSPAG 98 20:01:24 16-JAN-87 ITS PAGE REFILL CODE ; 8918 ; 8919 ;;; Here we have hair to back us out of an instruction in case we have to ; 8920 ;;; deliver a page fault or an interrupt. Think of it as micro PCLSRing. ; 8921 ;;; Anybody who comes to this page to deliver a page fault better have set ; 8922 ;;; up BRX to contain the right page fail word first. Cleanup handlers ; 8923 ;;; better not smash it either. ; 8924 ; 8925 ;PAGE FAIL TRAP macro does: ; 8926 ; TL [FLG], FLG.PI/1, ;PI cycle? ; 8927 ; J/PFT ; 8928 =0 U 2502, 2404,4751,1217,4374,4007,0700,0000,0000,0100 ; 8929 PFT: HALT [IOPF] ;Yes: IO Page Failure U 2503, 2504,3771,0003,7274,4007,0611,0000,0000,0210 ; 8930 CLEANUP AND TRAP ;No: deliver hard page fault. ; 8931 = ; 8932 ; 8933 ;CLEANUP AND TRAP macro does: ; 8934 ; [AR]_WORK[SV.VMA], ; 8935 ; SKIP/TRAP CYCLE, ;See if trap cycle. ; 8936 ; J/CLTRP ; 8937 =0 ; 8938 CLTRP: TL [AR], FETCH/1, ;Is this an instruction fetch? U 2504, 2506,4553,0300,4374,4007,0321,0000,0010,0000 ; 8939 J/CLTRP1 U 2505, 3655,3771,0003,7274,4007,0701,0000,0000,0425 ; 8940 [AR]_WORK[TRAPPC] ;This is a trap cycle. ; 8941 = READ [AR], LOAD FLAGS, ;Restore PC flags. U 3655, 3656,3333,0003,4174,4467,0700,0000,0000,0004 ; 8942 J/CLDISP ; 8943 ; 8944 =0 ; 8945 .IF/1PROC ;Fault/interrupt while in instruction fetch U 2506, 2510,4553,1300,4374,4007,0321,0000,0000,0200 ; 8946 CLTRP1: TL [FLG], FLG.2PROC/1, J/CLTRP2 ; 8947 .IFNOT/1PROC ; 8948 CLTRP1: CLEANUP DONE ;Instruction fetch: Everything is clean. ; 8949 .ENDIF/1PROC ; 8950 ;;Many things jump here to backup the PC and cleanup. U 2507, 3656,1111,0701,4170,4007,0700,4000,0000,0000 ; 8951 FIXPC: [PC]_[PC]-1, HOLD LEFT ; 8952 = ;;Many things jump here to cleanup. U 3656, 2520,3333,0013,4174,4003,5701,0000,0000,0000 ; 8953 CLDISP: READ [FLG], DBUS/DP, DISP/DP, 3T, J/CLEANUP ; 8954 ;;CLEANUP DISP macro (which nobody uses) does the above. ; 8955 ; 8956 .IF/1PROC ; 8957 =0 U 2510, 0751,5551,1313,4374,0007,0700,0000,0000,1200 ; 8958 CLTRP2: TAKE 1-PROCEED TRAP ;Take one-proceed trap instead of this one U 2511, 2512,4221,0013,4170,4007,0370,0000,0000,0000 ; 8959 CLEANUP DONE ; 8960 .ENDIF/1PROC ; 8961 ; 8962 =0000 ; 8963 CLEANUP: ;;Dispatch table to cleanup after a page fault or interrupt. ; 8964 CLEANED: ;;J/BLT-CLEANUP ;(0) Normal case: No more cleanup needed. U 2520, 2512,4221,0013,4170,4007,0370,0000,0000,0000 ; 8965 CLEANUP DONE ;Go deliver page fault or interrupt. ; 8966 =0001 [AR]_WORK[SV.ARX], ;(1) BLT U 2521, 3035,3771,0003,7274,4007,0701,0000,0000,0212 ; 8967 J/BLT-CLEANUP ; 8968 ;(2) Unused. ; 8969 =0011 STATE_[EDIT-SRC], ;(3) SRC IN STRING MOVE U 2523, 3353,3771,0013,4370,4007,0700,0000,0000,0011 ; 8970 J/STRPF ; 8971 =0100 STATE_[EDIT-DST], ;(4) DST IN STRING MOVE U 2524, 3353,3771,0013,4370,4007,0700,0000,0000,0012 ; 8972 J/STRPF ; 8973 =0101 STATE_[SRC], ;(5) SRC+DST IN STRING MOVE U 2525, 2162,3771,0013,4370,4007,0700,0000,0000,0003 ; 8974 J/BACKD ; 8975 =0110 STATE_[EDIT-DST], ;(6) FILL IN MOVSRJ U 2526, 3362,3771,0013,4370,4007,0700,0000,0000,0012 ; 8976 J/STRPF4 ; 8977 =0111 STATE_[EDIT-SRC], ;(7) DEC TO BIN U 2527, 3357,3771,0013,4370,4007,0700,0000,0000,0011 ; 8978 J/PFDBIN ; 8979 =1000 STATE_[EDIT-SRC], ;(10) SRC+DST IN COMP U 2530, 3351,3771,0013,4370,4007,0700,0000,0000,0011 ; 8980 J/CMSDST U 2531, 2160,4221,0013,4170,4007,0700,0000,0000,0000 ; 8981 =1001 END STATE, J/BACKS ;(11) EDIT SRC FAIL U 2532, 2162,4221,0013,4170,4007,0700,0000,0000,0000 ; 8982 =1010 END STATE, J/BACKD ;(12) EDIT DST FAIL ; 8983 =1011 STATE_[EDIT-SRC], ;(13) SRC+DST IN EDIT U 2533, 2162,3771,0013,4370,4007,0700,0000,0000,0011 ; 8984 J/BACKD ; 8985 = ; 8986 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 208 ; DSK: KSHACK; ITSPAG 98 20:01:24 16-JAN-87 ITS PAGE REFILL CODE ; 8987 ; 8988 ;CLEANUP DONE macro does: ; 8989 ; END STATE, SKIP IRPT, J/PFTRAP ; 8990 =0 ; 8991 PFTRAP: TR [PI], ;Here to deliver page fault after cleanup. ; 8992 PI.IP1/1, PI.IP2/1, ; This hack figures out what 3 locations to ; 8993 PI.IP3/1, PI.IP4/1, ; use to deliver the page fault. U 2512, 2514,4553,1400,4374,4007,0331,0000,0007,4000 ; 8994 J/PFTDSP U 2513, 2330,3551,1313,4374,0007,0700,0000,0001,0000 ; 8995 TAKE INTERRUPT ;Here to deliver interrupt after cleanup. ; 8996 ; J/PI after setting FLG.PI ; 8997 = ; 8998 ; 8999 =0 U 2514, 2516,4553,1400,4374,4007,0331,0000,0006,0000 ; 9000 PFTDSP: TR [PI], PI.IP1/1, PI.IP2/1, J/PFTDS1 U 2515, 2534,4553,1400,4374,4007,0331,0000,0000,3000 ; 9001 TR [PI], PI.IP5/1, PI.IP6/1, J/PFTDS0 ; 9002 =0 U 2516, 2536,4553,1400,4374,4007,0331,0000,0004,0000 ; 9003 PFTDS1: TR [PI], PI.IP1/1, J/PFTD11 U 2517, 2540,4553,1400,4374,4007,0331,0000,0001,0000 ; 9004 TR [PI], PI.IP3/1, J/PFTD10 ; 9005 =0 U 2534, 2542,4553,1400,4374,4007,0331,0000,0000,2000 ; 9006 PFTDS0: TR [PI], PI.IP5/1, J/PFTD01 U 2535, 2544,4553,1400,4374,4007,0331,0000,0000,0400 ; 9007 TR [PI], PI.IP7/1, J/PFTD00 ; 9008 =0 U 2536, 3657,4751,1203,4374,4007,0700,0000,0000,0443 ; 9009 PFTD11: [AR]_0 XWD [443], J/PFTRAP1 U 2537, 3657,4751,1203,4374,4007,0700,0000,0000,0446 ; 9010 [AR]_0 XWD [446], J/PFTRAP1 ; 9011 =0 U 2540, 3657,4751,1203,4374,4007,0700,0000,0000,0451 ; 9012 PFTD10: [AR]_0 XWD [451], J/PFTRAP1 U 2541, 3657,4751,1203,4374,4007,0700,0000,0000,0454 ; 9013 [AR]_0 XWD [454], J/PFTRAP1 ; 9014 =0 U 2542, 3657,4751,1203,4374,4007,0700,0000,0000,0457 ; 9015 PFTD01: [AR]_0 XWD [457], J/PFTRAP1 U 2543, 3657,4751,1203,4374,4007,0700,0000,0000,0462 ; 9016 [AR]_0 XWD [462], J/PFTRAP1 ; 9017 =0 U 2544, 3657,4751,1203,4374,4007,0700,0000,0000,0465 ; 9018 PFTD00: [AR]_0 XWD [465], J/PFTRAP1 U 2545, 3657,4751,1203,4374,4007,0700,0000,0000,0440 ; 9019 [AR]_0 XWD [440], J/PFTRAP1 ; 9020 = ; 9021 ; 9022 PFTRAP1: ; 9023 [AR]_[AR]+[EBR], ; Where to store PFW U 3657, 3660,0111,1003,4174,4007,0700,0200,0021,1016 ; 9024 VMA PHYSICAL WRITE ; 9025 MEM WRITE, ; Store PFW U 3660, 2172,3333,0006,4175,5007,0701,0200,0000,0002 ; 9026 MEM_[BRX] ; 9027 .IF/1PROC ; 9028 =0** NEXT [AR] PHYSICAL WRITE, ; Where to store old PC U 2172, 3661,0111,0703,4170,4007,0700,0210,0023,1016 ; 9029 CALL [STORE-INT-PC] ; 9030 .IFNOT/1PROC ; 9031 NEXT [AR] PHYSICAL WRITE ; Where to store old PC ; 9032 [BR]_PC WITH FLAGS ; Get old PC ; 9033 MEM WRITE, ; Store old PC ; 9034 MEM_[BR] ; 9035 .ENDIF/1PROC ; 9036 [AR]_[AR]+1, ; Where to get new PC ; 9037 VMA PHYSICAL READ, U 2176, 2611,0111,0703,4174,4007,0700,0200,0024,1016 ; 9038 J/GOEXEC ; 9039 ; 9040 .IF/1PROC ; 9041 STORE-INT-PC: U 3661, 3662,3741,0105,4074,4007,0700,0000,0000,0000 ; 9042 [BR]_PC WITH FLAGS ; Get old PC U 3662, 2546,4553,1300,4374,4007,0321,0000,0000,1000 ; 9043 TL [FLG], FLG.1PROC/1 ; Was the instruction being one-proceeded? ; 9044 =0 [BR]_[BR].OR.#, OIPBIT/1, ;It was, turn pc flag back on U 2546, 3663,3551,0505,4374,0007,0700,0000,0000,1000 ; 9045 HOLD RIGHT, J/STORE-INT-PC-2 ; 9046 STORE-INT-PC-1: U 2547, 0004,3333,0005,4175,5004,1701,0200,0000,0002 ; 9047 MEM WRITE, MEM_[BR], RETURN [4] ; 9048 STORE-INT-PC-2: ; 9049 [FLG]_[FLG].AND.NOT.#, FLG.1PROC/1, ;Clear 1-proceed flags U 3663, 2547,5551,1313,4374,0007,0700,0000,0000,1200 ; 9050 FLG.2PROC/1, HOLD RIGHT, J/STORE-INT-PC-1 ; 9051 .ENDIF/1PROC ; 9052 .ENDIF/ITS ; 9053 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 209 ; DSK: KSHACK; PAGEF 10 02:03:53 8-OCT-84 ITS PAGE REFILL CODE ; 9054 ;;;-*-Fundamental-*- ; 9055 ; 9056 .NOBIN ; 9057 .TOC "PAGE FAIL REFIL LOGIC" ; 9058 ; 9059 .IFNOT/ITS ; 9060 ; 9061 ;WHEN THE CPU CAN NOT COMPLETE A MEMORY REFERENCE BECAUSE THE PAGE ; 9062 ; TABLE DOES NOT CONTAIN VALID INFORMATION FOR THE VIRTUAL PAGE INVOLVED ; 9063 ; THE HARDWARE CALLS THIS ROUTINE TO RELOAD THE HARDWARE PAGE TABLE. ; 9064 ; ; 9065 ;THIS CODE WILL EITHER DO THE RELOAD OR GENERATE A PAGE FAIL FOR THE ; 9066 ; SOFTWARE. THE INFORMATION LOADED CONSISTS OF THE PHYSICAL PAGE NUMBER, ; 9067 ; THE CACHE ENABLE BIT AND THE WRITE ENABLE BIT. ; 9068 ; 9069 ;THIS LOGIC USES MANY VARIABLES. THEY ARE DESCRIBED BRIEFLY HERE: ; 9070 ; 9071 ;THING WHERE KEPT USE ; 9072 ;OLD VMA WORKSPACE WORD 210 SAVES VMA ; 9073 ;OLD AR WORKSPACE WORD 211 SAVES AR ; 9074 ;OLD ARX WORKSPACE WORD 212 SAVES ARX ; 9075 ;OLD BR WORKSPACE WORD 213 SAVES BR ; 9076 ;OLD BRX WORKSPACE WORD 214 SAVES BRX ; 9077 ;KL PAGING BIT EBR BIT 1 (IN 2901) INDICATES KL STYLE (TOPS-20) PAGING ; 9078 ; INSTEAD OF KI STYLE (TOPS-10 AND DIAGNOSTIC) ; 9079 ; MODE PAGING ; 9080 ;W BIT FLG BIT 4 PAGE CAN BE WRITTEN ; 9081 ;C BIT FLG BIT 6 DATA IN THIS PAGE MAY BE PUT ; 9082 ; INTO CACHE ; 9083 ;PI CYCLE FLG BIT 5 STORING OLD PC DURING PI ; 9084 ;MAP FLAG FLG BIT 18 MAP INSTRUCTION IN PROGRESS ; 9085 ;CLEANUP CODE FLG BITS 32-35 WHAT TO DO SO INSTRUCTION MAY BE ; 9086 ; RESTARTED ; 9087 ;SPT BASE WORKSPACE WORD 215 ADDRESS OF SHARED-POINTER-TABLE ; 9088 ;CST BASE WORKSPACE WORD 216 ADDRESS OF CORE-STATUS-TABLE ; 9089 ;CST MASK WORKSPACE WORD 217 BITS TO KEEP ON CST UPDATE ; 9090 ;CST DATA (PUR) WORKSPACE WORD 220 BITS TO SET ON CST UPDATE ; 9091 ;PAGE TABLE ADDRESS AR WHERE THIS PAGE TABLE IS LOCATED ; 9092 ;PHYSICAL PAGE # (PPN) AR RESULT OF THIS PROCESS ; 9093 ;CST ENTRY AR CORE STATUS TABLE ENTRY ; 9094 ;SPT ENTRY AR WORD FROM SPT ; 9095 ;PAGE TABLE ENTRY AR WORD FROM PT ; 9096 ;PAGE NUMBER BR INDEX INTO CURENT PAGE TABLE ; 9097 ;PAGE FAIL WORD BRX WHAT HAPPENED (ALSO MAP RESULT) ; 9098 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 210 ; DSK: KSHACK; PAGEF 10 02:03:53 8-OCT-84 PAGE FAIL REFIL LOGIC ; 9099 ; 9100 ; ; 9101 ; ; 9102 ; ; 9103 ; KL10 PAGING - WORD FORMATS ; 9104 ; ; 9105 ;Section Pointer ; 9106 ; ; 9107 ;The section pointer is found in the user or exec section table. ; 9108 ;(Part of UPT or EPT.) ; 9109 ; ; 9110 ;Section pointer provides (via the SPT) the physical address of ; 9111 ;the PAGE TABLE for the given section. ; 9112 ; ; 9113 ; Code: 0 No-access (trap) ; 9114 ; 1 Immediate ; 9115 ; 2 Share ; 9116 ; 3 Indirect ; 9117 ; 4-7 Unused, reserved ; 9118 ; ; 9119 ; 0 1 2 3 4 5 6 18 35 ; 9120 ; +----+-+-+-+-+---------+-------------------------+ ; 9121 ; !CODE!P!W! !C!/////////! PAGE TABLE IDENTIFIER ! ; 9122 ; !010 ! ! ! ! !/////////! (SPT INDEX) ! ; 9123 ; +----+-+-+-+-+---------+-------------------------+ ; 9124 ; ; 9125 ; NORMAL SECTION POINTER (Code = 2) ; 9126 ; ; 9127 ; 0 2 3 4 5 6 9 18 35 ; 9128 ; +----+-+-+-+-+---+-----------+------------------------+ ; 9129 ; !CODE!P!W! !C!///!SECTION !SECTION TABLE IDENTIFIER! ; 9130 ; !011 ! ! ! ! !///!TABLE INDEX! (SPT INDEX) ! ; 9131 ; +----+-+-+-+-+---+-----------+------------------------+ ; 9132 ; ; 9133 ; INDIRECT SECTION POINTER (Code = 3) ; 9134 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 211 ; DSK: KSHACK; PAGEF 10 02:03:53 8-OCT-84 PAGE FAIL REFIL LOGIC ; 9135 ; 9136 ;PAGE POINTERS ; 9137 ; ; 9138 ;FOUND IN PAGE TABLES ; 9139 ; ; 9140 ; 0 1 2 3 4 5 6 12 35 ; 9141 ; +----+-+-+-+-+----+------------------------------+ ; 9142 ; !CODE!P!W! !C!////! PHYSICAL ADDRESS OF PAGE ! ; 9143 ; !001 ! ! ! ! !////! ! ; 9144 ; +----+-+-+-+-+----+------------------------------+ ; 9145 ; ; 9146 ; IMMEDIATE POINTER (code field = 1) ; 9147 ; ; 9148 ; B12-35 give PHYSICAL ADDRESS OF PAGE ; 9149 ; if B12-17 >< 0, page not in core-trap ; 9150 ; if B12-17 = 0, B23-35 give CORE PAGE ; 9151 ; NUMBER of page, B18-22 MBZ ; 9152 ; ; 9153 ; ; 9154 ; ; 9155 ; ; 9156 ; ; 9157 ; 0 2 3 6 18 35 ; 9158 ; +-----+-------+---------+------------------------+ ; 9159 ; !CODE !SAME AS!/////////! SPT INDEX ! ; 9160 ; !010 ! IMMED.!/////////! ! ; 9161 ; +-----+-------+---------+------------------------+ ; 9162 ; ; 9163 ; SHARED POINTER (code field = 2) ; 9164 ; ; 9165 ; B18-35 Give SPT INDEX (SPTX). SPTX + SPT BASE ; 9166 ; ADDRESS = physical core address of word ; 9167 ; holding physical address of page. ; 9168 ; 9169 ; 0 1 2 3 6 9 17 18 35 ; 9170 ; +----+--------+---+-------+----------------------+ ; 9171 ; !CODE!SAME AS !///! PAGE ! PAGE TABLE IDENTIFIER! ; 9172 ; !011 ! IMMED. !///!NUMBER ! (SPT INDEX) ! ; 9173 ; +----+--------+---+-------+----------------------+ ; 9174 ; ; 9175 ; INDIRECT POINTER (code field = 3) ; 9176 ; ; 9177 ; This pointer type causes another pointer to be fetched ; 9178 ; and interpreted. The new pointer is found in word N ; 9179 ; (B9-17) of the page addressed by C(SPT + SPTX). ; 9180 ; ; 9181 ; ; 9182 ; ; 9183 ; SPT ENTRY ; 9184 ; ; 9185 ; Found in the SPT, i.e., when fetching C(SPT +SPTX) ; 9186 ; ; 9187 ; 12 35 ; 9188 ; +--------------------+---------------------------+ ; 9189 ; !////////////////////! PHYSICAL ADDRESS OF PAGE ! ; 9190 ; !////////////////////! OR PAGE TABLE ! ; 9191 ; +--------------------+---------------------------+ ; 9192 ; ; 9193 ; B12-35 Give PHYSICAL ADDRESS of page. ; 9194 ; ; 9195 ; The base address (physical core address) of the SPT ; 9196 ; resides in one AC of the reserved AC block. ; 9197 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 212 ; DSK: KSHACK; PAGEF 10 02:03:53 8-OCT-84 PAGE FAIL REFIL LOGIC ; 9198 ; 9199 ;PHYSICAL STORAGE ADDRESS ; 9200 ; ; 9201 ;Found in B12-35 of IMMEDIATE POINTERS and SPT ENTRIES. ; 9202 ; ; 9203 ; 12 17 18 23 35 ; 9204 ; +---------+----+-----------------+ ; 9205 ; ! !MBZ ! CORE PAGE NUMBER! ; 9206 ; ! ! ! IF B12-17 = 0 ! ; 9207 ; +---------+----+-----------------+ ; 9208 ; ; 9209 ; If B12-17 = 0, then B23-35 are CORE PAGE NUMBER (i.e., ; 9210 ; B14-26 of physical core address) of page and B18-22 ; 9211 ; MBZ. If B12-17 >< 0, then address is not core and ; 9212 ; pager traps. ; 9213 ; ; 9214 ; ; 9215 ; ; 9216 ;CORE STATUS TABLE ENTRY ; 9217 ; ; 9218 ;Found when fetching C(CBR + CORE PAGENO) ; 9219 ; ; 9220 ; 0 5 32 34 35 ; 9221 ; +-------+-------------------------------+------+-+ ; 9222 ; ! CODE ! ! !M! ; 9223 ; +-------+-------------------------------+------+-+ ; 9224 ; ; 9225 ; B0-5 are code field: ; 9226 ; ; 9227 ; 0 - unavailable, trap ; 9228 ; ; 9229 ; 1-77 - available ; 9230 ; ; 9231 ; ; 9232 ; ; 9233 ; B32-34 reserved for future hardware specification. ; 9234 ; ; 9235 ; B35 is "modified" bit, set on any write ref to page. ; 9236 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 213 ; DSK: KSHACK; PAGEF 10 02:03:53 8-OCT-84 PAGE FAIL REFIL LOGIC ; 9237 ; 9238 ;QUANTITIES IN HARDWARE REGISTERS ; 9239 ; ; 9240 ;SPT SPT Base Register ; 9241 ; ; 9242 ; 14 35 ; 9243 ; +--------------------------------+ ; 9244 ; ! PHYSICAL CORE WORD ADDRESS ! ; 9245 ; +--------------------------------+ ; 9246 ; ; 9247 ;CBR CST Base Register ; 9248 ; ; 9249 ; 14 35 ; 9250 ; +--------------------------------+ ; 9251 ; ! PHYSICAL CORE WORD ADDRESS ! ; 9252 ; +--------------------------------+ ; 9253 ; ; 9254 ;CSTMSK CST Update Mask ; 9255 ; ; 9256 ; 0 32 35 ; 9257 ; +------------------------------------------+---+-+ ; 9258 ; ! MASK !111!1! ; 9259 ; +------------------------------------------+---+-+ ; 9260 ; ; 9261 ; ANDed with CST word during update ; 9262 ; ; 9263 ;(B32-35 must be all 1's to preserve existing CST information) ; 9264 ; ; 9265 ;CSTDATA CST Update Data ; 9266 ; ; 9267 ; 0 32 34 35 ; 9268 ; +------------------------------------------+---+-+ ; 9269 ; ! DATA !000!0! ; 9270 ; +------------------------------------------+---+-+ ; 9271 ; ; 9272 ; IORed with CST word during update ; 9273 ; ; 9274 ;(B32-35 must be all 0's to preserve existing CST information) ; 9275 ; ; 9276 ;All unspecified bits and fields are reserved for future ; 9277 ;specification by DEC. ; 9278 ; ; 9279 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 214 ; DSK: KSHACK; PAGEF 10 02:03:53 8-OCT-84 PAGE FAIL REFIL LOGIC ; 9280 ; 9281 .BIN ; 9282 ; 9283 .DCODE ; 9284 257: IOT, AC, J/MAP ; 9285 .UCODE ; 9286 ; 9287 1553: ; 9288 MAP: [AR]_[AR].OR.#, ;ASSUME PHYSICAL REF ; 9289 #/160000, ;FAKE ANSWER (Set Accessible, Writable, ; 9290 HOLD RIGHT ;and "Software".) ; 9291 [BRX]_VMA ;PUT VMA AND FLAGS IN BRX ; 9292 [BRX]_[BRX].AND.#, ;JUST KEEP USER BIT ; 9293 #/400000, HOLD RIGHT ; .. ; 9294 WORK[SV.VMA]_[BRX] ;SAVE IN WORKSPACE ; 9295 [BR]_WORK[APR] ;GET APR FLAGS ; 9296 TR [BR], #/030000 ;PAGING ENABLED? ; 9297 =0 STATE_[MAP], J/PFMAP ;YES--DO REAL MAP ; 9298 AC_[AR], NEXT INST ;NO--RETURN VIRTUAL ADDRESS ; 9299 ;HARDWARE COMES HERE ON PAGE TABLE NOT VALID (OR INTERRUPT) WHEN ; 9300 ; STARTING A MEMORY REFERENCE. MICOWORD ADDRESS OF INSTRUCTION DOING ; 9301 ; MEM WAIT IS SAVED ON THE STACK. ; 9302 3777: ; 9303 PAGE-FAIL: ; 9304 WORK[SV.AR]_[AR] ; 9305 ITRAP: WORK[SV.BRX]_[BRX] ; 9306 [BRX]_VMA ; 9307 WORK[SV.VMA]_[BRX] ; 9308 WORK[SV.ARX]_[ARX], ; 9309 SKIP IRPT ;SEE IF INTERRUPT (SAVE DISPATCH) ; 9310 =0000 ; 9311 PFD: DBM/PF DISP, DBUS/DBM, ;BRING CODE TO 2901'S ; 9312 AD/D, DEST/PASS, 4T, ;PUT ON DP 18-21 ; 9313 DISP/DP LEFT, J/PFD ;DISPATCH ON IT ; 9314 =0001 ;(1) INTERRUPT ; 9315 WORK[SV.BR]_[BR], J/PFPI1 ; 9316 =0011 ;(3) BAD DATA FROM MEMORY ; 9317 [BRX]_IO DATA, ;GET THE BAD DATA ; 9318 AD PARITY OK/0, ; DO NOT LOOK AT PARITY ; 9319 J/BADDATA ;SAVE IN AC BLK 7 ; 9320 =0101 ;(5) NXM ERROR ; 9321 [BRX]_[370000] XWD 0, J/HARD ; 9322 =0111 ;(7) NXM & BAD DATA ; 9323 [BRX]_[370000] XWD 0, J/HARD ; 9324 =1000 ;(10) WRITE VIOLATION ; 9325 WORK[SV.BR]_[BR], J/PFMAP ; 9326 =1010 ;(12) PAGE NOT VALID ; 9327 WORK[SV.BR]_[BR], J/PFMAP ; 9328 =1011 ;(13) EXEC/USER MISMATCH ; 9329 WORK[SV.BR]_[BR], J/PFMAP ; 9330 = ; 9331 ; 9332 BADDATA: ; 9333 WORK[BADW0]_[BRX] ;SAVE BAD WORD ; 9334 WORK[BADW1]_[BRX] ;AGAIN ; 9335 [BRX]_[360000] XWD 0, J/HARD ; 9336 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 215 ; DSK: KSHACK; PAGEF 10 02:03:53 8-OCT-84 PAGE FAIL REFIL LOGIC ; 9337 ; 9338 ;WE HAVE SAVED AR, ARX, BR AND BRX. WE MERGE IN HERE FROM MAP ; 9339 ; INSTRUCTION, SAVE THE VMA AND START THE PAGE FAIL WORD. ; 9340 PFMAP: ABORT MEM CYCLE ;CLEAR PAGE FAIL ; 9341 [FLG]_[FLG].OR.#, ;PRESET W AND C TO 1 ; 9342 FLG.W/1, FLG.C/1, ;BITS INVOLVED ; 9343 HOLD RIGHT ;LEAVE RH ALONE ; 9344 TL [BRX], WRITE TEST/1 ;IS THIS A WRITE TEST? ; 9345 =0 [BRX]_[BRX].OR.#, ; 9346 #/10000, ; 9347 HOLD RIGHT ;YES--TURN INTO WRITE REF ; 9348 [BRX]_[BRX].AND.#, ;START PAGE FAIL WORD ; 9349 #/411000, ;SAVE 3 INTERESTING BITS ; 9350 HOLD RIGHT ;SAVE VIRTUAL ADDRESS ; 9351 ;USER ADDR (400000) ; 9352 ;WRITE REF (010000) ; 9353 ;PAGED REF (001000) ; 9354 [BRX]_[BRX].XOR.#, ;FIX BIT 8 ; 9355 #/1000, HOLD RIGHT ; 9356 [BR]_[BRX], ;COPY VIRTUAL ADDRESS ; 9357 SC_7 ;PREPARE TO SHIFT 9 PLACES ; 9358 =0 ; 9359 PF25: [BR]_[BR]*.5, ;RIGHT ADJUST PAGE # ; 9360 STEP SC, ;COUNT SHIFT STEPS ; 9361 J/PF25 ;LOOP FOR 9 ; 9362 [BR]_[BR].AND.# CLR LH, ;MASK TO 9 BITS ; 9363 #/777 ; .. ; 9364 TL [EBR], ;KI MODE REFILL? ; 9365 #/40 ;FLAG BIT ; 9366 =0 READ [BRX], ;USER REF? (KL MODE) ; 9367 SKIP DP0, ; .. ; 9368 J/PF30 ;CONTINUE AT PF30 ; 9369 [ARX]_[BR]*.5, ;KI10 MODE REFILL ; 9370 J/KIFILL ;GO HANDLE EASY CASE ; 9371 ; 9372 ;HERE IN TOPS-20 MODE ; 9373 ;PICK UP CORRECT SECTION POINTER ; 9374 =0 ; 9375 PF30: [ARX]_WORK[PTA.E], ;EXEC MODE ; 9376 SKIP AD.EQ.0, 4T, ;SEE IF VALID ; 9377 J/PF35 ;CONTINUE BELOW ; 9378 [ARX]_WORK[PTA.U], ;USER MODE ; 9379 SKIP AD.EQ.0, 4T ;SEE IF VALID ; 9380 =0 VMA_[ARX]+[BR], ;POINTER VALID ; 9381 VMA PHYSICAL READ, ;START MEMORY ; 9382 J/PF77 ;CONTINUE BELOW ; 9383 [AR]_[UBR]+#, 3T, ;USER MODE ; 9384 #/540, ;OFFSET TO UPT ; 9385 J/PF40 ;GO GET POINTER ; 9386 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 216 ; DSK: KSHACK; PAGEF 10 02:03:53 8-OCT-84 PAGE FAIL REFIL LOGIC ; 9387 ; 9388 =0 ; 9389 PF35: VMA_[ARX]+[BR], ;POINTER VALID ; 9390 VMA PHYSICAL READ, ;START MEMORY ; 9391 J/PF77 ;CONTINUE BELOW ; 9392 [AR]_[EBR]+#, 3T, ;EXEC MODE ; 9393 #/540 ;OFFSET TO EPT ; 9394 PF40: VMA_[AR], ;LOAD THE VMA ; 9395 START READ, ;START THE MEMORY CRANKING ; 9396 VMA PHYSICAL ;ABSOLUTE ADDRESS ; 9397 MEM READ, ;WAIT FOR MEMORY ; 9398 [AR]_MEM ;POINT POINTER IN AR ; 9399 ;LOOK AT SECTION POINTER AND DISPATCH ON TYPE ; 9400 =000 ; 9401 PF45: SC_7, ;FETCH SECTION 0 POINTER ; 9402 CALL [SETPTR] ;FIGURE OUT POINTER TYPE ; 9403 SECIMM: TL [AR], ;IMMEDIATE POINTER ; 9404 #/77, ;TEST FOR 12-17 = 0 ; 9405 J/PF50 ;CONTINUE AT PF50 ; 9406 [AR]_[AR]+WORK[SBR], ;SHARED SECTION ; 9407 J/SECSHR ;GO FETCH POINTER FROM SPT ; 9408 [AR]_[AR]+WORK[SBR], ;INDIRECT SECTION POINTER ; 9409 CALL [RDPT] ;GO FETCH SPT ENTRY ; 9410 =111 TL [AR], ;12 TO 17 = 0? ; 9411 #/77 ; .. ; 9412 = ; 9413 =0 PAGE FAIL TRAP ;NO ; 9414 [AR]_[AR]*2, ;FIRST SHIFT ; 9415 STEP SC ;SC WAS LOADED AT PF45 ; 9416 =0*0 ; 9417 PF60: [AR]_[AR]*2, ;CONVERT TO ADDRESS OF ; 9418 STEP SC, ; SECTION TABLE ; 9419 J/PF60 ; 9420 CALL [RDPT] ;READ SECTION TABLE ; 9421 =1*1 J/PF45 ;TRY AGAIN ; 9422 = ; 9423 ; 9424 ;HERE FOR SHARED SECTION. AR GETS THE ADDRESS OF PAGE TABLE ; 9425 =0** ; 9426 SECSHR: CALL [RDPT] ;READ WORD FROM SPT ; 9427 TL [AR], #/77 ;TEST FOR BITS 12-17 = 0 ; 9428 ; 9429 ;HERE WITH ADDRESS OF PAGE TABLE IN AR AND SKIP ON ; 9430 ; BITS 12 THRU 17 EQUAL TO ZERO ; 9431 =0 ; 9432 PF50: PAGE FAIL TRAP ;BITS 12-17 .NE. 0 ; 9433 [ARX]_[AR].AND.# CLR LH, ;PAGE NUMBER OF PAGE TABLE ; 9434 #/3777 ;11 BIT PHYSICAL PAGE # ; 9435 =0* [AR]_[ARX], ;COPY ADDRESS ; 9436 CALL [UPCST] ;UPDATE CST0 ; 9437 PF70: [AR]_[AR].OR.WORK[PUR] ;PUT IN NEW AGE AND ; 9438 ; USE BITS ; 9439 =0** START NO TEST WRITE, ;START MEMORY WRITE ; 9440 CALL [IBPX] ;GO STORE IN MEMORY ; 9441 SC_7 ;THIS CAN BE BUMMED ; 9442 =0 ; 9443 PF75: [ARX]_[ARX]*2, ;CONVERT PAGE NUMBER TO ; 9444 STEP SC, ; PAGE ADDRESS ; 9445 J/PF75 ;LOOP OVER 9 STEPS ; 9446 ; 9447 ;WE NOW HAVE THE ADDRESS OF THE PAGE TABLE ENTRY. GO ; 9448 ; READ IT AND START ANALYSIS ; 9449 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 217 ; DSK: KSHACK; PAGEF 10 02:03:53 8-OCT-84 PAGE FAIL REFIL LOGIC ; 9450 ; 9451 ;IF WE ARE HERE FOR THE FIRST TIME FOR THE USER OR EXEC SAVE THE ; 9452 ; ADDRESS OF THE PAGE TABLE IN PTA.E OR PTA.U SO THAT WE DO NOT ; 9453 ; HAVE TO DO THE SECTION LOOKUP EVERY TIME. ; 9454 READ [BRX], SKIP DP0 ;USER OR EXEC REF? ; 9455 =000 [AR]_WORK[PTA.E], ;EXEC MODE ; 9456 SKIP AD.EQ.0, 4T, ;SEE IF SET YET ; 9457 CALL [SHDREM] ;SHOULD WE REMEMBER PTR ; 9458 [AR]_WORK[PTA.U], ;USER MODE ; 9459 SKIP AD.EQ.0, 4T, ;SEE IF SET YET ; 9460 CALL [SHDREM] ;SHOULD WE REMEMBER PTR ; 9461 WORK[PTA.E]_[ARX], ;SAVE FOR EXEC ; 9462 J/PF76 ;CONTINUE BELOW ; 9463 WORK[PTA.U]_[ARX], ;SAVE FOR USER ; 9464 J/PF76 ;CONTINUE BELOW ; 9465 =111 ; 9466 PF76: VMA_[ARX]+[BR], ;READ PAGE POINTER ; 9467 START READ, ; 9468 VMA PHYSICAL ; 9469 = ; 9470 =00 ; 9471 PF77: MEM READ, ;START ANALYSIS OF POINTER ; 9472 [AR]_MEM, ; 9473 CALL [SETPTR] ; 9474 PTRIMM: TL [AR], ;IMMEDIATE POINTER ; 9475 #/77, ;CHECK FOR BITS 0-5 ; 9476 J/PF80 ;GO TO PF80 ; 9477 [AR]_[AR]+WORK[SBR], ;SHARED POINTER ; 9478 J/PTRSHR ;GO TO READ SPT ; 9479 ; 9480 ;INDIRECT POINTER. CHANGE PAGE # AND LOOK FOR PAGE TABLE ; 9481 PTRIND: [BR]_[AR] SWAP, ;PUT IN RIGHT HALF ; 9482 SKIP/-1 MS ;DID CLOCK GO OFF ; 9483 =0 WORK[SV.AR1]_[AR], ;YES--UPDATE CLOCK ; 9484 J/PFTICK ; .. ; 9485 [BR]_[BR].AND.# CLR LH, ;UPDATE PAGE # AND RESTART ; 9486 #/777, ;MASK FOR PAGE # ; 9487 SKIP IRPT ;SEE IF THIS IS A LOOP ; 9488 =0 [AR]_[AR].AND.#, ;CHANGE INDIRECT POINTER ; 9489 #/277000, ; INTO SHARE POINTER ; 9490 HOLD RIGHT, ; .. ; 9491 J/PF45 ;GO BACK AND TRY AGAIN ; 9492 PAGE FAIL TRAP ;POINTER LOOP ; 9493 ; 9494 =0** ; 9495 PTRSHR: CALL [RDPT] ;GO LOOK AT POINTER ; 9496 TL [AR], ;BITS 12-17 .EQ. 0? ; 9497 #/77 ; 9498 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 218 ; DSK: KSHACK; PAGEF 10 02:03:53 8-OCT-84 PAGE FAIL REFIL LOGIC ; 9499 ; 9500 ;HERE WITH FINAL POINTER. SKIP IF 12-17 NOT EQUAL TO ZERO ; 9501 =00 ; 9502 PF80: PAGE FAIL TRAP ;NO--TAKE A TRAP ; 9503 [ARX]_[AR].AND.# CLR LH,;SAVE PHYSICAL PAGE # ; 9504 #/3777, ;MASK TO 13 BITS ; 9505 CALL [UPCST] ;UPDATE CST0 ; 9506 ;HERE WE HAVE CST ENTRY IN AR, PAGE FAIL WORD IN BRX. GO LOOK ; 9507 ; AT WRITABLE AND WRITTEN BITS ; 9508 =11 ; 9509 PF90: [BRX]_[BRX].OR.#, ;TRANSLATION IS VALID ; 9510 #/100000, HOLD RIGHT ; .. ; 9511 TL [FLG], FLG.W/1 ;IS THIS PAGE WRITABLE? ; 9512 =0 [BRX]_[BRX].OR.#, ;YES--INDICATE THAT IN PFW ; 9513 #/020000, ; 9514 J/PF100 ;NOT WRITE VIOLATION ; 9515 TL [BRX], ;IS THIS A WRITE REF? ; 9516 WRITE TEST/1, WRITE CYCLE/1 ; 9517 =0 PAGE FAIL TRAP ;WRITE VIOLATION ; 9518 PF107: [AR]_[AR].OR.WORK[PUR], ;PUT IN NEW AGE ; 9519 J/PF110 ;GO TO STORE CST ENTRY ; 9520 ; 9521 =0* ; 9522 PFTICK: [AR]_WORK[TIME1], ;UPDATE TIMER ; 9523 SPEC/CLRCLK, CALL [TOCK] ; 9524 [AR]_WORK[SV.AR1], ;RESTORE AR ; 9525 J/PTRIND ;GO TRY AGAIN ; 9526 ; 9527 ;HERE IF PAGE IS WRITABLE ; 9528 PF100: TL [BRX], WRITE CYCLE/1 ;IS THIS A WRITE REF? ; 9529 =0 [AR]_[AR].OR.#, ;YES--SET WRITTEN BIT ; 9530 #/1, ; 9531 HOLD LEFT, ; 9532 J/PF105 ; 9533 TR [AR], ;NOT WRITE, ALREADY WRITTEN? ; 9534 #/1 ; 9535 =0 ; 9536 PF105: [BRX]_[BRX].OR.#, ;WRITTEN SET BIT ; 9537 #/040000, ;MARK PAGE AS ; 9538 HOLD RIGHT, ;WRITABLE ; 9539 J/PF107 ;STORE CST WORD ; 9540 [FLG]_[FLG].AND.NOT.#, ;NOT WRITTEN, CAUSE TRAP ON ; 9541 FLG.W/1, ; WRITE ATTEMPT ; 9542 HOLD RIGHT, ;ONLY CLEAR LH ; 9543 J/PF107 ; 9544 =0** ; 9545 PF110: START NO TEST WRITE, ; 9546 CALL [IBPX] ;STORE CST ENTRY ; 9547 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 219 ; DSK: KSHACK; PAGEF 10 02:03:53 8-OCT-84 PAGE FAIL REFIL LOGIC ; 9548 ; 9549 ;HERE WHEN WE HAVE FIGURED OUT PHYSICAL ADDRESS (IN ARX) AND FLAGS ; 9550 ; (IN BRX) RELOAD PAGE TABLE. ; 9551 PFDONE: TR [FLG], ;MAP INSTRUCTION? ; 9552 #/400000 ; 9553 =0 [AR]_[ARX], ;GET PHYSCIAL PAGE # ; 9554 SC_7, ;PREPARE TO CONVERT TO ; 9555 J/PF130 ; WORD ADDRESS ; 9556 [AR]_WORK[SV.VMA],;RESTORE VMA ; 9557 J/PF120 ; 9558 =0 ; 9559 PF130: [AR]_[AR]*2, ;CONVERT TO WORD # ; 9560 STEP SC, ; 9561 J/PF130 ; 9562 [AR]_[AR].AND.#, ;JUST ADDRESS BITS ; 9563 #/3, ; 9564 HOLD RIGHT ; 9565 END MAP ;CLEAR MAP FLAGS ; 9566 [BRX]_[BRX].OR.#, ;TURN ON THE TRANSLATION ; 9567 #/100000, ; VALID BIT ; 9568 HOLD RIGHT ; IN LEFT HALF ONLY ; 9569 TL [FLG], FLG.C/1 ;CACHE BIT SET? ; 9570 =0 [BRX]_[BRX].OR.#, ;YES--SET IN MAP WORD ; 9571 #/002000, HOLD RIGHT ; .. ; 9572 [BRX]_[BRX].AND.#, ;PRESERVE WORD # ; 9573 #/777, HOLD LEFT ; IN PAGE FAIL WORD ; 9574 [AR]_[AR].OR.[BRX], ;COMPLETE MAP INSTRUCTION ; 9575 EXIT ; 9576 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 220 ; DSK: KSHACK; PAGEF 10 02:03:53 8-OCT-84 PAGE FAIL REFIL LOGIC ; 9577 ; 9578 PF120: [BR]_[AR] ;COPY PAGE FAIL WORD ; 9579 [BR]_[AR].AND.NOT.#, ;CLEAR BITS WHICH START A CYCLE ; 9580 READ CYCLE/1, ; .. ; 9581 WRITE CYCLE/1, ; .. ; 9582 WRITE TEST/1, ; .. ; 9583 HOLD RIGHT ;JUST DO LEFT HALF ; 9584 VMA_[BR], 3T, ;RESTORE VMA ; 9585 DP FUNC/1 ;SET USER ACCORDING TO WHAT IT WAS ; 9586 [ARX]_[ARX].AND.# CLR LH, ;JUST KEEP PAGE # ; 9587 #/3777 ; .. ; 9588 [BRX]_[ARX].OR.#, #/400000 ;SET VALID BITS ; 9589 TL [FLG], FLG.W/1 ;WANT WRITE SET? ; 9590 =0 [BRX]_[BRX].OR.#, #/040000 ;SET WRITE BIT ; 9591 TL [FLG], FLG.C/1, ;WANT CACHE SET? ; 9592 LOAD PAGE TABLE ;LOAD PAGE TABLE ON NEXT ; 9593 ; MICRO INSTRUCTION ; 9594 =0 [BRX]_[BRX].OR.#, ;SET CACHE BIT ; 9595 #/020000, J/PF125 ;CACHE BIT ; 9596 READ [BRX] ;LOAD PAGE TABLE ; 9597 PF125: [ARX]_WORK[SV.ARX] ; 9598 [BR]_WORK[SV.BR] ; 9599 [BRX]_WORK[SV.BRX] ; 9600 VMA_[AR], ;MAKE MEM REQUEST ; 9601 DP FUNC/1, 3T, ;FROM DATA PATH ; 9602 WAIT/1 ;WAIT FOR PREVIOUS CYCLE TO ; 9603 ; COMPLETE. (NEED THIS TO ; 9604 ; START ANOTHER CYCLE) ; 9605 [AR]_WORK[SV.AR], ; 9606 RETURN [0] ; 9607 ;SUBROUTINE TO START CST UPDATE ; 9608 ;CALL WITH: ; 9609 ; AR/ PHYSICAL PAGE NUMBER ; 9610 ;RETURN 2 WITH ENTRY IN AR, PAGE FAIL IF AGE TOO SMALL ; 9611 =0** ; 9612 UPCST: [AR]_[AR]+WORK[CBR], ;ADDRESS OF CST0 ENTRY ; 9613 CALL [RDPT] ;READ OLD VALUE ; 9614 TL [AR], ;0 - 5 = 0? ; 9615 #/770000 ; .. ; 9616 =0 [AR]_[AR].AND.WORK[CSTM], ;CLEAR AGE FIELD ; 9617 RETURN [2] ;AGE IS NOT ZERO ; 9618 PAGE FAIL TRAP ;AGE TOO SMALL ; 9619 ; 9620 ;SUBROUTINE TO LOOK AT PAGE POINTER ; 9621 ;CALL WITH POINTER IN AR ; 9622 ;RETURNS 1 IF TYPE 1 ; 9623 ;RETURNS 2 IF TYPE 2 ; 9624 ;RETURNS 3 IF TYPE 3 ; 9625 ;GOES TO PFT IF TYPE 0 OR 4 THRU 7 ; 9626 SETPTR: [ARX]_[AR].OR.#, ;AND C AND W BITS ; 9627 #/753777 ; OF ALL POINTERS ; 9628 [FLG]_[FLG].AND.[ARX], ; .. ; 9629 HOLD RIGHT ;KEEP IN LH OF FLG ; 9630 READ [AR], ;TYPE 4,5,6 OR 7? ; 9631 SKIP DP0 ; .. ; 9632 =0 TL [AR], ;HERE WE TEST FOR TYPE ; 9633 #/300000, ; ZERO POINTER ; 9634 J/STPTR1 ;CHECK AT STPTR1 ; 9635 PAGE FAIL TRAP ;BAD TYPE ; 9636 =0 ; 9637 STPTR1: TL [AR], ;NOT ZERO ; 9638 #/100000, ;SEPERATE TYPE 2 ; 9639 J/STPTR2 ; .. ; 9640 PAGE FAIL TRAP ;TYPE 0 ; 9641 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 221 ; DSK: KSHACK; PAGEF 10 02:03:53 8-OCT-84 PAGE FAIL REFIL LOGIC ; 9642 ; 9643 =0 ; 9644 STPTR2: TL [AR], ;SEPERATE TYPE 1 ; 9645 #/200000, ; AND 3 ; 9646 J/STPTR3 ; .. ; 9647 RETURN [2] ;TYPE 2 ; 9648 ; 9649 =0 ; 9650 STPTR3: RETURN [3] ;TYPE 3 ; 9651 RETURN [1] ;TYPE 1 ; 9652 ; 9653 ;SUBROUTINE TO FETCH A PAGE POINTER OR CST ENTRY ; 9654 ;CALL WITH ADDRESS IN AR ; 9655 ;RETURN 4 WITH WORD IN AR ; 9656 ; ; 9657 RDPT: VMA_[AR], ;LOAD THE VMA ; 9658 START READ, ;START MEM CYCLE ; 9659 VMA PHYSICAL, ;ABSOLUTE ADDRESS ; 9660 SKIP IRPT ;CHECK FOR INTERRUPTS ; 9661 =0 MEM READ, ;NO INTERRUPTS ; 9662 [AR]_MEM, ;PUT THE DATA INTO AR ; 9663 RETURN [4] ;AND RETURN ; 9664 PAGE FAIL TRAP ;INTERRUPT ; 9665 ; 9666 ; 9667 ;SUBROUTINE TO SEE IF WE SHOULD REMEMBER AN EXEC SECTION PTR ; 9668 ;CALL WITH SKIP ON ADR.EQ.0 ; 9669 ;RETURNS 2 IF WE SHOULD STORE AND 7 IF WE SHOULD NOT ; 9670 ; ; 9671 =0 ; 9672 SHDREM: RETURN [7] ;INDIRECT PTR ; 9673 [AR]_.NOT.[FLG] ;FLIP BITS ; 9674 TL [AR], FLG.W/1, FLG.C/1 ;BOTH BITS SET ; 9675 =0 RETURN [7] ;NO--DON'T STORE ; 9676 RETURN [2] ;STORE ; 9677 ; 9678 ;HERE IN KI10 MODE ; 9679 ;BR CONTAINS PAGE # AND ARX CONTAINS PAGE #/2 ; 9680 ; 9681 KIFILL: READ [BRX], ;USER REF? ; 9682 SKIP DP0 ; .. ; 9683 =0 [BR]-#, ;EXEC--LESS THAN 340? ; 9684 #/340, ; .. ; 9685 SKIP DP18, 4T, ; .. ; 9686 J/KIF10 ;FOLLOW EXEC PATH ; 9687 KIUPT: [ARX]_[ARX]+[UBR], ;POINTER TO PAGE MAP ENTRY ; 9688 LOAD VMA, ;PUT ADDRESS IN VMA ; 9689 VMA PHYSICAL, ;ABSOLUTE ADDRESS ; 9690 START READ, ;FETCH UPT WORD ; 9691 J/KIF30 ;JOIN COMMON CODE ; 9692 =0 ; 9693 KIF10: [BR]-#, ;EXEC ADDRESS .GE. 340 ; 9694 #/400, ; SEE IF .GT. 400 ; 9695 SKIP DP18, 4T, ; .. ; 9696 J/KIEPT ;LOOK AT KIF20 ; 9697 [ARX]_[ARX]+#, 3T, ;EXEC ADDRESS .LT. 340 ; 9698 #/600, ;IN EBR+600 ; 9699 J/KIEPT ;JOIN COMMON CODE ; 9700 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 222 ; DSK: KSHACK; PAGEF 10 02:03:53 8-OCT-84 PAGE FAIL REFIL LOGIC ; 9701 ; 9702 =0 ; 9703 KIEPT: [ARX]_[ARX]+[EBR], ;ADD OFFSET TO ; 9704 LOAD VMA, ; EPT ; 9705 START READ, ;START FETCH ; 9706 VMA PHYSICAL, ;ABSOLUTE ADDRESS ; 9707 J/KIF30 ;GO GET POINTER ; 9708 [ARX]_[ARX]+#, ;PER PROCESS PAGE ; 9709 #/220, 3T, ; IS IN UPT + 400 ; 9710 J/KIUPT ;JOIN COMMON CODE ; 9711 KIF30: MEM READ, ;WAIT FOR DATA ; 9712 [ARX]_MEM ;PLACE IT IN ARX ; 9713 TR [BR], ;SEE IF EVEN OR ODD ; 9714 #/1 ; .. ; 9715 ; 9716 =0 ; 9717 KIF40: READ [ARX], ;ODD ; 9718 SKIP DP18, ;SEE IF VALID ; 9719 J/KIF50 ;JOIN COMMON CODE ; 9720 [ARX]_[ARX] SWAP, ;EVEN--FLIP AROUND ; 9721 J/KIF40 ; AND CONTINUE ; 9722 ; 9723 =0 ; 9724 KIF50: PAGE FAIL TRAP ; 9725 ;AT THIS POINT WE HAVE THE PAGE MAP ENTRY IN RH OF AR ; 9726 [FLG]_[FLG].AND.NOT.#, ;CLEAR W AND C ; 9727 FLG.W/1, FLG.C/1 ; FLAGS ; 9728 TR [ARX], #/020000 ;CACHE ENABLED? ; 9729 =0 [FLG]_[FLG].OR.#, ;SET CACHE BITS ; 9730 FLG.C/1, HOLD RIGHT ; .. ; 9731 TR [ARX], #/040000 ;DO NOT CACHE ; 9732 ;SEE IF CACHE BIT SET ; 9733 =0 [BRX]_[BRX].OR.#, ;COPY BITS TO BRX ; 9734 #/020000, ; 9735 HOLD RIGHT ; 9736 TR [ARX], ; .. ; 9737 #/100000 ; 9738 =0 [FLG]_[FLG].OR.#, ;SAVE W ; 9739 FLG.W/1, ; .. ; 9740 HOLD RIGHT, ; .. ; 9741 J/KIF90 ;ALL DONE ; 9742 TL [BRX], ;W=0, WRITE REF? ; 9743 WRITE CYCLE/1 ; 9744 =0 ; 9745 KIF80: [BRX]_[BRX].OR.#, ;WRITE FAILURE ; 9746 #/100000, HOLD RIGHT, ;INDICATE THAT ACCESS WAS ON ; 9747 J/KIF50 ;GO PAGE FAIL ; 9748 J/PFDONE ;ALL DONE ; 9749 ; 9750 KIF90: [BRX]_[BRX].OR.#, ;PAGE IS WRITABLE ; 9751 #/40000, ;TURN ON IN BRX ; 9752 J/PFDONE ;ALL SET ; 9753 ; 9754 ;HERE ON HARD PAGE FAILURES ; 9755 HARD: WORK[SV.BR]_[BR] ;SAVE BR (CLEANUP MAY NEED IT) ; 9756 =0 [BR]_VMA, ;BUILD PAGE FAIL WORD ; 9757 CALL [ABORT] ;CLEAR ERROR ; 9758 [BR]_[BR].AND.#, ;SAVE THE FLAGS ; 9759 #/401237, ; .. ; 9760 HOLD RIGHT ; .. ; 9761 [BRX]_[BRX].OR.[BR], ;COMPLETE PAGE FAIL WORD ; 9762 J/KIF50 ;GO TRAP ; 9763 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 223 ; DSK: KSHACK; PAGEF 10 02:03:53 8-OCT-84 PAGE FAIL REFIL LOGIC ; 9764 ; 9765 PFPI1: SKIP IRPT ;TIMER TRAP? ; 9766 =00 ; 9767 [AR]_WORK[TIME1], ;YES--GET LOW WORD ; 9768 SPEC/CLRCLK, ;CLEAR CLOCK FLAG ; 9769 CALL [TOCK] ;DO THE UPDATE ; 9770 J/PFT1 ;EXTERNAL INTERRUPT ; 9771 ABORT MEM CYCLE ;CLEAR 1MS FLAGS ; 9772 = ; 9773 PFPI2: [AR]_WORK[SV.VMA], ;RESTORE VMA ; 9774 J/PF125 ; 9775 ; 9776 ; 9777 ;HERE ON PAGE FAIL TRAP ; 9778 =0 ; 9779 PFT: HALT [IOPF] ;IO PAGE FAILURE ; 9780 PFT1: [AR]_WORK[SV.VMA], ; 9781 SKIP/TRAP CYCLE ;SEE IF TRAP CYCLE ; 9782 =0 TL [AR], FETCH/1, ;IS THIS AN INSTRUCTION FETCH ; 9783 J/PFT1A ;GO LOOK BELOW ; 9784 [AR]_WORK[TRAPPC] ;RESTORE PC ; 9785 READ [AR], LOAD FLAGS, J/CLDISP ; 9786 =0 ; 9787 PFT1A: J/CLEANED ;YES--NO PC TO BACK UP ; 9788 FIXPC: [PC]_[PC]-1, HOLD LEFT ;DATA FAILURE--BACKUP PC ; 9789 =0 ; 9790 CLDISP: CLEANUP DISP ;GO CLEANUP AFTER PAGE FAIL ; 9791 =0000 ; 9792 CLEANUP: ; 9793 CLEANED: ;(0) NORMAL CASE ; 9794 END STATE, SKIP IRPT, ;NO MORE CLEANUP NEEDED ; 9795 J/PFT2 ;HANDLE PAGE FAIL OR INTERRUPT ; 9796 [AR]_WORK[SV.ARX], ;(1) BLT ; 9797 J/BLT-CLEANUP ; 9798 [PC]_[PC]+1, ;(2) MAP ; 9799 J/MAPDON ; 9800 STATE_[EDIT-SRC], ;(3) SRC IN STRING MOVE ; 9801 J/STRPF ; 9802 STATE_[EDIT-DST], ;(4) DST IN STRING MOVE ; 9803 J/STRPF ; 9804 STATE_[SRC], ;(5) SRC+DST IN STRING MOVE ; 9805 J/BACKD ; 9806 STATE_[EDIT-DST], ;(6) FILL IN MOVSRJ ; 9807 J/STRPF4 ; 9808 STATE_[EDIT-SRC], ;(7) DEC TO BIN ; 9809 J/PFDBIN ; 9810 STATE_[EDIT-SRC], ;(10) SRC+DST IN COMP ; 9811 J/CMSDST ; 9812 END STATE, J/BACKS ;(11) EDIT SRC FAIL ; 9813 END STATE, J/BACKD ;(12) EDIT DST FAIL ; 9814 STATE_[EDIT-SRC], ;(13) SRC+DST IN EDIT ; 9815 J/BACKD ; 9816 = ; 9817 î ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 224 ; DSK: KSHACK; PAGEF 10 02:03:53 8-OCT-84 PAGE FAIL REFIL LOGIC ; 9818 ; 9819 =0 ; 9820 PFT2: [AR]_[UBR]+#, ;PREPARE TO STORE PFW ; 9821 #/500, 3T, ; 9822 J/PFT10 ; 9823 PFT3: TAKE INTERRUPT ;PROCESS INTERRUPT ; 9824 PFT10: VMA_[AR], ;WHERE TO STORE PFW ; 9825 VMA PHYSICAL WRITE ; 9826 =0 MEM WRITE, ;STORE PFW ; 9827 MEM_[BRX], ; 9828 CALL [NEXTAR] ;ADVANCE POINTER TO ; 9829 ;PREPARE TO STORE PC ; 9830 TL [EBR], #/400000 ;KL PAGING? ; 9831 =0 [BR]_FLAGS,J/EAPF ;YES--DO EXTENDED THING ; 9832 [BR]_PC WITH FLAGS ;GET OLD PC ; 9833 MEM WRITE, ;STORE OLD PC ; 9834 MEM_[BR], ; 9835 J/EAPF1 ; 9836 ; 9837 MAPDON: END STATE, ;CLEAR MAP BIT ; 9838 SKIP IRPT ;ANY INTERRUPT? ; 9839 =0 [AR]_[BRX], ;RETURN PAGE FAIL WORD ; 9840 EXIT ; 9841 [PC]_[PC]-1, J/PFT3 ;INTERRUPTED OUT OF MAP ; 9842 ; RETRY INSTRUCTION ; 9843 ; 9844 ; 9845 =0 ; 9846 EAPF: MEM WRITE, MEM_[BR], ;STORE FLAGS ; 9847 CALL [NEXTAR] ;STORE PC WORD ; 9848 MEM WRITE, MEM_[PC] ; .. ; 9849 EAPF1: [AR]_[AR]+1, ; 9850 VMA PHYSICAL READ, ; 9851 J/GOEXEC ; 9852 ; 9853 NEXTAR: NEXT [AR] PHYSICAL WRITE, RETURN [1] ; 9854 ; 9855 .ENDIF/ITS ; 9856 ; Number of Micro Words used: ; D Words= 512 ; U Words= 1980 END ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 225 ; CROSS REFERENCE LISTING (U) A 707 # AR 711 # 2579 2618 2648 2649 2714 2763 2771 2914 2916 2919 2922 2925 2928 3014 3024 3039 3056 3067 3077 3087 3118 3129 3139 3178 3190 3197 3201 3212 3213 3215 3217 3218 3226 3249 3250 3513 3518 3520 3532 3535 3538 3543 3544 3615 3633 3635 3701 3704 3774 3775 3781 3802 3850 3865 3902 3913 3938 4003 4027 4032 4068 4113 4117 4125 4127 4294 4299 4332 4368 4382 4399 4410 4413 4416 4431 4458 4459 4464 4482 4498 4518 4634 4643 4648 4658 4664 4683 4687 4706 4734 4738 4740 4741 4761 4793 4796 4799 4813 4839 4856 4857 4862 4867 4875 4877 4879 4952 4962 4964 4969 4970 5016 5022 5032 5036 5076 5080 5084 5088 5268 5281 5368 5372 5384 5387 5393 5399 5439 5520 5523 5622 5628 5632 5633 5664 5670 5690 5696 5697 5698 5699 5708 5713 5734 5735 5747 5749 5758 5759 5780 5785 5786 5792 5828 5832 5834 5837 5840 5844 5846 5848 5850 5851 5852 5853 5859 5861 5862 5870 5875 5892 5918 5926 5931 5933 5978 5991 6010 6019 6023 6039 6053 6055 6057 6063 6091 6098 6101 6112 6115 6123 6125 6129 6134 6136 6152 6157 6160 6182 6185 6186 6190 6310 6314 6318 6325 6336 6346 6361 6382 6387 6400 6403 6429 6515 6522 6539 6561 6575 6602 6613 6614 6615 6628 6663 6693 6704 6742 6757 6785 6790 6820 6821 6822 6823 6825 6826 6829 6834 6885 6908 6916 6917 6943 6982 6994 6995 7003 7024 7027 7030 7034 7035 7037 7041 7043 7099 7100 7105 7106 7114 7117 7121 7190 7213 7219 7239 7258 7262 7265 7266 7267 7268 7290 7316 7317 7321 7327 7328 7332 7403 7413 7416 7439 7441 7443 7445 7448 7450 7452 7490 7493 7500 7504 7506 7561 7563 7568 7573 7655 7746 7773 7851 7853 7856 7858 7860 7862 7864 7866 7868 7892 7898 7976 7986 7993 7996 7997 8026 8034 8098 8117 8121 8135 8150 8152 8383 8478 8486 8517 8761 8784 8786 8797 8799 8805 8807 8814 8873 8879 8882 8910 8938 ARX 712 # 2681 2970 2971 4006 4008 4022 4051 4396 4408 4417 4418 4436 4439 4441 4463 4484 4500 4520 4523 4544 4676 4705 4758 4784 4785 4865 4959 4960 4968 5039 5234 5241 5242 5271 5274 5296 5433 5455 5630 5669 5702 5891 5912 5915 5976 5993 6015 6036 6056 6061 6108 6146 6153 6401 6442 6450 6484 6519 6569 6578 6588 6597 6620 6621 6629 6662 6666 6743 6780 6788 6792 6794 7123 7126 7172 7242 7318 7440 7444 7446 7449 7451 7480 7482 7799 7812 7816 8040 8389 8616 8763 8765 8834 8835 8847 8861 8886 8889 8895 BR 713 # 2340 2575 2611 2613 2617 3108 3245 3279 3280 3283 3284 3285 3286 3302 3305 3308 3311 3315 3318 3320 3353 3354 3357 3358 3369 3378 3379 3381 3382 3384 3385 3387 3388 3676 3679 3682 3685 3688 3691 3694 3697 3843 4073 4078 4107 4133 4142 4143 4296 4301 4404 4539 4708 4710 4718 4722 4786 4789 4864 4868 4869 4870 4873 4878 4910 5056 5058 5119 5120 5121 5122 5123 5130 5139 5143 5152 5215 5216 5217 5218 5219 5240 5284 5291 5396 5441 5443 5453 5458 5473 5550 5629 5636 5637 5641 5642 5700 5703 5738 5790 5873 5898 5900 5910 5924 6004 6022 6025 6263 6275 6276 6278 6279 6307 6316 6362 6367 6394 6397 6489 6555 6558 6559 6572 6580 6586 6710 6720 6731 6740 6744 6762 6816 6831 6870 6882 6952 7215 7216 7259 7260 7301 7309 7320 7324 7412 7415 7437 7471 7473 7476 7567 7569 7581 7582 7590 7596 7745 7764 7768 7784 7857 7859 7861 7867 7869 7914 7931 8046 8070 8071 8072 8122 8125 8126 8129 8130 8158 8162 8381 8740 8744 8817 8819 8823 8828 8884 8892 8894 9044 BRX 714 # 4433 4461 4467 4540 4563 4584 4588 4592 4596 4602 4606 4610 4614 4693 4747 4788 4902 4905 4916 5375 5432 5463 5470 5484 5499 5587 5590 5662 5663 5665 5705 5710 5903 5920 5987 6001 6002 6045 6267 6368 6440 6452 6453 6477 6527 6535 6616 6646 6659 6668 6673 6681 6683 6692 6698 6703 6715 6754 6756 6774 6783 6811 6813 6815 6846 6849 6866 6879 6881 6964 6966 6969 7038 7045 7142 7146 7150 7154 7158 7162 7178 7463 7814 7985 8053 8054 8775 8776 8778 8781 8816 8839 8851 8858 EBR 716 # 7349 7574 7575 7576 7579 7988 8044 9023 FLG 719 # 2425 2449 2450 2451 3844 3893 5855 5863 5956 5957 5964 6094 6097 6100 6103 6106 6121 6149 6162 6169 6170 6960 8745 8843 8860 8946 8958 8995 9043 9049 HR 710 # 2463 2469 2475 2481 2490 2494 2503 2508 2626 2982 2987 3778 3787 3790 3792 3793 3794 3812 3827 3832 3849 3854 3857 3878 3899 3912 3933 4226 4236 4238 4240 4242 4253 4267 4347 6265 7280 7358 7364 7374 7375 7376 7380 7381 7382 7383 7391 7392 7395 7401 7407 7408 7409 7410 7855 8453 8457 8459 8461 8463 8465 8467 8695 MAG 708 # 2615 4443 4446 4465 4468 4469 4483 4489 4491 4525 4527 4529 4712 4730 4753 4757 4760 4801 4803 4804 4934 4939 4944 4950 4951 5568 5569 5894 5986 6042 6068 6104 6138 6142 6144 MASK 718 # 2295 2296 2297 2300 2307 2343 2355 2393 2397 2400 2403 2412 2415 2418 2421 2527 2710 2938 2959 3174 3223 3851 3900 3914 3942 4257 4268 4290 4293 4341 4403 4542 4577 4714 4725 4754 4880 5098 5221 5232 5554 5572 5573 5574 5586 5795 5856 5929 5980 6071 6140 6229 6231 6233 6235 6237 6239 6241 6243 6245 6486 6488 6511 6626 6955 7744 7809 7810 7811 7966 7967 7968 7969 7970 7971 7972 7978 7998 8021 8038 8052 8112 8115 8151 8159 8163 8362 8516 8717 8719 8735 8929 9009 9010 9012 9013 9015 9016 9018 9019 ONE 715 # 2332 2336 2383 2385 2442 2532 2553 2605 2608 3149 3583 3650 3666 3734 3749 3776 3785 3788 3886 3904 3907 4286 4336 4352 4639 5062 5366 5440 5488 5489 5503 5505 5510 5592 5593 5782 5794 5869 6020 6179 6302 6344 6378 6385 6406 6424 6434 6454 6455 6490 6491 6534 6598 6603 6667 6679 6686 6706 6713 6718 6727 6737 6741 6745 6746 6782 6796 6808 6861 6886 6984 7007 7062 7187 7188 7194 7217 7261 7304 7672 7720 7723 7751 ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 226 ; CROSS REFERENCE LISTING 7796 7826 7882 8025 8379 8502 8590 8597 8600 8603 8606 8609 8762 8951 9028 9036 PC 709 # 2382 2386 2405 2517 2530 2595 2621 3571 3700 3705 3985 4105 4111 4130 4326 4530 4532 5017 5027 7339 7872 8155 8513 8760 9042 PI 720 # 3863 3864 3879 7384 7385 7757 7848 7863 7865 7870 7881 7883 7959 7960 7961 7962 7963 7964 7965 7974 8991 9000 9001 9003 9004 9006 9007 T0 722 # 4510 4514 4756 4767 4774 4777 4779 4780 5911 5919 5945 5947 5948 5949 5952 5960 5963 5965 6006 6073 6081 6082 6711 6778 7884 8050 T1 723 # 4732 4874 5564 5566 5570 5583 5585 5935 6021 6024 6044 6054 UBR 717 # 2528 4259 4292 7342 7497 7501 7589 7595 XWD1 721 # 3757 3975 8036 (D) A 1430 # DBLAC 1434 # 2974 DFP 1440 # 5881 5882 5971 6033 DREAD 1433 # 2965 2966 4391 4392 4477 4700 DSHIFT 1436 # 3160 3161 FP 1438 # 5602 5603 5604 5605 5607 5608 5610 5611 5612 5613 5615 5616 5648 5649 5650 5652 5654 5655 5678 5679 5680 5682 5684 5685 5765 5766 FPI 1437 # 5606 5614 5653 5683 IOT 1441 # 7370 7371 7622 8080 8081 8082 8083 8084 8085 8087 8088 8089 8090 8091 8092 8473 8474 8691 RD-PF 1439 # 2741 2746 2751 2756 2796 2801 2806 2811 2816 2821 2826 2831 2838 2843 2848 2853 2859 2864 2869 2874 3007 3017 3027 3032 3049 3060 3070 3080 3100 3111 3122 3132 4361 4375 4425 4450 4621 4626 READ 1431 # 2744 2749 2754 2759 2779 2798 2799 2803 2804 2809 2814 2819 2824 2829 2834 2840 2841 2845 2846 2851 2856 2862 2867 2872 2877 3009 3010 3019 3020 3029 3030 3034 3035 3042 3051 3052 3062 3063 3072 3073 3082 3083 3102 3103 3113 3114 3124 3125 3134 3135 3428 3429 3430 3431 3432 3433 3444 3445 3446 3447 3448 3449 3450 3451 3463 3464 3465 3466 3467 3468 3469 3470 3480 3481 3482 3483 3484 3485 3486 3487 3604 3605 3606 3607 3608 3609 3610 3611 3622 3623 3624 3625 3626 3627 3628 3629 3639 3640 3641 3642 3643 3644 3645 3646 3655 3656 3657 3658 3659 3660 3661 3662 3924 4363 4364 4377 4378 4427 4428 4452 4453 4623 4624 4628 4629 5006 5007 5008 5009 5010 5729 SHIFT 1435 # 3155 3156 3157 WRITE 1432 # 2743 2748 2753 2758 2808 2813 2818 2823 2828 2833 2850 2855 2861 2866 2871 2876 2975 3044 3045 (U) ACALU 1339 # AC+N 1341 # 2325 2326 2333 2561 2573 2681 2971 2980 3229 3250 3296 3326 3367 4396 4408 4489 4491 4493 4501 4503 4510 4512 4524 4525 4526 4527 4528 4529 4645 4730 4753 4757 4760 4774 4775 4777 4780 4799 4801 4803 4804 4933 4934 4937 4938 4939 4942 4943 4944 4950 4951 5894 5986 6040 6042 6048 6108 6115 6153 6160 6306 6314 6324 6327 6358 6361 6375 6382 6390 6400 6438 6449 6469 6484 6501 6517 6519 6545 6548 6550 6557 6558 6559 6561 6567 6569 6572 6578 6580 6608 6610 6611 6615 6622 6623 6624 6628 6629 6636 6638 6644 6650 6666 6677 6689 6698 6704 6715 6718 6720 6724 6737 6743 6744 6869 6903 6908 6914 6951 6953 7061 7062 7176 7183 7190 7210 7212 7219 7240 7262 7299 7301 7307 7309 7313 7316 7321 B 1340 # (D) ACDISP 1461 # 3765 7370 7371 7622 (U) ACN 1342 # 2561 2573 2681 2971 2980 3229 3250 3296 3326 3367 4396 4408 4489 4491 4493 4501 4503 4510 4512 4524 4525 4526 4527 4528 4529 4645 4730 4753 4757 4760 4774 4775 4777 4780 4799 4801 4803 4804 4933 4934 4937 4938 4939 4942 4943 4944 4950 4951 5894 5986 6040 6042 6048 6108 6115 6153 6160 6650 6666 6677 6724 6743 BIN0 1349 # 2325 6545 6567 6572 6580 6611 6622 6623 6624 6628 6636 BIN1 1350 # 2326 2333 6517 6519 6548 6550 6557 6558 6559 6561 6569 6578 6608 6610 6615 6629 6638 DLEN 1346 # 6306 6314 6327 6358 6361 6390 6400 6438 6449 6484 6644 6689 6698 6704 6715 6718 6720 6737 6744 7061 7062 7176 7190 7210 7313 7316 7321 DSTP 1347 # 6324 6501 6903 6908 6953 7183 7240 7262 7307 7309 MARK 1348 # 6869 6951 SRCLEN 1344 # SRCP 1345 # 6375 6382 6469 6914 7212 7219 7299 7301 (U) AD 602 # 2300 2307 2343 2355 2393 2397 2400 2403 2412 2415 2418 2421 2494 2527 2710 2936 2938 2957 2959 3851 3942 4257 4290 4341 4714 4725 5566 6229 6231 6233 6235 6237 6239 6241 6243 6245 6276 6511 6626 6955 7744 7809 7810 7811 7966 7967 7968 7969 7970 7971 7972 7978 8021 8038 8052 8112 8115 8151 8159 8163 8362 8516 8717 8719 8735 8764 8929 9009 9010 9012 9013 9015 9016 9018 9019 A 631 # 2295 2297 2382 2386 2405 2469 2481 2508 2517 2575 2617 2618 2621 2681 2714 2971 2987 3178 3190 3197 3201 3212 3213 3215 3217 3218 3226 3245 3250 3279 3280 3283 3284 3285 3286 3302 3305 3308 3311 3315 3318 3353 3354 3357 3358 3369 3378 3379 3381 3382 3384 3385 3387 3388 3544 3571 3635 3676 3688 3700 3701 3704 3705 3774 3775 3781 3802 3812 3832 3850 3865 3902 3913 3938 4003 4006 4008 4027 4032 4107 4113 4125 4130 4143 4431 4433 4436 4458 4459 4461 4463 4482 4484 4498 4500 4518 4520 4532 4539 4540 4542 4563 4577 4634 4643 4658 4664 4693 4706 4708 4710 4722 4734 4738 4754 4758 4761 4774 4780 ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 227 ; CROSS REFERENCE LISTING 4784 4793 4813 4862 4867 4868 4869 4874 4875 4877 4879 4952 5017 5027 5032 5039 5056 5080 5088 5143 5221 5234 5271 5291 5296 5372 5375 5393 5433 5453 5463 5470 5523 5550 5554 5568 5569 5572 5573 5574 5585 5586 5587 5628 5629 5630 5641 5664 5665 5669 5670 5690 5698 5700 5705 5708 5713 5747 5749 5780 5782 5785 5786 5792 5828 5832 5834 5840 5848 5850 5851 5852 5869 5870 5875 5903 5910 5911 5915 5918 5919 5926 5931 5933 5945 5947 5948 5949 5952 5960 5963 5965 5976 5978 5980 5987 5991 5993 6004 6010 6015 6019 6020 6023 6036 6039 6061 6071 6073 6081 6082 6091 6098 6101 6112 6115 6129 6134 6136 6157 6160 6182 6190 6279 6325 6346 6361 6382 6394 6400 6429 6440 6477 6484 6519 6558 6578 6580 6615 6628 6629 6666 6692 6698 6703 6704 6711 6715 6720 6742 6743 6744 6778 6813 6822 6825 6829 6831 6870 6881 6908 6916 6952 6969 6995 7027 7034 7045 7099 7117 7123 7215 7219 7239 7259 7262 7266 7268 7301 7309 7316 7317 7321 7328 7384 7385 7403 7490 7561 7563 7573 7579 7581 7589 7595 7655 7814 7848 7872 7892 7898 7985 7993 8026 8034 8053 8072 8098 8122 8125 8129 8135 8155 8158 8162 8381 8383 8389 8478 8486 8513 8616 8765 8781 8784 8814 8817 8873 8884 8894 8910 A+B 604 # 2332 2336 2383 2385 2442 2528 2532 2553 2605 2608 2982 3320 3583 3650 3886 3904 3907 4073 4078 4259 4286 4292 4336 4352 4510 4514 4544 4601 4605 4687 4785 4786 4789 4799 4873 4878 4905 4909 4915 5062 5488 5489 5503 5505 5510 5592 5593 5642 5790 5794 5873 5924 6006 6302 6367 6401 6406 6424 6454 6455 6561 6575 6586 6588 6598 6667 6679 6686 6706 6727 6741 6796 6808 6816 6861 6886 6984 7007 7035 7062 7217 7242 7261 7304 7324 7342 7349 7672 7720 7723 7745 7751 7796 7826 7988 8025 8036 8046 8054 8379 8502 8590 8597 8600 8603 8606 8609 8763 9023 9028 9036 A+Q 603 # 4756 4767 4788 5440 5912 5920 6022 6025 6179 A-.25 615 # A-B-.25 620 # 4683 4740 4741 5439 5458 5484 5499 5590 5702 5710 6063 6314 6453 6489 6710 A-D-.25 616 # 6539 6780 6785 6834 A-Q-.25 619 # A.AND.B 636 # 4467 4483 4705 4777 5240 5856 6108 6140 6142 6153 6336 6486 7413 7416 7883 8070 A.AND.Q 635 # 4465 4712 4757 4801 4803 4880 4934 4939 4944 4950 4951 5152 5232 5241 6104 6138 A.EQV.B 664 # A.EQV.Q 663 # 4443 4446 4468 4469 4525 4527 4529 4804 A.OR.B 628 # 3108 4404 5242 5399 6267 6368 6403 6442 6602 7043 7440 7444 7451 7482 7506 7861 7867 8040 8117 8152 8744 A.OR.Q 627 # 5564 5583 5935 A.XOR.B 656 # 6144 7812 A.XOR.Q 655 # B 630 # 2309 2317 2319 2320 2322 2326 2328 2335 2337 2531 2566 2586 2687 2720 2726 2731 2734 2766 2786 2934 2941 2948 2955 2986 3276 3293 3350 3370 3375 3529 3574 3577 3580 3586 3589 3592 3652 3880 3891 3934 3991 3997 4037 4043 4116 4261 4263 4271 4275 4277 4282 4304 4313 4325 4329 4344 4351 4435 4583 4587 4609 4613 4646 4652 4666 4671 4673 4678 4746 4748 4766 4782 4791 4853 4860 4881 5014 5024 5028 5043 5046 5063 5146 5214 5222 5230 5280 5294 5314 5347 5354 5627 5631 5716 5718 5751 5755 5789 5830 5849 5917 6017 6026 6076 6095 6132 6269 6272 6285 6287 6288 6319 6331 6366 6384 6410 6411 6412 6427 6470 6473 6475 6479 6492 6503 6512 6520 6652 6654 6697 6716 6729 6733 6735 6784 6791 6818 6832 6837 6860 6864 6920 6940 6954 7008 7017 7093 7115 7137 7169 7220 7222 7245 7286 7340 7420 7453 7455 7456 7458 7461 7465 7570 7571 7656 7658 7661 7681 7683 7685 7687 7711 7719 7722 7726 7748 7765 7771 7785 7802 7805 7821 7825 7827 7836 7837 7893 7912 7921 7929 8153 8340 8346 8348 8385 8387 8494 8501 8567 8577 8583 8587 8588 8589 8591 8592 8593 8595 8596 8598 8599 8601 8602 8604 8605 8607 8608 8610 8611 8613 8700 8703 8704 8706 8712 8721 8723 8725 8727 8734 8737 8766 8788 8789 8791 8877 8898 8941 8953 9026 9047 B-.25 614 # B-A-.25 612 # 3666 3776 3785 3788 4591 4595 4870 4902 6362 6385 6490 6491 6603 6693 6745 6782 7187 7320 7768 7914 7931 8762 8951 D 634 # 2294 2298 2330 2331 2333 2372 2425 2513 2530 2543 2547 2552 2556 2560 2561 2573 2574 2579 2584 2595 2602 2763 2783 2886 2888 2914 2916 2919 2920 2922 2925 2926 2928 2943 2945 2950 2952 2980 3171 3188 3194 3207 3210 3248 3296 3299 3367 3368 3513 3518 3633 3679 3682 3685 3691 3694 3697 3720 3799 3807 3838 3859 3864 3885 3889 3935 3974 3985 4014 4020 4047 4056 4068 4070 4105 4111 4127 4128 4141 4142 4146 4267 4312 4326 4416 4432 4441 4460 4464 4503 4508 4523 4526 4528 4530 4635 4644 4645 4728 4859 5016 5022 5036 5038 5042 5058 5092 5119 5120 5121 5122 5123 5139 5215 5216 5217 5218 5219 5268 5277 5284 5299 5301 5305 5309 5311 5315 5345 5350 5374 5387 5389 5432 5441 5445 5452 5468 5494 5520 5521 5548 5552 5625 5659 5692 5757 5837 5853 5895 5905 5998 6050 6185 6262 6281 6290 6306 6309 6323 6324 6327 6350 6353 6358 6375 6376 6387 6397 6414 6415 6416 6417 6425 6431 6439 6449 6451 6469 6471 6478 6482 6495 6497 6501 6514 6517 6526 6545 6548 6550 6557 6567 6608 6610 6611 6616 6644 6649 6650 6651 6663 6672 6677 6689 6695 6705 6708 6709 6724 6736 6738 6739 6757 6760 6810 6815 6820 6821 6862 6869 6885 6903 6914 6923 6927 6942 6951 6953 6957 6979 6986 6988 7021 7037 7059 7061 7100 7126 7176 7181 7183 7190 7192 7210 7212 7213 7216 7240 7258 7260 7270 ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 228 ; CROSS REFERENCE LISTING 7285 7299 7303 7307 7313 7332 7339 7356 7377 7378 7397 7419 7425 7428 7436 7447 7470 7471 7479 7491 7566 7628 7630 7632 7634 7648 7654 7657 7659 7710 7718 7742 7746 7750 7762 7783 7795 7815 7819 7835 7841 7857 7870 7881 7904 7910 7925 7927 7956 7982 7994 8024 8043 8048 8067 8099 8105 8107 8119 8136 8142 8144 8147 8336 8368 8371 8373 8482 8489 8521 8569 8575 8579 8582 8594 8612 8614 8615 8617 8705 8710 8714 8738 8750 8753 8757 8758 8759 8760 8815 8819 8878 8906 8908 8909 8915 8930 8940 8966 8969 8971 8973 8975 8977 8979 8983 9042 D+A 608 # 2463 2475 2490 2503 3734 3757 3827 3975 4022 4051 4117 4133 4368 4396 4399 5076 5084 5368 5443 5455 6275 6278 6344 6378 6434 6534 6559 6569 6572 6713 6731 6774 6783 6790 6792 6917 6994 7105 7114 7188 7194 7265 7267 7764 7773 7816 7986 8044 8797 8799 8805 8807 D+Q 609 # 5317 5325 5357 5377 D-.25 626 # D-A-.25 624 # 3615 3749 4382 4408 4410 4413 5384 6718 6737 D-Q-.25 625 # D.AND.A 644 # 2449 2613 2615 2626 2648 2970 3014 3139 3174 3223 3520 3543 3778 3787 3790 3792 3793 3794 3843 3849 3854 3857 3863 3878 3879 3899 3900 3912 3914 3933 4226 4236 4238 4240 4242 4253 4268 4293 4294 4299 4347 4417 4489 4491 4676 4730 4753 4760 4959 5098 5274 5281 5396 5570 5632 5636 5662 5696 5734 5738 5758 5855 5894 5986 6021 6024 6042 6094 6097 6100 6103 6162 6263 6265 6307 6310 6450 6452 6488 6515 6522 6535 6555 6597 6613 6620 6646 6662 6681 6740 6754 6756 6788 6794 6811 6823 6826 6846 6849 6866 6882 7003 7038 7041 7106 7121 7280 7290 7358 7364 7374 7375 7376 7380 7381 7382 7383 7391 7392 7395 7401 7407 7408 7409 7410 7439 7441 7443 7445 7448 7450 7452 7473 7476 7493 7497 7500 7501 7504 7567 7568 7574 7582 7590 7596 7757 7799 7851 7853 7855 7856 7858 7860 7862 7864 7866 7868 7998 8050 8121 8126 8130 8150 8453 8457 8459 8461 8463 8465 8467 8695 8740 8745 8761 8775 8778 8816 8834 8835 8843 8858 8860 8938 8946 8991 9000 9001 9003 9004 9006 9007 9043 D.AND.Q 645 # 3322 4832 5556 5562 5575 5581 5667 5981 D.EQV.A 668 # 3087 D.EQV.Q 669 # D.OR.A 632 # 2296 2451 2611 2649 3067 3538 3844 4296 4301 4418 4779 4865 5633 5637 5663 5697 5759 5900 5956 5957 5964 6002 6055 6169 6527 6614 6659 6668 6673 6683 6960 6964 6966 7030 7146 7150 7154 7162 7178 7318 7327 7569 7575 7784 7863 7959 7960 7961 7962 7963 7964 7965 8517 8776 8839 8847 8851 8886 8892 8895 8995 9044 D.OR.Q 633 # 3324 4715 D.XOR.A 660 # 2340 3056 3535 4732 5473 7996 7997 D.XOR.Q 661 # Q 629 # 3326 4437 4445 4493 4501 4501 4512 4524 4670 4726 4743 4749 4755 4759 4765 4773 5304 5479 5483 5589 5715 5720 5793 5836 5860 5954 5961 5982 5994 6005 6065 6067 6111 6156 6459 6498 6907 Q-.25 613 # Q-A-.25 611 # 4747 5366 Q-D-.25 617 # 5308 ZERO 641 # 2310 2310 2312 2315 2325 2327 2329 2347 2369 2590 3004 3187 3229 3249 3515 3881 4278 4538 4564 4637 4775 4854 5128 5141 5147 5148 5151 5225 5226 5229 5286 5437 5486 5501 5591 5639 5712 5723 5736 5740 5742 5743 5756 5770 6038 6066 6332 6334 6369 6390 6438 6443 6456 6467 6496 6618 6636 6638 6657 6691 6747 6751 6755 6758 6814 6943 6982 7024 7096 7172 7412 7415 7480 7583 7753 7852 7900 7937 7974 7977 7984 7999 8375 8377 8496 8499 8570 8754 8774 8786 8889 8959 8965 8981 8982 -A-.25 623 # 2771 3149 4639 4718 4796 4839 4857 4864 4960 4964 4968 4970 5622 5699 5703 5735 5846 5862 5891 5892 6045 6056 6057 6125 6146 6152 6621 6746 7882 -B-.25 622 # 6046 -D-.25 618 # 4770 4933 4938 4943 4948 6348 6624 7312 7326 -Q-.25 621 # 4717 4769 4795 4837 4838 4855 5721 5829 5831 5833 5835 6120 .NOT.A 667 # 3039 3077 3118 3129 3532 4403 4648 4856 4962 4969 5795 5844 5859 5861 6044 6054 6123 6316 6318 6879 7884 7976 .NOT.A.AND.B 648 # 4439 5929 7446 7449 7859 7869 8071 .NOT.A.AND.Q 647 # 6068 .NOT.B 666 # 6151 6530 .NOT.D 670 # 3097 3107 4937 4942 4947 6365 6395 6399 6537 6541 6623 7330 .NOT.D.AND.A 652 # 2450 3024 3893 4332 5863 5898 6001 6053 6106 6121 6149 6170 6762 7142 7158 7437 7463 7576 7865 8823 8828 8861 8879 8882 8958 9049 .NOT.D.AND.Q 653 # .NOT.Q 665 # 5239 6119 6335 0+A 607 # 6186 0+B 606 # 0+D 610 # 0+Q 605 # 5930 6079 (U) AD PARITY OK 783 # 2333 2547 2560 2561 2783 2886 2888 2920 2926 2980 3171 3174 3188 3223 3720 4014 4047 4070 4128 4141 4460 4503 4644 5042 5452 5548 5625 5659 5692 5757 5905 6306 6309 6324 6327 6358 6375 6449 6451 6469 6501 6514 6517 6545 6548 6550 6557 6567 6608 6610 6611 6644 6649 6650 6651 6672 6677 6689 6724 6810 6869 6914 6951 6953 7061 7176 7183 7210 7212 7240 7299 7307 7313 8147 8489 8715 ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 229 ; CROSS REFERENCE LISTING (U) ADDRESS HIGH 8667 # ALL 8670 # 8743 IO 8669 # MEMORY 8668 # 8780 (U) ADFLGS 1233 # 2772 3650 3666 3734 3749 4369 4383 4401 4411 4414 4544 4963 4965 (U) AREAD 1268 # 2495 (U) B 727 # AR 731 # 2307 2309 2327 2393 2397 2400 2412 2415 2418 2494 2527 2528 2528 2532 2532 2543 2547 2552 2560 2566 2579 2584 2586 2595 2605 2605 2608 2608 2617 2618 2648 2649 2687 2714 2720 2726 2731 2734 2763 2766 2771 2886 2888 2914 2916 2919 2920 2922 2925 2926 2928 2934 2936 2938 2941 2943 2945 2948 2950 2952 2955 2957 2959 3004 3014 3024 3039 3056 3067 3077 3087 3097 3108 3108 3118 3129 3139 3149 3171 3174 3178 3188 3190 3194 3197 3201 3207 3210 3212 3213 3215 3217 3218 3248 3249 3250 3276 3293 3350 3370 3375 3513 3518 3532 3535 3538 3543 3544 3574 3577 3580 3586 3589 3592 3615 3633 3635 3650 3650 3652 3666 3886 3886 3904 3907 3907 3914 3935 4068 4073 4078 4128 4267 4268 4275 4293 4312 4313 4326 4329 4332 4341 4344 4352 4368 4382 4399 4404 4404 4410 4413 4416 4437 4443 4445 4446 4463 4464 4482 4530 4637 4639 4644 4646 4671 4693 4728 4734 4738 4782 4786 4786 4789 4789 4793 4796 4799 4813 4839 4853 4856 4857 4862 4867 4870 4873 4875 4877 4878 4878 4879 4910 4947 4948 4952 4962 4964 4969 4970 5014 5024 5028 5032 5043 5046 5056 5058 5062 5062 5063 5092 5131 5146 5148 5151 5152 5214 5215 5216 5217 5218 5219 5222 5230 5239 5240 5240 5242 5242 5299 5301 5311 5314 5315 5345 5354 5368 5379 5384 5387 5389 5393 5484 5499 5520 5521 5523 5590 5622 5629 5631 5632 5633 5642 5642 5669 5670 5692 5696 5697 5708 5713 5715 5716 5718 5720 5721 5747 5749 5751 5755 5757 5758 5759 5780 5785 5786 5789 5790 5790 5792 5794 5794 5828 5830 5832 5834 5837 5840 5844 5846 5848 5849 5850 5851 5852 5853 5856 5856 5859 5861 5862 5870 5873 5873 5875 5892 5919 5924 5924 5926 5931 5933 5978 6015 6019 6023 6026 6050 6053 6055 6057 6081 6082 6091 6095 6098 6101 6112 6115 6123 6125 6129 6132 6134 6136 6151 6157 6160 6182 6185 6186 6190 6229 6231 6233 6235 6237 6239 6241 6243 6245 6272 6302 6302 6309 6316 6318 6319 6334 6335 6344 6348 6361 6362 6362 6365 6367 6367 6368 6368 6375 6382 6384 6394 6395 6397 6399 6400 6401 6401 6406 6406 6414 6454 6454 6455 6456 6469 6475 6482 6486 6486 6489 6489 6492 6496 6501 6503 6511 6512 6514 6522 6530 6534 6537 6541 6610 6613 6614 6615 6623 6624 6628 6649 6651 6654 6663 6672 6689 6703 6704 6705 6706 6706 6711 6729 6731 6733 6738 6742 6755 6757 6758 6760 6782 6785 6790 6796 6796 6808 6820 6821 6822 6823 6825 6826 6860 6881 6885 6886 6886 6908 6914 6916 6917 6920 6942 6943 6955 6957 6979 6982 6984 6984 6986 6994 7003 7007 7007 7008 7021 7024 7027 7030 7034 7037 7041 7059 7061 7062 7093 7099 7100 7105 7114 7115 7117 7123 7172 7176 7181 7183 7187 7188 7190 7192 7194 7210 7212 7215 7216 7217 7217 7219 7220 7222 7240 7245 7259 7260 7261 7261 7262 7270 7285 7286 7290 7299 7303 7304 7307 7312 7316 7320 7320 7321 7324 7324 7326 7327 7328 7330 7342 7342 7349 7349 7491 7493 7504 7561 7563 7672 7672 7681 7683 7685 7687 7710 7711 7720 7720 7723 7723 7742 7745 7745 7746 7748 7750 7751 7751 7753 7762 7764 7765 7768 7768 7771 7773 7795 7805 7819 7835 7836 7837 7900 7904 7912 7914 7914 7921 7925 7929 7931 7931 7937 7974 7978 7982 7985 7986 7988 7988 7994 8024 8025 8025 8034 8038 8040 8040 8099 8105 8107 8136 8142 8144 8368 8379 8379 8482 8489 8516 8517 8592 8593 8594 8595 8612 8613 8614 8700 8750 8753 8757 8781 8784 8786 8797 8799 8805 8807 8878 8915 8930 8940 8941 8966 9009 9010 9012 9013 9015 9016 9018 9019 9023 9023 9028 9036 9036 ARX 732 # 2333 2337 2530 2531 2556 2561 2590 2615 2681 2970 2971 2980 2986 3975 4006 4008 4014 4022 4047 4051 4127 4130 4257 4259 4259 4263 4271 4286 4336 4396 4408 4417 4418 4435 4436 4441 4465 4468 4469 4483 4483 4491 4501 4514 4514 4520 4523 4538 4544 4564 4584 4588 4592 4596 4602 4606 4610 4614 4658 4670 4676 4743 4749 4759 4854 4859 4865 4881 4902 4902 4905 4905 4916 4959 4960 4968 5038 5042 5234 5241 5268 5271 5274 5277 5280 5432 5489 5503 5503 5593 5628 5698 5699 5710 5891 5994 6006 6006 6042 6065 6140 6140 6142 6142 6144 6144 6146 6179 6325 6327 6346 6378 6385 6411 6416 6424 6424 6427 6429 6434 6449 6453 6473 6479 6484 6490 6517 6519 6548 6569 6575 6575 6578 6588 6588 6597 6608 6620 6621 6626 6629 6650 6652 6662 6666 6667 6667 6677 6695 6724 6735 6739 6741 6741 6743 6780 6788 6792 6794 6940 7126 7169 7239 7242 7317 7318 7339 7340 7439 7441 7479 7480 7654 7656 7657 7658 7659 7661 7718 7719 7722 7726 7799 7802 7810 7814 7816 7827 7984 8036 8036 8046 8046 8112 8115 8117 8151 8152 8159 8163 8371 8377 8389 8494 8499 8502 8567 8569 8575 8579 8582 8583 8587 8590 8597 8600 8603 8606 8609 8615 8617 8703 8758 8759 8764 8817 8819 8847 8861 8886 8889 8895 8898 8906 BR 733 # 2335 2574 2575 2602 2611 2613 2783 2786 3107 3223 3245 3279 3280 3283 3284 3285 3286 3299 3302 3305 3308 3311 3315 3318 3320 3353 3354 3357 3358 3368 3369 3378 3379 3381 3382 3384 3385 3387 3388 3515 3520 3529 3676 3679 3682 3685 3688 3691 3694 3697 3720 3734 3749 3757 3807 3812 3885 3891 3900 3974 3985 3991 3997 4020 4037 4043 4070 4105 4107 4111 4116 4125 4141 4142 4146 4290 4292 4292 4296 4301 4304 4403 4484 4634 4643 4652 4666 4673 4678 4683 4687 4706 4708 4710 4718 4722 4740 4741 4860 4864 4868 4869 5016 5022 5036 5098 5119 ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 230 ; CROSS REFERENCE LISTING 5120 5121 5122 5123 5139 5141 5143 5281 5284 5286 5291 5294 5309 5319 5347 5359 5396 5399 5440 5441 5443 5453 5455 5468 5550 5625 5627 5630 5636 5637 5641 5690 5735 5782 5795 5869 5895 5898 5900 5911 5982 6020 6039 6046 6063 6262 6267 6267 6269 6275 6276 6278 6281 6285 6287 6288 6290 6306 6314 6324 6331 6358 6366 6387 6410 6415 6488 6545 6550 6557 6558 6559 6561 6567 6572 6580 6586 6586 6598 6598 6611 6691 6692 6693 6693 6713 6716 6718 6720 6727 6727 6737 6744 6746 6762 6815 6816 6818 6829 6831 6832 6869 6879 6951 6953 6954 7213 7258 7301 7309 7313 7332 7377 7378 7384 7385 7397 7412 7413 7415 7416 7419 7420 7425 7428 7436 7437 7440 7440 7444 7444 7446 7446 7455 7456 7458 7470 7471 7473 7476 7482 7482 7566 7567 7569 7570 7571 7579 7581 7582 7583 7589 7590 7595 7596 7628 7630 7632 7634 7648 7744 7783 7784 7785 7809 7812 7815 7825 7841 7848 7856 7857 7893 7910 7927 7998 8044 8048 8054 8054 8067 8072 8119 8122 8125 8126 8129 8130 8147 8153 8158 8162 8381 8385 8596 8712 8721 8723 8725 8727 8737 8738 8740 8760 8762 8766 8815 8823 8828 8877 8879 8882 8892 8908 9042 9044 9047 BRX 734 # 2331 2332 2332 4431 4433 4460 4461 4489 4508 4540 4563 4664 4726 4785 5372 5375 5437 5439 5452 5458 5488 5488 5505 5510 5548 5592 5592 5659 5662 5663 5665 5700 5702 5703 5705 5894 5986 5987 5998 6001 6002 6036 6045 6265 6310 6403 6412 6417 6440 6442 6451 6470 6477 6491 6515 6520 6527 6602 6602 6616 6644 6646 6657 6659 6668 6673 6679 6679 6683 6686 6686 6697 6698 6715 6745 6810 6837 6864 6866 6964 6966 6969 7017 7035 7035 7038 7043 7043 7045 7137 7142 7146 7150 7154 7158 7162 7178 7447 7449 7449 7451 7451 7453 7461 7463 7465 7811 7966 7967 7968 7969 7970 7971 7972 8050 8053 8362 8598 8704 8705 8706 8714 8717 8719 8734 8735 8744 8744 8776 8778 8788 8789 8791 8839 8851 8909 9026 EBR 736 # 2312 4261 7573 7575 7576 8601 FLG 739 # 2315 2317 2319 2320 2322 2450 2451 3844 3893 5445 5486 5501 5591 5863 5956 5957 5964 6106 6121 6149 6169 6170 6323 6350 6353 6369 6376 6425 6431 6439 6443 6467 6471 6478 6497 6526 6618 6709 6736 6747 6751 6814 6862 6923 6927 6960 6988 7096 8605 8953 8958 8959 8965 8969 8971 8973 8975 8977 8979 8981 8982 8983 8995 9049 HR 730 # 2330 2336 2336 2425 2475 2490 2503 2513 2553 2626 3778 3787 3790 3792 3793 3794 3799 3827 3838 3849 3854 3857 3859 3878 3899 3912 3933 3934 3938 3942 4226 4236 4238 4240 4242 4253 4278 4282 4325 4347 4351 4924 7280 7356 7364 7374 7375 7376 7380 7381 7382 7383 7391 7392 7395 7401 7407 7408 7409 7410 7796 7821 7826 7855 8453 8457 8459 8461 8463 8465 8467 8521 8591 8695 MAG 728 # 2297 4542 4577 4705 4754 4777 5221 5226 5229 5554 5572 5573 5574 5586 5980 6071 6108 6153 8588 MASK 738 # 2294 2295 2296 3880 4439 5568 5569 6336 8577 8604 ONE 735 # 2300 2326 2328 2982 6710 8599 PC 729 # 2369 2383 2385 2442 2463 2469 3226 3583 3701 3704 3774 3775 3776 3785 3788 3802 3850 3865 3889 4003 4056 4117 4133 4277 6603 6861 6861 8026 8387 8589 8951 PI 740 # 2347 7852 7859 7859 7861 7861 7863 7865 7867 7867 7869 7869 7959 7960 7961 7962 7963 7964 7965 8070 8071 8071 8607 T0 742 # 3864 4459 4467 4500 4503 4510 4755 4761 4765 4767 4769 4774 4779 4780 5905 5910 5917 5918 5945 5947 5948 5949 5952 5960 5963 5965 5993 6067 6073 6708 6774 6783 6784 7870 7881 7882 7883 7883 8043 8336 8340 8346 8348 8610 T1 743 # 2343 2355 2372 2403 2421 2710 3851 4714 4725 4732 4746 4748 4766 4791 4874 5557 5565 5570 5576 5585 5929 5929 5954 5961 6005 6017 6038 6044 6054 6076 6778 6791 8021 8052 8501 8611 8929 UBR 737 # 2310 7497 7501 7506 7506 8602 XWD1 741 # 2298 8608 8763 (D) B 1443 # 3419 3420 3421 3422 3423 3424 3428 3429 3430 3431 3432 3433 3435 3436 3437 3438 3439 3440 3441 3442 3444 3445 3446 3447 3448 3449 3450 3451 3454 3455 3456 3457 3458 3459 3460 3461 3463 3464 3465 3466 3467 3468 3469 3470 3471 3472 3473 3474 3475 3476 3477 3478 3480 3481 3482 3483 3484 3485 3486 3487 3595 3596 3597 3598 3599 3600 3601 3602 3604 3605 3606 3607 3608 3609 3610 3611 3622 3623 3624 3625 3626 3627 3628 3629 3639 3640 3641 3642 3643 3644 3645 3646 3655 3656 3657 3658 3659 3660 3661 3662 3709 3710 3711 3712 3713 3714 3715 3716 3723 3724 3725 3726 3727 3728 3729 3730 3738 3739 3740 3741 3742 3743 3744 3745 3752 3753 3965 3966 3967 4064 4154 4155 4156 4157 4158 4159 4160 4161 4214 4215 4216 4217 4218 4219 6200 6201 6202 6203 6204 6205 6206 6208 6209 6210 6211 6213 6214 6215 6216 6221 6222 6223 6224 6225 8080 8081 8082 8083 8084 8085 8087 8088 8089 8090 8091 8092 8395 8396 8397 8399 8400 8402 8403 8405 8406 8407 8408 8409 8410 8411 8412 8414 8415 8416 8417 8418 8419 8420 8421 8423 8424 8425 8426 8427 8428 8429 8430 8432 8433 8434 8435 8436 8437 8438 8439 8441 8442 8443 8444 8445 8446 8447 8448 AC 1447 # 2741 2742 2746 2747 2751 2752 2756 2757 2779 2796 2797 2801 2802 2806 2807 2811 2812 2816 2817 2821 2822 2826 2827 2831 2832 2838 2839 2843 2844 2848 2849 2853 2854 2859 2860 2864 2865 2869 2870 2874 2875 2966 2997 2998 3007 3008 3017 3018 3027 3028 3032 3033 3049 3050 3060 3061 3070 3071 3080 3081 3090 3091 3100 3101 3111 3112 3122 3123 3132 3133 3142 3143 4361 4362 4375 4376 4425 4426 5006 8691 BOTH 1449 # 3000 3010 3020 3030 3035 3052 3063 3073 3083 3093 3103 3114 3125 3135 3145 4364 4378 4428 ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 231 ; CROSS REFERENCE LISTING DBLAC 1445 # 2965 4391 4392 4450 4451 4477 4621 4622 4626 4627 4700 5971 6033 DBLB 1446 # 4453 4624 4629 MEM 1448 # 2743 2748 2753 2758 2798 2803 2808 2813 2818 2823 2828 2833 2840 2845 2850 2855 2861 2866 2871 2876 2999 3009 3019 3029 3034 3044 3045 3051 3062 3072 3082 3092 3102 3113 3124 3134 3144 4363 4377 4427 4452 4623 4628 7622 SELF 1444 # 2744 2749 2754 2759 2799 2804 2809 2814 2819 2824 2829 2834 2841 2846 2851 2856 2862 2867 2872 2877 (U) BWRITE 1277 # 2763 2769 2886 2888 2922 2928 2936 2938 2957 2959 3004 3014 3024 3056 3067 3087 3097 3108 3118 3149 4369 4383 4437 4443 4466 4468 5790 5794 5841 5864 (U) BYTE 891 # BYTE1 892 # 5016 5022 5036 5058 5215 6387 6397 6885 7037 7213 7216 7258 7260 7332 BYTE2 893 # 5216 BYTE3 894 # 5217 BYTE4 895 # 5218 BYTE5 896 # 3248 5119 5120 5121 5122 5123 5219 7021 (U) CALL 1047 # 2301 2334 2347 2589 2970 2980 3801 3861 3863 3864 3879 3903 3906 4129 4132 4260 4270 4275 4279 4284 4287 4325 4327 4434 4462 4490 4499 4509 4519 4543 4656 4677 4733 4739 4754 4758 4764 4810 4835 5016 5022 5026 5031 5036 5045 5048 5303 5313 5348 5376 5436 5452 5454 5549 5559 5561 5578 5580 5666 5709 5712 5717 5719 5830 5832 5834 5849 5850 5851 5910 5918 5946 5987 5992 6004 6011 6018 6038 6062 6066 6070 6096 6099 6102 6133 6135 6137 6143 6264 6305 6308 6312 6345 6351 6377 6402 6413 6428 6432 6439 6450 6452 6458 6472 6481 6502 6518 6521 6534 6549 6560 6568 6571 6574 6577 6585 6590 6617 6653 6662 6678 6690 6717 6728 6736 6753 6779 6809 6812 6817 6895 6904 6915 6918 6928 6941 6956 6963 6985 6989 7060 7095 7120 7221 7241 7246 7300 7308 7319 7657 7659 7721 7724 7752 7798 7801 7820 7870 7926 7980 8023 8041 8045 8118 8154 8495 8497 8503 8519 8568 8570 8588 8591 8593 8595 8598 8601 8604 8607 8610 8612 8739 8752 9029 (U) CHKL 794 # 2425 2513 2531 2543 2552 2556 2573 2584 2595 2602 2615 2687 2720 2726 2731 2734 2786 2986 3296 3367 3652 3799 3838 3859 3885 3889 3935 3974 3991 3997 4020 4037 4043 4056 4116 4146 4275 4277 4282 4312 4325 4329 4351 4432 4526 4528 4635 4645 4730 4753 4760 5063 5092 5098 5222 5494 5552 6262 6281 6708 6903 6954 6957 6986 7270 7285 7356 7419 7491 7656 7658 7661 7710 7718 7795 7825 7827 7835 7893 7994 8048 8099 8136 8153 8368 8371 8373 8385 8387 8482 8501 8521 8588 8589 8591 8592 8595 8596 8598 8599 8601 8602 8604 8605 8607 8608 8610 8611 8613 8766 8815 8877 9026 9047 (U) CHKR 801 # 2425 2513 2531 2543 2552 2556 2573 2584 2595 2602 2615 2687 2720 2726 2731 2734 2786 2986 3296 3367 3652 3799 3838 3859 3885 3889 3935 3974 3991 3997 4020 4037 4043 4056 4116 4146 4275 4277 4282 4312 4325 4329 4351 4432 4526 4528 4635 4645 4730 4753 4760 5063 5092 5098 5222 5494 5552 6262 6281 6708 6903 6954 6957 6986 7270 7285 7356 7419 7491 7656 7658 7661 7710 7718 7795 7825 7827 7835 7893 7994 8048 8099 8136 8153 8368 8371 8373 8385 8387 8482 8501 8521 8588 8589 8591 8592 8595 8596 8598 8599 8601 8602 8604 8605 8607 8608 8610 8611 8613 8766 8815 8877 9026 9047 (U) CLKL 790 # 2383 2385 2442 2463 2464 2470 2475 2490 2491 2503 2514 2553 2888 2920 2928 2950 2952 3583 3701 3704 3774 3775 3776 3785 3788 3802 3827 3865 3890 3904 4057 4118 4131 4135 4286 4298 4303 4336 4352 4405 5062 5093 5307 5367 5391 5445 5457 5486 5489 5501 5505 5510 5522 5573 5574 5591 5593 5668 5935 6275 6278 6281 6323 6350 6353 6369 6376 6406 6425 6431 6439 6443 6455 6467 6471 6478 6497 6526 6603 6618 6657 6692 6709 6736 6747 6751 6808 6814 6862 6923 6927 6962 6988 7031 7036 7096 7217 7261 7270 7438 7464 7478 7567 7569 7672 7720 7723 7796 7801 7826 7863 7865 7867 7869 7882 7959 7960 7961 7962 7963 7964 7965 7987 8025 8071 8502 8518 8590 8597 8600 8603 8606 8609 8762 8825 8849 8863 8883 8893 8896 8951 8959 8965 8969 8971 8973 8975 8977 8979 8981 8982 8983 9028 (U) CLKR 797 # 2450 2451 2611 2613 2626 2648 2649 2886 2922 2926 2943 2945 2970 3323 3325 3633 3778 3787 3790 3792 3793 3794 3844 3849 3854 3857 3878 3894 3899 3912 3933 4069 4226 4236 4238 4240 4242 4255 4269 4279 4333 4349 4416 4417 4418 4441 4464 4676 4716 4779 4834 4959 5141 5279 5287 5352 5398 5438 5442 5632 5633 5636 5637 5662 5663 5696 5697 5758 5759 5837 5853 5863 5956 5957 5964 5981 6105 6106 6121 6139 6149 6169 6170 6185 6268 6290 6523 6528 6597 6613 6614 6620 6660 6662 6669 6675 6684 6703 6755 6758 6763 6788 6794 6867 6965 6967 7040 7044 7100 7143 7147 7151 7155 7159 7163 7179 7280 7292 7364 7374 7375 7376 7380 7381 7382 7383 7391 7392 7395 7401 7407 7408 7409 7410 7431 7472 7475 7495 7499 7575 7576 7584 7592 7598 7746 7855 7857 7859 7861 8024 8105 8107 8142 8144 8377 8453 8457 8459 8461 8463 8465 8467 8695 8743 8777 8780 8830 8841 8853 8881 8958 8995 9045 9050 (U) CLRFPD 1205 # 3986 4106 4112 4521 5032 5049 6747 (D) COND FUNC 1466 # 2743 2744 2748 2749 2753 2754 2758 2759 2798 2799 2803 2804 2808 2809 2813 2814 2818 2819 2823 2824 2828 2829 2833 2834 2840 2841 2845 2846 2850 2851 2855 2856 2861 2862 2866 2867 2871 2872 2876 2877 2999 3000 3009 3010 3019 3020 3029 3030 3034 3035 3044 3045 3051 3052 3062 3063 3072 3073 3082 3083 3092 3093 3102 3103 3113 3114 3124 3125 3134 3135 3144 3145 4363 4364 4377 4378 4427 4428 4452 4453 4623 4624 4628 4629 5603 5604 5607 5608 5611 5612 5615 5616 5649 5650 5654 ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 232 ; CROSS REFERENCE LISTING 5655 5679 5680 5684 5685 7622 (U) CRY38 1030 # 2771 3149 3615 3666 3749 3776 3785 3788 4382 4400 4408 4413 4591 4595 4639 4683 4717 4740 4741 4747 4769 4795 4837 4838 4839 4855 4857 4864 4870 4902 4933 4938 4943 4948 4960 4964 4968 4970 5308 5366 5384 5439 5458 5484 5499 5590 5622 5699 5702 5703 5710 5721 5735 5829 5831 5833 5835 5846 5862 5891 5930 6045 6056 6063 6079 6120 6125 6146 6152 6186 6314 6348 6362 6385 6453 6489 6490 6491 6539 6603 6621 6624 6693 6710 6718 6737 6745 6746 6780 6782 6785 6834 7187 7312 7320 7326 7768 7882 7914 7931 8762 8951 (U) DBM 768 # APR FLAGS 771 # 7377 7378 7447 7479 7783 BYTES 772 # DP 774 # 3248 5016 5022 5036 5058 5119 5120 5121 5122 5123 5215 5216 5217 5218 5219 6387 6397 6885 7021 7037 7213 7216 7258 7260 7332 DP SWAP 775 # 2579 2763 2914 2916 2919 2922 2925 2928 3513 3518 3864 4068 4127 4142 4267 5139 5268 5284 5387 5432 5441 5520 6757 6815 6820 6821 7126 7471 7857 7870 7881 8819 EXP 773 # 5837 5853 6185 7809 7810 7811 MEM 777 # 2310 2424 2513 2542 2551 2555 2583 2594 2601 2614 3798 3837 3858 3881 3885 3889 3935 3973 4019 4056 4145 4311 5091 5097 5493 5551 6262 6281 6708 6957 6986 7270 7284 7343 7350 7356 7419 7491 7710 7718 7794 7835 7977 7981 7994 8042 8048 8099 8119 8136 8368 8371 8373 8375 8481 8496 8520 8570 8754 8774 8815 PF DISP 770 # 8709 SCAD DIAG 769 # VMA 776 # 5468 5473 8336 8582 8705 8738 # 778 # 2294 2296 2298 2300 2307 2330 2331 2340 2343 2355 2372 2393 2397 2400 2403 2412 2415 2418 2421 2449 2450 2451 2527 2611 2613 2626 2648 2649 2710 2943 2945 2950 2952 2970 3249 3322 3324 3778 3787 3790 3792 3793 3794 3843 3844 3849 3851 3854 3857 3863 3878 3879 3893 3899 3912 3933 4022 4051 4117 4133 4226 4236 4238 4240 4242 4253 4257 4290 4294 4296 4299 4301 4332 4341 4347 4417 4418 4676 4714 4715 4725 4732 4779 4832 4859 4865 4959 5129 5274 5277 5281 5301 5305 5311 5315 5345 5350 5384 5389 5396 5445 5455 5557 5562 5570 5576 5581 5632 5633 5636 5637 5662 5663 5667 5696 5697 5734 5738 5758 5759 5855 5863 5898 5900 5956 5957 5964 5981 6001 6002 6021 6024 6053 6055 6094 6097 6100 6103 6106 6121 6149 6162 6169 6170 6229 6231 6233 6235 6237 6239 6241 6243 6245 6263 6265 6290 6307 6310 6323 6350 6353 6376 6425 6431 6439 6450 6452 6471 6478 6497 6511 6515 6522 6526 6527 6535 6539 6555 6597 6613 6614 6620 6626 6646 6659 6662 6668 6673 6681 6683 6709 6736 6740 6754 6756 6762 6774 6783 6788 6794 6811 6823 6826 6834 6846 6849 6862 6866 6882 6923 6927 6943 6955 6960 6964 6966 6982 6988 7003 7024 7030 7038 7041 7121 7142 7146 7150 7154 7158 7162 7172 7178 7280 7290 7358 7364 7374 7375 7376 7380 7381 7382 7383 7391 7392 7395 7401 7407 7408 7409 7410 7412 7415 7425 7428 7437 7439 7441 7443 7445 7448 7450 7452 7463 7473 7476 7480 7493 7497 7500 7501 7504 7567 7568 7569 7574 7575 7576 7582 7590 7596 7744 7757 7784 7799 7851 7853 7855 7856 7858 7860 7862 7863 7864 7865 7866 7868 7904 7910 7925 7927 7959 7960 7961 7962 7963 7964 7965 7966 7967 7968 7969 7970 7971 7972 7974 7978 7986 7996 7997 8021 8024 8038 8044 8050 8052 8067 8105 8107 8112 8115 8121 8126 8130 8142 8144 8150 8151 8159 8163 8362 8453 8457 8459 8461 8463 8465 8467 8516 8517 8695 8717 8719 8735 8740 8745 8761 8775 8776 8778 8786 8816 8823 8828 8834 8835 8839 8843 8847 8851 8858 8860 8861 8879 8882 8886 8889 8892 8895 8929 8938 8946 8958 8969 8971 8973 8975 8977 8979 8983 8991 8995 9000 9001 9003 9004 9006 9007 9009 9010 9012 9013 9015 9016 9018 9019 9043 9044 9049 (U) DBUS 759 # DBM 765 # 2294 2296 2298 2300 2307 2310 2330 2331 2340 2343 2355 2372 2393 2397 2400 2403 2412 2415 2418 2421 2424 2425 2449 2450 2451 2513 2513 2527 2542 2543 2551 2552 2555 2556 2579 2583 2584 2594 2595 2601 2602 2611 2613 2614 2615 2626 2648 2649 2710 2763 2914 2916 2919 2922 2925 2928 2943 2945 2950 2952 2970 3248 3249 3322 3324 3513 3518 3778 3787 3790 3792 3793 3794 3798 3799 3837 3838 3843 3844 3849 3851 3854 3857 3858 3859 3863 3864 3878 3879 3881 3885 3885 3889 3889 3893 3899 3912 3933 3935 3935 3973 3974 4019 4020 4022 4051 4056 4056 4068 4117 4127 4133 4142 4145 4146 4226 4236 4238 4240 4242 4253 4257 4267 4290 4294 4296 4299 4301 4311 4312 4332 4341 4347 4417 4418 4676 4714 4715 4725 4732 4779 4832 4859 4865 4959 5016 5022 5036 5058 5091 5092 5097 5098 5119 5120 5121 5122 5123 5129 5139 5215 5216 5217 5218 5219 5268 5274 5277 5281 5284 5301 5305 5311 5315 5345 5350 5384 5387 5389 5396 5432 5441 5445 5455 5468 5473 5493 5494 5520 5551 5552 5556 5562 5570 5575 5581 5632 5633 5636 5637 5662 5663 5667 5696 5697 5734 5738 5758 5759 5837 5853 5855 5863 5898 5900 5956 5957 5964 5981 6001 6002 6021 6024 6053 6055 6094 6097 6100 6103 6106 6121 6149 6162 6169 6170 6185 6229 6231 6233 6235 6237 6239 6241 6243 6245 6262 6262 6263 6265 6281 6281 6290 6307 6310 6323 6350 6353 6376 6387 6397 6425 6431 6439 6450 6452 6471 6478 6497 6511 6515 6522 6526 6527 6535 6539 6555 6597 6613 6614 6620 6626 6646 6659 6662 6668 6673 6681 6683 6708 6708 6709 6736 6740 6754 6756 6757 6762 6774 6783 6788 6794 6811 6815 6820 6821 6823 6826 6834 6846 6849 6862 6866 6882 6885 6923 6927 6943 6955 6957 6957 6960 6964 6966 ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 233 ; CROSS REFERENCE LISTING 6982 6986 6986 6988 7003 7021 7024 7030 7037 7038 7041 7121 7126 7142 7146 7150 7154 7158 7162 7172 7178 7213 7216 7258 7260 7270 7270 7280 7284 7285 7290 7332 7343 7350 7356 7356 7358 7364 7374 7375 7376 7377 7378 7380 7381 7382 7383 7391 7392 7395 7401 7407 7408 7409 7410 7412 7415 7419 7419 7425 7428 7437 7439 7441 7443 7445 7447 7448 7450 7452 7463 7471 7473 7476 7479 7480 7491 7491 7493 7497 7500 7501 7504 7567 7568 7569 7574 7575 7576 7582 7590 7596 7710 7710 7718 7718 7744 7757 7783 7784 7794 7795 7799 7809 7810 7811 7835 7835 7851 7853 7855 7856 7857 7858 7860 7862 7863 7864 7865 7866 7868 7870 7881 7904 7910 7925 7927 7959 7960 7961 7962 7963 7964 7965 7966 7967 7968 7969 7970 7971 7972 7974 7977 7978 7981 7982 7986 7994 7994 7996 7997 8021 8024 8038 8042 8043 8044 8048 8048 8050 8052 8067 8099 8099 8105 8107 8112 8115 8119 8119 8121 8126 8130 8136 8136 8142 8144 8150 8151 8159 8163 8336 8362 8368 8368 8371 8371 8373 8373 8375 8453 8457 8459 8461 8463 8465 8467 8481 8482 8496 8516 8517 8520 8521 8570 8582 8695 8705 8709 8714 8717 8719 8735 8738 8740 8745 8754 8761 8774 8775 8776 8778 8786 8815 8815 8816 8819 8823 8828 8834 8835 8839 8843 8847 8851 8858 8860 8861 8879 8882 8886 8889 8892 8895 8929 8938 8946 8958 8969 8971 8973 8975 8977 8979 8983 8991 8995 9000 9001 9003 9004 9006 9007 9009 9010 9012 9013 9015 9016 9018 9019 9043 9044 9049 DP 763 # 2325 2326 2531 2681 2687 2714 2720 2726 2731 2734 2786 2971 2986 3229 3250 3286 3320 3326 3544 3633 3635 3652 3676 3679 3679 3682 3682 3685 3685 3688 3691 3691 3694 3694 3697 3697 3939 3991 3997 4006 4008 4037 4043 4073 4078 4107 4116 4275 4277 4282 4325 4329 4351 4416 4441 4464 4493 4501 4510 4512 4523 4523 4524 4525 4527 4529 4757 4773 4774 4775 4777 4780 4799 4801 4804 4934 4939 4944 4950 4951 4952 5032 5063 5222 5399 5453 5479 5483 5523 5550 5589 5786 5792 6108 6115 6151 6152 6153 6160 6314 6361 6382 6390 6400 6403 6438 6440 6442 6477 6484 6519 6561 6578 6580 6615 6616 6616 6628 6629 6636 6638 6663 6663 6666 6698 6704 6715 6720 6742 6743 6744 6907 6908 6954 6969 7045 7062 7100 7190 7190 7219 7262 7301 7309 7316 7321 7328 7656 7658 7661 7746 7825 7827 7893 8122 8153 8385 8387 8389 8501 8588 8589 8591 8592 8595 8596 8598 8599 8601 8602 8604 8605 8607 8608 8610 8611 8613 8766 8877 8953 9026 9047 PC FLAGS 760 # 2530 3900 3914 3985 4105 4111 4268 4293 4326 4530 7339 7998 8760 9042 PI NEW 761 # 7956 RAM 764 # 2333 2463 2475 2490 2503 2547 2560 2561 2573 2574 2783 2886 2888 2920 2926 2980 3014 3024 3056 3067 3087 3097 3107 3139 3171 3174 3188 3194 3207 3210 3223 3296 3299 3367 3368 3520 3535 3538 3543 3615 3720 3734 3749 3757 3807 3827 3975 4014 4047 4070 4128 4141 4368 4382 4396 4399 4408 4410 4413 4432 4460 4489 4491 4503 4508 4526 4528 4635 4644 4645 4728 4730 4753 4760 4770 4933 4937 4938 4942 4943 4947 4948 5038 5042 5076 5084 5299 5308 5309 5321 5325 5361 5368 5374 5382 5443 5452 5521 5548 5625 5659 5692 5757 5894 5895 5905 5986 5998 6042 6050 6275 6278 6306 6309 6324 6327 6344 6348 6358 6365 6375 6378 6395 6399 6414 6415 6416 6417 6434 6449 6451 6469 6482 6488 6495 6501 6514 6517 6534 6537 6541 6545 6548 6550 6557 6559 6567 6569 6572 6608 6610 6611 6623 6624 6644 6649 6650 6651 6672 6677 6689 6695 6705 6713 6718 6724 6731 6737 6738 6739 6760 6780 6785 6790 6792 6810 6869 6903 6914 6917 6942 6951 6953 6979 6994 7059 7061 7105 7106 7114 7176 7181 7183 7188 7192 7194 7210 7212 7240 7265 7267 7299 7303 7307 7312 7313 7318 7326 7327 7330 7397 7436 7470 7566 7628 7630 7632 7634 7648 7654 7657 7659 7742 7750 7762 7764 7773 7815 7816 7819 7841 8147 8489 8569 8575 8579 8594 8612 8614 8615 8617 8750 8753 8757 8758 8759 8797 8799 8805 8807 8878 8906 8908 8909 8915 8930 8940 8966 (U) DEST 692 # A 693 # 2425 2579 2595 2681 2714 2763 2914 2916 2919 2922 2925 2928 2971 3250 3286 3513 3518 3544 3633 3635 3676 3679 3682 3685 3688 3691 3694 3697 3864 4006 4008 4068 4107 4127 4142 4267 4416 4441 4464 4523 4774 4780 4952 5016 5022 5032 5036 5058 5119 5120 5121 5122 5123 5139 5215 5216 5217 5218 5219 5268 5284 5387 5432 5441 5453 5520 5523 5550 5786 5792 5837 5853 6115 6160 6185 6361 6382 6387 6397 6400 6440 6477 6484 6519 6578 6580 6615 6616 6628 6629 6663 6666 6698 6704 6715 6720 6742 6743 6744 6757 6815 6820 6821 6885 6908 6969 7037 7045 7100 7126 7190 7213 7216 7219 7258 7260 7262 7301 7309 7316 7321 7328 7332 7471 7746 7857 7870 7881 8122 8389 8819 AD 695 # 2294 2296 2298 2300 2307 2310 2312 2315 2327 2330 2331 2332 2333 2336 2343 2347 2355 2369 2372 2383 2385 2393 2397 2400 2403 2412 2415 2418 2421 2442 2450 2451 2463 2469 2475 2490 2494 2503 2513 2527 2528 2530 2532 2543 2547 2552 2553 2556 2560 2561 2584 2590 2602 2605 2608 2611 2613 2626 2648 2649 2710 2771 2783 2886 2888 2920 2926 2936 2938 2943 2945 2950 2952 2957 2959 2970 2980 3004 3014 3024 3039 3056 3067 3077 3087 3097 3107 3108 3118 3129 3139 3149 3171 3174 3188 3223 3226 3249 3515 3520 3532 3535 3538 3543 3583 3615 3650 3666 3701 3704 3720 3734 3749 3757 3774 3775 3778 3787 3790 3792 3793 3794 3799 3802 3807 3812 3827 3838 3844 3849 3850 3851 3854 3857 3859 3865 3878 3885 3886 3889 3893 3899 3900 3904 3907 3912 3914 3933 3935 3938 3974 3975 3985 4003 4014 4020 4022 4047 4051 4056 4070 4105 4111 4117 4125 4128 4130 4133 4141 4146 4226 4236 4238 4240 4242 4253 4257 4259 4268 4278 4286 4290 4292 4293 4296 4301 4312 4326 4332 4336 4341 ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 234 ; CROSS REFERENCE LISTING 4347 4352 4368 4382 4396 4399 4403 4404 4408 4410 4413 4417 4418 4431 4437 4443 4445 4446 4459 4460 4465 4468 4469 4484 4500 4514 4530 4538 4634 4637 4639 4643 4644 4658 4664 4670 4676 4693 4714 4725 4726 4732 4743 4749 4759 4767 4779 4786 4789 4839 4854 4856 4857 4859 4864 4865 4878 4947 4948 4959 4960 4962 4964 4968 4969 4970 5042 5056 5062 5092 5098 5141 5152 5239 5240 5241 5242 5277 5286 5299 5301 5309 5311 5315 5318 5345 5358 5368 5372 5378 5389 5396 5437 5440 5443 5445 5452 5455 5468 5486 5488 5489 5501 5503 5505 5510 5521 5548 5564 5570 5591 5592 5593 5622 5625 5628 5629 5630 5632 5633 5636 5637 5642 5659 5662 5663 5669 5690 5692 5696 5697 5698 5699 5735 5757 5758 5759 5790 5794 5795 5844 5846 5856 5859 5861 5862 5863 5873 5891 5892 5905 5910 5911 5918 5919 5929 5954 5956 5957 5961 5964 5982 5993 6005 6006 6036 6038 6039 6044 6045 6046 6054 6065 6067 6081 6082 6106 6121 6123 6125 6140 6142 6144 6146 6149 6169 6170 6186 6229 6231 6233 6235 6237 6239 6241 6243 6245 6262 6265 6267 6275 6276 6278 6281 6290 6302 6306 6309 6310 6316 6318 6323 6324 6325 6327 6335 6344 6346 6348 6350 6353 6358 6362 6365 6367 6368 6369 6375 6376 6378 6385 6394 6395 6399 6401 6406 6414 6415 6416 6417 6424 6425 6429 6431 6434 6439 6443 6449 6451 6454 6455 6456 6467 6469 6471 6478 6482 6486 6488 6489 6490 6491 6496 6497 6501 6511 6514 6515 6517 6522 6526 6527 6534 6537 6541 6545 6548 6550 6559 6567 6569 6572 6575 6586 6588 6597 6598 6602 6603 6608 6610 6611 6613 6614 6618 6620 6621 6623 6624 6626 6644 6646 6649 6650 6651 6657 6659 6662 6667 6668 6672 6673 6677 6679 6683 6686 6689 6691 6692 6693 6695 6703 6705 6706 6708 6709 6711 6713 6718 6724 6727 6731 6736 6737 6738 6739 6741 6745 6746 6747 6751 6755 6758 6760 6762 6774 6778 6780 6782 6783 6785 6788 6790 6792 6794 6796 6808 6810 6814 6823 6826 6861 6862 6866 6869 6879 6881 6886 6914 6917 6923 6927 6942 6943 6951 6953 6955 6957 6960 6964 6966 6979 6982 6984 6986 6988 6994 7003 7024 7030 7035 7038 7041 7043 7059 7061 7096 7105 7114 7123 7142 7146 7150 7154 7158 7162 7172 7176 7178 7181 7183 7187 7188 7192 7194 7210 7212 7215 7217 7239 7240 7259 7261 7270 7280 7285 7290 7299 7303 7307 7312 7313 7317 7318 7320 7324 7326 7327 7330 7339 7342 7349 7356 7364 7374 7375 7376 7377 7378 7380 7381 7382 7383 7384 7385 7391 7392 7395 7397 7401 7407 7408 7409 7410 7412 7415 7419 7425 7428 7436 7437 7439 7440 7441 7444 7446 7447 7449 7451 7463 7470 7473 7476 7479 7480 7482 7491 7493 7497 7501 7504 7506 7566 7567 7569 7573 7575 7576 7582 7583 7589 7590 7595 7596 7628 7630 7632 7634 7648 7654 7657 7659 7672 7710 7718 7720 7723 7742 7744 7745 7750 7751 7753 7762 7764 7768 7773 7783 7784 7795 7796 7799 7809 7810 7811 7814 7815 7816 7819 7826 7835 7841 7848 7852 7855 7856 7859 7861 7863 7865 7867 7869 7882 7883 7900 7904 7910 7914 7925 7927 7931 7937 7959 7960 7961 7962 7963 7964 7965 7966 7967 7968 7969 7970 7971 7972 7974 7978 7982 7984 7986 7988 7994 7998 8021 8024 8025 8026 8036 8038 8040 8043 8044 8046 8048 8052 8054 8067 8071 8099 8105 8107 8112 8115 8119 8126 8130 8136 8142 8144 8147 8151 8159 8163 8336 8362 8368 8371 8377 8379 8453 8457 8459 8461 8463 8465 8467 8482 8489 8499 8502 8516 8517 8521 8569 8575 8579 8582 8590 8594 8597 8600 8603 8606 8609 8612 8614 8615 8617 8695 8705 8714 8717 8719 8735 8738 8740 8744 8750 8753 8757 8758 8759 8760 8762 8764 8776 8778 8781 8786 8797 8799 8805 8807 8815 8817 8823 8828 8839 8847 8851 8861 8878 8879 8882 8889 8892 8895 8906 8908 8909 8915 8929 8930 8940 8951 8958 8959 8965 8966 8969 8971 8973 8975 8977 8979 8981 8982 8983 8995 9009 9010 9012 9013 9015 9016 9018 9019 9023 9028 9036 9042 9044 9049 AD*.5 702 # 2297 2615 2617 2618 3190 3194 3207 3210 3212 3213 3217 3248 3302 3305 3385 3387 4482 4483 4489 4491 4501 4503 4508 4540 4706 4728 4734 4867 4868 4869 4875 5132 5143 5221 5271 5274 5281 5291 5705 5713 5715 5720 5721 5782 5832 5834 5850 5851 5869 5870 5875 5894 5895 5898 5900 5986 5987 5994 5998 6001 6002 6020 6042 6050 6053 6055 6179 6190 6822 6825 6829 6831 6916 7021 7027 7034 7099 7579 7581 8050 8053 8072 8125 8129 8784 AD*2 700 # 2295 3178 3201 3215 3218 3245 3379 3381 4436 4463 4520 4769 4911 5038 5384 5393 5557 5576 5585 5700 5703 5708 5785 6557 6558 6816 7007 7117 7561 7563 7985 8034 8158 8162 8381 8886 PASS 697 # 2309 2317 2319 2320 2322 2326 2328 2329 2335 2337 2382 2386 2405 2481 2508 2517 2531 2621 2687 2720 2726 2731 2734 2786 2986 2987 3320 3571 3652 3700 3705 3781 3832 3902 3913 3942 3991 3997 4027 4032 4037 4043 4073 4078 4113 4116 4143 4275 4277 4282 4325 4329 4351 4439 4467 4510 4525 4527 4529 4532 4712 4757 4777 4799 4801 4804 4934 4939 4944 4950 4951 5014 5017 5027 5063 5080 5088 5222 5280 5294 5304 5314 5347 5433 5463 5470 5587 6108 6151 6152 6153 6272 6279 6285 6288 6314 6319 6336 6384 6410 6411 6412 6427 6459 6475 6498 6512 6530 6561 6652 6654 6710 6716 6729 6735 6813 6870 6940 6952 6954 6995 7062 7093 7266 7268 7286 7304 7340 7403 7413 7416 7420 7458 7490 7571 7655 7656 7658 7661 7681 7683 7685 7687 7711 7719 7722 7726 7748 7765 7771 7802 7805 7812 7825 7827 7836 7837 7872 7892 7893 7898 7993 8070 8098 8117 8135 8152 8153 8155 8340 8346 8348 8383 8385 8387 8478 8486 8494 8501 8513 8567 8583 8588 8589 8591 8592 8593 8595 8596 8598 8599 8601 8602 8604 8605 8607 8608 8610 8611 8613 8616 8700 8703 8704 8706 8710 8712 8721 8723 8725 8727 8734 8737 8763 8765 8766 8814 8873 8877 8884 8894 8910 9026 9047 ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 235 ; CROSS REFERENCE LISTING Q_AD 696 # 2573 3187 3296 3322 3324 3367 4432 4458 4498 4518 4526 4528 4539 4635 4645 4705 4715 4717 4730 4753 4756 4758 4760 4771 4784 4785 4788 4795 4803 4832 4837 4838 4855 4880 4933 4937 4938 4942 4943 5147 5225 5232 5296 5305 5308 5325 5350 5366 5374 5439 5494 5552 5562 5567 5581 5583 5639 5664 5667 5712 5723 5736 5740 5742 5743 5756 5770 5829 5831 5833 5835 5903 5912 5915 5920 5930 5935 5976 5981 5991 6004 6010 6022 6025 6056 6061 6066 6068 6079 6104 6119 6120 6138 6332 6495 6903 8373 Q_Q*.5 701 # 2574 2575 3279 3299 3308 3353 3368 3369 3378 4433 4461 4542 4563 4564 4577 4584 4592 4602 4610 4708 4710 4718 4722 4738 4754 4761 4813 4862 5375 5554 5572 5573 5574 5586 5641 5665 5670 5747 5749 5780 5924 5949 5952 5960 5963 5965 5980 6015 6057 6071 6098 6101 6134 6136 6182 Q_Q*2 699 # 3197 3280 3283 3284 3285 3311 3315 3318 3354 3357 3358 3382 3384 3388 4588 4596 4606 4614 4755 4765 4793 4796 4870 4873 4874 4877 4879 4902 4905 4917 4922 5148 5151 5226 5229 5234 5568 5569 5828 5840 5848 5852 5926 5931 5933 5945 5947 5948 5978 6019 6023 6073 6091 6112 6129 6157 6334 (U) DISP 937 # 4882 ADISP 944 # AREAD 940 # 2495 BDISP 945 # 2763 2769 2886 2888 2922 2928 2936 2938 2957 2959 3004 3014 3024 3056 3067 3087 3097 3108 3118 3149 3515 3521 3615 3635 3636 3720 3734 3749 3759 3992 3999 4038 4369 4383 4437 4443 4466 4468 5553 5782 5790 5794 5841 5853 5864 5869 6277 6320 6468 6524 6732 7097 7170 7177 8104 8111 8120 8141 8149 BYTE 950 # 5030 5047 6505 7223 7245 CONSOLE 938 # DP 943 # 4746 4748 4766 4791 6832 6860 8953 DP LEFT 941 # 6818 7124 7957 8711 DROM 939 # 2544 2548 2557 2562 2570 2591 2597 2622 2627 6286 6289 EAMODE 951 # 2445 2519 3804 5071 5074 6273 7263 7271 MUL 947 # 4584 4592 4602 4610 5927 5953 5955 6074 NICOND 949 # 2382 2383 2385 2386 2466 2472 2715 3250 3298 3326 3571 3583 3676 3700 3701 3704 3705 3774 3775 3802 3865 4007 4085 4092 4532 4802 4805 5017 5786 5792 6154 7872 8155 NORM 942 # 2427 5642 5672 5751 5828 5830 5840 5844 5846 5848 5849 5852 5873 6026 6081 6082 6093 6095 6114 6124 6126 6131 6132 6159 6188 PAGE FAIL 948 # RETURN 946 # 2648 2649 3844 3845 4334 4337 4545 4589 4597 4607 4615 4813 4836 4837 4839 4924 4952 5057 5059 5063 5099 5133 5152 5222 5445 5585 5586 5872 5874 5875 5965 6162 6169 6170 6185 6581 6591 6596 6599 6637 6638 6789 6795 6972 6996 7064 7096 7108 7140 7156 7173 7182 7184 7211 7247 7281 7287 7292 7333 7599 7672 7772 7806 7885 7945 8068 8071 8356 8369 8371 8373 8375 8377 8379 8381 8383 8385 8387 8389 8580 8584 8618 8916 9047 SCAD0 952 # 5016 5022 5036 5115 5625 5772 5774 6332 6334 6388 7214 7258 8342 (U) DISP HIGH 1415 # (U) DISP LOW 1416 # (U) DIVIDE 1041 # 4873 4874 4919 4923 (U) DONT CACHE 1251 # (U) DP FUNC 1269 # 8117 8152 8383 8884 8894 8911 (U) DT 1009 # 2T 1012 # 3T 1013 # 2333 2427 2449 2531 2561 2573 2574 2686 2719 2725 2730 2733 2785 2980 2986 3194 3207 3210 3224 3296 3299 3367 3368 3577 3580 3589 3592 3652 3682 3685 3694 3697 3843 3863 3863 3879 3879 3990 3996 4036 4042 4115 4274 4276 4281 4294 4299 4324 4328 4350 4396 4408 4435 4440 4503 4508 4526 4528 4645 4647 4649 4653 4667 4707 4713 4728 4730 4742 4753 4760 4773 4855 4933 4935 4937 4938 4940 4942 4943 4945 4961 4968 5016 5022 5030 5036 5038 5047 5063 5222 5295 5299 5308 5309 5324 5355 5368 5374 5443 5478 5482 5521 5589 5642 5672 5690 5710 5716 5718 5751 5793 5828 5830 5836 5840 5844 5846 5848 5849 5852 5855 5860 5873 5895 5998 6017 6021 6024 6026 6039 6050 6069 6081 6082 6093 6094 6095 6097 6100 6103 6111 6114 6120 6124 6126 6131 6132 6156 6159 6162 6180 6188 6263 6306 6307 6324 6327 6344 6348 6358 6365 6375 6378 6395 6399 6414 6415 6416 6417 6434 6449 6450 6452 6469 6482 6488 6492 6495 6501 6505 6517 6534 6535 6537 6541 6545 6546 6548 6550 6555 6557 6559 6567 6569 6572 6608 6610 6611 6622 6623 6624 6625 6644 6650 6677 6681 6689 6694 6695 6705 6713 6718 6724 6731 6737 6738 6739 6740 6754 6756 6760 6811 6846 6849 6869 6903 6907 6914 6917 6921 6942 6951 6953 6954 6958 6979 6980 6994 7059 7061 7105 7106 7107 7114 7121 7176 7181 7183 7188 7192 7194 7210 7212 7223 7240 7245 7299 7303 7307 7312 7313 7318 7326 7327 7330 7377 7378 7397 7436 7443 7445 7447 7448 7450 7452 7470 7479 7500 7566 7628 7630 7632 7634 7648 7654 7656 7657 7658 7659 7661 7742 7750 7757 7762 7764 7769 7773 7783 7813 7815 7816 7819 7825 7827 7841 7851 7853 7858 7860 7862 7864 7866 7868 7893 8117 8121 8150 8152 8153 8383 8385 8387 8501 8569 8575 8576 8579 8588 8589 8591 8592 8594 8595 8596 8598 8599 8601 8602 8604 8605 8607 8608 8610 8611 8612 8613 8614 8615 8617 8745 8750 8753 8757 8758 8759 8761 8766 8775 8797 8799 8805 8807 8816 8834 8835 8843 8858 8860 8876 8878 8906 8908 8909 8915 8930 8938 8940 8946 8966 8991 9000 9001 9003 9004 9006 9007 9025 9043 9047 4T 1014 # ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 236 ; CROSS REFERENCE LISTING 5T 1015 # (U) EXT ADR 1275 # 2529 2533 4265 4273 4286 4306 4336 7346 7353 7993 8047 8117 8152 8383 8499 8502 8587 8590 8597 8600 8603 8606 8609 8765 8814 8875 9024 9028 9037 (U) FETCH 1240 # 2382 2383 2385 2386 2406 2443 2465 2471 2518 2595 2621 3227 3571 3583 3700 3701 3704 3705 3774 3775 3802 3865 4005 4532 5017 5027 7872 8155 8514 8761 8938 (D) FL-B 1454 # AC 1455 # 5602 5605 5606 5610 5613 5614 5648 5652 5653 5678 5682 5683 5729 5730 5765 5766 BOTH 1457 # 5604 5608 5612 5616 5650 5655 5680 5685 MEM 1456 # 5603 5607 5611 5615 5649 5654 5679 5684 (U) FLG.1PROC 1402 # 2450 3844 8958 9043 9049 (U) FLG.2PROC 1403 # 2449 2450 2451 8946 8958 9050 (U) FLG.C 1399 # (U) FLG.PI 1398 # 3894 8745 8843 8860 8995 (U) FLG.SN 1400 # 5855 5863 5956 5957 5964 6094 6097 6100 6103 6106 6121 6149 6162 6169 6170 (U) FLG.W 1397 # (U) FMWRITE 1036 # 2309 2317 2319 2320 2322 2325 2326 2328 2329 2335 2337 2681 2714 2971 3229 3250 3286 3320 3326 3544 3635 3676 3679 3682 3685 3688 3691 3694 3697 3942 4006 4008 4073 4078 4107 4493 4501 4510 4512 4523 4524 4525 4527 4529 4757 4773 4774 4775 4777 4780 4799 4801 4804 4934 4939 4944 4950 4951 4952 5014 5032 5280 5294 5304 5314 5347 5399 5453 5523 5550 5786 5792 6108 6115 6151 6152 6153 6160 6272 6285 6288 6314 6319 6336 6361 6382 6384 6390 6400 6403 6410 6411 6412 6427 6438 6440 6442 6459 6475 6477 6484 6498 6512 6519 6530 6561 6578 6580 6615 6616 6628 6629 6636 6638 6652 6654 6663 6666 6698 6704 6710 6715 6716 6720 6729 6735 6742 6743 6744 6908 6940 6969 7045 7062 7093 7190 7219 7262 7286 7301 7304 7309 7316 7321 7328 7340 7420 7458 7571 7681 7683 7685 7687 7711 7719 7722 7726 7748 7765 7771 7802 7805 7836 7837 8122 8340 8346 8348 8389 8494 8567 8583 8593 8700 8703 8704 8706 8712 8721 8723 8725 8727 8734 8737 8763 (U) FORCE EXEC 1238 # 2529 2533 4265 4273 4286 4306 4336 7346 7353 7978 7993 7995 8022 8038 8047 8055 8112 8115 8151 8159 8163 8499 8502 8516 8587 8590 8597 8600 8603 8606 8609 8765 8814 8875 9024 9028 9037 (U) FORCE USER 1237 # 2529 2533 4265 4273 4286 4306 4336 7346 7353 7978 7993 8038 8047 8112 8115 8151 8159 8163 8499 8502 8516 8587 8590 8597 8600 8603 8606 8609 8741 8765 8779 8814 8875 9024 9028 9037 (U) GENL 792 # 2383 2385 2442 2463 2464 2470 2475 2490 2491 2503 2514 2553 2888 2920 2928 2950 2952 3583 3701 3704 3774 3775 3776 3785 3788 3802 3827 3865 3890 3904 4057 4118 4131 4135 4286 4298 4303 4336 4352 4405 5062 5093 5307 5367 5391 5445 5457 5486 5489 5501 5505 5510 5522 5573 5574 5591 5593 5668 5935 6275 6278 6281 6323 6350 6353 6369 6376 6406 6425 6431 6439 6443 6455 6467 6471 6478 6497 6526 6603 6618 6657 6692 6709 6736 6747 6751 6808 6814 6862 6923 6927 6962 6988 7031 7036 7096 7217 7261 7270 7438 7464 7478 7567 7569 7672 7720 7723 7796 7801 7826 7863 7865 7867 7869 7882 7959 7960 7961 7962 7963 7964 7965 7987 8025 8071 8502 8518 8590 8597 8600 8603 8606 8609 8762 8825 8849 8863 8883 8893 8896 8951 8959 8965 8969 8971 8973 8975 8977 8979 8981 8982 8983 9028 (U) GENR 799 # 2450 2451 2611 2613 2626 2648 2649 2886 2922 2926 2943 2945 2970 3323 3325 3633 3778 3787 3790 3792 3793 3794 3844 3849 3854 3857 3878 3894 3899 3912 3933 4069 4226 4236 4238 4240 4242 4255 4269 4279 4333 4349 4416 4417 4418 4441 4464 4676 4716 4779 4834 4959 5141 5279 5287 5352 5398 5438 5442 5632 5633 5636 5637 5662 5663 5696 5697 5758 5759 5837 5853 5863 5956 5957 5964 5981 6105 6106 6121 6139 6149 6169 6170 6185 6268 6290 6523 6528 6597 6613 6614 6620 6660 6662 6669 6675 6684 6703 6755 6758 6763 6788 6794 6867 6965 6967 7040 7044 7100 7143 7147 7151 7155 7159 7163 7179 7280 7292 7364 7374 7375 7376 7380 7381 7382 7383 7391 7392 7395 7401 7407 7408 7409 7410 7431 7472 7475 7495 7499 7575 7576 7584 7592 7598 7746 7855 7857 7859 7861 8024 8105 8107 8142 8144 8377 8453 8457 8459 8461 8463 8465 8467 8695 8743 8777 8780 8830 8841 8853 8881 8958 8995 9045 9050 (U) HALT 1376 # BW14 1386 # 2710 CSL 1380 # 2403 2421 HALT 1379 # 3851 ILLII 1383 # 8021 ILLINT 1384 # 8052 IOPF 1382 # 8929 MULERR 1388 # 2343 NICOND 5 1387 # POWER 1378 # 2372 (U) HARDWARE OPTIONS 22 # HWOPT 23 # 7426 (U) HARDWARE SERIAL NUM 25 # HWSER 26 # 7427 (U) HOLD USER 1207 # 2370 2772 3650 3666 3734 3749 3809 3814 3869 3892 3986 3998 4055 4086 4090 4106 4112 4315 4369 4383 4401 4411 4414 4445 4446 4470 4521 4533 4544 4547 4657 4692 4724 4811 4963 4965 5032 5049 5073 5330 5694 5706 5773 6064 6746 6747 7362 (D) I 1462 # 2742 2747 2752 2757 2797 2802 2807 2812 2817 2822 2827 2832 2839 2844 2849 2854 2860 2865 2870 2875 2997 2998 2999 3000 3008 3018 3028 3033 3043 3050 3061 3071 3081 3090 3091 ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 237 ; CROSS REFERENCE LISTING 3092 3093 3101 3112 3123 3133 3142 3143 3144 3145 3158 3159 3163 3417 3418 3419 3420 3421 3422 3423 3424 3426 3427 3435 3436 3437 3438 3439 3440 3441 3442 3454 3455 3456 3457 3458 3459 3460 3461 3471 3472 3473 3474 3475 3476 3477 3478 3595 3596 3597 3598 3599 3600 3601 3602 3709 3710 3711 3712 3713 3714 3715 3716 3723 3724 3725 3726 3727 3728 3729 3730 3738 3739 3740 3741 3742 3743 3744 3745 3752 3753 3765 3767 3921 3922 3965 3966 3967 3968 4064 4098 4099 4100 4101 4154 4155 4156 4157 4158 4159 4160 4161 4165 4166 4167 4168 4169 4170 4171 4172 4173 4174 4175 4176 4177 4178 4179 4180 4181 4182 4183 4184 4185 4186 4187 4188 4189 4190 4191 4192 4193 4194 4195 4196 4200 4201 4210 4211 4212 4213 4214 4215 4216 4217 4218 4219 4362 4376 4426 4451 4622 4627 5448 5730 6200 6201 6202 6203 6204 6205 6206 6208 6209 6210 6211 6213 6214 6215 6216 6218 6219 6220 6221 6222 6223 6224 6225 6258 8395 8396 8397 8399 8400 8402 8403 8405 8406 8407 8408 8409 8410 8411 8412 8414 8415 8416 8417 8418 8419 8420 8421 8423 8424 8425 8426 8427 8428 8429 8430 8432 8433 8434 8435 8436 8437 8438 8439 8441 8442 8443 8444 8445 8446 8447 8448 (U) I.CO3 1303 # (U) I.CO4 1304 # (U) I.CO5 1305 # (U) I.CO6 1306 # (U) I.CO7 1307 # (U) IO BYTE 1288 # 8113 8159 8163 8742 (U) IO CYCLE 1282 # 7978 8038 8112 8115 8151 8159 8163 8516 8742 (U) J 593 # 2495 2544 2548 2557 2562 2570 2591 2597 2622 2627 2648 2649 3844 3845 4334 4337 4545 4589 4597 4607 4615 4813 4836 4837 4839 4883 4924 4952 5057 5059 5063 5099 5133 5152 5222 5445 5585 5586 5872 5874 5875 5965 6162 6169 6170 6185 6286 6289 6581 6591 6596 6599 6637 6638 6789 6795 6972 6996 7064 7096 7108 7140 7156 7173 7182 7184 7211 7247 7281 7287 7292 7333 7599 7672 7772 7806 7885 7945 8068 8071 8356 8369 8371 8373 8375 8377 8379 8381 8383 8385 8387 8389 8510 8580 8584 8618 8916 9047 ABORT 4260 8375 # 8739 AC_ARX 4132 7319 8389 # ADD 4361 4362 4363 4364 4368 # ADDCRY 6571 6577 6590 6596 # ADJBP 5015 5268 # ADJBP0 5271 # 5273 ADJBP1 5291 # 5293 ADJBP2 5298 5301 # ADJBP3 5329 5345 # ADJBP4 5357 # 5369 ADJBP5 5365 5372 # ADJBP6 5393 # 5395 ADJSP 4064 4068 # ADJSP1 4077 4085 # ADJSP2 4082 4090 # AND 3007 3008 3009 3010 3014 # 3039 ANDCA 3017 3018 3019 3020 3024 # 3077 ANDCB 3070 3071 3072 3073 3077 # ANDCM 3032 3033 3034 3035 3039 # AOBJ 3752 3753 3757 # AOJ 3723 3724 3725 3726 3727 3728 3729 3730 3734 # AOS 3639 3640 3641 3642 3643 3644 3645 3646 3650 # APRID 7425 # APRSO 7378 7412 # APRSZ 7377 7415 # ARSIGN 2589 2648 # ASH 3155 3187 # ASHC 3159 3293 # ASHC1 3297 3299 # ASHCL 3304 3315 # 3317 ASHCQ1 3286 3323 3326 # ASHCR 3308 # 3310 ASHCX 3312 3320 # ASHL 3197 # 3197 ASHL0 3187 3194 # ASHR 3176 3190 # ASHX 3201 # 3215 ASHXX 3215 # 3220 BACKBP 7300 7308 7332 # BACKD 7307 # 8974 8982 8984 BACKS 7299 # 8981 BADDATA 8716 8733 # BDABT 6696 6760 # BDCFLG 6741 6762 # BDEC 6644 # BDEC0 6648 6650 # BDEC1 6657 # 6666 BDEC2 6662 # 6670 BDEC3 6658 6672 # 6680 BDEC4 6672 6677 # BDEC5 6675 6685 6689 # BDECLP 6727 # 6746 BDFILL 6711 # 6720 BDSET 6735 # 6755 6758 BDSUB 6678 6728 6774 # BDSUB1 6775 6778 # BDSUB2 6794 # 6797 ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 238 ; CROSS REFERENCE LISTING BDTBL 6734 6751 # BITCHK 6264 6308 6450 6452 6812 7280 # BLT 5448 5452 # BLT-CLEANUP 5519 # 8967 BLTBU1 5555 5572 # BLTCLR 5475 5478 # 5509 BLTCL1 5481 5498 # BLTGOT 5484 # 5498 BLTGO 5466 5482 # 5514 BLTLP1 5460 5463 # 5495 BLTX 5548 # 8455 BLTXLP 5551 # 5595 BLTXV 5571 5583 # BLTXW 5584 5587 # BOTH 2503 # BWRITE 2660 # 2763 2769 2886 2888 2922 2928 2936 2938 2957 2959 3004 3014 3024 3056 3067 3087 3097 3108 3118 3149 4369 4383 4437 4443 4466 4468 BYTEAS 5071 # 5095 7221 BYTEA 5026 5045 5073 # BYTEA0 5072 5076 # BYTFET 5079 5083 5097 # 7265 7266 BYTIND 5087 5091 # CAIM 3596 3597 3598 3599 3600 3601 3602 3604 3605 3606 3607 3608 3609 3610 3611 3615 # CHKSN 6143 6162 # CIRC 3163 3367 # CIRCLA 3378 # 3381 CIRCL 3374 3381 # CIRCRA 3384 # 3387 CIRCR 3376 3387 # CLARXL 5436 8045 8377 # CLARX0 4963 4965 4969 4970 6518 6653 6779 6788 # CLDISP 7301 7309 7322 7328 8942 8953 # CLEANED 5524 8964 # CLEANUP 8953 8963 # CLRB1 6636 6638 # CLRBIN 6521 6617 6636 # CLRCSH 7904 # CLRFLG 6312 6690 7290 # CLRPTL 7914 # 7917 CLRPT 7898 # CLRSN 5946 6038 6170 # CLTRP 8753 8930 8938 # CLTRP1 8939 8946 # CLTRP2 8946 8958 # CMPDST 6481 6501 # CMS 6449 # CMS2 6460 6490 # CMS3 6466 # 6492 6496 CMS4 6469 # CMS5 6474 6495 # CMS6 6481 # 6498 CMS7 6483 6486 # CMS8 6495 6497 # CMSDST 7303 # 8980 COM0 4947 4948 4952 # COM0A 4947 # 4951 COM1 4942 4951 # COM1A 4942 # 4950 COM2 4937 4950 # COM2A 4937 # CONSO 7385 7413 # CONSZ 7384 7416 # CONT 8508 8513 # CONT1 4355 8520 # CPYSGN 4402 4412 4416 # DAC 2681 # 2688 2965 6760 DADD 4391 4396 # DADD1 4399 # 4405 DBABT 6538 6542 6602 # DBDN1 6613 6615 # DBDONE 6604 6610 # 6629 DBFAST 6551 6555 # DBIN 6511 # DBIN1 6526 # 6529 DBIN2 6526 6530 # DBINLP 6534 # 6552 6562 DBLDBL 6574 6585 6586 # DBLDIV 4754 4764 4902 # 6066 6070 DBLMUL 4509 4539 # DBLNEG 2980 4959 # DBLNGA 2970 4960 # DBLNG1 4677 4968 # 6662 DBNEG 6609 6620 # DBSLOW 2334 6549 6567 # DBSLO 6548 # 6556 DBXIT 6536 6608 # DDIV 4700 4705 # DDIV1 4709 4713 4722 # DDIV2 4723 4725 # DDIV3A 4730 # 4735 ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 239 ; CROSS REFERENCE LISTING DDIV3 4720 4726 # DDIV4 4731 4738 # DDIV5A 4743 4753 # DDIV5B 4768 4777 # DDIV5C 4774 4779 # DDIV5 4742 4746 # DDIV6 4775 4777 4782 # DDIV7 4784 # DDIV8A 4793 # DDIV8 4784 4791 # DDIV9 4794 4799 # DDIVS 4739 4758 4813 # 6062 DFAD 5881 5894 # DFADJ 5910 5918 5945 # DFADJ1 5952 # 5953 DFADJ2 5954 # DFADJ3 5956 5960 # 5960 DFADJ4 5957 5961 # DFADJ5 5955 5963 # 5964 DFADJ6 5963 5965 # DFAS1 5899 5901 5903 # DFAS2 5904 5910 # DFAS3 5906 5915 # DFAS5 5912 5920 5924 # DFAS6 5929 # 5930 DFAS7 5929 5931 # DFDV 6033 6036 # DFDV1 6042 # 6049 DFDV2 6043 6050 # DFDV3 6053 6061 # DFDV4A 6076 # 6079 DFDV4B 6078 6081 # DFDV4 6059 6063 # DFMP 5971 5976 # DFMP1 5978 # 5979 DFMP2 6001 6004 # DFPR1 2607 2613 # DFPR2 2612 2614 # DFSB 5882 5891 # DIV 4626 4627 4628 4629 4643 # DIV1 4638 4640 4652 # 4694 DIV2 4655 # 4668 DIVA 4650 4664 # DIVB 4665 4670 # DIVC 4675 4680 4683 # DIVHI 4903 4906 4909 # 4920 DIVIDE 4873 # 4873 DIVSET 4863 4867 # DIVSGN 4835 4853 # 5712 DIVSUB 4656 4832 # 5303 5313 5348 DMLINT 4511 4547 # DMOVNM 2975 2980 # DMOVN 2966 2970 # DMOVN1 2974 2982 # DMTRAP 4524 4530 # DMUL 4477 4482 # DMUL1 4492 4503 # DMUL2 4502 4508 # DMULGO 4490 4538 # DNEG 6094 6097 6100 6103 6119 # DNEG1 6119 6121 # DNEG2 6120 6123 # DNN1 6145 6149 # DNN2 6147 6151 # DNNORM 6082 6124 6126 6129 # 6131 6159 DNNRM1 6139 6156 # DNORM 6027 6081 6091 # 6093 6114 DNORM0 5935 6026 # DNORM1 6105 6111 # DNORM2 6151 6153 # DOCVT 6649 # 6699 6715 DOCVT1 6649 6724 # DOCVT2 6725 6745 # DOCVT3 6742 # 6764 DONE 2382 # 2721 2735 3042 3043 3229 3417 3418 3426 3427 3529 3574 3577 3580 3595 3709 4009 4120 4136 4533 5049 5400 5487 5502 5591 7416 7420 7459 7661 7711 7803 7827 7838 7893 7921 7937 8122 DPB 5010 5038 # DPB1 5048 5214 # 7246 DPB7 5215 5216 5217 5218 5219 5221 # 5243 DPBSLO 5214 5225 # DRND1 6181 6185 # 6189 6192 DROUND 6096 6099 6102 6133 6135 6137 6179 # 6183 DSMS1 8067 8070 # 8072 DSTEA 7265 # 7271 DSTIND 7267 7268 7270 # DSUB 4392 4408 # DUMP 8570 8578 8587 # DVSUB1 4856 4859 # DVSUB2 4854 4860 # DVSUB3 4862 # 4866 ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 240 ; CROSS REFERENCE LISTING EACALC 2446 2457 # 2520 EDBYTE 6956 6985 6994 # EDEXMD 6871 6903 # EDFILL 6920 # EDFIL1 6922 6935 # EDFLT 6895 6941 6951 # EDFLT1 6965 6967 6969 # EDISP 6823 6829 # EDISP1 6831 # 6831 EDIT 6808 # EDITLP 6813 # 7045 EDMSG 6838 6979 # EDMSG1 6981 6988 # EDN1A 7027 # 7032 EDNOP 6840 6842 6844 6859 6868 6896 6908 6930 6936 6990 6991 7006 7016 # EDNOP1 7010 7017 # EDNOP2 7028 7034 # 7034 EDOPR 6835 6859 # EDSEL 6863 6914 # EDSFLT 6924 6940 # EDSKP 6847 6850 6852 7003 # EDSKP1 7004 7007 # EDSPUT 6927 # 6935 6945 EDSSIG 6865 6895 # EDSTOP 6861 6879 # 6925 EDSTP1 6885 # 6888 ENDSKP 6440 6618 # EQV 3080 3081 3082 3083 3087 # EXCH 2779 2783 # EXEC-DBR 8790 8804 # EXTDSP 6276 # EXTEA 6275 # EXTEA0 6270 6272 # EXTEA1 6273 # 6281 EXTEND 6258 6262 # EXTEXT 6277 6285 # 6291 EXTIND 6278 6281 # FAD 5602 5603 5604 5605 5606 5607 5608 5625 # FAS1 5627 # FAS2 5627 5636 # FAS3 5632 5633 5636 5637 5639 # FAS4 5641 # 5641 FDV 5678 5679 5680 5682 5683 5684 5685 5690 # FDV0 5693 5696 # FDV1 5696 5698 # FDV2 5697 5699 # FDV3 5698 5699 5700 # FDV4 5702 # 5703 FDV5 5702 5705 # FDV6 5705 5708 # FDV7 5712 # 5713 FDV8 5715 # FDV9 5715 5720 5721 5723 # FETIND 2478 2483 2505 2513 # FIX 5765 5766 5770 # FIX++ 4877 # 4878 FIX1++ 4877 4879 # FIXL 5775 5785 # 5785 FIXPC 4547 6776 8951 # FIXR 5780 # 5781 FIXT 5789 5792 # FIXX 5782 5789 # FIXX1 5790 # 5796 FL-BWRITE 2708 # 5790 5794 5841 5864 FLEX 5837 5841 # FLTR 5729 5734 # FLTR1A 5739 5742 # FLTR1 5735 5738 # FLTR2 5740 5742 5747 # FLTR3 5749 # 5750 FMP 5648 5649 5650 5652 5653 5654 5655 5659 # FMP1 5662 5663 5664 # FP-LONG 4214 4215 4216 4217 4218 4219 4242 # FPR0 2580 2586 # FPR1 2590 # FSB 5610 5611 5612 5613 5614 5615 5616 5622 # FSC 5730 5755 # GETPCW 4284 7595 # GETSRC 6472 6915 7212 # GOEXEC 2534 4311 # 9038 GOTDBR 8798 8800 8806 8808 8814 # GRP700 7370 7424 # GRP701 7371 7903 # GRP702 7622 7627 # GSRC 6428 7095 7210 # GSRC1 7215 7219 # GTFILL 6305 6809 7284 # H1 8504 # 8571 HALT 3779 3849 # HALTED 2343 2403 2421 2710 3851 8021 8052 8494 # 8929 HALTLP 8504 8510 # ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 241 ; CROSS REFERENCE LISTING HARD 8362 8718 8720 8737 # HLL 2796 2797 2840 2888 # 2914 HLLE 2826 2827 2828 2829 2955 # HLLO 2816 2817 2818 2819 2959 # HLLZ 2806 2807 2808 2809 2957 # HLR 2843 2844 2916 # HLRE 2874 2875 2876 2877 2948 # HLRM 2845 2925 # HLRO 2864 2865 2866 2867 2952 # HLRS 2846 2928 # HLRZ 2853 2854 2855 2856 2950 # HRL 2801 2802 2914 # HRLE 2831 2832 2833 2834 2941 # HRLM 2803 2919 # HRLO 2821 2822 2823 2824 2945 # HRLS 2804 2922 # HRLZ 2811 2812 2813 2814 2943 # HRR 2798 2838 2839 2886 # 2916 HRRE 2869 2870 2871 2872 2934 # HRRO 2859 2860 2861 2862 2938 # HRRZ 2848 2849 2850 2851 2936 # HSBDON 8614 # IBP 5006 5013 # IBPS 5016 5022 5036 5056 # IBPX 4129 5056 5063 # IDIV 4621 4622 4623 4624 4634 # IDPB 5009 5036 # IDST 6502 7241 7258 # IDSTX 7259 7262 # ILDB 5007 5022 # IMUL 4425 4426 4427 4428 4431 # IMUL1 4437 # 4659 IMUL2 4436 4439 # IMUL3 4442 4445 # INCAR 6402 8379 # INCPC 2428 2442 # 2451 INDEX 2490 # INDRCT 2508 # IOR 3060 3061 3062 3063 3067 # 3129 IORD 8082 8089 8097 # IORD0 8100 8106 8108 8110 # IORD1 8114 8117 # IORD2 8121 8125 # IORD3 8125 8129 # 8129 IORDEX 8122 # 8126 8130 IORDI 8080 8081 8087 8088 8103 # IOT700 8395 8396 8397 8453 # IOT710 8399 8400 8455 # IOT720 8402 8403 8457 # IOT730 8405 8406 8407 8408 8409 8410 8411 8412 8459 # IOT740 8414 8415 8416 8417 8418 8419 8420 8421 8461 # IOT750 8423 8424 8425 8426 8427 8428 8429 8430 8463 # IOT760 8432 8433 8434 8435 8436 8437 8438 8439 8465 # IOT770 8441 8442 8443 8444 8445 8446 8447 8448 8467 # IOW1 8339 # 8344 IOW2 8341 8347 8351 # IOW3 8354 # 8361 IOW4 8355 8359 # IOW5 8349 8362 # IOWAIT 8118 8154 8335 # IOWR 8083 8090 8134 # IOWR0 8137 8143 8145 8147 # IOWR1 8152 # 8159 8163 IOWR2 8150 8158 # IOWR3 8158 8162 # 8162 IOWRI 8084 8085 8091 8092 8140 # ITRAP 6404 8703 # JEN 3789 3857 # JEN1 3863 3879 8067 # JEN2 3855 3863 # JFCL 3767 3869 # JFFO 3158 3223 # JFFO1 3228 3231 # JFFOL 3245 # 3247 JMPA 3688 # 4147 JRA 4101 4141 # JRST 3713 3765 3774 # JRST0 3801 3804 # 3840 3861 JRST1 3830 3835 3837 # JRST10 3786 3854 # JRST2 3810 3815 3843 # JRSTF 3777 3798 # JSA 4100 4125 # JSP 4099 4105 # JSR 4098 4111 # JSTAC 3993 4000 4003 # 4039 JSTAC1 4006 # 4058 JSYS 4211 4236 # JUMP 3710 3711 3712 3714 3715 3716 3720 # JUMP-TABLE 3673 # 3720 3734 3749 3759 JUMP- 3679 3682 3685 3700 # 3872 JUMPA 3688 3691 3694 3697 3704 # 4108 4317 ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 242 ; CROSS REFERENCE LISTING KIMUUO 4266 4324 # L-BDEC 6210 6211 6235 # L-CMS 6200 6201 6202 6204 6205 6206 6229 # L-DBIN 6208 6209 6233 # L-EDIT 6203 6231 # L-MVS 6213 6214 6215 6216 6237 # L-SPARE-A 6219 6241 # L-SPARE-B 6220 6243 # L-SPARE-C 6221 6222 6223 6224 6225 6245 # L-XBLT 6218 6239 # LDB 5008 5024 # LDB1 5031 5114 # 6505 7225 LDB7 5119 5120 5121 5122 5123 5128 # LDBR1 7681 # LDBR2 7683 # LDBR3 7685 # LDBR4 7687 # LDBSH 5138 5143 # LDBSWP 5116 5137 # LDPI2 3864 7870 7882 # LOADAR 6753 6817 6904 8368 # LOADARX 7120 7721 7724 7798 8371 # LOADPI 2347 7881 # LOADQ 5454 6458 8373 # LPMR 7717 # LSH 3157 3171 # LSHC 3161 3275 # LSHCL 3275 3283 # 3283 LSHCR 3279 # 3279 LSHCX 3280 3285 # 3354 3359 3382 3388 LSHL 3173 3178 # LUUO 4154 4155 4156 4157 4158 4159 4160 4161 4341 # LUUO1 4344 # 6229 6231 6233 6235 6237 6239 6241 6243 6245 MOVE 2743 2766 2769 # 2773 2799 2841 3027 3028 3029 3030 3044 3045 4417 4418 4445 4446 4470 5299 MOVELP 6323 6344 # 6353 MOVF1 7059 # 7065 MOVFIL 6377 6439 7065 # MOVLP0 6337 6353 # MOVM 2756 2758 2759 2766 # MOVN 2751 2752 2753 2754 2771 # MOVPAT 6820 6822 6825 # 6825 MOVRJ 6329 6375 # MOVS 2746 2747 2748 2749 2763 # 2920 2926 2943 2945 2950 2952 MOVSTX 6429 # MOVST0 6326 6424 # MOVST1 6379 6425 # 6435 MOVST2 6347 6430 6438 # MOVST3 6438 6442 # MOVST4 6391 6434 # MSKPAT 6821 6826 # MUL 4450 4451 4452 4453 4458 # MUL+ 4566 4579 4583 # 4585 4603 MUL- 4593 4601 # 4611 MULBY4 6568 6585 # MULSB1 4564 # 5987 MULSUB 4434 4462 4563 # 5376 5666 MULTIPLY 4543 4576 # 5992 6004 6011 MUUO 4165 4166 4167 4168 4169 4170 4171 4172 4173 4174 4175 4176 4177 4178 4179 4180 4181 4182 4183 4184 4185 4186 4187 4188 4189 4190 4191 4192 4193 4194 4195 4196 4252 # MVABT 6349 6358 # MVABT1 6361 # 6363 MVABT2 6361 6365 # MVEND 6368 # MVS 6302 # MVS1 6317 6319 # MVSK2 6384 6410 # MVSK3 6396 6400 # MVSKP 6375 6382 # 6394 6407 6418 MVSKP1 6389 6394 # MVSKP2 6398 6406 # MVSO 6324 6331 # MVSO1 6334 # 6334 NEXT 4275 4279 4325 4336 # 8588 8591 8593 8595 8598 8601 8604 8607 8610 8612 NICOND 2391 # 2715 3250 3298 3326 3676 4007 4085 4092 4802 4805 5786 5792 6154 NICOND-FETCH 2382 2383 2385 2386 2411 # 2466 2472 3571 3583 3700 3701 3704 3705 3774 3775 3802 3865 4532 5017 7872 8155 NIDISP 3298 # 4087 4091 4657 4692 4724 4811 5033 5330 5694 5706 5773 6064 NODDIV 4746 4748 4810 # NODIV 4686 4690 4692 # NOMOD 2494 # NXTWRD 5058 5062 # ORCA 3100 3101 3102 3103 3107 # ORCB 3132 3133 3134 3135 3139 # ORCM 3122 3123 3124 3125 3129 # PAGE-CONTINUE 8766 8899 8905 # PAGE-CONTINUE1 8759 8907 # PAGE-FAIL 8699 # ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 243 ; CROSS REFERENCE LISTING PAGE-REFILL 8850 8864 8872 # PF-INT 8713 8724 8749 # PFD 8709 # 8711 PFDBIN 7326 # 8978 PFGAC0 7328 # PFMAP 8722 8726 8728 8774 # PFMAP1 8784 # 8785 PFT 8745 8843 8860 8929 # PFTD00 9007 9018 # PFTD01 9006 9015 # PFTD10 9004 9012 # PFTD11 9003 9009 # PFTDSP 8994 9000 # PFTDS0 9001 9006 # PFTDS1 9000 9003 # PFTRAP 8959 8965 8991 # PFTRAP1 9009 9010 9012 9013 9015 9016 9018 9019 9022 # PI 7956 # 7958 8995 PI10 7966 7967 7968 7969 7970 7971 7972 7974 # PI40 7989 7993 # PI50 7994 # 8056 PIEXIT 3895 7870 # PIJSR 7997 8021 # PIP1 7959 7966 # PIP2 7960 7967 # PIP3 7961 7968 # PIP4 7962 7969 # PIP5 7963 7970 # PIP6 7964 7971 # PIP7 7965 7972 # PISET 3893 # 8027 PIXPCW 3902 # 8000 POP 3967 4014 # POPJ 3968 4047 # POPX1 4030 4042 # PTWLH 8820 8828 # PTWRH 8818 8823 # PTWTST 8826 8831 8834 # PTWTS0 8834 8839 # PTWTS1 8835 8847 # PUSH 3966 3973 # PUSH1 3975 # 3987 PUSHJ 3965 3985 # PUTDST 6351 6432 6717 6736 6928 6963 6989 7060 7239 # PWRON 2373 8499 # QDNEG 4733 4810 4933 # QMULT 4499 4519 4542 # Q_RSH 5561 5580 5586 # RDAPR 7470 # RDEBR 7579 # RDEBR1 7581 # 7581 RDERA 7380 # RDHSB 7648 # RDINT 7841 # RDPI 7848 # RDTIME 7809 # 7823 RDTIM1 7822 7825 # RDUBR 7589 # READ-ONLY 8842 8854 8857 # ROT 3156 3207 # ROTC 3160 3349 # ROTCL 3349 3357 # 3357 ROTCR 3353 # 3353 ROTL 3209 3217 # RTNREG 7397 7432 7483 7585 7593 7628 7630 7632 7634 7648 7842 7848 7892 # SAVVMA 8495 8568 8582 # SBRL 5709 6560 8381 # SDBR1 7628 # SDBR2 7630 # SDBR3 7632 # SDBR4 7634 # SETBLT 5432 # 5452 5549 SETCA 3090 3091 3092 3093 3097 # SETCM 3111 3112 3113 3114 3118 # 3139 SETO 3142 3143 3144 3145 3149 # SETPDL 3998 # 4044 SETSN 5717 5719 6018 6169 # SETZ 2997 2998 2999 3000 3004 # SFM 3791 3912 # SHIFT 2566 # 2576 SKIP 2385 # 3586 3589 3592 6618 6747 7413 SKIP-COMP-TABLE 3568 # 3615 3635 3636 6468 SKIPE 3577 # 6443 SKIPS 3622 3623 3624 3625 3626 3627 3628 3629 3633 # 3652 SNNEG 5829 5831 5833 5835 5844 # SNNORM 5844 5846 5848 # 5848 5852 SNNOT 5855 5859 # SNNOT1 5857 5862 # SNNOT2 5859 5861 5862 5863 # SNORM 5642 5672 5751 5828 # 5828 5840 SNORM0 5723 5736 5743 5751 # 5758 5759 ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 244 ; CROSS REFERENCE LISTING SNORM1 5836 5840 # SOJ 3738 3739 3740 3741 3742 3743 3744 3745 3749 # SOS 3655 3656 3657 3658 3659 3660 3661 3662 3666 # SPM 7654 # SPM-NEXT 7657 7659 7671 # SRCMOD 6345 6534 7093 # 7189 7193 7195 SRND1 5869 5872 # SROUND 5830 5832 5834 5849 5850 5851 5869 # 5870 SSWEEP 7926 7944 # STAC 2682 2714 # 2727 2732 2741 2742 2757 2787 2971 3179 3192 3201 6109 6115 6160 6369 6885 8483 STAC34 6623 6628 # START 2405 # STBOTH 2725 # STBTH1 2677 2730 # STDBTH 2686 # STMAC 3982 3990 # STMEM 2719 # 8490 STOBR 3903 4287 8385 # STOPC 3906 8387 # 8503 STORE 2733 # 2991 3914 STORE-INT-PC 8023 9029 9041 # STORE-INT-PC-1 9046 # 9050 STORE-INT-PC-2 9045 9048 # STPF1A 7316 7324 # STRPF 7312 # 8970 8972 STRPF0 7313 # 7330 STRPF1 7316 # STRPF2 7324 7327 # STRPF3 7321 # STRPF4 7330 # 8976 STRTIO 7980 8041 8383 # 8519 STSELF 2676 # 2744 SUB 4375 4376 4377 4378 4382 # SWEEPL 7931 # 7934 SWEEP 7508 7575 7576 7681 7683 7685 7687 7726 7925 # T1LSH 5559 5578 5585 # TDONE 3535 3538 3544 # TDX 3421 3430 3435 3439 3444 3448 3454 3458 3463 3467 3471 3475 3480 3484 3515 # TDXX 3419 3423 3428 3432 3437 3441 3446 3450 3456 3460 3465 3469 3473 3477 3482 3486 3520 # TENLP 2332 # 2339 TEST-TABLE 3515 3521 3526 # TICK 6413 7742 # TOCK 7744 # 7820 8752 TOCK1 7748 # 7754 TOCK2 7749 7757 # TOCK3 7762 # 7766 TOCK4 7763 7768 # TOCK5 7771 # 7787 TRAP 2396 2399 2402 2414 2417 2420 7339 # TRNAR 6918 7115 # TRNFNC 7125 7137 # 7144 7148 7152 7164 TRNNS1 7177 7187 # TRNNS2 7187 7190 # TRNRET 7138 7169 # TRNSIG 7150 # 7160 TRNSS 7171 7176 # TRNSS1 7172 # 7180 TRP1 7347 7354 7356 # TSX 3422 3431 3436 3440 3445 3449 3455 3459 3464 3468 3472 3476 3481 3485 3513 # TSXX 3420 3424 3429 3433 3438 3442 3447 3451 3457 3461 3466 3470 3474 3478 3483 3487 3518 # TXXX 3529 # 3544 TXZX 3532 3543 # UMOVEM 8474 8486 # UMOVE 8473 8478 # USER-DBR 8792 8796 # UUO 4200 4210 4251 # UUO101 4201 4226 # UUO106 4212 4238 # UUO107 4213 4240 # UUO257 8691 8695 # UUOFLG 4270 4327 4332 # UUOGO 2626 3778 3787 3790 3792 3793 3794 3849 3854 3857 3878 3899 3912 3933 4226 4236 4238 4240 4242 4257 # 7280 7364 7374 7375 7376 7380 7381 7382 7383 7391 7392 7395 7401 7407 7408 7409 7410 7855 8453 8457 8459 8461 8463 8465 8467 8695 UUOPCW 4281 # 4330 VECINT 7984 8034 # 8037 VECIN1 8051 8053 # WRAPR 7436 # WRAPR1 7455 # 7467 WRAPR2 7454 7461 # WREBR 7561 # WREBR1 7563 # 7563 WRHSB 7709 # WRINT 7834 # WRPCST 7403 7419 # WRPI 7851 # ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 245 ; CROSS REFERENCE LISTING WRTHSB 8497 8575 # WRTIME 7793 # WRTIM1 7752 7801 7805 # WRUBR 7490 # WRUBR1 7496 7500 # WRUBR2 7503 7506 # XCT 3924 3935 3938 # XCT1 3942 # 7363 8523 XCT2 2517 # 3943 XCTGO 2407 2424 # 8515 XCTR 3922 3931 # XCTR1 3929 3931 3933 # XCTRI 3921 3929 # XJEN 3783 3878 # XJRSTF 3782 3885 # 3908 XJRSTF0 3781 # 3882 XLATE 7099 7114 # XLATE1 7123 # 7127 XOR 3049 3050 3051 3052 3056 # XOS 3651 # 3666 XPCW 3784 3899 # 1PROC-TRAP 2450 2526 # 8958 (D) J 1459 # (U) JFCLFLG 1227 # 3869 (U) LD FLAGS 1231 # 2371 3808 3813 3891 4314 7999 8026 8941 (U) LD PCU 1219 # 4316 (U) LDVMA 1271 # 2310 2332 2336 2382 2382 2383 2385 2386 2386 2405 2442 2465 2471 2477 2481 2504 2508 2517 2529 2529 2533 2533 2553 2595 2606 2609 2621 2983 2987 2988 3227 3571 3571 3583 3700 3700 3701 3704 3705 3705 3774 3775 3776 3781 3785 3788 3802 3828 3832 3865 3881 3887 3902 3904 3904 3913 3977 4004 4015 4027 4032 4048 4113 4143 4264 4265 4265 4272 4273 4273 4286 4286 4305 4306 4336 4336 4345 4352 4353 4532 4532 5017 5017 5027 5076 5080 5084 5088 5433 5463 5470 5489 5490 5505 5506 5510 5511 5587 5593 5593 6276 6278 6279 6303 6455 6706 6733 6778 6784 6791 6808 6813 6870 6952 6995 7115 7265 7266 7267 7268 7346 7353 7403 7490 7655 7672 7720 7723 7796 7821 7826 7826 7872 7872 7892 7898 7977 7993 7993 7993 7994 8047 8047 8055 8098 8117 8135 8152 8155 8155 8375 8383 8478 8486 8496 8499 8499 8502 8502 8513 8570 8587 8587 8590 8590 8597 8597 8600 8600 8603 8603 8606 8606 8609 8609 8616 8754 8765 8765 8765 8774 8814 8814 8873 8875 8884 8894 8910 9024 9024 9028 9028 9037 9037 (U) LOADFE 1034 # 2569 2587 2603 3172 3175 3179 3189 3191 3208 3211 3214 3219 3231 3246 3294 5025 5029 5041 5137 5142 5144 5146 5149 5214 5227 5230 5231 5233 5235 5558 5560 5577 5579 5585 5586 5631 5660 5669 5671 5692 5698 5699 5713 5736 5740 5742 5743 5757 5828 5832 5834 5840 5848 5850 5851 5852 5870 5875 5917 5932 5934 5999 6016 6027 6051 6077 6092 6099 6102 6113 6130 6135 6137 6158 6183 6191 6331 6332 6334 6504 6880 6881 6887 7017 7018 7019 7020 7221 7224 7244 7263 (U) LOADSC 1032 # 2327 2337 2568 2587 2603 2619 3195 3197 3275 3276 3277 3279 3283 3294 3303 3306 3310 3317 3349 3350 3351 3353 3357 3372 3374 3375 3376 3379 3385 4432 4460 4498 4518 4539 4565 4578 4584 4592 4602 4610 4655 4754 4762 4870 4873 4914 5269 5272 5285 5292 5297 5310 5326 5373 5388 5394 5625 5629 5630 5639 5641 5664 5712 5747 5750 5755 5774 5775 5776 5778 5781 5785 5896 5906 5916 5950 5953 5960 5976 5979 5987 5991 5994 6004 6010 6066 6067 6651 6680 6820 6822 6825 6829 6831 7009 7016 7022 7027 7034 7561 7563 7579 7581 7905 7916 7933 7944 8125 8129 8158 8162 8335 8342 8351 8355 8782 8785 (U) LSRC 675 # (U) MACRO% ABORT MEM CYCLE 2135 # 2310 3881 7977 8375 8496 8570 8754 8774 AC 1980 # 4431 4458 4634 4726 5690 5756 5899 5901 AC[] 1981 # 4803 6040 6048 6558 6622 AC[]_Q 1877 # 3326 4493 4501 4512 4524 AC[]_Q.AND.[] 1866 # 4757 4801 4934 4939 4944 4950 4951 AC[]_[] 1852 # 2681 2971 3250 4774 4780 6115 6160 6361 6382 6400 6484 6519 6578 6580 6615 6628 6629 6666 6698 6704 6715 6720 6743 6744 6908 7219 7262 7301 7309 7316 7321 AC[]_[] TEST 1853 # 7190 AC[]_[] VIA AD 1850 # AC[]_[]*2 1855 # 4510 AC[]_[]+1 1854 # 7062 AC[]_[]+Q 1860 # AC[]_[]+[] 1862 # 4799 6561 AC[]_[]-[] 1861 # 6314 AC[]_[].AND.[] 1865 # 4777 6108 6153 AC[]_[].EQV.Q 1867 # 4525 4527 4529 4804 AC[]_-Q 1873 # AC[]_-[] 1868 # AC[]_.NOT.[] 1871 # AC[]_0 1875 # 2325 3229 4775 6390 6438 6636 6638 AC[]_1 1876 # 2326 AC_-[] 1869 # 6152 AC_.NOT.[] 1872 # 6151 AC_Q 1874 # 4773 AC_[] 1856 # 2714 3286 3544 3635 3676 3688 4006 4008 4107 4952 5032 5453 5523 5550 5786 5792 6440 6477 6742 6969 7045 7328 8122 8389 AC_[] TEST 1857 # 3679 3682 3685 3691 3694 3697 4523 6616 6663 ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 246 ; CROSS REFERENCE LISTING AC_[] VIA AD 1851 # AC_[]+1 1858 # 7304 AC_[]+Q 1859 # AC_[]+[] 1863 # 3320 4073 4078 AC_[]-[] 1864 # AC_[].OR.[] 1870 # 5399 6403 6442 AD FLAGS 2165 # 2772 3650 3666 3734 3749 4369 4383 4401 4411 4414 4544 4963 4965 AD FLAGS EXIT 2216 # 4369 4383 AD PARITY 2087 # 2333 2547 2560 2561 2783 2886 2888 2920 2926 2980 3171 3174 3188 3223 3720 4014 4047 4070 4128 4141 4460 4503 4644 5042 5452 5548 5625 5659 5692 5757 5905 6306 6309 6324 6327 6358 6375 6449 6451 6469 6501 6514 6517 6545 6548 6550 6557 6567 6608 6610 6611 6644 6649 6650 6651 6672 6677 6689 6724 6810 6869 6914 6951 6953 7061 7176 7183 7210 7212 7240 7299 7307 7313 8147 8489 ADD .25 2120 # 2771 3149 3615 3666 3749 3776 3785 3788 4382 4400 4408 4413 4591 4595 4639 4683 4717 4740 4741 4747 4769 4795 4837 4838 4839 4855 4857 4864 4870 4902 4933 4938 4943 4948 4960 4964 4968 4970 5308 5366 5384 5439 5458 5484 5499 5590 5622 5699 5702 5703 5710 5721 5735 5829 5831 5833 5835 5846 5862 5891 5930 6045 6056 6063 6079 6120 6125 6146 6152 6186 6314 6348 6362 6385 6453 6489 6490 6491 6539 6603 6621 6624 6693 6710 6718 6737 6745 6746 6780 6782 6785 6834 7187 7312 7320 7326 7768 7882 7914 7931 8762 8951 ADL PARITY 2080 # ADR PARITY 2084 # AREAD 2211 # 2495 ASH 2096 # 2616 3191 ASH AROV 2149 # 3197 3316 3319 ASH36 LEFT 3184 # 3197 ASHC 2101 # 3197 3309 3312 3316 3319 4584 4592 4602 4610 4719 4723 4793 4797 4813 5641 5747 5749 5780 5925 5927 5931 5933 5949 5953 5960 5963 5965 5978 6019 6023 6059 6073 6092 6098 6101 6113 6130 6134 6136 6158 6183 B DISP 2212 # 2763 2769 2886 2888 2922 2928 2936 2938 2957 2959 3004 3014 3024 3056 3067 3087 3097 3108 3118 3149 3515 3521 3615 3635 3636 3720 3734 3749 3759 3992 3999 4038 4369 4383 4437 4443 4466 4468 5553 5782 5790 5794 5841 5853 5864 5869 6277 6320 6468 6524 6732 7097 7170 7177 8104 8111 8120 8141 8149 BAD PARITY 2089 # BASIC DIV STEP 4849 # 4870 4873 BWRITE DISP 2213 # 2763 2769 2886 2888 2922 2928 2936 2938 2957 2959 3004 3014 3024 3056 3067 3087 3097 3108 3118 3149 4369 4383 4437 4443 4466 4468 BYTE DISP 2231 # 5030 5047 6505 7223 7245 BYTE STEP 5001 # 6332 6334 CALL IBP 4995 # 5016 5022 5036 CALL LOAD PI 2237 # 3864 7870 CALL [] 2121 # 2334 2347 2589 2970 2980 3801 3861 3863 3864 3879 3903 3906 4129 4132 4260 4270 4275 4279 4284 4287 4325 4327 4434 4462 4490 4499 4509 4519 4543 4656 4677 4733 4739 4754 4758 4764 4810 4835 5016 5022 5026 5031 5036 5045 5048 5303 5313 5348 5376 5436 5452 5454 5549 5559 5561 5578 5580 5666 5709 5712 5717 5719 5830 5832 5834 5849 5850 5851 5910 5918 5946 5987 5992 6004 6011 6018 6038 6062 6066 6070 6096 6099 6102 6133 6135 6137 6143 6264 6305 6308 6312 6345 6351 6377 6402 6413 6428 6432 6439 6450 6452 6458 6472 6481 6502 6518 6521 6534 6549 6560 6568 6571 6574 6577 6585 6590 6617 6653 6662 6678 6690 6717 6728 6736 6753 6779 6809 6812 6817 6895 6904 6915 6918 6928 6941 6956 6963 6985 6989 7060 7095 7120 7221 7241 7246 7300 7308 7319 7657 7659 7721 7724 7752 7798 7801 7820 7870 7926 7980 8023 8041 8045 8118 8154 8495 8497 8503 8519 8568 8570 8588 8591 8593 8595 8598 8601 8604 8607 8610 8612 8739 8752 9029 CHANGE FLAGS 2142 # 2370 2371 2772 3650 3666 3734 3749 3808 3809 3813 3814 3869 3891 3892 3986 3998 4055 4086 4090 4106 4112 4314 4315 4316 4369 4383 4401 4411 4414 4445 4446 4470 4521 4533 4544 4547 4657 4692 4724 4811 4963 4965 5032 5049 5073 5330 5694 5706 5773 6064 6746 6747 7361 7999 8026 8941 CHK PARITY 2088 # 2425 2513 2531 2543 2552 2556 2573 2584 2595 2602 2615 2687 2720 2726 2731 2734 2786 2986 3296 3367 3652 3799 3838 3859 3885 3889 3935 3974 3991 3997 4020 4037 4043 4056 4116 4146 4275 4277 4282 4312 4325 4329 4351 4432 4526 4528 4635 4645 4730 4753 4760 5063 5092 5098 5222 5494 5552 6262 6281 6708 6903 6954 6957 6986 7270 7285 7356 7419 7491 7656 7658 7661 7710 7718 7795 7825 7827 7835 7893 7994 8048 8099 8136 8153 8368 8371 8373 8385 8387 8482 8501 8521 8588 8589 8591 8592 8595 8596 8598 8599 8601 8602 8604 8605 8607 8608 8610 8611 8613 8766 8815 8877 9026 9047 CHK PARITY L 2081 # CHK PARITY R 2085 # CLEANUP AND TRAP 8627 # 8753 8930 CLEANUP DISP 2239 # CLEANUP DONE 8626 # 8959 8965 CLEAR ARX0 1827 # 2970 4959 6620 6662 6788 6794 CLEAR CONTINUE 2130 # CLEAR EXECUTE 2131 # CLEAR RUN 2132 # CLEAR []0 1826 # 2970 4676 4959 6597 6613 6620 6662 6788 6794 CLR FPD 2151 # 3986 4106 4112 4521 5032 5049 6747 CLR IO BUSY 2136 # 8097 8103 8134 8140 ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 247 ; CROSS REFERENCE LISTING CLR IO LATCH 2137 # 8110 8148 8339 8345 8354 8359 CLRCSH 2127 # 7911 7912 7915 DFADJ 5942 # 5953 DISMISS 2236 # 3863 3879 DIV 2104 # 4870 4873 4874 4922 5828 5840 5848 5852 5945 5947 5948 DIV DISP 2230 # DIV STEP 4850 # 4873 DONE 2221 # 2382 2386 3571 3700 3705 4532 5017 7872 8155 DPB SCAD 5210 # 5215 5216 5217 5218 5219 EA MODE DISP 2210 # 2445 2519 3804 5071 5074 6273 7271 END BLT 2176 # 5486 5501 5591 END MAP 2177 # END STATE 2174 # 5486 5501 5591 6369 6443 6467 6618 6747 6751 6814 7096 8959 8965 8981 8982 EXIT 2215 # 2763 2769 2886 2888 2922 2928 2936 2938 2957 2959 3004 3014 3024 3056 3067 3087 3097 3108 3118 3149 4437 4443 4466 4468 EXP TEST 2164 # 5837 5853 6185 FETCH 1935 # 2382 2383 2385 2386 2406 2465 2471 2595 2621 3227 3571 3583 3700 3701 3704 3705 3774 3775 3802 3865 4005 4532 5017 5027 7872 8155 8514 FE_-1 2059 # FE_-12. 2057 # 3231 FE_-2 2056 # FE_-FE 2043 # 5137 5233 FE_-FE+200 2070 # 5698 5699 FE_-FE+S# 2046 # 5142 FE_-FE-1 2044 # 3172 3208 FE_-S-10 2053 # 5146 5214 FE_-S-20 2052 # FE_0 2058 # FE_EXP 2065 # 2587 2603 5631 5917 FE_FE+1 2060 # 3175 3189 3211 5713 5832 5834 5850 5851 5870 5875 6099 6102 6135 6137 6183 6191 FE_FE+10 2062 # 5144 5149 5227 5235 FE_FE+2 2061 # 5669 FE_FE+4 2064 # 3246 FE_FE+P 2068 # 6881 FE_FE+S# 2071 # 6016 6027 7020 FE_FE+SC 2047 # 7019 FE_FE-1 2063 # 5828 5840 5848 5852 5932 5934 6092 6113 6130 6158 FE_FE-19 2045 # FE_FE-200 2069 # 5671 FE_FE.AND.S# 2048 # 5029 5231 6504 6887 7018 7224 FE_P 2049 # 5025 5230 7017 7221 7263 FE_S 2050 # FE_S# 2054 # 3231 5558 5560 5577 5579 5736 5740 5742 5743 6880 FE_S#-FE 2055 # 6077 FE_S+2 2051 # 6331 FE_SC+EXP 2066 # 5660 5757 5999 FE_SC-EXP 2067 # 5692 6051 FIRST DIV STEP 4851 # 4870 FIX [] SIGN 1840 # 3633 4416 4441 4464 7100 7746 FL NO DIVIDE 2168 # 5694 5706 6064 FL-EXIT 2217 # 5790 5794 5841 5864 FM WRITE 1848 # 2309 2317 2319 2320 2322 2325 2326 2328 2329 2335 2337 2681 2714 2971 3229 3250 3286 3320 3326 3544 3635 3676 3679 3682 3685 3688 3691 3694 3697 3942 4006 4008 4073 4078 4107 4493 4501 4510 4512 4523 4524 4525 4527 4529 4757 4773 4774 4775 4777 4780 4799 4801 4804 4934 4939 4944 4950 4951 4952 5014 5032 5280 5294 5304 5314 5347 5399 5453 5523 5550 5786 5792 6108 6115 6151 6152 6153 6160 6272 6285 6288 6314 6319 6336 6361 6382 6384 6390 6400 6403 6410 6411 6412 6427 6438 6440 6442 6459 6475 6477 6484 6498 6512 6519 6530 6561 6578 6580 6615 6616 6628 6629 6636 6638 6652 6654 6663 6666 6698 6704 6710 6715 6716 6720 6729 6735 6742 6743 6744 6908 6940 6969 7045 7062 7093 7190 7219 7262 7286 7301 7304 7309 7316 7321 7328 7340 7420 7458 7571 7681 7683 7685 7687 7711 7719 7722 7726 7748 7765 7771 7802 7805 7836 7837 8122 8340 8346 8348 8389 8494 8567 8583 8593 8700 8703 8704 8706 8712 8721 8723 8725 8727 8734 8737 8763 FORCE EXEC 1915 # 7995 8022 8055 GEN 17-FE 2074 # 5114 GEN MSK [] 1843 # 5148 5151 5226 5229 6334 HALT [] 2238 # 2343 2403 2421 2710 3851 8021 8052 8929 HOLD LEFT 2079 # 2383 2385 2442 2463 2464 2470 2475 2490 2491 2503 2514 2553 2888 2920 2928 2950 2952 3583 3701 3704 3774 3775 3776 3785 3788 3802 3827 3865 3890 3904 4057 4118 4131 4135 4286 4298 4303 4336 4352 4405 5062 5093 5307 5367 5391 5445 5457 5486 5489 5501 5505 5510 5522 5573 5574 5591 5593 5668 5935 6275 6278 6281 6323 6350 6353 6369 6376 6406 6425 6431 6439 6443 6455 6467 6471 6478 6497 6526 6603 6618 6657 6692 6709 6736 6747 6751 6808 6814 6862 6923 6927 6962 6988 7031 7036 7096 7217 7261 7270 7438 7464 7478 7567 7569 7672 7720 7723 7796 7801 7826 7863 7865 7867 7869 7882 7959 7960 7961 7962 7963 7964 7965 7987 8025 8071 8502 8518 8590 8597 8600 8603 8606 8609 8762 8825 8849 8863 8883 8893 8896 8951 8959 8965 8969 8971 8973 8975 8977 8979 8981 8982 8983 9028 HOLD RIGHT 2083 # 2450 2451 2611 2613 2626 2648 2649 2886 2922 2926 2943 2945 2970 3323 3325 3633 3778 3787 3790 3792 3793 3794 3844 3849 3854 3857 3878 3894 3899 3912 3933 4069 4226 4236 4238 4240 4242 4255 4269 4279 4333 4349 4416 4417 4418 4441 4464 ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 248 ; CROSS REFERENCE LISTING 4676 4716 4779 4834 4959 5141 5279 5287 5352 5398 5438 5442 5632 5633 5636 5637 5662 5663 5696 5697 5758 5759 5837 5853 5863 5956 5957 5964 5981 6105 6106 6121 6139 6149 6169 6170 6185 6268 6290 6523 6528 6597 6613 6614 6620 6660 6662 6669 6675 6684 6703 6755 6758 6763 6788 6794 6867 6965 6967 7040 7044 7100 7143 7147 7151 7155 7159 7163 7179 7280 7292 7364 7374 7375 7376 7380 7381 7382 7383 7391 7392 7395 7401 7407 7408 7409 7410 7431 7472 7475 7495 7499 7575 7576 7584 7592 7598 7746 7855 7857 7859 7861 8024 8105 8107 8142 8144 8377 8453 8457 8459 8461 8463 8465 8467 8695 8743 8777 8780 8830 8841 8853 8881 8958 8995 9045 9050 IBP DP 4992 # 5016 5022 5036 6387 7213 7258 7332 IBP SCAD 4993 # 5016 5022 5036 6387 7213 7258 IBP SPEC 4994 # 5016 5022 5036 INH CRY18 2091 # 3758 3976 4024 4053 4074 4079 5363 5444 INST DISP 2214 # 2544 2548 2557 2562 2570 2591 2597 2622 2627 INTERRUPT TRAP 2228 # JFCL FLAGS 2161 # 3869 JUMP DISP 2220 # 3720 3734 3749 3759 JUMPA 2222 # 3701 3704 3774 3775 3802 3865 LDB SCAD 5110 # 5119 5120 5121 5122 5123 LEAVE USER 2159 # 2370 4315 LOAD AC BLOCKS 2125 # 2312 7507 LOAD BYTE EA 2116 # 5025 5044 5094 6269 6281 7220 LOAD DST EA 2119 # 7259 7261 7270 LOAD FE 1995 # 2569 2587 2603 3172 3175 3179 3189 3191 3208 3211 3214 3219 3231 3246 3294 5025 5029 5041 5137 5142 5144 5146 5149 5214 5227 5230 5231 5233 5235 5558 5560 5577 5579 5585 5586 5631 5660 5669 5671 5692 5698 5699 5713 5736 5740 5742 5743 5757 5828 5832 5834 5840 5848 5850 5851 5852 5870 5875 5917 5932 5934 5999 6016 6027 6051 6077 6092 6099 6102 6113 6130 6135 6137 6158 6183 6191 6331 6332 6334 6504 6880 6881 6887 7017 7018 7019 7020 7221 7224 7244 7263 LOAD FLAGS 2163 # 2371 3808 3813 3891 4314 7999 8026 8941 LOAD IND EA 2117 # 2515 LOAD INST 2114 # 2426 3940 7357 8522 LOAD INST EA 2115 # 3800 3839 3860 LOAD IR 2110 # 6268 LOAD PAGE TABLE 2124 # 7899 8888 8897 LOAD PCU 2157 # 4316 LOAD PI 2128 # 3880 7884 7976 8577 LOAD PXCT 2122 # 3934 LOAD SC 1994 # 2327 2337 2568 2587 2603 2619 3195 3197 3275 3276 3277 3279 3283 3294 3303 3306 3310 3317 3349 3350 3351 3353 3357 3372 3374 3375 3376 3379 3385 4432 4460 4498 4518 4539 4565 4578 4584 4592 4602 4610 4655 4754 4762 4870 4873 4914 5269 5272 5285 5292 5297 5310 5326 5373 5388 5394 5625 5629 5630 5639 5641 5664 5712 5747 5750 5755 5774 5775 5776 5778 5781 5785 5896 5906 5916 5950 5953 5960 5976 5979 5987 5991 5994 6004 6010 6066 6067 6651 6680 6820 6822 6825 6829 6831 7009 7016 7022 7027 7034 7561 7563 7579 7581 7905 7916 7933 7944 8125 8129 8158 8162 8335 8342 8351 8355 8782 8785 LOAD SRC EA 2118 # LOAD VMA 1914 # 2310 2332 2336 2382 2382 2383 2385 2386 2386 2405 2442 2465 2471 2477 2481 2504 2508 2517 2529 2529 2533 2533 2553 2595 2606 2609 2621 2983 2987 2988 3227 3571 3571 3583 3700 3700 3701 3704 3705 3705 3774 3775 3776 3781 3785 3788 3802 3828 3832 3865 3881 3887 3902 3904 3904 3913 3977 4004 4015 4027 4032 4048 4113 4143 4264 4265 4265 4272 4273 4273 4286 4286 4305 4306 4336 4336 4345 4352 4353 4532 4532 5017 5017 5027 5076 5080 5084 5088 5433 5463 5470 5489 5490 5505 5506 5510 5511 5587 5593 5593 6276 6278 6279 6303 6455 6706 6733 6778 6784 6791 6808 6813 6870 6952 6995 7115 7265 7266 7267 7268 7346 7353 7403 7490 7655 7672 7720 7723 7796 7821 7826 7826 7872 7872 7892 7898 7977 7993 7993 7993 7994 8047 8047 8055 8098 8117 8135 8152 8155 8155 8375 8383 8478 8486 8496 8499 8499 8502 8502 8513 8570 8587 8587 8590 8590 8597 8597 8600 8600 8603 8603 8606 8606 8609 8609 8616 8754 8765 8765 8765 8774 8814 8814 8873 8875 8884 8894 8910 9024 9024 9028 9028 9037 9037 LSH 2097 # LSHC 2100 # 3279 3283 4903 4906 LUUO 2224 # 6229 6231 6233 6235 6237 6239 6241 6243 6245 MEM CYCLE 1911 # 2310 2332 2336 2382 2382 2382 2383 2383 2385 2385 2386 2386 2386 2405 2406 2424 2442 2465 2465 2471 2471 2476 2477 2481 2482 2504 2505 2508 2509 2513 2517 2529 2529 2531 2533 2533 2542 2551 2553 2554 2555 2583 2594 2595 2595 2606 2607 2609 2610 2614 2621 2621 2686 2719 2725 2730 2733 2784 2785 2983 2984 2986 2987 2988 2990 3227 3227 3571 3571 3571 3583 3583 3651 3652 3700 3700 3700 3701 3701 3704 3704 3705 3705 3705 3774 3774 3775 3775 3776 3776 3781 3781 3785 3785 3788 3788 3798 3802 3802 3828 3829 3832 3833 3837 3858 3865 3865 3881 3885 3887 3888 3889 3902 3902 3904 3904 3905 3908 3913 3913 3934 3935 3973 3977 3978 3990 3996 4004 4005 4015 4016 4019 4027 4029 4032 4034 4036 4042 4048 4050 4056 4113 4114 4115 4126 4143 4144 4145 4264 4265 4265 4272 4273 4273 4274 4276 4281 4286 4286 4286 4305 4306 4307 4311 4324 4328 4336 4336 4336 4345 4346 4350 4352 4353 4354 4532 4532 4532 5017 5017 5017 5027 5027 5056 5062 5063 5076 5077 5080 5081 5084 5085 5088 5089 5091 5097 5221 5222 5433 5434 5463 5464 5470 5471 5478 5482 5489 5490 5492 5493 5505 5506 5508 5510 5511 5513 5551 5587 5587 5589 5593 5593 5594 6262 6276 6278 6278 ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 249 ; CROSS REFERENCE LISTING 6279 6279 6281 6303 6304 6455 6455 6706 6707 6708 6733 6734 6778 6784 6791 6808 6808 6813 6813 6870 6870 6905 6907 6952 6952 6954 6957 6986 6995 6995 7115 7116 7265 7265 7266 7266 7267 7267 7268 7268 7270 7284 7343 7345 7346 7350 7352 7353 7356 7403 7403 7419 7490 7490 7491 7655 7655 7656 7658 7661 7672 7672 7709 7710 7717 7718 7720 7720 7723 7723 7793 7794 7796 7797 7821 7822 7825 7826 7826 7826 7827 7834 7835 7872 7872 7872 7892 7892 7893 7898 7977 7981 7993 7993 7993 7994 7994 8022 8042 8047 8047 8048 8055 8056 8098 8098 8099 8117 8119 8135 8135 8136 8152 8153 8155 8155 8155 8368 8371 8373 8375 8383 8385 8387 8478 8479 8481 8486 8487 8496 8499 8499 8501 8502 8502 8502 8513 8514 8520 8570 8587 8587 8588 8589 8590 8590 8590 8591 8592 8595 8596 8597 8597 8597 8598 8599 8600 8600 8600 8601 8602 8603 8603 8603 8604 8605 8606 8606 8606 8607 8608 8609 8609 8609 8610 8611 8613 8616 8754 8765 8765 8765 8766 8774 8814 8814 8814 8815 8873 8874 8875 8876 8884 8894 8910 9024 9024 9025 9028 9028 9028 9037 9037 9047 MEM READ 1939 # 2424 2513 2542 2551 2555 2583 2594 2614 3798 3837 3858 3885 3889 3935 3973 4019 4056 4145 4311 5091 5097 5493 5551 6262 6281 6708 6957 6986 7270 7284 7343 7350 7356 7419 7491 7710 7718 7794 7835 7981 7994 8042 8048 8099 8119 8136 8368 8371 8373 8481 8520 8815 MEM WAIT 1938 # 2424 2513 2531 2542 2551 2555 2583 2594 2614 2686 2719 2725 2730 2733 2785 2986 3652 3798 3837 3858 3885 3889 3935 3973 3990 3996 4019 4036 4042 4056 4115 4145 4274 4276 4281 4311 4324 4328 4350 5063 5091 5097 5222 5478 5482 5493 5551 5589 6262 6281 6708 6907 6954 6957 6986 7270 7284 7343 7350 7356 7419 7491 7656 7658 7661 7710 7718 7794 7825 7827 7835 7893 7981 7994 8042 8048 8099 8119 8136 8153 8368 8371 8373 8385 8387 8481 8501 8520 8588 8589 8591 8592 8595 8596 8598 8599 8601 8602 8604 8605 8607 8608 8610 8611 8613 8766 8815 8876 9025 9047 MEM WRITE 1940 # 2531 2686 2719 2725 2730 2733 2785 2986 3652 3990 3996 4036 4042 4115 4274 4276 4281 4324 4328 4350 5063 5222 5478 5482 5589 6907 6954 7656 7658 7661 7825 7827 7893 8153 8385 8387 8501 8588 8589 8591 8592 8595 8596 8598 8599 8601 8602 8604 8605 8607 8608 8610 8611 8613 8766 8876 9025 9047 MEM_Q 1947 # 5479 5483 5589 6907 MEM_[] 1946 # 2531 2687 2720 2726 2731 2734 2786 2986 3652 3991 3997 4037 4043 4116 4275 4277 4282 4325 4329 4351 5063 5222 6954 7656 7658 7661 7825 7827 7893 8153 8385 8387 8501 8588 8589 8591 8592 8595 8596 8598 8599 8601 8602 8604 8605 8607 8608 8610 8611 8613 8766 8877 9026 9047 MUL DISP 2229 # 4584 4592 4602 4610 5927 5953 5955 6074 MUL FINAL 4561 # 4588 4596 4606 4614 MUL STEP 4560 # 4584 4592 4602 4610 NEXT INST 2208 # 2715 3250 3298 3326 3676 4007 4085 4092 4802 4805 5786 5792 6154 NEXT INST FETCH 2209 # 2382 2383 2385 2386 2466 2472 3571 3583 3700 3701 3704 3705 3774 3775 3802 3865 4532 5017 7872 8155 NEXT [] PHYSICAL WR 1970 # 4286 4336 8502 8590 8597 8600 8603 8606 8609 9028 NO DIVIDE 2167 # 4657 4692 4724 4811 5330 NORM DISP 2235 # 2427 5642 5672 5751 5828 5830 5840 5844 5846 5848 5849 5852 5873 6026 6081 6082 6093 6095 6114 6124 6126 6131 6132 6159 6188 ONES 2103 # 5148 5151 5226 5229 6334 PAGE FAIL TRAP 2225 # 8745 8843 8860 PI DISP 2234 # PXCT BLT DEST 1923 # 5465 5472 5507 5512 5588 PXCT BLT SRC 1927 # 5435 5491 5594 PXCT BYTE DATA 1925 # 5078 5082 7265 7266 PXCT BYTE PTR EA 1924 # 5086 5090 PXCT DATA 1922 # 2495 2553 2606 2609 2985 2989 4028 4033 PXCT EA 1921 # 2504 2509 3834 PXCT EXTEND EA 1928 # 6278 6279 PXCT STACK WORD 1926 # 3979 4017 4049 Q-[] 1790 # 4747 Q.AND.NOT.[] 1791 # Q_# 1806 # 5305 5350 Q_-1 1798 # Q_-AC[] 1799 # 4933 4938 4943 Q_-Q 1800 # 4717 4795 4837 4838 4855 5829 5831 5833 5835 6120 Q_-[] 1797 # 6056 Q_.NOT.AC[] 1796 # 4937 4942 Q_.NOT.Q 1805 # 6119 Q_0 1807 # 3187 5147 5225 5639 5712 5723 5736 5740 5742 5743 5756 5770 6066 6332 Q_0 XWD [] 1808 # Q_AC 1801 # 4432 4635 Q_AC[] 1802 # 2573 3296 3367 4526 4528 4645 6903 Q_AC[].AND.MASK 1803 # Q_AC[].AND.[] 1804 # 4730 4753 4760 Q_MEM 1957 # 5494 5552 8373 Q_Q*.5 1813 # 4542 4577 4754 5554 5572 5573 5574 5586 5980 6071 Q_Q*2 1814 # 5568 5569 Q_Q+.25 1809 # 5930 6079 Q_Q+1 1810 # Q_Q+AC 1812 # 5325 Q_Q+[] 1819 # 4756 4788 5912 5920 6022 6025 Q_Q-1 1811 # 5366 Q_Q-WORK[] 1903 # 5308 Q_Q.AND.# 1816 # 3322 4832 5562 5581 5667 5981 ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 250 ; CROSS REFERENCE LISTING Q_Q.AND.NOT.[] 1818 # 6068 Q_Q.AND.[] 1817 # 4803 5232 Q_Q.OR.# 1815 # 3324 4715 Q_WORK[] 1884 # 5374 6495 Q_[] 1792 # 4458 4498 4518 4539 4758 4784 5296 5664 5903 5915 5976 5991 6004 6010 6061 Q_[]+[] 1794 # 4785 Q_[]-[] 1793 # 5439 Q_[].AND.Q 1820 # 4880 6104 6138 Q_[].AND.[] 1795 # 4705 Q_[].OR.Q 1821 # 5583 5935 RAM_[] 1906 # 2335 2337 READ Q 1832 # 5793 5836 5860 6111 6156 READ XR 1830 # READ [] 1831 # 2566 2586 2766 2934 2941 2948 2955 3276 3293 3350 3370 3375 3529 3574 3577 3580 3586 3589 3592 3880 3891 3934 4261 4263 4271 4304 4313 4344 4435 4646 4652 4666 4671 4673 4678 4746 4748 4766 4782 4791 4853 4860 4881 5024 5028 5043 5046 5146 5214 5230 5354 5627 5631 5716 5718 5751 5755 5789 5830 5849 5917 6017 6026 6076 6095 6132 6269 6287 6331 6366 6470 6473 6479 6492 6503 6520 6697 6733 6784 6791 6818 6832 6837 6860 6864 6920 7008 7017 7115 7137 7169 7220 7222 7245 7453 7455 7456 7461 7465 7570 7785 7821 7912 7921 7929 8577 8587 8788 8789 8791 8898 8941 8953 RETURN [] 2233 # 2648 2649 3844 3845 4334 4337 4545 4589 4597 4607 4615 4813 4836 4837 4839 4924 4952 5057 5059 5063 5099 5133 5152 5222 5445 5585 5586 5872 5874 5875 5965 6162 6169 6170 6185 6581 6591 6596 6599 6637 6638 6789 6795 6972 6996 7064 7096 7108 7140 7156 7173 7182 7184 7211 7247 7281 7287 7292 7333 7599 7672 7772 7806 7885 7945 8068 8071 8356 8369 8371 8373 8375 8377 8379 8381 8383 8385 8387 8389 8580 8584 8618 8916 9047 ROT 2099 # 3214 3219 3379 3381 3385 3387 ROTC 2102 # 3353 3357 3378 3384 SCAD DISP 2232 # 5016 5022 5036 5115 5625 5772 5774 6332 6334 6388 7214 7258 8342 SC_-1 2039 # SC_-2 2040 # SC_-SHIFT 2003 # SC_-SHIFT-1 2004 # 3276 3350 3375 SC_-SHIFT-2 2005 # SC_0 2038 # 7016 7027 SC_1 2037 # SC_11. 2028 # SC_14. 2027 # SC_19. 2026 # 2327 SC_2 2036 # 6829 SC_20. 2025 # 6651 SC_22. 2024 # SC_24. 2023 # SC_26. 2022 # 6066 SC_27. 2021 # 5664 5712 SC_28. 2020 # SC_3 2035 # 5285 SC_34. 2019 # 4655 4754 4762 5297 5310 5326 SC_35. 2018 # 4432 4460 4498 4518 4539 5373 5987 5991 6004 6010 6067 SC_36. 2017 # SC_4 2034 # SC_5 2033 # 8125 8158 SC_6 2032 # 5747 5976 6822 7561 7579 SC_7 2031 # 6820 SC_8. 2030 # SC_9. 2029 # 5269 5388 8782 SC_EXP 2010 # 2587 2603 5629 5906 SC_FE 2013 # 2619 5994 SC_FE+S# 2012 # 3303 5774 SC_S# 2014 # 2327 4432 4460 4498 4518 4539 4655 4754 4762 5269 5285 5297 5310 5326 5373 5388 5664 5712 5747 5976 5987 5991 6004 6010 6066 6067 6651 6820 6822 6829 7016 7027 7561 7579 7905 7944 8125 8158 8335 8351 8782 SC_S#-FE 2011 # 3306 5776 SC_SC-1 1999 # 8342 SC_SC-EXP 2006 # SC_SC-EXP-1 2007 # 5625 5896 SC_SC-FE 2009 # SC_SC-FE-1 2008 # 5630 5916 SC_SHIFT 2000 # 3294 5755 SC_SHIFT-1 2001 # 2568 3372 SC_SHIFT-2 2002 # SET APR ENABLES 2134 # 2315 7457 7570 SET AROV 2144 # 4445 4446 4470 4533 5773 SET FL NO DIVIDE 2147 # 5694 5706 6064 SET FOV 2145 # SET FPD 2150 # 4547 5073 6746 SET HALT 2129 # 8504 8571 SET NO DIVIDE 2146 # 4657 4692 4724 4811 5330 5694 5706 6064 SET PDL OV 2153 # 3998 4055 4086 4090 SET P TO 36-S 4997 # 5058 6397 7216 7260 SET TRAP1 2154 # SET TRAP3 2155 # SHIFT 1997 # 3179 3191 3214 3219 5585 5586 SKIP AC REF 2201 # ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 251 ; CROSS REFERENCE LISTING SKIP AD.EQ.0 2185 # 3224 3577 3589 3682 3694 4435 4440 4647 4649 4653 4667 4713 4742 4773 4855 4935 4940 4945 4961 4968 5295 5324 5690 5716 5718 5793 5836 5860 6017 6069 6111 6156 6492 6546 6622 6625 6921 6958 6980 7107 7813 SKIP AD.LE.0 2186 # 3580 3592 3685 3697 4707 5355 5710 6039 6694 7769 8576 SKIP ADL.EQ.0 2197 # 2340 2449 3843 4294 4299 5734 5739 5855 6021 6024 6094 6097 6100 6103 6162 6263 6307 6450 6452 6535 6555 6740 6756 6811 6846 6849 6883 7360 7500 7568 7574 7996 7997 8745 8761 8775 8843 8858 8860 8938 8946 9043 SKIP ADL.LE.0 2188 # SKIP ADR.EQ.0 2198 # 3295 3863 3879 5459 6681 6754 7121 7413 7416 7443 7445 7448 7450 7452 7757 7851 7853 7858 7860 7862 7864 7866 7868 7983 8049 8070 8121 8150 8816 8834 8835 8991 9000 9001 9003 9004 9006 9007 SKIP CRY0 2193 # 3981 4025 4054 5702 5829 5831 5833 5835 SKIP CRY1 2194 # 4397 4409 6147 6570 6576 6589 6781 6792 SKIP CRY2 2195 # 6120 6180 SKIP DP0 2183 # 2588 2604 2766 2948 2955 3247 3321 3574 3586 3679 3691 4072 4075 4080 4262 4416 4442 4464 4467 4523 4531 4636 4672 4674 4679 4684 4688 4711 4728 4740 4747 4763 4782 4800 4853 4860 4875 5327 5474 5485 5500 5590 5627 5631 5661 5692 5700 5735 5757 5789 5897 6000 6048 6052 6063 6076 6315 6328 6346 6359 6366 6386 6428 6430 6453 6470 6473 6479 6520 6612 6617 6655 6664 6697 6714 6786 6837 6864 7063 7094 7137 7191 7314 7492 7746 8758 8788 8831 SKIP DP18 2184 # 2567 2934 2941 3371 6287 6540 6745 6835 7169 7170 8035 8789 8791 8826 SKIP EXECUTE 2202 # 8508 SKIP FPD 2190 # 4485 5016 5022 5036 6645 SKIP IF AC0 2182 # 2676 3634 5013 SKIP IO LEGAL 2192 # 2625 3786 3789 SKIP IRPT 2199 # 5504 6388 8707 8749 8959 8965 SKIP JFCL 2196 # 3870 SKIP KERNEL 2191 # 3779 3783 3784 3791 3929 3931 7341 SKIP -1MS 2200 # 6383 SKIP-COMP DISP 2219 # 3615 3635 3636 6468 SPEC MEM READ 1941 # 2601 SPEC MEM WRITE 1942 # START NO TEST WRITE 1934 # START READ 1932 # 2382 2383 2385 2386 2406 2465 2471 2476 2482 2505 2509 2554 2595 2607 2610 2621 3227 3571 3583 3700 3701 3704 3705 3774 3775 3776 3781 3785 3788 3802 3829 3833 3865 3888 3908 3934 4005 4016 4050 4144 4307 4354 4532 5017 5027 5077 5081 5085 5089 5434 5492 5594 6278 6279 6304 6455 6707 6734 6808 6813 6870 6995 7116 7265 7266 7267 7268 7345 7352 7403 7490 7709 7717 7720 7723 7793 7797 7834 7872 8056 8098 8135 8155 8479 8514 8814 START WRITE 1933 # 2784 2984 2990 3651 3902 3905 3913 3978 4029 4034 4114 4126 4286 4336 4346 5056 5062 5221 5464 5471 5508 5513 5587 6905 6952 7655 7672 7822 7826 7892 8022 8487 8502 8590 8597 8600 8603 8606 8609 8874 9028 STATE_[] 2173 # 5445 6323 6350 6353 6376 6425 6431 6439 6471 6478 6497 6526 6709 6736 6862 6923 6927 6988 8969 8971 8973 8975 8977 8979 8983 STEP SC 1996 # 2337 3195 3197 3275 3277 3279 3283 3310 3317 3349 3351 3353 3357 3374 3376 3379 3385 4565 4578 4584 4592 4602 4610 4870 4873 4914 5272 5292 5394 5639 5641 5750 5775 5778 5781 5785 5950 5953 5960 5979 6680 6825 6831 7034 7563 7581 7916 7933 8129 8162 8355 8785 SWEEP 2126 # 7928 7929 7932 TAKE INTERRUPT 2226 # 8995 TAKE 1-PROCEED TRAP 2227 # 2450 8958 TEST DISP 2218 # 3515 3521 TL [] 1836 # 2449 3843 4294 4299 5855 6021 6024 6094 6097 6100 6103 6162 6263 6307 6450 6452 6535 6555 6740 6756 6811 6846 6849 7500 8745 8761 8775 8843 8858 8860 8938 8946 9043 TR [] 1835 # 3863 3879 6681 6754 7121 7443 7445 7448 7450 7452 7757 7851 7853 7858 7860 7862 7864 7866 7868 8121 8150 8816 8834 8835 8991 9000 9001 9003 9004 9006 9007 TURN OFF PXCT 2123 # 2395 2398 2401 2413 2416 2419 2444 TXXX TEST 2203 # 3529 UNHALT 2133 # 8507 UPDATE USER 2158 # 3809 3814 3892 UUO 2223 # 2626 3778 3787 3790 3792 3793 3794 3849 3854 3857 3878 3899 3912 3933 4226 4236 4238 4240 4242 7280 7364 7374 7375 7376 7380 7381 7382 7383 7391 7392 7395 7401 7407 7408 7409 7410 7855 8453 8457 8459 8461 8463 8465 8467 8695 VMA 1983 # VMA EXTENDED 1919 # VMA PHYSICAL 1916 # 2529 2533 4265 4273 4286 4306 4336 7346 7353 7993 8047 8499 8502 8587 8590 8597 8600 8603 8606 8609 8765 8814 8875 9024 9028 9037 VMA PHYSICAL READ 1918 # 2533 7993 8047 9037 VMA PHYSICAL WRITE 1917 # 2529 4265 4273 8499 8587 8765 9024 VMA_[] 1962 # 2382 2386 2405 2481 2508 2517 2621 2987 3571 3700 3705 3781 3832 3902 3913 4027 4032 4113 4143 4532 5017 5027 5080 5088 5433 5463 5470 5587 6279 6813 6870 6952 6995 7266 7268 7403 7490 7655 7872 7892 7898 7993 8098 8135 8155 8478 8486 8513 8616 8765 8814 8873 8884 8894 8910 VMA_[] WITH FLAGS 1963 # 8383 VMA_[]+1 1965 # 2383 2385 2442 2553 3583 3904 4352 5489 5505 5510 5593 6455 6808 7796 7826 ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 252 ; CROSS REFERENCE LISTING VMA_[]+XR 1967 # 5076 5084 7265 7267 VMA_[]+[] 1968 # VMA_[]-1 1966 # 3776 3785 3788 VMA_[].OR.[] WITH F 1964 # 8117 8152 WORK[] 1984 # 6487 6711 6916 6984 7065 7097 7100 WORK[]_.NOT.[] 1890 # 6530 WORK[]_0 1885 # 2329 WORK[]_1 1886 # 2328 WORK[]_Q 1883 # 5304 6459 6498 WORK[]_[] 1887 # 2309 2317 2319 2320 2322 5014 5280 5294 5314 5347 6272 6285 6288 6319 6384 6410 6411 6412 6427 6475 6512 6652 6654 6716 6729 6735 6940 7093 7286 7340 7420 7458 7571 7681 7683 7685 7687 7711 7719 7722 7726 7748 7765 7771 7802 7805 7836 7837 8340 8346 8348 8494 8567 8583 8593 8700 8703 8704 8706 8712 8721 8723 8725 8727 8734 8737 WORK[]_[] CLR LH 1888 # 3942 WORK[]_[]+[] 1892 # 8763 WORK[]_[]-1 1889 # 6710 WORK[]_[].AND.[] 1891 # 6336 WRITE TEST 1931 # 2784 2984 2990 3651 3902 3905 3913 3978 4029 4034 4114 4126 4286 4336 4346 5056 5062 5221 5464 5471 5508 5513 5587 6905 6952 7655 7672 7822 7826 7892 8022 8487 8502 8590 8597 8600 8603 8606 8609 8874 9028 XR 1982 # [] LEFT_-1 1775 # 2938 [] LEFT_0 1773 # 2936 8764 [] RIGHT_-1 1776 # 2959 [] RIGHT_0 1774 # 2957 []+[] 1637 # 2982 4544 4687 []-# 1639 # 6539 6834 []-[] 1638 # 4683 4740 4741 5458 5484 5499 5590 5702 5710 6063 6453 [].AND.# 1640 # 5734 5738 6882 7358 7568 7574 [].AND.NOT.WORK[] 1893 # [].AND.NOT.[] 1643 # 4439 [].AND.Q 1641 # 4712 [].AND.WORK[] 1894 # 7106 [].AND.[] 1642 # 4467 7413 7416 8070 [].OR.[] 1644 # [].XOR.# 1645 # 2340 7996 7997 [].XOR.VMA 1646 # 5473 [].XOR.[] 1647 # 7812 []_# 1649 # 2294 2298 2330 2331 2372 2943 2945 2950 2952 4859 5277 5301 5311 5315 5345 5389 5445 6290 6323 6350 6353 6376 6425 6431 6439 6471 6478 6497 6526 6709 6736 6862 6923 6927 6988 7425 7428 7904 7910 7925 7927 8024 8067 8105 8107 8142 8144 8969 8971 8973 8975 8977 8979 8983 []_#-[] 1648 # []_(#-[])*2 1736 # 5384 []_(-[])*.5 1737 # []_(-[]-.25)*.5 LON 1738 # 4718 6057 []_(-[]-.25)*2 LONG 1739 # 4796 []_(AC[].AND.[])*.5 1734 # 4489 4491 5894 5986 6042 []_(MEM.AND.[])*.5 1956 # 2615 []_(Q+1)*.5 1735 # 6179 []_([]+#)*2 1750 # []_([]+1)*2 1751 # 7007 []_([]+[])*.5 LONG 1752 # 5924 []_([]+[])*2 LONG 1753 # 4905 []_([]+[]+.25)*.5 L 1756 # []_([]-[])*.5 LONG 1754 # []_([]-[])*2 LONG 1755 # 4902 []_([].AND.#)*.5 1742 # 5274 5281 8050 []_([].AND.#)*2 1743 # []_([].AND.NOT.#)*. 1744 # []_([].AND.NOT.#)*2 1745 # []_([].AND.[])*.5 1746 # 4483 []_([].AND.[])*2 1747 # []_([].OR.#)*.5 1748 # []_([].OR.#)*2 1749 # 8886 []_+SIGN 1779 # 2613 2648 5632 5636 5662 5696 5758 []_+SIGN*.5 1784 # 5898 6001 6053 []_-1 1650 # 4639 6746 7882 []_-2 1651 # []_-AC 1666 # 4948 []_-AC[] 1667 # 6624 []_-Q 1652 # []_-Q*.5 1654 # 5721 []_-Q*2 1653 # 4769 []_-SIGN 1780 # 2611 2649 5633 5637 5663 5697 5759 []_-SIGN*.5 1785 # 5900 6002 6055 []_-WORK[] 1901 # 6348 7312 7326 []_-[] 1655 # 2771 3149 4839 4857 4864 4960 4964 4968 4970 5622 5699 5735 5846 5862 5891 6045 6125 6146 6621 []_-[]*2 1657 # 5703 []_-[]-.25 1656 # 5892 []_.NOT.AC[] 1659 # 6623 []_.NOT.AC 1658 # 3097 3107 4947 []_.NOT.Q 1660 # 5239 6335 []_.NOT.WORK[] 1900 # 6365 6395 6399 6537 6541 7330 []_.NOT.[] 1661 # 3039 3077 3118 3129 3532 4403 4856 4962 4969 5795 5844 5859 5861 6044 6054 6123 6316 6318 6879 []_0 1662 # 2310 2312 2315 2327 2347 2369 2590 3004 3515 4278 4538 ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 253 ; CROSS REFERENCE LISTING 4637 4854 5141 5286 5437 5486 5501 5591 6038 6369 6443 6456 6467 6496 6618 6657 6691 6747 6751 6755 6758 6814 7096 7583 7753 7852 7900 7937 7984 8377 8499 8959 8965 8981 8982 []_0 XWD [] 1664 # 2300 2307 2355 2393 2397 2400 2412 2415 2418 2527 4257 4290 4341 4714 4725 6229 6231 6233 6235 6237 6239 6241 6243 6245 6955 7744 7966 7967 7968 7969 7970 7971 7972 9009 9010 9012 9013 9015 9016 9018 9019 []_0*.5 LONG 1663 # 4564 []_AC[] 1681 # 2333 2561 2980 6306 6324 6327 6358 6375 6449 6469 6501 6517 6545 6548 6550 6567 6608 6610 6611 6644 6650 6677 6689 6724 6869 6914 6951 6953 7061 7176 7183 7210 7212 7240 7299 7307 7313 []_AC[]*.5 1683 # 4503 []_AC[]*2 1682 # 6557 []_AC[]-1 1678 # 6718 6737 []_AC[]-[] 1677 # 4408 []_AC[].AND.[] 1679 # []_AC 1665 # 2547 2560 2783 2886 2888 2920 2926 3171 3188 3720 4014 4047 4070 4128 4141 4460 4644 5042 5452 5548 5625 5659 5692 5757 5905 6309 6451 6514 6649 6651 6672 6810 8147 8489 []_AC*.5 1668 # 3194 3207 3210 4508 4728 5895 5998 6050 []_AC*.5 LONG 1669 # 2574 3299 3368 []_AC*2 1670 # 5038 []_AC+1 1671 # 3734 []_AC+1000001 1672 # 3757 3975 []_AC+[] 1673 # 5443 []_AC-1 1674 # 3749 []_AC-[] 1675 # 3615 4382 4413 []_AC-[]-.25 1676 # 4410 []_AC.AND.MASK 1680 # 3174 3223 []_APR 1684 # 7377 7378 7447 7479 7783 []_CURRENT AC [] 1685 # []_EA 1689 # 2494 []_EA FROM [] 1686 # 6276 []_EXP 1690 # 5837 5853 6185 []_FE 1691 # 3248 7021 []_FLAGS 1692 # 3900 3914 4268 4293 7998 []_IO DATA 1951 # 7982 8043 8119 8714 []_MEM 1952 # 2513 2543 2552 2556 2584 2602 3799 3838 3859 3885 3889 3935 3974 4020 4056 4146 4312 5092 6262 6281 6708 6957 6986 7270 7285 7356 7419 7491 7710 7718 7795 7835 7994 8048 8099 8136 8368 8371 8482 8521 8815 []_MEM AND READ [] 1958 # 2425 []_MEM THEN FETCH 1953 # 2595 []_MEM*.5 1954 # []_MEM.AND.MASK 1955 # 5098 []_P 1693 # 6885 7037 []_PC WITH FLAGS 1694 # 2530 3985 4105 4111 4326 4530 7339 8760 9042 []_Q 1695 # 4437 4445 4670 4726 4743 4749 4759 5954 5961 5982 6005 6065 6067 []_Q*.5 1696 # 4501 5715 5720 5994 []_Q*2 1697 # []_Q*2 LONG 1698 # 4755 4765 []_Q+1 1699 # 5440 []_RAM 1700 # []_TIME 1701 # 7809 7810 7811 []_VMA 1702 # 5468 8336 8582 8705 8738 []_VMA FLAGS 1973 # 7978 8038 8112 8115 8151 8159 8163 8516 []_VMA IO READ 1974 # 7978 8038 8112 8115 8516 []_VMA IO WRITE 1975 # 8151 8159 8163 []_WORK[] 1899 # 5299 5309 5521 6414 6415 6416 6417 6482 6695 6705 6738 6739 6760 6942 6979 7059 7181 7192 7303 7397 7436 7470 7566 7628 7630 7632 7634 7648 7654 7657 7659 7742 7750 7762 7815 7819 7841 8569 8575 8579 8594 8612 8614 8615 8617 8750 8753 8757 8758 8759 8878 8906 8908 8909 8915 8930 8940 8966 []_WORK[]+1 1902 # 6344 6378 6434 6534 6713 7188 7194 []_XR 1703 # 3807 []_[] 1704 # 2469 3226 3701 3704 3774 3775 3802 3812 3850 3865 3938 4003 4125 4130 4431 4459 4484 4500 4634 4643 4658 4664 4693 5056 5372 5628 5629 5630 5669 5690 5698 5910 5911 5918 5919 5993 6036 6039 6081 6082 6325 6346 6394 6429 6692 6703 6711 6778 6881 7123 7215 7239 7259 7317 7384 7385 7573 7589 7595 7814 7848 8026 8781 8817 []_[] SWAP 1705 # 2579 2763 2914 2916 2919 2922 2925 2928 3513 3518 3864 4068 4127 4142 4267 5139 5268 5284 5387 5432 5441 5520 6757 6815 6820 6821 7126 7471 7857 7870 7881 8819 []_[] XWD 0 1706 # 6511 6626 8362 8717 8719 8735 []_[]*.5 1707 # 2297 2617 2618 3190 3212 3213 3217 3302 3305 3385 3387 4482 4540 4706 4734 4867 4868 4869 4875 5143 5221 5271 5291 5705 5713 5782 5832 5834 5850 5851 5869 5870 5875 5987 6020 6190 6822 6825 6829 6831 6916 7027 7034 7099 7579 7581 8053 8072 8125 8129 8784 []_[]*.5 LONG 1708 # 2575 3279 3308 3353 3369 3378 4433 4461 4542 4563 4577 4708 4710 4722 4738 4754 4761 4813 4862 5375 5554 5572 5573 5574 5586 5641 5665 5670 5747 5749 5780 5949 5952 5960 5963 5965 5980 6015 6071 6098 6101 6134 6136 6182 []_[]*2 1709 # 2295 3178 3201 3215 3218 3245 3379 3381 4436 4463 4520 5393 5585 5700 5708 5785 6558 7117 7561 7563 7985 8034 8158 8162 8381 []_[]*2 LONG 1710 # 3197 3280 3283 3284 3285 3311 3315 3318 3354 3357 3358 3382 3384 3388 4793 4874 4877 4879 5234 5568 5569 5828 5840 5848 5852 5926 5931 5933 5945 5947 5948 5978 6019 6023 6073 ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 254 ; CROSS REFERENCE LISTING 6091 6112 6129 6157 []_[]*4 1711 # 6816 []_[]+# 1712 # 4022 4051 6774 6783 7986 8044 []_[]+.25 1713 # 6186 []_[]+0 1714 # []_[]+1 1715 # 2332 2336 2532 2605 2608 3650 3886 3907 5062 5488 5503 5592 5794 6302 6406 6424 6454 6598 6667 6679 6686 6706 6727 6741 6796 6861 6886 6984 7217 7261 7672 7720 7723 7751 8025 8379 9036 []_[]+1000001 1716 # 4117 4133 5455 []_[]+AC 1717 # 4368 4399 []_[]+AC[] 1718 # 4396 6559 6569 6572 []_[]+Q 1719 # 4767 []_[]+RAM 1720 # 6790 6792 []_[]+WORK[] 1895 # 5368 6731 6917 6994 7105 7114 7764 7773 7816 8797 8799 8805 8807 []_[]+XR 1721 # 2463 2475 2490 2503 3827 6275 6278 []_[]+[] 1722 # 2528 4259 4292 4514 4786 4789 4878 5642 5790 5873 6006 6367 6401 6575 6586 6588 7035 7324 7342 7349 7745 7988 8036 8046 8054 9023 []_[]+[]+.25 1723 # []_[]-# 1724 # []_[]-1 1725 # 3666 6385 6490 6491 6603 6745 6782 7187 8762 8951 []_[]-1000001 1726 # []_[]-AC 1727 # []_[]-RAM 1728 # 6780 6785 []_[]-WORK[] 1904 # []_[]-[] 1729 # 6362 6693 7320 7768 7914 7931 []_[]-[] REV 1730 # 6489 []_[].AND.AC 1757 # 3014 3139 3520 3543 []_[].AND.NOT.# 1758 # 2450 3893 4332 5863 6106 6121 6149 6170 6762 7142 7158 7437 7463 7576 7865 8823 8828 8861 8879 8882 8958 9049 []_[].AND.NOT.AC 1760 # 3024 []_[].AND.NOT.WORK[ 1897 # []_[].AND.NOT.[] 1759 # 5929 7446 7449 7859 7869 8071 []_[].AND.Q 1761 # 4465 5152 5241 []_[].AND.WORK[] 1896 # 6488 []_[].AND.[] 1762 # 5240 5856 6140 6142 6486 7883 []_[].AND.# 1731 # 2613 2626 2648 3778 3787 3790 3792 3793 3794 3849 3854 3857 3878 3899 3912 3933 4226 4236 4238 4240 4242 4253 4347 4417 5396 5632 5636 5662 5696 5758 6522 6646 6823 6826 6866 7003 7038 7041 7280 7290 7364 7374 7375 7376 7380 7381 7382 7383 7391 7392 7395 7401 7407 7408 7409 7410 7439 7441 7473 7476 7493 7497 7567 7582 7590 7596 7799 7855 7856 8126 8130 8453 8457 8459 8461 8463 8465 8467 8695 8740 8778 []_[].AND.# CLR LH 1732 # 3249 6943 6982 7024 7172 7412 7415 7480 7974 8786 8889 []_[].AND.# CLR RH 1733 # 5570 6265 6310 6515 7501 7504 []_[].EQV.AC 1763 # 3087 []_[].EQV.Q 1764 # 4443 4446 4468 4469 []_[].OR.# 1765 # 2296 2451 2611 2649 3844 4296 4301 4418 4779 4865 5633 5637 5663 5697 5759 5956 5957 5964 6169 6527 6614 6659 6668 6673 6683 6960 6964 6966 7030 7146 7150 7154 7162 7178 7569 7575 7784 7863 7959 7960 7961 7962 7963 7964 7965 8517 8776 8839 8847 8851 8892 8895 8995 9044 []_[].OR.AC 1766 # 3067 3538 []_[].OR.FLAGS 1767 # []_[].OR.WORK[] 1898 # 7318 7327 []_[].OR.[] 1768 # 3108 4404 5242 6267 6368 6602 7043 7440 7444 7451 7482 7506 7861 7867 8040 8744 []_[].XOR.AC 1770 # 3056 3535 []_[].XOR.[] 1771 # 6144 []_[].XOR.# 1769 # 4732 .NOT.[] 1636 # 4648 7884 7976 2T 1986 # 4728 4741 5631 5906 6488 6559 6623 6918 7059 7105 7819 3T 1987 # 2340 2604 2614 2772 3320 3529 3615 3650 3666 3758 3871 3980 4016 4024 4049 4053 4071 4076 4081 4119 4134 4369 4383 4489 4491 4510 4545 4685 4689 4740 4746 4747 4748 4766 4770 4791 4799 4881 4948 4965 5025 5040 5114 5132 5230 5275 5282 5364 5381 5385 5456 5458 5474 5485 5500 5590 5625 5660 5702 5734 5735 5738 5771 5774 5829 5831 5833 5835 5894 5895 5898 5900 6000 6001 6002 6047 6051 6053 6055 6063 6146 6152 6314 6332 6334 6385 6389 6453 6561 6575 6589 6621 6624 6710 6713 6745 6746 6774 6780 6783 6792 6818 6832 6860 6881 6882 7009 7017 7062 7123 7214 7221 7243 7258 7262 7265 7267 7304 7359 7492 7568 7574 7957 7982 7986 7995 7996 7997 8044 8048 8050 8884 8887 8894 8911 8953 4T 1988 # 3223 3734 3749 4396 4401 4408 4411 4413 5323 5328 6328 6359 6540 6545 6570 6611 6785 6834 6980 7107 7313 8576 8710 5T 1989 # 8342 8359 7-BIT DPB 5211 # 5215 5216 5217 5218 5219 7-BIT LDB 5111 # 5119 5120 5121 5122 5123 (D) MACRO% AC 2267 # 2741 2742 2746 2747 2751 2752 2756 2757 2779 2796 2797 2801 2802 2806 2807 2811 2812 2816 2817 2821 2822 2826 2827 2831 2832 2838 2839 2843 2844 2848 2849 2853 2854 2859 2860 2864 2865 2869 2870 2874 2875 2966 2997 2998 3007 3008 3017 3018 3027 3028 3032 3033 3049 3050 3060 3061 3070 3071 3080 3081 3090 3091 3100 3101 3111 3112 3122 3123 3132 3133 3142 3143 4361 4362 4375 4376 4425 4426 5006 8691 AC DISP 2281 # 3765 7370 7371 7622 B 2269 # 3000 3010 3020 3030 3035 3052 3063 3073 3083 3093 3103 3114 3125 3135 3145 4364 4378 4428 ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 255 ; CROSS REFERENCE LISTING DAC 2271 # 2965 4391 4392 4450 4451 4477 4621 4622 4626 4627 4700 5971 6033 DBL AC 2256 # 2974 DBL B 2272 # 4453 4624 4629 DBL FL-R 2262 # 5881 5882 5971 6033 DBL R 2255 # 2965 2966 4391 4392 4477 4700 FL-AC 2273 # 5602 5605 5606 5610 5613 5614 5648 5652 5653 5678 5682 5683 5729 5730 5765 5766 FL-BOTH 2275 # 5604 5608 5612 5616 5650 5655 5680 5685 FL-I 2261 # 5606 5614 5653 5683 FL-MEM 2274 # 5603 5607 5611 5615 5649 5654 5679 5684 FL-R 2259 # 5602 5605 5610 5613 5648 5652 5678 5682 5765 5766 FL-RW 2260 # 5603 5604 5607 5608 5611 5612 5615 5616 5649 5650 5654 5655 5679 5680 5684 5685 I 2247 # 3043 3158 3163 3417 3418 3419 3420 3421 3422 3423 3424 3426 3427 3435 3436 3437 3438 3439 3440 3441 3442 3454 3455 3456 3457 3458 3459 3460 3461 3471 3472 3473 3474 3475 3476 3477 3478 3595 3596 3597 3598 3599 3600 3601 3602 3709 3710 3711 3712 3713 3714 3715 3716 3724 3725 3726 3727 3728 3729 3730 3739 3740 3741 3742 3743 3744 3745 3752 3753 3765 3767 3921 3922 3965 3967 3968 4098 4099 4100 4101 4154 4155 4156 4157 4158 4159 4160 4161 4165 4166 4167 4168 4169 4170 4171 4172 4173 4174 4175 4176 4177 4178 4179 4180 4181 4182 4183 4184 4185 4186 4187 4188 4189 4190 4191 4192 4193 4194 4195 4196 4200 4201 4210 4211 4212 4213 4214 4215 4216 4217 4218 4219 5448 5730 6200 6201 6202 6203 6204 6205 6206 6208 6209 6210 6211 6213 6214 6215 6216 6218 6219 6220 6221 6222 6223 6224 6225 6258 8395 8396 8397 8399 8400 8402 8403 8405 8406 8407 8408 8409 8410 8411 8412 8414 8415 8416 8417 8418 8419 8420 8421 8423 8424 8425 8426 8427 8428 8429 8430 8432 8433 8434 8435 8436 8437 8438 8439 8441 8442 8443 8444 8445 8446 8447 8448 I-PF 2248 # 2742 2747 2752 2757 2797 2802 2807 2812 2817 2822 2827 2832 2839 2844 2849 2854 2860 2865 2870 2875 2997 2998 3008 3018 3028 3033 3050 3061 3071 3081 3090 3091 3101 3112 3123 3133 3142 3143 3159 3723 3738 4064 4362 4376 4426 4451 4622 4627 IOT 2263 # 7370 7371 7622 8080 8081 8082 8083 8084 8085 8087 8088 8089 8090 8091 8092 8473 8474 8691 IR 2254 # 3966 IW 2253 # 2999 3000 3092 3093 3144 3145 M 2268 # 2743 2748 2753 2758 2798 2803 2808 2813 2818 2823 2828 2833 2840 2845 2850 2855 2861 2866 2871 2876 2999 3009 3019 3029 3034 3044 3045 3051 3062 3072 3082 3092 3102 3113 3124 3134 3144 4363 4377 4427 4452 4623 4628 7622 R 2249 # 2779 3042 3428 3429 3430 3431 3432 3433 3444 3445 3446 3447 3448 3449 3450 3451 3463 3464 3465 3466 3467 3468 3469 3470 3480 3481 3482 3483 3484 3485 3486 3487 3604 3605 3606 3607 3608 3609 3610 3611 3622 3623 3624 3625 3626 3627 3628 3629 3924 5006 5007 5008 5009 5010 5729 R-PF 2250 # 2741 2746 2751 2756 2796 2801 2806 2811 2816 2821 2826 2831 2838 2843 2848 2853 2859 2864 2869 2874 3007 3017 3027 3032 3049 3060 3070 3080 3100 3111 3122 3132 4361 4375 4425 4450 4621 4626 ROUND 2276 # 5605 5606 5607 5608 5613 5614 5615 5616 5652 5653 5654 5655 5682 5683 5684 5685 5729 5766 RW 2252 # 2744 2749 2754 2759 2798 2799 2803 2804 2809 2814 2819 2824 2829 2834 2840 2841 2845 2846 2851 2856 2862 2867 2872 2877 3009 3010 3019 3020 3029 3030 3034 3035 3051 3052 3062 3063 3072 3073 3082 3083 3102 3103 3113 3114 3124 3125 3134 3135 3639 3640 3641 3642 3643 3644 3645 3646 3655 3656 3657 3658 3659 3660 3661 3662 4363 4364 4377 4378 4427 4428 4452 4453 4623 4624 4628 4629 S 2270 # 2744 2749 2754 2759 2799 2804 2809 2814 2819 2824 2829 2834 2841 2846 2851 2856 2862 2867 2872 2877 SH 2257 # 3155 3156 3157 SHC 2258 # 3160 3161 SJC- 3555 # 3595 3604 3622 3639 3655 3709 3723 3738 SJCA 3559 # 3599 3608 3626 3643 3659 3713 3727 3742 SJCE 3557 # 3597 3606 3624 3641 3657 3711 3725 3740 6201 SJCG 3562 # 3602 3611 3629 3646 3662 3716 3730 3745 6206 SJCGE 3560 # 3600 3609 3627 3644 3660 3714 3728 3743 3752 6204 SJCL 3556 # 3596 3605 3623 3640 3656 3710 3724 3739 3753 6200 SJCLE 3558 # 3598 3607 3625 3642 3658 3712 3726 3741 6202 SJCN 3561 # 3601 3610 3628 3645 3661 3715 3729 3744 6205 TC- 3408 # 3454 3455 3463 3464 TCA 3410 # 3458 3459 3467 3468 TCE 3409 # 3456 3457 3465 3466 TCN 3411 # 3460 3461 3469 3470 TN- 3398 # TNA 3401 # 3421 3422 3430 3431 TNE 3399 # 3419 3420 3428 3429 TNN 3402 # 3423 3424 3432 3433 TO- 3412 # 3471 3472 3480 3481 TOA 3414 # 3475 3476 3484 3485 TOE 3413 # 3473 3474 3482 3483 TON 3415 # 3477 3478 3486 3487 TZ- 3404 # 3435 3436 3444 3445 TZA 3406 # 3439 3440 3448 3449 TZE 3405 # 3437 3438 3446 3447 TZN 3407 # 3441 3442 3450 3451 W 2251 # 2743 2748 2753 2758 2808 2813 2818 2823 2828 2833 2850 ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 256 ; CROSS REFERENCE LISTING 2855 2861 2866 2871 2876 2975 3044 3045 W TEST 2280 # 2779 5007 5009 WORD-TNE 3400 # WORD-TNN 3403 # (U) MEM 1038 # 2310 2332 2336 2382 2382 2382 2383 2383 2385 2385 2386 2386 2386 2405 2406 2424 2442 2465 2465 2471 2471 2476 2477 2481 2482 2495 2504 2505 2508 2509 2513 2517 2529 2529 2529 2531 2533 2533 2533 2542 2551 2553 2554 2555 2583 2594 2595 2595 2606 2607 2609 2610 2614 2621 2621 2686 2719 2725 2730 2733 2763 2769 2784 2785 2886 2888 2922 2928 2936 2938 2957 2959 2983 2984 2986 2987 2988 2990 3004 3014 3024 3056 3067 3087 3097 3108 3118 3149 3227 3227 3571 3571 3571 3583 3583 3651 3652 3700 3700 3700 3701 3701 3704 3704 3705 3705 3705 3774 3774 3775 3775 3776 3776 3781 3781 3785 3785 3788 3788 3798 3802 3802 3828 3829 3832 3833 3837 3858 3865 3865 3881 3885 3887 3888 3889 3902 3902 3904 3904 3905 3908 3913 3913 3934 3935 3973 3977 3978 3990 3996 4004 4005 4015 4016 4019 4027 4029 4032 4034 4036 4042 4048 4050 4056 4113 4114 4115 4126 4143 4144 4145 4264 4265 4265 4265 4272 4273 4273 4273 4274 4276 4281 4286 4286 4286 4305 4306 4307 4311 4324 4328 4336 4336 4336 4345 4346 4350 4352 4353 4354 4369 4383 4437 4443 4466 4468 4532 4532 4532 5017 5017 5017 5027 5027 5056 5062 5063 5076 5077 5080 5081 5084 5085 5088 5089 5091 5097 5221 5222 5433 5434 5463 5464 5470 5471 5478 5482 5489 5490 5492 5493 5505 5506 5508 5510 5511 5513 5551 5587 5587 5589 5593 5593 5594 5790 5794 5841 5864 6262 6276 6278 6278 6279 6279 6281 6303 6304 6455 6455 6706 6707 6708 6733 6734 6778 6784 6791 6808 6808 6813 6813 6870 6870 6905 6907 6952 6952 6954 6957 6986 6995 6995 7115 7116 7265 7265 7266 7266 7267 7267 7268 7268 7270 7284 7343 7345 7346 7350 7352 7353 7356 7403 7403 7419 7490 7490 7491 7655 7655 7656 7658 7661 7672 7672 7709 7710 7717 7718 7720 7720 7723 7723 7793 7794 7796 7797 7821 7822 7825 7826 7826 7826 7827 7834 7835 7872 7872 7872 7892 7892 7893 7898 7977 7981 7993 7993 7993 7993 7994 7994 8022 8042 8047 8047 8047 8048 8055 8056 8098 8098 8099 8117 8117 8119 8135 8135 8136 8152 8152 8153 8155 8155 8155 8368 8371 8373 8375 8383 8383 8385 8387 8478 8479 8481 8486 8487 8496 8499 8499 8499 8501 8502 8502 8502 8513 8514 8520 8570 8587 8587 8587 8588 8589 8590 8590 8590 8591 8592 8595 8596 8597 8597 8597 8598 8599 8600 8600 8600 8601 8602 8603 8603 8603 8604 8605 8606 8606 8606 8607 8608 8609 8609 8609 8610 8611 8613 8616 8754 8765 8765 8765 8765 8766 8774 8814 8814 8814 8815 8873 8874 8875 8876 8884 8894 8910 9024 9024 9024 9025 9028 9028 9028 9037 9037 9037 9047 (U) MICROCODE OPTIONS 1356 # OPT 1358 # 7429 (U) MICROCODE VERSION 19 # UCV 20 # 7430 (D) MODE 1453 # (U) MULTI PREC 1043 # 4719 4772 4787 4790 4797 4913 5892 5925 6047 6058 (U) MULTI SHIFT 1045 # 3179 3191 3214 3219 5145 5150 5228 5236 5585 5586 (U) NONEXISTENT IO REGI 8652 # (U) NONEXISTENT MEMORY 8654 # (U) OIPBIT 1101 # 3843 9044 (U) PAGE ACCESS 8663 # 8840 8852 (U) PHYSICAL 1252 # 2529 2533 4265 4273 4286 4306 4336 7346 7353 7911 7912 7915 7928 7929 7932 7978 7993 8038 8047 8112 8115 8151 8159 8163 8499 8502 8516 8587 8590 8597 8600 8603 8606 8609 8741 8765 8779 8814 8875 9024 9028 9037 (U) PI.CLR 1313 # 7851 (U) PI.CO1 1301 # (U) PI.CO2 1302 # (U) PI.DIR 1312 # 7858 (U) PI.IP1 1293 # 7757 8067 8992 9000 9003 (U) PI.IP2 1294 # 7758 8992 9000 (U) PI.IP3 1295 # 7758 8993 9004 (U) PI.IP4 1296 # 7759 8993 (U) PI.IP5 1297 # 7759 9001 9006 (U) PI.IP6 1298 # 7760 9001 (U) PI.IP7 1299 # 7760 9007 (U) PI.MBZ 1311 # 7853 (U) PI.ON 1300 # 7863 7865 (U) PI.REQ 1314 # 7860 (U) PI.SC1 1319 # (U) PI.SC2 1320 # (U) PI.SC3 1321 # (U) PI.SC4 1322 # (U) PI.SC5 1323 # (U) PI.SC6 1324 # (U) PI.SC7 1325 # (U) PI.TCF 1316 # 7868 (U) PI.TCN 1315 # 7866 (U) PI.TSF 1317 # 7864 (U) PI.TSN 1318 # 7862 (U) PI.ZER 1292 # (U) PT CACHE 8642 # 8891 (U) PT PAGE 8643 # ALL 8645 # EVEN 8644 # 8891 (U) PT VALID 8640 # 8890 (U) PT WRITE 8641 # 8890 (U) PTE AGE 8633 # ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 257 ; CROSS REFERENCE LISTING ALL 8634 # 8824 8829 (U) PTE CACHE 8636 # (U) PTE PAGE 8637 # (U) PTE VALID 8632 # 8887 (U) PTE WRITE 8635 # 8848 8862 (U) PXCT 1257 # BIS-DST-EA 1263 # 7259 7261 7267 7268 7270 BIS-SRC-EA 1261 # CURRENT 1258 # 2382 2383 2385 2386 2406 2465 2471 2595 2621 3227 3571 3583 3700 3701 3704 3705 3774 3775 3800 3802 3839 3860 3865 4005 4532 5017 5027 7872 8155 8514 D1 1260 # 2495 2553 2606 2609 2985 2989 4028 4033 5465 5472 5507 5512 5588 D2 1264 # 3979 4017 4049 5078 5082 5435 5491 5594 7265 7266 E1 1259 # 2504 2509 2515 3834 3941 E2 1262 # 5025 5044 5086 5090 5094 6269 6278 6279 6281 7220 (U) RAMADR 748 # AC# 749 # 2547 2560 2574 2714 2783 2886 2888 2920 2926 3014 3024 3056 3067 3087 3097 3107 3139 3171 3174 3188 3194 3207 3210 3223 3286 3299 3320 3368 3520 3535 3538 3543 3544 3615 3635 3676 3679 3682 3685 3688 3691 3694 3697 3720 3734 3749 3757 3975 4006 4008 4014 4047 4070 4073 4078 4107 4128 4141 4368 4382 4399 4410 4413 4431 4432 4458 4460 4508 4523 4634 4635 4644 4726 4728 4771 4773 4947 4948 4952 5032 5038 5042 5325 5399 5443 5452 5453 5523 5548 5550 5625 5659 5690 5692 5756 5757 5786 5792 5895 5899 5901 5905 5998 6050 6151 6152 6309 6403 6440 6442 6451 6477 6514 6616 6649 6651 6663 6672 6742 6810 6969 7045 7304 7328 8122 8147 8389 8489 AC*# 750 # 2325 2326 2333 2561 2573 2681 2971 2980 3229 3250 3296 3326 3367 4396 4408 4489 4491 4493 4501 4503 4510 4512 4524 4525 4526 4527 4528 4529 4645 4730 4753 4757 4760 4774 4775 4777 4780 4799 4801 4803 4804 4933 4934 4937 4938 4939 4942 4943 4944 4950 4951 5894 5986 6040 6042 6048 6108 6115 6153 6160 6306 6314 6324 6327 6358 6361 6375 6382 6390 6400 6438 6449 6469 6484 6501 6517 6519 6545 6548 6550 6557 6558 6559 6561 6567 6569 6572 6578 6580 6608 6610 6611 6615 6622 6623 6624 6628 6629 6636 6638 6644 6650 6666 6677 6689 6698 6704 6715 6718 6720 6724 6737 6743 6744 6869 6903 6908 6914 6951 6953 7061 7062 7176 7183 7190 7210 7212 7219 7240 7262 7299 7301 7307 7309 7313 7316 7321 RAM 753 # 2335 2337 6780 6785 6790 6792 VMA 752 # 2310 2425 2513 2531 2543 2552 2556 2584 2595 2602 2615 2687 2720 2726 2731 2734 2786 2986 3652 3799 3838 3859 3881 3885 3889 3935 3974 3991 3997 4020 4037 4043 4056 4116 4146 4275 4277 4282 4312 4325 4329 4351 5063 5092 5098 5222 5479 5483 5494 5552 5589 6262 6281 6708 6907 6954 6957 6986 7270 7285 7356 7419 7491 7656 7658 7661 7710 7718 7795 7825 7827 7835 7893 7977 7982 7994 8043 8048 8099 8119 8136 8153 8368 8371 8373 8375 8385 8387 8482 8496 8501 8521 8570 8588 8589 8591 8592 8595 8596 8598 8599 8601 8602 8604 8605 8607 8608 8610 8611 8613 8714 8754 8766 8774 8815 8877 9026 9047 XR# 751 # 2445 2463 2475 2490 2503 2519 3804 3807 3827 5071 5074 5076 5084 6273 6275 6278 7265 7267 7271 # 754 # 2309 2317 2319 2320 2322 2328 2329 3942 5014 5280 5294 5299 5304 5308 5309 5314 5320 5347 5360 5368 5374 5380 5521 6272 6285 6288 6319 6336 6344 6348 6365 6378 6384 6395 6399 6410 6411 6412 6414 6415 6416 6417 6427 6434 6459 6475 6482 6487 6488 6495 6498 6512 6530 6534 6537 6541 6652 6654 6695 6705 6710 6711 6713 6716 6729 6731 6735 6738 6739 6760 6916 6917 6940 6942 6979 6984 6994 7059 7065 7093 7097 7100 7105 7106 7114 7181 7188 7192 7194 7286 7303 7312 7318 7326 7327 7330 7340 7397 7420 7436 7458 7470 7566 7571 7628 7630 7632 7634 7648 7654 7657 7659 7681 7683 7685 7687 7711 7719 7722 7726 7742 7748 7750 7762 7764 7765 7771 7773 7802 7805 7815 7816 7819 7836 7837 7841 8340 8346 8348 8494 8567 8569 8575 8579 8583 8593 8594 8612 8614 8615 8617 8700 8703 8704 8706 8712 8721 8723 8725 8727 8734 8737 8750 8753 8757 8758 8759 8763 8797 8799 8805 8807 8878 8906 8908 8909 8915 8930 8940 8966 (D) READ 1464 # 2741 2742 2744 2746 2747 2749 2751 2752 2754 2756 2757 2759 2779 2796 2797 2798 2799 2801 2802 2803 2804 2806 2807 2809 2811 2812 2814 2816 2817 2819 2821 2822 2824 2826 2827 2829 2831 2832 2834 2838 2839 2840 2841 2843 2844 2845 2846 2848 2849 2851 2853 2854 2856 2859 2860 2862 2864 2865 2867 2869 2870 2872 2874 2875 2877 2965 2966 2997 2998 3007 3008 3009 3010 3017 3018 3019 3020 3027 3028 3029 3030 3032 3033 3034 3035 3042 3049 3050 3051 3052 3060 3061 3062 3063 3070 3071 3072 3073 3080 3081 3082 3083 3090 3091 3100 3101 3102 3103 3111 3112 3113 3114 3122 3123 3124 3125 3132 3133 3134 3135 3142 3143 3155 3156 3157 3159 3160 3161 3428 3429 3430 3431 3432 3433 3444 3445 3446 3447 3448 3449 3450 3451 3463 3464 3465 3466 3467 3468 3469 3470 3480 3481 3482 3483 3484 3485 3486 3487 3604 3605 3606 3607 3608 3609 3610 3611 3622 3623 3624 3625 3626 3627 3628 3629 3639 3640 3641 3642 3643 3644 3645 3646 3655 3656 3657 3658 3659 3660 3661 3662 3723 3738 3924 3966 4064 4361 4362 4363 4364 4375 4376 4377 4378 4391 4392 4425 4426 4427 4428 4450 4451 4452 4453 4477 4621 4622 4623 4624 4626 4627 4628 4629 4700 5006 5007 5008 5009 5010 5602 5603 5604 5605 5606 5607 5608 5610 5611 5612 5613 5614 5615 5616 5648 5649 5650 5652 5653 5654 5655 5678 5679 5680 5682 5683 5684 5685 5729 5765 5766 5881 5882 5971 6033 6258 ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 258 ; CROSS REFERENCE LISTING (U) READ CYCLE 1244 # 2382 2383 2385 2386 2406 2465 2471 2476 2482 2505 2509 2533 2554 2595 2607 2610 2621 3227 3571 3583 3700 3701 3704 3705 3774 3775 3776 3781 3785 3788 3802 3829 3833 3865 3888 3908 3934 4005 4016 4050 4144 4307 4354 4532 5017 5027 5077 5081 5085 5089 5434 5492 5594 6278 6279 6304 6455 6707 6734 6808 6813 6870 6995 7116 7265 7266 7267 7268 7345 7352 7403 7490 7709 7717 7720 7723 7793 7797 7834 7872 7978 7993 8038 8047 8056 8098 8112 8115 8135 8155 8479 8514 8516 8814 8880 9037 (D) ROUND 1452 # 5605 5606 5607 5608 5613 5614 5615 5616 5652 5653 5654 5655 5682 5683 5684 5685 5729 5766 (U) RSRC 680 # AB 682 # 3942 AQ 681 # D0 688 # 2957 6511 6626 7978 8038 8112 8115 8151 8159 8163 8362 8516 8717 8719 8735 DA 686 # 2300 2307 2343 2355 2393 2397 2400 2403 2412 2415 2418 2421 2527 2710 3249 3851 4257 4290 4341 4714 4725 5128 6229 6231 6233 6235 6237 6239 6241 6243 6245 6943 6955 6982 7024 7172 7412 7415 7480 7744 7809 7810 7811 7966 7967 7968 7969 7970 7971 7972 7974 8021 8052 8786 8889 8929 9009 9010 9012 9013 9015 9016 9018 9019 DQ 687 # 0A 685 # 2494 2530 2959 3985 4105 4111 4326 4530 5566 5898 5900 6001 6002 6053 6055 6276 7339 8760 9042 0B 684 # 2936 2938 8764 0Q 683 # 3900 3914 4268 4293 5570 6265 6310 6515 7501 7504 7998 (U) S# 1080 # 2327 2568 2587 2587 2603 2603 2619 3172 3175 3179 3189 3191 3208 3211 3214 3219 3231 3246 3248 3276 3294 3303 3306 3350 3372 3375 4432 4460 4498 4518 4539 4655 4754 4762 5029 5114 5137 5142 5144 5146 5149 5214 5215 5216 5217 5218 5219 5227 5231 5233 5235 5269 5285 5297 5310 5326 5373 5388 5558 5560 5577 5579 5585 5586 5629 5631 5664 5669 5671 5698 5699 5712 5713 5736 5740 5742 5743 5747 5755 5771 5774 5776 5828 5832 5834 5837 5840 5848 5850 5851 5852 5853 5870 5875 5906 5917 5932 5934 5976 5987 5991 5994 6004 6010 6016 6027 6066 6067 6077 6092 6099 6102 6113 6130 6135 6137 6158 6183 6185 6191 6331 6332 6334 6504 6651 6820 6822 6829 6880 6885 6887 7016 7018 7020 7021 7027 7037 7224 7561 7579 7905 7944 8125 8158 8335 8351 8782 (U) SCAD 1057 # A 1065 # 2327 3231 4432 4460 4498 4518 4539 4655 4754 4762 5025 5039 5119 5120 5121 5122 5123 5230 5269 5285 5297 5310 5326 5373 5388 5558 5560 5577 5579 5664 5712 5736 5740 5742 5743 5747 5976 5987 5991 6004 6010 6066 6067 6651 6820 6822 6829 6880 7016 7017 7027 7221 7243 7263 7561 7579 7905 7944 8125 8158 8335 8351 8782 A*2 1058 # 7008 A+B 1062 # 2568 2587 2587 2603 2603 3175 3179 3189 3191 3211 3214 3219 3246 3248 3294 3303 3372 5144 5149 5215 5216 5217 5218 5219 5227 5235 5585 5586 5629 5631 5660 5669 5671 5713 5755 5757 5770 5774 5828 5832 5834 5837 5840 5848 5850 5851 5852 5853 5870 5875 5906 5917 5932 5934 5999 6016 6027 6092 6099 6102 6113 6130 6135 6137 6158 6183 6185 6191 6331 6332 6334 6881 6885 7019 7020 7021 7037 7332 A-1 1064 # 2337 3195 3197 3275 3277 3279 3283 3310 3317 3349 3351 3353 3357 3374 3376 3379 3385 4565 4578 4584 4592 4602 4610 4870 4873 4914 5272 5292 5394 5639 5641 5750 5775 5778 5781 5785 5950 5953 5960 5979 6680 6825 6831 7034 7563 7581 7916 7933 8129 8162 8342 8355 8785 A-B 1061 # 3172 3208 3276 3306 3350 3375 5016 5022 5036 5058 5114 5137 5142 5146 5214 5233 5692 5698 5699 5776 6051 6077 6387 6397 7213 7216 7258 7260 A-B-1 1060 # 5625 5630 5896 5916 A.AND.B 1063 # 5029 5231 6504 6887 7018 7224 A.OR.B 1059 # 2619 5994 (U) SCADA 1066 # BYTE1 1070 # 5016 5022 5025 5036 5119 5230 6387 6881 7017 7213 7221 7258 7263 7332 BYTE2 1071 # 5120 BYTE3 1072 # 5121 BYTE4 1073 # 5122 BYTE5 1074 # 5040 5123 7009 7244 PTR44 1069 # 5058 6397 7216 7260 S# 1068 # 2327 2568 2587 2587 2603 2603 2619 3172 3175 3179 3189 3191 3208 3211 3214 3219 3231 3246 3248 3276 3294 3303 3306 3350 3372 3375 4432 4460 4498 4518 4539 4655 4754 4762 5029 5114 5137 5142 5144 5146 5149 5214 5215 5216 5217 5218 5219 5227 5231 5233 5235 5269 5285 5297 5310 5326 5373 5388 5558 5560 5577 5579 5585 5586 5629 5631 5664 5669 5671 5698 5699 5712 5713 5736 5740 5742 5743 5747 5755 5770 5774 5776 5828 5832 5834 5837 5840 5848 5850 5851 5852 5853 5870 5875 5906 5917 5932 5934 5976 5987 5991 5994 6004 6010 6016 6027 6066 6067 6077 6092 6099 6102 6113 6130 6135 6137 6158 6183 6185 6191 6331 6332 6334 6504 6651 6820 6822 6829 6880 6885 6887 7016 7018 7020 7021 7027 7037 7224 7561 7579 7905 7944 8125 8158 8335 8351 8782 SC 1067 # 2337 3195 3197 3275 3277 3279 3283 3310 3317 3349 3351 3353 3357 3374 3376 3379 3385 4565 4578 4584 4592 4602 4610 4870 4873 4914 5272 5292 5394 5625 5630 5639 5641 5660 5692 5750 5757 5775 5778 5781 5785 5896 5916 5950 5953 5960 5979 5999 6051 6680 6825 6831 7019 7034 7563 7581 7916 7933 8129 ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 259 ; CROSS REFERENCE LISTING 8162 8342 8355 8785 (U) SCADB 1075 # EXP 1077 # 2587 2587 2603 2603 5625 5629 5631 5660 5692 5757 5896 5906 5917 5999 6051 FE 1076 # 2619 3172 3175 3179 3189 3191 3208 3211 3214 3219 3246 3248 3303 3306 5029 5114 5137 5142 5144 5149 5215 5216 5217 5218 5219 5227 5231 5233 5235 5585 5586 5630 5669 5671 5698 5699 5713 5771 5774 5776 5828 5832 5834 5837 5840 5848 5850 5851 5852 5853 5870 5875 5916 5932 5934 5994 6016 6027 6077 6092 6099 6102 6113 6130 6135 6137 6158 6183 6185 6191 6332 6334 6504 6881 6885 6887 7018 7019 7020 7021 7037 7224 SHIFT 1078 # 2568 3276 3294 3350 3372 3375 5755 SIZE 1079 # 5016 5022 5036 5058 5146 5214 6331 6387 6397 7213 7216 7258 7260 7332 (U) SETFOV 1200 # 5694 5706 6064 (U) SETFPD 1206 # 4547 5073 6746 (U) SETNDV 1201 # 4657 4692 4724 4811 5330 5694 5706 6064 (U) SETOV 1198 # 4445 4446 4470 4533 4657 4692 4724 4811 5330 5694 5706 5773 6064 (U) SHSTYLE 899 # ASHC 904 # 3197 3309 3312 3316 3319 4584 4592 4602 4610 4719 4723 4793 4797 4813 5641 5747 5749 5780 5925 5927 5931 5933 5949 5953 5960 5963 5965 5978 6019 6023 6059 6073 6092 6098 6101 6113 6130 6134 6136 6158 6183 DIV 906 # 4870 4873 4874 4918 4922 5828 5840 5848 5852 5945 5947 5948 LSHC 905 # 3279 3283 4903 4906 NORM 900 # 2616 3191 4542 4577 4754 4912 5554 5568 5569 5572 5573 5574 5586 5980 6071 ONES 902 # 5148 5151 5226 5229 6334 ROT 903 # 3214 3219 3379 3381 3385 3387 ROTC 907 # 3353 3357 3378 3384 ZERO 901 # (U) SKIP 979 # AC0 987 # 2676 3634 5013 ADEQ0 999 # 3224 3577 3589 3682 3694 4435 4440 4647 4649 4653 4667 4713 4742 4773 4855 4935 4940 4945 4961 4968 5295 5324 5690 5716 5718 5793 5836 5860 6017 6069 6111 6156 6492 6546 6622 6625 6921 6958 6980 7107 7813 ADLEQ0 983 # 2340 2449 3843 4294 4299 5734 5739 5855 6021 6024 6094 6097 6100 6103 6162 6263 6307 6450 6452 6535 6555 6740 6756 6811 6846 6849 6883 7360 7500 7568 7574 7996 7997 8745 8761 8775 8843 8858 8860 8938 8946 9043 ADREQ0 984 # 3295 3863 3879 5459 6681 6754 7121 7413 7416 7443 7445 7448 7450 7452 7757 7851 7853 7858 7860 7862 7864 7866 7868 7983 8049 8070 8121 8150 8816 8834 8835 8991 9000 9001 9003 9004 9006 9007 CRY0 982 # 3981 4025 4054 5702 5829 5831 5833 5835 CRY1 995 # 4397 4409 6147 6570 6576 6589 6781 6792 CRY2 990 # 6120 6180 DP0 991 # 2588 2604 2766 2948 2955 3247 3321 3574 3586 3679 3691 4072 4075 4080 4262 4416 4442 4464 4467 4523 4531 4636 4672 4674 4679 4684 4688 4711 4728 4740 4747 4763 4782 4800 4853 4860 4875 5327 5474 5485 5500 5590 5627 5631 5661 5692 5700 5735 5757 5789 5897 6000 6048 6052 6063 6076 6315 6328 6346 6359 6366 6386 6428 6430 6453 6470 6473 6479 6520 6612 6617 6655 6664 6697 6714 6786 6837 6864 7063 7094 7137 7191 7314 7492 7746 8758 8788 8831 DP18 992 # 2567 2934 2941 3371 6287 6540 6745 6835 7169 7170 8035 8789 8791 8826 EXECUTE 1001 # 8508 FPD 986 # 4485 5016 5022 5036 6645 INT 988 # 5504 6388 8707 8749 8959 8965 IOLGL 980 # 2625 3786 3789 IOT 993 # JFCL 994 # 3870 KERNEL 985 # 3779 3783 3784 3791 3929 3931 7341 LE 989 # 3580 3592 3685 3697 4707 5355 5710 6039 6694 7769 8576 LLE 981 # SC 1000 # 2337 3195 3197 3275 3277 3279 3283 3301 3310 3317 3349 3351 3353 3357 3374 3376 3379 3385 4565 4578 4584 4592 4602 4610 4870 4873 4914 5272 5292 5394 5639 5641 5750 5775 5778 5781 5785 5899 5901 5950 5953 5960 5979 6680 6825 6831 7025 7034 7563 7581 7916 7933 8129 8162 8355 8785 TRAP CYCLE 997 # 8753 8930 TXXX 996 # 3529 -1 MS 1004 # 5480 6383 7817 -CONTINUE 1003 # 8510 -IO BUSY 1002 # 8337 8343 8352 8360 (U) SKIP HIGH 1418 # (U) SKIP LOW 1419 # (U) SPEC 863 # 2763 2769 2886 2888 2922 2928 2936 2938 2957 2959 3004 3014 3024 3056 3067 3087 3097 3108 3118 3149 4437 4443 4466 4468 APR EN 877 # 2315 7457 7570 APR FLAGS 875 # 7462 7466 7786 ASHOV 884 # 3197 3316 3319 CLR IO BUSY 867 # 8097 8103 8134 8140 CLR IO LATCH 866 # 8110 8148 8339 8345 8354 8359 CLRCLK 865 # 7743 7818 8751 CLRCSH 876 # 7911 7912 7915 EXPTST 885 # 5837 5853 6185 ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 260 ; CROSS REFERENCE LISTING FLAGS 886 # 2370 2371 2772 3650 3666 3734 3749 3808 3809 3813 3814 3869 3891 3892 3986 3998 4055 4086 4090 4106 4112 4314 4315 4316 4369 4383 4401 4411 4414 4445 4446 4470 4521 4533 4544 4547 4657 4692 4724 4811 4963 4965 5032 5049 5073 5330 5694 5706 5773 6064 6746 6747 7361 7999 8026 8941 INHCRY18 881 # 3758 3976 4024 4053 4074 4079 5363 5444 LDACBLK 887 # 2312 7507 LDINST 888 # 2426 3940 7357 8522 LDPAGE 868 # 7899 8888 8897 LDPI 883 # 3880 7884 7976 8577 LDPXCT 870 # 3934 LOADIR 882 # 6268 LOADXR 873 # 2515 3800 3839 3860 5025 5044 5094 6269 6281 7220 7259 7261 7270 MEMCLR 878 # 2310 3881 7977 8375 8496 8570 8754 8774 NICOND 869 # 2382 2383 2385 2386 2466 2472 2715 3250 3298 3326 3571 3583 3676 3700 3701 3704 3705 3774 3775 3802 3865 4007 4085 4092 4532 4802 4805 5017 5786 5792 6154 7872 8155 PREV 872 # 8480 8488 PXCT OFF 880 # 2395 2398 2401 2413 2416 2419 2444 SWEEP 879 # 7928 7929 7932 WAIT 871 # 2601 # 864 # 8504 8507 8571 (U) SPEC HIGH 1412 # (U) SPEC LOW 1413 # (U) STATE 1083 # BLT 1085 # 5445 COMP-DST 1094 # 6478 CVTDB 1093 # 6526 DST 1090 # 6439 DSTF 1092 # 6376 EDIT-DST 1096 # 6497 6709 6736 6961 6988 8971 8975 EDIT-S+D 1097 # 6927 EDIT-SRC 1095 # 6471 6862 6923 8969 8977 8979 8983 SIMPLE 1084 # SRC 1089 # 6323 6353 6425 8973 SRC+DST 1091 # 6350 6431 (U) SWITCH% CIRC 5 463 3162 3164 3364 3390 4220 4222 4243 4246 FULL 460 1389 1391 2324 2344 2350 2354 4480 4549 4552 4703 4814 4817 4887 4953 5247 5401 5405 7564 7572 ITS 7 465 1086 1088 1109 1111 1119 1124 1129 1170 1173 1188 1191 1357 1359 1361 2303 2306 2308 3920 3923 3927 3944 3959 4202 4205 4228 4233 7387 7390 7488 7511 7557 7587 7601 7616 7625 7635 7645 7650 7652 7674 7677 7688 7705 7713 7715 7737 7756 7774 7782 7901 7906 7909 7918 7920 7922 7936 7938 7942 8624 9052 9059 9855 ITSIO 15 474 8077 8165 8170 8329 JPC 9 468 1144 1147 7660 7662 7668 7725 7727 7735 PCST 13 472 1148 1150 2321 2323 7396 7398 7400 7402 7404 7406 7418 7421 8756 8767 8770 SIM 457 2363 2368 2375 TEST 17 476 1PROC 11 470 1099 1102 1401 1405 2423 2429 2434 2437 2439 2447 2452 2525 2535 3806 3816 3826 3842 3846 8007 8019 8029 8945 8947 8949 8956 8960 9027 9030 9035 9040 9051 (U) T 1018 # 2T 1021 # 4728 4741 5631 5906 6488 6559 6623 6918 7059 7105 7819 3T 1022 # 2340 2604 2614 2772 3320 3529 3615 3650 3666 3758 3871 3980 4016 4024 4049 4053 4071 4076 4081 4119 4134 4369 4383 4489 4491 4510 4545 4685 4689 4740 4746 4747 4748 4766 4770 4791 4799 4881 4948 4965 5025 5040 5114 5132 5230 5275 5282 5364 5381 5385 5456 5458 5474 5485 5500 5590 5625 5660 5702 5734 5735 5738 5771 5774 5829 5831 5833 5835 5894 5895 5898 5900 6000 6001 6002 6047 6051 6053 6055 6063 6146 6152 6314 6332 6334 6385 6389 6453 6561 6575 6589 6621 6624 6710 6713 6745 6746 6774 6780 6783 6792 6818 6832 6860 6881 6882 7009 7017 7062 7123 7214 7221 7243 7258 7262 7265 7267 7304 7359 7492 7568 7574 7957 7982 7986 7995 7996 7997 8044 8048 8050 8884 8887 8894 8911 8953 4T 1023 # 3223 3734 3749 4396 4401 4408 4411 4413 5323 5328 6328 6359 6540 6545 6570 6611 6785 6834 6980 7107 7313 8576 8710 5T 1024 # 8342 8359 (D) TEST 1465 # 2743 2743 2744 2744 2748 2748 2749 2749 2753 2753 2754 2754 2758 2758 2759 2759 2779 2798 2798 2799 2799 2803 2803 2804 2804 2808 2808 2809 2809 2813 2813 2814 2814 2818 2818 2819 2819 2823 2823 2824 2824 2828 2828 2829 2829 2833 2833 2834 2834 2840 2840 2841 2841 2845 2845 2846 2846 2850 2850 2851 2851 2855 2855 2856 2856 2861 2861 2862 2862 2866 2866 2867 2867 2871 2871 2872 2872 2876 2876 2877 2877 2975 2999 2999 3000 3000 3009 3009 3010 3010 3019 3019 3020 3020 3029 3029 3030 3030 3034 3034 3035 3035 3044 3044 3045 3045 3051 3051 3052 3052 3062 3062 3063 3063 3072 3072 3073 3073 3082 3082 3083 3083 3092 3092 3093 3093 3102 3102 3103 3103 3113 3113 3114 3114 3124 3124 3125 3125 3134 3134 3135 3135 3144 3144 3145 3145 3639 3640 3641 3642 3643 3644 3645 3646 3655 3656 3657 3658 3659 3660 3661 3662 4363 4363 4364 4364 4377 4377 4378 4378 4427 4427 4428 4428 4452 4452 4453 4453 4623 4623 4624 4624 4628 4628 4629 4629 5007 5009 5603 5603 5604 5604 5607 5607 5608 5608 5611 5611 5612 5612 5615 5615 5616 5616 5649 5649 5650 5650 5654 5654 5655 5655 5679 5679 5680 5680 5684 5684 5685 5685 7622 ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 261 ; CROSS REFERENCE LISTING (U) TRAP1 1215 # 4445 4446 4470 4533 4657 4692 4724 4811 5330 5694 5706 5773 6064 (U) TRAP2 1214 # 3998 4055 4086 4090 (U) UNCORRECTABLE MEMOR 8656 # (U) VECTOR CYCLE 1287 # 8039 (D) VMA 1467 # 2742 2747 2752 2757 2797 2802 2807 2812 2817 2822 2827 2832 2839 2844 2849 2854 2860 2865 2870 2875 2997 2998 3008 3018 3028 3033 3050 3061 3071 3081 3090 3091 3101 3112 3123 3133 3142 3143 3155 3156 3157 3159 3160 3161 3723 3738 3765 4064 4362 4376 4426 4451 4622 4627 (U) WAIT 1276 # 2382 2382 2383 2383 2385 2385 2386 2386 2406 2406 2424 2465 2465 2471 2471 2476 2482 2495 2505 2509 2513 2529 2531 2533 2542 2551 2554 2555 2583 2594 2595 2595 2607 2610 2614 2621 2621 2686 2719 2725 2730 2733 2784 2784 2785 2984 2984 2986 2990 2990 3227 3227 3571 3571 3583 3583 3651 3651 3652 3700 3700 3701 3701 3704 3704 3705 3705 3774 3774 3775 3775 3776 3781 3785 3788 3798 3802 3802 3829 3833 3837 3858 3865 3865 3885 3888 3889 3902 3902 3905 3905 3908 3913 3913 3934 3935 3973 3978 3978 3990 3996 4005 4005 4016 4019 4029 4029 4034 4034 4036 4042 4050 4056 4114 4114 4115 4126 4126 4144 4145 4265 4273 4274 4276 4281 4286 4286 4307 4311 4324 4328 4336 4336 4346 4346 4350 4354 4532 4532 5017 5017 5027 5027 5056 5056 5062 5062 5063 5077 5081 5085 5089 5091 5097 5221 5221 5222 5434 5464 5464 5471 5471 5478 5482 5492 5493 5508 5508 5513 5513 5551 5587 5587 5589 5594 6262 6278 6279 6281 6304 6455 6707 6708 6734 6808 6813 6870 6905 6905 6907 6952 6952 6954 6957 6986 6995 7116 7265 7266 7267 7268 7270 7284 7343 7345 7350 7352 7356 7403 7419 7490 7491 7655 7655 7656 7658 7661 7672 7672 7709 7710 7717 7718 7720 7723 7793 7794 7797 7822 7822 7825 7826 7826 7827 7834 7835 7872 7872 7892 7892 7893 7981 7993 7994 8022 8022 8042 8047 8048 8056 8098 8099 8117 8119 8135 8136 8152 8153 8155 8155 8368 8371 8373 8383 8385 8387 8479 8481 8487 8487 8499 8501 8502 8502 8514 8514 8520 8587 8588 8589 8590 8590 8591 8592 8595 8596 8597 8597 8598 8599 8600 8600 8601 8602 8603 8603 8604 8605 8606 8606 8607 8608 8609 8609 8610 8611 8613 8765 8766 8814 8815 8874 8874 8876 8912 9024 9025 9028 9028 9037 9047 (U) WORK 1107 # AC0 1176 # AC1 1177 # AC2 1178 # AC3 1179 # ADJBPW 1135 # 5347 5368 ADJP 1130 # 5280 5308 ADJPTR 1132 # 5014 5299 5362 ADJQ1 1133 # 5304 5322 ADJR2 1134 # 5314 5383 ADJS 1131 # 5294 5309 5374 APR 1137 # 2317 7436 7458 7470 7566 7571 BADW0 1108 # 8734 BDH 1161 # 6654 6729 6738 6760 BDL 1162 # 6652 6695 6735 6739 CMS 1158 # 6475 6487 6488 6498 DBR1 1120 # 7628 7654 7681 7719 8797 DBR2 1121 # 7630 7657 7683 7722 8799 DBR3 1122 # 7632 7685 8807 DBR4 1123 # 7634 7687 8805 DDIV SGN 1180 # DECHI 1185 # 2329 2331 6783 DECLO 1184 # 2328 2330 6774 DIV 1113 # DVSOR H 1181 # DVSOR L 1182 # E0 1153 # 6272 6705 6984 6994 E1 1154 # 6285 6288 6731 6916 6917 7097 7100 7105 7114 FILL 1157 # 6459 6482 6495 6979 7059 7065 7181 7286 FSIG 1159 # 6940 6942 HSBADR 1136 # 2309 7648 7711 8569 8575 MSK 1156 # 6336 6512 7106 MUL 1112 # PCST 1149 # 2322 7397 7420 8758 8763 PERIOD 1168 # 7773 7836 7841 QUAN 1171 # 7659 7726 7764 7765 SLEN 1155 # 6319 6344 6348 6365 6378 6395 6399 6427 6434 6530 6534 6537 6541 6710 6711 6713 6716 7093 7188 7192 7194 7312 7326 7330 SV.ARX 1116 # 6411 6416 8494 8567 8579 8594 8617 8703 8759 8906 8966 SV.AR 1115 # 6384 6414 8593 8614 8700 8915 SV.AR1 1193 # SV.BRX 1118 # 5521 6412 6417 7303 7318 7327 8704 8909 SV.BR 1117 # 6410 6415 8712 8721 8723 8725 8727 8737 8908 SV.VMA 1114 # 8340 8346 8348 8583 8612 8615 8706 8753 8757 8878 8930 TIME0 1166 # 2319 7750 7805 7815 TIME1 1167 # 2320 7742 7748 7802 7816 7819 8750 TRAPPC 1192 # 7340 8940 TTG 1169 # 7762 7771 7837 YSAVE 1187 # 3942 (D) WRITE 1468 # (U) WRITE CYCLE 1246 # 2529 2763 2769 2784 2886 2888 2922 2928 2936 2938 2957 2959 2984 2990 3004 3014 3024 3056 3067 3087 3097 3108 3118 3149 3651 3902 3905 3913 3978 4029 4034 4114 4126 4265 4273 4286 4336 4346 4369 4383 4437 4443 4466 4468 5056 5062 5221 ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 262 ; CROSS REFERENCE LISTING 5464 5471 5508 5513 5587 5790 5794 5841 5864 6905 6952 7655 7672 7822 7826 7892 8022 8151 8159 8163 8487 8499 8502 8587 8590 8597 8600 8603 8606 8609 8765 8777 8779 8859 8874 8880 9024 9028 (U) WRITE TEST 1245 # 2529 2533 2763 2769 2784 2886 2888 2922 2928 2936 2938 2957 2959 2984 2990 3004 3014 3024 3056 3067 3087 3097 3108 3118 3149 3651 3902 3905 3913 3978 4029 4034 4114 4126 4265 4273 4286 4336 4346 4369 4383 4437 4443 4466 4468 5056 5062 5221 5464 5471 5508 5513 5587 5790 5794 5841 5864 6905 6952 7655 7672 7822 7826 7892 7978 7993 8022 8038 8047 8112 8115 8151 8159 8163 8487 8499 8502 8516 8587 8590 8597 8600 8603 8606 8609 8765 8775 8874 8881 9024 9028 9037 (U) WRU CYCLE 1283 # 7979 (U) # 1054 # 2294 2296 2298 2300 2307 2340 2355 2393 2397 2400 2412 2415 2418 2527 2611 2613 2626 2648 2649 2943 2945 2950 2952 2970 3249 3322 3324 3778 3787 3790 3792 3793 3794 3849 3854 3857 3863 3878 3879 3899 3912 3933 4023 4052 4117 4133 4226 4236 4238 4240 4242 4254 4257 4290 4295 4297 4300 4302 4333 4341 4348 4417 4418 4676 4714 4715 4725 4733 4779 4833 4859 4866 4959 5129 5276 5278 5283 5302 5306 5312 5316 5346 5351 5386 5390 5397 5455 5557 5562 5571 5576 5581 5632 5633 5636 5637 5662 5663 5667 5696 5697 5734 5738 5758 5759 5898 5900 5981 6001 6002 6021 6024 6053 6055 6229 6231 6233 6235 6237 6239 6241 6243 6245 6263 6266 6290 6307 6311 6450 6452 6511 6516 6523 6528 6535 6539 6555 6597 6613 6614 6620 6626 6647 6660 6662 6669 6674 6681 6684 6740 6754 6756 6763 6788 6794 6811 6823 6826 6834 6846 6849 6867 6883 6944 6955 6964 6966 6983 7003 7025 7030 7039 7042 7121 7143 7147 7151 7155 7159 7163 7173 7179 7280 7291 7359 7364 7374 7375 7376 7380 7381 7382 7383 7391 7392 7395 7401 7407 7408 7409 7410 7412 7415 7438 7439 7442 7443 7445 7448 7450 7452 7464 7474 7477 7481 7494 7498 7500 7502 7505 7567 7568 7569 7574 7575 7576 7582 7591 7597 7744 7784 7800 7855 7856 7904 7910 7925 7927 7959 7960 7961 7962 7963 7964 7965 7966 7967 7968 7969 7970 7971 7972 7975 7986 7996 7997 8024 8044 8051 8105 8107 8121 8126 8130 8142 8144 8150 8362 8453 8457 8459 8461 8463 8465 8467 8504 8507 8518 8571 8695 8717 8719 8735 8787 8816 8834 8835 8883 8893 8896 9009 9010 9012 9013 9015 9016 9018 9019 (U) # HIGH 1421 # (U) # LOW 1422 # ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 263 ; LOCATION / LINE NUMBER INDEX ; DCODE LOC'N 0 1 2 3 4 5 6 7 D 0000 4210 6200 6201 6202 6203 6204 6205 6206 D 0010 6208 6209 6210 6211 6213 6214 6215 6216 D 0020 6218 6219 6220 6221 6222 6223 6224 6225 D 0030 4154 4155 4156 4157 4158 4159 4160 4161 D 0040 4165 4166 4167 4168 4169 4170 4171 4172 D 0050 4173 4174 4175 4176 4177 4178 4179 4180 D 0060 4181 4182 4183 4184 4185 4186 4187 4188 D 0070 4189 4190 4191 4192 4193 4194 4195 4196 D 0100 4200 4201 3921 3922 4211 4064 4212 4213 D 0110 5881 5882 5971 6033 4391 4392 4477 4700 D 0120 2965 2966 5765 6258 2974 2975 5766 5729 D 0130 4214 4215 5730 5006 5007 5008 5009 5010 D 0140 5602 4216 5603 5604 5605 5606 5607 5608 D 0150 5610 4217 5611 5612 5613 5614 5615 5616 D 0160 5648 4218 5649 5650 5652 5653 5654 5655 D 0170 5678 4219 5679 5680 5682 5683 5684 5685 D 0200 2741 2742 2743 2744 2746 2747 2748 2749 D 0210 2751 2752 2753 2754 2756 2757 2758 2759 D 0220 4425 4426 4427 4428 4450 4451 4452 4453 D 0230 4621 4622 4623 4624 4626 4627 4628 4629 D 0240 3155 3156 3157 3158 3159 3160 3161 3163 D 0250 2779 5448 3752 3753 3765 3767 3924 8691 D 0260 3965 3966 3967 3968 4098 4099 4100 4101 D 0270 4361 4362 4363 4364 4375 4376 4377 4378 D 0300 3595 3596 3597 3598 3599 3600 3601 3602 D 0310 3604 3605 3606 3607 3608 3609 3610 3611 D 0320 3709 3710 3711 3712 3713 3714 3715 3716 D 0330 3622 3623 3624 3625 3626 3627 3628 3629 D 0340 3723 3724 3725 3726 3727 3728 3729 3730 D 0350 3639 3640 3641 3642 3643 3644 3645 3646 D 0360 3738 3739 3740 3741 3742 3743 3744 3745 D 0370 3655 3656 3657 3658 3659 3660 3661 3662 D 0400 2997 2998 2999 3000 3007 3008 3009 3010 D 0410 3017 3018 3019 3020 3027 3028 3029 3030 D 0420 3032 3033 3034 3035 3042 3043 3044 3045 D 0430 3049 3050 3051 3052 3060 3061 3062 3063 D 0440 3070 3071 3072 3073 3080 3081 3082 3083 D 0450 3090 3091 3092 3093 3100 3101 3102 3103 D 0460 3111 3112 3113 3114 3122 3123 3124 3125 D 0470 3132 3133 3134 3135 3142 3143 3144 3145 D 0500 2796 2797 2798 2799 2801 2802 2803 2804 D 0510 2806 2807 2808 2809 2811 2812 2813 2814 D 0520 2816 2817 2818 2819 2821 2822 2823 2824 D 0530 2826 2827 2828 2829 2831 2832 2833 2834 D 0540 2838 2839 2840 2841 2843 2844 2845 2846 D 0550 2848 2849 2850 2851 2853 2854 2855 2856 D 0560 2859 2860 2861 2862 2864 2865 2866 2867 D 0570 2869 2870 2871 2872 2874 2875 2876 2877 D 0600 3417 3418 3419 3420 3421 3422 3423 3424 D 0610 3426 3427 3428 3429 3430 3431 3432 3433 D 0620 3435 3436 3437 3438 3439 3440 3441 3442 D 0630 3444 3445 3446 3447 3448 3449 3450 3451 D 0640 3454 3455 3456 3457 3458 3459 3460 3461 D 0650 3463 3464 3465 3466 3467 3468 3469 3470 D 0660 3471 3472 3473 3474 3475 3476 3477 3478 D 0670 3480 3481 3482 3483 3484 3485 3486 3487 D 0700 7370 7371 7622 8395 8473 8474 8396 8397 D 0710 8080 8081 8082 8083 8084 8085 8399 8400 D 0720 8087 8088 8089 8090 8091 8092 8402 8403 D 0730 8405 8406 8407 8408 8409 8410 8411 8412 D 0740 8414 8415 8416 8417 8418 8419 8420 8421 D 0750 8423 8424 8425 8426 8427 8428 8429 8430 D 0760 8432 8433 8434 8435 8436 8437 8438 8439 D 0770 8441 8442 8443 8444 8445 8446 8447 8448 ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 264 ; LOCATION / LINE NUMBER INDEX ; UCODE LOC'N 0 1 2 3 4 5 6 7 U 0000 2294: 8567: 2295 2307: 8507: 8510: 2339= 2340= U 0010 2333= 8569: 2335= 2442= 2385= 2386= 2296 2449= U 0020 2343= 2347= 2450= 2451= 2586= 2590= 2605= 2608= U 0030 2297 2355= 2626= 2627= 2648= 2649= 2730= 2733= U 0040 2542: 2547: 2551: 2560: 2566: 2573: 2579: 2583: U 0050 2594: 2601: 2625: 2298 3197= 3201= 3226= 3229= U 0060 2300 2393= 2397= 2400= 3798= 2403= 3802= 2405= U 0070 2309 2412= 2415= 2418= 4274= 2421= 4276= 2424= U 0100 4433= 2463= 4461= 2469= 4435= 2475= 4463= 2481= U 0110 3807= 2490= 3812= 2494= 3827= 2503= 3832= 2508= U 0120 3245= 3248= 3279= 3280= 3283= 3284= 3296= 3298= U 0130 3302= 3305= 3308= 3311= 3315= 3318= 2310 7428: U 0140 3322= 3324= 3353= 3354= 3357= 3358= 3374= 3375= U 0150 3381= 3382= 3387= 3388= 3529= 3532= 3535= 3538= U 0160 3635= 3636= 3700= 3701= 3704= 3705= 3844= 3845= U 0170 3571= 3574= 3577= 3580= 3583= 3586= 3589= 3592= U 0200 3849= 3850= 3854= 3855= 3899= 3900= 3912= 3913= U 0210 3676= 3679= 3682= 3685= 3688= 3691= 3694= 3697= U 0220 3857= 3858= 4498= 3863= 3933= 3934= 4500= 3864= U 0230 3902= 2312 3990= 3996= 3904= 3907= 2315 3865= U 0240 3878= 3879= 4027= 4032= 8112= 3880= 4055= 4056= U 0250 4003= 4006= 4008= 2317 8115= 3881= 4073= 4078= U 0260 4085= 4086= 4090= 4092= 4259= 4261= 4263= 4267= U 0270 4128= 2319 4268= 4271= 4130= 4133= 4296= 4299= U 0300 4278= 2320 4281= 4286= 4301= 4304= 2322 4290= U 0310 4324= 2325 4326= 4328= 4399= 4403= 4410= 4413= U 0320 4417= 4418= 4436= 4437= 4441= 4443= 4445= 4446= U 0330 4465= 4467 4468= 4469= 4524= 4525= 4532= 4533= U 0340 4489= 4491= 4508= 4510= 4493= 4754= 4512= 4755= U 0350 4518= 4542= 4583= 4587= 4520= 4544= 4591= 4595= U 0360 4637= 4639= 4601= 4605= 4664= 4666= 4609= 4613= U 0370 4648= 4652= 4683= 4687= 4655= 4657= 4658= 2326 U 0400 4344: 2327 4692= 4693= 4673= 4676= 2328 4678= U 0410 4708= 4710= 4712= 4714= 4722= 4724= 4730= 4732= U 0420 4738= 4740= 4741= 4743= 4746= 4747= 4748= 4749= U 0430 4758= 4759= 4774= 4775= 4761= 2329 4765= 4734= U 0440 4784= 4785= 4801= 4803= 4854= 4855= 4856= 4857= U 0450 4862= 4864= 4873= 4874= 4877= 4878= 4767= 4769= U 0460 4902= 4905= 4915= 4922= 4937= 4938= 4942= 4943= U 0470 4947= 4948= 4962= 4964= 5028= 4793= 5032= 4795= U 0500 4969= 4970= 5271= 5274= 5043= 5046= 2330 5049= U 0510 4832= 2331 5291= 5294= 4836= 4837= 4838= 4839= U 0520 5014= 5016= 5296= 5299= 5301= 5017= 5304= 2332 U 0530 5076= 5987= 5080= 4810= 5084= 5991= 5088= 4811= U 0540 5056= 5057= 5058= 5059= 5137= 5311= 5139= 5314= U 0550 5114= 5119= 5120= 2336 5121= 5122= 2337 5123= U 0560 5214= 5215= 5216= 2369 5217= 5218= 8121= 5219= U 0570 5325= 5330= 5357= 5366= 5345= 5347= 8122= 5350= U 0600 5393= 5396= 5375= 5665= 5433= 5437= 5377= 5667= U 0610 5463= 5468= 5478= 5482= 5486= 5488= 5498= 5499= U 0620 5501= 5503= 5505= 5510= 5548= 5627= 5550= 5628= U 0630 5558= 5560= 2372 5562= 5591= 5592= 5554= 5556= U 0640 5577= 5579= 2513= 5581= 5632= 5633= 5636= 5637= U 0650 5641= 5642= 5662= 5663= 5692= 5694= 5696= 5697= U 0660 5702= 5703= 5705= 5706= 5708= 5710= 5735= 5736= U 0670 5738= 5740= 5742= 5743= 5749= 5751= 5758= 5759= U 0700 5773= 5775= 5774= 5776= 5712= 5713= 5780= 5782 U 0710 5785= 5786= 5792= 5793 5715= 5716= 5718= 5720= U 0720 5794= 5795= 2517= 5789= 5840= 5841= 5844= 5846= U 0730 5859= 5860= 5869= 5790= 5861= 5862= 5870= 5721= U 0740 5828= 5829= 5830= 5831= 5832= 5833= 5834= 5835= U 0750 5836= 2527= 2528= 5874= 5898= 5900= 5837= 5875= U 0760 5848= 5992= 5849= 2530= 5850= 5993= 5851= 5855= U 0770 5852= 2531= 5903= 5905= 5910= 5911= 5853= 5856= U 1000 5918= 5919= 6004= 5945= 5960= 5961= 6005= 5872= U 1010 5978= 5980= 6001= 6002= 6022= 6023= 2532= 5873= U 1020 6010= 6263= 2553 5947= 6015= 6265= 6025= 6026= U 1030 6042= 6044= 6179= 5929= 6053= 6054= 6182= 5930= U 1040 6061= 6063= 2555 6017= 6064= 6065= 6081= 6082= U 1050 6112= 6115= 5952= 5954= 6119= 6120= 5956 5957 U 1060 6066= 2561 6067= 6019= 6123= 6125= 6038= 6039= U 1070 6068= 2574 6071= 5963= 6151= 6152= 2575 5964= U 1100 6129= 6307= 6132= 6450= 6134= 6309= 6136= 6451= U 1110 6138= 2611 2613 6076= 6157= 6160= 6140= 6079= U 1120 6091= 6094= 6095= 6097= 6098= 6100= 6101= 6103= U 1130 6104= 2614 6169= 6170= 6288= 6290= 6106= 2617 U 1140 6142= 2618 6144= 6146= 6310= 6314 6316= 6318= U 1150 6361= 6362= 6185= 6186= 2621 6334= 6190= 6335= U 1160 6344= 6346= 6367= 6368= 6348= 6350= 2785 6353= U 1170 6275= 6413= 6276= 6414= 6278= 6517= 6279= 6519= U 1200 6375= 6376= 2920 6378= 6384= 6385= 6387= 6390= ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 265 ; LOCATION / LINE NUMBER INDEX ; UCODE LOC'N 0 1 2 3 4 5 6 7 U 1210 6394= 6395= 6397= 6399= 6401= 6403= 6285= 6287= U 1220 6427= 6429= 6431= 6452= 6454= 6455 6434= 6453= U 1230 6438= 6439= 2926 6440= 6323= 6324= 6325= 6327= U 1240 6456= 6459= 6467= 6469= 6471= 6473= 6475= 2986 U 1250 6481= 6482= 6484= 2987 6495= 6496= 6501= 6503= U 1260 6520= 6522 6534= 6535= 6541= 6545= 6537= 6539= U 1270 6548= 6550= 6552= 3108 6556= 6557= 6526= 6527= U 1300 6559= 6561= 6596= 6597= 6608= 6610= 6613= 6614= U 1310 6567= 6569= 6616= 6618= 3178 6572= 6623= 6624= U 1320 6574= 6575= 6626= 6628= 3190 6578= 6636= 6637= U 1330 6585= 6586= 6588= 6811= 6646= 6649= 6591= 6813= U 1340 6652= 6662= 6654= 6663= 6657= 6659= 6666= 6667 U 1350 6672= 6673= 6683= 6686= 6689= 6691= 6695= 6697= U 1360 6778= 6677= 6780= 6679= 6698= 6703= 8150= 6681= U 1370 6715= 6716= 6741= 6742= 6746= 6747= 8151= 6718= U 1400 2382: 2383: 2763: 2766: 2769: 2771: 2783: 2886: U 1410 2888: 2914: 2916: 2919: 2922: 2925: 2928: 2934: U 1420 2936: 2938: 2941: 2948: 2943: 2945: 2950: 2952: U 1430 2955: 3650: 2957: 2959: 2970: 3194 2971: 3666: U 1440 3720: 3004: 3014: 3024: 3039: 3056: 3067: 3077: U 1450 3087: 3097: 3107: 3118: 3129: 3139: 3149: 4396: U 1460 8097: 8134: 3223: 3212 3275: 3276: 3293: 6262: U 1470 3349: 3350: 3513: 3515: 3518: 3520: 3615: 3633: U 1500 6751= 6754= 6755= 6756= 2676: 2681: 2686: 3213 U 1510 6757= 6758= 6774= 6776= 2710: 2714: 2719: 2725: U 1520 3774: 3775: 3776: 3778: 3779: 3781: 3783: 3784: U 1530 3785: 3787: 3788: 3790: 3791: 3792: 3793: 3794: U 1540 3869: 3938: 3749: 3973: 3985: 4014: 4047: 3757: U 1550 4105: 4068: 4111: 8695: 4125: 4141: 4253: 4341: U 1560 4368: 4382: 6782= 6783= 3215 2980: 4482: 2982: U 1570 5659: 4458: 6788= 6790= 5690: 3217 5622: 5625: U 1600 4634: 4643: 6727= 7059= 6794= 6796= 6729= 7061= U 1610 5013: 3734: 3171: 3174: 8103: 4408: 5734: 3218 U 1620 5022: 5755: 3187: 3188: 5024: 5027: 5770: 4705: U 1630 5036: 5976: 3207: 3210: 5038: 5891: 6036: 5894: U 1640 5452: 4431: 5453: 5455: 8140: 3231 6816= 6818 U 1650 8453: 8455: 8457: 8459: 8461: 8463: 8465: 8467: U 1660 4242: 4226: 3929: 3931: 4236: 3367: 4238: 4240: U 1670 6825= 6826= 6831= 6832= 6859= 6860= 6733= 6735= U 1700 7425: 7374: 7375: 7376: 7436: 7470: 7377: 7378: U 1710 7380: 7381: 7382: 7383: 7851: 7848: 7384: 7385: U 1720 7904: 7589: 7898: 7490: 7561: 7579: 7391: 7392: U 1730 7395: 7397: 7401: 7403: 7407: 7408: 7409: 7410: U 1740 6229: 6231: 6233: 6235: 6237: 3249 6239: 6241: U 1750 6243: 6245: 6885= 6886= 8478: 8486: 6895= 6896= U 1760 7628: 7630: 7632: 7634: 7809: 7841: 7648: 7654: U 1770 7681: 7683: 7685: 7687: 7793: 7834: 7709: 7717: U 2000 6736= 3250 6903= 6905= 3277 6914= 6737= 6916= U 2010 6935= 6936= 6955= 6957= 6820= 6821= 6822= 6823= U 2020 7245= 6834= 7247= 6837= 7259= 6840= 7260= 6842= U 2030 7265= 6844= 7266= 6846= 7267= 6849= 7268= 6852= U 2040 6917= 3285 6920= 6923= 6925= 6927= 3286 6930= U 2050 6861= 6862= 6864= 6866= 6869= 6870= 6940= 6942= U 2060 6960= 6964= 6979= 6982= 6984= 6986= 6966= 3299 U 2070 6988= 6990= 7003= 7006= 7027= 7030= 6991= 3320 U 2100 7034= 7035= 7064= 7065= 7093= 7096= 7097= 3326 U 2110 7117= 7121= 7123= 7126= 7169= 7172= 7099= 7100= U 2120 7751= 7137= 7753= 7140= 8570= 7142= 8571= 7146= U 2130 8105= 7150= 8142= 7154= 8107= 7158= 8144= 7162= U 2140 7192= 7194= 7210= 7212= 8588= 7215= 8589= 7216= U 2150 7220= 7222= 7240= 7242= 7176= 7178= 7181= 7183= U 2160 7299= 7301= 7307= 7309= 7316= 7317= 7318= 7320= U 2170 7342= 7349= 9028= 7187= 7361= 7364= 9036= 7188= U 2200 7444= 7445= 7446= 7447= 7449= 7450= 7451= 7452= U 2210 7453= 7455= 7493= 7497= 7501= 7504= 7563= 7566= U 2220 7569= 7570= 7575= 7576= 7581= 7582= 7657= 7658= U 2230 7659= 7661= 7720= 7722= 7723= 7726= 7748= 7750= U 2240 7762= 7764= 7771= 7773= 7796= 7799= 3351 7802= U 2250 7814= 7815= 7852= 7853= 7818= 7821= 7823= 3368 U 2260 7855= 7856= 7859= 7860= 7861= 7862= 7863= 7864= U 2270 7865= 7866= 7867= 7868= 7914= 7921= 7925= 7927= U 2300 7869= 7870= 7931= 7937= 7978= 7981= 7984= 7985= U 2310 3369 7872= 7997= 7998= 8036= 8038= 8040= 8042= U 2320 8021= 8022= 8044= 8046= 3370 8024= 8050= 8052= U 2330 7956= 7959= 7960= 7961= 7962= 7963= 7964= 7965= U 2340 8067= 8068= 8071= 8072= 8117= 8119 8125= 8126= U 2350 8129= 8130= 8153= 8155= 8158= 8159 8162= 8163= U 2360 8339= 8342= 8345= 8348= 8354= 8356= 8359= 8362= U 2370 8502= 8504= 8513= 8516= 8517= 8520= 8577= 8579= U 2400 8591= 8593= 8592= 8594= 8494= 8595= 3376 8596= U 2410 8598= 8601= 8599= 8602= 8496= 8604= 8499= 8605= ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 266 ; LOCATION / LINE NUMBER INDEX ; UCODE LOC'N 0 1 2 3 4 5 6 7 U 2420 8607= 8610= 8608= 8611= 8612= 3378 8613= 3379 U 2430 8738= 8740= 8759= 8760= 8750= 8753= 8754= 3384 U 2440 8709= 8712= 3385 8714= 3543 8717= 3544 8719= U 2450 8721= 8723= 8725= 8727= 8762= 8763= 8776= 8778= U 2460 8784= 8786= 8789= 8791= 8797= 8799= 8805= 8807= U 2470 8817= 8819= 8834= 8835= 8839= 8843= 8847= 8851= U 2500 8860= 8861= 8929= 8930= 8938= 8940= 8946= 8951= U 2510 8958= 8959= 8991= 8995= 9000= 9001= 9003= 9004= U 2520 8965= 8966= 3651 8969= 8971= 8973= 8975= 8977= U 2530 8979= 8981= 8982= 8983= 9006= 9007= 9009= 9010= U 2540 9012= 9013= 9015= 9016= 9018= 9019= 9044= 9047= U 2550 3652 3804 3837 3843 3851 3885 3886 3889 U 2560 3891 3893 3914 3935 3942 3975 3998 4019 U 2570 4022 4036 4042 4051 4070 4106 4113 4115 U 2600 4117 4127 4142 4143 4145 4257 4292 4293 U 2610 4294 4311 4313 4332 4336 4347 4350 4352 U 2620 4404 4416 4432 4439 4459 4460 4464= 4483 U 2630 4484 4501= 4503= 4514 4523 4526 4527 4528 U 2640 4529 4530 4538 4539 4540 4547= 4563 4564 U 2650 4577 4635 4644 4645 4646 4670 4671 4706 U 2660 4715 4717 4718 4725 4726 4728 4753 4756= U 2670 4757= 4760 4766 4770 4773 4777 4779 4780 U 2700 4782 4786 4788 4789 4791 4796= 4799 4804 U 2710 4813= 4853 4859 4860 4865 4867 4868 4869 U 2720 4870 4875 4879 4880 4881 4909 4933 4934 U 2730 4939 4944 4950 4951 4952 4959 4960 4968 U 2740 5039 5042 5062 5063 5071 5073 5091 5097 U 2750 5128 5141 5143 5146 5147 5148 5151 5152 U 2760 5221 5222 5225 5226 5229 5230 5231 5232 U 2770 5234 5239 5240 5241 5242 5268 5277 5280 U 3000 5281 5284 5286 5305 5308 5309 5310 5315= U 3010 5317= 5354 5368 5372 5374 5384= 5387= 5389 U 3020 5399 5432 5439 5440 5441 5443 5445 5458 U 3030 5470 5473 5484 5489 5493 5520 5521 5523 U 3040 5551 5564 5566 5568 5569 5570 5572 5573 U 3050 5574 5575 5583 5585 5586 5587 5589 5590 U 3060 5593 5629= 5630= 5631 5639 5664 5669= 5670= U 3070 5698 5699 5700 5723 5747 5756 5757 5778= U 3100 5863= 5864= 5892 5895 5912 5915 5917 5920 U 3110 5924 5926 5931= 5933= 5935= 5948= 5949= 5965= U 3120 5981 5982 5986 5994 5998 6006= 6020= 6021 U 3130 6024 6045 6046 6050 6055 6056 6057 6073 U 3140 6108 6111 6121 6149 6153 6156 6162 6267= U 3150 6269= 6272 6273 6281 6319 6331 6332 6336= U 3160 6358 6365 6366 6369 6382 6400 6406 6410 U 3170 6411 6412 6415= 6416 6417 6424 6425 6442 U 3200 6443 6470 6477 6478 6479 6486 6488 6489 U 3210 6490 6491 6492 6497 6498 6512 6514 6515 U 3220 6530 6555 6558 6580 6598 6602 6603 6611 U 3230 6615 6620 6621 6629 6638 6650 6651 6668 U 3240 6692 6693 6704 6705 6706 6708 6709 6710 U 3250 6711 6713 6720 6724 6731 6738 6739 6740 U 3260 6743 6744 6745 6760 6762 6784 6785 6791 U 3270 6792 6814= 6815= 6829 6879 6881 6882 6907 U 3300 6908 6943 6951 6952 6953 6954 6969 6994 U 3310 6995 7007 7008 7016 7017 7018 7019 7020 U 3320 7021 7024 7037 7038 7041 7043 7045 7062= U 3330 7105 7106 7114 7115 7190= 7213 7217= 7219 U 3340 7239 7258 7261 7262 7270 7271 7284 7286 U 3350 7290 7303 7304 7312 7313 7321 7324 7326 U 3360 7327 7328 7330 7332 7339 7340 7356 7358 U 3370 7412 7413 7415 7416 7419 7420 7437 7439 U 3400 7440 7441 7443 7448 7456 7458 7461 7463 U 3410 7465 7471 7473 7476 7479 7480 7482 7491 U 3420 7500 7506 7567 7568 7571 7573 7574 7583 U 3430 7590 7595 7596 7655 7656 7672 7710 7711 U 3440 7718 7719 7742 7744 7745 7746 7757 7765 U 3450 7768 7783 7784 7785 7794 7805 7810 7811 U 3460 7812 7816 7825 7826 7827 7835 7836 7837 U 3470 7857 7858 7881 7882 7883 7884 7892 7893 U 3500 7900 7905 7910 7912 7929 7944 7966 7967 U 3510 7968 7969 7970 7971 7972 7974 7976 7977 U 3520 7986 7988 7993 7994 7996 7999 8025 8026 U 3530 8034 8048 8053 8054 8070 8099 8110 8136 U 3540 8147= 8152= 8335 8351 8368 8371 8373 8375 U 3550 8377 8379 8381 8383 8385 8387 7280: 7281: U 3560 8389 8481 8489 8501 8575 8582 8583 8587 U 3570 8590 8597= 8600 8603= 8606= 8609 8614 8615 U 3600 8616 8617 8703 8704 8705 8706 8734 8735 U 3610 8737 8744 8745 8749 8757 8758 8761 8764 U 3620 8765 8766 8774 8775 8781 8788 8814 8815 ; DSK: KSHACK; ITS MCR 22:17:29 16-JAN-87 MICRO 116 KS10 MICROCODE FOR ITS PAGE 267 ; LOCATION / LINE NUMBER INDEX ; UCODE LOC'N 0 1 2 3 4 5 6 7 U 3630 8816 8823 8828 8858 8873 8876 8878 8879 U 3640 8882 8884 8886 8889 8892 8894 8895 8898 U 3650 8906 8908 8909 8910 8915 8941 8953 9023 U 3660 9025 9042= 9043= 9049 U 3670 U 3700 U 3710 U 3720 U 3730 U 3740 6449: 6808: 6511: 6644: 6302: U 3750 6810: 6306: U 3760 U 3770 3579 U 4000 2294 2295 NO ERRORS DETECTED END OF MICRO CODE ASSEMBLY USED 295.00 SECONDS