Google
 

Trailing-Edge - PDP-10 Archives - BB-AS80B-SM_1985 - sources/klx.mcr
There are 4 other files named klx.mcr in the archive. Click here to see a list.
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page TOC-1
; 							Table of Contents					

; 1		KLX.MIC[4,30]	17:12 9-Aug-84
; 22		EDHIS.MIC[4,30]	13:59 4-Feb-85
; 39	REVISION HISTORY
; 1029		DEFINE.MIC[4,30]	17:12 9-Aug-84
; 1030	CONDITIONAL ASSEMBLY VARIABLE DEFINITIONS
; 1191	HOW TO READ THE MICROCODE -- FORMATS & CONSTRUCTS
; 1394	MICROCODE LISTING TEMPLATE
; 1445	KL10 INSTRUCTION OPCODE MAP
; 1501	CONTROL RAM DEFINITIONS -- J, AD
; 1557	CONTROL RAM DEFINITIONS -- DATA PATH MIXERS
; 1630	CONTROL RAM DEFINITIONS -- 10-BIT LOGIC
; 1663	CONTROL RAM DEFINITIONS -- SHIFT, ARMM, VMA, TIME
; 1697	CONTROL RAM DEFINITIONS -- MEM SPECIAL FUNCTIONS
; 1726	CONTROL RAM DEFINITIONS -- SKIP/COND SPECIAL FUNCTIONS
; 1818	CONTROL RAM DEFINITIONS -- DISP/SPEC SPECIAL FUNCTIONS
; 1870	CONTROL RAM DEFINITIONS -- MAGIC NUMBER FIELD
; 2189	DISPATCH RAM DEFINITIONS
; 2235		MACRO.MIC[4,30]	17:12 9-Aug-84
; 2236	CRAM Macros--Miscellaneous and A
; 2286	CRAM Macros--AR
; 2512	CRAM Macros--AR Miscellaneous, ARL, and ARR
; 2584	CRAM Macros--ARX
; 2684	CRAM Macros--B, C, D
; 2791	CRAM Macros--E, F
; 2895	CRAM Macros--G, H, I, J, L
; 3008	CRAM Macros--M, N, O, P
; 3119	CRAM Macros--R
; 3179	CRAM Macros--S
; 3431	CRAM Macros--T, U, V, W, X
; 3541	DRAM Macros
; 3625		BASIC.MIC[4,30]	17:12 9-Aug-84
; 3626	THE INSTRUCTION LOOP
; 3722	NEXT INSTRUCTION DISPATCH
; 3857	EFFECTIVE ADDRESS COMPUTATION AND OPERAND FETCH
; 3923	WAIT FOR (E)
; 3991	TERMINATION
; 4050	MOVE GROUP, EXCH, BLT
; 4093	XMOVEI, XHLLI, MOVEM, EXCH, BLT
; 4124	HALFWORD GROUP
; 4271	DMOVE, DMOVN, DMOVEM, DMOVNM
; 4312	BOOLEAN GROUP
; 4469		SKPJMP.MIC[4,30]	17:12 9-Aug-84
; 4470	TEST GROUP
; 4579	COMPARE -- CAI, CAM
; 4605	ARITHMETIC SKIPS -- AOS, SOS, SKIP
; 4654	CONDITIONAL JUMPS -- JUMP, AOJ, SOJ, AOBJ
; 4710	AC DECODE JUMPS -- JRST, JFCL
; 4850	HALT LOOP
; 4879	MAP, XCT
; 4908	STACK INSTRUCTIONS -- PUSHJ, PUSH, POP, POPJ
; 5006	SUBROUTINE CALL/RETURN -- JSR, JSP, JSA, JRA
; 5056	UUO'S
; 5286	JSYS, ADJSP
; 5328	XCT, PXCT, SXCT
; 5402		SHIFT.MIC[4,30]	17:12 9-Aug-84
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page TOC-2
; 							Table of Contents					

; 5403	ROTATES AND LOGICAL SHIFTS -- ROT, LSH, JFFO
; 5458	ROTATE AND LOGICAL SHIFT COMBINED -- ROTC, LSHC
; 5492	ARITHMETIC SHIFTS -- ASH, ASHC
; 5541		ARITH.MIC[4,30]	17:12 9-Aug-84
; 5542	ADD, SUB
; 5567	MUL, IMUL
; 5618	MULTIPLY SUBROUTINE
; 5672	DIV, IDIV
; 5731	INTEGER DIVIDE SUBROUTINE
; 5771	BASIC DIVIDE LOOP
; 5820	DOUBLE INTEGER ARITHMETIC -- DADD, DSUB, DMUL, DDIV
; 5945		FP.MIC[4,30]	17:13 9-Aug-84
; 5946	SINGLE FLOATING ADD & SUB -- FAD, FADR, FSB, FSBR
; 6024	SINGLE FLOATING MULTIPLY -- FMP, FMPR
; 6053	SINGLE FLOATING DIVIDE -- FDV, FDVR
; 6181	UFA, DFN, FSC, IBP
; 6250	FIX, FIXR, FLTR, EXTEND
; 6320	SINGLE PRECISION FLOATING NORMALIZATION
; 6461	DOUBLE FLOATING ARITHMETIC -- DFAD, DFSB, DFMP, DFDV
; 6612	DOUBLE PRECISION NORMALIZATION
; 6674		EXTEXP.MIC[4,30]	17:12 9-Aug-84
; 6675	GFLT DOUBLE PRECISION ARITHMETIC
; 6794	GFLT MULTIPLY
; 6841	GFLT DIVIDE
; 6884	GFLT NORMALIZATION
; 7027	GFLT TO INTEGER CONVERSION
; 7153	GFLT DATA CONVERSION INSTRUCTIONS
; 7381		BYTE.MIC[4,30]	17:12 9-Aug-84
; 7382	BYTE GROUP -- IBP, ILDB, LDB, IDPB, DPB
; 7510	INCREMENT BYTE POINTER SUBROUTINE
; 7634	BYTE EFFECTIVE ADDRESS EVALUATOR FOR XADDR SMP LDB
; 7685	LOAD BYTE SUBROUTINE
; 7708	DEPOSIT BYTE SUBROUTINE
; 7739	IBP, ADJBP
; 8006		BLT.MIC[4,30]	17:12 9-Aug-84
; 8007	XBLT
; 8057	BLT
; 8145	EXTENDED ADDRESSING CODE FOR PXCT OF BLT
; 8182		IO.MIC[4,30]	17:12 9-Aug-84
; 8183	I/O INSTRUCTIONS
; 8282	EXTERNAL DEVICE I/O INSTRUCTIONS
; 8376	INTERNAL DEVICE FUNCTIONS -- APR, CCA
; 8430	INTERNAL DEVICE FUNCTIONS -- PI
; 8485	TRACKS SUPPORT
; 8742	INTERNAL DEVICE FUNCTIONS -- PAG
; 8865	INTERNAL DEVICE FUNCTIONS -- TIM & MTR
; 8970	PRIORITY INTERRUPT PROCESSING
; 9146	KL-MODE PAGE REFILL LOGIC
; 9536	KI-MODE PAGE FAIL HANDLING
; 9686	PAGE FAIL/INTERRUPT CLEANUP FOR SPECIAL INSTRUCTIONS
; 9759		EIS.MIC[4,30]	17:12 9-Aug-84
; 9760	EXTENDED INSTRUCTION SET DECODING
; 9929	ONE WORD GLOBAL BYTE POINTER SUBROUTINES FOR EXTEND
; 9984	EIS -- STRING MOVE
; 10104	EIS -- STRING COMPARE
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page TOC-3
; 							Table of Contents					

; 10177	EIS -- DECIMAL TO BINARY CONVERSION
; 10244	EIS -- BINARY TO DECIMAL CONVERSION
; 10402	EIS -- SRCMOD SUBROUTINE TO GET MODIFIED SOURCE BYTE
; 10607	EIS -- EDIT FUNCTION
;	Cross Reference Index
;	DCODE Location / Line Number Index
;	UCODE Location / Line Number Index
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 1
; KLX.MIC[4,30]	17:12 9-Aug-84					KLX.MIC[4,30]	17:12 9-Aug-84			

						; 1	;PARAMETER CHANGES FOR KL10 20-SERIES MICROCODE, no common file system
						; 2	;MODEL B MACHINE EXTENDED ADDRESSING
						; 3	
						; 4	.SET/SNORM.OPT=1
						; 5	.SET/XADDR=1
						; 6	.SET/EPT540=1
						; 7	.SET/LONG.PC=1
						; 8	.SET/MODEL.B=1
						; 9	.SET/KLPAGE=1
						; 10	.SET/FPLONG=0
						; 11	.SET/BLT.PXCT=1
						; 12	.SET/SMP=0		;No SMP (DOES RPW instead of RW FOR DPB, IDPB)
						; 13	.SET/EXTEXP=1
						; 14	.SET/MULTI=1		;DOES NOT CACHE PAGE TABLE DATA
						; 15	.SET/NOCST=1		;DOES NOT DO AGE UPDATES, ETC. WITH CST = 0
						; 16	.SET/OWGBP=1		;ONE WORD GLOBAL BYTE POINTERS
						; 17	.SET/IPA20=1		;IPA20-L
						; 18	.SET/GFTCNV=0		;DO NOT DO GFLOAT CONVERSION INSTRUCTIONS [273]
						; 19				;SAVES 75 WORDS. MONITOR WILL TAKE CARE OF THEM.
						; 20	.set/cst.write=0	;No common file system support here
						; 21	.set/ddt.bug=1		;For now, hack the big page table APRID bit
						; 22	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 1
; EDHIS.MIC[4,30]	13:59 4-Feb-85				KLX.MIC[4,30]	17:12 9-Aug-84			

; 23	.NOBIN
; 24	
; 25	;	THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
; 26	; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
; 27	; EQUIPMENT CORPORATION.  DIGITAL EQUIPMENT CORPORATION ASSUMES NO
; 28	; RESPONSIBITY FOR ANY ERRORS THAT MAY APPEAR IN THIS DOCUMENT.
; 29	;	THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO THE
; 30	; PURCHASER UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND
; 31	; CAN BE COPIED (WITH INCLUSION OF DIGITAL'S COPYRIGHT NOTICE) ONLY
; 32	; FOR USE IN SUCH SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING
; 33	; BY DIGITAL.
; 34	;	DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE
; 35	; USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED
; 36	; BY DIGITAL.
; 37	; COPYRIGHT (C) 1984,1985      DIGITAL EQUIPMENT CORPORATION
; 38	
; 39	.TOC	"REVISION HISTORY"
; 40	
; 41	;	The following collection of people have contributed to the
; 42	;	production and maintenance of this code.  In reverse chronological
; 43	;	order:
; 44	;
; 45	;	QQSV (Dick Wagman) -- beginning with edit 301
; 46	;	Sean Keenan
; 47	;	Don Dossa
; 48	;	Mike Newman
; 49	;	Jud Leonard
; 50	;
; 51	;
; 52	.TITLE	"KL10 Microcode for TOPS-20		4 February 1985"
; 53	.VERSION/MAJOR=1/MINOR=0/EDIT=357/WHO=0
; 54	;REV	WHY
; 55	;
; 56	;357	9 Aug 84--Add the 136 location constraint (forgotten in 356).
; 57	;356	8 Aug 84--Make the # field of location 136 contain the major and
; 58	;	minor version numbers.  Grab a random instruction with no # field
; 59	;	in use to do this.
; 60	;353	21 May 84--LDB and DPB in version 1 were leaving state register bit
; 61	;	3 set when the byte word was loaded, resulting in the page fault
; 62	;	handler treating it as if it were a string instruction and trying
; 63	;	to back up a byte pointer in AC1 when the reference page faulted.
; 64	;	Cure it by reseting the state register in GBYTE.  (Sure hope this
; 65	;	is the last bug in version 1!)
; 66	;347	20 Jan 84--Rewrite the MVST and CMPS dispatches to test for illegal
; 67	;	bits in the lengths before BRX gets smashed.  UUO was reporting a
; 68	;	bogus op code in these situations.
; 69	;	Turn on BIG.PT by default, since it should work with both old and
; 70	;	new software and hardware.
; 71	;346	18 Jan 84--Fix the .IFNOT variation of BIG.PT to clear the Keep
; 72	;	bit if anybody sets it.  This was introduced in 343.
; 73	;	Add the DDT.BUG conditional.  Under it, rewrite APRID to move
; 74	;	bit 23 to bit 5 if it is set in the serial number.  This is a
; 75	;	piece of garbage which I hope can disappear soon (it seems EDDT
; 76	;	used the serial number to test for a KS-10!).
; 77	;	Fix the time field on the page map word type dispatch (the assembler
; 78	;	default was too high).  Also make the PAGCNT conditional hang on
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 1-1
; EDHIS.MIC[4,30]	13:59 4-Feb-85			REVISION HISTORY					

; 79	;	to the original AR value after it counts the PFH entry (this would
; 80	;	only matter for an AR parity error).
; 81	;344	1 Dec 83--Save CVTBDx fill character address, which was getting lost
; 82	;	if OWGBPs were in use, in a manner similar to that used in CMPSx
; 83	;	(see edit 310).  Also, fix some conditionals for EXPMSK constant
; 84	;	generation, so that OWGBPs will assemble with EXTEXP off.
; 85	;342	8 Nov 83--Change definition of CLR PT LINE to be consistent with
; 86	;	new paging board (see also 333).  Also, redefine bit 3 of effective
; 87	;	word to reverse keep sense (so unkept only pages are cleared when
; 88	;	bit 3 is set).
; 89	;336	9 Aug 83--Back off 330 for a bit, since TOPS-10 7.02 must be tested
; 90	;	and OWGs in section 0 fail for string instructions (they get converted
; 91	;	to TWGs, which are illegal in section 0).  For now, we will maintain
; 92	;	both sources.
; 93	;335	Force memory to be released for SMP case of DPB if P > 36 causes no
; 94	;	actual data to be stored.  Make an OWG reference to an address >
; 95	;	37,,777777 cause a page fail (GBYTE was stripping the excess bits).
; 96	;334	Fix conflict generated in CLRPT by 333 by creating new subroutine
; 97	;	ARSWAP which is just AR_AR SWAP.  Make several other routines call it,
; 98	;	thus saving a few words.
; 99	;333	Add new conditional BIG.PT.  Under it, add code to implement the "Keep
; 100	;	me" bit for paging as bit 5 of the page table, and to move it to page
; 101	;	map bit 23 during page refill.  Also make DATAO PAG not clear Kept
; 102	;	pages if bit 3 of the word is off.
; 103	;332	Redefine all bank 7 ACs as R0,...,R17, and all bank 6 ACs as P0,...,
; 104	;	P17.  Change all other alias definitions to refer to these.  This
; 105	;	gives us a uniform cross reference for all scratch register references.
; 106	;	Put all macro definitions into alphabetical order, making it easier
; 107	;	to look up a macro definition.  Split the edit history into its own
; 108	;	file.  There are no functional changes from 331.
; 109	;331	Allow XSFM anywhere.  Clean up the code a bit in the process.  There
; 110	;	still remain a number of references to XSFM or XPCW distinctions,
; 111	;	and these could almost certainly be cleaned up further.
; 112	;330	Allow one word global byte pointers in section zero.  This includes
; 113	;	changes in BYTE, EIS, and FP.  Change GBYTE and CNV2WD to return 2;
; 114	;	eliminate GTST as obsolete.  Also shuffle the calls to these routines
; 115	;	to conform to the new calling conventions, and put the OWG test at
; 116	;	the beginning of IBP, ILDB, IDBP, LDB, DPB, and ADJBP.
; 117	;327	Add PAGCNT conditional.  Under it, include control to count entry
; 118	;	into PFH code and DATAO PAG with bit 2 set.
; 119	;326	Change VMA restoration in INC2WD and CNV2WD (see edits 320 and 307)
; 120	;	to use RSTR VMA_MQ in order to keep the global/local sense of the
; 121	;	reference.  This was causing ILDBs of OWGs in shadow memory to
; 122	;	save the incremented byte pointer in the ACs instead of memory.
; 123	;325	Add VMA/LOAD to local indexed EA computation for EXTEND E1 to make
; 124	;	it read the section number from VMA instead of PCS (!) if the index
; 125	;	is section local.
; 126	;324	Force the XADDR conditional to use RPW type references for DPB and
; 127	;	IDPB if the SMP conditional is on, even if one word globals are not
; 128	;	active.
; 129	;323	Add missing constraint near NOT.WR, accidentally broken by 322.
; 130	;322	Generate the A(cessible) bit in a page fail word caused by a read
; 131	;	violation if the page is otherwise accessible and if no CST is present.
; 132	;	This could be fixed for the CST present case as well, but has been
; 133	;	deferred since we are tight on space and no one seems to need it
; 134	;	anyway.
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 1-2
; EDHIS.MIC[4,30]	13:59 4-Feb-85			REVISION HISTORY					

; 135	;321	Prevent statistics microcode from losing traps by forcing NICOND
; 136	;	dispatch 11 to ignore the statistics and take the trap.
; 137	;320	Restore the VMA again in INC2WD (broken by 307), since the state
; 138	;	register bits may have changed in the interim.  This was causing
; 139	;	PXCT to do surprising things (mostly bad).
; 140	;317	Originally, this was an attempt to uncount multiply counted op
; 141	;	codes which resulted from interrupts during long instructions.
; 142	;	That project has been shelved for now.  Instead, the second
; 143	;	NICOND dispatch during op code counting has had its final constraint
; 144	;	fixed.
; 145	;316	Make counting only version compatible with time and counting by making
; 146	;	counting only version use TRX2 and TRX3, removing physical contiguity
; 147	;	requirement.
; 148	;315	Op code counting lives again!  The setup code activated by DATAO PI
; 149	;	was attempting to write the TRX registers with data fresh from memory,
; 150	;	resulting in parity checks when it was used (see edit 73, for example).
; 151	;	Juggle code to overlap next address calculation with parity wait.
; 152	;314	Add CST.WRITE conditional to facilitate assembly of microcode
; 153	;	without the CST writable bit (see edit 303).
; 154	;313	Put TIME/3T on XFERW, as the assembler was getting the wrong
; 155	;	value with both AR_MEM and ARX_MEM macros present.
; 156	;312	Fix definition of BYTE RPW to include a write test.  This was
; 157	;	causing the SMP version of DPB to hang when memory was readable
; 158	;	but not writable.
; 159	;311	Make all IOP function 7 style of references look in the cache.
; 160	;310	Improve the fix in 307 to save the computed E0+1 in FILL during
; 161	;	OWGBP conversion and to restore the VMA from there when done.
; 162	;	Also, make sure that the VMA is initialized to PC for all cases
; 163	;	when doing effective address calculations for two word globals
; 164	;	in string instructions.  307 was not enough to clean up the
; 165	;	CMPSx fill problem, since VMA HELD was never loaded.
; 166	;	Force EXT2WD to prereference AC4 and AC5 so that glitch discovered
; 167	;	for second edit 210 will not be activated.
; 168	;307	Restore VMA from MQ at end of CNV2WD (and remove it from INC2WD,
; 169	;	saving a word in the process).  This was causing CMPSx to load
; 170	;	a random fill word and MOVSLJ to store to a random place when the
; 171	;	source length was zero if one word globals were in use.
; 172	;	Force page fail code to look for ARX as well as AR parity errors
; 173	;	(now possible with BYTE RPW implemented).
; 174	;	Make sign extension of E1 go to right place in EXTEND decoding of
; 175	;	offset instructions (broken in 301).
; 176	;306	Add University of Essex code to statistics (TRACKS) code to make
; 177	;	it work with address break enabled.
; 178	;305	Fix CST write bit logic to not test bit 18 when reading.
; 179	;304	Switch byte read interlock from LDB to DPB (broken in 303).
; 180	;303	Implement bit 18 of a CST entry as a write enable bit in addition
; 181	;	to all the other write enable functions.
; 182	;	Knock one cycle out of byte deposit where the byte is being
; 183	;	deposited into the high order byte of a word.
; 184	;	Implement the SMP conditional for extended addressing by
; 185	;	replicating all the byte effective address calculation code for
; 186	;	DPB.  This is unfortunate, but necessary due to the huge dispatch
; 187	;	table that ends this subroutine.
; 188	;302	Move XFERW out of EIS (which no longer absolutely requires it
; 189	;	in line) into SKPJMP (more in the heart of things).  Also
; 190	;	juggle comment lines and code layout to reduce the listing
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 1-3
; EDHIS.MIC[4,30]	13:59 4-Feb-85			REVISION HISTORY					

; 191	;	size a bit and to force some of the .TOC lines into the table
; 192	;	of contents (even though the code nearby may be suppressed).
; 193	;301	Fix ADJBP so that instructions which occur at the last word on
; 194	;	a page do not cause a page failure of some random type (one cycle
; 195	;	too many between I FETCH and NICOND).
; 196	;	Fix effective address calculation for EXTEND so that only offset
; 197	;	instructions (and not GSNGL, for example) will have E1 sign
; 198	;	smeared.
; 199	;	Implement XJRST.  Also force JSP and JSR to do full 30 bit
; 200	;	effective address calculations.
; 201	;300	ADD LOAD OF VMA FROM PC IN PUTDST TO GET THE SECTION ADDRESS
; 202	;	CORRECT ON THE STRING INSTRUCTIONS.
; 203	;277	Add EA CALC table for SMP configurations of extended addressing
; 204	;	for TOPS-10.  (TOPS-20 paging)
; 205	;276	Force global EA CALC for EXTEND instructions in PUTDST.
; 206	;275	FIX THE ERROR CODE IN STRING COMPARE FOR ILLEGAL BITS IN THE
; 207	;	LENGTH FIELD. WAS CAUSING AR PARITY ERRORS.
; 208	;274	SAVE THE API FUNCTION WORD ON AN IO PAGE FAIL INSTEAD OF THE
; 209	;	PAGE FAIL WORD. THIS TAKES PLACE IN BOTH THE AC BLK 7 AC 2
; 210	;	AND THE MONITOR.
; 211	;273	PUT CONDITIONALS AROUND 4 GFLOAT CONVERSION INSTRUCTIONS.
; 212	;	THEY WILL ACT AS MUUO'S AND MONITOR WILL TAKE CARE OF THEM.
; 213	;272	CONO APR 200000 AT TIMES WAS NOT GENERATING EBUS RESET OF A
; 214	;	SUFFICIENT LENGTH TO CLEAR DTE REGISTERS. ADDED ANOTHER
; 215	;	MICROWORD SO THAT CONO APR IS NOW UP FOR TWO FULL WORDS WHICH
; 216	;	GETS AROUND THE HARDWARE PROBLEM.
; 217	;271	ILLEGAL INDIRECT PAGE FAIL (24) WAS NOT ALLOWING USER TO BE SET.
; 218	;270	WHEN IN SECTIONS > 1, AN UPDATED OWGBP WOULD BE WRITTEN INTO
; 219	;	MEMORY INSTEAD OF THE AC'S.
; 220	;267	CHANGED TESTS FOR OWGBP TO TEST FOR PC SEC0 FIRST. SAVES 33 NS.
; 221	;266	CONDITIONALS ON FOR TOPS-20 DEVELOPMENT.
; 222	;265	REMOVED EDIT 244. SOFTWARE ENGINEERING WILL SUPPLY MONITOR
; 223	;	CODE TO TAKE CARE OF PROBLEM. CODE COSTS TOO MUCH TIME IN
; 224	;	THE INSTRUCTION EXECUTION.
; 225	;264	ADDED CONDITIONALS TO CODE FOR IPA20, OWGBP AND NO CST UPDATE IF
; 226	;	CBR IS ZERO. THIS IS FOR RELEASE 5 OF TOPS-20.
; 227	;263	IBP DID NOT CLEAR FPD ON EXIT.
; 228	;262	ALLOW XBLT TO BE VALID IN SECTION 0.
; 229	;261	FIX CODE AT END OF ADJBP CODE TO CLEAR STATE REG. IF ILDB
; 230	;	WITH 2 WD GLOBAL POINTER POINTING TO ADDRESS NOT IN CORE
; 231	;	CLEAN DISPATCHES TO WRONG CODE BECAUSE SR LEFT OVER FROM
; 232	;	ADJBP.
; 233	;260	FIX FM PARITY ERRORS AT MVF1: ADDED NULL CALL TO RET2:
; 234	;	AT MVST: TO TAKE CARE OF EXTRA TICK FOR PARITY.
; 235	;257	MAKE SURE THAT THE UPDATED ONE WORD GLOBAL BYTE POINTER IS
; 236	;	WRITTEN BACK INTO THE CORRECT CONTEXT.
; 237	;256	MAKE ANOTHER ATTEMPT TO FIX PXCT OF ONE WORD GLOBAL BYTE POINTERS.
; 238	;	THE GIBP CODE GETS THE SAME CHANGES AS EDIT 255.
; 239	;255	MAKE ONE WORD GLOBAL BYTE POINTERS WORK WITH PXCT. THE STATE
; 240	;	REGISTER BITS ON MCL4 (NOT TO BE CONFUSED WITH CON3), WERE NOT
; 241	;	BEING SET PROPERLY TO ALLOW PREVIOUS ENA AND USER ENA TO BE SET.
; 242	;	GUARANTEE THAT THESE SR BITS ARE SET PRIOR TO THE LOAD OF THE VMA.
; 243	;254	FIX PROBLEM WITH OWGBP WHERE FPD DOES NOT EFFECT
; 244	;	INC OF POINTER AFTER PAGE FAIL
; 245	;253	FIXED ADDRESSING FOR SH DISP AT GADJL0:
; 246	;252	MOVE STRING INSTRUCTIONS DO NOT GET THE CORRECT DATA ON
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 1-4
; EDHIS.MIC[4,30]	13:59 4-Feb-85			REVISION HISTORY					

; 247	;	LOCAL POINTERS IN NON 0 SECTIONS
; 248	;251	ADD CODE FOR ONE WORD GLOBAL BYTE POINTERS.
; 249	;	TOOK OUT EDITS 243 AND 250 TO GET ENOUGH SPACE IN CRAM
; 250	;	FOR THIS EDIT. OWGBP WITH EXTEND INSTRUCTIONS WILL NOT
; 251	;	RETURN A OWGBP. THEY WILL RETURN A TWO WORD GLOBAL BP.
; 252	;250	ALLOW SMP SWITCH TO EFFECT TOPS-20 MODEL B TO DO RPW IN
; 253	;	BYTE INSTRUCTIONS.
; 254	;247	DO NOT DO A CST UPDATE OR AGE UPDATE IF THE CBR IS ZERO.
; 255	;246	EXTEND OP CODE DECODE FOR MODEL A WAS ACCEPTING MODEL B
; 256	;	OP CODES (20-31). ADDED CONDITIONALS TO CODE TO FIX.
; 257	;245	FIX 2 WORD GLOBAL BYTE POINTER BUG WITH IBP INSTRUCTION
; 258	;	WITH EXTENDED ADDRESSING OUT OF SECTION 0
; 259	;244	FIX MOVST EXTEND INST. SO THAT ILLEGAL (> 36) S FIELD
; 260	;	DOES NOT CAUSE STOP CODE TO CRASH SYSTEM FOR TOPS-10 MODEL B.
; 261	;243	WRTIME TRIED TO DO MEM WRITE EVEN THOUGH THE INSTRUCTION
; 262	;	DOES NOT DO ANYTHING TO MEMORY. CAUSED PROBLEMS IF THE MEMORY
; 263	;	LOCATION WAS NOT WRITABLE.
; 264	;242	FIX CODE FROM EDIT 234 TO GET PF CODE OF 24.
; 265	;241	FIX DFAD AND DFMP FOR ROUNDING OCCURS PROPERLY. ADDED STICKY
; 266	;	BIT FOR LEAST SIGNIFICANT BITS OF THE RESULT.
; 267	;240	FIX GFLT INSTRUCTIONS GFIX AND DGFIX SO THEY WILL TRUNCATE NEGATIVE
; 268	;	NUMBERS IN THE CORRECT DIRECTION. THE MQ MUST BE ZERO BEFORE
; 269	;	THE ARX_2 MACRO IS INVOKED OR THE ARX MIGHT GET A 3 FROM MQ00.
; 270	;237	ADD OPTION BIT FOR PV CPU IN THE APRID WORD AS IT IS DOCUMENTED
; 271	;	IN ALL OF THE HARDWARE DOCUMENTATION. SET THE BIT ACCORDING
; 272	;	TO THE MODEL.B OPTION SWITCH. IT WILL BE MAGIC NUMBER BIT 3.
; 273	;236	ALLOW THE INTEGER DIVIDE OF THE LARGEST NEGATIVE NUMBER BY
; 274	;	PLUS ONE TO SUCCEED. THIS USED TO BE A DOCUMENTED RESTRICTION
; 275	;	THAT THIS OPERATION WOULD CAUSE AN OVERFLOW AND NO DIVIDE.
; 276	;235	FIX JRA SO IT DOESN'T FALL INTO SECTION ZERO FROM A NON-ZERO
; 277	;	SECTION EVERY TIME BY WRITING THE PC SECTION INTO THE VMAX.
; 278	;234	BUILD A PAGE FAIL CODE OF 24 WHEN AN ILLEGAL INDIRECT WORD
; 279	;	IS FOUND DURING THE EFFECTIVE ADDRESS CALCULATION IN 
; 280	;	A NON-ZERO SECTION. THE PAGE FAIL CODE WAS PREVIOUSLY NOT
; 281	;	BEING REPORTED.
; 282	;233	SAVE THE IOP FUNCTION WORD THAT APPEARS ON THE EBUS WHEN AN
; 283	;	EXTERNAL DEVICE INTERRUPTS THE CPU. SAVE THIS INFORMATION
; 284	;	ON EVERY INTERRUPT IN AC BLOCK 7, AC 3. THE CONTENTS
; 285	;	OF THIS AC WILL BE PRESERVED UNTIL THE NEXT INTERRUPT.
; 286	;	OPERATING SYSTEMS SHOULD SAVE THIS INFORMATION AS SOON AS POSSIBLE
; 287	;	IF ITS CONTENTS ARE TO BE RELIABLE AND MEANINGFUL.
; 288	;232	ADDS 13 NEW INSRUCTIONS FOR SUPPORTING FORTRAN78 ON MODEL
; 289	;	B MACHINES. THESE INSTRUCTIONS ARE:
; 290	;	       OPCODE     SYMBOL
; 291	;	       ======     ======
; 292	;		102	GFAD AC,E
; 293	;		103	GFSB AC,E
; 294	;		106	GFMP AC,E
; 295	;		107	GFDV AC,E
; 296	;		EXTEND INSTRUCTIONS    EXTEND OPCODE
; 297	;		====== ============    ====== ======
; 298	;		EXTEND AC,[GSNGL  0,E]	    21
; 299	;		EXTEND AC,[GDBLE  0,E]	    22
; 300	;		EXTEND AC,[DGFIX  0,E]	    23
; 301	;		EXTEND AC,[GFIX   0,E]	    24
; 302	;		EXTEND AC,[DGFIXR 0,E]	    25
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 1-5
; EDHIS.MIC[4,30]	13:59 4-Feb-85			REVISION HISTORY					

; 303	;		EXTEND AC,[GFIXR  0,E]	    26
; 304	;		EXTEND AC,[DGFLTR 0,E]	    27
; 305	;		EXTEND AC,[GFLTR  0,E]	    30
; 306	;		EXTEND AC,[GFSC   0,E]	    31
; 307	;231	FIX IN PROBLEM IN EDIT 215 TO XDPB THAT PREVENTED THE KL
; 308	;	FROM HANDLING INTERRUPTS WHILE EVALUTAING AN INDEXED INDIRECT CHAIN.
; 309	;	AN "=0" WAS MISSING BY BYTEIP.
; 310	;230	TO PRESERVE COMPATABILITY WITH THE KS10 AND BECAUSE OF SPACE
; 311	;	LIMITATIONS IN TOPS20 MODEL A, THE SPECIFICATION FOR THE
; 312	;	CVTDBX INSTRUCTIONS HAVE BEEN CHANGED TO ELIMINATE THE NEED
; 313	;	FOR AN OVERFLOW TEST DURING THE CONVERSION. THIS CHANGE
; 314	;	EFFECTIVELY REMOVES EDIT 221.
; 315	;227	DELETE EDIT 222 AND RETURN THE CVTBDX INSTRUCTIONS TO THEIR
; 316	;	OLD, BROKEN FUNCTIONALITY SINCE ANY ATTEMPT TO PREVENT THE
; 317	;	FLAGS FROM BEING CHANGED PREMATURELY HAS TO CONTEND WITH
; 318	;	INTERRUPTABILITY PROBLEMS. THE HARDWARE REFERENCE MANUAL
; 319	;	HAS A FOOTNOTE ABOUT THE FLAG PROBLEM SO THE CURRENT FUNCTIONALITY
; 320	;	IS DOCUMENTED FOR USERS.
; 321	;226	PREVENT AR PARITY ERRORS WHEN INCREMENTING BYTE POINTERS IN THE ACS.
; 322	;225	THE CODE TO SUPPORT THE MX20 VIA THE SBUS DIAG LOOP MECHANISM
; 323	;	DOES NOT TIME OUT CORRECTLY BECAUSE THE LOOP COUNTER IS BEING
; 324	;	REINITIALIZED EVERY TIME THROUGH THE LOOP. FIX THIS PROBLEM
; 325	;	EVEN THOUGH THE CODE IS NOT ASSEMBLED IN CURRENT RELEASES.
; 326	;224	FIX BUG IN EDIT 223 THAT CAUSED THE WRONG PAGE FAIL
; 327	;	WORD TO BE WRITTEN WHEN AN I/O PAGE FAIL OCCURS.
; 328	;223	WHEN A MEMORY PARITY ERROR OCCURRS AT PI LEVEL, AS EVIDENCED
; 329	;	BY AN AR DATA PARITY ERROR, THE DTE MAY BE WAITING FOR A
; 330	;	RESPONSE. IF IT IS, A DEX FAILURE WILL OCCUR UNLESS WE CAUSE
; 331	;	DEMAND TO WIGGLE.  WE CAN DO THIS BY FORCING THE DATA  IN THE
; 332	;	AR OVER THE EBUS.
; 333	;222	CVTBDX IS NOT SUPPOSED TO CHANGE THE CONTENTS OF THE ACS
; 334	;	OR MEMORY IF THE CONVERTED NUMBER WILL NOT FIT INTO THE
; 335	;	DESTINATION FIELD. IT WAS, HOWEVER, CHANGING THE FLAGS
; 336	;	BEFORE IT KNEW IF THE NUMBER WOULD FIT.
; 337	;221	THE CVTDBX WERE FAILING TO SET OV AND TRAP1 WHEN THE
; 338	;	CONVERTED DECIMAL NUMBER WOULD NOT FIT INTO A
; 339	;	DOUBLE WORD.
; 340	;220	THE TRANSLATE INSTRUCTIONS WERE USING A 15 BIT WIDE
; 341	;	FIELD FOR THE REPLACEMENT BYTE IN THE TRANSLATE TABLE
; 342	;	WHILE THE SPECIFICATION STATED THAT THE TRANSLATE
; 343	;	INSTRUCTIONS WOULD USE ONLY 12 BITS.
; 344	;217	PREVENT CRAM PARITY ERRORS CAUSED BY DISPATCHING TO LOCATION
; 345	;	3042 WHEN INDEXING IS SPECIFIED IN THE EFFECTIVE ADDDRESS
; 346	;	CALCULATION OF E1 WHEN THE EXTEDED OPCODE IS ZERO (ILLEGAL).
; 347	;	THE FIX IS TO PUT A JUMP TO UUO AT 3042.
; 348	;216	CHANGE THE DEFAULT VALUE FOR THE SMP SWITCH TO BE ONE. THIS
; 349	;	CAUSES THE MICROCODE TO INCLUDE SMP SUPPORT BY DEFAULT.
; 350	;215	CHANGES DPB INSTRUCTION TO R-P-W CYCLE ON DATA FETCH PORTION OF
; 351	;	INSTRUCTION TO SOLVE AN INTERACTION PROBLEM IN AN SMP OPERATING
; 352	;	SYSTEM.  THIS CHANGE ONLY APPLIES TO MICROCODES FOR TOPS-10 
; 353	;	AND TOPS-20, MODEL A.
; 354	;214	ADDED CHANGES FOR XADR, RELEASE 4 AS FOLLOWS.
; 355	;	STORE PREVIOUS CONTEXT SECTION (PCS) IN FLAGS WORD (BITS 31-35)
; 356	;	IF EXEC MODE AND XSFM OR XPCW INSTRUCTION,MUUO OR PAGE FAIL.
; 357	;	RESTORE PCS FROM FLAGS WORDS (BITS 31-35) WHEN XJRSTF OR XJEN
; 358	;	IS EXECUTED IN EXEC MODE AND THE NEW PC IS ALSO IN EXEC MODE.
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 1-6
; EDHIS.MIC[4,30]	13:59 4-Feb-85			REVISION HISTORY					

; 359	;213	SET/FPLONG=0 PARAMETER ADDED TO TOPS-10 MICROCODE FOR KL MODEL 
; 360	;	A AND MODEL B.
; 361	;212	CHANGE THE CODE AT LDIND: TO TEST FOR USER MODE IF USER MODE
; 362	;	TURN OFF SPECIAL CYCLE THAT MAY STILL BE ON. THE MICROCODE WILL DEPEND
; 363	;	ON KERNAL PROGRAMS TO NOT GET IN PAGE POINTER
; 364	;	LOOPS. INSTRUCTIONS EXECUTED FROM THE CONSOLE WILL NOT WORK.
; 365	;	PI INSTRUCTIONS GET A RESTRICTION TO NOT GET INDIRECT PAGE POINTERS
; 366	;	IN THEIR PAGING CHAIN AS DO EXAMINES AND DEPOSITS AND BYTE TRANSFERS.
; 367	;211	CHANGE THE TEST FOR INDIRECT POINTERS TO NOT HAPPEN ON SECTION
; 368	;	POINTERS AND JUST ON INDIRECT PAGE POINTERS. AT LDIND:+1 AND LDIMM:+2
; 369	;210	MAKE ALL AC+# MICROINSTRUCTIONS HAVE THE # FIELD THE SAME IN THE
; 370	;	PREVIOUS MICROINSTRUCTION TO SOLVE A TIMONG GLITCH IN THE HARDWARE.
; 371	;	MAKE EXCHANG MARK AND DESTINATION POINTERS UUO IF THEY DO NOT
; 372	;	HAVE BYTE POINTERS OF EQUAL LENGTH. CHANGES PERVASIVE IN EIS ALSO IN PF
; 373	;	RECOVERY IN IO.
; 374	;	MAKE THE LOAD OF AN INDIRECT POINTER CLEAR PI CYCLE IF SET.
; 375	;	THIS MEANS THAT THE MONITOR CANNOT USE KERNAL CYCLE, INSTR ABORT
; 376	;	INH PC+1 OR HALT IN A PI CYCLE IF AN INDIRECT POINTER CAN
; 377	;	BE A PART OF THE REFILL. ALSO NOTE THE POSSIBILITY OF GETTING AN
; 378	;	INTERUPT BEFOR THE PI INSTRUCTION COMPLETES. (NEVER CONTINUES PI
; 379	;	INSTRUCTION) CHANGES AT LDIND.
; 380	;207	CHANGE SBUS DIAG CODE FOR MOS PUT IT IN MOS CONDITIONAL /MOS=1
; 381	;	IF ON SBUS DIAG TRIES AT LEAST 8 TIMES TO GET A RESPONSE
; 382	;	OTHER THAN -1 IF IT GOT -1 ALL THOSE TIMES THE MICROCODE
; 383	;	GIVES UP AND RETURNS 0
; 384	;206	FINAL FIXES TO PUSHM AND POPM
; 385	;205	FIX BUG IN INDEX CALCULATION OF E1 FOR EXTENDED ADDRESSING.
; 386	;	INDEXING REQUIRED THAT AN AREAD BE PERFORMED IN ORDER TO LOAD
; 387	;	THE AR WITH A CORRECT FINAL RESULT. THE EFFECTIVE ADDRESS CALCULATION
; 388	;	AROUND EXTLA: GOT A NEW MACRO ADDED FOR INDEXING THAT DOES THE AREAD.
; 389	;	ABSOLUTE LOCATIONS IN THE RANGE 3040 GET USED AS TARGETS FOR THIS
; 390	;	AREAD THEN THE CODE REJOINS THE OLD CODE AT EXT2: 
; 391	;	THE AREAD WAS NECESSARY FOR THE HARDWARE MAGIC TO LOAD PARTS OF THE
; 392	;	AR DEPENDING ON THE INDEX REGISTER AND OTHER EXTENDED ADRESSING
; 393	;	PARAMETERS.
; 394	;204	ADD AUTOMATIC VERSION NUMBER
; 395	;	ADD CODE TO DO SBUS DIAG TESTING REQUIRED BY MOS
; 396	;203	PUT THE BLKO PAG, CHANGE IN 201 IN A KLPAGING CONDITIONAL
; 397	;	KIPAGING GETS TANGLED IN AR PARITY ERRORS AND IN GENERAL DOES
; 398	;	THE WRONG THINGS
; 399	;202	TURN OFF IMULI OPTIMIZATION IT GETS THE SIGN BIT AND THE OVERFLOW
; 400	;	FOULED UP (TURNED OFF FOR MODEL B ONLY WAS OFF IN MODEL A)
; 401	;201	CHANGE BLKO PAG, TO INVALIDATE ONLY ONE ENTRY BY CLEARING IT
; 402	;	CHANGES AT PAGBO PAGBO+1 AND CLRPT+3 CLRPT+3 GETS SETUP THAT USED
; 403	;	TO BE AT PAGBO+1, PAGBO+1 NOW CLEARS ENTRY AND QUITS
; 404	;	KLPAGE ERROR CHECK FOR TOPS 10 MODEL A TO CAUSE ERROR
; 405	;	IF SWITCH SETTINGS ARE IN CONFLICT DIDDLED
; 406	;200	CHANGE ALL EXEC REF TRACKS FEATURES BACK TO PHYS REF
; 407	;	ON SUSPICION THAT PAGE FAULTS ARE NOT HANDLED PROPERLY
; 408	;	MAKE NON TRACKS INSTR STAT FEATURES GET FOUR PHYSICAL
; 409	;	PAGE NUMBERS FROM FIRST FOUR LOCATIONS IN THE PAGE PRESENTED
; 410	;	IN THE DATAO PI, THE CODE ALSO USES THAT PAGE FIRST
; 411	;	LOCATION TO PUT THE INITIAL JUNK INTO ON STARTUP
; 412	;177	FIX SOME BUGS IN OPCODE TIMING CODE AT OPTM0: AND BEYOND
; 413	;176	ADD TO THE TIME COUNTING CODE CODE THAT COUNTS FREQUENCY
; 414	;	OF EACH OPCODE IN PAGE+2 AND PAGE+3
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 1-7
; EDHIS.MIC[4,30]	13:59 4-Feb-85			REVISION HISTORY					

; 415	;175	FIX TIME COUNTING CODE TO ACOUNT FOR EACH OPCODE IN THE
; 416	;	USER OR EXEC MODE IT WAS SEEN IN, EDGE COUNTS WERE DONE IN
; 417	;	WRONG MODE CHANGES UNDER OP.TIME CONDITONALS (PERVASIVE)
; 418	;174	CHANGE TRACKS AND TIME COUNTING TO USE EXEC VIRTUAL SPACE
; 419	;	INSTEAD OF PHYSICAL SPACE
; 420	;173	SEPERATE OUT THE DISMISS AT 626: BECAUSE OF SUSPECTED BUG
; 421	;172	THE FACT THAT XJEN DISMISSES BEFORE READING NEW PC WORDS CAUSES
; 422	;	A PROBLEM FOR TOPS 20. REHASH THE CODE AT 600: TO 637: TO MAKE
; 423	;	XJEN READ THE TWO WORDS FIRST AND THEN DISMISS.
; 424	;171	CAUSE IO PAGE FAIL FIX IN 170 TO SHIFT AT END GETTING CORRECT
; 425	;	PAGE FAIL WORD CHANGE AT IOPGF:
; 426	;170	MAKE CLRFPD: GO DIRECT TO FINI: INSTEAD OF THROUGH NOP: THIS WAS
; 427	;	COSTING 2 TICS IN BYTE INSTRUCTIONS
; 428	;	CHANGE IO PAGE FAIL TO SAVE A VIRTUAL ADDRESS IN THE AC BLOCK 7
; 429	;	LOCATION 2 INSTEAD OF THE DATA THAT WAS ON THE EBUS CHANGES AT
; 430	;	PGF4:+1 AND IOPGF:
; 431	;167	CHANGE DEFAULT ON ADB MIXER SELECTS. NO DEFAULT NOW SUBFIELD U23
; 432	;	IS DEFAULTED TO 1 TO AVOID SELECTING FM AND NEEDING TO WAIT FOR PARITY.
; 433	;	THIS LEAVES THE OTHER BIT OF THE FIELD AVAILABLE FOR PARITY
; 434	;	EPT MOVED TO 540 USING SWITCH IN KLX,KLL (KLA,KLB NOW DEFUNCT)
; 435	;166	CHANGE FIELD DEFINITION FORMAT CHANGE THE WAY THE OPTIONS FIELD
; 436	;	GETS ITS VALUES ASSIGNED. EACH BIT GETS A FIELD DEFINITION.
; 437	;165	BUG IN 161 TO 164 WAS MISSING AC0 AT POP2: PARITY BIT WAS PUT THERE
; 438	;	IN THE NEWER MICROCODES
; 439	;	INSTALL MANY THINGS TO MAKE WORD STRING MOVES WORK START AT
; 440	;	MOVWD1 AND UNTILL BMVWD1 ALSO ASSORTED MACROS ARE ADDED
; 441	;	THESE ARE INSTALLED IN A SEPERATED EIS FILE (WDEIS) FOR THE MOST PART
; 442	;	THERE ARE SOME NEW MACROS AND THE CLEAN+17 LOCATION IS USED FOR
; 443	;	THIS CASE UNDER MODEL B CONDITIONAL INTERRUPTS DO NOT WORK YET
; 444	;	IN THIS CODE BUT ALL DATA TRANSFERS ARE CORRECT. INTERRUPTS ARE
; 445	;	TAKEN SO SUSPECT THE PROBLEM IS IN THE CLEANUP CODE.
; 446	;164	LEAVE IN ONLY MAP FIX
; 447	;163	TAKE OUT MAP FIX LEAVING XHLLI IN AND JRSTF IN
; 448	;162	PUT XHLLI BACK IN TAKE OUT JRSTF ONLY IN SEC 0 CODE
; 449	;161	XHLLI OUT TO DEBUG ADD RSTF0: TO MAKE TEST FOR JRSTF IN NON
; 450	;	0 SECTIONS TEST IN ALL CASES
; 451	;157	INSTALL XHLLI MAKE JRSTF UUO ON NON ZERO SECTIONS
; 452	;	ALSO MAKE MAP DOING A REFILL PAGE FAIL RIGHT THIS MEANS THAT AFTER
; 453	;	CLEAN IT CANNOT DO ANYTHING INTERESTING IF AN INTERRUPT IS PENDING
; 454	;	CHANGES AT MAP2:
; 455	;156	REINSERT A SKP INTRPT IN THE PAGE FAULT HANDLER TO HAVE INDIRECT
; 456	;	POINTER CHAINS INTERRUPTABLE. AT PGRF6:+6
; 457	;155	ABORTIVE MAP FIX FIX REMOVED PROBLEM MUST BE FIXED IN HARDWARE.
; 458	;154	ADD TESTS FOR AC'S IN PHYSICAL REFERENCES FOR EXAMINES AND DEPOSITS
; 459	;	PHYS REFS GO TO MEMORY, NOT AC'S AFTER PROBLEM SHEET 1675
; 460	;	CHANGES AT PILD+3 PIFET+2 PSTOR PHYS1 PHYS2 PHYS3
; 461	;	ADD CHANGES IN TRACKS TO MAKE MODEL A WORK AT TRK2+2 AND +3
; 462	;153	ADD SPECIAL CODE FOR PXCT OF BLT THIS HOPEFULLY CAN GO AWAY
; 463	;	WHEN THE EXTENDED ADDRESSING MONITOR DOES NOT USE PXCT ANYMORE
; 464	;	IT IS UNDER .IF/BLT.PXCT CONDITIONAL AND COSTS 12 WORDS
; 465	;152	CHANGE WHAT BLT DOES TO MATCH THE SPEC SR_BLT(XXX) IS CHANGED TO
; 466	;	NOT FORCE GLOBAL ADDRESSING THE LOAD VMA(EA)_ARX+BR AND
; 467	;	STORE VMA(EA)_ARX MACROS ARE ADDED TO FORCE THE GLOBAL/LOCAL PARAMETERS
; 468	;	TO BE THE SAME AS THOSE OF THE EFFECTIVE ADDRESS
; 469	;151	PUT THE EPT AND UPT AT 540 UNDER SWITCH CONTROL .IF/EPT540
; 470	;150	VERSION NUMBER BACKED UP TO PRESERVE SPACE IN VERSION NUMBER FIELD
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 1-8
; EDHIS.MIC[4,30]	13:59 4-Feb-85			REVISION HISTORY					

; 471	;304	EXTEND 0 WOULD GET A JUMP TO AN UNUSED MICROLOCATION IN MODEL.B
; 472	;	ONLY THIS WAS BECAUSE LOCATION 2002: IN MODEL.A SHOULD BE AT 3002:
; 473	;	IN MODEL.B 3002: AND 3003: PUT IN WHERE 2002: AND 2003: ARE UNDER
; 474	;	CONDITIONALS.
; 475	;303	CHANGE THE NUMBER FIELD OF THE SR_BLT(XXX) MACROS TO GIVE THE
; 476	;	BIT 0 OFF ALL THE TIME. THIS GIVES BLT MORE THE FORM OF THE OTHER
; 477	;	EXTENDED ADDRESSING STUFF IN HOW IT REFERS TO THE SHADOW AC'S.
; 478	;	IT IS STILL BELIEVED TO BE BROKEN BUT IS BETTER THAN IT WAS.
; 479	;302	ADD LONGER ADDRESS CONSTRAINTS FOR THE NEW MICROASSEMBLER. EVERY
; 480	;	LOCATION THAT THE DISPATCH RAM CAN JUMP TO IS EFFECTED. THE
; 481	;	CONSTRAINTS THATUSED TO LOOK LIKE =00**** MUST NOW LOOK LIKE
; 482	;	=0****00**** THIS IS BECAUSE THE MODEL B MACHINE CAN AND DID
; 483	;	REALLY SET THAT BIT. THE CHANGE MAKES THE MICROCODE INCOMPATIBLE
; 484	;	WITH THE OLD ASSEMBLER.
; 485	;301	HALT IS CLEARING THE RUN FLOP WITH HARDWARE MUST CHECK FOR
; 486	;	KERNAL MODE BEFOR THE HALT MACRO SO USER IOT MODE WILL
; 487	;	NOT BE ABLE TO HALT. THIS TAKES ONE MICROWORD AT 1017:
; 488	;	THE SENSE OF THE SKIP IS REVERSED AGAIN SO 1016: IS BACK TO
; 489	;	BEING THE UUO AND CHALT: IS NOW A SEPERATE WORD AFTER 1017:.
; 490	;300	REPLACE HALT CODE AGAIN BUT THIS TIME GET THE SENSE OF THE
; 491	;	SKIP RIGHT BY SWAPPING THE CONTENTS OF LOCATIONS 1016: AND 1017:
; 492	;	PUT THE 1: ADDRESS CONSTRAINT ON CONT:.
; 493	;277	PUT HALT BACK THE WAY IT WAS SKP USER HAS THE INVERSE SKIP SENSE
; 494	;	AND HENCE DOES THE WRONG THING. HALT TO BE FIXED LATER.
; 495	;276	YET ANOTHER TRY AT THE BLKO PROBLEM BLK1: SHOULD HAVE HAD A
; 496	;	J/BLK2.
; 497	;275	THE LONG PC CHANGES HAD XSFM1: BEFOR THE ADDRESS CONSTRAINT THUS
; 498	;	GIVEING THE WRONG ADDRESS. THE =0 IS PUT BEFOR THE LABEL.
; 499	;274	FIX THE DIAG.INST CONDITIONALS TO BEHAVE PROPERLY WITH THE
; 500	;	CONSTRAINTS OF DRAM LOCATIONS MAP DIED BECAUSE IT NEVER WAS
; 501	;	REACHED OUT OF A DISPATCH.
; 502	;273	INSERT THE DIAG.INST FEATURE FOR THE DIAGNOSTICS PEOPLE.
; 503	;	CHANGES AT DCODE 104:, 106: AND AT XCT: SHOULD NOT EFFECT OTHER
; 504	;	ASSEMBLIES.
; 505	;272	THE FIX TO THE GARBAGE IN THE LEFT HALF OF VMA IN 265 FORGOT TO
; 506	;	LOAD THE VMA IN BLK3:+1 PUT THAT IN. ALSO ON JUD'S RECOMENDATION
; 507	;	PUT A COPY OF THE NOP MICROINSTRUCTION AFTER CLRFPD: TO MAKE
; 508	;	ENOUGH TIME IN THE SKIP CASE. IT SEEMED TO WORK WITHOUT THIS
; 509	;	AND IF SPACE GETS TIGHT IT SOULD BE REMOVED.
; 510	;271	FIX IN 267 PGF4:+4 DOES NOT WORK, CANNOT PUT VMA_# THERE. POSSIBLY BECAUSE
; 511	;	VMA_# CONFLICTS IN SOME ESOTERIC WAY WITH STORE? THAT CHANGE
; 512	;	IS TAKEN OUT AND AT PGF1 THE VMA IS GIVEN 500 OR 501. THIS IS SLIGHTLY
; 513	;	LESS DESIREABLE AND FURTHER EFFORT COULD BE SPENT IN THE UCODE TO
; 514	;	MAKE PAGE FAILS LESS UNWEILDY FOR THE SOFTWARE ROUTINE THAT CONVERTS
; 515	;	THEM TO MODEL B FORM.
; 516	;270	CHANGE HALT TO CHECK FOR USER MODE INSTEAD OF IO LEGAL. A JOB
; 517	;	IN USER IOT SHOULD NOT BE ABLE TO HALT THE MACHINE.
; 518	;267	ADD NEW CONDITIONAL SHIFT.MUUO TO PROVIDE THE SHIFTED DOWN MUUO
; 519	;	DATA BLOCKS MORE SIMILAR TO THE XADDR TYPES. CONDITIONAL IS USED
; 520	;	AT 1003: AND PGF4:+4 TO PROVIDE A DIFFERENT STARTING ADDRESS.
; 521	;266	FIX PILD+3 TO LOAD THE VMA AT THE SAME TIME THUS ENABLING
; 522	;	THE MODEL HACK FIX TO LOAD THE LONG VMA.
; 523	;265	HAIR UP THE ALREADY HAIRY BLKXX CODE TO CLOBBER THE LEFT HALF OF AR
; 524	;	BEFOR USING IT AS AN ADDRESS. CLOBBERED ARL AT BLK2 AND LOADED
; 525	;	VMA AT BLK3.
; 526	;264	ADD J/CLRFPD AT BFIN TO MAKE IT THE SAME AS IT WAS. BFIN GOT
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 1-9
; EDHIS.MIC[4,30]	13:59 4-Feb-85			REVISION HISTORY					

; 527	;	MOVED TO A DIFFERENT PLACE IN THE LAST EDIT AND THIS J FIELD
; 528	;	WAS NOT FIXED.
; 529	;263	ADD THE MIT FIXES. IOTEND AND THE BLK1 TO BLK4 GROUP ARE CHANGED
; 530	;	EXTENSIVELY. CLRFPD IS PUT JUST BEFORE FINI CONSTRAINT ON IOFET
; 531	;	IS CHANGED.
; 532	;	ADD THE LONG PC FORMAT UNDER A NEW CONDITIONAL LONG.PC THE
; 533	;	CONDITIONAL IS TURNED ON BY XADDR. CONDITIONALS ARE ADDED TO THE
; 534	;	LONG PC CODE TO MAKE IT SMALLER WHEN ONLY SECTION 0 IS POSSIBLE.
; 535	;	ADD COMMENTS TO THE MICROCODE OPTIONS FIELD.
; 536	;	RESTORE SXCT CODE FROM VERSION 131. TO BE USED ONLY IN MODEL A
; 537	;	NON KLPAGING CODE.
; 538	;262	PUT WORD AT INDR1+1 UNDER SXCT CONDITIONAL SO WHEN SXCT IS OFF WE
; 539	;	GET AN ADDITIONAL SAVINGS OF ONE WORD.
; 540	;261	ADD PHYS REFS AT PGRF6+4 AND PIDISP+4 TO MAKE MODEL.A LOAD A LONG
; 541	;	VMA. PART OF THIS CODE IS NOT UNDER CONDITIONAL BECAUSE IT SHOULD NOT MATTER
; 542	;	TO A MODEL.B MACHINE. PIDISP+4 ALSO GETS THE LOAD OF THE SAME DATA
; 543	;	REPEATED SO THE PHYS REF HAS SOMETHING TO WORK ON.
; 544	;	FLUSH THE NOW USELESS CODE AT CHALT TO GENERATE THE LD AR.PHYS
; 545	;	CONSTANTS.
; 546	;	CURRENTLY THERE IS SORT OF A BUG IN THAT THE SBR AND THE CBR
; 547	;	CAN NOT BE ABOVE 256K IN A MODEL.A MACHINE. THIS DOES NOT BOTHER
; 548	;	THE CURRENT MONITORS AT ALL IN THAT THESE TABLES ARE IN VERY LOW CORE.
; 549	;	IF THAT CHANGES THE LOCATIONS SECIMM+3 SECIMM+7, LDIND, PGRF5, LDSHR
; 550	;	AND LDPT1+1 MUST ALL GET FIXED UP. THE GENERAL FIX IS TO GET A PHYS REF
; 551	;	IN THE MICROINSTRUCTION THAT LOADS THE VMA. THIS CAN BE DONE BY
; 552	;	POSTPONING THE LOAD OF THE VMA ONE MICROINSTRUCTION IN ALL OF THESE
; 553	;	PLACES, BUT, SINCE THAT CAUSES A PERFORMANCE DEGRADATION IT WAS NOT
; 554	;	DONE.
; 555	;260	DIVERGANT CHANGES TO MAKE KLPAGING PHYS REFS THE OLD WAY
; 556	;	CAUSE ALL CASES OF VMA_XXX+LD AR.PHYS TO GO BACK TO THE 
; 557	;	OLD PHYS REF WAY
; 558	;257	IN MODEL B MACHINES AT LDPT+1 THE VMA IS GETTING GARBAGE IN THE
; 559	;	LEFT HALF BECAUSE IT ADDED IN JUNK THAT WAS IN AR LEFT. FIX IS TO
; 560	;	CLEAR ARL AFTER LDPT AND TO DO THE SHUFFLE PERFORMED THERE ONE
; 561	;	MICROINSTRUCTION LATER.
; 562	;******	A HACK FIX IS USED HERE THAT TAKES TWO WORDS. THIS WAS DONE BECAUSE
; 563	;	OF EXTREEM TIME PRESSURE TO DEBUG >256K MODEL B. THERE OUGHT TO BE
; 564	;	A WAY TO REDUCE THIS FIX TO ONLY ONE WORD IN SPACE AND TIME, OR
; 565	;	EVEN LESS.
; 566	;256	EDIT JUMPED TO RANDOMNESS WITH AN EXTRA RETURN. THIS HAPPENED
; 567	;	BECAUSE THERE WAS NO CALL AT EDSFLT IN THE MODEL B NON XADDR CODE
; 568	;	ADDED CALL TO EDSFLT.
; 569	;255	SAVE EDIT FROM GETTING AN EXTRA STORE CYCLE AT EDSSIG BY SENDING
; 570	;	IT ALWAYS TO THE EDFLT1 LOCATION INSTEAD OF EDFLT THIS ONLY
; 571	;	CHANGES WHAT HAPPENS IN MODEL B NON XADDR BECAUSE IN MODEL A
; 572	;	EDFLT AND EDFLT1 ARE THE SAME LOCATION ANYWAY
; 573	;254	CAUSE THE A INDRCT CHANGE IN 253 TO BE ONLY FOR NON EXTENDED
; 574	;	ADDRESSING MACHINES. THIS THROWS DOUBT ON THE WORD SAVINGS
; 575	;	THAT MIGHT HAVE BEEN POSSIBLE
; 576	;253	CHANGE A INDRCT TO LOAD BOTH THE AR AND ARX, IN THE EXTENDED
; 577	;	INSTRUCTION SET THIS HAPPENED TO BE DEPENDED ON AT EXT2+2 AND
; 578	;	EXT2+3. THE DEFINITION OF A IND IN EA CALC/ WAS FIXED TO
; 579	;	LOAD THE AR AND THE ARX
; 580	;	I THINK THIS PERMITS THE SAVINGS OF AN EXTRA WORD AND SOME
; 581	;	TIME ON ALL INDIRECTS. CHECK OUT FLUSHING INDR1 AND MAKING INDRCT
; 582	;	DO THE DISPATCH AND GO TO COMPEA
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 1-10
; EDHIS.MIC[4,30]	13:59 4-Feb-85			REVISION HISTORY					

; 583	;	  FORCE ADB TO GENERATE AR*4 AS DEFAULT THIS DISABLES PARITY
; 584	;	CHECKING ON THE FM WHEN IT IS NOT BEING READ FIXED IN
; 585	;	DEFINITION OF ADB THIS WILL ALSO SPEED UP THE MACHINE BY SOME
; 586	;	BECAUSE THE ADB FIELD CAN NO LONGER FORCE 3 TICS WITHOUT REALLY
; 587	;	NEEDING THAT LONG
; 588	;252	SAVE A WORD AT IOPGF+1 BY MAKING IT PILD+3 THIS ADDS THE SET
; 589	;	ACCOUNT ENABLE TO AN UNDEFINED CASE.
; 590	;251	TURNING ON PAGING CAUSED A HANG THIS WAS BECAUSE OF A MISIMPLIMENTED
; 591	;	FIX IN 250. THE ATTEMPT TO PUT THAT FIX IN NO SPACE FAILED AND IT TOOK
; 592	;	ONE WORD. AT LDPT+1 ADD BR/AR AT GTCST1 RECOVER THE AR FROM THE BR
; 593	;	THIS SEEMS LIKE IT SHOULD BE ABLE TO BE BUMMED BUT I CANNOT
; 594	;	FIGURE OUT HOW
; 595	;	ALSO FIX A PLACE WHERE A PHYS REF WAS LEFT IN THE MODEL A CODE
; 596	;	AT PGRF6+4 MODEL B CONDITIONAL IS AS IT WAS MODEL A IS NEW TO USE
; 597	;	LD AR.PHYS MECHANISM
; 598	;250	LOADING HIGH ORDER GARBAGE TO THE VMA WITH THE FIX FOR
; 599	;	>256K CAUSES FUNNY THINGS TO HAPPEN. BITS GET CLOBBERED
; 600	;	WITH AR0-8_SCAD 14 LINES AFTER SECIMM. ACTUALLY IS MORE
; 601	;	HAIR BECAUSE OF CONFLICTING FIELDS. CODE ABOVE AND BELOW
; 602	;	THAT GOT REARRANGED TO SIMPLER MODEL A AND MODEL B CONDITIONALS
; 603	;	SINCE NOW ALL LINES ARE DIFFERENT. SHUFFLING OF FE IS DONE
; 604	;	TO PROVIDE ROOM FOR A CONSTANT ON THE CORRECT SIDE OF THE SCAD
; 605	;	AT LDPT A SIMILAR
; 606	;	RECODING IS NEEDED. 4 LINES OF CODE ARE REDONE IN MODEL
; 607	;	A CONDITIONAL AND CONDITIONALS ARE RESHUFFLED TO HAVE
; 608	;	SIMPLER FORMAT
; 609	;	NEW MACROS ARE ADDED GEN AR0-8, GEN FE AND AR0-8
; 610	;	VMA_AR+LD AR.PHYS AND ITS FRIENDS ARE TAKEN OUT OF KLPAGING
; 611	;	CONDITIONAL THEY ARE USED TO DO EXAMINES AND DEPOSITS NOW
; 612	;247	FIX ST AR.PHYS TO GIVE BIT 4 INSTEAD OF BIT 5 AT CHALT
; 613	;	AT PSTORE CHECK FOR AC REF AND IF SO WRITE FM MUST DO THIS
; 614	;	BECAUSE LOAD AD FUNC DOES NOT SET MCL STORE AR
; 615	;246	FIX MUUO, IN EXTENDED ADDRESSING, TO GET NEW PC BEFORE CLOBBERING
; 616	;	THE USER AND PUBLIC FLAGS THAT TELL WHERE TO GET IT.  FIX CONDITIONAL
; 617	;	ASSEMBLY AT INDRCT TO DO EA TYPE DISP IN MODEL A, NOT MODEL B.
; 618	;245	ADDITIONAL FIXES FOR THE 256K PROBLEM, TO MAKE EXAMINE AND
; 619	;	DEPOSIT WORK.  CHANGES AT CHALT TO CREATE CONSTANT "ST AR.PHYS",
; 620	;	AND EXTENSIVELY NEAR PICYC1, PIDATI, AND PIDATO.  CHANGES ARE ALL
; 621	;	UNDER MODEL B CONDITIONAL, BECAUSE MODEL B HARDWARE WORKS OK, AND
; 622	;	THE FIX IS REGARDED AS CROCKISH.
; 623	;244	WAIT FOR COMPLETION OF INDIRECT REFERENCE AT BYTEI+1 AND EXTI+1
; 624	;	EVEN THOUGH INTERRUPT REQUEST HAS BEEN SEEN, SO AS NOT TO CONFUSE MBOX.
; 625	;243	VARIOUS FIXES TO MAKE THESE SOURCES WITH MODEL.B SWITCH OFF
; 626	;	EQUIVALENT TO MODEL A SOURCES, SO WE CAN DISCARD MODEL A SOURCES
; 627	;	THE FIXES ARE:
; 628	;		1) SWITCH SNORM.OPT, TO SAVE SPACE IN SINGLE PRECISION
; 629	;		FLOATING NORMALIZATION.
; 630	;		2) CREATION OF LD AR.PHYS MAGIC CONSTANT, TO SOLVE HARDWARE
; 631	;		PROBLEMS GENERATING ADDRESSES ABOVE 256K.
; 632	;242	FIX AT SECPTR+1 TO PRESERVE AR LEFT UNTIL WE CAN CHECK
; 633	;	FOR BITS 12-17 NON ZERO CORRECT ADDRESS CONSTRAINTS AT
; 634	;	SECIMM+1 & +2 TO GET BRANCHING RIGHT FOR SHARED AND INDIRECT
; 635	;	SECTION POINTERS.  FIX AT LDIMM+1 TO CLEAR LH OF AR BEFORE
; 636	;	LOADING VMA WITH SPT ADDRESS, TO PREVENT PAGE FAULT ON SPT
; 637	;	REFERENCE.
; 638	;241	MORE FIXES AT START: AND NEWPC:, FOR SAME PROBLEM AS 240.
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 1-11
; EDHIS.MIC[4,30]	13:59 4-Feb-85			REVISION HISTORY					

; 639	;	MUST LOAD FLAGS AND CLEAR VMAX, THEN LOAD VMA INTO PC TO CLEAR
; 640	;	PCX, THEN RELOAD VMA TO GET EFFECT OF NEW FLAGS AND CLEARED
; 641	;	PCX.  (MODEL A ONLY).
; 642	;240	FIXES AT START: AND NEWPC: TO LOAD 23-BIT ADDRESS RATHER
; 643	;	THAN 30-BIT, SINCE OTHER BITS ARE PC FLAGS.  AT SAME TIME AND
; 644	;	PLACE, FIX MODEL A CODE TO CLEAR PC SECTION NUMBER.
; 645	;237	CHANGE CONDITIONALS AROUND PUSH AND POP CODE FROM XADDR TO
; 646	;	MODEL.B. COULD SIMPLIFY IFNOT XADDR.
; 647	;236	FIX ADDRESS CONSTRAINTS ON USES OF EA MOD DISP IN MODEL
; 648	;	B MACHINE WITH EXTENDED ADDRESSING OFF.  PROBLEMS AT COMPEA,
; 649	;	BFETCH, AND EXT2.
; 650	;235	SLIGHTLY CLEANER FIXES FOR PROBLEMS IN 234 TO AVOID WASTING TIME
; 651	;	AND SPACE.  BYTE READ MACRO NEEDS TO SET VMA/LOAD, AND VMA_VMA
; 652	;	HELD MACRO DOESN'T USE MEM FIELD UNLESS MODEL B AND KL PAGING.
; 653	;	ALSO FIX CONDITIONAL ASSEMBLY STUFF TO AVOID SPURIOUS ERRORS.
; 654	;234	INSTALL FIXES FOR SOME PLACES WHERE MODEL B CODE CAUSES CONFLICT
; 655	;	WITH THE OLD NON KLPAGING NON EXTENDED ADDRESSING CODE
; 656	;	THESE ARE AT BFETCH, PGF3-1, PGF6, EXT1+2
; 657	;233	FIX THE FOLLOWING PROBLEMS:
; 658	;		KL PAGING SHOULD PRODUCE A PAGE FAILURE WHEN BITS
; 659	;		 12-17 OF A PRIVATE SECTION POINTER ARE NON 0
; 660	;		 FIXED AT SECPTR ETC.
; 661	;		EDIT DOES NOT ALLOW INTERUPTS
; 662	;		 FIXED AT EDNXT1 AND AFTER THAT
; 663	;		MAP SHOULD NOT BE LEGAL IN USER MODE
; 664	;		 FIXED AT MAP2 AND CLEAN+15
; 665	;		MOVMI IS SHORTENED BY MAKING IT THE SAME AS MOVEI
; 666	;		 AT DON LEWINES SUGGESTION THIS IS IN DCODE 215
; 667	;232	MERGE THE SECOND ORDER STATISTICS GATHERING CODE WITH THIS
; 668	;	CODE INTENT IS TO KEEP IT HERE
; 669	;231	CHANGE THE LOAD CCA DEFINITION TO REFLECT THE NEW HARDWARE
; 670	;	THIS IS ENABLED WHEN THE MODEL.B ASSEMBLY SWITCH IS ON
; 671	;230	THIS IS THE POINT WHERE MICHAEL NEWMAN TAKES OVER THE MICROCODE
; 672	;	MAINTENCE SEVERAL BUG FIXES GET EDITED INTO 126 AT THIS POINT
; 673	;	TWO SETS OF PARALLEL CODE WILL BE MAINTAINED FOR A WHILE.
; 674	;	FIX THE CMPS PARODY ERROR PROBLEM WHEN ILLEGAL BITS ARE FOUND IN
; 675	;	THE LENGTHS.
; 676	;227	FIX PIBYTE TO GET DTE# CORRECT ON TO-10 TRANSFERS.  FIX MTRREQ
; 677	;	CYCLES TO WAIT FOR STORE TO FINISH BEFORE RE-ENABLING ACCOUNT.
; 678	;	FIX ADJSP OF LONG STACK POINTERS TO FETCH NEXT INSTR.
; 679	;226	FIX EXMD TO LOAD AR, RATHER THAN ARX, WITH MARK POINTER, AS
; 680	;	EXPECTED BY THE HANDLER.  FIX EDIT, SEVERAL PLACES, TO IGNORE
; 681	;	LEFT HALF OF MARK & PATTERN ADDRESSES WHEN PC SECTION IS ZERO.
; 682	;	FIX EDIT TO MAKE EXTENDED REFERENCE FOR PATTERN BYTES.
; 683	;	FIX ADJSP TO BE MEANINGFUL WITH LONG STACK POINTERS
; 684	;225	FIX BYTEA NOT TO CLOBBER FE ON INDIRECTS, FIX EXMD TO BACK
; 685	;	UP VMA AFTER STORING DSTP2 AND BEFORE STORING DSTP.  FIX EDIT TO
; 686	;	COUNT THE WHOLE PATTERN ADDRESS IF PC SECTION NOT ZERO.
; 687	;224	FIX EXTEND ADDRESS CALCULATION TO RECOVER E0 FROM MQ, AND
; 688	;	FIX EXTEND OPCODE TEST TO DISALLOW OPS >20.
; 689	;	FIXES TO HANDLE NEW ENCODING OF AC-OP ON APR BOARD.
; 690	;223	COMPLETE 222.  P HAS TO GO TO SC AS WELL AS AR0-5.  CREATE
; 691	;	SUBROUTINE RESETP TO DO IT.  GET CODE IN SYNC WITH HARDWARE AND
; 692	;	MOST RECENT SPEC FOR MEANING OF PXCT AC BITS IN EXTEND.  THUS
; 693	;	UNDO COMMENT IN 221:  WE SHOULD LOOK AT PXCT B11.  ALSO FIX
; 694	;	EXTEND TO USE CORRECT ENCODING OF BITS 9, 11, AND 12 FOR PXCT
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 1-12
; EDHIS.MIC[4,30]	13:59 4-Feb-85			REVISION HISTORY					

; 695	;	OF STRING OPERATIONS.  FIX DATAI PAG SO IT DOESN'T LOSE THE
; 696	;	PREVIOUS CONTEXT AC BLOCK WHEN LOADING PREVIOUS SECTION #.
; 697	;	INSERT CHANGE CLAIMED FOR EDIT 55, TO INHIBIT INTERRUPT DURING
; 698	;	PI CYCLES.
; 699	;222	FIX BYTE POINTER UPDATE ROUTINES GSRC & IDST IN EIS CODE
; 700	;	TO UPDATE P WHEN INCREMENTING SECOND WORD.  JUST FORGOT TO. TRY
; 701	;	AGAIN TO CONTROL EIS REFERENCES OFF E0, FOR EXTENDED OR NOT.
; 702	;221	COMPLETE FIX OF 220, TO KEEP SR CORRECT THROUGH RELOAD OF IR
; 703	;	IN EXTEND DECODING, AND TO CONTROL SR CORRECTLY FOR XBLT DST
; 704	;	REFERENCES.  (WE WERE LOOKING AT PXCT B11, SHOULD BE B12).
; 705	;220	FIXES SEVERAL PLACES TO USE "EA" IN DRAM A FIELD INSTEAD OF "I",
; 706	;	NOTABLY BLT, WHICH WAS USING WRONG SECTION.  FIX EXTEND TO
; 707	;	CONTROL VMA EXTENDED BEFORE FETCHING EXTEND-OP, SO AS NOT TO
; 708	;	LOOK "UNDER" THE AC'S.  FIX XBLT FOREWARD TO STOP WHEN AC GOES
; 709	;	TO ZERO, NOT -1.  ALSO CONTROL SR BEFORE INITIAL STORE TO GET
; 710	;	CORRECT CONTEXT.
; 711	;217	CODE CHANGES TO MAKE SECOND WORD OF BYTE POINTER WORK RIGHT
; 712	;	WHETHER EFIW OR IFIW, BY CONTROLLING CRY18 OR CRY6.
; 713	;216	RECODE EXTENDED INSTRUCTION SET DECODING & EFFECTIVE ADDRESS
; 714	;	CALCULATION.  FIX UUO CODE TO INCREMENT VMA AFTER STORING PC.
; 715	;	FIX ADJBP TO GET 36 BIT ADDRESS ADJUSTMENT IF B12 SET.
; 716	;215	REARRANGE CONDITIONAL ASSEMBLY DEFAULTS TO BE MORE LOGICAL
; 717	;	INSERT FORM FEEDS AND COMMENTS TO HELP BEAUTIFY THE LISTING.
; 718	;	REWORK THE NEW JRST'S, TO MAKE THEM SMALLER, FASTER, AND TEST
; 719	;	IO LEGAL BEFORE DISMISSING.  PUT IN XBLT.
; 720	;214	MODIFY ADJBP AND UUO'S FOR EXTENDED ADDRESSING. REWORK PARITY
; 721	;	ERROR HANDLING, IN A FRUITLESS ATTEMPT TO MAKE IT SMALLER,
; 722	;	BUT SUCCESSFULLY MAKING IT CLEARER.  FIX ASSEMBLY ERRORS IN EIS
; 723	;	DUE TO AC4 CHANGES, AND ADD CODE TO HANDLE LONG BYTE POINTERS
; 724	;	IN AC'S.  PUT IN CODE TO GIVE PAGE FAIL 24 ON ILLEGAL FORMAT
; 725	;	INDIRECT WORD.
; 726	;213	FIX LDB & DPB TO TEST POINTER BIT 12 ON CALL TO BYTEA.
; 727	;212	MODIFY JSP, JSR TO STORE FULL PC WITHOUT FLAGS IN NON-ZERO SEC
; 728	;	SEPARATE CONDITIONALS FOR "MODEL B" MACHINE FROM THOSE FOR
; 729	;	EXTENDED ADDRESSING MICROCODE.
; 730	;211	REMOVE UNNECESSARY DIDDLING OF VMA USER BIT DURING PAGE REFILL,
; 731	;	AND ELIMINATE SPECIAL CASE FOR MAP INSTRUCTION, WHEN EXTENDED
; 732	;	ADDRESSING HARDWARE EXISTS TO SOLVE THESE PROBLEMS.
; 733	;	FIX SEVERAL CASES OF SIGNS DISP WITH INADEQUATE CONSTRAINT.
; 734	;210	FIX DEFINITION OF "SKP LOCAL AC REF", WHICH CONFUSED "AC
; 735	;	REF" WITH "LOCAL AC REF".
; 736	;207	FIX JRSTF (AND ITS DERIVATIVES) TO LOAD FLAGS INTO AR AFTER
; 737	;	DOING EA MOD DISP, WHICH WOULD OTHERWISE CLOBBER THEM.  FIX
; 738	;	COMPEA CODE TO LET AREAD HARDWARE LOAD AR.  OTHERWISE GET SEC #.
; 739	;206	FIX PCTXT ROUTINE TO GET PREVIOUS CONTEXT SECTION.
; 740	;205	FIX POPJ TO LOAD HALFWORD OR FULLWORD PC ACCORDING TO PC SECT
; 741	;204	FIX CONDITIONALS AROUND LOC 47, WRONG IN 202.  FIX DEFINITION
; 742	;	OF A INDRCT, DOESN'T NEED #07.  FIX STACK INSTRUCTIONS FOR
; 743	;	EXTENDED ADDRESSING.  MUST NOT LOAD VMA FROM FULL AD.
; 744	;203	INCLUDE CODE AT NEXT+2 TO GENERATE ADDRESS MASK (LOW 23 BITS)
; 745	;	AT HALT TIME, AND CODE IN PICYCLE TO USE IT TO GET 23 BIT ADDR
; 746	;	OUT OF IOP FUNCTION WORD.
; 747	;202	MOVE "40+A" LOCATIONS TO "A" UNDER EXTENDED ADDRESSING.  CHANGE
; 748	;	ALL CALL MACROS TO GENERATE CALL BIT INSTEAD OF SPECIAL FUNC'S.
; 749	;201	BEGIN EXTENDED ADDRESSING CHANGES IN EARNEST.  INTEGRATE NEW
; 750	;	EFFECTIVE ADDRESS COMPUTATION CODE, AND REVISE INSTRUCTION
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 1-13
; EDHIS.MIC[4,30]	13:59 4-Feb-85			REVISION HISTORY					

; 751	;	ROUTINES AS NECESSARY.
; 752	;126	FIX STRAC3-2, WHERE COMMA GOT LEFT OFF WHEN IFETCH MOVED
; 753	;125	REMOVE NXT INSTR FROM STAC1, STRAC3, & STAC4, MAKING THEM JUMP
; 754	;	TO FINI INSTEAD.  PROBLEM INVOLVES A RACE IF PAGE FAIL OCCURS
; 755	;	WHILE WRITING FM.  IF FM ADDRESS CHANGES BEFORE COND/FM WRITE
; 756	;	GOES FALSE, APR BOARD MAY GRONK PARITY BIT OF SOME FM LOC'N.
; 757	;	THIS RESULTS IN SOME SOME PATHS FROM FETCH TO NICOND BECOMING
; 758	;	LONGER THAN 6 TICKS, SO THE FETCHES GOT SHUFFLED IN SOME PLACES.
; 759	;	MICROCODE PATCH ELIMINATES MOST PROBABLE CAUSE, WHICH IS PAGE
; 760	;	FAIL AT NICOND TIME WHILE WRITING AC OTHER THAN 0.  IT DOES NOT
; 761	;	TAKE CARE OF THE POSSIBILITY THAT COND/FM WRITE WILL GLITCH AT
; 762	;	INSTR 1777 TIME.
; 763	;124	FIXES IN SEVERAL PLACES TO SET AND CLEAR ACCOUNT ENABLE SO AS
; 764	;	TO GET REPEATABLE ACCOUNTING MEASURES OF USEFUL WORK DONE. THE
; 765	;	ENABLE IS NOW CLEARED FOR METER UPDATE CYCLES AND KL PAGE REFILL
; 766	;	CYCLES.  THE HARDWARE ALREADY TAKES CARE OF PI CYCLES.
; 767	;123	CORRECT 122 TO CONSTRAIN LOC "UNHALT", AND TO LOAD ARX FROM AR,
; 768	;	SO AS TO LET "SKP AR EQ" WORK.  PROBLEM AROSE BECAUSE MACRO ALSO
; 769	;	TESTS ARX00-01.  FIX EDIT, WHEN STORING DEST POINTER ON SELECT
; 770	;	SIGNIFICANCE START, TO ELIMINATE AMBIGUITY IN DEST P FIELD.
; 771	;122	SPEC CHANGE TO EXIT FROM HALT LOOP, SO THAT AR0-8=0 WITH AR9-35
; 772	;	NON-ZERO LOADS AR INTO PC TO START PROCESSOR.  THIS IS DIFFERENT
; 773	;	FROM EXECUTING JRST BECAUSE PC FLAGS ARE CLEARED.
; 774	;121	FIX TO 120 TO ALLOW A CYCLE BETWEEN FILLER FROM MEMORY AND
; 775	;	WRITING IT INTO FM (THUS PARITY CAN BE COMPUTED).  ALSO CLEAR
; 776	;	STATE REGISTER IN EDIT BEFORE GETTING NEXT PATTERN BYTE.
; 777	;120	FIX EIS TO TOLERATE PAGE FAIL ON READ OF FILL BYTE IN MOVSRJ
; 778	;	OR B2D CONVERSION.  REQUIRES GETTING FILLER BEFORE STORING DLEN
; 779	;	ALSO INTEGRATE OPCODE COUNTING/TIMING CODE UNDER CONDITIONALS
; 780	;117	FIX PARITY ERROR CODE TO WRITEBACK AR ON RPW ERROR.
; 781	;116	REWRITE OF DDIV, SO THAT THE NO-DIVIDE TEST IS ON THE MOST
; 782	;	SIGNIFICANT HALF OF THE MAGNITUDE OF THE DIVIDEND, RATHER THAN
; 783	;	THE MAGNITUDE OF THE MOST SIGNIFICANT HALF.  IN THE PROCESS,
; 784	;	SAVE TIME AND SPACE.  ALSO PUT IN CONDITIONAL ASSEMBLY VARIABLE
; 785	;	"WRTST" TO INHIBIT WRITE TEST CYCLE FOR INSTRUCTIONS WHICH
; 786	;	APPEAR NOT TO NEED IT, AND THUS TO SPEED THEM UP.
; 787	;115	FIX SBDIAG TO SET MCL REG FUNC TO INHIBIT EBOX MAY BE PAGED.
; 788	;114	RECODE STRING COMPARE TO SAVE SPACE AND TIME.  CHANGE DEFAULTS
; 789	;	FOR KLPAGING TO INCLUDE EIS, EXCLUDE TRACKS FEATURE.  CHANGE
; 790	;	KLPAGING (NEW SPEC) TO KEEP "LOGICALLY WRITABLE" IN SOFTWARE BIT
; 791	;113	RECODE KL PAGING TO ELIMINATE PROBLEM OF WRITING HARDWARE
; 792	;	PAGE TABLE BEFORE CHECKING FOR AGE TRAP, AND THEREFORE LEAVING
; 793	;	THE PAGE ACCESSIBLE AFTER THE TRAP.  THE RECODING ALSO IMPROVES
; 794	;	THE ALGORITHM IN THAT THE HARDWARE ENTRY INCLUDES THE W BIT SET
; 795	;	IF THE CORE TABLES ALLOWED WRITE AND THE CST INDICATES WRITTEN,
; 796	;	EVEN IF THE CURRENT REFERENCE WAS NOT A WRITE.
; 797	;	ALSO FIX CODE WHICH WRITES PT DIR, TO GET WRITE REF BIT FROM
; 798	;	VMA HELD INTO BIT 5 OF SAVED PAGE FAIL WORD.
; 799	;112	FIX PAGE FAIL CODE FOR USE WITH PROB SHEET 1396, WHICH LOADS
; 800	;	PC IF PAGE FAIL OCCURS ON NICOND.  THUS CODE NEEDN'T CHECK FOR
; 801	;	FETCH AT CLEAN, WHICH CAUSED OTHER PROBLEMS ON PARITY ERRORS.
; 802	;	CLEAR FE AND SC IN NXT INSTR MACRO (JUST CLEANLINESS).
; 803	;111	PATCH SEVERAL ROUTINES WITH THE FOLLOWING MACRO --
; 804	;	FETCH WAIT	"MEM/MB WAIT"
; 805	;	TO PREVENT SEQUENCES IN WHICH PAGE FAIL INFO CAN GET LOST
; 806	;	BECAUSE OF LONG TIME FROM REQUEST TO MB WAIT.  THESE PATCHES
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 1-14
; EDHIS.MIC[4,30]	13:59 4-Feb-85			REVISION HISTORY					

; 807	;	SHOULD BE REMOVED AFTER AN ECO HAS BEEN INSTALLED TO FIX.
; 808	;	IN ADDITION, EBUSX SUBROUTINE HAS BEEN MODIFIED TO PREVENT RACE
; 809	;	CONDITION WHEN SETTING UP IO FUNCTION WITH COND/EBUS CTL AND
; 810	;	MAGIC # BIT 4.  MUST NOT CHANGE #5 THROUGH #8 ON NEXT CYCLE.
; 811	;	FIX KLPAGING CODE TO GO BACK TO AREAD ON MAP REF, BECAUSE
; 812	;	MEM/AD FUNC DOESN'T CORRECTLY RESTORE APR REG FUNC.  ALSO MAKE
; 813	;	THE CODE SMARTER ON NO MATCH CONDITION, SO REQUEST DOESN'T HAVE
; 814	;	TO BE RESTARTED AND IMMEDIATELY FAIL AGAIN.
; 815	;110	GIVE UP ON THE OLD STRING COMPARE CODE, INSTALLING MIKE NEWMAN'S
; 816	;	VERSION.  SOMEWHAT SLOWER, BUT GIVES THE RIGHT ANSWERS.
; 817	;	FIX LDB CODE TO WAIT FOR MEM WORD EVEN IF INTERRUPT REQUEST
; 818	;	SEEN, SO AS NOT TO GET CONFUSED WHEN IT ARRIVES OR PAGE FAILS.
; 819	;	ALSO IMPROVE CLRPT ROUTINE USED BY CONO AND DATAO PAG TO START
; 820	;	LOOP WITH VMA CLEARED AND PT WR SELECTION SETUP CORRECTLY.
; 821	;107	FIX STRING COMPARES TO CHECK FOR INTERRUPT.  THIS INVOLVED
; 822	;	CHECKING DURING GSRC ROUTINE, WHICH ELIMINATES NEED FOR CHECK
; 823	;	IN SRCMOD (WHICH CALLS GSRC).  IT ALSO REQUIRED CLEARING SFLGS
; 824	;	AT STARTUP, AND ADJUSTING DLEN UPDATE CODE IN DEST FILL TO GET
; 825	;	VALID LENGTH STORED ON INTERRUPT.
; 826	;106	ELIMINATE RACE IN DECODING OF # FIELD ON MTR BOARD BY HOLDING
; 827	;	LOW 3 BITS THROUGH NEXT MICROINSTRUCTION.
; 828	;	FIX LUUO AND MUUO TO ALLOW INTERRUPTS.
; 829	;	FIX B2D OFFSET TO SIGN-EXTEND E1 AFTER INTERRUPT.  FINISH 105,
; 830	;	TO GET ENTIRE AR LOADED WHILE CLEARING MQ (ARL WAS HOLDING).
; 831	;	FIX KL PAGING TO USE VMA/1 INSTEAD OF VMA/AD WHEN RESTORING VMA
; 832	;	FROM VMA HELD OR COPIES THEREOF.
; 833	;	FIX UFA NOT TO ALWAYS GET UNDERFLOW ON NEGATIVE RESULTS.
; 834	;	SAME FIX AS EDIT 103 OF BREADBOARD.  WHERE DID IT GET LOST?
; 835	;105	FIX KL PAGING AS REVISED BY EDIT 103 TO CORRECTLY RESTORE
; 836	;	BR ON NO-MATCH CONDITION
; 837	;	ANOTHER FIX TO B2D, TO CLEAR MQ ON ENTRY.  BUG INVOLVED GARBAGE
; 838	;	FROM MQ SHIFTING INTO ARX DURING DEVELOPMENT OF POWER OF TEN.
; 839	;104	FIX BINARY TO DECIMAL CONVERSION, WHICH WAS NOT GOING TO CLEAN
; 840	;	ON FINDING AN INTERRUPT, AND ON RESTART WITH FPD SET, WAS NOT
; 841	;	SETTING UP SLEN.  TSK, TSK.  CORRECT CLEANUP FOR DEST FILL IN
; 842	;	MOVSRJ, WHICH WAS INCREMENTING BOTH SLEN AND DLEN, SHOULD
; 843	;	HAVE BEEN NEITHER.  FIX JSR, BROKEN BY EDIT 103.  JUMP MUST BE
; 844	;	TO E+1, NOT E.
; 845	;103	CREATE CONDITIONAL ASSEMBLY FOR EXTENDED ADDRESSING. UNDER IT,
; 846	;	CREATE MEM FIELD DEFINITIONS, SUPPRESS SXCT.
; 847	;	SAVE A WORD IN JSR BY USING JSTAC IN COMMON WITH PUSHJ.
; 848	;	FORCE TIME FIELD IN CASES WHERE ASSEMBLER DEFAULT SCREWS UP.
; 849	;	ADD INTERRUPT TESTS IN KL PAGING CODE TO PREVENT HANGS, AND
; 850	;	REVISE PAGE FAIL WORD TO ELIMINATE THE NEW FAIL CODES.
; 851	;102	ATTEMPT ANOTHER FIX OF MOVSRJ, CVTBDX FILL.  EDIT 71 LOSES
; 852	;	DUE TO INCONSISTENCY -- DLEN UPDATE MUST NOT PRECEED CLEANUP.
; 853	;	CREATE CONDITIONAL ASSEMBLY SWITCHES TO CONTROL EXTENDED
; 854	;	INSTRUCTION SET, DOUBLE INTEGER ARITHMETIC, AND ADJBP.  CHANGE
; 855	;	DEFAULT OF IMULI.OPT, WHICH CAN GET SIGN WRONG ON OVERFLOW.
; 856	;101	FIX METER REQUEST CODE TO "ABORT INSTR" EVEN IF NOT SETTING
; 857	;	PI CYCLE.  THIS SHOULD FIX OCCASIONAL LOSS OF TRAPS PROBLEM.
; 858	;100	FIXES TO KL PAGING CODE TO PREVENT LOADING VMA FROM AD WHILE
; 859	;	REQUESTING PHYSICAL REF.  FIX JSR TO PREVENT FM PARITY STOP
; 860	;	ON STORE TO AC.  FIX 1777 TO FORCE RECIRCULATION OF AR/ARX,
; 861	;	EVEN IF MBOX RESP STILL TRUE.
; 862	;77	FIX DDIV TO GET MQ SHIFTED LEFT ONE PLACE, WITHOUT INTRODUCING
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 1-15
; EDHIS.MIC[4,30]	13:59 4-Feb-85			REVISION HISTORY					

; 863	;	AN EXTRA BIT, AT DDVX1.  THIS INVOLVES INHIBITING ADA TO PREVENT
; 864	;	AD CRY0 FROM COMMING INTO MQ35.
; 865	;76	FIX UFA TO ALLOW AN EBOX CYCLE BETWEEN FETCH AND NICOND WHEN
; 866	;	FRACTION SUM IS ZERO, AT UFA3.
; 867	;75	PUT BACK INSTRUCTION "MBREL" REMOVED BY EDIT 64.  NECESSARY TO
; 868	;	ENSURE THAT EBOX REQUEST FOR FETCH DOESN'T COME UP WHILE
; 869	;	REGISTER FUNCTION IS IN PROGRESS, WHICH WOULD CONFUSE MBOX ON
; 870	;	STARTING THE FETCH.
; 871	;74	CHANGES TO EIS FOR NEW-SPEC AC USAGE.  CHANGES TO KL PAGING FOR
; 872	;	INDIRECT, IMMEDIATE SECTION POINTERS
; 873	;73	FIX JRA TO PREVENT WRITING AC WITH DATA FRESH FROM MEMORY (ALLOW
; 874	;	A CYCLE FOR PARITY CHECK).  FIX DPB CODE TAKE ONLY 3 TICKS ON
; 875	;	RETURN FROM BYTEA, SO THAT CACHE DATA DOESN'T ARRIVE INTO AR
; 876	;	AND ARX UNTIL DPB1, WHEN THE BYTE HAS GOTTEN OUT TO MQ.
; 877	;72	FIX DEFINITION OF SP MEM/UNPAGED TO INHIBIT VMA USER.  FIX
; 878	;	PAGE FAIL CODE TO CHECK FOR VMA FETCH BEFORE LOOKING AT
; 879	;	INTERRUPT REQUEST.  PROBLEM WAS INTERRUPT CONCURRENT WITH
; 880	;	PAGE FAIL ON JRSTF TO USER.  PC FLAGS GOT RESTORED, BUT VMA
; 881	;	NEVER COPIED TO PC BECAUSE PAGE FAIL INHIBITED NICOND, AND
; 882	;	INTERRUPT ABORTED PAGE FAIL HANDLING TO LOAD PC.
; 883	;71	DEFINE FMADR/AC4=6.  FIX MOVFIL ROUTINE TO PUT AWAY UPDATED
; 884	;	LENGTH DIFFERENCE WHEN INTERRUPTED, THUS AVOIDING RANDOMNESS
; 885	;	IN MOVSRJ, CVTBDX. FIX CVTBD CALL TO MOVFIL TO PRESERVE SR.
; 886	;	CHANGE STMAC AND PIDONE FROM "FIN XFER" TO "FIN STORE", BECAUSE
; 887	;	STORE WAS IN PROGRESS, WHICH CAUSED FM WRITE IF AC REF, AND
; 888	;	GOT A PARITY ERROR DUE TO ADB/FM.
; 889	;70	FIX PXCT 4,[POP ...], WHICH DIDN'T GET DEST CONTEXT SET FOR
; 890	;	STORE.  MUST USE SR_100 TO SET IT.
; 891	;67	FIX PROBLEM IN ADJBP BY WHICH BYTES/WORD WAS GETTING LOST
; 892	;	WHEN DIVIDE ROUTINE LOADED REMAINDER INTO BR.  SOLVED BY
; 893	;	SAVING BYTES/WORD IN T1.
; 894	;66	FIX KL PAGING TO RESTORE VMA ON TRAP, SAVE ADDRESS OF POINTER
; 895	;	CAUSING TRAP, AND NOT RESTORE ARX EXCEPT FOR BLT PAGE FAIL.
; 896	;	ALSO SET TIME PARAMETER ON ADB/FM TO ALLOW TIME FOR PARITY
; 897	;	CHECKING OF FM.
; 898	;65	FIX KL PAGING CODE TO DO MBWAIT AFTER DETERMINING THAT PARITY
; 899	;	ERROR HAS NOT OCCURRED, SO AS TO GET CORRECT VMA TO SAVE.
; 900	;	CREATE SYMBOLS FOR KL PAGE FAIL CODES.  PUT CONDITIONAL
; 901	;	ASSEMBLY AROUND IMULI OPTIMIZATION CODE, AND SXCT.  CREATE
; 902	;	SYMBOL "OPTIONS" IN # FIELD FOR MICROCODE OPTIONS.
; 903	;64	MICROCODE FOR KL10 PAGING (PAGE REFILL, MAP INSTR)...
; 904	;	REMOVE UNNECESSARY INSTRUCTION MBREL: FROM SWEEP AND APRBO
; 905	;	COSMETIC CHANGES TO KEEP COMMENTS & MACRO DEFINITIONS FROM
; 906	;	OVERFLOWING LINE OF LISTING, AND INSERTION OF CONDITIONAL
; 907	;	ASSEMBLY CONTROL OF LONG FLOATING POINT INSTRUCTIONS.
; 908	;63	IN MTR REQUEST ROUTINE, DON'T DISMISS WHEN PI CYCLE HASN'T
; 909	;	BEEN SET.
; 910	;62	FIX RDMTR CODE TO PUT 35 IN SC BEFORE GOING TO DMOVEM CODE.
; 911	;61	FIX PIIBP ROUTINE TO USE CALL.M INSTEAD OF SPEC/CALL,
; 912	;	WHICH GETS OVERRIDDEN BY P_P-S... IN MTR REQUEST SERVICE
; 913	;	ROUTINE, DON'T SET PI CYCLE UNLESS REQUEST IS FOR VECTOR.
; 914	;60	FIX DATAO PAG TO DO MB WAIT AFTER STORING EBOX ACCT AND
; 915	;	BEFORE CHANGING VMA.
; 916	;57	RE-CODE USES OF A@, B@ TO USE VMA/1, RATHER THAN VMA/AD,
; 917	;	IN ORDER TO GET CORRECT CONTEXT ON INDIRECT WORD. SEE MCL4
; 918	;56	FIX SECOND PART OF PICYCLE (TAG NEXT:) TO ENSURE THAT
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 1-16
; EDHIS.MIC[4,30]	13:59 4-Feb-85			REVISION HISTORY					

; 919	;	PC+1 INH, KERNEL CYCLE, ETC REMAIN UP DURING 2ND PART.
; 920	;	ALSO CHANGE SPEC/FLAG CTL FOR ECO 1261, WHICH REQUIRES
; 921	;	#07 TO BE OPPOSITE OF #04 TO GENERATE SCD LEAVE USER.
; 922	;55	FIX SPEC INSTR/SET PI CYCLE TO INHIBIT INTERRUPTS
; 923	;	(IN PARTICULAR, METER UPDATE REQUESTS).  MAKE SURE VALID
; 924	;	DATA SAVED ON IO PAGE FAIL AND PARITY ERRORS. REMOVE
; 925	;	BACKWARDS BLT... IT BROKE TOO MANY PROGRAMS.
; 926	;54	FIX OVERFLOW CHECK IN IMULI OPTIMIZATION TO INH CRY 18
; 927	;	UPDATE TO USE CONDITIONAL ASSEMBLY IN MICRO VERS 20.
; 928	;53	FIX T1,T2 PARAMETERS ON BYTE DISP, SIGNS DISP
; 929	;52	CORRECT SHIFT AMOUNT FOR IMULI OPTIMIZATION, AND FIX MACRO
; 930	;	DEFINITIONS FOR SET SR?, WHICH WERE ALWAYS SETTING SR0.
; 931	;51	OPTIMIZE IMULI OF TWO POSITIVE OPERANDS (TO SPEED UP SUBSCRIPT
; 932	;	CALCULATIONS) BY TAKING ONLY 9 MULTIPLY STEPS AND STARTING
; 933	;	NEXT INSTRUCTION FETCH EARLIER.  OPTIMIZATION CAN BE REMOVED
; 934	;	BY COMMENTING OUT TWO INSTRUCTIONS AT IMULI, AND ONE FOLLOWING
; 935	;	IMUL.  ALSO FIX APRBI/UVERS TO KEEP SERIAL # OUT OF LH.
; 936	;50	INTRODUCE SKIP/FETCH AND CODE IN PAGE FAIL RECOVERY TO LOAD
; 937	;	PC FROM VMA IF PAGE FAIL OCCURED ON FETCH, BECAUSE NICOND
; 938	;	CYCLE, WHICH SHOULD HAVE LOADED PC, GETS INHIBITED BY INSTR 1777
; 939	;	ALSO INCLUDE EXTENDED INSTRUCTION SET.
; 940	;47	UNDO XCT CHANGES OF EDIT 46, WHICH BROKE XCT DUE TO INSUFFICIENT
; 941	;	TIME FOR DRAM HOLD BEFORE USING "A READ". ALSO FIX VECTOR
; 942	;	INTERRUPT CODE TO LOOK AT CORRECT BITS FOR CONTROLLER NUMBER.
; 943	;46	FOLLOW-ON TO EDIT 45, SAVING 2 WORDS AND A CYCLE
; 944	;	ALSO MOVE JRST TO 600, JFCL TO 700, UUO'S TO 100X AS PREPARATION
; 945	;	FOR EXTENDED INSTRUCTION SET
; 946	;45	FIX SXCT TO LOOK AT AC FIELD OF SXCT, NOT SUBJECT INSTRUCTION,
; 947	;	WHEN DECIDING WHETHER TO USE BASE-TYPE ADDRESS CALCULATION.
; 948	;44	FIX PAGE FAIL LOGIC TO WORK FOR EITHER PAGE FAIL OR PARITY
; 949	;	ERROR.  EDITS 42 AND 43 BOTH WRONG.  ALSO CORRECT RACE IN
; 950	;	WRITING PERFORMANCE ANALYSIS ENABLES TO PREVENT SPURIOUS COUNTS.
; 951	;43	CORRECT USE OF PF DISP BY EDIT 42.  LOW BITS ARE INVERTED
; 952	;42	FIX BUGS INTRODUCED BY EDIT 40, WHICH MADE FLTR OF 1B0 HANG
; 953	;	TRYING TO NEGATE IT, AND FIX UP EXPONENT CORRECTION ON LONG
; 954	;	SHIFT LEFT.  ALSO PUT IN CODE TO HANDLE PARITY ERROR PAGE
; 955	;	FAILURES, AND SET TIME CONTROLS ON 43-47.
; 956	;41	REWRITE OF VECTOR INTERRUPT PROCESSING TO MAKE DTE VECTORS
; 957	;	GO TO 142+8N, WHERE N IS DTE#.  RH20 GO TO PROGRAMMED ADDRESS
; 958	;	IN EPT, EXTERNAL DEVICES USE EXEC VIRTUAL ADDRESSES.
; 959	;40	IMPROVEMENTS TO FLOATING NORMALIZATION TO MAKE LONG SHIFTS
; 960	;	FASTER, PRIMARILY TO HELP FLTR
; 961	;37	FIX FLOATING DIVIDE SO THAT THE TRUNCATED FORM OF A NEGATIVE
; 962	;	QUOTIENT IS EQUAL TO THE HIGH-ORDER PART OF THE INFINITE-
; 963	;	PRECISION QUOTIENT.  SEE COMMENTS IN THE CODE.  ALSO BUM
; 964	;	A CYCLE OUT OF FLOATING DIVIDE BY STARTING THE NORMALIZE
; 965	;	WHILE MOVING THE QUOTIENT INTO AR.
; 966	;	SEVERAL CHANGES TO MAKE TRACKS FEATURE WORK
; 967	;36	FIX CONO MTR TO PUT DATA ON BOTH HALVES, SO PI CAN SEE PIA
; 968	;35	FIX CONI PI TO READ BACK WRITE EVEN PARITY ENABLES
; 969	;34	FIX BLT USE OF SR, SO NO CORRECTION OF ARX NECESSARY
; 970	;33	FIX PAGE TABLE REFERENCES TO FORCE UNPAGED REF.  FIX TRAP
; 971	;	TO SET PC+1 INHIBIT.
; 972	;32	CORRECT SETTING OF SC FOR SHIFTING METER COUNTERS, TO GET
; 973	;	12 BITS UNUSED AT RIGHT WHEN IT GETS TO CORE.
; 974	;31	RECODE ASH AND ASHC TO SAVE SPACE
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 1-17
; EDHIS.MIC[4,30]	13:59 4-Feb-85			REVISION HISTORY					

; 975	;30	FIX JFFO TO SHIFT AR CORRECTLY AT JFFO2.  BUM ADJSP TO USE
; 976	;	STMAC FOR UPDATING PDL POINTER.
; 977	;27	FIX CONI PAG TO READ EBUS.  CORRECT DEFINITIONS OF MBOX
; 978	;	REGISTER FUNCTIONS, WHICH HAD BITS 0 AND 3 INVERTED.
; 979	;26	FIX DEFINITIONS OF DIAG FUNC CONO MTR AND CONO TIM, WHICH
; 980	;	WERE REVERSED
; 981	;25	FIX DECODING OF PHYSICAL DEVICE NUMBER IN PI FUNCTION CODE
; 982	;	AND RE-CODE JFCL FOR FEWER MICROWORDS
; 983	;24	FIX JFFO TO SHIFT ON FIRST 6-BIT TEST STEP, AND JRSTF TO
; 984	;	KEEP E AND XR DISTINCT.  ALSO SET LOAD-ENABLE BITS IN
; 985	;	DATAI PAG, WORD.
; 986	;23	FIX CONO PI, TO HOLD AR ONTO EBUS THRU REL EBUS, BECAUSE
; 987	;	PI BOARD DELAYS CONO PI TO GET CONO SET EQUIVALENT.
; 988	;22	MORE JFCL FIXES.  MUST USE FLAG CTL/JFCL WHILE CLEARING BITS,
; 989	;	AS WELL AS WHILE TESTING THEM.  BUM A WORD OUT OF JFFO BY
; 990	;	MAKING THE SIXBIT COUNT NEGATIVE.  CHANGES SO SHIFT SUBR
; 991	;	RETURNS 2, BYTEA 1.  FIX SETMB TO STORE BACK AND FETCH.
; 992	;21	RE-WRITE JFCL TO KEEP LOW OPCODE BITS OUT OF AR0-1, BECAUSE
; 993	;	PC00 GETS PROPAGATED LEFT TO ADA -1 AND -2.
; 994	;20	FIX BLT TO LOAD BR WITH SRC-DST ADDR
; 995	;	ALSO SET TIME PARAMETERS ON CONDITIONAL FETCH FUNCTIONS
; 996	;17	CHANGE SWEEP ONE PAGE TO PUT PAGE # IN E, RATHER THAN ADDR.
; 997	;	ALSO CHANGE COND/FM WRITE TO MATCH ECO #1068.
; 998	;16	FIX JUMP FETCH MACRO TO LOAD VMA FROM PC+1 (TEST SATISFIED
; 999	;	OVERRIDES THIS TO HOLD VMA).  ALSO BUM ONE MICROWORD FROM MUUO.
; 1000	;15	INCLUDE PAGE FAIL DISP IN DISP/ FIELD
; 1001	;	ALSO MAKE MUUO STORE PROCESS CONTEXT WORD AT 426, AND SETUP
; 1002	;	PCS FROM PC EXTENSION, CWSX FROM SXCT
; 1003	;14	FIX DEFINITIONS OF SKIP/IO LEGAL, AC#0, SC0, EVEN PAR
; 1004	;	ALSO FIX DATAO PAG, TO SEND LH DATA ON BOTH HALVES OF EBUS
; 1005	;13	ALIGN SETEBR SO CALL TO SHIFT RETURNS CORRECTLY
; 1006	;12	MAKE SURE AD COPIES AR DURING DATAO, CONO, AND CLEAR AR AT
; 1007	;	SET DATAI TIME.
; 1008	;11	FIXES TO CONTINUE CODE SO CONSOLE WORKS, AND CORRECTIONS TO
; 1009	;	PROTECTED DEP/EXAM SO PROTECTION PROTECTS.
; 1010	;10	FIX A READ MACRO TO VMA/PC+1.  AD OVERRIDES UNLESS DRAM A=1
; 1011	;07	RE-WRITE OF PI CYCLE CODE TO RECOGNIZE NEW EBUS SPEC.
; 1012	;06	FIX DEFINITIONS OF SKIPS 40-57 BY COMPLEMENTING 3 LOW ORDER BITS
; 1013	;	FIX MULSUB TO CORRESPOND TO NEW CRA LOGIC
; 1014	;05	FIX EBUS CTL DEFINITIONS TO GET F01 CORRECT.  CORRECT FLAG CTL
; 1015	;	DEFINITIONS TO PREVENT LEAVE USER WHEN NOT WANTED, AND FIX
; 1016	;	JRST/JFCL TO HAVE FLAGS IN AR WHEN NEEDED.
; 1017	;04	FIX RETURNS FROM MULSUB, PUT BETTER COMMENTS ON SNORM CODE,
; 1018	;	IMPROVE SNORM ALGORITHM TO MINIMIZE WORST-CASE TIME.
; 1019	;03	FIX DISPATCH ADDRESS PROBLEMS, MOSTLY JRST/JFCL AND UUO'S.
; 1020	;02	CHANGES PER INSTRUCTION SET REVIEW -- DELETE USE OF BIT12 OF
; 1021	;	BYTE POINTERS, CHANGE BLT TO PUT FINAL SRC,DST ADDRESSES IN AC,
; 1022	;	MAKE TRUNCATE FORM FLOATING POINT REALLY TRUNCATE, ELIMINATE
; 1023	;	LOCAL JSYS SUPPORT, DELETE PXCT OPCODE (XCT W/ NON-ZERO AC IN
; 1024	;	EXEC MODE), LUUO'S GO TO 40/41 OF CURRENT SPACE.
; 1025	;01	UPDATES FOR .TITLE AND .TOC PSEUDO OPS,
; 1026	;	AND VARIOUS CHANGES FOR PROTO HARDWARE
; 1027	;00	CREATION, BASED ON BREADBOARD AS OF EDIT 66
						; 1028	.BIN
						; 1029	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 1
; DEFINE.MIC[4,30]	17:12 9-Aug-84			CONDITIONAL ASSEMBLY VARIABLE DEFINITIONS		

						; 1030	.TOC	"CONDITIONAL ASSEMBLY VARIABLE DEFINITIONS"
; 1031	.NOBIN
; 1032	
; 1033	; [COST ESTIMATES IN BRACKETS INDICATE NUMBER OF ADDITIONAL
; 1034	; MICROINSTRUCTIONS REQUIRED BY TURNING ON THE FEATURE SWITCH]
; 1035	
; 1036	.DEFAULT/TRACKS=0	;1 ENABLES STORING PC AFTER EVERY INSTRUCTION,
; 1037				; & CREATES DATAI/O PI TO READ/SETUP PC BUFFER
; 1038				;ADDRESS. [COST = 21 WDS]
; 1039	
; 1040	.DEFAULT/OP.CNT=0	;1 ENABLES CODE TO BUILD A HISTOGRAM IN CORE
; 1041				; COUNTING USES OF EACH OPCODE IN USER & EXEC
; 1042	
; 1043	.DEFAULT/OP.TIME=0	;1 ENABLES CODE TO ACCUMULATE TIME SPENT BY
; 1044				; EACH OPCODE
; 1045	
; 1046	.DEFAULT/SO.CNT=0	;SECOND ORDER COUNTING IN 128K STARTING AT LOC
; 1047				; 400000 NOT DEBUGED [COST = 28 WDS]
; 1048	
; 1049	.DEFAULT/SO2.CNT=0	;SECOND ORDER COUNTING IN 128K STARTING AT LOC
; 1050				; PRESENTED AT START DOES ONE MORE ADD THAN
; 1051				; SO.CNT AND HENCE AN INSTRUCTION TAKES
; 1052				; 120 NS LONGER THAN SO.CNT [COST = 28 WDS]
; 1053	
; 1054	.DEFAULT/PAGCNT=0	;Enable code to count entries into the PFH and
; 1055				; number of DATAO PAGs with bit 2 set.  [Cost =
; 1056				; 6 words] [327]
; 1057	
; 1058	.DEFAULT/FPLONG=1	;1 ENABLES KA-STYLE DOUBLE PRECISION FLOATING
; 1059				;POINT INSTRUCTIONS: FADL, FSBL, FMPL, FDVL,
; 1060				; UFA, DFN. [COST = 49 WDS]
; 1061	
; 1062	.DEFAULT/MULTI=0	;1 IF MULTIPROCESSOR SYSTEM, TO SUPPRESS CACHE
; 1063				;ON UNPAGED REF'S.  PAGED REF'S ARE UP TO EXEC.
; 1064	
; 1065	.DEFAULT/KLPAGE=0	;1 ENABLES KL-MODE PAGING. [COST = 85 WDS]
; 1066	
; 1067	.DEFAULT/SHIFT.MUUO=0	;ENABLES A DIFFERENT MUUO FORMAT FOR MODEL A
; 1068				;THAT IS SLIGHTLY CLOSER TO THE XADDR FORMAT
; 1069				;EXPECTED TO BE USED IN CONJUNCTION WITH LONG.PC
; 1070				;BUT THEY DO NOT DEPEND ON EACH OTHER
; 1071	
; 1072	.DEFAULT/MODEL.B=0	;1 INDICATES EXTENDED ADDRESSING HARDWARE,
; 1073				;PRIMARILY 2K (RATHER THAN 1280) CONTROL RAM,
; 1074				;NEW MCL, CTL, AND APR BOARDS.
; 1075	
; 1076	.DEFAULT/BLT.PXCT=0	;1ENABLES SPECIAL BLT CODE FOR EXTENDED ADDRESSING
; 1077				;THIS IS SUPPOSED TO GO AWAY IN THE FUTURE
; 1078				;WHEN PXCT OF BLT IS NO LONGER USED BY TOPS-20
; 1079				;THIS SHOULD ONLY BE USED BY KLX XADDR MICROCODE
; 1080				;[COST 12 WORDS]
; 1081	
; 1082		.IF/KLPAGE
;;1083		.IFNOT/MODEL.B
;;1084		.SET/XADDR=0	;CAN'T DO EXTENDED ADDRESSING WITHOUT MODEL B
;;1085		.set/extexp=0	;No room in TOPS20 Model A machine for extended exp.
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 1-1
; DEFINE.MIC[4,30]	17:12 9-Aug-84			CONDITIONAL ASSEMBLY VARIABLE DEFINITIONS		

; 1086	.ENDIF/MODEL.B
; 1087	
;;1088		.IFNOT/KLPAGE
;;1089	.SET/XADDR=0		;CAN'T HAVE EXTENDED ADDRESSING WITHOUT KL PAGE
; 1090		.ENDIF/KLPAGE
; 1091	
; 1092	.DEFAULT/IMULI.OPT=0	;1 ENABLES OPTIMIZATION OF IMULI TO TAKE ONLY
; 1093				;NINE MULTIPLY STEPS [COST = 3 WDS]
; 1094	
; 1095		.IF/MODEL.B	; [COST = 19 WDS]
; 1096	.SET/SXCT=0		;DONT NEED SXCT WITH EXTENDED ADDRESSING
; 1097				;CAN'T DO IT IN MODEL B HARDWARE
; 1098		.ENDIF/MODEL.B
; 1099	.DEFAULT/SXCT=0		;1 ENABLES SPECIAL XCT INSTR, WHICH ALLOWS
; 1100				; DIAGNOSTICS TO GENERATE LARGE ADDRESSES.
; 1101	
; 1102	
; 1103	.DEFAULT/SNORM.OPT=0	;1 ENABLES FASTER NORMALIZATION OF SINGLE-
; 1104				; PRECISION RESULTS WHICH HAVE SEVERE LOSS OF
; 1105				; SIGNIFICANCE [COST = 4 WDS]
; 1106	
;;1107	.IFNOT/MODEL.B
;;1108		.SET/PUSHM=0	;CODE ONLY WORKS FOR MODEL B
; 1109	.ENDIF/MODEL.B
; 1110	
; 1111	.DEFAULT/PUSHM=0	;ENABLES THE PUSHM AND POPM INSTRUCTIONS
; 1112				; [COST = ??? WDS]
; 1113	.DEFAULT/EXTEND=1	;1 ENABLES EXTENDED INSTRUCTION SET
; 1114				; [COST = 290 WDS]
; 1115	
; 1116	.DEFAULT/DBL.INT=1	;1 ENABLES DOUBLE INTEGER INSTRUCTIONS
; 1117				; [COST = 59 WDS]
; 1118	
; 1119	.DEFAULT/ADJBP=1	;1 ENABLES ADJUST BYTE POINTER
; 1120				; [COST = 24 WDS]
; 1121	
; 1122	.DEFAULT/RPW=1		;1 ENABLES READ-PAUSE-WRITE CYCLES FOR
; 1123				;NON-CACHED REFERENCES BY CERTAIN INSTRUCTIONS.
; 1124				; [COST = 0]
; 1125	
; 1126	.DEFAULT/WRTST=0	;1 ENABLES WRITE-TEST CYCLES AT AREAD TIME FOR
; 1127				;INSTRUCTIONS LIKE MOVEM AND SETZM.  [COST = 0]
; 1128	
; 1129	.DEFAULT/BACK.BLT=0	;1 ENABLES BLT TO DECREMENT ADDRESSES ON EACH
; 1130				;STEP IF E < RH(AC).  BREAKS MANY PROGRAMS.
; 1131				; [COST = 9 WDS]
; 1132	
;;1133	.IF/TRACKS		;SETUP CONTROL FOR COMMON CODE
;;1134		.SET/INSTR.STAT=1
; 1135	.ENDIF/TRACKS
; 1136	
;;1137	.IF/OP.CNT
;;1138		.SET/INSTR.STAT=1	;ENABLE COMMON CODE, ERROR IF TRACKS TOO
; 1139	.ENDIF/OP.CNT
; 1140	
;;1141	.IF/OP.TIME
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 1-2
; DEFINE.MIC[4,30]	17:12 9-Aug-84			CONDITIONAL ASSEMBLY VARIABLE DEFINITIONS		

;;1142		.SET/INSTR.STAT=1	;ERROR IF TRACKS OR OP.CNT ALSO SET
; 1143	.ENDIF/OP.TIME
; 1144	
;;1145	.IF/SO.CNT
;;1146		.SET/INSTR.STAT=1
; 1147	.ENDIF/SO.CNT
; 1148	
;;1149	.IF/SO2.CNT
;;1150		.SET/INSTR.STAT=1
; 1151	.ENDIF/SO2.CNT
; 1152	
; 1153	.DEFAULT/INSTR.STAT=0		;IF NO STATISTICS, TURN OFF COMMON CODE
; 1154	
;;1155	.IF/INSTR.STAT
;;1156		.SET/NONSTD=1		;STATISTICS CODE IS NONSTANDARD
;;1157		.SET/TRXDEF=1		;Make sure TRX registers get defined [327]
; 1158	.ENDIF/INSTR.STAT
; 1159	
;;1160	.IF/PAGCNT
;;1161		.SET/NONSTD=1		;All statistics are nonstandard
;;1162		.SET/TRXDEF=1		;We need the TRX registers
; 1163	.ENDIF/PAGCNT
; 1164	
; 1165	.DEFAULT/TRXDEF=0		;Normally no TRX registers needed
; 1166	
; 1167	.DEFAULT/LONG.PC=0		;LONG PC FORMAT [COST 9 WORDS 11 WORDS IF XADDR]
; 1168	
; 1169	.DEFAULT/EPT540=0		;PUT EPT AND UPT SECTION TABLES AT 540 IF ON
; 1170					;  440 IF OFF
; 1171	
; 1172	.DEFAULT/DIAG.INST=0		;UNSUPPORTED DIAGNOSTIC MICROCODE
; 1173	
;;1174	.IF/DIAG.INST
;;1175		.SET/NONSTD=1		;NONSTANDARD MICROCODE
; 1176	.ENDIF/DIAG.INST
; 1177	
; 1178	.DEFAULT/NONSTD=0		;NONSTANDARD MICROCODE IS NORMALLY OFF
; 1179	.DEFAULT/SMP=1			;[216]1 IF SYMMETRIC MULTIPROCESSOR 
; 1180					;SYSTEM.
; 1181					;TO ENABLE RPW ON DPB INSTRUCTION.
; 1182					;[COST=9 WORDS if not XADDR, more if XADDR]
; 1183	.DEFAULT/OWGBP=0		;[264]
; 1184	.DEFAULT/IPA20=0		;[264]
; 1185	.DEFAULT/NOCST=0		;[264]
; 1186	.DEFAULT/CST.WRITE=1		;[314] Enable CST writable bit
; 1187	.DEFAULT/BIG.PT=1		;[333][347] Special code for big page table and Keep bit
; 1188	.DEFAULT/DDT.BUG=0		;[346] If on, enable APRID hack to move bit 23
; 1189	.DEFAULT/GFTCNV=1		;[273] GFLOAT CONVERSION INST.
; 1190	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 2
; DEFINE.MIC[4,30]	17:12 9-Aug-84			HOW TO READ THE MICROCODE -- FORMATS & CONSTRUCTS	

; 1191	.TOC	"HOW TO READ THE MICROCODE -- FORMATS & CONSTRUCTS"
; 1192	
; 1193	;(1)	FIELD DEFINITIONS
; 1194	;	THESE OCCUR AT THE BEGINNING OF THE LISTING, IN THE SOURCE FILE
; 1195	; DEFINE.MIC (CONTROL AND DISPATCH RAM DEFINITIONS).
; 1196	; THEY HAVE THE FORM:
; 1197	;	SYMBOL/=<L:R>M,J
; 1198	;ANOTHER FORM ACCEPTED BY THE ASSEMBLER (FOR HISTORIC REASONS) IS:
; 1199	;	SYMBOL/=J,K,R,M		;THIS FORM HAS BEEN REMOVED FROM THIS CODE
; 1200	;	THE PARAMETER (J) IS MEANINGFUL ONLY WHEN "D" IS SPECIFIED
; 1201	; AS THE DEFAULT MECHANISM, AND IN THAT CASE, GIVES THE DEFAULT VALUE OF
; 1202	; THE FIELD IN OCTAL.
; 1203	;	THE PARAMETER (K) GIVES THE FIELD SIZE IN (DECIMAL) NUMBER
; 1204	; OF BITS. THIS IS USED ONLY IN THE OUTDATED FORMAT.
; 1205	;	THE PARAMETER (L) GIVES THE BIT POSITION OF THE LEFTMOST BIT
; 1206	;IN THE FIELD. THE SAME METHOD IS USED AS FOR (R) BELOW.
; 1207	;	THE PARAMETER (R) GIVES THE FIELD POSITION IN DECIMAL
; 1208	; AS THE BIT NUMBER OF THE RIGHTMOST BIT OF THE FIELD.  BITS ARE NUMBERED
; 1209	; FROM 0 ON THE LEFT.  NOTE THAT THE POSITION OF BITS IN THE MICROWORD
; 1210	; SHOWN IN THE LISTING BEARS NO RELATION TO THE ORDERING OF BITS IN THE
; 1211	; HARDWARE MICROWORD, WHERE FIELDS ARE OFTEN BROKEN UP AND SCATTERED.
; 1212	;	THE PARAMETER (M) IS OPTIONAL, AND SELECTS A DEFAULT
; 1213	; MECHANISM FOR THE FIELD.  THE LEGAL VALUES OF THIS PARAMETER ARE THE
; 1214	; CHARACTERS "D", "T", "P", OR "+".
; 1215	;	  "D" MEANS (J) IS THE DEFAULT VALUE OF THE FIELD IF NO EXPLICIT
; 1216	;	VALUE IS SPECIFIED.
; 1217	;	  "T" IS USED ON THE TIME FIELD TO SPECIFY THAT THE VALUE OF THE
; 1218	;	FIELD DEPENDS ON THE TIME PARAMETERS SELECTED FOR OTHER FIELDS.
; 1219	;	THE VALUE OF A FIELD WITH THIS SPECIFICATION DEFAULTS TO THE
; 1220	;	MAX OF <SUM OF THE T1 PARAMETERS DEFINED FOR FIELD/VALUES
; 1221	;	SPECIFIED IN THIS MICROINSTRUCTION>, <SUM OF THE T2 PARAMETERS
; 1222	;	FOR THIS MICROINSTRUCTION>, <J PARAMETER OF THIS FIELD>.
; 1223	;	WITHIN THE KL10 MICROCODE, T1 PARAMETERS ARE USED TO SPECIFY
; 1224	;	FUNCTIONS WHICH DEPEND ON THE ADDER SETUP TIME, AND T2 PARAMETERS
; 1225	;	ARE USED FOR FUNCTIONS WHICH REQUIRE ADDITIONAL TIME FOR CORRECT
; 1226	;	SELECTION OF THE NEXT MICROINSTRUCTION ADDRESS.
; 1227	;	  "P" IS USED ON THE PARITY FIELD TO SPECIFY THAT THE VALUE OF THE
; 1228	;	FIELD SHOULD DEFAULT SUCH THAT PARITY OF THE ENTIRE WORD
; 1229	;	IS ODD.  IF THIS OPTION IS SELECTED ON A FIELD WHOSE SIZE (K) IS
; 1230	;	ZERO, THE MICRO ASSEMBLER WILL ATTEMPT TO FIND A BIT SOMEWHERE
; 1231	;	IN THE WORD FOR WHICH NO VALUE IS SPECIFIED OR DEFAULTED.
; 1232	;	  "+" IS USED ON THE JUMP ADDRESS FIELD TO SPECIFY THAT THE DEFAULT
; 1233	;	JUMP ADDRESS IS THE ADDRESS OF THE NEXT INSTRUCTION ASSEMBLED (NOT,
; 1234	;	IN GENERAL, THE CURRENT LOCATION +1).
; 1235	;	IN GENERAL, A FIELD CORRESPONDS TO THE SET OF BITS WHICH PROVIDE
; 1236	; SELECT INPUTS FOR MIXERS OR DECODERS, OR CONTROLS FOR ALU'S.
; 1237	; EXAMPLES:
; 1238	;	AR/=<24:26>D,0	OR	AR/=0,3,26,D
; 1239	;	THE MICROCODE FIELD WHICH CONTROLS THE AR MIXER (AND THEREFORE
; 1240	; THE DATA TO BE LOADED INTO AR ON EACH EBOX CLOCK) IS THREE BITS WIDE
; 1241	; AND THE RIGHTMOST BIT IS SHOWN IN THE LISTING AS BIT 26 OF THE
; 1242	; MICROINSTRUCTION.  IF NO VALUE IS SPECIFICALLY REQUESTED FOR THE FIELD,
; 1243	; THE MICROASSEMBLER WILL ENSURE THAT THE FIELD IS 0.
; 1244	;	AD/=<12:17>	OR	AD/=0,6,17
; 1245	;	THE FIELD WHICH CONTROLS THE AD IS 6 BITS WIDE, ENDING ON
; 1246	; BIT 17.  THE FOURTH PARAMETER OF THE FIELD IS OMITTED, SO THE FIELD
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 2-1
; DEFINE.MIC[4,30]	17:12 9-Aug-84			HOW TO READ THE MICROCODE -- FORMATS & CONSTRUCTS	

; 1247	; IS AVAILABLE TO THE MICROASSEMBLER (IF NO VALUE IS EXPLICITLY
; 1248	; CALLED OUT FOR THE FIELD) FOR MODIFICATION TO ENSURE ODD PARITY IN THE
; 1249	; ENTIRE WORD.
; 1250	;
; 1251	;(2)	VALUE DEFINITIONS
; 1252	;	FOLLOWING A FIELD DEFINITION, SYMBOLS MAY BE CREATED IN THAT
; 1253	; FIELD TO CORRESPOND TO VALUES OF THE FIELD.  THE FORM IS:
; 1254	;	SYMBOL=N,T1,T2
; 1255	;	"N" IS, IN OCTAL, THE VALUE OF SYMBOL WHEN USED IN THE FIELD.
; 1256	; T1 AND T2 ARE OPTIONAL, AND SPECIFY PARAMETERS IN THE TIME FIELD
; 1257	; CALCULATION FOR MICROINSTRUCTIONS IN WHICH THIS FIELD/SYMBOL IS USED.
; 1258	; THE MICROASSEMBLER COMPUTES THE SUMS OF ALL THE T1'S AND ALL THE T2'S
; 1259	; SPECIFIED FOR FIELD/SYMBOL SPECIFICATIONS IN A WORD, AND USES THE MAX
; 1260	; OF THE TWO SUMS AS THE DEFAULT VALUE FOR THE FIELD WHOSE DEFAULT
; 1261	; MECHANISM IS "T".  EXAMPLES:
; 1262	;	AD/=<12:17>	;FIELD DEFINITION IN WHICH FOLLOWING SYMBOLS EXIST
; 1263	;	XOR=31
; 1264	;	A+B=6,1
; 1265	;	HERE THE SYMBOLS "XOR" AND "A+B" ARE DEFINED FOR THE "AD" FIELD.
; 1266	; TO THE ASSEMBLER, THEREFORE, WRITING "AD/XOR" MEANS PUT THE VALUE 31
; 1267	; INTO THE 6-BIT FIELD ENDING ON BIT 17 OF THE MICROWORD.  THE SYMBOLS
; 1268	; ARE CHOSEN FOR MNEMONIC SIGNIFICANCE, OF COURSE, SO ONE READING
; 1269	; THE MICROCODE WOULD INTERPRET "AD/XOR" AS "THE OUTPUT OF AD SHALL BE THE
; 1270	; EXCLUSIVE OR OF ITS A AND B INPUTS".  SIMILIARLY, "AD/A+B" IS READ AS
; 1271	; "AD PRODUCES THE SUM OF A AND B".  THE SECOND PARAMETER IN THE DEFINITION
; 1272	; OF "A+B" IS A CONTROL TO THE MICRO ASSEMBLER'S TIME-FIELD CALCULATION,
; 1273	; WHICH TELLS THE ASSEMBLER THAT THIS OPERATION TAKES LONGER THAN THE
; 1274	; BASIC CYCLE, AND THEREFORE THAT THE TIME FIELD SHOULD BE INCREASED.
; 1275	;	AR/=<24:26>D,0	;FIELD DEFINITION FOR FOLLOWING SYMBOLS
; 1276	;	AR=0
; 1277	;	AD=2
; 1278	;	HERE THE SYMBOLS "AR" AND "AD" ARE DEFINED FOR THE FIELD NAMED
; 1279	; "AR", WHICH CONTROLS THE AR MIXER.  WE COULD WRITE AR/AR TO MEAN THAT
; 1280	; THE AR MIXER SELECT INPUTS WOULD BE 0, WHICH IN THE 
; 1281	; HARDWARE SELECTS THE AR OUTPUT FOR RECIRCULATION TO THE REGISTER.  IN
; 1282	; PRACTICE, HOWEVER, WE WANT THIS TO BE THE DEFAULT CASE, SO THAT AR
; 1283	; DOES NOT CHANGE UNLESS WE SPECIFICALLY REQUEST IT, SO THE FIELD
; 1284	; DEFINITION SPECIFIES 0 AS THE DEFAULT VALUE OF THE FIELD.  IF WE
; 1285	; WANT AR LOADED FROM THE AD OUTPUT, WE WRITE "AR/AD" TO SET THE
; 1286	; MIXER SELECTS TO PASS THE AD OUTPUT INTO THE AR.
; 1287	;
; 1288	;(3)	LABEL DEFINITIONS
; 1289	;	A MICRO INSTRUCTION MAY BE LABELLED BY A SYMBOL FOLLOWED BY COLON
; 1290	; PRECEDING THE MICROINSTRUCTION DEFINITION.  THE ADDRESS OF THE
; 1291	; MICROINSTRUCTION BECOMES THE VALUE OF THE SYMBOL IN THE FIELD NAMED "J".
; 1292	; EXAMPLE:
; 1293	;	FOO:	J/FOO
; 1294	;	THIS IS A MICROINSTRUCTION WHOSE "J" FIELD (JUMP ADDRESS) CONTAINS
; 1295	; THE VALUE "FOO".  IT ALSO DEFINES THE SYMBOL "FOO" TO BE THE ADDRESS
; 1296	; OF ITSELF.  THEREFORE, IF EXECUTED BY THE MICROPROCESSOR, IT WOULD
; 1297	; LOOP ON ITSELF.
; 1298	;
; 1299	;(4)	COMMENTS
; 1300	;	A SEMICOLON ANYWHERE ON A LINE CAUSES THE REST OF THE LINE
; 1301	; TO BE IGNORED BY THE ASSEMBLER.  THIS TEXT IS AN EXAMPLE OF COMMENTS.
; 1302	;
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 2-2
; DEFINE.MIC[4,30]	17:12 9-Aug-84			HOW TO READ THE MICROCODE -- FORMATS & CONSTRUCTS	

; 1303	;(5)	MICROINSTRUCTION DEFINITION
; 1304	;	A WORD OF MICROCODE IS DEFINED BY SPECIFYING A FIELD NAME,
; 1305	; FOLLOWED BY SLASH (/), FOLLOWED BY A VALUE.  THE VALUE MAY BE A
; 1306	; SYMBOL DEFINED FOR THAT FIELD, AN OCTAL DIGIT STRING, OR A DECIMAL
; 1307	; DIGIT STRING (DISTINGUISHED BY THE FACT THAT IT CONTAINS "8" AND/OR
; 1308	; "9" AND/OR IS TERMINATED BY A PERIOD). SEVERAL FIELDS MAY BE SPECIFIED
; 1309	; IN ONE MICROINSTRUCTION BY SEPARATING FIELD/VALUE SPECIFICATIONS WITH
; 1310	; COMMAS.  EXAMPLE:
; 1311	;	ADB/BR,ADA/AR,AD/A+B,AR/AD
; 1312	;	THE FIELD NAMED "ADB" IS GIVEN THE VALUE NAMED "BR" (TO
; 1313	; CAUSE THE MIXER ON THE B SIDE OF AD TO SELECT BR), FIELD "ADA" HAS VALUE
; 1314	; "AR", FIELD "AD" HAS VALUE "A+B", AND FIELD "AR" HAS VALUE "AD".
; 1315	;
; 1316	;(6)	CONTINUATION
; 1317	;	THE DEFINITION OF A MICROINSTRUCTION MAY CONTINUED ONTO TWO OR
; 1318	; MORE LINES BY BREAKING IT AFTER ANY COMMA.  IN OTHER WORDS, IF THE
; 1319	; LAST NON-BLANK, NON-COMMENT CHARACTER ON A LINE IS A COMMA, THE
; 1320	; INSTRUCTION SPECIFICATION IS CONTINUED ON THE FOLLOWING LINE.
; 1321	; EXAMPLE:
; 1322	;	ADB/BR,ADA/AR,		;SELECT AR & BR AS AD INPUTS
; 1323	;		AD/A+B,AR/AD	;TAKE THE SUM INTO AR
; 1324	; BY CONVENTION, CONTINUATION LINES ARE INDENTED AN EXTRA TAB.
; 1325	;
; 1326	;(7)	MACROS
; 1327	;	A MACRO IS A SYMBOL WHOSE VALUE IS ONE OR MORE FIELD/VALUE
; 1328	; SPECIFICATIONS AND/OR MACROS.  A MACRO DEFINITION IS A LINE CONTAINING
; 1329	; THE MACRO NAME FOLLOWED BY A QUOTED STRING WHICH IS THE VALUE OF THE
; 1330	; MACRO.  EXAMPLE:
; 1331	;	AR_AR+BR	"ADB/BR,ADA/AR,AD/A+B,AR/AD"
; 1332	; THE APPEARANCE OF A MACRO IN A MICROINSTRUCTION DEFINITION IS EQUIVALENT
; 1333	; TO THE APPEARANCE OF ITS VALUE.  MACROS FOR VARIOUS FUNCTIONS
; 1334	; ARE DEFINED IN "MACRO.MIC".
; 1335	;
; 1336	;(8)	PSEUDO OPS
; 1337	;	THE MICRO ASSEMBLER HAS 10 PSEUDO-OPERATORS:
; 1338	;.DCODE AND .UCODE SELECT THE RAM INTO WHICH SUBSEQUENT MICROCODE WILL
; 1339	;BE LOADED, AND THEREFORE THE FIELD DEFINITIONS AND MACROS WHICH ARE
; 1340	;MEANINGFUL IN SUBSEQUENT MICROCODE
; 1341	;.TITLE DEFINES A STRING OF TEXT TO APPEAR IN THE PAGE HEADER, AND
; 1342	;.TOC DEFINES AN ENTRY FOR THE TABLE OF CONTENTS AT THE BEGINNING.
; 1343	;.SET DEFINES THE VALUE OF A CONDITIONAL ASSEMBLY PARAMETER,
; 1344	;.CHANGE REDEFINES A CONDITIONAL ASSEMBLY PARAMETER,
; 1345	;.DEFAULT ASSIGNS A VALUE TO AN UNDEFINED PARAMETER.
; 1346	;.IF ENABLES ASSEMBLY IF THE VALUE OF THE PARAMETER IS NOT ZERO,
; 1347	;.IFNOT ENABLES ASSEMBLY IF THE PARAMETER VALUE IS ZERO, AND
; 1348	;.ENDIF RE-ENABLES ASSEMBLY IF SUPPRESSED BY THE PARAMETER NAMED.
; 1349	;
; 1350	;(9)	LOCATION CONTROL
; 1351	;	A MICROINSTRUCTION "LABELLED" WITH A NUMBER IS ASSIGNED TO THAT
; 1352	; ADDRESS.
; 1353	;	THE CHARACTER "=" AT THE BEGINNING OF A LINE, FOLLOWED BY
; 1354	; A STRING OF 0'S, 1'S, AND/OR *'S, SPECIFIES A CONSTRAINT ON THE
; 1355	; ADDRESS OF FOLLOWING MICROINSTRUCTIONS.  THE NUMBER OF CHARACTERS
; 1356	; IN THE CONSTRAINT STRING (EXCLUDING THE "=") IS THE NUMBER OF LOW-ORDER
; 1357	; BITS CONSTRAINED IN THE ADDRESS.  THE MICROASSEMBLER ATTEMPTS TO FIND
; 1358	; AN UNUSED LOCATION WHOSE ADDRESS HAS 0 BITS IN THE POSITIONS
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 2-3
; DEFINE.MIC[4,30]	17:12 9-Aug-84			HOW TO READ THE MICROCODE -- FORMATS & CONSTRUCTS	

; 1359	; CORRESPONDING TO 0'S IN THE CONSTRAINT STRING AND 1 BITS WHERE THE
; 1360	; CONSTRAINT HAS 1'S.  ASTERISKS DENOTE "DON'T CARE" BIT POSITIONS.
; 1361	;	IF THERE ARE ANY 0'S IN THE CONSTRAINT STRING, THE CONSTRAINT
; 1362	; IMPLIES A BLOCK OF <2**N> MICROWORDS, WHERE N IS THE NUMBER OF 0'S
; 1363	; IN THE STRING.  ALL LOCATIONS IN THE BLOCK WILL HAVE 1'S IN THE ADDRESS
; 1364	; BITS CORRESPONDING TO 1'S IN THE STRING, AND BIT POSITIONS DENOTED BY *'S
; 1365	; WILL BE THE SAME IN ALL LOCATIONS OF THE BLOCK.
; 1366	;	IN SUCH A CONSTRAINT BLOCK, THE DEFAULT ADDRESS PROGRESSION IS
; 1367	; COUNTING IN THE "0" POSITIONS OF THE CONSTRAINT STRING, BUT A NEW
; 1368	; CONSTRAINT STRING OCCURING WITHIN A BLOCK MAY FORCE SKIPPING OVER
; 1369	; SOME LOCATIONS OF THE BLOCK.  WITHIN A BLOCK, A NEW CONSTRAINT
; 1370	; STRING DOES NOT CHANGE THE PATTERN OF DEFAULT ADDRESS PROGRESSION, IT
; 1371	; MERELY ADVANCES THE LOCATION COUNTER OVER THOSE LOCATIONS.  THE
; 1372	; MICROASSEMBLER WILL LATER FILL THEM IN.
; 1373	;	A NULL CONSTRAINT STRING ("=" FOLLOWED BY ANYTHING BUT "0",
; 1374	; "1", OR "*") SERVES TO TERMINATE A CONSTRAINT BLOCK.
; 1375	; EXAMPLES:
; 1376	;	=0	
; 1377	;	THIS SPECIFIES THAT THE LOW-ORDER ADDRESS BIT MUST BE ZERO--
; 1378	; THE MICROASSEMBLER FINDS AN EVEN-ODD PAIR OF LOCATIONS, AND PUTS
; 1379	; THE NEXT TWO MICROINSTRUCTIONS INTO THEM.
; 1380	;	=11
; 1381	;	THIS SPECIFIES THAT THE TWO LOW-ORDER BITS OF THE ADDRESS MUST
; 1382	; BOTH BE ONES.  SINCE THERE ARE NO 0'S IN THIS CONSTRAINT, THE
; 1383	; ASSEMBLER FINDS ONLY ONE LOCATION MEETING THE CONSTRAINT.
; 1384	;	=0*****
; 1385	;	THIS SPECIFIES AN ADDRESS IN WHICH THE "40" BIT IS ZERO.  DUE
; 1386	; TO THE IMPLEMENTATION OF THIS FEATURE IN THE ASSEMBLER,  THE DEFAULT
; 1387	; ADDRESS PROGRESSION APPLIES ONLY TO THE LOW-ORDER 5 BITS, SO THIS
; 1388	; CONSTRAINT FINDS ONE WORD IN WHICH THE "40" BIT IS ZERO, AND DOES
; 1389	; NOT ATTEMPT TO FIND ONE IN WHICH THAT BIT IS A ONE.
; 1390	;THIS LIMITATION HAS BEEN CHANGED WITH NEWER ASSEMBLER VERSIONS.
; 1391	;HOWEVER NONE OF THE LOCATIONS IN THE MICROCODE REQUIRE ANYTHING BUT THE
; 1392	;CONSTRAINT MENTIONED ABOVE.
; 1393	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 3
; DEFINE.MIC[4,30]	17:12 9-Aug-84			MICROCODE LISTING TEMPLATE				

; 1394	.TOC	"MICROCODE LISTING TEMPLATE"
; 1395	;HERE IS A TEMPLATE WHICH CAN BE USED WITH THE MICROCODE
; 1396	; LISTING TO IDENTIFY FIELDS IN THE OUTPUT --
; 1397	
; 1398	
; 1399	; ----  ---- ---- ---- ---- ---- ---- ----
; 1400	; [--]  [--] []!! !!!! !!!! !![] [][] ![-]
; 1401	;   !     !   !!! !!!! !!!! !! !  ! ! ! + # = MAGIC NUMBERS
; 1402	;   !     !   !!! !!!! !!!! !! !  ! ! + MARK = SCOPE SYNC
; 1403	;   !     !   !!! !!!! !!!! !! !  ! !
; 1404	;   !     !   !!! !!!! !!!! !! !  ! + CALL, DISP/SPEC = SPEC FUNCTIONS
; 1405	;   !     !   !!! !!!! !!!! !! !  + SKIP/COND = SPECIAL FUNCTIONS
; 1406	;   !     !   !!! !!!! !!!! !! !
; 1407	;   !     !   !!! !!!! !!!! !! + TIME, MEM = UINST TIME & MEM FUNCTION
; 1408	;   !     !   !!! !!!! !!!! !+ VMA = VMA INPUT SELECT
; 1409	;   !     !   !!! !!!! !!!! + SH/ARMM = SH FUNCTION / ARMM SELECT
; 1410	;   !     !   !!! !!!! !!!!
; 1411	;   !     !   !!! !!!! !!!+ SC, FE = SC INPUT SELECT & FE LOAD
; 1412	;   !     !   !!! !!!! !!+ SCADB = SELECT FOR SCAD "B" INPUT
; 1413	;   !     !   !!! !!!! !+ SCADA = ENABLE AND SELECT FOR SCAD "A" INPUT
; 1414	;   !     !   !!! !!!! + SCAD = SC/FE ADDER FUNCTION
; 1415	;   !     !   !!! !!!!
; 1416	;   !     !   !!! !!!+ FM ADR = FAST MEMORY ADDRESS SELECT
; 1417	;   !     !   !!! !!+ BR, BRX, MQ = LOAD BR & BRX, SEL FOR MQ
; 1418	;   !     !   !!! !+ ARX = SELECT FOR ARX INPUT
; 1419	;   !     !   !!! + AR = SELECT FOR AR INPUT
; 1420	;   !     !   !!!
; 1421	;   !     !   !!+ ADB = SELECT FOR ADDER "B" INPUT
; 1422	;   !     !   !+ ADA = SELECT AND ENABLE FOR ADDER "A" INPUT
; 1423	;   !     !   + AD = OPERATION IN ADDER AND ADDER EXTENSION
; 1424	;   !     !
; 1425	;   !     + J = BASE ADDRESS TO WHICH THIS MICROINSTRUCTION JUMPS
; 1426	;   !
; 1427	;   + LOCATION IN CRAM INTO WHICH THIS WORD IS LOADED
; 1428	;
; 1429	; U/V = MICRO INSTRUCTION FOR CRAM
; 1430	
; 1431	;*******************************************************************
; 1432	
; 1433	; D = WORD FOR DRAM
; 1434	;
; 1435	;   + LOCATION IN DRAM INTO WHICH THIS WORD IS LOADED
; 1436	;   !
; 1437	;   !   + A = OPERAND ACCESS CONTROL
; 1438	;   !   !+ B = INSTRUCTION "MODE"
; 1439	;   !   !! + P = PARITY FOR THIS WORD
; 1440	;   !   !! !
; 1441	;   !   !! !   + J = ADDRESS OF HANDLER FOR THIS INSTRUCTION
; 1442	; [--]  !! ! [--]
; 1443	; ----  ---- ----
; 1444	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 4
; DEFINE.MIC[4,30]	17:12 9-Aug-84			KL10 INSTRUCTION OPCODE MAP				

; 1445	.TOC	"KL10 INSTRUCTION OPCODE MAP"
; 1446	
; 1447	;	0	1	2	3	4	5	6	7
; 1448	;100	UUO	UUO	EFAD	EFSB	JSYS	ADJSP	EFMP	EFDV
; 1449	;110	DFAD	DFSB	DFMP	DFDV	DADD	DSUB	DMUL	DDIV
; 1450	;120	DMOVE	DMOVN	FIX	EXTEND	DMOVEM	DMOVNM	FIXR	FLTR
; 1451	;130	UFA	DFN	FSC	IBP	ILDB	LDB	IDPB	DPB
; 1452	;140	FAD	FADL	FADM	FADB	FADR	FADRI	FADRM	FADRB
; 1453	;150	FSB	FSBL	FSBM	FSBB	FSBR	FSBRI	FSBRM	FSBRB
; 1454	;160	FMP	FMPL	FMPM	FMPB	FMPR	FMPRI	FMPRM	FMPRB
; 1455	;170	FDV	FDVL	FDVM	FDVB	FDVR	FDVRI	FDVRM	FDVRB
; 1456	;	0	1	2	3	4	5	6	7
; 1457	;200	MOVE	MOVEI	MOVEM	MOVES	MOVS	MOVSI	MOVSM	MOVSS
; 1458	;210	MOVN	MOVNI	MOVNM	MOVNS	MOVM	MOVMI	MOVMM	MOVMS
; 1459	;220	IMUL	IMULI	IMULM	IMULB	MUL	MULI	MULM	MULB
; 1460	;230	IDIV	IDIVI	IDIVM	IDIVB	DIV	DIVI	DIVM	DIVB
; 1461	;240	ASH	ROT	LSH	JFFO	ASHC	ROTC	LSHC	UUO
; 1462	;250	EXCH	BLT	AOBJP	AOBJN	JRST	JFCL	XCT	MAP
; 1463	;260	PUSHJ	PUSH	POP	POPJ	JSR	JSP	JSA	JRA
; 1464	;270	ADD	ADDI	ADDM	ADDB	SUB	SUBI	SUBM	SUBB
; 1465	;	0	1	2	3	4	5	6	7
; 1466	;300	CAI	CAIL	CAIE	CAILE	CAIA	CAIGE	CAIN	CAIG
; 1467	;310	CAM	CAML	CAME	CAMLE	CAMA	CAMGE	CAMN	CAMG
; 1468	;320	JUMP	JUMPL	JUMPE	JUMPLE	JUMPA	JUMPGE	JUMPN	JUMPG
; 1469	;330	SKIP	SKIPL	SKIPE	SKIPLE	SKIPA	SKIPGE	SKIPN	SKIPG
; 1470	;340	AOJ	AOJL	AOJE	AOJLE	AOJA	AOJGE	AOJN	AOJG
; 1471	;350	AOS	AOSL	AOSE	AOSLE	AOSA	AOSGE	AOSN	AOSG
; 1472	;360	SOJ	SOJL	SOJE	SOJLE	SOJA	SOJGE	SOJN	SOJG
; 1473	;370	SOS	SOSL	SOSE	SOSLE	SOSA	SOSGE	SOSN	SOSG
; 1474	;	0	1	2	3	4	5	6	7
; 1475	;400	SETZ	SETZI	SETZM	SETZB	AND	ANDI	ANDM	ANDB
; 1476	;410	ANDCA	ANDCAI	ANDCAM	ANDCAB	SETM	SETMI	SETMM	SETMB
; 1477	;420	ANDCM	ANDCMI	ANDCMM	ANDCMB	SETA	SETAI	SETAM	SETAB
; 1478	;430	XOR	XORI	XORM	XORB	IOR	IORI	IORM	IORB
; 1479	;440	ANDCB	ANDCBI	ANDCBM	ANDCBB	EQV	EQVI	EQVM	EQVB
; 1480	;450	SETCA	SETCAI	SETCAM	SETCAB	ORCA	ORCAI	ORCAM	ORCAB
; 1481	;460	SETCM	SETCMI	SETCMM	SETCMB	ORCM	ORCMI	ORCMM	ORCMB
; 1482	;470	ORCB	ORCBI	ORCBM	ORCBB	SETO	SETOI	SETOM	SETOB
; 1483	;	0	1	2	3	4	5	6	7
; 1484	;500	HLL	HLLI	HLLM	HLLS	HRL	HRLI	HRLM	HRLS
; 1485	;510	HLLZ	HLLZI	HLLZM	HLLZS	HRLZ	HRLZI	HRLZM	HRLZS
; 1486	;520	HLLO	HLLOI	HLLOM	HLLOS	HRLO	HRLOI	HRLOM	HRLOS
; 1487	;530	HLLE	HLLEI	HLLEM	HLLES	HRLE	HRLEI	HRLEM	HRLES
; 1488	;540	HRR	HRRI	HRRM	HRRS	HLR	HLRI	HLRM	HLRS
; 1489	;550	HRRZ	HRRZI	HRRZM	HRRZS	HLRZ	HLRZI	HLRZM	HLRZS
; 1490	;560	HRRO	HRROI	HRROM	HRROS	HLRO	HLROI	HLROM	HLROS
; 1491	;570	HRRE	HRREI	HRREM	HRRES	HLRE	HLREI	HLREM	HLRES
; 1492	;	0	1	2	3	4	5	6	7
; 1493	;600	TRN	TLN	TRNE	TLNE	TRNA	TLNA	TRNN	TLNN
; 1494	;610	TDN	TSN	TDNE	TSNE	TDNA	TSNA	TDNN	TSNN
; 1495	;620	TRZ	TLZ	TRZE	TLZE	TRZA	TLZA	TRZN	TLZN
; 1496	;630	TDZ	TSZ	TDZE	TSZE	TDZA	TSZA	TDZN	TSZN
; 1497	;640	TRC	TLC	TRCE	TLCE	TRCA	TLCA	TRCN	TLCN
; 1498	;650	TDC	TSC	TDCE	TSCE	TDCA	TSCA	TDCN	TSCN
; 1499	;660	TRO	TLO	TROE	TLOE	TROA	TLOA	TRON	TLON
; 1500	;670	TDO	TSO	TDOE	TSOE	TDOA	TSOA	TDON	TSON
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 5
; DEFINE.MIC[4,30]	17:12 9-Aug-84			CONTROL RAM DEFINITIONS -- J, AD			

; 1501	.TOC	"CONTROL RAM DEFINITIONS -- J, AD"
; 1502	;FIELDS ARRANGED FOR READABILITY, NOT COMPACTNESS
; 1503	; IN THE PROCESSOR, BITS ARE SCATTERED IN ANOTHER ORDER
; 1504	
; 1505	U0/=<0:0>D,0	;BIT 0 UNUSED
; 1506	J/=<1:11>+	;SYMBOLS WILL BE DEFINED BY TAGS (CRA1&CRA2)
; 1507	
; 1508	;MAIN ADDER CONTROLS.  Bit 0 = carry in, bit 1 = boolean operation
; 1509	; Bits 2-5 are S8-S1 of the 10181 ALU chip.  For normal arithmetic,
; 1510	; the AD and ADX are separated unless SPEC/AD LONG or equivalent is given.
; 1511	
; 1512	
; 1513	AD/=<12:17>	; (EDP3, EXCEPT CARRY IN, ON CTL1)
; 1514		A+1=40,1
; 1515		A+XCRY=00,1
; 1516	;	A+ANDCB=01,1
; 1517	;	A+AND=02,1
; 1518		A*2=03,1
; 1519		A*2+1=43,1
; 1520	;	OR+1=44,1
; 1521	;	OR+ANDCB=05,1
; 1522		A+B=06,1
; 1523		A+B+1=46,1
; 1524	;	A+OR=07,1
; 1525		ORCB+1=50,1
; 1526		A-B-1=11,1
; 1527		A-B=51,1
; 1528	;	AND+ORCB=52,1
; 1529	;	A+ORCB=53,1
; 1530		XCRY-1=54,1
; 1531	;	ANDCB-1=15,1
; 1532	;	AND-1=16,1
; 1533		A-1=17,1
; 1534			;ADDER LOGICAL FUNCTIONS
; 1535		SETCA=20
; 1536		ORC=21		;NAND
; 1537		ORCA=22
; 1538		1S=23
; 1539		ANDC=24		;NOR
; 1540		NOR=24
; 1541		SETCB=25
; 1542		EQV=26
; 1543		ORCB=27
; 1544		ANDCA=30
; 1545		XOR=31
; 1546		B=32
; 1547		OR=33
; 1548		0S=34
; 1549		ANDCB=35
; 1550		AND=36
; 1551		A=37
; 1552			;BOOLEAN FUNCTIONS FOR WHICH CRY0 IS INTERESTING
; 1553		CRY A EQ -1=60,1	;GENERATE CRY0 IF A=1S, AD=SETCA
; 1554		CRY A.B#0=36,1		;CRY 0 IF A&B NON-ZERO, AD=AND
; 1555		CRY A#0=37,1		;GENERATE CRY0 IF A .NE. 0, AD=A
; 1556		CRY A GE B=71,1		;CRY0 IF A .GE. B, UNSIGNED; AD=XOR
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 6
; DEFINE.MIC[4,30]	17:12 9-Aug-84			CONTROL RAM DEFINITIONS -- DATA PATH MIXERS		

; 1557	.TOC	"CONTROL RAM DEFINITIONS -- DATA PATH MIXERS"
; 1558	
; 1559	ADA/=<18:20>		; (EDP3)
; 1560		AR=0
; 1561		ARX=1
; 1562		MQ=2
; 1563		PC=3
; 1564	ADA EN/=<18:18>		;ADA ENABLE ALSO ENABLES ADXA (EDP3)
; 1565		EN=0
; 1566		0S=1
; 1567	U21/=<21:21>D,0		;BIT 21 UNUSED
; 1568	ADB/=<22:23>		;CONTROLS ADB AND ADXB (EDP3)
; 1569		FM=0,,1		;MUST HAVE TIME FOR PARITY CHECK
; 1570		BR*2=1
; 1571		BR=2
; 1572		AR*4=3
; 1573	U23/=<23:23>D,1		;PREVENT DEFAULT SELECTION OF FM
; 1574				;FORCE IT TO TAKE ONE OF THE SHORTER
; 1575				;PATHS IF FM NOT NEEDED ALSO DISABLES
; 1576				;PARITY CHECKING LOGIC
; 1577	
; 1578	;REGISTER INPUTS
; 1579	
; 1580	AR/=<24:26>D,0		; (EDP1)
; 1581		AR=0
; 1582		ARMM=0		;REQUIRES SPECIAL FUNCTION
; 1583		MEM=0		;[346] MB WAIT will poke to 1 (CACHE) or 2 (AD)
; 1584		CACHE=1		;ORDINARILY SELECTED BY HWARE
; 1585		AD=2
; 1586		EBUS=3
; 1587		SH=4
; 1588		AD*2=5		;Low bit from ADX0
; 1589		ADX=6
; 1590		AD*.25=7
; 1591	ARX/=<27:29>D,0		; (EDP2)
; 1592		ARX=0		;[345] BY DEFAULT
; 1593		MEM=0		;[346] Gets poked by MB WAIT to 1 or 2
; 1594		CACHE=1		;ORDINARILY BY MBOX RESP
; 1595		AD=2
; 1596		MQ=3
; 1597		SH=4
; 1598		ADX*2=5		;Low bit from MQ0
; 1599		ADX=6
; 1600		ADX*.25=7
; 1601	BR/=<30:30>D,0		;DEFAULT TO RECIRCULATE (EDP4)
; 1602		AR=1
; 1603	BRX/=<31:31>D,0		;DEFAULT TO RECIRCULATE (EDP4)
; 1604		ARX=1
; 1605	MQ/=<32:32>D,0		;DEFAULT TO RECIRCULATE (EDP2)
; 1606		SH=1		;LOAD FROM SHIFT MATRIX
; 1607		MQ*2=0		;With SPEC/MQ SHIFT--Low bit from AD CRY -2
; 1608		MQ*.25=1	;With SPEC/MQ SHIFT--High bits from ADX34, ADX35
; 1609		MQ SEL=0	;WITH COND/REG CTL
; 1610		MQM SEL=1	;WITH COND/REG CTL
; 1611	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 7
; DEFINE.MIC[4,30]	17:12 9-Aug-84			CONTROL RAM DEFINITIONS -- DATA PATH MIXERS		

; 1612	;FMADR SELECTS THE SOURCE OF THE FAST MEMORY ADDRESS,
; 1613	; RATHER THAN PROVIDING THE ADDRESS ITSELF
; 1614	
; 1615	FMADR/=<33:35>		; (APR4&APR5)
; 1616		AC0=0		;IR 9-12
; 1617		AC1=1		;<IR 9-12>+1 MOD 16
; 1618		XR=2		;ARX 14-17
; 1619		VMA=3		;VMA 32-35
; 1620		AC2=4		;<IR 9-12>+2 MOD 16
; 1621		AC3=5		;<IR 9-12>+3 MOD 16
;;1622	.IFNOT/MODEL.B
;;1623		AC4=6		;CURRENT BLOCK, AC+4
;;1624		ac5=7		;current block, ac+5
; 1625	.IF/MODEL.B
; 1626		AC+#=6		;CURRENT BLOCK, AC+ MAGIC #
; 1627	.ENDIF/MODEL.B
; 1628		#B#=7		;BLOCK AND AC SELECTED BY # FIELD
; 1629	
; 1630	.TOC	"CONTROL RAM DEFINITIONS -- 10-BIT LOGIC"
; 1631	
; 1632	SCAD/=<36:38>		; (SCD1)
; 1633		A=0
; 1634		A-B-1=1
; 1635		A+B=2
; 1636		A-1=3
; 1637		A+1=4
; 1638		A-B=5
; 1639		OR=6
; 1640		AND=7
; 1641	SCADA/=<39:41>		; (SCD1)
; 1642		FE=0
; 1643		AR0-5=1		;BYTE POINTER P FIELD
; 1644		AR EXP=2	;<AR 01-08> XOR <AR 00>
; 1645		#=3		;SIGN EXTENDED WITH #00
; 1646	SCADA EN/=<39:39>	; (SCD1)
; 1647		0S=1
; 1648	U42/=<42:42>D,0	;BIT 42 UNUSED
; 1649	SCADB/=<43:44>		; (SCD1)
; 1650		SC=0
; 1651		AR6-11=1	;BYTE POINTER S FIELD
; 1652		AR0-8=2
; 1653		#=3		;NO SIGN EXTENSION
; 1654	U45/=<45:45>D,0		;BIT 45 UNUSED
; 1655	SC/=<46:46>D,0		;RECIRCULATE BY DEFAULT (SCD2)
; 1656		FE=0		;WITH SCM ALT
; 1657		SCAD=1
; 1658		AR SHIFT=1	;WITH SCM ALT ;AR 18, 28-35
; 1659	FE/=<47:47>D,0		;RECIRCULATE BY DEFAULT (SCD2)
; 1660		SCAD=1
; 1661	U48/=<48:48>D,0		;BIT 48 UNUSED
; 1662	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 8
; DEFINE.MIC[4,30]	17:12 9-Aug-84			CONTROL RAM DEFINITIONS -- SHIFT, ARMM, VMA, TIME	

; 1663	.TOC	"CONTROL RAM DEFINITIONS -- SHIFT, ARMM, VMA, TIME"
; 1664	
; 1665	SH/=<49:50>		; (SH1)
; 1666		SHIFT AR!ARX=0	;LEFT BY (SC)
; 1667		AR=1
; 1668		ARX=2
; 1669		AR SWAP=3	;HALVES SWAPPED
; 1670	ARMM/=<49:50>		;SAME BITS AS SH CONTROL (SCD3)
; 1671		#=0		;MAGIC # 0-8 TO AR 0-8
; 1672		EXP_SIGN=1	;AR1-8 _ AR0
; 1673		SCAD EXP=2	;AR0-8_SCAD
; 1674		SCAD POS=3	;AR0-5_SCAD
; 1675	.IF/MODEL.B
; 1676	VMAX/=<49:50>		;SAME BITS AS SH CONTROL (VMA4)
; 1677		VMAX=0		;VMA SECTION #
; 1678		PC SEC=1	;PC SECTION #
; 1679		PREV SEC=2	;PREVIOUS CONTEXT SECT
; 1680		AD12-17=3
; 1681	.ENDIF/MODEL.B
; 1682	U51/=<51:51>D,0		;BIT 51 UNUSED
; 1683	VMA/=<52:53>D,0		;ALSO CONTROLLED BY SPECIAL FUNCTIONS
; 1684		VMA=0		;BY DEFAULT
; 1685		PC=1		;MAY BE OVERRIDDEN BY MCL LOGIC	TO LOAD FROM AD
; 1686		LOAD=1		; IF WE KNOW IT WILL BE OVERRIDDEN, USE THIS
; 1687		PC+1=2
; 1688		AD=3		;ENTIRE VMA, INCLUDING SECTION
; 1689	TIME/=<54:55>T		;CONTROLS MINIMUM MICROINSTRUCTION EXECUTION
; 1690				; TIME, COUNTING MBOX CLOCK TICKS (CLK)
; 1691				;ASSEMBLER GENERALLY TAKES CARE OF THIS
; 1692		2T=0		;2 TICKS
; 1693		3T=1		;3 TICKS
; 1694		4T=2		;4 TICKS
; 1695		5T=3		;5 TICKS (COND/DIAG FUNC & #00, --> .5 USEC)
; 1696	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 9
; DEFINE.MIC[4,30]	17:12 9-Aug-84			CONTROL RAM DEFINITIONS -- MEM SPECIAL FUNCTIONS	

; 1697	.TOC	"CONTROL RAM DEFINITIONS -- MEM SPECIAL FUNCTIONS"
; 1698	
; 1699	MEM/=<56:59>D,0		; (MCL1)
; 1700	;	NOP=0		;DEFAULT
; 1701		ARL IND=1	;CONTROL AR LEFT MUX FROM # FIELD
; 1702		MB WAIT=2	;WAIT FOR MBOX RESP IF PENDING
; 1703		A RD=4		;OPERAND READ and load PXCT bits (model B)
; 1704		B WRITE=5	;CONDITIONAL WRITE ON DRAM B 01
; 1705		FETCH=6		;LOAD NEXT INSTR TO ARX (CONTROL BY #)
; 1706		REG FUNC=7	;MBOX REGISTER FUNCTIONS
; 1707		LOAD AR=12
; 1708		LOAD ARX=13
; 1709		WRITE=16	;FROM AR TO MEMORY
; 1710	.IF/MODEL.B
; 1711		RESTORE VMA=3	;AD FUNC WITHOUT GENERATING A REQUEST
; 1712		AD FUNC=10	;FUNCTION LOADED FROM AD LEFT
; 1713		EA CALC=11	;FUNCTION DECODED FROM # FIELD
; 1714		RW=14		;READ, TEST WRITABILITY
; 1715		RPW=15		;READ-PAUSE-WRITE
; 1716		IFET=17		;UNCONDITIONAL FETCH
;;1717	.IFNOT/MODEL.B		;OLD-STYLE MCL BOARD
;;1718		SEC 0=3		;CLEAR VMAX
;;1719		A IND=10	;A-TYPE INDIRECT
;;1720		BYTE IND=11	;BYTE-TYPE INDIRECT
;;1721		AD FUNC=14	;FUNCTION FROM AD LEFT
;;1722		BYTE RD=15	;BYTE READ TO BOTH AR AND ARX
;;1723		RPW=17		;LOAD AR WITH RPW CYCLE
; 1724	.ENDIF/MODEL.B
; 1725	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 10
; DEFINE.MIC[4,30]	17:12 9-Aug-84			CONTROL RAM DEFINITIONS -- SKIP/COND SPECIAL FUNCTIONS

; 1726	.TOC	"CONTROL RAM DEFINITIONS -- SKIP/COND SPECIAL FUNCTIONS"
; 1727	
; 1728	SKIP/=<60:65>D,0	;MICRO-PROGRAM SKIPS
; 1729				; 40-57 DECODED ON (CRA2)
; 1730	;	SPARE=40
; 1731		EVEN PAR=41,,1	;AR PARITY IS EVEN
; 1732		BR0=42		;BR BIT 00
; 1733		ARX0=43		;ARX BIT 00
; 1734		AR18=44		;AR BIT 18
; 1735		AR0=45		;AR BIT 00
; 1736		AC#0=46		;IR9-12 .EQ. 0
; 1737		SC0=47		;SC BIT 00
;;1738	.IFNOT/MODEL.B
;;1739		SC .LT. 36=50
; 1740	.IF/MODEL.B
; 1741		PC SEC0=50
; 1742	.ENDIF/MODEL.B
; 1743		SCAD0=51,,1	;SIGN OF SCAD OUTPUT
; 1744		SCAD#0=52,,1	;SCAD OUTPUT IS NON-ZERO
; 1745		ADX0=53,1	;ADDER EXTENSION BIT 00
; 1746		AD CRY0=54,1	;CARRY OUT OF AD BIT -2 (BOOLE IGNORED)
; 1747		AD0=55,1	;ADDER BIT 00
; 1748		AD#0=56,1	;AD BITS 00-35 CONTAIN SOME ONES
; 1749	.IF/MODEL.B
; 1750		-LOCAL AC ADDR=57	;VMA18-31 =0 ON LOCAL REF IN SEC >1
; 1751	.ENDIF/MODEL.B
; 1752				; 60-77 DECODED ON (CON2)
; 1753		FETCH=60	;VMA FETCH (LAST CYCLE WAS A FETCH)
; 1754		KERNEL=61	;PC IS IN KERNEL MODE
; 1755		USER=62		;PC IS IN USER MODE
; 1756		PUBLIC=63	;PC IS PUBLIC (INCLUDING SUPER)
; 1757		RPW REF=64	;MIDDLE OF READ-PAUSE-WRITE CYCLE
; 1758		PI CYCLE=65	;PI CYCLE IN PROGRESS
; 1759		-EBUS GRANT=66	;PI HASN'T RELEASED BUS FOR CPU USE
; 1760		-EBUS XFER=67	;NO TRANSFER RECIEVED FROM DEVICE
; 1761		INTRPT=70	;AN INTERRUPT REQUEST WAITING FOR SERVICE
; 1762		-START=71	;NO CONTINUE BUTTON
; 1763		RUN=72		;PROCESSOR NOT HALTED
; 1764		IO LEGAL=73	;KERNEL, PI CYCLE, USER IOT, OR DEVICE .GE. 740
; 1765		P!S XCT=74	;PXCT OR SXCT
; 1766	.IF/MODEL.B
; 1767		-VMA SEC0=75	;VMA SECTION NUMBER (13-17) IS NOT ZERO
; 1768	.ENDIF/MODEL.B
; 1769		AC REF=76,,1	;VMA .LT.20 ON READ OR WRITE
; 1770		-MTR REQ=77	;INTERRUPT REQUEST NOT DUE TO METER
; 1771	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 11
; DEFINE.MIC[4,30]	17:12 9-Aug-84			CONTROL RAM DEFINITIONS -- SKIP/COND SPECIAL FUNCTIONS

; 1772	;SKIP/COND FIELD CONTINUED
; 1773	
; 1774	COND/=<60:65>D,0	;NON-SKIP SPECIAL FUNCTIONS
; 1775				;0-7 DECODED ON (CTL2)
; 1776	;	NOP=0		;BY DEFAULT
; 1777		LD AR0-8=1
; 1778		LD AR9-17=2	;Gates VMAX into ARMM (see VMA4)
; 1779		LD AR18-35=3
; 1780		AR CLR=4
; 1781		ARX CLR=5
; 1782		ARL IND=6	;CONTROL AR LEFT, CALL, AND CLEAR BITS FROM #
; 1783		REG CTL=7	;CONTROL AR LOAD, EXP TST, AND MQ FROM #
; 1784				; 10-37 DECODED ON (CON1)
; 1785		FM WRITE=10	;WRITE AR INTO CURRENTLY ADDRESSED FM LOC
; 1786		PCF_#=11	;SET PC FLAGS FROM # FIELD
; 1787		FE SHRT=12	;SHIFT FE RIGHT 1
; 1788		AD FLAGS=13	;SET PC CRY0, CRY1, OVRFLO, TRAP1 AS APPROPRIATE
; 1789		LOAD IR=14	;LATCH AD OR CACHE DATA INTO IR, load PXCT bits
; 1790		SPEC INSTR=15	;SET/CLR SXCT, PXCT, PICYC, TRAP INSTR FLAGS
; 1791		SR_#=16		;CONTROL FOR STATE REGISTER and PXCT bits (CON3, MCL4)
; 1792		SEL VMA=17	;READ VMA THROUGH ADA/PC
; 1793		DIAG FUNC=20	;SELECT DIAGNOSTIC INFO ONTO EBUS
; 1794		EBOX STATE=21	;SET STATE FLOPS
; 1795		EBUS CTL=22	;I/O FUNCTIONS
; 1796		MBOX CTL=23
; 1797	;	SPARE=24
; 1798	.IF/MODEL.B
; 1799		LONG EN=25	;THIS WORD CAN BE INTERPRETED AS LONG INDIRECT
; 1800	.ENDIF/MODEL.B
; 1801	;	SPARE=26
; 1802	;	SPARE=27
; 1803		VMA_#=30
; 1804		VMA_#+TRAP=31
; 1805		VMA_#+MODE=32
; 1806		VMA_#+AR32-35=33
; 1807		VMA_#+PI*2=34
; 1808		VMA DEC=35	;VMA_VMA-1
; 1809		VMA INC=36	;VMA_VMA+1
; 1810		LD VMA HELD=37	;HOLD VMA ON SIDE
;;1811	.IFNOT/MODEL.B
;;1812	U66/=<66:66>D,0		;BIT 66 UNUSED
; 1813	.IF/MODEL.B
; 1814	CALL/=<66:66>D,0	;CALL FUNCTION
; 1815		CALL=1		;GOOD TO 15 LEVELS IN MODEL B
; 1816	.ENDIF/MODEL.B
; 1817	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 12
; DEFINE.MIC[4,30]	17:12 9-Aug-84			CONTROL RAM DEFINITIONS -- DISP/SPEC SPECIAL FUNCTIONS

; 1818	.TOC	"CONTROL RAM DEFINITIONS -- DISP/SPEC SPECIAL FUNCTIONS"
; 1819	
; 1820	DISP/=<67:71>D,10	;0-7 AND 30-37 ARE DISPATCHES (CRA1&CRA2)
; 1821		DIAG=0
; 1822		DRAM J=1
; 1823		DRAM A RD=2	;IMPLIES INH CRY18
; 1824		RETURN=3	;POPJ RETURN
; 1825		PG FAIL=4	;PAGE FAIL TYPE DISP
; 1826		SR=5		;16 WAYS ON STATE REGISTER
; 1827		NICOND=6	;NEXT INSTRUCTION CONDITION (see NEXT for detail)
; 1828		SH0-3=7,,1	;[337] 16 WAYS ON HIGH-ORDER BITS OF SHIFTER
; 1829		MUL=30		;FE0*4 + MQ34*2 + MQ35; implies MQ SHIFT, AD LONG
; 1830		DIV=31,,1	;FE0*4 + BR0*2 + AD CRY0; implies MQ SHIFT, AD LONG
; 1831		SIGNS=32,1	;ARX0*8 + AR0*4 + BR0*2 + AD0
; 1832		DRAM B=33	;8 WAYS ON DRAM B FIELD
; 1833		BYTE=34,,1	;FPD*4 + AR12*2 + SCAD0
; 1834		NORM=35,2	;See normalization for details. Implies AD LONG
; 1835		EA MOD=36	;(ARX0 or -LONG EN)*8 + -(LONG EN and ARX1)*4 +
; 1836				;ARX13*2 + (ARX2-5) or (ARX14-17) non zero; enable
; 1837				;is (ARX0 or -LONG EN) for second case.  If ARX18
; 1838				;is 0, clear AR left; otherwise, poke ARL select
; 1839				;to set bit 2 (usually gates AD left into ARL)
;;1840	.IFNOT/MODEL.B
;;1841		EA TYPE=37
; 1842	.ENDIF/MODEL.B
; 1843	
; 1844	SPEC/=<67:71>D,10	;NON-DISPATCH SPECIAL FUNCTIONS (CTL1)
; 1845	;	NOP=10		;DEFAULT
; 1846		INH CRY18=11
; 1847		MQ SHIFT=12	;ENABLE MQ*2, MQ SHRT2
; 1848		SCM ALT=13	;ENABLE FE, ARSHIFT
; 1849		CLR FPD=14
; 1850		LOAD PC=15
; 1851		XCRY AR0=16	;CARRY INTO AD IS XOR'D WITH AR00
; 1852		GEN CRY18=17
;;1853	.IFNOT/MODEL.B
;;1854		SEC HOLD=20	;INHIBIT LOADING VMAX
;;1855		CALL=21		;MAX DEPTH 4, INCLUDING PAGE REFILL
; 1856	.IF/MODEL.B
; 1857		STACK UPDATE=20	;CONTROL CRY18 IF LOCAL STACK
; 1858	.ENDIF/MODEL.B
; 1859		ARL IND=22	;# SPECIFIES ARL MIX, ENABLES, & CALL
; 1860		MTR CTL=23	;# CONTROLS METERS
; 1861		FLAG CTL=24	;FUNCTION ENCODED IN # FIELD
; 1862		SAVE FLAGS=25	;TELLS PI CYCLE TO HOLD INTRPT
; 1863		SP MEM CYCLE=26	;MEM REQUEST IS MODIFIED BY #
; 1864		AD LONG=27	;AD BECOMES 72 BIT ALU
; 1865	
; 1866	U73/=<72:73>D,0		;BITS 72-73 UNUSED
; 1867	
; 1868	MARK/=<74:74>D,0	;FIELD SERVICE "MARK" BIT
; 1869	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 13
; DEFINE.MIC[4,30]	17:12 9-Aug-84			CONTROL RAM DEFINITIONS -- MAGIC NUMBER FIELD		

; 1870	.TOC	"CONTROL RAM DEFINITIONS -- MAGIC NUMBER FIELD"
; 1871	
; 1872	#/=<75:83>D,0		;THE INFAMOUS "MAGIC NUMBERS"
; 1873	
; 1874	MAJVER/=<75:80>		;[356] Major version number
; 1875	MINVER/=<81:83>		;[356] Minor version number
; 1876	
; 1877		;THE OPTIONS DESIGNATE CERTAIN ASSEMBLIES FROM THE SAME
; 1878			;MICROCODE SOURCES
; 1879			;# BIT 0 INDICATES KLPAGING
; 1880			;# BIT 1 INDICATES EXTENDED ADDRESSING
; 1881			;# BIT 2 INDICATES NONSTANDARD MICROCODE
; 1882			;# BIT 3 INDICATES A CPU WITH THE PV KIT. (MODEL B)
; 1883			;# BIT 8 INDICATES INSTRUCTION STATISTICS GATHERING
; 1884			;	(I.E. TRACKS)
; 1885		;EACH OPTION BIT IS GIVEN A SEPARATE FIELD DEFINITION
; 1886	
; 1887	KLPAGE/=<75:75>			;KLPAGING
; 1888	.IF/KLPAGE
; 1889		OPTIONS=1
;;1890	.IFNOT/KLPAGE
;;1891		OPTIONS=0
; 1892	.ENDIF/KLPAGE
; 1893	
; 1894	LONGPC/=<76:76>			;LONG PC FORMAT AS IN EXTENDED ADDRESSING
; 1895	.IF/LONG.PC			; THIS IS A SLIGHTLY BASTARDIZED FORMAT IN
; 1896		OPTIONS=1		; MODEL A MACHINES DUE TO SPACE LIMITATIONS
;;1897	.IFNOT/LONG.PC
;;1898		OPTIONS=0
; 1899	.ENDIF/LONG.PC
; 1900	
; 1901	NONSTD/=<77:77>			;NONSTANDARD MICROCODE (EG DIAGNOSTIC MICROCODE)
;;1902	.IF/NONSTD
;;1903		OPTIONS=1
; 1904	.IFNOT/NONSTD
; 1905		OPTIONS=0
; 1906	.ENDIF/NONSTD
; 1907	
; 1908	PV/=<78:78>			;MODEL B - PV CPU
; 1909	.IF/MODEL.B
; 1910		OPTIONS=1
;;1911	.IFNOT/MODEL.B
;;1912		OPTIONS=0
; 1913	.ENDIF/MODEL.B
; 1914	
; 1915	ISTAT/=<83:83>			;STATISTICS GATHERING CODE (IE TRACKS)
;;1916	.IF/INSTR.STAT
;;1917		OPTIONS=1
; 1918	.IFNOT/INSTR.STAT
; 1919		OPTIONS=0
; 1920	.ENDIF/INSTR.STAT
; 1921	
; 1922	ACB/=<77:79>		;AC block number. Used with FMADR/#B#
; 1923		PAGB=6		;AC block used for KL paging registers
; 1924		MICROB=7	;AC block for general microcode scratch
; 1925	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 13-1
; DEFINE.MIC[4,30]	17:12 9-Aug-84			CONTROL RAM DEFINITIONS -- MAGIC NUMBER FIELD		

; 1926	AC#/=<80:83>		;AC number used with ACB or AC-OP (below)
; 1927	
; 1928	.IF/MODEL.B
; 1929	PXCT/=<75:77>		;(MCL4) Loaded by CON/SR_#, CON/LOAD IR, and MEM/A RD
; 1930				;Bit 0 enables the VMAX to not come from the AD when
; 1931				; VMA/AD (allowing local AC refs, for example).  Bits
; 1932				; 1 and 2 select which PXCT bits a memory reference
; 1933				; will select for possible previous context.
; 1934	;
; 1935	; WARNING !!! BECAUSE OF A TIMING PROBLEM IN THE HARDWARE ALL AC-OPS
; 1936	;		MUST HAVE THE NUMBER FIELD THE SAME IN THE PREVIOUS
; 1937	;		MICROINSTRUCTION. THE SYMPTOM WILL BE GARBAGE WRITTEN IN A
; 1938	;		DIFFERENT AC AS THE ADDRESS LINES DON'T MAKE IT IN TIME
; 1939	;		FOR THE WRITE PULSE.
; 1940	;
; 1941	AC-OP/=<75:79>		;CONTROLS OPERATION ON AC AND AC#
; 1942		AC+#=6
; 1943		#=32		;JUST AC#
; 1944		OR=33		;AC <OR> AC#
; 1945				;ALL AD/ FUNCTIONS <40 WORK
; 1946	.ENDIF/MODEL.B
; 1947	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 14
; DEFINE.MIC[4,30]	17:12 9-Aug-84			CONTROL RAM DEFINITIONS -- MAGIC NUMBER FIELD		

; 1948	;VARIOUS SPECIAL FUNCTIONS ENABLE SPECIAL DECODING OF THE
; 1949	; "MAGIC #" FIELD, AS FOLLOWS:
; 1950	
; 1951	;SPECIAL DATA PATH CONTROLS
; 1952	
;;1953	.IFNOT/MODEL.B
;;1954	CALL/=<75:75>		;ENABLED BY ARL IND (CTL2)
;;1955		CALL=1
; 1956	.ENDIF/MODEL.B
; 1957	AR0-8/=<76:76>		;ENABLED BY ARL IND (CTL2)
; 1958		LOAD=1
; 1959	CLR/=<77:80>		;ENABLED BY ARL IND (CTL2)
; 1960		MQ=10
; 1961		ARX=4
; 1962		ARL=2
; 1963		ARR=1
; 1964		AR=3
; 1965		AR+ARX=7
; 1966		AR+MQ=13
; 1967		ARX+MQ=14
; 1968		AR+ARX+MQ=17
; 1969		ARL+ARX=6
; 1970		ARL+ARX+MQ=16
; 1971		ARR+MQ=11
; 1972	ARL/=<81:83>		;ENABLED BY ARL IND (CTL2)
; 1973		ARL=0
; 1974		ARMM=0		;REQUIRES SPECIAL FUNCTION
; 1975		CACHE=1		;ORDINARILY SELECTED BY HWARE
; 1976		AD=2
; 1977		EBUS=3
; 1978		SH=4
; 1979		AD*2=5
; 1980		ADX=6
; 1981		AD*.25=7
; 1982	AR CTL/=<75:77>		;ENABLED BY COND/REG CTL (CTL2)
; 1983		AR0-8 LOAD=4
; 1984		AR9-17 LOAD=2	;Gates VMAX into ARMM (see VMA4)
; 1985		ARR LOAD=1
; 1986		ARL LOAD=6
; 1987	EXP TST/=<80:80>	;ENABLED BY COND/REG CTL (CTL1)
; 1988		AR_EXP=1
; 1989	MQ CTL/=<82:83>		;ENABLED BY COND/REG CTL (CTL2)
; 1990	;	MQ=0		;WITH MQ/MQ SEL
; 1991		MQ*2=1		;WITH MQ/MQ SEL--Low bit is ADX0
; 1992	;	MQ*.5=2		; " (DROPS BITS 0,6,12,18,24,30)
; 1993		0S=3		; "
; 1994		SH=0		;WITH MQ/MQM SEL
; 1995		MQ*.25=1	;WITH MQ/MQM SEL--High bits are ADX34, ADX35
; 1996		1S=2		; "
; 1997		AD=3		; "
; 1998	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 15
; DEFINE.MIC[4,30]	17:12 9-Aug-84			CONTROL RAM DEFINITIONS -- MAGIC NUMBER FIELD		

; 1999	;SPECIAL CONTROL OF EBOX FLAGS & FUNCTIONS
; 2000	
; 2001	PC FLAGS/=<75:83>	;ENABLED BY COND/PCF_# (SCD4)
; 2002		AROV=420	;SET ARITH OVFLO & TRAP1
; 2003		FLOV=620	;SAME, PLUS FLOATING OVFLO
; 2004		FPD=100		;SET FIRST PART DONE
; 2005		TRAP2=40	;SET TRAP2 (PDL OVFLO)
; 2006		TRAP1=20	;SET TRAP1 (ARITH OVFLO)
; 2007		FXU=630		;FLOV + EXP UNDERFLOW
; 2008		DIV CHK=424	;NO DIVIDE + AROV
; 2009		FDV CHK=624	;FLOATING NO DIVIDE
; 2010	FLAG CTL/=<75:83>	;ENABLED BY SPEC/FLAG CTL (SCD5)
; 2011		RSTR FLAGS=420	;AS IN JRSTF
; 2012		JFCL=602	;FORCE PC 00 = AROV
; 2013		JFCL+LD=622	;SECOND PART OF JFCL -- CLEAR TESTED FLAGS
; 2014		DISMISS=502	;CLEAR PI CYCLE IF SET (CON5)
; 2015				; ELSE DISMISS HIGHEST PI HOLD
; 2016		DISMISS+LD=522	;LOAD FLAGS AND DISMISS
; 2017		HALT=442	;STOP PROCESSOR IF LEGAL (CON2)
; 2018		SET FLAGS=20	;AS IN MUUO
; 2019		PORTAL=412	;CLEAR PUBLIC IF PRIVATE INSTR
; 2020	SPEC INSTR/=<75:83>	;ENABLED BY COND/SPEC INSTR
; 2021		SET PI CYCLE=714; (CON5)
; 2022		KERNEL CYCLE=200;MAKE IO LEGAL, EXEC ADDR SPACE (CON4)
; 2023		INH PC+1=100	;TO MAKE JSR WORK IN TRAP, INTRPT (CON4)
; 2024		SXCT=40		;START SECTION XCT (MCL4)
; 2025		PXCT=20		;START PREV CONTXT XCT (MCL4)
; 2026		INTRPT INH=10	;INHIBIT INTERRUPTS (CON4)
; 2027		INSTR ABORT=4	; (CON2)
; 2028		HALTED=302	;TELL CONSOLE WE'RE HALTED (CON4)
; 2029		CONS XCT=310	;FLAGS FOR INSTR XCT'D FROM CONSOLE
; 2030		CONT=0		;RESTORE NORMAL STATE FOR CONTINUE
; 2031	FETCH/=<75:83>		;ENABLED BY MEM/FETCH
; 2032		UNCOND=400
; 2033				;LOW 2 BITS DECODED ON (IR3)
; 2034		COMP=201,2	;DEPENDING ON AD AND DRAM B
; 2035		SKIP=202,2
; 2036		TEST=203,1
; 2037		JUMP=502,2	;AS IN JUMPX, ON AD AND DRAM B
; 2038		JFCL=503,1	;JUMP ON TEST CONDITION
; 2039	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 16
; DEFINE.MIC[4,30]	17:12 9-Aug-84			CONTROL RAM DEFINITIONS -- MAGIC NUMBER FIELD		

; 2040	;SPECIAL MEMORY REQUEST FUNCTIONS
; 2041	
; 2042	.IF/MODEL.B
; 2043	EA CALC/=<75:83>	;SPECIFIC CONTROLS FOR MEM/EA CALC
; 2044	;	LOAD AR=400
; 2045	;	LOAD ARX=200
; 2046	;	PAUSE=100	;Freeze memory--always use with 040
; 2047	;	WRITE=040	;SET VMA WRITE
; 2048	;	PREV EN=20	;PREV CONTXT SELECTED BY SR AND PXCT
; 2049	;	INDIRECT=10	;PREV CONTXT FOR EA CALC
; 2050	;	EA=2		;RESTORATION OF ORIGINAL EA CONDITIONS
; 2051	;	STACK=1		;PREV CONTXT SELECTED BY PXCT B12
; 2052	.IF/XADDR		;JUST TO ARX FOR EXTENDED ADDRESSING
; 2053		A IND=230	;INDIRECT AT FIRST EA CALC TIME
;;2054	.IFNOT/XADDR		;TO BOTH AR AND ARX AS IN MODEL A
;;2055		A IND=630	;INDIRECT AT FIRST EA CALC TIME
; 2056	.ENDIF/XADDR
; 2057		BYTE LD=420	;Read byte data to AR only [337]
; 2058		BYTE RD=620	;READ BYTE DATA TO AR & ARX
; 2059		BYTE RD PC=621	;READ BYTE DATA TO AR & ARX WITH PC SECTION
; 2060		BYTE RPW=760	;Read byte data to AR, ARX, write test, pause [312]
; 2061		BYTE IND=610	;INDIRECT AT BYTE EA CALC TIME
; 2062		PUSH=041	;STORE TO STACK
; 2063		POP AR=421	;READ FROM STACK TO AR
; 2064		POP ARX=221	;READ FROM STACK TO ARX
; 2065		POP AR-ARX=621	;POP TO BOTH
; 2066		WRITE(E)=042
; 2067		LD AR(EA)=402	;LOAD AR GLOBAL/LOCAL AS IN EA
; 2068		LD AR+WR=440	;LOAD AR, TEST WRITABILITY
; 2069		LD ARX+WR=240	;LOAD ARX, TEST WRITABILITY
; 2070	.ENDIF/MODEL.B
; 2071	
; 2072	SP MEM/=<75:83>		;ENABLED BY SPEC/SP MEM CYCLE
; 2073		FETCH=400	;LOAD IR WHEN DATA ARRIVES (MCL5)
; 2074		USER=200	;FORCE USER OR UPT (MCL2)
; 2075		EXEC=100	;FORCE EXEC OR EPT (MCL3)
; 2076		SEC 0=40	;CLEAR VMAX (MCL4)
; 2077		UPT EN=20	;UPT IF USER EN (MCL3)
; 2078		EPT EN=10	;EPT IF NOT USER EN (MCL3)
; 2079		CACHE INH=2	; (MCL6)
; 2080		UNCSH+UNPAGE=103;UNCACHED AND UNPAGED
; 2081		UNPAGED+CACHED=101	;physical reference with cache enabled.
;;2082	.IFNOT/MULTI
;;2083		UNPAGED=101	; (MCL6)
;;2084		EPT=111
;;2085		EPT CACHE=111	;[260]
;;2086		EPT FETCH=511
;;2087		UPT=221
;;2088		UPT FETCH=621
;;2089		PT=31
;;2090		PT FETCH=431
; 2091	.IF/MULTI
; 2092		UNPAGED=103	; (MCL6)
; 2093		EPT=113
; 2094		EPT CACHE=111	;[260]
; 2095		EPT FETCH=513
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 16-1
; DEFINE.MIC[4,30]	17:12 9-Aug-84			CONTROL RAM DEFINITIONS -- MAGIC NUMBER FIELD		

; 2096		UPT=223
; 2097		UPT FETCH=623
; 2098		PT=33
; 2099		PT FETCH=433
; 2100	.ENDIF/MULTI
; 2101	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 17
; DEFINE.MIC[4,30]	17:12 9-Aug-84			CONTROL RAM DEFINITIONS -- MAGIC NUMBER FIELD		

; 2102	;MBOX CONTROLS
; 2103	
; 2104	MREG FNC/=<75:83>	;ENABLED BY MEM/REG FUNC (APR6)
; 2105		SBUS DIAG=407	;PERFORM SBUS DIAGNOSTIC CYCLE
; 2106		READ UBR=502	;ASK MBOX TO LOAD UBR INTO EBUS REG
; 2107		READ EBR=503	;PUT EBR INTO EBUS REG
; 2108		READ ERA=504
; 2109		WR REFILL RAM=505	;DISGUISED AS A "READ REG" FUNCTION
; 2110	.IF/MODEL.B		;THIS GOT CHANGED IN THE GENERAL SPEEDUP (APR6)
; 2111		LOAD CCA=606	;START A SWEEP
;;2112	.IFNOT/MODEL.B		;HERE IS WHAT IT USED TO BE
;;2113		LOAD CCA=601	;START A SWEEP
; 2114	.ENDIF/MODEL.B
; 2115		LOAD UBR=602	;SETUP UBR FROM VMA
; 2116		LOAD EBR=603	;SETUP EBR FROM VMA
; 2117		MAP=140		;GET PHYS ADDR CORRESPONDING TO VMA (MCL6)
; 2118	MBOX CTL/=<75:83>	;ENABLED BY COND/MBOX CTL (APR5)
; 2119		SET PAGE FAIL=200
; 2120		SET IO PF ERR=100
; 2121		CLR PT LINE(NK)=61,,1;[333] Clear valid if no Keep bit set
; 2122		PT DIR CLR(NK)=41;Enable clear of PT DIR for non keep entries
; 2123		CLR PT LINE=31,,1;CLEAR VALID FOR 4 ENTRIES (new pager board) [342]
; 2124		PT DIR WR=20,1	;WRITE PAGE TABLE DIRECTORY
; 2125		PT WR=10,1	;WRITE PAGE TABLE ENTRY SELECTED BY VMA
; 2126		PT DIR CLR=1	;SELECT FOR CLEARING PT DIR (PAG3)
; 2127		NORMAL=0	;RESET PT WR SELECTION
; 2128	MTR CTL/=<81:83>	;FUNCTION DECODING FOR METERS (MTR3)
; 2129		CLR TIME=0		; USUALLY USED WITH DIAG FUNC
; 2130		CLR PERF=1
; 2131		CLR E CNT=2
; 2132		CLR M CNT=3
; 2133		LD PA LH=4
; 2134		LD PA RH=5
; 2135		CONO MTR=6
; 2136		CONO TIM=7
; 2137	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 18
; DEFINE.MIC[4,30]	17:12 9-Aug-84			CONTROL RAM DEFINITIONS -- MAGIC NUMBER FIELD		

; 2138	;I/O FUNCTIONS
; 2139	
; 2140	EBUS CTL/=<75:83>	;ENABLED BY COND/EBUS CTL (APR3)
; 2141		GRAB EEBUS=400	;"EBUS RETURN" TAKES ECL EBUS FOR EBOX
; 2142		REQ EBUS=200
; 2143		REL EBUS=100	; (CON3)
; 2144		EBUS DEMAND=60	;ASSERT DEMAND, KEEP CS, FUNC
; 2145		EBUS NODEMAND=20;DROP DEMAND, KEEP CS, FUNC
; 2146	;	CTL_IR=10	;SELECT F01 & F02 FROM IR
; 2147	;	DISABLE CS=4	;TURN OFF CONTROLLER SELECT
; 2148	;	DATAIO=2	;0 FOR CONI/O
; 2149	;	INPUT=1		;0 FOR OUTPUT
; 2150		IO INIT=30	;ENABLE IR3-9 TO EBUS CONTROLLER SELECT,
; 2151				; IR10-12 (DECODED) TO FUNCTION
; 2152				; AND AR ONTO EBUS IF FUNCTION IS OUTPUT
; 2153		DATAO=26	;0'S TO CS, DATAO TO FCN, AND AR TO EBUS
; 2154		DATAI=27	;0'S TO CS, DATAI TO FCN
; 2155		REL EEBUS=0	;LEGGO
; 2156	DIAG FUNC/=<75:83>	;ENABLED BY COND/DIAG FUNC (CTL3)
; 2157		.5 USEC=400,3		;STRETCH CLOCK TO LET EBUS SETTLE (CON?)
; 2158		LD PA LEFT=404,3	;LH PERF ANAL CONTROLS FROM RH (MTR)
; 2159		LD PA RIGHT=405,3	;RH PA CONTROLS FROM RH (MTR)
; 2160		CONO MTR=406,3		;ACCOUNTING CONTROLS (MTR)
; 2161		CONO TIM=407,3		;INTERVAL TIMER CONTROLS (MTR)
; 2162		CONO APR=414,3		; (CON3)
; 2163		CONO PI=415,3		; (CON3)
; 2164		CONO PAG=416,3		;CACHE & PAGING CTL (CON3)
; 2165		DATAO APR=417,3		;ADDRESS BREAK (CON3)
; 2166		DATAO PAG=620,3		;AC BLOCKS & PREV CONTXT (CON3)
; 2167		LD AC BLKS=425,3	;FORCE LOADING AC BLOCKS
; 2168		LD PCS+CWSX=426,3	;FORCE LOADING PREV CONTXT SEC, CWSX
; 2169		CONI PI(R)=500,3	;PI HOLD & ACTIVE TO LH (PI)
; 2170		CONI PI(L)=501,3	;PI GEN TO LH (PI)
; 2171		CONI APR(R)=510,3	;APR INTERRUPT & PIA TO LH (APR6)
; 2172		RD TIME=510,3		;TIME BASE TO RH (MTR5)
; 2173		DATAI PAG(L)=511,3	;AC BLOCKS, PREV CONTXT TO LH (APR6)
; 2174		RD PERF CNT=511,3	;PERFORMANCE COUNT TO RH (MTR5)
; 2175		CONI APR(L)=512,3	;APR INTERRUPT ENABLES TO LH (APR6)
; 2176		RD EBOX CNT=512,3	;EBOX COUNT TO RH (MTR5)
; 2177		DATAI APR=513,3		;ADDR BREAK CONDITIONS TO LH (APR6)
; 2178		RD CACHE CNT=513,3	;CACHE COUNT TO RH (MTR5)
; 2179		RD INTRVL=514,3		;INTERVAL TIMER TO RH (MTR5)
; 2180		RD PERIOD=515,3		;PERIOD REGISTER TO RH (MTR5)
; 2181		CONI MTR=516,3		;CONTROLS & PIA TO RH (MTR5)
; 2182		RD MTR REQ=517,3	;ENCODED UPDATE REQUEST TO 20-22 (MTR5)
; 2183		CONI PI(PAR)=530,3	;WRITE EVEN PARITY ENABLES TO RH (CON1)
; 2184		CONI PAG=531,3		;CACHE & TRAP CTL TO RH (CON1)
; 2185		RD EBUS REG=567,3	;EBUS REGISTER IN MBOX (MBZ1 & MBC1)
; 2186	
; 2187	PARITY/=0,0,0,P		;USE ANY AVAILABLE FIELD FOR PARITY
; 2188	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 19
; DEFINE.MIC[4,30]	17:12 9-Aug-84			DISPATCH RAM DEFINITIONS				

; 2189	.TOC	"DISPATCH RAM DEFINITIONS"
; 2190	;FIELDS ARE ARRANGED FOR EASY READING, NOT COMPACTNESS
; 2191	
; 2192		.DCODE
; 2193	A/=<0:2>		;OPERAND FETCH MODE
; 2194		IMMED=0		;IMMEDIATE
; 2195		IMMED-PF=1	;IMMEDIATE, START PREFETCH
; 2196	.IF/MODEL.B
; 2197		ADDR=2		;FULL EFFECTIVE ADDRESS
; 2198	.ENDIF/MODEL.B
; 2199		WR-TST=3	;TEST WRITABILITY
; 2200		READ=4		;READ ONLY
; 2201		READ-PF=5	;READ, THEN PREFETCH
; 2202		RD-WR=6		;READ WRITE (SEPARATE CYCLES)
; 2203		RD-P-WR=7	;READ PAUSE WRITE
; 2204	
; 2205	B/=<3:5>		;STORE RESULTS AT--
; 2206		DBL AC=1	;DOUBLE RESULT TO AC & AC+1
; 2207		DBL BOTH=2	;MULB, DIVB, ETC
; 2208		SELF=3		;SELF MODE INSTRUCTIONS
; 2209		AC=5		;SINGLE RESULT TO AC, PREFETCH IN PROG
; 2210		MEM=6		;RESULT TO MEMORY
; 2211		BOTH=7		;SINGLE RESULT TO MEMORY AND AC
; 2212	
; 2213		SJC-=3		;SKIP JUMP COMPARE CONTROLS
; 2214		SJCL=2
; 2215		SJCE=1
; 2216		SJCLE=0
; 2217		SJCA=7
; 2218		SJCGE=6
; 2219		SJCN=5
; 2220		SJCG=4
; 2221	B0/=<3:3>		;INVERTS VARIOUS TEST, SKIP, AND JUMP CONTROLS
; 2222		CRY0(0)=0	;TEST TST CAUSES PC SKIP IF CRY0=0
; 2223		CRY0(1)=1	; SAME IF CRY0=1
; 2224	B1-2/=<4:5>		;FLOATING RESULT STORE MODE
; 2225		AC=1	;RESULT TO AC
; 2226		MEM=2	;RESULT JUST TO MEM
; 2227		BOTH=3	;RESULT TO BOTH
; 2228	
; 2229	PARITY/=<11:11>P
; 2230	
; 2231	J/=<14:23>		;EXECUTOR (40&20-BITS ALWAYS 0)
; 2232		.UCODE
; 2233	
						; 2234	.BIN
						; 2235	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 1
; MACRO.MIC[4,30]	17:12 9-Aug-84			CRAM Macros--Miscellaneous and A			

						; 2236	.TOC	"CRAM Macros--Miscellaneous and A"
; 2237	.NOBIN
; 2238	;
; 2239	;	All the CRAM macros have been alphabetized for easy reference.  We have
; 2240	;	defined "_" to be alphabetically lower than the alphabet (although its
; 2241	;	ASCII representation makes it higher) so that macros such as AR_AR+1
; 2242	;	will precede ARX_AR+1, for example (this seems more intuitive).
; 2243	;
; 2244	[]_[]*[]	"@1/AD, ADA/@2, ADB/@3"
; 2245	[]_[]*FM[]	"@3, ADA/@2, ADB/FM, @1/AD"
; 2246	[]_[]-FM[]	"@3, ADA/@2, ADB/FM, @1/AD, AD/A-B"
; 2247	[]_#[]		"@1_#,#/@2"
; 2248	[]_ADA[]	"@1/AD, ADA/@2, AD/A"
; 2249	[]_ADB[]	"@1/AD, ADA EN/0S, ADB/@2, AD/B"
; 2250	[]_FM[]		"@1/AD, ADA EN/0S, ADB/FM, @2, AD/B"
; 2251	
; 2252	(AR+ARX+MQ)*.25	"ADA/AR,AD/A,AR/AD*.25,ARX/ADX*.25,(MQ)*.25"
; 2253	(AR+ARX+MQ)*2	"ADA/AR,AD/A,AR/AD*2,ARX/ADX*2,(MQ)*2"
; 2254	(MQ)*.25	"COND/REG CTL,MQ/MQM SEL,MQ CTL/MQ*.25"
; 2255	(MQ)*2		"COND/REG CTL,MQ/MQ SEL,MQ CTL/MQ*2"
; 2256	
; 2257	.IF/MODEL.B
; 2258	A INDRCT	"MEM/EA CALC,EA CALC/A IND,VMA/LOAD"
; 2259	A READ		"VMA/PC+1,DISP/DRAM A RD,MEM/A RD,#/300,J/0"
;;2260	.IFNOT/MODEL.B
;;2261	A INDRCT	"MEM/A IND,VMA/LOAD"
;;2262	A READ		"VMA/PC+1,DISP/DRAM A RD,MEM/A RD,#/0,J/0"
; 2263	.ENDIF/MODEL.B
; 2264	ABORT INSTR	"COND/SPEC INSTR,SPEC INSTR/INSTR ABORT"
; 2265	AC0		"FMADR/AC0"
; 2266	AC0_AR		"FMADR/AC0,COND/FM WRITE"
; 2267	AC1_AR		"FMADR/AC1,COND/FM WRITE"
; 2268	AC2_AR		"FMADR/AC2,COND/FM WRITE"
; 2269	AC3_AR		"FMADR/AC3,COND/FM WRITE"
; 2270	.IF/MODEL.B
; 2271	AC4		"FMADR/AC+#,AC-OP/AC+#,AC#/4"
;;2272	.IFNOT/MODEL.B
;;2273	AC4		"FMADR/AC4"
; 2274	.ENDIF/MODEL.B
; 2275	AC4_AR		"AC4,COND/FM WRITE"
; 2276	.IF/MODEL.B
; 2277	AC5		"FMADR/AC+#,AC-OP/AC+#,AC#/5"
;;2278	.IFNOT/MODEL.B
;;2279	AC5		"FMADR/AC5"
; 2280	.ENDIF/MODEL.B
; 2281	AC5_AR		"AC5,COND/FM WRITE"
; 2282	AD FLAGS	"COND/AD FLAGS"
; 2283	AD LONG		"SPEC/AD LONG"
; 2284	ADMSK		"R15"		;23 ONES
; 2285	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 2
; MACRO.MIC[4,30]	17:12 9-Aug-84			CRAM Macros--AR						

; 2286	.TOC	"CRAM Macros--AR"
; 2287	
; 2288	AR_[] AND FM[]	"ADA/@1,ADB/FM,@2,AD/AND,AR/AD"
; 2289	
; 2290	AR_(AR+2BR)*.25	"ADA/AR,ADB/BR*2,AD/A+B,AR/AD*.25"
; 2291	AR_(AR+BR)*.25	"ADA/AR,ADB/BR,AD/A+B,AR/AD*.25"
; 2292	AR_(AR-2BR)*.25	"ADA/AR,ADB/BR*2,AD/A-B,AR/AD*.25"
; 2293	AR_(AR-BR)*.25	"ADA/AR,ADB/BR,AD/A-B,AR/AD*.25"
; 2294	AR_(ARX OR AR*4)*.25	"ADA/ARX,ADB/AR*4,AD/OR,AR/AD*.25"
; 2295	AR_-AC0		"FMADR/AC0,ADB/FM,ADA EN/0S,AD/A-B,AR/AD"
; 2296	AR_-AR		"ADA EN/0S,ADB/AR*4,AD/A-B,AR/AD*.25"
; 2297	AR_-AR LONG	"GEN -AR LONG,AR_AD*.25 LONG"
; 2298	AR_-BR		"ADB/BR,ADA EN/0S,AD/A-B,AR/AD"
; 2299	AR_-BR LONG	"ADA EN/0S,ADB/BR,AD/A-B,AR/AD,ARX/ADX,SPEC/AD LONG"
; 2300	AR_-BR*2 LONG	"ADA EN/0S,ADB/BR*2,AD/A-B,AR/AD,ARX/ADX,SPEC/AD LONG"
; 2301	AR_-BRX		"ADB/BR,ADA EN/0S,AD/A-B,AR/ADX"
; 2302	AR_-DLEN	"DLEN,ADB/FM,ADA EN/0S,AD/A-B,AR/AD"
; 2303	AR_-SLEN	"SLEN,ADB/FM,ADA EN/0S,AD/A-B,AR/AD"
; 2304	AR_0.C		"COND/ARL IND,CLR/AR"
; 2305	AR_0.M		"MEM/ARL IND,CLR/AR"
; 2306	AR_0.S		"SPEC/ARL IND,CLR/AR"
; 2307	AR_0S		"AD/0S,AR/AD"
; 2308	AR_1		"ADA EN/0S,AD/A+1,AR/AD"
; 2309	AR_1 LONG	"ADA EN/0S,AD/A+1,AR/AD*.25,ARX/ADX"
; 2310	AR_1S		"AD/1S,AR/AD"
; 2311	AR_2		"ADA EN/0S,AD/A+1,AR/AD*2"
; 2312	AR_2(AR*BR)	"ADA/AR,ADB/BR,AR/AD*2"
; 2313	AR_2(AR+1)	"ADA/AR,AD/A+1,AR/AD*2"
; 2314	AR_2(AR+BR)	"AR_2(AR*BR),AD/A+B"
; 2315	AR_2(AR+BR) LONG "AR_2(AR*BR),AD/A+B,ARX/ADX*2,SPEC/AD LONG"
; 2316	AR_2(AR-BR)	"AR_2(AR*BR),AD/A-B"
; 2317	
; 2318	AR_AC0		"FMADR/AC0,ADB/FM,AD/B,AR/AD"
; 2319	AR_AC0 COMP	"FMADR/AC0,ADB/FM,AD/SETCB,AR/AD"
; 2320	AR_AC0+1	"ADA EN/0S,ADB/FM,FMADR/AC0,AD/A+B+1,AR/AD"
; 2321	AR_AC1		"FMADR/AC1,ADB/FM,AD/B,AR/AD"
; 2322	AR_AC1 COMP	"FMADR/AC1,ADB/FM,AD/SETCB,AR/AD"
; 2323	AR_AC1*2	"FMADR/AC1,ADB/FM,AD/B,AR/AD*2"
; 2324	AR_AC2		"FMADR/AC2,ADB/FM,AD/B,AR/AD"
; 2325	AR_AC3		"FMADR/AC3,ADB/FM,AD/B,AR/AD"
; 2326	AR_AC3*2	"FMADR/AC3,ADB/FM,AD/B,AR/AD*2"
; 2327	AR_AC4		"AC4,ADB/FM,AD/B,AR/AD"
; 2328	AR_AD*.25 LONG	"AR/AD*.25,ARX/ADX*.25,SPEC/AD LONG"
; 2329	AR_ADMSK AND VMA HELD	"COND/SEL VMA,ADA/PC,ADB/FM,ADMSK,AD/AND,AR/AD"
; 2330	
; 2331	AR_AR AND ADMSK	 "ADMSK,ADB/FM,ADA/AR,AD/AND,AR/AD"
; 2332	.IF/KLPAGE
; 2333	AR_AR AND CSMSK	"CSMSK,ADB/FM,ADA/AR,AD/AND,AR/AD"
; 2334	AR_AR OR PUR	"PUR,ADB/FM,ADA/AR,AD/OR,AR/AD"
; 2335	.ENDIF/KLPAGE
; 2336	AR_AR SWAP	"SH/AR SWAP,AR/SH"
; 2337	
; 2338	AR_AR*.25	"ADA/AR,AD/A,AR/AD*.25"
; 2339	AR_AR*.25 LONG	"ADA/AR,AD/A,AR/AD*.25,ARX/ADX*.25"
; 2340	AR_AR*.5	"ADA/AR,AD/A*2,AR/AD*.25"
; 2341	AR_AR*.5 LONG	"ADA/AR,AD/A*2,SPEC/AD LONG,AR/AD*.25,ARX/ADX*.25"
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 2-1
; MACRO.MIC[4,30]	17:12 9-Aug-84			CRAM Macros--AR						

; 2342	AR_AR*1.25 LONG	"ADA/AR,ADB/AR*4,AD/A+B,AR_AD*.25 LONG"
; 2343	AR_AR*10	"ADA/AR,ADB/AR*4,AD/A+B,AR/AD*2"
; 2344	AR_AR*10 LONG	"ADA/AR,ADB/AR*4,AD/A+B,AR/AD*2,ARX/ADX*2,SPEC/AD LONG"
; 2345	AR_AR*2		"ADA/AR,AD/A,AR/AD*2"
; 2346	AR_AR*2 LONG	"ADA/AR,AD/A,AR/AD*2,ARX/ADX*2"
; 2347	AR_AR*4		"ADB/AR*4,AD/B,AR/AD"
; 2348	AR_AR*4 LONG	"ADB/AR*4,AD/B,AR/AD,ARX/ADX"
; 2349	AR_AR*5 LONG	"ADA/AR,ADB/AR*4,AD/A+B,AR/AD,ARX/ADX,SPEC/AD LONG"
; 2350	AR_AR*8		"ADB/AR*4,AD/B,AR/AD*2"
; 2351	AR_AR*8 LONG	"ADB/AR*4,AD/B,AR/AD*2,ARX/ADX*2"
; 2352	AR_AR*AC0	"FMADR/AC0,ADB/FM,ADA/AR,AR/AD"	;GENERAL BINARY OPERATION
; 2353	AR_AR*AC1	"FMADR/AC1,ADB/FM,ADA/AR,AR/AD"
; 2354	AR_AR*BR	"ADA/AR,ADB/BR,AR/AD"
; 2355	AR_AR*EXPMSK	"EXPMSK,ADB/FM,ADA/AR,AR/AD"	;[224]
; 2356	AR_AR*MSK	"MSK,ADB/FM,ADA/AR,AR/AD"
; 2357	AR_AR*SFLGS	"SFLGS,ADB/FM,ADA/AR,AR/AD"
; 2358	AR_AR*SLEN	"SLEN,ADB/FM,ADA/AR,AR/AD"
; 2359	AR_AR*T0	"T0,ADB/FM,ADA/AR,AR/AD"
; 2360	
; 2361	AR_AR+1		"ADA/AR,AD/A+1,AR/AD"
; 2362	AR_AR+1 LONG	"AR_AR+1,ARX/ADX,SPEC/AD LONG"
; 2363	AR_AR+1-AR0	"ADA/AR,AD/A+1,AR/AD,SPEC/XCRY AR0"
; 2364	AR_AR+BR	"ADA/AR,ADB/BR,AD/A+B,AR/AD"
; 2365	AR_AR+BR LONG	"AR_AR+BR,ARX/ADX,SPEC/AD LONG"
; 2366	AR_AR+E1	"E1,ADB/FM,ADA/AR,AD/A+B,AR/AD"
; 2367	AR_AR+FM[]	"ADA/AR,ADB/FM,@1,AD/A+B,AR/AD";[343]
; 2368	.IF/KLPAGE
; 2369	AR_AR+SBR	"SBR,ADB/FM,ADA/AR,AD/A+B,AR/AD"
; 2370	.ENDIF/KLPAGE
; 2371	AR_AR+T0	"T0,ADB/FM,ADA/AR,AD/A+B,AR/AD"
; 2372	AR_AR+T1	"T1,ADB/FM,ADA/AR,AD/A+B,AR/AD"
;;2373	.IF/TRXDEF
;;2374	AR_AR+TRB	"TRB,ADB/FM,ADA/AR,AD/A+B,AR/AD"
;;2375	AR_AR+TRX	"TRX,ADB/FM,ADA/AR,AD/A+B,AR/AD"
; 2376	.ENDIF/TRXDEF
; 2377	AR_AR+XR	"GEN AR+XR,AR/AD"
; 2378	
; 2379	AR_AR-1		"ADA/AR,AD/A-1,AR/AD"
; 2380	AR_AR-BR	"ADA/AR,ADB/BR,AD/A-B,AR/AD"
; 2381	AR_AR-BR LONG	"AR_AR-BR,ARX/ADX,SPEC/AD LONG"
; 2382	AR_AR-BR-1	"GEN AR*BR,AD/A-B-1,AR/AD"
; 2383	AR_AR-T0	"T0,ADB/FM,ADA/AR,AD/A-B,AR/AD"
; 2384	
; 2385	AR_ARX		"SH/ARX,AR/SH"
; 2386	AR_ARX (AD)	"ADA/ARX,AD/A,AR/AD"
; 2387	AR_ARX (ADX)	"ADA EN/EN,AD/A,AR/ADX"
; 2388	AR_ARX AND ADMSK "ADMSK,ADB/FM,ADA/ARX,AD/AND,AR/AD"
; 2389	AR_ARX ANDC ADMSK "ADMSK,ADB/FM,ADA/ARX,AD/ANDCB,AR/AD"
; 2390	AR_ARX COMP	"ADA EN/EN,AD/SETCA,AR/ADX"
; 2391	.IF/KLPAGE
; 2392	AR_ARX OR PUR	"PUR,ADB/FM,ADA/ARX,AD/OR,AR/AD"
; 2393	.ENDIF/KLPAGE
; 2394	AR_ARX*.25	"ADA/ARX,AD/A,AR/AD*.25"
; 2395	AR_ARX*.25-AR-1	"ADB/AR*4,ADA/ARX,AD/A-B-1,AR/AD*.25"
; 2396	AR_ARX*2	"ADA/ARX,AD/A,AR/AD*2"
; 2397	AR_ARX*4	"ADB/AR*4,AD/B,AR/ADX"
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 2-2
; MACRO.MIC[4,30]	17:12 9-Aug-84			CRAM Macros--AR						

; 2398	AR_ARX*4 COMP	"ADB/AR*4,AD/SETCB,AR/ADX"
; 2399	AR_ARX*AC1	"FMADR/AC1,ADB/FM,ADA/ARX,AR/AD"
; 2400	AR_ARX*BR	"ADA/ARX,ADB/BR,AR/AD"
; 2401	AR_ARX*BRX	"ADA/AR,ADB/BR,AR/ADX"
; 2402	AR_ARX*E1	"E1,ADB/FM,ADA/ARX,AR/AD"
; 2403	AR_ARX+1 (AD)	"ADA/ARX,AD/A+1,AR/AD"
; 2404	AR_ARX+AR*4	"ADA/ARX,ADB/AR*4,AD/A+B,AR/AD"
; 2405	AR_ARX+BR	"ADA/ARX,ADB/BR,AD/A+B,AR/AD"
; 2406	AR_ARX+BRX+1	"ADA EN/EN,ADB/BR,AD/A+B+1,AR/ADX"	;[343]
; 2407	AR_ARX+XR	"GEN ARX+XR,AR/AD"
; 2408	AR_ARX-1	"ADA EN/EN,AD/A-1,AR/ADX"
; 2409	AR_ARX-BR	"ADA/ARX,ADB/BR,AD/A-B,AR/AD"
; 2410	
; 2411	AR_BR		"ADB/BR,AD/B,AR/AD"
; 2412	AR_BR COMP	"ADB/BR,AD/SETCB,AR/AD"
; 2413	AR_BR COMP LONG	"ADB/BR,AD/SETCB,AR/AD,ARX/ADX"
; 2414	AR_BR LONG	"ADB/BR,AD/B,AR/AD,ARX/ADX"
; 2415	AR_BR OR ARX	"ADA/ARX,ADB/BR,AD/OR,AR/AD"
; 2416	AR_BR*.5	"ADB/BR*2,AD/B,AR/AD*.25"
; 2417	AR_BR*.5 LONG	"ADB/BR*2,AD/B,AR/AD*.25,ARX/ADX*.25"
; 2418	AR_BR*2		"ADB/BR*2,AD/B,AR/AD"
; 2419	AR_BR*2 LONG	"ADB/BR*2,AD/B,AR/AD,ARX/ADX"
; 2420	AR_BR*4		"ADB/BR*2,AD/B,AR/AD*2"			;[230]
; 2421	AR_BR*4 LONG	"ADB/BR*2,AD/B,AR/AD*2,ARX/ADX*2"
; 2422	AR_BR+1		"ADB/BR,ADA EN/0S,AD/A+B+1,AR/AD"
; 2423	AR_BR+1 LONG	"ADA EN/0S,ADB/BR,AD/A+B+1,AR/AD,ARX/ADX,SPEC/AD LONG"
; 2424	AR_BRX		"ADB/BR,AD/B,AR/ADX"
; 2425	AR_BRX+1	"ADA EN/0S,ADB/BR,AD/A+B+1,AR/ADX"
; 2426	
; 2427	AR_CACHE CNT	"DIAG IN,DIAG FUNC/RD CACHE CNT"
; 2428	AR_DLEN		"DLEN,AR_FM"
; 2429	AR_DLEN COMP	"DLEN,ADB/FM,AD/SETCB,AR/AD"
; 2430	AR_DLEN+1	"DLEN,ADB/FM,ADA EN/0S,AD/A+B+1,AR/AD"
; 2431	AR_DSTP		"DSTP,AR_FM"
; 2432	AR_DSTP+1	"DSTP,ADB/FM,ADA EN/0S,AD/A+B+1,AR/AD"
; 2433	AR_DSTP2	"DSTP2,AR_FM"
; 2434	AR_DSTP2+1	"DSTP2,ADB/FM,ADA EN/0S,AD/A+B+1,AR/AD"
; 2435	AR_DSTW		"DSTW,AR_FM"
; 2436	AR_E0		"E0,AR_FM"
; 2437	AR_E1		"E1,AR_FM"
; 2438	AR_EBOX CNT	"DIAG IN,DIAG FUNC/RD EBOX CNT"
; 2439	AR_EBUS		"AR/EBUS,TIME/5T"
; 2440	AR_EBUS REG	"DIAG IN,DIAG FUNC/RD EBUS REG"
; 2441	AR_FILL		"FILL,AR_FM"
; 2442	AR_FM		"ADB/FM,AD/B,AR/AD"
; 2443	AR_FM[]		"AR/AD, AD/B, ADB/FM, @1"	;[274]
; 2444	.IF/MODEL.B
; 2445	AR_FM(#)	"FMADR/AC+#,AC-OP/AC+#,ADB/FM,AD/B,AR/AD"
; 2446	.ENDIF/MODEL.B
; 2447	AR_FM(VMA)	"FMADR/VMA,ADB/FM,AD/B,AR/AD"
; 2448	AR_INTERVAL	"DIAG IN,DIAG FUNC/RD INTRVL"
; 2449	
; 2450	AR_MEM		"MEM/MB WAIT,FMADR/VMA,ADB/FM,AD/B"
; 2451	AR_MQ		"ADA/MQ,AD/A,AR/AD"
; 2452	AR_MQ COMP	"ADA/MQ,AD/SETCA,AR/AD"
; 2453	AR_MQ*.25	"ADA/MQ,AD/A,AR/AD*.25"
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 2-3
; MACRO.MIC[4,30]	17:12 9-Aug-84			CRAM Macros--AR						

; 2454	AR_MQ*2		"ADA/MQ,AD/A,AR/AD*2"
; 2455	AR_MQ*4		"ADA/MQ,AD/A*2,AR/AD*2"
; 2456	AR_MQ*AC1	"FMADR/AC1,ADB/FM,ADA/MQ,AR/AD"
; 2457	AR_MQ*AC2	"FMADR/AC2,ADB/FM,ADA/MQ,AR/AD"
; 2458	AR_MQ*AC3	"FMADR/AC3,ADB/FM,ADA/MQ,AR/AD"
; 2459	AR_MQ+1		"ADA/MQ,AD/A+1,AR/AD"
; 2460	AR_MQ+AC0	"FMADR/AC0,ADB/FM,ADA/MQ,AD/A+B,AR/AD"
; 2461	AR_MQ+BR	"ADA/MQ,ADB/BR,AD/A+B,AR/AD"		;[343]
; 2462	AR_MQ-1		"ADA/MQ,AD/A-1,AR/AD"
; 2463	AR_MQ-BR	"ADA/MQ,ADB/BR,AD/A-B,AR/AD"
; 2464	AR_MTR REQ	"DIAG IN,DIAG FUNC/RD MTR REQ"
; 2465	AR_PC		"ADA/PC,AD/A,AR/AD"
; 2466	AR_PC FLAGS	"ADMSK,ADB/FM,ADA/PC,AD/ANDCB,AR/AD"
; 2467	AR_PC+1		"ADA/PC,AD/A+1,AR/AD,SPEC/SAVE FLAGS"
; 2468	AR_PERF CNT	"DIAG IN,DIAG FUNC/RD PERF CNT"
; 2469	AR_PERIOD	"DIAG IN,DIAG FUNC/RD PERIOD"
; 2470	.IF/KLPAGE
; 2471	AR_PUR+AR0	"PUR,ADB/FM,ADA EN/0S,AD/A+B,SPEC/XCRY AR0,AR/AD"
; 2472	.ENDIF/KLPAGE
; 2473	
; 2474	AR_SERIAL	"AR/ARMM,COND/REG CTL,AR CTL/ARR LOAD"
; 2475	AR_SFLGS	"SFLGS,AR_FM"
; 2476	AR_SHIFT	"SH/SHIFT AR!ARX,AR/SH"
; 2477	AR_SIGN		"AD/XCRY-1,SPEC/XCRY AR0,AR/AD"
; 2478	AR_SLEN		"SLEN,AR_FM"
; 2479	AR_SLEN COMP	"SLEN,ADB/FM,AD/SETCB,AR/AD"
; 2480	AR_SLEN+1	"SLEN,ADB/FM,ADA EN/0S,AD/A+B+1,AR/AD"
; 2481	AR_SRCP		"SRCP,AR_FM"
; 2482	AR_SRCP+1	"SRCP,ADB/FM,ADA EN/0S,AD/A+B+1,AR/AD"
; 2483	AR_SRCP2	"SRCP2,AR_FM"
; 2484	AR_SRCP2+1	"SRCP2,ADB/FM,ADA EN/0S,AD/A+B+1,AR/AD"
; 2485	AR_SV.AR	"SV.AR,AR_FM"
; 2486	.IF/KLPAGE
; 2487	AR_SV.ARX	"SV.ARX,AR_FM"
; 2488	AR_SV.BR	"SV.BR,AR_FM"
; 2489	AR_SV.PFW	"SV.PFW,AR_FM"
; 2490	AR_SV.SC	"SV.SC,AR_FM"
; 2491	AR_SV.VMA	"SV.VMA,AR_FM"
; 2492	.ENDIF/KLPAGE
; 2493	AR_SWD		"SWD,AR_FM"
; 2494	
; 2495	AR_T0		"T0,AR_FM"
; 2496	AR_T1		"T1,AR_FM"
; 2497	AR_T2		"T2,AR_FM"
; 2498	AR_TIME BASE	"DIAG IN,DIAG FUNC/RD TIME"
;;2499	.IF/TRXDEF
;;2500	AR_TRB		"TRB,AR_FM"
;;2501	AR_TRX		"TRX,AR_FM"
;;2502	AR_TRX+1	"TRX,ADB/FM,ADA EN/0S,AD/A+B+1,AR/AD"
;;2503	AR_TRX1		"TRX1,AR_FM"
;;2504	AR_TRX2		"TRX2,AR_FM"
;;2505	AR_TRX2+1	"TRX2,ADB/FM,ADA EN/0S,AD/A+B+1,AR/AD"
;;2506	AR_TRX3		"TRX3,AR_FM"
;;2507	AR_TRX3+1	"TRX3,ADB/FM,ADA EN/0S,AD/A+B+1,AR/AD"
; 2508	.ENDIF/TRXDEF
; 2509	AR_VMA HELD	"COND/SEL VMA,AR_PC"
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 2-4
; MACRO.MIC[4,30]	17:12 9-Aug-84			CRAM Macros--AR						

; 2510	AR_XR		"FMADR/XR,ADB/FM,AD/B,AR/AD"
; 2511	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 3
; MACRO.MIC[4,30]	17:12 9-Aug-84			CRAM Macros--AR Miscellaneous, ARL, and ARR		

; 2512	.TOC	"CRAM Macros--AR Miscellaneous, ARL, and ARR"
; 2513	
; 2514	AR+ARX+MQ_0.M	"MEM/ARL IND,CLR/AR+ARX+MQ"
; 2515	AR+MQ_0.M	"MEM/ARL IND,CLR/AR+MQ"
; 2516	AR+MQ_0.S	"SPEC/ARL IND,CLR/AR+MQ"
; 2517	
; 2518	AR0-3 DISP	"SH/AR,DISP/SH0-3"
; 2519	AR0-8_#		"COND/LD AR0-8,AR/ARMM,ARMM/#"
; 2520	AR0-8_# AND AR0-8 "SCADA/#,SCADB/AR0-8,SCAD/AND,AR0-8_SCAD#"
; 2521	AR0-8_# OR AR0-8 "SCADA/#,SCADB/AR0-8,SCAD/OR,AR0-8_SCAD#"
; 2522	AR0-8_#+SC	"SCADA/#,SCADB/SC,SCAD/A+B,AR0-8_SCAD#"
; 2523	AR0-8_-SC-1	"SCADA EN/0S,SCADB/SC,SCAD/A-B-1,AR0-8_SCAD"
; 2524	AR0-8_FE	"SCADA/FE,SCAD/A,AR0-8_SCAD"
; 2525	AR0-8_FE OR #	"SCADA/FE,SCADB/#,SCAD/OR,AR0-8_SCAD#"
; 2526	AR0-8_FE OR SC	"SCADA/FE,SCADB/SC,SCAD/OR,AR0-8_SCAD.M"
; 2527	AR0-8_FE#	"SCADA/FE,SCAD/A,ARMM/SCAD EXP,AR/ARMM,COND/LD AR0-8"
; 2528	AR0-8_FE+#	"SCADA/FE,SCADB/#,SCAD/A+B,AR0-8_SCAD#"
; 2529	AR0-8_FE+1	"SCADA/FE,SCAD/A+1,AR0-8_SCAD"
; 2530	AR0-8_FE+SC	"SCADA/FE,SCADB/SC,SCAD/A+B,AR0-8_SCAD.M"
; 2531	AR0-8_FE-SC	"SCADA/FE,SCADB/SC,SCAD/A-B,AR0-8_SCAD.M"
; 2532	AR0-8_FE.M	"SCADA/FE,SCAD/A,AR0-8_SCAD.M"
; 2533	AR0-8_FE.R	"GEN FE,AR0-8_SCAD.R"
; 2534	AR0-8_SC	"SCADA EN/0S,SCADB/SC,SCAD/A+B,AR0-8_SCAD"
; 2535	AR0-8_SCAD	"SPEC/ARL IND,ARL/ARMM,AR0-8/LOAD,ARMM/SCAD EXP"
; 2536	AR0-8_SCAD#	"ARMM/SCAD EXP,AR/ARMM,COND/LD AR0-8"
; 2537	AR0-8_SCAD.M	"MEM/ARL IND,ARL/ARMM,AR0-8/LOAD,ARMM/SCAD EXP"
; 2538	AR0-8_SCAD.R	"ARMM/SCAD EXP,AR/ARMM,COND/REG CTL,AR CTL/AR0-8 LOAD"
; 2539	AR12-17_PC SEC	"AR/ARMM,VMAX/PC SEC,COND/LD AR9-17"
; 2540	AR12-17_PREV SEC	"AR/ARMM,VMAX/PREV SEC,COND/LD AR9-17"
; 2541	AR18-21 DISP	"SH/AR SWAP,DISP/SH0-3"
; 2542	
; 2543	ARL_0.C		"COND/ARL IND,CLR/ARL"
; 2544	ARL_0.M		"MEM/ARL IND,CLR/ARL"
; 2545	ARL_0.S		"SPEC/ARL IND,CLR/ARL"
; 2546	ARL_0S		"COND/ARL IND,CLR/ARL"
; 2547	ARL_1.M		"ADA EN/0S,AD/A+1,SPEC/GEN CRY18,MEM/ARL IND,ARL/AD"
; 2548	ARL_1S		"AD/1S,COND/ARL IND,ARL/AD"
; 2549	ARL_1S.M	"AD/1S,MEM/ARL IND,ARL/AD"
; 2550	ARL_AC0		"FMADR/AC0,ADB/FM,AD/B,COND/ARL IND,ARL/AD"
; 2551	ARL_ARL		"COND/ARL IND,ARL/ARL"
; 2552	ARL_ARL.M	"MEM/ARL IND,ARL/ARL"
; 2553	ARL_ARL.S	"SPEC/ARL IND,ARL/ARL"
; 2554	ARL_ARR		"COND/ARL IND,ARL/SH,SH/AR SWAP"
; 2555	ARL_ARR.M	"MEM/ARL IND,ARL/SH,SH/AR SWAP"
; 2556	ARL_ARR.S	"SPEC/ARL IND,ARL/SH,SH/AR SWAP"
; 2557	ARL_ARX (ADX)	"ADA EN/EN,AD/A,MEM/ARL IND,ARL/ADX"
; 2558	ARL_ARXL	"SPEC/ARL IND,SH/ARX,ARL/SH"
; 2559	ARL_ARXL.M	"MEM/ARL IND,SH/ARX,ARL/SH"
; 2560	ARL_BRL		"ADB/BR,AD/B,COND/ARL IND,ARL/AD"
; 2561	ARL_BRL.M	"ADB/BR,AD/B,MEM/ARL IND,ARL/AD"
; 2562	ARL_BRL.S	"ADB/BR,AD/B,SPEC/ARL IND,ARL/AD"
; 2563	ARL_SHIFT	"MEM/ARL IND,SH/SHIFT AR!ARX,ARL/SH"
; 2564	ARL_SIGN	"AD/XCRY-1,SPEC/XCRY AR0,COND/ARL IND,ARL/AD"
; 2565	ARL+ARX+MQ_0.M	"MEM/ARL IND,CLR/ARL+ARX+MQ"
; 2566	ARL+ARX_0.M	"MEM/ARL IND,CLR/ARL+ARX"
; 2567	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 3-1
; MACRO.MIC[4,30]	17:12 9-Aug-84			CRAM Macros--AR Miscellaneous, ARL, and ARR		

; 2568	ARR_0.C		"COND/ARL IND,CLR/ARR"
; 2569	ARR_0.M		"MEM/ARL IND,CLR/ARR"
; 2570	ARR_0.S		"SPEC/ARL IND,CLR/ARR"
; 2571	ARR_0S		"AR_0S"
; 2572	ARR_1S		"AR_1S"
; 2573	ARR_AC0		"AR_AC0"
; 2574	ARR_AC0.S	"SPEC/ARL IND,FMADR/AC0,ADB/FM,AD/B,AR/AD"
; 2575	ARR_AR+1	"AR_AR+1"				;[343]
; 2576	ARR_AR+BR	"AR_AR+BR"				;[343]
; 2577	ARR_ARL		"SH/AR SWAP,AR/SH"
; 2578	ARR_ARR		"AR/AR"
; 2579	ARR_ARX+BR	"AR_ARX+BR"				;[343]
; 2580	ARR_BR		"ADB/BR,AD/B,COND/ARL IND,AR/AD"	;[252]
; 2581	ARR_PC+1	"ADA/PC,AD/A+1,AR/AD"
; 2582	ARR+MQ_0.S	"SPEC/ARL IND,CLR/ARR+MQ"
; 2583	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 4
; MACRO.MIC[4,30]	17:12 9-Aug-84			CRAM Macros--ARX					

; 2584	.TOC	"CRAM Macros--ARX"
; 2585	
; 2586	ARX_-2+MQ0	"AD/1S,ARX/ADX*2"			;[343] -2 if MQ0 = 0
; 2587	ARX_-AC0	"ADA EN/0S,ADB/FM,FMADR/AC0,AD/A-B,ARX/AD"
; 2588	ARX_-BRX	"ADB/BR,ADA EN/0S,AD/A-B,ARX/ADX"
; 2589	ARX_-SLEN	"SLEN,ADB/FM,ADA EN/0S,AD/A-B,ARX/AD"
; 2590	ARX_0.C		"COND/ARL IND,CLR/ARX"
; 2591	ARX_0.M		"MEM/ARL IND,CLR/ARX"
; 2592	ARX_0.S		"SPEC/ARL IND,CLR/ARX"
; 2593	ARX_0S		"AD/0S,ARX/AD"
; 2594	ARX_1		"ADA EN/0S,AD/A+1,ARX/AD"
; 2595	ARX_1B1		"ADA EN/0S,AD/A+1,ARX/ADX*.25"
; 2596	ARX_1B17-1	"ADA EN/0S,AD/A-1,SPEC/GEN CRY18,ARX/AD"
; 2597	ARX_1S		"AD/1S,ARX/AD"
; 2598	ARX_2		"ADA EN/0S,AD/A+1,ARX/ADX*2"
; 2599	
; 2600	ARX_AC0		"FMADR/AC0,ADB/FM,AD/B,ARX/AD"
; 2601	ARX_AC0 COMP	"ADB/FM,FMADR/AC0,AD/SETCB,ARX/AD"
; 2602	ARX_AC0+1	"ADA EN/0S,ADB/FM,FMADR/AC0,AD/A+B+1,ARX/AD"
; 2603	ARX_AC1		"FMADR/AC1,ADB/FM,AD/B,ARX/AD"
; 2604	ARX_AC2		"FMADR/AC2,ADB/FM,AD/B,ARX/AD"
; 2605	ARX_AC3		"FMADR/AC3,ADB/FM,AD/B,ARX/AD"
; 2606	ARX_AC4		"AC4,ADB/FM,AD/B,ARX/AD"
; 2607	
; 2608	ARX_AR		"SH/AR,ARX/SH"
; 2609	ARX_AR (AD)	"ADA/AR,AD/A,ARX/AD"
; 2610	ARX_AR AND ADMSK "ADMSK,ADB/FM,ADA/AR,AD/AND,ARX/AD"
; 2611	ARX_AR ANDCA BR	"ADA/AR,ADB/BR,AD/ANDCA,ARX/AD"
; 2612	ARX_AR SIGN	"AD/XCRY-1,SPEC/XCRY AR0,ARX/AD"
; 2613	ARX_AR SWAP	"SH/AR SWAP,ARX/SH"
; 2614	ARX_AR*2	"ADA/AR,AD/A*2,ARX/AD"			;[343]
; 2615	ARX_AR*4 COMP	"ADB/AR*4,AD/SETCB,ARX/AD"
; 2616	ARX_AR*MSK	"MSK,ADB/FM,ADA/AR,ARX/AD"
; 2617	ARX_AR+1	"ADA/AR,AD/A+1,ARX/AD"
; 2618	.IF/KLPAGE
; 2619	ARX_AR+CBR	"CBR,ADB/FM,ADA/AR,AD/A+B,ARX/AD"
; 2620	.ENDIF/KLPAGE
; 2621	ARX_AR-1	"ADA/AR,AD/A-1,ARX/AD"
; 2622	ARX_AR-BR	"ADA/AR,ADB/BR,AD/A-B,ARX/AD"		;[224]
; 2623	
; 2624	ARX_ARX AND ADMSK "ADMSK,ADB/FM,ADA/ARX,AD/AND,ARX/AD"
; 2625	ARX_ARX ANDC ADMSK "ADMSK,ADB/FM,ADA/ARX,AD/ANDCB,ARX/AD"
; 2626	ARX_ARX*-6	"ADA EN/EN,ADB/AR*4,AD/A-B,ARX/ADX*2"
; 2627	ARX_ARX*.25	"ADA EN/EN,AD/A,ARX/ADX*.25"
; 2628	ARX_ARX*.5	"ADA EN/EN,AD/A*2,ARX/ADX*.25"
; 2629	ARX_ARX*2	"ADA EN/EN,AD/A,ARX/ADX*2"
; 2630	ARX_ARX*2 COMP	"ADA EN/EN,AD/SETCA,ARX/ADX*2"
; 2631	ARX_ARX*4	"ADB/AR*4,AD/B,ARX/ADX"
; 2632	ARX_ARX*4 COMP	"ADB/AR*4,AD/SETCB,ARX/ADX"
; 2633	ARX_ARX*8	"ADB/AR*4,AD/B,ARX/ADX*2"
; 2634	ARX_ARX*BRX	"ADA/AR,ADB/BR,ARX/ADX"
; 2635	ARX_ARX*EXPMSK	"EXPMSK,ADB/FM,ADA/ARX,ARX/AD"		;[224]
; 2636	ARX_ARX+1	"ADA EN/EN,AD/A+1,ARX/ADX"
; 2637	.IF/KLPAGE
; 2638	ARX_ARX+CBR	"CBR,ADB/FM,ADA/ARX,AD/A+B,ARX/AD"
; 2639	.ENDIF/KLPAGE
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 4-1
; MACRO.MIC[4,30]	17:12 9-Aug-84			CRAM Macros--ARX					

; 2640	ARX_ARX+FM[]	"ADA/ARX,ADB/FM,@1,AD/A+B,ARX/AD"	;[343]
; 2641	ARX_ARX-1	"ADA EN/EN,AD/A-1,ARX/ADX"
; 2642	ARX_ARX-1 (AD)	"ADA/ARX,AD/A-1,ARX/AD"
; 2643	ARX_ARX-AR*4	"ADA/ARX,ADB/AR*4,AD/A-B,ARX/AD"	;[343]
; 2644	
; 2645	ARX_BR		"ADB/BR,AD/B,ARX/AD"
; 2646	ARX_BR*2	"ADB/BR*2,AD/B,ARX/AD"
; 2647	ARX_BR+1	"ADB/BR,ADA EN/0S,AD/A+B+1,ARX/AD"
; 2648	ARX_BRX		"ADB/BR,AD/B,ARX/ADX"
; 2649	ARX_BRX COMP	"ADB/BR,AD/SETCB,ARX/ADX"
; 2650	ARX_BRX+1	"ADA EN/0S,ADB/BR,AD/A+B+1,ARX/ADX"
; 2651	ARX_DSTP	"DSTP,ARX_FM"
; 2652	ARX_DSTP2	"DSTP2,ARX_FM"
; 2653	ARX_E1		"E1,ARX_FM"
; 2654	ARX_FILL	"FILL,ARX_FM"				;[310]
; 2655	ARX_FM		"ADB/FM,AD/B,ARX/AD"
; 2656	ARX_FM[]	"ADB/FM,@1,AD/B,ARX/AD"			;[343]
; 2657	ARX_FM(VMA)	"FMADR/VMA,ADB/FM,AD/B,ARX/AD"
; 2658	ARX_MEM		"MEM/MB WAIT,FMADR/VMA,ADB/FM,AD/B"
; 2659	ARX_MQ-1	"ADA/MQ,AD/A-1,ARX/AD"			;[343]
; 2660	
; 2661	ARX_PC		"ADA/PC,AD/A,ARX/AD"
; 2662	ARX_PC+1	"ADA/PC,AD/A+1,ARX/AD,SPEC/SAVE FLAGS"
; 2663	ARX_SHIFT	"SH/SHIFT AR!ARX,ARX/SH"
; 2664	ARX_SRCP	"SRCP,ARX_FM"
; 2665	ARX_SRCP2	"SRCP2,ARX_FM"
; 2666	.IF/KLPAGE
; 2667	ARX_SV.AR	"SV.AR,ARX_FM"
; 2668	ARX_SV.ARX	"SV.ARX,ARX_FM"
; 2669	ARX_SV.BR	"SV.BR,ARX_FM"
; 2670	ARX_SV.VMA	"SV.VMA,ARX_FM"
; 2671	.ENDIF/KLPAGE
; 2672	ARX_T0		"T0,ARX_FM"
; 2673	ARX_T2		"T2,ARX_FM"
;;2674	.IF/TRXDEF
;;2675	ARX_TRB		"TRB,ARX_FM"
; 2676	.ENDIF/TRXDEF
; 2677	ARX_VMA HELD	"COND/SEL VMA,ARX_PC"
; 2678	ARX+MQ_0.M	"MEM/ARL IND,CLR/ARX+MQ"
; 2679	ARX+MQ_0.S	"SPEC/ARL IND,CLR/ARX+MQ"
; 2680	ARX0_AR35	"ADA/AR,AD/A*2+1,ARX/ADX*.25"	;[337]
; 2681	ARX0_MQ35	"ADA/MQ,AD/A*2+1,ARX/ADX*.25"
; 2682	ARX0-3 DISP	"SH/ARX,DISP/SH0-3"
; 2683	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 5
; MACRO.MIC[4,30]	17:12 9-Aug-84			CRAM Macros--B, C, D					

; 2684	.TOC	"CRAM Macros--B, C, D"
; 2685	
; 2686	B DISP		"DISP/DRAM B"
; 2687	B WRITE		"DISP/DRAM B,MEM/B WRITE"
; 2688	BLKO TIM(L)	"SPEC/MTR CTL,DIAG OUT,DIAG FUNC/LD PA LEFT"
; 2689	BLKO TIM(R)	"SPEC/MTR CTL,DIAG OUT,DIAG FUNC/LD PA RIGHT"
; 2690	BR_AR LONG	"BR/AR,BRX/ARX"
; 2691	BYTE DISP	"DISP/BYTE"
;;2692	.IFNOT/MODEL.B
;;2693	BYTE INDRCT	"MEM/BYTE IND,VMA/LOAD"
; 2694	.IF/MODEL.B
; 2695	BYTE INDRCT	"MEM/EA CALC,EA CALC/BYTE IND,VMA/LOAD"
; 2696	BYTE LOAD	"MEM/EA CALC,EA CALC/BYTE LD,VMA/LOAD";[337]
; 2697	.ENDIF/MODEL.B
; 2698	BYTE PREV & CLR SR3	"COND/SR_#,#/640"
; 2699	BYTE PREV & SET SR2	"COND/SR_#,#/622"
; 2700	BYTE PREV & SET SR3	"COND/SR_#,#/641"
; 2701	.IF/MODEL.B
; 2702	BYTE READ	"MEM/EA CALC,EA CALC/BYTE RD,VMA/LOAD"
; 2703	BYTE READ PC	"MEM/EA CALC,EA CALC/BYTE RD PC,VMA/LOAD"
; 2704	BYTE RPW	"MEM/EA CALC,EA CALC/BYTE RPW,VMA/LOAD"
;;2705	.IFNOT/MODEL.B
;;2706	BYTE READ	"MEM/BYTE RD,VMA/LOAD"
;;2707	BYTE RPW	"MEM/RPW,VMA/AD"
; 2708	.ENDIF/MODEL.B
; 2709	
; 2710	.IF/MODEL.B
; 2711	CALL		"CALL/CALL"
;;2712	.IFNOT/MODEL.B
;;2713	CALL		"SPEC/CALL"
; 2714	.ENDIF/MODEL.B
; 2715	CALL []		"CALL, J/@1"
; 2716	CALL[]		"CALL, J/@1"
; 2717	.IF/MODEL.B
; 2718	CALL.C		"CALL/CALL"
; 2719	CALL.M		"CALL/CALL"
; 2720	CALL.S		"CALL/CALL"
;;2721	.IFNOT/MODEL.B
;;2722	CALL.C		"COND/ARL IND,CALL/CALL"
;;2723	CALL.M		"MEM/ARL IND,CALL/CALL"
;;2724	CALL.S		"SPEC/ARL IND,CALL/CALL"
; 2725	.ENDIF/MODEL.B
; 2726	.IF/KLPAGE
; 2727	CBR		"P2"
; 2728	.ENDIF/KLPAGE
; 2729	CLR ACC+SET UCODE	"COND/EBOX STATE,#/245"
; 2730	CLR ACCOUNT EN	"COND/EBOX STATE,#/145"
; 2731	CLR AR		"COND/AR CLR"
; 2732	CLR ARX		"COND/ARX CLR"
; 2733	CLR EBUS DEMAND	"COND/EBUS CTL,EBUS CTL/EBUS NODEMAND"
; 2734	CLR EXP		"SCADA EN/0S,SCAD/A,EXP_SCAD"
; 2735	CLR FE		"SCADA EN/0S,SCAD/A,FE/SCAD"
; 2736	CLR FPD		"SPEC/CLR FPD"
; 2737	CLR MQ		"COND/REG CTL,MQ/MQ SEL,MQ CTL/0S"
; 2738	CLR MTR PA EN	"COND/EBOX STATE,#/025"
; 2739	CLR P		"SCADA EN/0S,SCAD/A,P_SCAD"
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 5-1
; MACRO.MIC[4,30]	17:12 9-Aug-84			CRAM Macros--B, C, D					

; 2740	CLR PT LINE	"COND/MBOX CTL,MBOX CTL/CLR PT LINE"
; 2741	CLR PT LINE (KEEP) "COND/MBOX CTL,MBOX CTL/CLR PT LINE(NK)"
; 2742	CLR SC		"SCADA EN/0S,SCAD/A,SC/SCAD"
; 2743	CLR SPECIAL CYCLE	"COND/SPEC INSTR,SPEC INSTR/0"
; 2744	CLR SR2		"COND/SR_#,#/20"
; 2745	CLR SR3		"COND/SR_#,#/40"
; 2746	CLR TRACKS EN	"COND/EBOX STATE,#/121"
; 2747	CLR TRK+PA EN	"COND/EBOX STATE,#/021"
; 2748	CMS FETCH	"VMA/PC+1,MEM/FETCH,FETCH/SKIP"
; 2749	COMP FETCH	"AD/XOR,VMA/PC+1,MEM/FETCH,FETCH/COMP"
; 2750	CONI APR(L)	"DIAG IN,DIAG FUNC/CONI APR(L)"
; 2751	CONI APR(R)	"DIAG IN,DIAG FUNC/CONI APR(R)"
; 2752	CONI MTR	"DIAG IN,DIAG FUNC/CONI MTR"
; 2753	CONI PAG	"DIAG IN,DIAG FUNC/CONI PAG"
; 2754	CONI PI(L)	"DIAG IN,DIAG FUNC/CONI PI(L)"
; 2755	CONI PI(PAR)	"DIAG IN,DIAG FUNC/CONI PI(PAR)"
; 2756	CONI PI(R)	"DIAG IN,DIAG FUNC/CONI PI(R)"
; 2757	CONO APR	"DIAG OUT,DIAG FUNC/CONO APR"
; 2758	CONO MTR	"SPEC/MTR CTL,DIAG OUT,DIAG FUNC/CONO MTR"
; 2759	CONO PAG	"DIAG OUT,DIAG FUNC/CONO PAG"
; 2760	CONO PI		"DIAG OUT,DIAG FUNC/CONO PI"
; 2761	CONO TIM	"SPEC/MTR CTL,DIAG OUT,DIAG FUNC/CONO TIM"
; 2762	CONTINUE	"COND/SPEC INSTR,SPEC INSTR/CONT"
; 2763	.IF/KLPAGE
; 2764	CSMSK		"P0"
; 2765	.ENDIF/KLPAGE
; 2766	
; 2767	DATAI APR(L)	"DIAG IN,DIAG FUNC/DATAI APR"
; 2768	DATAI PAG(L)	"DIAG IN,DIAG FUNC/DATAI PAG(L)"
; 2769	DATAO APR	"DIAG OUT,DIAG FUNC/DATAO APR"
; 2770	DATAO PAG(L)	"DIAG OUT,DIAG FUNC/DATAO PAG"
; 2771	DIAG IN		"COND/DIAG FUNC,TIME/5T,AR/EBUS"
; 2772	DIAG OUT	"COND/DIAG FUNC,TIME/5T,ADA/AR,AD/A"
; 2773	DISMISS		"SPEC/FLAG CTL,FLAG CTL/DISMISS"
; 2774	DIVIDE		"FE_FE-1,DISP/DIV,MQ/MQ*2"
; 2775	DLEN		"FMADR/AC3"
; 2776	DLEN_AR		"DLEN,FM_AR"
; 2777	DROP EBUS REQ	"COND/EBUS CTL,EBUS CTL/0"
; 2778	.IF/MODEL.B
; 2779	DSTP		"FMADR/AC+#,AC-OP/AC+#,AC#/4"
;;2780	.IFNOT/MODEL.B
;;2781	DSTP		"FMADR/AC4"
; 2782	.ENDIF/MODEL.B
; 2783	DSTP_AR		"DSTP,FM_AR"
; 2784	.IF/MODEL.B
; 2785	DSTP2		"FMADR/AC+#,AC-OP/AC+#,AC#/5"
; 2786	.ENDIF/MODEL.B
; 2787	DSTP2_AR	"DSTP2,FM_AR"
; 2788	DSTW		"R14"
; 2789	DSTW_AR		"DSTW,FM_AR"
; 2790	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 6
; MACRO.MIC[4,30]	17:12 9-Aug-84			CRAM Macros--E, F					

; 2791	.TOC	"CRAM Macros--E, F"
; 2792	
; 2793	E0		"R16"
; 2794	E0_AR		"E0,FM_AR"
; 2795	E1		"R5"
; 2796	E1_AR		"E1,FM_AR"
; 2797	.IF/XADDR
; 2798	EA MOD DISP	"DISP/EA MOD,AD/1S"
;;2799	.IFNOT/XADDR
;;2800	EA MOD DISP	"DISP/EA MOD"
;;2801	EA TYPE DISP	"DISP/EA TYPE"
; 2802	.ENDIF/XADDR
; 2803	EPT FETCH	"MEM/LOAD ARX,SPEC/SP MEM CYCLE,SP MEM/EPT FETCH"
; 2804	EPT REF		"SPEC/SP MEM CYCLE,SP MEM/EPT"
; 2805	EPT REF	CACHE	"SPEC/SP MEM CYCLE,SP MEM/EPT CACHE"
; 2806	EXEC REF	"SPEC/SP MEM CYCLE,SP MEM/EXEC"
; 2807	EXIT		"DISP/DRAM B,MEM/B WRITE,J/ST0"
; 2808	EXIT DBL	"MB WAIT,J/ST2AC"	;"I FETCH,J/DSTAC" WHEN TIMING FIXED
; 2809	EXP TEST	"COND/REG CTL,EXP TST/AR_EXP"
; 2810	EXP TST		"COND/REG CTL,EXP TST/AR_EXP"
; 2811	EXPMSK		"R4"		;[224][233]
; 2812	EXP_-SC-1	"SCADA EN/0S,SCADB/SC,SCAD/A-B-1,EXP_SCAD"
; 2813	EXP_-SC-1 TST	"SCADA EN/0S,SCADB/SC,SCAD/A-B-1,EXP_SCAD.C,EXP TST"
; 2814	EXP_1		"SCADA EN/0S,SCAD/A+1,EXP_SCAD"
; 2815	EXP_FE TST	"SCADA/FE,SCAD/A,EXP_SCAD.C,EXP TST"
; 2816	EXP_SC		"SCADA EN/0S,SCADB/SC,SCAD/A+B,EXP_SCAD"
; 2817	EXP_SC.MS	"MEM/ARL IND,ARL/ARMM,COND/LD AR0-8,ARMM/SCAD EXP,EXP_SCAD.MS";[224]
; 2818	EXP_SCAD	"MEM/ARL IND,ARL/ARMM,AR0-8/LOAD,ARMM/SCAD EXP"
; 2819	EXP_SCAD.C	"COND/REG CTL,AR CTL/AR0-8 LOAD,AR/ARMM,ARMM/SCAD EXP"
; 2820	EXP_SCAD.MS	"SCADA EN/0S,SCADB/SC,SCAD/A+B"
; 2821	EXP_SIGN	"SPEC/ARL IND,ARL/ARMM,AR0-8/LOAD,ARMM/EXP_SIGN"
; 2822	EXP_SIGN.C	"COND/ARL IND,ARL/ARMM,AR0-8/LOAD,ARMM/EXP_SIGN"
; 2823	EXP_SIGN.M	"MEM/ARL IND,ARL/ARMM,AR0-8/LOAD,ARMM/EXP_SIGN"
; 2824	EXP_SIGN.MS	"MEM/ARL IND,ARL/ARMM,COND/LD AR0-8,ARMM/EXP_SIGN";[224]
; 2825	.IF/MODEL.B
; 2826	EXT ADDR	"MEM/A RD,#/400,DISP/DRAM B"
; 2827	EXT BYTE READ	"MEM/EA CALC,EA CALC/BYTE RD,VMA/LOAD,GLOBAL"
; 2828	EXT BYTE RPW	"MEM/EA CALC,EA CALC/BYTE RPW,VMA/LOAD,GLOBAL";[337]
; 2829	EXT INDEX	"MEM/A RD,#/400,DISP/DRAM A RD"
; 2830	EXT INDRCT	"MEM/EA CALC,EA CALC/A IND,VMA/LOAD"
; 2831	.ENDIF/MODEL.B
; 2832	
; 2833	FE_#		"SCADA/#,SCAD/A,FE/SCAD"
; 2834	FE_# AND S	"SCADA/#,SCADB/AR6-11,SCAD/AND,FE/SCAD"
; 2835	FE_#+AR0-8	"SCADA/#,SCADB/AR0-8,SCAD/A+B,FE/SCAD"
; 2836	FE_#+SC		"SCADA/#,SCADB/SC,SCAD/A+B,FE/SCAD"
; 2837	FE_#-SC		"SCADA/#,SCADB/SC,SCAD/A-B,FE/SCAD"
; 2838	FE_+#		"SCADA EN/0S,SCADB/#,SCAD/A+B,FE/SCAD"
; 2839	FE_-1		"SCADA EN/0S,SCAD/A-1,FE/SCAD"
; 2840	FE_-S		"SCADA EN/0S,SCADB/AR6-11,SCAD/A-B,FE/SCAD";[337]
; 2841	FE_-SC-1	"SCADA EN/0S,SCADB/SC,SCAD/A-B-1,FE/SCAD"
; 2842	FE_1		"SCADA EN/0S,SCAD/A+1,FE/SCAD"
; 2843	FE_AR0-8	"SCADA EN/0S,SCADB/AR0-8,SCAD/A+B,FE/SCAD"
; 2844	FE_AR0-8 AND #	"SCADA/#,SCADB/AR0-8,SCAD/AND,FE/SCAD"
; 2845	FE_AR0-8 COMP	"SCADA EN/0S,SCADB/AR0-8,SCAD/A-B-1,FE/SCAD"
; 2846	FE_EXP		"SCADA/AR EXP,SCAD/A,FE/SCAD"
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 6-1
; MACRO.MIC[4,30]	17:12 9-Aug-84			CRAM Macros--E, F					

; 2847	FE_EXP+1	"SCADA/AR EXP,SCAD/A+1,FE/SCAD"
; 2848	FE_EXP+SC	"SCADA/AR EXP,SCADB/SC,SCAD/A+B,FE/SCAD"
; 2849	FE_EXP-#	"SCADA/AR EXP,SCADB/#,SCAD/A-B,FE/SCAD"
; 2850	FE_EXP-1	"SCADA/AR EXP,SCAD/A-1,FE/SCAD"
; 2851	FE_FE AND #	"SCADA/FE,SCADB/#,SCAD/AND,FE/SCAD"
; 2852	FE_FE AND AR0-8	"SCADA/FE,SCADB/AR0-8,SCAD/AND,FE/SCAD"
; 2853	FE_FE OR #	"SCADA/FE,SCADB/#,SCAD/OR,FE/SCAD"
; 2854	FE_FE OR AR0-8	"SCADA/FE,SCADB/AR0-8,SCAD/OR,FE/SCAD"
; 2855	FE_FE SHRT	"COND/FE SHRT,FE/0"
; 2856	FE_FE+#		"SCADA/FE,SCADB/#,SCAD/A+B,FE/SCAD"
; 2857	FE_FE+1		"SCADA/FE,SCAD/A+1,FE/SCAD"
; 2858	FE_FE+S		"SCADA/FE,SCADB/AR6-11,SCAD/A+B,FE/SCAD"
; 2859	FE_FE+SC	"SCADA/FE,SCADB/SC,SCAD/A+B,FE/SCAD"
; 2860	FE_FE-#		"SCADA/FE,SCADB/#,SCAD/A-B,FE/SCAD"
; 2861	FE_FE-1		"SCADA/FE,SCAD/A-1,FE/SCAD"
; 2862	FE_FE-S		"SCADA/FE,SCADB/AR6-11,SCAD/A-B,FE/SCAD"
; 2863	FE_FE-SC	"SCADA/FE,SCADB/SC,SCAD/A-B,FE/SCAD"
; 2864	FE_FE-SC-1	"SCADA/FE,SCADB/SC,SCAD/A-B-1,FE/SCAD"	;[343]
; 2865	FE_P		"SCADA/AR0-5,SCAD/A,FE/SCAD"
; 2866	FE_P AND #	"SCADA/AR0-5,SCADB/#,SCAD/AND,FE/SCAD"
; 2867	FE_P AND SC	"SCADA/AR0-5,SCADB/SC,SCAD/AND,FE/SCAD"
; 2868	FE_P OR #	"SCADA/AR0-5,SCADB/#,SCAD/OR,FE/SCAD"
; 2869	FE_P+1		"SCADA/AR0-5,SCAD/A+1,FE/SCAD"		;[343]
; 2870	FE_P+SC		"SCADA/AR0-5,SCADB/SC,SCAD/A+B,FE/SCAD"
; 2871	FE_S		"SCADA EN/0S,SCADB/AR6-11,SCAD/A+B,FE/SCAD"
; 2872	FE_S+#		"SCADA/#,SCADB/AR6-11,SCAD/A+B,FE/SCAD"
; 2873	FE_SC		"SCADA EN/0S,SCADB/SC,SCAD/A+B,FE/SCAD"
; 2874	
; 2875	.IF/MODEL.B
; 2876	FETCH		"MEM/IFET"
; 2877	FETCH+1		"COND/VMA INC,MEM/IFET"
;;2878	.IFNOT/MODEL.B
;;2879	FETCH		"MEM/FETCH,FETCH/UNCOND"
;;2880	FETCH+1		"COND/VMA INC,MEM/FETCH,FETCH/UNCOND"
; 2881	.ENDIF/MODEL.B
; 2882	FETCH WAIT	"MEM/MB WAIT"		;See edit 111
; 2883	FILL		"R13"
; 2884	FILL_AR		"FILL,FM_AR"
; 2885	FIN STORE	"FMADR/VMA"		;FINISH STOREING
; 2886	FIN XFER	"FMADR/VMA,ADB/FM,AD/B"	;FINISH XFER WHILE STARTING ANOTHER
; 2887	FINISH		"J/FINI"	;USE INSTEAD OF NXT INSTR IF FM WRITE
; 2888	FM_AR		"COND/FM WRITE"
; 2889	FM[]_AR		"@1, FM_AR"
; 2890	.IF/MODEL.B
; 2891	FM(#)_AR	"FMADR/AC+#,AC-OP/AC+#,COND/FM WRITE"
; 2892	.ENDIF/MODEL.B
; 2893	FORCE AR-ARX	"ADB/AR*4,AD/B,AR/AD*.25,ARX/ADX*.25"
; 2894	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 7
; MACRO.MIC[4,30]	17:12 9-Aug-84			CRAM Macros--G, H, I, J, L				

; 2895	.TOC	"CRAM Macros--G, H, I, J, L"
; 2896	
; 2897	GEN # AND AR0-8	"SCADA/#,SCADB/AR0-8,SCAD/AND"
; 2898	GEN #+AR0-8	"SCADA/#,SCADB/AR0-8,SCAD/A+B"
; 2899	GEN #+SC	"SCADA/#,SCADB/SC,SCAD/A+B"
; 2900	GEN #-SC	"SCADA/#,SCADB/SC,SCAD/A-B"
; 2901	GEN -AR LONG	"ADB/AR*4,ADA EN/0S,AD/A-B,SPEC/AD LONG"
; 2902	GEN -SC		"SCADB/SC,SCADA EN/0S,SCAD/A-B"
; 2903	GEN -SC-1	"SCADB/SC,SCADA EN/0S,SCAD/A-B-1"
; 2904	GEN 0S		"AD/0S"
; 2905	GEN 2AR		"ADA/AR, AD/A*2"
; 2906	
; 2907	GEN AC0		"FMADR/AC0,ADB/FM,AD/B"
; 2908	GEN AC0+1	"FMADR/AC0,ADB/FM,ADA EN/0S,AD/A+B+1"
; 2909	GEN AR		"ADA/AR,AD/A"
; 2910	GEN AR*AC0	"FMADR/AC0,ADB/FM,ADA/AR"
; 2911	GEN AR*BR	"ADA/AR,ADB/BR"
; 2912	GEN AR*T0	"T0,ADB/FM,ADA/AR"
; 2913	GEN AR+1	"ADA/AR,AD/A+1"
; 2914	GEN AR+2BR	"ADA/AR,ADB/BR*2,AD/A+B"
; 2915	GEN AR+BR	"ADA/AR,ADB/BR,AD/A+B"
; 2916	GEN AR+E1	"E1,ADB/FM,ADA/AR,AD/A+B"
; 2917	GEN AR+XR	"FMADR/XR,ADB/FM,ADA/AR,AD/A+B"
; 2918	GEN AR-2BR	"ADA/AR,ADB/BR*2,AD/A-B"
; 2919	GEN AR-AC3	"FMADR/AC3,ADB/FM,ADA/AR,AD/A-B"
; 2920	GEN AR-BR	"ADA/AR,ADB/BR,AD/A-B"
; 2921	GEN AR-BR-1	"GEN AR*BR,AD/A-B-1"
; 2922	GEN AR0-8	"SCADA EN/0S,SCADB/AR0-8,SCAD/OR"
; 2923	GEN ARX		"ADA/ARX,AD/A"
; 2924	GEN ARX COMP	"ADA/ARX,AD/SETCA"
; 2925	GEN ARX*BR	"ADA/ARX,ADB/BR"		;[224]
; 2926	GEN ARX*BRX	"ADA EN/EN,ADB/BR"
; 2927	GEN ARX+1	"ADA/ARX,AD/A+1"
; 2928	GEN ARX+XR	"FMADR/XR,ADB/FM,ADA/ARX,AD/A+B"
; 2929	GEN ARX-1	"ADA/ARX,AD/A-1"
; 2930	
; 2931	GEN BR		"ADB/BR,AD/B"
; 2932	GEN BR*2	"ADB/BR*2,AD/B"
; 2933	GEN BR+ARX	"ADA/ARX,ADB/BR,AD/A+B"		;[230]
; 2934	GEN BRX+1	"ADA EN/0S,ADB/BR,AD/A+B+1"
; 2935	GEN CRY18	"SPEC/GEN CRY18"
; 2936	GEN E1		"E1, ADB/FM, AD/B"
; 2937	GEN FE		"SCADA/FE,SCAD/A"
; 2938	GEN FE AND #	"SCADA/FE,SCADB/#,SCAD/AND"
; 2939	GEN FE AND AR0-8 "SCADA/FE,SCADB/AR0-8,SCAD/AND"
; 2940	GEN FE AND S	"SCADA/FE,SCADB/AR6-11,SCAD/AND"
; 2941	GEN FE AND SC	"SCADA/FE,SCADB/SC,SCAD/AND"
; 2942	GEN FE OR AR0-8 "SCADA/FE,SCADB/AR0-8,SCAD/OR"	;[347]
; 2943	GEN FE+#	"SCADA/FE,SCADB/#,SCAD/A+B"
; 2944	GEN FE-#	"SCADA/FE,SCADB/#,SCAD/A-B"
; 2945	GEN FE-1	"SCADA/FE,SCAD/A-1"
; 2946	GEN FE-S	"SCADA/FE,SCADB/AR6-11,SCAD/A-B"
; 2947	GEN FE-SC	"SCADA/FE,SCADB/SC,SCAD/A-B"
; 2948	GEN FE-SC-1	"SCADA/FE,SCADB/SC,SCAD/A-B-1"	; [303] For DPB to top byte
; 2949	
; 2950	GEN MQ		"ADA/MQ,AD/A"
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 7-1
; MACRO.MIC[4,30]	17:12 9-Aug-84			CRAM Macros--G, H, I, J, L				

; 2951	GEN MQ-AR	"ADA/MQ,ADB/AR,AD/A-B"
; 2952	GEN P AND #	"SCADA/AR0-5,SCADB/#,SCAD/AND"
; 2953	GEN P AND SC	"SCADA/AR0-5,SCADB/SC,SCAD/AND"
; 2954	GEN P+SC	"SCADA/AR0-5,SCADB/SC,SCAD/A+B"
; 2955	GEN P-#		"SCADA/AR0-5,SCADB/#,SCAD/A-B"		;[337]
; 2956	GEN P-S		"SCADA/AR0-5,SCADB/AR6-11,SCAD/A-B"
; 2957	GEN P-SC	"SCADA/AR0-5,SCADB/SC,SCAD/A-B"
; 2958	GEN SC		"SCADB/SC,SCADA EN/0S,SCAD/A+B"
; 2959	GEN SCAD 0S	"SCADA EN/0S,SCAD/A"
; 2960	GEN T1		"T1,ADB/FM,AD/B"
; 2961	GEN T2		"T2,ADB/FM,AD/B"
; 2962	GET ECL EBUS	"COND/EBUS CTL,EBUS CTL/GRAB EEBUS"
; 2963	GLOBAL		"SH/1"
; 2964	
; 2965	HALT		"SPEC/FLAG CTL,FLAG CTL/HALT"
; 2966	
; 2967	.IF/MODEL.B
; 2968	I FETCH		"VMA/PC+1,MEM/IFET"
;;2969	.IFNOT/MODEL.B
;;2970	I FETCH		"VMA/PC+1,MEM/FETCH,FETCH/UNCOND"
; 2971	.ENDIF/MODEL.B
; 2972	INDEXED		"SH/2"
; 2973	INH CRY18	"SPEC/INH CRY18"
; 2974	IO INIT		"COND/EBUS CTL,EBUS CTL/IO INIT"
; 2975	IR DISP		"DISP/DRAM J"
; 2976	
; 2977	JFCL FETCH	"VMA/PC+1,MEM/FETCH,FETCH/JFCL"
; 2978	JFCL S		"SPEC/FLAG CTL,FLAG CTL/JFCL+LD"
; 2979	JFCL T		"SPEC/FLAG CTL,FLAG CTL/JFCL"
; 2980	JUMP FETCH	"VMA/PC+1,MEM/FETCH,FETCH/JUMP"
; 2981	
; 2982	LD PCS		"COND/DIAG FUNC,TIME/5T,DIAG FUNC/LD PCS+CWSX,ADA/ARX,AD/A"
; 2983	LD PREV CTXT	"COND/DIAG FUNC,TIME/5T,DIAG FUNC/LD PCS+CWSX,ADA/PC,AD/A"
; 2984	LOAD AR		"MEM/LOAD AR"
; 2985	.IF/MODEL.B
; 2986	LOAD AR (WR TST)	"MEM/EA CALC,EA CALC/LD AR+WR"
; 2987	.ENDIF/MODEL.B
; 2988	LOAD ARX	"MEM/LOAD ARX"
; 2989	.IF/MODEL.B
; 2990	LOAD ARX (WR TST)	"MEM/EA CALC,EA CALC/LD ARX+WR"
; 2991	.ENDIF/MODEL.B
; 2992	LOAD EBR	"MEM/REG FUNC,MREG FNC/LOAD EBR"
; 2993	.IF/MODEL.B
; 2994	LOAD IR		"COND/LOAD IR,#/0"
;;2995	.IFNOT/MODEL.B
;;2996	LOAD IR		"COND/LOAD IR"
; 2997	.ENDIF/MODEL.B
; 2998	LOAD UBR	"MEM/REG FUNC,MREG FNC/LOAD UBR"
; 2999	.IF/BLT.PXCT
; 3000	LOAD VMA(EA)_ARX+BR "VMA/LOAD,MEM/EA CALC,EA CALC/LD AR(EA),ADA/ARX,ADB/BR,AD/A+B"
;;3001	.IFNOT/BLT.PXCT
;;3002	LOAD VMA(EA)_ARX+BR "ADA/ARX,ADB/BR,AD/A+B,VMA/AD,LOAD AR"
; 3003	.ENDIF/BLT.PXCT
; 3004	.IF/MODEL.B
; 3005	LONG EN		"COND/LONG EN"
; 3006	.ENDIF/MODEL.B
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 7-2
; MACRO.MIC[4,30]	17:12 9-Aug-84			CRAM Macros--G, H, I, J, L				

; 3007	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 8
; MACRO.MIC[4,30]	17:12 9-Aug-84			CRAM Macros--M, N, O, P					

; 3008	.TOC	"CRAM Macros--M, N, O, P"
; 3009	
; 3010	MAP		"MEM/REG FUNC,MREG FNC/MAP"
; 3011	MB WAIT		"MEM/MB WAIT"
; 3012	MEM_AR		"FMADR/VMA,MEM/MB WAIT"
; 3013	
; 3014	MQ_0.C		"COND/ARL IND,CLR/MQ"
; 3015	MQ_0.M		"MEM/ARL IND,CLR/MQ"
; 3016	MQ_0.S		"SPEC/ARL IND,CLR/MQ"
; 3017	MQ_1		"ADA EN/0S,AD/A+1,MQ_AD"
; 3018	MQ_1S		"COND/REG CTL,MQ/MQM SEL,MQ CTL/1S"
; 3019	MQ_AD		"COND/REG CTL,MQ/MQM SEL,MQ CTL/AD"
; 3020	MQ_AR		"SH/AR,MQ/SH"
; 3021	MQ_AR (AD)	"ADA/AR,AD/A,MQ_AD"
; 3022	MQ_AR COMP	"ADA/AR,AD/SETCA,MQ_AD"
; 3023	MQ_AR SWAP	"SH/AR SWAP,MQ/SH"
; 3024	MQ_ARX		"SH/ARX,MQ/SH"
; 3025	MQ_ARX COMP	"ADA/ARX,AD/SETCA,MQ_AD"
; 3026	MQ_BR		"ADB/BR,AD/B,MQ_AD"
; 3027	MQ_BR COMP	"ADB/BR,AD/SETCB,MQ_AD"
; 3028	MQ_FM[]		"ADB/FM,@1,AD/B,MQ_AD"			;[343]
; 3029	MQ_MQ*.25	"SPEC/MQ SHIFT,MQ/MQ*.25"
; 3030	MQ_MQ*2		"SPEC/MQ SHIFT,MQ/MQ*2"
; 3031	MQ_MQ*BR	"ADA/MQ, ADB/BR, MQ_AD"
; 3032	MQ_MQ-1		"ADA/MQ,AD/A-1,MQ_AD"			;[343]
; 3033	MQ_SHIFT	"SH/SHIFT AR!ARX,MQ/SH"
; 3034	
; 3035	MSK		"R7"
; 3036	MSK_AR		"MSK,FM_AR"
; 3037	MUL		"FE_FE+1,DISP/MUL,MQ/MQ*.25"
; 3038	
; 3039	
; 3040	NO CRY		"AD/SETCA"
; 3041	NORM		"DISP/NORM"
; 3042	NORM -AR	"ADA EN/0S,ADB/AR*4,AD/A-B,AR/AD*.25,ARX/ADX*.25,DISP/NORM"
; 3043	NORM AR		"ADB/AR*4,AD/B,DISP/NORM"
; 3044	NXT INSTR	"MEM/MB WAIT,DISP/NICOND,#/0,CLR SC,CLR FE,J/NEXT"
; 3045	
; 3046	OPTIONS		"ISTAT/OPTIONS,KLPAGE/OPTIONS,LONGPC/OPTIONS,NONSTD/OPTIONS,PV/OPTIONS"
; 3047	
; 3048	P_#		"SCADA/#,SCAD/A,P_SCAD#"
; 3049	P_#-S		"SCADA/#,SCADB/AR6-11,SCAD/A-B,P_SCAD#"
; 3050	P_#-SC		"SCADA/#,SCADB/SC,SCAD/A-B,P_SCAD#"	;[343]
; 3051	P_-SC		"SCADA EN/0S,SCADB/SC,SCAD/A-B,P_SCAD.M"
; 3052	P_1S		"SCADA EN/0S,SCAD/A-1,P_SCAD"
; 3053	P_FE		"SCADA/FE,SCAD/A,P_SCAD"
; 3054	P_FE OR SC	"SCADA/FE,SCADB/SC,SCAD/OR,P_SCAD"
; 3055	P_FE+SC		"SCADA/FE,SCADB/SC,SCAD/A+B,P_SCAD.C"
; 3056	P_FE-S		"SCADA/FE,SCADB/AR6-11,SCAD/A-B,P_SCAD.C"
; 3057	P_FE-S.S	"SCADA/FE,SCADB/AR6-11,SCAD/A-B,P_SCAD"
; 3058	P_FE.C		"SCADA/FE,SCAD/A,P_SCAD#"
; 3059	P_P AND #	"SCADA/AR0-5,SCADB/#,SCAD/AND,P_SCAD#"
; 3060	P_P AND SC	"SCADA/AR0-5,SCADB/SC,SCAD/AND,P_SCAD.M"
; 3061	P_P OR #	"SCADA/AR0-5,SCADB/#,SCAD/OR,P_SCAD#"
; 3062	P_P OR SC	"SCADA/AR0-5,SCADB/SC,SCAD/OR,P_SCAD.M"
; 3063	P_P OR SC#	"SCADA/AR0-5,SCADB/SC,SCAD/OR,P_SCAD#"
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 8-1
; MACRO.MIC[4,30]	17:12 9-Aug-84			CRAM Macros--M, N, O, P					

; 3064	P_P+#		"SCADA/AR0-5,SCADB/#,SCAD/A+B,P_SCAD#"
; 3065	P_P+1		"SCADA/AR0-5,SCAD/A+1,P_SCAD#"		;[337]
; 3066	P_P+S		"SCADA/AR0-5,SCADB/AR6-11,SCAD/A+B,P_SCAD"
; 3067	P_P+S.C		"SCADA/AR0-5,SCADB/AR6-11,SCAD/A+B,P_SCAD#"
; 3068	P_P-S		"SCADA/AR0-5,SCADB/AR6-11,SCAD/A-B,P_SCAD.M"
; 3069	P_SC		"SCADA EN/0S,SCADB/SC,SCAD/A+B,P_SCAD.M"
; 3070	P_SC#		"SCADA EN/0S,SCADB/SC,SCAD/A+B,P_SCAD#"
; 3071	P_SCAD		"SPEC/ARL IND,ARL/ARMM,AR0-8/LOAD,ARMM/SCAD POS"
; 3072	P_SCAD#		"COND/LD AR0-8,AR/ARMM,ARMM/SCAD POS"
; 3073	P_SCAD.C	"COND/ARL IND,ARL/ARMM,AR0-8/LOAD,ARMM/SCAD POS"
; 3074	P_SCAD.M	"MEM/ARL IND,ARL/ARMM,AR0-8/LOAD,ARMM/SCAD POS"
; 3075	
; 3076	P0		"FMADR/#B#,ACB/PAGB,AC#/0"	Paging AC 0
; 3077	P1		"FMADR/#B#,ACB/PAGB,AC#/1"
; 3078	P10		"FMADR/#B#,ACB/PAGB,AC#/10"
; 3079	P11		"FMADR/#B#,ACB/PAGB,AC#/11"
; 3080	P12		"FMADR/#B#,ACB/PAGB,AC#/12"
; 3081	P13		"FMADR/#B#,ACB/PAGB,AC#/13"
; 3082	P14		"FMADR/#B#,ACB/PAGB,AC#/14"
; 3083	P15		"FMADR/#B#,ACB/PAGB,AC#/15"
; 3084	P16		"FMADR/#B#,ACB/PAGB,AC#/16"
; 3085	P17		"FMADR/#B#,ACB/PAGB,AC#/17"
; 3086	P2		"FMADR/#B#,ACB/PAGB,AC#/2"
; 3087	P3		"FMADR/#B#,ACB/PAGB,AC#/3"
; 3088	P4		"FMADR/#B#,ACB/PAGB,AC#/4"
; 3089	P5		"FMADR/#B#,ACB/PAGB,AC#/5"
; 3090	P6		"FMADR/#B#,ACB/PAGB,AC#/6"
; 3091	P7		"FMADR/#B#,ACB/PAGB,AC#/7"
; 3092	
; 3093	PC_VMA		"SPEC/LOAD PC"
; 3094	PF DISP		"DISP/PG FAIL"
; 3095	.IF/KLPAGE
; 3096	PFA		"P4"
; 3097	PFA_AR		"PFA,COND/FM WRITE"
; 3098	.ENDIF/KLPAGE
; 3099	PHYS REF	"SPEC/SP MEM CYCLE,SP MEM/UNPAGED"
; 3100	PHYS REF CACHE	"SPEC/SP MEM CYCLE,SP MEM/UNPAGED+CACHED"
; 3101	.IF/MODEL.B
; 3102	POP AR		"MEM/EA CALC,EA CALC/POP AR,VMA/LOAD"
; 3103	POP AR-ARX	"MEM/EA CALC,EA CALC/POP AR-ARX,VMA/LOAD"
; 3104	POP ARX		"MEM/EA CALC,EA CALC/POP ARX,VMA/LOAD"
; 3105	.ENDIF/MODEL.B
; 3106	PORTAL		"SPEC/FLAG CTL,FLAG CTL/PORTAL"
; 3107	PT FETCH	"MEM/LOAD ARX,SPEC/SP MEM CYCLE,SP MEM/PT FETCH"
; 3108	PT REF		"SPEC/SP MEM CYCLE,SP MEM/PT"
; 3109	PT SEL_INVAL	"COND/MBOX CTL,MBOX CTL/PT DIR CLR"
; 3110	PT SEL_INVAL (KEEP) "COND/MBOX CTL,MBOX CTL/PT DIR CLR(NK)"
; 3111	PT SEL_NORMAL	"COND/MBOX CTL,MBOX CTL/NORMAL"
; 3112	.IF/KLPAGE
; 3113	PUR		"P1"
; 3114	.ENDIF/KLPAGE
; 3115	.IF/MODEL.B
; 3116	PUSH		"MEM/EA CALC,EA CALC/PUSH,VMA/LOAD,SPEC/STACK UPDATE"
; 3117	.ENDIF/MODEL.B
; 3118	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 9
; MACRO.MIC[4,30]	17:12 9-Aug-84			CRAM Macros--R						

; 3119	.TOC	"CRAM Macros--R"
; 3120	
; 3121	R0		"FMADR/#B#,ACB/MICROB,AC#/0"	Scratch register 0
; 3122	R1		"FMADR/#B#,ACB/MICROB,AC#/1"	Scratch register 1
; 3123	R10		"FMADR/#B#,ACB/MICROB,AC#/10"	Scratch register 10
; 3124	R11		"FMADR/#B#,ACB/MICROB,AC#/11"	Scratch register 11
; 3125	R12		"FMADR/#B#,ACB/MICROB,AC#/12"	Scratch register 12
; 3126	R13		"FMADR/#B#,ACB/MICROB,AC#/13"	Scratch register 13
; 3127	R14		"FMADR/#B#,ACB/MICROB,AC#/14"	Scratch register 14
; 3128	R15		"FMADR/#B#,ACB/MICROB,AC#/15"	Scratch register 15
; 3129	R16		"FMADR/#B#,ACB/MICROB,AC#/16"	Scratch register 16
; 3130	R17		"FMADR/#B#,ACB/MICROB,AC#/17"	Scratch register 17
; 3131	R2		"FMADR/#B#,ACB/MICROB,AC#/2"	Scratch register 2
; 3132	R3		"FMADR/#B#,ACB/MICROB,AC#/3"	Scratch register 3
; 3133	R4		"FMADR/#B#,ACB/MICROB,AC#/4"	Scratch register 4
; 3134	R5		"FMADR/#B#,ACB/MICROB,AC#/5"	Scratch register 5
; 3135	R6		"FMADR/#B#,ACB/MICROB,AC#/6"	Scratch register 6
; 3136	R7		"FMADR/#B#,ACB/MICROB,AC#/7"	Scratch register 7
; 3137	
; 3138	RD+CLR C CNT	"SPEC/MTR CTL,AR_CACHE CNT"
; 3139	RD+CLR E CNT	"SPEC/MTR CTL,AR_EBOX CNT"
; 3140	RD+CLR PA	"SPEC/MTR CTL,AR_PERF CNT"
; 3141	RD+CLR TB	"SPEC/MTR CTL,AR_TIME BASE"
; 3142	.IF/MODEL.B
; 3143	READ BP2	"MEM/EA CALC,EA CALC/BYTE IND,VMA/VMA,COND/VMA INC"
; 3144	.ENDIF/MODEL.B
; 3145	READ EBR	"MEM/REG FUNC,MREG FNC/READ EBR"
; 3146	READ ERA	"MEM/REG FUNC,MREG FNC/READ ERA"
; 3147	READ UBR	"MEM/REG FUNC,MREG FNC/READ UBR"
; 3148	REL EBUS	"COND/EBUS CTL,EBUS CTL/REL EBUS"
; 3149	REL ECL EBUS	"COND/EBUS CTL,EBUS CTL/REL EEBUS"
; 3150	REQ EBUS	"COND/EBUS CTL,EBUS CTL/REQ EBUS"
; 3151	.IF/KLPAGE
; 3152	REQ SV.VMA	"SV.VMA,ADB/FM,AD/B,VMA/1,MEM/AD FUNC"
; 3153	REQ VMA HELD	"COND/SEL VMA,ADA/PC,AD/A,VMA/1,MEM/AD FUNC"
; 3154	.ENDIF/KLPAGE
; 3155	
; 3156	RET[]		"DISP/RETURN,J/@1"
; 3157	RETURN0		"DISP/RETURN,J/0"
; 3158	RETURN1		"DISP/RETURN,J/1"
; 3159	RETURN10	"DISP/RETURN,J/10"
; 3160	RETURN12	"DISP/RETURN,J/12"
; 3161	RETURN15	"DISP/RETURN,J/15"			;[343]
; 3162	RETURN16	"DISP/RETURN,J/16"			;[337]
; 3163	RETURN17	"DISP/RETURN,J/17"			;[337]
; 3164	RETURN2		"DISP/RETURN,J/2"
; 3165	RETURN20	"DISP/RETURN,J/20"
; 3166	RETURN3		"DISP/RETURN,J/3"
; 3167	RETURN30	"DISP/RETURN,J/30"
; 3168	RETURN37	"DISP/RETURN,J/37"
; 3169	RETURN4		"DISP/RETURN,J/4"
; 3170	RETURN5		"DISP/RETURN,J/5"
; 3171	RETURN6		"DISP/RETURN,J/6"
; 3172	RETURN7		"DISP/RETURN,J/7"
; 3173	RSTR FLAGS_AR	"SPEC/FLAG CTL,FLAG CTL/RSTR FLAGS"
; 3174	.IF/KLPAGE
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 9-1
; MACRO.MIC[4,30]	17:12 9-Aug-84			CRAM Macros--R						

; 3175	RSTR VMA_ARX	"ADA/ARX,AD/A,VMA/LOAD,MEM/RESTORE VMA"
; 3176	RSTR VMA_MQ	"ADA/MQ,AD/A,VMA/LOAD,MEM/RESTORE VMA"
; 3177	RSTR VMA_SV.VMA	"SV.VMA,ADB/FM,AD/B,VMA/LOAD,MEM/RESTORE VMA"
; 3178	.ENDIF/KLPAGE
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 10
; MACRO.MIC[4,30]	17:12 9-Aug-84			CRAM Macros--S						

; 3179	.TOC	"CRAM Macros--S"
; 3180	
; 3181	.IF/KLPAGE
; 3182	SBR		"P3"
; 3183	.ENDIF/KLPAGE
; 3184	SBUS DIAG	"MEM/REG FUNC,MREG FNC/SBUS DIAG"
; 3185	
; 3186	SC_#		"SCADA/#,SCAD/A,SC/SCAD"
; 3187	SC_# AND AR0-8	"SCADA/#,SCADB/AR0-8,SCAD/AND,SC/SCAD"
; 3188	SC_# AND S	"SCADA/#,SCADB/AR6-11,SCAD/AND,SC/SCAD"
; 3189	SC_# OR SC	"SCADA/#,SCADB/SC,SCAD/OR,SC/SCAD"
; 3190	SC_#+AR0-8	"SCADA/#,SCADB/AR0-8,SCAD/A+B,SC/SCAD"
; 3191	SC_#+SC		"SCADA/#,SCADB/SC,SCAD/A+B,SC/SCAD"
; 3192	SC_#-SC		"SCADA/#,SCADB/SC,SCAD/A-B,SC/SCAD"
; 3193	SC_#-SC-1	"SCADA/#,SCADB/SC,SCAD/A-B-1,SC/SCAD"
; 3194	SC_-S		"SCADA EN/0S,SCADB/AR6-11,SCAD/A-B,SC/SCAD";[343]
; 3195	SC_-SC		"SCADA EN/0S,SCADB/SC,SCAD/A-B,SC/SCAD"
; 3196	SC_-SC-1	"SCADA EN/0S,SCADB/SC,SCAD/A-B-1,SC/SCAD"
; 3197	SC_0		"SCADA EN/0S,SCAD/A,SC/SCAD"
; 3198	SC_1		"SCADA EN/0S,SCAD/A+1,SC/SCAD"
; 3199	SC_1S		"SCADA EN/0S,SCAD/A-1,SC/SCAD"
; 3200	SC_AR0-8	"SCADA EN/0S,SCADB/AR0-8,SCAD/A+B,SC/SCAD" ;[231]
; 3201	SC_EA		"SPEC/SCM ALT,SC/AR SHIFT"
; 3202	SC_EXP		"SCADA/AR EXP,SCAD/A,SC/SCAD"
; 3203	SC_EXP+1	"SCADA/AR EXP,SCAD/A+1,SC/SCAD"
; 3204	SC_EXP+SC	"SCADA/AR EXP,SCADB/SC,SCAD/A+B,SC/SCAD"
; 3205	SC_EXP-#	"SCADA/AR EXP,SCADB/#,SCAD/A-B,SC/SCAD"
; 3206	SC_EXP-1	"SCADA/AR EXP,SCAD/A-1,SC/SCAD"
; 3207	SC_EXP-SC	"SCADA/AR EXP,SCADB/SC,SCAD/A-B,SC/SCAD"
; 3208	SC_FE		"SPEC/SCM ALT,SC/FE"
; 3209	SC_FE AND #	"SCADA/FE,SCADB/#,SCAD/AND,SC/SCAD"
; 3210	SC_FE#		"SCADA/FE,SCAD/A,SC/SCAD"	  ;[337] If SPEC is in conflict
; 3211	SC_FE+#		"SCADA/FE,SCADB/#,SCAD/A+B,SC/SCAD"
; 3212	SC_FE+1		"SCADA/FE,SCAD/A+1,SC/SCAD"
; 3213	SC_FE+SC	"SCADA/FE,SCADB/SC,SCAD/A+B,SC/SCAD"
; 3214	SC_FE-#		"SCADA/FE,SCADB/#,SCAD/A-B,SC/SCAD"
; 3215	SC_FE-1		"SCADA/FE,SCAD/A-1,SC/SCAD"
; 3216	SC_FE-SC	"SCADA/FE,SCADB/SC,SCAD/A-B,SC/SCAD"
; 3217	SC_FE-SC-1	"SCADA/FE,SCADB/SC,SCAD/A-B-1,SC/SCAD"
; 3218	SC_P		"SCADA/AR0-5,SCAD/A,SC/SCAD"
; 3219	SC_P AND #	"SCADA/AR0-5,SCADB/#,SCAD/AND,SC/SCAD"
; 3220	SC_P AND SC	"SCADA/AR0-5,SCADB/SC,SCAD/AND,SC/SCAD"
; 3221	SC_P+1		"SCADA/AR0-5,SCAD/A+1,SC/SCAD"		;[337]
; 3222	SC_P+S		"SCADA/AR0-5,SCADB/AR6-11,SCAD/A+B,SC/SCAD";[343]
; 3223	SC_P-#		"SCADA/AR0-5,SCADB/#,SCAD/A-B,SC/SCAD"
; 3224	SC_S		"SCADB/AR6-11,SCADA EN/0S,SCAD/A+B,SC/SCAD"
; 3225	SC_SC AND #	"SCADA/#,SCADB/SC,SCAD/AND,SC/SCAD"
; 3226	
; 3227	.IF/MODEL.B
; 3228	SEL AC4		"AC-OP/AC+#,AC#/4"
; 3229	SEL DSTP	"AC-OP/AC+#,AC#/4"
; 3230	SEL DSTP2	"AC-OP/AC+#,AC#/5"
; 3231	.ENDIF/MODEL.B
; 3232	SET ACC+CLR UCODE	"COND/EBOX STATE,#/005"
; 3233	SET ACCOUNT EN	"COND/EBOX STATE,#/105"
; 3234	SET AROV	"COND/PCF_#,PC FLAGS/AROV"
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 10-1
; MACRO.MIC[4,30]	17:12 9-Aug-84			CRAM Macros--S						

; 3235	SET CONS XCT	"COND/SPEC INSTR,SPEC INSTR/CONS XCT"
; 3236	SET DATAI	"COND/EBUS CTL,EBUS CTL/DATAI,AD/0S,AR/AD"
; 3237	SET DATAO	"COND/EBUS CTL,EBUS CTL/DATAO"
; 3238	SET EBUS DEMAND	"COND/EBUS CTL,EBUS CTL/EBUS DEMAND"
; 3239	SET FL NO DIV	"COND/PCF_#,PC FLAGS/FDV CHK"
; 3240	SET FLAGS_AR	"SPEC/FLAG CTL,FLAG CTL/SET FLAGS"
; 3241	SET FLOV	"COND/PCF_#,PC FLAGS/FLOV"
; 3242	SET FPD		"COND/PCF_#,PC FLAGS/FPD"
; 3243	SET FXU		"COND/PCF_#,PC FLAGS/FXU"	;[224]
; 3244	SET HALTED	"COND/SPEC INSTR,SPEC INSTR/HALTED"
; 3245	SET IO PF	"COND/MBOX CTL,MBOX CTL/SET IO PF ERR"
; 3246	SET MTR PA EN	"COND/EBOX STATE,#/225"
; 3247	SET NO DIVIDE	"COND/PCF_#,PC FLAGS/DIV CHK"
; 3248	SET PC+1 INH	"COND/SPEC INSTR,SPEC INSTR/INH PC+1"
; 3249	SET PI CYCLE	"COND/SPEC INSTR,SPEC INSTR/SET PI CYCLE"
; 3250	SET PXCT	"COND/SPEC INSTR,SPEC INSTR/PXCT"
; 3251	SET SR1		"COND/SR_#,#/64"
; 3252	SET SR2		"COND/SR_#,#/62"
; 3253	SET SR3		"COND/SR_#,#/61"
; 3254	SET SXCT	"COND/SPEC INSTR,SPEC INSTR/SXCT"
; 3255	SET TRACKS EN	"COND/EBOX STATE,#/131"
; 3256	SET TRK+PA EN	"COND/EBOX STATE,#/231"
; 3257	SFLGS		"FMADR/AC0"
; 3258	SFLGS_AR	"SFLGS,FM_AR"
; 3259	SH DISP		"SH/SHIFT AR!ARX,DISP/SH0-3"
; 3260	SIGNS DISP	"DISP/SIGNS"
; 3261	SKIP FETCH	"ADA/AR,AD/A,VMA/PC+1,MEM/FETCH,FETCH/SKIP"
; 3262	
; 3263	SKP -EBUS GRANT	"SKIP/-EBUS GRANT"
; 3264	SKP -EBUS XFER	"SKIP/-EBUS XFER"
; 3265	.IF/MODEL.B
; 3266	SKP -LOCAL AC ADDR	"SKIP/-LOCAL AC ADDR"
; 3267	.ENDIF/MODEL.B
; 3268	SKP -START	"SKIP/-START"
; 3269	.IF/MODEL.B
; 3270	SKP -VMA SEC0	"SKIP/-VMA SEC0"
; 3271	.ENDIF/MODEL.B
; 3272	SKP AC EQ 0	"SKIP/AC#0"			;[343] More mnemonic than AC#0
; 3273	SKP AC REF	"SKIP/AC REF"
; 3274	SKP AC#0	"SKIP/AC#0"
; 3275	SKP AC0+	"FMADR/AC0,ADB/FM,AD/SETCB,SKIP/AD0"
; 3276	SKP AC0-	"FMADR/AC0,ADB/FM,AD/B,SKIP/AD0"
; 3277	SKP AD NE	"SKIP/AD#0"
; 3278	SKP AD0		"SKIP/AD0"
; 3279	SKP ADX0	"SKIP/ADX0"
; 3280	SKP AR EQ	"ADA EN/0S,ADB/AR*4,AD/ORCB+1,SKIP/AD CRY0"
; 3281	SKP AR EQ -1	"ADA/AR,AD/CRY A EQ -1,SKIP/AD CRY0"
; 3282	SKP AR GT BR	"ADA/AR,ADB/BR,AD/XOR,SKIP/AD CRY0"
; 3283	SKP AR NE	"ADA/AR,AD/CRY A#0,SKIP/AD CRY0"
; 3284	SKP AR NE BR	"ADA/AR,ADB/BR,AD/XOR,SKIP/AD#0"
; 3285	SKP AR NZ	"ADA/AR,AD/A,SKIP/AD#0"			;[343]
; 3286	SKP AR SIG	"ADA/AR,AD/A+XCRY,SPEC/XCRY AR0,SKIP/AD#0"
; 3287	SKP AR0		"SKIP/AR0"
; 3288	SKP AR1		"ADA/AR,AD/A*2,SKIP/AD0"
; 3289	SKP AR18	"SKIP/AR18"
; 3290	SKP AR2		"ADB/AR*4,AD/B,SKIP/AD0"
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 10-2
; MACRO.MIC[4,30]	17:12 9-Aug-84			CRAM Macros--S						

; 3291	SKP AR6		"SCADB/AR6-11,SCADA/#,#/40,SCAD/AND,SKIP/SCAD#0"
; 3292	SKP ARX LE BRX	"ADA EN/EN,ADB/BR,AD/A-B-1,SKIP/ADX0"
; 3293	SKP ARX LT BRX	"ADA EN/EN,ADB/BR,AD/A-B,SKIP/ADX0"
; 3294	SKP ARX NE	"ADA/ARX,AD/CRY A#0,SKIP/AD CRY0"
; 3295	SKP ARX NZ	"ADA/ARX,AD/A,SKIP/AD#0"		;[343]
; 3296	SKP ARX+MQ NE	"ADA/MQ,AD/CRY A#0,SPEC/AD LONG,SKIP/AD CRY0"
; 3297	SKP ARX0	"SKIP/ARX0"
; 3298	SKP ARX2	"ADB/AR*4,AD/B,SKIP/ADX0"
; 3299	
; 3300	SKP BR EQ	"ADA EN/0S,ADB/BR,AD/CRY A GE B,SKIP/AD CRY0"
; 3301	SKP BR EQ -1	"ADA EN/0S,ADB/BR,AD/A+B+1,SKIP/AD CRY0"
; 3302	SKP BR0		"SKIP/BR0"
; 3303	SKP CRY0	"SKIP/AD CRY0"
; 3304	SKP EVEN PAR	"SKIP/EVEN PAR"
; 3305	SKP EXP NE	"SCADA/AR EXP,SCAD/A,SKIP/SCAD#0"
; 3306	SKP FE0		"SCADA/FE,SCAD/A,SKIP/SCAD0"
; 3307	SKP FETCH	"SKIP/FETCH"
; 3308	SKP INTRPT	"SKIP/INTRPT"
; 3309	SKP IO LEGAL	"SKIP/IO LEGAL"
; 3310	SKP KERNEL	"SKIP/KERNEL"
; 3311	SKP MQ EQ -1	"ADA/MQ,AD/CRY A EQ -1,SKIP/AD CRY0"
; 3312	SKP MQ NE	"ADA/MQ,AD/CRY A#0,SKIP/AD CRY0"
; 3313	SKP P NE	"SCADA/AR0-5,SCAD/A,SKIP/SCAD#0"
; 3314	SKP P!S XCT	"SKIP/P!S XCT"
; 3315	.IF/MODEL.B
; 3316	SKP PC SEC0	"SKIP/PC SEC0"
; 3317	.ENDIF/MODEL.B
; 3318	SKP PI CYCLE	"SKIP/PI CYCLE"
; 3319	SKP RPW		"SKIP/RPW REF"
; 3320	SKP RUN		"SKIP/RUN"
;;3321	.IFNOT/MODEL.B
;;3322	SKP SC LE 36	"SCADB/SC,SCADA/#,#/-36.,SCAD/A+B,SKIP/SCAD0"
; 3323	.ENDIF/MODEL.B
; 3324	SKP SC NE	"SCADB/SC,SCADA EN/0S,SCAD/A+B,SKIP/SCAD#0"
; 3325	SKP SC0		"SKIP/SC0"
; 3326	SKP SCAD NE	"SKIP/SCAD#0"
; 3327	SKP SCAD NZ	"SKIP/SCAD#0"			;[347]
; 3328	SKP SCAD0	"SKIP/SCAD0"
; 3329	SKP USER	"SKIP/USER"
; 3330	
; 3331	SLEN		"R10"		;MUST BE 170
; 3332	SLEN_AR		"SLEN,FM_AR"
; 3333	SR DISP		"DISP/SR"
; 3334	SR_#		"COND/SR_#"		;USED FOR NON-PAGE-FAIL APPLICATIONS
; 3335	SR_0		"COND/SR_#,#/0"
; 3336	SR_1		"COND/SR_#,#/1"
; 3337	SR_2		"COND/SR_#,#/2"		;[224]
; 3338	.IF/MODEL.B
; 3339	SR_BDD		"COND/SR_#,#/206"	;B2D AFTER UPDATING DST PTR
; 3340	SR_BDF		"COND/SR_#,#/203"	;B2D STORING FILLERS
; 3341	SR_BDT		"COND/SR_#,#/010"	;B2D IN TRANSLATION
; 3342	SR_BLT(DST)	"COND/SR_#,#/507"
; 3343	.IF/BLT.PXCT
; 3344	SR_BLT(PXCT DST)"COND/SR_#,#/107"
; 3345	SR_BLT(PXCT SRC)"COND/SR_#,#/307"	;SPECIAL FOR PXCT
; 3346	.ENDIF/BLT.PXCT
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 10-3
; MACRO.MIC[4,30]	17:12 9-Aug-84			CRAM Macros--S						

; 3347	SR_BLT(SRC)	"COND/SR_#,#/707"
; 3348	SR_DB		"COND/SR_#,#/102"	;D2B ANYWHERE
; 3349	SR_DST		"COND/SR_#,#/212"
; 3350	SR_DSTF		"COND/SR_#,#/214"
; 3351	SR_ED(+D)	"COND/SR_#,#/224"
; 3352	SR_ED(PAT)	"COND/SR_#,#/0"	;PATTERN REF IS EXTENDED
; 3353	SR_ED(S)	"COND/SR_#,#/101"
;;3354	.IFNOT/MODEL.B
;;3355	SR_BDD		"COND/SR_#,#/6"		;B2D AFTER UPDATING DST PTR
;;3356	SR_BDF		"COND/SR_#,#/3"		;B2D STORING FILLERS
;;3357	SR_BDT		"COND/SR_#,#/10"	;B2D IN TRANSLATION
;;3358	SR_BLT(DST)	"COND/SR_#,#/107"	;  BY PXCT 10,4
;;3359	SR_BLT(SRC)	"COND/SR_#,#/607"	;CONTEXT CONTROLLED BY PXCT 2,1
;;3360	SR_DB		"COND/SR_#,#/2"		;D2B ANYWHERE
;;3361	SR_DST		"COND/SR_#,#/12"
;;3362	SR_DSTF		"COND/SR_#,#/14"
;;3363	SR_ED(+D)	"COND/SR_#,#/24"
;;3364	SR_ED(PAT)	"COND/SR_#,#/0"
;;3365	SR_ED(S)	"COND/SR_#,#/1"
; 3366	.ENDIF/MODEL.B
; 3367	.IF/KLPAGE
; 3368	SR_MAP		"COND/SR_#,#/15"	;CATCH MAP PAGE FAILURES
; 3369	.ENDIF/KLPAGE
; 3370	.IF/MODEL.B
; 3371	SR_SRC		"COND/SR_#,#/111"
; 3372	SR_SRC+DST	"COND/SR_#,#/213"
;;3373	.IFNOT/MODEL.B
;;3374	SR_SRC		"COND/SR_#,#/11"
;;3375	SR_SRC+DST	"COND/SR_#,#/13"
; 3376	.ENDIF/MODEL.B
; 3377	SR_WORD		"COND/SR_#,#/17"	;WORD MOVES OF STRING INSTRS
; 3378	.IF/MODEL.B
; 3379	.IF/XADDR
; 3380	SR_XBLT(DST)	"COND/SR_#,#/316"
; 3381	SR_XBLT(SRC)	"COND/SR_#,#/216"
; 3382	.ENDIF/XADDR
; 3383	.ENDIF/MODEL.B
; 3384	SRCP		"FMADR/AC1"
; 3385	SRCP_AR		"SRCP,FM_AR"
; 3386	SRCP2		"FMADR/AC2"
; 3387	SRCP2_AR	"SRCP2,FM_AR"
; 3388	
; 3389	.IF/MODEL.B
; 3390	STACK UPDATE	"SPEC/STACK UPDATE"
; 3391	.ENDIF/MODEL.B
; 3392	STORE		"MEM/WRITE"
; 3393	.IF/BLT.PXCT
; 3394	STORE VMA(EA)_ARX	"VMA/LOAD,MEM/EA CALC,EA CALC/WRITE(E),ADA/ARX,AD/A"
;;3395	.IFNOT/BLT.PXCT
;;3396	STORE VMA(EA)_ARX		"ADA/ARX,AD/A,VMA/AD,STORE"
; 3397	.ENDIF/BLT.PXCT
; 3398	.IF/KLPAGE
; 3399	SV.AR		"P16"		;156 REQUIRED FOR PF.PAR HACK
;;3400	.IFNOT/KLPAGE
;;3401	SV.AR		"R0"
; 3402	.ENDIF/KLPAGE
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 10-4
; MACRO.MIC[4,30]	17:12 9-Aug-84			CRAM Macros--S						

; 3403	SV.AR_AR	"SV.AR,COND/FM WRITE"
; 3404	.IF/KLPAGE
; 3405	SV.ARX		"P17"		;157 REQUIRED FOR PF.PAR HACK
;;3406	.IFNOT/KLPAGE
;;3407	SV.ARX		"R1"
; 3408	.ENDIF/KLPAGE
; 3409	SV.ARX_AR	"SV.ARX,COND/FM WRITE"
; 3410	.IF/KLPAGE
; 3411	SV.BR		"P10"
; 3412	SV.BR_AR	"SV.BR,COND/FM WRITE"
; 3413	.ENDIF/KLPAGE
; 3414	SV.IOP		"R3"		;[233]
; 3415	SV.IOPF		"R2"
; 3416	SV.IOPF_AR	"SV.IOPF,COND/FM WRITE"	;IO PAGE FAIL WORD
; 3417	.IF/KLPAGE
; 3418	SV.PAR		"R0"		;Note not in PAGB block
; 3419	SV.PAR_AR	"SV.PAR,COND/FM WRITE"
; 3420	SV.PFW		"P12"
; 3421	SV.PFW_AR	"SV.PFW,COND/FM WRITE"
; 3422	SV.SC		"P11"
; 3423	SV.SC_AR	"SV.SC,COND/FM WRITE"
; 3424	SV.VMA		"P5"
; 3425	SV.VMA_AR	"SV.VMA,COND/FM WRITE"
; 3426	.ENDIF/KLPAGE
; 3427	SWD		"R1"		;BUFFER FOR SOURCE BYTE WORD
; 3428	SWD_AR		"SWD,FM_AR"
; 3429	SWEEP CACHE	"MEM/REG FUNC,MREG FNC/LOAD CCA"
; 3430	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 11
; MACRO.MIC[4,30]	17:12 9-Aug-84			CRAM Macros--T, U, V, W, X				

; 3431	.TOC	"CRAM Macros--T, U, V, W, X"
; 3432	
; 3433	T0		"R6"
; 3434	T0_AR		"T0,FM_AR"
; 3435	T1		"R11"
; 3436	T1_AR		"T1,FM_AR"
; 3437	T2		"R12"
; 3438	T2_AR		"T2,FM_AR"
; 3439	TAKE INTRPT	"SKIP/-MTR REQ,J/MTRINT"
; 3440	TEST AR		"ADA/AR,AD/CRY A#0"
; 3441	TEST AR.AC0	"FMADR/AC0,ADB/FM,ADA/AR,AD/CRY A.B#0"
; 3442	TEST AR.BR	"ADB/BR,ADA/AR,AD/CRY A.B#0"
; 3443	TEST AR.MSK	"MSK,ADB/FM,ADA/AR,AD/CRY A.B#0"
; 3444	TEST ARX	"ADA/ARX,AD/CRY A#0"
; 3445	TEST ARX.AR*4	"ADA/ARX,ADB/AR*4,AD/CRY A.B#0"
; 3446	TEST BRL	"ADA EN/0S,ADB/BR,AD/ORCB+1,GEN CRY18"
; 3447	.IF/KLPAGE
; 3448	TEST CBR	"CBR,ADB/FM,AD/B,SKP AD NE"	;[247]
; 3449	.ENDIF/KLPAGE
; 3450	TEST FETCH	"VMA/PC+1,MEM/FETCH,FETCH/TEST"
; 3451	TRAP1		"COND/PCF_#,PC FLAGS/TRAP1"
; 3452	TRAP2		"COND/PCF_#,PC FLAGS/TRAP2"
; 3453	TRAP3		"COND/PCF_#,PC FLAGS/TRAP3"
;;3454	.IF/TRXDEF
;;3455	TRB		"E0"		;same as E0.
;;3456	TRB_AR		"TRB,FM_AR"
;;3457	TRX		"R17"
;;3458	TRX_AR		"TRX,FM_AR"
;;3459	TRX1		"R2"
;;3460	TRX1_AR		"TRX1,FM_AR"
;;3461	TRX2		"R1"
;;3462	TRX2_AR		"TRX2,FM_AR"
;;3463	TRX3		"R14"
;;3464	TRX3_AR		"TRX3,FM_AR"
; 3465	.ENDIF/TRXDEF
; 3466	
; 3467	UNCSH PHYS REF	"SPEC/SP MEM CYCLE,SP MEM/UNCSH+UNPAGE"
; 3468	UPT FETCH	"MEM/LOAD ARX,SPEC/SP MEM CYCLE,SP MEM/UPT FETCH"
; 3469	UPT REF		"SPEC/SP MEM CYCLE,SP MEM/UPT"
; 3470	USER REF	"SPEC/SP MEM CYCLE,SP MEM/USER"
; 3471	
; 3472	VMA_#		"VMA/LOAD,COND/VMA_#"
; 3473	VMA_#+AR32-35	"VMA/LOAD,COND/VMA_#+AR32-35"
; 3474	VMA_40		"VMA/LOAD,COND/VMA_#,#/40"
; 3475	VMA_40+PI*2	"VMA/LOAD,COND/VMA_#+PI*2,#/40"
; 3476	VMA_41		"VMA/LOAD,COND/VMA_#,#/41"
; 3477	VMA_41+PI*2	"VMA/LOAD,COND/VMA_#+PI*2,#/41"
; 3478	VMA_420+TRAP	"VMA/LOAD,COND/VMA_#+TRAP,#/420"
; 3479	VMA_430+MODE	"VMA/LOAD,COND/VMA_#+MODE,#/430"
; 3480	VMA_AC3		"FMADR/AC3,ADB/FM,AD/B,VMA/AD"
; 3481	VMA_AR		"ADA/AR,AD/A,VMA/AD"
; 3482	VMA_AR AND ADMSK "ADMSK,ADB/FM,ADA/AR,AD/AND,VMA/AD"
; 3483	VMA_AR+1	"ADA/AR,AD/A+1,VMA/AD"
; 3484	VMA_AR+BR	"ADA/AR,ADB/BR,AD/A+B,VMA/AD"
; 3485	.IF/KLPAGE
; 3486	VMA_AR+CBR	"CBR,ADB/FM,ADA/AR,AD/A+B,VMA/AD"
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 11-1
; MACRO.MIC[4,30]	17:12 9-Aug-84			CRAM Macros--T, U, V, W, X				

; 3487	.ENDIF/KLPAGE
; 3488	VMA_AR+E0	"E0,ADB/FM,ADA/AR,AD/A+B,VMA/AD"
; 3489	VMA_AR+E0+1	"E0,ADB/FM,ADA/AR,AD/A+B+1,VMA/AD"
; 3490	VMA_AR+E1	"E1,ADB/FM,ADA/AR,AD/A+B,VMA/AD"
; 3491	.IF/KLPAGE
; 3492	VMA_AR+SBR	"SBR,ADB/FM,ADA/AR,AD/A+B,VMA/AD"
; 3493	.ENDIF/KLPAGE
;;3494	.IF/TRXDEF
;;3495	VMA_AR+TRB	"TRB,ADB/FM,ADA/AR,AD/A+B,VMA/AD"
; 3496	.ENDIF/TRXDEF
; 3497	VMA_AR+XR	"GEN AR+XR,VMA/AD"
; 3498	VMA_AR-1	"ADA/AR,AD/A-1,VMA/AD"
; 3499	VMA_ARX		"ADA/ARX,AD/A,VMA/AD"
; 3500	VMA_ARX AND ADMSK "ADMSK,ADB/FM,ADA/ARX,AD/AND,VMA/AD"
; 3501	VMA_ARX+1	"ADA/ARX,AD/A+1,VMA/AD"
; 3502	VMA_ARX+BR	"ADA/ARX,ADB/BR,AD/A+B,VMA/AD"
; 3503	.IF/KLPAGE
; 3504	VMA_ARX+CBR	"CBR,ADB/FM,ADA/ARX,AD/A+B,VMA/AD"
; 3505	.ENDIF/KLPAGE
; 3506	VMA_ARX+XR	"GEN ARX+XR,VMA/AD"
; 3507	
; 3508	VMA_BR		"ADB/BR,AD/B,VMA/AD"
; 3509	VMA_E0+1	"E0,ADB/FM,ADA EN/0S,AD/A+B+1,VMA/AD"
; 3510	VMA_FM[]	"ADA EN/0S,ADB/FM,@1,AD/B,VMA/AD";[344]
; 3511	VMA_MQ		"ADA/MQ,AD/A,VMA/AD"
; 3512	VMA_MQ+1	"ADA/MQ,AD/A+1,VMA/AD"		;[310]
; 3513	VMA_PC		"VMA/PC"			;[252]
; 3514	VMA_PC+1	"VMA/PC+1"
; 3515	.IF/KLPAGE
; 3516	VMA_SV.VMA	"SV.VMA,ADB/FM,AD/B,VMA/AD"
; 3517	.ENDIF/KLPAGE
;;3518	.IF/TRXDEF
;;3519	VMA_TRB		"TRB,ADB/FM,AD/B,VMA/AD"
; 3520	.ENDIF/TRXDEF
;;3521	.IFNOT/MODEL.B
;;3522	VMA_VMA HELD	"COND/SEL VMA,ADA/PC,AD/A,VMA/AD"
; 3523	.IF/MODEL.B
;;3524	.IFNOT/KLPAGE
;;3525	VMA_VMA HELD	"COND/SEL VMA,ADA/PC,AD/A,VMA/AD"
; 3526	.IF/KLPAGE
; 3527	VMA_VMA HELD	"COND/SEL VMA,ADA/PC,AD/A,VMA/AD,MEM/RESTORE VMA"
; 3528	.ENDIF/KLPAGE
; 3529	.ENDIF/MODEL.B
; 3530	VMA_VMA+1	"VMA/VMA,COND/VMA INC"
; 3531	VMA_VMA-1	"VMA/VMA,COND/VMA DEC"
; 3532	
; 3533	WR PT ENTRY	"COND/MBOX CTL,MBOX CTL/PT WR"
; 3534	WR REFILL RAM	"MEM/REG FUNC,MREG FNC/WR REFILL RAM"
; 3535	.IF/MODEL.B
; 3536	WRITE (E)	"MEM/EA CALC,EA CALC/WRITE(E),VMA/LOAD"
; 3537	.ENDIF/MODEL.B
; 3538	
; 3539	XR		"FMADR/XR"
; 3540	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 12
; MACRO.MIC[4,30]	17:12 9-Aug-84			DRAM Macros						

; 3541	.TOC	"DRAM Macros"
; 3542	
; 3543		.DCODE
; 3544	;
; 3545	;	These macros have not been sorted alphabetically, as (1) there are
; 3546	;	too few to bother, and (2) no one ever looks at the DRAM anyway!
; 3547	;
; 3548	;"A FIELD" MACROS
; 3549	; DECODED TO TELL WHAT TO DO WITH EFFECTIVE ADDRESS
; 3550	; AND WHETHER TO PREFETCH FROM PC+1
; 3551	
; 3552	I	"A/IMMED"
; 3553	I-PF	"A/IMMED-PF"
;;3554	.IFNOT/XADDR
;;3555	EA	"A/IMMED"
; 3556	.IF/XADDR
; 3557	EA	"A/ADDR"
; 3558	.ENDIF/XADDR
; 3559	W	"A/WR-TST"
; 3560	R	"A/READ"
; 3561	R-PF	"A/READ-PF"
; 3562	RW	"A/RD-WR"
; 3563	.IF/RPW
; 3564	RPW	"A/RD-P-WR"
;;3565	.IFNOT/RPW
;;3566	RPW	"A/RD-WR"
; 3567	.ENDIF/RPW
;;3568	.IF/WRTST
;;3569	IW	"A/WR-TST"
; 3570	.IFNOT/WRTST
; 3571	IW	"A/IMMED"
; 3572	.ENDIF/WRTST
; 3573	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 13
; MACRO.MIC[4,30]	17:12 9-Aug-84			DRAM Macros						

; 3574	;"B FIELD" MACROS
; 3575	; DECODED BY MOST INSTRUCTIONS TO TELL WHERE TO STORE RESULTS,
; 3576	; BUT USED BY OTHERS TO HOLD VARIOUS "MODE" INFORMATION
; 3577	
; 3578	AC	"B/AC"
; 3579	M	"B/MEM"
; 3580	S	"B/SELF"
; 3581	B	"B/BOTH"
; 3582	DBL AC	"B/DBL AC"
; 3583	DBL B	"B/DBL BOTH"
; 3584	FL-AC	"B1-2/AC"
; 3585	FL-MEM	"B1-2/MEM"
; 3586	FL-BOTH	"B1-2/BOTH"
; 3587	
; 3588	TN-	"B0/CRY0(1),B1-2/0"
; 3589	TNE	"B0/CRY0(0),B1-2/0"
; 3590	TNA	"B0/CRY0(0),B1-2/0"
; 3591	TNN	"B0/CRY0(1),B1-2/0"
; 3592	TZ-	"B0/CRY0(1),B1-2/1"
; 3593	TZE	"B0/CRY0(0),B1-2/1"
; 3594	TZA	"B0/CRY0(0),B1-2/1"
; 3595	TZN	"B0/CRY0(1),B1-2/1"
; 3596	TC-	"B0/CRY0(1),B1-2/2"
; 3597	TCE	"B0/CRY0(0),B1-2/2"
; 3598	TCA	"B0/CRY0(0),B1-2/2"
; 3599	TCN	"B0/CRY0(1),B1-2/2"
; 3600	TO-	"B0/CRY0(1),B1-2/3"
; 3601	TOE	"B0/CRY0(0),B1-2/3"
; 3602	TOA	"B0/CRY0(0),B1-2/3"
; 3603	TON	"B0/CRY0(1),B1-2/3"
; 3604	
; 3605	SJC-	"B/SJC-"
; 3606	SJCL	"B/SJCL"
; 3607	SJCE	"B/SJCE"
; 3608	SJCLE	"B/SJCLE"
; 3609	SJCA	"B/SJCA"
; 3610	SJCGE	"B/SJCGE"
; 3611	SJCN	"B/SJCN"
; 3612	SJCG	"B/SJCG"
; 3613	
; 3614	BLKI	"B0/CRY0(0),B1-2/2"
; 3615	BLKO	"B0/CRY0(0),B1-2/0"
; 3616	DATAI	"B/6"
; 3617	DATAO	"B/4"
; 3618	CONI	"B/6"
; 3619	CONO	"B/4"
; 3620	CONSO	"B0/CRY0(1),B1-2/1"
; 3621	CONSZ	"B0/CRY0(0),B1-2/1"
; 3622	
						; 3623	.BIN
						; 3624		.UCODE
						; 3625	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 1
; BASIC.MIC[4,30]	17:12 9-Aug-84			THE INSTRUCTION LOOP					

						; 3626	.TOC	"THE INSTRUCTION LOOP"
						; 3627	
						; 3628	;	Comments updated [302][344]
						; 3629	;
						; 3630	;INSTRUCTION DECODE, EA COMPUTATION, AND OPERAND FETCH
						; 3631	;
						; 3632	;	IN GENERAL, AN INSTRUCTION IS STARTED AT XCTGO.
						; 3633	; AT THIS TIME THE INSTRUCTION IS IN ARX AND IR, AND PC HAS ITS ADDRESS.
						; 3634	; THE DRAM OUTPUTS AND "AC" BITS WILL SETTLE DURING THIS
						; 3635	; MICROINSTRUCTION, AND WILL BE LATCHED BY THE CLOCK WHICH ENDS
						; 3636	; THE CYCLE.  XCTGO DISPATCHES ON THE STATE OF THE
						; 3637	; INDIRECT AND INDEX BITS OF THE ARX (EA MOD DISP) TO COMPEA OR
						; 3638	; ONE OF THE THREE LOCATIONS FOLLOWING IT.
						; 3639	;	IF INDIRECT IS SPECIFIED, THE INDIRECT POINTER IS FETCHED (AT
						; 3640	; COMPEA+2 OR +3 DEPENDING ON WHETHER INDEXING IS ALSO SPECIFIED).
						; 3641	; WE WAIT FOR IT AT INDRCT, AND THEN LOOP BACK TO COMPEA.  WHEN NO
						; 3642	; INDIRECT IS CALLED FOR, WE COMPUTE THE INSTRUCTION'S EFFECTIVE ADDRESS
						; 3643	; (EA) AT COMPEA OR COMPEA+1 (DEPENDING ON WHETHER INDEXING IS CALLED
						; 3644	; FOR), AND PERFORM THE FUNCTION "A READ", WHOSE OPERATION DEPENDS
						; 3645	; ON THE DRAM A FIELD, AS FOLLOWS:
						; 3646	;
						; 3647	; MACRO	 A-FLD	MEM FUNCTION	VMA	DISPATCH
						; 3648	;  I	  0	NONE		AD(=EA)  DRAM J
						; 3649	; I-PF	  1	FETCH		PC+1	 DRAM J
						; 3650	; EA	  2	30 BIT EA CALC	AD	 DRAM J
						; 3651	;  W	  3	WR TST		AD	   3 (MODEL B)	43 (MODEL A)
						; 3652	;  R	  4	READ		AD	   4		44
						; 3653	; R-PF	  5	READ		AD	   5		45
						; 3654	; RW	  6	READ/WR TST	AD	   6		46
						; 3655	; RPW	  7	RD-PSE/WR TST	AD	   7		47
						; 3656	;
						; 3657	;	A FIELD VALUES 0 AND 1 ARE USED FOR INSTRUCTIONS WHICH NEITHER
						; 3658	; READ NOR WRITE THE CONTENTS OF EA (IMMEDIATE-MODE INSTRUCTIONS,
						; 3659	; JUMPS, ETC).  THESE DISPATCH FROM "A READ" DIRECTLY TO THE MICROCODE
						; 3660	; WHICH HANDLES THE INSTRUCTION.  IF THE A FIELD CONTAINS 1, "A READ"
						; 3661	; CAUSES A PREFETCH (FROM PC+1), SO THAT THE MBOX CAN WORK ON GETTING
						; 3662	; THE NEXT INSTRUCTION INTO ARX WHILE THE EBOX PERFORMS THIS ONE.
						; 3663	;	IF THE A FIELD CONTAINS A 2, THE EA CALCULATION WILL PROVIDE
						; 3664	; A FULL 30 BIT EFFECTIVE ADDRESS TO THE AD AT THE END.  THIS WAS
						; 3665	; INTRODUCED WITH EXTENDED ADDRESSING, TO ALLOW SUCH INSTRUCTIONS AS
						; 3666	; XMOVEI AND XHLLI TO COMPUTE A COMPLETE ADDRESS WITHOUT ACTUALLY
						; 3667	; REFERENCING IT.  OTHERWISE, THIS IS SIMILAR TO AN A FIELD OF 0.  NOTE
						; 3668	; THAT AN A FIELD OF 0 WILL STILL PROVIDE A 30 BIT ADDRESS TO THE VMA;
						; 3669	; ONLY THE RESULT IN THE AD WILL BE DIFFERENT.
						; 3670	;	IF THE A FIELD CONTAINS 3, THE MBOX PERFORMS A PAGING CHECK ON
						; 3671	; EA, AND CAUSES A PAGE FAIL IF THAT LOCATION IS NOT WRITABLE.
						; 3672	; THE MICROCODE GOES TO 3 TO WAIT FOR COMPLETION OF THE PAGE CHECK,
						; 3673	; AND AT THAT LOCATION LOADS AC INTO AR.  THE WRITABILITY OF EA IS
						; 3674	; VERIFIED AT THIS TIME TO PREVENT INCORRECTLY SETTING FLAGS OR
						; 3675	; THE PROCESSOR STATE IF THE INSTRUCTION WILL BE ABORTED BY PAGE
						; 3676	; FAILURE.  LOCATION 3 THEN DISPATCHES TO THE HANDLER FOR THE
						; 3677	; CURRENT INSTRUCTION.
						; 3678	;	A FIELD VALUES 4 TO 7 PERFORM READS FROM EA.  6 AND 7 ALSO TEST
						; 3679	; THE WRITABILITY OF THE LOCATION, AND 7 PERFORMS THE FIRST HALF OF
						; 3680	; A READ-PAUSE-WRITE CYCLE IF EA IS AN UN-CACHED ADDRESS.  THE DISPATCH
						; 3681	; IS TO A, WHERE WE WAIT FOR MEMORY DATA TO ARRIVE IN AR.  IF THE A
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 1-1
; BASIC.MIC[4,30]	17:12 9-Aug-84			THE INSTRUCTION LOOP					

						; 3682	; FIELD WAS 5, WE PREFETCH FROM PC+1 AS SOON AS THE DATA ARRIVES.
						; 3683	; IN ANY CASE, WE DISPATCH ACCORDING TO THE DRAM J FIELD TO THE
						; 3684	; HANDLER FOR THE INSTRUCTION.
						; 3685	;	IF A PAGE FAIL OCCURS AT ANY TIME (EITHER IN THIS CODE OR DURING
						; 3686	; INSTRUCTION EXECUTION) THE MICROPROCESSOR TRAPS TO CRAM LOCATION
						; 3687	; 1777 OR 3777, WHERE IT CAUSES A PAGE FAIL TRAP.
						; 3688	;
						; 3689	;	MOST INSTRUCTIONS (THE MOVE, HALFWORD, AND BOOLEAN GROUPS,
						; 3690	; PLUS ADD AND SUB) ARE PERFORMED BY HANDLERS CONSISTING OF ONE OR
						; 3691	; TWO MICROINSTRUCTIONS WHICH LEAVE THE RESULT IN AR, AND COMPLETE
						; 3692	; BY INVOKING THE "EXIT" MACRO.  EXIT USES THE MEM/B WRITE FUNCTION
						; 3693	; TO BEGIN A STORE TO MEMORY FOR THOSE MODES IN WHICH THE RESULT
						; 3694	; GOES TO MEMORY, AND DISP/DRAM B TO GET TO ONE OF THE MICROINSTRUCTIONS
						; 3695	; FOLLOWING ST0.  THIS CODE DEPENDS ON A CERTAIN AMOUNT OF CORRELATION
						; 3696	; BETWEEN THE DRAM A AND B FIELDS.  IN PARTICULAR, STAC (STORE AC)
						; 3697	; ASSUMES THAT A PREFETCH HAS OCCURRED, WHILE THE OTHERS ASSUME THAT
						; 3698	; NO PREFETCH HAS OCCURED.  THUS NORMAL AND IMMEDIATE MODES, WHOSE
						; 3699	; RESULTS GO ONLY TO AC, MUST PREFETCH IN THE DRAM A FIELD, WHILE
						; 3700	; MEM, BOTH, AND SELF MODES, WHOSE RESULTS GO TO MEMORY, MUST NOT.
						; 3701	; (THIS RESTRICTION IS AVOIDED FOR THOSE INSTRUCTIONS WHICH NEVER
						; 3702	; PREFETCH -- IN MUL, DIV, AND IDIV BY USE OF THE EXIT TO ST2AC,
						; 3703	; AND IN IMUL AND THE SINGLE PRECISION FLOATING POINT
						; 3704	; INSTRUCTIONS BY A RESTRICTED EXIT TO ST6.)
						; 3705	;	ANOTHER LARGE SET OF INSTRUCTIONS (SKIP, AOS, SOS, JUMP, AOJ,
						; 3706	; SOJ, AOBJ, CAI, CAM, AND THE TEST GROUP) KNOWS WHERE TO PUT THE
						; 3707	; RESULTS WITHOUT MODE INFORMATION, AND THEY USE THE DRAM B FIELD TO
						; 3708	; DETERMINE WHETHER TO SKIP OR JUMP, AS A FUNCTION OF THEIR OPERANDS.
						; 3709	; SKIP, AOS, AND SOS ARE CONSIDERED SELF-MODE INSTRUCTIONS,
						; 3710	; AND AFTER MAKING THE FETCH DECISION (AND RE-WRITING MEMORY, IN
						; 3711	; THE CASE OF AOS OR SOS), JUMP TO STSELF TO DECIDE WHETHER OR NOT
						; 3712	; TO PUT THE RESULT ALSO IN AC.  THE OTHER INSTRUCTIONS OF THIS SET
						; 3713	; JUMP TO STORAC OR NOP AFTER MAKING THE FETCH DECISION, DEPENDING
						; 3714	; ON WHETHER OR NOT THE OPCODE DEFINITION REQUIRES MODIFICATION OF AC.
						; 3715	; (NOTE THE DIFFERENCE BETWEEN STAC AND FINI ON THE ONE HAND,
						; 3716	; AND STORAC AND NOP ON THE OTHER -- STORAC AND NOP MUST BE USED WHEN
						; 3717	; THE NEXT INSTRUCTION FETCH OCCURS ON THE PRECEDING EBOX CYCLE, BECAUSE
						; 3718	; NICOND MUST NOT IMMEDIATELY FOLLOW A FETCH (ONE CYCLE REQUIRED FOR
						; 3719	; VMA AC REF TO MAKE IT THROUGH THE NICOND LOGIC), STAC AND FINI ARE
						; 3720	; USED WHEN THERE HAS BEEN AN INTERVENING CYCLE.)
						; 3721	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 2
; BASIC.MIC[4,30]	17:12 9-Aug-84			NEXT INSTRUCTION DISPATCH				

						; 3722	.TOC	"NEXT INSTRUCTION DISPATCH"
						; 3723	
						; 3724	;START BY PUTTING PC WORD IN AR, JUMP HERE
						; 3725	0:
						;;3726	.IFNOT/MODEL.B
						;;3727	START:	SET FLAGS_AR,VMA_AR,MEM/SEC 0,	;LOAD FLAGS, CLEAR VMAX
						;;3728			BR/AR,J/SETPC		;THEN JUMP TO ADDR IN AR
						; 3729	.IF/MODEL.B
U 0000, 1172,4001,0000,0000,0000,0024,0020	; 3730	START:	SET FLAGS_AR,J/SETPC		;LOAD FLAGS, USE REST AS ADDR
						; 3731	.ENDIF/MODEL.B
						; 3732	1:					;MUST BE AT START+1
U 0001, 0271,4001,0000,0000,0117,0010,0000	; 3733	CONT:	VMA/PC,FETCH,J/XCTW		;HERE TO CONTINUE FROM PC
						; 3734	;
						; 3735	;	Comments updated [321].
						; 3736	;
						; 3737	;	DISP/NICOND (THE "NXT INSTR" MACRO) BRINGS US TO ONE OF THE
						; 3738	; LOCATIONS FOLLOWING "NEXT".  PC HAS BEEN UPDATED TO ADDRESS THE NEXT
						; 3739	; INSTRUCTION IN THE NORMAL FLOW, AND IF IT IS FROM MEMORY
						; 3740	; (AS OPPOSED TO AC'S), THE INSTRUCTION IS IN ARX AND IR.
						; 3741	;	THE NICOND DISPATCH IS PRIORITY ENCODED, AS FOLLOWS:
						; 3742	; [FOR FULL DETAILS, SEE PRINT CON2]
						; 3743	;(1)	IF PI CYCLE IS TRUE, GO TO NEXT FOR SECOND HALF
						; 3744	; OF STANDARD OR VECTOR INTERRUPT.
						; 3745	;(2)	IF THE RUN FLOP (CON RUN) IS OFF, GO TO NEXT+2, FROM WHICH THE
						; 3746	; MICROCODE WILL ENTER THE HALT LOOP TO WAIT FOR THE CONSOLE TO RESTART
						; 3747	; INSTRUCTION PROCESSING.
						; 3748	;(3)	IF THE METER HAS A REQUEST, GO TO NEXT+4 (MTRINT) TO SERVE IT.
						; 3749	;(4)	IF THE PI SYSTEM HAS A REQUEST READY, GO TO NEXT+6 (INTRPT)
						; 3750	; TO START A PI CYCLE.
						; 3751	;(5)	IF CON UCODE STATE 05 (TRACK EN) IS SET, GO TO NEXT+10 OR 11.
						; 3752	; Normally NEXT+10 will be used; if a trap flag was set by the previous
						; 3753	; instruction, however, NEXT+11 will be reached.  This is the only
						; 3754	; way the trap will ever be detected, so be cautious of ignoring it.
						; 3755	; THIS FLOP IS ENTIRELY UNDER CONTROL OF THE MICROCODE, AND IS ONLY
						; 3756	; USED FOR THE SPECIAL STATISTICS-GATHERING MICROCODE.
						; 3757	;(6)	IF THE LAST INSTRUCTION SET A TRAP FLAG, GO TO NEXT+13 OR +17,
						; 3758	; IT DOESN'T MATTER WHICH.  (NEXT+17 will be reached if VMA contains
						; 3759	; an AC address, probably irrelevant when a trap flag was set.)
						; 3760	;(7)	IF VMA CONTAINS AN AC ADDRESS, IMPLYING THAT THE NEXT
						; 3761	; INSTRUCTION IS TO COME OUT OF FAST MEMORY, GO TO NEXT+16 TO GET IT.
						; 3762	;(10)	--NORMAL CASE-- THE INSTRUCTION IS IN ARX, READY TO GO, GO
						; 3763	; TO NEXT+12 (XCTGO).
						; 3764	;
						; 3765	;	The NICOND dispatch yields the following:
						; 3766	;
						; 3767	;	+0	CON PI CYCLE
						; 3768	;	+1	Unused
						; 3769	;	+2	-CON RUN (i.e. halt)
						; 3770	;	+3	Unused
						; 3771	;	+4	CON MTR INT REQ (meter interrupt)
						; 3772	;	+5	Unused
						; 3773	;	+6	CON INT REQ (interrupt)
						; 3774	;	+7	Unused
						; 3775	;	+10	CON UCODE STATE 05 (tracks enable)
						; 3776	;	+11	CON UCODE STATE 05+TRAP REQ (tracks enable+trap)
						; 3777	;	+12	-VM AC REF (normal instruction)
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 2-1
; BASIC.MIC[4,30]	17:12 9-Aug-84			NEXT INSTRUCTION DISPATCH				

						; 3778	;	+13	-VM AC REF+TRAP REQ (normal instruction+trap)
						; 3779	;	+14	Unused
						; 3780	;	+15	Unused
						; 3781	;	+16	-CON PI CYCLE (AC ref)
						; 3782	;	+17	-CON PI CYCLE+TRAP REQ (AC ref+trap)
						; 3783	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 3
; BASIC.MIC[4,30]	17:12 9-Aug-84			NEXT INSTRUCTION DISPATCH				

						; 3784	;NICOND (NXT INSTR) DISPATCH BLOCK
						; 3785	
						; 3786	=11*0000				;USE LOC'NS INACCESSIBLE TO DRAM
						; 3787	NEXT:	AR_MQ+1,VMA/AD,			;2ND PART OF INTERRUPT
U 0140, 3347,4023,2000,0000,0320,1510,0714	; 3788			SET PI CYCLE,J/PICYC2	;CONTINUE WITH 41+2N
						; 3789	=0010	CLR AR,ARX_1S,SC_#,#/23.,	;HERE IF RUN FLOP OFF
U 0142, 1630,2341,0200,0302,0000,0450,0027	; 3790			CALL,J/ROTS		;BUILD ADDR MASK
						;;3791	.IFNOT/EXTEXP				;[230]
						;;3792	.IFNOT/OWGBP				;[344]
						;;3793		ADMSK,FM_AR,AR_AR+1,J/CHALT	;SAVE MASK, GO HALT
						;;3794	.IF/OWGBP				;[344]
						;;3795		FM[ADMSK]_AR,AR_AR*2,J/EXMSK	;[230] AR HAS 77,,777776
						;;3796	.ENDIF/OWGBP				;[344]
						; 3797	.IF/EXTEXP				;[230]
U 0143, 0032,3703,5007,0000,0000,1010,0175	; 3798		FM[ADMSK]_AR,AR_AR*2,J/EXMSK	;[230] AR HAS 77,,777776
						; 3799	.ENDIF/EXTEXP				;[230]
						; 3800	=0100
U 0144, 3325,0001,0000,0000,0000,2110,0145	; 3801	MTRINT:	CLR ACCOUNT EN,J/MTRREQ		;HERE IF METER REQUEST UP
U 0145, 3344,4001,3000,0302,0060,0010,0002	; 3802		AR_EBUS,SC_#,#/2,J/PICYC1	;HERE IF TAKE INTRPT DOESNT FIND
						; 3803	=0110					; A METER REQUEST
U 0146, 3344,4001,3000,0302,0060,0010,0002	; 3804	INTRPT:	AR_EBUS,SC_#,#/2,J/PICYC1	;HERE IF INTERRUPT PENDING
						; 3805	;
						; 3806	;	[321] Even if statistics are enabled, traps should not be lost,
						; 3807	;	so override TRACKS and friends when TRAP is set.
						; 3808	;
						;;3809	.IF/TRACKS
						;;3810	=1000	AR_TRX+1,GEN CRY18,SKP CRY0,J/TRK1;STORE PC BEFORE EXECUTING INSTR
						;;3811		VMA_420+TRAP,J/TRAPX		;[321] Don't lose traps!
						; 3812	.ENDIF/TRACKS
						;;3813	.IF/OP.CNT
						;;3814	=1000	SC_#,#/9.,SKP USER,J/OPCT1	;COUNT THIS INSTR
						;;3815		VMA_420+TRAP,J/TRAPX		;[321] Don't lose traps!
						; 3816	.ENDIF/OP.CNT
						;;3817	.IF/OP.TIME
						;;3818	=1000	AR_2,CLR TRK+PA EN,J/OPTM0	;TIME THIS INSTR
						;;3819		VMA_420+TRAP,J/TRAPX		;[321] Don't lose traps!
						; 3820	.ENDIF/OP.TIME
						;;3821	.IF/SO.CNT
						;;3822	=1000
						;;3823	TRK0:	ARX_TRB,BRX/ARX,SKP AC REF,J/TRK1;GET PREV INSTR HOLD THIS INSTR
						;;3824		VMA_420+TRAP,J/TRAPX		;[321] Don't lose traps!
						; 3825	.ENDIF/SO.CNT
						;;3826	.IF/SO2.CNT
						;;3827	=1000
						;;3828	TRK0:	ARX_TRB,BRX/ARX,SKP AC REF,J/TRK1;GET PREV INSTR HOLD THIS INSTR
						;;3829		VMA_420+TRAP,J/TRAPX		;[321] Don't lose traps!
						; 3830	.ENDIF/SO2.CNT
						; 3831	=1010
						; 3832	XCTGO:	BRX/ARX,AR_ARX,SET ACCOUNT EN,	;SAVE INSTR, SIGN EXTEND Y,
U 0152, 0174,2341,4022,0000,2000,2136,0105	; 3833			XR,EA MOD DISP,J/COMPEA	; GO CALCULATE EA
U 0153, 0060,4001,0000,0000,0100,3110,0420	; 3834	TRAP:	VMA_420+TRAP,J/TRAPX		;HERE IF TRAP BITS SET
U 0156, 0152,3240,0203,0000,0020,1410,0000	; 3835	=1110	ARX_FM(VMA),TIME/3T,LOAD IR,J/XCTGO	;HERE IF INSTR IS IN FM
U 0157, 0060,4001,0000,0000,0100,3110,0420	; 3836		VMA_420+TRAP,J/TRAPX		;HERE IF TRAP BITS SET
						; 3837	
						; 3838	;HERE ON TRAPS, VMA SETUP WITH 420+TRAP CODE
						; 3839	=11****
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 3-1
; BASIC.MIC[4,30]	17:12 9-Aug-84			NEXT INSTRUCTION DISPATCH				

U 0060, 0270,0001,0000,0000,0013,0026,0033	; 3840	TRAPX:	LOAD ARX,PT REF			;GET AND XCT TRAP INSTR
U 0270, 0271,0001,0000,0000,0000,1510,0100	; 3841	=11****	SET PC+1 INH			;DON'T INCREMENT PC FOR THIS INSTR
						; 3842	
						; 3843	;HERE AFTER FETCHING INSTR TO BE EXECUTED
						; 3844	
						; 3845	=11****
U 0271, 0152,3240,0003,0000,0022,1410,0000	; 3846	XCTW:	ARX_MEM,LOAD IR,J/XCTGO		;GET INSTR TO XCT
						; 3847	.IF/EXTEXP				;[230]
U 0032, 0121,4003,2000,0000,0020,0010,0000	; 3848	EXMSK:	AR_AR+1				;[230] GIVES 77,,777777
U 0121, 0776,4001,0007,0000,0000,1010,0164	; 3849		FM[EXPMSK]_AR,J/CHALT		;[230] MASK FOR FORTRAN EXT EXP
						;;3850	.IFNOT/EXTEXP				;[344]
						;;3851	.IF/OWGBP				;[344]
						;;3852	EXMSK:	AR_AR+1				;[230] GIVES 77,,777777
						;;3853		FM[EXPMSK]_AR,J/CHALT		;[230] MASK FOR FORTRAN EXT EXP
						;;3854	.ENDIF/OWGBP				;[344]
						; 3855	.ENDIF/EXTEXP				;[230]
						; 3856	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 4
; BASIC.MIC[4,30]	17:12 9-Aug-84			EFFECTIVE ADDRESS COMPUTATION AND OPERAND FETCH		

						; 3857	.TOC	"EFFECTIVE ADDRESS COMPUTATION AND OPERAND FETCH"
						; 3858	
						; 3859	.IF/XADDR
						; 3860	=11*0000
						; 3861	EFIW:	AR_ARX (AD),GLOBAL,A INDRCT,	;LONG EXTENDED ADDR
U 0160, 0070,3713,2000,0000,1111,7010,0230	; 3862			SKP INTRPT,J/INDRCT	;WITH INDIRECT SET
						; 3863		AR_ARX+XR,GLOBAL,A INDRCT,
U 0161, 0070,0610,2002,4000,1131,7010,0230	; 3864			SKP INTRPT,J/INDRCT
						; 3865		AR_ARX (AD),GLOBAL,A INDRCT,
U 0162, 0070,3713,2000,0000,1111,7010,0230	; 3866			SKP INTRPT,J/INDRCT
						; 3867		AR_ARX+XR,GLOBAL,A INDRCT,
U 0163, 0070,0610,2002,4000,1131,7010,0230	; 3868			SKP INTRPT,J/INDRCT
						; 3869	
U 0164, 0000,3713,2000,0000,1204,0002,0300	; 3870		AR_ARX (AD),GLOBAL,A READ	;LONG EXTENDED ADDR
U 0165, 0000,0610,2002,4000,1224,0002,0300	; 3871		AR_ARX+XR,GLOBAL,A READ		; WITH INDEXING IN 2-5
U 0166, 0000,3713,2000,0000,1204,0002,0300	; 3872		AR_ARX (AD),GLOBAL,A READ
U 0167, 0000,0610,2002,4000,1224,0002,0300	; 3873		AR_ARX+XR,GLOBAL,A READ
						; 3874	
U 0170, 0134,0001,0000,0000,0000,2210,0400	; 3875	PF24:	GET ECL EBUS,J/ILLIND		;[234]ARX BITS 0,1 = 11
U 0171, 0134,0001,0000,0000,0000,2210,0400	; 3876		GET ECL EBUS,J/ILLIND
U 0172, 0134,0001,0000,0000,0000,2210,0400	; 3877		GET ECL EBUS,J/ILLIND
U 0173, 0134,0001,0000,0000,0000,2210,0400	; 3878		GET ECL EBUS,J/ILLIND
						; 3879	
						; 3880	.ENDIF/XADDR
						; 3881	
						; 3882	=11*1100
U 0174, 0000,3701,0000,0000,0204,0002,0300	; 3883	COMPEA:	GEN AR,A READ			;LOCAL
U 0175, 0000,0600,0002,4000,2224,0002,0300	; 3884		GEN AR+XR,INDEXED,A READ	;LOCAL UNLESS XR>0
						; 3885		GEN AR,A INDRCT,
U 0176, 0070,3701,0000,0000,0111,7010,0230	; 3886			SKP INTRPT,J/INDRCT
						; 3887		GEN AR+XR,INDEXED,A INDRCT,
U 0177, 0070,0600,0002,4000,2131,7010,0230	; 3888			SKP INTRPT,J/INDRCT
						;;3889	.IFNOT/MODEL.B
						;;3890	=11***0
						;;3891	INDRCT:	ARX_MEM,EA TYPE DISP,J/INDR1
						;;3892	TAKINT:	ARX_MEM,TAKE INTRPT
						;;3893	=11**01
						;;3894	INDR1:	AR_ARX,XR,EA MOD DISP,J/COMPEA
						;;3895	.IF/SXCT
						;;3896		AR_ARX (AD),A READ		;HERE IF SXCT 0,
						;;3897	.IFNOT/SXCT
						;;3898	=
						;;3899	.ENDIF/SXCT
						; 3900	.IF/MODEL.B
						;;3901	.IFNOT/XADDR
						;;3902	=11***0
						;;3903	INDRCT:	ARX_MEM,J/INDR1
						;;3904	TAKINT:	ARX_MEM,TAKE INTRPT
						;;3905	
						;;3906	=11****
						;;3907	INDR1:	AR_ARX,EA MOD DISP,J/COMPEA
						; 3908	.IF/XADDR
						; 3909	=11***0
U 0070, 0272,3240,0003,0000,0022,2510,0000	; 3910	INDRCT:	ARX_MEM,LONG EN,J/INDR1
U 0071, 0144,3200,0003,0000,0022,7710,0000	; 3911	TAKINT:	ARX_MEM,TAKE INTRPT
						; 3912	=11****
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 4-1
; BASIC.MIC[4,30]	17:12 9-Aug-84			EFFECTIVE ADDRESS COMPUTATION AND OPERAND FETCH		

						; 3913	INDR1:	AR_ARX,XR,EA MOD DISP,
U 0272, 0160,2341,4002,0301,2020,0036,0024	; 3914			FE_#,#/24,TIME/3T,J/EFIW
						; 3915	
U 0134, 0141,3731,0000,0301,0303,1710,0024	; 3916	ILLIND:	VMA_VMA HELD, FE_#, #/24	;[234]ILLEGAL INDIRECT PF
U 0141, 0147,4001,0000,0302,0000,0010,0140	; 3917		SC_#, #/140			;[234][242]
						; 3918						;[271]MASK TO INSERT PF CODE.
U 0147, 3371,0001,0000,0000,0007,0010,0140	; 3919		MAP, J/PFPAR2			;[234]GET MAP INFO, JOIN PF ROUTINE
						; 3920	.ENDIF/XADDR
						; 3921	.ENDIF/MODEL.B
						; 3922	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 5
; BASIC.MIC[4,30]	17:12 9-Aug-84			WAIT FOR (E)						

						; 3923	.TOC	"WAIT FOR (E)"
						; 3924	
						; 3925	;THE EXECUTE CODE FOR EACH INSTRUCTION IS ENTERED WITH
						; 3926	; THE OPCODE AND AC # IN BRX AND IR, THE LAST INDIRECT WORD
						; 3927	; IN ARX, AND AR AND VMA SETUP AS A FUNCTION OF THE A
						; 3928	; FIELD OF THE DISPATCH RAM. A PREFETCH IS IN PROGRESS IF THE
						; 3929	; DRAM A FIELD WAS 1 OR 5 (OR IF IR CONTAINS "JRST 0,").
						; 3930	
						; 3931	;ON "A READ", THE HARDWARE DISPATCHES TO THE EXECUTE CODE FOR
						; 3932	; THE INSTRUCTION IF THE DRAM A FIELD IS 0-2.  IF THE A FIELD
						; 3933	; CONTAINS 3-7, THE HARDWARE DISPATCHES TO A (MODEL B), OR 40+A
						; 3934	; (MODEL A), BELOW:
						; 3935	
						; 3936	;COME HERE ON "A READ" FUNCTION IF DRAM A FIELD IS 3
						; 3937	; A "WRITE TST" IS IN PROGRESS
						; 3938	
						; 3939	.IF/MODEL.B
						; 3940	3:
						;;3941	.IFNOT/MODEL.B
						;;3942	43:
						; 3943	.ENDIF/MODEL.B
						; 3944		BR/AR,AR_AC0,MB WAIT,		;WAIT FOR PERMISSION TO WRITE
U 0003, 0000,3240,2040,0000,0022,0001,0000	; 3945			TIME/3T,IR DISP,J/0	;AND GO TO EXECUTE CODE
						; 3946	
						; 3947	;HERE ON "A READ" FUNCTION IF DRAM A FIELD IS 4
						; 3948	; A "LOAD AR" IS IN PROGRESS.  We load FE with 2 for LDB and DPB. [337]
						; 3949	
						; 3950	.IF/MODEL.B
						; 3951	4:
						;;3952	.IFNOT/MODEL.B
						;;3953	44:
						; 3954	.ENDIF/MODEL.B
						; 3955		BR/AR,AR_MEM,TIME/3T,FE_#,#/2,	;GET OPERAND, set up FE for byte
U 0004, 0000,3200,0043,0301,0022,0001,0002	; 3956			IR DISP,J/0		; instructions [337], and go
						; 3957	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 6
; BASIC.MIC[4,30]	17:12 9-Aug-84			WAIT FOR (E)						

						; 3958	;HERE ON "A READ" IF A FIELD IS 5
						; 3959	; A "LOAD AR" IS IN PROGRESS, AND WE MUST PREFETCH WHEN IT COMPLETES
						; 3960	
						; 3961	.IF/MODEL.B
						; 3962	5:
						;;3963	.IFNOT/MODEL.B
						;;3964	45:
						; 3965	.ENDIF/MODEL.B
						; 3966		BR/AR,FIN XFER,I FETCH,		;GET OPERAND, PREFETCH,
U 0005, 0000,3200,0043,0000,0237,0001,0000	; 3967			TIME/3T,IR DISP,J/0	; & START EXECUTE
						; 3968	
						; 3969	;HERE ON "A READ" IF A FIELD IS 6
						; 3970	; A "LOAD AR" IS IN PROGRESS, BUT PAGING IS TESTING WRITABILITY
						; 3971	; We load FE with 2 for ILDB and IDPB. [337]
						; 3972	.IF/MODEL.B
						; 3973	6:
						;;3974	.IFNOT/MODEL.B
						;;3975	46:
						; 3976	.ENDIF/MODEL.B
						; 3977		BR/AR,AR_MEM,TIME/3T,FE_#,#/2,	;GET OPERAND, load FE for byte
U 0006, 0000,3200,0043,0301,0022,0001,0002	; 3978			IR DISP,J/0		; instructions [337], and go
						; 3979	
						; 3980	;HERE ON "A READ" IF A FIELD IS 7
						; 3981	; A "READ-PAUSE-WRITE" IS IN PROGRESS
						; 3982	
						; 3983	.IF/MODEL.B
						; 3984	7:
						;;3985	.IFNOT/MODEL.B
						;;3986	47:
						; 3987	.ENDIF/MODEL.B
						; 3988		BR/AR,AR_MEM,TIME/3T,		;GET OPERAND
U 0007, 0000,3200,0043,0000,0022,0001,0000	; 3989			IR DISP,J/0		; START EXECUTE
						; 3990	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 7
; BASIC.MIC[4,30]	17:12 9-Aug-84			TERMINATION						

						; 3991	.TOC	"TERMINATION"
						; 3992	
						; 3993	;DISPATCH HERE WITH THE "EXIT" MACRO,
						; 3994	; OR JUMP DIRECTLY TO ONE OF THESE LOCATIONS.
						; 3995	
						; 3996	=11*000
						; 3997	ST0:					;BASE FOR B DISP IN EXIT MACRO
						; 3998	=001
U 0061, 0273,5401,2000,0000,0237,1016,0000	; 3999	ST2AC:	AC0_AR,AR_SIGN,I FETCH,J/STD1	;HERE TO STORE AC0 & AC1
U 0062, 0061,4001,0003,0000,0002,0010,0000	; 4000		FIN STORE,EXIT DBL		;MULB, DIVB, ETC ...
						; 4001		FIN STORE,I FETCH,		;SELF MODE
U 0063, 0074,4001,0003,0000,0217,4610,0000	; 4002			SKP AC#0,J/STSELF	; RESULT TO AC TOO?
U 0064, 0065,0001,4000,0000,0000,0010,0000	; 4003	SHFLOD:	AR_SHIFT			;[337] Shift byte load result
U 0065, 0140,4001,0000,0403,0002,1006,0000	; 4004	STAC:	AC0_AR,NXT INSTR		;NORMAL AND IMMEDIATE MODES
						; 4005	ST6:
						; 4006	IFNOP:
U 0066, 0075,4001,0003,0000,0217,0010,0000	; 4007	STMEM:	FIN STORE,I FETCH,J/NOP		;MEM MODE
						; 4008	IFSTAC:
U 0067, 0074,0001,0003,0000,0217,0010,0000	; 4009	STBOTH:	FIN STORE,I FETCH,J/STORAC	;BOTH MODE
						; 4010	=
						; 4011	;HERE TO FINISH, AFTER FETCHING NEXT INSTRUCTION.
						; 4012	; WE MUST GUARANTEE AT LEAST ONE EBOX CYCLE BETWEEN FETCH AND NICOND,
						; 4013	; TO ALLOW VMA AC REF TO MAKE IT THROUGH THE NICOND LOGIC.
						; 4014	=11***0
						; 4015	STSELF:					;SKIP, AOS, SOS COME HERE
U 0074, 0065,0001,0000,0000,0000,1610,0000	; 4016	STORAC:	SR_0,J/STAC			;STORE AC, TOO
U 0075, 0222,4001,0000,0000,0000,1610,0000	; 4017	NOP:	SR_0,J/FINI
						; 4018	
						; 4019	=0
U 0020, 0222,4001,0000,0000,0000,0014,0000	; 4020	CLRFPD:	CLR FPD,J/FINI			;CAN'T DO THIS UNTIL STORE COMPLETE
U 0021, 0222,4001,0000,0000,0000,1610,0000	; 4021	NOP2:	SR_0,J/FINI			;THE CODE SEEMS TO WORK WITHOUT THIS
						; 4022						; BUT THE TIMING IS VERY HAIRY AND
						; 4023						; THE HARDWARE PROBABLY ISN'T
						; 4024						; SUPPOSED TO
						; 4025	
U 0222, 0140,0001,0000,0403,0002,0006,0000	; 4026	FINI:	NXT INSTR			;GET NEXT INSTR IN ARX & IR,
						; 4027						; LOAD PC, TEST PI CYCLE, RUN,
						; 4028						; PI READY, TRAPS
						; 4029	
						; 4030	;HERE TO STORE ARITHMETIC DOUBLE RESULTS
						; 4031	
U 0255, 0273,5441,2000,0000,0020,1016,0000	; 4032	DSTAC:	AC0_AR,AR_SIGN			;HERE WITH FETCH STARTED
U 0273, 0136,0001,4000,0000,0000,1610,0000	; 4033	STD1:	AR_SHIFT,SR_0			;BRING IN LOW PART
						; 4034	;
						; 4035	;	[356] The next two locations are fixed at 136 and 137.  We don't
						; 4036	;	really care where they are, but the front end looks at the # field
						; 4037	;	of these to get the microcode major version (# bits 0-5 of 136),
						; 4038	;	minor version (# bits 6-8 of 136), and edit number (# bits 0-8 of
						; 4039	;	137).
						; 4040	;	
						; 4041	136:					;[357]
						; 4042	STAC1:	AC1_AR,FINISH,			;GO DO NEXT INSTRUCTION
U 0136, 0222,4001,0001,0000,0000,1010,0010	; 4043			MAJVER/MAJOR,MINVER/MINOR;[356]
						; 4044	;
						; 4045	;HERE TO GET MICRO-CODE VERSION #.  FIXED LOC'N SO SOFTWARE CAN FIND IT
						; 4046	;
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 7-1
; BASIC.MIC[4,30]	17:12 9-Aug-84			TERMINATION						

						; 4047	137:
U 0137, 3354,4001,0040,0000,0000,0110,0357	; 4048	UVERS:	BR/AR,AR0-8_#,#/EDIT,J/GTAR08	;COPY VERSION TO AR
						; 4049	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 8
; BASIC.MIC[4,30]	17:12 9-Aug-84			MOVE GROUP, EXCH, BLT					

						; 4050	.TOC	"MOVE GROUP, EXCH, BLT"
						; 4051	
						; 4052		.DCODE
D 0200, 5500,0100				; 4053	200:	R-PF,	AC,	J/MOVE	;BASIC MOVE
D 0201, 1501,0100				; 4054		I-PF,	AC,	J/MOVE
						;;4055	.IF/WRTST
						;;4056		W,	M,	J/MOVE
						; 4057	.IFNOT/WRTST
D 0202, 0101,0103				; 4058		I,	B/1,	J/MOVEM
						; 4059	.ENDIF/WRTST
D 0203, 7301,0100				; 4060		RPW,	S,	J/MOVE
						; 4061	
D 0204, 5500,0002				; 4062	204:	R-PF,	AC,	J/MOVS
D 0205, 1501,0002				; 4063		I-PF,	AC,	J/MOVS
D 0206, 3600,0002				; 4064		W,	M,	J/MOVS
D 0207, 7301,0002				; 4065		RPW,	S,	J/MOVS
						; 4066	
D 0210, 5501,0201				; 4067	210:	R-PF,	AC,	J/MOVN
D 0211, 1500,0201				; 4068		I-PF,	AC,	J/MOVN
D 0212, 3601,0201				; 4069		W,	M,	J/MOVN
D 0213, 7300,0201				; 4070		RPW,	S,	J/MOVN
						; 4071	
D 0214, 5500,0112				; 4072	214:	R-PF,	AC,	J/MOVM
D 0215, 1501,0112				; 4073		I-PF,	AC,	J/MOVM
D 0216, 3600,0112				; 4074		W,	M,	J/MOVM
D 0217, 7301,0112				; 4075		RPW,	S,	J/MOVM
						; 4076		.UCODE
						; 4077	
						; 4078	; ENTER WITH 0,E, (E), OR (AC) IN AR
						; 4079	=0****00****
U 0002, 0060,4001,4000,0000,3005,0033,0000	; 4080	MOVS:	AR_AR SWAP,EXIT			;ALSO USED BY HALFWORD GROUP
						; 4081	=
						; 4082	=0****00****
U 0112, 0100,0001,0040,0000,0000,4510,0000	; 4083	MOVM:	BR/AR,SKP AR0,J/MOVE		;FORCE POSITIVE
						; 4084	=
						; 4085	=0****00****
U 0201, 0101,0001,0040,0000,0000,0010,0000	; 4086	MOVN:	BR/AR,J/MOVNEG			;GET NEGATIVE
						; 4087	=
						; 4088	100:
U 0100, 0060,0001,0000,0000,0005,0033,0000	; 4089	MOVE:	EXIT				;STORE AS IS FROM AR
						; 4090	101:
U 0101, 0100,5142,2000,0000,0022,1310,0000	; 4091	MOVNEG:	AR_-BR,AD FLAGS,FETCH WAIT,J/MOVE
						; 4092	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 9
; BASIC.MIC[4,30]	17:12 9-Aug-84			XMOVEI, XHLLI, MOVEM, EXCH, BLT				

						; 4093	.TOC	"XMOVEI, XHLLI, MOVEM, EXCH, BLT"
						; 4094	
						; 4095	;HERE FOR XMOVEI (=SETMI), WITH 36-BIT ADDRESS IN VMA AND AR
						; 4096	
						; 4097	.IF/XADDR
						; 4098	102:
U 0102, 0334,0001,0000,0000,0217,5710,0000	; 4099	XMOVEI:	SKP -LOCAL AC ADDR,I FETCH
						; 4100	=0
U 0334, 0065,4061,0000,0000,0021,0017,0002	; 4101	XMOVEI1:ARL_1.M,ARR_ARR,J/STAC		;AC IN NON-ZERO SECTION
U 0335, 0065,0001,0000,0400,3000,0022,0200	; 4102		CLR P,J/STAC			;RETURN 30-BIT ADDRESS
						; 4103	
						; 4104	;HERE FOR XHLLI (=HLLI), WITH 36-BIT ADDRESS IN VMA AND AR
						; 4105	107:
						; 4106	XHLLI:	SKP -LOCAL AC ADDR,I FETCH,
U 0107, 0334,3240,2000,0000,0237,5722,0000	; 4107			ARR_AC0.S,ARL_ARL.S,J/XMOVEI1
						; 4108	.ENDIF/XADDR
						; 4109	
						; 4110	;EXCH, BLT
						; 4111	
						; 4112		.DCODE
D 0250, 7001,0103				; 4113	250:	RPW,	B/0,	J/EXCH
D 0251, 2000,0104				; 4114		EA,		J/BLT
						; 4115		.UCODE
						; 4116	
						; 4117	103:
						; 4118	MOVEM:					;LIKE EXCH, EXCEPT NO STORE AC
U 0103, 1330,3240,2400,0000,1036,0010,0000	; 4119	EXCH:	ARX_AR,AR_AC0,STORE,J/STMAC	;PUT AC AT E, THEN STORE AC
						; 4120	104:
						; 4121	BLT:	MQ_AR,ARX_AR,			;END ADDR TO MQ & ARX
U 0104, 3252,3200,2410,0000,1020,0610,0000	; 4122			ARR_AC0,ARL_ARL,J/BLT1	;FIRST DEST ADDR TO AR
						; 4123	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 10
; BASIC.MIC[4,30]	17:12 9-Aug-84			HALFWORD GROUP						

						; 4124	.TOC	"HALFWORD GROUP"
						; 4125	;	DESTINATION LEFT HALF
						; 4126	
						; 4127		.DCODE
D 0500, 5500,0106				; 4128	500:	R-PF,	AC,	J/HLL
						; 4129	.IF/XADDR
D 0501, 2500,0107				; 4130		EA,	AC,	J/XHLLI		;GET 36 BIT ADDRESS IN AR AND VMA
						;;4131	.IFNOT/XADDR
						;;4132		I-PF,	AC,	J/HLL
						; 4133	.ENDIF/XADDR
D 0502, 7601,0105				; 4134		RPW,	M,	J/HRR		;HLLM = HRR EXCEPT FOR STORE
D 0503, 7301,0100				; 4135		RPW,	S,	J/MOVE		;HLLS = MOVES
						; 4136	
D 0504, 5500,0205				; 4137		R-PF,	AC,	J/HRL
D 0505, 1501,0205				; 4138		I-PF,	AC,	J/HRL
D 0506, 7601,0114				; 4139		RPW,	M,	J/HRLM
D 0507, 7300,0115				; 4140		RPW,	S,	J/HRLS
						; 4141	
D 0510, 5500,0414				; 4142	510:	R-PF,	AC,	J/HLLZ
D 0511, 1501,0414				; 4143		I-PF,	AC,	J/HLLZ
D 0512, 3600,0414				; 4144		W,	M,	J/HLLZ
D 0513, 7301,0414				; 4145		RPW,	S,	J/HLLZ
						; 4146	
D 0514, 5501,0300				; 4147		R-PF,	AC,	J/HRLZ
D 0515, 1500,0300				; 4148		I-PF,	AC,	J/HRLZ
D 0516, 3601,0300				; 4149		W,	M,	J/HRLZ
D 0517, 7300,0300				; 4150		RPW,	S,	J/HRLZ
						; 4151	
D 0520, 5501,0415				; 4152	520:	R-PF,	AC,	J/HLLO
D 0521, 1500,0415				; 4153		I-PF,	AC,	J/HLLO
D 0522, 3601,0415				; 4154		W,	M,	J/HLLO
D 0523, 7300,0415				; 4155		RPW,	S,	J/HLLO
						; 4156	
D 0524, 5500,0301				; 4157		R-PF,	AC,	J/HRLO
D 0525, 1501,0301				; 4158		I-PF,	AC,	J/HRLO
D 0526, 3600,0301				; 4159		W,	M,	J/HRLO
D 0527, 7301,0301				; 4160		RPW,	S,	J/HRLO
						; 4161	
D 0530, 5501,0701				; 4162	530:	R-PF,	AC,	J/HLLE
D 0531, 1500,0701				; 4163		I-PF,	AC,	J/HLLE
D 0532, 3601,0701				; 4164		W,	M,	J/HLLE
D 0533, 7300,0701				; 4165		RPW,	S,	J/HLLE
						; 4166	
D 0534, 5501,0506				; 4167		R-PF,	AC,	J/HRLE
D 0535, 1500,0506				; 4168		I-PF,	AC,	J/HRLE
D 0536, 3601,0506				; 4169		W,	M,	J/HRLE
D 0537, 7300,0506				; 4170		RPW,	S,	J/HRLE
						; 4171	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 11
; BASIC.MIC[4,30]	17:12 9-Aug-84			HALFWORD GROUP						

						; 4172	;	DESTINATION RIGHT HALF
						; 4173	
D 0540, 5500,0105				; 4174	540:	R-PF,	AC,	J/HRR
D 0541, 1501,0105				; 4175		I-PF,	AC,	J/HRR
D 0542, 7601,0106				; 4176		RPW,	M,	J/HLL		;HRRM = HLL EXCEPT FOR STORE
D 0543, 7301,0100				; 4177		RPW,	S,	J/MOVE		;HRRS = MOVES
						; 4178	
D 0544, 5501,0306				; 4179		R-PF,	AC,	J/HLR
D 0545, 1500,0306				; 4180		I-PF,	AC,	J/HLR
D 0546, 7600,0202				; 4181		RPW,	M,	J/HLRM
D 0547, 7301,0203				; 4182		RPW,	S,	J/HLRS
						; 4183	
D 0550, 5500,0214				; 4184	550:	R-PF,	AC,	J/HRRZ
D 0551, 1501,0214				; 4185		I-PF,	AC,	J/HRRZ
D 0552, 3600,0214				; 4186		W,	M,	J/HRRZ
D 0553, 7301,0214				; 4187		RPW,	S,	J/HRRZ
						; 4188	
D 0554, 5500,0304				; 4189		R-PF,	AC,	J/HLRZ
D 0555, 1501,0304				; 4190		I-PF,	AC,	J/HLRZ
D 0556, 3600,0304				; 4191		W,	M,	J/HLRZ
D 0557, 7301,0304				; 4192		RPW,	S,	J/HLRZ
						; 4193	
D 0560, 5501,0215				; 4194	560:	R-PF,	AC,	J/HRRO
D 0561, 1500,0215				; 4195		I-PF,	AC,	J/HRRO
D 0562, 3601,0215				; 4196		W,	M,	J/HRRO
D 0563, 7300,0215				; 4197		RPW,	S,	J/HRRO
						; 4198	
D 0564, 5501,0305				; 4199		R-PF,	AC,	J/HLRO
D 0565, 1500,0305				; 4200		I-PF,	AC,	J/HLRO
D 0566, 3601,0305				; 4201		W,	M,	J/HLRO
D 0567, 7300,0305				; 4202		RPW,	S,	J/HLRO
						; 4203	
D 0570, 5501,0413				; 4204	570:	R-PF,	AC,	J/HRRE
D 0571, 1500,0413				; 4205		I-PF,	AC,	J/HRRE
D 0572, 3601,0413				; 4206		W,	M,	J/HRRE
D 0573, 7300,0413				; 4207		RPW,	S,	J/HRRE
						; 4208	
D 0574, 5500,0516				; 4209		R-PF,	AC,	J/HLRE
D 0575, 1501,0516				; 4210		I-PF,	AC,	J/HLRE
D 0576, 3600,0516				; 4211		W,	M,	J/HLRE
D 0577, 7301,0516				; 4212		RPW,	S,	J/HLRE
						; 4213	
						; 4214		.UCODE
						; 4215	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 12
; BASIC.MIC[4,30]	17:12 9-Aug-84			HALFWORD GROUP						

						; 4216	;FIRST, THE 16 OPS WHICH DO NOT AFFECT THE "OTHER" HALF.
						; 4217	;THESE MUST BE TREATED SEPARATELY, BECAUSE THEY COMBINE MEMORY DATA
						; 4218	;IN AR WITH DATA FROM THE FM.  ENTER WITH 0,E OR (E) IN AR.
						; 4219	
						; 4220	105:
U 0105, 0060,3200,0000,0000,0025,0633,0002	; 4221	HRR:	ARL_AC0,ARR_ARR,EXIT		;HRR, HRRI, HLLM
						; 4222	106:
U 0106, 0060,3200,2000,0000,0025,0633,0000	; 4223	HLL:	ARR_AC0,ARL_ARL,EXIT		;HLL, HLLI, HRRM
						; 4224				;HRRS, HLLS ARE BOTH EQUIVALENT TO MOVES
						; 4225	=0****00****
U 0205, 0060,3240,2000,0000,3025,0633,0004	; 4226	HRL:	ARL_ARR,ARR_AC0,EXIT		;HRL, HRLI
						; 4227	=
						; 4228	=0****00****
U 0306, 0060,3240,4000,0000,3025,0633,0002	; 4229	HLR:	ARR_ARL,ARL_AC0,EXIT		;HLR, HLRI
						; 4230	=
						; 4231	=0****00***0
U 0114, 0002,3240,2000,0000,3020,0610,0004	; 4232	HRLM:	ARL_ARR,ARR_AC0,J/MOVS		;HRLM
U 0115, 0060,4001,0000,0000,3005,0633,0004	; 4233	HRLS:	ARL_ARR,ARR_ARR,EXIT		;HRLS
						; 4234	=
						; 4235	=0****00***0
U 0202, 0002,3240,4000,0000,3020,0610,0002	; 4236	HLRM:	ARR_ARL,ARL_AC0,J/MOVS		;HLRM
U 0203, 0060,4001,4000,0000,3005,0633,0000	; 4237	HLRS:	ARR_ARL,ARL_ARL,EXIT		;HLRS
						; 4238	=
						; 4239	;NOW THE HALFWORD OPS WHICH CONTROL THE "OTHER" HALF
						; 4240	; ENTER WITH 0,E, (E), OR (AC) IN AR
						; 4241	
						; 4242	=0****00****
U 0413, 0214,0001,0000,0000,0000,4410,0000	; 4243	HRRE:	SKP AR18			;SELECT HRRZ OR HRRO ON SIGN
						; 4244	=
						; 4245	=0****00***0
U 0214, 0060,4001,0000,0000,0005,0633,0020	; 4246	HRRZ:	ARL_0S,ARR_ARR,EXIT
U 0215, 0060,2301,0000,0000,0005,0633,0002	; 4247	HRRO:	ARL_1S,ARR_ARR,EXIT
						; 4248	=
						; 4249	=0****00****
U 0506, 0300,4001,0000,0000,0000,4410,0000	; 4250	HRLE:	SKP AR18
						; 4251	=
						; 4252	=0****00***0
U 0300, 0060,3441,2000,0000,3005,0633,0004	; 4253	HRLZ:	ARL_ARR,ARR_0S,EXIT
U 0301, 0060,2341,2000,0000,3005,0633,0004	; 4254	HRLO:	ARL_ARR,ARR_1S,EXIT
						; 4255	=
						; 4256	=0****00****
U 0516, 0304,4001,0000,0000,0000,4510,0000	; 4257	HLRE:	SKP AR0
						; 4258	=
						; 4259	=0****00***0
U 0304, 0060,0001,4000,0000,3005,0633,0020	; 4260	HLRZ:	ARR_ARL,ARL_0S,EXIT
U 0305, 0060,2341,4000,0000,3005,0633,0002	; 4261	HLRO:	ARR_ARL,ARL_1S,EXIT
						; 4262	=
						; 4263	=0****00****
U 0701, 0414,4001,0000,0000,0000,4510,0000	; 4264	HLLE:	SKP AR0
						; 4265	=
						; 4266	=0****00***0
U 0414, 0060,3401,2000,0000,0005,0633,0000	; 4267	HLLZ:	ARR_0S,ARL_ARL,EXIT
U 0415, 0060,2301,2000,0000,0005,0633,0000	; 4268	HLLO:	ARR_1S,ARL_ARL,EXIT
						; 4269	=
						; 4270	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 13
; BASIC.MIC[4,30]	17:12 9-Aug-84			DMOVE, DMOVN, DMOVEM, DMOVNM				

						; 4271	.TOC	"DMOVE, DMOVN, DMOVEM, DMOVNM"
						; 4272	;DOUBLE-WORD MOVES
						; 4273	
						; 4274		.DCODE
D 0120, 4001,0711				; 4275	120:	R,	B/0,	J/DMOVE
D 0121, 4100,0711				; 4276		R,	B/1,	J/DMOVN
						; 4277		.UCODE
						; 4278	
						; 4279	; ENTER WITH (E) IN AR
						; 4280	=0****00****
						; 4281	DMOVN:
U 0711, 0030,4001,0000,0000,0013,3633,0000	; 4282	DMOVE:	VMA_VMA+1,LOAD ARX,B DISP	;PICK UP (E+1)
						; 4283	=
						; 4284	=00
U 0030, 2111,3240,0003,0000,0022,0010,0000	; 4285	DLOAD:	ARX_MEM,J/STDAC			;[343] GO STORE DOUBLE AC
U 0031, 0371,3200,0003,0000,0022,0062,0100	; 4286		ARX_MEM,MQ_0.S,CALL.S,J/GTDBR	;LOAD BR WITH DOUBLE OPERAND
						; 4287	=11	AR_-BR LONG,AD FLAGS,		;NEGATE DOUBLE OPERAND
U 0033, 0331,5142,2600,0302,0020,1327,0043	; 4288			SC_#,#/35.		;& STORE RESULT
U 0331, 0273,3441,2000,0000,0217,1010,0000	; 4289	DBLST:	AC0_AR,AR_0S,I FETCH,J/STD1	;STORE HIGH WORD, READY LOW
						; 4290	
						; 4291	
						; 4292	;DOUBLE MOVES TO MEMORY
						; 4293	
						; 4294		.DCODE
D 0124, 3001,0110				; 4295	124:	W,		J/DMOVEM
D 0125, 3000,0111				; 4296		W,		J/DMOVNM
						; 4297		.UCODE
						; 4298	
						; 4299	;ENTER WITH (AC) IN AR
						; 4300	=0****00**00
U 0110, 0352,3240,0201,0302,0036,0010,0044	; 4301	DMOVEM:	ARX_AC1,STORE,SC_#,#/36.,J/DMVM1
U 0111, 0371,3240,0201,0000,0020,0062,0100	; 4302	DMOVNM:	ARX_AC1,MQ_0.S,CALL.S,J/GTDBR	;HIGH WORD IS ALREADY IN AR
						; 4303	=11	AR_-BR LONG,AD FLAGS,		;NEGATE
U 0113, 0352,5162,2600,0302,0036,1327,0043	; 4304			STORE,SC_#,#/35.	; & STORE
						; 4305	=
U 0352, 0361,3441,2003,0000,0002,3610,0000	; 4306	DMVM1:	MEM_AR,VMA_VMA+1,AR_0S
U 0361, 0066,4001,4000,0000,0016,0010,0000	; 4307		AR_SHIFT,STORE,J/STMEM
						; 4308	
U 0371, 0375,3721,0500,0000,0000,0010,0000	; 4309	GTDBR:	ARX_ARX*2			;SHIFT OUT LOW SIGN
U 0375, 0003,0001,0060,0000,0000,0003,0000	; 4310	LDBRL:	BR_AR LONG,RETURN3		;COPY TO BR LONG
						; 4311	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 14
; BASIC.MIC[4,30]	17:12 9-Aug-84			BOOLEAN GROUP						

						; 4312	.TOC	"BOOLEAN GROUP"
						; 4313		.DCODE
D 0400, 1501,0712				; 4314	400:	I-PF,	AC,	J/SETZ
D 0401, 1501,0712				; 4315		I-PF,	AC,	J/SETZ
D 0402, 0600,0712				; 4316		IW,	M,	J/SETZ
D 0403, 0701,0712				; 4317		IW,	B,	J/SETZ
						; 4318		.UCODE
						; 4319	
						; 4320	=0****00****
U 0712, 0060,3401,2000,0000,0005,0033,0000	; 4321	SETZ:	AR_0S,EXIT
						; 4322	=
						; 4323		.DCODE
D 0404, 5501,0715				; 4324	404:	R-PF,	AC,	J/AND
D 0405, 1500,0715				; 4325		I-PF,	AC,	J/AND
D 0406, 7600,0715				; 4326		RPW,	M,	J/AND
D 0407, 7701,0715				; 4327		RPW,	B,	J/AND
						; 4328		.UCODE
						; 4329	
						; 4330	=0****00****
U 0715, 0060,3600,2000,4000,0025,0033,0000	; 4331	AND:	AR_AR*AC0,AD/AND,EXIT
						; 4332	=
						; 4333		.DCODE
D 0410, 5501,0716				; 4334	410:	R-PF,	AC,	J/ANDCA
D 0411, 1500,0716				; 4335		I-PF,	AC,	J/ANDCA
D 0412, 7600,0716				; 4336		RPW,	M,	J/ANDCA
D 0413, 7701,0716				; 4337		RPW,	B,	J/ANDCA
						; 4338		.UCODE
						; 4339	
						; 4340	=0****00****
U 0716, 0060,3500,2000,4000,0025,0033,0000	; 4341	ANDCA:	AR_AR*AC0,AD/ANDCB,EXIT
						; 4342	=
						; 4343		.DCODE
D 0414, 5500,0100				; 4344	414:	R-PF,	AC,	J/MOVE		;SETM = MOVE
						; 4345	.IF/XADDR
D 0415, 2500,0102				; 4346		EA,	AC,	J/XMOVEI	;XMOVEI <=> SETMI
						;;4347	.IFNOT/XADDR
						;;4348		I-PF,	AC,	J/MOVE
						; 4349	.ENDIF/XADDR
D 0416, 7601,0100				; 4350		RPW,	M,	J/MOVE		;SETMM = NOP THAT WRITES MEMORY
D 0417, 7700,0100				; 4351		RPW,	B,	J/MOVE		;SETMB = MOVE THAT WRITES MEMORY
						; 4352	
D 0420, 5501,1001				; 4353	420:	R-PF,	AC,	J/ANDCM
D 0421, 1500,1001				; 4354		I-PF,	AC,	J/ANDCM
D 0422, 7600,1001				; 4355		RPW,	M,	J/ANDCM
D 0423, 7701,1001				; 4356		RPW,	B,	J/ANDCM
						; 4357		.UCODE
						; 4358	
						; 4359	=0****00****
U 1001, 0060,3000,2000,4000,0025,0033,0000	; 4360	ANDCM:	AR_AR*AC0,AD/ANDCA,EXIT
						; 4361	=
						; 4362		.DCODE
D 0424, 5001,0014				; 4363	424:	R-PF,		J/TDN		;SETA = NOP
D 0425, 1000,0014				; 4364		I-PF,		J/TDN		;SETAI IS, TOO
D 0426, 3600,0100				; 4365		W,	M,	J/MOVE		;SETAM = MOVEM
D 0427, 3600,0100				; 4366		W,	M,	J/MOVE		;SETAB, TOO
						; 4367	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 15
; BASIC.MIC[4,30]	17:12 9-Aug-84			BOOLEAN GROUP						

						; 4368		.DCODE
D 0430, 5501,1007				; 4369	430:	R-PF,	AC,	J/XOR
D 0431, 1500,1007				; 4370		I-PF,	AC,	J/XOR
D 0432, 7600,1007				; 4371		RPW,	M,	J/XOR
D 0433, 7701,1007				; 4372		RPW,	B,	J/XOR
						; 4373		.UCODE
						; 4374	
						; 4375	=0****00****
U 1007, 0060,3100,2000,0000,0025,0033,0000	; 4376	XOR:	AR_AR*AC0,AD/XOR,EXIT
						; 4377	=
						; 4378		.DCODE
D 0434, 5500,1116				; 4379	434:	R-PF,	AC,	J/IOR
D 0435, 1501,1116				; 4380		I-PF,	AC,	J/IOR
D 0436, 7601,1116				; 4381		RPW,	M,	J/IOR
D 0437, 7700,1116				; 4382		RPW,	B,	J/IOR
						; 4383		.UCODE
						; 4384	
						; 4385	=0****00****
U 1116, 0060,3300,2000,4000,0025,0033,0000	; 4386	IOR:	AR_AR*AC0,AD/OR,EXIT
						; 4387	=
						; 4388		.DCODE
D 0440, 5500,1311				; 4389	440:	R-PF,	AC,	J/ANDCB
D 0441, 1501,1311				; 4390		I-PF,	AC,	J/ANDCB
D 0442, 7601,1311				; 4391		RPW,	M,	J/ANDCB
D 0443, 7700,1311				; 4392		RPW,	B,	J/ANDCB
						; 4393		.UCODE
						; 4394	
						; 4395	=0****00****
U 1311, 0060,2400,2000,4000,0025,0033,0000	; 4396	ANDCB:	AR_AR*AC0,AD/ANDC,EXIT
						; 4397	=
						; 4398		.DCODE
D 0444, 5501,1510				; 4399	444:	R-PF,	AC,	J/EQV
D 0445, 1500,1510				; 4400		I-PF,	AC,	J/EQV
D 0446, 7600,1510				; 4401		RPW,	M,	J/EQV
D 0447, 7701,1510				; 4402		RPW,	B,	J/EQV
						; 4403		.UCODE
						; 4404	
						; 4405	=0****00****
U 1510, 0060,2600,2000,0000,0025,0033,0000	; 4406	EQV:	AR_AR*AC0,AD/EQV,EXIT
						; 4407	=
						; 4408		.DCODE
D 0450, 1501,1511				; 4409	450:	I-PF,	AC,	J/SETCA
D 0451, 1501,1511				; 4410		I-PF,	AC,	J/SETCA
D 0452, 0600,1511				; 4411		IW,	M,	J/SETCA
D 0453, 0701,1511				; 4412		IW,	B,	J/SETCA
						; 4413		.UCODE
						; 4414	
						; 4415	=0****00****
U 1511, 0060,2500,2000,0000,0025,0033,0000	; 4416	SETCA:	AR_AR*AC0,AD/SETCB,EXIT
						; 4417	=
						; 4418	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 16
; BASIC.MIC[4,30]	17:12 9-Aug-84			BOOLEAN GROUP						

						; 4419		.DCODE
D 0454, 5500,1512				; 4420	454:	R-PF,	AC,	J/ORCA
D 0455, 1501,1512				; 4421		I-PF,	AC,	J/ORCA
D 0456, 7601,1512				; 4422		RPW,	M,	J/ORCA
D 0457, 7700,1512				; 4423		RPW,	B,	J/ORCA
						; 4424		.UCODE
						; 4425	
						; 4426	=0****00****
U 1512, 0060,2700,2000,4000,0025,0033,0000	; 4427	ORCA:	AR_AR*AC0,AD/ORCB,EXIT
						; 4428	=
						; 4429		.DCODE
D 0460, 5501,1513				; 4430	460:	R-PF,	AC,	J/SETCM
D 0461, 1500,1513				; 4431		I-PF,	AC,	J/SETCM
D 0462, 7600,1513				; 4432		RPW,	M,	J/SETCM
D 0463, 7701,1513				; 4433		RPW,	B,	J/SETCM
						; 4434		.UCODE
						; 4435	
						; 4436	=0****00****
U 1513, 0060,2001,2000,0000,0005,0033,0000	; 4437	SETCM:	ADA/AR,AD/SETCA,AR/AD,EXIT
						; 4438	=
						; 4439		.DCODE
D 0464, 5500,1514				; 4440	464:	R-PF,	AC,	J/ORCM
D 0465, 1501,1514				; 4441		I-PF,	AC,	J/ORCM
D 0466, 7601,1514				; 4442		RPW,	M,	J/ORCM
D 0467, 7700,1514				; 4443		RPW,	B,	J/ORCM
						; 4444		.UCODE
						; 4445	
						; 4446	=0****00****
U 1514, 0060,2200,2000,4000,0025,0033,0000	; 4447	ORCM:	AR_AR*AC0,AD/ORCA,EXIT
						; 4448	=
						; 4449		.DCODE
D 0470, 5501,1515				; 4450	470:	R-PF,	AC,	J/ORCB
D 0471, 1500,1515				; 4451		I-PF,	AC,	J/ORCB
D 0472, 7600,1515				; 4452		RPW,	M,	J/ORCB
D 0473, 7701,1515				; 4453		RPW,	B,	J/ORCB
						; 4454		.UCODE
						; 4455	
						; 4456	=0****00****
U 1515, 0060,2100,2000,4000,0025,0033,0000	; 4457	ORCB:	AR_AR*AC0,AD/ORC,EXIT
						; 4458	=
						; 4459		.DCODE
D 0474, 1500,1516				; 4460	474:	I-PF,	AC,	J/SETO
D 0475, 1500,1516				; 4461		I-PF,	AC,	J/SETO
D 0476, 0601,1516				; 4462		IW,	M,	J/SETO
D 0477, 0700,1516				; 4463		IW,	B,	J/SETO
						; 4464		.UCODE
						; 4465	
						; 4466	=0****00****
U 1516, 0060,2301,2000,0000,0005,0033,0000	; 4467	SETO:	AR_1S,EXIT
						; 4468	=
						; 4469	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 1
; SKPJMP.MIC[4,30]	17:12 9-Aug-84			TEST GROUP						

						; 4470	.TOC	"TEST GROUP"
						; 4471		.DCODE
D 0600, 1000,0014				; 4472	600:	I-PF,		J/TDN		;TRN- IS NOP
D 0601, 1000,0014				; 4473		I-PF,		J/TDN		;SO IS TLN-
D 0602, 0000,0013				; 4474		I,	TNE,	J/TDXX
D 0603, 0001,0012				; 4475		I,	TNE,	J/TSXX
D 0604, 0000,0010				; 4476		I,	TNA,	J/TDX
D 0605, 0001,0011				; 4477		I,	TNA,	J/TSX
D 0606, 0401,0013				; 4478		I,	TNN,	J/TDXX
D 0607, 0400,0012				; 4479		I,	TNN,	J/TSXX
						; 4480	
D 0610, 1000,0014				; 4481	610:	I-PF,		J/TDN		;TDN- IS A NOP
D 0611, 1000,0014				; 4482		I-PF,		J/TDN		;TSN- ALSO
D 0612, 4001,0013				; 4483		R,	TNE,	J/TDXX
D 0613, 4000,0012				; 4484		R,	TNE,	J/TSXX
D 0614, 4001,0010				; 4485		R,	TNA,	J/TDX
D 0615, 4000,0011				; 4486		R,	TNA,	J/TSX
D 0616, 4400,0013				; 4487		R,	TNN,	J/TDXX
D 0617, 4401,0012				; 4488		R,	TNN,	J/TSXX
						; 4489	
D 0620, 0500,0010				; 4490	620:	I,	TZ-,	J/TDX
D 0621, 0501,0011				; 4491		I,	TZ-,	J/TSX
D 0622, 0101,0013				; 4492		I,	TZE,	J/TDXX
D 0623, 0100,0012				; 4493		I,	TZE,	J/TSXX
D 0624, 0101,0010				; 4494		I,	TZA,	J/TDX
D 0625, 0100,0011				; 4495		I,	TZA,	J/TSX
D 0626, 0500,0013				; 4496		I,	TZN,	J/TDXX
D 0627, 0501,0012				; 4497		I,	TZN,	J/TSXX
						; 4498	
D 0630, 4501,0010				; 4499	630:	R,	TZ-,	J/TDX
D 0631, 4500,0011				; 4500		R,	TZ-,	J/TSX
D 0632, 4100,0013				; 4501		R,	TZE,	J/TDXX
D 0633, 4101,0012				; 4502		R,	TZE,	J/TSXX
D 0634, 4100,0010				; 4503		R,	TZA,	J/TDX
D 0635, 4101,0011				; 4504		R,	TZA,	J/TSX
D 0636, 4501,0013				; 4505		R,	TZN,	J/TDXX
D 0637, 4500,0012				; 4506		R,	TZN,	J/TSXX
						; 4507	
D 0640, 0600,0010				; 4508	640:	I,	TC-,	J/TDX
D 0641, 0601,0011				; 4509		I,	TC-,	J/TSX
D 0642, 0201,0013				; 4510		I,	TCE,	J/TDXX
D 0643, 0200,0012				; 4511		I,	TCE,	J/TSXX
D 0644, 0201,0010				; 4512		I,	TCA,	J/TDX
D 0645, 0200,0011				; 4513		I,	TCA,	J/TSX
D 0646, 0600,0013				; 4514		I,	TCN,	J/TDXX
D 0647, 0601,0012				; 4515		I,	TCN,	J/TSXX
						; 4516	
D 0650, 4601,0010				; 4517	650:	R,	TC-,	J/TDX
D 0651, 4600,0011				; 4518		R,	TC-,	J/TSX
D 0652, 4200,0013				; 4519		R,	TCE,	J/TDXX
D 0653, 4201,0012				; 4520		R,	TCE,	J/TSXX
D 0654, 4200,0010				; 4521		R,	TCA,	J/TDX
D 0655, 4201,0011				; 4522		R,	TCA,	J/TSX
D 0656, 4601,0013				; 4523		R,	TCN,	J/TDXX
D 0657, 4600,0012				; 4524		R,	TCN,	J/TSXX
						; 4525	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 2
; SKPJMP.MIC[4,30]	17:12 9-Aug-84			TEST GROUP						

D 0660, 0701,0010				; 4526	660:	I,	TO-,	J/TDX
D 0661, 0700,0011				; 4527		I,	TO-,	J/TSX
D 0662, 0300,0013				; 4528		I,	TOE,	J/TDXX
D 0663, 0301,0012				; 4529		I,	TOE,	J/TSXX
D 0664, 0300,0010				; 4530		I,	TOA,	J/TDX
D 0665, 0301,0011				; 4531		I,	TOA,	J/TSX
D 0666, 0701,0013				; 4532		I,	TON,	J/TDXX
D 0667, 0700,0012				; 4533		I,	TON,	J/TSXX
						; 4534	
D 0670, 4700,0010				; 4535	670:	R,	TO-,	J/TDX
D 0671, 4701,0011				; 4536		R,	TO-,	J/TSX
D 0672, 4301,0013				; 4537		R,	TOE,	J/TDXX
D 0673, 4300,0012				; 4538		R,	TOE,	J/TSXX
D 0674, 4301,0010				; 4539		R,	TOA,	J/TDX
D 0675, 4300,0011				; 4540		R,	TOA,	J/TSX
D 0676, 4700,0013				; 4541		R,	TON,	J/TDXX
D 0677, 4701,0012				; 4542		R,	TON,	J/TSXX
						; 4543		.UCODE
						; 4544	
						; 4545	;THESE 64 INSTRUCTIONS ARE DECODED BY MASK MODE (IMMEDIATE OR MEMORY)
						; 4546	; IN THE A FIELD, DISPATCH TO HERE ON THE J FIELD, AND RE-DISPATCH
						; 4547	; FOR THE MODIFICATION ON THE B FIELD.
						; 4548	
						; 4549	; ENTER WITH 0,E OR (E) IN AR, B FIELD BITS 1 AND 2 AS FOLLOWS:
						; 4550	; 0 0	NO MODIFICATION
						; 4551	; 0 1	ZEROS
						; 4552	; 1 0	COMPLEMENT
						; 4553	; 1 1	ONES
						; 4554	;   THIS ORDER HAS NO SIGNIFICANCE EXCEPT THAT IT CORRESPONDS TO THE
						; 4555	;   ORDER OF INSTRUCTIONS AT TGROUP.
						; 4556	
						; 4557	;THE HIGH ORDER BIT OF THE B FIELD (B0) IS XOR'D WITH AD CRY0 TO
						; 4558	;   DETERMINE THE SENSE OF THE SKIP:
						; 4559	; 0	SKIP IF CRY0=1 (TXX- AND TXXN)
						; 4560	; 1	SKIP IF CRY0=0 (TXXA AND TXXE)
						; 4561	
						; 4562	=0****00*000
						; 4563	TDX:	TEST FETCH,NO CRY,		;TDXA AND TRXA
U 0010, 0014,2001,0000,0000,0226,0033,0203	; 4564			B DISP,J/TDN
						; 4565	
						; 4566	TSX:	AR_AR SWAP,TEST FETCH,NO CRY,	;TSX, TSXA, TLX, AND TLXA
U 0011, 0014,2041,4000,0000,3226,0033,0203	; 4567			B DISP,J/TDN
						; 4568	
U 0012, 0013,4001,4000,0000,3000,0010,0000	; 4569	TSXX:	AR_AR SWAP			;TSXE, TSXN, TLXE, AND TLXN
						; 4570	
U 0013, 0014,3600,0000,0000,0246,0033,0203	; 4571	TDXX:	TEST AR.AC0,TEST FETCH,B DISP	;TDXE, TDXN, TRXE, AND TRXN
						; 4572	
U 0014, 0222,0001,0000,0000,0000,0010,0000	; 4573	TDN:	J/FINI				;NO MODIFICATION
U 0015, 0065,3000,2000,4000,0000,0010,0000	; 4574	TDZ:	AR_AR*AC0,AD/ANDCA,TIME/2T,J/STAC	;ZEROS
U 0016, 0065,3100,2000,0000,0000,0010,0000	; 4575	TDC:	AR_AR*AC0,AD/XOR,TIME/2T,J/STAC		;COMP
U 0017, 0065,3300,2000,4000,0000,0010,0000	; 4576	TDO:	AR_AR*AC0,AD/OR,TIME/2T,J/STAC		;ONES
						; 4577	=
						; 4578	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 3
; SKPJMP.MIC[4,30]	17:12 9-Aug-84			COMPARE -- CAI, CAM					

						; 4579	.TOC	"COMPARE -- CAI, CAM"
						; 4580	
						; 4581		.DCODE
D 0300, 0300,1517				; 4582	300:	I,	SJC-,	J/CAIM	;CAI
D 0301, 0201,1517				; 4583		I,	SJCL,	J/CAIM
D 0302, 0101,1517				; 4584		I,	SJCE,	J/CAIM
D 0303, 0000,1517				; 4585		I,	SJCLE,	J/CAIM
D 0304, 0701,1517				; 4586		I,	SJCA,	J/CAIM
D 0305, 0600,1517				; 4587		I,	SJCGE,	J/CAIM
D 0306, 0500,1517				; 4588		I,	SJCN,	J/CAIM
D 0307, 0401,1517				; 4589		I,	SJCG,	J/CAIM
						; 4590	
D 0310, 4301,1517				; 4591	310:	R,	SJC-,	J/CAIM	;CAM
D 0311, 4200,1517				; 4592		R,	SJCL,	J/CAIM
D 0312, 4100,1517				; 4593		R,	SJCE,	J/CAIM
D 0313, 4001,1517				; 4594		R,	SJCLE,	J/CAIM
D 0314, 4700,1517				; 4595		R,	SJCA,	J/CAIM
D 0315, 4601,1517				; 4596		R,	SJCGE,	J/CAIM
D 0316, 4501,1517				; 4597		R,	SJCN,	J/CAIM
D 0317, 4400,1517				; 4598		R,	SJCG,	J/CAIM
						; 4599		.UCODE
						; 4600	
						; 4601	=0****00****
U 1517, 0075,3100,0000,0000,0246,0010,0201	; 4602	CAIM:	GEN AR*AC0,COMP FETCH,J/NOP
						; 4603	=
						; 4604	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 4
; SKPJMP.MIC[4,30]	17:12 9-Aug-84			ARITHMETIC SKIPS -- AOS, SOS, SKIP			

						; 4605	.TOC	"ARITHMETIC SKIPS -- AOS, SOS, SKIP"
						; 4606	;ENTER WITH (E) IN AR
						; 4607	
						; 4608		.DCODE
D 0330, 4301,1600				; 4609	330:	R,	SJC-,	J/SKIP	;NOT A NOP IF AC .NE. 0
D 0331, 4200,1600				; 4610		R,	SJCL,	J/SKIP
D 0332, 4100,1600				; 4611		R,	SJCE,	J/SKIP
D 0333, 4001,1600				; 4612		R,	SJCLE,	J/SKIP
D 0334, 4700,1600				; 4613		R,	SJCA,	J/SKIP
D 0335, 4601,1600				; 4614		R,	SJCGE,	J/SKIP
D 0336, 4501,1600				; 4615		R,	SJCN,	J/SKIP
D 0337, 4400,1600				; 4616		R,	SJCG,	J/SKIP
						; 4617		.UCODE
						; 4618	
						; 4619	=0****00****
						; 4620	SKIP:	FIN STORE,SKIP FETCH,
U 1600, 0074,3703,0003,0000,0246,4610,0202	; 4621			SKP AC#0,J/STSELF	;STORE IN SELF MODE
						; 4622	=
						; 4623	
						; 4624		.DCODE
D 0350, 7300,1601				; 4625	350:	RPW,	SJC-,	J/AOS
D 0351, 7201,1601				; 4626		RPW,	SJCL,	J/AOS
D 0352, 7101,1601				; 4627		RPW,	SJCE,	J/AOS
D 0353, 7000,1601				; 4628		RPW,	SJCLE,	J/AOS
D 0354, 7701,1601				; 4629		RPW,	SJCA,	J/AOS
D 0355, 7600,1601				; 4630		RPW,	SJCGE,	J/AOS
D 0356, 7500,1601				; 4631		RPW,	SJCN,	J/AOS
D 0357, 7401,1601				; 4632		RPW,	SJCG,	J/AOS
						; 4633		.UCODE
						; 4634	
						; 4635	=0****00****
U 1601, 1600,4003,2000,0000,0036,1310,0000	; 4636	AOS:	AR_AR+1,AD FLAGS,STORE,J/SKIP
						; 4637	=
						; 4638	
						; 4639		.DCODE
D 0370, 7300,1602				; 4640	370:	RPW,	SJC-,	J/SOS
D 0371, 7201,1602				; 4641		RPW,	SJCL,	J/SOS
D 0372, 7101,1602				; 4642		RPW,	SJCE,	J/SOS
D 0373, 7000,1602				; 4643		RPW,	SJCLE,	J/SOS
D 0374, 7701,1602				; 4644		RPW,	SJCA,	J/SOS
D 0375, 7600,1602				; 4645		RPW,	SJCGE,	J/SOS
D 0376, 7500,1602				; 4646		RPW,	SJCN,	J/SOS
D 0377, 7401,1602				; 4647		RPW,	SJCG,	J/SOS
						; 4648		.UCODE
						; 4649	
						; 4650	=0****00****
U 1602, 1600,1701,2000,0000,0036,1310,0000	; 4651	SOS:	AR_AR-1,AD FLAGS,STORE,J/SKIP
						; 4652	=
						; 4653	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 5
; SKPJMP.MIC[4,30]	17:12 9-Aug-84			CONDITIONAL JUMPS -- JUMP, AOJ, SOJ, AOBJ		

						; 4654	.TOC	"CONDITIONAL JUMPS -- JUMP, AOJ, SOJ, AOBJ"
						; 4655	
						; 4656		.DCODE
D 0320, 0300,1603				; 4657	320:	I,	SJC-,	J/JUMP
D 0321, 0201,1603				; 4658		I,	SJCL,	J/JUMP
D 0322, 0101,1603				; 4659		I,	SJCE,	J/JUMP
D 0323, 0000,1603				; 4660		I,	SJCLE,	J/JUMP
D 0324, 0701,1603				; 4661		I,	SJCA,	J/JUMP
D 0325, 0600,1603				; 4662		I,	SJCGE,	J/JUMP
D 0326, 0500,1603				; 4663		I,	SJCN,	J/JUMP
D 0327, 0401,1603				; 4664		I,	SJCG,	J/JUMP
						; 4665		.UCODE
						; 4666	
						; 4667	=0****00****
U 1603, 0075,3200,2000,0000,0246,0010,0502	; 4668	JUMP:	AR_AC0,JUMP FETCH,J/NOP		; E IS IN VMA (HERE AND BELOW)
						; 4669	=
						; 4670	
						; 4671		.DCODE
D 0340, 0301,1604				; 4672	340:	I,	SJC-,	J/AOJ
D 0341, 0200,1604				; 4673		I,	SJCL,	J/AOJ
D 0342, 0100,1604				; 4674		I,	SJCE,	J/AOJ
D 0343, 0001,1604				; 4675		I,	SJCLE,	J/AOJ
D 0344, 0700,1604				; 4676		I,	SJCA,	J/AOJ
D 0345, 0601,1604				; 4677		I,	SJCGE,	J/AOJ
D 0346, 0501,1604				; 4678		I,	SJCN,	J/AOJ
D 0347, 0400,1604				; 4679		I,	SJCG,	J/AOJ
						; 4680		.UCODE
						; 4681	
						; 4682	=0****00****
U 1604, 0074,4640,2000,0000,0266,1310,0502	; 4683	AOJ:	AR_AC0+1,AD FLAGS,JUMP FETCH,J/STORAC
						; 4684	=
						; 4685	
						; 4686		.DCODE
D 0360, 0300,1605				; 4687	360:	I,	SJC-,	J/SOJ
D 0361, 0201,1605				; 4688		I,	SJCL,	J/SOJ
D 0362, 0101,1605				; 4689		I,	SJCE,	J/SOJ
D 0363, 0000,1605				; 4690		I,	SJCLE,	J/SOJ
D 0364, 0701,1605				; 4691		I,	SJCA,	J/SOJ
D 0365, 0600,1605				; 4692		I,	SJCGE,	J/SOJ
D 0366, 0500,1605				; 4693		I,	SJCN,	J/SOJ
D 0367, 0401,1605				; 4694		I,	SJCG,	J/SOJ
						; 4695		.UCODE
						; 4696	
						; 4697	=0****00****
U 1605, 0432,3240,2000,0000,0020,0010,0000	; 4698	SOJ:	AR_AC0
U 0432, 0074,1703,2000,0000,0266,1310,0502	; 4699	=	AR_AR-1,AD FLAGS,JUMP FETCH,J/STORAC
						; 4700	
						; 4701		.DCODE
D 0252, 0600,1606				; 4702	252:	I,	SJCGE,	J/AOBJ
D 0253, 0201,1606				; 4703		I,	SJCL,	J/AOBJ
						; 4704		.UCODE
						; 4705	
						; 4706	=0****00****
U 1606, 0074,4640,2000,0000,0266,0017,0502	; 4707	AOBJ:	AR_AC0+1,GEN CRY18,JUMP FETCH,J/STORAC
						; 4708	=
						; 4709	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 6
; SKPJMP.MIC[4,30]	17:12 9-Aug-84			AC DECODE JUMPS -- JRST, JFCL				

						; 4710	.TOC	"AC DECODE JUMPS -- JRST, JFCL"
						; 4711	
						; 4712		.DCODE
D 0254, 2000,0600				; 4713	254:	EA,	J/JRST		;DISPATCHES TO 1 OF 16 ON AC BITS
D 0255, 0401,0700				; 4714		I,TNN,	J/JFCL
						; 4715		.UCODE
						; 4716	
						; 4717	;A READ DETECTS JRST, AND DISPATCHES TO ONE OF 16 LOC'NS ON AC BITS
						; 4718	
						; 4719	600:				;DRAM REQUIRES JRST AT MULTIPLE OF 200
U 0600, 0222,0001,0000,0000,0000,0010,0000	; 4720	JRST:	J/FINI				;(0) A READ PREFETCHES ON JRST 0,
U 0601, 0630,0001,0040,0000,0000,0024,0412	; 4721	601:	PORTAL,BR/AR,J/BRJMP		;(1) PORTAL
						; 4722	602:
U 0602, 0036,2301,0040,0000,0000,0036,0000	; 4723	JRST2:	EA MOD DISP,BR/AR,J/JRSTF	;(2) JRSTF
U 0603, 1002,4001,0000,0000,0000,0010,0000	; 4724	603:	J/UUO				;(3)
U 0604, 1016,0001,0000,0000,0000,6110,0000	; 4725	604:	SKP KERNEL,J/IHALT		;(4) HALT
						; 4726	.IF/LONG.PC
U 0605, 0554,0001,0000,0000,0012,0010,0000	; 4727	605:	LOAD AR,J/XJRSTF1		;(5) XJRSTF -- VALID ANYWHERE
U 0606, 0604,4001,0000,0000,0000,7310,0000	; 4728	606:	SKP IO LEGAL,J/604		;(6) XJEN -- TRAP IF USER
U 0607, 0544,4033,0200,0000,0020,7325,0000	; 4729	607:	SKP IO LEGAL,ARX_PC+1,J/XPCW1	;(7) XPCW -- TRAP IF USER
						;;4730	.IFNOT/LONG.PC
						;;4731	605:	J/UUO				;(5)
						;;4732	606:	J/UUO				;(6)
						;;4733	607:	J/UUO				;(7)
						; 4734	.ENDIF/LONG.PC
U 0610, 0444,4001,0000,0000,0000,7310,0000	; 4735	610:	SKP IO LEGAL,J/DISM		;(10) JRST 10, DISMISS ONLY
U 0611, 1002,4001,0000,0000,0000,0010,0000	; 4736	611:	J/UUO				;(11)
U 0612, 0444,4001,0000,0000,0000,7310,0000	; 4737	612:	SKP IO LEGAL,J/DISM		;(12) JEN
U 0613, 1002,4001,0000,0000,0000,0010,0000	; 4738	613:	J/UUO				;(13)
						; 4739	.IF/LONG.PC
U 0614, 0455,4033,0200,0000,0020,0625,0030	; 4740	614:	AR_0.C,ARX_PC+1,J/XSFM1		;(14) XSFM [331]
U 0615, 0635,4001,0000,0000,0012,0010,0000	; 4741	615:	LOAD AR,J/PCA			;(15) XJRST [301]
						;;4742	.IFNOT/LONG.PC
						;;4743	614:	J/UUO				;(14)
						;;4744	615:	J/UUO				;(15)
						; 4745	.ENDIF/LONG.PC
U 0616, 1002,4001,0000,0000,0000,0010,0000	; 4746	616:	J/UUO				;(16)
U 0617, 1002,4001,0000,0000,0000,0010,0000	; 4747	617:	J/UUO				;(17)
						; 4748	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 7
; SKPJMP.MIC[4,30]	17:12 9-Aug-84			AC DECODE JUMPS -- JRST, JFCL				

						; 4749	;HERE TO FINISH THE MORE COMPLEX FORMS OF JRST
						; 4750	
						;;4751	.IFNOT/XADDR
						;;4752	=1110
						;;4753	JRSTF:	AR_ARX,J/RSTF			;NO XR, RESTORE FROM INDIRECT WORD
						;;4754		AR_XR,J/RSTF			;INDEXED, RESTORE FROM REGISTER
						; 4755	.IF/XADDR
						; 4756	=1110
U 0036, 0364,0001,4000,0000,2000,5010,0000	; 4757	JRSTF:	AR_ARX,SKP PC SEC0,J/RSTF0	;NO XR, RESTORE FROM INDIRECT WORD
U 0037, 0364,3240,2002,0000,0020,5010,0000	; 4758		AR_XR,SKP PC SEC0		;INDEXED, RESTORE FROM REGISTER
						; 4759	=0
U 0364, 1002,4001,0000,0000,0000,0010,0000	; 4760	RSTF0:	J/UUO
						; 4761	.ENDIF/XADDR
U 0365, 0630,0001,0000,0000,0000,0024,0420	; 4762	RSTF:	RSTR FLAGS_AR,J/BRJMP
						; 4763	
						; 4764	=0
U 0444, 1002,4001,0000,0000,0000,0010,0000	; 4765	DISM:	J/UUO				;ATTEMPT TO DISMISS FROM USER
U 0445, 0441,4001,0040,0000,0000,0024,0502	; 4766		DISMISS,BR/AR
U 0441, 0020,0001,0000,0000,0000,0001,0000	; 4767		IR DISP,J/20			;SPLIT OUT AGAIN
						; 4768	630:					;JRST 10,
U 0630, 0075,3242,0000,0000,0317,0010,0000	; 4769	BRJMP:	VMA_BR,FETCH,J/NOP		;RELOAD VMA WITH NEW FLAGS
U 0632, 0036,2341,0000,0000,0000,0036,0000	; 4770	632:	EA MOD DISP,J/JRSTF		;JEN, MUST RESTORE FLAGS
						; 4771	
						; 4772	.IF/LONG.PC
U 0455, 0474,3510,0207,0000,0020,6210,0175	; 4773	XSFM1:	ARX_ARX ANDC ADMSK,SKP USER    	;[331] XSFM now legal everywhere
U 0474, 0732,0001,0000,0000,2000,0250,0000	; 4774	=0	AR12-17_PREV SEC,CALL [ARSWAP]	;[334] SAVE PCS IN AR
						; 4775		ARL_ARXL,ARR_ARR,        	;STORE FLAG WORD
U 0475, 0634,0001,0000,0000,2016,0022,0004	; 4776			STORE,J/XSFM2
						; 4777	;					;[334]
						; 4778	
						;;4779	.IFNOT/XADDR
						;;4780	=0
						;;4781	XPCW1:	J/UUO				;BAD USE OF XPCW 
						;;4782		AR_ARX ANDC ADMSK,STORE,	;STORE FLAGS WORD
						;;4783			BRX/ARX,ARX/AD,
						;;4784			IR DISP,J/20		;IS THIS XSFM OR XPCW
						; 4785	.IF/XADDR
						; 4786	=0
U 0544, 1002,4001,0000,0000,0000,0010,0000	; 4787	XPCW1:	J/UUO				;BAD USE OF XPCW
						; 4788		AR_ARX ANDC ADMSK,BRX/ARX,	;SAVE FLAGS,PC IN BRX AND
U 0545, 0541,3510,2227,0000,0020,0010,0175	; 4789			ARX/AD			;FLAGS IN ARX
U 0541, 0754,0001,0040,0000,0000,6222,0030	; 4790		AR_0.S,BR/AR,SKP USER
U 0754, 0732,0001,0000,0000,2000,0250,0000	; 4791	=0	AR12-17_PREV SEC,CALL [ARSWAP]	;[334] SAVE PCS IN AR
						; 4792		ARL_BRL,ARR_ARR,STORE,		;STORE FLAGS WORD
U 0755, 0020,3242,0000,0000,0016,0601,0002	; 4793			IR DISP,J/20		;IS THIS XSFM, OR XPCW?
						; 4794	.ENDIF/XADDR
						; 4795	627:	FIN STORE,AR_ARX*BRX,AD/ANDCA,	;XPCW.  GET ADDRESS TO AR
U 0627, 0574,3002,6003,0000,0016,3610,0000	; 4796			VMA_VMA+1,STORE,J/XPCW2
						; 4797	634:
U 0634, 0075,4001,0003,0000,0217,0010,0000	; 4798	XSFM2:	FIN STORE,I FETCH,J/NOP		;XSFM.  DONE.
						; 4799	
						; 4800	XJRSTF1:FIN XFER,VMA_VMA+1,LOAD AR,	;GETS TO 625 OR 626 FOR XJRSTF
U 0554, 0020,3240,0003,0000,0032,3601,0000	; 4801			IR DISP,J/20		; OR XJEN
						; 4802	
						;;4803	.IFNOT/XADDR
						;;4804	XPCW2:	FIN STORE,VMA_VMA+1,LOAD AR	;STORE PC ADDR, GET NEW FLAGS
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 7-1
; SKPJMP.MIC[4,30]	17:12 9-Aug-84			AC DECODE JUMPS -- JRST, JFCL				

						;;4805		FIN XFER,VMA_VMA+1,LOAD AR	;GOT FLAGS GET PC ADDRESS
						;;4806	625:	RSTR FLAGS_AR,AR_MEM,J/ARJMP	;XJRSTF WINDS UP HERE
						;;4807	626:	RSTR FLAGS_AR,AR_MEM		;XJEN WINDS UP HERE
						;;4808		DISMISS,J/ARJMP
						; 4809	.IF/XADDR
U 0574, 0621,4001,0003,0000,0012,3610,0000	; 4810	XPCW2:	FIN STORE,VMA_VMA+1,LOAD AR	;STORE PC ADDR, GET NEW FLAGS
U 0621, 0624,3200,0003,0000,0032,3610,0000	; 4811		FIN XFER,VMA_VMA+1,LOAD AR	;GOT FLAGS, GET PC ADDRESS
U 0624, 1045,3200,0003,0000,0022,0024,0420	; 4812		RSTR FLAGS_AR,AR_MEM,J/ARJMP
						; 4813	625:	RSTR FLAGS_AR,AR_MEM,       	;XJRSTF WINDS UP HERE
						; 4814			ARX_AR SWAP,		;SAVE PCS,FLAGS IN ARX
U 0625, 1020,3200,0403,0000,3022,6224,0420	; 4815			SKP USER,J/XJRSTF2
						; 4816	626:	RSTR FLAGS_AR,AR_MEM,SKP USER,	;XJEN WINDS UP HERE
U 0626, 0774,3240,0403,0000,3022,6224,0420	; 4817			ARX_AR SWAP		;SAVE PCS,FLAGS IN ARX
U 0774, 1020,4001,0000,0000,0000,0024,0502	; 4818	=0	DISMISS,J/XJRSTF2
U 0775, 1045,4001,0000,0000,0000,0024,0502	; 4819		DISMISS,J/ARJMP
						; 4820	=0
U 1020, 1044,4001,0000,0000,0000,6210,0000	; 4821	XJRSTF2:SKP USER,J/XJRSTF3
U 1021, 0075,3703,0000,0000,0317,0010,0000	; 4822		VMA_AR,FETCH,J/NOP
						; 4823	=0
U 1044, 0662,4001,0000,0000,0000,0050,0000	; 4824	XJRSTF3:CALL,J/LDPCS			;RESTORE PCS FROM FLAGS WORD
						; 4825	.ENDIF/XADDR
U 1045, 0075,3703,0000,0000,0317,0010,0000	; 4826	ARJMP:	VMA_AR,FETCH,J/NOP		;DONE
						; 4827	.IF/XADDR
U 0635, 1045,3200,0003,0000,0022,1610,0000	; 4828	PCA:	AR_MEM,SR_0,J/ARJMP		;[301] End of LUUO and XJRST
						; 4829	;
U 0662, 0672,0001,0000,0000,0000,2210,0400	; 4830	LDPCS:	GET ECL EBUS
U 0672, 0723,3711,0000,0000,0060,2010,0426	; 4831		LD PCS
						; 4832		COND/EBUS CTL,EBUS CTL/2,	;RELEASE ECL BUS
U 0723, 0001,0001,0000,0000,0000,2203,0002	; 4833			RETURN1
						; 4834	.ENDIF/XADDR
						; 4835	.ENDIF/LONG.PC
						; 4836	;
						; 4837	;	[334] Subroutine to swap AR halves.  Used in a couple of places.
						; 4838	;
U 0732, 0001,0001,4000,0000,3000,0003,0000	; 4839	ARSWAP:	AR_AR SWAP,RETURN1		;[334] Rearrange things
						; 4840	;
						; 4841	700:					;JFCL MUST BE AT JRST+100
U 0700, 0124,3242,0600,0302,0000,0010,0015	; 4842	JFCL:	ARX_BRX,SC_#,#/13.		;GET BACK AC FIELD
						; 4843	=0*	AR_SHIFT,ARX_0S,		;MOVE AC TO AR32-35
U 0124, 2450,3441,4200,0302,0000,0050,0040	; 4844			SC_#,#/32.,CALL,J/SHIFT	;SHIFTER WILL MOVE TO 0-3
U 0126, 0746,3731,2040,0000,0000,0024,0602	; 4845		BR/AR,AR_PC,JFCL T		;GET PC FLAGS INTO AR
U 0746, 0756,3602,0000,0000,0246,0010,0503	; 4846		TEST AR.BR,JFCL FETCH		;JUMP IF TEST SATISFIED
U 0756, 0770,3502,2000,0000,0000,0010,0000	; 4847		AR_AR*BR,AD/ANDCB		;CLEAR TESTED FLAGS IN AR
U 0770, 0222,4001,0000,0000,0000,0024,0622	; 4848		JFCL S,J/FINI			;SET PC FROM THEM
						; 4849	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 8
; SKPJMP.MIC[4,30]	17:12 9-Aug-84			HALT LOOP						

						; 4850	.TOC	"HALT LOOP"
						; 4851	;HERE WHILE PROCESSOR IS "HALTED"
						; 4852	
						; 4853	1016:
						; 4854	UUO107:					;OP 107 COMES HERE
U 1016, 1002,4001,0000,0000,0000,0010,0000	; 4855	IHALT:	J/UUO				;HERE IF HALT NOT IN KERNEL
U 1017, 0776,4001,0000,0000,0000,0024,0442	; 4856	1017:	HALT
						; 4857	
						; 4858	CHALT:	AR_0S,CLR SC,CLR FE,SET HALTED,	;KERNEL OR CONSOLE HALT
U 0776, 1054,3441,2000,0403,0100,1515,0302	; 4859			VMA/PC,PC_VMA		; IF JRST 4, COPY EA TO PC
						;;4860	.IF/PAGCNT				;[327] PFH, DATAO PAG bit 2 counts
						;;4861		TRX2_AR				;[327] Zero count registers
						;;4862		TRX3_AR
						; 4863	.ENDIF/PAGCNT				;[327]
						; 4864	=0
						; 4865	HALT1:	SKP -START,TIME/3T,		;CHECK FOR CONTINUE BUTTON
U 1054, 1164,4001,0400,2421,1020,7110,0000	; 4866			FE_AR0-8,ARX_AR,J/HALT2	;PICK UP OPCODE IN CASE XCT
U 1055, 0144,0001,0000,0000,0000,7710,0000	; 4867		TAKE INTRPT			;HERE IF EXAMINE/DEPOSIT UP
						; 4868	=0
U 1164, 0226,4001,0000,3000,0020,1534,0000	; 4869	HALT2:	GEN FE-1,BYTE DISP,CONTINUE,J/UNHALT	;INSTR FROM SWITCHES?
U 1165, 1054,0001,0000,0000,0000,7010,0000	; 4870		SKP INTRPT,TIME/2T,J/HALT1	;HALT LOOP MUST BE AN ODD
						; 4871						; NUMBER OF TICKS TO ALLOW
						; 4872						; DIAGNOSTICS TO SYNCRONIZE
						; 4873						; EBOX WITH E & SBUS CLK PHASES.
						; 4874	=110
U 0226, 1775,0001,0000,0401,0000,1510,0310	; 4875	UNHALT:	SET CONS XCT,CLR FE,J/UXCT	;XCT ONE FROM "SWITCHES"
U 0227, 0000,5063,0000,0000,0040,5410,0000	; 4876		SKP AR EQ,J/START		;NOT AN INSTR.  START, OR CONT?
						; 4877	
						; 4878	
						; 4879	.TOC	"MAP, XCT"
						; 4880	
						; 4881		.DCODE
D 0256, 4001,0504				; 4882	256:	R,		J/XCT	;OPERAND FETCHED AS DATA
D 0257, 0501,0505				; 4883		I,	AC,	J/MAP
						; 4884		.UCODE
						; 4885	
						; 4886	=0****00***0
U 0504, 1764,4001,0000,0000,0000,7010,0000	; 4887	XCT:	SKP INTRPT,J/XCT1		;CHECK FOR XCT . LOOP
						; 4888	
U 0505, 1003,0001,0040,0000,0007,0010,0140	; 4889	MAP:	MAP,BR/AR			;MAP E, GO READ BACK EBRG
						; 4890	=
						; 4891	.IF/KLPAGE				;IN KL PAGING MODE,
U 1003, 1254,0001,0000,0000,0000,1610,0015	; 4892		SR_MAP				;MAP CAN PAGE FAIL
						; 4893	.ENDIF/KLPAGE
						; 4894	=0
						; 4895	RDEBRG:	AR_0S,SKP IO LEGAL,MB WAIT,	;FINISH READ REG FUNC
U 1254, 2540,3401,2000,0000,0002,7350,0000	; 4896			CALL,J/GETEEB		;AND GET EBUS
U 1255, 1015,4001,3000,0000,0060,2010,0567	; 4897		AR_EBUS REG			;READ DATA
U 1015, 0066,0001,0000,0000,0005,2233,0000	; 4898		REL ECL EBUS,B WRITE,J/ST6	;GIVE IT TO USER
						; 4899	.IF/KLPAGE
						; 4900	=0
U 1270, 1002,0001,0000,0000,0000,1610,0000	; 4901	MAP2:	SR_0,J/UUO			;NO MAPS IN USER MODE
U 1271, 1274,0001,0000,0000,0000,7010,0000	; 4902		SKP INTRPT			;DO NOT BUM THIS CODE OUT
						; 4903	=0					;IT IS NECESSARY TO DO NOTHING
U 1274, 0074,0001,0000,0000,0217,0010,0000	; 4904		I FETCH,J/STORAC		;INTERESTING AFTER A MAP IF
U 1275, 0071,0001,0000,0000,0000,2110,0105	; 4905		SET ACCOUNT EN,J/TAKINT		;AN INTERRUPT IS PENDING
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 8-1
; SKPJMP.MIC[4,30]	17:12 9-Aug-84			MAP, XCT						

						; 4906	.ENDIF/KLPAGE
						; 4907	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 9
; SKPJMP.MIC[4,30]	17:12 9-Aug-84			STACK INSTRUCTIONS -- PUSHJ, PUSH, POP, POPJ		

						; 4908	.TOC	"STACK INSTRUCTIONS -- PUSHJ, PUSH, POP, POPJ"
						; 4909	
						; 4910		.DCODE
D 0260, 2001,0703				; 4911	260:	EA,		J/PUSHJ
D 0261, 4000,0702				; 4912		R,	B/0,	J/PUSH
D 0262, 2000,1114				; 4913		EA,	B/0,	J/POP
D 0263, 0000,1115				; 4914		I,		J/POPJ
						; 4915		.UCODE
						; 4916	
						; 4917	;PUSHJ
						; 4918	; ENTER WITH E IN AR
						; 4919	;PUSH
						; 4920	; ENTER WITH (E) IN AR
						; 4921	
						; 4922	=0****00***0
						;;4923	.IFNOT/MODEL.B
						;;4924	PUSH:	ARX_AC0+1,GEN CRY18,SKP CRY0,	;BUMP BOTH HALVES OF AC,
						;;4925			VMA/AD,STORE,J/STMAC	;PUT AR ONTO LIST
						;;4926	
						;;4927	PUSHJ:	BR/AR,AR_PC+1			;SAVE JUMP ADDR, GET PC
						;;4928	=	ARX_AC0+1,GEN CRY18,SKP CRY0,	;COMPUTE STACK ADDRESS
						;;4929			VMA/AD,STORE,J/JSTAC	;AND PREPARE TO STORE PC
						; 4930	.IF/MODEL.B		;COULD SIMPLIFY IFNOT XADDR
U 0702, 1330,4660,0200,0000,0151,5420,0041	; 4931	PUSH:	ARX_AC0+1,PUSH,SKP CRY0,J/STMAC	;BUMP AC ACCORDING TO FORMAT
						; 4932						; AND SECTION NUMBER
U 0703, 1320,4033,2040,0000,0020,5025,0000	; 4933	PUSHJ:	BR/AR,AR_PC+1,SKP PC SEC0	;GET PC WITH FLAGS
						; 4934	=
U 1320, 1321,3600,2007,0000,0020,0010,0175	; 4935	=0	AR_AR AND ADMSK			;STRIP OFF FLAGS IF NOT SEC0
U 1321, 0122,4660,0200,0000,0151,5420,0041	; 4936		ARX_AC0+1,PUSH,SKP CRY0,J/JSTAC	;UPDATE STACK POINTER, STORE
						; 4937	.ENDIF/MODEL.B
						; 4938	=00
U 0120, 1023,3701,0000,0000,0313,0050,0000	; 4939	JRA1:	VMA_AR,LOAD ARX,CALL,J/XFERW	;GET SAVED AC
						; 4940	=10
						; 4941	JSTAC:	FIN STORE,VMA_BR,FETCH,		;STORE PC, JUMP ADDR TO VMA
U 0122, 0074,3202,4003,0000,2317,0010,0000	; 4942			AR_ARX,J/STORAC		;PREPARE TO STORE AC VALUE
U 0123, 0122,0001,0003,0000,0002,1110,0040	; 4943		TRAP2,MEM_AR,J/JSTAC		;CAUSE PDL OVRFLO
						; 4944	
						; 4945	=0
						; 4946	STMAC:	FIN STORE,I FETCH,		;STORE RESULT, GET NEXT INSTR
U 1330, 0074,4001,4003,0000,2217,0033,0000	; 4947			AR_ARX,B DISP,J/STSELF	;STORE AC IF B=0
						; 4948		MEM_AR,TRAP2,			;PDL OVFLO, CAUSE TRAP
U 1331, 0067,0001,4003,0000,2002,1110,0040	; 4949			AR_ARX,J/IFSTAC		;UPDATE AC BEFORE TRAPPING
						; 4950	;
						; 4951	;	A one line subroutine to wait for a memory fetch (either AR
						; 4952	;	or ARX) and return.  Used by all sorts of things.
						; 4953	;
U 1023, 0002,3240,0003,0000,0022,0003,0000	; 4954	XFERW:	AR_MEM,ARX_MEM,TIME/3T,RETURN2	; Cross reference both macros [313]
						; 4955	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 10
; SKPJMP.MIC[4,30]	17:12 9-Aug-84			STACK INSTRUCTIONS -- PUSHJ, PUSH, POP, POPJ		

						; 4956	;POP, POPJ
						; 4957	;ENTER WITH E IN AR
						; 4958	
						;;4959	.IFNOT/MODEL.B
						;;4960	=0****00***0
						;;4961	POP:	BR/AR,AR_AC0,VMA/AD,		;GET PUSHDOWN POINTER
						;;4962			LOAD AR,J/POP1		;BEGIN DATA FETCH FROM STACK
						;;4963	
						;;4964	POPJ:	AR_AC0,VMA/AD,LOAD ARX		;START FETCH FROM STACK
						;;4965	=	AR_AR-1,INH CRY18,SKP CRY0	;DECR STACK POINTER, CHECK UNDERFLOW
						;;4966	=0	ARX_MEM,TRAP2,J/POPJ1		;UNDERFLOW OCCURRED
						;;4967		ARX_MEM				;GET STACK WORD
						;;4968	POPJ1:	AC0_AR,VMA_ARX,FETCH,J/NOP	;SET NEW AC VALUE, JUMP
						;;4969	
						;;4970	
						;;4971	POP1:	ARX_AR-1,INH CRY18,SKP CRY0	;ADJUST POINTER, CHECK TRAP
						;;4972	=0	AR_MEM,TRAP2			;PDL OVFLO, CAUSE TRAP
						;;4973		AR_MEM,SR_#,#/100		;SET DEST CONTEXT FLAG
						;;4974		VMA_BR,STORE,SR_0,J/STMAC	;PUT RESULT AWAY, THEN AC
						; 4975	.IF/MODEL.B		;COULD SIMPLIFY IFNOT XADDR
						; 4976	=0****00***0
U 1114, 1056,3240,2040,0000,0131,0010,0421	; 4977	POP:	BR/AR,AR_AC0,POP AR,J/POP2	;GET FROM STACK
						; 4978	
U 1115, 1032,3200,2000,0000,0131,0010,0621	; 4979	POPJ:	AR_AC0,POP AR-ARX		;GET STACK TO AR AND ARX
						; 4980	=	AR_AR-1,TIME/3T,		;BACK OFF POINTER
U 1032, 1334,1701,2000,0000,0020,5420,0000	; 4981			AC0,STACK UPDATE,SKP CRY0	; UNDERFLOW?
						; 4982	=0	BR/AR,AR_MEM,ARL_0.S,		;AC TO BR, HALFWORD PC TO AR
						; 4983			ARX_MEM,TIME/3T,	;FULL PC TO ARX.
U 1334, 1442,3200,0043,0000,0022,5022,0020	; 4984			SKP PC SEC0,J/POPJT	; GO SET TRAP
						; 4985		BR/AR,AR_MEM,ARL_0.S,		;AC TO BR, HALFWORD PC TO AR
						; 4986			ARX_MEM,TIME/3T,	;FULL PC TO ARX.
U 1335, 1374,3240,0043,0000,0022,5022,0020	; 4987			SKP PC SEC0		;EXTENDED FORM?
						; 4988	=0
U 1374, 1046,3713,0000,0000,0317,0010,0000	; 4989	POPJ2:	VMA_ARX,FETCH,J/POPJ4		;YES.  LOAD ENTIRE ADDR
U 1375, 1046,3701,0000,0000,0317,0010,0000	; 4990	POPJ3:	VMA_AR,FETCH			;NO, LOAD HALFWORD ADDRESS
U 1046, 0065,3242,2000,0000,0000,0010,0000	; 4991	POPJ4:	AR_BR,J/STAC			;GET AC BACK, GO STUFF IT
						; 4992	
						; 4993	;HERE IF POPJ GETS STACK UNDERFLOW
						; 4994	; SKIP IF PC SECTION 0
						; 4995	=0
U 1442, 1374,4001,0000,0000,0000,1110,0040	; 4996	POPJT:	TRAP2,J/POPJ2
U 1443, 1375,0001,0000,0000,0000,1110,0040	; 4997		TRAP2,J/POPJ3
						; 4998	
						; 4999	POP2:	ARX_AR-1,AC0,STACK UPDATE,	;BACK UP POINTER
U 1056, 1454,1703,0200,0000,0040,5420,0000	; 5000			SKP CRY0
U 1454, 1061,3200,0003,0000,0022,1110,0040	; 5001	=0	AR_MEM,TRAP2,J/POP3
U 1455, 1061,3240,0003,0000,0022,0010,0000	; 5002		AR_MEM
U 1061, 1330,3202,0000,0000,0111,0010,0042	; 5003	POP3:	GEN BR,WRITE (E),J/STMAC	;STORE RESULT & AC
						; 5004	.ENDIF/MODEL.B
						; 5005	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 11
; SKPJMP.MIC[4,30]	17:12 9-Aug-84			SUBROUTINE CALL/RETURN -- JSR, JSP, JSA, JRA		

						; 5006	.TOC	"SUBROUTINE CALL/RETURN -- JSR, JSP, JSA, JRA"
						; 5007	
						; 5008		.DCODE
D 0264, 2000,1315				; 5009	264:	EA,		J/JSR		; [301] Make sure these can cross
D 0265, 2001,1314				; 5010		EA,		J/JSP		; section boundaries
D 0266, 0001,1316				; 5011		I,		J/JSA
D 0267, 0000,1317				; 5012		I,		J/JRA
						; 5013		.UCODE
						; 5014	
						; 5015	=0****00***0
						;;5016	.IFNOT/XADDR
						;;5017	JSP:	AR_PC+1,FETCH,J/STORAC
						;;5018	
						;;5019	JSR:	AR_PC+1,STORE
						;;5020	=	FIN STORE,VMA_VMA+1,FETCH,J/NOP
						; 5021	.IF/XADDR
U 1314, 1574,4033,2000,0000,0037,5025,0000	; 5022	JSP:	AR_PC+1,FETCH,SKP PC SEC0,J/JSP1
						; 5023	
U 1315, 1570,4031,2000,0000,0020,5025,0000	; 5024	JSR:	AR_PC+1,SKP PC SEC0
						; 5025	=
U 1570, 1065,3600,2007,4000,0036,0010,0175	; 5026	=0	AR_AR AND ADMSK,STORE,J/JSR1
U 1571, 1065,4001,0000,0000,0016,0010,0000	; 5027		STORE				;IN SECT 0, SAVE FLAGS, TOO
U 1065, 0075,0001,0003,0000,0017,3610,0000	; 5028	JSR1:	FIN STORE,VMA_VMA+1,FETCH,J/NOP
						; 5029	
						; 5030	=0
U 1574, 0065,3600,2007,4000,0020,0010,0175	; 5031	JSP1:	AR_AR AND ADMSK,J/STAC		;NON-ZERO SEC, NO FLAGS
U 1575, 0222,4001,0000,0000,0000,1010,0000	; 5032		AC0_AR,J/FINI
						; 5033	.ENDIF/XADDR
						; 5034	
						; 5035	
						; 5036	=0****00***0
U 1316, 1122,3240,2400,0000,3036,0010,0000	; 5037	JSA:	ARX_AR SWAP,AR_AC0,STORE,J/JSA1	;SAVE E IN ARX LEFT, GET AC
						; 5038	
						; 5039	JRA:
						;;5040	.IFNOT/XADDR				;[235]
						;;5041		BR/AR, AR_AC0			;get AC, save jump address.
						;;5042	=
						;;5043		ARR_ARL, ARL_0.M, J/JRA1	;E to ARR.
						; 5044	.IF/XADDR				;[235]
U 1317, 1072,0001,0000,0000,1000,0210,0000	; 5045		AR12-17_PC SEC			;[235] put section in jump address.
						; 5046	=
U 1072, 1614,3240,2040,0000,0020,5010,0000	; 5047		BR/AR, AR_AC0, SKP PC SEC0	;[235] save jump address, get AC.
U 1614, 1117,0001,4000,0000,3001,0010,0020	; 5048	=0	ARR_ARL, ARL_0.M, J/JRAB	;[235] in section part to ARR.
U 1615, 0120,0001,4000,0000,3001,0010,0020	; 5049		ARR_ARL, ARL_0.M, J/JRA1	;[235] E to ARR.
U 1117, 0120,4001,0000,0000,1000,0210,0000	; 5050	JRAB:	AR12-17_PC SEC, J/JRA1		;[235] section to ARL.
						; 5051	.ENDIF/XADDR				;[235]
						; 5052	
U 1122, 1124,4001,0003,0000,0017,3610,0000	; 5053	JSA1:	FIN STORE,VMA_VMA+1,FETCH	;JUMP TO E+1
U 1124, 0065,4033,2000,0000,2020,0022,0004	; 5054		ARR_PC+1,ARL_ARXL,J/STAC	;PC+1,,E GOES TO AC
						; 5055	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 12
; SKPJMP.MIC[4,30]	17:12 9-Aug-84			UUO'S							

						; 5056	.TOC	"UUO'S"
						; 5057	;LUUO'S TRAP TO CURRENT CONTEXT
						; 5058	; EXTENDED INSTRUCTION SET IS "HIDDEN" BENEATH LUUO OPCODES
						; 5059	;
						; 5060	;	WARNING:  use extreme caution if E1 for MOVSRJ or CMPSE should
						; 5061	;	ever be used for anything, as they are sign smeared if they are
						; 5062	;	> 377777 (they fall in with MOVSO and friends at EXT2). [301]
						; 5063	;	Use similar caution if new EXTEND codes are created which
						; 5064	;	must have the DCODE B field be 1 or 3.
						; 5065	;
						; 5066		.DCODE
D 0000, 2000,1002				; 5067	000:	EA,		J/UUO
D 0001, 2200,1005				; 5068		EA,	SJCL,	J/L-CMS		;CMSX HIDDEN BENEATH LUUO
D 0002, 2100,1005				; 5069		EA,	SJCE,	J/L-CMS
D 0003, 2001,1005				; 5070		EA,	SJCLE,	J/L-CMS
						; 5071	
D 0004, 2200,1006				; 5072	004:	EA,	B/2,	J/L-EDIT	;EDIT
D 0005, 2601,1005				; 5073		EA,	SJCGE,	J/L-CMS
D 0006, 2501,1005				; 5074		EA,	SJCN,	J/L-CMS
D 0007, 2400,1005				; 5075		EA,	SJCG,	J/L-CMS
						; 5076	
D 0010, 2101,1010				; 5077	010:	EA,	B/1,	J/L-DBIN	;CVTDBO
D 0011, 2401,1010				; 5078		EA,	B/4,	J/L-DBIN	;CVTDBT
D 0012, 2100,1011				; 5079		EA,	B/1,	J/L-BDEC	;CVTBDO
D 0013, 2001,1011				; 5080		EA,	B/0,	J/L-BDEC	;CVTBDT
						; 5081	
D 0014, 2100,1012				; 5082	014:	EA,	B/1,	J/L-MVS		;MOVSO
D 0015, 2001,1012				; 5083		EA,	B/0,	J/L-MVS		;MOVST
D 0016, 2200,1012				; 5084		EA,	B/2,	J/L-MVS		;MOVSLJ
D 0017, 2301,1012				; 5085		EA,	B/3,	J/L-MVS		;MOVSRJ
						; 5086	
						; 5087	020:	
D 0020, 2000,1013				; 5088		EA,		J/L-XBLT	;XBLT
D 0021, 2501,1014				; 5089		EA,	AC,	J/L-GTPI	;GSNGL
						; 5090	.IF/EXTEXP				;[337]
D 0022, 2001,1104				; 5091		EA,		J/L-SFTE	;GDBLE
D 0023, 2000,1105				; 5092		EA,	B/0,	J/L-GTDI	;DGFIX
D 0024, 2201,1106				; 5093	024:	EA,	B/2,	J/L-GTSI	;GFIX
D 0025, 2400,1107				; 5094		EA,	B/4,	J/L-GTDR	;DGFIXR
D 0026, 2601,1110				; 5095		EA,	B/6,	J/L-GTSR	;GFIXR
D 0027, 2000,1111				; 5096		EA,		J/L-DITE	;DGFLTR
D 0030, 2000,1112				; 5097	030:	EA,		J/L-SITE	;GFLTR
D 0031, 2001,1113				; 5098		EA,		J/L-EFSC	;GFSC
						;;5099	.IFNOT/EXTEXP
						;;5100		EA,	J/LUUO
						;;5101		EA,	J/LUUO
						;;5102	024:	EA,	J/LUUO
						;;5103		EA,	J/LUUO
						;;5104		EA,	J/LUUO
						;;5105		EA,	J/LUUO
						;;5106	030:	EA,	J/LUUO
						;;5107		EA,	J/LUUO
						; 5108	.ENDIF/EXTEXP
D 0032, 2001,1006				; 5109		EA,	J/LUUO			;These are reserved to Cobol.
D 0033, 2001,1006				; 5110		EA,	J/LUUO
D 0034, 2001,1006				; 5111		EA,	J/LUUO
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 12-1
; SKPJMP.MIC[4,30]	17:12 9-Aug-84			UUO'S							

D 0035, 2001,1006				; 5112		EA,	J/LUUO
D 0036, 2001,1006				; 5113		EA,	J/LUUO
D 0037, 2001,1006				; 5114		EA,	J/LUUO
						; 5115	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 13
; SKPJMP.MIC[4,30]	17:12 9-Aug-84			UUO'S							

						; 5116	;MONITOR UUO'S -- TRAP TO EXEC
						; 5117	
D 0040, 2000,1002				; 5118	040:	EA,	J/MUUO		;CALL
D 0041, 2000,1002				; 5119		EA,	J/MUUO		;INIT
D 0042, 2000,1002				; 5120		EA,	J/MUUO
D 0043, 2000,1002				; 5121		EA,	J/MUUO
D 0044, 2000,1002				; 5122		EA,	J/MUUO
D 0045, 2000,1002				; 5123		EA,	J/MUUO
D 0046, 2000,1002				; 5124		EA,	J/MUUO
D 0047, 2000,1002				; 5125		EA,	J/MUUO		;CALLI
D 0050, 2000,1002				; 5126		EA,	J/MUUO		;OPEN
D 0051, 2000,1002				; 5127		EA,	J/MUUO		;TTCALL
D 0052, 2000,1002				; 5128		EA,	J/MUUO
D 0053, 2000,1002				; 5129		EA,	J/MUUO
D 0054, 2000,1002				; 5130		EA,	J/MUUO
D 0055, 2000,1002				; 5131		EA,	J/MUUO		;RENAME
D 0056, 2000,1002				; 5132		EA,	J/MUUO		;IN
D 0057, 2000,1002				; 5133		EA,	J/MUUO		;OUT
D 0060, 2000,1002				; 5134		EA,	J/MUUO		;SETSTS
D 0061, 2000,1002				; 5135		EA,	J/MUUO		;STATO
D 0062, 2000,1002				; 5136		EA,	J/MUUO		;GETSTS
D 0063, 2000,1002				; 5137		EA,	J/MUUO		;STATZ
D 0064, 2000,1002				; 5138		EA,	J/MUUO		;INBUF
D 0065, 2000,1002				; 5139		EA,	J/MUUO		;OUTBUF
D 0066, 2000,1002				; 5140		EA,	J/MUUO		;INPUT
D 0067, 2000,1002				; 5141		EA,	J/MUUO		;OUTPUT
D 0070, 2000,1002				; 5142		EA,	J/MUUO		;CLOSE
D 0071, 2000,1002				; 5143		EA,	J/MUUO		;RELEAS
D 0072, 2000,1002				; 5144		EA,	J/MUUO		;MTAPE
D 0073, 2000,1002				; 5145		EA,	J/MUUO		;UGETF
D 0074, 2000,1002				; 5146		EA,	J/MUUO		;USETI
D 0075, 2000,1002				; 5147		EA,	J/MUUO		;USETO
D 0076, 2000,1002				; 5148		EA,	J/MUUO		;LOOKUP
D 0077, 2000,1002				; 5149		EA,	J/MUUO		;ENTER
						; 5150	
						; 5151	;EXPANSION OPCODES
						; 5152	
D 0100, 2000,1002				; 5153	100:	EA,	J/UUO		;UJEN
D 0101, 2000,1002				; 5154		EA,	J/UUO
						;;5155	.IFNOT/EXTEXP
						;;5156	102:	EA,	J/UUO
						;;5157		EA,	J/UUO
						; 5158	.ENDIF/EXTEXP
						; 5159		.UCODE
						; 5160	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 14
; SKPJMP.MIC[4,30]	17:12 9-Aug-84			UUO'S							

						; 5161	;HERE FOR UNDEFINED OPS (UUO'S) AND ILLEGAL INSTRUCTIONS
						; 5162	;E IS IN AR, OPCODE AND AC IN BRX
						; 5163	
						; 5164	;HERE ON LUUO'S
						; 5165	; E IN AR, INSTR IN BRX
						; 5166	1005:
U 1005, 1006,0001,0000,0000,0000,0010,0000	; 5167	L-CMS:	J/LUUO				;LOC FOR HIDING STRING COMPARE
						; 5168	1006:
						; 5169	L-EDIT:					;HIDE EDIT HERE
						;;5170	.IFNOT/XADDR
						;;5171	LUUO:	ARX_BRX,SC_#,#/13.,
						;;5172			SKP INTRPT,CALL,J/ROTS	;COMBINE E WITH UUO
						;;5173	1007:	AR_SHIFT,VMA_40,STORE		;STORE OPCODE ETC AT 40
						;;5174		FIN STORE,VMA_41,
						;;5175			LOAD ARX,J/XCTW		;GO PERFORM 41
						; 5176	.IF/XADDR
U 1006, 0340,3242,0600,0000,0000,5010,0000	; 5177	LUUO:	ARX_BRX,SKP PC SEC0,J/LUUO1	;WHICH KIND OF UUO?
						; 5178	=0***0
U 0340, 1662,4001,0000,0000,0000,5750,0000	; 5179	LUUO1:	SKP -LOCAL AC ADDR,CALL,J/UUOCOM	;EXTENDED.  DO IT
						; 5180		BR/AR,AR_ARX ANDC ADMSK,	;COMPATABLE.  ADDR TO BR
U 0341, 1624,3510,2047,4000,0020,7010,0175	; 5181			SKP INTRPT,J/LUUO2	; DO IT THE OLD WAY
U 0360, 0130,4001,0000,0000,0100,3010,0420	; 5182		VMA_#,#/420			;PT LOC FOR LUUO BLOCK POINTER
						; 5183	=
U 0130, 1023,4001,0000,0000,0013,0066,0033	; 5184	=00	LOAD ARX,PT REF,CALL,J/XFERW	;GET LUUO BLOCK ADDRESS
U 0132, 1336,3711,0000,0000,0316,0050,0000	; 5185	=10	VMA_ARX,STORE,CALL,J/UUOC2	;STORE UUO OPCODE AND FLAGS
						; 5186		FIN STORE,VMA_VMA+1,LOAD AR,	;NOW GET A NEW PC
U 0133, 0635,4001,0003,0000,0012,3610,0000	; 5187			J/PCA			; [301]
						; 5188	
						; 5189	;HERE FOR COMPATIBLE UUO
						; 5190	=0
						; 5191	LUUO2:	AR_AR*BR,AD/OR,VMA_#,#/40,	;SAVE OPCODE AND EA
U 1624, 1131,3302,2000,0000,0116,3010,0040	; 5192			STORE,J/LUUO3		;THEN GET INSTR FROM 41
U 1625, 0144,0001,0000,0000,0000,7710,0000	; 5193		TAKE INTRPT			;ONE MOMENT, PLEASE
U 1131, 0271,4001,0003,0000,0013,3610,0000	; 5194	LUUO3:	FIN STORE,VMA_VMA+1,LOAD ARX,J/XCTW
						; 5195	.ENDIF/XADDR
						; 5196	
						; 5197	1010:
U 1010, 1006,0001,0000,0000,0000,0010,0000	; 5198	L-DBIN:	J/LUUO				;DBIN AT 2010
						; 5199	1011:
U 1011, 1006,0001,0000,0000,0000,0010,0000	; 5200	L-BDEC:	J/LUUO				;BDEC AT 2011
						; 5201	1012:
U 1012, 1006,0001,0000,0000,0000,0010,0000	; 5202	L-MVS:	J/LUUO				;MOVE STRING AT 2012
						; 5203	
						; 5204	;ROTATE SUBROUTINE
						; 5205	
						; 5206	=0
U 1630, 0003,4001,4400,5302,0000,0003,0044	; 5207	ROTS:	AR_SHIFT,ARX_SHIFT,SC_#-SC,#/36.,RETURN3
U 1631, 0144,0001,0000,0000,0000,7710,0000	; 5208		TAKE INTRPT
						; 5209	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 15
; SKPJMP.MIC[4,30]	17:12 9-Aug-84			UUO'S							

						; 5210	;HERE ON MUUO'S
						; 5211	; E IN AR, OP AND AC IN BRX
						;;5212	.IFNOT/XADDR
						;;5213	1002:					;FIXED ADDRESS TO COOPERATE
						;;5214						;WITH EXTEND AND OTHER OPS
						;;5215	UUO:					;UNDEFINED OP'S .GE. 100
						;;5216	MUUO:	ARX_BRX,SC_#,#/13.,
						;;5217			SKP INTRPT,CALL,J/ROTS
						;;5218	.IFNOT/SHIFT.MUUO
						;;5219	1003:	AR_SHIFT,VMA_#,#/424
						;;5220	.IF/SHIFT.MUUO
						;;5221	1003:	AR_SHIFT,VMA_#,#/425
						;;5222	.ENDIF/SHIFT.MUUO
						;;5223		STORE,UPT REF			;FIRST, STORE INSTRUCTION
						;;5224		FIN STORE,AR_PC+1,VMA_VMA+1,STORE	;NEXT, PC
						;;5225	=100	MEM_AR,VMA_VMA+1,SC_#,#/60,
						;;5226			CALL,J/GTEEB1
						;;5227		DATAI PAG(L),CALL,J/PCTXT	;GET PROCESS CONTEXT VARIABLES
						;;5228	=11	LD PREV CTXT			;PCS FROM PC, CWSX FROM SXCT
						;;5229		AR_SHIFT,ARL_BRL.S,		;COMBINE UBR WITH AC BLKS, CWSX
						;;5230			STORE,			; STORE THAT AT 426 (XADDR =427)
						;;5231			COND/EBUS CTL,EBUS CTL/2; & RELEASE ECL EBUS
						;;5232		MEM_AR,VMA_430+MODE		;NOW READY TO GET NEW PC
						;;5233		LOAD AR,UPT REF			;FETCH NEW PC
						;;5234	NEWPC:	AR_MEM,SR_0,J/START		;USE IT
						;;5235	.IF/MODEL.B
						;;5236	SETPC:	VMA_AR AND ADMSK,FETCH,J/NOP	;USE LOW AR AS ADDRESS
						;;5237	.IFNOT/MODEL.B
						;;5238	SETPC:	PC_VMA,J/BRJMP			;LOAD PC, INCLUDING SECTION
						;;5239	.ENDIF/MODEL.B
						; 5240	.IF/XADDR
						; 5241	1002:
						; 5242	UUO:					;A PEDANTIC DISTINCTION...
						; 5243	MUUO:	ARX_BRX,SKP -LOCAL AC ADDR,	;PULL TOGETHER PIECES OF UUO
U 1002, 1662,3202,0600,0000,0000,5750,0000	; 5244			CALL,J/UUOCOM
U 1022, 1141,0001,0000,0000,0100,3210,0430	; 5245	1022:	VMA_430+MODE			;GET NEW PC
U 1141, 1145,4001,0000,0000,0013,0026,0223	; 5246		LOAD ARX,UPT REF
U 1145, 1634,3240,0003,0000,0122,3010,0424	; 5247		ARX_MEM,VMA_#,#/424		;LOC'N OF MUUO DATA BLOCK
						; 5248	=0	BRX/ARX,STORE,UPT REF,		;STORE OPCODE, FLAGS
U 1634, 1336,4001,0020,0000,0016,0066,0223	; 5249			CALL,J/UUOC2		;NOW RETURN TO COMMON CODE
U 1635, 0220,3731,2003,0302,0002,0010,0004	; 5250		MEM_AR,AR_PC,SC_#,#/4		;READY TO SETUP NEW FLAGS
						; 5251	=00	VMA_VMA+1,SC_#,#/60,		;SET UP FOR CONTEXT WORD
						; 5252			SH DISP,AR_0S,		;TEST USER AND PUBLIC FLAGS
U 0220, 0072,3401,2000,0302,0020,3647,0060	; 5253			CALL,J/MUUOF		;SET NEW PREV FLAGS, GET EBUS
						; 5254		DATAI PAG(L),ARX_1B17-1,	;GO COLLECT DATAI PAG INFO
U 0221, 3306,1741,3200,0000,0060,2057,0511	; 5255			CALL,J/PCTXT
U 0223, 1152,3731,0000,0000,0060,2010,0426	; 5256	=11	LD PREV CTXT			;PCS FROM PC, CWSX FROM SXCT
						; 5257		AR_SHIFT,ARL_BRL.S,		;COMBINE UBR WITH AC BLKS, CWSX
						; 5258			STORE,			; STORE THAT AT 426 (XADDR =427)
U 1152, 1161,3242,4000,0000,0016,2222,0002	; 5259			COND/EBUS CTL,EBUS CTL/2; & RELEASE ECL EBUS
U 1161, 1172,3202,6003,0000,0002,1610,0000	; 5260		MEM_AR,AR_BRX,SR_0		;NOW GET NEW PC
U 1172, 0075,3600,0007,4000,0337,0010,0175	; 5261	SETPC:	VMA_AR AND ADMSK,FETCH,J/NOP
						; 5262	
						; 5263	=0
U 1662, 1251,4041,0000,0000,0021,0017,0002	; 5264	UUOCOM:	ARL_1.M,J/UUOC1			;FORCE AC ADDRESS
U 1663, 1251,4001,0000,0400,3000,0022,0200	; 5265		CLR P				;NOT AC, GET CLEAN SECT #
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 15-1
; SKPJMP.MIC[4,30]	17:12 9-Aug-84			UUO'S							

U 1251, 1262,3510,2017,4000,1020,0010,0175	; 5266	UUOC1:	MQ_AR,AR_ARX ANDC ADMSK		;SAVE ADDR IN MQ.  GET OPCODE
U 1262, 1672,4001,0040,0000,0000,6222,0030	; 5267		BR/AR,AR_0.S,SKP USER		;SAVE OPCODE IN BR
U 1672, 1673,4001,0000,0000,2000,0210,0000	; 5268	=0	AR12-17_PREV SEC		;GET PCS
U 1673, 1324,3302,2004,0000,0000,0010,0000	; 5269		AR_AR*BR,AD/OR			;OPCODE/PCS COMBINED
U 1324, 1332,3530,2407,0000,3020,0010,0175	; 5270		ARX_AR SWAP,AR_PC FLAGS		;GET FLAGS FROM PC
U 1332, 0020,4001,4000,0000,2000,0603,0000	; 5271		ARL_ARL,AR_ARX,RETURN20		;FLAGS AND OPCODE COMBINED
						; 5272						;GO BACK TO CALLER TO STORE
U 1336, 1342,4031,0203,0000,0022,0025,0000	; 5273	UUOC2:	MEM_AR,ARX_PC+1			;FINISH STORE
						; 5274		AR_ARX AND ADMSK,		;PC+1 ADDRESS TO AR
U 1342, 1353,3610,2307,0000,0036,3610,0175	; 5275			VMA_VMA+1,STORE,ARX/MQ	;PUT PC AWAY, GET EFFECTIVE ADDR
						; 5276		FIN STORE,AR_ARX,
U 1353, 0001,0001,4003,0000,2016,3603,0000	; 5277			VMA_VMA+1,STORE,RETURN1	;PUT EA AWAY.
						; 5278	
						; 5279	=1010					;HERE TO SETUP NEW FLAGS
U 0072, 2541,0001,0000,0000,0000,0024,0020	; 5280	MUUOF:	SET FLAGS_AR,J/GTEEB1		;GO GET ECL EBUS
U 0073, 0072,4001,0000,0000,0000,0110,0400	; 5281		AR0-8_#,#/400,J/MUUOF		;PREV CTXT SUPERVISOR
U 0076, 0072,4001,0000,0000,0000,0110,0004	; 5282		AR0-8_#,#/004,J/MUUOF		;  USER/CONCEALED
U 0077, 0072,0001,0000,0000,0000,0110,0404	; 5283		AR0-8_#,#/404,J/MUUOF		;  USER/PUBLIC
						; 5284	.ENDIF/XADDR
						; 5285	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 16
; SKPJMP.MIC[4,30]	17:12 9-Aug-84			JSYS, ADJSP						

						; 5286	.TOC	"JSYS, ADJSP"
						;;5287	.IF/DIAG.INST
						;;5288		.DCODE
						;;5289	104:	EA,		J/DIADISP		;DIAG
						;;5290		I,	B/0,	J/ADJSP
						;;5291		.UCODE
						;;5292	
						;;5293	;HERE FOR DIAG INSTRUCTION
						;;5294	
						;;5295	1001:
						;;5296	DIADISP:	J/DIAGINSTR
						;;5297	
						; 5298	.IFNOT/DIAG.INST
						; 5299		.DCODE
D 0104, 2000,1002				; 5300	104:	EA,		J/UUO		;JSYS
D 0105, 0000,1000				; 5301		I,	B/0,	J/ADJSP
						; 5302		.UCODE
						; 5303	.ENDIF/DIAG.INST
						; 5304	
						; 5305	;HERE FOR ADJSP INSTRUCTION
						; 5306	; ENTER WITH E IN AR, PREFETCH IN PROGRESS
						; 5307	
						; 5308	1000:					;PUT ADJSP NEXT TO UUO
						;;5309	.IFNOT/XADDR
						;;5310	ADJSP:	ARL_ARR,ARR_ARR			;PUT E IN BOTH HALVES
						;;5311		AR_AR*AC0,AD/A+B,INH CRY18,	;ADJUST POINTER,
						;;5312			ARX/AD,SKP AR0		;SKIP IF NEGATIVE
						; 5313	.IF/XADDR
U 1000, 1354,4041,0200,0000,3020,0610,0004	; 5314	ADJSP:	ARX_1,ARL_ARR,ARR_ARR		;MUST TEST FOR SHORT STACK
						; 5315		AC0,STACK UPDATE,		;MCL SHORT STACK ENABLES CRY18
U 1354, 1710,1713,0000,0000,0040,5420,0000	; 5316			GEN ARX-1,SKP CRY0	; THUS CRY IFF LONG POINTER
						; 5317	=0	AR_AR*AC0,AD/A+B,INH CRY18,	;ADJUST POINTER,
U 1710, 1754,0600,2200,0000,0020,4511,0000	; 5318			ARX/AD,SKP AR0,J/ADJSP1	;SKIP IF NEGATIVE
U 1711, 1441,5441,0000,0000,0237,0616,0002	; 5319		ARL_SIGN,ARR_ARR,I FETCH	;LONG:  SIGN EXTEND E
U 1441, 0065,0600,2000,0000,0020,0010,0000	; 5320		AR_AR*AC0,AD/A+B,J/STAC		;DONE
						; 5321	.ENDIF/XADDR
						; 5322	=0
						; 5323	ADJSP1:	GEN AR*AC0,AD/ANDCA,		;TEST FOR - TO + CHANGE
U 1754, 1330,3000,0000,0000,0020,5510,0000	; 5324			SKP AD0,J/STMAC
						; 5325		GEN AR*AC0,AD/ANDCB,		;TEST FOR + TO - CHANGE
U 1755, 1330,3500,0000,0000,0020,5510,0000	; 5326			SKP AD0,J/STMAC
						; 5327	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 17
; SKPJMP.MIC[4,30]	17:12 9-Aug-84			XCT, PXCT, SXCT						

						; 5328	.TOC	"XCT, PXCT, SXCT"
						; 5329	;HERE FOR EXTENDED ADDRESSING INSTRUCTIONS
						; 5330	
						; 5331	=0
U 1764, 1774,0001,0000,0000,0000,6210,0000	; 5332	XCT1:	SKP USER,J/PXCT			;HERE ON XCT, NO INTERRUPT
U 1765, 0144,0001,0000,0000,0000,7710,0000	; 5333		TAKE INTRPT			;GET OUT OF LONG XCT CHAIN
						; 5334	=0
U 1774, 1775,0001,0000,0000,0000,1510,0020	; 5335	PXCT:	SET PXCT			;SETUP PXCT CONTROLS FROM 9-12
U 1775, 0152,3703,0200,0000,0000,1410,0000	; 5336	UXCT:	ARX_AR (AD),LOAD IR,#/0,J/XCTGO	;COPY INSTR TO ARX, IR
						; 5337	
						; 5338		.DCODE
						; 5339	.IFNOT/SXCT
						;;5340	  .IF/DIAG.INST
						;;5341	106:	R,	J/DIAGXCT			;DIAG MODEL B SXCT = XCT
						;;5342		EA,	J/XCTUUO
						;;5343	.UCODE
						;;5344				;UNSUPPORTED FEATURE
						;;5345				;SEPERATE FROM XCT BECAUSE OF DRAM CONSTRAINTS
						;;5346	=0****00***0
						;;5347	DIAGXCT:	SKP INTRPT,J/XCT1		;CHECK FOR XCT . LOOP
						;;5348	XCTUUO:	J/UUO				;INST PAIR FOR XCT
						;;5349	=
						; 5350	  .IFNOT/DIAG.INST
						;;5351	   .IFNOT/EXTEXP
						;;5352	    .IFNOT/PUSHM
						;;5353	106:	EA,	J/UUO
						;;5354		EA,	J/UUO
						;;5355		.UCODE
						;;5356	    .IF/PUSHM
						;;5357	106:	R,	J/PUSHM			;PUSH MULTIPLE
						;;5358	107:	EA,	J/POPM			;POP MULTIPLE
						;;5359	.UCODE
						;;5360	    .ENDIF/PUSHM
						; 5361	   .ENDIF/EXTEXP
						; 5362	  .ENDIF/DIAG.INST
						; 5363	
						;;5364	.IF/SXCT	;NOTE: THE SXCT INSTRUCTION IS A TEMPORARY MECHANISM
						;;5365	106:	R,	J/SXCT		;INTENDED FOR DIAGNOSTICS ONLY
						;;5366		EA,	J/UUO107
						;;5367		.UCODE
						;;5368	
						;;5369	1014:					;PUT NEXT TO UUO107
						;;5370	SXCT:	SKP KERNEL,CALL,J/IOCHK		;LEGAL IN KERNEL MODE ONLY
						;;5371	1015:	BR/AR,ARX_AR,AR_AC0,		;SHUFFLE INSTR TO GET BASE REG
						;;5372			SET SXCT		;SETUP HARDWARE FLAGS
						;;5373		SKP AC#0			;CHOOSE LOOP FOR EA CALC
						;;5374	=0	BR/AR,AR_BR,LOAD IR,		;AC0 IS BASE INDEX
						;;5375			BRX/ARX,ARL_0.M,
						;;5376			EA MOD DISP,J/SXCTB
						;;5377		AR_BR,LOAD IR,ARL_0.M,		;GET EXT ADDR FROM XR OR INDRCT
						;;5378			BRX/ARX,J/XIND2
						;;5379	=00
						;;5380	PXLOOP:	GEN AR,A READ			;GO DO INSTR
						;;5381		AR_AR+XR,A READ
						;;5382		GEN AR,A INDRCT,SKP INTRPT,J/XIND1
						;;5383		GEN AR+XR,A INDRCT,SKP INTRPT
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 17-1
; SKPJMP.MIC[4,30]	17:12 9-Aug-84			XCT, PXCT, SXCT						

						;;5384	
						;;5385	=0
						;;5386	XIND1:	AR_MEM,ARX_MEM,EA TYPE DISP,J/XIND2
						;;5387		MB WAIT,TAKE INTRPT
						;;5388	=00
						;;5389	XIND2:	EA MOD DISP,J/PXLOOP		;CURRENT OR PREV WITHOUT CWSX
						;;5390		AR_ARX (AD),A READ		;PREV AND CWSX
						;;5391		AR_ARX (AD),A READ		;SXCT 0,
						;;5392		EA MOD DISP,J/SXCTB		;SXCT B,
						;;5393	
						;;5394	=00
						;;5395	SXCTB:	AR_AR+BR,A READ			;GO
						;;5396		AR_AR+XR,ARL_0.C,J/SXCTB	;NO MORE INDIRECTS
						;;5397		GEN AR,A INDRCT,		;FOLLOW INDRCT POINTER
						;;5398			SKP INTRPT,J/XIND1
						;;5399		GEN AR+XR,A INDRCT,
						;;5400			SKP INTRPT,J/XIND1
						; 5401	.ENDIF/SXCT
						; 5402	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 1
; SHIFT.MIC[4,30]	17:12 9-Aug-84			ROTATES AND LOGICAL SHIFTS -- ROT, LSH, JFFO		

						; 5403	.TOC	"ROTATES AND LOGICAL SHIFTS -- ROT, LSH, JFFO"
						; 5404	
						; 5405		.DCODE
D 0240, 0000,1402				; 5406	240:	I,	B/0,	J/ASH
D 0241, 0001,1403				; 5407		I,	B/0,	J/ROT
D 0242, 0200,1400				; 5408		I,	B/2,	J/LSH
D 0243, 0000,1401				; 5409		I,		J/JFFO
D 0244, 0101,1404				; 5410		I,	B/1,	J/ASHC
D 0245, 0001,1405				; 5411		I,		J/ROTC
D 0246, 0001,1004				; 5412		I,		J/LSHC
D 0247, 2000,1002				; 5413		EA,		J/UUO
						; 5414		.UCODE
						; 5415	
						; 5416	;ENTER WITH 0,E IN AR
						; 5417	; NOTE THAT VALUES OF SC GREATER THAN 36
						; 5418	; CAUSE THE SHIFTER TO SELECT ARX.
						; 5419	
						; 5420	=0****00***0
						; 5421	LSH:	AR_AC0,ARL/AD,ARX_0.M,SC_EA,
U 1400, 0230,3200,2000,0002,0021,4413,0042	; 5422			SKP AR18,J/SHR1
						; 5423	
U 1401, 2004,3200,2000,0302,0020,5610,0006	; 5424	JFFO:	AR_AC0,SKP AD NE,SC_#,#/6
						; 5425	=
U 2004, 0075,4001,0001,0000,0217,1010,0000	; 5426	=0	AC1_AR,I FETCH,J/NOP		;AC WAS ZERO, NO JUMP
						; 5427		ARX+MQ_0.M,FE_P,SKP SCAD NE,	;TEST FIRST 6 BITS
U 2005, 2032,0001,4000,0101,0021,5210,0144	; 5428			AR_SHIFT,ARL/SH		;DISCARD THEM
						; 5429	=0
						; 5430	JFFO1:	AR_SHIFT,FE_P,SKP SCAD NE,	;TEST NEXT 6 BITS
U 2032, 2032,1701,4600,0101,0020,5210,0000	; 5431			ARX_ARX-1,J/JFFO1	;LOOP, COUNTING, TILL NE
						; 5432		P_FE,ARR_0.S,			;RESTORE 6 NON-ZERO BITS
U 2033, 2040,5123,0500,0000,3020,0022,0210	; 5433			ARX_ARX*-6		;GET POS GROUP COUNT*6
						; 5434	=0
						; 5435	JFFO2:	SKP AR0,AR_2(AR+1),		;LOOP TO FIND A 1
U 2040, 2040,4001,5600,0000,0040,4510,0000	; 5436			ARX_ARX+1,J/JFFO2	;COUNTING AS WE GO
U 2041, 1753,1701,6000,0000,0037,0010,0000	; 5437		AR_ARX-1,FETCH,J/STRAC1
						; 5438	
						; 5439	=0****00***0
						; 5440	ASH:	SC_EA,SKP AR18,			;GET SHIFT AMOUNT
U 1402, 2120,3441,2000,0002,0000,4413,0000	; 5441			AR_0S,J/ASHL		;SET LOW PART = 0
U 1403, 0230,3200,2200,0002,0040,4413,0000	; 5442	ROT:	AR_AC0,ARX_AC0,SC_EA,SKP AR18
						; 5443	=
						; 5444	;SINGLE-WORD LSH/ROT
						; 5445	; FOR ROT, B=0, AR AND ARX BOTH CONTAIN AC
						; 5446	; FOR LSH, B=2, AR HAS AC, ARX IS ZERO
						; 5447	
						; 5448	=00
						; 5449	SHR1:	AR_SHIFT,SC_#+SC,#/-36.,	;DO POS (LEFT) SHIFT, CHK RANGE
U 0230, 0232,0001,4000,2302,0020,5110,0734	; 5450			SKP SCAD0,J/SHR2
						; 5451		ARX_AR (AD),AR_ARX (ADX),
						; 5452			SC_#+SC,#/36.,
U 0231, 0230,3703,6200,2302,0020,5133,0044	; 5453			B DISP,SKP SCAD0,J/SHR1	;MAKE NEG SHIFT TO EQUIV POS
						; 5454	SHR2:	AR_SHIFT,SC_#+SC,#/-36.,
U 0232, 0232,0001,4000,2302,0020,5110,0734	; 5455			SKP SCAD0,J/SHR2	;BRING SC INTO RANGE
U 0233, 0075,0001,0000,0000,0217,1010,0000	; 5456		AC0_AR,I FETCH,J/NOP		;DONE
						; 5457	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 2
; SHIFT.MIC[4,30]	17:12 9-Aug-84			ROTATE AND LOGICAL SHIFT COMBINED -- ROTC, LSHC		

						; 5458	.TOC	"ROTATE AND LOGICAL SHIFT COMBINED -- ROTC, LSHC"
						; 5459	
						; 5460	=0****00***0
						; 5461	ASHC:	SC_EA,SKP AR18,			;SETUP SHIFT COUNT
U 1404, 2120,3240,5001,0002,0020,4413,0000	; 5462			AR_AC1*2,J/ASHL		;GET LOW WORD
U 1405, 1445,3240,0201,0000,0020,0010,0000	; 5463	ROTC:	ARX_AC1
U 1445, 2044,3240,2000,0002,0020,4413,0000	; 5464	=	AR_AC0,SC_EA,SKP AR18		;SETUP BOTH AC'S
						; 5465	=0
						; 5466	ROT3:	MQ_SHIFT,ARX_AR (AD),
U 2044, 1452,3703,6210,0000,0000,0010,0000	; 5467			AR_ARX (ADX),J/ROT4
						; 5468		ARX_AR (AD),AR_ARX (ADX),
U 2045, 2044,3701,6200,2302,0020,5110,0044	; 5469			SC_#+SC,#/36.,SKP SCAD0,J/ROT3
						; 5470	
						; 5471	ROT4:	AR_MQ,ARX_SHIFT,
U 1452, 2110,3721,2400,2302,0020,5110,0734	; 5472			SC_#+SC,#/-36.,SKP SCAD0
						; 5473	=0	MQ_SHIFT,ARX_AR (AD),
U 2110, 1452,3703,6210,0000,0000,0010,0000	; 5474			AR_ARX (ADX),J/ROT4
U 2111, 1753,4001,4000,0000,2217,1010,0000	; 5475	STDAC:	AC0_AR,AR_ARX,I FETCH,J/STRAC1
						; 5476	
						; 5477	
						; 5478	1004:					;NEXT TO UUO
U 1004, 1461,3240,0201,0000,0021,0010,0100	; 5479	LSHC:	ARX_AC1,MQ_0.M
U 1461, 2112,3240,2000,0303,0020,4413,0044	; 5480	LSH1:	AR_AC0,SC_EA,FE_#,#/36.,SKP AR18
						; 5481	=0
						; 5482	LSH2:	MQ_SHIFT,AR_ARX (ADX),
U 2112, 1462,3721,6310,0301,0000,0010,0734	; 5483			ARX/MQ,FE_#,#/-36.,J/LSH3
						; 5484		ARX_AR (AD),AR_0.M,MQ_ARX,
U 2113, 2112,3701,0210,2002,2021,5110,0030	; 5485			SC_FE+SC,SKP SCAD0,J/LSH2
						; 5486	
						; 5487	LSH3:	AR_MQ,ARL/AD,ARX_SHIFT,MQ_0.M,
U 1462, 2114,3721,2400,2002,0021,5110,0102	; 5488			SC_FE+SC,SKP SCAD0
U 2114, 1462,3701,6310,0000,0000,0010,0000	; 5489	=0	MQ_SHIFT,AR_ARX (ADX),ARX/MQ,J/LSH3
U 2115, 1753,4001,4000,0000,2217,1010,0000	; 5490		AC0_AR,AR_ARX,I FETCH,J/STRAC1
						; 5491	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 3
; SHIFT.MIC[4,30]	17:12 9-Aug-84			ARITHMETIC SHIFTS -- ASH, ASHC				

						; 5492	.TOC	"ARITHMETIC SHIFTS -- ASH, ASHC"
						; 5493	
						; 5494	;COMMON CODE FOR ARITHMETIC SHIFTS
						; 5495	
						; 5496	=0
						; 5497	ASHL:	ARX_AR,AR_AC0,			;INPUT NOW IN AR LONG
U 2120, 2124,3200,2400,2400,1040,5210,0000	; 5498			SKP SC NE,J/ASHL1	;CHECK FOR NULL SHIFT
						; 5499		ARX_AR,AR_AC0,			;HERE IF RIGHT SHIFT
U 2121, 2122,3200,2400,2302,1040,5110,0044	; 5500			SC_#+SC,#/36.,SKP SCAD0	;CHECK FOR LONG ONE
						; 5501	=0
U 2122, 1472,5401,2440,0000,0020,0016,0000	; 5502	ASHR1:	BR/AR,ARX_SHIFT,AR_SIGN,J/ASHR2	;LOW OUTPUT TO ARX
						; 5503		ARX_AR,AR_SIGN,			;HERE IF SHIFT COUNT .GT. 36
						; 5504			SC_#+SC,#/36.,		;BRING COUNT UP BY 36
U 2123, 2122,5441,2400,2302,1020,5116,0044	; 5505			SKP SCAD0,J/ASHR1	;LOOP TILL COUNT REASONABLE
						; 5506	
						; 5507	ASHR2:	BRX/ARX,ARX_BR,			;HIGH INPUT TO ARX
U 1472, 2142,3242,0220,0000,0000,0033,0000	; 5508			B DISP,J/ASHX
						; 5509	
						; 5510	;HERE FOR LEFT ARITHMETIC SHIFT
						; 5511	
						; 5512	=0
U 2124, 0075,4001,0000,0000,0217,0010,0000	; 5513	ASHL1:	I FETCH,J/NOP			;SHIFT 0 IS A NOP
U 2125, 1522,5441,2060,0000,0020,0016,0000	; 5514		BR_AR LONG,AR_SIGN		;SAVE INPUT, GEN SIGN WORD
U 1522, 0274,3241,2640,0000,0000,0010,0000	; 5515		BR/AR,AR_BR*2 LONG		;SAVE SIGN, GET MAGNITUDE BITS
						; 5516	=0*
						; 5517	ASHL2:	BRX/ARX,ARX_AR,AR_BR,		;HI IN TO ARX, LOW TO BRX
U 0274, 2450,3242,2420,0000,1000,0050,0000	; 5518			CALL,J/SHIFT		;CALL SHIFTER TO GET BITS LOST
U 0276, 2130,3102,0004,0000,0020,5610,0000	; 5519		SKP AR NE BR			;ANY BITS DIFFERENT FROM SIGN?
						; 5520	=0
						; 5521	ASHL3:	AR_ARX,ARX_BRX,			;RESTORE HI TO AR, LOW TO ARX
U 2130, 2134,3202,4600,2300,2020,5110,0734	; 5522			GEN #+SC,#/-36.,SKP SCAD0,J/ASHL4
U 2131, 2130,4001,0000,0000,0000,1110,0420	; 5523		SET AROV,J/ASHL3		;BITS SHIFTED OUT NE SIGN
						; 5524	=0
						; 5525	ASHL4:	AR_ARX,ARX_0S,			;HERE IF E .GT. 36
U 2134, 0274,3401,4200,2302,2000,0010,0734	; 5526			SC_#+SC,#/-36.,J/ASHL2	;SHIFT 36 PLACES, TRY AGAIN
						; 5527		MQ_SHIFT,AR_BRX,CLR ARX,	;HIGH OUTPUT TO MQ,
U 2135, 2140,3202,6010,2302,0000,0533,0777	; 5528			SC_#+SC,#/-1,B DISP	;COMPENSATE FOR EXTRA SHIFT
						; 5529	=0
						; 5530	ASHL5:	AR_BR,BRX/ARX,ARX/MQ,		;SIGN TO AR, HIGH OUT TO ARX
						; 5531			SC_#,#/35.,		;READY TO COMBINE THEM
U 2140, 2142,3242,2320,0302,0000,0033,0043	; 5532			B DISP,J/ASHX		;STORE AS APPROPRIATE
U 2141, 2140,4001,0400,0000,0000,0010,0000	; 5533		ARX_SHIFT,J/ASHL5		;LOW OUTPUT TO ARX
						; 5534	
						; 5535	;HERE TO GET FINAL RESULTS.
						; 5536	
						; 5537	=0
U 2142, 0074,4001,4000,0000,0217,0010,0000	; 5538	ASHX:	AR_SHIFT,I FETCH,J/STORAC	;HERE AFTER ASH
						; 5539		AR_SHIFT,ARX_BRX,		;HERE AFTER ASHC
U 2143, 0061,3202,4600,0302,0000,0010,0043	; 5540			SC_#,#/35.,J/ST2AC
						; 5541	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 1
; ARITH.MIC[4,30]	17:12 9-Aug-84			ADD, SUB						

						; 5542	.TOC	"ADD, SUB"
						; 5543	
						; 5544		.DCODE
D 0270, 5501,1607				; 5545	270:	R-PF,	AC,	J/ADD
D 0271, 1500,1607				; 5546		I-PF,	AC,	J/ADD
D 0272, 7600,1607				; 5547		RPW,	M,	J/ADD
D 0273, 7701,1607				; 5548		RPW,	B,	J/ADD
						; 5549		.UCODE
						; 5550	
						; 5551	=0****00****
U 1607, 0060,0600,2000,0000,0025,1333,0000	; 5552	ADD:	AR_AR*AC0,AD/A+B,AD FLAGS,EXIT
						; 5553	=
						; 5554	
						; 5555	
						; 5556		.DCODE
D 0274, 5501,1610				; 5557	274:	R-PF,	AC,	J/SUB
D 0275, 1500,1610				; 5558		I-PF,	AC,	J/SUB
D 0276, 7600,1610				; 5559		RPW,	M,	J/SUB
D 0277, 7701,1610				; 5560		RPW,	B,	J/SUB
						; 5561		.UCODE
						; 5562	
						; 5563	=0****00****
U 1610, 1532,3200,2040,0000,0020,0010,0000	; 5564	SUB:	AR_AC0,BR/AR
U 1532, 0060,5102,2000,0000,0025,1333,0000	; 5565	=	AR_AR-BR,AD FLAGS,EXIT
						; 5566	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 2
; ARITH.MIC[4,30]	17:12 9-Aug-84			MUL, IMUL						

						; 5567	.TOC	"MUL, IMUL"
						; 5568	
						; 5569		.DCODE
D 0220, 4500,0503				; 5570	220:	R,	AC,	J/IMUL
D 0221, 0501,0503				; 5571		I,	AC,	J/IMULI
D 0222, 6601,0503				; 5572		RW,	M,	J/IMUL
D 0223, 6700,0503				; 5573		RW,	B,	J/IMUL
						; 5574		.UCODE
						; 5575	
						; 5576	.IFNOT/IMULI.OPT
						; 5577	=0****00*01*
						; 5578	IMULI:
						;;5579	.IF/IMULI.OPT
						;;5580	=0****00*000
						;;5581	IMULI:	SKP AR18,GEN AC0,SIGNS DISP,	;OPTIMIZE SPECIAL CASE
						;;5582			TIME/3T,SC_#,#/17.
						;;5583	=010	MQ_AR,AR_AC0,			;HERE FOR IMULI OF + BY +
						;;5584			CLR ARX,FE_#,#/-9.,	; 9 STEPS WILL DO
						;;5585			CALL,J/MULSUB
						; 5586	.ENDIF/IMULI.OPT
						; 5587	IMUL:	MQ_AR,AR_AC0,			;M'IER TO MQ, M'CAND TO AR
						; 5588			CLR ARX,FE_#,#/-18.,
U 0503, 1544,3240,2010,0301,1020,0550,0756	; 5589			CALL,J/MULSUB		;CALL MULTIPLY SUBROUTINE
						;;5590	.IF/IMULI.OPT
						;;5591	=110	AR_SHIFT,SKP AR NE,INH CRY18,	;HERE FROM IMULI
						;;5592			I FETCH,J/MUL1		; AFTER SHORT MULTIPLY
						; 5593	.ENDIF/IMULI.OPT
U 0507, 2144,0001,0000,0302,0040,5616,0043	; 5594		SC_#,#/35.,SKP AR SIG		;CHECK OVERFLOW AND STORE
						; 5595	=
						; 5596	=0
U 2144, 0066,4001,4000,0000,0005,0033,0000	; 5597	IMUL2:	AR_SHIFT,B WRITE,J/ST6		;STORE LOW WORD OF PRODUCT
U 2145, 2144,5401,2000,0000,0020,1116,0420	; 5598		SET AROV,AR_SIGN,J/IMUL2	;NOTE OVERFLOW...
						; 5599	
						; 5600	
						; 5601		.DCODE
D 0224, 4100,0200				; 5602	224:	R,	DBL AC,	J/MUL
D 0225, 0101,0200				; 5603		I,	DBL AC,	J/MUL
D 0226, 6600,0200				; 5604		RW,	M,	J/MUL
D 0227, 6201,0200				; 5605		RW,	DBL B,	J/MUL
						; 5606		.UCODE
						; 5607	
						; 5608	=0****00*000
						; 5609	MUL:	MQ_AR,CLR ARX,			;MULTIPLIER TO MQ
						; 5610			AR_AC0,FE_#,#/-18.,	;SETUP MULTIPLICAND AND STEP CNT
U 0200, 1544,3240,2010,0301,1020,0550,0756	; 5611			CALL,J/MULSUB		;AND GO TO SUBROUTINE
U 0204, 0206,3602,0004,0000,0020,5510,0000	; 5612	=100	GEN AR*BR,AD/AND,SKP AD0	;M'IER NEG, CHECK M'CAND & PROD TOO
						; 5613	=110
U 0206, 0060,0001,0000,0302,0005,0033,0043	; 5614	MUL1:	SC_#,#/35.,EXIT			;STORE DOUBLE RESULT
U 0207, 0206,0001,0000,0000,0000,1110,0420	; 5615		SET AROV,J/MUL1			;MUST HAVE SQUARED 400000,,0
						; 5616	=
						; 5617	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 3
; ARITH.MIC[4,30]	17:12 9-Aug-84			MULTIPLY SUBROUTINE					

						; 5618	.TOC	"MULTIPLY SUBROUTINE"
						; 5619	; ENTER WITH MULTIPLIER IN MQ,
						; 5620	; MULTIPLICAND IN AR!ARX, MINUS STEP COUNT IN FE
						; 5621	; RETURNS PRODUCT IN AR!ARX!MQ.
						; 5622	; RETURN 4, 6 TELLS SIGN OF MULTIPLIER
						; 5623	; 4 AND 6 ARE USED SO CALLER CAN IGNORE
						; 5624	; DIFFERENCE BY ALIGNMENT OF CALL LOC'N
						; 5625	;[TIME=4+2(-FE)+(# OF ARITH STEPS)] ... IF FE=-18, 40-58.
						; 5626	;
						; 5627	;Recall:
						; 5628	; MUL		"FE_FE+1,DISP/MUL,MQ/MQ*.25"
						; 5629	;
						; 5630	
						; 5631	MULSUB:	BR_AR LONG,AR_0S,ARX_0S,	;M'CAND TO BR LONG, CLEAR PROD
U 1544, 0260,3441,2270,4001,0000,0030,0000	; 5632			MUL,J/MULP		;START THE MULTIPLICATION
						; 5633	=000					;GRAB AN 8-WORD BLOCK
						; 5634	MULP:
						; 5635	.IF/MODEL.B
U 0260, 0006,3701,5500,2401,0000,0703,0001	; 5636		(AR+ARX+MQ)*2,FE_SC,RETURN6	;XADDR MACHINE HAS
U 0261, 0006,3701,5500,2401,0000,0703,0001	; 5637		(AR+ARX+MQ)*2,FE_SC,RETURN6	; NO "CRA MUL DONE"
U 0262, 0006,3701,5500,2401,0000,0703,0001	; 5638		(AR+ARX+MQ)*2,FE_SC,RETURN6
						; 5639	.ENDIF/MODEL.B
U 0263, 0006,3701,5500,2401,0000,0703,0001	; 5640	=011	(AR+ARX+MQ)*2,FE_SC,RETURN6	;DISCARD REDUNDANT SIGN BIT
						; 5641	
U 0264, 0260,3703,7710,4001,0000,0030,0000	; 5642	=100	AR_AR*.25 LONG,MUL,J/MULP	;M'IER BITS 00 AFTER POS STEP
						; 5643		AR_(AR+BR)*.25,ARX/ADX*.25,	;01 AFTER +
U 0265, 0260,0602,7714,4001,0020,0030,0000	; 5644			MUL,J/MULP
						; 5645		AR_(AR-2BR)*.25,ARX/ADX*.25,	;10 AFTER +
U 0266, 0320,5101,7710,4001,0020,0030,0000	; 5646			MUL,J/MULM
						; 5647		AR_(AR-BR)*.25,ARX/ADX*.25,
U 0267, 0320,5102,7710,4001,0020,0030,0000	; 5648			MUL,J/MULM		;11 AFTER +
						; 5649	
						; 5650	=000					;ANOTHER 8-WORD BLOCK FOR
						; 5651	MULM:					; AFTER SUBTRACTION STEPS
						; 5652	.IF/MODEL.B
U 0320, 0004,3703,5500,2401,0000,0703,0001	; 5653		(AR+ARX+MQ)*2,FE_SC,RETURN4
U 0321, 0004,3703,5500,2401,0000,0703,0001	; 5654		(AR+ARX+MQ)*2,FE_SC,RETURN4
U 0322, 0004,3703,5500,2401,0000,0703,0001	; 5655		(AR+ARX+MQ)*2,FE_SC,RETURN4
						; 5656	.ENDIF/MODEL.B
U 0323, 0004,3703,5500,2401,0000,0703,0001	; 5657	=011	(AR+ARX+MQ)*2,FE_SC,RETURN4	;M'IER WAS NEGATIVE
						; 5658	
						; 5659	=100	AR_(AR+BR)*.25,ARX/ADX*.25,	;M'IER BITS 00 AFTER NEG STEP
U 0324, 0260,0602,7714,4001,0020,0030,0000	; 5660			MUL,J/MULP
						; 5661		AR_(AR+2BR)*.25,ARX/ADX*.25,	;01 AFTER -
U 0325, 0260,0601,7714,4001,0020,0030,0000	; 5662			MUL,J/MULP
						; 5663		AR_(AR-BR)*.25,ARX/ADX*.25,	;10 AFTER -
U 0326, 0320,5102,7710,4001,0020,0030,0000	; 5664			MUL,J/MULM
U 0327, 0320,3703,7710,4001,0000,0030,0000	; 5665		AR_AR*.25 LONG,MUL,J/MULM	;11 AFTER -
						; 5666	
						; 5667	;HERE TO CONTINUE A LONG MULTIPLICATION
						; 5668	; WITH PARTIAL PRODUCT IN AR LONG
						; 5669	
U 1546, 0260,3441,0010,4001,0000,0030,0000	; 5670	MULREE:	AD/0S,MUL,J/MULP		;DIVE IN WITHOUT CLOBBERING AR
						; 5671	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 4
; ARITH.MIC[4,30]	17:12 9-Aug-84			DIV, IDIV						

						; 5672	.TOC	"DIV, IDIV"
						; 5673	
						; 5674		.DCODE
D 0230, 4100,0211				; 5675	230:	R,	DBL AC,	J/IDIV
D 0231, 0101,0211				; 5676		I,	DBL AC,	J/IDIV
D 0232, 6600,0211				; 5677		RW,	M,	J/IDIV
D 0233, 6201,0211				; 5678		RW,	DBL B,	J/IDIV
						; 5679	
D 0234, 4101,0210				; 5680	234:	R,	DBL AC,	J/DIV
D 0235, 0100,0210				; 5681		I,	DBL AC,	J/DIV
D 0236, 6601,0210				; 5682		RW,	M,	J/DIV
D 0237, 6200,0210				; 5683		RW,	DBL B,	J/DIV
						; 5684		.UCODE
						; 5685	
						; 5686	=0****00*000
						; 5687	DIV:	BR/AR,ARX+MQ_0.M,		;DIVISOR TO BR
						; 5688			AR_AC1*2,ARL/AD*2,	;LOW DIVIDEND TO AR
U 0210, 1552,3200,5041,0000,0021,0050,0145	; 5689			CALL.M,J/DIV1		;GET HIGH DIVIDEND
						; 5690	.IF/MODEL.B
U 0211, 1550,4061,2040,0000,0020,0010,0000	; 5691	IDIV:	BR/AR, AR_1, J/IDIV2		;[236]
						; 5692	IDIV1:	BR/AR,ARX+MQ_0.M,SC_1,		;DIVISOR TO BR
						; 5693			AR_AC0,ARL/AD,CALL.M,	;DIVIDEND TO AR
U 0212, 2160,3240,2040,4402,0021,4550,0142	; 5694			SKP AR0,J/DIV2		;TEST DIVISOR SIGN
						;;5695	.IFNOT/MODEL.B
						;;5696	=10
						;;5697	IDIV:	BR/AR,ARX+MQ_0.M,SC_1,		;DIVISOR TO BR
						;;5698			AR_AC0,ARL/AD,CALL.M,	;DIVIDEND TO AR
						;;5699			SKP AR0,J/DIV2		;TEST DIVISOR SIGN
						; 5700	.ENDIF/MODEL.B
						; 5701	=011
U 0213, 0075,4001,0000,0000,0000,1110,0424	; 5702	NODIVD:	SET NO DIVIDE,J/NOP		;HERE IF DIVIDE IMPOSSIBLE
						; 5703	
						; 5704	=110	ARX_AR,AR_-BRX,			;REMAIN TO ARX, GET CORRECT QUOTIENT
U 0216, 0060,5142,6400,0302,1025,0033,0044	; 5705			SC_#,#/36.,EXIT
						; 5706		ARX_AR,AR_BRX,			;HERE FOR POS QUOTIENT
U 0217, 0060,3202,6400,0302,1005,0033,0044	; 5707			SC_#,#/36.,EXIT
						; 5708	=
						; 5709	.IF/MODEL.B
U 1550, 2156,5102,0004,0000,0040,5610,0000	; 5710	IDIV2:	GEN AR-BR, SKP AD NE		;[236] IS DIVISOR = 1?
						; 5711	=0	AR_AC0, CLR ARX, SC_#, #/36.,	;[236] YES, ANSWER IS AC0.
U 2156, 0060,3240,2000,0302,0025,0533,0044	; 5712			EXIT			;[236]
U 2157, 0212,3202,2000,0000,0000,0010,0000	; 5713		AR_BR, J/IDIV1			;
						; 5714	.ENDIF/MODEL.B
						; 5715	;HERE ON DIVIDE TO SET UP DIVIDEND
						; 5716	
						; 5717	DIV1:	BRX/ARX,ARX_AR,AR_AC0,		;CLR BRX, DIVIDEND IN AR LONG
						; 5718			FE_#,#/33.,TIME/3T,	;SETUP ITERATION COUNT
U 1552, 0234,3240,2420,0301,1020,0032,0041	; 5719			SIGNS DISP,J/DIVS1	;ENTER SUBR
						; 5720	
						; 5721	;HERE ON IDIV TO SET UP DIVIDEND.  SKIP IF DIVISOR NEG
						; 5722	; ALSO CALLED BY ADJBP
						; 5723	=0
						; 5724	DIV2:	BRX/ARX,ARX_SHIFT,AR_SIGN,	;CLR BRX, DIVIDEND TO AR LONG
						; 5725			FE_#,#/33.,		;SETUP LOOP COUNT
U 2160, 0234,5401,2420,0301,0020,4516,0041	; 5726			SKP AR0,J/DIVS1		;ENTER SUBR ACCORDING TO SIGNS
						; 5727		BRX/ARX,ARX_SHIFT,AR_SIGN,	;CLR BRX, DIVIDEND TO AR LONG
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 4-1
; ARITH.MIC[4,30]	17:12 9-Aug-84			DIV, IDIV						

						; 5728			FE_#,#/33.,		;SETUP LOOP COUNT
U 2161, 0236,5441,2420,0301,0020,4516,0041	; 5729			SKP AR0,J/DIVS2		;ENTER SUBR ACCORDING TO SIGNS
						; 5730	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 5
; ARITH.MIC[4,30]	17:12 9-Aug-84			INTEGER DIVIDE SUBROUTINE				

						; 5731	.TOC	"INTEGER DIVIDE SUBROUTINE"
						; 5732	; ENTER WITH SIGNS DISPATCH OF DIVISOR AND DIVIDEND,
						; 5733	; DIVISOR IN BR, BRX CLR; DIVIDEND IN AR!ARX
						; 5734	; STEP COUNT IN FE (# OF QUOTIENT BITS -2)
						; 5735	; IF NO DIVIDE, RETURN 3 WITH IFETCH STARTED
						; 5736	; OTHERWISE, RETURN WITH SIGNED REMAINDER IN AR,
						; 5737	; POSITIVE QUOTIENT IN BRX AND MQ.
						; 5738	; RETURN 6 IF QUOTIENT SHOULD BE NEGATIVE,
						; 5739	; RETURN 7 IF QUOTIENT SHOULD BE POSITIVE.
						; 5740	;[TIME=14+3(FE)+3(D'END NEG)+3(RESTORE REQ'D)+1(REMAINDER NEG)]
						; 5741	; ... IF FE=33, 113-120
						; 5742	;
						; 5743	;Recall:
						; 5744	; DIVIDE	"FE_FE-1,DISP/DIV,MQ/MQ*2"
						; 5745	;
						; 5746	=1100
						; 5747	DIVS1:	DIVIDE,AR_2(AR-BR),
U 0234, 0342,5102,5500,3001,0020,0031,0000	; 5748			ARX/ADX*2,J/DIVS3	;BOTH D'END AND D'SOR POS
U 0235, 0234,5143,7700,0000,0020,0027,0000	; 5749		AR_-AR LONG,J/DIVS1		;MAKE POS DIVIDEND, THEN CHK
						; 5750	DIVS2:	DIVIDE,AR_2(AR+BR),
U 0236, 0422,0602,5500,3001,0020,0031,0000	; 5751			ARX/ADX*2,J/DIVS4	;D'END POS, D'SOR NEG
U 0237, 0236,5163,7700,0000,0020,0027,0000	; 5752		AR_-AR LONG,J/DIVS2
						; 5753	
						; 5754	=010
						; 5755	DIVS3:	DIVIDE,AR_2(AR+BR),ARX/ADX*2,
U 0342, 0460,0602,5504,3001,0020,0071,0005	; 5756			ARL/AD*2,CALL.M,J/DIVLP	;START DIVIDING
U 0343, 0003,4001,0000,0000,0217,0003,0000	; 5757		I FETCH,RETURN3			;RETURN TO CALLER WITH NO DIVIDE
						; 5758	
U 0346, 0006,5162,2020,0000,0020,0003,0000	; 5759		AR_-BR,BRX/ARX,RETURN6		;D'END NEG, SO NEGATE QUO & REM
U 0347, 0007,0001,0020,0000,0000,0003,0000	; 5760		BRX/ARX,RETURN7			;EVERYTHING POSITIVE
						; 5761	
						; 5762	
						; 5763	=010
						; 5764	DIVS4:	DIVIDE,AR_2(AR-BR),ARX/ADX*2,
U 0422, 0460,5102,5500,3001,0020,0071,0005	; 5765			ARL/AD*2,CALL.M,J/DIVLP	;BEGIN DIVISION FOR REAL BITS
U 0423, 0003,4001,0000,0000,0217,0003,0000	; 5766		I FETCH,RETURN3			;ABORT FOR IMPOSSIBLE DIVISION
						; 5767	
U 0426, 0006,4001,0020,0000,0000,0003,0000	; 5768		BRX/ARX,RETURN6			;NEGATE QUO
U 0427, 0007,5142,2020,0000,0020,0003,0000	; 5769		AR_-BR,BRX/ARX,RETURN7		;NEGATE REM
						; 5770	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 6
; ARITH.MIC[4,30]	17:12 9-Aug-84			BASIC DIVIDE LOOP					

						; 5771	.TOC	"BASIC DIVIDE LOOP"
						; 5772	; THE LOOP ITSELF IS AN INNER SUBROUTINE, TO MAKE IT SUITABLE
						; 5773	; FOR USE IN DOUBLE-LENGTH DIVISION.
						; 5774	; THE DOUBLE LENGTH REMAINDER IS RETURNED IN BR!BRX (RESTORED)
						; 5775	; THE SINGLE LENGTH QUOTIENT (LOW PART IF DBL-LEN DIVISION) IN ARX
						; 5776	; RETURN 6 IF QUOTIENT (REALLY AC0.XOR.BR) NEGATIVE, OR 7 IF POSITIVE
						; 5777	;[TIME=12+3(FE)+3(RESTORE REQ'D)] ... IF FE=33, 111-114.
						; 5778	
						; 5779	=000
U 0460, 0460,0602,5500,3001,0020,0031,0000	; 5780	DIVLP:	DIVIDE,AR_2(AR+BR),ARX/ADX*2,J/DIVLP
U 0461, 0460,5102,5504,3001,0020,0031,0000	; 5781		DIVIDE,AR_2(AR-BR),ARX/ADX*2,J/DIVLP
U 0462, 0460,5102,5504,3001,0020,0031,0000	; 5782	DIV-:	DIVIDE,AR_2(AR-BR),ARX/ADX*2,J/DIVLP
U 0463, 0460,0602,5500,3001,0020,0031,0000	; 5783	DIV+:	DIVIDE,AR_2(AR+BR),ARX/ADX*2,J/DIVLP
U 0464, 0564,0602,2604,3001,0020,0031,0000	; 5784		DIVIDE,AR_AR+BR,ARX/ADX,J/DIVX
U 0465, 0564,5102,2600,3001,0020,0031,0000	; 5785		DIVIDE,AR_AR-BR,ARX/ADX,J/DIVX
U 0466, 0564,5102,2600,3001,0020,0031,0000	; 5786		DIVIDE,AR_AR-BR,ARX/ADX,J/DIVX		;NO SHIFT ON FINAL STEP
U 0467, 0564,0602,2604,3001,0020,0031,0000	; 5787		DIVIDE,AR_AR+BR,ARX/ADX,J/DIVX
						; 5788	
						; 5789	;HERE AFTER FINAL DIVIDE STEP
						; 5790	; MQ HAS POSITIVE FORM QUOTIENT
						; 5791	; AR!ARX HAS REMAINDER, EXCEPT THAT IT MUST BE RESTORED IF IT IS
						; 5792	; NEGATIVE (IT'S NEGATIVE IF THERE WAS NO CARRY ON FINAL STEP)
						; 5793	; THE ORIGINAL DIVIDEND IS STILL IN AC0, SO WE CHECK ITS SIGN
						; 5794	; TO DETERMINE WHETHER TO NEGATE THE (RESTORED) REMAINDER.
						; 5795	
						; 5796	=100
U 0564, 0565,0602,2600,0000,0020,0027,0000	; 5797	DIVX:	AR_AR+BR LONG			;RESTORE REMAIN WITH POS D'SOR
						; 5798		BR_AR LONG,ARX/MQ,FE_SC,	;LONG REMAIN TO BR, QUO TO ARX
U 0565, 0006,2500,0360,2401,0020,5503,0000	; 5799			SKP AC0+,RETURN6	;RETURN TESTING D'END SIGN
U 0566, 0567,5102,2600,0000,0020,0027,0000	; 5800		AR_AR-BR LONG			;RESTORE REMAIN WITH NEG D'SOR
						; 5801		BR_AR LONG,ARX/MQ,FE_SC,
U 0567, 0006,3200,0360,2401,0020,5503,0000	; 5802			SKP AC0-,RETURN6
						; 5803	
						; 5804	
						; 5805	;SUBROUTINE FOR FIRST PART OF LONG DIVISIONS
						; 5806	; ENTER AT DDVSUB WITH SKP BR0
						; 5807	; RETURN3 IF SHOULD RESUME WITH ADD STEP
						; 5808	; RETURN5 IF SHOULD RESUME WITH SUBTRACT
						; 5809	
						; 5810	=000
U 0640, 0640,0602,5500,3001,0020,0031,0000	; 5811	DDVLP:	AR_2(AR+BR),ARX/ADX*2,DIVIDE,J/DDVLP
U 0641, 0640,5102,5504,3001,0020,0031,0000	; 5812		AR_2(AR-BR),ARX/ADX*2,DIVIDE,J/DDVLP
U 0642, 0640,5102,5504,3001,0020,0031,0000	; 5813	DDVSUB:	AR_2(AR-BR),ARX/ADX*2,DIVIDE,J/DDVLP
U 0643, 0640,0602,5500,3001,0020,0031,0000	; 5814		AR_2(AR+BR),ARX/ADX*2,DIVIDE,J/DDVLP
U 0644, 0003,3723,2010,0301,1000,0003,0040	; 5815		AR_MQ,MQ_AR,FE_#,#/32.,RETURN3
U 0645, 0005,3723,2010,0301,1000,0003,0040	; 5816		AR_MQ,MQ_AR,FE_#,#/32.,RETURN5
U 0646, 0005,3723,2010,0301,1000,0003,0040	; 5817		AR_MQ,MQ_AR,FE_#,#/32.,RETURN5
U 0647, 0003,3723,2010,0301,1000,0003,0040	; 5818		AR_MQ,MQ_AR,FE_#,#/32.,RETURN3
						; 5819	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 7
; ARITH.MIC[4,30]	17:12 9-Aug-84			DOUBLE INTEGER ARITHMETIC -- DADD, DSUB, DMUL, DDIV

						; 5820	.TOC	"DOUBLE INTEGER ARITHMETIC -- DADD, DSUB, DMUL, DDIV"
						; 5821	
						; 5822		.DCODE
						;;5823	.IFNOT/DBL.INT
						;;5824	114:	EA,	J/UUO
						;;5825		EA,	J/UUO
						;;5826		EA,	J/UUO
						;;5827		EA,	J/UUO
						; 5828	.IF/DBL.INT
D 0114, 4001,0515				; 5829	114:	R,	B/0,	J/DASMD		;DADD
D 0115, 4200,0515				; 5830		R,	B/2,	J/DASMD		;DSUB
D 0116, 4400,0515				; 5831		R,	B/4,	J/DASMD		;DMUL
D 0117, 4000,0514				; 5832		R,		J/DDIV
						; 5833		.UCODE
						; 5834	
						; 5835	;HERE FOR DOUBLE WORD ADD, SUBTRACT, MULTIPLY, OR DIVIDE
						; 5836	;ENTER WITH (E) IN AR, E IN VMA
						; 5837	
						; 5838	=0****00**00
U 0514, 1632,3200,0205,0000,0020,0710,0003	; 5839	DDIV:	ARX_AC3,CLR MQ,J/DDIV0		;GET LOWEST PART OF D'END
						; 5840	
						; 5841	DASMD:	BR/AR,AR_AC1*2,ARL/AD*2,	;HIGH MEM WORD TO BR
						; 5842			VMA_VMA+1,LOAD ARX,	;ASK FOR LOW WORD
U 0515, 1023,3200,5041,0000,0033,3662,0105	; 5843			MQ_0.S,CALL.S,J/XFERW	;AND WAIT FOR IT
U 0517, 1554,3701,0500,0000,0000,0010,0000	; 5844	=11	ARX_ARX*2			;SHIFT LOW MEM WORD LEFT
						; 5845	=	BRX/ARX,ARX_AR,AR_AC0,		;ALL DATA IN PLACE
U 1554, 0250,3200,2420,0302,1020,0033,0043	; 5846			SC_#,#/35.,B DISP	;DO THE OPERATION
						; 5847	
						; 5848	;HERE WITH (E) IN BR, (E+1)*2 IN BRX
						; 5849	; (AC) IN AR, (AC+1)*2 IN ARX
						; 5850	
U 0250, 0061,0602,2604,0000,0022,1327,0000	; 5851	=00*	AR_AR+BR LONG,AD FLAGS,EXIT DBL	;DADD
						; 5852	
U 0252, 0061,5102,2600,0000,0022,1327,0000	; 5853		AR_AR-BR LONG,AD FLAGS,EXIT DBL	;DSUB
						; 5854	
						; 5855		MQ_SHIFT,AR_0S,ARX_0S,		;DMUL, USE AC1 AS INITIAL M'IER
U 0254, 0350,3441,2210,0301,0000,0010,0756	; 5856			FE_#,#/-18.,J/DMULT	;SETUP STEP COUNT
						; 5857	=
						; 5858	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 8
; ARITH.MIC[4,30]	17:12 9-Aug-84			DOUBLE INTEGER ARITHMETIC -- DADD, DSUB, DMUL, DDIV

						; 5859	;HERE FOR DOUBLE WORD MULTIPLY
						; 5860	
						; 5861	=00*
U 0350, 0260,3401,0010,4001,0000,0070,0000	; 5862	DMULT:	AD/0S,MUL,CALL.M,J/MULP		;BEGIN MULTIPLY
U 0354, 0356,0602,2600,0000,0020,0027,0000	; 5863	=10*	AR_AR+BR LONG			;CANCEL EFFECTS OF LOW BIT 0
U 0356, 1556,3723,2010,0000,1000,0010,0000	; 5864		MQ_AR,AR_MQ			;EXCH HI AND LOW PRODUCT WORDS
						; 5865	
						; 5866	;HERE AFTER 1ST CALL ON MPY SUBR.  SAVE LOW WORD OF PROD, GET HIGH M'IER
						; 5867	
U 1556, 1572,4001,0005,0000,0000,1010,0000	; 5868		AC3_AR				;LOW WORD OF PRODUCT
U 1572, 1060,3200,2000,0000,0020,0010,0000	; 5869		AR_AC0				;GET HIGH M'IER WORD
						; 5870	=000	MQ_AR,AR_MQ,CALL,		;DIVE IN AGAIN
U 1060, 1546,3723,2010,0301,1000,0050,0756	; 5871			FE_#,#/-18.,J/MULREE	;CONTINUE THE MULTIPLY
U 1064, 1066,3602,0004,0000,0020,5510,0000	; 5872	=100	GEN AR*BR,AD/AND,SKP AD0	;SKP IF M'IER, M'CAND, & PROD NEG
						; 5873	=110
						; 5874	DMUL1:	AC0_AR,AR_SIGN,
U 1066, 1576,5441,2000,0302,0020,1016,0043	; 5875			SC_#,#/35.,J/DMUL2	;STORE HIGH WORD OF PRODUCT
U 1067, 1066,0001,0000,0000,0000,1110,0420	; 5876		SET AROV,J/DMUL1
						; 5877	
						; 5878	;MULTIPLY NOW COMPLETE, STORE RESULTS WITH PROPER SIGN IN BIT 0
						; 5879	
U 1576, 1611,0001,4040,0000,0000,0010,0000	; 5880	DMUL2:	BR/AR,AR_SHIFT			;GET 2ND WITH SIGN, SAVE SIGN
U 1611, 1612,0001,4301,0000,2000,1010,0000	; 5881		AC1_AR,AR_ARX,ARX/MQ		;READY TO BUILD 3RD WORD
U 1612, 1616,3242,2400,0000,0000,0012,0000	; 5882		ARX_SHIFT,AR_BR,MQ_MQ*2		;SIGNIFICANT BITS TO ARX, SIGN TO AR
						; 5883		AR_SHIFT,ARX_AC3,		;3RD WORD IN AR, GET LOW
U 1616, 1622,3240,4215,0000,0020,0012,0000	; 5884			MQ_MQ*.25		;EXTRA PROD BIT TO MQ 35
U 1622, 0560,3721,2004,0000,0000,1010,0000	; 5885		AC2_AR,AR_MQ			;,I FETCH WHEN TIMING FIXED
						; 5886	=0*	ARX_SHIFT,AR_BR,I FETCH,	;LOW WORD AND SIGN READY
U 0560, 2450,3202,2400,0000,0217,0050,0000	; 5887			CALL,J/SHIFT		; GET LOW WORD TO AR
U 0562, 0222,4001,0005,0000,0000,1010,0000	; 5888	STRAC3:	AC3_AR,FINISH			;GANZ GETAN
						; 5889	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 9
; ARITH.MIC[4,30]	17:12 9-Aug-84			DOUBLE INTEGER ARITHMETIC -- DADD, DSUB, DMUL, DDIV

						; 5890	;HERE FOR DOUBLE INTEGER DIVISION
						; 5891	;AR HAS (E), ARX HAS (AC3), AND MQ IS CLEAR
						; 5892	
U 1632, 1636,3203,4507,4402,2000,1010,0166	; 5893	DDIV0:	T0_AR,AR_ARX,ARX_ARX*8,SC_1	;SAVE (E) IN T0
						; 5894		BRX/ARX,ARX_SHIFT,		;AC3 3-35 TO BRX, 1-2 TO ARX
U 1636, 1640,3200,2424,0302,0020,0010,0002	; 5895			AR_AC2,SC_#,#/2		;GET AC2 READY
						; 5896		AR_SHIFT,BR/AR,			;AC2 BITS 2-35 WITH AC3 1-2
U 1640, 1642,3240,4241,0000,0020,3610,0000	; 5897			ARX_AC1,VMA_VMA+1	;READY TO GET (E+1)
						; 5898		BR/AR,AR_ARX,ARX_BR*2,		;LOW DOUBLE WORD NOW IN BR LONG
U 1642, 1644,3241,4240,4403,2000,0010,0000	; 5899			SC_1,FE_1
U 1644, 2162,3240,2400,0000,0020,5510,0000	; 5900		ARX_SHIFT,AR_AC0,SKP AD0	;HIGH DOUBLEWORD IN AR LONG
						; 5901	=0
						; 5902	DDIV1:	BR_AR LONG,AR_BRX,ARX_BR,	;HI POS D'END TO BR
U 2162, 0724,3202,6260,0000,0012,0010,0000	; 5903			LOAD AR,J/DDIV2		;GET LOW D'SOR READY
						; 5904		BR_AR LONG,AR_-BR LONG,		;NEGATE LOW D'END
U 2163, 2174,5162,2660,3401,0040,5427,0000	; 5905			FE_-1,SKP CRY0		;TEST FOR CARRY PROPAGATION
U 2174, 2162,2502,2660,0000,0000,0010,0000	; 5906	=0	BR_AR LONG,AR_BR COMP LONG,J/DDIV1
U 2175, 2162,5162,2660,0000,0020,0027,0000	; 5907		BR_AR LONG,AR_-BR LONG,J/DDIV1	;FINISH NEGATION OF D'END
						; 5908	=0*
						; 5909	DDIV2:	T1_AR,MQ_ARX,ARX_0S,		;LOWEST D'END TO T1, NEXT TO MQ
U 0724, 1023,3441,0217,0000,2000,1050,0171	; 5910			CALL,J/XFERW		; WAIT FOR (E+1)
U 0726, 2200,3240,2407,0000,0040,5110,0166	; 5911		ARX_SHIFT,AR_T0,SKP FE0		;DIVISOR NOW IN AR LONG
						; 5912	=0	AR_BR LONG,BR_AR LONG,		;PUT OPERANDS IN PLACE FOR DIV
U 2200, 0253,3242,2660,0000,0020,0032,0000	; 5913			SIGNS DISP,J/DDIV3	;TEST D'SOR SIGN
						; 5914		AR_BR LONG,BR_AR LONG,SET SR2,	;NOTE D'END NEGATIVE
U 2201, 0253,3242,2660,0000,0020,1632,0062	; 5915			SIGNS DISP,J/DDIV3
						; 5916	
						; 5917	;HERE WITH THE DIVISOR IN BR LONG,
						; 5918	; THE HIGH PART OF THE MAGNITUDE OF THE DIVIDEND IN AR LONG,
						; 5919	; AND THE LOW PART OF THE MAGNITUDE OF THE DIVIDEND IN MQ AND T1
						; 5920	; SKIP IF DIVISOR NEGATIVE, & CHECK FOR NO-DIVIDE.
						; 5921	=1011
						; 5922	DDIV3:	AR_2(AR-BR),ARX/ADX*2,MQ_MQ*2,	;SEE IF FIRST DIVIDE STEP
U 0253, 1120,5102,5500,0000,0040,5412,0000	; 5923			SKP CRY0,J/DDIV4	; GENERATES A 1
U 0257, 1120,0602,5504,0000,0040,5412,0000	; 5924		AR_2(AR+BR),ARX/ADX*2,MQ_MQ*2,SKP CRY0
						; 5925	=000
U 1120, 0640,0001,0000,0301,0000,4250,0041	; 5926	DDIV4:	FE_#,#/33.,SKP BR0,CALL,J/DDVLP	;GO DO FIRST HALF OF DIVIDE
U 1121, 0213,0001,0000,0000,0217,0010,0000	; 5927		I FETCH,J/NODIVD		;TOO MANY QUOTIENT BITS
U 1123, 1646,4001,0001,0402,0000,1010,0000	; 5928	=011	AC1_AR,CLR SC,J/DDIV6		;SAVE HI QUOTIENT IN AC1
U 1125, 1646,4001,0001,3402,0000,1010,0000	; 5929	=101	AC1_AR,SC_1S			;SET FLAG FOR RESUMPTION
						; 5930	=
U 1646, 1144,3240,2007,0000,0020,0010,0171	; 5931	DDIV6:	AR_T1				;GET LOWEST DIVIDEND BITS
						; 5932	=100	MQ_AR,AR_MQ,CALL,		;FINISH DIVISION, GENERATING
U 1144, 0460,3721,2010,0000,1000,4750,0000	; 5933			SKP SC0,J/DIVLP		; 35 MORE QUOTIENT BITS
U 1146, 0275,3240,2001,0000,0020,1605,0061	; 5934	=110	AR_AC1,SR DISP,SET SR3,J/DDVX1	;QUOTIENT NEGATIVE.  NOTE
U 1147, 0275,3240,2001,0000,0020,0005,0000	; 5935		AR_AC1,SR DISP			;HERE'S HIGH PART OF QUOTIENT
						; 5936	=1101
U 0275, 1650,3202,2660,0000,0000,0010,0000	; 5937	DDVX1:	BR_AR LONG,AR_BR LONG,J/DDVX2	;POS REMAINDER.  GO STORE
U 0277, 1650,5162,2660,0000,0020,0027,0000	; 5938		BR_AR LONG,AR_-BR LONG,J/DDVX2	;NEGATE REMAINDER
U 1650, 1652,5401,2004,0302,0020,1016,0043	; 5939	DDVX2:	AC2_AR,AR_SIGN,SC_#,#/35.
U 1652, 0116,4001,4000,0000,0000,0005,0000	; 5940		AR_SHIFT,SR DISP		;GET LOW WORD OF REM.  TEST QUO SIGN
U 0116, 0061,3202,2505,0000,0002,1010,0000	; 5941	=1110	AC3_AR,AR_BR,ARX/ADX*2,EXIT DBL	;GET QUOTIENT, SQUEEZE OUT HOLE
						; 5942		AC3_AR,AR_-BR,ARX/ADX*2,AD LONG,;GET NEGATIVE QUOTIENT
U 0117, 0061,5162,2505,0000,0022,1027,0000	; 5943			EXIT DBL
						; 5944	.ENDIF/DBL.INT
						; 5945	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 1
; FP.MIC[4,30]	17:13 9-Aug-84				SINGLE FLOATING ADD & SUB -- FAD, FADR, FSB, FSBR	

						; 5946	.TOC	"SINGLE FLOATING ADD & SUB -- FAD, FADR, FSB, FSBR"
						; 5947	
						; 5948		.DCODE
						; 5949	.IFNOT/FPLONG
D 0130, 2000,1002				; 5950	130:	EA,	J/UUO		;UFA
D 0131, 2000,1002				; 5951		EA,	J/UUO		;DFN
						; 5952	.ENDIF/FPLONG
						; 5953	
D 0140, 4101,0704				; 5954	140:	R,	FL-AC,	B0/0,	J/FAD
D 0141, 4000,0707				; 5955		R,		B0/0,	J/FPNO
D 0142, 6200,0704				; 5956		RW,	FL-MEM,	B0/0,	J/FAD
D 0143, 6301,0704				; 5957		RW,	FL-BOTH,B0/0,	J/FAD
						; 5958	
D 0144, 4101,0303				; 5959		R,	FL-AC,		J/FADR
D 0145, 0101,0302				; 5960		I,	FL-AC,	B0/0,	J/FADRI
D 0146, 6200,0303				; 5961		RW,	FL-MEM,		J/FADR
D 0147, 6301,0303				; 5962		RW,	FL-BOTH,	J/FADR
						; 5963	
D 0150, 4500,0704				; 5964	150:	R,	FL-AC,	B0/1,	J/FSB
D 0151, 4401,0707				; 5965		R,		B0/1,	J/FPNO
D 0152, 6601,0704				; 5966		RW,	FL-MEM,	B0/1,	J/FSB
D 0153, 6700,0704				; 5967		RW,	FL-BOTH,B0/1,	J/FSB
						; 5968	
D 0154, 4100,0307				; 5969		R,	FL-AC,		J/FSBR
D 0155, 0500,0302				; 5970		I,	FL-AC,	B0/1,	J/FSBRI
D 0156, 6201,0307				; 5971		RW,	FL-MEM,		J/FSBR
D 0157, 6300,0307				; 5972		RW,	FL-BOTH,	J/FSBR
						; 5973		.UCODE
						; 5974	
						; 5975	.IFNOT/FPLONG
						; 5976	=0****00**00
						; 5977	FAD:
U 0704, 0303,0001,0000,0000,0000,1633,0001	; 5978	FSB:	SR_#,#/1,B DISP,J/FADR		;FLAG NO ROUND, GO FAD/FSB
U 0705, 1407,0001,0000,0000,0000,1610,0001	; 5979	FMP:	SR_#,#/1,J/FMPR
U 0706, 1411,4001,0000,0000,0000,1610,0001	; 5980	FDV:	SR_#,#/1,J/FDVR
U 0707, 1002,3242,2000,0000,0000,0010,0000	; 5981	FPNO:	AR_BR,J/UUO
						; 5982	=
						;;5983	.IF/FPLONG
						;;5984	=0****00***0
						;;5985	FAD:
						;;5986	FSB:	SR_#,#/1,B DISP,J/FADR		;FLAG TRUNCATE MODE, GO FAD
						;;5987	FADL:
						;;5988	FSBL:	SR_#,#/2,B DISP,J/FADR		;FLAG LONG MODE
						; 5989	.ENDIF/FPLONG
						; 5990	=
						; 5991	=0****00*010
						; 5992	FADRI:
U 0302, 0303,4001,4000,0000,3000,0033,0000	; 5993	FSBRI:	AR_AR SWAP,B DISP
						; 5994	FADR:	FE_EXP,EXP_SIGN,SC/SCAD,
U 0303, 1656,3401,0200,0203,1000,0022,0200	; 5995			ARX_0S,J/FAS
						; 5996	=111
U 0307, 1654,3441,0200,0203,1000,0022,0200	; 5997	FSBR:	FE_EXP,SC/SCAD,EXP_SIGN,ARX_0S
U 1654, 1656,5163,7000,0000,0020,0010,0000	; 5998	=	AR_-AR,J/FAS			;NEGATE SUBTRAHEND
						; 5999	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 2
; FP.MIC[4,30]	17:13 9-Aug-84				SINGLE FLOATING ADD & SUB -- FAD, FADR, FSB, FSBR	

						; 6000	;FIND OPERAND WITH LARGER EXP, LEAVING IT IN BR,
						; 6001	; AND ITS EXP-1 IN FE.  THE SMALLER OPERAND IS LEFT IN AR,
						; 6002	; SHIFTED RIGHT BY THE DIFFERENCE BETWEEN THE EXPONENTS -1
						; 6003	
U 1656, 1661,3240,2060,0000,0020,0010,0000	; 6004	FAS:	BR/AR,BRX/ARX,AR_AC0		;SAVE MEM OP IN BR, GET AC
U 1661, 2202,4001,0000,5202,1020,5122,0200	; 6005		SC_EXP-SC,EXP_SIGN,SKP SCAD0	;FIND LARGER OPERAND
U 2202, 1666,3241,2040,2001,0000,0010,0000	; 6006	=0	FE_FE+SC,BR/AR,AR_BR*2,J/FAS1	;AC EXP .GE. MEM
						; 6007		MQ_AR,SC_#+SC,#/37.,		;MEM OP LARGER, SHIFT AC OP
U 2203, 2210,4001,0010,2302,1020,5110,0045	; 6008			SKP SCAD0,J/FAS2	;COMPUTE SHIFT AMOUNT
						; 6009	
U 1666, 2210,4001,0010,5302,1020,5110,0044	; 6010	FAS1:	MQ_AR,SC_#-SC,#/36.,SKP SCAD0	;CHECK SHIFT AMOUNT
						; 6011	=0
U 2210, 1671,5401,2310,0000,0020,0016,0000	; 6012	FAS2:	MQ_SHIFT,ARX/MQ,AR_SIGN,J/FAS3	;LOW TO MQ, READY TO GET HI
						; 6013		AR_SIGN,ARX_AR,			;HERE IF EXP DIFF .GT. 36
U 2211, 2212,5441,2400,2302,1020,5116,0044	; 6014			SC_#+SC,#/36.,SKP SCAD0	; .GT. 72?
U 2212, 1676,0001,0400,4001,0001,0010,0100	; 6015	=0	ARX_SHIFT,MQ_0.M,FE_FE+1,J/FAS5
U 2213, 1676,4001,0400,4001,1001,0010,0100	; 6016		ARX_AR,MQ_0.M,FE_FE+1,J/FAS5	;SHIFTED CLEAR OUT
						; 6017	
						; 6018	FAS3:	AR_SHIFT,ARL/SH,ARX/MQ,
U 1671, 1676,4001,4300,4001,0001,0010,0104	; 6019			MQ_0.M,FE_FE+1		;READY TO ADD
						; 6020	
						; 6021	FAS5:	AR_(AR+2BR)*.25,ARX/ADX*.25,	;HERE FOR ADD OR SUB
U 1676, 1240,0601,7704,0000,0060,0035,0000	; 6022			NORM,J/SNORM
						; 6023	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 3
; FP.MIC[4,30]	17:13 9-Aug-84				SINGLE FLOATING MULTIPLY -- FMP, FMPR			

						; 6024	.TOC	"SINGLE FLOATING MULTIPLY -- FMP, FMPR"
						; 6025	
						; 6026		.DCODE
D 0160, 4100,0705				; 6027	160:	R,	FL-AC,	J/FMP
D 0161, 4000,0707				; 6028		R,		J/FPNO
D 0162, 6201,0705				; 6029		RW,	FL-MEM,	J/FMP
D 0163, 6300,0705				; 6030		RW,	FL-BOTH,J/FMP
						; 6031	
D 0164, 4100,1407				; 6032		R,	FL-AC,	J/FMPR
D 0165, 0100,1406				; 6033		I,	FL-AC,	J/FMPRI
D 0166, 6201,1407				; 6034		RW,	FL-MEM,	J/FMPR
D 0167, 6300,1407				; 6035		RW,	FL-BOTH,J/FMPR
						; 6036		.UCODE
						;;6037	.IF/FPLONG
						;;6038	=0****00***0
						;;6039	FMP:	SR_#,#/1,J/FMPR			;FLAG TRUNCATE MODE
						;;6040	FMPL:	SR_#,#/2,J/FMPR			;LONG MODE
						;;6041	=
						; 6042	.ENDIF/FPLONG
						; 6043	=0****00***0
U 1406, 1407,4001,4000,0000,3000,0010,0000	; 6044	FMPRI:	AR_AR SWAP
U 1407, 1712,3401,0200,0202,1000,0022,0200	; 6045	FMPR:	SC_EXP,EXP_SIGN,ARX_0S		;PREPARE M'IER FRACTION
						; 6046	
U 1712, 0362,3240,2010,0301,1020,0010,0762	; 6047	=	MQ_AR,AR_AC0,FE_#,#/-14.	;M'IER TO MQ, GET M'CAND
						; 6048	=01*	SC_EXP+SC,EXP_SIGN,		;SEPARATE M'CAND FRACTION FROM EXP
U 0362, 1544,4001,0000,2202,1000,0062,0200	; 6049			CALL.S,J/MULSUB		;AND BEGIN MULTIPLY
U 0366, 1240,3203,0000,2301,0040,0035,0600	; 6050	=11*	FE_#+SC,#/-200,NORM AR,J/SNORM
						; 6051	=
						; 6052	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 4
; FP.MIC[4,30]	17:13 9-Aug-84				SINGLE FLOATING DIVIDE -- FDV, FDVR			

						; 6053	.TOC	"SINGLE FLOATING DIVIDE -- FDV, FDVR"
						; 6054	
						; 6055		.DCODE
D 0170, 4100,0706				; 6056	170:	R,	FL-AC,	J/FDV
D 0171, 4101,0707				; 6057		R,	FL-AC,	J/FPNO
D 0172, 6201,0706				; 6058		RW,	FL-MEM,	J/FDV
D 0173, 6300,0706				; 6059		RW,	FL-BOTH,J/FDV
						; 6060	
D 0174, 4101,1411				; 6061		R,	FL-AC,	J/FDVR
D 0175, 0101,1410				; 6062		I,	FL-AC,	J/FDVRI
D 0176, 6200,1411				; 6063		RW,	FL-MEM,	J/FDVR
D 0177, 6301,1411				; 6064		RW,	FL-BOTH,J/FDVR
						; 6065		.UCODE
						;;6066	.IF/FPLONG
						;;6067	=0****00***0
						;;6068	FDVL:	FE_EXP-1,EXP_SIGN,ARX+MQ_0.S,J/FDVL1
						;;6069	FDV:	SR_#,#/1,J/FDVR			;FLAG TRUNCATE MODE
						;;6070	=
						; 6071	.ENDIF/FPLONG
						; 6072	=0****00***0
U 1410, 1411,0001,4000,0000,3000,0010,0000	; 6073	FDVRI:	AR_AR SWAP
U 1411, 1160,4001,0000,4202,1000,0022,0340	; 6074	FDVR:	SC_EXP+1,EXP_SIGN,ARX+MQ_0.S	;SETUP DIVISOR
						; 6075	=
						; 6076	=000	BR/AR,BRX/ARX,			;DIVISOR TO BR, CLR BRX
						; 6077			AR_AC0,FE_#,#/27.,	;GET DIVIDEND, STEP COUNT
U 1160, 2222,3240,2060,0301,0020,5550,0033	; 6078			SKP AD0,CALL,J/FDVCHK
						; 6079	
U 1162, 0462,0001,0000,0000,0000,4250,0000	; 6080	=10	SKP BR0,CALL,J/DIV-		;OK, BEGIN DIVISION
U 1163, 0066,4001,0000,0000,0000,1110,0624	; 6081		SET FL NO DIV,J/IFNOP		;NO DIVIDE, SORRY
						; 6082	
						; 6083	;RETURN HERE WITH QUOTIENT IN ARX.  WE TOOK 29 DIVIDE STEPS, TO
						; 6084	; GUARANTEE HAVING A ROUNDING BIT EVEN IF THE FIRST STEP GENERATES
						; 6085	; A QUOTIENT BIT OF ZERO.  THEREFORE, THE MSB OF QUOTIENT IS EITHER
						; 6086	; IN BIT 7 OR 8, AND NORM WILL FIND IT IN ONE STEP.
						; 6087	
						; 6088	=110	AR_ARX,FE_FE+#,#/2,		;NEGATIVE QUOTIENT
U 1166, 2220,7142,4000,2031,2040,5410,0002	; 6089			SKP BR EQ,J/FDVNEG	;CHECK FOR MORE QUO TO COME
						; 6090		AR_ARX*.25,ARX_ARX*.25,NORM,	;JUNK IS 36 BITS AWAY FROM MSB
U 1167, 1240,3713,7700,2031,0040,0035,0002	; 6091			FE_FE+#,#/2,J/SNORM	;POS QUOTIENT, NORMALIZE
						; 6092	=
						; 6093	;HERE IF QUOTIENT SHOULD BE NEGATIVE, WITH POSITIVE FORM IN
						; 6094	; AR AND ARX.  SKIP IF REMAINDER (IN BR) IS ZERO.  IN THIS CASE,
						; 6095	; WE CLEAR ARX, BECAUSE AR CONTAINS THE ENTIRE QUOTIENT.
						; 6096	; IF, HOWEVER, THE REMAINDER IS NOT ZERO, WE INFER
						; 6097	; THAT AN INFINITE PRECISION DIVISION WOULD GENERATE MORE ONES
						; 6098	; IN THE QUOTIENT.  IF THAT IS THE CASE, WE LEAVE ARX WITH THE
						; 6099	; QUOTIENT, SO THE NEGATION PROCESS WILL WORK CORRECTLY TO RETURN
						; 6100	; THE HIGH ORDER PART OF THE INFINITE-PRECISION NEGATIVE QUOTIENT.
						; 6101	=0
U 2220, 1240,3703,7700,0000,0040,1635,0064	; 6102	FDVNEG:	SET SR1,AR_AR*.25 LONG,NORM,J/SNORM
U 2221, 2220,3401,0200,0000,0000,0010,0000	; 6103		ARX_0S,J/FDVNEG			;REMAINDER WENT TO ZERO
						; 6104	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 5
; FP.MIC[4,30]	17:13 9-Aug-84				SINGLE FLOATING DIVIDE -- FDV, FDVR			

						; 6105	;HERE FOR FDVL
						; 6106	
						;;6107	.IF/FPLONG
						;;6108	
						;;6109	;FDVL:	FE_EXP-1,EXP_SIGN,CLR ARX+MQ
						;;6110	=000
						;;6111	FDVL1:	AR_AC1,BR_AR LONG,		;SAVE DIVISOR IN BR LONG
						;;6112			SC_#,#/9.,CALL		;READY TO SHIFT LOW DIVIDEND
						;;6113		ARX_SHIFT,AR_AC0,		;DIVIDEND IN PLACE
						;;6114			SC_FE,FE_#,#/24.,	;EXP TO SC, STEP COUNT TO FE
						;;6115			SKP AD0,J/FDVCHK	;GO CHECK FOR NO DIVIDE
						;;6116	=010	CALL,SKP BR0,J/FDVL2		;GO BEGIN DIVIDE
						;;6117		SET FL NO DIV,J/IFNOP		;CAN'T DIVIDE, ABORT
						;;6118	
						;;6119	=110	AR_AC0,SR_#,#/5,		;NEG QUO, FLAG TRUNCATE MODE
						;;6120			SR DISP,J/FDVL4		; WAS IT 26 OR 27 STEPS?
						;;6121		AR_AC0,SR_#,#/1,		;POS QUO
						;;6122			SR DISP,J/FDVL4
						;;6123	=
						;;6124	
						;;6125	
						;;6126	;COME HERE TO START THE DIVISION.  ON THE FIRST STEP, WE CHECK
						;;6127	; TO SEE WHETHER A 1 HAS BEEN GENERATED IN THE QUOTIENT.  IF SO,
						;;6128	; 26 ADDITIONAL STEPS WILL GENERATE THE FULL 27 SIGNIFICANT BITS
						;;6129	; OF THE QUOTIENT.  IF NOT, 27 STEPS ARE REQUIRED.
						;;6130	
						;;6131	=0
						;;6132	FDVL2:	DIVIDE,AR_2(AR-BR),ARX/ADX*2,J/FDVL3	;FIRST DIVIDE STEP
						;;6133		DIVIDE,AR_2(AR+BR),ARX/ADX*2		; DOES IT GENERATE A 1?
						;;6134	=00
						;;6135	FDVL3:	DISP/DIV,MQ/MQ*2,		;NO, TAKE AN EXTRA DIVIDE STEP
						;;6136			AR_2(AR+BR),ARX/ADX*2,J/DIVLP	; WITHOUT COUNTING FE
						;;6137		SR_1,SC_#+SC,#/1,J/DIV-		;YES, 27 STEPS WILL NORMALIZE QUO
						;;6138		DISP/DIV,MQ/MQ*2,AR_2(AR-BR),ARX/ADX*2,J/DIVLP
						;;6139		SR_1,SC_#+SC,#/1,J/DIV+
						;;6140	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 6
; FP.MIC[4,30]	17:13 9-Aug-84				SINGLE FLOATING DIVIDE -- FDV, FDVR			

						;;6141	;WE COME HERE AFTER DOING THE DIVISION, EITHER 26 OR 27 STEPS
						;;6142	; AS REQUIRED TO GENERATE A NORMALIZED QUOTIENT FROM NORMALIZED
						;;6143	; OPERANDS.  NOW FIGURE OUT WHAT EXPONENT THE REMAINDER SHOULD HAVE.
						;;6144	
						;;6145	=0
						;;6146	FDVL4:	SC_EXP-#,#/27.,			;DIVIDEND EXP-27
						;;6147			AR_BR,SKP AR0,J/FDVL6	;GET REMAINDER, TEST D'END SIGN
						;;6148		SC_EXP-#,#/26.,			;D'END EXP-26
						;;6149			AR_BR,SKP AR0
						;;6150	
						;;6151	;HERE WITH REMAINDER IN AR, ITS EXP IN SC
						;;6152	; SKIP IF D'END (AND THEREFORE REM) NEGATIVE.
						;;6153	
						;;6154	=0
						;;6155	FDVL6:	EXP_SC,BYTE DISP,		;TEST FOR UNDERFLOW
						;;6156			SKP AR EQ,J/FDVL7	; OR REM =0
						;;6157		AR_-BR,SKP CRY0,		;NEGATE REM, CHECK =0
						;;6158			GEN SC,BYTE DISP	; AND LOOK FOR EXP UFLO
						;;6159	=110	EXP_-SC-1,J/FDVL7		;ONE'S COMPLEMENT EXP
						;;6160		AR_0S				;REM =0 OR EXP UFLO
						;;6161	=110
						;;6162	FDVL7:	AC1_AR,ARX+MQ_0.M,		;SAVE REMAINDER
						;;6163			AR_MQ,ARL/AD,J/SNR2	;GO NORMALIZE QUOTIENT
						;;6164		AR_0S,J/FDVL7
						; 6165	.ENDIF/FPLONG
						; 6166	
						; 6167	
						; 6168	;SUBR TO CHECK FOR FLOATING NO DIVIDE
						; 6169	; ENTER WITH SKP ON DIVIDEND SIGN, IN AR LONG, WITH
						; 6170	; DIVISOR EXP IN SC, DIVISOR IN BR
						; 6171	
						; 6172	=0
U 2222, 2240,4001,0000,5202,1000,4222,0200	; 6173	FDVCHK:	SC_EXP-SC,EXP_SIGN,SKP BR0,J/FDVCK1
U 2223, 2222,5143,7700,0000,0020,0027,0000	; 6174		AR_-AR LONG,J/FDVCHK		;GET POSITIVE DIVIDEND
						; 6175	=0
						; 6176	FDVCK1:	GEN AR-2BR,SKP CRY0,		;TEST FOR NO DIVIDE
U 2240, 0002,5101,0004,2302,0040,5403,0177	; 6177			SC_#+SC,#/177,RETURN2	;AND CORRECT EXP
						; 6178		GEN AR+2BR,SKP CRY0,		;SAME TEST, NEG DIVISOR
U 2241, 0002,0601,0000,2302,0040,5403,0177	; 6179			SC_#+SC,#/177,RETURN2	;AND SAME EXP CORRECTION
						; 6180	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 7
; FP.MIC[4,30]	17:13 9-Aug-84				UFA, DFN, FSC, IBP					

						; 6181	.TOC	"UFA, DFN, FSC, IBP"
						; 6182	;ENTER WITH (E) IN AR
						;;6183	.IF/FPLONG
						;;6184		.DCODE
						;;6185	130:	R,		J/UFA
						;;6186		RPW,		J/DFN
						;;6187		.UCODE
						;;6188	=0****00***0
						;;6189	DFN:	FE_AR0-8,AR0-8_#,#/0,		;SAVE LOW EXP, CLR SO CAN 
						;;6190			ARX_0S,J/DFN1		; DETECT FRACTION = 0
						;;6191	UFA:	FE_EXP,SC/SCAD,EXP_SIGN,ARX_0S
						;;6192	=
						;;6193	=000	BR_AR LONG,AR_AC0,CALL,J/EXPD
						;;6194	=100	ARX_AR,AR_SIGN,ARL/AD,		;READY TO UNNORMALIZE SMALLER OP
						;;6195			CALL.M,J/SHIFT
						;;6196		AR_SIGN,ARX/AD			;LOST SMALLER OP, USE ITS SIGN
						;;6197		AR_AR+BR,SKP AD NE,		;IS RESULT SIGNIFICANT?
						;;6198			SC_FE,I FETCH
						;;6199	=
						;;6200	=0	AC1_AR,J/FINI			;NO, CLEAR RESULT AC
						;;6201		SKP EXP NE,BR/AR		;IS RIGHT SHIFT REQ'D?
						;;6202	=0	SKP AR0,FETCH WAIT,J/UFA4	;NO, IS RESULT NEG?
						;;6203		AR_BR*.5,GEN FE-#,#/377,SKP SCAD NE,FETCH WAIT
						;;6204	=0	FE_-1,SET FLOV
						;;6205		FE_FE+1,SC/SCAD,SKP AR0
						;;6206	=0
						;;6207	UFA4:	AR0-8_SC,J/STAC1		;POS, PUT IN EXP STRAIGHT
						;;6208		AR0-8_-SC-1,J/STAC1		;NEG, USE COMPLEMENT OF EXP
						;;6209	
						;;6210	
						;;6211	DFN1:	AR_-AR,SKP CRY0			; LOW FRACTION =0?
						;;6212	=0	AR0-8_FE,STORE,			;STORE LOW WORD BACK TO MEM
						;;6213			ARX_AC0 COMP,J/STMAC	; GET COMPLEMENTED HIGH WORD
						;;6214		AR0-8_FE,STORE,			;LOW WORD WAS ZERO, INSTALL EXP
						;;6215			ARX_-AC0,J/STMAC	; GET NEGATED HIGH WORD
						; 6216	.ENDIF/FPLONG
						; 6217	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 8
; FP.MIC[4,30]	17:13 9-Aug-84				UFA, DFN, FSC, IBP					

						; 6218		.DCODE
D 0132, 0101,1413				; 6219	132:	I,	FL-AC,	J/FSC
D 0133, 4600,1412				; 6220		R,	B/6,	J/IBP		;ADJBP IF AC .NE. 0
						; 6221		.UCODE
						; 6222	=0****00***0
						; 6223	.IF/ADJBP
						; 6224	.IF/OWGBP
U 1412, 2242,4001,0000,0000,0000,5010,0000	; 6225	IBP:	SKP PC SEC0,J/IBP0		;[251] CAN IT BE A OWGBP ?
						;;6226	.IFNOT/OWGBP
						;;6227	IBP:	SKP AC#0,J/IBP1			;IS IT IBP, OR ADJBP?
						; 6228	.ENDIF/OWGBP
						;;6229	.IFNOT/ADJBP
						;;6230	IBP:	J/IBP2
						; 6231	.ENDIF/ADJBP
						; 6232	
						; 6233	
						; 6234	;FSC
						; 6235	;ENTER WITH E IN AR
						; 6236	=0****00****
						; 6237	FSC:	SC_EA,ARX+MQ_0.M,
U 1413, 1724,3200,2000,0002,0021,0013,0142	; 6238			AR_AC0,ARL/AD
U 1724, 1242,4001,0000,2201,1000,0022,0200	; 6239	=	FE_EXP+SC,EXP_SIGN,J/SNR2	;NORMALIZE SCALED RESULT
						; 6240	
						; 6241	.IF/OWGBP
						; 6242	=0
U 2242, 2250,0001,0000,5132,0020,5110,0045	; 6243	IBP0:	SC_P-#,#/45,SKP SCAD0,J/IBP3	;TREAT THIS AS A OWGBP ?
U 2243, 1720,4001,0000,0000,0000,4610,0000	; 6244		SKP AC#0,J/IBP1			;IS IT IBP, OR ADJBP?
						; 6245	=0
U 2250, 2462,0001,0040,0000,0000,4610,0000	; 6246	IBP3:	BR/AR,SKP AC#0,J/GIBP		;YES, CHECK FOR ADJBP
U 2251, 1720,4001,0000,0000,0000,4610,0000	; 6247		SKP AC#0,J/IBP1			;NO, TREAT AS BEFORE, ADJBP?
						; 6248	.ENDIF/OWGBP
						; 6249	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 9
; FP.MIC[4,30]	17:13 9-Aug-84				FIX, FIXR, FLTR, EXTEND					

						; 6250	.TOC	"FIX, FIXR, FLTR, EXTEND"
						; 6251	
						; 6252		.DCODE
D 0122, 4001,1416				; 6253	122:	R,		J/FIX		;UNROUNDED
D 0123, 4000,1417				; 6254		R,		J/EXTEND	;EXTENDED INSTRUCTION SET
						; 6255	
D 0126, 4001,1415				; 6256	126:	R,		J/FIXR		;ROUNDED
D 0127, 4101,1414				; 6257		R,	FL-AC,	J/FLTR
						; 6258		.UCODE
						; 6259	;FLTR
						; 6260	;ENTER WITH (E) IN AR
						; 6261	=0****00***0
						; 6262	FLTR:	FE_#,#/277,ARX_AR,SKP AR0,	;BINARY POINT TO RIGHT OF ARX
U 1414, 1240,5401,2400,0301,1020,4516,0277	; 6263			AR_SIGN,J/SNORM		; SIGN EXTENDED.  GO NORMALIZE
						; 6264	
						; 6265	;FIX AND FIXR
						; 6266	;ENTER WITH (E) IN AR
						; 6267	;	FIX AND FIXR DIFFER ONLY IN THE ROUNDING CRITERION:
						; 6268	;FIXR ADDS 1 TO THE INTEGER PART IF THE FRACTION PART IS ONE-HALF
						; 6269	;OR GREATER.  FIX DROPS THE FRACTION PART OF POSITIVE NUMBERS, BUT ADDS
						; 6270	;1 TO THE INTEGER PART OF NEGATIVE NUMBERS IF THE FRACTION PART IS NOT
						; 6271	;ALL ZERO.
						; 6272	;	THIS IS IMPLEMENTED BY CHOOSING A FRACTION (THE ROUNDING
						; 6273	;CONSTANT) TO ADD TO THE INPUT, SUCH THAT A CARRY WILL OCCUR INTO THE
						; 6274	;INTEGER PART UNDER THE APPROPRIATE CONDITIONS.  FOR FIXR, THE ROUNDING
						; 6275	;CONSTANT IS EXACTLY ONE-HALF.  FOR FIX, IT IS ZERO ON POSITIVE INPUT,
						; 6276	;OR THE LARGEST POSSIBLE FRACTION (ALL 1S) ON NEGATIVE INPUT.
						; 6277	
						; 6278	=0****00****
						; 6279	FIXR:	FE_EXP-#,#/244,SKP SCAD0,	;GET BINARY POINT POSITION
U 1415, 2252,4041,0700,5231,0020,5110,0244	; 6280			ARX_1B1,J/FIX1		;GET ROUNDING CONSTANT
						; 6281	=
						; 6282	=0****00***0
						; 6283	FIX:	FE_EXP-#,#/244,SKP SCAD0,	;GET BINARY POINT POSITION
U 1416, 2252,5441,0200,5231,0020,5116,0244	; 6284			ARX_AR SIGN,J/FIX1	;SET ROUNDING CONSTANT, GO FIX
						; 6285	
						; 6286	.IF/EXTEND
						;;6287	.IFNOT/XADDR
						;;6288	.IF/MODEL.B				;[246]
						;;6289	EXTEND:	FE_#+AR0-8,#/-32,SKP SCAD0,	;VALID EXTENDED OPERATION?
						;;6290			ARX_AR,AR_BRX,J/EXT1	; OPR TO ARX, AC TO AR
						;;6291	.IFNOT/MODEL.B
						;;6292	EXTEND:	FE_#+AR0-8,#/-20,SKP SCAD0,	;[246] VALID EXTENDED OPERATION?
						;;6293			ARX_AR,AR_BRX,J/EXT1	;[246] OPR TO ARX, AC TO AR
						;;6294	.ENDIF/MODEL.B				;[246]
						; 6295	.IF/XADDR
						; 6296	EXTEND:	SC_#+AR0-8,#/-32,SKP SCAD0,	;VALID EXTENDED OPERATION?
U 1417, 2634,3202,2400,2322,1020,5110,0746	; 6297			ARX_AR,AR_BR,J/EXTF1	; OPR TO ARX, AC TO AR
						; 6298	.ENDIF/XADDR
						;;6299	.IFNOT/EXTEND
						;;6300	EXTEND:	AR_BR,J/UUO
						; 6301	.ENDIF/EXTEND
						; 6302	=
						; 6303	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 10
; FP.MIC[4,30]	17:13 9-Aug-84				FIX, FIXR, FLTR, EXTEND					

						; 6304	;HERE FOR FIX.  CONVERT FLOATING TO INTEGER
						; 6305	
						; 6306	=0
U 2252, 0066,4001,0000,0000,0000,1110,0420	; 6307	FIX1:	SET AROV,J/IFNOP		;CAN'T DO IT, GIVE UP
U 2253, 1726,3721,0540,0000,0000,0410,0000	; 6308		BR/AR,CLR AR,ARX_ARX*2		;ROUNDING CONSTANT READY IN ARX
						; 6309		BR_AR LONG,AR_BR,CLR ARX,	;MANTISSA TO AR LONG
U 1726, 1731,3242,2060,0302,0000,0510,0011	; 6310			SC_#,#/9.		;READY TO SHIFT OFF EXPONENT
						; 6311		ARX_SHIFT,AR_SIGN,		;MANTISSA LEFT ALIGNED IN ARX
U 1731, 2270,5441,2400,2032,0020,5116,0044	; 6312			SC_FE+#,#/36.,SKP SCAD0	;ANY INTEGER BITS?
						; 6313	=0	MQ_SHIFT,			;YES, PUT THEM IN MQ
						; 6314			AR_ARX (ADX),CLR ARX,	;SHIFT MANTISSA LEFT 36 PLACES
U 2270, 1735,3701,6010,0000,0217,0510,0000	; 6315			I FETCH,J/FIX2		;AND PREFETCH NEXT
U 2271, 0074,3401,2000,0000,0217,0010,0000	; 6316		AR_0S,I FETCH,J/STORAC		;ALL SIGNIFICANCE LOST
U 1735, 1742,3723,2400,0000,0000,0010,0000	; 6317	FIX2:	ARX_SHIFT,AR_MQ			;INTEGER IN AR, FRACTION IN ARX
U 1742, 0065,0602,2000,0000,0020,0027,0000	; 6318		AR_AR+BR,AD LONG,J/STAC		;ROUND AND STORE
						; 6319	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 11
; FP.MIC[4,30]	17:13 9-Aug-84				SINGLE PRECISION FLOATING NORMALIZATION			

						; 6320	.TOC	"SINGLE PRECISION FLOATING NORMALIZATION"
						; 6321	
						; 6322	;HERE TO NORMALIZE SINGLE PRECISION RESULTS
						; 6323	;SR2-3 TELL HOW TO STORE RESULTS:
						; 6324	;XX00 ... ROUND, SINGLE PRECISION
						; 6325	;XX01 ... TRUNCATE, SINGLE PRECISION
						; 6326	;XX10 ... LONG MODE (IMPLIES TRUNCATION)
						; 6327	;IN ADDITION, THIS CODE SETS SR 1 IF ANSWER IS NEGATIVE, SO X1YZ
						; 6328	; CORRESPONDS TO X0YZ EXCEPT THAT THE RESULT MUST BE NEGATED.
						; 6329	
						; 6330	;DISPATCH TO SNORM WITH "DISP/NORM,AR/AD*.25"
						; 6331	; THUS THE 8 POSSIBILITIES ARE:
						; 6332	;SNORM		AD=0	AR=0	EITHER ANSWER IS ZERO, OR MSB IS IN ARX
						; 6333	;SNORM+1	AD0	AR NEG	RESULT IS NEG.  MAKE POS, TRY AGAIN
						; 6334	;SNORM+2	AD1-6	AR3-8	MSB TOO FAR LEFT, SHIFT RIGHT & RETRY
						; 6335	;SNORM+3	AD7	AR9	RESULT IS CORRECTLY NORMALIZED
						; 6336	;SNORM+4	AD8	AR10	SHIFT LEFT ONCE FOR NORMALIZATION
						; 6337	;SNORM+5	AD9	AR11	SHIFT LEFT 2 PLACES
						; 6338	;SNORM+6	AD10	AR12	SHIFT LEFT THRICE
						; 6339	;SNORM+7	AD11-35	AR13-35	SHIFT LEFT A LOT, TRY AGAIN
						; 6340	
						; 6341	=000
						; 6342	SNORM:	AR_ARX,ARL/SH,SKP ARX NE,	;AR IS ZERO, GET ARX
U 1240, 2300,3713,4000,0000,2041,5410,0044	; 6343			ARX_0.M,J/SNZERO
U 1241, 1240,5143,7700,0000,0060,1635,0064	; 6344		NORM -AR,SET SR1,J/SNORM	;REMEMBER NEGATIVE, GO POSITIVE
						; 6345	SNR2:	AR_AR*.25 LONG,FE_FE+#,#/2,	;SHIFT RIGHT,
U 1242, 1240,3701,7700,2031,0040,0035,0002	; 6346			NORM,J/SNORM		;TRY AGAIN
U 1243, 0024,0001,0000,0000,0000,0005,0000	; 6347		SR DISP,J/SROUND		;AD7 -> AR9, IS ROUND REQ'D?
						; 6348		AR_AR*2 LONG,FE_FE-1,		;AD8 -> AR10, ONCE LEFT AND DONE
U 1244, 0024,3701,5500,3001,0000,0005,0000	; 6349			SR DISP,J/SROUND
						; 6350		AR_AR*4 LONG,FE_FE-#,#/2,	;AD9 -> AR11
U 1245, 0024,3243,2600,5031,0000,0005,0002	; 6351			SR DISP,J/SROUND
						; 6352		AR_AR*8 LONG,FE_FE-#,#/3,	;AD10 -> AR12
U 1246, 0024,3243,5500,5031,0000,0005,0003	; 6353			SR DISP,J/SROUND
						;;6354	.IFNOT/SNORM.OPT
						;;6355		SKP AR NE,INH CRY18,SC_#,#/7	;LOOK FOR AR13-17
						;;6356	=0	SC_#,#/13.			;LH IS 0.  SHIFT FARTHER
						;;6357		MQ_SHIFT,AR_ARX (ADX),CLR ARX,	;HIGH TO MQ, GET READY FOR LOW
						;;6358			FE_FE-SC		; ADJUST EXPONENT
						;;6359		ARX_SHIFT,AR_MQ,J/SNR2		;FRACTION REPOSITIONED. GO AGAIN
						;;6360	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 12
; FP.MIC[4,30]	17:13 9-Aug-84				SINGLE PRECISION FLOATING NORMALIZATION			

						;;6361	;HERE IS THE FASTER VERSION OF LONG NORMALIZATION SHIFTS,
						;;6362	; WHICH TAKES FOUR WORDS MORE BUT IS A BIT QUICKER IN THE
						;;6363	; INTERMEDIATE NORMALIZATION CASES.
						;;6364	
						; 6365	.IF/SNORM.OPT
						; 6366		ADA EN/0S,ADB/AR*4,AD/ANDCA,	;GENERATE AR*4
						; 6367			AR/AD*2,ARX/ADX*2,	; AR_AR*8 LONG
						; 6368			SC_#,#/12.,		;READY TO SHIFT FARTHER
U 1247, 2272,3063,5500,0302,0020,5417,0014	; 6369			GEN CRY18,SKP CRY0	; TEST AR0-19 FOR ZERO
						; 6370	
						; 6371	=0	AR_AR*8 LONG,BR_AR LONG,	;IT WAS IN AR13-19
U 2272, 1264,3243,5560,5031,0040,0035,0006	; 6372			FE_FE-#,#/6,NORM,J/SN1	; NOW IN AR10-16, AD8-14
						; 6373		MQ_SHIFT,AR_ARX (ADX),		;13-19=0, SHIFT TO TRY 20-35
U 2273, 1751,3721,6010,0302,0000,0510,0012	; 6374			CLR ARX,SC_#,#/10.
						; 6375		ARX_SHIFT,AR_MQ*.25,		;REPOSITION FRACTION IN AR LONG
						; 6376			FE_FE-#,#/13.,		;COMPENSATE EXPONENT
U 1751, 1240,3721,7400,5031,0040,0035,0015	; 6377			NORM,J/SNORM
						; 6378	=100
						; 6379	SN1:	AR_BR*2 LONG,FE_FE+#,#/2,	;MSB IN AD8, SO IN BR10
U 1264, 0024,3241,2600,2031,0000,0005,0002	; 6380			SR DISP,J/SROUND
						; 6381		AR_BR*4 LONG,FE_FE+1,		;MSB IN AD9, THUS IN BR11
U 1265, 0024,3241,5500,4001,0000,0005,0000	; 6382			SR DISP,J/SROUND
U 1266, 0024,0001,0000,0000,0000,0005,0000	; 6383		SR DISP,J/SROUND		;AD10 -> AR9, A LUCKY GUESS
						; 6384		AR_AR*8 LONG,BR_AR LONG,	;TRY SHIFTING 3 MORE
U 1267, 1264,3243,5560,5031,0040,0035,0003	; 6385			FE_FE-#,#/3,NORM,J/SN1
						; 6386	.ENDIF/SNORM.OPT
						; 6387	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 13
; FP.MIC[4,30]	17:13 9-Aug-84				SINGLE PRECISION FLOATING NORMALIZATION			

						; 6388	;HERE WHEN AD ENTIRELY ZERO ON NORMALIZE ATTEMPT.  SKIP IF ARX
						; 6389	; IS NOT ZERO, HAVING COPIED IT TO AR (IE, LEFT SHIFT 36 PLACES).
						; 6390	; OTHERWISE, THE ENTIRE RESULT IS ZERO, SO WE STORE THAT.
						; 6391	=0
						; 6392	SNZERO:	CLR FE,AR+ARX+MQ_0.M,		;RESULT = 0
U 2300, 0151,4001,0000,0401,0001,0005,0170	; 6393			SR DISP,J/SRND5
						; 6394		AR_AR*.25 LONG,FE_FE-#,#/34.,	;HAVE MOVED LEFT 36, GO RIGHT 2
U 2301, 1240,3701,7700,5031,0040,0035,0042	; 6395			NORM,J/SNORM		;AND TRY THAT
						; 6396	
						; 6397	
						; 6398	;WE GET HERE WITH A NORMALIZED POSITIVE FRACTION IN AR'ARX,
						; 6399	; THE CORRECTED EXPONENT IN FE, AND SR INDICATES THE PROPER SIGN
						; 6400	; FOR THE RESULT AND WHETHER THE ANSWER SHOULD BE ROUNDED,
						; 6401	; TRUNCATED, OR LONG.
						; 6402	
						;;6403	.IF/FPLONG
						;;6404	=100
						; 6405	.IFNOT/FPLONG
						; 6406	=1*0
						; 6407	.ENDIF/FPLONG
U 0024, 0135,3401,2060,0000,0000,0010,0000	; 6408	SROUND:	BR_AR LONG,AR_0S,J/SRND2	;PREPARE TO ROUND BY ADDING THE
						; 6409						; PART OF THE FRACTION WE WILL
						; 6410						; DISCARD (CARRY IF ARX0)
						; 6411		BR_AR LONG,CLR AR,ARX_1S,	;TRUNCATE MODE
U 0025, 0131,2341,0260,0000,0000,0405,0000	; 6412			SR DISP,J/STRNC		; HANDLING DEPENDS ON SIGN
						;;6413	.IF/FPLONG
						;;6414		BR_AR LONG,CLR AR,ARX_1S,	;LONG MODE
						;;6415			SC_#,#/9.
						;;6416	=	ARX_SHIFT,SR DISP		;MASK = 0,,000777 TO ARX
						;;6417	=01*
						;;6418		BR_AR LONG,AR_BR LONG,J/SRND4	;POS, TRUNCATE BY ANDING
						;;6419		AR_AR+BR,ARX/ADX,BR_AR LONG,	;NEG, MUST DIDDLE
						;;6420			NORM,J/SRND3		; NORM FORCES LONG ARITH
						; 6421	.ENDIF/FPLONG
						; 6422	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 14
; FP.MIC[4,30]	17:13 9-Aug-84				SINGLE PRECISION FLOATING NORMALIZATION			

						; 6423	;HERE TO PERFORM ROUNDING OR TRUNCATION OF SINGLE-PRECISION RESULTS,
						; 6424	; AND CHECK FOR CARRY INTO EXPONENT FIELD REQUIRING RENORMALIZATION
						; 6425	
						; 6426	=0*1
U 0131, 0035,3242,2000,0000,0000,0510,0000	; 6427	STRNC:	AR_BR,CLR ARX,J/SRND4		;POS TRUNCATE, GO STUFF IN EXP
U 0135, 0034,0602,2000,0000,0060,0535,0000	; 6428	SRND2:	AR_AR+BR,NORM,CLR ARX		;NORM FORCES LONG ARITH
						; 6429						; SO THIS ADDS ARX TO BR'BRX
						; 6430	=1*0
U 0034, 0035,0303,7000,4001,0020,0010,0000	; 6431	SRND3:	AR_AR*.5,FE_FE+1		;RENORMALIZE
						; 6432	SRND4:	EXP_FE TST,SR DISP,		;STUFF EXP, CHECK NEG OR LONG
U 0035, 0151,3502,0600,0000,2000,0705,0410	; 6433			ARX_ARX*BRX,AD/ANDCB	;CLEAR TRUNCATED FRACTION
						; 6434	
						; 6435	;HERE TO STORE RESULT AS A FUNCTION OF SINGLE OR LONG PRECISION
						; 6436	; AND POSITIVE OR NEGATIVE...
						;;6437	.IF/FPLONG
						;;6438	=001
						; 6439	.IFNOT/FPLONG
						; 6440	=0*1
						; 6441	.ENDIF/FPLONG
U 0151, 0066,4001,0000,0000,0005,1633,0000	; 6442	SRND5:	SR_0,B WRITE,J/ST6		;POS & NOT LONG
						;;6443	.IF/FPLONG
						;;6444	SLNG3:	AC0_AR,AR_0S,SC_#,#/27.,J/SLNG4	;STORE HIGH PART OF LONG ANS
						; 6445	.ENDIF/FPLONG
U 0155, 0066,5143,7000,0000,0025,1633,0000	; 6446		AR_-AR,SR_0,B WRITE,J/ST6	;NEG & NOT LONG
						;;6447	.IF/FPLONG
						;;6448		AR_-AR LONG,J/SLNG3		;LONG NEG, MAKE IT SO
						;;6449	
						;;6450	SLNG4:	AR_SHIFT,I FETCH
						;;6451		AR0-8_FE-SC,BYTE DISP,		;TEST FOR EXP UNDERFLOW
						;;6452			SKP AR EQ		; OR LOW WORD ZERO
						;;6453	
						;;6454	=110
						; 6455	.ENDIF/FPLONG
U 1753, 0136,4001,0000,0000,0000,1610,0000	; 6456	STRAC1:	SR_0,J/STAC1			;PUT AWAY LOW WORD OF LONG RESULT
						;;6457	.IF/FPLONG
						;;6458		AR_0S,SR_0,J/STAC1		;CLEAR LOW WORD IN AC1
						; 6459	.ENDIF/FPLONG
						; 6460	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 15
; FP.MIC[4,30]	17:13 9-Aug-84				DOUBLE FLOATING ARITHMETIC -- DFAD, DFSB, DFMP, DFDV

						; 6461	.TOC	"DOUBLE FLOATING ARITHMETIC -- DFAD, DFSB, DFMP, DFDV"
						; 6462	
						; 6463		.DCODE
D 0110, 4001,1500				; 6464	110:	R,	B/0,	J/DFLOAT	;DFAD
D 0111, 4200,1500				; 6465		R,	B/2,	J/DFLOAT	;DFSB
D 0112, 4400,1500				; 6466		R,	B/4,	J/DFLOAT	;DFMP
D 0113, 4601,1500				; 6467		R,	B/6,	J/DFLOAT	;DFDV
						; 6468		.UCODE
						; 6469	
						; 6470	=0****00**0*
						; 6471	DFLOAT:	FE_EXP,EXP_SIGN,SC/SCAD,MQ_0.S,
						; 6472			VMA_VMA+1,LOAD ARX,
U 1500, 1023,0001,0000,0203,1013,3662,0300	; 6473			CALL.S,J/XFERW		;GET LOW WORD
U 1502, 0370,3701,0500,0000,0000,0033,0000	; 6474		ARX_ARX*2,B DISP		;LOW BIT 0 IGNORED
						; 6475	=
						; 6476	=00*
U 0370, 0240,3240,5061,0000,0020,0010,0000	; 6477	DFAS:	BR_AR LONG,AR_AC1*2,J/DFAS1	;MEM OP READY, GET AC OP
						; 6478	
U 0372, 0370,5163,7700,0000,0020,0027,0000	; 6479		AR_-AR LONG,J/DFAS		;DFSB, NEGATE AND ADD
						; 6480	
						; 6481	.IF/MODEL.B
						; 6482		BR_AR LONG,GEN ARX,SKP AD NE,	;[241]HERE FOR DOUBLE FLT MUL
U 0374, 2316,3711,0060,0301,0020,5610,0756	; 6483			FE_#,#/-18.,J/DFMP	;[241]BEGIN TEST FOR STICKY BIT
						;;6484	.IFNOT/MODEL.B
						;;6485		AR_AC1,BR_AR LONG,		;HERE FOR DBL FLOATING MUL
						;;6486			FE_#,#/-18.,J/DFMP
						; 6487	.ENDIF/MODEL.B
						; 6488	
						; 6489		GEN AR*AC0,AD/XOR,SKP AD0,	;DFDV.  WILL QUO BE NEG?
						; 6490			BR_AR LONG,		;SAVE D'SOR IN BR, BRX
U 0376, 1340,3100,0060,3022,0020,5510,0000	; 6491			SC_FE-1,J/DFDV
						; 6492	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 16
; FP.MIC[4,30]	17:13 9-Aug-84				DOUBLE FLOATING ARITHMETIC -- DFAD, DFSB, DFMP, DFDV

						; 6493	;HERE FOR DFAD AND DFSB
						; 6494	; MEM OPERAND IS IN BR (NEGATED IF DFSB)
						; 6495	; FE AND SC HAVE ITS EXPONENT
						; 6496	
						; 6497	=0*0
U 0240, 2036,3240,2400,0000,1020,0050,0000	; 6498	DFAS1:	ARX_AR,AR_AC0,CALL,J/EXPD	;AC OPERAND IN PLACE
						; 6499	=1*0
						; 6500	DFAS2:	ARX_AR,AR_SIGN,			;GET SHIFTED HIGH WORD
						; 6501			GEN #+SC,#/-36.,	;IS ANY SHIFT REQUIRED?
U 0244, 2310,5401,2400,2300,1020,5116,0734	; 6502			SKP SCAD0,J/DFAS3
						; 6503		ARX_AR,AR_SIGN,			;DIFF IS > 36
U 0245, 2302,5441,2400,2302,1020,5116,0044	; 6504			SC_#+SC,#/36.,SKP SCAD0	;CHECK FOR >72
						; 6505	.IF/MODEL.B
						; 6506	=0	AC0_AR,MQ_SHIFT,AR_ARX (ADX),
U 2302, 2015,3701,6310,0000,0000,1010,0000	; 6507			ARX/MQ,J/DFAS6		;[241]36 < DIFF < 72
						;;6508	.IFNOT/MODEL.B
						;;6509	=0	AC0_AR,MQ_SHIFT,AR_ARX (ADX),
						;;6510			ARX/MQ,J/DFAS4		;36 < DIFF < 72
						; 6511	.ENDIF/MODEL.B
						; 6512		AR_BR,ARL/AD,ARX_BRX,		;DIFF >72
U 2303, 1326,3202,2600,0000,0001,0010,0102	; 6513			MQ_0.M,J/DNTRY		;NORMALIZE LARGER OP
						; 6514	=0
						; 6515	DFAS3:	AR_ARX,ARL/SH,ARX/MQ,		;NO SHIFT REQUIRED
U 2310, 2002,0001,4300,0000,2001,0010,0104	; 6516			MQ_0.M,J/DFAS5
U 2311, 1761,4001,4000,0000,0000,0010,0000	; 6517		AR_SHIFT			;BEGIN SHIFTING SMALLER OP
U 1761, 1772,0001,4300,0000,2000,1010,0000	; 6518		AC0_AR,AR_ARX,ARX/MQ		;HI PART TO AC
						; 6519		MQ_SHIFT,AR_ARX (ADX),		;MID PART TO MQ
U 1772, 1776,3701,6010,0000,0000,0510,0000	; 6520			CLR ARX			;SHIFT ZEROS IN FROM RIGHT
U 1776, 2002,3200,2310,0000,0020,0010,0000	; 6521	DFAS4:	MQ_SHIFT,ARX/MQ,AR_AC0		;ALL PIECES NOW IN PLACE
						; 6522	DFAS5:	AR_AR+BR,ARX/ADX,SC_#,#/4,	;HERE WHEN OPERANDS ALIGNED
U 2002, 1360,0602,2600,0302,0060,0035,0004	; 6523			NORM,J/DNORM		;ADD, AND NORMALIZE RESULT
						; 6524	.IF/MODEL.B
U 2015, 2022,3721,2010,0000,0000,0010,0000	; 6525	DFAS6:	MQ_SHIFT,AR_MQ			;[241]GET H,L, PUT S,H IN AR
U 2022, 2026,3441,4201,0000,2000,1010,0000	; 6526		AC1_AR,AR_ARX,ARX_0S		;[241]STORE S,H
U 2026, 2031,3240,4201,0000,0020,0010,0000	; 6527		ARX_AC1,AR_SHIFT		;[241]GET L,0, GET S,H BACK
U 2031, 2312,3701,0000,0000,0020,5610,0000	; 6528		GEN AR,SKP AD NE		;[241]TEST FOR 0'S,
U 2312, 2002,3240,2000,0000,0020,1610,0040	; 6529	=0	CLR SR3,AR_AC0,J/DFAS5		;[241]DO 2'S COMP, ALL IN PLACE
U 2313, 2002,3240,2000,0000,0020,1610,0061	; 6530		SET SR3,AR_AC0,J/DFAS5		;[241]DO 1'S COMP, ALL IN PLACE
						; 6531	.ENDIF/MODEL.B
						; 6532	
						; 6533	;SUBROUTINE TO CHOOSE OPERAND WITH SMALLER EXPONENT, AND
						; 6534	; PREPARE FOR SHIFTING IT.
						; 6535	; ENTER WITH ONE OPERAND FRACTION IN BR, ITS EXPONENT IN FE & SC,
						; 6536	; THE OTHER OP IN AR WITH ITS EXPONENT IN AR0-8
						; 6537	; RETURN THE LARGER EXPONENT IN FE, AND 36-(MAGNITUDE OF DIFFERENCE)
						; 6538	; IN SC.  RETURN 4 IF SC POSITIVE, 5 IF NEGATIVE.
						; 6539	
U 2036, 2314,4001,0000,5202,1020,5122,0200	; 6540	EXPD:	SC_EXP-SC,EXP_SIGN,SKP SCAD0	;COMPARE MAGNITUDES
						; 6541	=0	AR_BR,ARX_BRX,BR/AR,BRX/ARX,	;AC OP IS LARGER MAGNITUDE
U 2314, 2062,3242,2660,2001,0000,0010,0000	; 6542			FE_FE+SC,J/EXPD1	;ITS EXP TO FE
						; 6543		MQ_ARX,SC_#+SC,#/36.,		;CHECK FOR EXP DIFF > 36
U 2315, 0004,4001,0010,2302,2020,5103,0044	; 6544			SKP SCAD0,RETURN4
						; 6545	EXPD1:	MQ_ARX,SC_#-SC,#/36.,		;AC EXP .GE. MEM
U 2062, 0004,0001,0010,5302,2020,5103,0044	; 6546			SKP SCAD0,RETURN4	;SHIFT MEM OP
						; 6547	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 17
; FP.MIC[4,30]	17:13 9-Aug-84				DOUBLE FLOATING ARITHMETIC -- DFAD, DFSB, DFMP, DFDV

						; 6548	;DFMP
						; 6549	; DO TESTS FOR STICKY BITS FIRST THEN
						; 6550	; GET HERE WITH MEM OPERAND (M'CAND) IN BR!BRX
						; 6551	; AR HAS (AC1), LOW HALF OF M'IER
						; 6552	
						; 6553	.IF/MODEL.B
						; 6554	=0
U 2316, 0430,3240,2001,0000,0020,0010,0000	; 6555	DFMP:	AR_AC1,J/DFMP1			;NO STICKY BIT
U 2317, 2320,3200,2001,0000,0020,5610,0000	; 6556		AR_AC1,SKP AD NE		;GET AC LOW AND TEST
U 2320, 0430,0001,0000,0000,0000,0010,0000	; 6557	=0	J/DFMP1				;NO STICKY BIT
U 2321, 0430,0001,0000,0000,0000,1610,0061	; 6558		SET SR3				;WORRY ABOUT IT IN NORM
						; 6559	=00*
						; 6560	DFMP1:	MQ_AR,AR_0S,ARX_0S,		;SETUP LOW M'IER
						; 6561			SC_#+SC,#/-200,		;CORRECT EXPONENT
U 0430, 1546,3441,2210,2302,1000,0050,0600	; 6562			CALL,J/MULREE		;MULTIPLY BY THE LOW PART
						;;6563	.IFNOT/MODEL.B
						;;6564	=00*
						;;6565	DFMP:	MQ_AR,AR_0S,ARX_0S,		;SETUP LOW M'IER
						;;6566			SC_#+SC,#/-200,		;CORRECT EXPONENT
						;;6567			CALL,J/MULREE		;MULTIPLY BY THE LOW PART
						; 6568	.ENDIF/MODEL.B
U 0434, 0436,0602,2604,0000,0020,0027,0000	; 6569	=10*	AR_AR+BR LONG			;OOPS, LOW SIGN WAS SET
U 0436, 2072,3240,2010,0301,1020,0010,0762	; 6570		MQ_AR,AR_AC0,FE_#,#/-14.	;READY TO CONTINUE WITH HIGH PART
						; 6571	
						; 6572	;HERE TO USE HIGH MULTIPLIER
						; 6573	
						; 6574		SC_EXP+SC,EXP_SIGN.M,		;EXTRACT EXP FROM HIGH WORD
U 2072, 1322,4001,0000,2202,1001,4510,0200	; 6575			SKP AR0			;CHECK FOR NEG M'IER
						; 6576	=010
U 1322, 1546,3723,2010,0000,1000,0050,0000	; 6577	DFMP2:	MQ_AR,AR_MQ,CALL,J/MULREE	;GO BACK IN FOR HIGH PART
U 1323, 1322,4001,0000,4400,2001,0010,0200	; 6578		EXP_1,J/DFMP2			;OOPS, NEG, MOVE SIGN TO BIT 8
						; 6579	=110
U 1326, 1360,3703,0000,0302,0040,0035,0004	; 6580	DNTRY:	SC_#,#/4,GEN AR,NORM,J/DNORM	;NORMALIZE THE ANSWER
						; 6581	=
						; 6582	
						; 6583	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 18
; FP.MIC[4,30]	17:13 9-Aug-84				DOUBLE FLOATING ARITHMETIC -- DFAD, DFSB, DFMP, DFDV

						; 6584	
						; 6585	;DFDV
						; 6586	; GET HERE WITH DIVISOR IN BR!BRX, ITS EXP-1 IN SC
						; 6587	; SKIP IF D'SOR AND D'END SIGNS DIFFER
						; 6588	
						; 6589	=000
U 1340, 0330,3200,5001,0000,0020,0050,0000	; 6590	DFDV:	AR_AC1*2,CALL,J/DFDV1		;GET LOW D'END, GO START DIVIDE
						; 6591	.IF/MODEL.B
U 1341, 0330,3200,5001,0000,0020,1650,0062	; 6592		SET SR2,AR_AC1*2,CALL,J/DFDV1	;NOTE NEG QUO
						;;6593	.IFNOT/MODEL.B
						;;6594		SR_1,AR_AC1*2,CALL,J/DFDV1	;NOTE NEG QUO
						; 6595	.ENDIF/MODEL.B
						; 6596	
						; 6597	=011	AC1_AR,AR_MQ,ARL/AD,FE_FE+1,	;HERE FROM DDVSUB. NEW STEP CNT
U 1343, 0463,3723,2001,4001,0001,1050,0102	; 6598			MQ_0.M,CALL.M,J/DIV+	; SAVE HIGH QUO, RESUME
						; 6599	=101	AC1_AR,AR_MQ,ARL/AD,FE_FE+1,
U 1345, 0462,3721,2001,4001,0001,1050,0102	; 6600			MQ_0.M,CALL.M,J/DIV-
						; 6601	
						; 6602	=111	AR_AC1,ARX/MQ,SC_#,#/4,		;POSITIVE QUOTIENT TO AR LONG
U 1347, 1360,3200,2301,0302,0040,0035,0004	; 6603			NORM,J/DNORM		;NORMALIZE AND ROUND
						; 6604	
						; 6605	=00
						; 6606	DFDV1:	ARX_AR,AR_AC0,SKP AD0,		;TEST DIVIDEND SIGN
						; 6607			FE_#,#/26.,		;SETUP COUNT FOR HIGH QUO
U 0330, 2222,3200,2400,0301,1020,5550,0032	; 6608			CALL,J/FDVCHK		;GO CHECK DIVIDABILITY
U 0332, 0642,4001,0000,0000,0000,4210,0000	; 6609	=10	SKP BR0,J/DDVSUB		;BEGIN DIVISION (RETURN ABOVE)
U 0333, 0066,4001,0000,0000,0000,1110,0624	; 6610		SET FL NO DIV,J/IFNOP		;ABORT THE DIVISION
						; 6611	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 19
; FP.MIC[4,30]	17:13 9-Aug-84				DOUBLE PRECISION NORMALIZATION				

						; 6612	.TOC	"DOUBLE PRECISION NORMALIZATION"
						; 6613	
						; 6614	=000
U 1360, 2324,3723,0000,0302,0040,5427,0043	; 6615	DNORM:	SKP ARX+MQ NE,SC_#,#/35.,J/DNZERO	;AR=0
						; 6616	.IF/MODEL.B
						; 6617		BR/AR,BRX/ARX,AR_MQ COMP,	;RESULT NEG, MAKE POS
U 1361, 2154,2023,2060,0000,0000,1610,0062	; 6618			SET SR2,J/DNNEG		;[241]FLAG NEGATIVE
						;;6619	.IFNOT/MODEL.B
						;;6620		BR/AR,BRX/ARX,AR_MQ COMP,	;RESULT NEG, MAKE POS
						;;6621			SR_1,J/DNNEG		;FLAG NEGATIVE
						; 6622	.ENDIF/MODEL.B
						; 6623		AR_AR*.25 LONG,MQ_MQ*.25,
U 1362, 2167,3701,7710,2031,0000,0012,0004	; 6624			FE_FE+#,#/4,J/DNHI	;MSB IN AR 1-6
						; 6625		AR_AR*.25 LONG,
U 1363, 1365,3701,7700,2031,0000,0010,0002	; 6626			FE_FE+#,#/2,J/DROUND	;MSB IN AR7
U 1364, 1365,0301,7700,4001,0020,0027,0000	; 6627		AR_AR*.5 LONG,FE_FE+1		;MSB IN AR8
						; 6628	DROUND:	AR_AR+1,ARX/ADX,NORM,		;MSB IS AR9, RIGHT ON
U 1365, 1126,4003,2600,0302,0060,0035,0043	; 6629			SC_#,#/35.,J/DRND1
U 1366, 1365,3701,5500,3001,0000,0710,0001	; 6630		(AR+ARX+MQ)*2,FE_FE-1,J/DROUND	;MSB IN AR10
U 1367, 2103,4001,4000,5001,0000,0010,0000	; 6631		AR_SHIFT,FE_FE-SC		;SOMEWHERE IN AR 11-35
						; 6632	
U 2103, 2104,4001,4340,0000,2000,0010,0000	; 6633	DNSHFT:	BR/AR,AR_ARX,ARX/MQ		;SHIFT THE WHOLE THING
U 2104, 2152,3701,6010,0000,0000,0510,0000	; 6634		MQ_SHIFT,AR_ARX (ADX),CLR ARX
						; 6635		MQ_SHIFT,ARX/MQ,AR_BR,SC_#,#/10.,
U 2152, 1360,3202,2310,0302,0040,0035,0012	; 6636			NORM,J/DNORM		;GIVE IT ANOTHER GO
						; 6637	
						; 6638	.IF/MODEL.B
U 2154, 0336,0001,0000,0000,0000,0005,0000	; 6639	DNNEG:	SR DISP				;[241]TEST FOR 1'S COMP
U 0336, 2322,4001,2000,0000,0040,5410,0000	; 6640	=1110	AR_AR+1,SKP CRY0,J/DNNEG1	;[241]COMPLETE NEGATION OF MQ
						; 6641		MQ_AR,AR_BR COMP,ARX_BRX COMP,
U 0337, 1360,2502,2610,0000,1040,0035,0000	; 6642			NORM,J/DNORM		;NORMALIZE THE POS FORM
						; 6643	=0
						; 6644	DNNEG1:	MQ_AR,AR_BR COMP,ARX_BRX COMP,
U 2322, 1360,2502,2610,0000,1040,0035,0000	; 6645			NORM,J/DNORM		;NORMALIZE THE POS FORM
U 2323, 1360,5142,2610,0000,1060,0035,0000	; 6646		MQ_AR,AR_-BR,ARX/ADX,NORM,J/DNORM
						;;6647	.IFNOT/MODEL.B
						;;6648	DNNEG:	AR_AR+1,SKP CRY0		;COMPLETE NEGATION OF MQ
						;;6649	=0	MQ_AR,AR_BR COMP,ARX_BRX COMP,
						;;6650			NORM,J/DNORM		;NORMALIZE THE POS FORM
						;;6651		MQ_AR,AR_-BR,ARX/ADX,NORM,J/DNORM
						; 6652	.ENDIF/MODEL.B
						; 6653	
U 2167, 1326,3703,7710,0000,0000,0710,0001	; 6654	DNHI:	(AR+ARX+MQ)*.25,J/DNTRY		;GO TRY AGAIN
						; 6655	
						; 6656	=0
U 2324, 0331,3401,2200,0000,0000,1610,0000	; 6657	DNZERO:	SR_0,AR_0S,ARX_0S,J/DBLST	;RESULT = 0, STORE THAT
U 2325, 2103,4001,4000,5001,0000,0010,0000	; 6658		AR_SHIFT,FE_FE-SC,J/DNSHFT	;NOT ZERO, SHIFT AND TRY AGAIN
						; 6659	
						; 6660	=110
U 1126, 1127,0303,7700,4001,0020,0027,0000	; 6661	DRND1:	AR_AR*.5 LONG,FE_FE+1		;ROUNDING BLEW THE NORM, GO RIGHT
						; 6662		EXP_FE TST,SR DISP,CLR MQ,	;STUFF EXP IN, CHECK RESULT SIGN
U 1127, 0355,4061,0220,0000,2020,0705,0413	; 6663			BRX/ARX,ARX_1		;READY IF NEGATION NECESSARY
						; 6664	
						; 6665	.IF/MODEL.B
						; 6666	=1101					;[241]
						;;6667	.IFNOT/MODEL.B
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 19-1
; FP.MIC[4,30]	17:13 9-Aug-84				DOUBLE PRECISION NORMALIZATION				

						;;6668	=0
						; 6669	.ENDIF/MODEL.B
						; 6670		AC0_AR,AR_SHIFT,ARX_BRX,	;STORE HIGH WORD, READY LOW
U 0355, 0273,3242,4600,0000,0217,1010,0000	; 6671			I FETCH,J/STD1
U 0357, 2173,3002,0604,0000,0000,1610,0000	; 6672		ARX_ARX*BRX,AD/ANDCA,SR_0	;CLEAR ROUNDING BIT
U 2173, 0331,5163,7700,0000,0020,0027,0000	; 6673	CDBLST:	AR_-AR LONG,J/DBLST		;[345] NEGATE RESULT AND STORE
						; 6674	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 1
; EXTEXP.MIC[4,30]	17:12 9-Aug-84			GFLT DOUBLE PRECISION ARITHMETIC			

						; 6675	.TOC	"GFLT DOUBLE PRECISION ARITHMETIC"
						; 6676	
						; 6677	.IF/MODEL.B
						; 6678	.IF/EXTEXP
						; 6679	
						; 6680		.DCODE
D 0102, 4000,1501				; 6681	102:	R,	B/0,	J/EDFLOT	;EFAD
D 0103, 4201,1501				; 6682	103:	R,	B/2,	J/EDFLOT	;EFSB
D 0106, 4401,1501				; 6683	106:	R,	B/4,	J/EDFLOT	;EFMP
D 0107, 4600,1501				; 6684	107:	R,	B/6,	J/EDFLOT	;EFDV
						; 6685		.UCODE
						; 6686	
						; 6687	=0****00**0*
						; 6688	EDFLOT:	VMA_VMA+1, LOAD ARX,
U 1501, 1023,4001,0000,0000,0013,3662,0100	; 6689			MQ_0.S, CALL [XFERW]
U 1503, 1420,3701,0507,0000,0000,1033,0176	; 6690		FM[E0]_AR, ARX_ARX*2, B DISP	;mem high to E0, do instruction
						; 6691	=
						; 6692	
						; 6693	=000
U 1420, 2376,4001,0000,0000,0000,4550,0000	; 6694	EDFL1:	SKP AR0, CALL [ISOEXP]		;save mem high word in E0.
U 1421, 2326,0001,0007,0000,0000,1010,0172	; 6695		FM[T2]_AR, J/EF1		;save mem exp in T2.
U 1422, 1423,5163,7700,0000,0020,0027,0000	; 6696		AR_-AR LONG			;subtract now same as add.
U 1423, 1420,0001,0007,0000,0000,1010,0176	; 6697		FM[E0]_AR, J/EDFL1		;save "positive" exponent
U 1424, 2376,4001,0000,0000,0000,4550,0000	; 6698	=100	SKP AR0, CALL [ISOEXP]		;isolate mem exp in AR.
						; 6699		BR/AR, GEN ARX, SKP AD NE,	;start test for sticky bits.
U 1425, 2342,3711,0040,0000,0020,5610,0000	; 6700			J/EFMP
						; 6701	=110	BR/AR, GEN AR, SKP AD0, 	;save mem high in br.
U 1426, 2376,3703,0040,0000,0020,5550,0000	; 6702			CALL [ISOEXP]		;get mem exp
U 1427, 3021,3401,2007,0000,0000,1010,0172	; 6703		FM[T2]_AR, AR_0S, J/EFDV0	;save mem exp in T2. No sticky bits.
						; 6704	=0
U 2326, 2376,3200,2000,0000,0020,5550,0000	; 6705	EF1:	AR_AC0, SKP AD0, CALL [ISOEXP]	;get AC op
U 2327, 2236,4001,0047,0000,0000,1010,0165	; 6706		FM[E1]_AR, BR/AR		;save AC exp in E1
						; 6707			
						; 6708	;Now have positive mem exponent in T2, pos AC exp in E1.
						; 6709	;Save larger exp in T2 and exp diff if less than 340 in SC.
						; 6710		[AR]_[AR]*FM[T2], AD/A-B,	;AR gets exp diff.
U 2236, 0470,5100,2007,4000,0040,5510,0172	; 6711			SKP AD0			;AR get exp diff, BRX gets exp.
U 0470, 2756,4001,0000,0302,0000,0050,0003	; 6712	=00	SC_#, #/3, CALL [EXPDIF]	;test for exp diff >72.
U 0471, 0540,4001,0040,0000,0000,0010,0000	; 6713		BR/AR, J/EF3A			;mem op larger.
U 0472, 2306,3202,2000,0000,0000,0010,0000	; 6714		AR_BR, J/EF5			;restore exp to AR.
U 0473, 3031,3260,2007,0401,0020,0010,0165	; 6715		[AR]_FM[E1], CLR FE, J/ACNORM	;exp diff too large, norm AC op.
						; 6716	=00
U 0540, 2756,5162,2000,0302,0020,0050,0003	; 6717	EF3A:	AR_-BR, SC_#, #/3, CALL [EXPDIF];mem larger, get positive diff.
U 0542, 2244,3242,2000,0000,0000,0010,0000	; 6718	=10	AR_BR, J/EF3B			;restore exponent to AR.
U 0543, 3027,3240,2007,0401,0020,0010,0172	; 6719		[AR]_FM[T2], CLR FE, J/MEMNRM	;exp diff > 72. norm mem op.
U 2244, 2246,3203,5000,0000,0000,0010,0000	; 6720	EF3B:	AR_AR*8				;move exp difference into AR0-8.
						; 6721		FE_AR0-8,			;mem larger, op doable.
U 2246, 2330,3200,2000,2421,0020,0010,0000	; 6722			AR_AC0			;save smaller AC op in T0,T1
U 2330, 2755,4001,0007,0000,0000,1050,0166	; 6723	=0	FM[T0]_AR, CALL [EF5B]
U 2331, 2254,4001,0007,0000,0000,1010,0171	; 6724		FM[T1]_AR
U 2254, 2256,3260,2007,0000,0020,0010,0176	; 6725		[AR]_FM[E0]			;save larger mem op in AC0,AC1
U 2256, 2261,4001,4000,0000,2000,1010,0000	; 6726		AC0_AR, AR_ARX
U 2261, 2334,4001,0001,0000,0000,1010,0000	; 6727		AC1_AR, J/EF5A			;all set to shift and add.
						; 6728	
U 2306, 2621,3203,5000,0000,0000,0010,0000	; 6729	EF5:	AR_AR*8				;move exp difference into AR0-8.
U 2621, 2752,3240,2007,2421,0020,0010,0176	; 6730		FE_AR0-8, [AR]_FM[E0]		;smaller mem op to T0,T1
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 1-1
; EXTEXP.MIC[4,30]	17:12 9-Aug-84			GFLT DOUBLE PRECISION ARITHMETIC			

U 2752, 2332,0001,4007,0000,2000,1010,0166	; 6731		FM[T0]_AR, AR_ARX
U 2332, 2755,4001,0007,0000,0000,1050,0171	; 6732	=0	FM[T1]_AR, CALL [EF5B]
U 2333, 2753,4001,0001,0000,0000,1010,0000	; 6733		AC1_AR				;we expect AC1*2 to be saved.
U 2753, 2754,3260,2007,0000,0020,0010,0165	; 6734		[AR]_FM[E1]			;save larger AC exp in T2
U 2754, 2334,0001,0007,0000,0000,1010,0172	; 6735		FM[T2]_AR, J/EF5A
						; 6736	
U 2755, 0001,3240,5001,0000,0020,0003,0000	; 6737	EF5B:	AR_AC1*2, RETURN1
						; 6738	
						; 6739	;EXPDIF determines if the exponent difference is too large-ie >110 oct.
						; 6740	;The largest allowed value for shifting is 72 decimal. This is 110 octal.
						; 6741	;Since the exponent is in AR1-11, 110 octal has the value 11 in AR1-8.
						; 6742	;It expects the exponent difference in AR0-8.
						; 6743	;It uses AR0-8 and the BR.
						; 6744	;Returns 2 if the difference is ok (<=110).
						; 6745	;Returns 3 if the difference is too large (>110).
U 2756, 2757,0001,0040,0000,0000,0410,0000	; 6746	EXPDIF:	BR/AR, CLR AR			;zero all of those bits.
U 2757, 2760,4001,0000,0000,0000,0110,0010	; 6747		AR0-8_#, #/10			;put in 100 in AR0-11.
U 2760, 0002,5102,0004,0000,0040,5503,0000	; 6748		GEN AR-BR, SKP AD0, RETURN2	;<max diff>-<actual diff>
						; 6749	
						; 6750	;We now have:
						; 6751	; AC0	/ larger op high
						; 6752	; AC1	/ larger op low
						; 6753	; T0	/ smaller op high
						; 6754	; T1	/ smaller op low
						; 6755	; T2	/ larger exponent
						; 6756	; FE	/ exp difference
						; 6757	;We must now sign extend both high ops.
						; 6758	=0
U 2334, 2400,3200,2000,0000,0020,5550,0000	; 6759	EF5A:	AR_AC0, SKP AD0, CALL [SGNEXT]	;get larger high op
U 2335, 2336,4001,0000,0000,0000,1010,0000	; 6760		AC0_AR				;save larger extended op in AC0
						; 6761	=0	[AR]_FM[T0], SKP AD0,		;get smaller high op
U 2336, 2400,3260,2007,0000,0020,5550,0166	; 6762			CALL [SGNEXT]		; and sign extend into AR1-11.
U 2337, 2761,4001,0007,0000,0000,1010,0166	; 6763		FM[T0]_AR			;save smaller extended op in T0
						; 6764	;We are now set to shift the smaller op to align it with the larger op.
U 2761, 2762,3260,2007,0000,0020,0010,0171	; 6765		[AR]_FM[T1]
U 2762, 2763,3240,2407,0000,1020,0013,0166	; 6766		[AR]_FM[T0], ARX_AR, SC_FE	;move diff to SC for next line.
U 2763, 2340,0001,0000,5302,0020,5110,0044	; 6767		SC_#-SC, #/36., SKP SCAD0
U 2340, 2770,5441,2400,0000,1020,0016,0000	; 6768	=0	ARX_AR, AR_SIGN, J/EF10		;FE < 37.
U 2341, 2764,0001,0060,0000,0000,0013,0000	; 6769		BR/AR, BRX/ARX, SC_FE
U 2764, 2765,5401,2400,0000,1020,0016,0000	; 6770		AR_SIGN, ARX_AR
U 2765, 2766,0001,0000,5302,0000,0010,0110	; 6771		SC_#-SC, #/72.
U 2766, 0351,4001,0400,0000,0000,0010,0000	; 6772		ARX_SHIFT			;high is sign, low is sign,,high.
						; 6773	=01	AR_BR LONG, BR/AR, BRX/ARX,	;save new stuff in BR long.
U 0351, 2777,3202,2660,0000,0000,0050,0000	; 6774			CALL [EF12]		;MQ gets lowest word.
U 0353, 2767,4001,0007,0000,0000,1010,0165	; 6775		FM[E1]_AR			;save sticky bits.
U 2767, 2775,3240,2001,0000,0020,0010,0000	; 6776		AR_AC1, J/EF11			;now prepare to add.
U 2770, 2771,3260,4207,0000,0020,0010,0171	; 6777	EF10:	AR_SHIFT, [ARX]_FM[T1]		;shift high op, load low word.
U 2771, 2772,3260,2047,0000,0020,0010,0166	; 6778		BR/AR, [AR]_FM[T0]		;shift low op, load high word.
U 2772, 0431,3713,2400,0000,0000,0010,0000	; 6779		AR_ARX (AD), ARX_SHIFT		;get shifted low word into ARX.
U 0431, 2777,4001,0020,0000,0000,0550,0000	; 6780	=01	BRX/ARX, CLR ARX, CALL [EF12]	;save low word, shift end bits.
U 0433, 2773,4001,0007,0000,0000,1010,0165	; 6781		FM[E1]_AR			;save sticky bits. (word 4 of sum).
U 2773, 2775,3240,2001,0000,0020,0010,0000	; 6782		AR_AC1, J/EF11			;prepare to add.
U 2774, 2775,3240,2061,0000,0020,0010,0000	; 6783		BR/AR, BRX/ARX, AR_AC1		;get larger op in AR,ARX
U 2775, 2776,3240,2400,0301,1020,0010,0000	; 6784	EF11:	ARX_AR, AR_AC0, FE_#, #/0	;smaller op in BR,BRX
						; 6785		AR_AR+BR, ARX/ADX, SC_#, #/3,	;operation done, now normalize.
U 2776, 1560,0602,2604,0302,0060,0035,0003	; 6786			NORM, J/ENORM
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 1-2
; EXTEXP.MIC[4,30]	17:12 9-Aug-84			GFLT DOUBLE PRECISION ARITHMETIC			

						; 6787	
U 2777, 2450,3713,2010,0000,0000,0510,0000	; 6788	EF12:	MQ_SHIFT, AR_ARX (AD), CLR ARX,J/SHIFT
						;;6789	.IF/GFTCNV		;[273]
						;;6790	EF12A:	AR_SHIFT, RETURN10
						; 6791	.ENDIF/GFTCNV		;[273]
						; 6792	.ENDIF/EXTEXP
						; 6793	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 2
; EXTEXP.MIC[4,30]	17:12 9-Aug-84			GFLT MULTIPLY						

						; 6794	.TOC	"GFLT MULTIPLY"
						; 6795	.IF/EXTEXP
						; 6796	=0
U 2342, 2345,0001,0000,0000,0000,0410,0000	; 6797	EFMP:	CLR AR, J/EFMP1			;mem low op is zero, no sticky bits.
U 2343, 2344,3200,5001,0000,0020,5610,0000	; 6798		AR_AC1*2, SKP AD NE		;is AC low op non-zero as well ?
U 2344, 2345,0001,0000,0000,0000,0410,0000	; 6799	=0	CLR AR				;yes, no sticky bits today.
U 2345, 3000,3401,2007,0000,0000,1010,0165	; 6800	EFMP1:	FM[E1]_AR, AR_0S		;set sticky bits.
U 3000, 3001,0001,0000,0000,0000,0110,0200	; 6801		AR0-8_#, #/200			;subtract 200.
U 3001, 3004,3242,2040,0000,0000,0010,0000	; 6802		BR/AR, AR_BR			;swap around exp and 2000.
U 3004, 2346,5102,2000,0402,0020,0010,0000	; 6803		AR_AR-BR, CLR SC		;done, and SC is cleared.
						; 6804	=0	BR/AR, AR_AC0, SKP AD0,		;save exp-2000 in BR.
U 2346, 2376,3240,2040,0000,0020,5550,0000	; 6805			CALL [ISOEXP]		;get AC high and isolate exp.
U 2347, 3007,0602,2000,0000,0020,0010,0000	; 6806		AR_AR+BR			;add exponents together.
U 3007, 2350,4001,0007,0000,0000,1010,0172	; 6807		FM[T2]_AR			;and store the sum in T2.
						; 6808	=0	[AR]_FM[E0], SKP AD0,		;get mem high op sign extended.
U 2350, 2400,3240,2007,0000,0020,5550,0176	; 6809			CALL [SGNEXT]
U 2351, 3015,0001,0000,0301,0000,0010,0756	; 6810		FE_#, #/-18.			;
U 3015, 1440,3240,2061,0000,0020,0010,0000	; 6811		BR/AR, BRX/ARX, AR_AC1		;move mem ops to BR!BRX.
						; 6812	=000	MQ_AR, AR_0S, ARX_0S,		;multiply by low word.
U 1440, 1546,3441,2210,0000,1000,0050,0000	; 6813			CALL [MULREE]
U 1444, 1446,0602,2604,0000,0020,0027,0000	; 6814	=100	AR_AR+BR LONG			;low sign was set, add results.
						; 6815	=110	MQ_AR, AR_AC0, FE_#, #/-13.,	;now continue with high part.
U 1446, 2400,3200,2010,0301,1020,5550,0763	; 6816			SKP AD0, CALL [SGNEXT]	;sign extend the ac high op.
U 1447, 2352,0001,0007,0000,0000,1010,0166	; 6817		FM[T0]_AR			;save sign extended AC op.
						; 6818	;	SKP AR0				;test sign bit to adjust FE.
						; 6819	=0
U 2352, 1460,3721,2010,0000,1000,0010,0000	; 6820	EFMPP1:	MQ_AR, AR_MQ, J/EFMPP2		;swap AR+MQ.
U 2353, 2352,4001,0000,4001,0000,0010,0000	; 6821		FE_FE+1, J/EFMPP1		;inc the FE if number is neg.
						; 6822	=000
						; 6823	EFMPP2:	AD/0S, FE_FE+1, DISP/MUL,	;now multiply by the high word.
U 1460, 0260,3401,0010,4001,0000,0070,0000	; 6824			MQ/MQ*.25, CALL [MULP]
						; 6825	;Since our last multiply step used 2 signs bits instead of a sign bit
						; 6826	;and the MSB, our answer is too low by a power of two for positive numbers
						; 6827	;and too low by a power of 4 for negative numbers.
U 1464, 3016,3703,5500,0000,0000,0710,0001	; 6828	=100	(AR+ARX+MQ)*2, J/EFMPP3		;try this correction factor.
U 1465, 3016,3701,7710,0000,0000,0710,0001	; 6829	=101	(AR+ARX+MQ)*.25, J/EFMPP3	;shouldn't ever get here.
U 1466, 3016,3703,5500,0000,0000,0710,0001	; 6830	=110	(AR+ARX+MQ)*2			;and this for postive numbers.
						; 6831	=
U 3016, 0561,2301,0260,0000,0000,0610,0030	; 6832	EFMPP3:	BR_AR LONG, AR_0.C, ARX_1S	;result to BR!BRX. Build mask.
						; 6833	=01	SC_#, #/10.,			;load SC with shift count.
U 0561, 2450,4001,0000,0302,0000,0050,0012	; 6834			CALL [SHIFT]		;Now have mask of 0,,1777
U 0563, 3017,3242,2660,0000,0000,0010,0000	; 6835		AR_BR LONG, BR_AR LONG		;mask to BR, result TO AR!ARX.
U 3017, 3020,3522,0014,0000,0000,0710,0003	; 6836		MQ_MQ*BR, AD/ANDCB		;clear the last 10 MQ bits.
						; 6837		GEN AR, SC_#, #/3,		;generate NORM bits.
U 3020, 1560,3701,0000,0302,0040,0035,0003	; 6838			NORM, J/ENORM		;conditions set for EE norm.
						; 6839	.ENDIF/EXTEXP
						; 6840	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 3
; EXTEXP.MIC[4,30]	17:12 9-Aug-84			GFLT DIVIDE						

						; 6841	.TOC	"GFLT DIVIDE"
						; 6842	.IF/EXTEXP
U 3021, 2354,0001,0007,0000,0000,1010,0165	; 6843	EFDV0:	FM[E1]_AR			;no sticky bits on divide.
U 2354, 2400,3242,2000,0000,0020,5550,0000	; 6844	=0	AR_BR, SKP AD0, CALL [SGNEXT]	;sign extend mem high.
						; 6845		GEN AR*AC0, AD/XOR, SKP AD0,	;determine sign of result.
U 2355, 1520,3100,0060,0000,0020,5510,0000	; 6846			BR_AR LONG		;mem op to BR!BRX.
U 1520, 0620,3240,5001,0000,0020,0050,0000	; 6847	=000	AR_AC1*2, CALL [EFDV1]		;start division.
U 1521, 0620,3240,5001,0000,0020,1650,0001	; 6848		SR_1, AR_AC1*2, CALL [EFDV1]	;note result if negative.
						; 6849	
						; 6850	=011	AC1_AR, AR_MQ, ARL/AD, FE_FE+1,	;set step count to 35-2.
U 1523, 0463,3723,2001,4001,0001,1050,0102	; 6851			MQ_0.M, CALL [DIV+]	
						; 6852	=101	AC1_AR, AR_MQ, ARL/AD, FE_FE+1,
U 1525, 0462,3721,2001,4001,0001,1050,0102	; 6853			MQ_0.M, CALL [DIV-]
U 1527, 3022,0001,0000,0401,0000,0410,0000	; 6854	=111	CLR AR, CLR FE			;exp must be adjusted-
U 3022, 3023,0001,0000,0000,0000,0110,0200	; 6855		AR0-8_#, #/200			;  it is currently 2000 too low
U 3023, 3024,0600,2007,0000,0020,0010,0172	; 6856		[AR]_[AR]*FM[T2], AD/A+B	;add in the correction.
U 3024, 3026,4001,0007,0000,0000,1010,0172	; 6857		FM[T2]_AR			;store the corrected exp in T2.
						; 6858		AR_AC1, ARX/MQ, SC_#, #/3,	;get answer ready for norm.
U 3026, 1560,3240,2301,0302,0040,0035,0003	; 6859			NORM, J/ENORM
						; 6860	
						; 6861	=00
						; 6862	EFDV1:	ARX_AR, AR_AC0, SKP AD0, FE_#,	;AC low*2 to ARX, AC high to AR.
U 0620, 2356,3200,2400,0301,1020,5550,0027	; 6863			#/23., CALL [EDVCHK]
U 0622, 0642,4001,0000,0000,0000,4210,0000	; 6864	=10	SKP BR0, J/DDVSUB
U 0623, 0066,4001,0000,0000,0000,1110,0624	; 6865		SET FL NO DIV, J/IFNOP		;no division this time.
						; 6866	
						; 6867	=0
U 2356, 2360,0001,0010,0000,1000,0010,0000	; 6868	EDVCHK:	MQ_AR, J/EDVCH1			;go to an even address.
U 2357, 2356,5163,7700,0000,0020,0027,0000	; 6869		AR_-AR LONG, J/EDVCHK		;make ac op positive.
						; 6870	
						; 6871	=0
U 2360, 2376,4001,0000,0000,0000,4550,0000	; 6872	EDVCH1:	SKP AR0, CALL [ISOEXP]		;op saved in MQ, get exp in AR.
						; 6873		[AR]_[AR]*FM[T2], AD/A-B,	;subtract exponents.
U 2361, 2362,5100,2007,4000,0040,5510,0172	; 6874			SKP AD0			;did this cause an underflow ?
						; 6875	=0
U 2362, 2363,0001,0000,0000,0000,1610,0062	; 6876		SET SR2 			;no, let SR2 denote this.
U 2363, 2364,0001,0007,0000,0000,1010,0172	; 6877	EDVCH2:	FM[T2]_AR			;yes, save exponent in T2 for ENORM.
						; 6878	
						; 6879	=0
U 2364, 2400,3721,2000,0000,0020,5550,0000	; 6880	EDVCH3:	AR_MQ, SKP AD0, CALL [SGNEXT]	;now sign extend the op.
U 2365, 2240,0001,0000,0000,0001,4210,0100	; 6881		SKP BR0, MQ_0.M, J/FDVCK1
						; 6882	.ENDIF/EXTEXP
						; 6883	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 4
; EXTEXP.MIC[4,30]	17:12 9-Aug-84			GFLT NORMALIZATION					

						; 6884	.TOC	"GFLT NORMALIZATION"
						; 6885	.IF/EXTEXP
						; 6886	;Normalization is done here.
						; 6887	;	The are 8 addresses the can be reached when doing a
						; 6888	;	NORM dispatch. The following table describes the
						; 6889	;	dispatching and how to normalize the fraction and
						; 6890	;	exponent.
						; 6891	;
						; 6892	;	=000	AR=0			AR is zero, check ARX,MQ
						; 6893	;	=001	AR00=1			sign bit on, complement
						; 6894	;	=010	MSB in AR 1-6		shf 4 rt.(a guess)
						; 6895	;	=011	MSB in AR07		sht 2 rt.
						; 6896	;	=100	MSB in AR08		sht 3 rt.
						; 6897	;	=101	MSB in AR09		right on!
						; 6898	;	=110	MSB in AR10		sht 1 lf.
						; 6899	;	=111	MSB in AR 11-35		sht 4 lf.(a guess)
						; 6900	;
						; 6901	;The normalization routine for double precision assumes that
						; 6902	;	the exponent can be found in the FE. As it goes through
						; 6903	;	the normalization process, it adjusts the fraction and
						; 6904	;	the FE by the correct amounts to normalize the number.
						; 6905	;	In GFLT numbers, the exponent may not fit
						; 6906	;	into the FE, so it has to be saved in an accumulator.
						; 6907	;	However, if one assumes initially that the exponent is
						; 6908	;	zero and that it is in the FE, then the same normalization
						; 6909	;	algorithm can be used as in double precision numbers
						; 6910	;	with the realization that at the end of the normalization
						; 6911	;	process the FE contains the correction (EC)  that must be
						; 6912	;	added into the saved exponent (ES)  to produce a 'bit-9'
						; 6913	;	normalized number. Once this correction value is obtained,
						; 6914	;	the 'bit-12' normalized exponent (EN)  is given by
						; 6915	;			EN = ES + EC + 3
						; 6916	
U 3027, 3030,0001,0007,0000,0000,1010,0172	; 6917	MEMNRM:	FM[T2]_AR			;save larger exponent.
U 3030, 2366,3240,2007,0000,0020,5510,0176	; 6918		[AR]_FM[E0], SKP AD0, J/ACNRM1	;get high word, sign extend it
						; 6919	
U 3031, 3033,0001,0007,0000,0000,1010,0172	; 6920	ACNORM:	FM[T2]_AR			;save larger exponent.
U 3033, 3034,3200,5001,0401,0020,0010,0000	; 6921		AR_AC1*2, CLR FE		;get low word*2 into AR.
U 3034, 2366,3200,2400,0000,1020,5510,0000	; 6922		ARX_AR, AR_AC0, SKP AD0		;get high word, sign extend it.
						; 6923	=0
						; 6924	ACNRM1:	[AR]_[AR]*FM[EXPMSK], AD/AND,	;sign extend with 0's.
U 2366, 1560,3600,2007,4000,0040,0035,0164	; 6925		NORM, J/ENORM
						; 6926		[AR]_[AR]*FM[EXPMSK], AD/ORCB,	;sign extend with 1's.
U 2367, 1560,2700,2007,4000,0040,0035,0164	; 6927			NORM			;fall into the normalize routine.
						; 6928	
						; 6929	=000
						; 6930	ENORM:	SKP ARX+MQ NE, SC_#, #/35.,	;AR=0,check ARX,+MQ.
U 1560, 2374,3723,0000,0302,0040,5427,0043	; 6931			J/ENZERO
						; 6932		BR/AR, BRX/ARX, AR_MQ COMP,	;result neg, complement.
U 1561, 3041,2021,2060,0000,0000,1610,0061	; 6933			SET SR3, J/ENNEG	;flag negative seen.
						; 6934		AR_AR*.25 LONG, MQ_MQ*.25,	;MSB in AR 1-6.
U 1562, 3042,3703,7710,2031,0000,0012,0004	; 6935			FE_FE+#, #/4, J/ENHI
						; 6936		AR_AR*.25 LONG, FE_FE+#,	;MSB in AR07.
U 1563, 1565,3701,7700,2031,0000,0010,0002	; 6937			#/2, J/EROUND		;
U 1564, 1565,0301,7700,4001,0020,0027,0000	; 6938		AR_AR*.5 LONG, FE_FE+1		;MSB in AR08.
						; 6939	EROUND:	BR_AR LONG, AR+MQ_0.S,	 	;MSB in AR09, where we want it.
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 4-1
; EXTEXP.MIC[4,30]	17:12 9-Aug-84			GFLT NORMALIZATION					

U 1565, 3043,0001,0060,0000,0000,0022,0130	; 6940			J/ERND1			;put result in BR!BRX.
						; 6941		(AR+ARX+MQ)*2, FE_FE-1,		;MSB in AR10.
U 1566, 1565,3701,5500,3001,0000,0710,0001	; 6942			J/EROUND
U 1567, 3036,4001,4000,5001,0000,0010,0000	; 6943		AR_SHIFT, FE_FE-SC		;MSB somewhere in AR 11-35.
						; 6944	
U 3036, 3037,4001,4340,0000,2000,0010,0000	; 6945	ENSHFT:	BR/AR, AR_ARX, ARX/MQ		;shift everyone.
U 3037, 3040,3701,6010,0000,0000,0510,0000	; 6946		MQ_SHIFT, AR_ARX (ADX), CLR ARX
						; 6947		MQ_SHIFT, ARX/MQ, AR_BR,	;go aroung again.
						; 6948			SC_#, #/10.,
U 3040, 1560,3202,2310,0302,0040,0035,0012	; 6949			NORM, J/ENORM
						; 6950	
U 3041, 2370,3200,0007,0000,0020,5610,0165	; 6951	ENNEG:	GEN E1, SKP AD NE		;any sticky bits left around?
U 2370, 2372,4001,2000,0000,0040,5410,0000	; 6952	=0	AR_AR+1, SKP CRY0, J/ENNEG1	;no, 2's comp MQ.
						; 6953		MQ_AR, AR_BR COMP, ARX_BRX COMP,
U 2371, 1560,2502,2610,0000,1040,0035,0000	; 6954			NORM, J/ENORM		;one's complement to finish.
						; 6955	=0
						; 6956	ENNEG1:	MQ_AR, AR_BR COMP, ARX_BRX COMP,
U 2372, 1560,2502,2610,0000,1040,0035,0000	; 6957			NORM, J/ENORM		;one's complement to finish.
						; 6958		MQ_AR, AR_-BR, ARX/ADX,		;carry happened, do two's comp.
U 2373, 1560,5142,2610,0000,1060,0035,0000	; 6959			NORM, J/ENORM
						; 6960	
U 3042, 3064,3701,7710,0000,0000,0710,0001	; 6961	ENHI:	(AR+ARX+MQ)*.25, J/ENTRY	;go try again after setting SC.
						; 6962	=0
U 2374, 0331,3401,2200,0000,0000,1610,0000	; 6963	ENZERO:	SR_0, AR_0S, ARX_0S, J/DBLST	;result = 0, store in AC,AC+1.
U 2375, 3036,4001,4000,5001,0000,0010,0000	; 6964		AR_SHIFT, FE_FE-SC, J/ENSHFT	;not zero, try next 35 bits.
						; 6965	
U 3043, 3044,4041,0500,0000,0020,0010,0000	; 6966	ERND1:	ARX_2				;build rounding constant.
U 3044, 3045,3203,0600,0000,0000,0010,0000	; 6967		ARX_ARX*4			;gen a 10 in the ARX for rounding.
U 3045, 1626,0602,2604,0000,0060,0035,0000	; 6968		AR_AR+BR, ARX/ADX, NORM		;do the rounding and test norm.
U 1626, 1627,0301,7700,4001,0020,0027,0000	; 6969	=110	AR_AR*.5 LONG, FE_FE+1		;rounding blew norm, correct it.
						; 6970	
						; 6971	; When we get here the number is 'bit-9' normalized
						; 6972	; in the AR,ARX.  Add the FE + 3 to the exponent
						; 6973	; saved in T2.
						; 6974	; At this point the Extended Exponent must be put
						; 6975	; into the AR after everything is shifted right 3 bits.
						; 6976	; The double precision norm routine does this by:
						; 6977	; EXP_FE TST, SR DISP, CLR MQ, BRX/ARX, ARX_1
						; 6978	
						; 6979	
						; 6980	ERND2:	AR_AR*.25 LONG,		;shift everything 2 bits right.
						; 6981			MQ_MQ*.25,	;	"	"	"
U 1627, 3046,3701,7710,0302,0000,0012,0003	; 6982			SC_#, #/3	;add in correction to FE.
						; 6983		AR_AR*.5 LONG,		;now shift the final bit position.
U 3046, 3047,0303,7700,2002,0020,0027,0000	; 6984			SC_FE+SC	;total exponent correction.
U 3047, 3050,0001,0060,0000,0000,0410,0000	; 6985		BR/AR, BRX/ARX, CLR AR	;save answer in BR,BRX.
U 3050, 3051,4001,0000,2400,2001,0110,0000	; 6986		EXP_SC.MS		;get exp corr in AR.
						; 6987		ARX_AR, AR_SIGN,	;get exp into ARX 1-8.
U 3051, 3052,5401,2400,0302,1020,0016,0041	; 6988			SC_#,#/33.	;prepare to shift 3 places.
						; 6989		ARX_SHIFT,		;move exponent into ARX 1-11.
U 3052, 3053,3240,2407,0000,0020,0010,0164	; 6990			[AR]_FM[EXPMSK]	;prepare to build mask in AR.
U 3053, 3054,0001,0000,0000,0000,0110,0400	; 6991		AR0-8_#, #/400		;include AR00 in EXPMSK==>400077,,-1
						; 6992		AR_AR*BR, AD/AND,	;zero AR1-11 to make room for exp.
U 3054, 3055,3602,2000,0302,0000,0010,0043	; 6993			SC_#, #/35.
						; 6994	
						; 6995	; I am sure a few lines of code can be saved around here.
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 4-2
; EXTEXP.MIC[4,30]	17:12 9-Aug-84			GFLT NORMALIZATION					

						; 6996	
U 3055, 3056,3260,2047,0000,0020,0010,0172	; 6997		[AR]_FM[T2], BR/AR	;save high word in BR, load larger exp.
U 3056, 3057,3242,2040,0000,0000,0010,0000	; 6998		AR_BR, BR/AR		;swap around so we can add.
						; 6999		AR_ARX+BR, BR/AR,	;have final exponent, check for problems.
U 3057, 3060,0612,2040,0302,0020,0010,0000	; 7000			SC_#,#/0
U 3060, 0363,0001,0000,0000,0020,0007,0000	; 7001		SH DISP			;any exponent problems ?
						; 7002	=0011	ARX_AR, SC_#, #/35.,	; no problems.
U 0363, 3062,0001,0400,0302,1000,0010,0043	; 7003			J/ENFNL1
						; 7004	ENFNL0:	ARX_AR, SC_#, #/35.,	; no problems.
U 0367, 3062,0001,0400,0302,1000,0010,0043	; 7005			J/ENFNL1
U 0373, 3061,4001,0000,0000,0000,1110,0620	; 7006		SET FLOV,  J/EEOV	; an overflow occurred.
						; 7007			
U 0377, 0435,4001,0000,0000,0000,0005,0000	; 7008		SR DISP			;floating underflow - is it real ?
						; 7009	=1101	;test SR2.
U 0435, 3061,0001,0000,0000,0000,1110,0630	; 7010		SET FXU, J/EEOV		;yes, it is a real underflow.
U 0437, 3061,4001,0000,0000,0000,1110,0620	; 7011		SET FLOV		;no, GFDV saw an overflow before.
						; 7012	
						; 7013	EEOV:	P_P AND #, #/37,	;turn off AR00.
U 3061, 0367,0001,0000,7130,3000,0110,0037	; 7014			J/ENFNL0
						; 7015	
U 3062, 3063,3312,2004,0000,0000,0010,0000	; 7016	ENFNL1:	AR_ARX*BR, AD/OR	;AR now has high word, BRX has low.
U 3063, 0552,4061,0200,0000,0021,0005,0100	; 7017		ARX_1, MQ_0.M, SR DISP	;incase negation of lower word needed.
						; 7018	=10	AC0_AR, AR_SHIFT,	;store high word,
						; 7019			ARX_BRX,	;move low word to ARX.
U 0552, 0273,3242,4600,0000,0217,1010,0000	; 7020			I FETCH, J/STD1	;prepare to store low word and exit.
						; 7021		ARX_ARX*BRX, AD/ANDCA,	; clear rounding bit.
U 0553, 2173,3002,0604,0000,0000,1610,0000	; 7022			SR_0,J/CDBLST	;negate result and store double result.
						; 7023	
U 3064, 1560,3701,0000,0302,0040,0035,0003	; 7024	ENTRY:	SC_#, #/3, GEN AR, NORM, J/ENORM; go normalize again.
						; 7025	.ENDIF/EXTEXP
						; 7026	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 5
; EXTEXP.MIC[4,30]	17:12 9-Aug-84			GFLT TO INTEGER CONVERSION				

						; 7027	.TOC	"GFLT TO INTEGER CONVERSION"
						; 7028	.IF/EXTEXP
						;;7029	.IF/GFTCNV		;[273]
						;;7030	
						;;7031	;ETXIX routine is used when converting extended exponent data to
						;;7032	;single/double precision integers with rounding/truncation.
						;;7033	;This routine assumes that the AR/ARX contain the extended exponent
						;;7034	;data. It also assumes that the maximum exponent value + 1 of either
						;;7035	;36 or 70 (decimal) are already in the FE. This is the positive exponent
						;;7036	;maximum; the code adjusts for the fact that a negative number can have
						;;7037	;an exponent one greater than a positive number. 
						;;7038	;It uses all of the registers in the EBOX and returns 4 if the
						;;7039	;result is positive and returns 5 if the result is negative
						;;7040	;with the AR/ARX containing the double word integer. It is the
						;;7041	;responsibility of the calling routine to determine whether
						;;7042	;rounding or truncation should be performed and how many words
						;;7043	;to store.
						;;7044	
						;;7045	ETXIX:	ARX_ARX*2		;get low word*2 into ARX.
						;;7046	=0	MQ_AR, SKP AR0,		; get a positive exp in AR.
						;;7047			CALL [ISOEXP]
						;;7048		CLR AR, BR/AR		;clear extraneous bits, save exp.
						;;7049		AR0-8_#, #/200		;test for positive exp.
						;;7050		GEN AR+BR, SKP AD0,	;skip on positive exponent(sum has AD0 on).
						;;7051			AR_0.M		;so exponent test has a clean register.
						;;7052	=0	MEM/ARL IND, CLR/AR+ARX,;exponent must be positive.
						;;7053			RETURN4		;return to caller.
						;;7054		AR0-8_#, #/212, J/ET1	;start range check of positive exponent
						;;7055	
						;;7056	;At this point the exponent is in BR 1-11 and it is positive.
						;;7057	;Now we must determine if it is a small enough positive number
						;;7058	;to make the conversion to integer meaningful.
						;;7059	ET1:	GEN AR-BR, SKP AD0	;do the exponent test.
						;;7060	=0	AR_BR*4, J/ET2		;exp fits in AR0-8, now for final test!
						;;7061		SET AROV, I FETCH, J/NOP;exponent out of range.
						;;7062	ET2:	AR_AR*2			;finish moving exponent into AR0-8.
						;;7063		SC_AR0-8, GEN MQ,	;exponent to SC.
						;;7064			SKP AD0		;max neg exponent is 1 gtr than max pos exp.
						;;7065	=0
						;;7066	ET2A:	AR_MQ, GEN FE-SC,	;shift low word into ARX00-34, caller
						;;7067			SKP SCAD0,	;put max exponent+1 in FE. range check.
						;;7068			J/ET2B
						;;7069		FE_FE+1, J/ET2A		;max neg exp is 1 gtr than max pos exp.
						;;7070	=0
						;;7071	ET2B:	FE_SC, J/ET3		;save exp in FE.
						;;7072		SET AROV, I FETCH, J/NOP;exponent is too large.
						;;7073	ET3:	SC_#, #/12.		;prepare to map AR12 into AR00.
						;;7074	
						;;7075	;We now have the high word in the AR and
						;;7076	;the low word*2 in the ARX. The SC has 12 (dec) to let the
						;;7077	;shifter strip off the sign and exponent of the high word.
						;;7078		AR_SIGN, MQ_SHIFT	;put high 36 integer bits into MQ.
						;;7079		AR_ARX, BR/AR, CLR ARX	;generate low 36 integer bits and
						;;7080		AR_BR, ARX/MQ, MQ_SHIFT,;  put in MQ. High bits to ARX.
						;;7081			SC_FE-#, #/36.,	;check the size of the exponent.
						;;7082			SKP SCAD0	;if exp<36. then high result is sign.
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 5-1
; EXTEXP.MIC[4,30]	17:12 9-Aug-84			GFLT TO INTEGER CONVERSION				

						;;7083	=0	GEN SC, SKP SCAD NE,	;is exponent gtr or geq to 36 ?
						;;7084			J/ET3A
						;;7085		SC_#+SC, #/37., J/ET5	;exponent less than 36.
						;;7086	=0
						;;7087	ET3A:	(AR+ARX+MQ)*2, J/ET3B	;must shift left 1 bit.
						;;7088		BRX/ARX, SC_#+SC, #/1,	;adjust exp, save low word in BRX.
						;;7089			J/ET4
						;;7090	ET3B:	BR_AR LONG, AR_ARX,	;high and low to BR!BRX
						;;7091			SC_#, #/35.,	;get a good exponent for final shifting.
						;;7092			ARX/MQ, J/ET4A	;rest of fraction to ARX.
						;;7093	ET4:	AR_ARX (AD), ARX/MQ,	;exp gtr 36. High result has integer bits.
						;;7094			MQ_SHIFT	;high result to MQ.
						;;7095		AR_MQ, ARX_SHIFT	;put integer bits into ARX.
						;;7096		BR_AR LONG, AR_ARX (AD),;now compute fraction.
						;;7097			CLR ARX		;low integer to AR, pad with zeros in ARX.
						;;7098	ET4A:	AR_BR LONG, MQ_SHIFT,	;restore integer to AR!ARX, fraction to MQ.
						;;7099			SC_#, #/35.,	;low word must have bit 0 same as high.
						;;7100			SKP AD0, RET[4]	;  and return on sign of integer.
						;;7101	=01
						;;7102	ET5:	FM[T0]_AR, AR_ARX (AD),	;sign is high 36 bit result. Save in T0.
						;;7103			ARX/MQ,		;high 36 bits of frac to AR, low 23 to ARX.
						;;7104			MQ_SHIFT,	;low integer result to MQ.
						;;7105			CALL [SHIFT]	;high half of fraction to AR.
						;;7106	
						;;7107	;Now we have the high 36 bits of mantissa in AR, the low 23 bits if mantissa
						;;7108	;in the ARX, the high 36 bit result (the sign bits) in T0 and the low 36 bit
						;;7109	;result in the MQ. Now we compute the fraction to store.
						;;7110		BR/AR, AR_ARX, CLR ARX	;high frac to BR. Now gen low fraction bits.
						;;7111		ARX_SHIFT,		;low fraction bits to ARX.
						;;7112			SC_#, #/35.	;low word must have same sign as high.
						;;7113		GEN ARX*BR, AD/OR,	;gen composite OR of fraction into 1 word.
						;;7114			MQ_AD,		;put this funny fraction in the MQ.
						;;7115			ARX/MQ		;low integer result to ARX.
						;;7116		[AR]_FM[T0], SKP AD0,	;get high result (Sign) back in AR.
						;;7117			RET[4]		;and return to caller.
						; 7118	.ENDIF/GFTCNV		;[273]
						; 7119	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 6
; EXTEXP.MIC[4,30]	17:12 9-Aug-84			GFLT TO INTEGER CONVERSION				

						; 7120	
						; 7121	;ISOEXP will isolate the exponent in an extended exponent data word.
						; 7122	;It will return the positive representation of the exponent.
						; 7123	;Call with AR containing high order word with "SKP AR0" to do
						; 7124	;correct things with one's complemented exponent in negative numbers.
						; 7125	;It returns 1 with the positive exponent in the AR.
						; 7126	=0
U 2376, 0001,3500,2007,4000,0020,0003,0164	; 7127	ISOEXP:	[AR]_[AR]*FM[EXPMSK],AD/ANDCB,RET[1] ;isolate pos exp in AR1-11.
U 2377, 0001,2400,2007,4000,0020,0003,0164	; 7128		[AR]_[AR]*FM[EXPMSK],AD/NOR,RET[1]   ;isolate neg exp in AR1-11.
						; 7129	
						; 7130	;SGNEXT will extend the sign bit of the AR into AR1-11. Call with
						; 7131	;SKP AR0 so the correct actions are taken for negative numbers.
						; 7132	;It will do a return 1 with either ones or zeroes in AR1-11.
						; 7133	=0
U 2400, 0001,3600,2007,4000,0020,0003,0164	; 7134	SGNEXT:	[AR]_[AR]*FM[EXPMSK], AD/AND, RET[1]  ;extend 0s into AR1-11.
U 2401, 0001,2700,2007,4000,0020,0003,0164	; 7135		[AR]_[AR]*FM[EXPMSK], AD/ORCB, RET[1] ;extend ones into AR1-11.
						; 7136	
						; 7137	;OVTEST will determine if the high order word of a double integer,
						; 7138	;as stored in the AR is all sign bits, ie either it is all zeroes
						; 7139	;or all ones. The call is via "GEN AR, SKP AD NE, J/OVTEST".
						; 7140	;It assumes that the double integer is in the AR/ARX and the SC
						; 7141	;contains 35 decimal.
						; 7142	;OVTEST will store the ARX*.5 and exit if the AR is all sign bits. 
						; 7143	;It will set AROV and jump to NOP if it finds some data bits.
U 3065, 2402,3721,2000,0000,0020,5610,0000	; 7144	OVTST1:	AR_MQ, SKP AD NE		;get the sign bits from the MQ.
						; 7145	=0
U 2402, 3066,4001,4000,0000,0217,0010,0000	; 7146	OVTEST:	AR_SHIFT, I FETCH, J/OVTST2	;the high word is all zeros - ok.
U 2403, 2404,4001,0000,0000,0040,5610,0000	; 7147		GEN AR+1, SKP AD NE		;check to see if it is all ones.
U 2404, 3066,4001,4000,0000,0217,0010,0000	; 7148	=0	AR_SHIFT, I FETCH, J/OVTST2 	;this is simply a negative number.
U 2405, 0075,4001,0000,0000,0217,1110,0420	; 7149		SET AROV, I FETCH, J/NOP	;sorry, we found some data bits.
U 3066, 0075,4001,0000,0000,0000,1010,0000	; 7150	OVTST2:	AC0_AR, J/NOP			;finish the store.
						; 7151	.ENDIF/EXTEXP
						; 7152	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 7
; EXTEXP.MIC[4,30]	17:12 9-Aug-84			GFLT DATA CONVERSION INSTRUCTIONS			

						; 7153	.TOC	"GFLT DATA CONVERSION INSTRUCTIONS"
						; 7154	
						; 7155	1013:
U 1013, 1006,0001,0000,0000,0000,0010,0000	; 7156	L-XBLT:	J/LUUO
						; 7157	1014:
U 1014, 1006,0001,0000,0000,0000,0010,0000	; 7158	L-GTPI:	J/LUUO
						; 7159	.IF/EXTEXP				;[337]
						; 7160	1104:
U 1104, 1006,0001,0000,0000,0000,0010,0000	; 7161	L-SFTE:	J/LUUO
						; 7162	1105:
U 1105, 1006,0001,0000,0000,0000,0010,0000	; 7163	L-GTDI:	J/LUUO
						; 7164	1106:
U 1106, 1006,0001,0000,0000,0000,0010,0000	; 7165	L-GTSI:	J/LUUO
						; 7166	1107:
U 1107, 1006,0001,0000,0000,0000,0010,0000	; 7167	L-GTDR:	J/LUUO
						; 7168	1110:
U 1110, 1006,0001,0000,0000,0000,0010,0000	; 7169	L-GTSR:	J/LUUO
						; 7170	1111:
U 1111, 1006,0001,0000,0000,0000,0010,0000	; 7171	L-DITE:	J/LUUO
						; 7172	1112:
U 1112, 1006,0001,0000,0000,0000,0010,0000	; 7173	L-SITE:	J/LUUO
						; 7174	1113:
U 1113, 1006,0001,0000,0000,0000,0010,0000	; 7175	L-EFSC:	J/LUUO
						; 7176	.ENDIF/EXTEXP				;[337]
						; 7177	.IF/XADDR
U 3013, 3241,3240,0204,0000,0020,0010,0000	; 7178	3013:	ARX_AC2, J/XBLT		; -20-  XBLT
						; 7179	.ENDIF/XADDR
						;;7180	.IFNOT/EXTEXP				;[337]
						;;7181	3014:	J/MUUO				;[337] No GSNGL if no G floating
						; 7182	.IF/EXTEXP				;[337]
U 3014, 3067,3260,2007,0000,0020,0010,0165	; 7183	3014:	[AR]_FM[E1], J/L-GTSP	; -21-	GSNGL
U 3104, 3115,3240,2007,0000,0020,0010,0165	; 7184	3104:	[AR]_FM[E1], J/L-EDBL	; -22-	GDBLE
						; 7185	.IFNOT/GFTCNV		;[273]
U 3105, 1002,4001,0000,0000,0000,0010,0000	; 7186	3105:	J/MUUO			; -23-	DGFIX	;[273]
U 3106, 1002,4001,0000,0000,0000,0010,0000	; 7187	3106:	J/MUUO			; -24-	GFIX	;[273]
U 3107, 1002,4001,0000,0000,0000,0010,0000	; 7188	3107:	J/MUUO			; -25-	DGFIXR	;[273]
U 3110, 1002,4001,0000,0000,0000,0010,0000	; 7189	3110:	J/MUUO			; -26-	GFIXR	;[273]
						;;7190	.IF/GFTCNV		;[273]
						;;7191	3105:	[AR]_FM[E1], J/L-GTIN	; -23-	DGFIX
						;;7192	3106:	[AR]_FM[E1], J/L-GTIN	; -24-	GFIX
						;;7193	3107:	[AR]_FM[E1], J/L-GTIN	; -25-	DGFIXR
						;;7194	3110:	[AR]_FM[E1], J/L-GTIN	; -26-	GFIXR
						; 7195	.ENDIF/GFTCNV		;[273]
U 3111, 3132,3240,2007,0000,0020,0010,0165	; 7196	3111:	[AR]_FM[E1], J/L-FLTR	; -27-	DGFLTR
U 3112, 3141,3260,2007,0000,0020,0010,0165	; 7197	3112:	[AR]_FM[E1], J/L-DFLT	; -30-	GFLTR
U 3113, 2422,3240,2007,0000,0020,0010,0165	; 7198	3113:	[AR]_FM[E1], J/L-DFSC	; -31-	GFSC
						; 7199	
						; 7200	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 8
; EXTEXP.MIC[4,30]	17:12 9-Aug-84			GFLT DATA CONVERSION INSTRUCTIONS			

U 3067, 3070,3703,0000,0000,0312,0010,0000	; 7201	L-GTSP:	VMA_AR, LOAD AR		;-21- GSNGL EDPFP TO SPFP
U 3070, 3071,3240,0003,0000,0022,0022,0100	; 7202		AR_MEM, MQ_0.S		;load high word into AR.
U 3071, 2406,3703,0000,0000,0020,5610,0000	; 7203		GEN AR, SKP AD NE	;check for zeroes.
U 2406, 0074,0001,0000,0000,0217,0010,0000	; 7204	=0	I FETCH, J/STORAC	;high word zero, store it.
U 2407, 2410,0001,0000,0000,0000,3610,0000	; 7205		VMA_VMA+1		;point to mem low word.
						; 7206	=0	ARX_AR, SKP AR0,	;save high word in ARX.
U 2410, 2376,4001,0400,0000,1000,4550,0000	; 7207			CALL [ISOEXP]	;get the excess-2000 exponent.
U 2411, 3072,4001,0040,0000,0000,0410,0000	; 7208		CLR AR, BR/AR		;exp to BR.
U 3072, 3073,4001,0000,0000,0000,0110,0220	; 7209		AR0-8_#, #/220		;largest exponent allowed is 2200.
U 3073, 2412,1102,0000,0000,0040,5510,0000	; 7210		GEN AR-BR-1, SKP AD0	;range check exponent.
U 2412, 3074,0001,0000,0000,0000,0110,0157	; 7211	=0	AR0-8_#, #/157, J/L-GTS1;do lower range check now.(actually too low)
U 2413, 0075,0001,0000,0000,0217,1110,0620	; 7212		SET FLOV, I FETCH, J/NOP;tough
U 3074, 3075,3242,2040,0000,0000,0010,0000	; 7213	L-GTS1:	BR/AR, AR_BR		;swap values around for next subtract.
U 3075, 2414,5102,0004,0000,0040,5510,0000	; 7214		GEN AR-BR, SKP AD0	;do lower range check.
U 2414, 3076,0001,0040,0000,0000,0410,0000	; 7215	=0	BR/AR, CLR AR, J/L-GTS6	;passed. 10 bit path to do last checks.
U 2415, 0075,4001,0000,0000,0217,1110,0630	; 7216		SET FXU, I FETCH, J/NOP	;too low.
U 3076, 3100,0001,0000,0000,0000,0110,0160	; 7217	L-GTS6:	AR0-8_#, #/160		;subtract 1600 to get excess 200 exp.
U 3100, 3101,3202,2040,0000,0000,0010,0000	; 7218		AR_BR, BR/AR		;swap around to do subtract.
U 3101, 3102,5102,2000,0000,0020,0010,0000	; 7219		AR_AR-BR		;got it.
U 3102, 3103,3203,5000,0000,0000,0010,0000	; 7220		AR_AR*8			;move excess-200 exponent over.
						; 7221		FE_AR0-8, AR_ARX,	;put some exponent in FE. High word to AR.
U 3103, 3114,4001,4000,2421,2013,0010,0000	; 7222			LOAD ARX	;low word to ARX.
						; 7223	;This next test determines the relative size of the exponent. If the expo-
						; 7224	;nent is less than 401 then it is a positive exponent and all will be well.
						; 7225	;If the exponent is greater than 400 (actually 700), then the exponent is
						; 7226	;really negative but bit 0 of the FE is off. To correct the sign of the
						; 7227	;exponent and to prevent undeserved FXU later because of the incorrect sign
						; 7228	;bit, we must examine the value of the exponent so as to always get the
						; 7229	;correct sign during normalization.
						; 7230		ARX_MEM, GEN FE-#,	;undeserved FXU happens when FE00 should be
U 3114, 2416,3240,0003,5030,0042,5110,0500	; 7231			#/500, SKP SCAD0;set from previous subtract of 1600.
						; 7232	=0	FE_FE+#, #/777,		;set FE00. Later add will clear it.
						; 7233			ARX_ARX*2,	;low word * 2.
U 2416, 2420,3701,0500,2031,0000,0010,0777	; 7234			J/L-GTS7	;continue.
U 2417, 2420,3701,0500,3001,0000,0010,0000	; 7235		FE_FE-1, ARX_ARX*2	;adjust FE so later add gets right exp.
						; 7236	=0
U 2420, 2400,4001,0000,0000,0000,4550,0000	; 7237	L-GTS7:	SKP AR0, CALL [SGNEXT]	;sign extend high word.
						; 7238		AR_AR*.25 LONG,		;prepare for normalization
						; 7239			FE_FE+#, #/6,	;adjust exponent.
U 2421, 1240,3703,7700,2031,0040,0035,0006	; 7240			NORM, J/SNORM	;finish up.
						; 7241	
U 3115, 3116,3701,0000,0000,0312,0010,0000	; 7242	L-EDBL:	VMA_AR, LOAD AR		;-22- GDBLE SPFP to EXTENDED EXPONENT
U 3116, 3117,3240,0003,0000,0022,0710,0003	; 7243		AR_MEM, CLR MQ
U 3117, 3120,0001,0400,0202,1000,0410,0000	; 7244		SC_EXP, ARX_AR, CLR AR	;correct the expoent, save a copy in the ARX
U 3120, 3121,4001,0007,0000,0000,1010,0165	; 7245		FM[E1]_AR		;no sticky bits here.
U 3121, 3122,4001,0000,2400,2001,0010,0200	; 7246		EXP_SC			;put the "positive" exponent back IN THE AR.
U 3122, 3123,0303,7000,0000,0020,0010,0000	; 7247		AR_AR*.5		;must move exponent into AR4-11
U 3123, 3124,3701,7000,0000,0000,0010,0000	; 7248		AR_AR*.25		;  done.
U 3124, 3125,4001,0040,0000,0000,0410,0000	; 7249		BR/AR, CLR AR		;exp to BR.
U 3125, 3126,4001,0000,0000,0000,0110,0160	; 7250		AR0-8_#, #/160		;put 1600 in the AR for exp conversion
U 3126, 3127,0602,2004,0301,0020,0010,0775	; 7251		AR_AR+BR, FE_#, #/-3	;convert exp, set initial exp correction
U 3127, 3130,4001,4007,0000,2000,1010,0172	; 7252		FM[T2]_AR, AR_ARX	;save exp for ENORM, frac to AR
U 3130, 3131,4001,0000,0000,1001,0610,0240	; 7253		EXP_SIGN.C, ARX_0.M	;get rid of exp, clear low word
						; 7254		GEN AR, SC_#, #/3, NORM,;normalize an extended exponent number
U 3131, 1560,3701,0000,0302,0040,0035,0003	; 7255			J/ENORM
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 9
; EXTEXP.MIC[4,30]	17:12 9-Aug-84			GFLT DATA CONVERSION INSTRUCTIONS			

						; 7256	
						;;7257	.IF/GFTCNV		;[273]
						;;7258	L-GTIN:	VMA_AR, LOAD AR		;23-26. fetch high word.
						;;7259		AR_MEM, MQ_0.S,		;word in AR, init MQ.
						;;7260			VMA_VMA+1	;prepare to fetch low word.
						;;7261		GEN AR, SKP AD NE	;is high word all zeroes ?
						;;7262	=0	CLR ARX, EXIT DBL	;high word zero, store zeroes.
						;;7263		LOAD ARX, B DISP	;fetch low word, call appropriate routine.
						;;7264	
						;;7265	=000	ARX_MEM, J/L-G23	;do GDP to DP integer, truncate.
						;;7266	=010	ARX_MEM, J/L-G24	;do GDP to SP integer, truncate.
						;;7267	=100	ARX_MEM, J/L-G25	;do GDP to DP integer, rounded.
						;;7268	=110	ARX_MEM, J/L-G26	;do GDP to SP integer, rounded.
						;;7269	=				;terminate this dispatch block.
						;;7270	
						;;7271	;DGFIX needs the sticky bit fix.
						;;7272	=0010
						;;7273	L-G23:	FE_#, #/70.,		;-23- DGFIX GDP to double integer, truncate.
						;;7274			CALL [ETXIX]	;do the conversion
						;;7275	=0110	EXIT DBL		;store results.
						;;7276	=0111	BR_AR LONG, AR_ARX,	;save high 2 words in BR!BRX, MSB of
						;;7277			ARX/MQ,		;fraction to AR35. Rest of fraction to ARX.
						;;7278			SC_#, #/35.,	;get fraction all together.
						;;7279			CALL [EF12A]
						;;7280	=1111	GEN AR, SKP AD NE,	;any fraction bits on ?
						;;7281			MQ_0.S		;[240]CLEAR MQ00 FOR ARX_2 MACRO.
						;;7282	=0	AR_BR LONG, J/ST2AC	;no, leave answer alone.
						;;7283		CLR AR, ARX_2		;yes, add 1 to integer part.
						;;7284		AR_AR+BR LONG, J/ST2AC	;store result.
						;;7285	
						;;7286	;GFIX needs the sticky bit fix.
						;;7287	=0010
						;;7288	L-G24:	FE_#, #/35.,		;-24- GFIX GDP to single integer, truncate.
						;;7289			CALL [ETXIX]	;do the conversion
						;;7290	=0110
						;;7291	L-GTS2:	SKP AR NE, J/OVTEST	;test for sign bits in AR and store.
						;;7292	=0111	BR_AR LONG, AR_ARX,	;save in BR!BRX.
						;;7293			ARX/MQ,		;add one to integer part of negative number
						;;7294			SC_#, #/35.,	;if fraction is not zero.
						;;7295			CALL [EF12A]
						;;7296	=1111	GEN AR, SKP AD NE,	;is fraction zero ?
						;;7297			MQ_0.S		;[240]CLEAR MQ00 FOR ARX_2 MACRO.
						;;7298	=0	AR_BR LONG, SKP AD NE,	;yes, try to store the result.
						;;7299			J/OVTEST
						;;7300		CLR AR, ARX_2		;no, add one to integer part.
						;;7301		AR_AR+BR LONG, SKP AD NE,; do the add and test that the high
						;;7302			J/OVTEST	;word is all sign bits.
						;;7303	
						;;7304	=011
						;;7305	L-G25:	FE_#, #/70.,		;-25- DGFIXR GDP to double integer, rounded.
						;;7306			CALL [ETXIX]	;do the conversion
						;;7307	=111	BR_AR LONG, CLR AR,	;save in BR!BRX, round by adding one half
						;;7308			ARX_1,		;to result. Remember that the MSB of the
						;;7309			SC_#, #/35.	;store routine expects this.
						;;7310		AR_AR+BR LONG, AD FLAGS	;fraction is on ARX35.  Do the rounding and
						;;7311	;=0	; replace SKP CRY0 with AD FLAGS. Eliminates extra word.
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 9-1
; EXTEXP.MIC[4,30]	17:12 9-Aug-84			GFLT DATA CONVERSION INSTRUCTIONS			

						;;7312		EXIT DBL		;  store the double result.
						;;7313	;	SET AROV, I FETCH, J/NOP;rounding caused an overflow - too bad!
						;;7314	
						;;7315	=011
						;;7316	L-G26:	FE_#, #/35.,		;-26- GFIXR GDP to single integer, rounded.
						;;7317			CALL [ETXIX]	;do the conversion.
						;;7318	=111	BR_AR LONG, CLR AR,	;save in CR!BRX, round by adding one half
						;;7319			ARX_1,		;to result. MSB of the fraction is in ARX35.
						;;7320			SC_#, #/35.	;store routine expects this.
						;;7321		AR_AR+BR LONG, SKP AD NE,;do the rounding.
						;;7322			J/OVTEST	;figure out what, if any, to store.
						; 7323	.ENDIF/GFTCNV		;[273]
						; 7324	L-FLTR:	VMA_AR, LOAD AR,	;-27- DGFLTR DP INTEGER to EDPFP
U 3132, 3133,3701,0000,0301,0312,0010,0137	; 7325			FE_#, #/137	;inital fugde factor for exp
U 3133, 0734,3240,0003,0000,0022,0022,0100	; 7326		AR_MEM, MQ_0.S		;get high word into the AR.
						; 7327	=0*	VMA_VMA+1, LOAD ARX,	;get the low word into the ARX,
U 0734, 1023,0001,0040,0000,0013,3650,0000	; 7328			BR/AR, CALL [XFERW]; and save the high word in the BR.
U 0736, 3134,3721,0500,0000,0000,0410,0000	; 7329	=1*	ARX_ARX*2, CLR AR	;ignore the sign copy.
U 3134, 3135,4001,0007,0000,0000,1010,0165	; 7330		FM[E1]_AR		;no sticky bits here.
U 3135, 3136,0001,0000,0000,0000,0110,0200	; 7331		AR0-8_#, #/200		;ENORM expects the exponent in T2.
						; 7332		FM[T2]_AR, AR_BR,	;and save it in T2.
U 3136, 3137,3242,2217,0000,2000,1010,0172	; 7333			ARX/AD, MQ_ARX	;sign to AR, high to ARX, low to MQ.
U 3137, 3140,5401,2000,0000,0020,0016,0000	; 7334		AR_SIGN 		;
U 3140, 1560,3703,0000,0000,0040,0035,0000	; 7335		GEN AR, NORM, J/ENORM	;restore high word and normalize.
						; 7336	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 10
; EXTEXP.MIC[4,30]	17:12 9-Aug-84			GFLT DATA CONVERSION INSTRUCTIONS			

						; 7337	
						; 7338	L-DFLT:	VMA_AR, LOAD AR,	;-30- GFLTRSP INTEGER to EDPFP
U 3141, 3142,3703,0000,0301,0312,0010,0004	; 7339			FE_#, #/4	;initial fudge factor for exp.
U 3142, 3143,3200,0003,0000,0022,0710,0003	; 7340		AR_MEM, CLR MQ		;get the single precision op.
U 3143, 3144,5441,2400,0000,1020,0016,0000	; 7341		AR_SIGN, ARX_AR		;build a dummy high word of all sign.
U 3144, 3145,4001,0040,0000,0000,0410,0000	; 7342		BR/AR, CLR AR		;save sign, prepare for exponent.
U 3145, 3146,0001,0007,0000,0000,1010,0165	; 7343		FM[E1]_AR		;no sticky bits here.
U 3146, 3147,4001,0000,0000,0000,0110,0207	; 7344		AR0-8_#, #/207		;build an initial exp of 207 for ENORM
						; 7345		FM[T2]_AR, AR_BR,	;save exp for ENORM, restore sign word.
U 3147, 1560,3242,2007,0000,0040,1035,0172	; 7346			NORM, J/ENORM	;and normalize it.
						; 7347	
						; 7348	=0
						; 7349	L-DFSC:	AR_AC0, BR/AR, SKP AD0,	;-31- GFSC EDPFP SCALE
U 2422, 2376,3240,2040,0000,0020,5550,0000	; 7350			CALL [ISOEXP]	;get the exponent into the AR.
U 2423, 3150,3242,2040,0000,0000,0010,0000	; 7351		BR/AR, AR_BR		;put exp in BR, scale factor to AR.
						; 7352		AR_AR SWAP, GEN AC0,	;put scale in left half of AR.
U 3150, 2424,3240,4000,0000,3020,5610,0000	; 7353			SKP AD NE	;is high word zero ?
U 2424, 0061,4001,0000,0000,0001,0010,0170	; 7354	=0	AR+ARX+MQ_0.M, J/ST2AC	;yes, store zero as double result.
						; 7355		AR_SIGN, ARX_AR, SC_#,	;no, move sign and scale factor together.
U 2425, 3151,5441,2400,0302,1020,0016,0042	; 7356			#/34.
U 3151, 3152,0001,4000,0401,0000,0010,0000	; 7357		AR_SHIFT, CLR FE	;sign now in AR00, scale in AR 9-19.
U 3152, 3153,4001,0000,0000,1000,0022,0200	; 7358		EXP_SIGN		;scale sign is in AR00; extend it.
U 3153, 3154,4001,0000,0302,0000,0010,0010	; 7359		SC_#, #/8.		;move scale factor into AR 1-11 and
U 3154, 3155,3200,4201,0000,0020,0010,0000	; 7360		AR_SHIFT, ARX_AC1	; put the sign to left of scale factor.
U 3155, 3156,0602,2004,0000,0020,0710,0003	; 7361		AR_AR+BR, CLR MQ	;add exponent and scale factor.
U 3156, 0443,4001,0000,0000,1020,0007,0000	; 7362		SH/AR, DISP/SH0-3	;check for over and under flovs.
						; 7363	=0011
						; 7364	L-FSC2:	[AR]_[AR]*FM[EXPMSK],	;clear out non-exponent bits.
						; 7365			AD/ANDCB,	;and AR00 in the over or under flow case.
U 0443, 3157,3500,2007,4000,0020,0010,0164	; 7366			J/L-FSC3	; and continue
						; 7367	=0111	[AR]_[AR]*FM[EXPMSK],	;clear out non-exponent bits.
						; 7368			AD/ANDCB,	;
U 0447, 3157,3500,2007,4000,0020,0010,0164	; 7369			J/L-FSC3	; and continue
U 0453, 0443,0001,0000,0000,0000,1110,0620	; 7370	=1011	SET FLOV, J/L-FSC2	;you lose
U 0457, 0443,4001,0000,0000,0000,1110,0630	; 7371	=1111	SET FXU, J/L-FSC2	;ditto
						; 7372	
U 3157, 2426,3701,0507,0000,0000,1010,0172	; 7373	L-FSC3:	FM[T2]_AR, ARX_ARX*2	;save new exponent fofr ENORM.
						; 7374	=0	AR_AC0, SKP AD0,	;get the high word.
						; 7375			SC_#, #/3,	;for ENORM.
U 2426, 2400,3240,2000,0302,0020,5550,0003	; 7376			CALL [SGNEXT]	;and sign extend it for ENORM as well.
U 2427, 1560,3703,0000,0000,0040,0035,0000	; 7377		GEN AR, NORM, J/ENORM	;put the result back together.
						; 7378	
						; 7379	.ENDIF/EXTEXP
						; 7380	.ENDIF/MODEL.B
						; 7381	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 1
; BYTE.MIC[4,30]	17:12 9-Aug-84			BYTE GROUP -- IBP, ILDB, LDB, IDPB, DPB			

						; 7382	.TOC	"BYTE GROUP -- IBP, ILDB, LDB, IDPB, DPB"
						; 7383	
						; 7384		.DCODE
						; 7385	;133:	R,		J/IBP		;OR ADJBP
D 0134, 6000,0310				; 7386	134:	RW,		J/ILDB		;CAN'T USE RPW BECAUSE OF FPD
D 0135, 4000,0314				; 7387		R,		J/LDB		;
D 0136, 6000,0400				; 7388		RW,		J/IDPB		;
D 0137, 4000,0404				; 7389		R,		J/DPB		;
						; 7390		.UCODE
						; 7391	
						; 7392	;ALL FIVE INSTRUCTIONS OF THIS GROUP ARE CALLED WITH THE BYTE POINTER
						; 7393	;IN THE AR.  ALL INSTRUCTIONS SHARE COMMON SUBROUTINES, SO THAT
						; 7394	;THE 10/11 INTERFACE AND STRING MAY ALSO USE THESE SUBROUTINES
						; 7395	
						; 7396	=0****00*000
						;;7397	.IFNOT/OWGBP
						;;7398	ILDB:	BR/AR,P_P-S,BYTE DISP,		;START IBP
						;;7399			CALL.M,J/IBPS		;AND CALL SUBR
						;;7400	=100
						;;7401	.IFNOT/XADDR
						;;7402	LDB:	ARX_AR,SC_P,CALL,J/BYTEA	;BEGIN EA COMPUTATION
						;;7403	.IF/XADDR
						;;7404	LDB:	ARX_AR,SC_P,BYTE DISP,
						;;7405			CALL,J/BYTEA		;BEGIN EA COMPUTATION
						;;7406	.ENDIF/XADDR
						;;7407		SC_FE+SC,CALL,J/LDB1		;SC_P+S WHILE LOADING AR
						;;7408	=111	AC0_AR,CLR FPD,I FETCH,J/NOP	;DONE
						;;7409	=
						; 7410	.IF/OWGBP				;[265][251]
U 0310, 2432,4001,0000,0000,0000,5050,0000	; 7411	ILDB:	SKP PC SEC0,CALL,J/GTST		;TEST FOR NOT SEC 0 AND OWGBP [266]
U 0311, 1660,4001,0040,0000,0000,0010,0000	; 7412		BR/AR,J/ILDB0			; NO, CONTINUE
						; 7413		BYTE PREV & CLR SR3,
U 0312, 2430,0001,0000,0000,0000,1650,0640	; 7414			CALL [GBYTE]		;[255]YES, ENA PREVIOUS
						; 7415		GEN AR, EXT BYTE READ,		;GET BYTE
U 0313, 1665,3703,0000,0000,1111,1610,0620	; 7416			SR_#, J/LDB01		;[255]ALLOW PREVIOUS ENABLE.
						; 7417	=100
U 0314, 2432,4001,0000,0000,0000,5050,0000	; 7418	LDB:	SKP PC SEC0,CALL,J/GTST		;TEST FOR NOT SEC 0 AND OWGBP [266]
U 0315, 1664,0001,0440,0000,1000,0010,0000	; 7419		ARX_AR,BR/AR,J/LDB0		;NO, CONTINUE
						; 7420		BYTE PREV & SET SR3,
U 0316, 2430,4001,0000,0000,0000,1650,0641	; 7421			CALL [GBYTE]		;[255]YES, ENA PREVIOUS
						; 7422		GEN AR,EXT BYTE READ,		;GET BYTE
U 0317, 1665,3703,0000,0000,1111,1610,0620	; 7423			SR_#, J/LDB01		;[255]ALLOW PREVIOUS ENABLE.
						; 7424	=
						; 7425	=000
						; 7426	ILDB0:	P_P-S,BYTE DISP,
U 1660, 1700,4001,0000,5110,3021,0074,0200	; 7427			CALL.M,J/IBPS		;START IBP
						; 7428	=100
						; 7429	LDB0:	ARX_AR,SC_P,BYTE DISP,
U 1664, 1714,4001,0400,0102,1020,0074,0000	; 7430			CALL,J/BYTEA		;DO EA COMP
U 1665, 2444,0001,0000,2002,0000,0050,0000	; 7431	LDB01:	SC_FE+SC,CALL,J/LDB1		;SC_P+S WHILE LOAD AR
U 1667, 0075,4001,0000,0000,0217,1014,0000	; 7432	=111	AC0_AR,CLR FPD,I FETCH,J/NOP	;DONE
						; 7433	
						; 7434	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 2
; BYTE.MIC[4,30]	17:12 9-Aug-84			BYTE GROUP -- IBP, ILDB, LDB, IDPB, DPB			

						; 7435	
						; 7436	=0
U 2430, 3226,4001,0040,0000,0000,0050,0000	; 7437	GBYTE:	BR/AR,CALL,J/CNV2WD		;CONVERT TO A 2WD FORMAT
U 2431, 0476,0001,0000,0102,0000,0005,0000	; 7438		SC_P,SR DISP			;SAVE P, INC POINTER ?
U 0476, 0571,3242,2000,0000,0020,0074,0000	; 7439	=1110	AR_BR,BYTE DISP,CALL,J/INC2WD	;YES, (INC ADDR) AND STORE
U 0477, 0001,3202,2000,0000,0000,1603,0300	; 7440		AR_BR,SR_#,#/300,RETURN1	;[335][353] GET whole ADDRESS and
						; 7441						; reset memory state
						; 7442	=0
U 2432, 2434,4001,0000,5132,0020,5110,0045	; 7443	GTST:	SC_P-#,#/45, SKP SCAD0,J/GTST1	;TEST FOR ONE WORD GLOBAL [265]
U 2433, 0001,4001,0000,0000,0000,0003,0000	; 7444		RETURN1				;NOT IN SEC 0
						; 7445	=0
U 2434, 0002,0001,0040,0000,0000,0003,0000	; 7446	GTST1:	BR/AR,RETURN2			;DO OWG CODE
U 2435, 0001,4001,0000,0000,0000,0003,0000	; 7447		RETURN1				;NOT OWG
						; 7448	.ENDIF/OWGBP				;[265][251]
						; 7449	=
						; 7450	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 3
; BYTE.MIC[4,30]	17:12 9-Aug-84			BYTE GROUP -- IBP, ILDB, LDB, IDPB, DPB			

						; 7451	
						; 7452	=0****00*000
						;;7453	.IFNOT/OWGBP				;[265]
						;;7454	IDPB:	BR/AR,P_P-S,BYTE DISP,		;START IBP
						;;7455			CALL.M,J/IBPS		
						;;7456	=100
						;;7457	.IFNOT/XADDR
						;;7458	.IFNOT/SMP
						;;7459	DPB:	ARX_AR,SC_P,CALL,J/BYTEA	;COMPUTE EFFECTIVE BYTE ADDR
						;;7460	.IF/SMP
						;;7461	DPB:	ARX_AR,SC_P,CALL,J/BYTEAP	;COMPUTE EFFECTIVE BYTE ADDR
						;;7462	.ENDIF/SMP
						;;7463	.IF/XADDR
						;;7464	.IFNOT/SMP				;[324]
						;;7465	DPB:	ARX_AR,SC_P,BYTE DISP,
						;;7466			CALL,J/BYTEA		;COMPUTE EFFECTIVE BYTE ADDR
						;;7467	.IF/SMP					;[324]
						;;7468	DPB:	ARX_AR,SC_P,BYTE DISP,		;[324] SMP. Must interlock
						;;7469			CALL,J/BYTEAP		;COMPUTE EFFECTIVE BYTE ADDR
						;;7470	.ENDIF/SMP				;[324]
						;;7471	.ENDIF/XADDR
						;;7472	=101
						;;7473		AR_AC0,TIME/3T,SC_#-SC,#/36.,	;COMPUTE 36-P
						;;7474			CALL,SKP SCAD0,J/DPB1	;CALL DEPOSITOR
						;;7475	=111
						;;7476	BFIN:	FIN STORE,I FETCH,J/CLRFPD	;DONE
						; 7477	.IF/OWGBP				;[265][251]
U 0400, 2432,4001,0000,0000,0000,5050,0000	; 7478	IDPB:	SKP PC SEC0,CALL,J/GTST		;TEST FOR NOT SEC 0 AND OWGBP [266]
U 0401, 1670,0001,0040,0000,0000,0010,0000	; 7479		BR/AR,J/IDPB0			; NO, CONTINUE
						; 7480		BYTE PREV & CLR SR3,
U 0402, 2430,0001,0000,0000,0000,1650,0640	; 7481			CALL [GBYTE]		;[255]YES, ENA PREVIOUS
						; 7482		GEN AR, EXT BYTE READ,		;GET BYTE
U 0403, 1675,3703,0000,0000,1111,0010,0620	; 7483			J/DPB01
						; 7484	=100
U 0404, 2432,4001,0000,0000,0000,5050,0000	; 7485	DPB:	SKP PC SEC0,CALL,J/GTST		;TEST FOR NOT SEC 0 AND OWGBP [266]
U 0405, 1674,4001,0440,0000,1000,0010,0000	; 7486		ARX_AR,BR/AR,J/DPB0		;NO, CONTINUE
						; 7487		BYTE PREV & SET SR3,
U 0406, 2430,4001,0000,0000,0000,1650,0641	; 7488			CALL [GBYTE]		;[255]YES, ENA PREVIOUS
						; 7489		GEN AR,EXT BYTE READ,		;GET BYTE
U 0407, 1675,3703,0000,0000,1111,0010,0620	; 7490			J/DPB01			;[256]
						; 7491	=
						; 7492	=000
						; 7493	IDPB0:	P_P-S,BYTE DISP,		;START IBP
U 1670, 1700,4001,0000,5110,3021,0074,0200	; 7494			CALL.M,J/IBPS
						; 7495	=100
						;;7496	.IF/SMP
						;;7497	DPB0:	ARX_AR,SC_P,BYTE DISP,
						;;7498			CALL,J/BYTEAP		;DO EA COMP
						; 7499	.IFNOT/SMP
						; 7500	DPB0:	ARX_AR,SC_P,BYTE DISP,
U 1674, 1714,4001,0400,0102,1020,0074,0000	; 7501			CALL,J/BYTEA		;DO EA COMP
						; 7502	.ENDIF/SMP
						; 7503	DPB01:	AR_AC0,TIME/3T,SC_#-SC,#/36.,	;COMPUTE 36-P
U 1675, 2452,3240,2000,5302,0020,5150,0044	; 7504			CALL,SKP SCAD0,J/DPB1	;CALL DEPOSITOR
						; 7505	=111
U 1677, 0020,4001,0003,0000,0217,0010,0000	; 7506	BFIN:	FIN STORE,I FETCH,J/CLRFPD	;DONE
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 3-1
; BYTE.MIC[4,30]	17:12 9-Aug-84			BYTE GROUP -- IBP, ILDB, LDB, IDPB, DPB			

						; 7507	.ENDIF/OWGBP				;[265][251]
						; 7508	=
						; 7509	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 4
; BYTE.MIC[4,30]	17:12 9-Aug-84			INCREMENT BYTE POINTER SUBROUTINE			

						; 7510	.TOC	"INCREMENT BYTE POINTER SUBROUTINE"
						; 7511	
						; 7512	;THIS SUBROUTINE IS CALLED BY THE INSTRUCTIONS ILDB, IDPB AS
						; 7513	;WELL AS THE MICROCODED 10/11 INTERFACE HANDLER.
						; 7514	;CALL WITH BYTE DISP TESTING FPD AND SIGN OF P-S
						; 7515	;[TIME=2+2(BP OVFLO)]
						; 7516	
						;;7517	.IFNOT/XADDR
						;;7518	=010					;BR12 IRELEVANT
						;;7519	IBPS:	STORE,RETURN4			;SIMPLE, NO OVERFLOW
						;;7520		FE_#,#/36.,GEN AR+1,TIME/2T,	;HERE IF OVRFLO OF WORD
						;;7521			ARX_AR,J/NXTWRD
						;;7522		AR_BR,RETURN4			;FPD WAS SET, RESTORE AR
						;;7523		AR_BR,RETURN4			; AND CONVERT TO LDB OR DPB
						;;7524						;TEST BR12 ONLY
						;;7525	NXTWRD:	AR_AR+1,P_FE-S,STORE,
						;;7526			TIME/2T,RETURN4
						;;7527	
						;;7528	
						;;7529	.TOC	"BYTE EFFECTIVE ADDRESS EVALUATOR - NO XADDR"
						;;7530	
						;;7531	;ENTER WITH POINTER IN AR, ARX, AND BR
						;;7532	;RETURN1 WITH (EA) LOADING INTO AR AND ARX,
						;;7533	;FPD SET, P IN SC, AND S IN FE
						;;7534	;[TIME=4+1(INDEXED)+?(INDIRECT)]
						;;7535	
						;;7536	BYTEA:	MEM_AR,FE_S,SET FPD,		;PUT AWAY UPDATED POINTER
						;;7537			EA MOD DISP		;EVAL BP ADDR
						;;7538	=1100
						;;7539	BFETCH:	GEN ARX,BYTE READ,RETURN1	;START DATA FETCH
						;;7540		GEN ARX+XR,BYTE READ,RETURN1	;ADDRESS IS INDEXED
						;;7541		GEN ARX,BYTE INDRCT,J/BYTEI	;DO INDIRECT
						;;7542		GEN ARX+XR,BYTE INDRCT,J/BYTEI	;INDIRECT INDEXED!!!
						;;7543	
						;;7544	BYTEI:	ARX_MEM,SKP INTRPT		;WAIT FOR INDIRECT WORD
						;;7545	=0	EA MOD DISP,J/BFETCH		;PROCEED IN ADDR EVAL
						;;7546		SR DISP,J/CLEAN			;INTERRUPTED, CLEAN UP AS REQ'D
						;;7547	.IF/SMP
						;;7548	BYTEAP:	MEM_AR,FE_S,SET FPD,		;PUT AWAY UPDATED POINTER
						;;7549			EA MOD DISP		;EVAL BP ADR
						;;7550	
						;;7551	=1100
						;;7552	BFETCHP:GEN ARX,BYTE RPW,RETURN1	;START DATA FETCH.  RPW CYCLE
						;;7553		GEN ARX+XR,BYTE RPW,RETURN1	;ADDRESS IS INDEXED
						;;7554		GEN ARX,BYTE INDRCT,J/BYTEIP	;DO INDIRECT
						;;7555		GEN ARX+XR,BYTE INDRCT,J/BYTEIP	;INDIRECT INDEXED!!!
						;;7556	
						;;7557	BYTEIP:	ARX_MEM,SKP INTRPT		;WAIT FOR INDIRECT WORD
						;;7558	=0	EA MOD DISP,J/BFETCHP		;[231] PROCEED IN ADR EVAL
						;;7559		SR DISP,J/CLEAN			;INTERRUPTED.  CLEAN UP AS REQ'D
						;;7560	.ENDIF/SMP
						; 7561	.IF/XADDR
						; 7562	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 5
; BYTE.MIC[4,30]	17:12 9-Aug-84			INCREMENT BYTE POINTER SUBROUTINE			

						; 7563	;IBP SUBROUTINE
						; 7564	; CALL WITH BP IN AR, P_P-S, BYTE DISP
						; 7565	
						; 7566	=000
U 1700, 0004,0001,0000,0000,0016,0003,0000	; 7567	IBPS:	STORE,RETURN4			;SIMPLE CASE
						; 7568		FE_#,#/36.,GEN AR+1,TIME/2T,	;POINTER OVERFLOW, B12=0
U 1701, 2436,4003,0000,0301,0000,0010,0044	; 7569			J/NXTWRD
U 1702, 0004,0001,0000,0000,0016,0003,0000	; 7570		STORE,RETURN4			;B12=1 BUT NO OVERFLOW
						; 7571		FE_#,#/36.,GEN AR+1,TIME/2T,	;OVERFLOW, B12=1
U 1703, 2436,4001,0000,0301,0000,7510,0044	; 7572			SKP -VMA SEC0,J/NXTWRD
U 1704, 0004,3242,2000,0000,0000,0003,0000	; 7573		AR_BR,RETURN4
U 1705, 0004,3242,2000,0000,0000,0003,0000	; 7574		AR_BR,RETURN4
U 1706, 0004,3242,2000,0000,0000,0003,0000	; 7575		AR_BR,RETURN4
U 1707, 0004,3242,2000,0000,0000,0003,0000	; 7576		AR_BR,RETURN4
						; 7577	=0
						; 7578	NXTWRD:	P_FE-S,AR_AR+1,TIME/2T,		;SINGLE WORD BP
U 2436, 0004,4001,2000,5010,3016,0603,0200	; 7579			STORE,RETURN4
U 2437, 3160,4001,0000,5010,3012,3622,0200	; 7580		VMA_VMA+1,LOAD AR,P_FE-S.S	;DOUBLE... GET OTHER HALF
U 3160, 3161,3240,0403,0000,1022,0010,0000	; 7581		ARX_AR,AR_MEM
U 3161, 2440,4003,2040,0102,0020,4510,0000	; 7582		SC_P,SKP AR0,BR/AR,AR_AR+1	;IFIW OR EFIW?
U 2440, 3162,4001,0000,2400,3016,0110,0000	; 7583	=0	P_SC#,STORE,J/NXTW2		;EFIW, CARRY STOPS AT B6
U 2441, 3162,3202,0000,0000,0016,0610,0002	; 7584		ARL_BRL,STORE			;IFIW, CARRY STOPS AT B18
						; 7585	NXTW2:	FIN STORE,AR_ARX,
U 3162, 0004,0001,4003,0000,2016,3503,0000	; 7586			VMA_VMA-1,STORE,RETURN4
						; 7587	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 6
; BYTE.MIC[4,30]	17:12 9-Aug-84			INCREMENT BYTE POINTER SUBROUTINE			

						; 7588	;HERE TO EVALUATE EFFECTIVE ADDRESS OF BYTE POINTER.
						; 7589	; ENTER AT BYTEA WITH BYTE DISP (SCAD0=0), EXCEPT FOR EXTENDED
						; 7590	; INSTRUCTION SET, WHICH MUST GET SECOND PART OF POINTER FROM
						; 7591	; AC AND MUST NOT SET FPD, AND THEREFORE ENTERS AT BFETCH (FOR
						; 7592	; SINGLE-WORD POINTERS) OR BYTEI (FOR LONG POINTERS).
						; 7593	
						; 7594	=100
						; 7595	BYTEA:	MEM_AR,FE_S,SET FPD,
U 1714, 0534,2301,0003,2411,0002,1136,0100	; 7596			EA MOD DISP,J/BFETCH
U 1715, 3163,4001,0000,2411,0011,3610,0610	; 7597		READ BP2,FE_S,J/BPART2		;GET SECOND WORD
U 1716, 1714,4001,0003,0000,0002,7510,0000	; 7598		MEM_AR,SKP -VMA SEC0,J/BYTEA	;B12=1.  OBEY IF NOT SEC0
						; 7599	=
						; 7600	=0000
						; 7601	BXA:	GEN ARX,GLOBAL,BYTE INDRCT,
U 0520, 2442,3713,0000,0000,1111,7010,0610	; 7602			SKP INTRPT,J/BYTEI
						; 7603		GEN ARX+XR,GLOBAL,BYTE INDRCT,
U 0521, 2442,0610,0002,4000,1131,7010,0610	; 7604			SKP INTRPT,J/BYTEI
						; 7605		GEN ARX,GLOBAL,BYTE INDRCT,
U 0522, 2442,3713,0000,0000,1111,7010,0610	; 7606			SKP INTRPT,J/BYTEI
						; 7607		GEN ARX+XR,GLOBAL,BYTE INDRCT,
U 0523, 2442,0610,0002,4000,1131,7010,0610	; 7608			SKP INTRPT,J/BYTEI
						; 7609	
U 0524, 0001,3711,0000,0000,1111,0003,0620	; 7610		GEN ARX,GLOBAL,BYTE READ,RETURN1
U 0525, 0001,0610,0002,0000,1131,0003,0620	; 7611		GEN ARX+XR,GLOBAL,BYTE READ,RETURN1
U 0526, 0001,3711,0000,0000,1111,0003,0620	; 7612		GEN ARX,GLOBAL,BYTE READ,RETURN1
U 0527, 0001,0610,0002,0000,1131,0003,0620	; 7613		GEN ARX+XR,GLOBAL,BYTE READ,RETURN1
						; 7614	
U 0530, 0170,0001,0000,0301,0000,0010,0024	; 7615		FE_#,#/24,J/PF24		;ILLEGAL FORMAT INDIRECT WORD
U 0531, 0170,0001,0000,0301,0000,0010,0024	; 7616		FE_#,#/24,J/PF24
U 0532, 0170,0001,0000,0301,0000,0010,0024	; 7617		FE_#,#/24,J/PF24
U 0533, 0170,0001,0000,0301,0000,0010,0024	; 7618		FE_#,#/24,J/PF24
						; 7619	
						; 7620	BFETCH:
U 0534, 0001,3701,0000,0000,0111,0003,0620	; 7621		GEN AR,BYTE READ,RETURN1
U 0535, 0001,0600,0002,4000,2131,0003,0620	; 7622		GEN AR+XR,INDEXED,BYTE READ,RETURN1
						; 7623		GEN AR,BYTE INDRCT,
U 0536, 2442,3703,0000,0000,0111,7010,0610	; 7624			SKP INTRPT,J/BYTEI
						; 7625		GEN AR+XR,INDEXED,BYTE INDRCT,
U 0537, 2442,0600,0002,0000,2131,7010,0610	; 7626			SKP INTRPT,J/BYTEI
						; 7627	
U 3163, 2442,0001,0000,0000,0000,1110,0100	; 7628	BPART2:	SET FPD				;SET BEFORE FAULTING
						; 7629	=0
U 2442, 3164,3200,0003,0000,0022,2510,0000	; 7630	BYTEI:	ARX_MEM,LONG EN,J/BYTEI2
U 2443, 0144,3200,0003,0000,0022,7710,0000	; 7631		ARX_MEM,TAKE INTRPT
U 3164, 0520,2301,4002,0000,2020,0036,0000	; 7632	BYTEI2:	AR_ARX,XR,EA MOD DISP,TIME/3T,J/BXA
						; 7633	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 7
; BYTE.MIC[4,30]	17:12 9-Aug-84			BYTE EFFECTIVE ADDRESS EVALUATOR FOR XADDR SMP LDB

						; 7634	.TOC	"BYTE EFFECTIVE ADDRESS EVALUATOR FOR XADDR SMP LDB"
						; 7635	
						; 7636	;
						; 7637	;	The following code segment is virtually identical to the preceding
						; 7638	;	hunk.  Unfortunately, in order to make DPB do an RPW interlock and
						; 7639	;	allow extended addressing, it is necessary to completely duplicate
						; 7640	;	the effective address evaluation code (as it exits from a 16 word
						; 7641	;	dispatch block).  Thus we waste gross amounts of microstore.  Ugh.
						; 7642	;
						;;7643	.IF/SMP					; [303]
						;;7644	=100
						;;7645	BYTEAP:	MEM_AR,FE_S,SET FPD,
						;;7646			EA MOD DISP,J/BFETCHP
						;;7647		READ BP2,FE_S,J/BPART2P		;GET SECOND WORD
						;;7648		MEM_AR,SKP -VMA SEC0,J/BYTEAP	;B12=1.  OBEY IF NOT SEC0
						;;7649	=
						;;7650	=0000
						;;7651	BXAP:	GEN ARX,GLOBAL,BYTE INDRCT,
						;;7652			SKP INTRPT,J/BYTEIP
						;;7653		GEN ARX+XR,GLOBAL,BYTE INDRCT,
						;;7654			SKP INTRPT,J/BYTEIP
						;;7655		GEN ARX,GLOBAL,BYTE INDRCT,
						;;7656			SKP INTRPT,J/BYTEIP
						;;7657		GEN ARX+XR,GLOBAL,BYTE INDRCT,
						;;7658			SKP INTRPT,J/BYTEIP
						;;7659	
						;;7660		GEN ARX,GLOBAL,BYTE RPW,RETURN1	; [303] Interlock for SMP
						;;7661		GEN ARX+XR,GLOBAL,BYTE RPW,RETURN1
						;;7662		GEN ARX,GLOBAL,BYTE RPW,RETURN1
						;;7663		GEN ARX+XR,GLOBAL,BYTE RPW,RETURN1
						;;7664	
						;;7665		FE_#,#/24,J/PF24		;ILLEGAL FORMAT INDIRECT WORD
						;;7666		FE_#,#/24,J/PF24
						;;7667		FE_#,#/24,J/PF24
						;;7668		FE_#,#/24,J/PF24
						;;7669	
						;;7670	BFETCHP: GEN AR,BYTE RPW,RETURN1
						;;7671		GEN AR+XR,INDEXED,BYTE RPW,RETURN1
						;;7672		GEN AR,BYTE INDRCT,
						;;7673			SKP INTRPT,J/BYTEIP
						;;7674		GEN AR+XR,INDEXED,BYTE INDRCT,
						;;7675			SKP INTRPT,J/BYTEIP
						;;7676	
						;;7677	BPART2P: SET FPD				;SET BEFORE FAULTING
						;;7678	=0
						;;7679	BYTEIP:	ARX_MEM,LONG EN,J/BYTEI2P
						;;7680		ARX_MEM,TAKE INTRPT
						;;7681	BYTEI2P: AR_ARX,XR,EA MOD DISP,TIME/3T,J/BXAP
						; 7682	.ENDIF/SMP
						; 7683	.ENDIF/XADDR
						; 7684	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 8
; BYTE.MIC[4,30]	17:12 9-Aug-84			LOAD BYTE SUBROUTINE					

						; 7685	.TOC	"LOAD BYTE SUBROUTINE"
						; 7686	;ENTER WITH S IN FE, P+S IN SC, AND AR LOAD IN PROGRESS
						; 7687	;SKP INTERRUPT AT ENTRY IS OPTIONAL
						; 7688	;RETURN2 WITH BYTE RIGHT JUSTIFIED IN AR
						; 7689	;[TIME=7]
						; 7690	=0
						; 7691	LDB1:	AR_MEM,SC_#-SC,#/36.,SKP SCAD0,	;36-(P+S)
U 2444, 2446,3200,0003,5302,0022,5110,0044	; 7692			TIME/3T,J/LDB2
U 2445, 0040,3240,0003,0000,0022,0005,0000	; 7693		AR_MEM,SR DISP,J/CLEAN		;HERE IF INTERRUPT PENDING
						; 7694	
						; 7695	=0
U 2446, 2450,3401,2400,0000,0000,0013,0000	; 7696	LDB2:	ARX_SHIFT,AR_0S,SC_FE,J/SHIFT	;BYTE IN ARX HI, READY TO SHIFT
						; 7697		ARX_AR,AR_0S,			;P+S > 36, PUT BYTE IN ARX HI
U 2447, 2450,3441,2400,2002,1020,5110,0000	; 7698			SC_FE+SC,SKP SCAD0	;ADJUST S AND SHIFT BYTE
						; 7699	
						; 7700	;PUT BYTE INTO AR RIGHT-JUSTIFIED
						; 7701	; THIS INSTRUCTION ALSO CALLED ALONE AS A SUBROUTINE
						; 7702	
						; 7703	=0
U 2450, 0002,0001,4000,0000,0000,0003,0000	; 7704	SHIFT:	AR_SHIFT,RETURN2		;RETURN WITH BYTE IN AR
U 2451, 0002,4001,0000,0000,0000,0003,0000	; 7705		RETURN2				;BYTE WAS OFF THE END, RETURN AR=0
						; 7706	
						; 7707	
						; 7708	.TOC	"DEPOSIT BYTE SUBROUTINE"
						; 7709	;ENTER WITH BYTE RIGHT JUSTIFIED IN AR, POINTER IN BR,
						; 7710	; S IN FE, 36-P IN SC, AND LOAD AR-ARX STARTED
						; 7711	; SKP IF P>36
						; 7712	;RETURN3 WITH FINAL STORE IN PROGRESS
						; 7713	;[TIME=11]
						; 7714	
						; 7715	=0
						; 7716	DPB1:	MQ_AR,AR_MEM,ARX_MEM,		;GET WORD TO ROTATE 36-P
						; 7717			GEN FE-SC-1,TIME/3T,	; [303] COMPUTE S-(36-P)-1
U 2452, 2454,3200,0013,1000,1022,5110,0000	; 7718			SKP SCAD0,J/DPB2	;CHECK THAT P+S<=36
						; 7719	.IFNOT/SMP				;[335]
U 2453, 0003,3200,0003,0000,0022,0003,0000	; 7720		AR_MEM,RETURN3			;[226]P>36, STORE NOTHING
						;;7721	.IF/SMP					;[335]
						;;7722		AR_MEM,SC_0,J/RELMEM		;[335] Must release memory if RPW
						; 7723	.ENDIF/SMP
						; 7724	
						; 7725	=0
U 2454, 2455,0001,0000,2401,0000,0010,0000	; 7726	DPB2:	FE_SC				;P+S>36, S_36-P
						;;7727	.IFNOT/MODEL.B
						;;7728	.IF/SMP
						;;7729		ARX_AR				;WORD TO ROTATE TO ARX
						;;7730	.ENDIF/SMP
						; 7731	.ENDIF/MODEL.B
						; 7732		ARX_SHIFT,AR_MQ,SC_FE,		;ARX HAS P,X,S
U 2455, 3165,3723,2400,5301,0000,0013,0110	; 7733			FE_#-SC,#/72.		;SC_S, FE_72-(36-P)=36+P
U 3165, 3166,4001,0000,5302,0000,0010,0044	; 7734		SC_#-SC,#/36.			;SC_36-S (KNOWN .LE. P)
						; 7735		AR_SHIFT,ARX_SHIFT,		;S,P,X
U 3166, 3167,0001,4400,5002,0000,0010,0000	; 7736			SC_FE-SC		;SC_(36+P)-(36-S)=P+S
U 3167, 0003,0001,4000,0000,0016,0003,0000	; 7737	RELMEM:	AR_SHIFT,STORE,RETURN3		;[335] DONE, STORE IT BACK
						; 7738	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 9
; BYTE.MIC[4,30]	17:12 9-Aug-84			IBP, ADJBP						

						; 7739	.TOC	"IBP, ADJBP"
						; 7740	
						; 7741	;IBP OR ADJBP
						; 7742	;IBP IF AC#0, ADJBP OTHERWISE
						; 7743	; HERE WITH THE BASE POINTER IN AR
						; 7744	
						; 7745	;IBP:	SKP AC#0			;IS THIS IBP OR ADJBP?
						; 7746	.IF/ADJBP
						; 7747	=000
						;;7748	.IFNOT/XADDR
						;;7749	IBP1:	T0_AR,BR/AR,			;SAVE POINTER FOR ADJBP
						;;7750			SC_S,AR_0S,CALL,J/GETSC	; GET BYTE SIZE
						; 7751	.IF/XADDR
						; 7752	IBP1:	T0_AR,BR/AR,BYTE DISP,		;SAVE POINTER, TEST B12
U 1720, 1325,3441,2047,2412,0020,1074,0166	; 7753			SC_S,AR_0S,CALL,J/GETSC	;GET SIZE, SECOND WORD IF NEEDED
						; 7754	.ENDIF/XADDR
						; 7755	.ENDIF/ADJBP
						; 7756	=001
						; 7757	IBP2:	BR/AR,P_P-S,CALL.M,		;NEW P UNLESS OVERFLOW
U 1721, 1700,0001,0040,5110,3021,0074,0200	; 7758			BYTE DISP,J/IBPS	;[245]		
						; 7759	.IF/ADJBP
U 1722, 3170,3202,2040,0000,0000,0010,0000	; 7760		BR/AR,AR_BR,J/ADJBP		;HOLD S IN BR
						; 7761	.ENDIF/ADJBP
U 1725, 0075,4001,0003,0000,0217,0010,0000	; 7762	=101	FIN STORE,I FETCH,J/NOP		;IBP DONE
						; 7763	=
						; 7764	
						; 7765	;HERE FOR ADJUST BYTE POINTER (IBP WITH NON-ZERO AC)
						; 7766	; BYTE SIZE (S) IS RIGHT ADJUSTED IN BR AND MQ
						; 7767	; FULL POINTER IS IN AR, AND SAVED IN T0
						; 7768	
						; 7769	.IF/ADJBP
						; 7770	
						; 7771	ADJBP:	SC_P,AR+ARX+MQ_0.M,		;GET P
U 3170, 0720,7162,0000,0102,0041,5410,0170	; 7772			SKP BR EQ		;CHECK SIZE IS NON-ZERO
						; 7773	
U 0720, 3225,4001,0020,2400,3001,0050,0200	; 7774	=00	BRX/ARX,P_SC,CALL.M,J/SIXDIV	;DIVIDE P BY S
U 0721, 0067,3200,2007,0000,0020,0010,0166	; 7775		AR_T0,J/IFSTAC			;OOPS, S=0, RETURN UNALTERED POINTER
						; 7776		T1_AR,AR_0S,ARX_0S,		;SAVE P/S
U 0722, 0764,3401,2207,5002,0000,1010,0171	; 7777			SC_FE-SC		;36-P IN SC
						; 7778	=
U 0764, 3225,4001,0000,2400,3001,0050,0300	; 7779	=0*	P_SC,MQ_0.M,CALL.M,J/SIXDIV	;36-P IN AR0-5
U 0766, 2456,0600,2007,0000,0040,5610,0171	; 7780		AR_AR+T1,SKP AD NE		;(P/S)+(36-P/S)=BYTES/WORD
U 2456, 0213,0001,0000,0000,0217,0010,0000	; 7781	=0	I FETCH,J/NODIVD		;ABORT, BYTES/WORD=0
U 2457, 3171,0001,4047,0000,2000,1010,0171	; 7782		T1_AR,BR/AR,AR_ARX		;SAVE BYTES/WORD, READY TO
						; 7783						; DIVIDE BY IT
U 3171, 3172,3721,2007,0000,0000,1010,0172	; 7784		T2_AR,AR_MQ			;SAVE REMAIN(36-P/S), GET (36-P)/S
						; 7785		AR_AR*AC0,AD/A+B,ARL/AD,	;ADJUSTMENT IN AR
U 3172, 1734,0600,2000,4000,0021,0010,0142	; 7786			ARX+MQ_0.M
						; 7787	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 10
; BYTE.MIC[4,30]	17:12 9-Aug-84			IBP, ADJBP						

						; 7788	;COMPUTE QUOTIENT Q AND REMAINDER R OF ADJUSTMENT/(BYTES/WORD)
						; 7789	; SUCH THAT ADJUSTMENT=Q*(BYTES/WORD)+R, 1 .LE. R .LE. (BYTES/WORD)
						; 7790	; SINCE ADJUSTMENT IS CALCULATED RELATIVE TO LEFT-MOST BYTE OF
						; 7791	; A WORD, THIS GIVES Q AS THE NUMBER OF WORDS BY WHICH TO INDEX THE
						; 7792	; BYTE POINTER, AND R AS THE NUMBER OF BYTES FROM THE LEFT OF THE
						; 7793	; WORD.  MULTIPLYING R BY THE BYTE SIZE WILL GIVE THE NUMBER OF BITS
						; 7794	; FROM THE LEFTMOST BYTE, AND ADDING REMAIN(36-P/S) WILL GIVE NUMBER
						; 7795	; OF BITS FROM BIT 0.  FINALLY, WE MUST SUBTRACT THIS FROM 36 TO GET
						; 7796	; THE CORRECT P FIELD, WHICH IS ALWAYS RELATIVE TO THE RIGHT EDGE OF
						; 7797	; THE WORD.
						; 7798	;
						; 7799	;  SR1 = 1	DON'T DO FETCH OF NEXT INST (ADJBP WITH OWGBP)
						; 7800	
U 1734, 2160,0001,0000,4402,0000,1050,0000	; 7801	=100	AC0_AR,SC_1,CALL,J/DIV2		;DO THE BASIC DIVIDE
						; 7802	=110	ARX_-BRX,FE_#,#/-4,		;NEG QUO ==> NEG REMAIN
U 1736, 1744,5162,0600,0301,0020,0005,0774	; 7803			SR DISP,J/ADJD1		;TEST FOR DOUBLE-WORD POINTER
						; 7804		ARX/MQ,SKP AR NE,FE_#,#/-4,	;POS QUO.  IS REMAIN .GT. 0?
U 1737, 1744,3703,0300,0301,0040,5405,0774	; 7805			SR DISP
						;;7806	.IFNOT/XADDR
						;;7807	=10
						; 7808	.IF/XADDR
						; 7809	=100
						; 7810	.ENDIF/XADDR
U 1744, 3202,0600,2007,0000,0020,0010,0171	; 7811	ADJD1:	AR_AR+T1,J/ADJD2		;INCREASE REM TO MEET CONSTRAINT
						; 7812		BR/AR,AR_ARX (ADX),		;REMAIN IN RANGE,
U 1745, 3203,3721,6040,0000,0001,0010,0060	; 7813			ARL+ARX_0.M,J/ADJD3	; QUOTIENT TO ARR
						; 7814	.IF/XADDR
U 1746, 3173,0600,2007,0000,0020,0010,0171	; 7815		AR_AR+T1,J/ADJX2		;INCREASE REMAIN & DECR QUO
						; 7816	.IF/OWGBP
U 1747, 1463,4001,4040,0000,2000,0005,0000	; 7817	ADJX3:	BR/AR,AR_ARX,SR DISP		;[251] REM TO BR, OWGBP ?
U 1463, 2460,3200,2001,0000,0020,5510,0000	; 7818	=011	AR_AC1,SKP AD0,J/ADJX4		; NO, WD2 EFIW OR IFIW?
U 1467, 3174,0600,2007,4000,0020,0010,0166	; 7819		AR_AR+T0,J/ADJX1		; YES, INC ADDRESS
						;;7820	.IFNOT/OWGBP
						;;7821	ADJX3:	BR/AR,AR_AC1,SKP AD0,J/ADJX4	;REM TO BR, WD2 EFIW OR IFIW?
						; 7822	.ENDIF/OWGBP
U 3173, 1747,1701,0600,0000,0020,0010,0000	; 7823	ADJX2:	ARX_ARX-1,J/ADJX3
						; 7824	.IF/OWGBP
U 3174, 3175,3401,0207,0000,0000,1010,0166	; 7825	ADJX1:	T0_AR,ARX_0S			;SAVE NEW ADDRESS
U 3175, 0440,3240,2027,0000,0020,0010,0176	; 7826		AR_E0,BRX/ARX,J/ADJD4		;GET P,S, CLEAR BRX
						; 7827	.ENDIF/OWGBP
						; 7828	=0
						; 7829	.IF/OWGBP
U 2460, 1713,4001,0000,0102,0000,0005,0000	; 7830	ADJX4:	SC_P,SR DISP,J/ADJX7		;[251] EFIW, SAVE 0-5, OWGBP ?
						;;7831	.IFNOT/OWGBP
						;;7832	ADJX4:	SC_P,AR_ARX*AC1,AD/A+B,J/ADJX5	;EFIW, SAVE 0-5
						; 7833	.ENDIF/OWGBP
U 2461, 3200,0610,2001,4000,0020,0610,0000	; 7834		ARL_ARL,AR_ARX*AC1,AD/A+B,J/ADJX6
U 3176, 3200,0001,0000,2400,3001,0010,0200	; 7835	ADJX5:	P_SC				;ADJUSTMENT MUSTN'T TOUCH @,XR
U 3200, 3201,3441,0201,0000,0000,1010,0000	; 7836	ADJX6:	AC1_AR,ARX_0S
U 3201, 0440,3200,2027,0000,0020,0010,0166	; 7837		AR_T0,BRX/ARX,J/ADJD4
						; 7838	.IF/OWGBP
						; 7839	=011
U 1713, 3176,0610,2001,0000,0020,0010,0000	; 7840	ADJX7:	AR_ARX*AC1,AD/A+B,J/ADJX5	;[251] NO, EFIW
U 1717, 3176,0610,2007,4000,0020,0010,0165	; 7841		AR_ARX*E1,AD/A+B,J/ADJX5	;[251] YES, EFIW
						; 7842	.ENDIF/OWGBP
						; 7843	.ENDIF/XADDR
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 10-1
; BYTE.MIC[4,30]	17:12 9-Aug-84			IBP, ADJBP						

						; 7844	
						; 7845	ADJD2:	BR/AR,AR_ARX-1,			;HOLD UPDATED REMAINDER,
U 3202, 3203,1721,6040,0000,0021,0010,0060	; 7846			ARL+ARX_0.M		; GET CORRESPONDING QUOTIENT
						; 7847	ADJD3:	AR_AR+T0,INH CRY18,		;ADD Q TO Y OF POINTER,
U 3203, 0440,0600,2027,0000,0020,0011,0166	; 7848			BRX/ARX,J/ADJD4		;CLR BRX
						; 7849	
						; 7850	;HERE WITH ADDRESS PART OF POINTER UPDATED, P AND S IN AR, AND
						; 7851	; THE REMAINDER IN BR. COMPUTE 36-[ R*S + REMAIN(36-P/S) ].
						; 7852	
						; 7853	=00*
U 0440, 1325,3441,2000,2412,0000,1050,0000	; 7854	ADJD4:	AC0_AR,AR_0S,SC_S,CALL,J/GETSC	;SAVE UPDATED Y, GET SIZE
						; 7855		MQ_AR,AR_T2,CLR ARX,		;M'IER IS S, GET REMAIN(36-P/S)
U 0442, 1546,3200,2017,0000,1020,0550,0172	; 7856			CALL,J/MULREE		;COMPUTE (R*S)+REMAIN(36-P/S)
						; 7857	=11*
						; 7858	.IF/OWGBP
U 0446, 1723,3713,5000,0000,0000,0005,0000	; 7859		AR_ARX*2,SR DISP		;[251] OWGBP ?
U 1723, 3205,0001,0000,0000,0217,1610,0000	; 7860	=011	SR_0,I FETCH,J/ADJD5		; [301] NO, FOLLOW FLOW
U 1727, 3204,3240,2000,5132,0020,0010,0044	; 7861		SC_P-#,#/36.,AR_AC0
U 3204, 3212,4001,0000,5400,3001,0010,0200	; 7862		P_-SC,J/GADJ1			;[251] YES, THAT'S NEW P, DONE
U 3205, 3206,3200,2000,5132,0020,0010,0044	; 7863	ADJD5:	SC_P-#,#/36.,AR_AC0
U 3206, 0065,0001,0000,5400,3001,0010,0200	; 7864		P_-SC,J/STAC			;NO, THAT'S NEW P, DONE
						;;7865	.IFNOT/OWGBP
						;;7866		AR_ARX*2,SR_0,I FETCH		; [301] PUT THAT IN AR0-5
						;;7867		SC_P-#,#/36.,AR_AC0
						;;7868		P_-SC,J/STAC			; [301] THAT'S NEW P, DONE
						; 7869	.ENDIF/OWGBP
						; 7870	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 11
; BYTE.MIC[4,30]	17:12 9-Aug-84			IBP, ADJBP						

						; 7871	;[251]
						; 7872	;HERE IF WE ARE DOING IBP OR ADJBP ON A ONE WORD GLOBAL BYTE POINTER.
						; 7873	
						; 7874	.IF/OWGBP
						; 7875	=0
U 2462, 2466,4001,0000,0000,0000,0010,0000	; 7876	GIBP:	J/GADJBP			;GO DO ADJBP
U 2463, 2464,0001,0000,0000,0000,1610,0640	; 7877		BYTE PREV & CLR SR3		;[256] ENA PREVIOUS
U 2464, 2430,0001,0000,0000,0000,0050,0000	; 7878	=0	CALL,J/GBYTE			;INC POINTER AND STORE
U 2465, 0075,0001,0000,0000,0217,0014,0000	; 7879		I FETCH,CLR FPD,J/NOP		;[263]DONE IBP
						; 7880	=0
						; 7881	GADJBP:	BYTE PREV & SET SR2,
U 2466, 3226,4001,0000,0000,0000,1650,0622	; 7882			CALL [CNV2WD]		;[256] ENA PREVIOUS
U 2467, 3207,3500,2007,4000,0020,0010,0164	; 7883		[AR]_[AR]*FM[EXPMSK],AD/ANDCB	;SAVE P,S AND CLEAR REST
U 3207, 3210,4001,0000,0000,0000,1610,0064	; 7884		SET SR1				;USE E1 INSTEAD OF AC1 IN ADJBP
U 3210, 0631,3242,2027,2412,0000,1010,0176	; 7885		E0_AR,SC_S,AR_BR,BRX/ARX	;SAVE S, ADDRESS TO AR
U 0631, 1325,3441,2007,0000,0000,1050,0166	; 7886	=01	T0_AR,AR_0S,CALL,J/GETSC	;GET BYTE SIZE IN AR,SAVE ADDR
U 0633, 3211,3242,2040,0000,0100,3010,0722	; 7887		BR/AR,AR_BR,VMA_#,#/722		;ADDR, P,S IN PLACE, EPT ADDR TO VMA
U 3211, 3170,3242,6007,0000,0000,1010,0165	; 7888		E1_AR,AR_BRX,J/ADJBP		;SAVE ADDR, GO ADJ
						; 7889	
U 3212, 2470,0001,0000,2311,0020,5110,0756	; 7890	GADJ1:	FE_S+#,#/-18.,SKP SCAD0		;BYTE SIZE 18 ?
						; 7891	=0
U 2470, 3214,4001,0000,0000,0012,0026,0111	; 7892	GADJLD:	LOAD AR,EPT REF CACHE,J/GADJ2	;GET DECODE WORD AND CACHE IT [260]
U 2471, 3213,4001,0000,0302,0000,0010,0010	; 7893		SC_#,#/8.			;SET UP FOR DISP
U 3213, 0540,4001,0000,0000,0020,0007,0000	; 7894		SH DISP,J/GADJL0		;DISPATCH ON SIZE 6-9	[253]
						; 7895	=0000
						; 7896	GADJL0:					;[253]
U 0546, 2470,4001,0000,0000,0100,3010,0716	; 7897	=0110	VMA_#,#/716,J/GADJLD		;6
U 0547, 2470,0001,0000,0000,0100,3010,0717	; 7898	=0111	VMA_#,#/717,J/GADJLD		;7
U 0550, 2470,4001,0000,0000,0100,3010,0720	; 7899	=1000	VMA_#,#/720,J/GADJLD		;8
U 0551, 2470,0001,0000,0000,0100,3010,0721	; 7900	=1001	VMA_#,#/721,J/GADJLD		;9
						; 7901	=
U 3214, 3215,4001,0000,0302,0002,0010,0036	; 7902	GADJ2:	MB WAIT,SC_#,#/30.		;BYTE # TO AR 0-5
U 3215, 3216,3202,2040,0000,0001,0010,0040	; 7903		BR/AR,AR_BR,ARX_0.M		;DATA TO AR,CLEAR ARX
U 3216, 3217,0001,4000,0302,0000,0010,0006	; 7904		AR_SHIFT,SC_#,#/6		;SHIFT IT
U 3217, 3220,3242,2000,0101,0000,0010,0000	; 7905		FE_P,AR_BR			;SAVE COUNT,DECODE TO AR
U 3220, 2472,0001,0000,3001,0020,5210,0000	; 7906	GADJ3:	FE_FE-1,SKP SCAD NE		;DEC DECODE, SKIP TO SHIFT
U 2472, 3221,3200,0207,0000,0020,0010,0166	; 7907	=0	ARX_T0,J/GADJ4			;GET ADDRESS, NEW P IN AR0-4
U 2473, 3220,0001,4000,0000,0000,0010,0000	; 7908		AR_SHIFT,J/GADJ3		;SHIFT AND TRY AGAIN
U 3221, 3222,0001,4000,0101,2000,0010,0000	; 7909	GADJ4:	AR_ARX,FE_P			;GET ADDRESS, SAVE P
U 3222, 3223,4001,0000,0000,3000,0022,0200	; 7910		P_FE				;NEW P
U 3223, 0075,0001,0000,0000,0217,1010,0000	; 7911		AC0_AR,I FETCH,J/NOP		;DONE !
						; 7912	.ENDIF/ADJBP
						; 7913	.ENDIF/OWGBP
						; 7914	;[251]
						; 7915	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 12
; BYTE.MIC[4,30]	17:12 9-Aug-84			IBP, ADJBP						

						; 7916	;SUBROUTINE TO GET CONTENTS OF SC RIGHT ALIGNED IN AR
						; 7917	; CALLED BY ADJBP WITH BYTE DISP TO GET SECOND PART OF POINTER, TOO.
						; 7918	;[TIME=6]
						; 7919	
						; 7920	=101
U 1325, 0730,4001,0000,2400,2000,0022,0200	; 7921	GETSC:	AR0-8_SC,J/GETEXP		;PUT SC INTO AR
						; 7922	.IF/XADDR
U 1327, 0730,0001,0000,2400,2000,7522,0200	; 7923		AR0-8_SC,SKP -VMA SEC0		;BIT 12=1.  GET 2ND PART OF PTR
						; 7924	=00
						; 7925	.ENDIF/XADDR
U 0730, 2450,0001,0400,0302,1000,0010,0011	; 7926	GETEXP:	ARX_AR,SC_#,#/9.,J/SHIFT	;HERE WITH DATA IN AR0-8
						; 7927	.IF/XADDR
						; 7928		VMA_VMA+1,LOAD ARX,SC_#,#/9.,	;LONG POINTER, GET PART 2
U 0731, 1023,0001,0000,0302,0013,3650,0011	; 7929			CALL,J/XFERW
U 0733, 3224,3701,4200,0000,2000,1610,0002	; 7930	=11	ARX_AR (AD),AR_ARX,SR_#,#/2	;READY TO PUT IT AWAY
U 3224, 2450,3441,2001,0000,0000,1010,0000	; 7931		AC1_AR,AR_0S,J/SHIFT		;PUT AWAY, FINISH GETTING S
						; 7932	.ENDIF/XADDR
						; 7933	
						; 7934	
						; 7935	;SUBROUTINE FOR SHORT DIVISION, BR KNOWN POSITIVE
						; 7936	; CALL WITH MQ CLEAR, DIVISOR RIGHT-ALIGNED IN BR, AND DIVIDEND
						; 7937	;	IN AR0-5 (OR LEFT-ALIGNED IN ARX IF ENTERING AT SDIV)
						; 7938	; RETURN QUOTIENT IN AR AND MQ, REMAIN IN ARX
						; 7939	;[TIME=22+3(RESTORE REQ'D)]
						; 7940	
						; 7941	;TO IMPROVE ADJBP PERFORMANCE, INSERT THE INSTRUCTION SHOWN BELOW
						; 7942	; (SIXDZ), AND CHANGE THE CALLS TO SIXDIV TO "SKP SCAD NE,J/SIXDZ"
						; 7943	;=0
						; 7944	;SIXDZ:	AR_0S,ARX_0S,FE_#,#/36.,RETURN2	;HERE IF DIVIDEND IS ZERO
						; 7945	
U 3225, 0421,3401,2400,0301,1000,0010,0004	; 7946	SIXDIV:	ARX_AR,AR_0S,FE_#,#/4,J/SDIV-
						; 7947	=0*0
U 0420, 0420,0602,5504,3001,0020,0031,0000	; 7948	SDIV:	DIVIDE,AR_2(AR+BR),ARX/ADX*2,J/SDIV
U 0421, 0420,5102,5500,3001,0020,0031,0000	; 7949	SDIV-:	DIVIDE,AR_2(AR-BR),ARX/ADX*2,J/SDIV
U 0424, 0224,0602,2004,3001,0020,0031,0000	; 7950		DIVIDE,AR_AR+BR,J/SDIVR		;NO SHIFT ON FINAL STEP
U 0425, 0224,5102,2000,3001,0020,0031,0000	; 7951		DIVIDE,AR_AR-BR
						; 7952	=1*0
U 0224, 0225,0602,2004,0000,0020,0010,0000	; 7953	SDIVR:	AR_AR+BR			;NO CRY0 MEANS RESTORE REQ'D
						; 7954		ARX_AR,AR_MQ,			;RETURN QUO IN AR, REMAIN IN ARX
U 0225, 0002,3723,2400,0301,1000,0003,0044	; 7955			FE_#,#/36.,RETURN2
						; 7956	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 13
; BYTE.MIC[4,30]	17:12 9-Aug-84			IBP, ADJBP						

						; 7957	.IF/OWGBP
						; 7958	;CNV2WD -- ROUTINE TO CALCULATE NEW P FIELD OF ONE WORD GLOBAL BYTE
						; 7959	;POINTER AND STORE NEW POINTER. A TABLE IS IN THE EPT STARTING AT 700
						; 7960	;AND THIS IS USED TO CONVERT THE OWGBP TO A TWO WORD GLOBAL POINTER
						; 7961	;AND TO CALCULATE THE NEW P FOR THE STORE.
						; 7962	;
						; 7963	;ENTER WITH P-45 IN SC
						; 7964	;	    BYTE POINTER IN BR
						; 7965	;
						; 7966	
U 3226, 3227,3731,2000,0000,0000,1710,0000	; 7967	CNV2WD:	AR_VMA HELD			;[326] GET FULL VMA FOR WRITE
U 3227, 3230,0001,0010,0000,1000,0010,0000	; 7968		MQ_AR				;SAVE FOR WRITE BACK
U 3230, 1024,4001,0000,2400,2000,0022,0200	; 7969		AR0-8_SC			;P-45 IN AR
						; 7970	=0*	AR_ARX (AD),ARX_AR,SC_#,#/9.,	;SWAP AROUND FOR SHIFT
U 1024, 2450,3711,2400,0302,1000,0050,0011	; 7971			CALL [SHIFT]		;NOW SHIFT IT TO BIT 35
U 1026, 3231,0303,7700,0000,0020,0027,0000	; 7972		AR_AR*.5 LONG			;MAKE IT AN OFFSET, LSB IN ARX0
U 3231, 3232,4001,0000,0000,0100,3310,0700	; 7973		VMA_#+AR32-35,#/700		;POINT TO RIGHT WORD
U 3232, 3233,4001,0000,0000,0012,0026,0111	; 7974		LOAD AR,EPT REF CACHE		;GET AND CACHE DATA FROM EPT [260]
U 3233, 2474,3713,0000,0000,0022,5510,0000	; 7975		MB WAIT,GEN ARX,SKP AD0		;TEST FOR EVEN/ODD
						; 7976	=0
U 2474, 3234,4001,0400,2411,1000,0010,0000	; 7977	CNV01:	FE_S,ARX_AR,J/CNV02		;SKIP SWAP
U 2475, 2474,0001,4000,0000,3000,0010,0000	; 7978		AR_AR SWAP,J/CNV01		;SWAP HALVES FOR ODD
U 3234, 2476,3703,0020,0000,0020,5610,0000	; 7979	CNV02:	BRX/ARX,GEN AR,SKP AD NE	;DID WE GET 0 DATA ?
U 2476, 1002,0001,0040,0000,0000,0010,0000	; 7980	=0	BR/AR,J/UUO			;P=77 OR EPT NOT SET UP
U 2477, 0001,3721,0000,0000,0103,0003,0000	; 7981		RSTR VMA_MQ,RETURN1		;[307][326]NO, RESTORE VMA AND EXIT
						; 7982	
						; 7983	
						; 7984	=1001					;[254]
U 0571, 3235,4001,0000,0302,0000,0010,0006	; 7985	INC2WD:	SC_#,#/6,J/INC01		;DON'T INC, SET SHIFT
U 0573, 3235,4662,2000,0302,0020,0010,0006	; 7986		AR_BR+1,SC_#,#/6,J/INC01	;INC ADDRESS, SET SHIFT
U 0575, 2500,3242,6000,0000,0000,0010,0000	; 7987		AR_BRX,J/INC02			;FPD SET. DON'T		[254]
U 0577, 2500,3242,6000,0000,0000,0010,0000	; 7988		AR_BRX,J/INC02			;TOUCH POINTER		[254]
U 3235, 1034,3202,6400,0000,0000,1610,0500	; 7989	INC01:	ARX_SHIFT,AR_BRX,SR_#,#/500	;[256][270]ADDR TO 0-29 IN ARX
						; 7990						;NEW P TO AR
						; 7991	=0*	AR_AR SWAP,SC_#,#/30.,		;GET NEW P,LOAD SHIFT
U 1034, 2450,0001,4000,0302,3000,0050,0036	; 7992			CALL [SHIFT]		;NEW POINTER
						; 7993	;
						; 7994	;	[320] Because of the SR_# above, we must restore the VMA again.
						; 7995	;	[326] Make sure we do a full restore (i.e., include local/global
						; 7996	;	information) so that we distinguish the ACs from shadow memory.
						; 7997	;
U 1036, 3236,3721,0000,6130,3103,0110,0040	; 7998		RSTR VMA_MQ,P_P OR #,#/40	;[326] SET BIT 0
U 3236, 3237,4001,0040,0000,0016,0010,0000	; 7999		BR/AR,STORE 			;[320] STORE NEW POINTER
U 3237, 3240,3242,6003,0000,0002,1610,0200	; 8000		MEM_AR, AR_BRX, SR_#, #/200	;GET DECODE ALLOW PREVIOUS
U 3240, 2500,0001,0000,5110,3021,5110,0200	; 8001		P_P-S,SKP SCAD0			;SET UP FOR EXIT
						; 8002	=0
U 2500, 0001,3202,2000,0102,0000,1103,0100	; 8003	INC02:	SC_P,SET FPD,AR_BR,RETURN1	;DONT ADD
U 2501, 2500,0001,0000,5310,3000,0110,0044	; 8004		P_#-S,#/44,J/INC02		;FIX FOR OVERFLOW
						; 8005	.ENDIF/OWGBP
						; 8006	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 1
; BLT.MIC[4,30]	17:12 9-Aug-84				XBLT							

						; 8007	.TOC	"XBLT"
						; 8008	
						; 8009	;HERE FROM EXTEND, ARX CONTAINS AC2
						; 8010	.IF/XADDR
						; 8011	
U 3241, 3242,3200,2001,0000,0020,1610,0216	; 8012	XBLT:	AR_AC1,SR_XBLT(SRC)		;[262] IN CASE OF INTERRUPT
						; 8013		BR/AR,BRX/ARX,MQ_AR,		;SRC ADDR TO BR, DST TO BRX
U 3242, 2502,3240,2070,0000,1020,5510,0000	; 8014			AR_AC0,SKP AD0,J/XBLT3	;GET LENGTH, TEST DIRECTION
						; 8015	=0
U 2502, 2510,3701,0010,0000,1040,5410,0000	; 8016	XBLT3:	SKP AR NE,MQ_AR,J/XBLT4
						; 8017		AR_MQ-1,ARX_ARX-1,		;DECR SRC & DST ADDR'S FOR DOWN
U 2503, 3243,1721,2600,0000,0352,0010,0000	; 8018			VMA/AD,LOAD AR		;GET FIRST WORD
						; 8019	
						; 8020	;HERE IS MAIN LOOP FOR XBLT, DOWNWARDS
						; 8021	
U 3243, 3244,3200,0013,0000,1022,1610,0316	; 8022	XBLTDN:	MQ_AR,AR_MEM,SR_XBLT(DST)	;WAIT FOR SOURCE WORD
U 3244, 3245,3713,0000,0000,0316,1610,0216	; 8023		VMA_ARX,STORE,SR_XBLT(SRC)	;STORE IT IN DESTINATION
U 3245, 2504,3721,2003,0000,0002,7010,0000	; 8024		MEM_AR,AR_MQ,SKP INTRPT		;WAIT, CHECK FOR INTRPT
						; 8025	=0	BR/AR,BRX/ARX,			;PUT DECREMENTED ADDR'S IN BR,X
U 2504, 2506,4640,2060,0000,0040,5410,0000	; 8026			AR_AC0+1,SKP CRY0,J/XBLTD1	;COUNT OFF LENGTH
U 2505, 3464,4640,2060,0000,0020,0010,0000	; 8027		BR/AR,BRX/ARX,AR_AC0+1,J/PGFAC0	;CLEANUP AND TAKE INTERRUPT
						; 8028	=0
						; 8029	XBLTD1:	AC0_AR,AR_MQ-1,ARX_ARX-1,	;STORE NEW LENGTH, GET NEXT ADDR
U 2506, 3243,1723,2600,0000,0352,1010,0000	; 8030			VMA/AD,LOAD AR,J/XBLTDN	; AND READ SRC WORD
						; 8031		AC0_AR,AR_ARX,ARX/MQ,		;DONE!  PUT ALL AWAY
U 2507, 3246,4001,4300,0000,2217,1010,0000	; 8032			I FETCH
U 3246, 1753,4001,4004,0000,2000,1010,0000	; 8033	XBLTX:	AC2_AR,AR_ARX,J/STRAC1
						; 8034	
						; 8035	;HERE FOR UPWARD BLT, TESTING FOR NON-ZERO LENGTH
						; 8036	
						; 8037	=0
U 2510, 0075,0001,0000,0000,0217,1610,0000	; 8038	XBLT4:	I FETCH,SR_0,J/NOP		;DO NOTHING IF AC =0
						; 8039		VMA_BR,LOAD AR,			;ELSE START RIGHT IN
U 2511, 3251,3202,0000,0000,0312,1610,0316	; 8040			SR_XBLT(DST),J/XBLTU1
						; 8041	
						; 8042	;HERE IS MAIN LOOP FOR XBLT, UPWARDS
						; 8043	
U 3247, 2512,1721,2003,0000,0042,5610,0000	; 8044	XBLTUP:	MEM_AR,AR_MQ-1,SKP AD NE	;COUNT EXHAUSTED?
						; 8045	=0	AC0_AR,ARX_BR+1,AR_BRX+1,	;YES.  GET FINAL ADDRESSES
U 2512, 3246,4662,6200,0000,0257,1010,0000	; 8046			I FETCH,J/XBLTX		; READY TO STORE
						; 8047		AC0_AR,MQ_AR,AR_BR+1,ARX_BRX+1,
U 2513, 3250,4662,2610,0000,1352,1010,0000	; 8048			VMA/AD,LOAD AR		;GET SOURCE WORD
U 3250, 3251,4001,0060,0000,0000,1610,0316	; 8049		BR/AR,BRX/ARX,SR_XBLT(DST)	;MUST BE SAVED PRIOR TO MBWAIT
U 3251, 2514,3240,0003,0000,0022,7010,0000	; 8050	XBLTU1:	AR_MEM,SKP INTRPT		;WAIT FOR SRC, TEST INTRPT
						; 8051	=0	VMA_ARX,STORE,			;COPY TO DST
U 2514, 3247,3711,0000,0000,0316,1610,0216	; 8052			SR_XBLT(SRC),J/XBLTUP	;LOOP
U 2515, 3465,3242,2600,0000,0000,1610,0000	; 8053		AR_BR LONG,SR_0,J/XBLTPF	;TAKE INTERRUPT
						; 8054	
						; 8055	.ENDIF/XADDR
						; 8056	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 2
; BLT.MIC[4,30]	17:12 9-Aug-84				BLT							

						; 8057	.TOC	"BLT"
						; 8058	; ENTER WITH 0,E IN AR
						; 8059	
						; 8060	;IN THE LOOP, ARX CONTAINS THE CURRENT DESTINATION ADDRESS,
						; 8061	; BRX CONTAINS THE TERMINAL ADDRESS, AND BR CONTAINS THE DIFFERENCE
						; 8062	; BETWEEN THE SOURCE AND DESTINATION ADDRESSES.
						; 8063	
						; 8064	;UNLIKE EARLIER -10 PROCESSORS, THIS CODE CHECKS FOR THE CASE IN WHICH
						; 8065	; THE DESTINATION ADDRESS IN RH(AC) IS GREATER THAN E, AND RATHER THAN
						; 8066	; STOPPING AFTER ONE WORD, COPIES DOWNWARD (EFFECTIVELY DECREMENTING
						; 8067	; AC BY 1,,1 ON EACH STEP, RATHER THAN INCREMENTING).
						; 8068	
						; 8069	;THIS CODE ALSO PROVIDES A GUARANTEED RESULT IN AC ON COMPLETION OF
						; 8070	; THE TRANSFER (EXCEPT IN THE CASE AC IS PART OF BUT NOT THE LAST WORD
						; 8071	; OF THE DESTINATION BLOCK).  WHEN AC IS NOT PART OF THE DESTINATION
						; 8072	; BLOCK, IT IS LEFT CONTAINING THE ADDRESSES OF THE FIRST WORD FOLLOWING
						; 8073	; THE SOURCE BLOCK (IN THE LH), AND THE FIRST WORD FOLLOWING THE DEST-
						; 8074	; INATION BLOCK (IN THE RH).  IF AC IS THE LAST WORD OF THE DESTINATION
						; 8075	; BLOCK, IT WILL BE A COPY OF THE LAST WORD OF THE SOURCE BLOCK.
						; 8076	
						; 8077	;IN ADDITION, A SPECIAL-CASE CHECK IS MADE FOR THE CASE IN WHICH EACH
						; 8078	; WORD STORED IS USED AS THE SOURCE OF THE NEXT TRANSFER.  IN THIS CASE,
						; 8079	; ONLY ONE READ NEED BE PERFORMED, AND THAT DATA MAY BE STORED FOR EACH
						; 8080	; TRANSFER.  THUS THE COMMON USE OF BLT TO CLEAR CORE IS SPEEDED UP.
						; 8081	
						; 8082	;BLT:	ARX_AR,MQ_AR,ARR_AC0,ARL_ARL	;END TO ARX & MQ, DEST TO AR
						; 8083	BLT1:	BR/AR,ARX_AR,BRX/ARX,		;DST TO BR & ARX, END TO BRX
U 3252, 3253,3200,2460,0000,1020,0010,0000	; 8084			AR_AC0			;SRC TO ARL
						;;8085	.IFNOT/BLT.PXCT
						;;8086		ARR_ARL,ARL_BRL			;SRC TO ARR (SAME SECTION AS E)
						;;8087		AR_AR-BR			;SRC-DST TO ARR
						; 8088	.IF/BLT.PXCT
U 3253, 2516,3242,4000,0000,3001,7410,0002	; 8089		ARR_ARL,ARL_BRL.M,SKP P!S XCT	;SRC TO ARR (SAME SECTION AS E)
U 2516, 1074,5102,2004,0000,0020,0010,0000	; 8090	=0	AR_AR-BR,J/BLT2			;SRC-DST TO ARR
U 2517, 1134,5102,2004,0000,0020,0010,0000	; 8091		AR_AR-BR,J/BLTPXCT		;TREAT PXCT OF BLT SPECIAL
						; 8092	.ENDIF/BLT.PXCT
						;;8093	.IF/BACK.BLT
						;;8094		BR/AR,SKP ARX LE BRX		;SRC-DST TO BR. UP OR DOWN?
						;;8095	=00	AR_MQ-1,CALL,J/BLTAC		;DOWN, READY WITH E-1
						;;8096		AR_MQ+1,CALL,J/BLTAC		;UP, PUT E+1 IN AR FOR AC
						;;8097	DOWN:	LOAD VMA(EA)_ARX+BR,J/DN1	;DOWN, START THE LOOP
						; 8098	.IFNOT/BACK.BLT
						; 8099	=0*
U 1074, 3254,4023,2040,0000,0020,0050,0000	; 8100	BLT2:	BR/AR,AR_MQ+1,CALL,J/BLTAC	;SRC-DST TO BR, E+1 IN AR
						; 8101	.ENDIF/BACK.BLT
U 1076, 2520,4662,0000,0000,0040,5410,0000	; 8102		SKP BR EQ -1,J/UP		;IS THIS CORE CLEARING CASE?
						; 8103	
						; 8104	
						; 8105	;HERE TO SETUP FINAL AC
						; 8106	
U 3254, 3255,0602,2004,0000,3020,0610,0004	; 8107	BLTAC:	ARL_ARR,AR_AR+BR		;FINAL DEST TO LH, SRC TO RH
U 3255, 3256,0001,4000,0000,3000,1610,0707	; 8108		AR_AR SWAP,SR_BLT(SRC)
U 3256, 0002,0001,0000,0000,0000,1003,0000	; 8109	ACSETU:	AC0_AR,RETURN2			;[334] Used below as well
						; 8110	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 3
; BLT.MIC[4,30]	17:12 9-Aug-84				BLT							

						; 8111	;HERE FOR UPWARD BLT (AC RH .LE. E)
						; 8112	=0
U 2520, 0751,0612,0000,0000,0131,0010,0402	; 8113	UP:	LOAD VMA(EA)_ARX+BR,J/UP1	;NOT CLEAR CORE
U 2521, 0750,0612,0004,0000,0131,7410,0402	; 8114		SKP P!S XCT,LOAD VMA(EA)_ARX+BR	;DO NOT OPTIMIZE UNDER EXT ADDR
						; 8115	
						; 8116	;USE EVEN LOC'NS OF THIS BLOCK OF 4 IN SPECIAL "CLEAR CORE" CASE
						; 8117	
U 0750, 3257,3200,0003,0000,0022,1650,0507	; 8118	=00	AR_MEM,CALL,SR_BLT(DST),J/UP2	;GET THE WORD TO STORE IN ALL
U 0751, 3257,3200,0003,0000,0022,1650,0507	; 8119	UP1:	AR_MEM,CALL,SR_BLT(DST),J/UP2	;GET SOURCE WORD
U 0752, 3257,0001,0000,0000,0000,1650,0507	; 8120		CALL,SR_BLT(DST),J/UP2		;HERE TO STORE SAME SRC AGAIN
U 0753, 0751,0612,0000,0000,0131,0010,0402	; 8121		LOAD VMA(EA)_ARX+BR,J/UP1	;HERE TO GET NEXT SRC
						; 8122	
U 3257, 2522,3711,0000,0000,0111,7010,0042	; 8123	UP2:	STORE VMA(EA)_ARX,SKP INTRPT	;OK, GET DST ADDRESS
						; 8124	=0
U 2522, 2524,5102,0000,0000,0040,5310,0000	; 8125	UP3:	SKP ARX LT BRX,J/UP4		;CHECK FOR LAST TRANSFER
U 2523, 3462,0001,0003,0000,0002,0010,0000	; 8126		MEM_AR,J/BLTPF			;FINISH THIS, GO SERVE INTRPT
						; 8127	=0
U 2524, 0075,4001,0003,0000,0217,0010,0000	; 8128	UP4:	FIN STORE,I FETCH,J/NOP		;THAT'S ALL, FOLKS
						; 8129		MEM_AR,ARX_ARX+1,		;STORE DST,
U 2525, 0002,4021,0603,0000,0022,1603,0707	; 8130			SR_BLT(SRC),RETURN2	; CONTINUE
						; 8131	
						; 8132	;BLT CONTINUED - HERE FOR DOWNWARD BLT (AC RH .GT. E)
						;;8133	.IF/BACK.BLT
						;;8134	
						;;8135	DN1:	AR_MEM,SR_BLT(DST)		;WAIT FOR SOURCE DATA
						;;8136		VMA_ARX,STORE,SKP INTRPT	;OK, START DST REF
						;;8137	=0	SKP ARX LE BRX,J/DN3		;CHECK FOR END CONDITION
						;;8138		MEM_AR,J/BLTPF			;FINISH STORE, TAKE INTRPT
						;;8139	=0
						;;8140	DN3:	MEM_AR,ARX_ARX-1,		;NOT END, LOOP
						;;8141			SR_BLT(SRC),J/DOWN
						;;8142		FIN STORE,I FETCH,J/NOP		;END
						; 8143	.ENDIF/BACK.BLT
						; 8144	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 4
; BLT.MIC[4,30]	17:12 9-Aug-84				EXTENDED ADDRESSING CODE FOR PXCT OF BLT		

						; 8145	.TOC "EXTENDED ADDRESSING CODE FOR PXCT OF BLT"
						; 8146	
						; 8147	;THIS MUST BE SEPERATE CODE TO MAKE PXCT WORK NOTE THAT PXCT ONLY CAN
						; 8148	;BE USED IN SECTION 0 AND IN FACT WILL EVENTUALLY BE REMOVED FROM THERE
						; 8149	;HOPEFULLY THIS CODE CAN GO AWAY THE SPEC IS THAT PXCT OF BLT IS NOT DEFINED
						; 8150	;AND WILL NOT BE USED ON EXTENDED ADDRESSING MACHINES.
						; 8151	
						; 8152	.IF/BLT.PXCT
						; 8153	=0*
U 1134, 3260,4021,2040,0000,0020,0050,0000	; 8154	BLTPXCT:BR/AR,AR_MQ+1,CALL,J/BLTPX1	;SRC-DST TO BR, E+1 IN AR
U 1136, 0771,0612,0000,0000,0332,0010,0000	; 8155	UPPX:	VMA_ARX+BR,LOAD AR,J/UP1PX	;NOT CLEAR CORE
						; 8156						;CORE CLEARING NOT LEGAL
						; 8157	
						; 8158	
						; 8159	;HERE TO SETUP FINAL AC
						; 8160	
U 3260, 3261,0602,2000,0000,3020,0610,0004	; 8161	BLTPX1:	ARL_ARR,AR_AR+BR		;FINAL DEST TO LH, SRC TO RH
						; 8162		AR_AR SWAP,SR_BLT(PXCT SRC),
U 3261, 3256,4001,4000,0000,3000,1610,0307	; 8163			J/ACSETU		;[334] Use common return above
						; 8164	
						; 8165	;USE EVEN LOC'NS OF THIS BLOCK OF 4 IN SPECIAL "CLEAR CORE" CASE
						; 8166	
						; 8167	=00
						; 8168	=01
U 0771, 3262,3240,0003,0000,0022,1650,0107	; 8169	UP1PX:	AR_MEM,CALL,SR_BLT(PXCT DST),J/UP2PX	;GET SOURCE WORD
U 0772, 3262,4001,0000,0000,0000,1650,0107	; 8170		CALL,SR_BLT(PXCT DST),J/UP2PX	;HERE TO STORE SAME SRC AGAIN
U 0773, 0771,0612,0000,0000,0332,0010,0000	; 8171		VMA_ARX+BR,LOAD AR,J/UP1PX	;HERE TO GET NEXT SRC
						; 8172	
U 3262, 2526,3713,0000,0000,0316,7010,0000	; 8173	UP2PX:	VMA_ARX,STORE,SKP INTRPT	;OK, GET DST ADDRESS
						; 8174	=0
U 2526, 2530,5102,0000,0000,0040,5310,0000	; 8175	UP3PX:	SKP ARX LT BRX,J/UP4PX		;CHECK FOR LAST TRANSFER
U 2527, 3462,0001,0003,0000,0002,0010,0000	; 8176		MEM_AR,J/BLTPF			;FINISH THIS, GO SERVE INTRPT
						; 8177	=0
U 2530, 0075,4001,0003,0000,0217,0010,0000	; 8178	UP4PX:	FIN STORE,I FETCH,J/NOP		;THAT'S ALL, FOLKS
						; 8179		MEM_AR,ARX_ARX+1,		;STORE DST,
U 2531, 0002,4001,0603,0000,0022,1603,0307	; 8180			SR_BLT(PXCT SRC),RETURN2	; CONTINUE
						; 8181	.ENDIF/BLT.PXCT
						; 8182	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 1
; IO.MIC[4,30]	17:12 9-Aug-84				I/O INSTRUCTIONS					

						; 8183	.TOC	"I/O INSTRUCTIONS"
						; 8184	
						; 8185	; BITS 10-12 OF INSTRUCTION GET MAPPED TO IR 7-9 FOR I/O INSTRUCTIONS
						; 8186	; THE DEVICE ADDRESS IS BROKEN DOWN AS ONE OF THE FIRST 7, OR ALL OTHERS
						; 8187		.DCODE
						; 8188	
						; 8189	;DEVICE 000 (APR)
						; 8190	
D 0700, 3000,0502				; 8191	700:	W,		J/APRBI	;APRID (BLKI APR,)	OPTIONS, SERIAL #
D 0701, 3601,0500				; 8192		W,	DATAI,	J/APRDI	;DATAI APR,		ADDRESS COMPARE
D 0702, 0000,1102				; 8193		I,		J/APRBO	;WRFIL (BLKO APR,)	REFILL RAM
D 0703, 4401,1100				; 8194		R,	DATAO,	J/APRDO	;DATAO APR,		ADDRESS COMPARE
D 0704, 0400,1200				; 8195		I,	CONO,	J/APRCO	;CONO APR,		APR FLAGS
D 0705, 0600,1202				; 8196		I,	CONI,	J/APRCI	;CONI APR,
D 0706, 0101,1202				; 8197		I,	CONSZ,	J/APRCI	;CONSZ APR,
D 0707, 0500,1202				; 8198		I,	CONSO,	J/APRCI	;CONSO APR,
						; 8199	
						; 8200	;DEVICE 004 (PI)
						; 8201	
D 0710, 3601,0511				; 8202	710:	W,	M,	J/PIBI	;RDERA (BLKI PI,)	READ ERA
D 0711, 3300,0510				; 8203		W,	B/3,	J/PIDI	;DATAI PI,		Stats, or not used
D 0712, 4000,0512				; 8204		R,		J/PIBO	;SBDIAG (BLKO PI,)	SBUS DIAGNOSTIC
D 0713, 4001,0510				; 8205		R,	B/0,	J/PIDO	;DATAO PI,		More statistics
D 0714, 0400,0710				; 8206		I,	CONO,	J/PICO	;CONO PI,		PI SYSTEM CONTROL
D 0715, 0600,0714				; 8207		I,	CONI,	J/PICI	;CONI PI,		IN PROGRESS, ENABLE
D 0716, 0101,0714				; 8208		I,	CONSZ,	J/PICI
D 0717, 0500,0714				; 8209		I,	CONSO,	J/PICI
						; 8210	
						; 8211	;DEVICE 010 (PAG)
						; 8212	
D 0720, 6200,1212				; 8213	720:	RW,	BLKI,	J/PAGBI	;BLKI PAG,		UNASSIGNED
D 0721, 3600,1210				; 8214		W,	DATAI,	J/PAGDI	;DATAI PAG,		USER CONTEXT
D 0722, 0000,1204				; 8215		I,		J/PAGBO	;CLRPT (BLKO PAG,)	INVAL PAGE TABLE
D 0723, 4401,1206				; 8216		R,	DATAO,	J/PAGDO	;DATAO PAG,		USER CONTEXT
D 0724, 0400,1214				; 8217		I,	CONO,	J/PAGCO	;CONO PAG,		EXEC CONTEXT
D 0725, 0600,1216				; 8218		I,	CONI,	J/PAGCI	;CONI PAG,
D 0726, 0101,1216				; 8219		I,	CONSZ,	J/PAGCI
D 0727, 0500,1216				; 8220		I,	CONSO,	J/PAGCI
						; 8221	
						; 8222	;DEVICE 014 (CCA)
						; 8223	
D 0730, 0001,1504				; 8224	730:	I,	J/SWEEP	;BLKI CCA,	8 FUNCTIONS TO SWEEP THE CACHE
D 0731, 0001,1504				; 8225		I,	J/SWEEP	;SWPIA (DATAI CCA,)INVALIDATE CACHE, NO CORE UPDATE
D 0732, 0001,1504				; 8226		I,	J/SWEEP	;SWPVA (BLKO CCA,)VALIDATE CORE, LEAVE CACHE VALID
D 0733, 0001,1504				; 8227		I,	J/SWEEP	;SWPUA (DATAO CCA,)UNLOAD CACHE TO CORE, CLEAR CACHE
D 0734, 0001,1504				; 8228		I,	J/SWEEP	;CONO CCA,
D 0735, 0001,1504				; 8229		I,	J/SWEEP	;SWPIO (CONI CCA,)INVALIDATE ONE PAGE
D 0736, 0001,1504				; 8230		I,	J/SWEEP	;SWPVO (CONSZ CCA,)VALIDATE ONE PAGE
D 0737, 0001,1504				; 8231		I,	J/SWEEP	;SWPUO (CONSO CCA,)UNLOAD ONE PAGE
						; 8232	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 2
; IO.MIC[4,30]	17:12 9-Aug-84				I/O INSTRUCTIONS					

						; 8233	;I/O CONT'D
						; 8234	
						; 8235	;DEVICE 020 (TIM)
						; 8236	
D 0740, 3101,1506				; 8237	740:	W,	B/1,	J/RDMTR	;RDPERF (BLKI TIM,)	PERF CNT
D 0741, 3000,1506				; 8238		W,	B/0,	J/RDMTR	;RDTIME (DATAI TIM,)	TIME BASE
D 0742, 4400,1312				; 8239		R,	DATAO,	J/TIMBO	;WRPAE (BLKO TIM,)	PA ENABLES
D 0743, 4401,1310				; 8240		R,	DATAO,	J/TIMDO	;DATAO TIM,		UNDEFINED
D 0744, 0401,1300				; 8241		I,	CONO,	J/TIMCO	;CONO TIM,		SETUP INTERVAL TIMER
D 0745, 0601,1302				; 8242		I,	CONI,	J/TIMCI	;CONI TIM,		RD INTERVAL & PERIOD
D 0746, 0100,1302				; 8243		I,	CONSZ,	J/TIMCI
D 0747, 0501,1302				; 8244		I,	CONSO,	J/TIMCI
						; 8245	
						; 8246	;DEVICE 024 (MTR)
						; 8247	
						; 8248	
D 0750, 3300,1506				; 8249	750:	W,	B/3,	J/RDMTR	;RDMACT (BLKI MTR,)	CACHE CNT
D 0751, 3201,1506				; 8250		W,	B/2,	J/RDMTR	;RDEACT (DATAI MTR,)	EBOX CNT
D 0752, 0001,1002				; 8251		I,		J/UUO	;BLKO MTR,		UNDEFINED
D 0753, 0001,1002				; 8252		I,		J/UUO	;DATAO MTR,		UNDEFINED
D 0754, 0400,1304				; 8253		I,	CONO,	J/MTRCO	;WRTIME (CONO MTR,)	ACCT & TB CTL
D 0755, 0600,1306				; 8254		I,	CONI,	J/MTRCI	;CONI MTR,		SAME
D 0756, 0101,1306				; 8255		I,	CONSZ,	J/MTRCI
D 0757, 0500,1306				; 8256		I,	CONSO,	J/MTRCI
						; 8257	
						; 8258	;DEVICE 030
						; 8259	
D 0760, 6200,0410				; 8260	760:	RW,	BLKI,	J/BLKIO
D 0761, 3601,0416				; 8261		W,	DATAI,	J/IO
D 0762, 6001,0410				; 8262		RW,	BLKO,	J/BLKIO
D 0763, 4401,0416				; 8263		R,	DATAO,	J/IO
D 0764, 0401,0412				; 8264		I,	CONO,	J/CONO
D 0765, 3601,0416				; 8265		W,	CONI,	J/IO
D 0766, 0101,0412				; 8266		I,	CONSZ,	J/CONS
D 0767, 0500,0412				; 8267		I,	CONSO,	J/CONS
						; 8268	
						; 8269	;DEVICES 034-774 (ALL OTHERS)
						; 8270	
D 0770, 6200,0410				; 8271	770:	RW,	BLKI,	J/BLKIO
D 0771, 3601,0416				; 8272		W,	DATAI,	J/IO
D 0772, 6001,0410				; 8273		RW,	BLKO,	J/BLKIO
D 0773, 4401,0416				; 8274		R,	DATAO,	J/IO
D 0774, 0401,0412				; 8275		I,	CONO,	J/CONO
D 0775, 3601,0416				; 8276		W,	CONI,	J/IO
D 0776, 0101,0412				; 8277		I,	CONSZ,	J/CONS
D 0777, 0500,0412				; 8278		I,	CONSO,	J/CONS
						; 8279	
						; 8280		.UCODE
						; 8281	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 3
; IO.MIC[4,30]	17:12 9-Aug-84				EXTERNAL DEVICE I/O INSTRUCTIONS			

						; 8282	.TOC	"EXTERNAL DEVICE I/O INSTRUCTIONS"
						; 8283	
						; 8284	=0****00*000
U 0410, 3002,0001,0000,0000,0000,7350,0000	; 8285	BLKIO:	SKP IO LEGAL,CALL,J/IOCHK	;FIRST VERIFY INSTR VALIDITY
U 0411, 0243,0001,0000,0000,0020,0034,0000	; 8286		BYTE DISP,J/BLK1		;TEST FPD
						; 8287	CONS:					;HERE FOR CONSO, CONSZ TO LOAD
						; 8288						; BR IN CASE OF UUO
U 0412, 0416,4001,0040,0000,3000,0610,0004	; 8289	CONO:	BR/AR,ARL_ARR,ARR_ARR		;CONDITIONS TO BOTH HALVES
						; 8290	=10
U 0416, 1030,3200,0003,0000,0022,7350,0000	; 8291	IO:	AR_MEM,SKP IO LEGAL,CALL,J/GTEBUS;WAIT FOR MBOX IF BLKI/O
U 0417, 0022,0001,0000,0000,0005,2233,0000	; 8292	RELEEB:	REL ECL EBUS,B WRITE		;XFER DONE, WHAT TO DO?
						; 8293	=
						; 8294	=1*010
U 0022, 3263,4001,0003,0000,0002,0010,0000	; 8295	IOTEND:	FIN STORE,MB WAIT,J/BLK4	;BLKI/BLKO
U 0023, 0075,3602,0004,0000,0246,0010,0203	; 8296		TEST AR.BR,TEST FETCH,J/NOP	;CONSZ
U 0026, 0344,0001,0003,0000,0002,6510,0000	; 8297		MEM_AR,SKP PI CYCLE,J/IOFET	;DATA/CON I/O
U 0027, 0075,3602,0004,0000,0246,0010,0203	; 8298		TEST AR.BR,TEST FETCH,J/NOP	;CONSO
						; 8299	;BLKI/BLKO SCREWED AROUND WITH TO TRY TO STOP PI LOSSAGE
U 3263, 0020,5062,0000,0000,0246,6517,0203	; 8300	BLK4:	TEST BRL,TEST FETCH,SKP PI CYCLE,J/CLRFPD
						; 8301	
						; 8302	=1****0
U 0344, 0075,4001,0000,0000,0217,0010,0000	; 8303	IOFET:	I FETCH,J/NOP			;HERE IF NOT PI CYCLE
U 0345, 0744,0001,0000,0000,0000,0024,0502	; 8304		DISMISS,J/PIFET			;DISMISS INTRPT AFTER DATA/CON I/O
						; 8305	
						; 8306	=1**010
U 0242, 0125,4001,0043,0000,0002,0633,0020	; 8307	BLK2:	MEM_AR,BR/AR,ARL_0.C,B DISP,J/BLK3
U 0243, 0242,4003,2000,0000,0036,0017,0000	; 8308	BLK1:	AR_AR+1,GEN CRY18,STORE,J/BLK2	;UPDATE POINTER WORD
U 0247, 0242,0001,0000,0000,0000,6510,0000	; 8309	=111	SKP PI CYCLE,J/BLK2		;IF FPD & NOT PI, DON'T INCREMENT
						; 8310	=1*101					;DO DATAI OR DATAO
U 0125, 0416,3703,0000,0000,0312,1110,0100	; 8311	BLK3:	VMA_AR,LOAD AR,SET FPD,J/IO	;GET DATA TO OUTPUT
U 0127, 0416,3703,0000,0000,0300,1110,0100	; 8312		VMA_AR,SET FPD,J/IO		;INPUT DO BEFORE MEM
						; 8313	
						; 8314	;;;NOTE NOTE NOTE SET FPD INHIBITED BY HARDWARE IF PI CYCLE (SCD5)
						; 8315	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 4
; IO.MIC[4,30]	17:12 9-Aug-84				EXTERNAL DEVICE I/O INSTRUCTIONS			

						; 8316	;SUBROUTINES TO HANDLE EBUS
						; 8317	;CALL WITH "SKP IO LEGAL"
						; 8318	;ENTER AFTER LOADING AR IF OUTPUT FUNCTION
						; 8319	
						; 8320	=00
U 1030, 1002,3242,2000,0000,0000,0010,0000	; 8321	GTEBUS:	AR_BR,J/UUO			;HERE IF IO ILLEGAL IN THIS MODE
U 1031, 2534,4001,0000,0000,0000,2250,0200	; 8322		REQ EBUS,CALL,J/WGRANT		;ASK PI SYSTEM FOR BUS
						; 8323	=11					;RETURN TO TRANSFER ROUTINE
						; 8324	
						; 8325	;SUBROUTINE TO PERFORM EBUS TRANSFER
						; 8326	;SETUP CONTROLLER SELECT AND FUNCTION LINES BEFORE CALL
						; 8327	;IF OUTPUT, ALSO PUT AR ONTO EBUS DATA LINES
						; 8328	
						; 8329	EBUSX:	GEN AR,TIME/5T,			;WAIT AFTER ASSERTING FUNCTION
U 1033, 2533,3703,0000,0000,0060,2210,0060	; 8330			SET EBUS DEMAND,J/WXFER	; AFTER 300 NS, ASSERT DEMAND
						; 8331	=0
						; 8332	EBUSW:	AR_EBUS,GEN AR,
U 2532, 3264,3703,3000,0000,0060,2210,0020	; 8333			CLR EBUS DEMAND,J/RELEB	;STROBE DATA AND DROP DEMAND
U 2533, 2532,3703,0000,0000,0000,6710,0000	; 8334	WXFER:	GEN AR,SKP -EBUS XFER,J/EBUSW	;WAIT FOR TRANSFER
						; 8335	
						; 8336	RELEB:	GEN AR,REL EBUS,TIME/5T,	;DROP DATA, CS, AND FCN
U 3264, 0003,3701,0000,0000,0060,2203,0100	; 8337			RETURN3			;AFTER 150 NS, THEN RELEASE BUS
						; 8338	
						; 8339	
						; 8340	;SUBROUTINE TO WAIT FOR PI SYSTEM TO GRANT EBUS
						; 8341	; IT WILL EITHER SEND EBUS GRANT, OR PI READY
						; 8342	
						; 8343	=0
U 2534, 2536,0001,0000,0000,0000,6610,0000	; 8344	WGRANT:	SKP -EBUS GRANT,J/WGRNT1	;GOT IT?
U 2535, 0071,4001,0000,0000,0000,2210,0000	; 8345		DROP EBUS REQ,J/TAKINT
						; 8346	=0
U 2536, 3265,3703,0000,0000,0000,2210,0030	; 8347	WGRNT1:	IO INIT,GEN AR,J/WGRNT2		;GOT IT, SETUP CS, FCN, AND DATA
U 2537, 2534,0001,0000,0000,0000,7010,0000	; 8348		SKP INTRPT,J/WGRANT		;DIDN'T GET IT, TEST FOR INTERUPT
						; 8349	WGRNT2:	GEN AR,TIME/5T,			;JUST WAIT
U 3265, 0003,3703,0000,0000,0060,0003,0030	; 8350			EBUS CTL/IO INIT,RETURN3
						; 8351	
						; 8352	;HERE TO START PI CYCLE TRANSFER.  HOLD EBUS CTL SELECTION
						; 8353	
U 3266, 1033,0001,0000,0000,0060,0010,0027	; 8354	EBUSI:	TIME/5T,EBUS CTL/DATAI,J/EBUSX
U 3267, 1033,3701,0000,0000,0060,0010,0026	; 8355	EBUSO:	GEN AR,TIME/5T,EBUS CTL/DATAO,J/EBUSX
						; 8356	
						; 8357	;SUBROUTINES TO CHECK IO LEGALITY FOR INTERNAL I/O INSTRUCTIONS
						; 8358	
						; 8359	.IF/MODEL.B
						; 8360	3002:
						;;8361	.IFNOT/MODEL.B
						;;8362	2002:					;ACCESSIBLE ON EXTEND [0]
						; 8363	.ENDIF/MODEL.B
U 3002, 1002,3242,2000,0000,0000,0010,0000	; 8364	IOCHK:	AR_BR,J/UUO			;NAUGHTY, MUST'NT DO
						; 8365	.IF/MODEL.B
						; 8366	3003:
						;;8367	.IFNOT/MODEL.B
						;;8368	2003:
						; 8369	.ENDIF/MODEL.B
U 3003, 0001,4001,0000,0000,0000,0003,0000	; 8370	RET1:	RETURN1				;ONE-CYCLE NULL ROUTINE
						; 8371	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 4-1
; IO.MIC[4,30]	17:12 9-Aug-84				EXTERNAL DEVICE I/O INSTRUCTIONS			

						; 8372	=0
U 2540, 1002,3242,2000,0000,0000,0010,0000	; 8373	GETEEB:	AR_BR,J/UUO			;IO ILLEGAL IN THIS MODE
U 2541, 0001,0001,0000,0000,0000,2203,0400	; 8374	GTEEB1:	GET ECL EBUS,RETURN1
						; 8375	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 5
; IO.MIC[4,30]	17:12 9-Aug-84				INTERNAL DEVICE FUNCTIONS -- APR, CCA			

						; 8376	.TOC	"INTERNAL DEVICE FUNCTIONS -- APR, CCA"
						; 8377	
						; 8378	=0****00***0
						; 8379	SWEEP:	BR/AR,SC_#,#/9.,CALL,
U 1504, 3002,0001,0040,0302,0000,7350,0011	; 8380			SKP IO LEGAL,J/IOCHK	;ALLOWED?
U 1505, 3270,0001,4000,0000,0000,0010,0000	; 8381		AR_SHIFT			;MOVE PAGE # TO PLACE
U 3270, 3271,3701,0000,0000,0307,0010,0606	; 8382	=	VMA_AR,SWEEP CACHE		;START A SWEEP
U 3271, 0066,0001,0000,0000,0002,0010,0000	; 8383	MBREL:	MB WAIT,J/IFNOP			;COMPLETE REG FUNC BEFORE FETCH
						; 8384	
						; 8385	
						; 8386	=0****00**00
U 1100, 2540,4001,0000,0000,0000,7350,0000	; 8387	APRDO:	CALL,SKP IO LEGAL,J/GETEEB	;SET ADDR BREAK
U 1101, 0417,3703,0000,0000,0060,2010,0417	; 8388		DATAO APR,J/RELEEB
U 1102, 3002,4001,0040,0000,0000,7350,0000	; 8389	APRBO:	BR/AR,CALL,SKP IO LEGAL,J/IOCHK	;SET CACHE REFILL ALGORITHM
U 1103, 3271,4001,0000,0000,0007,0010,0505	; 8390		WR REFILL RAM,J/MBREL		;INFO ALREADY IN VMA
						; 8391	=
						; 8392	
						; 8393	=0****00*000
U 0500, 2540,4001,0000,0000,0000,7350,0000	; 8394	APRDI:	CALL,SKP IO LEGAL,J/GETEEB	;READ ADDR BREAK
U 0501, 0417,0001,3000,0000,0060,2010,0513	; 8395		DATAI APR(L),J/RELEEB
						; 8396	=010
						;;8397	.IFNOT/DDT.BUG				;[346] Normal code
						;;8398	APRBI:	CALL,SKP IO LEGAL,J/IOCHK	;RETURN MICRO VERSION, SERIAL #
						;;8399		AR_SERIAL,TIME/3T,		;READ SERIAL NUMBER
						;;8400			CALL,J/UVERS		;GET MICRO-CODE VERSION IN AR
						;;8401	=111	ARL_ARR.S,AR_BR			;COMB SERIAL WITH VERSION
						;;8402	=	AR0-8_#,STORE,OPTIONS,		;SET OPTION FLAGS
						;;8403			J/STMEM
						; 8404	.IF/DDT.BUG				;[346] Gross hack to make EDDT work
U 0502, 2542,4001,0000,0000,0020,0710,0100	; 8405	APRBI:	AR_SERIAL,TIME/3T		;[346] Get hardware serial number
						; 8406	=
						; 8407	=0	AR_AR SWAP,FE_#,OPTIONS,	;Set to test bit 23
U 2542, 3002,4001,4000,0301,3000,7350,0640	; 8408			SKP IO LEGAL,CALL [IOCHK]; Is this a legal instruction here?
U 2543, 0450,4001,0000,7130,0020,5210,0001	; 8409		GEN P AND #,#/1,SKP SCAD NZ	;Was bit 23 set?
						; 8410	=0*0
U 0450, 0137,4001,4000,0000,3000,0050,0000	; 8411	SEROK:	AR_AR SWAP,CALL [UVERS]		;Maybe not. Get microcode version
U 0451, 3273,4001,0000,7130,3000,0110,0076	; 8412		P_P AND #,#/76,J/SERFIX		;Yes. Clean it and move it
U 0454, 3272,3242,2000,0000,3000,0610,0004	; 8413		ARL_ARR,ARR_BR			;It's fixed. Shuffle version to spot
U 3272, 0066,4001,0000,0000,2016,0022,0200	; 8414	=	AR0-8_FE,STORE,J/STMEM		;Move in options and store result
						; 8415	;
U 3273, 0450,4001,0000,2031,0000,0010,0010	; 8416	SERFIX:	FE_FE+#,#/10,J/SEROK		;OR in bit 5 for option
						; 8417	.ENDIF/DDT.BUG				;[346] All this code is GROSS!!
						; 8418	
						; 8419	=0****00**00
						; 8420	APRCO:	BR/AR,ARL_ARR.M,ARR_ARR,CALL.M,	;SET APR FLAGS
U 1200, 2540,0001,0040,0000,3001,7350,0004	; 8421			SKP IO LEGAL,J/GETEEB
U 1201, 3276,3701,0000,0000,0060,2010,0414	; 8422		CONO APR, J/APRCO7		;[272]
						; 8423	APRCI:	BR/AR,CALL,
U 1202, 2540,0001,0040,0000,0000,7350,0000	; 8424			SKP IO LEGAL,J/GETEEB	;READ APR FLAGS
U 1203, 3274,0001,3000,0000,0060,2010,0510	; 8425		CONI APR(R)			;GET RIGHT HALF OF APR CONDITIONS
U 3274, 3275,4001,3400,0000,3060,2010,0512	; 8426	=	ARX_AR SWAP,CONI APR(L)		;NOW LH COND TO AR LEFT
U 3275, 0417,0001,4000,0000,2000,0610,0000	; 8427		AR_ARX,ARL_ARL,J/RELEEB		;COMBINE HALVES
U 3276, 0417,3703,0000,0000,0060,2010,0414	; 8428	APRCO7:		CONO APR,J/RELEEB	;[272]
						; 8429	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 6
; IO.MIC[4,30]	17:12 9-Aug-84				INTERNAL DEVICE FUNCTIONS -- PI				

						; 8430	.TOC	"INTERNAL DEVICE FUNCTIONS -- PI"
						; 8431	
						; 8432	=0****00*000
						; 8433	.IFNOT/INSTR.STAT
						; 8434	PIDO:
U 0510, 1002,3242,2000,0000,0000,0010,0000	; 8435	PIDI:	AR_BR,J/UUO			;DATAI/O PI, UNASSIGNED
						; 8436	
						;;8437	.IF/INSTR.STAT
						;;8438	;DATAO PI, SETS UP BUFFER POINTERS FOR TRACKS
						;;8439	;DATAI PI, READS CURRENT BUFFER POINTER
						;;8440	
						;;8441	PIDI:
						;;8442	PIDO:	BR/AR,ARL+ARX_0.M,CALL.M,	;CHECK IO LEGALITY
						;;8443			SKP IO LEGAL,J/IOCHK
						;;8444		SC_#,#/9.,B DISP,SKP BR0,J/PIDX	;NOW, WHAT TO DO?
						; 8445	.ENDIF/INSTR.STAT
						; 8446	
U 0511, 1254,0001,0000,0000,0007,0010,0504	; 8447	PIBI:	READ ERA,J/RDEBRG		;GET AND STORE
						; 8448	=0
						; 8449	PIBO:	FE_#,#/7,CALL,			;NUMBER OF TIMES TO TRY
U 0512, 3002,0001,0000,0301,0000,7350,0007	; 8450			SKP IO LEGAL,J/IOCHK	;SBUS DIAGNOSTIC
U 0513, 3277,0001,0040,0000,0007,0010,0407	; 8451	DODIAG:	SBUS DIAG,BR/AR			;SEND THE DIAG FUNCTION FROM AR
						; 8452	=
						; 8453	.DEFAULT/MOS=0
						; 8454	.IFNOT/MOS
U 3277, 0066,4001,1000,0000,0016,3610,0000	; 8455		AR/CACHE,VMA_VMA+1,STORE,J/STMEM ;STORE THE RESPONSE
						;;8456	.IF/MOS
						;;8457		AR/CACHE,MB WAIT		;[225]GET THE DATA.
						;;8458		GEN AR+1,SKP AD NE		;IF MEMORY RETURNED -1 TRY AGAIN
						;;8459	=0
						;;8460		FE_FE-1,SKP SCAD0,J/SDTEST	;IT IS SEE IF TOO MANY TRIES
						;;8461	SDONE:	VMA_VMA+1,STORE,J/STMEM		;STORE THE RESPONSE
						;;8462	=0
						;;8463	SDTEST:	AR_BR,J/DIAG1			;[225]RECOVER THE FUNC AND RETRY.
						;;8464		AR_0S,J/SDONE			;TOO MANY TRIES QUIT RETURNING 0
						; 8465	.ENDIF/MOS
						; 8466	
						; 8467	=0****00*000
						; 8468	PICO:	BR/AR,ARL_ARR.M,ARR_ARR,
U 0710, 2544,4001,0040,0000,3001,7350,0004	; 8469			CALL.M,SKP IO LEGAL,J/PICOM1
U 0713, 3303,3703,0000,0000,0060,2010,0415	; 8470	=11	CONO PI,J/PICOM2		;SEND THE DATA
						; 8471	=0****00*100
U 0714, 2544,4001,0040,0000,0000,7350,0000	; 8472	PICI:	BR/AR,CALL,SKP IO LEGAL,J/PICOM1
U 0717, 3300,0001,3000,0000,0060,2010,0500	; 8473	=11	CONI PI(R)			;READ RH TO AR LEFT
						; 8474	=	ARX_AR SWAP,			;RH COND TO ARX RH
U 3300, 3301,0001,3400,0000,3060,2010,0530	; 8475			CONI PI(PAR)		; AND PARITY ENABLES TO RH
						; 8476		BRX/ARX,ARX_AR,			;READY TO COMB RH PARTS
U 3301, 3302,4001,3420,0000,1060,2010,0501	; 8477			CONI PI(L)		; AND LH TO AR LEFT
U 3302, 3303,3302,6004,0000,0000,0610,0000	; 8478		AR_ARX*BRX,AD/OR,ARL_ARL	;COMBINE THEM
U 3303, 0022,3701,0000,0000,0005,2233,0100	; 8479	PICOM2:	REL EBUS,GEN AR,B WRITE,J/IOTEND
						; 8480	
						; 8481	=0
U 2544, 1002,3242,2000,0000,0000,0010,0000	; 8482	PICOM1:	AR_BR,J/UUO			;LOSE
U 2545, 2534,0001,0000,0000,0000,2210,0200	; 8483		REQ EBUS,J/WGRANT		;OK, WAIT TO GET FULL EBUS
						; 8484	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 7
; IO.MIC[4,30]	17:12 9-Aug-84				TRACKS SUPPORT						

						; 8485	.TOC	"TRACKS SUPPORT"
						; 8486	;
						; 8487	;	According to the University of Essex, when TRACKS is used with
						; 8488	;	address break enabled, the monitor cannot disable address break
						; 8489	;	for the actual execution of the instruction unless we include
						; 8490	;	"ABORT INSTR" as part of the TRACKS loop.  Accordingly, this is
						; 8491	;	now done for all the different flavors of TRACKS.  Thanks, folks.
						; 8492	;
						; 8493	;[317]	During an attempt to implement uncounting of doubly counted op
						; 8494	;	codes for the OP.CNT conditional, we learned:  (1) EA
						; 8495	;	calculation requires that VMA be initialized to the instruction
						; 8496	;	location (usually PC) for the local/global stuff to work properly.
						; 8497	;	Beware!  (This is important if you try to do something after
						; 8498	;	fetching an instruction but before you EA calc it.)  (2) NICOND
						; 8499	;	clears the trap enable flag.  If INSTR.STAT is on, this will force
						; 8500	;	the dispatch to the statistics logic without taking the trap,
						; 8501	;	which will thus be lost and gone forever.  This is a hardware bug,
						; 8502	;	but it's rather impossible to ECO it at this late date.
						; 8503	;
						; 8504	;[321]	The solution to this is to ignore the statistics flag if a trap
						; 8505	;	is ready.  See the block at NEXT for details.  (It's not really
						; 8506	;	a hardware bug after all.)
						; 8507	;
						;;8508	.IF/INSTR.STAT
						;;8509	=00
						;;8510	PIDX:	CLR TRACKS EN,J/IFNOP		;TURN TRACKS OFF
						;;8511	.IF/TRACKS
						;;8512		ARX_SHIFT,ARL_BRL,ARR_0.S,J/PIDO2
						;;8513	.IFNOT/TRACKS
						;;8514		ARX_SHIFT,AR_2,J/PIDX1		;[315] Turn statistics on
						;;8515	.ENDIF/TRACKS
						;;8516	=11	AR_TRX				;READ BACK POINTER
						;;8517		ARL_0.M				;GET INDEX PART
						;;8518		AR_AR+TRB,STORE,J/STMEM		;DONE WITH DATAI
						;;8519	
						;;8520	.IFNOT/TRACKS
						;;8521	PIDX1:	AR_ARX+AR*4			;SAVE PAGE NUMBERS IN TRX REGISTERS
						;;8522		TRB_AR				;INITIAL GARBAGE HERE
						;;8523		VMA_ARX,LOAD AR,PHYS REF	
						;;8524		AR_MEM
						;;8525		VMA_ARX+1,LOAD AR,PHYS REF
						;;8526		TRX_AR,ARX_ARX+1		;[315] Must wait one cycle for
						;;8527		AR_MEM				;parity check before writing AC
						;;8528		VMA_ARX+1,LOAD AR,PHYS REF
						;;8529		TRX1_AR,ARX_ARX+1		;[315] Note that this will always
						;;8530		AR_MEM				;make it before AR is smashed
						;;8531		VMA_ARX+1,LOAD AR,PHYS REF
						;;8532		TRX2_AR
						;;8533		AR_MEM
						;;8534		SET TRACKS EN			;[315] Might as well do this now
						;;8535		TRX3_AR,I FETCH,J/NOP		;SAVE TABLE PAGE #, TURN ON
						;;8536	.ENDIF/TRACKS
						;;8537	
						;;8538	PIDO2:	TRX_AR,AR_ARX			;SET UP INDEX
						;;8539		TRB_AR				;AND BASE
						;;8540		SET TRACKS EN,J/IFNOP		;TURN TRACKS ON
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 7-1
; IO.MIC[4,30]	17:12 9-Aug-84				TRACKS SUPPORT						

						;;8541	
						;;8542	.IF/TRACKS
						;;8543	;HERE WHEN NICOND FINDS TRACKS ENABLED
						;;8544	=0
						;;8545	TRK1:	TRX_AR,J/TRK2			;PUT BACK UPDATED INDEX
						;;8546		AR_AR SWAP			;END OF BUFFER.  RESET
						;;8547		AR_-AR,J/TRK1			; ORIGINAL INDEX
						;;8548	
						;;8549	TRK2:	ARL_0.M
						;;8550		AR_AR+TRB			;ADDRESS TRACKS BUFFER
						;;8551		VMA_AR,PHYS REF			;TO MAKE MODEL A WORK
						;;8552		AR_PC,STORE,PHYS REF		; PUT PC THERE
						;;8553		MEM_AR,VMA/PC,CLR TRACKS EN	;PREVENT NICOND SEEING TRACKS...
						;;8554		ABORT INSTR			;[306] Make address break work by
						;;8555						; copying AD BRK CYC to AD FAIL INH
						;;8556		SET TRACKS EN			;...UNTIL NEXT TIME
						;;8557		DISP/NICOND,J/NEXT		;GO DO NEXT INSTR
						;;8558	.ENDIF/TRACKS
						;;8559	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 8
; IO.MIC[4,30]	17:12 9-Aug-84				TRACKS SUPPORT						

						;;8560	.IF/OP.CNT
						;;8561	;HERE WHEN NICOND FINDS OPCODE COUNTING ENABLED
						;;8562	; SKIP IF USER MODE
						;;8563	;[316] Make this register usage compatible with timing version below by
						;;8564	; making it use TRX2 (for exec mode counts pointer) and TRX3 (for user mode
						;;8565	; counts pointer) instead of TRX and TRX+1.
						;;8566	;[317] A massive attempt to uncount doubly counted instructions when an
						;;8567	; interrupt was detected has been backed off.  See INSTR.STAT dispatch logic
						;;8568	; above for commentary.
						;;8569	;
						;;8570	=0
						;;8571	OPCT1:	AR_TRX2,SKP AC REF,J/OPCT2	;[316] TRX HAS PAGE # FOR EXEC TABLE
						;;8572		AR_TRX3,SKP AC REF		;[316] NEXT PAGE IS FOR USER
						;;8573	=0
						;;8574	OPCT2:	AR_SHIFT,MQ_SHIFT,		;[317] Save VMA of increment
						;;8575			CLR TRACKS EN,J/OPCT3	;OPCODE INDEXES INTO TABLE
						;;8576		ARX_FM(VMA),J/OPCT2		;GET INSTR FROM FM
						;;8577	;
						;;8578	OPCT3:	VMA_AR,LOAD AR,PHYS REF		;GET TABLE ENTRY
						;;8579		AR_MEM				;[306] Make address break work
						;;8580		BR/AR,AR_AR+1,STORE		;ADD THIS OCCURANCE TO IT, keep old
						;;8581		MEM_AR,VMA/PC
						;;8582		SET TRACKS EN			;LET US GET BACK NEXT NICOND
						;;8583		DISP/NICOND			;DO INSTR IN ARX
						;;8584	;
						;;8585	;	In an attempt to prevent an interrupt after counting an instruction,
						;;8586	;	we now fake the second NICOND in line.
						;;8587	;
						;;8588	=0000	AR_BR,CLR TRACKS EN,J/OPFIX	;Some kind of odd condition.
						;;8589	=0010	AR_BR,CLR TRACKS EN,J/OPFIX	; Uncount the instruction
						;;8590		AR_BR,CLR TRACKS EN,J/OPFIX
						;;8591		AR_BR,CLR TRACKS EN,J/OPFIX
						;;8592		AR_BR,CLR TRACKS EN,J/OPFIX
						;;8593		AR_BR,CLR TRACKS EN,J/OPFIX
						;;8594	=1010	BRX/ARX,AR_ARX,SET ACCOUNT EN,	;The usual case
						;;8595			XR,EA MOD DISP,J/COMPEA
						;;8596		AR_BR,CLR TRACKS EN,J/OPFIX
						;;8597	=1110	GEN ARX,LOAD IR,#/0,J/XCTGO	;Instruction in registers
						;;8598		AR_BR,CLR TRACKS EN
						;;8599	;
						;;8600	OPFIX:	VMA_MQ,STORE,PHYS REF		;Restore old count
						;;8601		MEM_AR,VMA/PC
						;;8602		SET TRACKS EN			;Turn TRACKS back on
						;;8603		DISP/NICOND,J/NEXT		; and do it yet again
						;;8604	.ENDIF/OP.CNT
						;;8605	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 9
; IO.MIC[4,30]	17:12 9-Aug-84				TRACKS SUPPORT						

						;;8606	.IF/OP.TIME
						;;8607	;HERE TO ADD UP TIME SPENT IN INSTR'S
						;;8608	
						;;8609	OPTM0:	SC_#,#/9.,SKP USER,J/OPTM1
						;;8610	=0
						;;8611	OPTM1:	BR_AR LONG,AR_TRX2,SKP AC REF,	;INSTR IN ARX PAGE IN AR
						;;8612			J/OPTM2
						;;8613		BR_AR LONG,AR_TRX3,SKP AC REF,	;INSTR IN ARX PAGE IN AR
						;;8614			J/OPTM2
						;;8615	=0
						;;8616	OPTM2:	AR_SHIFT,ABORT INSTR,J/OPTM3	;[306] GENERATE ADDR TO INCREMENT
						;;8617						;NEXT GET ADDR FOR THIS
						;;8618		ARX_FM(VMA),J/OPTM2		;GET NEXT INSTR FROM FM
						;;8619	OPTM3:	VMA_AR,LOAD AR,UNCSH PHYS REF	;BUMP COUNT LOCATION
						;;8620		AR_MEM
						;;8621		AR_AR+1,STORE
						;;8622		MEM_AR,SKP USER
						;;8623	=0	AR_TRX,J/OPTM4
						;;8624		AR_TRX1
						;;8625	OPTM4:	AR_SHIFT,ARX_TRB
						;;8626		TRB_AR				;SAVE NEXT LOC TO BUMP
						;;8627		RD+CLR PA			;TIME TO AR
						;;8628		MTR CTL/CLR PERF
						;;8629		VMA_ARX,LOAD ARX,UNCSH PHYS REF	;GET TABLE ENTRY
						;;8630		AR_AR-BR,ARL_0.S		;COMPENSATE TIME FOR THIS CODE
						;;8631		BR/AR,ARX_MEM,SKP AR18		;IF THIS WAS AN ENABLED STATE,
						;;8632	=0	AR_ARX+BR,STORE			;WRITE IT BACK
						;;8633		MEM_AR,VMA/PC			;NOW SETUP NEXT INSTR AGAIN
						;;8634		ARX_BRX,SET TRK+PA EN		;RESTORE STATISTICS FLAGS
						;;8635		DISP/NICOND,J/NEXT
						;;8636	.ENDIF/OP.TIME
						;;8637	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 10
; IO.MIC[4,30]	17:12 9-Aug-84				TRACKS SUPPORT						

						;;8638	;THIS IS THE SECOND ORDER STATISTICS GATHERING CODE
						;;8639	.IFNOT/SO2.CNT
						;;8640	.IF/SO.CNT
						;;8641	;THIS IS NON DEBUGED CODE THAT IS IN A VERY PRIMATIVE STATE
						;;8642	;IT WAS ABANDONED BETWEEN EDITS AS THE MONITOR NEEDED SOMETHING
						;;8643	;SLIGHTLY DIFFERENT
						;;8644	;THIS IS CODE TO DO A SECOND ORDER STATISTIC IN THE SECOND 128K
						;;8645	;EACH ENTRY IS A HALF WORD
						;;8646	;THE LOW ORDER BIT OF <LAST OPCODE><THIS OPCODE> CONCATENATION
						;;8647	;DETERMINES WHICH HALFWORD IS INCREMENTED. OFF IS HIGH
						;;8648	;IF A HALFWORD OVERFLOWS THE CODE TURNS ITSELF OFF AND WRITES -1
						;;8649	;AT LOCATION 400000
						;;8650	;TRX HIDES THE LOCATION PRESENTED TRB THE LAST OPCODE
						;;8651	
						;;8652	;	THIS IS IN THE NEXT LOOP COMMENTED HERE FOR DOCUMENTATION
						;;8653	;TRK0:	ARX_TRB,BRX/ARX,SKP AC REF,J/TRK1;GET PREV INSTR HIDE THIS ONE
						;;8654	
						;;8655	=0
						;;8656	TRK1:	AR_1,SC_#,#/9.,J/TRK2		;SHIFT IN FIRST OPCODE
						;;8657		ARX_FM(VMA),AR_ARX		;GET THE INSTRUCTION FROM FM
						;;8658		BRX/ARX,AR_1,SC_#,#/9.,ARX_AR	; WHEN IT HIDES THERE
						;;8659	TRK2:	AR_SHIFT,SC_#,#/8.,ARX_BRX	;SETUP TO DO THE NEXT OPCODE
						;;8660		AR_SHIFT,CLR TRACKS EN		;CONVIENT TO SHUT OFF TRACKS
						;;8661		VMA_AR,LOAD ARX,PHYS REF,AR_ARX	;LOW BIT OF INSTR WHERE CAN TEST
						;;8662		ARX_SHIFT,TRB_AR		;LOW BIT OF INSTR TO HIGH BIT
						;;8663		ARL_0.S,ARR_1S,SKP ARX0		;SEE WHICH HALFWORD TO INC
						;;8664						; ALSO SETTING UP FOR TEST IN
						;;8665						; LOW INCREMENT
						;;8666	=0	ARL_1.M,ARR_0.M,J/TRK3		;INC HIGH
						;;8667		ARX_MEM				;INC LOW
						;;8668		BR/AR,ARX_ARX+1,AR/ADX,STORE	;INCREMENT LOW HALF AND STORE IT
						;;8669		TEST AR.BR,SKP CRY0		;USING AND-1 HACK TO TEST OVFLOW
						;;8670	=0	AR_0S,J/TRKLOS			;OVERFLOWED FIXUP TO LOSE
						;;8671		MEM_AR,ARX_BRX,VMA/PC,AR_BRX	;NO OVERFLOW GET OUT ALSO
						;;8672	TRKN1:	SET TRACKS EN			; SAVE AWAY THIS OPCODE
						;;8673	TRKND:	DISP/NICOND,J/NEXT		;AND DO NEXT INSTR
						;;8674	
						;;8675	TRK3:	ARX_MEM,BR/AR			;GET WORD TO INC
						;;8676		AR_ARX+BR,STORE,SKP CRY0	;COMPUTE AND CHECK FOR OVERFLOW
						;;8677	=0	ARX_BRX,VMA/PC,MEM_AR,AR_BRX,	;SAVE AWAY THIS INSTR
						;;8678			J/TRKN1			; AND GET OUT
						;;8679		AR_0.C,ARX_BRX,MEM_AR,J/TRKLOS	;SHUT DOWN TRACKS ON OVERFLOW
						;;8680	
						;;8681	
						;;8682	TRKLOS:	AR_1,SC_#,#/17.			;WHEN LOSS PUT -1 IN 400000
						;;8683		AR_SHIFT
						;;8684		GEN AR,VMA/AD,PHYS REF		;SHUT OFF TRACKS AND QUIT
						;;8685		AR_TRB,STORE
						;;8686		MEM_AR,VMA/AD
						;;8687		J/TRKND
						;;8688	
						;;8689	.ENDIF/SO.CNT
						;;8690	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 11
; IO.MIC[4,30]	17:12 9-Aug-84				TRACKS SUPPORT						

						;;8691	
						;;8692	.IF/SO2.CNT
						;;8693	;THIS ONE DOES THE COUNTING IN 128K STARTING AT AN ADDRESS PRESENTED IT
						;;8694	;THIS IS CODE TO DO A SECOND ORDER STATISTIC IN THE SECOND 128K
						;;8695	;EACH ENTRY IS A HALF WORD
						;;8696	;THE LOW ORDER BIT OF <LAST OPCODE><THIS OPCODE> CONCATENATION
						;;8697	;DETERMINES WHICH HALFWORD IS INCREMENTED. OFF IS HIGH
						;;8698	;IF A HALFWORD OVERFLOWS THE CODE TURNS ITSELF OFF AND WRITES -1
						;;8699	;AT LOCATION PRESENTED
						;;8700	;TRX HIDES THE LOCATION PRESENTED TRB THE LAST OPCODE
						;;8701	
						;;8702	;	THIS IS IN THE NEXT LOOP COMMENTED HERE FOR DOCUMENTATION
						;;8703	;TRK0:	ARX_TRB,BRX/ARX,SKP AC REF,J/TRK1;GET PREV INSTR HIDE THIS ONE
						;;8704	
						;;8705	=0
						;;8706	TRK1:	AR_0S,SC_#,#/9.,J/TRK2		;SHIFT IN FIRST OPCODE
						;;8707		ARX_FM(VMA),AR_ARX		;GET THE INSTRUCTION FROM FM
						;;8708		BRX/ARX,AR_0S,SC_#,#/9.,ARX_AR	; WHEN IT HIDES THERE
						;;8709	TRK2:	AR_SHIFT,SC_#,#/8.,ARX_BRX	;SETUP TO DO THE NEXT OPCODE
						;;8710		AR_SHIFT,CLR TRACKS EN		;CONVIENT TO SHUT OFF TRACKS
						;;8711		AR_AR+TRX			;BUMPS BY NUMBER FED IT
						;;8712		VMA_AR,LOAD ARX,PHYS REF,AR_ARX	;LOW BIT OF INSTR WHERE CAN TEST
						;;8713		ARX_SHIFT,TRB_AR		;LOW BIT OF INSTR TO HIGH BIT
						;;8714		ARL_0.S,ARR_1S,SKP ARX0		;SEE WHICH HALFWORD TO INC
						;;8715						; ALSO SETTING UP FOR TEST IN
						;;8716						; LOW INCREMENT
						;;8717	=0	ARL_1.M,ARR_0.M,J/TRK3		;INC HIGH
						;;8718		ARX_MEM,ABORT INSTR		;[306] INC LOW
						;;8719		BR/AR,ARX_ARX+1,AR/ADX,STORE	;INCREMENT LOW HALF AND STORE IT
						;;8720		TEST AR.BR,SKP CRY0		;USING AND-1 HACK TO TEST OVFLOW
						;;8721	=0	AR_0S,J/TRKLOS			;OVERFLOWED FIXUP TO LOSE
						;;8722		MEM_AR,ARX_BRX,VMA/PC,AR_BRX	;NO OVERFLOW GET OUT ALSO
						;;8723	TRKN1:	SET TRACKS EN			; SAVE AWAY THIS OPCODE
						;;8724	TRKND:	DISP/NICOND,J/NEXT		;AND DO NEXT INSTR
						;;8725	
						;;8726	TRK3:	ARX_MEM,BR/AR,ABORT INSTR	;[306] GET WORD TO INC
						;;8727		AR_ARX+BR,STORE,SKP CRY0	;COMPUTE AND CHECK FOR OVERFLOW
						;;8728	=0	ARX_BRX,VMA/PC,MEM_AR,AR_BRX,	;SAVE AWAY THIS INSTR
						;;8729			J/TRKN1			; AND GET OUT
						;;8730		AR_0.C,ARX_BRX,MEM_AR,J/TRKLOS	;SHUT DOWN TRACKS ON OVERFLOW
						;;8731	
						;;8732	
						;;8733	TRKLOS:	AR_TRX
						;;8734		GEN AR,VMA/AD,PHYS REF	;WRITE -1 IN PRESENTED LOCATION
						;;8735		AR_TRB,STORE
						;;8736		MEM_AR,VMA/PC		;NEED AN INSTRUCTION TO GIVE
						;;8737		J/TRKND			;TIME TO NICOND AFTER VMA/PC
						;;8738	
						;;8739	.ENDIF/SO2.CNT
						; 8740	.ENDIF/INSTR.STAT
						; 8741	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 12
; IO.MIC[4,30]	17:12 9-Aug-84				INTERNAL DEVICE FUNCTIONS -- PAG			

						; 8742	.TOC	"INTERNAL DEVICE FUNCTIONS -- PAG"
						; 8743	
						; 8744	=0****00**00
						;;8745	.IFNOT/KLPAGE
						;;8746	PAGBO:	BR/AR,CLR FE,CALL,		;INVALIDATE ONE PAGE TABLE LINE
						;;8747			SKP IO LEGAL,J/IOCHK
						;;8748	PAGBO1:	PT SEL_INVAL,J/PTLOOP		;SETUP INITIAL PT WR SELECT
						; 8749	.IF/KLPAGE
						; 8750	PAGBO:	AR_0S,BR/AR,CALL,		;CLEAR ONE PAGE TABLE ENTRY
U 1204, 3002,3441,2040,0000,0000,7350,0000	; 8751			SKP IO LEGAL,J/IOCHK
U 1205, 0066,0001,0000,0000,0020,2310,0010	; 8752		WR PT ENTRY,J/IFNOP
						; 8753	.ENDIF/KLPAGE
						; 8754	PAGDO:	ARX_AR (AD),ARR_ARL,ARL_ARL.M,	;SETUP USER CONTEXT
U 1206, 2540,3703,4200,0000,3001,7350,0000	; 8755			CALL.M,SKP IO LEGAL,J/GETEEB
U 1207, 3304,3703,4000,0000,2060,2010,0620	; 8756		DATAO PAG(L),AR_ARX		;SETUP AC BLOCKS, PREV CTXT
U 3304, 2546,3243,0000,0302,0020,5510,0011	; 8757	=	SKP AR2,SC_#,#/9.
						; 8758	=0
U 2546, 0417,4001,0000,0000,0000,0010,0007	; 8759	TIMCO1:	MTR CTL/CONO TIM,J/RELEEB	;DO NOT CHANGE UBR
						;;8760	.IF/PAGCNT				;[327] Count DATAO PAG with bit 2
						;;8761		MQ_AR,AR_TRX3+1			;[327] Do the count
						;;8762		TRX3_AR,AR_MQ
						; 8763	.ENDIF/PAGCNT				;[327]
						; 8764		FE_P AND #,#/4,MQ_SHIFT,	;[333] Save bit 3 for keep test
U 2547, 0660,3401,2010,7131,0000,4410,0004	; 8765			SKP AR18,AR_0S		;STORE ACCT?
U 0660, 2550,4001,0000,0000,0000,0150,0100	; 8766	=0*0	AR0-8_#,#/100,CALL,J/PAGD2	;YES, START WITH EBOX CNT
U 0661, 3315,3723,0000,0000,0307,0050,0602	; 8767		VMA_MQ,LOAD UBR,CALL [CLRPT]	;[333] No. Set for page table clear
						; 8768	.IF/BIG.PT				;[333]
U 0665, 1756,4001,0000,2400,0020,5210,0000	; 8769	=1*1	SKP SC NE,J/KEEPME		;[333] Might keep keep me bits
						;;8770	.IFNOT/BIG.PT
						;;8771	=1*1	PT SEL_INVAL,J/PTLOOP		;SETUP INITIAL PT WR SELECT
						; 8772	.ENDIF/BIG.PT				;[333]
						; 8773	;
						; 8774	;	PAGD2 is set up as a subroutine for addressing convenience only.
						; 8775	;
						; 8776	=0
U 2550, 2012,4001,0400,0302,1000,0050,0015	; 8777	PAGD2:	ARX_AR,SC_#,#/13.,CALL,J/EMTR	;UPDATE THE EBOX ACCT
U 2551, 3305,4001,0000,0000,0002,0110,0140	; 8778		MB WAIT,AR0-8_#,#/140		;READY TO GET CACHE ACCT
U 3305, 2013,4001,0400,0302,1000,0010,0015	; 8779		ARX_AR,SC_#,#/13.,J/CMTR	;RETURN ABOVE TO CLR PT
						; 8780	
						; 8781	
						; 8782	=0****00**00
						; 8783	PAGDI:	SC_#,#/70,SKP IO LEGAL,
U 1210, 2540,4001,0000,0302,0000,7350,0070	; 8784			CALL,J/GETEEB
						;;8785	.IFNOT/MODEL.B
						;;8786		DATAI PAG(L),CALL,J/PCTXT	;FIRST GET AC BLOCKS & CWSX
						; 8787	.IF/MODEL.B
						; 8788		DATAI PAG(L),ARX_1B17-1,	;PUT AC BLKS IN AR,
U 1211, 3306,1741,3200,0000,0060,2057,0511	; 8789			CALL,J/PCTXT		; [0,,-1] IN ARX
						; 8790	.ENDIF/MODEL.B
U 1212, 1002,3242,2000,0000,0000,0010,0000	; 8791	PAGBI:	AR_BR,J/UUO			;BLKI PAG, IS UNASSIGNED
U 1213, 0417,3242,4000,0000,0000,0610,0002	; 8792		AR_SHIFT,ARL_BRL,J/RELEEB	;COMBINE UBR WITH AC BLKS, CWSX
						; 8793	=
						;;8794	.IFNOT/MODEL.B
						;;8795	PCTXT:	P_SC				;PLUG IN LOAD-ENABLE BITS
						;;8796	=0*	BR/AR,AR_0S,READ UBR,		;ASK MBOX FOR UBR LOC'N
						;;8797			CALL,J/XFERW		;NOW READ IT
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 12-1
; IO.MIC[4,30]	17:12 9-Aug-84				INTERNAL DEVICE FUNCTIONS -- PAG			

						;;8798		AR_EBUS REG
						; 8799	.IF/MODEL.B
U 3306, 3307,3203,0500,2400,3001,0010,0200	; 8800	PCTXT:	P_SC,ARX_ARX*8			;STUFF IN LOAD EN, ARX=7,,-10
U 3307, 3310,3243,0540,0000,2000,0210,0000	; 8801		BR/AR,AR12-17_PREV SEC,ARX_ARX*8
U 3310, 1154,3012,2044,0000,0000,0010,0000	; 8802		BR/AR,AR_ARX*BR,AD/ANDCA	;PCS TO BR, LD EN, AC BLKS TO AR
						; 8803	=0*	AR_AR*BR,AD/OR,READ UBR,	;LH READY IN AR.  GET UBR
U 1154, 1023,3302,2004,0000,0007,0050,0502	; 8804			CALL,J/XFERW
U 1156, 3311,0001,3040,0000,0060,2010,0567	; 8805		BR/AR,AR_EBUS REG		;LH TO BR.  READ UBR ADDRESS
						; 8806	.ENDIF/MODEL.B
						; 8807		ARX_AR,AR_0S,SC_#,#/27.,	;READY TO MOVE INTO POSITION
U 3311, 0003,3441,2400,0302,1000,0003,0033	; 8808			RETURN3
						; 8809	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 13
; IO.MIC[4,30]	17:12 9-Aug-84				INTERNAL DEVICE FUNCTIONS -- PAG			

						; 8810	;CONI/O PAG,
						; 8811	
						; 8812	=0****00**00
						; 8813	PAGCO:	BR/AR,ARL_ARR.M,ARR_ARR,ARX_0S,	;SET EXEC CONTEXT
U 1214, 2540,3401,0240,0000,3001,7350,0004	; 8814			SKP IO LEGAL,CALL.M,J/GETEEB
U 1215, 1750,3703,0000,0000,0060,2010,0416	; 8815		CONO PAG,J/SETEBR		;SET CACHE, SEC, TRAP EN FLAGS
						; 8816	
						; 8817	PAGCI:	BR/AR,AR_0S,CALL,SKP IO LEGAL,	;READ EXEC CONTEXT
U 1216, 2540,3441,2040,0302,0000,7350,0011	; 8818			SC_#,#/9.,J/GETEEB
U 1217, 1174,4001,3000,0000,0060,2010,0531	; 8819		CONI PAG			;READ CACHE, SEC, TRAP EN
						; 8820	=
						; 8821	=0*	ARX_AR SWAP,AR_0S,READ EBR,	;SETUP EPT LOC'N TO READ
U 1174, 1023,3401,2400,0000,3007,0050,0503	; 8822			CALL,J/XFERW
						; 8823		AR_EBUS REG,			;GET EBR IN AR
U 1176, 3312,3401,3220,0000,0060,2010,0567	; 8824			BRX/ARX,ARX_0S		;SAVE FLAGS IN LH OF BRX
U 3312, 3313,4001,0400,0000,0000,2210,0000	; 8825		ARX_SHIFT,REL ECL EBUS		;MOVE EBR LOC LEFT
U 3313, 3314,3322,0000,0000,0001,0010,0016	; 8826		ARR_0.M,ADB/BR,ADA EN/EN,AD/OR,ARL/ADX	;COMBINE, THEN PUT IN RH
U 3314, 0022,4001,4000,0000,3005,0033,0000	; 8827		AR_AR SWAP,B WRITE,J/IOTEND	;STORE THE RESULT
						; 8828	
						; 8829	;HERE TO FINISH CONO PAG,
						; 8830	
						; 8831	=000					;[342]
U 1750, 2450,4001,0000,0302,0000,0050,0011	; 8832	SETEBR:	SC_#,#/9.,CALL,J/SHIFT		;MOVE EBR LOC'N TO POSITION
U 1752, 3315,3703,0000,0000,0307,0050,0603	; 8833	=010	VMA_AR,LOAD EBR,CALL [CLRPT]	;[333]SETUP EBR
						; 8834	=110					;[342]SETUP INITIAL PT WR SELECT
U 1756, 1766,4001,0000,0000,0000,2310,0001	; 8835	KEEPME:	PT SEL_INVAL,J/PTLOOP		;[342] FOR NON KLPAGE THIS CAN SEND
						; 8836						; THE USER TO PAGBO1 AND SAVE 1
						; 8837						; UCODE LOCATION
						; 8838	.IF/BIG.PT				;[333] Entry from DATAO
U 1757, 2006,4001,0000,0000,0000,2310,0041	; 8839		PT SEL_INVAL (KEEP),J/KEEPCL	;[342] Hang on to KEEP pages
						; 8840	.ENDIF/BIG.PT				;[333]
						; 8841	=
						; 8842	=110
						; 8843	PTLOOP:	AR_AR+BR,VMA/AD,FE_FE-1,	;SELECT A LINE OF PT
						; 8844			CLR PT LINE,TIME/3T,	;DO THE WORK
U 1766, 1766,0602,2000,3001,0320,2334,0031	; 8845			BYTE DISP,J/PTLOOP	;LOOP TO CLEAR ALL
U 1767, 0066,0001,0000,0000,0000,2310,0000	; 8846		PT SEL_NORMAL,J/IFNOP		;RESET PT WR SELECTION
						; 8847	.IF/BIG.PT				;[333]
						; 8848	=110
						; 8849	KEEPCL:	AR_AR+BR,VMA/AD,FE_FE-1,TIME/3T,;SELECT A LINE OF PT
						; 8850			CLR PT LINE (KEEP),	;DO THE WORK
U 2006, 2006,0602,2004,3001,0320,2334,0061	; 8851			BYTE DISP,J/KEEPCL	;Hang onto lines with KEEP ME set
U 2007, 0066,0001,0000,0000,0000,2310,0000	; 8852		PT SEL_NORMAL,J/IFNOP		;RESET PT WR SELECTION
						; 8853	.ENDIF/BIG.PT				;[333]
						; 8854	;
						; 8855	;	[333] Set up to clear hardware page table after setting EBR or
						; 8856	;	UBR.  KEEP ME pages may or may not be cleared, depending upon the
						; 8857	;	setting of DATAO PAG bit 3.  (Clear everything for CONO PAG.)
						; 8858	;
U 3315, 2552,3401,2200,0000,0000,2210,0000	; 8859	CLRPT:	AR_0S,ARX_0S,REL ECL EBUS	;[334]DON'T HANG UP BUS FOR THIS
						; 8860	=0	AR0-8_#,#/10,MB WAIT,		;WAIT FOR U/E BR LOAD
U 2552, 0732,4001,0000,0000,0002,0153,0010	; 8861			SC_FE,CALL [ARSWAP]	;[334]GET 1B23
						; 8862		BR/AR,AR_0S,VMA/AD,		;[333][334] START CLEARING AT ZERO
U 2553, 0004,3441,2040,0301,0300,0003,0077	; 8863			FE_#,#/63.,RETURN4	;SETUP LOOP COUNT
						; 8864	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 14
; IO.MIC[4,30]	17:12 9-Aug-84				INTERNAL DEVICE FUNCTIONS -- TIM & MTR			

						; 8865	.TOC	"INTERNAL DEVICE FUNCTIONS -- TIM & MTR"
						; 8866	
						; 8867	=0****00***0
						; 8868	RDMTR:	AR_BR,CALL,			;GET E TO AR
U 1506, 2540,3242,2000,0000,0000,7350,0000	; 8869			SKP IO LEGAL,J/GETEEB	;GRAB CONTROL OF EBUS
						; 8870		MQ_AR,AR_0S,			;SAVE E IN MQ
U 1507, 1040,3401,2010,0302,1000,0033,0015	; 8871			SC_#,#/13.,B DISP	;WHICH COUNTER?
						; 8872	=
U 1040, 2554,4001,3000,0000,0060,2010,0510	; 8873	=00	AR_TIME BASE,J/RDMTR1		;DATAI TIM,
U 1041, 2554,0001,3000,0000,0060,2010,0511	; 8874		AR_PERF CNT,J/RDMTR1		;BLKI TIM,
U 1042, 2554,0001,3000,0000,0060,2010,0512	; 8875		AR_EBOX CNT,J/RDMTR1		;DATAI MTR,
U 1043, 2554,4001,3000,0000,0060,2010,0513	; 8876		AR_CACHE CNT,J/RDMTR1		;BLKI MTR,
						; 8877	
						; 8878	=0
						; 8879	RDMTR1:	ARL+ARX_0.M,B DISP,		;SHIFT COUNT INTO POSITION
U 2554, 1050,4001,0000,0000,0001,0073,0060	; 8880			CALL.M,J/MTRDBL		;ADD DOUBLE WORD FROM PT
U 2555, 3316,0602,2604,0000,0020,2227,0000	; 8881		AR_AR+BR LONG,REL ECL EBUS
U 3316, 0352,3723,0000,0302,0316,0010,0043	; 8882		VMA_MQ,STORE,SC_#,#/35.,J/DMVM1	;STORE TOTAL AT E & E+1
						; 8883	
						; 8884	=0****00**00
U 1300, 2540,0001,0040,0000,0000,7350,0000	; 8885	TIMCO:	BR/AR,CALL,SKP IO LEGAL,J/GETEEB
U 1301, 2546,3703,0000,0000,0060,2023,0407	; 8886		CONO TIM,J/TIMCO1
						; 8887	TIMCI:	BR/AR,AR_0S,CALL,
U 1302, 2540,3401,2040,0000,0000,7350,0000	; 8888			SKP IO LEGAL,J/GETEEB
U 1303, 3317,0001,3000,0000,0060,2010,0514	; 8889		AR_INTERVAL			;INTERVAL GOES TO LH
U 3317, 3320,3441,2400,0000,3000,0010,0000	; 8890	=	ARX_AR SWAP,AR_0S
U 3320, 3321,4001,3000,0000,0060,2010,0515	; 8891		AR_PERIOD			;PERIOD TO RH
						; 8892	TIMBO1:	MTR CTL/LD PA LH,		;KEEP MTR DECODE FOR TIMBO
U 3321, 0417,4001,0000,0000,2000,0022,0004	; 8893			ARL_ARXL,J/RELEEB	;COMBINE PERIOD WITH INTERVAL
						; 8894	
						; 8895	=0****00**00
						; 8896	MTRCO:	BR/AR,ARL_ARR.M,ARR_ARR,
U 1304, 2540,0001,0040,0000,3001,7350,0004	; 8897			CALL.M,SKP IO LEGAL,J/GETEEB
U 1305, 3322,3701,0000,0000,0060,2023,0406	; 8898		CONO MTR,J/MTRCO1
						; 8899	MTRCI:	BR/AR,AR_0S,CALL,
U 1306, 2540,3401,2040,0000,0000,7350,0000	; 8900			SKP IO LEGAL,J/GETEEB
U 1307, 3322,4001,3000,0000,0060,2010,0516	; 8901		CONI MTR			;READ BACK CONDITIONS
						; 8902	=
U 3322, 0417,0001,0000,0000,0000,0022,0026	; 8903	MTRCO1:	ARL_0.S,MTR CTL/CONO MTR,J/RELEEB
						; 8904	
						; 8905	=0****00**00
U 1310, 1002,3242,2000,0000,0000,0010,0000	; 8906	TIMDO:	AR_BR,J/UUO			;DATAO TIM, UNDEFINED
						; 8907	=10
						; 8908	TIMBO:	ARX_AR,AR_0S,CALL,		;SAVE ENABLES, CLEAR AR
U 1312, 2540,3441,2400,0000,1000,7350,0000	; 8909			SKP IO LEGAL,J/GETEEB	;CHECK LEGALITY, GET BUS
U 1313, 3323,3701,4000,0000,2060,2023,0404	; 8910		BLKO TIM(L),AR_ARX		;TURN OFF BY CLEARING LH ENABLES
U 3323, 3324,3703,4000,0000,3060,2023,0405	; 8911	=	BLKO TIM(R),AR_AR SWAP		;SEND RH
U 3324, 3321,3703,0000,0000,0060,2023,0404	; 8912		BLKO TIM(L),J/TIMBO1		;SEND LH, TURNING ON AGAIN
						; 8913	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 15
; IO.MIC[4,30]	17:12 9-Aug-84				INTERNAL DEVICE FUNCTIONS -- TIM & MTR			

						; 8914	;HERE WHEN METER INCREMENT REQUEST DETECTED
						; 8915	
U 3325, 3326,4001,0000,0000,0000,2210,0400	; 8916	MTRREQ:	GET ECL EBUS			;TAKE CONTROL OF BUS
U 3326, 2556,4001,3000,0000,0060,2010,0517	; 8917		AR_MTR REQ			;WHAT TYPE REQUEST?
						; 8918	=0	MQ_AR,AR_AR*2,CALL,		;GET READY TO DISP
U 2556, 3330,3701,5010,0000,1100,3050,0514	; 8919			VMA_#,#/514,J/MTRRQ0
U 2557, 3327,4001,0000,0000,0000,2210,0000	; 8920		REL ECL EBUS			;DONE
U 3327, 0744,0001,0000,0000,0002,2110,0105	; 8921		MB WAIT,SET ACCOUNT EN,J/PIFET	;FETCH NEXT INSTR
						; 8922	
						; 8923	MTRRQ0:	ARX_AR SWAP,DISP/SH0-3,AR_0S,	;DISPATCH ON REQUEST TYPE
U 3330, 2010,3441,2400,0302,3020,0007,0015	; 8924			SC_#,#/13.
						; 8925	=000
U 2010, 3333,4001,3000,0000,0060,2023,0510	; 8926		RD+CLR TB,J/TMTR1		;TIME BASE
U 2011, 3334,4001,3000,0000,0060,2023,0511	; 8927		RD+CLR PA,J/PMTR1		;PERF ANALYSIS CNT
U 2012, 3335,0001,3000,0000,0060,2023,0512	; 8928	EMTR:	RD+CLR E CNT,J/EMTR1		;EBOX CNT
U 2013, 3336,4001,3000,0000,0060,2023,0513	; 8929	CMTR:	RD+CLR C CNT,J/CMTR1		;CACHE CNT
U 2014, 3331,0001,0000,0000,0000,2210,0000	; 8930		REL ECL EBUS			;INTERVAL -- VECTOR INTERRUPT
U 3331, 3332,0001,0000,0000,0000,1510,0714	; 8931	=	SET PI CYCLE
U 3332, 0663,0001,0000,0000,0000,2110,0105	; 8932		SET ACCOUNT EN,J/PIINST
						; 8933	
U 3333, 3337,0001,0000,0000,0000,0010,0000	; 8934	TMTR1:	MTR CTL/CLR TIME,J/MTRRQ1	;HOLD SELECTS FOR
U 3334, 3337,4001,0000,0000,0000,0010,0001	; 8935	PMTR1:	MTR CTL/CLR PERF,J/MTRRQ1	;MTR CTL FUNCTION
U 3335, 3337,4001,0000,0000,0000,0010,0002	; 8936	EMTR1:	MTR CTL/CLR E CNT,J/MTRRQ1	; TO PREVENT RACE
U 3336, 3337,0001,0000,0000,0000,0010,0003	; 8937	CMTR1:	MTR CTL/CLR M CNT,J/MTRRQ1	; AND POSSIBLE GLITCHES
						; 8938	
						; 8939	;HERE WITH RELEVANT COUNT IN ARR, GARBAGE IN ARL
						; 8940	
U 3337, 2560,0001,0000,0000,0000,1510,0004	; 8941	MTRRQ1:	ABORT INSTR
						; 8942	=0	ARL+ARX_0.M,ARX0-3 DISP,	;CLEAR GARBAGE & RE-DISPATCH
U 2560, 1050,0001,0000,0000,2021,0047,0060	; 8943			CALL.M,J/MTRDBL		; TO ADD DOUBLE COUNTER FROM PT
						; 8944		AR_AR+BR LONG,SC_#,#/35.,
U 2561, 3340,0602,2600,0302,0036,3527,0043	; 8945			VMA_VMA-1,STORE		;STORE BACK IN PROCESS TABLE
U 3340, 3341,3401,2003,0000,0002,0010,0000	; 8946		MEM_AR,AR_0S			;HI PART TO MEM
U 3341, 0001,4001,4000,0000,0016,3603,0000	; 8947		AR_SHIFT,VMA_VMA+1,STORE,RETURN1
						; 8948	
						; 8949	;HERE TO PICK UP DOUBLEWORD FROM PROCESS TABLE
						; 8950	; AND ADD CURRENT CONTENTS OF APPROPRIATE METER
						; 8951	
						; 8952	=00
						; 8953	MTRDBL:	AR_0S,ARX_SHIFT,
U 1050, 3342,3401,2400,0000,0100,3010,0510	; 8954			VMA_#,#/510,J/RDEMTR	;TIME BASE IN EPT 510-511
						; 8955		AR_0S,ARX_SHIFT,
U 1051, 3342,3441,2400,0000,0100,3010,0512	; 8956			VMA_#,#/512,J/RDEMTR	;PERF CNT IN EPT 512-513
						; 8957		AR_0S,ARX_SHIFT,
U 1052, 3343,3441,2400,0000,0100,3010,0504	; 8958			VMA_#,#/504,J/RDUMTR	;EBOX ACCT IN UPT 504-505
						; 8959		AR_0S,ARX_SHIFT,
U 1053, 3343,3401,2400,0000,0100,3010,0506	; 8960			VMA_#,#/506,J/RDUMTR	;CACHE ACCT IN UPT 506-507
						; 8961	
						; 8962	RDEMTR:	BR_AR LONG,			;SAVE COUNT IN BR!BRX
U 3342, 1344,0001,0060,0000,0012,0026,0113	; 8963			LOAD AR,EPT REF,J/RDMTR2;GET HIGH WORD FROM EPT
U 3343, 1344,0001,0060,0000,0012,0026,0223	; 8964	RDUMTR:	BR_AR LONG,LOAD AR,UPT REF	; OR UPT AS APPROP
						; 8965	=0*
						; 8966	RDMTR2:	FIN XFER,VMA_VMA+1,LOAD ARX,	;NOW GET LOW WORD
U 1344, 1023,3200,0003,0000,0033,3650,0000	; 8967			CALL,J/XFERW		;GO WAIT FOR IT
U 1346, 0001,3701,0500,0000,0000,0003,0000	; 8968		ARX_ARX*2,RETURN1
						; 8969	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 16
; IO.MIC[4,30]	17:12 9-Aug-84				PRIORITY INTERRUPT PROCESSING				

						; 8970	.TOC	"PRIORITY INTERRUPT PROCESSING"
						; 8971	;HERE WHEN PRIORITY INTERRUPT REQUEST DETECTED
						; 8972	;PI LOGIC HAS DONE HANDSHAKE TO BRING FUNCTION WORD IN ON EBUS
						; 8973	; FUNCTION WORD IS NOW IN AR, SC=2
						; 8974	
						; 8975	;THE FORMAT OF THE FUNCTION WORD IS --
						; 8976	;    0-2	ADDRESS SPACE FOR THE FUNCTION
						; 8977	;	0=EPT
						; 8978	;	1=EXEC VIRTUAL
						; 8979	;	4=PHYSICAL
						; 8980	;	OTHERS UNDEFINED
						; 8981	;    3-5	FUNCTION TO PERFORM (SEE LIST BELOW AT PIDISP)
						; 8982	;      6	FUNCTION QUALIFIER
						; 8983	;   7-10	PHYSICAL DEVICE # ON EBUS
						; 8984	;  11-12	UNDEFINED
						; 8985	;  13-35	ADDRESS FOR FUNCTION
						; 8986	
U 3344, 3345,0001,0010,0000,1000,1510,0714	; 8987	PICYC1:	SET PI CYCLE,MQ_AR		;START PI CYCLE
U 3345, 3346,4001,0007,0000,0000,1010,0163	; 8988		FM[SV.IOP]_AR			;[234] save IOP function word
						; 8989						; in AC3.
U 3346, 0650,3600,0207,4000,0340,0007,0175	; 8990		VMA_AR AND ADMSK,ARX/AD,SH DISP	;EXTRACT ADDR, DISP ON FCN
						; 8991	=1000					;3-5 IS FUNCTION TO PERFORM
U 0650, 0663,0001,0000,0000,0100,3410,0040	; 8992	PIDISP:	VMA_40+PI*2,J/PIINST		;(0) STANDARD INTERRUPT
U 0651, 0663,0001,0000,0000,0100,3410,0040	; 8993		VMA_40+PI*2,J/PIINST		;(1) DITTO
U 0652, 3350,3243,2000,0302,0000,0010,0005	; 8994		AR_AR*4,SC_#,#/5,J/PIVECT	;(2) VECTOR
U 0653, 0737,4001,0000,0000,0012,0010,0000	; 8995		LOAD AR,J/PIINCR		;(3) INCREMENT
U 0654, 0740,0001,0000,7310,0020,5210,0040	; 8996		SKP AR6,J/PIDATO		;(4) DATAO
U 0655, 0762,0001,0020,0000,0060,0010,0000	; 8997		BRX/ARX,TIME/5T,J/PIDATI	;(5) DATAI
U 0656, 2020,3243,2000,7310,0020,5210,0040	; 8998		AR_AR*4,SKP AR6,J/PIBYTE	;(6) BYTE TRANSFER
						;;8999	.IFNOT/IPA20				;[265]
						;;9000		VMA_40+PI*2,J/PIINST		;(7) UNDEFINED
						; 9001	.IF/IPA20				;[265]
U 0657, 3357,3600,0007,4000,0320,0010,0175	; 9002		VMA_AR AND ADMSK, J/PHYS0	;(7) KLIPA   [265]
						; 9003	.ENDIF/IPA20
						; 9004	
U 3347, 0663,4001,0000,0000,0100,3410,0041	; 9005	PICYC2:	VMA_41+PI*2,J/PIINST		;2ND PART OF STD INT
						; 9006	
U 3350, 0663,3441,2000,7311,0020,0007,0030	; 9007	PIVECT:	FE_# AND S,#/30,AR_0S,SH DISP	;WHAT KIND OF DEVICE?
						; 9008	=0011
U 0663, 0271,0001,0000,0000,0013,0026,0513	; 9009	PIINST:	EPT FETCH,J/XCTW		;CHAN 0-3
U 0667, 0271,0001,0000,0000,0013,0026,0513	; 9010		EPT FETCH,J/XCTW		;CHAN 4-7
U 0673, 1434,0001,0000,2030,2000,0110,0142	; 9011		AR0-8_FE+#,#/142,J/DTEVEC	;DTE 0-3
U 0677, 0271,4001,0000,0000,0013,0010,0000	; 9012		LOAD ARX,J/XCTW			;EXTERNAL DEVICE
						; 9013	=0*
U 1434, 2450,3441,2400,0302,1000,0050,0011	; 9014	DTEVEC:	ARX_AR,AR_0S,SC_#,#/9.,CALL,J/SHIFT
U 1436, 0271,3703,0000,0000,0313,0026,0513	; 9015		VMA_AR,EPT FETCH,J/XCTW
						; 9016	
						; 9017	=0101
U 0725, 1023,4001,0000,0000,0012,0026,0113	; 9018	PILD:	LOAD AR,EPT REF,J/XFERW		;GET DATUM FROM EPT
U 0727, 1023,4001,0000,0000,0012,0010,0000	; 9019		LOAD AR,J/XFERW			; OR EXEC VIRTUAL ADDR SPACE
						;;9020	.IFNOT/MODEL.B
						;;9021		VMA_ARX,LOAD AR,
						;;9022			PHYS REF,J/XFERW	; OR PHYSICAL MEMORY, AS REQUESTED
						; 9023	.IF/MODEL.B
U 0735, 1140,3610,0207,4000,0320,0010,0175	; 9024		VMA_ARX AND ADMSK,ARX/AD,J/PHYS2;FORCE AC'S FOR 0-17
						; 9025	.ENDIF/MODEL.B
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 16-1
; IO.MIC[4,30]	17:12 9-Aug-84				PRIORITY INTERRUPT PROCESSING				

						;;9026	.IFNOT/MODEL.B			;[224] 
						;;9027	IOPFIN:	SET ACCOUNT EN,J/PIDONE		;IN CASE OF EBUS PROBLEMS
						; 9028	.ENDIF/MODEL.B			;[224]
						; 9029	
						; 9030	;HERE TO PERFORM INCREMENT FUNCTION
						; 9031	
U 0737, 2562,3240,0003,7310,0042,5210,0040	; 9032	PIINCR:	AR_MEM,SKP AR6			;GET WORD, INCR OR DECR?
U 2562, 0743,4003,2000,0000,0036,0010,0000	; 9033	=0	AR_AR+1,STORE,J/PIDONE
U 2563, 0743,1701,2000,0000,0036,0010,0000	; 9034		AR_AR-1,STORE,J/PIDONE
						; 9035	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 17
; IO.MIC[4,30]	17:12 9-Aug-84				PRIORITY INTERRUPT PROCESSING				

						; 9036	;HERE FOR DATAO (EXAMINE) FUNCTION
						; 9037	
						; 9038	=0000
U 0740, 0725,0001,0000,0000,1020,0047,0000	; 9039	PIDATO:	AR0-3 DISP,CALL.M,J/PILD	;GET DATA FROM REQUESTED ADR SPC
U 0741, 3352,3203,2000,0000,0000,0050,0000	; 9040		AR_AR*4,CALL,J/RDEX		;RESTRICTED EXAMINE
U 0742, 3267,3240,0003,0000,0022,2250,0026	; 9041	PIOUT:	AR_MEM,SET DATAO,CALL,J/EBUSO	;SEND DATA
U 0743, 0744,4001,0003,0000,0002,0024,0502	; 9042	PIDONE:	MEM_AR,DISMISS			;DONE, DISMISS & RESUME NORMAL
U 0744, 0075,4001,0000,0000,0117,0010,0000	; 9043	PIFET:	VMA/PC,FETCH,J/NOP		;RESUME AS BEFORE
U 0745, 1474,1703,0000,0000,0320,0050,0000	; 9044	=0101	VMA_AR-1,CALL,J/DEXCHK		;GO PROT/RELOC THIS EXAM
						;;9045	.IFNOT/MODEL.B
						;;9046	=0111	VMA_ARX,LOAD AR,PHYS REF,J/PIOUT;PROTECTED PHYSICAL
						; 9047	.IF/MODEL.B
U 0747, 1130,3610,0207,0000,0320,0010,0175	; 9048	=0111	VMA_ARX AND ADMSK,ARX/AD,J/PHYS1;FORCE AC'S FOR 0-17
						; 9049	.ENDIF/MODEL.B
U 0757, 0742,0001,0000,0000,0000,0010,0000	; 9050	=1111	J/PIOUT				;PROT VIOLATION.  SEND 0
						; 9051	
						; 9052	;HERE FOR DATAI (DEPOSIT) FUNCTION
						; 9053	
						; 9054	=10
U 0762, 3266,3441,2000,0000,0060,2250,0027	; 9055	PIDATI:	SET DATAI,TIME/5T,CALL,J/EBUSI	;READ THE DATA
U 0763, 3351,3723,2400,0000,1000,0010,0000	; 9056		ARX_AR,AR_MQ			;DATUM TO ARX, GET FCN WORD
U 3351, 0760,3242,0620,7310,0020,5210,0040	; 9057		BRX/ARX,ARX_BRX,SKP AR6		;RESTRICTED?
U 0760, 1025,3202,6000,0000,1020,0007,0000	; 9058	=0000	AR0-3 DISP,AR_BRX,J/PIST	;NO, STORE AS REQUESTED
U 0761, 3352,3203,2000,0000,0000,0050,0000	; 9059		AR_AR*4,CALL,J/RDEX		;YES, GET PROT/RELOC ADDR
U 0765, 1474,4001,0000,0000,0320,0050,0000	; 9060	=0101	VMA_AR+1,CALL,J/DEXCHK		;VERIFY LEGALITY
U 0767, 1035,3242,6000,0000,0000,0010,0000	; 9061	=0111	AR_BRX,J/PSTOR			;DATA IN AR, ADDR IN ARX. STORE PHYS
U 0777, 0743,4001,0000,0000,0000,0010,0000	; 9062	=1111	J/PIDONE			;PROT VIOLATION, STORE NOTHING
						; 9063	
						; 9064	=0101
U 1025, 0743,0001,0000,0000,0016,0026,0113	; 9065	PIST:	STORE,EPT REF,J/PIDONE
U 1027, 0743,0001,0000,0000,0016,0010,0000	; 9066		STORE,J/PIDONE
						;;9067	.IFNOT/MODEL.B
						;;9068	PSTOR:	VMA_ARX,STORE,PHYS REF,J/PIDONE
						; 9069	.IF/MODEL.B
U 1035, 1250,3610,0207,0000,0320,0010,0175	; 9070	PSTOR:	VMA_ARX AND ADMSK,ARX/AD,J/PHYS3;FORCE AC'S FOR 0-17
						; 9071	.ENDIF/MODEL.B
U 1037, 0743,4001,0000,0000,0000,0010,0000	; 9072		J/PIDONE
						; 9073	
U 3352, 3353,0001,4000,7311,2000,0010,0030	; 9074	RDEX:	FE_# AND S,#/30,AR_ARX		;DTE# *8 TO FE, ADDR TO AR
U 3353, 3354,0001,0040,2030,2000,0110,0145	; 9075		BR/AR,AR0-8_FE+#,#/145		;SAVE ADDR TO BR, GET EPT LOC
U 3354, 3355,3401,2400,0302,1000,0010,0011	; 9076	GTAR08:	ARX_AR,AR_0S,SC_#,#/9.
U 3355, 0004,0001,4000,0000,0000,0003,0000	; 9077		AR_SHIFT,RETURN4
						; 9078	
						; 9079	=0*
U 1474, 0725,0001,0000,0000,0000,0050,0000	; 9080	DEXCHK:	CALL,J/PILD			;PROTECTION WORD FROM EPT
U 1476, 1070,3102,0000,0000,0020,5410,0000	; 9081		SKP AR GT BR			;ALLOWED?
U 1070, 0012,3401,2000,0000,0000,0003,0000	; 9082	=00	AR_0S,RETURN12			;NO, SEND 0, STORE NOTHING
U 1071, 0725,0001,0000,0000,0000,3650,0000	; 9083		VMA_VMA+1,CALL,J/PILD		;YES, GET RELOCATION WORD
U 1073, 3356,0602,2004,0000,0020,0010,0000	; 9084	=11	AR_AR+BR			;RELOCATE TO PHYSICAL ADDR
U 3356, 0002,3600,0207,4000,0020,0003,0175	; 9085		ARX_AR AND ADMSK,RETURN2	;STRIP TO 23 BITS
						; 9086	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 18
; IO.MIC[4,30]	17:12 9-Aug-84				PRIORITY INTERRUPT PROCESSING				

						; 9087	.IF/IPA20
						; 9088						;BEGIN EDIT [265]
U 3357, 3360,4001,0000,0000,0012,0026,0101	; 9089	PHYS0:	LOAD AR, PHYS REF CACHE		;[311]START READ
U 3360, 1062,3240,0003,0000,0022,0010,0000	; 9090		AR_MEM				;FINISH READ
						; 9091	=10	AR_AR+1, SET DATAO,		;INCREMENT THE LOCATION
U 1062, 3267,4001,2000,0000,0020,2250,0026	; 9092			CALL [EBUSO]		;AND SEND DATA OVER THE EBUS
						; 9093		STORE, PHYS REF CACHE,		;[311]UPDATE MEMORY
U 1063, 0743,0001,0000,0000,0016,0026,0101	; 9094			J/PIDONE		;FINISH MEMORY CYCLE
						; 9095	.ENDIF/IPA20				;END EDIT [265]
						; 9096	;FORCE AC'S FOR 0-17
						; 9097	
						; 9098	.IF/MODEL.B
						; 9099	=00
U 1130, 3361,4001,0000,0302,0000,0050,0040	; 9100	PHYS1:	SC_#,#/32.,CALL,J/CHKAC		;DATAO (EXAMINE)
U 1132, 0742,0001,0000,0000,0012,0010,0000	; 9101	=10	LOAD AR,J/PIOUT			;AC REF DONT USE PHYS REF
U 1133, 0742,4001,0000,0000,0012,0026,0103	; 9102		LOAD AR,PHYS REF,J/PIOUT	;NOT AC'S GET PHYSICAL MEMORY
						; 9103	
						; 9104	=00
U 1140, 3361,4001,0000,0302,0000,0050,0040	; 9105	PHYS2:	SC_#,#/32.,CALL,J/CHKAC		;DATAO (EXAMINE)
U 1142, 1023,4001,0000,0000,0012,0010,0000	; 9106	=10	LOAD AR,J/XFERW
U 1143, 1023,0001,0000,0000,0012,0026,0103	; 9107		LOAD AR,PHYS REF,J/XFERW	;NOT AC'S GET PHYSICAL MEMORY
						; 9108	
						; 9109	=00
U 1250, 3361,4001,0000,0302,0000,0050,0040	; 9110	PHYS3:	SC_#,#/32.,CALL,J/CHKAC
U 1252, 0743,0001,0000,0000,0016,0010,0000	; 9111	=10	STORE,J/PIDONE
U 1253, 0743,4001,0000,0000,0016,0026,0103	; 9112		STORE,PHYS REF,J/PIDONE
						; 9113	
U 3361, 3362,4001,0400,0000,0000,0010,0000	; 9114	CHKAC:	ARX_SHIFT			;GET ADDRESS WITHOUT 32-35
						; 9115		ARX_ARX AND ADMSK,		;FLUSH GARBAGE IN 0-3
U 3362, 0002,3610,0207,0000,0020,5603,0175	; 9116			SKP AD NE,RETURN2	;AND MAKE THE TEST
						; 9117	.ENDIF/MODEL.B
						; 9118	
						; 9119	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 19
; IO.MIC[4,30]	17:12 9-Aug-84				PRIORITY INTERRUPT PROCESSING				

						; 9120	;HERE FOR BYTE TRANSFERS
						; 9121	
						; 9122	=000
U 2020, 3363,4001,0000,7311,0000,0050,0030	; 9123	PIBYTE:	FE_# AND S,#/30,CALL,J/PIBPA	;OUT... GET BP ADDR
U 2021, 3266,3441,2000,0000,0000,2250,0027	; 9124		SET DATAI,CALL,J/EBUSI		;IN ... FIRST READ THE DATA
U 2023, 2030,0321,5400,0000,1020,0010,0000	; 9125	=011	ARX_AR,AR_MQ*4,J/PIDPB		;GOT IT, GO DEPOSIT IT
						; 9126	
U 2024, 0570,3701,0000,0000,0300,0050,0000	; 9127	=100	VMA_AR,CALL,J/PIIBP		;GO INCREMENT OUTPUT BP
U 2025, 2444,0001,0000,2002,0000,0050,0000	; 9128		SC_FE+SC,CALL,J/LDB1		;GO LOAD BYTE FROM IT
U 2027, 0742,0001,0000,0000,0000,0010,0000	; 9129	=111	J/PIOUT				;THEN SEND BYTE
						; 9130	
						; 9131	=000
						; 9132	PIDPB:	BRX/ARX,FE_# AND S,#/30,	;HERE WITH INPUT DATA
U 2030, 3363,0001,0020,7311,0000,0050,0030	; 9133			CALL,J/PIBPA
U 2034, 0570,4003,0000,0000,0320,0050,0000	; 9134	=100	VMA_AR+1,CALL,J/PIIBP		;GO INCREMENT INPUT BYTE PTR
						; 9135		AR_BRX,SC_#-SC,#/36.,		;STORE BYTE WITH IT
U 2035, 2452,3242,6000,5302,0020,5150,0044	; 9136			SKP SCAD0,CALL,J/DPB1
U 2037, 0743,4001,0000,0000,0000,0010,0000	; 9137	=111	J/PIDONE
						; 9138	
U 3363, 3354,4001,0000,2030,2000,0110,0140	; 9139	PIBPA:	AR0-8_FE+#,#/140,J/GTAR08
						; 9140	
						; 9141	=00*
U 0570, 0725,0001,0000,0000,0000,0050,0000	; 9142	PIIBP:	CALL,J/PILD			;GET POINTER FROM EPT
U 0572, 1700,0001,0000,5110,3021,5150,0200	; 9143		P_P-S,SKP SCAD0,CALL.M,J/IBPS	;INCREMENT IT
U 0576, 1714,4001,0400,0102,1000,0010,0000	; 9144	=11*	ARX_AR,SC_P,J/BYTEA		;NOW EVALUATE ITS ADDR
						; 9145	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 20
; IO.MIC[4,30]	17:12 9-Aug-84				KL-MODE PAGE REFILL LOGIC				

						; 9146	.TOC	"KL-MODE PAGE REFILL LOGIC"
						; 9147	
						; 9148	.IF/KLPAGE
						; 9149	;HERE ON ANY PAGE FAILURE
						; 9150	;THE POSSIBLE CAUSES ARE --
						; 9151	;  1:	A PARITY ERROR WAS DETECTED IN AR OR ARX FOLLOWING A READ
						; 9152	;	REFERENCE.  IN THIS CASE WE SAVE THE BAD WORD IN A RESERVED
						; 9153	;	LOCATION IN FAST MEMORY BLOCK 7, AND RETURN A PAGE FAIL CODE
						; 9154	;	INDICATING THE ERROR.
						; 9155	;  2:	THE MBOX DETECTED A PROPRIETARY VIOLATION OR PAGE TABLE PARITY
						; 9156	;	ERROR, OR THE EBOX FOUND THE SELECTED ADDRESS BREAK CONDITION.
						; 9157	;	IN THIS CASE, WE RETURN THE PAGE FAIL CODE GENERATED BY THE
						; 9158	;	MBOX (SEE PRINT PAG4).
						; 9159	;  3:	A REFERENCE OCCURRED FOR A VIRTUAL PAGE FOR WHICH THE HARDWARE
						; 9160	;	PAGE TABLE DIRECTORY HAD NO VALID MATCH.  IN THIS CASE, WE
						; 9161	;	WRITE THE PAGE TABLE DIRECTORY FROM THE VMA, AND CLEAR THE
						; 9162	;	ACCESS BITS FOR ALL PAGE ENTRIES CONTROLLED BY THE SELECTED
						; 9163	;	DIRECTORY ENTRY.  WE THEN JOIN THE REFILL CODE, BELOW.
						; 9164	;  4:	A REFERENCE OCCURRED FOR A VIRTUAL PAGE FOR WHICH THE ACCESS BIT
						; 9165	;	IN THE HARDWARE PAGE TABLE WAS OFF, OR A WRITE OCCURRED TO A
						; 9166	;	PAGE WHOSE WRITABLE BIT WAS OFF.  IN THIS CASE, WE EVALUATE THE
						; 9167	;	PAGING POINTERS IN CORE TO DETERMINE WHETHER THE ACCESS SHOULD
						; 9168	;	BE ALLOWED, AND IF SO, THE PHYSICAL PAGE TO WHICH IT SHOULD BE
						; 9169	;	TRANSLATED.  WE THEN EITHER PAGE FAIL, OR WRITE A PAGE ENTRY
						; 9170	;	INTO THE HARDWARE PAGE TABLE AND RESTART THE REFERENCE.
						; 9171	;
						; 9172	;	[322] Note that in the latter case, if a page should be accessible
						; 9173	;	but not writable, it is the microcode's responsibility to turn on
						; 9174	;	bit 2 of the page fail word (the Accessible bit) if a write
						; 9175	;	reference is attempted to such a page.  Currently, this is done only
						; 9176	;	if no CST is present (TOPS-10 operating mode), since TOPS-20
						; 9177	;	retraces the page map from scratch and thus generates the correct
						; 9178	;	information.  The bit can be made correct for the CST present case
						; 9179	;	(see code near NOTWR), but since we are now quite tight on control
						; 9180	;	store, we have chosen not to implement this.
						; 9181	;
						; 9182	;	If you are looking at this code for the first time, be aware that
						; 9183	;	only AR, ARX, SC, and FE are saved and restored here; thus BRX and
						; 9184	;	MQ are strictly off limits for this code.
						; 9185	;
						;;9186	.IFNOT/MODEL.B
						;;9187	2377:	CLR ACCOUNT EN,FORCE AR-ARX,J/PF1
						; 9188	.IF/MODEL.B
U 3777, 3364,3203,7700,0000,0000,2110,0145	; 9189	3777:	CLR ACCOUNT EN,FORCE AR-ARX,J/PF1
						; 9190	.ENDIF/MODEL.B
U 1777, 3364,3203,7700,0000,0000,2110,0145	; 9191	1777:	CLR ACCOUNT EN,FORCE AR-ARX
U 3364, 3365,3701,4207,0000,2000,1010,0156	; 9192	PF1:	SV.AR_AR,AR_ARX,ARX_AR (AD)	;SAVE CURRENT AR
U 3365, 3366,3703,4207,0000,2000,1010,0157	; 9193		SV.ARX_AR,AR_ARX,ARX_AR (AD)	; AND ARX
						;;9194	.IF/PAGCNT				;[327] Page fault counting
						;;9195		AR_TRX2+1			;[327] Count this page fault
						;;9196		TRX2_AR
						;;9197		AR_SV.AR			;[346] Don't lose initial AR
						; 9198	.ENDIF/PAGCNT				;[327]
U 3366, 0554,4001,0000,0000,0000,2204,0400	; 9199		GET ECL EBUS,PF DISP,J/PF2	;PARITY ERROR?
						; 9200	=1100
						; 9201	PF2:
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 20-1
; IO.MIC[4,30]	17:12 9-Aug-84				KL-MODE PAGE REFILL LOGIC				

						; 9202	.IFNOT/PAGCNT				;[327]
U 0555, 2564,4001,0000,0301,0000,6410,0036	; 9203	=1101	FE_#,#/36,SKP RPW,J/PFPAR	;YES.  AR PARITY ERROR, CODE 36
						; 9204						;CHECK FOR MIDDLE OF RPW CYCLE
						;;9205	.IF/PAGCNT
						;;9206	=1101	AR_SV.AR,J/ARPAR		;[327] AR parity error. Get back
						; 9207	.ENDIF/PAGCNT				;[327] saved AR
U 0556, 2564,0001,4000,0301,2000,6410,0037	; 9208		AR_ARX,FE_#,#/37,SKP RPW,J/PFPAR;[307] YES, ARX PARITY. COULD BE RPW
U 0557, 3367,4001,3000,0000,0062,2010,0567	; 9209		AR_EBUS REG,MB WAIT		;NO. GET PAGE FAIL WORD
U 3367, 1047,0001,0000,0000,0000,2204,0000	; 9210		REL ECL EBUS,PF DISP,J/PF4	;EBOX HANDLING REQUIRED?
						; 9211	;
						;;9212	.IF/PAGCNT				;[327]
						;;9213	ARPAR:	FE_#,#/36,SKP RPW,J/PFPAR	;Set code 36 and check for RPW
						; 9214	.ENDIF/PAGCNT
						; 9215	
						; 9216	;HERE ON ANY PARITY ERROR
						; 9217	;SKIP IF MIDDLE OF READ-PAUSE-WRITE CYCLE, IN WHICH CASE WE
						; 9218	; MUST WRITEBACK THE DATA TO PREVENT INCOMPLETE CYCLE
						; 9219	=0
U 2564, 3370,3733,0000,0000,0303,1710,0000	; 9220	PFPAR:	VMA_VMA HELD,J/PFPAR1		;MAY HAVE CHANGED AT MBWAIT
U 2565, 3370,4001,0000,0000,0016,0010,0000	; 9221		STORE				;WRITEBACK WITH GOOD PARITY
U 3370, 3371,4001,0000,0302,0007,0010,0140	; 9222	PFPAR1:	MAP,SC_#,#/140			;GET MAP INFO ON REF
U 3371, 3372,4001,0007,0000,0002,1010,0160	; 9223	PFPAR2:	SV.PAR_AR,MB WAIT		;[234]SAVE WORD WITH BAD PARITY
U 3372, 3373,0001,3000,0000,0060,2010,0567	; 9224		AR_EBUS REG			;READ MAP INFO
U 3373, 3374,0001,0000,7102,0000,2210,0000	; 9225		REL ECL EBUS,SC_P AND SC	;GET USER BIT FROM MAP WORD
U 3374, 1047,0001,0000,6000,3000,0022,0200	; 9226		P_FE OR SC,J/PF4		;STUFF IN PARITY ERROR CODE
						; 9227	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 21
; IO.MIC[4,30]	17:12 9-Aug-84				KL-MODE PAGE REFILL LOGIC				

						; 9228	;HERE WITH PAGE FAIL WORD IN AR
						; 9229	; TESTING FOR EBOX HANDLING REQUIRED.
						; 9230	
						; 9231	=0111
U 1047, 0040,4001,0007,0000,0000,1005,0152	; 9232	PF4:	SV.PFW_AR,SR DISP,J/CLEAN	;NO, GO CLEAN UP
U 1057, 3375,3242,2047,0000,0000,1010,0152	; 9233		SV.PFW_AR,AR_BR,BR/AR		;YES, GET BR TOO
U 3375, 3376,3441,2007,0000,0000,1010,0150	; 9234		SV.BR_AR,AR_0S			;SAVE BR
U 3376, 3377,0001,0000,0000,2000,0022,0200	; 9235		AR0-8_FE			;NOW SAVE 10-BIT REGS
U 3377, 3400,3703,0200,2400,2000,0022,0200	; 9236		ARX_AR (AD),AR0-8_SC		;FE TO ARX, SC TO AR
						; 9237		ARR_ARL,ARL_ARX (ADX),		;FE IN ARL, SC IN ARR
U 3400, 3401,3733,4200,0000,3001,1710,0006	; 9238			ARX_VMA HELD		;GET VMA WHICH FAILED
						; 9239		SV.SC_AR,AR_ARX,		;HOLD SC & FE
U 3401, 0636,3241,4007,0000,2020,1032,0151	; 9240			GEN BR*2,SIGNS DISP	;TEST FOR PT DIR MATCH
						; 9241	=1110
						; 9242	PGRF1:	SV.VMA_AR,ARX_AR SWAP,ARR_ARL,	;GET SEC # TO AR32-35
U 0636, 1075,0001,4407,0000,3000,1036,0145	; 9243			DISP/EA MOD,J/PGRF2	; SEC < 20?
						; 9244	
						; 9245	;	HERE TO WRITE PT DIR, & CLR 4 PAGE ENTRIES.  If the expanded
						; 9246	;	page table ECO has been installed, this will only clear two entries
						; 9247	;	(since they go in pairs for that case), but in either case the
						; 9248	;	right thing will happen. [333]
						; 9249	;
						; 9250		AR_0S,COND/MBOX CTL,MBOX CTL/2,	;READY TO CLEAR EVEN PAIR
U 0637, 3402,3441,2000,7133,0000,2310,0002	; 9251			FE_P AND #,#/2,SC/SCAD	;GET WRITE REF BIT TO FE & SC
						; 9252		COND/MBOX CTL,MBOX CTL/33,	;CLR EVEN, WR DIR, SEL ODD
U 3402, 3403,4001,0000,2003,0020,2310,0033	; 9253			TIME/3T,FE_FE+SC,SC/SCAD; WR REF = 4 NOW
						; 9254		COND/MBOX CTL,MBOX CTL/10,	;CLR ODD, RESET NORMAL SELECT
U 3403, 3404,3202,2000,2001,0020,2310,0010	; 9255			TIME/3T,FE_FE+SC,AR_BR	;GET PFW BACK, WR REF = 10
U 3404, 3405,4001,0000,7322,0000,0010,0401	; 9256		SC_# AND AR0-8,#/401		;GET USER & PAGED REF BITS
U 3405, 3406,4001,0000,6000,2001,0010,0200	; 9257		AR0-8_FE OR SC			;COMBINE WITH WR REF BIT
U 3406, 0636,0001,4047,0000,2000,1010,0152	; 9258		SV.PFW_AR,BR/AR,AR_ARX,J/PGRF1	;REJOIN MAIN PATH
						; 9259	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 22
; IO.MIC[4,30]	17:12 9-Aug-84				KL-MODE PAGE REFILL LOGIC				

						; 9260	;	HERE TO TRACE PAGE POINTERS FOR THIS ADDRESS
						; 9261	;	VMA WHICH FAILED IS IN ARX AND AR WITH THE HALVES SWAPPED
						; 9262	;	PAGE FAIL WORD IS IN BR
						; 9263	;	[333] Bit 5 of all access pointers is implemented as "Keep" for
						; 9264	;	pages which should not be swept from the page map on DATAO PAG
						; 9265	;	UBR reload unless bit 3 is also set.
						; 9266	;
						; 9267	
						;;9268	.IFNOT/EPT540
						;;9269	=1101
						;;9270	PGRF2:	VMA_#+AR32-35,#/440,		;YES.
						;;9271			SIGNS DISP,J/PGRF3	; USER REF?
						;;9272		VMA_#+AR32-35,#/460,		;NO
						;;9273			SIGNS DISP,J/PGRF3
						; 9274	.IF/EPT540
						; 9275	=1101
						; 9276	PGRF2:	VMA_#+AR32-35,#/540,		;YES.
U 1075, 1135,0001,0000,0000,0120,3332,0540	; 9277			SIGNS DISP,J/PGRF3	; USER REF?
						; 9278		VMA_#+AR32-35,#/560,		;NO
U 1077, 1135,4001,0000,0000,0120,3332,0560	; 9279			SIGNS DISP,J/PGRF3
						; 9280	.ENDIF/EPT540
						; 9281	=1101
U 1135, 3407,4001,0000,3401,0012,0026,0113	; 9282	PGRF3:	LOAD AR,EPT REF,FE_-1,J/SECPTR	;Initialize APWKC bits, get section
U 1137, 3407,4001,0000,3401,0012,0026,0223	; 9283		LOAD AR,UPT REF,FE_-1		; pointer from EPT or UPT
						; 9284	
						; 9285	;HERE TO FIND PAGE MAP WITH SECTION POINTER
						; 9286	
U 3407, 1150,3240,0003,0302,0022,7010,0011	; 9287	SECPTR:	AR_MEM,SC_#,#/9,SKP INTRPT	;GET SECTION POINTER
						; 9288	=1000	FE_FE AND AR0-8,BR/AR,		;COMBINE ACCESS BITS
U 1150, 1151,0001,0040,7021,1020,0007,0000	; 9289			AR0-3 DISP		;SPT INDEX IN ARR, DISP ON TYPE
U 1151, 3445,3240,2007,0000,0020,0010,0150	; 9290	=1001	AR_SV.BR,J/PFT			;NO ACCESS TO SECTION (OR INTRPT)
						; 9291	=1011
U 1153, 3417,4001,0400,0000,0001,0010,0020	; 9292	SECIMM:	ARX_SHIFT,ARL_0.M,J/PGRF5	;IMMEDIATE
U 1155, 2570,4001,0000,0000,0001,0010,0020	; 9293	=1101	ARL_0.M,J/LDIND			;SHARED
U 1157, 3410,4001,0000,0000,0001,0010,0020	; 9294	=1111	ARL_0.M				;INDIRECT SECTION POINTER
						; 9295	;
						; 9296	;	WARNING:  do not use the technique at LDIND to allow
						; 9297	;	interrupts out of section pointer loops, as that will have
						; 9298	;	adverse effects on byte transfers and console executes.
						; 9299	;
U 3410, 3411,0600,4007,4000,2320,0010,0143	; 9300		VMA_AR+SBR,AR_ARX		;LOOK IN SPT
U 3411, 3412,3202,2040,0000,0012,0026,0103	; 9301		BR/AR,AR_BR,LOAD AR,PHYS REF	;CALL FOR SPT ENTRY
U 3412, 3413,3200,0403,0000,0022,0010,0000	; 9302		ARX_SHIFT,AR_MEM		;SEC PTR INDEX TO ARX0-8
U 3413, 3414,3242,4200,0000,0000,0010,0000	; 9303		AR_SHIFT,ARX_BR			;NEW SEC PTR ADDR TO AR
						; 9304		GEN # AND AR0-8,#/77,SKP SCAD NE,
U 3414, 2566,3703,0000,7320,0320,5210,0077	; 9305			VMA_AR
U 2566, 3407,0001,0000,0000,0012,0026,0103	; 9306	=0	LOAD AR,PHYS REF,J/SECPTR
U 2567, 3445,3240,2007,0000,0020,0010,0150	; 9307		AR_SV.BR,J/PFT			;TRAP, SEC MAP NOT IN CORE
						; 9308	;
						; 9309	;	We must turn off special cycle for indirect pointers so that
						; 9310	;	we can take an interrupt.  However, we can't do it if PXCT or
						; 9311	;	SXCT might be active.  Thus, a kernel mode program can get into
						; 9312	;	a page fail loop that the microcode cannot exit.
						; 9313	;
						; 9314	=0
U 2570, 3415,0600,0007,0000,0320,0010,0143	; 9315	LDIND:	VMA_AR+SBR,J/LDIND1		;FOR INDIRECT PAGE POINTERS
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 22-1
; IO.MIC[4,30]	17:12 9-Aug-84				KL-MODE PAGE REFILL LOGIC				

U 2571, 2570,0001,0000,0000,0000,1510,0000	; 9316		CLR SPECIAL CYCLE,J/LDIND
						; 9317	;
						; 9318	;	This fixes the glitch that INSTR FETCH (NICOND) doesn't
						; 9319	;	clear 'CON4 INT DISABLE L' before fetching user's instruction.
						; 9320	;					;SHARED SEC = INDRCT PAG
U 3415, 3416,0001,0000,0000,0012,0026,0103	; 9321	LDIND1:	LOAD AR,PHYS REF		;GET PAGE MAP ADDR
U 3416, 1153,3240,0003,0000,0022,0010,0000	; 9322		AR_MEM,J/SECIMM
						; 9323	
						; 9324	
						; 9325	;HERE WITH PAGE NO OF PAGE MAP IN AR,
						; 9326	; VIRTUAL PAGE NO WITHIN SECTION IN ARX0-8
						; 9327	
						; 9328	.IF/NOCST
U 3417, 2572,3240,0007,0000,0020,5610,0142	; 9329	PGRF5:	TEST CBR			;[247] CBR = 0 MEANS NO CST UPDATE
						; 9330	.IF/BIG.PT				;[346]
						; 9331	=0	AR_ARX,FE_FE AND #,#/174,	;[247][333] NO CST UPDATE
U 2572, 3424,4001,4000,7031,2000,0010,0174	; 9332			J/NO.CST		;[247]
						;;9333	.IFNOT/BIG.PT				;[346]
						;;9334	=0	AR_ARX,FE_FE AND #,#/164,	;[247] NO CST UPDATE. Eat bit 5
						;;9335			J/NO.CST		;[247] if no big page table
						; 9336	.ENDIF/BIG.PT				;[346]
						;;9337	.IFNOT/NOCST				;[247]
						;;9338	PGRF5:
						; 9339	.ENDIF/NOCST				;[247]
U 2573, 3420,0600,4007,4000,2320,0010,0142	; 9340		VMA_AR+CBR,AR_ARX		;GENERATE CST ADDRESS
						; 9341		GEN # AND AR0-8,#/77,		;IS PAGE MAP IN CORE?
U 3420, 2574,0001,0000,7320,0020,5210,0077	; 9342			SKP SCAD NE
						; 9343	=0	LOAD AR,PHYS REF,		;GET CST ENTRY FOR PAGE MAP
U 2574, 3421,0001,0040,0000,0012,0026,0103	; 9344			BR/AR,J/PGRF6		;SAVE PAGE PTR ADDR IN BR
U 2575, 3445,3240,2007,0000,0020,0010,0150	; 9345		AR_SV.BR,J/PFT			;NOT IN CORE, PAGE FAIL TRAP
						; 9346	;
						; 9347	.IF/BIG.PT				;[346]
U 3421, 3422,3240,0003,7031,0022,0010,0174	; 9348	PGRF6:	AR_MEM,FE_FE AND #,#/174	;[333]HERE IF CST FOR PAGE MAP
						;;9349	.IFNOT/BIG.PT				;[346]
						;;9350	PGRF6:	AR_MEM,FE_FE AND #,#/164	;HERE IF CST FOR PAGE MAP. No K bit
						; 9351	.ENDIF/BIG.PT				;[346] if no big page table
U 3422, 2576,3600,2007,0120,0040,5210,0140	; 9352		AR_AR AND CSMSK,SKP P NE	;BEGIN CST UPDATE
U 2576, 3445,3240,2007,0000,0020,0010,0150	; 9353	=0	AR_SV.BR,J/PFT			;AGE TRAP, MAP BEING SWAPPED
U 2577, 3423,3300,2007,4000,0036,0010,0141	; 9354		AR_AR OR PUR,STORE		;PUT CST WORD BACK
						;;9355	.IFNOT/NOCST				;[247]
						;;9356		MEM_AR,VMA_BR,PHYS REF		;PHYS REF MAKES MODEL.A LOAD
						;;9357						;LONG VMA
						;;9358		LOAD AR,PHYS REF		;GET PAGE MAP ENTRY
						;;9359		AR_MEM,FE_FE OR #,#/100,	;PAGE POINTER
						;;9360			SKP INTRPT		;CHECK FOR LONG INDIRECT
						;;9361						;POINTER
						; 9362	.IF/NOCST				;[247]
U 3423, 2600,3242,0003,0000,0302,0026,0103	; 9363		MEM_AR,VMA_BR,PHYS REF,J/NOCST0	;PHYS REF MAKES MODEL.A LOAD
						; 9364						;LONG VMA
						; 9365	NO.CST:	GEN # AND AR0-8, #/77,		;[247] page map in core ?
U 3424, 2600,3703,0000,7320,0320,5210,0077	; 9366			VMA_AR,SKP SCAD NE	;[247]
						; 9367	=0
U 2600, 3425,0001,0000,0000,0012,0026,0103	; 9368	NOCST0:	LOAD AR,PHYS REF, J/NOCST1	;[247] GET PAGE MAP ENTRY
U 2601, 3445,3240,2007,0000,0020,0010,0150	; 9369		AR_SV.BR, J/PFT			;[247] not in core, pf trap
						; 9370	NOCST1:	AR_MEM,FE_FE OR #,#/100,	;[247] PAGE POINTER
U 3425, 1170,3240,0003,6031,0022,7010,0100	; 9371			SKP INTRPT		;[247] CHECK FOR LONG INDIRECT
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 22-2
; IO.MIC[4,30]	17:12 9-Aug-84				KL-MODE PAGE REFILL LOGIC				

						; 9372	.ENDIF/NOCST				;[247] POINTER
						; 9373	;
						; 9374	;	HERE WITH PAGE MAP ENTRY IN AR
						; 9375	;	FE HAS ACCUMULATED ACCESS BITS -- APWKC*4
						; 9376	;	SC CONTAINS 9.
						; 9377	;
						; 9378	=1000	FE_FE AND AR0-8,AR0-3 DISP,	;COMBINE PWKC, DISP ON TYPE
U 1170, 1171,3200,0207,7021,1020,0007,0145	; 9379			ARX_SV.VMA,TIME/3T	;[346] GET BACK SAVED VMA
U 1171, 3445,3240,2007,0000,0020,0010,0150	; 9380	=1001	AR_SV.BR,J/PFT			;0=NO ACCESS (OR HERE ON INTRPT)
						; 9381	=1011
						; 9382	LDIMM:	ARL_SHIFT,FE_FE SHRT,		;1=IMMEDIATE, LOAD PT
						; 9383			ARX_ARX*2 COMP,		; GET -WR REF TO ARX03
U 1173, 3431,2021,0500,0302,0001,1210,0004	; 9384			SC_#,#/4,J/LDPT		;[333] Set to move K bit
U 1175, 3426,4001,0000,0000,0001,0010,0020	; 9385	=1101	ARL_0.M,J/LDSHR			;2=SHARED, GET SPT ENTRY
						; 9386	=1111	ARL_0.M,ARX_SHIFT,SKP USER,	;3=INDIRECT, LOOP
U 1177, 2570,4001,0400,0000,0001,6210,0020	; 9387			J/LDIND
						; 9388	;
						; 9389	;	HERE TO GET SHARED PAGE POINTER OUT OF SPT
						; 9390	;
U 3426, 3427,0600,0007,4000,0320,0010,0143	; 9391	LDSHR:	VMA_AR+SBR			;ADDRESS OF SPT ENTRY
U 3427, 3430,4001,0000,0000,0012,0026,0103	; 9392		LOAD AR,PHYS REF
U 3430, 1173,3200,0003,6031,0022,0010,0100	; 9393		AR_MEM,FE_FE OR #,#/100,J/LDIMM	;TREAT SPT ENTRY AS IMMED
						; 9394	
						; 9395	;
						; 9396	;	HERE WITH IMMEDIATE PAGE NO IN AR TO LOAD INTO PT
						; 9397	;
						; 9398	
U 3431, 2602,4001,0000,7320,0020,5210,0077	; 9399	LDPT:	GEN # AND AR0-8,#/77,SKP SCAD NE;Test storage medium
						; 9400	.IF/BIG.PT				;[333]
						; 9401	=0	ARL_0.M,GEN FE AND SC,		;[333]In core. Is Keep bit set?
U 2602, 2604,0001,0000,7000,0021,5210,0020	; 9402			SKP SCAD NE,J/LDPT1
						;;9403	.IFNOT/BIG.PT
						;;9404	=0	ARL_0S,J/LDPT1
						; 9405	.ENDIF/BIG.PT				;[333]
U 2603, 3445,3240,2007,0000,0020,0010,0150	; 9406		AR_SV.BR,J/PFT			;PAGE NOT IN CORE
						; 9407	;
						; 9408	.IF/BIG.PT				;[333]
						; 9409	=0
						; 9410	.ENDIF/BIG.PT
U 2604, 3432,3713,7400,4402,1000,0010,0000	; 9411	LDPT1:	ARX_AR,AR_ARX*.25,SC_1,J/KMOVED	;[333]No K. GET -WR REF TO AR05
						; 9412	.IF/BIG.PT
U 2605, 2604,0001,0000,5001,0000,0110,0010	; 9413		AR0-8_#,#/10,FE_FE-SC,J/LDPT1	;[333]K set. Move to bit 5 for now
						; 9414	.ENDIF/BIG.PT
						; 9415	;
						; 9416	.IF/NOCST				;[247]
U 3432, 2606,3200,0007,7102,0020,5610,0142	; 9417	KMOVED:	TEST CBR, SC_P AND SC		;[247][333]CBR = 0? (-WR REF TO SC)
						; 9418	=0	SC_-SC,AR_ARX,ARX_AR (AD),
U 2606, 3436,3701,4200,5402,2000,0010,0000	; 9419			J/NOUPDT		;[247] YES, SKIP SOME
						;;9420	.IFNOT/NOCST				;[333]
						;;9421	KMOVED:					;[333]
						; 9422	.ENDIF/NOCST				;[247]
U 2607, 3433,0610,4007,7102,2320,0010,0142	; 9423		VMA_ARX+CBR,AR_ARX,SC_P AND SC	;PAGE IN CORE. SC_-WR REF
						; 9424	;
						; 9425	;	NOW GET CST ENTRY FOR THIS PAGE.
						; 9426	;
						; 9427	GTCST:	LOAD AR,PHYS REF,ARX_AR SWAP,	;Shuffle K over to bit 23
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 22-3
; IO.MIC[4,30]	17:12 9-Aug-84				KL-MODE PAGE REFILL LOGIC				

U 3433, 3434,4061,2400,5402,3032,0026,0103	; 9428			SC_-SC,AR_1		;SC=0 IF WR REF, ELSE -1
						; 9429		GEN FE AND #,#/10,SKP SCAD NE,	;SKIP IF WRITABLE
U 3434, 2610,4001,0040,7030,0022,5210,0010	; 9430			BR/AR,MB WAIT		;GET CST ENTRY & BIT FOR TESTING
						; 9431	=0	GEN P AND SC,SKP SCAD NE,	;FAIL IF WRITING OR AGE=0
U 2610, 2612,3600,2007,7100,2040,5210,0140	; 9432			AR_AR AND CSMSK,J/NOTWR	;STRIP OLD AGE FROM CST
						; 9433	;
						; 9434	;	[303] Looks like it's writable.  Make one final check by looking
						; 9435	;	at bit 18 of the CST entry, and abort if it's not set.
						; 9436	;
						; 9437		TEST AR.BR,SKP CRY0,		;POSSIBLY WRITABLE--SKIP IF CST
U 2611, 2016,3602,0000,5300,0040,5434,0777	; 9438			GEN #-SC,#/-1,BYTE DISP	; WRITTEN OR THIS IS WRITE REF
U 2016, 3435,0001,0000,5031,0000,0010,0004	; 9439	=110	FE_FE-#,#/4,J/STCST		;[305] TEMPORARILY UNWRITABLE, SET S
						;;9440	.IF/CST.WRITE				;[314]
						;;9441		AR_AR*BR,AD/OR,FE_FE OR #,#/4,	;SET CST WRITTEN AND SOFT BITS
						;;9442			SKP AR18		;IS IT REALLY WRITABLE? [303]
						;;9443	=0	AR_SV.BR,J/PFT			;NOT REALLY. BAIL OUT
						; 9444	.IFNOT/CST.WRITE			;[314]
U 2017, 3435,3302,2004,6031,0000,0010,0004	; 9445		AR_AR*BR,AD/OR,FE_FE OR #,#/4	;[314] Set CST written and soft bits
						; 9446	.ENDIF/CST.WRITE			;[314]
U 3435, 2612,3600,2007,0100,0040,5210,0140	; 9447	STCST:	AR_AR AND CSMSK,SKP P NE	;[305] WRITABLE. CLEAR, TEST OLD AGE
						; 9448	;
						; 9449	;	[322] At this point we should check whether we got here as a result
						; 9450	;	of an age trap (in which case we just take the page failure) or not,
						; 9451	;	in which case the failure was due to a write reference and we should
						; 9452	;	set bit 2 (the A bit) in the PFW.  This is not currently done
						; 9453	;	because (1) nobody needs it now, and (2) we are very short on CRAM
						; 9454	;	space.
						; 9455	;
						; 9456	=0
U 2612, 3445,3240,2007,0000,0020,0010,0150	; 9457	NOTWR:	AR_SV.BR,J/PFT			;WRITE OR AGE TRAP
						;;9458	.IFNOT/NOCST				;[247]
						;;9459		AR_AR OR PUR,STORE		;SET USE BITS, STORE BACK CST
						;;9460		MB WAIT,VMA_SV.VMA,		;RELOAD VMA FOR ORIGINAL REF
						;;9461			AR_SV.VMA,SC_1		;READY TO TEST VMA USER
						;;9462		GEN P AND SC,SKP SCAD NE,	;TEST VMA USER, copy page # to ARL,
						;;9463			AR_ARX,			;[333] K to AR bit 23, APMWC0 TO SC
						;;9464			SC_FE,ARX_AR (AD)	; MAP BIT TO ARX
						;;9465	=0	P_P OR SC#,EXEC REF,J/WRHPT	;BUILD PT ENTRY, CLEAR VMA USER
						;;9466		P_P OR SC#,USER REF		; OR SET USER, AS NECESSARY
						;;9467	WRHPT:	WR PT ENTRY,FE_#,#/10,AR_ARX*4	;UPDATE HARDWARE TABLE
						; 9468	.IF/NOCST
U 2613, 2617,3300,2007,0000,0036,0010,0141	; 9469		AR_AR OR PUR,STORE,J/WRHPT	;[247]SET USE BITS,
						; 9470						; STORE BACK CST
						; 9471	;
						; 9472	NOUPDT:	GEN FE AND #, #/10, ARX_AR SWAP,
U 3436, 2614,3711,2400,7030,3020,5210,0010	; 9473			AR_ARX (AD),SKP SCAD NE	;[247] SKIP IF WRITABLE
						; 9474	=0	AR_SV.PFW,GEN P AND SC,		;[322] Get saved PFW and
U 2614, 2616,3240,2007,7100,0040,5210,0152	; 9475			SKP SCAD NE,J/NOT.WR	;[247]FAIL IF WRITING
U 2615, 2617,0001,0000,6031,0000,0010,0004	; 9476		FE_FE OR #, #/4, J/WRHPT	;[247]SET WRITABLE BIT
						; 9477	;
U 3437, 2612,0001,0007,0000,0000,1010,0152	; 9478	WRFAIL:	SV.PFW_AR,J/NOTWR		;[322]Restore PFW and page fail
						; 9479	;
						; 9480	=0					;[323]
U 2616, 3437,4001,0000,6320,2000,0110,0100	; 9481	NOT.WR:	AR0-8_# OR AR0-8,#/100,J/WRFAIL	;[322]Write failure. Set A in PFW
U 2617, 3440,3200,4007,0000,2123,0013,0145	; 9482	WRHPT:	RSTR VMA_SV.VMA,AR_ARX,SC_FE	;RELOAD ORIGINAL VMA
U 3440, 3441,4001,0000,6100,3001,0010,0200	; 9483		P_P OR SC			;[333]COMBINE APMWC WITH PAGE #, K
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 22-4
; IO.MIC[4,30]	17:12 9-Aug-84				KL-MODE PAGE REFILL LOGIC				

U 3441, 3442,4001,0000,0000,0020,2310,0010	; 9484		WR PT ENTRY			;UPDATE HARDWARE PAGE TABLE
						; 9485	.ENDIF/NOCST
						; 9486	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 23
; IO.MIC[4,30]	17:12 9-Aug-84				KL-MODE PAGE REFILL LOGIC				

						; 9487	;HERE WHEN MAP INFO WRITTEN INTO HARDWARE PAGE TABLE
						; 9488	; WE NOW NEED ONLY RESTORE THE REGISTERS WE HAVE USED, AND RESTART THE
						; 9489	; MEMORY REFERENCE WHICH FAILED, RETURNING TO THE MICROINSTRUCTION
						; 9490	; WHICH WAITS FOR ITS COMPLETION.  (EXCEPT FOR MAP)
						; 9491	
						;;9492	.IFNOT/MODEL.B
						;;9493		GEN FE AND S,SKP SCAD NE,	;TEST FOR MAP INSTR
						;;9494			AR_SV.SC
						; 9495	.IF/MODEL.B
U 3442, 2620,3200,2007,0000,0020,0010,0151	; 9496		AR_SV.SC
						; 9497	.ENDIF/MODEL.B
						; 9498	
						; 9499	;HERE TO RESTORE REGISTERS AND RESTART REFERENCE WHICH FAILED
						; 9500	
						; 9501	=0	SC_EXP,FE_EXP,SKP AR0,		;RESTORE FE
U 2620, 2622,3240,4207,0203,3020,4510,0150	; 9502			AR_AR SWAP,ARX_SV.BR,J/PGRST1
						;;9503	.IFNOT/MODEL.B
						;;9504		AR_SV.VMA,ARX_SV.VMA,J/COMPEA	;*MAP* RESTART FROM AREAD
						; 9505	.IF/MODEL.B
						; 9506	=
						; 9507	.ENDIF/MODEL.B
						; 9508	=0
						; 9509	PGRST1:	SC_EXP,SKP AR0,			;RESTORE SC
U 2622, 2624,3240,4207,0202,2020,4510,0156	; 9510			AR_ARX,ARX_SV.AR,J/PGRST2
U 2623, 2622,4001,0000,1401,0000,0010,0000	; 9511		FE_-SC-1,J/PGRST1		;MAKE FE NEG
						; 9512	=0
						; 9513	PGRST2:	BR/AR,AR_ARX,			;RESTORE BR AND AR
U 2624, 3443,3240,4247,0000,2020,0010,0157	; 9514			ARX_SV.ARX,J/PGRST3	; AND ARX
						; 9515		SC_-SC-1,BR/AR,AR_ARX,		;NEGATE SC
U 2625, 3443,3200,4247,1402,2020,0010,0157	; 9516			ARX_SV.ARX
						; 9517	
						; 9518	;HERE RETURN TO POINT OF FAULT.  THERE MUST BE EXACTLY ONE MICRO-
						; 9519	; INSTRUCTION, OF 2 OR 3 TICKS, BETWEEN THE REQUEST AND THE RETURN.
						; 9520	; AT LEAST ONE IS REQUIRED TO GET NICOND LOGIC SET UP CORRECTLY IN
						; 9521	; CASE THIS IS A FETCH, BUT THERE MUST NOT BE TIME FOR A READ TO
						; 9522	; READ REFERENCE TO COMPLETE, BECAUSE THE MB WAIT INSTRUCTION TO WHICH
						; 9523	; WE RETURN MAY EXPECT TO GET SOMETHING OUT OF AR OR ARX BEFORE THE
						; 9524	; MBOX RESPONSE.  SEE DPB1.
						; 9525	
U 3443, 3444,3200,0007,0000,0130,0010,0145	; 9526	PGRST3:	REQ SV.VMA			;RESTART FAULTED REQUEST
U 3444, 0000,4001,0000,0000,0000,2103,0105	; 9527		SET ACCOUNT EN,RETURN0		;RETURN TO POINT OF FAILURE
						; 9528	
						; 9529	
						; 9530	;HERE ON A TRAP CONDITION DETECTED BY REFILL LOGIC
						; 9531	;AR CONTAINS SAVED BR
						; 9532	
						; 9533	PFT:	BR/AR,VMA_SV.VMA,		;RESTORE BR & VMA
U 3445, 0040,3200,0047,0000,0320,0005,0145	; 9534			SR DISP,J/CLEAN		;TAKE TRAP
						; 9535	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 24
; IO.MIC[4,30]	17:12 9-Aug-84				KI-MODE PAGE FAIL HANDLING				

						; 9536	.TOC	"KI-MODE PAGE FAIL HANDLING"
						; 9537	
						;;9538	.IFNOT/KLPAGE
						;;9539	.IFNOT/MODEL.B
						;;9540	2377:	CLR ACCOUNT EN,FORCE AR-ARX,J/PFSAVE
						;;9541	.IF/MODEL.B
						;;9542	3777:	CLR ACCOUNT EN,FORCE AR-ARX,J/PFSAVE
						;;9543	.ENDIF/MODEL.B
						;;9544	1777:	CLR ACCOUNT EN,FORCE AR-ARX	;DON'T CHARGE PAGE FAIL TO USER
						;;9545	PFSAVE:	SV.AR_AR,AR_ARX			;PRESERVE AR, ARX
						;;9546		SV.ARX_AR,SR DISP,J/CLEAN	;NOW CHECK FOR CLEANUP REQUIRED
						;;9547	
						; 9548	.ENDIF/KLPAGE
						; 9549	;HERE ON PAGE FAIL OR INTERRUPT WHICH REQUIRES CLEANUP IN ORDER
						; 9550	; TO BE CORRECTLY RESTARTABLE AFTER SERVICE...
						; 9551	
						; 9552	=1*0000
U 0040, 2626,0001,0000,0301,0000,7010,0037	; 9553	CLEAN:	FE_#,#/37,SKP INTRPT,J/PGF1	;HERE FOR INTRPT OR PGF?
						; 9554	
						; 9555	;(1) HERE ON EDIT SOURCE FAIL
						; 9556	
U 0041, 3467,3240,2001,0000,0020,1610,0000	; 9557		AR_SRCP,SR_0,J/BACKS		;BACK UP SRC POINTER
						; 9558	
						; 9559	;(2) HERE ON ANY FAILURE IN DECIMAL TO BINARY
						; 9560	
U 0042, 3474,3202,2600,0000,0000,1610,0001	; 9561		AR_BR LONG,SR_1,J/D2BPF		;GET ACCUMULATED BINARY
						; 9562	
						; 9563	;(3) HERE ON DST FAIL IN BINARY TO DECIMAL FILL
						; 9564	
U 0043, 3500,2540,2005,0000,0020,1610,0004	; 9565		AR_DLEN COMP,SR_#,#/4,J/B2DFPF
						; 9566	
						; 9567	;(4) HERE ON EDIT DST FAIL WITH NO SRC POINTER UPDATE
						; 9568	
U 0044, 3471,4001,0000,0000,0000,1610,0000	; 9569		SR_0,J/BACKD			;BACK UP DST POINTER ONLY
						; 9570	
						; 9571	;(5) HERE ON EDIT DST FAIL AFTER UPDATING SRC POINTER
						; 9572	
U 0045, 3471,0001,0000,0000,0000,1610,0001	; 9573		SR_1,J/BACKD			;BACK UP DST, THEN SRC
						; 9574	
						; 9575	;(6) HERE ON DESTINATION FAILURE IN BINARY TO DECIMAL
						; 9576	
U 0046, 3471,0001,0000,0000,0000,1610,0010	; 9577		SR_BDT,J/BACKD			;BACK UP DST, THEN SAVE FRACTION
						; 9578	
						; 9579	;(7) HERE ON BLT FAILURE
						; 9580	.IF/KLPAGE
U 0047, 3462,3200,0207,0000,0020,0010,0157	; 9581		ARX_SV.ARX,J/BLTPF		;GET DEST ADDR AGAIN
						;;9582	.IFNOT/KLPAGE
						;;9583	BLTPF:	AR_ARX+BR,SR_0,J/BLTPF1		;CURRENT SRC ADDR
						; 9584	.ENDIF/KLPAGE
						; 9585	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 25
; IO.MIC[4,30]	17:12 9-Aug-84				KI-MODE PAGE FAIL HANDLING				

						; 9586	;(10) HERE ON TRANSLATION FAILURE IN BINARY TO DECIMAL
						; 9587	
U 0050, 3501,3242,2600,0000,0000,1610,0000	; 9588		AR_BR LONG,SR_0,J/B2DPF		;GET BINARY FRACTION
						; 9589	
						; 9590	;(11) HERE ON SRC FAILURE IN COMPARE OR MOVE STRING
						; 9591	
U 0051, 3505,3240,2005,0000,0020,1610,0001	; 9592		AR_DLEN,SR_1,J/STRPF		;PUT LENGTHS BACK, THEN BACK SRC
						; 9593	
						; 9594	;(12) HERE ON DST FAILURE IN COMPARE OR MOVE STRING
						; 9595	
U 0052, 3505,3240,2005,0000,0020,1610,0004	; 9596		AR_DLEN,SR_#,#/4,J/STRPF
						; 9597	
						; 9598	;(13) HERE ON DST FAILURE AFTER UPDATING SRC IN COMPARE OR MOVE
						; 9599	
U 0053, 3471,0001,0000,0000,0000,1610,0111	; 9600		SR_SRC,J/BACKD			;BACK DST, THEN HANDLE AS SRC FAIL
						; 9601	
						; 9602	;(14) HERE ON DST FILL FAILURE IN MOVRJ
						; 9603	
U 0054, 3511,3240,2005,0000,0020,1610,0004	; 9604		AR_DLEN,SR_#,#/4,J/STRPF4
						; 9605	.IF/KLPAGE
						; 9606	;(15) HERE ON PAGE FAILURE IN MAP INSTRUCTION.  RETURN PAGE FAIL WORD
						; 9607	
U 0055, 1270,3200,2007,0000,0020,7310,0152	; 9608		AR_SV.PFW,SKP IO LEGAL,J/MAP2	;RETURN PFW IN AC
						; 9609	.ENDIF/KLPAGE
						; 9610	.IF/XADDR
						; 9611	;(16) HERE ON PAGE FAIL IN XBLT
						; 9612	
U 0056, 3465,3242,2600,0000,0000,1610,0000	; 9613		AR_BR LONG,SR_0,J/XBLTPF
						; 9614	.ENDIF/XADDR
						; 9615	.IF/MODEL.B
						; 9616	;(17)	HERE ON FAILURE IN WORD MOVE STRING 
						; 9617	
U 0057, 3511,3200,2005,0000,0020,1610,0000	; 9618		AR_DLEN,SR_0,J/STRPF4
						; 9619	.ENDIF/MODEL.B
						; 9620	=
						; 9621	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 26
; IO.MIC[4,30]	17:12 9-Aug-84				KI-MODE PAGE FAIL HANDLING				

						; 9622	;HERE ON ANY PAGE FAILURE OR PI REQUEST IN LONG INSTRUCTIONS
						; 9623	; SKIP IF PI REQUEST, WHICH TAKES PRIORITY
						; 9624	
						; 9625	.IF/KLPAGE
						; 9626	=0
						; 9627	.IFNOT/SHIFT.MUUO
U 2626, 3446,4001,0000,0000,0102,3010,0500	; 9628	PGF1:	MB WAIT,VMA_#,#/500,J/PGF2
						;;9629	.IF/SHIFT.MUUO
						;;9630	PGF1:	MB WAIT,VMA_#,#/501,J/PGF2	;SHIFT TO CLOSER MATCH XADDR FORM
						; 9631	.ENDIF/SHIFT.MUUO
U 2627, 0071,0001,0000,0000,0000,2110,0105	; 9632		SET ACCOUNT EN,J/TAKINT		;CLEANUP DONE, SERVE INTRPT
U 3446, 1260,3200,2007,0000,0020,6510,0152	; 9633	PGF2:	AR_SV.PFW,SKP PI CYCLE,J/PGF4	;GET BACK PAGE FAIL WORD
						;;9634	.IFNOT/KLPAGE
						;;9635	=0
						;;9636	PGF1:	GET ECL EBUS,CLR SC,
						;;9637			PF DISP,J/PGF2
						;;9638		SET ACCOUNT EN,J/TAKINT		;HERE TO SERVE INTRPT, DO IT
						;;9639	=1100
						;;9640	PGF2:
						;;9641	=01	AR_SV.AR,FE_FE-1,		;AR PARITY ERROR
						;;9642			SKP RPW,J/PGF6		;DO WE NEED TO RESTART RPW?
						;;9643	=10	VMA_VMA HELD,MAP,SC_FE		;ARX PARITY ERROR, PF CODE 37
						;;9644	PGF3:	MB WAIT,VMA_#,#/500
						;;9645		AR_EBUS REG			;READ PAGE FAIL WORD
						;;9646		REL ECL EBUS
						;;9647		P_P OR SC,SKP PI CYCLE		;STUFF ERROR CODE IF PARITY
						; 9648	.ENDIF/KLPAGE
						; 9649	=00
						; 9650	PGF4:	ARX_AR,AR_VMA HELD,SC_#,#/13.,	;READY TO COMBINE PF WORD
U 1260, 1630,3733,2400,0302,1000,1750,0015	; 9651			CALL,J/ROTS		; WITH ADDRESS
						; 9652		ARX_AR,AR_VMA HELD,SC_#,#/13.,	;READY TO COMBINE PF WORD
U 1261, 3456,3731,2400,0302,1000,1710,0015	; 9653			J/IOPGF			; WITH ADDRESS
U 1263, 3447,4001,4000,0000,0000,1510,0004	; 9654	=11	AR_SHIFT,ABORT INSTR		;RECOVER TRAP FLAGS, IF ANY
						;;9655	.IFNOT/XADDR
						;;9656		STORE,UPT REF			;PUT PAGE FAIL WORD AT 500
						;;9657		FIN STORE,AR_PC,
						;;9658			VMA_VMA+1,STORE		;STORE OLD PC AT 501 OR 502
						;;9659		FIN STORE,AR_0S,
						;;9660			VMA_VMA+1,LOAD AR	;GET NEW PC FROM 502 OR 503
						;;9661		SET ACCOUNT EN,J/NEWPC
						; 9662	.IF/XADDR
U 3447, 3450,3733,0200,0000,0016,0026,0223	; 9663		STORE,UPT REF,ARX_PC		;PAGE FAULT WORD TO 500
						; 9664		AR_ARX ANDC ADMSK,MB WAIT,	;GET PC FLAGS FOR STORING
U 3450, 3451,3510,2227,4000,0022,0010,0175	; 9665			BRX/ARX,ARX/AD		;FULL PC IN BRX, FLAGS IN ARX
U 3451, 2630,0001,0000,0000,0000,6222,0030	; 9666		AR_0.S,SKP USER
U 2630, 0732,0001,0000,0000,2000,0250,0000	; 9667	=0	AR12-17_PREV SEC,CALL [ARSWAP]	;[334] GET PCS IF EXEC MODE
						; 9668		ARL_ARXL,ARR_ARR,		;FLAGS WORD IN AR
U 2631, 3452,4001,0000,0000,2016,3622,0004	; 9669			VMA_VMA+1,STORE		;STORE FLAGS WORD IN 501
						; 9670		AR_ARX*BRX,AD/ANDCA,		;GET PC ADDRESS
U 3452, 3453,3002,6004,0000,0016,3610,0000	; 9671			VMA_VMA+1,STORE		; STORE IT IN 502
U 3453, 3454,3441,2000,0000,0012,3610,0000	; 9672		AR_0S,VMA_VMA+1,LOAD AR		;GET NEW PC ADDRESS FROM 503
U 3454, 3455,0001,0000,0000,0000,0024,0020	; 9673		SET FLAGS_AR			;CLEAR ALL FLAGS
U 3455, 1045,3200,0003,0000,0022,2110,0105	; 9674		AR_MEM,SET ACCOUNT EN,J/ARJMP	;NEW ADDRESS FOR PC
						; 9675	.ENDIF/XADDR
						; 9676	
						;;9677	.IFNOT/KLPAGE
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 26-1
; IO.MIC[4,30]	17:12 9-Aug-84				KI-MODE PAGE FAIL HANDLING				

						;;9678	
						;;9679	;HERE ON PARITY ERROR IN AR.  SKIP IF READ-PAUSE-WRITE IN PROGRESS
						;;9680	=0
						;;9681	PGF6:	VMA_VMA HELD,MAP,		;AR PARITY ERROR
						;;9682			SC_FE,J/PGF3		;PF CODE 36
						;;9683		STORE,J/PGF6			;COMPLETE CYCLE, WITH GOOD PAR
						; 9684	.ENDIF/KLPAGE
						; 9685	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 27
; IO.MIC[4,30]	17:12 9-Aug-84				PAGE FAIL/INTERRUPT CLEANUP FOR SPECIAL INSTRUCTIONS

						; 9686	.TOC	"PAGE FAIL/INTERRUPT CLEANUP FOR SPECIAL INSTRUCTIONS"
						; 9687	
						; 9688	;HERE ON PAGE FAIL DURING PI CYCLE
						; 9689	
						;;9690	.IFNOT/MODEL.B			 	;[224][274]
						;;9691	IOPGF:	AR_SHIFT,ARX_SHIFT,SC_#-SC,	;TROUBLE... CREATE PAGE FAIL WORD
						;;9692			#/36.
						;;9693		AR_SHIFT,SET IO PF
						;;9694		SV.IOPF_AR,J/IOPFIN		;FINISH  IOPF ROUTINE
						; 9695	.IF/MODEL.B				;[224] DO FANCY STUFF FOR DTE.
U 3456, 3457,3240,2007,0000,0020,0010,0163	; 9696	IOPGF:	AR_FM[SV.IOP]			;[274] GET THE SAVED API WORD
U 3457, 3460,0001,0007,0000,0000,1010,0162	; 9697		SV.IOPF_AR			;[224] SAVE IT IN AC BLK 7.
U 3460, 3461,3200,2047,0000,0020,0010,0156	; 9698		BR/AR,AR_SV.AR			;[224] KEEP IOPF WORD AROUND,
U 3461, 1272,4001,0000,0000,0000,2310,0100	; 9699		SET IO PF			;[224][274] HANDLE DTE.
						; 9700	
						; 9701	;[223] THIS RESTARTS THE DTE'S CLOCK TO PREVENT A DEX FAILURE.
U 1272, 3267,4001,0000,0000,0000,2250,0026	; 9702	=10	SET DATAO,CALL,J/EBUSO		;[223] SEND THE DATA TO THE DTE.
U 1273, 0743,3202,2000,0000,0000,2110,0105	; 9703		AR_BR,SET ACCOUNT EN,J/PIDONE	;[223] AND FINISH THE INTRPT.
						; 9704	.ENDIF/MODEL.B				;[224]
						; 9705	
						; 9706	
						; 9707		;HERE ON BLT PAGE FAIL
						; 9708	
						; 9709	.IF/KLPAGE
U 3462, 3463,0612,2000,0000,0020,1610,0000	; 9710	BLTPF:	AR_ARX+BR,SR_0			;CURRENT SRC ADDR
						; 9711	.ENDIF/KLPAGE
U 3463, 3464,3713,2000,0000,3000,0610,0004	; 9712	BLTPF1:	AR_ARX (AD),ARL_ARR
U 3464, 0040,0001,0000,0000,0000,1005,0000	; 9713	PGFAC0:	AC0_AR,SR DISP,J/CLEAN		;BEGIN NORMAL PF WORK
						; 9714	
						; 9715	;HERE ON XBLT PAGE FAIL OR INTERRUPT
						; 9716	.IF/XADDR
						; 9717	
U 3465, 3466,0001,4001,0000,2000,1010,0000	; 9718	XBLTPF:	AC1_AR,AR_ARX
U 3466, 0040,0001,0004,0000,0000,1010,0000	; 9719		AC2_AR,J/CLEAN
						; 9720	.ENDIF/XADDR
						; 9721	
						; 9722	;HERE ON VARIOUS CASES OF STRING/EDIT FAILURE
						; 9723	
U 3467, 3470,0001,0000,2110,3000,0022,0200	; 9724	BACKS:	P_P+S
U 3470, 0040,4001,0001,0000,0000,1005,0000	; 9725		SRCP_AR,SR DISP,J/CLEAN		;RE-DISPATCH FOR MORE
						; 9726	
U 3471, 3472,3240,2006,0000,0020,0010,0144	; 9727	BACKD:	AR_DSTP
						; 9728	.IF/MODEL.B
U 3472, 3473,0001,0000,2110,3000,0110,0144	; 9729		P_P+S.C,SEL DSTP		;PRESEL NUM FIELD FOR HARDW GLITCH
						;;9730	.IFNOT/MODEL.B
						;;9731		P_P+S
						; 9732	.ENDIF/MODEL.B
U 3473, 0040,4001,0006,0000,0000,1005,0144	; 9733		DSTP_AR,SR DISP,J/CLEAN
						; 9734	
U 3474, 3475,3401,2005,0302,0000,1010,0043	; 9735	D2BPF:	AC3_AR,AR_0S,SC_#,#/35.		;PUT AWAY HIGH BINARY
U 3475, 3476,5140,4207,0000,0020,0010,0170	; 9736		AR_SHIFT,ARX_-SLEN		;LOW TO AR, REMAINING LEN TO ARX
						; 9737	.IF/MODEL.B
U 3476, 3477,4001,0000,0000,0000,0010,0144	; 9738		SEL DSTP			;PRESEL NUM FIELD FOR HARDW GLITCH
						; 9739	.ENDIF/MODEL.B
U 3477, 3510,0001,4006,0000,2000,1010,0144	; 9740		AC4_AR,AR_ARX,J/STRPF2		;PUT LOW AWAY
						; 9741	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 27-1
; IO.MIC[4,30]	17:12 9-Aug-84				PAGE FAIL/INTERRUPT CLEANUP FOR SPECIAL INSTRUCTIONS

U 3500, 3504,3300,2007,4000,0020,0010,0166	; 9742	B2DFPF:	AR_AR*T0,AD/OR,J/B2DPF2
						; 9743	
U 3501, 3502,4001,4000,0000,2000,1010,0000	; 9744	B2DPF:	AC0_AR,AR_ARX			;HIGH FRACTION TO AC
U 3502, 3503,4001,0001,0000,0000,1010,0000	; 9745		AC1_AR				;LOW TO AC1
U 3503, 3504,3200,2005,0000,0020,0010,0000	; 9746		AR_AC3				;GET FLAGS
U 3504, 3507,5100,2007,4000,0020,0010,0170	; 9747	B2DPF2:	AR_AR*SLEN,AD/A-B,J/STRPF3	;REBUILD FLAGS+LEN
						; 9748	
U 3505, 2632,5160,2047,0000,0020,4510,0170	; 9749	STRPF:	BR/AR,AR_-SLEN,SKP AR0		;WHICH IS LONGER?
						; 9750	=0
U 2632, 3510,0602,2005,4000,0020,1010,0000	; 9751	STRPF1:	AC3_AR,AR_AR+BR,J/STRPF2	;SRC LONGER
U 2633, 3506,3300,2400,0000,1020,0010,0000	; 9752		ARX_AR,AR_AR*SFLGS,AD/OR	;DST.  BUILD SRC LEN+FLAGS
U 3506, 3507,5112,2000,4000,0020,1010,0000	; 9753		AC0_AR,AR_ARX-BR		;THAT'S AWAY, MAKE DST LEN
U 3507, 0040,0001,0005,0000,0000,1005,0000	; 9754	STRPF3:	AC3_AR,SR DISP,J/CLEAN		;OK, NOW BACK UP SRC IF REQ'D
						; 9755	
U 3510, 3464,3300,2000,0000,0020,0010,0000	; 9756	STRPF2:	AR_AR*SFLGS,AD/OR,J/PGFAC0
						; 9757	
U 3511, 2632,2500,2047,0000,0020,4510,0170	; 9758	STRPF4:	BR/AR,AR_SLEN COMP,SKP AR0,J/STRPF1
						; 9759	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 1
; EIS.MIC[4,30]	17:12 9-Aug-84				EXTENDED INSTRUCTION SET DECODING			

						; 9760	.TOC	"EXTENDED INSTRUCTION SET DECODING"
						; 9761	
						; 9762	.IF/EXTEND
						; 9763	;GET HERE WITH E0 IN BR, (E0) IN AR
						; 9764	;	(E0) IS THE OPERATION WORD, AND HAS THE NORMAL -10 INSTRUCTION
						; 9765	;	FORMAT -- BITS 0-8 ARE OPCODE, 9-12 IGNORED, 13 @, 14-17 XR,
						; 9766	;	AND 18-35 Y.  THE AC USED COMES FROM THE EXTEND INSTRUCTION.
						; 9767	; COMPUTE E1 FROM 13-35
						; 9768	
						;;9769	.IFNOT/XADDR
						;;9770	;EXTEND:FE_#+AR0-8,#/-32,SKP SCAD0,	;CHECK LEGAL OPERATION
						;;9771	;		ARX_AR,AR_BRX		;OPR TO ARX, GET AC FROM BRX
						;;9772	=0
						;;9773	EXT1:	AR_BR,J/UUO			;OPCODE > 17 or 31
						;;9774	.IF/MODEL.B				;[246]
						;;9775		AR0-8_FE+#,#/32			;PLUG OPR INTO EXTEND AC
						;;9776		GEN AR,LOAD IR,AR_ARX
						;;9777		ARL_0.M,EA MOD DISP,J/EXT2
						;;9778	=1100
						;;9779	.IFNOT/MODEL.B				;[246]
						;;9780		AR0-8_FE+#,#/20			;PLUG OPR INTO EXTEND AC
						;;9781		GEN AR,LOAD IR,AR_ARX,ARL_0.M,
						;;9782			EA MOD DISP
						;;9783	=00
						;;9784	.ENDIF/MODEL.B
						;;9785	EXT2:	E1_AR,B DISP,J/EXT5		;SAVE E1, READY TO SAVE E0
						;;9786		ARL_0.M,AR_ARX+XR,J/EXT2
						;;9787		GEN ARX,A INDRCT,SKP INTRPT,J/EXT3
						;;9788		GEN ARX+XR,A INDRCT,
						;;9789			SKP INTRPT,J/EXT3
						;;9790	=0
						;;9791	EXT3:	AR_MEM,ARX_MEM,J/EXT4
						;;9792		AR_MEM,TAKE INTRPT
						;;9793	EXT4:	ARL_0.M,EA MOD DISP,J/EXT2
						;;9794	
						;;9795	=110
						;;9796	EXT5:	AR_BR,J/EXT6			;TRANSLATE MODE, DO NOT EXTEND
						;;9797		ARL_1S.M,SKP AR18		;SIGN EXTEND E1 IF NEGATIVE
						;;9798	=0	AR_BR,J/EXT6			;POS, ALREADY OK
						;;9799		E1_AR,AR_BR			;PUT NEG RESULT IN E1
						;;9800	EXT6:	E0_AR,VMA_AR+1,IR DISP,J/2000	;ENTER EXTENDED INSTR HANDLER
						;;9801	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 2
; EIS.MIC[4,30]	17:12 9-Aug-84				EXTENDED INSTRUCTION SET DECODING			

						;;9802	;HERE FOR EXTENDED INSTRUCTION SET DECODING UNDER XADDR
						; 9803	.IF/XADDR
						; 9804	;EXTEND: SC_#+AR0-8,#/-32,SKP SCAD0,	;VALID EXTENDED OPERATION?
						; 9805	;		ARX_AR,AR_BR,J/EXTF1	; OPR TO ARX, AC TO AR
						; 9806	=0
U 2634, 1002,3242,2000,0000,0000,0010,0000	; 9807	EXTF1:	AR_BR,J/UUO			;Opcode is too large.
U 2635, 3512,3202,6017,0000,1000,1010,0176	; 9808		E0_AR,MQ_AR,AR_BRX		;SAVE E0.  GET AC FROM EXTEND
U 3512, 3513,4001,0000,2302,2000,0110,0032	; 9809		AR0-8_#+SC,#/32,SC/SCAD		;COMBINE EXT OP <32 WITH AC
U 3513, 2636,0001,0000,2400,0020,5210,0000	; 9810		GEN SC,SKP SCAD NE		;TEST OP CODE
U 2636, 1002,3242,2000,0000,0000,0010,0000	; 9811	=0	AR_BR,J/UUO			;OP CODE = 0 (UUO) [217][251]
U 2637, 3514,3701,0000,0000,0000,1410,0000	; 9812		GEN AR,LOAD IR			;MAP THIS OVER THE LUUO SPACE
U 3514, 1234,2301,4000,0000,2000,0036,0000	; 9813	EXTF2:	AR_ARX,EA MOD DISP,J/EXTLA	;GO EVALUATE E1
						; 9814	=0000
U 1220, 2640,3713,0000,0000,1111,7010,0230	; 9815	EXTXA:	GEN ARX,GLOBAL,EXT INDRCT,SKP INTRPT,J/EXTI
U 1221, 2640,0610,0002,4000,1131,7010,0230	; 9816		GEN ARX+XR,GLOBAL,EXT INDRCT,SKP INTRPT,J/EXTI
U 1222, 2640,3713,0000,0000,1111,7010,0230	; 9817		GEN ARX,GLOBAL,EXT INDRCT,SKP INTRPT,J/EXTI
U 1223, 2640,0610,0002,4000,1131,7010,0230	; 9818		GEN ARX+XR,GLOBAL,EXT INDRCT,SKP INTRPT,J/EXTI
						; 9819	
U 1224, 3077,3711,0300,0000,1004,0002,0400	; 9820		GEN ARX,GLOBAL,EXT INDEX,ARX/MQ,J/3077
U 1225, 3077,0610,0302,0000,1024,0002,0400	; 9821		GEN ARX+XR,GLOBAL,EXT INDEX,ARX/MQ,J/3077
U 1226, 3077,3711,0300,0000,1004,0002,0400	; 9822		GEN ARX,GLOBAL,EXT INDEX,ARX/MQ,J/3077
U 1227, 3077,0610,0302,0000,1024,0002,0400	; 9823		GEN ARX+XR,GLOBAL,EXT INDEX,ARX/MQ,J/3077
						; 9824	
U 1230, 0134,0001,0000,0000,0000,2210,0400	; 9825		GET ECL EBUS,J/ILLIND		;[234] illegal indirect word
U 1231, 0134,0001,0000,0000,0000,2210,0400	; 9826		GET ECL EBUS,J/ILLIND		;[234] illegal indirect word
U 1232, 0134,0001,0000,0000,0000,2210,0400	; 9827		GET ECL EBUS,J/ILLIND		;[234] illegal indirect word
U 1233, 0134,0001,0000,0000,0000,2210,0400	; 9828		GET ECL EBUS,J/ILLIND		;[234] illegal indirect word
						; 9829	;
						; 9830	;	[325]
						; 9831	;	The effective address dispatch logic is quite arcane.  It appears
						; 9832	;	that MEM/A RD,DISP/DRAM A RD, and SH/2 interact to get the section
						; 9833	;	number from either AD (if the AC > 777777) or from VMA section, but
						; 9834	;	in order for that to work, we must do something with the VMA, even
						; 9835	;	though we don't actually use it here if the address computation
						; 9836	;	is complete.  Thus the VMA/LOAD has been added for the index case.
						; 9837	;
U 1234, 2042,3701,0300,0000,0004,0033,0400	; 9838	EXTLA:	GEN AR,EXT ADDR,ARX/MQ,J/EXT2
U 1235, 3077,0600,0302,0000,2124,0002,0400	; 9839		GEN AR+XR,INDEXED,EXT INDEX,ARX/MQ,VMA/LOAD,J/3077 ;[325]
U 1236, 2640,3703,0000,0000,0111,7010,0230	; 9840		GEN AR,EXT INDRCT,SKP INTRPT,J/EXTI
U 1237, 2640,0600,0002,0000,2131,7010,0230	; 9841		GEN AR+XR,INDEXED,EXT INDRCT,SKP INTRPT,J/EXTI
						; 9842	
						; 9843	=0
U 2640, 3515,3240,0003,0000,0022,2510,0000	; 9844	EXTI:	ARX_MEM,LONG EN,J/EXTI2
U 2641, 0144,3200,0003,0000,0022,7710,0000	; 9845		ARX_MEM,TAKE INTRPT
						; 9846	EXTI2:	AR_ARX,XR,EA MOD DISP,
U 3515, 1220,2341,4002,0301,2020,0036,0024	; 9847			FE_#,#/24,TIME/3T,J/EXTXA
						; 9848	
						; 9849	=010
						; 9850	EXT2:	E1_AR,AR_ARX,VMA_ARX+1,		;ESTABLISH E1
U 2042, 2000,4011,4007,0000,2320,1001,0165	; 9851			IR DISP,J/2000		;GO TO SPECIFIC HANDLER
U 2043, 2642,0001,0000,0000,0001,4410,0020	; 9852		ARL_0.M,SKP AR18,J/EXT3		;OFFSET MODE.  EXTEND E1
						; 9853		E1_AR,AR_ARX,VMA_ARX+1,		;[301] Duplicate these to
U 2046, 2000,4011,4007,0000,2320,1001,0165	; 9854			IR DISP,J/2000		; distinguish GSNGL (B=5) from
						; 9855		E1_AR,AR_ARX,VMA_ARX+1,		; offset instructions (B=1)
U 2047, 2000,4011,4007,0000,2320,1001,0165	; 9856			IR DISP,J/2000
						; 9857	=0
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 2-1
; EIS.MIC[4,30]	17:12 9-Aug-84				EXTENDED INSTRUCTION SET DECODING			

						; 9858	EXT3:	E1_AR,AR_ARX,VMA_ARX+1,		;ESTABLISH E1
U 2642, 2000,4011,4007,0000,2320,1001,0165	; 9859			IR DISP,J/2000		;GO TO SPECIFIC HANDLER
U 2643, 2642,2301,0000,0000,0000,0610,0002	; 9860		ARL_1S,J/EXT3			;NEGATIVE OFFSET
						; 9861	.ENDIF/XADDR
						; 9862	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 3
; EIS.MIC[4,30]	17:12 9-Aug-84				EXTENDED INSTRUCTION SET DECODING			

						; 9863	;	By using "IR DISP,J/2000" we can use the same DRAM for LUUOs as
						; 9864	;	for the EXTEND instructions with like opcodes.  The LUUOs dispatch
						; 9865	;	to addresses in the range 1000-1017; by dispatching with J/2000,
						; 9866	;	the EXTEND ops go to 3000-3017 (model B) or 2000-20017 (model A).
						;;9867	.IFNOT/MODEL.B
						;;9868	2005:	AR_AC3,J/CMPS			;HIDDEN BEHIND L-CMS
						;;9869	2006:	CLR AR,ARX_1S,SC_#,#/15.,J/EDIT	;HIDDEN BEHIND L-EDIT
						;;9870	2010:	AR_AC0 COMP,J/DBIN		;HIDDEN BEHIND L-DBIN
						;;9871	2011:	AR_AC1,ARL/AD,SC_1,ARX+MQ_0.M,
						;;9872			BYTE DISP,J/BDEC	;HIDDEN BEHIND L-BDEC
						;;9873	2012:	AR_AC3,LOAD AR,J/MVST		;HIDDEN BEHIND L-MVS
						; 9874	.IF/MODEL.B
						;;9875	.IFNOT/XADDR
						;;9876	3005:	AR_AC3,J/CMPS			;HIDDEN BEHIND L-CMS
						;;9877	3006:	CLR AR,ARX_1S,SC_#,#/15.,J/EDIT	;HIDDEN BEHIND L-EDIT
						;;9878	3010:	AR_AC0 COMP,J/DBIN		;HIDDEN BEHIND L-DBIN
						;;9879	3011:	AR_AC1,ARL/AD,SC_1,ARX+MQ_0.M,
						;;9880			BYTE DISP,J/BDEC	;HIDDEN BEHIND L-BDEC
						;;9881	3012:	AR_AC3,LOAD AR,J/MVST		;HIDDEN BEHIND L-MVS
						; 9882	.IF/XADDR
						;;9883	.IFNOT/OWGBP				;[265]
						;;9884	3005:	AR_AC3,J/CMPS			;HIDDEN BEHIND L-CMS
						;;9885	3006:	CLR AR,ARX_1S,SC_#,#/15.,J/EDIT	;HIDDEN BEHIND L-EDIT
						;;9886	3010:	AR_AC0 COMP,J/DBIN		;HIDDEN BEHIND L-DBIN
						;;9887	3011:	AR_AC1,ARL/AD,SC_1,ARX+MQ_0.M,
						;;9888			BYTE DISP,J/BDEC	;HIDDEN BEHIND L-BDEC
						;;9889	3012:	AR_AC3,LOAD AR,J/MVST		;HIDDEN BEHIND L-MVS
						; 9890	.IF/OWGBP				;[265]
						; 9891	;
						; 9892	;	[347] CMPS dispatch rewritten to test bad high length bits first.
						; 9893	;
U 3005, 3516,3240,2000,0301,0020,0050,0777	; 9894	3005:	AR_AC0,FE_#,#/777,CALL [FLGTST]	;[347] Any illegal high bits in len?
U 3025, 2050,4001,0007,0000,0000,1050,0173	; 9895	3025:	FILL_AR,CALL [EXT2WD]		;[310][347] Save fill VMA, test OWG
U 3035, 3546,3200,2015,0000,2020,0010,0000	; 9896	3035:	AR_AC3,MQ_ARX,J/CMPS		;[310][347] Get dest length and go
						; 9897	;
U 3006, 0246,4001,0000,0000,0000,0010,0000	; 9898	3006:	J/EDIT				;HIDDEN BEHIND L-EDIT
U 3010, 2670,4001,0000,0000,0000,0010,0000	; 9899	3010:	J/DBIN				;HIDDEN BEHIND L-DBIN
U 3011, 0241,4011,2000,0000,0020,0010,0000	; 9900	3011:	AR_ARX+1 (AD),J/BDEC		;[344] HIDDEN BEHIND L-BDEC
						; 9901	;
U 3012, 3516,3200,2000,0301,0020,0050,0077	; 9902	3012:	AR_AC0,FE_#,#/77,CALL [FLGTST]	;[347] MVST. Watch out for illegal
U 3032, 0664,0001,0000,0000,0012,0010,0000	; 9903	3032:	LOAD AR,J/MVST			; flags first. 
						; 9904	;
						; 9905	;	Subroutine to check for bits set that are not allowed to be.
						; 9906	;	Enter with AR containing AC0 and FE with relevant bit mask.
						; 9907	;	Return 20 if none set; sideways exit to UUO if any are.  Note
						; 9908	;	that BRX must still contain the EXTEND for this to work.
						; 9909	;
U 3516, 3517,3200,2005,7021,0020,0010,0000	; 9910	FLGTST:	AR_AC3,FE_FE AND AR0-8		;[347] Get dest length
U 3517, 2644,4001,0000,6020,0020,5210,0000	; 9911		GEN FE OR AR0-8,SKP SCAD NZ	;[347] Are any high bits set?
U 2644, 0020,4013,2000,0000,0020,0003,0000	; 9912	=0	AR_ARX+1 (AD),RETURN20		;[347] No. Start saving fill VMA
U 2645, 1002,3242,2000,0000,0000,0010,0000	; 9913		AR_BR,J/UUO			;[347] Yes. Blow out of the water
						; 9914	.ENDIF/OWGBP				;[265]
						; 9915	;3042:	AR_BR,J/UUO		;[217] INDEXING ON ILL. EXTEND OP.
						; 9916	;
						; 9917	;	As first written, locations 3044, 3045, 3046, 3050, 3051, 3052,
						; 9918	;	3144, 3145, 3146, 3147, 3150, 3151, 3152, 3153, and 3154 all were
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 3-1
; EIS.MIC[4,30]	17:12 9-Aug-84				EXTENDED INSTRUCTION SET DECODING			

						; 9919	;	B DISP,J/EXT2.  The comment:  these are index cases because index
						; 9920	;	must do AREAD with the DISP function in order to get the correct
						; 9921	;	index value for E1.
						; 9922	;
U 3077, 2042,4001,0000,0000,0000,0033,0000	; 9923	3077:	B DISP, J/EXT2		;[251]
U 3177, 2042,4001,0000,0000,0000,0033,0000	; 9924	3177:	B DISP, J/EXT2		;[251]
						; 9925	.ENDIF/XADDR
						; 9926	.ENDIF/MODEL.B
						; 9927	.ENDIF/EXTEND
						; 9928	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 4
; EIS.MIC[4,30]	17:12 9-Aug-84				ONE WORD GLOBAL BYTE POINTER SUBROUTINES FOR EXTEND

						; 9929	.TOC	"ONE WORD GLOBAL BYTE POINTER SUBROUTINES FOR EXTEND"
						; 9930	;
						; 9931	; HERE FOR MVST, EDIT AND CMPS INSTRUCTIONS
						; 9932	; MUST CHECK BOTH AC1 AND AC4 FOR OWGBP
						; 9933	; AND CONVERT TO TWO WORD GLOBAL POINTERS.
						; 9934	; There is also a hack in here for the CMPSx instructions.  In
						; 9935	; order to find their fill characters in the right place, we must
						; 9936	; fetch FILL (saved as E0+1) into ARX.  [310]
						; 9937	; BDEC ENTERS AT EXT01 FOR AC4 ONLY
						; 9938	.IF/EXTEND
						; 9939	.IF/OWGBP				;[265]
						; 9940	=000
U 2050, 1430,3240,2001,0000,0020,0050,0000	; 9941	EXT2WD:	AR_AC1,CALL [TST2WD]		;AC1 OWGBP ?
U 2051, 3525,4001,0000,0000,0000,0050,0000	; 9942		CALL [STR2WD]			;YES, CONVERT DONE, STORE
U 2052, 2054,4001,0000,0000,0000,0010,0000	; 9943		J/EXT01				;NO, TRY AC4
U 2053, 3523,3312,2004,0000,0000,1010,0000	; 9944		AC2_AR,AR_BR OR ARX,J/EXT02	;ADDRESS STORE
U 2054, 1430,3240,2006,0000,0020,0050,0144	; 9945	EXT01:	AR_AC4,CALL [TST2WD]		;AC4 OWGBP ?
U 2055, 3525,3200,0207,0000,0020,0050,0173	; 9946		ARX_FILL,CALL [STR2WD]		;[310] YES, CONVERT DONE, STORE
U 2056, 0010,3200,0207,0000,0020,0003,0173	; 9947		ARX_FILL,RETURN10		;[310][347] NO, CAN'T DO NO MORE
U 2057, 3520,0001,0000,0000,0000,0010,0145	; 9948		SEL DSTP2			;[310] DON'T GLITCH ON AC5 STORE
U 3520, 3521,3312,2006,0000,0000,1010,0145	; 9949		AC5_AR,AR_BR OR ARX		; (See second edit #210)
U 3521, 3522,3242,0600,0000,0000,0010,0144	; 9950		ARX_BRX,SEL AC4			;[310] RESTORE ARX AND SELECT AC4
U 3522, 0010,4001,0006,0000,0000,1003,0144	; 9951		AC4_AR,RETURN10			;[347] P,S,BIT 12 = 1 TO AC4
						; 9952	
U 3523, 2054,4001,0001,0000,0000,1010,0000	; 9953	EXT02:	AC1_AR,J/EXT01			;P,S,BIT 12 = 1 TO AC1
						; 9954	
						; 9955	; HERE FOR DBIN
						; 9956	
						; 9957	=00
U 1370, 1430,3240,2001,0000,0020,0050,0000	; 9958	DB2WD:	AR_AC1,CALL [TST2WD]		;AC1 OWGBP ?
U 1371, 3525,4001,0000,0000,0000,0050,0000	; 9959		CALL [STR2WD]			;YES, CONVRT DONE, STORE
U 1372, 0001,4001,0000,0000,0000,0003,0000	; 9960		RETURN1				;NO, GET OUT
U 1373, 3524,3312,2001,4000,0000,1010,0000	; 9961		AC1_AR,AR_BR OR ARX		;P,S,BIT 12 = 1 TO AC1
U 3524, 0001,4001,0004,0000,0000,1003,0000	; 9962		AC2_AR,RETURN1			;ADDRESS TO AC2, DONE
						; 9963	
						; 9964	; HERE TO TEST FOR OWGBP IN THE AR AND
						; 9965	; TO CONVERT IT IF IT'S OK
						; 9966	
						; 9967	=00
U 1430, 2432,4001,0000,0000,0000,5050,0000	; 9968	TST2WD:	SKP PC SEC0,CALL,J/GTST		;TEST FOR NOT SEC 0 AND OWGBP [266]
U 1431, 0002,4001,0000,0000,0000,0003,0000	; 9969	RET2:	RETURN2				;[260]NOT TODAY
U 1432, 3226,0001,0000,0000,0000,0050,0000	; 9970		CALL [CNV2WD]			;YES, CONVERT 
U 1433, 0001,3202,0010,0000,0000,0703,0003	; 9971		MQ_BR,RETURN1			;GET OUT
						; 9972	
						; 9973	; HERE TO GET P,S,BIT 12 = 1 AND A GOOD ADDRESS
						; 9974	; SOME VERY TRICKY STUFF GOING ON HERE
						; 9975	
U 3525, 3526,3240,2067,0000,0020,0010,0164	; 9976	STR2WD:	[AR]_FM[EXPMSK], BR/AR,BRX/ARX	;[310] P,S,JUNK TO BR, SAVE ARX
U 3526, 3527,3002,0200,0000,0000,0010,0000	; 9977		ARX_AR ANDCA BR			;P,S,0 TO ARX
U 3527, 3530,5100,2007,0000,0020,0010,0175	; 9978		[AR]_[AR]-FM[ADMSK]		;BIT 12 = 1 TO AR
						; 9979		AR_[MQ] AND FM[ADMSK],		;0,ADDRESS TO AR
U 3530, 0002,3620,2047,4000,0020,0003,0175	; 9980			BR/AR,RETURN2		;BIT 12=1 TO BR
						; 9981	.ENDIF/OWGBP				;[265]
						; 9982	.ENDIF/EXTEND
						; 9983	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 5
; EIS.MIC[4,30]	17:12 9-Aug-84				EIS -- STRING MOVE					

						; 9984	.TOC	"EIS -- STRING MOVE"
						; 9985	.IF/EXTEND
						; 9986	; HERE FOR MOVE STRING, CHECK FOR OWGBP FIRST
						; 9987	;SLEN IS THE COMPLEMENT OF THE SHORTER STRING LENGTH
						; 9988	;DLEN IS <SRC LEN>-<DST LEN>
						; 9989	
						; 9990	.IF/OWGBP
						; 9991	=0*0*					;[347]
U 0664, 1431,3240,0003,0000,0022,0050,0000	; 9992	MVST:	AR_MEM,CALL [RET2]		;[260]GET FILL, WAIT FOR PARITY
U 0666, 2050,4001,0007,0000,0000,1050,0173	; 9993		FILL_AR,CALL [EXT2WD]		;SAVE FILL, CHECK FOR OWGBP
U 0676, 3531,3200,2005,0000,0020,0010,0000	; 9994	=1*1*	AR_AC3				;[347] GET DLEN
U 3531, 3532,3240,2040,0000,0020,0010,0000	; 9995		BR/AR,AR_AC0			;[347] Copy for length compare
						;;9996	.IFNOT/OWGBP
						;;9997	MVST:	BR/AR,AR_MEM,			;HOLD AC3, WAIT FOR FILLER
						;;9998			FE_AR0-8,SKP SCAD NE	;CHECK FOR FLAGS IN DEST LEN
						;;9999	=0	ARX_AC0,J/MVST1			;GET SRC LEN, FLAGS
						;;10000	NOLENS:	AR_E0,J/UUO			;NO FLAGS ALLOWED IN DST LEN
						;;10001	MVST1:	FILL_AR,AR_ARX			;SAVE FILL CHAR
						; 10002	.ENDIF/OWGBP
U 3532, 3533,0001,0000,2421,0000,0110,0000	; 10003		FE_AR0-8,AR0-8_#,#/0		;SEPARATE FLAGS OFF
U 3533, 2646,5102,2400,0000,1040,5510,0000	; 10004		ARX_AR,AR_AR-BR,SKP AD0		;COMPUTE SRC-DST LEN
U 2646, 3534,2542,2005,0000,0000,1010,0000	; 10005	=0	DLEN_AR,AR_BR COMP,J/MVST2	;SRC LONGER
U 2647, 3534,2001,6005,0000,0000,1010,0000	; 10006		DLEN_AR,AR_ARX COMP		;DST LONGER
U 3534, 3535,3401,2417,0000,1000,1010,0170	; 10007	MVST2:	SLEN_AR,ARX_AR,MQ_AR,AR_0S	;-SHORT LEN -1 TO MQ
U 3535, 3536,4001,0020,0000,2000,0022,0200	; 10008		AR0-8_FE,BRX/ARX		; AND BRX
U 3536, 2064,4001,0000,0000,0000,1033,0000	; 10009		SFLGS_AR,B DISP
U 2064, 3540,2301,0200,0302,0000,0410,0014	; 10010	=100	CLR AR,ARX_1S,SC_#,#/12.,J/MOVS2;[220]TRANSLATE, BUILD MASK
U 2065, 3537,3240,2006,0000,0020,0010,0144	; 10011		AR_DSTP,J/MVSO3			;OFFSET, MASK DEPENDS ON S
U 2066, 2100,4642,6600,0000,0020,1610,0111	; 10012		ARX_BRX+1,AR/ADX,SR_SRC,J/MOVST1	;LEFT JUSTIFY
U 2067, 1450,3240,2005,0000,0020,5510,0000	; 10013		AR_DLEN,SKP AD0,J/MOVRJ		;RIGHT JUSTIFY
						; 10014	
U 3537, 3540,2301,2000,2412,0000,0510,0000	; 10015	MVSO3:	SC_S,CLR ARX,AR_1S		;PREPARE TO BUILD MASK
U 3540, 3541,0001,4000,0000,0000,1610,0111	; 10016	MOVS2:	AR_SHIFT,SR_SRC
U 3541, 2070,4001,0007,0000,0000,1010,0167	; 10017		MSK_AR
						; 10018	=000
U 2070, 2170,4660,2007,0000,0020,0050,0170	; 10019	MOVELP:	AR_SLEN+1,CALL,J/SRCMOD		;PICK UP SOURCE BYTE
U 2071, 2101,3200,2005,0000,0020,0010,0000	; 10020		AR_DLEN,J/MOVSTX		;(1) LENGTH EXHAUSTED
						; 10021	=100
U 2074, 1740,0001,0000,0000,0000,1650,0213	; 10022	MOVPUT:	SR_SRC+DST,CALL,J/PUTDST	;(4) NORMAL, STORE DST BYTE
U 2075, 3542,3200,2005,0000,0237,0010,0000	; 10023		I FETCH,AR_DLEN,J/MVABT		;(5) ABORT
U 2076, 2070,4001,0000,0000,0000,1610,0111	; 10024	=110	SR_SRC,J/MOVELP			;(6) DPB DONE
						; 10025	=
						; 10026	;HERE TO ABORT A STRING MOVE DUE TO TRANSLATE OR OFFSET FAILURE
						; 10027	
U 3542, 2650,5140,2047,0000,0020,4510,0170	; 10028	MVABT:	BR/AR,AR_-SLEN,SKP AR0		;WHICH STRING LONGER?
						; 10029	=0
U 2650, 3543,0001,0005,0000,0002,1010,0000	; 10030	MVABT1:	AC3_AR,FETCH WAIT,J/MVABT2	;PUT AWAY DEST LEN
U 2651, 2650,5102,2004,0000,0020,0010,0000	; 10031		AR_AR-BR,J/MVABT1		;DEST LEN WAS GREATER
						; 10032	
U 3543, 2652,2500,2007,0000,0020,4210,0170	; 10033	MVABT2:	AR_SLEN COMP,SKP BR0		;GET UNDECREMENTED SLEN
U 2652, 2653,0602,2000,0000,0020,0010,0000	; 10034	=0	AR_AR+BR			;SRC LONGER BY (DLEN)
U 2653, 0065,3300,2000,4000,0020,1610,0000	; 10035	MVEND:	AR_AR*SFLGS,AD/OR,SR_0,J/STAC	;PUT BACK REMAINING LENGTH
						; 10036	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 6
; EIS.MIC[4,30]	17:12 9-Aug-84				EIS -- STRING MOVE					

						; 10037	;HERE TO BEGIN RIGHT-JUSTIFIED MOVE
						; 10038	
						; 10039	=00
U 1450, 2654,3200,2401,0000,1020,1610,0111	; 10040	MOVRJ:	ARX_AR,AR_SRCP,SR_SRC,J/MVSKP	;SRC LONGER, SKIP OVER SOME
U 1451, 0452,0001,0000,0000,0000,1650,0214	; 10041		SR_DSTF,CALL,J/MOVF1		;DST LONGER, FILL IT
U 1453, 2100,4642,6600,0000,0020,1610,0111	; 10042	=11	ARX_BRX+1,AR/ADX,SR_SRC,J/MOVST1	;DONE FILLING
						; 10043	
						; 10044	=0
						; 10045	MVSKP:	ARX_ARX-1 (AD),FE_#,#/36.,
U 2654, 1256,1711,0200,0301,0040,7032,0044	; 10046			SIGNS DISP,SKP INTRPT,J/MVSK1
U 2655, 2654,4001,2000,5010,3020,0610,0200	; 10047		P_FE-S,AR_AR+1,J/MVSKP
						; 10048	=1110
U 1256, 2654,4001,0000,5110,3021,5110,0200	; 10049	MVSK1:	P_P-S,SKP SCAD0,J/MVSKP		;BUMP POINTER
U 1257, 1276,3711,0001,0000,0021,1032,0030	; 10050		SRCP_AR,GEN ARX,SIGNS DISP,AR_0.M
U 1276, 3544,2500,2227,0000,0020,0010,0170	; 10051	=1110	BRX/ARX,AR_SLEN COMP,ARX/AD,J/MVSK3	;INTERRUPTED
U 1277, 2106,0001,0005,0000,0000,1010,0000	; 10052		DLEN_AR,J/MVSK4			;DONE FILLING
						; 10053	
U 3544, 3545,4602,6005,4000,0020,1010,0000	; 10054	MVSK3:	AC3_AR,AR_ARX*BRX,AD/A+B+1	;DEST HAS SHORT LEN
U 3545, 3510,4001,0000,0000,0000,1610,0000	; 10055		SR_0,J/STRPF2			;FIX UP AC0, SERVE INTRPT
						; 10056	
						; 10057	;HERE FOR NO-MODIFICATION STRING MOVES
						; 10058	
						; 10059	;[266]	Remove edit 244
						; 10060	;;[244]	THIS ADDRESS MUST REMAIN SET FOR THE PROBLEM
						; 10061	;;	OF THE S FIELD OF THE SOURCE POINTER BEING > 36.
						; 10062	;;
						; 10063	;.IF/MODEL.B
						; 10064	;1300:					;[244]
						; 10065	;MOVST1:	SLEN_AR,BRX/ARX,		;PUT UPDATED LEN AWAY
						; 10066	;		AR+ARX+MQ_0.M,CALL.M,
						; 10067	;		SIGNS DISP,J/GSRC
						; 10068	;1301:
						; 10069	;MOVSTX:	SKP AR0,ARX_AR,AR_0S,J/MOVST2	;SHORT LEN EXHAUSTED
						; 10070	;1302:	SR_SRC+DST,CALL,J/PUTDST
						; 10071	;1306:
						; 10072	;MVSK4:	ARX_BRX+1,AR/ADX,SR_SRC,J/MOVST1
						; 10073	;.IFNOT/MODEL.B		;[244][266]
						; 10074	=000
						; 10075	MOVST1:	SLEN_AR,BRX/ARX,		;PUT UPDATED LEN AWAY
						; 10076			AR+ARX+MQ_0.M,CALL.M,
U 2100, 1633,0001,0027,0000,0021,1072,0170	; 10077			SIGNS DISP,J/GSRC
U 2101, 1470,3441,2400,0000,1000,4510,0000	; 10078	MOVSTX:	SKP AR0,ARX_AR,AR_0S,J/MOVST2	;SHORT LEN EXHAUSTED
U 2102, 1740,0001,0000,0000,0000,1650,0213	; 10079	=010	SR_SRC+DST,CALL,J/PUTDST
						; 10080	=110
U 2106, 2100,4642,6600,0000,0020,1610,0111	; 10081	MVSK4:	ARX_BRX+1,AR/ADX,SR_SRC,J/MOVST1
						; 10082	=
						; 10083	;.ENDIF/MODEL.B		;[244][266]
						; 10084	=00
						; 10085	MOVST2:	TEST ARX,TEST FETCH,		;SKIP IF BOTH LENGTHS =0
U 1470, 2653,3711,4005,0000,2246,1010,0203	; 10086			AC3_AR,AR_ARX,J/MVEND	;CLEAR DEST LEN, REBUILD SRC
U 1471, 0452,0001,0000,0000,0000,1650,0212	; 10087		SR_DST,CALL,J/MOVF1		;SOURCE GONE, FILL OUT DST
U 1473, 3641,3200,2000,0000,0220,0010,0000	; 10088	=11	AR_SFLGS,VMA_PC+1,J/SFET1	;DONE FILLING
						; 10089	
						; 10090	;NOTE -- IT AIN'T AS EASY AS IT LOOKS TO BUM A CYCLE OUT OF THIS
						; 10091	; ROUTINE, BECAUSE AN INTERRUPT, IF ANY, HAS TO BE TAKEN AFTER THE
						; 10092	; POINTER UPDATE AND BEFORE THE LENGTH UPDATE.  GOOD HUNTING!
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 6-1
; EIS.MIC[4,30]	17:12 9-Aug-84				EIS -- STRING MOVE					

						; 10093	=01*
U 0452, 1740,3200,2007,0000,0020,0050,0173	; 10094	MOVF1:	AR_FILL,CALL,J/PUTDST
U 0456, 2656,4640,2005,0000,0020,7010,0000	; 10095		AR_DLEN+1,SKP INTRPT,J/MOVF2
						; 10096	=0
U 2656, 1333,0001,0005,0000,0020,1032,0000	; 10097	MOVF2:	DLEN_AR,SIGNS DISP,J/MOVF3	;DONE?
U 2657, 0040,4001,0000,0000,0000,0005,0000	; 10098		SR DISP,J/CLEAN			;BREAK OUT FOR INTERRUPT
						; 10099	=1011
U 1333, 0002,4001,0000,0000,0000,0003,0000	; 10100	MOVF3:	RETURN2				;YES, DONE
U 1337, 0452,4001,0000,0000,0000,0010,0000	; 10101		J/MOVF1				;NO, DO ANOTHER
						; 10102	.ENDIF/EXTEND
						; 10103	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 7
; EIS.MIC[4,30]	17:12 9-Aug-84				EIS -- STRING COMPARE					

						; 10104	.TOC	"EIS -- STRING COMPARE"
						; 10105	.IF/EXTEND
						; 10106	
						; 10107	;HERE FOR CMPS, CHECK FOR OWGBP FIRST
						; 10108	; [310] E0+1 will be saved in FILL during OWG checking.  We restore it
						; 10109	; from ARX to MQ here.  This keeps us from fetching bogus fill characters.
						; 10110	
						; 10111	.IF/OWGBP
U 3546, 3547,3200,2440,0000,1020,0010,0000	; 10112	CMPS:	BR/AR,ARX_AR,AR_AC0		;[347]DEST LEN TO BR, GET SRC LEN
U 3547, 2660,3102,0004,0000,0020,5410,0000	; 10113		SKP AR GT BR			;[347] Which string is longer?
U 2660, 3550,3723,0000,0000,0300,0010,0000	; 10114	=0	VMA_MQ,J/CMPS1			;[310] Source shorter
U 2661, 3550,4021,0000,0000,0320,0010,0000	; 10115		VMA_MQ+1			;[310] SRC LONGER, GET DST FILLER
U 3550, 3551,1701,6200,0000,0032,0010,0000	; 10116	CMPS1:	LOAD AR,AR_ARX-1,ARX_AR-1,TIME/3T;[347] Decrement lengths, get fill
U 3551, 2663,3200,0063,0000,0022,0010,0000	; 10117		AR_MEM,BR/AR,BRX/ARX,J/CMPS4	;DECREMENTED LEN'S TO BR'S
						; 10118	
						;;10119	.IFNOT/OWGBP				;[347]
						;;10120	CMPS:	BR/AR,ARX_AR,FE_AR0-8,AR_AC0	;DEST LEN TO BR, GET SRC LEN
						;;10121		FE_FE OR AR0-8,			;GATHER HIGH BITS OF LEN'S
						;;10122			SKP AR GT BR		;WHICH STRING LONGER?
						;;10123	=0					;[347]
						;;10124	CMPS1:	LOAD AR,AR_ARX-1,ARX_AR-1,	;SRC SHORTER
						;;10125			GEN FE,SKP SCAD NE,J/CMPS2 ;CHECK LEN'S PURE
						;;10126		VMA_VMA+1,J/CMPS1		;SRC LONGER, GET DST FILLER
						;;10127	=0
						;;10128	CMPS2:	AR_MEM,BR/AR,BRX/ARX,J/CMPS4	;DECREMENTED LEN'S TO BR'S
						;;10129		AR_MEM,J/NOLENS			;[275] ILLEGAL BITS IN LEN'S
						; 10130	.ENDIF/OWGBP
						; 10131	
						; 10132	;HERE IS THE COMPARE LOOP.
						; 10133	; MQ CONTAINS THE FILL CHARACTER FOR THE SHORTER STRING,
						; 10134	; BR CONTAINS THE REMAINING DESTINATION LENGTH,
						; 10135	; BRX CONTAINS THE REMAINING SOURCE LENGTH
						; 10136	=0
U 2662, 1356,4321,0700,0000,0020,0010,0000	; 10137	CMPS3:	ARX0_MQ35,J/CMPSX		;WE GOT INEQUALITY.  GET SIGN
						; 10138	CMPS4:	MQ_AR,ARX_AR,FE_#,#/36.,	;FILL TO MQ & ARX
U 2663, 1350,3242,2410,0301,1000,4310,0044	; 10139			AR_BR,SKP ARX0		;MORE CHARS IN SRC STRING?
						; 10140	=1000	AR_SRCP,ARX_SRCP,		;READY WITH SRC POINTER
U 1350, 2714,3240,2201,0000,0040,1650,0101	; 10141			SR_ED(S),CALL,J/GSRC1	;GO GET SRC BYTE
U 1351, 1352,3441,4200,0000,2020,1632,0000	; 10142		AR_ARX,ARX_0S,SR_0,SIGNS DISP	;SRC DONE.  TEST DEST LEN
U 1352, 1355,3723,2007,0000,0020,1032,0166	; 10143	=1010	T0_AR,AR_MQ,SIGNS DISP,J/CMPS5	;SRC (OR SRC FILL) TO T0,
						; 10144	=1110					;TEST FOR END OF DEST STRING
U 1356, 0075,3711,0000,0000,0246,0010,0202	; 10145	CMPSX:	GEN ARX,CMS FETCH,J/NOP		;QUIT WITH COMPARE COND IN ARX
						; 10146	=
						; 10147	;HERE TO GET DESTINATION BYTE.  SRC IS IN T0, FILL CHAR IN AR
						; 10148	;HERE WITH SIGNS DISP, TO AVOID CALL ON CMPDST IF DST LEN EXHAUSTED
						; 10149	
						; 10150	=1101
U 1355, 2666,4001,0000,0000,0000,1650,0224	; 10151	CMPS5:	SR_ED(+D),CALL,J/CMPDST		;GO FOR DESTINATION BYTE
						; 10152		AR_AR*T0,AD/XOR,		;AR ZERO IF EQUAL
U 1357, 3552,3100,2307,4000,0020,0012,0166	; 10153			ARX/MQ,MQ_MQ*2		;FILL TO ARX, CRY TO MQ35
						; 10154		BR/AR,BRX/ARX,			;EQUALITY TO BR, FILL TO BRX
U 3552, 2664,3242,2660,0000,0000,4210,0000	; 10155			AR_BR,ARX_BRX,SKP BR0	;LENGTHS TO AR, ARX
						; 10156	=0	AC3_AR,ARX_AR,AR_ARX (AD),	;UPDATE DEST LEN IN AC3
U 2664, 1376,3711,2405,0000,1020,1032,0000	; 10157			SIGNS DISP,J/CMPS6	;TEST SRC LEN
U 2665, 1376,3711,2400,0000,1000,0010,0000	; 10158		ARX_AR,AR_ARX (AD)		;DEST LEN EXHAUSTED
						; 10159	=1110
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 7-1
; EIS.MIC[4,30]	17:12 9-Aug-84				EIS -- STRING COMPARE					

U 1376, 3553,1701,6200,0000,0040,1010,0000	; 10160	CMPS6:	AC0_AR,AR_ARX-1,ARX_AR-1,J/CMPS7	;UPDATE SRC LEN IN AC0
U 1377, 3553,1703,6200,0000,0040,0010,0000	; 10161		AR_ARX-1,ARX_AR-1		;SRC EXHAUSTED PREVIOUSLY
						; 10162	
						; 10163	CMPS7:	BR/AR,BRX/ARX,			;LENGTHS TO BR'S
U 3553, 2662,7142,6060,0000,0040,5410,0000	; 10164			SKP BR EQ,AR/ADX,J/CMPS3	;CHECK FOR EQUALITY
						; 10165	
						; 10166	=0
						;;10167	.IFNOT/MODEL.B
						;;10168	CMPDST:	AR_DSTP,ARX_DSTP,FE_#,#/36.,	;GET DEST BYTE FOR COMPARE
						;;10169			CALL,J/IDST		;UPDATE DEST POINTER
						; 10170	.IF/MODEL.B
						; 10171	CMPDST:	AR_DSTP,ARX_DSTP,		;GET DEST BYTE FOR COMPARE
U 2666, 3624,3200,2206,0000,0040,0050,0144	; 10172			CALL,J/IDST		;UPDATE DEST POINTER
						; 10173	.ENDIF/MODEL.B
U 2667, 2444,0001,0000,2002,0000,7010,0000	; 10174		SC_FE+SC,SKP INTRPT,J/LDB1	;GET DEST BYTE
						; 10175	.ENDIF/EXTEND
						; 10176	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 8
; EIS.MIC[4,30]	17:12 9-Aug-84				EIS -- DECIMAL TO BINARY CONVERSION			

						; 10177	.TOC	"EIS -- DECIMAL TO BINARY CONVERSION"
						; 10178	.IF/EXTEND
						; 10179	; HERE WITH AC0 (SRC LEN) IN AR COMPLEMENTED
						; 10180	; IN THE LOOP, AC3 CONTAINS 10 (DECIMAL), BR'BRX HAS ACCUMULATED BINARY
						; 10181	
						; 10182	.IF/OWGBP
						; 10183	=0
U 2670, 1370,0001,0000,0000,0000,0050,0000	; 10184	DBIN:	CALL [DB2WD]			;CHECK FOR OWGBP
U 2671, 3554,2500,2000,0000,0020,0010,0000	; 10185		AR_AC0 COMP			;FLAGS TO AR
U 3554, 3555,0001,0040,1421,0000,0110,0777	; 10186		BR/AR,FE_AR0-8 COMP,AR0-8_#,#/-1	;FORCE OUT FLAGS
						;;10187	.IFNOT/OWGBP
						;;10188	DBIN:	BR/AR,FE_AR0-8 COMP,AR0-8_#,#/-1	;FORCE OUT FLAGS
						; 10189	.ENDIF/OWGBP
U 3555, 1435,3441,2207,0000,0020,1032,0170	; 10190		SLEN_AR,AR_0S,ARX_0S,SIGNS DISP
U 1435, 3557,3200,0216,0000,2020,0110,0144	; 10191	=1101	AR0-8_FE#,MQ_ARX,ARX_AC4,J/DBS1	;BUILD SFLGS
U 1437, 2116,4001,0000,0000,0000,0033,0000	; 10192		B DISP				;OFFSET OR TRANSLATE?
U 2116, 3556,0001,0000,0000,2000,0022,0200	; 10193	=110	AR0-8_FE,J/DBST			;TRANSLATE, LET S FLAG SET LATER
U 2117, 3556,0001,0000,6030,2000,0110,0400	; 10194		AR0-8_FE OR #,#/400		;OFFSET, SET S FLAG
U 3556, 3561,3401,2200,0000,0000,1010,0000	; 10195	DBST:	SFLGS_AR,AR_0S,ARX_0S,J/DBS2	;CLEAR BINARY
						; 10196	
U 3557, 3560,3721,0500,0000,0000,1010,0000	; 10197	DBS1:	SFLGS_AR,ARX_ARX*2		;HERE WHEN SIG ALREADY ON
U 3560, 3561,3200,2005,0000,0020,0010,0000	; 10198		AR_AC3				;ACCUMULATED BINARY IN AR
U 3561, 3562,4041,2060,0000,0020,0510,0000	; 10199	DBS2:	BR_AR LONG,AR_1,CLR ARX
U 3562, 2126,0603,5004,0302,0020,0033,0004	; 10200		AR_AR*10,B DISP,SC_#,#/4	;GET CONSTANT 10 FOR COMPARE
U 2126, 3563,2301,4205,0000,2000,1010,0000	; 10201	=110	AC3_AR,AR_ARX,ARX_1S,J/DBS3	;PREPARE TO BUILD MASK
U 2127, 3563,2301,2005,0000,0000,1010,0000	; 10202		AC3_AR,AR_1S			;OFFSET
U 3563, 3564,0001,4000,0000,0000,1610,0102	; 10203	DBS3:	AR_SHIFT,SR_DB
U 3564, 0670,3202,2607,0000,0000,1010,0167	; 10204		MSK_AR,AR_BR LONG		;SAVE MASK, GET INITIAL INPUT
						; 10205	
						; 10206	=0*0
						; 10207	DBINLP:	BR_AR LONG,AR_SLEN+1,		;BINARY BACK TO BR, COUNT LENGTH
U 0670, 2170,4660,2067,0000,0020,0050,0170	; 10208			CALL,J/SRCMOD		;PICK UP A DIGIT
U 0671, 2674,3203,0000,0000,0220,5510,0000	; 10209		SKP AR2,VMA_PC+1,J/DBXIT	;(1) DONE, TEST M FLAG
						; 10210		ARX_AR,AR+MQ_0.M,GEN AR-AC3,	;(4) NORMAL, ADD IN DIGIT
U 0674, 2672,5100,0405,0000,1041,5410,0130	; 10211			SKP CRY0,J/DBIN2	;TEST FOR DIGIT >9
U 0675, 3567,2540,2007,0000,0020,0010,0170	; 10212		AR_SLEN COMP,J/DBABT		;(5) ABORT
						; 10213	
						; 10214	;HERE TO ADD IN A DIGIT
						; 10215	
						; 10216	=0
U 2672, 3565,3242,2660,0000,0000,0010,0000	; 10217	DBIN2:	BR_AR LONG,AR_BR LONG,J/DBIN3	;DIGIT TO BR LONG, BINARY TO AR LONG
U 2673, 3567,2540,2007,0000,0020,0010,0170	; 10218		AR_SLEN COMP,J/DBABT		;DIGIT >9, ABORT
						; 10219	
U 3565, 3566,0603,2604,0000,0020,0027,0000	; 10220	DBIN3:	AR_AR*5 LONG			;ALREADY HAVE BINARY *2
U 3566, 0670,0602,5500,0000,0020,0027,0000	; 10221		AR_2(AR+BR) LONG,J/DBINLP	;ADD IN DIGIT, SHIFT LEFT
						; 10222	
						; 10223	;HERE ON ABORT
						; 10224	
U 3567, 3570,3300,2000,4000,0020,0010,0000	; 10225	DBABT:	AR_AR*SFLGS,AD/OR		;[230][221]FLAGS +LEN REMAINING
						; 10226		AC0_AR,AR_BR LONG,SC_#,#/35.,	;PUT BACK UNUSED LENGTH
U 3570, 3571,3242,2600,0302,0200,1010,0043	; 10227			VMA_PC+1,J/STOR34	;END WITH NO SKIP
						; 10228	
						; 10229	;HERE AT END
						; 10230	
						; 10231	=0
						; 10232	DBXIT:	AR_BR LONG,VMA_VMA+1,		; M FLAG=0
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 8-1
; EIS.MIC[4,30]	17:12 9-Aug-84				EIS -- DECIMAL TO BINARY CONVERSION			

U 2674, 3571,3242,2600,0302,0000,3610,0043	; 10233			SC_#,#/35.,J/STOR34	;GO FOR NEXT INSTR
						; 10234		AR_-BR LONG,VMA_VMA+1,		;NEGATE
U 2675, 3571,5142,2600,0302,0020,3627,0043	; 10235			SC_#,#/35.
U 3571, 3572,5441,2005,0000,0037,1016,0000	; 10236	STOR34:	AC3_AR,AR_SIGN,FETCH		;STORE HIGH PART
U 3572, 3573,0001,4000,0000,0000,1610,0000	; 10237		AR_SHIFT,SR_0			;GET LOW READY
						; 10238	.IF/MODEL.B
U 3573, 3574,0001,0000,0000,0000,0010,0144	; 10239		SEL AC4				;PRESEL NUMBER TO FIX HARDW GLITCH
						; 10240	.ENDIF/MODEL.B
U 3574, 0222,0001,0006,0000,0000,1010,0144	; 10241	STAC4:	AC4_AR,FINISH
						; 10242	.ENDIF/EXTEND
						; 10243	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 9
; EIS.MIC[4,30]	17:12 9-Aug-84				EIS -- BINARY TO DECIMAL CONVERSION			

						; 10244	.TOC	"EIS -- BINARY TO DECIMAL CONVERSION"
						; 10245	.IF/EXTEND
						; 10246	;	AC0,AC1 = BINARY INTEGER INPUT
						; 10247	;	AC3 = FLAGS, MAX LENGTH OF DECIMAL STRING
						; 10248	;	AC4 = DESTINATION STRING POINTER
						; 10249	; TEMPS ARE USED AS FOLLOWS:
						; 10250	;	FILL = VMA of fill character (to preserve through OWGBP check) [344]
						; 10251	;	SLEN= # OF SIGNIFICANT DIGITS
						; 10252	;	T1,2= 10.**(SLEN) THE LOWEST POWER OF TEN LARGER THAN BINARY
						; 10253	;
						; 10254	;FPD IS SET IF THE INSTRUCTION WAS INTERRUPTED AFTER CONVERSION OF THE
						; 10255	; BINARY INTEGER TO FRACTION FORM (AFTER STORING FILL, IF NEEDED).
						; 10256	
						; 10257	.IF/OWGBP
						; 10258	=0***					;[347]
U 0241, 2054,0001,0007,0000,0000,1050,0173	; 10259	BDEC:	FILL_AR,CALL [EXT01]		;[344] Save fill VMA, check OWGBP
						; 10260		AR_AC1,ARL/AD,SC_1,ARX+MQ_0.M,
U 0251, 2073,3240,2001,4402,0041,0034,0142	; 10261			BYTE DISP		;GET BIN INTEGER
						; 10262	=011	ARX_SHIFT,AR_AC0,SKP AD0,	;BINARY INTEGER NOW IN AR LONG
U 2073, 2676,3200,2400,0302,0020,5510,0020	; 10263			SC_#,#/20,J/BD1		;IS IT NEGATIVE?
						;;10264	.IFNOT/OWGBP
						;;10265	=011
						;;10266	BDEC:	ARX_SHIFT,AR_AC0,SKP AD0,	;BINARY INTEGER NOW IN AR LONG
						;;10267			SC_#,#/20,J/BD1		;IS IT NEGATIVE?
						; 10268	.ENDIF/OWGBP
U 2077, 3575,3200,2405,0000,1020,1610,0010	; 10269	BDDR1:	ARX_AR,AR_AC3,SR_BDT		;RESUME WITH FRACTION IN AR LONG
						; 10270		BR/AR,CLR EXP,			;SEPARATE FLAGS & LENGTH
U 3575, 3576,3200,0260,0400,2021,0010,0200	; 10271			BRX/ARX,ARX_AC0		;LOW FRAC TO BRX, HI TO ARX
U 3576, 3577,3002,2044,0000,0000,0010,0000	; 10272		AR_AR*BR,AD/ANDCA,BR/AR		;JUST FLAGS TO AR, JUST LEN TO BR
U 3577, 3600,0001,4005,0000,2000,1010,0000	; 10273		AC3_AR,AR_ARX			;GET HI FRAC TO AR
						; 10274		BR/AR,VMA_PC+1,			;FRAC TO BR LONG, GET VMA READY
U 3600, 2702,5162,2040,0000,0240,5410,0000	; 10275			AR_-BR,SKP CRY0,J/BDDR4	;CHECK FOR MORE TO GO
						; 10276	
						; 10277	=0
U 2676, 1530,3701,0000,0000,0040,5427,0000	; 10278	BD1:	SKP AR NE,AD LONG,J/BD2		;TEST FOR ZERO LONG
U 2677, 1531,5163,7700,0302,0020,0027,0030	; 10279		AR_-AR LONG,SC_#,#/30,J/BD3	;MAKE POSITIVE, SET N&M FLAGS
						; 10280	=00
						; 10281	BD2:	BR_AR LONG,AR_1 LONG,		;BINARY RIGHT-ALIGNED IN BR,
U 1530, 2132,4041,7660,0303,0020,0010,0024	; 10282			SC_#,FE_#,#/20.,J/BD4	;LOOK FOR LARGER POWER OF TEN
						; 10283	BD3:	BR_AR LONG,AR_AC3,		;SAVE POS BINARY, GET AC FLAGS
U 1531, 3662,3240,2065,0000,0020,0050,0000	; 10284			CALL,J/SETFLG		; SET FLAGS AS NEEDED
U 1533, 1530,3201,7705,0000,0000,1010,0000	; 10285	=11	AC3_AR,AR_BR*.5 LONG,J/BD2	;SAVE NEW FLAGS, SHIFT BINARY RIGHT
						; 10286	
						; 10287	;HERE TO FIND THE SMALLEST POWER OF TEN LARGER THAN THE BINARY INTEGER.
						; 10288	;BINARY IS IN BR LONG, AND POSITIVE UNLESS IT WAS 1B0.  IN THIS CASE THE
						; 10289	;COMPARISON WILL NEVER FIND A LARGER POWER OF TEN, BUT THE COUNT IN FE
						; 10290	;WILL RUN OUT, AND WE WILL CORRECTLY COMPUTE 22 DIGITS REQUIRED.
						; 10291	
						; 10292	=010					;IGNORE BR SIGN
U 2132, 3601,0603,5500,3001,0020,0027,0000	; 10293	BD4:	AR_AR*10 LONG,FE_FE-1,J/BD6	;THIS POWER IS TOO SMALL
U 2133, 1524,4001,4007,1002,2000,1010,0171	; 10294		SC_FE-SC-1,T1_AR,AR_ARX,J/BD7	;THIS POWER IS BIG ENOUGH
U 2136, 2137,4001,0000,3001,0000,0010,0000	; 10295		FE_FE-1				;10.**21 IS TOO SMALL, USE 22
U 2137, 1524,4001,4007,1002,2000,1010,0171	; 10296		SC_FE-SC-1,T1_AR,AR_ARX,J/BD7	;10.**21 IS BIG ENOUGH
						; 10297	
U 3601, 2132,1102,0004,0000,0020,0031,0000	; 10298	BD6:	GEN AR-BR-1,DISP/DIV,J/BD4	;COMPARE BINARY TO 10**N
						; 10299	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 10
; EIS.MIC[4,30]	17:12 9-Aug-84				EIS -- BINARY TO DECIMAL CONVERSION			

						; 10300	;HERE HAVING FOUND THE NUMBER OF DIGITS REQUIRED TO REPRESENT THE
						; 10301	; GIVEN INTEGER.  THE ONE'S COMPLEMENT OF THE NUMBER OF DIGITS IS NOW
						; 10302	; IN SC, AND T1/T2 IS GETTING A POWER OF TEN LARGER THAN THE INPUT.
						; 10303	
						; 10304	=0*
U 1524, 1325,2341,2007,0000,0000,1050,0172	; 10305	BD7:	T2_AR,AR_1S,CALL,J/GETSC	;SAVE (10**N), GET -# OF DIGITS
U 1526, 3602,2543,0207,0000,0000,1010,0170	; 10306		SLEN_AR,ARX_AR*4 COMP		;-# OF SIGNIFICANT DIGITS-1
U 3602, 3603,3240,2005,0000,0020,0010,0000	; 10307		AR_AC3				;GET FLAGS, LENGTH
U 3603, 3604,4001,0000,2421,0000,0110,0000	; 10308		FE_AR0-8,AR0-8_#,#/0		;LEN IN AR, FLAGS IN FE
						; 10309		AR_ARX*.25-AR-1,SKP CRY0,	;-# OF FILL CHARS -1
U 3604, 2700,1113,7000,5032,0040,5410,0400	; 10310			SC_FE-#,#/400		;SC0 SET IF S FLAG =0
U 2700, 3605,4003,0200,0000,0021,0010,0030	; 10311	=0	ARX_AR+1,AR_0.M,J/BD8		;ENOUGH SPACE. -FILL CNT TO ARX
U 2701, 0075,4001,0000,0000,0217,0010,0000	; 10312		I FETCH,J/NOP			;OVERFLOW
						; 10313	BD8:	AR0-8_FE.M,SKP SC0,		;FLAGS TO AR.  S FLAG =0?
U 3605, 1456,2013,0000,0000,2021,4732,0200	; 10314			GEN ARX COMP,SIGNS DISP	; OR EXACT LENGTH?
U 1456, 3606,3240,0007,0000,0332,0010,0173	; 10315	=1110	VMA_FM[FILL],LOAD AR,J/BDF1	;[344] Must fill. GET FILLER
U 1457, 3607,4001,0005,0000,0000,1010,0000	; 10316	BD9:	AC3_AR,J/BDDV1			;NO FILL.  FLAGS TO AC3
						; 10317	
U 3606, 1620,0001,0007,0000,0000,1010,0166	; 10318	BDF1:	T0_AR				;[344] Save flags in T0
U 1620, 3003,3200,0003,0000,0022,1650,0203	; 10319	=00	AR_MEM,SR_BDF,CALL,J/RET1	;GET FILLER, GO WAIT FOR PARITY
U 1621, 2656,4001,4007,0000,2000,1050,0173	; 10320		FILL_AR,AR_ARX,CALL,J/MOVF2	;FILL AS REQUIRED
U 1623, 1457,3200,2007,0000,0020,0010,0166	; 10321	=11	AR_T0,J/BD9			;GET FLAGS BACK
						; 10322	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 11
; EIS.MIC[4,30]	17:12 9-Aug-84				EIS -- BINARY TO DECIMAL CONVERSION			

						; 10323	;SETUP FOR LONG DIVISION OF BINARY BY 10**N
						; 10324	;BR STILL HAS BINARY RIGHT ALIGNED (IE, LOW SIGN SQUEEZED OUT BY
						; 10325	; SHIFTING HIGH WORD RIGHT).  BR IS POSITIVE UNLESS INPUT INTEGER WAS
						; 10326	; 1B0, IN WHICH CASE BR IS -1B1.  T1,T2 HAS LARGER POWER OF TEN, UNLESS
						; 10327	; BINARY EXCEEDS 10**21, IN WHICH CASE T1,T2 CONTAINS 10**21. SINCE
						; 10328	; BINARY CANNOT BE AS LARGE AS 2 * 10**21, THE FIRST DIVIDE STEP
						; 10329	; IS GUARANTEED TO GENERATE A 1 IN THIS CASE ONLY, AND TO REDUCE THE
						; 10330	; BINARY TO LESS THAN 10**21.
						; 10331	
U 3607, 2146,3240,0207,0000,0020,0410,0172	; 10332	BDDV1:	ARX_T2,CLR AR			;FILL DONE.  GET 10**N
						; 10333	=110	AR_T1,MQ_AR,			;D'SOR SET IN AR, MQ CLR
U 2146, 2150,3200,2017,0000,1020,4250,0171	; 10334			SKP BR0,CALL,J/BDDV2	; CHK D'END SIGN
U 2147, 3610,3240,2400,0000,1020,1110,0100	; 10335		ARX_AR,AR_AC0,SET FPD		;DONE, GET FULL QUO IN AR LONG
U 3610, 3611,4003,2600,0000,0020,1627,0010	; 10336		AR_AR+1 LONG,SR_BDT,J/BDD1	;PREVENT 9'S DISEASE
						; 10337	
						; 10338	=000
						; 10339	BDDV2:	AR_BR LONG,BR_AR LONG,		;BEGIN LONG DIVISION
						; 10340			SC_#,FE_#,#/34.,	;STEP COUNTS FOR BOTH PARTS
U 2150, 0642,3202,2660,0303,0000,0050,0042	; 10341			CALL,J/DDVSUB
						; 10342		AR_-BR,ARX/ADX,BR_AR LONG,	;HERE IF BINARY WAS 1B0
						; 10343			SC_#,FE_#,#/34.,	; IT'S NOW 1B1
U 2151, 0642,5142,2660,0303,0020,0050,0042	; 10344			CALL,J/DDVSUB
						; 10345	=011	AC0_AR,AR_MQ,ARL/AD,MQ_0.M,	;HALF DONE WITH DIVISION
U 2153, 0640,3721,2000,2401,0001,1010,0102	; 10346			FE_SC,J/DDVLP		;RESUME WITH ADD STEP
						; 10347	=101	AC0_AR,AR_MQ,ARL/AD,MQ_0.M,
U 2155, 0642,3723,2000,2401,0001,1010,0102	; 10348			FE_SC,J/DDVSUB		;RESUME WITH SUBTRACT STEP
						; 10349	=
						; 10350	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 12
; EIS.MIC[4,30]	17:12 9-Aug-84				EIS -- BINARY TO DECIMAL CONVERSION			

						; 10351	;HERE WITH QUOTIENT OF <INPUT INTEGER>/<10**N> IN AR LONG, WITH THE
						; 10352	; BINARY POINT BETWEEN BITS 0 AND 1 OF AR.  THUS, BIT 0 WILL BE SET
						; 10353	; IFF THE INPUT INTEGER WAS GREATER THAN OR EQUAL TO 10**21.
						; 10354	; SINCE THIS IS A TRUNCATED FRACTION, IT IS NOT GREATER THAN THE TRUE
						; 10355	; QUOTIENT, AND THE ERROR IS LESS THAN 2**-71. WE ADD 2**-71, TO
						; 10356	; GUARANTEE THAT OUR FRACTION IS GREATER THAN THE TRUE QUOTIENT,
						; 10357	; WITH AN ERROR NO GREATER THAN 2**-71.  WE WILL THEN MULTIPLY THIS
						; 10358	; FRACTION BY 10 N TIMES, REMOVING THE INTEGER PART AT EACH STEP
						; 10359	; TO EXTRACT THE N DIGITS.  SINCE N IS AT MOST 21, THIS IS A MULTIPLI-
						; 10360	; CATION BY AT MOST 10**21, SO THE ERROR IS AT MOST (2**-71)*(10**21).
						; 10361	; SINCE THIS IS LESS THAN ONE, THE ERROR DOES NOT INTRUDE INTO THE
						; 10362	; OUTPUT DIGIT STRING.
						; 10363	
						; 10364	;HERE IS LOOP TO EXTRACT DIGITS FROM FRACTION IN AC0,AC1
						; 10365	
						; 10366	BDD1:	BR_AR LONG,VMA_PC+1,		;START NEXT LOOP ITERATION
U 3611, 2702,4640,2067,0000,0240,5410,0170	; 10367			AR_SLEN+1,SKP CRY0	;ANY MORE DIGITS?
						; 10368	=0					;HERE TO RESUME AFTER INTERRUPT
						; 10369	BDDR4:	SLEN_AR,MQ_AR,SC_1,		;YES, SAVE LENGTH REMAINING
						; 10370			AR_BR LONG,		; AND GET FRACTION
U 2702, 1475,3202,2617,4402,1020,1032,0170	; 10371			SIGNS DISP,J/BDD2	;CHECK FOR 1ST DIGIT OF 10**21
						; 10372		AR_0S,ARX_0S,CLR FPD,		;NO, DONE.  CLEAR AC0 & AC1
U 2703, 3612,3441,2200,0000,0000,3614,0000	; 10373			VMA_VMA+1
U 3612, 1753,0001,0000,0000,0017,1010,0000	; 10374		AC0_AR,FETCH,J/STRAC1		;MOVE FETCH WHEN TIMING FIXED
						; 10375	=1101					;LOOK AT BR0 ONLY
U 1475, 1477,0603,7700,0302,0020,0027,0004	; 10376	BDD2:	AR_AR*1.25 LONG,SC_#,#/4	;NEXT DIGIT TO AR0-3
U 1477, 2704,3441,2400,0000,1000,7010,0000	; 10377		ARX_AR,AR_0S,SKP INTRPT		;READY TO SHIFT IN DIGIT
U 2704, 2706,4001,4000,0000,0000,0033,0000	; 10378	=0	AR_SHIFT,B DISP,J/BDD3		;STORE IT
U 2705, 3501,3242,2600,0000,0000,1610,0000	; 10379		AR_BR LONG,SR_0,J/B2DPF		;UPDATE REGS & QUIT
						; 10380	
						; 10381	;HERE TO STORE DIGIT IN AR FOR BDEC
						; 10382	=0
U 2706, 3613,0600,0007,0000,0332,0010,0165	; 10383	BDD3:	VMA_AR+E1,LOAD AR,J/BDD4	;TRANSLATE: GET TABLE ENTRY
U 2707, 2164,0600,2007,4000,0020,0010,0165	; 10384		AR_AR+E1,J/BDD7			;OFFSET AR AND STORE IT
						; 10385	
U 3613, 2710,6023,0000,0000,0021,5410,0040	; 10386	BDD4:	SKP MQ EQ -1,TIME/3T,ARX_0.M	;LAST DIGIT?
						; 10387	=0
U 2710, 3614,3240,0003,0000,0022,0010,0000	; 10388	BDD5:	AR_MEM,J/BDD6			;NO, STORE RH (POS DIGIT)
U 2711, 2710,3200,0205,0000,0020,0010,0000	; 10389		ARX_AC3,J/BDD5			;YES, LOOK AT M FLAG
U 3614, 2164,3203,0400,0000,3021,5310,0020	; 10390	BDD6:	SKP ARX2,ARX_AR SWAP,ARL_0.M
						; 10391	=100
U 2164, 1740,4001,0000,0000,0000,1650,0206	; 10392	BDD7:	SR_BDD,CALL,J/PUTDST
U 2165, 2164,0001,4000,0000,2001,0010,0020	; 10393		AR_ARX,ARL_0.M,J/BDD7		;M SET ON LAST DIGIT, USE LH
						; 10394	
						; 10395		AR_BR LONG,SR_BDT,		;GET FRACTION BACK
U 2166, 1535,3242,2600,0000,0020,1632,0010	; 10396			SIGNS DISP		;CHECK BR0 FOR INTEGER PART
						; 10397	=
U 1535, 1537,0603,5500,0000,0020,0027,0000	; 10398	=1101	AR_AR*10 LONG			;DISCARD PREVIOUS DIGIT
U 1537, 3611,4001,0000,7130,3000,0110,0037	; 10399		P_P AND #,#/37,J/BDD1		;CLEAR AR0, GO FOR NEXT
						; 10400	.ENDIF/EXTEND
						; 10401	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 13
; EIS.MIC[4,30]	17:12 9-Aug-84				EIS -- SRCMOD SUBROUTINE TO GET MODIFIED SOURCE BYTE

						; 10402	.TOC	"EIS -- SRCMOD SUBROUTINE TO GET MODIFIED SOURCE BYTE"
						; 10403	.IF/EXTEND
						; 10404	
						; 10405	;SLEN = COMPLEMENT OF LENGTH
						; 10406	;MSK = MASK
						; 10407	;E1 = EFFECTIVE ADDRESS OF OPERATION WORD (SIGN EXTENDED IF OFFSET)
						; 10408	
						; 10409	;CALL WITH:	AR_SLEN+1,CALL,J/SRCMOD
						; 10410	;RETURNS:	1 LENGTH EXHAUSTED: FLAGS IN AR
						; 10411	;		2 (EDIT ONLY) NO SIGNIFICANCE: FLAGS IN FE
						; 10412	;		3 (EDIT ONLY) SIGNIFICANCE START: BYTE IN AR, FLAGS IN FE
						; 10413	;		4 NORMAL: BYTE IN AR
						; 10414	;		5 ABORT: OUT OF RANGE OR TRANSLATE FAILURE
						; 10415	;	BR, BRX, PRESERVED.
						; 10416	;	B=0 IF TRANSLATE, =1 IF OFFSET MODE, =2 IF EDIT, =4 IF CVTDBT
						; 10417	
						; 10418	;[266] Remove edit 244
						; 10419	;;[244]	THIS ADDRESS MUST REMAIN FOR THE PROBLEM OF THE
						; 10420	;;	S FIELD OF THE SOURCE POINTER BEING GREATER THAT 36.
						; 10421	;
						; 10422	;.IF/MODEL.B
						; 10423	;1200:					;[244]
						; 10424	;SRCMOD:	SLEN_AR,AR+ARX+MQ_0.M,CALL.M,	;PUT LENGTH AWAY, GET BYTE
						; 10425	;		SIGNS DISP,J/GSRC	;CHECK FOR LENGTH EXHAUSTION
						; 10426	;1201:	AR_SFLGS,SR_0,RETURN1		;LEN =0, DONE
						; 10427	;1202:	E1,TIME/2T,B DISP		;BYTE IN AR
						; 10428	;1206:	AR_AR*.5 LONG,E1,J/XLATE	;LOW BIT TO ARX0, BYTE/2 TO AR LOW
						; 10429	;1207:	AR_AR+E1,TIME/3T		;OFFSET, ADD OFFSET, TEST MASK
						; 10430	;	TEST AR.MSK,SKP CRY0,RETURN4	;RETURN 4 IF OK, 5 OUT OF RANGE
						; 10431	;.IFNOT/MODEL.B				;[244][266]
						; 10432	=000
						; 10433	SRCMOD:	SLEN_AR,AR+ARX+MQ_0.M,CALL.M,	;PUT LENGTH AWAY, GET BYTE
U 2170, 1633,4001,0007,0000,0021,1072,0170	; 10434			SIGNS DISP,J/GSRC	;CHECK FOR LENGTH EXHAUSTION
U 2171, 0001,3200,2000,0000,0020,1603,0000	; 10435		AR_SFLGS,SR_0,RETURN1		;LEN =0, DONE
U 2172, 2176,4001,0007,0000,0000,0033,0165	; 10436		E1,TIME/2T,B DISP		;BYTE IN AR
U 2176, 3616,0301,7707,0000,0020,0027,0165	; 10437	=110	AR_AR*.5 LONG,E1,J/XLATE	;LOW BIT TO ARX0, BYTE/2 TO AR LOW
U 2177, 3615,0600,2007,4000,0020,0010,0165	; 10438		AR_AR+E1,TIME/3T		;OFFSET, ADD OFFSET, TEST MASK
U 3615, 0004,3600,0007,4000,0040,5403,0167	; 10439		TEST AR.MSK,SKP CRY0,RETURN4	;RETURN 4 IF OK, 5 OUT OF RANGE
						; 10440	;.ENDIF/MODEL.B		;[244][266]
						; 10441	
						; 10442	;HERE ON TRANSLATE-MODE OPERATIONS, WITH THE BYTE/2 IN AR, AND
						; 10443	; THE LEAST SIGNIFICANT BIT OF THE BYTE IN ARX0.  PERFORM THE
						; 10444	; TABLE LOOKUP, AND OPERATE AS CONTROLLED BY THE HIGH THREE BITS
						; 10445	; OF THE TABLE ENTRY.
						; 10446	
U 3616, 3617,0600,0007,4000,0332,0010,0165	; 10447	XLATE:	VMA_AR+E1,LOAD AR		;GET FUNCTION FROM TABLE
						; 10448	
U 3617, 2712,3240,0003,0302,0022,4310,0022	; 10449	TRNAR:	AR_MEM,SKP ARX0,SC_#,#/18.	;WHICH HALF?
						; 10450	=0	ARX_AR,AR0-3 DISP,		;LH, MOVE TO ARX LEFT
U 2712, 1541,3200,2400,0000,1040,0007,0000	; 10451			AR_SFLGS,J/TRNFNC
						; 10452		ARX_AR SWAP,AR18-21 DISP,	;RH, MOVE THAT TO ARX LEFT
U 2713, 1541,3240,2400,0000,3040,0007,0000	; 10453			AR_SFLGS,J/TRNFNC
						; 10454	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 14
; EIS.MIC[4,30]	17:12 9-Aug-84				EIS -- SRCMOD SUBROUTINE TO GET MODIFIED SOURCE BYTE

						; 10455	;HERE ON TRANSLATE OPERATION TO PERFORM FUNCTIONS REQUIRED BY
						; 10456	; THE 3 HIGH ORDER BITS OF THE TRANSLATE FUNCTION HALFWORD.
						; 10457	; WE HAVE DISPATCHED ON THOSE THREE BITS, WITH THE FUNCTION
						; 10458	; HALFWORD IN LH(ARX), AND THE FLAGS FROM AC0 IN AR.
						; 10459	
						; 10460	=0001
						; 10461	TRNFNC:	SFLGS_AR,FE_P,AR_SHIFT,		;SAVE FLAGS, GET FCN IN AR RIGHT
U 1541, 1573,0001,4000,0101,0020,1032,0000	; 10462			SIGNS DISP,J/TRNRET	;WAS S FLAG ALREADY SET?
U 1543, 0005,0001,0000,7131,0000,1003,0003	; 10463	TRNABT:	SFLGS_AR,FE_P AND #,#/3,RETURN5	;ABORT
U 1545, 1541,0001,0000,7130,3000,0110,0067	; 10464		P_P AND #,#/67,J/TRNFNC		;CLEAR M FLAG
U 1547, 1541,4001,0000,6130,3000,0110,0010	; 10465		P_P OR #,#/10,J/TRNFNC		;SET M FLAG
U 1551, 1541,4001,0000,6130,3000,0110,0020	; 10466	TRNSIG:	P_P OR #,#/20,J/TRNFNC		;SET N FLAG
U 1553, 1543,0001,0000,6130,3000,0110,0020	; 10467		P_P OR #,#/20,J/TRNABT		;SET N AND ABORT
U 1555, 1551,4001,0000,7130,3000,0110,0067	; 10468		P_P AND #,#/67,J/TRNSIG		;CLEAR M, THEN SET N
U 1557, 1541,0001,0000,6130,3000,0110,0030	; 10469		P_P OR #,#/30,J/TRNFNC		;SET N AND M
						; 10470	
						; 10471	=1011
						; 10472	TRNRET:	ARX_AR*MSK,AD/AND,		;S FLAG IS 0, GET BYTE IN AR
U 1573, 2204,3600,0207,4000,0020,4433,0167	; 10473			SKP AR18,B DISP,J/TRNSS	;IS THIS EDIT?
U 1577, 0004,3600,2007,4000,0020,0003,0167	; 10474		AR_AR*MSK,AD/AND,RETURN4	;RETURN NORMAL SINCE S FLAG SET
						; 10475	
						; 10476	=100
U 2204, 0150,3240,2005,0000,0020,0033,0000	; 10477	TRNSS:	AR_DLEN,B DISP,J/TRNNS1		;NO SIG ON MOVE OR D2B
U 2205, 3621,3240,2000,0302,0020,0010,0040	; 10478		AR_SFLGS,SC_#,#/40,J/TRNSS1	;SIG START, SET FLAG
U 2206, 0002,4640,0007,0000,0332,0003,0176	; 10479		VMA_E0+1,LOAD AR,RETURN2	;EDIT NO SIG.  GET FILL
						;;10480	.IFNOT/MODEL.B
						;;10481		AR_DSTP,FE_#,#/36.,RETURN3	;EDIT SIG START
						; 10482	.IF/MODEL.B
U 2207, 0003,3200,2006,0301,0020,0003,0144	; 10483		AR_DSTP,FE_#,#/144,RETURN3	;EDIT SIG START
						; 10484	.ENDIF/MODEL.B
						; 10485	
						; 10486	=0**
U 0150, 3620,1701,2000,0000,0020,0010,0000	; 10487	TRNNS1:	AR_AR-1,J/TRNNS2		;COMPENSATE FOR IGNORING SRC
U 0154, 2170,4640,2007,0000,0020,0010,0170	; 10488		AR_SLEN+1,J/SRCMOD		;D2B HAS NO DEST LENGTH
U 3620, 1613,4001,0005,0000,0020,1032,0000	; 10489	TRNNS2:	DLEN_AR,SIGNS DISP
U 1613, 2170,3240,2007,0000,0020,0010,0170	; 10490	=1011	AR_SLEN,J/SRCMOD		;SLEN = DST LEN, DON'T CHANGE IT
U 1617, 2170,4640,2007,0000,0020,0010,0170	; 10491		AR_SLEN+1,J/SRCMOD		;SLEN REFLECTS SRC LENGTH
						; 10492						; COUNT DOWN FOR BYTE SKIPPED
U 3621, 3622,0001,0000,6100,3001,0010,0200	; 10493	TRNSS1:	P_P OR SC
U 3622, 0004,0001,4000,0000,2000,1003,0000	; 10494		SFLGS_AR,AR_ARX,RETURN4		;RETURN WITH SIG SET
						; 10495	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 15
; EIS.MIC[4,30]	17:12 9-Aug-84				EIS -- SRCMOD SUBROUTINE TO GET MODIFIED SOURCE BYTE

						; 10496	;SUBROUTINE TO GET BYTE FROM SOURCE STRING
						; 10497	; CALL GSRC WITH SIGNS DISP TO CHECK FOR LENGTH EXHAUSTION
						; 10498	; [TIME = 17 + 3(BP OVERFLOW)]
						; 10499	
						; 10500	=1011
U 1633, 0001,3240,2005,0000,0020,0003,0000	; 10501	GSRC:	AR_DLEN,RETURN1			;LEN RAN OUT
U 1637, 2714,3200,2201,0301,0040,0010,0044	; 10502	GETSRC:	AR_SRCP,ARX_SRCP,FE_#,#/36.
						; 10503	;[266] Remove edit 244
						; 10504	;.IF/MODEL.B
						; 10505	;	GEN FE-S,SKP SCAD0		;[244] IS S > 36 ?
						; 10506	;=0	J/GSRC1				;[244] NO, GO BELOW
						; 10507	;	DISP/RETURN,J/501		;[244] YES, TRICKY WAY TO
						; 10508	;					;[244] GET OUT
						; 10509	;;[244]	THIS IS DONE THIS WAY SO THAT WE CAN TAKE THE ERROR
						; 10510	;;	RETURN OF THE EXTEND INSTRUCTION. THE TWO PLACES THAT
						; 10511	;;	CALL GSRC ARE SET SO THAT A RETURN WITH J FIELD OF 500
						; 10512	;;	WILL GO TO HERE.
						; 10513	;1701:	RETURN5				;[244] ERROR RETURN
						; 10514	;.ENDIF/MODEL.B		;[244][266]
						; 10515	=0
						; 10516	GSRC1:	P_P-S,SC/SCAD,CALL.M,		;UPDATE POINTER
U 2714, 2214,0001,0000,5112,3021,0074,0200	; 10517			BYTE DISP,J/GSRC2	;TEST FOR WORD OVERFLOW
U 2715, 2444,0001,0000,2002,0000,7010,0000	; 10518		SC_FE+SC,SKP INTRPT,J/LDB1	;GET BYTE & RETURN TO CALLER
						;;10519	.IFNOT/XADDR
						;;10520	=110
						; 10521	.IF/XADDR
						; 10522	=100
						; 10523	.ENDIF/XADDR
						; 10524	GSRC2:	SRCP_AR,ARX_AR,FE_S,VMA_PC,	;STORE POINTER,
U 2214, 0534,2341,0401,2411,1100,1036,0000	; 10525			EA MOD DISP,J/BFETCH	; GO EVALUATE THE ADDRESS
U 2215, 2214,4003,2000,5012,3020,0610,0200	; 10526	GSRC3:	AR_AR+1,P_FE-S,SC/SCAD,J/GSRC2
						; 10527	.IF/XADDR
U 2216, 1732,3240,0204,0000,0020,5010,0000	; 10528		ARX_SRCP2,SKP PC SEC0,J/GSRC4	;GET ADDR PART OF POINTER
U 2217, 2716,3240,2404,0000,1020,5010,0000	; 10529		ARX_AR,AR_SRCP2,SKP PC SEC0
U 2716, 2720,4001,2000,0101,0020,4516,0000	; 10530	=0	FE_P,AR_AR+1-AR0,SKP AR0,J/GSRC5
U 2717, 2215,0001,4000,0000,2000,0010,0000	; 10531		AR_ARX,J/GSRC3			;OOPS, SEC 0 IS COMPATABLE
						; 10532	=0
U 2720, 1730,4001,0000,0000,3000,0022,0200	; 10533	GSRC5:	P_FE,J/GSRC6			;EFIW, INCR ALL BUT 0-5
U 2721, 1730,4003,2000,0000,0020,0011,0000	; 10534		AR_AR+1,INH CRY18		;IFIW, INCR RIGHT HALF ONLY
						; 10535	=00
						; 10536	GSRC6:	SRCP2_AR,AR_ARX,ARX_AR (AD),	;SAVE ADDR PART
U 1730, 3623,3703,4204,0000,2000,1050,0000	; 10537			CALL,J/RESETP		;GO SET P TO 36-S
						; 10538	=10
U 1732, 2442,0001,0001,2411,0100,1010,0000	; 10539	GSRC4:	SRCP_AR,FE_S,VMA_PC,J/BYTEI	;GO EVALUATE LONG POINTER
U 1733, 0534,2301,0401,2411,1000,1036,0000	; 10540		SRCP_AR,ARX_AR,FE_S,EA MOD DISP,J/BFETCH
						; 10541	
						; 10542	;SUBROUTINE TO LOAD P FROM 36-S
						; 10543	
U 3623, 0002,0001,0000,5312,3000,0103,0044	; 10544	RESETP:	P_#-S,#/36.,SC/SCAD,RETURN2	;START P BACK AT LEFT EDGE
						; 10545	.ENDIF/XADDR
						; 10546	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 16
; EIS.MIC[4,30]	17:12 9-Aug-84				EIS -- SRCMOD SUBROUTINE TO GET MODIFIED SOURCE BYTE

						; 10547	;SUBR TO STORE AR IN DEST STRING
						; 10548	; [TIME = 24 + 3(BP OVERFLOW)]
						; 10549	
						; 10550	=00
						;;10551	.IFNOT/MODEL.B
						;;10552	PUTDST:	MQ_AR,AR_DSTP,ARX_DSTP,
						;;10553			FE_#,#/36.,CALL,J/IDST
						; 10554	.IF/MODEL.B
U 1740, 3624,3200,2216,0000,1040,0050,0144	; 10555	PUTDST:	MQ_AR,AR_DSTP,ARX_DSTP,CALL,J/IDST
						; 10556	.ENDIF/MODEL.B
						; 10557		AR_MQ,SC_#-SC,#/36.,SKP SCAD0,
U 1741, 2452,3723,2000,5302,0020,5150,0044	; 10558			CALL,J/DPB1
U 1743, 0006,4001,0003,0000,0002,0003,0000	; 10559	=11	MEM_AR,RETURN6
						; 10560	
						; 10561	;SUBROUTINES TO UPDATE STRING POINTERS
						; 10562	
						; 10563	IDST:	P_P-S,SC/SCAD,BYTE DISP,	;TEST FOR WORD OVERFLOW
U 3624, 2224,4001,0000,5112,3021,0034,0200	; 10564			J/IDST2
						;;10565	.IFNOT/XADDR
						;;10566	  .IFNOT/MODEL.B
						;;10567	=110
						;;10568	IDST2:	DSTP_AR,ARX_AR,FE_S,		;STORE POINTER,
						;;10569			EA MOD DISP,J/BFETCH	; GO GET THE WORD ADDRESSED
						;;10570		AR_AR+1,P_FE-S,SC/SCAD,J/IDST2
						;;10571	  .IF/MODEL.B
						;;10572	=110
						;;10573	IDST2:	SEL DSTP,J/IDST2B		;PRESEL # TO FIX HARDW GLITCH
						;;10574	IDST2A:	FE_#,#/36.			;COULDN'T LOAD FE EARLIER
						;;10575		AR_AR+1,P_FE-S,SC/SCAD,J/IDST2
						;;10576	IDST2B:	DSTP_AR,ARX_AR,FE_S,VMA_PC,	;STORE POINTER,
						;;10577			EA MOD DISP,J/BFETCH	; GO GET THE WORD ADDRESSED
						;;10578	  .ENDIF/MODEL.B
						; 10579	.IF/XADDR
						; 10580	=100
U 2224, 3630,0001,0006,0000,0000,0010,0144	; 10581	IDST2:	DSTP,J/IDST2B			;PRESEL # TO FIX HARDW GLITCH
U 2225, 3625,4001,2000,0000,0020,0011,0000	; 10582		AR_AR+1,INH CRY18,J/IDST3
U 2226, 1762,3200,0206,0000,0020,5010,0145	; 10583		ARX_DSTP2,SKP PC SEC0,J/IDST4	;GET ADDR PART OF POINTER
U 2227, 2722,3240,2406,0000,1020,5010,0145	; 10584		ARX_AR,AR_DSTP2,SKP PC SEC0
U 2722, 2724,4003,2000,0101,0020,4516,0000	; 10585	=0	FE_P,AR_AR+1-AR0,SKP AR0,J/IDST5
U 2723, 3625,4013,2000,0000,0020,0011,0000	; 10586		AR_ARX+1 (AD),INH CRY18
U 3625, 2224,0001,0000,5312,3000,0110,0044	; 10587	IDST3:	P_#-S,#/36.,SC/SCAD,J/IDST2	;GO STORE SHORT POINTER AWAY
						; 10588	=0
U 2724, 1760,0001,0000,0000,3000,0110,0145	; 10589	IDST5:	P_FE.C,SEL DSTP2,J/IDST6	;PRESEL # TO FIX HARDW GLITCH
U 2725, 1760,4003,2000,0000,0020,0011,0145	; 10590		AR_AR+1,INH CRY18,SEL DSTP2
						; 10591	=00
						; 10592	IDST6:	DSTP2_AR,AR_ARX,ARX_AR (AD),	;INCR ADDR PART
U 1760, 3623,3701,4206,0000,2000,1050,0145	; 10593			CALL,J/RESETP		;GET P BACK TO 36-S
						; 10594	=10
U 1762, 3626,4001,0000,0000,0000,0010,0144	; 10595	IDST4:	SEL DSTP,J/IDST7		;PRESEL # TO PREVENT HARDW GLITCH
U 1763, 3627,0001,0000,0000,0000,0010,0144	; 10596		SEL DSTP,J/IDST8		;PRESEL # TO PREVENT HARDW GLITCH
						; 10597	
U 3626, 2442,4001,0006,2411,0000,1010,0144	; 10598	IDST7:	DSTP_AR,FE_S,J/BYTEI
						; 10599	IDST8:	DSTP_AR,ARX_AR,FE_S,VMA_PC,	;[300]
U 3627, 0534,2341,0406,2411,1100,1036,0144	; 10600			EA MOD DISP,J/BFETCH
						; 10601	
						; 10602	IDST2B:	DSTP_AR,ARX_AR,FE_S,VMA_PC,	;[300]STORE POINTER,
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 16-1
; EIS.MIC[4,30]	17:12 9-Aug-84				EIS -- SRCMOD SUBROUTINE TO GET MODIFIED SOURCE BYTE

U 3630, 0534,2341,0406,2411,1100,1036,0144	; 10603			EA MOD DISP,J/BFETCH	; GO GET THE WORD ADDRESSED
						; 10604	.ENDIF/XADDR
						; 10605	.ENDIF/EXTEND
						; 10606	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 17
; EIS.MIC[4,30]	17:12 9-Aug-84				EIS -- EDIT FUNCTION					

						; 10607	.TOC	"EIS -- EDIT FUNCTION"
						; 10608	.IF/EXTEND
						; 10609	;	HERE WITH E0, E1 SETUP, 0 IN AR, -1 IN ARX, AND 15 IN SC
						; 10610	
						; 10611	.IF/OWGBP
						; 10612	=0***					;[347]
U 0246, 2050,4001,0000,0000,0000,0050,0000	; 10613	EDIT:	CALL [EXT2WD]			;CHECK FOR OWGBP
U 0256, 3631,2301,0200,0302,0000,0410,0017	; 10614		CLR AR,ARX_1S,SC_#,#/15.	;SETUP FOR SHIFT
U 3631, 3632,3200,4200,0000,0020,1610,0000	; 10615		AR_SHIFT,ARX_AC0,SR_ED(PAT)	;MASK TO AR, FLAGS ETC TO ARX
						;;10616	.IFNOT/OWGBP
						;;10617	EDIT:	AR_SHIFT,ARX_AC0,SR_ED(PAT)	;MASK TO AR, FLAGS ETC TO ARX
						; 10618	.ENDIF/OWGBP
						;;10619	.IFNOT/MODEL.B
						;;10620	=1*0	MSK_AR,AR_ARX (AD),		;SAVE MASK, GET FLAGS IN AR
						;;10621			VMA_ARX,LOAD AR,	;GET FIRST PATTERN OPERATOR
						;;10622			CALL,J/TRNABT		;GET PBN INTO FE
						; 10623	.IF/MODEL.B
U 3632, 3633,4001,0007,0000,0000,1010,0167	; 10624		MSK_AR				;SAVE MASK FOR TRAN FUNC
U 3633, 2726,0001,4000,0000,2001,5010,0020	; 10625		AR_ARX,ARL_0.M,SKP PC SEC0	;DO WE ALLOW SECTION #?
U 2726, 3634,3711,4000,0000,2312,0010,0000	; 10626	=0	VMA_ARX,LOAD AR,AR_ARX,J/EDIT1	;YES.  PROVIDE IT
U 2727, 3634,3703,4000,0000,2312,0010,0000	; 10627		VMA_AR,LOAD AR,AR_ARX		;NO, GIVE 0
U 3634, 3635,0001,0000,7131,0000,0010,0003	; 10628	EDIT1:	FE_P AND #,#/3			;GET PBN IN FE
						; 10629	.ENDIF/MODEL.B
						; 10630	EDITLP:	SC_# AND AR0-8,#/30,		;PBN*8 IN SC
U 3635, 3636,4001,0400,7322,1000,1010,0030	; 10631			SFLGS_AR,ARX_AR		;UPDATED AC NOW IN AC AND ARX
U 3636, 3637,3200,0003,2002,0022,0010,0000	; 10632		AR_MEM,SC_FE+SC			;PATTERN IN AR, PBN*9 IN SC
U 3637, 1641,4001,4000,0302,0020,0007,0005	; 10633		AR_SHIFT,SH DISP,SC_#,#/5	;PATTERN BYTE TO AR0-8,
						; 10634	=0001					; DISP ON HIGH 3 BITS
						; 10635	EDDISP:	GEN #+AR0-8,#/-5,
U 1641, 2730,4001,0000,2320,0020,5110,0773	; 10636			SKP SCAD0,J/EDOPR	;(0XX) OPERATE GROUP
U 1643, 2000,3243,5000,0000,0000,4310,0000	; 10637		AR_AR*8,SKP ARX0,J/EDMSG	;(1XX) MESSAGE
U 1645, 2734,0001,0000,0000,0000,0010,0000	; 10638		J/EDNOP				;(2XX) UNDEFINED
U 1647, 2734,0001,0000,0000,0000,0010,0000	; 10639		J/EDNOP				;(3XX) UNDEFINED
U 1651, 2734,0001,0000,0000,0000,0010,0000	; 10640		J/EDNOP				;(4XX) UNDEFINED
						; 10641		MQ_ARX,ARX_ARX*4,
U 1653, 3642,3243,0610,4002,2000,0010,0000	; 10642			SC_FE+1,J/EDSKPT	;(5XX) SKIP IF MINUS
						; 10643		MQ_ARX,ARX_ARX*2,
U 1655, 3642,3701,0510,4002,2000,0010,0000	; 10644			SC_FE+1,J/EDSKPT	;(6XX) SKIP IF NON-ZERO
U 1657, 2735,3243,5000,4002,0000,0010,0000	; 10645		AR_AR*8,SC_FE+1,J/EDSKP		;(7XX) SKIP ALWAYS
						; 10646	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 18
; EIS.MIC[4,30]	17:12 9-Aug-84				EIS -- EDIT FUNCTION					

						; 10647	;HERE TO DECODE OPERATE GROUP
						; 10648	=0
U 2730, 2734,0001,0000,0000,0000,0010,0000	; 10649	EDOPR:	J/EDNOP				;OPR .GE. 005 UNDEFINED
U 2731, 2230,0001,0000,0000,0020,0007,0000	; 10650		SH DISP,J/OPDISP		;(00X), DISP ON LOW 3 BITS
						; 10651	=000
						; 10652	OPDISP:	AR_ARX,SC_#,#/-4,		;(000) STOP
U 2230, 3640,4001,4000,0302,2200,0010,0774	; 10653			VMA_PC+1,J/EDSTOP
U 2231, 1534,0001,0000,0000,0000,1610,0101	; 10654		SR_ED(S),J/EDSEL		;(001) SELECT
U 2232, 1770,3200,2006,0000,0020,4310,0144	; 10655		AR_DSTP,SKP ARX0,J/EDSSIG	;(002) START SIGNIFICANCE
U 2233, 3646,0001,4000,0000,2000,0010,0000	; 10656		AR_ARX,J/EDFLDS			;(003) FIELD SEPARATOR
						;;10657	.IFNOT/MODEL.B
						;;10658		VMA_AC3,LOAD ARX,		;(004) EXCH MARK AND DEST
						;;10659			MQ_ARX,J/EDEXMD
						; 10660	.IF/MODEL.B
						;;10661	.IFNOT/XADDR
						;;10662		AR_DSTP,MQ_ARX,J/EDEXMD		;(004) EXMD
						; 10663	.IF/XADDR
						; 10664		AR_DSTP,ARX/AD,MQ_ARX,		;(004) EXMD
U 2234, 2746,3200,2216,0000,2020,5010,0144	; 10665			SKP PC SEC0,J/EDEX0
						; 10666	.ENDIF/XADDR
						; 10667	.ENDIF/MODEL.B
						; 10668	=
						; 10669	;HERE TO TERMINATE EDIT INSTRUCTION
						; 10670	; SC HAS -4, FE HAS CURRENT PBN, VMA HAS PC IF ABORT, PC+1 IF DONE
						; 10671	
U 3640, 2732,4001,0000,5031,0020,5110,0003	; 10672	EDSTOP:	FE_FE-#,#/3,SKP SCAD0
						; 10673	=0	AR_AR+1,INH CRY18,
U 2732, 3641,4003,2000,7100,3021,0011,0200	; 10674			P_P AND SC,J/SFET1
U 2733, 3641,0001,0000,4100,3000,0110,0000	; 10675		P_P+1
U 3641, 0074,4001,0000,0000,0017,3610,0000	; 10676	SFET1:	FETCH+1,J/STORAC
						; 10677	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 19
; EIS.MIC[4,30]	17:12 9-Aug-84				EIS -- EDIT FUNCTION					

						; 10678	;HERE FOR SKPM & SKPN, WITH APPROPRIATE BIT IN ARX0
						; 10679	
U 3642, 2734,3243,5300,0000,0000,4310,0000	; 10680	EDSKPT:	AR_AR*8,SKP ARX0,ARX/MQ		;SKIP DISTANCE TO AR0-5
						; 10681	
						; 10682	;HERE AT END OF OPERATION TO UPDATE PBN
						; 10683	=0
						; 10684	EDNOP:	FE_FE-#,#/3,SKP SCAD0,		;END OF PATTERN WORD?
U 2734, 2736,0001,4000,5031,2020,5110,0003	; 10685			AR_ARX,J/EDNXT1
U 2735, 2734,4001,0000,2101,0000,0010,0000	; 10686	EDSKP:	FE_P+SC,J/EDNOP			;ADD SKIP DISTANCE
						; 10687	=0
						;;10688	.IFNOT/XADDR
						;;10689	EDNXT1:	AR_AR+1,INH CRY18,		;BUMP TO NEXT WORD
						;;10690			FE_FE-#,#/4,		;REDUCE PBN
						;;10691			SKP SCAD0,J/EDNXT1
						;;10692		SR_ED(PAT)
						;;10693		FE_FE+#,#/4			;RESTORE PBN POS, INCR IT
						;;10694		SC_P AND #,#/74,VMA_AR,LOAD AR,	;FLAGS & EDIT BIT TO SC, GET PATTERN
						;;10695			SKP INTRPT,J/EDNXT3
						; 10696	.IF/XADDR
U 2736, 2742,4001,0000,0000,0000,5010,0000	; 10697	EDNXT1:	SKP PC SEC0,J/EDNXT2
U 2737, 3643,4001,0000,0000,0000,1610,0000	; 10698		SR_ED(PAT)
U 3643, 2740,4001,0000,2031,0000,5010,0004	; 10699		FE_FE+#,#/4,SKP PC SEC0		;RESTORE PBN POS, INCR IT
						; 10700	=0	SC_P AND #,#/74,VMA_AR,LOAD AR,	;FLAGS & EDIT BIT TO SC,
U 2740, 2744,3701,0000,7132,0312,7010,0074	; 10701			SKP INTRPT,J/EDNXT3	; GET PATTERN
U 2741, 3644,0001,0000,7132,0000,0010,0074	; 10702		SC_P AND #,#/74			;IN SEC0, MUST NOT LOAD FULL SEC
U 3644, 3645,0001,0400,0000,1001,0010,0020	; 10703		ARX_AR,ARL_0.M			;CLEAR SEC #
						; 10704		VMA_AR,LOAD AR,AR_ARX,		;GET PATTERN
U 3645, 2744,3703,4000,0000,2312,7010,0000	; 10705			SKP INTRPT,J/EDNXT3
						; 10706	
						; 10707	=0
						; 10708	EDNXT2:	AR_AR+1,FE_FE-#,#/4,		;REDUCE PBN
U 2742, 2736,4003,2000,5031,0020,5110,0004	; 10709			SKP SCAD0,J/EDNXT1
						; 10710		AR_AR+1,INH CRY18,		;BUMP TO NEXT WORD
						; 10711			FE_FE-#,#/4,		;REDUCE PBN
U 2743, 2736,4001,2000,5031,0020,5111,0004	; 10712			SKP SCAD0,J/EDNXT1
						; 10713	.ENDIF/XADDR
						; 10714	=0
U 2744, 3635,4001,0000,6000,3000,0022,0200	; 10715	EDNXT3:	P_FE OR SC,J/EDITLP		;SET NEW PBN, GO DO NEXT PATTERN
U 2745, 3464,4001,0000,6000,3000,0022,0200	; 10716		P_FE OR SC,J/PGFAC0		;GO RESTORE THINGS AND TAKE
						; 10717						; THE INTERUPT
						; 10718	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 20
; EIS.MIC[4,30]	17:12 9-Aug-84				EIS -- EDIT FUNCTION					

						; 10719	;HERE FOR FIELD SEPARATOR (CLEAR FLAGS IN AC 0-2)
						; 10720	
U 3646, 1773,0001,0000,7130,3000,0110,0007	; 10721	EDFLDS:	P_P AND #,#/7,J/EDSEND		;EASY ENOUGH
						; 10722	
						; 10723	;HERE FOR SIG START
						; 10724	
						; 10725	=00
						;;10726	.IFNOT/XADDR
						;;10727	EDSSIG:	VMA_AC3,STORE,CALL,J/EDFLT1	;SAVE MARK, GET FLOAT
						; 10728	.IF/XADDR
						; 10729	EDSSIG:	ARX_AR,VMA_AC3,AR/AD,ARL_0.M,
						; 10730			BYTE DISP,SCADA EN/0S,SCAD/A,
U 1770, 2274,3240,2405,0400,1341,5074,0020	; 10731			CALL,SKP PC SEC0,J/EDFLT
						; 10732	.ENDIF/XADDR
						; 10733		FE_FE-#,#/3,SKP SCAD0,		;S FLAG ALREADY SET, NOP
U 1771, 2736,0001,4000,5031,2020,5110,0003	; 10734			AR_ARX,J/EDNXT1
						; 10735	=11
U 1773, 2734,4001,0400,7131,1000,0010,0003	; 10736	EDSEND:	FE_P AND #,#/3,ARX_AR,J/EDNOP	;READY TO DO NEXT OP
						; 10737	
						; 10738	;HERE FOR MESSAGE CHAR
						; 10739	
						; 10740	=00
U 2000, 2262,4660,0007,0000,0332,0010,0176	; 10741	EDMSG:	VMA_E0+1,LOAD AR,J/EDSFIL	;NO SIG, PUT FILLER
U 2001, 1325,3401,2000,0102,0000,0050,0000	; 10742		SC_P,AR_0S,CALL,J/GETSC		;GET MESSAGE SELECT IN AR
U 2003, 2267,4600,0007,0000,0332,0010,0176	; 10743	=11	VMA_AR+E0+1,LOAD AR,J/EDMPUT	;STORE MESSAGE
						; 10744	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 21
; EIS.MIC[4,30]	17:12 9-Aug-84				EIS -- EDIT FUNCTION					

						; 10745	;HERE TO EXCHANGE MARK AND DESTINATION POINTERS
						; 10746	
						;;10747	.IFNOT/MODEL.B				;EASY CASE
						;;10748	EDEXMD:	AR_DSTP				;READY TO STORE DEST PTR
						;;10749		FIN XFER,STORE			;WAIT FOR MARK, STORE DSTP
						;;10750		MEM_AR,AR_ARX			;READY TO UPDATE DSTP
						;;10751		DSTP_AR,ARX/MQ,J/EDNOP		;DONE, GET NEXT OPR
						; 10752	.IF/MODEL.B
						; 10753	.IF/XADDR
						; 10754	=0
						; 10755	EDEX0:	VMA_AC3,LOAD AR (WR TST),	;GET MARK POINTER
U 2746, 3651,3240,0065,0000,0331,0010,0440	; 10756			BR/AR,BRX/ARX,J/EDEX2	;DSTP IN BR & BRX,
						; 10757	.ENDIF/XADDR
U 2747, 3647,3200,2045,0000,0021,0010,0020	; 10758	EDEXMD:	BR/AR,AR_AC3,ARL_0.M
U 3647, 3650,3701,0000,0000,0311,0010,0440	; 10759		VMA_AR,LOAD AR (WR TST)		;GET MARK FROM SECT 0
U 3650, 2105,3240,0003,0000,0022,0010,0000	; 10760		AR_MEM
						;;10761	.IFNOT/XADDR
						;;10762		BR/AR,AR_BR,STORE		;STORE DEST POINTER
						;;10763		MEM_AR,AR_BR,SEL DSTP		;DONE.  GET MARK AGAIN
						;;10764						;PRESELECT # TO FIX HARDWARE GLITCH
						;;10765		DSTP_AR,ARX/MQ,J/EDNOP		;MARK BECOMES DEST. GET NEXT PAT
						; 10766	.IF/XADDR
						; 10767	=101
U 2105, 3654,3202,2040,0000,0016,0010,0000	; 10768	EDDSNG:	BR/AR,AR_BR,STORE,J/EDEXX	;NEITHER POINTER IS DOUBLE
U 2107, 1002,4001,0000,0000,0000,0010,0000	; 10769		J/UUO				;SHORT DSTP, LONG MARK ILLEGAL
						; 10770	;;;FLUSH WHEN SURE THIS IS RIGHT
						; 10771	;	BR/AR,AR_BR,			;DSTP TO AR, MARK TO BR
						; 10772	;		VMA_VMA+1,LOAD ARX	;GET MARK2
						; 10773	;	FIN XFER,VMA_VMA-1,STORE,J/EDEXX;NOW STORE DSTP AS NEW MARK
						; 10774	
U 3651, 2235,3240,0003,0000,0042,0034,0000	; 10775	EDEX2:	AR_MEM,BYTE DISP		;WAIT FOR MARK, TEST DESTP
U 2235, 2105,0001,0000,0000,0020,0034,0000	; 10776	=101	BYTE DISP,J/EDDSNG		;NO, CHECK MARK
U 2237, 2245,3200,0206,0000,0040,0034,0145	; 10777		ARX_DSTP2,BYTE DISP		;YES, CHECK MARK
U 2245, 1002,4001,0000,0000,0000,0010,0000	; 10778	=101	J/UUO				;LONG DSTP SHORT MARK ABORT
						; 10779	;;;FLUSH WHEN SURE THE UUO IS RIGHT
						; 10780	;	BR/AR,AR_ARX,			;MARK TO BR, DSTP2 TO AR
						; 10781	;		VMA_VMA+1,STORE,J/EDEXM4 ; STORE DSTP2
						; 10782		BR/AR,AR_ARX,
U 2247, 3652,4001,4040,0000,2011,3610,0240	; 10783			VMA_VMA+1,LOAD ARX (WR TST)	;GET MARK2
U 3652, 3653,3240,0003,0000,0036,0010,0000	; 10784		FIN XFER,STORE			;PUT BACK DSTP2
						; 10785	;EDEXM4:
						; 10786		FIN STORE,AR_BRX,		;GET DSTP FROM BRX
U 3653, 3654,3202,6003,0000,0016,3510,0000	; 10787			VMA_VMA-1,STORE		;PUT THAT DOWN
						; 10788	EDEXX:	MEM_AR,AR_BR,SEL DSTP,		;PRESELECT # TO FIX HARDWARE GLITCH
U 3654, 2750,3242,2003,0000,0002,5010,0144	; 10789			SKP PC SEC0		;GET MARK FOR NEW DSTP
U 2750, 2255,0001,4006,0000,2020,1034,0144	; 10790	=0	DSTP_AR,AR_ARX,BYTE DISP,J/EDEX1
U 2751, 2255,4001,0006,0000,0000,1010,0144	; 10791		DSTP_AR
						; 10792	=101
						; 10793	EDEX1:	FE_FE-#,#/3,SKP SCAD0,
U 2255, 2736,3723,2000,5031,0020,5110,0003	; 10794			AR_MQ,J/EDNXT1
U 2257, 3655,4001,0000,0000,0000,0010,0145	; 10795		SEL DSTP2			;PRESELECT # TO FIX HARDWARE GLITCH
U 3655, 2255,0001,0006,0000,0000,1010,0145	; 10796		DSTP2_AR,J/EDEX1		;PUT OLD MARK2 AS DSTP2
						; 10797	.ENDIF/XADDR
						; 10798	.ENDIF/MODEL.B
						; 10799	
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 22
; EIS.MIC[4,30]	17:12 9-Aug-84				EIS -- EDIT FUNCTION					

						; 10800	;HERE FOR SELECT
						; 10801	
						; 10802	=0*
						; 10803	EDSEL:	AR_SRCP,ARX_SRCP,FE_#,#/36.,
U 1534, 2714,3240,2201,0301,0040,0050,0044	; 10804			CALL,J/GSRC1		;GO GET SRC BYTE
U 1536, 2260,0303,7707,0000,0020,0027,0165	; 10805		AR_AR*.5 LONG,E1		;GOT IT, DIVIDE BY 2
U 2260, 3617,0600,0007,0000,0332,0050,0165	; 10806	=000	VMA_AR+E1,LOAD AR,CALL,J/TRNAR	;GO TRANSLATE BY HALFWORDS
						; 10807	=010
U 2262, 3656,3240,0003,0000,0022,0010,0000	; 10808	EDSFIL:	AR_MEM,J/EDSF1			;(2) NO SIGNIFICANCE, STORE FILL
U 2263, 2060,4001,0020,5110,0020,5110,0000	; 10809		GEN P-S,SKP SCAD0,BRX/ARX,J/EDSFLT ;(3) SIG START, DO FLOAT CHAR
U 2264, 1740,4001,0000,0000,0000,1650,0224	; 10810	EDSPUT:	SR_ED(+D),CALL,J/PUTDST		;(4) NORMAL, STORE AT DST
U 2265, 3640,4001,0000,0302,0100,0010,0774	; 10811		VMA/PC,SC_#,#/-4,J/EDSTOP	;(5) ABORT
U 2266, 1773,3200,2000,0000,0020,0010,0000	; 10812	EDFPUT:	AR_SFLGS,J/EDSEND		;(6) BUMP PBN AND GO TO NEXT
U 2267, 2264,3200,0003,0000,0022,0010,0000	; 10813	EDMPUT:	AR_MEM,J/EDSPUT			;FILL OR MSG IN AR, STORE IT
						; 10814	
						; 10815	
						; 10816	;HERE WHEN TIME TO STORE FILL CHAR
						; 10817	
U 3656, 2266,3701,0000,0000,0040,5410,0000	; 10818	EDSF1:	SKP AR NE,J/EDFPUT		;IS THERE ONE?
						; 10819	
						; 10820	;HERE WHEN SELECT STARTS SIGNIFICANCE
						; 10821	
						; 10822	=00
						;;10823	.IFNOT/MODEL.B
						;;10824	EDSFLT:	VMA_AC3,STORE,CALL,J/EDFLT	;STORE DEST AT MARK ADDR
						; 10825	.IF/MODEL.B
						;;10826	.IFNOT/XADDR
						;;10827	EDSFLT:	ARX_AR,AR_AC3,ARL_0.M,CALL,J/EDFLT
						; 10828	.IF/XADDR
						; 10829	EDSFLT:	ARX_AR,VMA_AC3,AR/AD,ARL_0.M,
						; 10830			BYTE DISP,SCADA EN/0S,SCAD/A,
U 2060, 2274,3240,2405,0400,1341,5074,0020	; 10831			CALL,SKP PC SEC0,J/EDFLT
						; 10832	.ENDIF/XADDR
						; 10833	.ENDIF/MODEL.B
U 2061, 2060,4003,2000,0000,3020,0022,0200	; 10834		P_FE,AR_AR+1,J/EDSFLT		;FORCE STANDARD POINTER FORM
U 2063, 2264,3202,6000,0000,0000,1010,0000	; 10835	=11	SFLGS_AR,AR_BRX,J/EDSPUT	;SET S FLAG, GET BYTE, STORE IT
						; 10836	
						; 10837	;HERE IS SUBROUTINE TO STORE FLOAT CHAR
						; 10838	
						; 10839	.IF/MODEL.B
						;;10840	.IFNOT/XADDR
						;;10841	EDFLT:	VMA_AR,AR_ARX,STORE,J/EDFLT1
						; 10842	.IF/XADDR
						; 10843	=100
U 2274, 3661,4001,4000,0000,2016,0010,0000	; 10844	EDFLT:	AR_ARX,STORE,J/EDFLT1		;SHORT POINTER.  STORE IT
U 2275, 3661,3701,4000,0000,2316,0010,0000	; 10845		VMA_AR,AR_ARX,STORE,J/EDFLT1	; LIKEWISE.  FORCE SECTION 0
U 2276, 3657,4001,4000,0000,2016,0010,0000	; 10846		AR_ARX,STORE,J/EDFLTX		;LONG POINTER, DO MORE
U 2277, 3661,3701,4000,0000,2316,0010,0000	; 10847		VMA_AR,AR_ARX,STORE,J/EDFLT1	; IN SECTION 0, KEEP THERE
						; 10848	
U 3657, 3660,0001,0003,0000,0002,0010,0000	; 10849	EDFLTX:	MEM_AR				;FINISH STORE OF 1ST PART
U 3660, 3661,3240,2006,0000,0036,3610,0145	; 10850		AR_DSTP2,VMA_VMA+1,STORE	;NOW DO SECOND PART
						; 10851	.ENDIF/XADDR
						;;10852	.IFNOT/MODEL.B
						;;10853	
						;;10854	EDFLT:
						; 10855	.ENDIF/MODEL.B
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page 22-1
; EIS.MIC[4,30]	17:12 9-Aug-84				EIS -- EDIT FUNCTION					

						; 10856	
U 3661, 1540,4061,5003,0000,0022,0010,0000	; 10857	EDFLT1:	MEM_AR,AR_2			;MARK STORED, READY FOR FLOAT
U 1540, 1023,0600,0007,4000,0332,0050,0176	; 10858	=0*	VMA_AR+E0,LOAD AR,CALL,J/XFERW
U 1542, 2304,3701,0000,0000,0040,5410,0000	; 10859		SKP AR NE
U 2304, 3662,3200,2000,0302,0020,0010,0040	; 10860	=100	AR_SFLGS,SC_#,#/40,J/SETFLG	;NO FLOAT CHR, SET S FLAG
U 2305, 1740,4001,0000,0000,0000,1650,0224	; 10861		SR_ED(+D),CALL,J/PUTDST		;STORE FLOAT CHR IN DST
U 2307, 3662,3200,2000,0302,0020,0010,0040	; 10862	=111	AR_SFLGS,SC_#,#/40		;SET S FLAG AND RETURN
U 3662, 0003,4001,0000,6100,3001,0003,0200	; 10863	SETFLG:	P_P OR SC,RETURN3		;NO FLOAT CHR, SET S FLAG
						; 10864	
						; 10865	.ENDIF/EXTEND
						; 10866	


; Number of microwords used: 
;	D words= 512
;	U words= 1972, Highest= 2047

	END
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page CRF-1
; 							Cross Reference Listing					

(D) A				2193 #
	ADDR			2197 #	4114	4130	4346	4713	4911	4913	5009	5010	5067	5068	5069
				5070	5072	5073	5074	5075	5077	5078	5079	5080	5082	5083	5084
				5085	5088	5089	5091	5092	5093	5094	5095	5096	5097	5098	5109
				5110	5111	5112	5113	5114	5118	5119	5120	5121	5122	5123	5124
				5125	5126	5127	5128	5129	5130	5131	5132	5133	5134	5135	5136
				5137	5138	5139	5140	5141	5142	5143	5144	5145	5146	5147	5148
				5149	5153	5154	5300	5413	5950	5951
	IMMED			2194 #	4058	4316	4317	4411	4412	4462	4463	4474	4475	4476	4477
				4478	4479	4490	4491	4492	4493	4494	4495	4496	4497	4508	4509
				4510	4511	4512	4513	4514	4515	4526	4527	4528	4529	4530	4531
				4532	4533	4582	4583	4584	4585	4586	4587	4588	4589	4657	4658
				4659	4660	4661	4662	4663	4664	4672	4673	4674	4675	4676	4677
				4678	4679	4687	4688	4689	4690	4691	4692	4693	4694	4702	4703
				4714	4883	4914	5011	5012	5301	5406	5407	5408	5409	5410	5411
				5412	5571	5603	5676	5681	5960	5970	6033	6062	6219	8193	8195
				8196	8197	8198	8206	8207	8208	8209	8215	8217	8218	8219	8220
				8224	8225	8226	8227	8228	8229	8230	8231	8241	8242	8243	8244
				8251	8252	8253	8254	8255	8256	8264	8266	8267	8275	8277	8278
	IMMED-PF		2195 #	4054	4063	4068	4073	4138	4143	4148	4153	4158	4163	4168
				4175	4180	4185	4190	4195	4200	4205	4210	4314	4315	4325	4335
				4354	4364	4370	4380	4390	4400	4409	4410	4421	4431	4441	4451
				4460	4461	4472	4473	4481	4482	5546	5558
	RD-P-WR			2203 #	4060	4065	4070	4075	4113	4134	4135	4139	4140	4145	4150
				4155	4160	4165	4170	4176	4177	4181	4182	4187	4192	4197	4202
				4207	4212	4326	4327	4336	4337	4350	4351	4355	4356	4371	4372
				4381	4382	4391	4392	4401	4402	4422	4423	4432	4433	4442	4443
				4452	4453	4625	4626	4627	4628	4629	4630	4631	4632	4640	4641
				4642	4643	4644	4645	4646	4647	5547	5548	5559	5560
	RD-WR			2202 #	5572	5573	5604	5605	5677	5678	5682	5683	5956	5957	5961
				5962	5966	5967	5971	5972	6029	6030	6034	6035	6058	6059	6063
				6064	7386	7388	8213	8260	8262	8271	8273
	READ			2200 #	4275	4276	4483	4484	4485	4486	4487	4488	4499	4500	4501
				4502	4503	4504	4505	4506	4517	4518	4519	4520	4521	4522	4523
				4524	4535	4536	4537	4538	4539	4540	4541	4542	4591	4592	4593
				4594	4595	4596	4597	4598	4609	4610	4611	4612	4613	4614	4615
				4616	4882	4912	5570	5602	5675	5680	5829	5830	5831	5832	5954
				5955	5959	5964	5965	5969	6027	6028	6032	6056	6057	6061	6220
				6253	6254	6256	6257	6464	6465	6466	6467	6681	6682	6683	6684
				7387	7389	8194	8204	8205	8216	8239	8240	8263	8274
	READ-PF			2201 #	4053	4062	4067	4072	4128	4137	4142	4147	4152	4157	4162
				4167	4174	4179	4184	4189	4194	4199	4204	4209	4324	4334	4344
				4353	4363	4369	4379	4389	4399	4420	4430	4440	4450	5545	5557
	WR-TST			2199 #	4064	4069	4074	4144	4149	4154	4159	4164	4169	4186	4191
				4196	4201	4206	4211	4295	4296	4365	4366	8191	8192	8202	8203
				8214	8237	8238	8249	8250	8261	8265	8272	8276
(U) AC#				1926 #	3798	3849	4773	4788	4935	5026	5031	5180	5261	5266	5270
				5274	5893	5909	5911	5931	6690	6695	6697	6703	6706	6710	6715
				6719	6723	6724	6725	6730	6731	6732	6734	6735	6761	6763	6765
				6766	6775	6777	6778	6781	6800	6807	6808	6817	6843	6856	6857
				6873	6877	6917	6918	6920	6924	6926	6951	6990	6997	7127	7128
				7134	7135	7183	7184	7196	7197	7198	7245	7252	7330	7332	7343
				7345	7364	7367	7373	7752	7775	7776	7780	7782	7784	7811	7815
				7819	7825	7826	7837	7841	7847	7855	7883	7885	7886	7888	7907
				8988	8990	9002	9024	9048	9070	9085	9115	9192	9193	9223	9232
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page CRF-2
; 							Cross Reference Listing					

				9233	9234	9239	9242	9258	9290	9300	9307	9315	9329	9340	9345
				9352	9353	9354	9369	9379	9380	9391	9406	9417	9423	9432	9447
				9457	9469	9474	9478	9482	9496	9502	9510	9514	9516	9526	9533
				9581	9608	9633	9664	9696	9697	9698	9727	9729	9733	9736	9738
				9740	9742	9747	9749	9758	9808	9850	9853	9855	9858	9895	9945
				9946	9947	9948	9949	9950	9951	9976	9978	9979	9993	10007	10011
				10017	10019	10028	10033	10051	10075	10094	10143	10152	10171	10171	10190
				10191	10204	10207	10212	10218	10239	10241	10259	10294	10296	10305	10306
				10315	10318	10320	10321	10332	10333	10367	10369	10383	10384	10433	10436
				10437	10438	10439	10447	10472	10474	10479	10483	10488	10490	10491	10555
				10555	10581	10583	10584	10589	10590	10592	10595	10596	10598	10599	10602
				10624	10655	10664	10741	10743	10777	10788	10790	10791	10795	10796	10805
				10806	10850	10858
(U) AC-OP			1941 #
	AC+#			1942 #	9727	9729	9733	9738	9740	9945	9948	9949	9950	9951	10011
				10171	10171	10191	10239	10241	10483	10555	10555	10581	10583	10584	10589
				10590	10592	10595	10596	10598	10599	10602	10655	10664	10777	10788	10790
				10791	10795	10796	10850
	OR			1944 #
	#			1943 #
(U) ACB				1922 #
	MICROB			1924 #	3798	3849	4773	4788	4935	5026	5031	5180	5261	5266	5270
				5274	5893	5909	5911	5931	6690	6695	6697	6703	6706	6710	6715
				6719	6723	6724	6725	6730	6731	6732	6734	6735	6761	6763	6765
				6766	6775	6777	6778	6781	6800	6807	6808	6817	6843	6856	6857
				6873	6877	6917	6918	6920	6924	6926	6951	6990	6997	7127	7128
				7134	7135	7183	7184	7196	7197	7198	7245	7252	7330	7332	7343
				7345	7364	7367	7373	7752	7775	7776	7780	7782	7784	7811	7815
				7819	7825	7826	7837	7841	7847	7855	7883	7885	7886	7888	7907
				8988	8990	9002	9024	9048	9070	9085	9115	9223	9664	9696	9697
				9736	9742	9747	9749	9758	9808	9850	9853	9855	9858	9895	9946
				9947	9976	9978	9979	9993	10007	10017	10019	10028	10033	10051	10075
				10094	10143	10152	10190	10204	10207	10212	10218	10259	10294	10296	10305
				10306	10315	10318	10320	10321	10332	10333	10367	10369	10383	10384	10433
				10436	10437	10438	10439	10447	10472	10474	10479	10488	10490	10491	10624
				10741	10743	10805	10806	10858
	PAGB			1923 #	9192	9193	9232	9233	9234	9239	9242	9258	9290	9300	9307
				9315	9329	9340	9345	9352	9353	9354	9369	9379	9380	9391	9406
				9417	9423	9432	9447	9457	9469	9474	9478	9482	9496	9502	9510
				9514	9516	9526	9533	9581	9608	9633	9698
(U) AD				1513 #
	A			1551 #	3798	3861	3865	3870	3872	3883	3885	3916	4309	4620	4822
				4826	4831	4845	4939	4989	4990	5185	5250	5256	5336	5451	5451
				5466	5467	5468	5468	5471	5473	5474	5482	5484	5487	5489	5636
				5637	5638	5640	5642	5653	5654	5655	5657	5665	5815	5816	5817
				5818	5844	5864	5870	5885	5932	6090	6090	6102	6308	6314	6317
				6345	6348	6373	6375	6394	6474	6482	6506	6519	6525	6528	6577
				6580	6597	6599	6623	6625	6630	6634	6654	6690	6699	6701	6779
				6788	6820	6828	6829	6830	6837	6850	6852	6880	6934	6936	6941
				6946	6961	6980	7024	7144	7201	7203	7233	7235	7238	7242	7248
				7254	7324	7329	7335	7338	7373	7377	7415	7422	7482	7489	7601
				7605	7610	7612	7621	7623	7732	7784	7812	7859	7930	7954	7967
				7970	7975	7979	7981	7998	8023	8024	8051	8123	8173	8311	8312
				8329	8332	8334	8336	8347	8349	8355	8382	8388	8422	8428	8470
				8479	8754	8756	8767	8815	8833	8882	8886	8898	8910	8911	8912
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page CRF-3
; 							Cross Reference Listing					

				8918	8968	9015	9056	9127	9192	9193	9220	9236	9237	9238	9305
				9366	9411	9418	9473	9650	9652	9663	9712	9812	9815	9817	9820
				9822	9838	9840	10050	10114	10143	10145	10156	10158	10197	10345	10347
				10536	10557	10592	10626	10627	10643	10700	10704	10759	10794	10845	10847
	A*2			1518 #	6431	6627	6661	6938	6969	6983	7247	7972	9125	10437	10805
	A*2+1			1519 #	10137
	A+1			1514 #	3787	3848	4101	4636	4729	4740	4933	5022	5024	5054	5264
				5273	5314	5435	5436	5691	6280	6628	6640	6663	6952	6966	7017
				7147	7568	7571	7578	7582	8100	8129	8154	8179	8308	9033	9060
				9091	9134	9428	9850	9853	9855	9858	9900	9912	10047	10115	10199
				10281	10311	10336	10526	10530	10534	10582	10585	10586	10590	10673	10708
				10710	10834	10857
	A+B			1522 #	3863	3867	3871	3873	3884	3887	5317	5320	5552	5643	5659
				5661	5750	5755	5780	5783	5784	5787	5797	5811	5814	5851	5863
				5924	6021	6178	6318	6428	6522	6569	6785	6806	6814	6856	6968
				6999	7251	7361	7603	7607	7611	7613	7622	7625	7780	7785	7811
				7815	7819	7834	7840	7841	7847	7948	7950	7953	8107	8113	8114
				8121	8155	8161	8171	8843	8849	8881	8944	9084	9300	9315	9340
				9391	9423	9710	9751	9816	9818	9821	9823	9839	9841	10034	10200
				10220	10221	10293	10376	10383	10384	10398	10438	10447	10806	10858
	A+B+1			1523 #	4683	4707	4931	4936	7986	8026	8027	8045	8045	8047	8047
				8102	10012	10019	10042	10054	10081	10095	10207	10367	10479	10488	10491
				10741	10743
	A+XCRY			1515 #	5594
	A-1			1533 #	4651	4699	4980	4999	5254	5316	5431	5437	7823	7845	8017
				8017	8029	8029	8044	8788	9034	9044	10045	10116	10116	10160	10160
				10161	10161	10487
	A-B			1527 #	4091	4287	4303	5433	5565	5645	5647	5663	5704	5710	5747
				5749	5752	5759	5764	5769	5781	5782	5785	5786	5800	5812	5813
				5853	5904	5907	5922	5938	5942	5998	6174	6176	6344	6446	6479
				6646	6673	6696	6710	6717	6748	6803	6869	6873	6958	7214	7219
				7802	7949	7951	8090	8091	8125	8175	9736	9747	9749	9753	9978
				10004	10028	10031	10210	10234	10275	10279	10342
	A-B-1			1526 #	7210	10298	10309
	AND			1550 #	4331	4935	5026	5031	5261	5274	5612	5872	6924	6992	7134
				8990	9002	9024	9048	9070	9085	9115	9352	9432	9447	9979	10472
				10474
	ANDC			1539 #	4396
	ANDCA			1544 #	4360	4574	4795	5323	6366	6672	7021	8802	9670	9977	10272
	ANDCB			1549 #	4341	4773	4788	4847	5180	5266	5270	5325	6433	6836	7127
				7365	7368	7883	9664
	B			1546 #	3835	3846	3910	3911	3944	3955	3966	3977	3988	4107	4119
				4122	4221	4223	4226	4229	4232	4236	4285	4286	4301	4302	4668
				4698	4758	4769	4792	4800	4811	4812	4813	4816	4828	4842	4941
				4954	4954	4977	4979	4982	4983	4985	4986	4991	5001	5002	5003
				5037	5047	5177	5243	5247	5257	5260	5421	5424	5442	5442	5462
				5463	5464	5479	5480	5497	5499	5507	5515	5517	5521	5527	5530
				5539	5564	5587	5610	5688	5693	5706	5711	5713	5717	5802	5839
				5841	5845	5869	5882	5883	5886	5893	5895	5897	5898	5900	5902
				5902	5911	5912	5914	5931	5934	5935	5937	5941	5981	6004	6006
				6047	6050	6077	6238	6297	6309	6350	6352	6371	6379	6381	6384
				6427	6477	6498	6512	6512	6521	6527	6529	6530	6541	6541	6555
				6556	6570	6590	6592	6602	6606	6635	6670	6705	6714	6715	6718
				6719	6720	6722	6725	6729	6730	6734	6737	6759	6761	6765	6766
				6773	6776	6777	6778	6782	6783	6784	6798	6802	6804	6808	6811
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page CRF-4
; 							Cross Reference Listing					

				6815	6835	6844	6847	6848	6858	6862	6918	6921	6922	6947	6951
				6967	6990	6997	6998	7019	7178	7183	7184	7196	7197	7198	7202
				7213	7218	7220	7230	7243	7326	7332	7340	7345	7349	7351	7352
				7360	7374	7439	7440	7503	7573	7574	7575	7576	7581	7584	7630
				7631	7691	7693	7716	7716	7720	7760	7775	7818	7826	7837	7855
				7861	7863	7885	7887	7888	7903	7905	7907	7987	7988	7989	8000
				8003	8012	8014	8022	8039	8050	8053	8084	8089	8118	8119	8169
				8291	8321	8364	8373	8413	8435	8482	8757	8791	8792	8800	8801
				8868	8906	8966	8994	8998	9032	9040	9041	9057	9058	9059	9061
				9090	9135	9189	9191	9233	9240	9255	9287	9290	9301	9302	9303
				9307	9322	9329	9345	9348	9353	9363	9369	9370	9379	9380	9393
				9406	9417	9457	9474	9482	9496	9502	9510	9514	9516	9526	9533
				9557	9561	9581	9588	9592	9596	9604	9608	9613	9618	9633	9674
				9696	9698	9703	9727	9746	9807	9808	9811	9844	9845	9894	9896
				9902	9910	9913	9941	9945	9946	9947	9950	9958	9971	9976	9992
				9994	9995	10011	10013	10020	10023	10040	10088	10094	10112	10117	10139
				10140	10140	10155	10155	10171	10171	10191	10198	10204	10209	10217	10226
				10232	10260	10262	10269	10271	10283	10285	10307	10315	10319	10321	10332
				10333	10335	10339	10370	10379	10388	10389	10390	10395	10435	10449	10451
				10453	10477	10478	10483	10490	10501	10502	10502	10528	10529	10555	10555
				10583	10584	10615	10632	10637	10641	10645	10655	10664	10680	10729	10755
				10758	10760	10768	10775	10777	10784	10786	10788	10803	10803	10808	10812
				10813	10829	10835	10850	10860	10862
	CRY A EQ -1		1553 #	10386
	CRY A GE B		1556 #	6089	7772	10164
	CRY A#0			1555 #	6342	6615	6930	7804	8016	10085	10278	10818	10859
	CRY A.B#0		1554 #	4571	4846	8296	8298	9437	10439
	EQV			1542 #	4406
	NOR			1540 #	7128
	OR			1547 #	4386	4576	5191	5269	7016	8478	8803	8826	9354	9445	9469
				9742	9752	9756	9944	9949	9961	10035	10225
	ORC			1536 #	4457
	ORCA			1537 #	4447
	ORCB			1543 #	4427	6926	7135
	ORCB+1			1525 #	4876	8300
	SETCA			1535 #	4437	4563	4566	6617	6932	9383	10006	10314
	SETCB			1541 #	4416	5799	5906	6641	6641	6644	6644	6953	6953	6956	6956
				9565	9758	10005	10033	10051	10185	10212	10218	10306
	XCRY-1			1530 #	3999	4032	5319	5502	5503	5514	5598	5724	5727	5874	5939
				6012	6013	6263	6284	6311	6500	6503	6768	6770	6987	7334	7341
				7355	10236
	XOR			1545 #	4376	4575	4602	5519	6489	6845	9081	10113	10152
	0S			1548 #	4253	4267	4289	4306	4321	4843	4858	4895	5252	5441	5525
				5631	5631	5670	5855	5855	5862	5909	5995	5997	6045	6103	6316
				6408	6526	6560	6560	6657	6657	6703	6800	6812	6812	6823	6963
				6963	7696	7697	7753	7776	7776	7825	7836	7854	7886	7931	7946
				8750	8765	8807	8813	8817	8821	8824	8859	8859	8862	8870	8887
				8890	8899	8908	8923	8946	8953	8955	8957	8959	9007	9014	9055
				9076	9082	9124	9234	9250	9672	9735	10007	10078	10142	10190	10190
				10195	10195	10372	10372	10377	10742
	1S			1538 #	3789	3833	3913	4247	4254	4261	4268	4467	4723	4770	6411
				6832	7596	7632	9813	9846	9860	10010	10015	10201	10202	10305	10525
				10540	10600	10603	10614
(U) ADA				1559 #
	AR			1560 #	3798	3848	3883	3884	3885	3887	4331	4341	4360	4376	4386
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page CRF-5
; 							Cross Reference Listing					

				4396	4406	4416	4427	4437	4447	4457	4571	4574	4575	4576	4602
				4620	4636	4651	4699	4795	4822	4826	4846	4847	4935	4939	4980
				4990	4999	5026	5031	5191	5261	5269	5317	5320	5323	5325	5336
				5435	5451	5466	5468	5473	5484	5519	5552	5565	5594	5612	5636
				5637	5638	5640	5642	5643	5645	5647	5653	5654	5655	5657	5659
				5661	5663	5665	5710	5747	5750	5755	5764	5780	5781	5782	5783
				5784	5785	5786	5787	5797	5800	5811	5812	5813	5814	5851	5853
				5863	5872	5922	5924	6021	6102	6176	6178	6318	6345	6348	6394
				6428	6431	6433	6489	6522	6528	6569	6580	6623	6625	6627	6628
				6630	6640	6654	6661	6672	6701	6710	6748	6785	6803	6806	6814
				6828	6829	6830	6837	6845	6856	6873	6924	6926	6934	6936	6938
				6941	6952	6961	6968	6969	6980	6983	6992	7021	7024	7127	7128
				7134	7135	7147	7201	7203	7210	7214	7219	7238	7242	7247	7248
				7251	7254	7324	7335	7338	7361	7364	7367	7377	7415	7422	7482
				7489	7568	7571	7578	7582	7621	7622	7623	7625	7780	7785	7804
				7811	7815	7819	7847	7883	7930	7948	7949	7950	7951	7953	7972
				7979	8016	8090	8091	8107	8161	8296	8298	8308	8311	8312	8329
				8332	8334	8336	8347	8349	8355	8382	8388	8422	8428	8470	8478
				8479	8754	8756	8803	8815	8833	8843	8849	8881	8886	8898	8910
				8911	8912	8918	8944	8990	9002	9015	9033	9034	9044	9060	9081
				9084	9085	9091	9127	9134	9192	9193	9236	9300	9305	9315	9340
				9352	9354	9366	9391	9418	9432	9437	9445	9447	9469	9670	9742
				9747	9751	9752	9756	9812	9838	9839	9840	9841	9977	9978	10004
				10031	10034	10035	10047	10054	10113	10116	10152	10160	10161	10200	10210
				10220	10221	10225	10272	10278	10293	10298	10311	10336	10376	10383	10384
				10398	10437	10438	10439	10447	10472	10474	10487	10526	10530	10534	10536
				10582	10585	10590	10592	10627	10673	10700	10704	10708	10710	10743	10759
				10805	10806	10818	10834	10845	10847	10858	10859
	ARX			1561 #	3861	3863	3865	3867	3870	3871	3872	3873	4773	4788	4831
				4989	5180	5185	5266	5274	5316	6090	6342	6482	6699	6779	6788
				6999	7016	7601	7603	7605	7607	7610	7611	7612	7613	7834	7840
				7841	7859	7970	7975	8023	8051	8113	8114	8121	8123	8155	8171
				8173	8802	9024	9048	9070	9115	9411	9423	9473	9664	9710	9712
				9753	9815	9816	9817	9818	9820	9821	9822	9823	9850	9853	9855
				9858	9900	9912	9944	9949	9961	10045	10050	10085	10145	10156	10158
				10309	10314	10586	10626
	MQ			1562 #	3787	5471	5487	5815	5816	5817	5818	5864	5870	5885	5932
				6317	6375	6525	6577	6597	6599	6615	6617	6820	6836	6850	6852
				6880	6930	6932	7144	7732	7784	7954	7981	7998	8017	8024	8029
				8044	8100	8154	8767	8882	9056	9125	9979	10114	10115	10137	10143
				10345	10347	10386	10557	10794
	PC			1563 #	3916	4729	4740	4845	4933	5022	5024	5054	5250	5256	5270
				5273	7967	9220	9238	9650	9652	9663
(U) ADA EN			1564 #
	EN			1565 #	4309	5431	5433	5436	5437	5451	5467	5468	5474	5482	5489
				5844	6090	6308	6314	6373	6474	6506	6519	6634	6690	6946	7233
				7235	7329	7373	7812	7823	7845	8017	8029	8125	8129	8175	8179
				8826	8968	9237	9383	10006	10116	10160	10161	10197	10643
	0S			1566 #	4091	4101	4287	4303	4683	4707	4876	4931	4936	5254	5264
				5314	5691	5704	5749	5752	5759	5769	5904	5907	5938	5942	5998
				6089	6174	6280	6344	6366	6446	6479	6646	6663	6673	6696	6715
				6717	6719	6725	6730	6734	6761	6765	6766	6777	6778	6808	6869
				6918	6958	6966	6990	6997	7017	7183	7184	7196	7197	7198	7772
				7802	7986	8026	8027	8045	8045	8047	8047	8102	8300	8788	9428
				9736	9749	9976	10012	10019	10028	10042	10081	10095	10164	10199	10207
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page CRF-6
; 							Cross Reference Listing					

				10234	10275	10279	10281	10315	10342	10367	10479	10488	10491	10741	10857
(U) ADB				1568 #
	AR*4			1572 #	4876	5433	5749	5752	5893	5998	6050	6174	6344	6350	6352
				6366	6371	6384	6446	6479	6673	6696	6720	6729	6869	6967	7220
				8757	8800	8801	8994	8998	9040	9059	9189	9191	10200	10209	10220
				10279	10293	10306	10309	10376	10390	10398	10637	10641	10645	10680
	BR			1571 #	4091	4287	4303	4769	4792	4795	4842	4846	4847	4941	4991
				5003	5177	5191	5243	5257	5260	5269	5507	5517	5519	5521	5527
				5530	5539	5565	5612	5643	5647	5659	5663	5704	5706	5710	5713
				5747	5750	5755	5759	5764	5769	5780	5781	5782	5783	5784	5785
				5786	5787	5797	5800	5811	5812	5813	5814	5851	5853	5863	5872
				5882	5886	5902	5902	5904	5906	5907	5912	5914	5922	5924	5937
				5938	5941	5942	5981	6089	6297	6309	6318	6427	6428	6433	6512
				6512	6522	6541	6541	6569	6635	6641	6641	6644	6644	6646	6670
				6672	6714	6717	6718	6748	6773	6785	6802	6803	6806	6814	6835
				6836	6844	6947	6953	6953	6956	6956	6958	6968	6992	6998	6999
				7016	7019	7021	7210	7213	7214	7218	7219	7251	7332	7345	7351
				7361	7439	7440	7573	7574	7575	7576	7584	7760	7772	7802	7885
				7887	7888	7903	7905	7948	7949	7950	7951	7953	7986	7987	7988
				7989	8000	8003	8039	8045	8045	8047	8047	8053	8089	8090	8091
				8102	8107	8113	8114	8121	8125	8155	8161	8171	8175	8296	8298
				8300	8321	8364	8373	8413	8435	8478	8482	8791	8792	8802	8803
				8826	8843	8849	8868	8881	8906	8944	9057	9058	9061	9081	9084
				9135	9233	9255	9301	9303	9363	9437	9445	9561	9588	9613	9670
				9703	9710	9751	9753	9807	9808	9811	9913	9944	9949	9950	9961
				9971	9977	10004	10005	10012	10031	10034	10042	10054	10081	10113	10139
				10155	10155	10164	10204	10217	10221	10226	10232	10234	10272	10275	10298
				10339	10342	10370	10379	10395	10768	10786	10788	10835
	BR*2			1570 #	5515	5645	5661	5898	6006	6021	6176	6178	6379	6381	9240
				10285
	FM			1569 #	3835	3846	3863	3867	3871	3873	3884	3887	3910	3911	3944
				3955	3966	3977	3988	4107	4119	4122	4221	4223	4226	4229	4232
				4236	4285	4286	4301	4302	4331	4341	4360	4376	4386	4396	4406
				4416	4427	4447	4457	4571	4574	4575	4576	4602	4668	4683	4698
				4707	4758	4773	4788	4800	4811	4812	4813	4816	4828	4931	4935
				4936	4954	4954	4977	4979	4982	4983	4985	4986	5001	5002	5026
				5031	5037	5047	5180	5247	5261	5266	5270	5274	5317	5320	5323
				5325	5421	5424	5442	5442	5462	5463	5464	5479	5480	5497	5499
				5552	5564	5587	5610	5688	5693	5711	5717	5799	5802	5839	5841
				5845	5869	5883	5895	5897	5900	5911	5931	5934	5935	6004	6047
				6077	6238	6477	6489	6498	6521	6527	6529	6530	6555	6556	6570
				6590	6592	6602	6606	6705	6710	6715	6719	6722	6725	6730	6734
				6737	6759	6761	6765	6766	6776	6777	6778	6782	6783	6784	6798
				6804	6808	6811	6815	6845	6847	6848	6856	6858	6862	6873	6918
				6921	6922	6924	6926	6951	6990	6997	7127	7128	7134	7135	7178
				7183	7184	7196	7197	7198	7202	7230	7243	7326	7340	7349	7352
				7360	7364	7367	7374	7503	7581	7603	7607	7611	7613	7622	7625
				7630	7631	7691	7693	7716	7716	7720	7775	7780	7785	7811	7815
				7818	7819	7826	7834	7837	7840	7841	7847	7855	7861	7863	7883
				7907	8012	8014	8022	8026	8027	8050	8084	8118	8119	8169	8291
				8966	8990	9002	9024	9032	9041	9048	9070	9085	9090	9115	9287
				9290	9300	9302	9307	9315	9322	9329	9340	9345	9348	9352	9353
				9354	9369	9370	9379	9380	9391	9393	9406	9417	9423	9432	9447
				9457	9469	9474	9482	9496	9502	9510	9514	9516	9526	9533	9557
				9565	9581	9592	9596	9604	9608	9618	9633	9664	9674	9696	9698
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page CRF-7
; 							Cross Reference Listing					

				9727	9736	9742	9746	9747	9749	9752	9756	9758	9816	9818	9821
				9823	9839	9841	9844	9845	9894	9896	9902	9910	9941	9945	9946
				9947	9958	9976	9978	9979	9992	9994	9995	10011	10013	10019	10020
				10023	10028	10033	10035	10040	10051	10088	10094	10095	10112	10117	10140
				10140	10152	10171	10171	10185	10191	10198	10207	10210	10212	10218	10225
				10260	10262	10269	10271	10283	10307	10315	10319	10321	10332	10333	10335
				10367	10383	10384	10388	10389	10435	10438	10439	10447	10449	10451	10453
				10472	10474	10477	10478	10479	10483	10488	10490	10491	10501	10502	10502
				10528	10529	10555	10555	10583	10584	10615	10632	10655	10664	10729	10741
				10743	10755	10758	10760	10775	10777	10784	10803	10803	10806	10808	10812
				10813	10829	10850	10858	10860	10862
(U) AR				1580 #
	AD			1585 #	3787	3848	3861	3863	3865	3867	3870	3871	3872	3873	3944
				3999	4032	4091	4107	4119	4122	4223	4226	4232	4253	4254	4267
				4268	4287	4289	4303	4306	4321	4331	4341	4360	4376	4386	4396
				4406	4416	4427	4437	4447	4457	4467	4574	4575	4576	4636	4651
				4668	4683	4698	4699	4707	4758	4788	4845	4847	4858	4895	4933
				4935	4977	4979	4980	4991	5022	5024	5026	5031	5037	5047	5054
				5180	5191	5250	5252	5266	5269	5270	5274	5317	5320	5421	5424
				5441	5442	5464	5471	5480	5487	5497	5499	5502	5503	5514	5515
				5517	5530	5552	5564	5565	5587	5598	5610	5631	5691	5693	5711
				5713	5717	5724	5727	5759	5769	5784	5785	5786	5787	5797	5800
				5815	5816	5817	5818	5845	5851	5853	5855	5863	5864	5869	5870
				5874	5882	5885	5886	5895	5900	5904	5906	5907	5911	5912	5914
				5931	5932	5934	5935	5937	5938	5939	5941	5942	5981	6004	6006
				6012	6013	6047	6077	6238	6263	6297	6309	6311	6316	6317	6318
				6350	6379	6408	6427	6428	6498	6500	6503	6512	6521	6522	6525
				6529	6530	6541	6555	6556	6560	6569	6570	6577	6597	6599	6602
				6606	6617	6628	6635	6640	6641	6644	6646	6657	6703	6705	6710
				6714	6715	6717	6718	6719	6722	6725	6730	6734	6759	6761	6765
				6766	6768	6770	6773	6776	6778	6779	6782	6783	6784	6785	6788
				6800	6802	6803	6804	6806	6808	6811	6812	6814	6815	6820	6835
				6844	6850	6852	6856	6858	6862	6873	6880	6918	6922	6924	6926
				6932	6947	6952	6953	6956	6958	6963	6968	6987	6990	6992	6997
				6998	6999	7016	7127	7128	7134	7135	7144	7183	7184	7196	7197
				7198	7213	7218	7219	7251	7332	7334	7341	7345	7349	7351	7355
				7361	7364	7367	7374	7439	7440	7503	7573	7574	7575	7576	7578
				7582	7696	7697	7732	7753	7760	7775	7776	7780	7784	7785	7811
				7815	7818	7819	7826	7834	7837	7840	7841	7847	7854	7855	7861
				7863	7883	7885	7886	7887	7903	7905	7931	7946	7950	7951	7953
				7954	7967	7970	7986	8003	8012	8014	8017	8024	8026	8027	8029
				8044	8047	8053	8084	8090	8091	8100	8107	8154	8161	8308	8321
				8364	8373	8413	8435	8482	8750	8765	8791	8802	8803	8807	8817
				8821	8843	8849	8859	8862	8868	8870	8881	8887	8890	8899	8906
				8908	8923	8944	8946	8953	8955	8957	8959	8994	8998	9007	9014
				9033	9034	9040	9055	9056	9059	9076	9082	9084	9091	9124	9233
				9234	9250	9255	9290	9301	9307	9345	9352	9353	9354	9369	9380
				9406	9428	9432	9445	9447	9457	9469	9473	9474	9496	9557	9561
				9565	9588	9592	9596	9604	9608	9613	9618	9633	9650	9652	9664
				9672	9696	9698	9703	9710	9712	9727	9735	9742	9746	9747	9749
				9751	9752	9753	9756	9758	9807	9811	9894	9896	9900	9902	9910
				9912	9913	9941	9944	9945	9949	9958	9961	9976	9978	9979	9994
				9995	10004	10005	10007	10011	10013	10015	10019	10020	10023	10028	10031
				10033	10034	10035	10040	10047	10051	10078	10088	10094	10095	10112	10139
				10140	10143	10152	10155	10156	10158	10171	10185	10190	10195	10198	10199
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page CRF-8
; 							Cross Reference Listing					

				10202	10204	10207	10212	10217	10218	10220	10225	10226	10232	10234	10236
				10260	10262	10269	10272	10275	10283	10305	10307	10321	10333	10335	10336
				10339	10342	10345	10347	10367	10370	10372	10377	10379	10384	10395	10435
				10438	10451	10453	10474	10477	10478	10483	10487	10488	10490	10491	10501
				10502	10526	10529	10530	10534	10555	10557	10582	10584	10585	10586	10590
				10655	10664	10673	10708	10710	10729	10742	10758	10768	10788	10794	10803
				10812	10829	10834	10850	10860	10862
	AD*.25			1590 #	5642	5643	5645	5647	5659	5661	5663	5665	5749	5752	5998
				6021	6090	6102	6174	6344	6345	6375	6394	6431	6446	6479	6623
				6625	6627	6654	6661	6673	6696	6829	6869	6934	6936	6938	6961
				6969	6980	6983	7238	7247	7248	7972	9189	9191	9411	10279	10281
				10285	10309	10376	10437	10805
	AD*2			1588 #	3798	5435	5462	5636	5637	5638	5640	5653	5654	5655	5657
				5688	5747	5750	5755	5764	5780	5781	5782	5783	5811	5812	5813
				5814	5841	5922	5924	6348	6352	6367	6371	6381	6384	6477	6590
				6592	6630	6720	6729	6737	6798	6828	6830	6847	6848	6921	6941
				7220	7859	7948	7949	8918	9125	10200	10221	10293	10398	10637	10645
				10680	10857
	ADX			1589 #	4795	5260	5437	5451	5467	5468	5474	5482	5489	5527	5704
				5706	5902	6314	6373	6506	6519	6634	6946	7812	7845	7888	7987
				7988	7989	8000	8045	8478	9058	9061	9135	9670	9808	10006	10012
				10042	10054	10081	10116	10160	10161	10164	10786	10835
	AR			1581 #	4101	4221	4233	4246	4247	4775	4792	5314	5319	8289	8420
				8468	8813	8896	9668
	ARMM			1582 #	4048	4774	4791	5045	5050	5268	5281	5282	5283	6432	6662
				6747	6801	6855	6991	7013	7209	7211	7217	7250	7331	7344	7583
				7998	8004	8405	8412	8766	8778	8801	8860	9011	9075	9139	9413
				9481	9667	9729	9809	10003	10186	10191	10194	10308	10399	10464	10465
				10466	10467	10468	10469	10544	10587	10589	10675	10721
	CACHE			1584 #	8455
	EBUS			1586 #	3802	3804	4897	5254	8332	8395	8425	8426	8473	8475	8477
				8788	8805	8819	8823	8873	8874	8875	8876	8889	8891	8901	8917
				8926	8927	8928	8929	9209	9224
	MEM			1583 #
	SH			1587 #	3832	3913	4003	4033	4080	4229	4236	4237	4260	4261	4307
				4566	4569	4757	4839	4843	4942	4947	4949	5048	5049	5207	5257
				5271	5276	5428	5430	5449	5454	5475	5490	5521	5525	5538	5539
				5597	5880	5881	5883	5893	5896	5898	5940	5993	6018	6044	6073
				6088	6342	6515	6517	6518	6526	6527	6631	6633	6658	6670	6726
				6731	6777	6943	6945	6964	7018	7146	7148	7221	7252	7352	7357
				7360	7585	7632	7704	7735	7737	7782	7817	7904	7908	7909	7930
				7978	7991	8031	8033	8089	8108	8162	8381	8407	8411	8427	8754
				8756	8792	8827	8910	8911	8947	9074	9077	9192	9193	9208	9237
				9239	9242	9258	9300	9303	9331	9340	9418	9423	9482	9502	9510
				9513	9515	9654	9718	9736	9740	9744	9813	9846	9850	9853	9855
				9858	10016	10086	10142	10201	10203	10237	10273	10294	10296	10320	10378
				10393	10461	10494	10531	10536	10592	10615	10625	10626	10627	10633	10652
				10656	10685	10704	10734	10782	10790	10844	10845	10846	10847
(U) AR CTL			1982 #
	AR0-8 LOAD		1983 #	6432	6662
	AR9-17 LOAD		1984 #
	ARL LOAD		1986 #
	ARR LOAD		1985 #	8405
(U) AR0-8			1957 #
	LOAD			1958 #	4102	5265	5432	5994	5997	6005	6045	6048	6074	6173	6239
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page CRF-9
; 							Cross Reference Listing					

				6471	6540	6574	6578	7246	7253	7358	7426	7493	7578	7580	7757
				7774	7779	7835	7862	7864	7910	7921	7923	7969	8001	8414	8800
				9143	9226	9235	9236	9257	9483	9724	10008	10047	10049	10193	10270
				10313	10493	10516	10526	10533	10563	10674	10715	10716	10834	10863
(U) ARL				1972 #
	AD			1976 #	4101	4221	4229	4236	4247	4261	4792	5257	5264	5319	5421
				5487	5693	6238	6512	6597	6599	6850	6852	7584	7785	8089	8792
				9860	10260	10345	10347
	AD*.25			1981 #
	AD*2			1979 #	5688	5756	5765	5841
	ADX			1980 #	8826	9237
	ARL			1973 #	4107	4122	4223	4237	4267	4268	5271	7834	8427	8478	8754
	ARMM			1974 #	4102	5265	5432	5994	5997	6005	6045	6048	6074	6173	6239
				6471	6540	6574	6578	6986	7246	7253	7358	7426	7493	7578	7580
				7757	7774	7779	7835	7862	7864	7910	7921	7923	7969	8001	8414
				8800	9143	9226	9235	9236	9257	9483	9724	10008	10047	10049	10193
				10270	10313	10493	10516	10526	10533	10563	10674	10715	10716	10834	10863
	CACHE			1975 #
	EBUS			1977 #
	SH			1978 #	4226	4232	4233	4253	4254	4775	5054	5314	5428	6018	6342
				6515	8107	8161	8289	8413	8420	8468	8813	8893	8896	9382	9668
				9712
(U) ARMM			1670 #
	EXP_SIGN		1672 #	5994	5997	6005	6045	6048	6074	6173	6239	6471	6540	6574
				7253	7358
	SCAD EXP		1673 #	6432	6578	6662	6986	7246	7921	7923	7969	8414	9011	9075
				9139	9235	9236	9257	9481	9809	10008	10191	10193	10194	10270	10313
	SCAD POS		1674 #	4102	5265	5432	7013	7426	7493	7578	7580	7583	7757	7774
				7779	7835	7862	7864	7910	7998	8001	8004	8412	8800	9143	9226
				9483	9724	9729	10047	10049	10399	10464	10465	10466	10467	10468	10469
				10493	10516	10526	10533	10544	10563	10587	10589	10674	10675	10715	10716
				10721	10834	10863
	#			1671 #	4048	5281	5282	5283	6747	6801	6855	6991	7209	7211	7217
				7250	7331	7344	8766	8778	8860	9413	10003	10186	10308
(U) ARX				1591 #
	AD			1595 #	3789	3835	4301	4302	4729	4740	4773	4789	4843	4931	4936
				4999	5254	5273	5314	5318	5336	5442	5451	5463	5466	5468	5473
				5479	5484	5507	5525	5631	5839	5855	5883	5897	5898	5902	5909
				5995	5997	6045	6103	6284	6411	6526	6527	6560	6657	6663	6777
				6812	6832	6963	7017	7178	7333	7360	7776	7825	7836	7907	7930
				8045	8754	8788	8813	8824	8859	8990	9024	9048	9070	9085	9115
				9192	9193	9236	9238	9303	9379	9418	9502	9510	9514	9516	9581
				9663	9665	9736	9946	9947	9977	10010	10045	10051	10116	10140	10142
				10160	10161	10171	10190	10191	10195	10201	10271	10306	10311	10332	10372
				10389	10472	10502	10528	10536	10555	10583	10592	10614	10615	10664	10777
				10803
	ADX			1599 #	4287	4303	4842	5177	5243	5431	5436	5515	5521	5539	5784
				5785	5786	5787	5797	5800	5851	5853	5863	5904	5906	5907	5912
				5914	5937	5938	6350	6379	6433	6512	6522	6541	6569	6628	6641
				6644	6646	6670	6672	6773	6785	6814	6835	6953	6956	6958	6967
				6968	7019	7021	7802	7823	8017	8029	8047	8053	8129	8179	8881
				8944	9057	9561	9588	9613	9950	10012	10042	10081	10155	10204	10217
				10220	10226	10232	10234	10281	10336	10339	10342	10370	10379	10395	10641
	ADX*.25			1600 #	5642	5643	5645	5647	5659	5661	5663	5665	5749	5752	6021
				6090	6102	6174	6280	6344	6345	6394	6479	6623	6625	6627	6654
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page CRF-10
; 							Cross Reference Listing					

				6661	6673	6696	6829	6869	6934	6936	6938	6961	6969	6980	6983
				7238	7972	9189	9191	10137	10279	10285	10376	10437	10805
	ADX*2			1598 #	4309	5433	5636	5637	5638	5640	5653	5654	5655	5657	5748
				5751	5755	5764	5780	5781	5782	5783	5811	5812	5813	5814	5844
				5893	5922	5924	5941	5942	6308	6348	6352	6367	6371	6381	6384
				6474	6630	6690	6828	6830	6941	6966	7233	7235	7329	7373	7948
				7949	8800	8801	8968	9383	10197	10221	10293	10398	10643
	ARX			1592 #
	CACHE			1594 #
	MEM			1593 #
	MQ			1596 #	5275	5483	5489	5530	5798	5801	5881	6012	6018	6507	6515
				6518	6521	6602	6633	6635	6858	6945	6947	7804	8031	9820	9821
				9822	9823	9838	9839	10153	10680
	SH			1597 #	4119	4121	4814	4817	4866	5037	5207	5270	5471	5487	5497
				5499	5502	5503	5517	5533	5704	5706	5717	5724	5727	5845	5882
				5886	5894	5900	5911	6013	6015	6016	6262	6297	6311	6317	6375
				6498	6500	6503	6606	6766	6768	6770	6772	6779	6784	6862	6922
				6987	6989	7002	7004	7206	7244	7341	7355	7419	7429	7486	7500
				7581	7696	7697	7732	7735	7926	7946	7954	7970	7977	7989	8083
				8426	8474	8476	8777	8779	8807	8821	8825	8890	8908	8923	8953
				8955	8957	8959	9014	9056	9076	9114	9125	9144	9242	9292	9302
				9386	9411	9427	9472	9650	9652	9752	10004	10007	10040	10078	10112
				10138	10156	10158	10210	10262	10269	10335	10377	10390	10450	10452	10524
				10529	10540	10584	10599	10602	10631	10703	10729	10736	10829
(D) B				2205 #	4058	4113	4275	4276	4912	4913	5072	5077	5078	5079	5080
				5082	5083	5084	5085	5092	5093	5094	5095	5301	5406	5407	5408
				5410	5829	5830	5831	6220	6464	6465	6466	6467	6681	6682	6683
				6684	8192	8194	8195	8196	8203	8205	8206	8207	8214	8216	8217
				8218	8237	8238	8239	8240	8241	8242	8249	8250	8253	8254	8261
				8263	8264	8265	8272	8274	8275	8276
	AC			2209 #	4053	4054	4062	4063	4067	4068	4072	4073	4128	4130	4137
				4138	4142	4143	4147	4148	4152	4153	4157	4158	4162	4163	4167
				4168	4174	4175	4179	4180	4184	4185	4189	4190	4194	4195	4199
				4200	4204	4205	4209	4210	4314	4315	4324	4325	4334	4335	4344
				4346	4353	4354	4369	4370	4379	4380	4389	4390	4399	4400	4409
				4410	4420	4421	4430	4431	4440	4441	4450	4451	4460	4461	4883
				5089	5545	5546	5557	5558	5570	5571
	BOTH			2211 #	4317	4327	4337	4351	4356	4372	4382	4392	4402	4412	4423
				4433	4443	4453	4463	5548	5560	5573
	DBL AC			2206 #	5602	5603	5675	5676	5680	5681
	DBL BOTH		2207 #	5605	5678	5683
	MEM			2210 #	4064	4069	4074	4134	4139	4144	4149	4154	4159	4164	4169
				4176	4181	4186	4191	4196	4201	4206	4211	4316	4326	4336	4350
				4355	4365	4366	4371	4381	4391	4401	4411	4422	4432	4442	4452
				4462	5547	5559	5572	5604	5677	5682	8202
	SELF			2208 #	4060	4065	4070	4075	4135	4140	4145	4150	4155	4160	4165
				4170	4177	4182	4187	4192	4197	4202	4207	4212
	SJC-			2213 #	4582	4591	4609	4625	4640	4657	4672	4687
	SJCA			2217 #	4586	4595	4613	4629	4644	4661	4676	4691
	SJCE			2215 #	4584	4593	4611	4627	4642	4659	4674	4689	5069
	SJCG			2220 #	4589	4598	4616	4632	4647	4664	4679	4694	5075
	SJCGE			2218 #	4587	4596	4614	4630	4645	4662	4677	4692	4702	5073
	SJCL			2214 #	4583	4592	4610	4626	4641	4658	4673	4688	4703	5068
	SJCLE			2216 #	4585	4594	4612	4628	4643	4660	4675	4690	5070
	SJCN			2219 #	4588	4597	4615	4631	4646	4663	4678	4693	5074
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page CRF-11
; 							Cross Reference Listing					

(D) B0				2221 #	5954	5955	5956	5957	5960	5964	5965	5966	5967	5970
	CRY0(0)			2222 #	4474	4475	4476	4477	4483	4484	4485	4486	4492	4493	4494
				4495	4501	4502	4503	4504	4510	4511	4512	4513	4519	4520	4521
				4522	4528	4529	4530	4531	4537	4538	4539	4540	8197	8208	8213
				8219	8243	8255	8260	8262	8266	8271	8273	8277
	CRY0(1)			2223 #	4478	4479	4487	4488	4490	4491	4496	4497	4499	4500	4505
				4506	4508	4509	4514	4515	4517	4518	4523	4524	4526	4527	4532
				4533	4535	4536	4541	4542	4714	8198	8209	8220	8244	8256	8267
				8278
(D) B1-2			2224 #	4474	4475	4476	4477	4478	4479	4483	4484	4485	4486	4487
				4488	4490	4491	4492	4493	4494	4495	4496	4497	4499	4500	4501
				4502	4503	4504	4505	4506	4508	4509	4510	4511	4512	4513	4514
				4515	4517	4518	4519	4520	4521	4522	4523	4524	4526	4527	4528
				4529	4530	4531	4532	4533	4535	4536	4537	4538	4539	4540	4541
				4542	4714	8197	8198	8208	8209	8213	8219	8220	8243	8244	8255
				8256	8260	8262	8266	8267	8271	8273	8277	8278
	AC			2225 #	5954	5959	5960	5964	5969	5970	6027	6032	6033	6056	6057
				6061	6062	6219	6257
	BOTH			2227 #	5957	5962	5967	5972	6030	6035	6059	6064
	MEM			2226 #	5956	5961	5966	5971	6029	6034	6058	6063
(U) BR				1601 #
	AR			1602 #	3944	3955	3966	3977	3988	4048	4083	4086	4310	4721	4723
				4766	4790	4845	4889	4933	4977	4982	4985	5047	5180	5267	5502
				5514	5515	5564	5631	5687	5691	5692	5798	5801	5841	5880	5896
				5898	5902	5904	5906	5907	5912	5914	5937	5938	6004	6006	6076
				6246	6308	6309	6371	6384	6408	6411	6477	6482	6490	6541	6617
				6633	6699	6701	6706	6713	6746	6769	6773	6778	6783	6802	6804
				6811	6832	6835	6846	6932	6939	6945	6985	6997	6998	6999	7208
				7213	7215	7218	7249	7328	7342	7349	7351	7412	7419	7437	7446
				7479	7486	7582	7752	7757	7760	7782	7812	7817	7845	7887	7903
				7980	7999	8013	8025	8027	8049	8083	8100	8154	8289	8307	8379
				8389	8420	8423	8451	8468	8472	8750	8801	8802	8805	8813	8817
				8862	8885	8887	8896	8899	8962	8964	9075	9233	9258	9288	9301
				9344	9430	9513	9515	9533	9698	9749	9758	9976	9980	9995	10028
				10112	10117	10154	10163	10186	10199	10207	10217	10270	10272	10274	10281
				10283	10339	10342	10366	10756	10758	10768	10782
(U) BRX				1603 #
	ARX			1604 #	3832	4310	4788	5248	5507	5514	5517	5530	5631	5717	5724
				5727	5759	5760	5768	5769	5798	5801	5845	5894	5902	5904	5906
				5907	5912	5914	5937	5938	6004	6076	6309	6371	6384	6408	6411
				6477	6482	6490	6541	6617	6663	6769	6773	6780	6783	6811	6832
				6835	6846	6932	6939	6985	7774	7826	7837	7848	7885	7979	8013
				8025	8027	8049	8083	8476	8824	8962	8964	8997	9057	9132	9665
				9976	10008	10051	10075	10117	10154	10163	10199	10207	10217	10271	10281
				10283	10339	10342	10366	10756	10809
(U) CALL			1814 #
	CALL			1815 #	3790	4286	4302	4774	4791	4824	4844	4896	4939	5179	5184
				5185	5244	5249	5253	5255	5518	5589	5611	5689	5693	5756	5765
				5843	5862	5870	5887	5910	5926	5932	6049	6078	6080	6473	6498
				6562	6577	6590	6592	6598	6600	6608	6689	6694	6698	6702	6705
				6712	6717	6723	6732	6759	6762	6774	6780	6805	6809	6813	6816
				6824	6834	6844	6847	6848	6851	6853	6863	6872	6880	7207	7237
				7328	7350	7376	7411	7414	7418	7421	7427	7430	7431	7437	7439
				7478	7481	7485	7488	7494	7501	7504	7753	7757	7774	7779	7801
				7854	7856	7878	7882	7886	7929	7971	7992	8100	8118	8119	8120
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page CRF-12
; 							Cross Reference Listing					

				8154	8169	8170	8285	8291	8322	8379	8387	8389	8394	8408	8411
				8420	8423	8449	8469	8472	8750	8755	8766	8767	8777	8784	8789
				8804	8814	8817	8822	8832	8833	8861	8868	8880	8885	8887	8897
				8899	8908	8918	8943	8967	9014	9039	9040	9041	9044	9055	9059
				9060	9080	9083	9092	9100	9105	9110	9123	9124	9127	9128	9133
				9134	9136	9142	9143	9651	9667	9702	9894	9895	9902	9941	9942
				9945	9946	9958	9959	9968	9970	9992	9993	10019	10022	10041	10076
				10079	10087	10094	10141	10151	10172	10184	10208	10259	10284	10305	10319
				10320	10334	10341	10344	10392	10433	10516	10537	10555	10558	10593	10613
				10731	10742	10804	10806	10810	10831	10858	10861
(U) CLR				1959 #
	AR			1964 #	4740	4790	5267	5484	6832	9666	10050	10311
	AR+ARX			1965 #
	AR+ARX+MQ		1968 #	6392	7354	7771	10076	10433
	AR+MQ			1966 #	6939	10210
	ARL			1962 #	4246	4260	4982	4985	5048	5049	8307	8903	9292	9293	9294
				9385	9386	9401	9852	10390	10393	10625	10703	10729	10758	10829
	ARL+ARX			1969 #	7813	7846	8879	8942
	ARL+ARX+MQ		1970 #
	ARR			1963 #	5432	8826
	ARR+MQ			1971 #
	ARX			1961 #	5421	6343	7253	7903	10386
	ARX+MQ			1967 #	5427	5687	5692	6074	6237	7786	10260
	MQ			1960 #	4286	4302	5479	5487	5843	6015	6016	6019	6471	6513	6516
				6598	6600	6689	6851	6853	6881	7017	7202	7326	7779	10345	10347
(U) COND			1774 #
	AD FLAGS		1788 #	4091	4287	4303	4636	4651	4683	4699	5552	5565	5851	5853
	AR CLR			1780 #	3789	6308	6411	6746	6797	6799	6854	6985	7208	7215	7244
				7249	7329	7342	10010	10332	10614
	ARL IND			1782 #	4122	4221	4223	4226	4229	4232	4233	4236	4237	4246	4247
				4253	4254	4260	4261	4267	4268	4740	4792	5271	5314	5319	6832
				7253	7578	7584	7834	8107	8161	8289	8307	8413	8413	8427	8478
				8792	9712	9860	10047	10526
	ARX CLR			1781 #	5527	5588	5609	5711	6309	6314	6374	6427	6428	6520	6634
				6780	6788	6946	7855	10015	10199
	DIAG FUNC		1793 #	4831	4897	5254	5256	8388	8395	8422	8425	8426	8428	8470
				8473	8475	8477	8756	8788	8805	8815	8819	8823	8873	8874	8875
				8876	8886	8889	8891	8898	8901	8910	8911	8912	8917	8926	8927
				8928	8929	9209	9224
	EBOX STATE		1794 #	3801	3832	4905	8921	8932	9189	9191	9527	9632	9674	9703
	EBUS CTL		1795 #	3875	3876	3877	3878	4830	4832	4898	5259	8292	8322	8330
				8333	8336	8345	8347	8374	8479	8483	8825	8859	8881	8916	8920
				8930	9041	9055	9091	9124	9199	9210	9225	9702	9825	9826	9827
				9828
	FE SHRT			1787 #	9382
	FM WRITE		1785 #	3798	3849	3999	4004	4032	4042	4289	5032	5426	5456	5475
				5490	5868	5874	5881	5885	5888	5893	5909	5928	5929	5939	5941
				5942	6506	6518	6526	6597	6599	6670	6690	6695	6697	6703	6706
				6723	6724	6726	6727	6731	6732	6733	6735	6760	6763	6775	6781
				6800	6807	6817	6843	6850	6852	6857	6877	6917	6920	7018	7150
				7245	7252	7330	7332	7343	7345	7373	7432	7752	7776	7782	7784
				7801	7825	7836	7854	7885	7886	7888	7911	7931	8029	8031	8033
				8045	8047	8109	8988	9192	9193	9223	9232	9233	9234	9239	9242
				9258	9478	9697	9713	9718	9719	9725	9733	9735	9740	9744	9745
				9751	9753	9754	9808	9850	9853	9855	9858	9895	9944	9949	9951
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page CRF-13
; 							Cross Reference Listing					

				9953	9961	9962	9993	10005	10006	10007	10009	10017	10030	10050	10052
				10054	10075	10086	10097	10143	10156	10160	10190	10195	10197	10201	10202
				10204	10226	10236	10241	10259	10273	10285	10294	10296	10305	10306	10316
				10318	10320	10345	10347	10369	10374	10433	10461	10463	10489	10494	10524
				10536	10539	10540	10592	10598	10599	10602	10624	10631	10790	10791	10796
				10835
	LD AR0-8		1777 #	4048	5281	5282	5283	6747	6801	6855	6986	6991	7013	7209
				7211	7217	7250	7331	7344	7583	7998	8004	8412	8766	8778	8860
				9011	9075	9139	9413	9481	9729	9809	10003	10186	10191	10194	10308
				10399	10464	10465	10466	10467	10468	10469	10544	10587	10589	10675	10721
	LD AR18-35		1779 #
	LD AR9-17		1778 #	4774	4791	5045	5050	5268	8801	9667
	LD VMA HELD		1810 #
	LOAD IR			1789 #	3835	3846	5336	9812
	LONG EN			1799 #	3910	7630	9844
	MBOX CTL		1796 #	8752	8835	8839	8844	8846	8850	8852	9250	9252	9254	9484
				9699
	PCF_#			1786 #	4943	4948	4996	4997	5001	5523	5598	5615	5702	5876	6081
				6307	6610	6865	7006	7010	7011	7149	7212	7216	7370	7371	7595
				7628	8003	8311	8312	10335
	REG CTL			1783 #	5636	5637	5638	5640	5653	5654	5655	5657	5839	6432	6432
				6630	6654	6662	6662	6662	6828	6829	6830	6836	6941	6961	7243
				7340	7361	8405	9971
	SEL VMA			1792 #	3916	7967	9220	9238	9650	9652
	SPEC INSTR		1790 #	3788	3841	4858	4869	4875	5335	8931	8941	8987	9316	9654
	SR_#			1791 #	4016	4017	4021	4033	4828	4892	4901	5260	5914	5934	5978
				5979	5980	6102	6344	6442	6446	6456	6529	6530	6558	6592	6618
				6657	6672	6848	6876	6933	6963	7022	7413	7416	7420	7423	7440
				7480	7487	7860	7877	7881	7884	7930	7989	8000	8012	8022	8023
				8038	8040	8049	8052	8053	8108	8118	8119	8120	8130	8162	8169
				8170	8180	9557	9561	9565	9569	9573	9577	9588	9592	9596	9600
				9604	9613	9618	9710	10012	10016	10022	10024	10035	10040	10041	10042
				10055	10079	10081	10087	10141	10142	10151	10203	10237	10269	10319	10336
				10379	10392	10395	10435	10615	10654	10698	10810	10861
	VMA DEC			1808 #	7586	8945	10787
	VMA INC			1809 #	4282	4306	4796	4800	4810	4811	5028	5053	5186	5194	5251
				5275	5277	5842	5897	6472	6688	7205	7327	7580	7597	7928	8455
				8947	8966	9083	9669	9671	9672	10232	10234	10373	10676	10783	10850
	VMA_#			1803 #	5182	5191	5247	7887	7897	7898	7899	7900	8919	8954	8956
				8958	8960	9628
	VMA_#+AR32-35		1806 #	7973	9276	9278
	VMA_#+MODE		1805 #	5245
	VMA_#+PI*2		1807 #	8992	8993	9005
	VMA_#+TRAP		1804 #	3834	3836
(U) DIAG FUNC			2156 #
	CONI APR(L)		2175 #	8426
	CONI APR(R)		2171 #	8425
	CONI MTR		2181 #	8901
	CONI PAG		2184 #	8819
	CONI PI(L)		2170 #	8477
	CONI PI(PAR)		2183 #	8475
	CONI PI(R)		2169 #	8473
	CONO APR		2162 #	8422	8428
	CONO MTR		2160 #	8898
	CONO PAG		2164 #	8815
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page CRF-14
; 							Cross Reference Listing					

	CONO PI			2163 #	8470
	CONO TIM		2161 #	8886
	DATAI APR		2177 #	8395
	DATAI PAG(L)		2173 #	5254	8788
	DATAO APR		2165 #	8388
	DATAO PAG		2166 #	8756
	LD AC BLKS		2167 #
	LD PA LEFT		2158 #	8910	8912
	LD PA RIGHT		2159 #	8911
	LD PCS+CWSX		2168 #	4831	5256
	RD CACHE CNT		2178 #	8876	8929
	RD EBOX CNT		2176 #	8875	8928
	RD EBUS REG		2185 #	4897	8805	8823	9209	9224
	RD INTRVL		2179 #	8889
	RD MTR REQ		2182 #	8917
	RD PERF CNT		2174 #	8874	8927
	RD PERIOD		2180 #	8891
	RD TIME			2172 #	8873	8926
	.5 USEC			2157 #
(U) DISP			1820 #
	BYTE			1833 #	4869	7426	7429	7439	7493	7500	7752	7758	8286	8845	8851
				9438	10261	10517	10563	10730	10775	10776	10777	10790	10830
	DIAG			1821 #
	DIV			1830 #	5747	5750	5755	5764	5780	5781	5782	5783	5784	5785	5786
				5787	5811	5812	5813	5814	7948	7949	7950	7951	10298
	DRAM A RD		1823 #	3870	3871	3872	3873	3883	3884	9820	9821	9822	9823	9839
	DRAM B			1832 #	4080	4089	4221	4223	4226	4229	4233	4237	4246	4247	4253
				4254	4260	4261	4267	4268	4282	4321	4331	4341	4360	4376	4386
				4396	4406	4416	4427	4437	4447	4457	4467	4564	4567	4571	4898
				4947	5453	5508	5528	5532	5552	5565	5597	5614	5705	5707	5712
				5846	5978	5993	6442	6446	6474	6690	8292	8307	8479	8827	8871
				8879	9838	9923	9924	10009	10192	10200	10378	10436	10473	10477
	DRAM J			1822 #	3945	3956	3967	3978	3989	4767	4793	4801	9851	9854	9856
				9859
	EA MOD			1835 #	3833	3913	4723	4770	7596	7632	9243	9813	9846	10525	10540
				10600	10603
	MUL			1829 #	5632	5642	5644	5646	5648	5660	5662	5664	5665	5670	5862
				6823
	NICOND			1827 #	4004	4026
	NORM			1834 #	6022	6050	6090	6102	6344	6346	6372	6377	6385	6395	6428
				6523	6580	6603	6628	6636	6642	6645	6646	6786	6838	6859	6925
				6927	6949	6954	6957	6959	6968	7024	7240	7254	7335	7346	7377
	PG FAIL			1825 #	9199	9210
	RETURN			1824 #	4310	4833	4839	4954	5207	5271	5277	5636	5637	5638	5640
				5653	5654	5655	5657	5757	5759	5760	5766	5768	5769	5799	5802
				5815	5816	5817	5818	6177	6179	6544	6546	6737	6748	7127	7128
				7134	7135	7440	7444	7446	7447	7567	7570	7573	7574	7575	7576
				7579	7586	7610	7611	7612	7613	7621	7622	7704	7705	7720	7737
				7955	7981	8003	8109	8130	8180	8337	8350	8370	8374	8808	8863
				8947	8968	9077	9082	9085	9116	9527	9912	9947	9951	9960	9962
				9969	9971	9980	10100	10435	10439	10463	10474	10479	10483	10494	10501
				10544	10559	10863
	SH0-3			1828 #	5252	7001	7362	7894	8923	8942	8990	9007	9039	9058	9289
				9378	10450	10452	10633	10650
	SIGNS			1831 #	5719	5913	5915	9240	9277	9279	10046	10050	10077	10097	10142
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page CRF-15
; 							Cross Reference Listing					

				10143	10157	10190	10314	10371	10396	10434	10462	10489
	SR			1826 #	5934	5935	5940	6347	6349	6351	6353	6380	6382	6383	6393
				6412	6432	6639	6662	7008	7017	7438	7693	7803	7805	7817	7830
				7859	9232	9534	9713	9725	9733	9754	10098
(U) EA CALC			2043 #
	A IND			2053 #	3861	3863	3865	3867	3885	3887	9815	9816	9817	9818	9840
				9841
	BYTE IND		2061 #	7597	7601	7603	7605	7607	7623	7625
	BYTE LD			2057 #
	BYTE RD			2058 #	7415	7422	7482	7489	7610	7611	7612	7613	7621	7622
	BYTE RD PC		2059 #
	BYTE RPW		2060 #
	LD ARX+WR		2069 #	10783
	LD AR(EA)		2067 #	8113	8114	8121
	LD AR+WR		2068 #	10755	10759
	POP AR			2063 #	4977
	POP AR-ARX		2065 #	4979
	POP ARX			2064 #
	PUSH			2062 #	4931	4936
	WRITE(E)		2066 #	5003	8123
(U) EBUS CTL			2140 #	4832	5259	8345
	DATAI			2154 #	8354	9055	9124
	DATAO			2153 #	8355	9041	9091	9702
	EBUS DEMAND		2144 #	8330
	EBUS NODEMAND		2145 #	8333
	GRAB EEBUS		2141 #	3875	3876	3877	3878	4830	8374	8916	9199	9825	9826	9827
				9828
	IO INIT			2150 #	8347	8350
	REL EBUS		2143 #	8336	8479
	REL EEBUS		2155 #	4898	8292	8825	8859	8881	8920	8930	9210	9225
	REQ EBUS		2142 #	8322	8483
(U) EXP TST			1987 #
	AR_EXP			1988 #	6432	6662
(U) FE				1659 #	9382
	SCAD			1660 #	3914	3916	3955	3977	4004	4026	4858	4866	4875	5427	5430
				5480	5483	5588	5610	5632	5636	5637	5638	5640	5642	5644	5646
				5648	5653	5654	5655	5657	5660	5662	5664	5665	5670	5718	5725
				5728	5747	5750	5755	5764	5780	5781	5782	5783	5784	5785	5786
				5787	5798	5801	5811	5812	5813	5814	5815	5816	5817	5818	5856
				5862	5871	5899	5905	5926	5994	5997	6006	6015	6016	6019	6047
				6050	6077	6088	6091	6239	6262	6279	6283	6345	6348	6350	6352
				6372	6376	6379	6381	6385	6392	6394	6431	6471	6483	6542	6570
				6597	6599	6607	6624	6626	6627	6630	6631	6658	6661	6715	6719
				6721	6730	6784	6810	6815	6821	6823	6850	6852	6854	6862	6921
				6935	6936	6938	6941	6943	6964	6969	7221	7232	7235	7239	7251
				7325	7339	7357	7568	7571	7595	7597	7615	7616	7617	7618	7726
				7733	7802	7804	7890	7905	7906	7909	7946	7948	7949	7950	7951
				7955	7977	8407	8416	8449	8764	8843	8849	8863	9007	9074	9123
				9132	9203	9208	9251	9253	9255	9282	9283	9288	9331	9348	9370
				9378	9393	9413	9439	9445	9476	9501	9511	9553	9847	9894	9902
				9910	10003	10045	10138	10186	10282	10293	10295	10308	10340	10343	10346
				10348	10461	10463	10483	10502	10524	10530	10539	10540	10585	10598	10599
				10602	10628	10672	10684	10686	10699	10708	10711	10733	10736	10793	10803
(U) FETCH			2031 #
	COMP			2034 #	4602
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page CRF-16
; 							Cross Reference Listing					

	JFCL			2038 #	4846
	JUMP			2037 #	4668	4683	4699	4707
	SKIP			2035 #	4620	10145
	TEST			2036 #	4563	4566	4571	8296	8298	8300	10085
	UNCOND			2032 #
(U) FLAG CTL			2010 #
	DISMISS			2014 #	4766	4818	4819	8304	9042
	DISMISS+LD		2016 #
	HALT			2017 #	4856
	JFCL			2012 #	4845
	JFCL+LD			2013 #	4848
	PORTAL			2019 #	4721
	RSTR FLAGS		2011 #	4762	4812	4813	4816
	SET FLAGS		2018 #	3730	5280	9673
(U) FMADR			1615 #
	AC+#			1626 #	9727	9733	9740	9945	9949	9951	10011	10171	10171	10191	10241
				10483	10555	10555	10581	10583	10584	10592	10598	10599	10602	10655	10664
				10777	10790	10791	10796	10850
	AC0			1616 #	3944	3999	4004	4032	4107	4119	4122	4221	4223	4226	4229
				4232	4236	4289	4331	4341	4360	4376	4386	4396	4406	4416	4427
				4447	4457	4571	4574	4575	4576	4602	4668	4683	4698	4707	4931
				4936	4977	4979	4981	4999	5032	5037	5047	5315	5317	5320	5323
				5325	5421	5424	5442	5442	5456	5464	5475	5480	5490	5497	5499
				5552	5564	5587	5610	5693	5711	5717	5799	5802	5845	5869	5874
				5900	6004	6047	6077	6238	6489	6498	6506	6518	6521	6529	6530
				6570	6606	6670	6705	6722	6726	6759	6760	6784	6804	6815	6845
				6862	6922	7018	7150	7349	7352	7374	7432	7503	7785	7801	7854
				7861	7863	7911	8014	8026	8027	8029	8031	8045	8047	8084	8109
				9713	9744	9752	9753	9756	9894	9902	9995	10009	10035	10088	10112
				10160	10185	10195	10197	10225	10226	10262	10271	10335	10345	10347	10374
				10435	10451	10453	10461	10463	10478	10494	10615	10631	10812	10835	10860
				10862
	AC1			1617 #	4042	4301	4302	5426	5462	5463	5479	5688	5841	5881	5897
				5928	5929	5934	5935	6477	6526	6527	6555	6556	6590	6592	6597
				6599	6602	6727	6733	6737	6776	6782	6783	6798	6811	6847	6848
				6850	6852	6858	6921	7360	7818	7834	7836	7840	7931	8012	9557
				9718	9725	9745	9941	9953	9958	9961	10040	10050	10140	10140	10260
				10502	10502	10524	10539	10540	10803	10803
	AC2			1620 #	5885	5895	5939	7178	8033	9719	9944	9962	10528	10529	10536
	AC3			1621 #	5839	5868	5883	5888	5941	5942	9565	9592	9596	9604	9618
				9735	9746	9751	9754	9896	9910	9994	10005	10006	10013	10020	10023
				10030	10052	10054	10086	10095	10097	10156	10198	10201	10202	10210	10236
				10269	10273	10283	10285	10307	10316	10389	10477	10489	10501	10729	10755
				10758	10829
	VMA			1619 #	3835	3846	3910	3911	3955	3966	3977	3988	4000	4001	4007
				4009	4285	4286	4306	4620	4795	4798	4800	4810	4811	4812	4813
				4816	4828	4941	4943	4946	4948	4954	4954	4982	4983	4985	4986
				5001	5002	5028	5053	5186	5194	5247	5250	5260	5273	5276	7202
				7230	7243	7326	7340	7506	7581	7585	7595	7598	7630	7631	7691
				7693	7716	7716	7720	7762	8000	8022	8024	8044	8050	8118	8119
				8126	8128	8129	8169	8176	8178	8179	8291	8295	8297	8307	8946
				8966	9032	9041	9042	9090	9287	9302	9322	9348	9363	9370	9393
				9674	9844	9845	9992	10117	10319	10388	10449	10559	10632	10760	10775
				10784	10786	10788	10808	10813	10849	10857
	XR			1618 #	3833	3863	3867	3871	3873	3884	3887	3913	4758	7603	7607
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page CRF-17
; 							Cross Reference Listing					

				7611	7613	7622	7625	7632	9816	9818	9821	9823	9839	9841	9846
	#B#			1628 #	3798	3849	4773	4788	4935	5026	5031	5180	5261	5266	5270
				5274	5893	5909	5911	5931	6690	6695	6697	6703	6706	6710	6715
				6719	6723	6724	6725	6730	6731	6732	6734	6735	6761	6763	6765
				6766	6775	6777	6778	6781	6800	6807	6808	6817	6843	6856	6857
				6873	6877	6917	6918	6920	6924	6926	6951	6990	6997	7127	7128
				7134	7135	7183	7184	7196	7197	7198	7245	7252	7330	7332	7343
				7345	7364	7367	7373	7752	7775	7776	7780	7782	7784	7811	7815
				7819	7825	7826	7837	7841	7847	7855	7883	7885	7886	7888	7907
				8988	8990	9002	9024	9048	9070	9085	9115	9192	9193	9223	9232
				9233	9234	9239	9242	9258	9290	9300	9307	9315	9329	9340	9345
				9352	9353	9354	9369	9379	9380	9391	9406	9417	9423	9432	9447
				9457	9469	9474	9478	9482	9496	9502	9510	9514	9516	9526	9533
				9581	9608	9633	9664	9696	9697	9698	9736	9742	9747	9749	9758
				9808	9850	9853	9855	9858	9895	9946	9947	9976	9978	9979	9993
				10007	10017	10019	10028	10033	10051	10075	10094	10143	10152	10190	10204
				10207	10212	10218	10259	10294	10296	10305	10306	10315	10318	10320	10321
				10332	10333	10367	10369	10383	10384	10433	10436	10437	10438	10439	10447
				10472	10474	10479	10488	10490	10491	10624	10741	10743	10805	10806	10858
(U) ISTAT			1915 #
	OPTIONS			1919 #	8407
(U) J				1506 #	3870	3871	3872	3873	3883	3884	3945	3956	3967	3978	3989
				4310	4728	4767	4793	4801	4833	4839	4954	5207	5271	5277	5636
				5637	5638	5640	5653	5654	5655	5657	5757	5759	5760	5766	5768
				5769	5799	5802	5815	5816	5817	5818	6177	6179	6544	6546	6737
				6748	7127	7128	7134	7135	7440	7444	7446	7447	7567	7570	7573
				7574	7575	7576	7579	7586	7610	7611	7612	7613	7621	7622	7704
				7705	7720	7737	7955	7981	8003	8109	8130	8180	8337	8350	8370
				8374	8808	8863	8947	8968	9077	9082	9085	9116	9527	9820	9821
				9822	9823	9839	9851	9854	9856	9859	9912	9947	9951	9960	9962
				9969	9971	9980	10100	10435	10439	10463	10474	10479	10483	10494	10501
				10544	10559	10863
	ACNORM			6920 #	6715
	ACNRM1			6924 #	6918
	ACSETU			8109 #	8163
	ADD			5552 #	5545	5546	5547	5548
	ADJBP			7771 #	7760	7888
	ADJD1			7811 #	7803
	ADJD2			7845 #	7811
	ADJD3			7847 #	7813
	ADJD4			7854 #	7826	7837	7848
	ADJD5			7863 #	7860
	ADJSP			5314 #	5301
	ADJSP1			5323 #	5318
	ADJX1			7825 #	7819
	ADJX2			7823 #	7815
	ADJX3			7817 #	7823
	ADJX4			7830 #	7818
	ADJX5			7835 #	7840	7841
	ADJX6			7836 #	7834
	ADJX7			7840 #	7830
	AND			4331 #	4324	4325	4326	4327
	ANDCA			4341 #	4334	4335	4336	4337
	ANDCB			4396 #	4389	4390	4391	4392
	ANDCM			4360 #	4353	4354	4355	4356
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page CRF-18
; 							Cross Reference Listing					

	AOBJ			4707 #	4702	4703
	AOJ			4683 #	4672	4673	4674	4675	4676	4677	4678	4679
	AOS			4636 #	4625	4626	4627	4628	4629	4630	4631	4632
	APRBI			8405 #	8191
	APRBO			8389 #	8193
	APRCI			8423 #	8196	8197	8198
	APRCO			8420 #	8195
	APRCO7			8428 #	8422
	APRDI			8394 #	8192
	APRDO			8387 #	8194
	ARJMP			4826 #	4812	4819	4828	9674
	ARSWAP			4839 #	4774	4791	8861	9667
	ASH			5440 #	5406
	ASHC			5461 #	5410
	ASHL			5497 #	5441	5462
	ASHL1			5513 #	5498
	ASHL2			5517 #	5526
	ASHL3			5521 #	5523
	ASHL4			5525 #	5522
	ASHL5			5530 #	5533
	ASHR1			5502 #	5505
	ASHR2			5507 #	5502
	ASHX			5538 #	5508	5532
	B2DFPF			9742 #	9565
	B2DPF			9744 #	9588	10379
	B2DPF2			9747 #	9742
	BACKD			9727 #	9569	9573	9577	9600
	BACKS			9724 #	9557
	BD1			10278 #	10263
	BD2			10281 #	10278	10285
	BD3			10283 #	10279
	BD4			10293 #	10282	10298
	BD6			10298 #	10293
	BD7			10305 #	10294	10296
	BD8			10313 #	10311
	BD9			10316 #	10321
	BDD1			10366 #	10336	10399
	BDD2			10376 #	10371
	BDD3			10383 #	10378
	BDD4			10386 #	10383
	BDD5			10388 #	10389
	BDD6			10390 #	10388
	BDD7			10392 #	10384	10393
	BDDR1			10269 #
	BDDR4			10369 #	10275
	BDDV1			10332 #	10316
	BDDV2			10339 #	10334
	BDEC			10259 #	9900
	BDF1			10318 #	10315
	BFETCH			7620 #	7596	10525	10540	10600	10603
	BFIN			7506 #
	BLK1			8308 #	8286
	BLK2			8307 #	8308	8309
	BLK3			8311 #	8307
	BLK4			8300 #	8295
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page CRF-19
; 							Cross Reference Listing					

	BLKIO			8285 #	8260	8262	8271	8273
	BLT			4121 #	4114
	BLT1			8083 #	4122
	BLT2			8100 #	8090
	BLTAC			8107 #	8100
	BLTPF			9710 #	8126	8176	9581
	BLTPF1			9712 #
	BLTPXCT			8154 #	8091
	BLTPX1			8161 #	8154
	BPART2			7628 #	7597
	BRJMP			4769 #	4721	4762
	BXA			7601 #	7632
	BYTEA			7595 #	7430	7501	7598	9144
	BYTEI			7630 #	7602	7604	7606	7608	7624	7626	10539	10598
	BYTEI2			7632 #	7630
	CAIM			4602 #	4582	4583	4584	4585	4586	4587	4588	4589	4591	4592	4593
				4594	4595	4596	4597	4598
	CDBLST			6673 #	7022
	CHALT			4858 #	3849
	CHKAC			9114 #	9100	9105	9110
	CLEAN			9553 #	7693	9232	9534	9713	9719	9725	9733	9754	10098
	CLRFPD			4020 #	7506	8300
	CLRPT			8859 #	8767	8833
	CMPDST			10171 #	10151
	CMPS			10112 #	9896
	CMPS1			10116 #	10114
	CMPS3			10137 #	10164
	CMPS4			10138 #	10117
	CMPS5			10151 #	10143
	CMPS6			10160 #	10157
	CMPS7			10163 #	10160
	CMPSX			10145 #	10137
	CMTR			8929 #	8779
	CMTR1			8937 #	8929
	CNV01			7977 #	7978
	CNV02			7979 #	7977
	CNV2WD			7967 #	7437	7882	9970
	COMPEA			3883 #	3833
	CONO			8289 #	8264	8275
	CONS			8287 #	8266	8267	8277	8278
	CONT			3733 #
	D2BPF			9735 #	9561
	DASMD			5841 #	5829	5830	5831
	DB2WD			9958 #	10184
	DBABT			10225 #	10212	10218
	DBIN			10184 #	9899
	DBIN2			10217 #	10211
	DBIN3			10220 #	10217
	DBINLP			10207 #	10221
	DBLST			4289 #	6657	6673	6963
	DBS1			10197 #	10191
	DBS2			10199 #	10195
	DBS3			10203 #	10201
	DBST			10195 #	10193
	DBXIT			10232 #	10209
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page CRF-20
; 							Cross Reference Listing					

	DDIV			5839 #	5832
	DDIV0			5893 #	5839
	DDIV1			5902 #	5906	5907
	DDIV2			5909 #	5903
	DDIV3			5922 #	5913	5915
	DDIV4			5926 #	5923
	DDIV6			5931 #	5928
	DDVLP			5811 #	5811	5812	5813	5814	5926	10346
	DDVSUB			5813 #	6609	6864	10341	10344	10348
	DDVX1			5937 #	5934
	DDVX2			5939 #	5937	5938
	DEXCHK			9080 #	9044	9060
	DFAS			6477 #	6479
	DFAS1			6498 #	6477
	DFAS2			6500 #
	DFAS3			6515 #	6502
	DFAS4			6521 #
	DFAS5			6522 #	6516	6529	6530
	DFAS6			6525 #	6507
	DFDV			6590 #	6491
	DFDV1			6606 #	6590	6592
	DFLOAT			6471 #	6464	6465	6466	6467
	DFMP			6555 #	6483
	DFMP1			6560 #	6555	6557
	DFMP2			6577 #	6578
	DISM			4765 #	4735	4737
	DIV			5687 #	5680	5681	5682	5683
	DIV+			5783 #	6598	6851
	DIV-			5782 #	6080	6600	6853
	DIV1			5717 #	5689
	DIV2			5724 #	5694	7801
	DIVLP			5780 #	5756	5765	5780	5781	5782	5783	5933
	DIVS1			5747 #	5719	5726	5749
	DIVS2			5750 #	5729	5752
	DIVS3			5755 #	5748
	DIVS4			5764 #	5751
	DIVX			5797 #	5784	5785	5786	5787
	DLOAD			4285 #
	DMOVEM			4301 #	4295
	DMOVE			4282 #	4275
	DMOVNM			4302 #	4296
	DMOVN			4281 #	4276
	DMUL1			5874 #	5876
	DMUL2			5880 #	5875
	DMULT			5862 #	5856
	DMVM1			4306 #	4301	8882
	DNHI			6654 #	6624
	DNNEG			6639 #	6618
	DNNEG1			6644 #	6640
	DNORM			6615 #	6523	6580	6603	6636	6642	6645	6646
	DNSHFT			6633 #	6658
	DNTRY			6580 #	6513	6654
	DNZERO			6657 #	6615
	DODIAG			8451 #
	DPB			7485 #	7389
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page CRF-21
; 							Cross Reference Listing					

	DPB0			7500 #	7486
	DPB01			7503 #	7483	7490
	DPB1			7716 #	7504	9136	10558
	DPB2			7726 #	7718
	DRND1			6661 #	6629
	DROUND			6628 #	6626	6630
	DSTAC			4032 #
	DTEVEC			9014 #	9011
	EBUSI			8354 #	9055	9124
	EBUSO			8355 #	9041	9092	9702
	EBUSW			8332 #	8334
	EBUSX			8329 #	8354	8355
	EDDISP			10635 #
	EDDSNG			10768 #	10776
	EDEX0			10755 #	10665
	EDEX1			10793 #	10790	10796
	EDEX2			10775 #	10756
	EDEXMD			10758 #
	EDEXX			10788 #	10768
	EDFL1			6694 #	6697
	EDFLDS			10721 #	10656
	EDFLOT			6688 #	6681	6682	6683	6684
	EDFLTX			10849 #	10846
	EDFLT			10844 #	10731	10831
	EDFLT1			10857 #	10844	10845	10847
	EDFPUT			10812 #	10818
	EDIT			10613 #	9898
	EDIT1			10628 #	10626
	EDITLP			10630 #	10715
	EDMPUT			10813 #	10743
	EDMSG			10741 #	10637
	EDNOP			10684 #	10638	10639	10640	10649	10686	10736
	EDNXT1			10697 #	10685	10709	10712	10734	10794
	EDNXT2			10708 #	10697
	EDNXT3			10715 #	10701	10705
	EDOPR			10649 #	10636
	EDSEL			10803 #	10654
	EDSEND			10736 #	10721	10812
	EDSF1			10818 #	10808
	EDSFIL			10808 #	10741
	EDSFLT			10829 #	10809	10834
	EDSKPT			10680 #	10642	10644
	EDSKP			10686 #	10645
	EDSPUT			10810 #	10813	10835
	EDSSIG			10729 #	10655
	EDSTOP			10672 #	10653	10811
	EDVCHK			6868 #	6863	6869
	EDVCH1			6872 #	6868
	EDVCH2			6877 #
	EDVCH3			6880 #
	EEOV			7013 #	7006	7010
	EF1			6705 #	6695
	EF10			6777 #	6768
	EF11			6784 #	6776	6782
	EF12			6788 #	6774	6780
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page CRF-22
; 							Cross Reference Listing					

	EF3A			6717 #	6713
	EF3B			6720 #	6718
	EF5			6729 #	6714
	EF5A			6759 #	6727	6735
	EF5B			6737 #	6723	6732
	EFDV0			6843 #	6703
	EFDV1			6862 #	6847	6848
	EFIW			3861 #	3914
	EFMP			6797 #	6700
	EFMP1			6800 #	6797
	EFMPP1			6820 #	6821
	EFMPP2			6823 #	6820
	EFMPP3			6832 #	6828	6829
	EMTR			8928 #	8777
	EMTR1			8936 #	8928
	ENFNL0			7004 #	7014
	ENFNL1			7016 #	7003	7005
	ENHI			6961 #	6935
	ENNEG			6951 #	6933
	ENNEG1			6956 #	6952
	ENORM			6930 #	6786	6838	6859	6925	6949	6954	6957	6959	7024	7255	7335
				7346	7377
	ENSHFT			6945 #	6964
	ENTRY			7024 #	6961
	ENZERO			6963 #	6931
	EQV			4406 #	4399	4400	4401	4402
	ERND1			6966 #	6940
	ERND2			6980 #
	EROUND			6939 #	6937	6942
	EXCH			4119 #	4113
	EXMSK			3848 #	3798
	EXPD			6540 #	6498
	EXPD1			6545 #	6542
	EXPDIF			6746 #	6712	6717
	EXT01			9945 #	9943	9953	10259
	EXT02			9953 #	9944
	EXT2			9850 #	9838	9923	9924
	EXT2WD			9941 #	9895	9993	10613
	EXT3			9858 #	9852	9860
	EXTEND			6296 #	6254
	EXTF1			9807 #	6297
	EXTF2			9813 #
	EXTI			9844 #	9815	9816	9817	9818	9840	9841
	EXTI2			9846 #	9844
	EXTLA			9838 #	9813
	EXTXA			9815 #	9847
	FAD			5977 #	5954	5956	5957
	FADR			5994 #	5959	5961	5962	5978
	FADRI			5992 #	5960
	FAS			6004 #	5995	5998
	FAS1			6010 #	6006
	FAS2			6012 #	6008
	FAS3			6018 #	6012
	FAS5			6021 #	6015	6016
	FDV			5980 #	6056	6058	6059
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page CRF-23
; 							Cross Reference Listing					

	FDVCHK			6173 #	6078	6174	6608
	FDVCK1			6176 #	6173	6881
	FDVNEG			6102 #	6089	6103
	FDVR			6074 #	5980	6061	6063	6064
	FDVRI			6073 #	6062
	FINI			4026 #	4017	4020	4021	4042	4573	4720	4848	5032	5888	10241
	FIX			6283 #	6253
	FIX1			6307 #	6280	6284
	FIX2			6317 #	6315
	FIXR			6279 #	6256
	FLGTST			9910 #	9894	9902
	FLTR			6262 #	6257
	FMP			5979 #	6027	6029	6030
	FMPR			6045 #	5979	6032	6034	6035
	FMPRI			6044 #	6033
	FPNO			5981 #	5955	5965	6028	6057
	FSB			5978 #	5964	5966	5967
	FSBR			5997 #	5969	5971	5972
	FSBRI			5993 #	5970
	FSC			6237 #	6219
	GADJ1			7890 #	7862
	GADJ2			7902 #	7892
	GADJ3			7906 #	7908
	GADJ4			7909 #	7907
	GADJBP			7881 #	7876
	GADJLD			7892 #	7897	7898	7899	7900
	GADJL0			7896 #	7894
	GBYTE			7437 #	7414	7421	7481	7488	7878
	GETEEB			8373 #	4896	8387	8394	8421	8424	8755	8784	8814	8818	8869	8885
				8888	8897	8900	8909
	GETEXP			7926 #	7921
	GETSC			7921 #	7753	7854	7886	10305	10742
	GETSRC			10502 #
	GIBP			7876 #	6246
	GSRC			10501 #	10077	10434
	GSRC1			10516 #	10141	10804
	GSRC2			10524 #	10517	10526
	GSRC3			10526 #	10531
	GSRC4			10539 #	10528
	GSRC5			10533 #	10530
	GSRC6			10536 #	10533
	GTAR08			9076 #	4048	9139
	GTCST			9427 #
	GTDBR			4309 #	4286	4302
	GTEBUS			8321 #	8291
	GTEEB1			8374 #	5280
	GTST			7443 #	7411	7418	7478	7485	9968
	GTST1			7446 #	7443
	HALT1			4865 #	4870
	HALT2			4869 #	4866
	HLL			4223 #	4128	4176
	HLLE			4264 #	4162	4163	4164	4165
	HLLO			4268 #	4152	4153	4154	4155
	HLLZ			4267 #	4142	4143	4144	4145
	HLR			4229 #	4179	4180
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page CRF-24
; 							Cross Reference Listing					

	HLRE			4257 #	4209	4210	4211	4212
	HLRM			4236 #	4181
	HLRO			4261 #	4199	4200	4201	4202
	HLRS			4237 #	4182
	HLRZ			4260 #	4189	4190	4191	4192
	HRL			4226 #	4137	4138
	HRLE			4250 #	4167	4168	4169	4170
	HRLM			4232 #	4139
	HRLO			4254 #	4157	4158	4159	4160
	HRLS			4233 #	4140
	HRLZ			4253 #	4147	4148	4149	4150
	HRR			4221 #	4134	4174	4175
	HRRE			4243 #	4204	4205	4206	4207
	HRRO			4247 #	4194	4195	4196	4197
	HRRZ			4246 #	4184	4185	4186	4187
	IBP			6225 #	6220
	IBP0			6243 #	6225
	IBP1			7752 #	6244	6247
	IBP2			7757 #
	IBP3			6246 #	6243
	IBPS			7567 #	7427	7494	7758	9143
	IDIV			5691 #	5675	5676	5677	5678
	IDIV1			5692 #	5713
	IDIV2			5710 #	5691
	IDPB			7478 #	7388
	IDPB0			7493 #	7479
	IDST			10563 #	10172	10555
	IDST2B			10602 #	10581
	IDST2			10581 #	10564	10587
	IDST3			10587 #	10582
	IDST4			10595 #	10583
	IDST5			10589 #	10585
	IDST6			10592 #	10589
	IDST7			10598 #	10595
	IDST8			10599 #	10596
	IFNOP			4006 #	6081	6307	6610	6865	8383	8752	8846	8852
	IFSTAC			4008 #	4949	7775
	IHALT			4855 #	4725
	ILDB			7411 #	7386
	ILDB0			7426 #	7412
	ILLIND			3916 #	3875	3876	3877	3878	9825	9826	9827	9828
	IMUL			5587 #	5570	5572	5573
	IMUL2			5597 #	5598
	IMULI			5578 #	5571
	INC01			7989 #	7985	7986
	INC02			8003 #	7987	7988	8004
	INC2WD			7985 #	7439
	INDR1			3913 #	3910
	INDRCT			3910 #	3862	3864	3866	3868	3886	3888
	INTRPT			3804 #
	IO			8291 #	8261	8263	8265	8272	8274	8276	8311	8312
	IOCHK			8364 #	8285	8380	8389	8408	8450	8751
	IOFET			8303 #	8297
	IOPGF			9696 #	9653
	IOR			4386 #	4379	4380	4381	4382
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page CRF-25
; 							Cross Reference Listing					

	IOTEND			8295 #	8479	8827
	ISOEXP			7127 #	6694	6698	6702	6705	6805	6872	7207	7350
	JFCL			4842 #	4714
	JFFO			5424 #	5409
	JFFO1			5430 #	5431
	JFFO2			5435 #	5436
	JRA			5039 #	5012
	JRA1			4939 #	5049	5050
	JRAB			5050 #	5048
	JRST			4720 #	4713
	JRST2			4723 #
	JRSTF			4757 #	4723	4770
	JSA			5037 #	5011
	JSA1			5053 #	5037
	JSP			5022 #	5010
	JSP1			5031 #	5022
	JSR			5024 #	5009
	JSR1			5028 #	5026
	JSTAC			4941 #	4936	4943
	JUMP			4668 #	4657	4658	4659	4660	4661	4662	4663	4664
	KEEPCL			8849 #	8839	8851
	KEEPME			8835 #	8769
	KMOVED			9417 #	9411
	L-BDEC			5200 #	5079	5080
	L-CMS			5167 #	5068	5069	5070	5073	5074	5075
	L-DBIN			5198 #	5077	5078
	L-DFLT			7338 #	7197
	L-DFSC			7349 #	7198
	L-DITE			7171 #	5096
	L-EDBL			7242 #	7184
	L-EDIT			5169 #	5072
	L-EFSC			7175 #	5098
	L-FLTR			7324 #	7196
	L-FSC2			7364 #	7370	7371
	L-FSC3			7373 #	7366	7369
	L-GTDI			7163 #	5092
	L-GTDR			7167 #	5094
	L-GTPI			7158 #	5089
	L-GTSI			7165 #	5093
	L-GTSP			7201 #	7183
	L-GTSR			7169 #	5095
	L-GTS1			7213 #	7211
	L-GTS6			7217 #	7215
	L-GTS7			7237 #	7234
	L-MVS			5202 #	5082	5083	5084	5085
	L-SFTE			7161 #	5091
	L-SITE			7173 #	5097
	L-XBLT			7156 #	5088
	LDB			7418 #	7387
	LDB0			7429 #	7419
	LDB01			7431 #	7416	7423
	LDB1			7691 #	7431	9128	10174	10518
	LDB2			7696 #	7692
	LDBRL			4310 #
	LDIMM			9382 #	9393
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page CRF-26
; 							Cross Reference Listing					

	LDIND			9315 #	9293	9316	9387
	LDIND1			9321 #	9315
	LDPCS			4830 #	4824
	LDPT			9399 #	9384
	LDPT1			9411 #	9402	9413
	LDSHR			9391 #	9385
	LSH			5421 #	5408
	LSH1			5480 #
	LSH2			5482 #	5485
	LSH3			5487 #	5483	5489
	LSHC			5479 #	5412
	LUUO			5177 #	5109	5110	5111	5112	5113	5114	5167	5198	5200	5202	7156
				7158	7161	7163	7165	7167	7169	7171	7173	7175
	LUUO1			5179 #	5177
	LUUO2			5191 #	5181
	LUUO3			5194 #	5192
	MAP			4889 #	4883
	MAP2			4901 #	9608
	MBREL			8383 #	8390
	MEMNRM			6917 #	6719
	MOVE			4089 #	4053	4054	4060	4083	4091	4135	4177	4344	4350	4351	4365
				4366
	MOVELP			10019 #	10024
	MOVEM			4118 #	4058
	MOVF1			10094 #	10041	10087	10101
	MOVF2			10097 #	10095	10320
	MOVF3			10100 #	10097
	MOVM			4083 #	4072	4073	4074	4075
	MOVN			4086 #	4067	4068	4069	4070
	MOVNEG			4091 #	4086
	MOVPUT			10022 #
	MOVRJ			10040 #	10013
	MOVS			4080 #	4062	4063	4064	4065	4232	4236
	MOVS2			10016 #	10010
	MOVSTX			10078 #	10020
	MOVST1			10075 #	10012	10042	10081
	MOVST2			10085 #	10078
	MTRCI			8899 #	8254	8255	8256
	MTRCO			8896 #	8253
	MTRCO1			8903 #	8898
	MTRDBL			8953 #	8880	8943
	MTRINT			3801 #	3911	4867	5193	5208	5333	7631	9845
	MTRREQ			8916 #	3801
	MTRRQ0			8923 #	8919
	MTRRQ1			8941 #	8934	8935	8936	8937
	MUL			5609 #	5602	5603	5604	5605
	MUL1			5614 #	5615
	MULM			5651 #	5646	5648	5664	5665
	MULP			5634 #	5632	5642	5644	5660	5662	5670	5862	6824
	MULREE			5670 #	5871	6562	6577	6813	7856
	MULSUB			5631 #	5589	5611	6049
	MUUO			5243 #	5118	5119	5120	5121	5122	5123	5124	5125	5126	5127	5128
				5129	5130	5131	5132	5133	5134	5135	5136	5137	5138	5139	5140
				5141	5142	5143	5144	5145	5146	5147	5148	5149	7186	7187	7188
				7189
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page CRF-27
; 							Cross Reference Listing					

	MUUOF			5280 #	5253	5281	5282	5283
	MVABT			10028 #	10023
	MVABT1			10030 #	10031
	MVABT2			10033 #	10030
	MVEND			10035 #	10086
	MVSK1			10049 #	10046
	MVSK3			10054 #	10051
	MVSK4			10081 #	10052
	MVSKP			10045 #	10040	10047	10049
	MVSO3			10015 #	10011
	MVST			9992 #	9903
	MVST2			10007 #	10005
	NEXT			3787 #	4004	4026
	NO.CST			9365 #	9332
	NOCST0			9368 #	9363
	NOCST1			9370 #	9368
	NODIVD			5702 #	5927	7781
	NOP			4017 #	4007	4602	4668	4769	4798	4822	4826	5028	5261	5426	5456
				5513	5702	7149	7150	7212	7216	7432	7762	7879	7911	8038	8128
				8178	8296	8298	8303	9043	10145	10312
	NOP2			4021 #
	NOT.WR			9481 #	9475
	NOTWR			9457 #	9432	9478
	NOUPDT			9472 #	9419
	NXTW2			7585 #	7583
	NXTWRD			7578 #	7569	7572
	OPDISP			10652 #	10650
	ORCA			4427 #	4420	4421	4422	4423
	ORCB			4457 #	4450	4451	4452	4453
	ORCM			4447 #	4440	4441	4442	4443
	OVTEST			7146 #
	OVTST1			7144 #
	OVTST2			7150 #	7146	7148
	PAGBI			8791 #	8213
	PAGBO			8750 #	8215
	PAGCI			8817 #	8218	8219	8220
	PAGCO			8813 #	8217
	PAGD2			8777 #	8766
	PAGDI			8783 #	8214
	PAGDO			8754 #	8216
	PCA			4828 #	4741	5187
	PCTXT			8800 #	5255	8789
	PF1			9192 #	9189
	PF2			9201 #	9199
	PF24			3875 #	7615	7616	7617	7618
	PF4			9232 #	9210	9226
	PFPAR			9220 #	9203	9208
	PFPAR1			9222 #	9220
	PFPAR2			9223 #	3919
	PFT			9533 #	9290	9307	9345	9353	9369	9380	9406	9457
	PGF1			9628 #	9553
	PGF2			9633 #	9628
	PGF4			9650 #	9633
	PGFAC0			9713 #	8027	9756	10716
	PGRF1			9242 #	9258
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page CRF-28
; 							Cross Reference Listing					

	PGRF2			9276 #	9243
	PGRF3			9282 #	9277	9279
	PGRF5			9329 #	9292
	PGRF6			9348 #	9344
	PGRST1			9509 #	9502	9511
	PGRST2			9513 #	9510
	PGRST3			9526 #	9514
	PHYS0			9089 #	9002
	PHYS1			9100 #	9048
	PHYS2			9105 #	9024
	PHYS3			9110 #	9070
	PIBI			8447 #	8202
	PIBO			8449 #	8204
	PIBPA			9139 #	9123	9133
	PIBYTE			9123 #	8998
	PICI			8472 #	8207	8208	8209
	PICO			8468 #	8206
	PICOM1			8482 #	8469	8472
	PICOM2			8479 #	8470
	PICYC1			8987 #	3802	3804
	PICYC2			9005 #	3788
	PIDATI			9055 #	8997
	PIDATO			9039 #	8996
	PIDI			8435 #	8203
	PIDISP			8992 #
	PIDO			8434 #	8205
	PIDONE			9042 #	9033	9034	9062	9065	9066	9072	9094	9111	9112	9137	9703
	PIDPB			9132 #	9125
	PIFET			9043 #	8304	8921
	PIIBP			9142 #	9127	9134
	PIINCR			9032 #	8995
	PIINST			9009 #	8932	8992	8993	9005
	PILD			9018 #	9039	9080	9083	9142
	PIOUT			9041 #	9050	9101	9102	9129
	PIST			9065 #	9058
	PIVECT			9007 #	8994
	PMTR1			8935 #	8927
	POP			4977 #	4913
	POP2			4999 #	4977
	POP3			5003 #	5001
	POPJ			4979 #	4914
	POPJ2			4989 #	4996
	POPJ3			4990 #	4997
	POPJ4			4991 #	4989
	POPJT			4996 #	4984
	PSTOR			9070 #	9061
	PTLOOP			8843 #	8835	8845
	PUSH			4931 #	4912
	PUSHJ			4933 #	4911
	PUTDST			10555 #	10022	10079	10094	10392	10810	10861
	PXCT			5335 #	5332
	RDEBRG			4895 #	8447
	RDEMTR			8962 #	8954	8956
	RDEX			9074 #	9040	9059
	RDMTR			8868 #	8237	8238	8249	8250
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page CRF-29
; 							Cross Reference Listing					

	RDMTR1			8879 #	8873	8874	8875	8876
	RDMTR2			8966 #	8963
	RDUMTR			8964 #	8958	8960
	RELEB			8336 #	8333
	RELEEB			8292 #	8388	8395	8427	8428	8759	8792	8893	8903
	RELMEM			7737 #
	RESETP			10544 #	10537	10593
	RET1			8370 #	10319
	RET2			9969 #	9992
	ROT			5442 #	5407
	ROT3			5466 #	5469
	ROT4			5471 #	5467	5474
	ROTC			5463 #	5411
	ROTS			5207 #	3790	9651
	RSTF			4762 #
	RSTF0			4760 #	4757
	SDIV			7948 #	7948	7949
	SDIV-			7949 #	7946
	SDIVR			7953 #	7950
	SECIMM			9292 #	9322
	SECPTR			9287 #	9282	9306
	SERFIX			8416 #	8412
	SEROK			8411 #	8416
	SETCA			4416 #	4409	4410	4411	4412
	SETCM			4437 #	4430	4431	4432	4433
	SETEBR			8832 #	8815
	SETFLG			10863 #	10284	10860
	SETO			4467 #	4460	4461	4462	4463
	SETPC			5261 #	3730
	SETZ			4321 #	4314	4315	4316	4317
	SFET1			10676 #	10088	10674
	SGNEXT			7134 #	6759	6762	6809	6816	6844	6880	7237	7376
	SHFLOD			4003 #
	SHIFT			7704 #	4844	5518	5887	6788	6834	7696	7926	7931	7971	7992	8832
				9014
	SHR1			5449 #	5422	5453
	SHR2			5454 #	5450	5455
	SIXDIV			7946 #	7774	7779
	SKIP			4620 #	4609	4610	4611	4612	4613	4614	4615	4616	4636	4651
	SN1			6379 #	6372	6385
	SNORM			6342 #	6022	6050	6091	6102	6263	6344	6346	6377	6395	7240
	SNR2			6345 #	6239
	SNZERO			6392 #	6343
	SOJ			4698 #	4687	4688	4689	4690	4691	4692	4693	4694
	SOS			4651 #	4640	4641	4642	4643	4644	4645	4646	4647
	SRCMOD			10433 #	10019	10208	10488	10490	10491
	SRND2			6428 #	6408
	SRND3			6431 #
	SRND4			6432 #	6427
	SRND5			6442 #	6393
	SROUND			6408 #	6347	6349	6351	6353	6380	6382	6383
	ST0			3997 #	4080	4089	4221	4223	4226	4229	4233	4237	4246	4247	4253
				4254	4260	4261	4267	4268	4321	4331	4341	4360	4376	4386	4396
				4406	4416	4427	4437	4447	4457	4467	5552	5565	5614	5705	5707
				5712
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page CRF-30
; 							Cross Reference Listing					

	ST2AC			3999 #	4000	5540	5851	5853	5941	5943	7354
	ST6			4005 #	4898	5597	6442	6446
	STAC			4004 #	4016	4101	4102	4574	4575	4576	4991	5031	5054	5320	6318
				7864	10035
	STAC1			4042 #	6456
	STAC4			10241 #
	START			3730 #	4876
	STBOTH			4009 #
	STCST			9447 #	9439
	STD1			4033 #	3999	4289	6671	7020
	STDAC			5475 #	4285
	STMAC			4946 #	4119	4931	5003	5324	5326
	STMEM			4007 #	4307	8414	8455
	STOR34			10236 #	10227	10233
	STORAC			4016 #	4009	4683	4699	4707	4904	4942	5538	6316	7204	10676
	STR2WD			9976 #	9942	9946	9959
	STRAC1			6456 #	5437	5475	5490	8033	10374
	STRAC3			5888 #
	STRNC			6427 #	6412
	STRPF			9749 #	9592	9596
	STRPF1			9751 #	9758
	STRPF2			9756 #	9740	9751	10055
	STRPF3			9754 #	9747
	STRPF4			9758 #	9604	9618
	STSELF			4015 #	4002	4621	4947
	SUB			5564 #	5557	5558	5559	5560
	SWEEP			8379 #	8224	8225	8226	8227	8228	8229	8230	8231
	TAKINT			3911 #	4905	8345	9632
	TDC			4575 #
	TDN			4573 #	4363	4364	4472	4473	4481	4482	4564	4567
	TDO			4576 #
	TDX			4563 #	4476	4485	4490	4494	4499	4503	4508	4512	4517	4521	4526
				4530	4535	4539
	TDXX			4571 #	4474	4478	4483	4487	4492	4496	4501	4505	4510	4514	4519
				4523	4528	4532	4537	4541
	TDZ			4574 #
	TIMBO			8908 #	8239
	TIMBO1			8892 #	8912
	TIMCI			8887 #	8242	8243	8244
	TIMCO			8885 #	8241
	TIMCO1			8759 #	8886
	TIMDO			8906 #	8240
	TMTR1			8934 #	8926
	TRAP			3834 #
	TRAPX			3840 #	3834	3836
	TRNABT			10463 #	10467
	TRNAR			10449 #	10806
	TRNFNC			10461 #	10451	10453	10464	10465	10466	10469
	TRNNS1			10487 #	10477
	TRNNS2			10489 #	10487
	TRNRET			10472 #	10462
	TRNSIG			10466 #	10468
	TRNSS			10477 #	10473
	TRNSS1			10493 #	10478
	TST2WD			9968 #	9941	9945	9958
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page CRF-31
; 							Cross Reference Listing					

	TSX			4566 #	4477	4486	4491	4495	4500	4504	4509	4513	4518	4522	4527
				4531	4536	4540
	TSXX			4569 #	4475	4479	4484	4488	4493	4497	4502	4506	4511	4515	4520
				4524	4529	4533	4538	4542
	UNHALT			4875 #	4869
	UP			8113 #	8102
	UP1			8119 #	8113	8121
	UP1PX			8169 #	8155	8171
	UP2			8123 #	8118	8119	8120
	UP2PX			8173 #	8169	8170
	UP3			8125 #
	UP3PX			8175 #
	UP4			8128 #	8125
	UP4PX			8178 #	8175
	UPPX			8155 #
	UUO			5242 #	4724	4736	4738	4746	4747	4760	4765	4787	4855	4901	5067
				5153	5154	5300	5413	5950	5951	5981	7980	8251	8252	8321	8364
				8373	8435	8482	8791	8906	9807	9811	9913	10769	10778
	UUO107			4854 #
	UUOC1			5266 #	5264
	UUOC2			5273 #	5185	5249
	UUOCOM			5264 #	5179	5244
	UVERS			4048 #	8411
	UXCT			5336 #	4875
	WGRANT			8344 #	8322	8348	8483
	WGRNT1			8347 #	8344
	WGRNT2			8349 #	8347
	WRFAIL			9478 #	9481
	WRHPT			9482 #	9469	9476
	WXFER			8334 #	8330
	XBLT			8012 #	7178
	XBLT3			8016 #	8014
	XBLT4			8038 #	8016
	XBLTDN			8022 #	8030
	XBLTD1			8029 #	8026
	XBLTPF			9718 #	8053	9613
	XBLTUP			8044 #	8052
	XBLTU1			8050 #	8040
	XBLTX			8033 #	8046
	XCT			4887 #	4882
	XCT1			5332 #	4887
	XCTGO			3832 #	3835	3846	5336
	XCTW			3846 #	3733	5194	9009	9010	9012	9015
	XFERW			4954 #	4939	5184	5843	5910	6473	6689	7328	7929	8804	8822	8967
				9018	9019	9106	9107	10858
	XHLLI			4106 #	4130
	XJRSTF1			4800 #	4727
	XJRSTF2			4821 #	4815	4818
	XJRSTF3			4824 #	4821
	XLATE			10447 #	10437
	XMOVEI			4099 #	4346
	XMOVEI1			4101 #	4107
	XOR			4376 #	4369	4370	4371	4372
	XPCW1			4787 #	4729
	XPCW2			4810 #	4796
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page CRF-32
; 							Cross Reference Listing					

	XSFM1			4773 #	4740
	XSFM2			4798 #	4776
(D) J				2231 #
(U) KLPAGE			1887 #
	OPTIONS			1889 #	8407
(U) LONGPC			1894 #
	OPTIONS			1896 #	8407
(U) MACRO%
	A INDRCT		2258 #	3861	3863	3865	3867	3885	3887
	A READ			2259 #	3870	3871	3872	3873	3883	3884
	ABORT INSTR		2264 #	8941	9654
	AC0			2265 #	4981	4999	5315
	AC0_AR			2266 #	3999	4004	4032	4289	5032	5456	5475	5490	5874	6506	6518
				6670	6726	6760	7018	7150	7432	7801	7854	7911	8029	8031	8045
				8047	8109	9713	9744	9753	10160	10226	10345	10347	10374
	AC1_AR			2267 #	4042	5426	5881	5928	5929	6526	6597	6599	6727	6733	6850
				6852	7836	7931	9718	9745	9953	9961
	AC2_AR			2268 #	5885	5939	8033	9719	9944	9962
	AC3_AR			2269 #	5868	5888	5941	5942	9735	9751	9754	10030	10054	10086	10156
				10201	10202	10236	10273	10285	10316
	AC4			2271 #	9740	9945	9951	10191	10241
	AC4_AR			2275 #	9740	9951	10241
	AC5			2277 #	9949
	AC5_AR			2281 #	9949
	AD FLAGS		2282 #	4091	4287	4303	4636	4651	4683	4699	5552	5565	5851	5853
	AD LONG			2283 #	5942	6318	10278
	ADMSK			2284 #	3798	4773	4788	4935	5026	5031	5180	5261	5266	5270	5274
				8990	9002	9024	9048	9070	9085	9115	9664	9978	9979
	AR+ARX+MQ_0.M		2514 #	6392	7354	7771	10076	10433
	AR+MQ_0.M		2515 #	10210
	AR+MQ_0.S		2516 #	6939
	AR0-3 DISP		2518 #	9039	9058	9289	9378	10450
	AR0-8_#			2519 #	4048	5281	5282	5283	6747	6801	6855	6991	7209	7211	7217
				7250	7331	7344	8766	8778	8860	9413	10003	10186	10308
	AR0-8_# AND AR0-8	2520 #
	AR0-8_# OR AR0-8	2521 #	9481
	AR0-8_#+SC		2522 #	9809
	AR0-8_-SC-1		2523 #
	AR0-8_FE		2524 #	8414	9235	10008	10193
	AR0-8_FE OR #		2525 #	10194
	AR0-8_FE OR SC		2526 #	9257
	AR0-8_FE#		2527 #	10191
	AR0-8_FE+#		2528 #	9011	9075	9139
	AR0-8_FE+1		2529 #
	AR0-8_FE+SC		2530 #
	AR0-8_FE-SC		2531 #
	AR0-8_FE.M		2532 #	10313
	AR0-8_FE.R		2533 #
	AR0-8_SC		2534 #	7921	7923	7969	9236
	AR0-8_SCAD		2535 #	7921	7923	7969	8414	9235	9236	10008	10193
	AR0-8_SCAD#		2536 #	9011	9075	9139	9481	9809	10194
	AR0-8_SCAD.M		2537 #	9257	10313
	AR0-8_SCAD.R		2538 #
	AR12-17_PC SEC		2539 #	5045	5050
	AR12-17_PREV SEC	2540 #	4774	4791	5268	8801	9667
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page CRF-33
; 							Cross Reference Listing					

	AR18-21 DISP		2541 #	10452
	ARL+ARX+MQ_0.M		2565 #
	ARL+ARX_0.M		2566 #	7813	7846	8879	8942
	ARL_0S			2546 #	4246	4260
	ARL_0.C			2543 #	8307
	ARL_0.M			2544 #	5048	5049	9292	9293	9294	9385	9386	9401	9852	10390	10393
				10625	10703	10729	10758	10829
	ARL_0.S			2545 #	4982	4985	8903
	ARL_1S			2548 #	4247	4261	9860
	ARL_1S.M		2549 #
	ARL_1.M			2547 #	4101	5264
	ARL_AC0			2550 #	4221	4229	4236
	ARL_ARL			2551 #	4122	4223	4237	4267	4268	5271	7834	8427	8478
	ARL_ARL.M		2552 #	8754
	ARL_ARL.S		2553 #	4107
	ARL_ARR			2554 #	4226	4232	4233	4253	4254	5314	8107	8161	8289	8413	9712
	ARL_ARR.M		2555 #	8420	8468	8813	8896
	ARL_ARR.S		2556 #
	ARL_ARX (ADX)		2557 #	9237
	ARL_ARXL		2558 #	4775	5054	8893	9668
	ARL_ARXL.M		2559 #
	ARL_BRL			2560 #	4792	7584	8792
	ARL_BRL.M		2561 #	8089
	ARL_BRL.S		2562 #	5257
	ARL_SHIFT		2563 #	9382
	ARL_SIGN		2564 #	5319
	ARR+MQ_0.S		2582 #
	ARR_0S			2571 #	4253	4267
	ARR_0.C			2568 #
	ARR_0.M			2569 #	8826
	ARR_0.S			2570 #	5432
	ARR_1S			2572 #	4254	4268
	ARR_AC0			2573 #	4122	4223	4226	4232
	ARR_AC0.S		2574 #	4107
	ARR_AR+1		2575 #
	ARR_AR+BR		2576 #
	ARR_ARL			2577 #	4229	4236	4237	4260	4261	5048	5049	8089	8754	9237	9242
	ARR_ARR			2578 #	4101	4221	4233	4246	4247	4775	4792	5314	5319	8289	8420
				8468	8813	8896	9668
	ARR_ARX+BR		2579 #
	ARR_BR			2580 #	8413
	ARR_PC+1		2581 #	5054
	ARX+MQ_0.M		2678 #	5427	5687	5692	6237	7786	10260
	ARX+MQ_0.S		2679 #	6074
	ARX0-3 DISP		2682 #	8942
	ARX0_AR35		2680 #
	ARX0_MQ35		2681 #	10137
	ARX_-AC0		2587 #
	ARX_-BRX		2588 #	7802
	ARX_-SLEN		2589 #	9736
	ARX_-2+MQ0		2586 #
	ARX_0S			2593 #	4843	5525	5631	5855	5909	5995	5997	6045	6103	6526	6560
				6657	6812	6963	7776	7825	7836	8813	8824	8859	10142	10190	10195
				10372
	ARX_0.C			2590 #
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page CRF-34
; 							Cross Reference Listing					

	ARX_0.M			2591 #	5421	6343	7253	7903	10386
	ARX_0.S			2592 #
	ARX_1B1			2595 #	6280
	ARX_1B17-1		2596 #	5254	8788
	ARX_1S			2597 #	3789	6411	6832	10010	10201	10614
	ARX_1			2594 #	5314	6663	7017
	ARX_2			2598 #	6966
	ARX_AC0			2600 #	5442	10271	10615
	ARX_AC0 COMP		2601 #
	ARX_AC0+1		2602 #	4931	4936
	ARX_AC1			2603 #	4301	4302	5463	5479	5897	6527	7360
	ARX_AC2			2604 #	7178
	ARX_AC3			2605 #	5839	5883	10389
	ARX_AC4			2606 #	10191
	ARX_AR			2608 #	4119	4121	4866	5497	5499	5503	5517	5704	5706	5717	5845
				6013	6016	6262	6297	6498	6500	6503	6606	6766	6768	6770	6784
				6862	6922	6987	7002	7004	7206	7244	7341	7355	7419	7429	7486
				7500	7581	7697	7926	7946	7954	7970	7977	8083	8476	8777	8779
				8807	8908	9014	9056	9076	9125	9144	9411	9650	9652	9752	10004
				10007	10040	10078	10112	10138	10156	10158	10210	10269	10335	10377	10450
				10524	10529	10540	10584	10599	10602	10631	10703	10729	10736	10829
	ARX_AR (AD)		2609 #	5336	5451	5466	5468	5473	5484	7930	8754	9192	9193	9236
				9418	10536	10592
	ARX_AR ANDCA BR		2611 #	9977
	ARX_AR AND ADMSK	2610 #	9085
	ARX_AR SIGN		2612 #	6284
	ARX_AR SWAP		2613 #	4814	4817	5037	5270	8426	8474	8821	8890	8923	9242	9427
				9472	10390	10452
	ARX_AR*2		2614 #
	ARX_AR*4 COMP		2615 #	10306
	ARX_AR*MSK		2616 #	10472
	ARX_AR+1		2617 #	10311
	ARX_AR+CBR		2619 #
	ARX_AR-1		2621 #	4999	10116	10160	10161
	ARX_AR-BR		2622 #
	ARX_ARX AND ADMSK	2624 #	9115
	ARX_ARX ANDC ADMSK	2625 #	4773
	ARX_ARX*-6		2626 #	5433
	ARX_ARX*.25		2627 #	6090
	ARX_ARX*.5		2628 #
	ARX_ARX*2		2629 #	4309	5844	6308	6474	6690	7233	7235	7329	7373	8968	10197
				10643
	ARX_ARX*2 COMP		2630 #	9383
	ARX_ARX*4		2631 #	6967	10641
	ARX_ARX*4 COMP		2632 #
	ARX_ARX*8		2633 #	5893	8800	8801
	ARX_ARX*BRX		2634 #	6433	6672	7021
	ARX_ARX*EXPMSK		2635 #
	ARX_ARX+1		2636 #	5436	8129	8179
	ARX_ARX+CBR		2638 #
	ARX_ARX+FM[]		2640 #
	ARX_ARX-1		2641 #	5431	7823	8017	8029
	ARX_ARX-1 (AD)		2642 #	10045
	ARX_ARX-AR*4		2643 #
	ARX_BR			2645 #	5507	5902	9303
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page CRF-35
; 							Cross Reference Listing					

	ARX_BR*2		2646 #	5898
	ARX_BR+1		2647 #	8045
	ARX_BRX			2648 #	4842	5177	5243	5521	5539	6512	6541	6670	7019	9057	9950
				10155
	ARX_BRX COMP		2649 #	6641	6644	6953	6956
	ARX_BRX+1		2650 #	8047	10012	10042	10081
	ARX_DSTP		2651 #	10171	10555
	ARX_DSTP2		2652 #	10583	10777
	ARX_E1			2653 #
	ARX_FILL		2654 #	9946	9947
	ARX_FM			2655 #	7907	9379	9502	9510	9514	9516	9581	9946	9947	10140	10171
				10332	10502	10528	10555	10583	10777	10803
	ARX_FM(VMA)		2657 #	3835
	ARX_FM[]		2656 #
	ARX_MEM			2658 #	3846	3910	3911	4285	4286	4954	4983	4986	5247	7230	7630
				7631	7716	9844	9845
	ARX_MQ-1		2659 #
	ARX_PC			2661 #	9238	9663
	ARX_PC+1		2662 #	4729	4740	5273
	ARX_SHIFT		2663 #	5207	5471	5487	5502	5533	5724	5727	5882	5886	5894	5900
				5911	6015	6311	6317	6375	6772	6779	6989	7696	7732	7735	7989
				8825	8953	8955	8957	8959	9114	9292	9302	9386	10262
	ARX_SRCP		2664 #	10140	10502	10803
	ARX_SRCP2		2665 #	10528
	ARX_SV.AR		2667 #	9510
	ARX_SV.ARX		2668 #	9514	9516	9581
	ARX_SV.BR		2669 #	9502
	ARX_SV.VMA		2670 #	9379
	ARX_T0			2672 #	7907
	ARX_T2			2673 #	10332
	ARX_VMA HELD		2677 #	9238
	AR_(AR+2BR)*.25		2290 #	5661	6021
	AR_(AR+BR)*.25		2291 #	5643	5659
	AR_(AR-2BR)*.25		2292 #	5645
	AR_(AR-BR)*.25		2293 #	5647	5663
	AR_(ARX OR AR*4)*.25	2294 #
	AR_-AC0			2295 #
	AR_-AR			2296 #	5998	6446
	AR_-AR LONG		2297 #	5749	5752	6174	6479	6673	6696	6869	10279
	AR_-BR			2298 #	4091	5759	5769	5942	6646	6717	6958	10275	10342
	AR_-BR LONG		2299 #	4287	4303	5904	5907	5938	10234
	AR_-BR*2 LONG		2300 #
	AR_-BRX			2301 #	5704
	AR_-DLEN		2302 #
	AR_-SLEN		2303 #	9749	10028
	AR_0.C			2304 #	4740	6832
	AR_0.M			2305 #	5484	10050	10311
	AR_0.S			2306 #	4790	5267	9666
	AR_0S			2307 #	4253	4267	4289	4306	4321	4858	4895	5252	5441	5631	5855
				6316	6408	6560	6657	6703	6800	6812	6963	7696	7697	7753	7776
				7854	7886	7931	7946	8750	8765	8807	8817	8821	8859	8862	8870
				8887	8890	8899	8908	8923	8946	8953	8955	8957	8959	9007	9014
				9076	9082	9234	9250	9672	9735	10007	10078	10190	10195	10372	10377
				10742
	AR_1			2308 #	5691	9428	10199
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page CRF-36
; 							Cross Reference Listing					

	AR_1 LONG		2309 #	10281
	AR_1S			2310 #	4254	4268	4467	10015	10202	10305
	AR_2			2311 #	10857
	AR_2(AR*BR)		2312 #	5747	5750	5755	5764	5780	5781	5782	5783	5811	5812	5813
				5814	5922	5924	7948	7949	10221
	AR_2(AR+1)		2313 #	5435
	AR_2(AR+BR)		2314 #	5750	5755	5780	5783	5811	5814	5924	7948
	AR_2(AR+BR) LONG	2315 #	10221
	AR_2(AR-BR)		2316 #	5747	5764	5781	5782	5812	5813	5922	7949
	AR_AC0			2318 #	3944	4119	4122	4223	4226	4232	4668	4698	4977	4979	5037
				5047	5421	5424	5442	5464	5480	5497	5499	5564	5587	5610	5693
				5711	5717	5845	5869	5900	6004	6047	6077	6238	6498	6521	6529
				6530	6570	6606	6705	6722	6759	6784	6804	6815	6862	6922	7349
				7374	7503	7861	7863	8014	8084	9894	9902	9995	10112	10262	10335
	AR_AC0 COMP		2319 #	10185
	AR_AC0+1		2320 #	4683	4707	8026	8027
	AR_AC1			2321 #	5934	5935	6555	6556	6602	6776	6782	6783	6811	6858	7818
				8012	9941	9958	10260
	AR_AC1 COMP		2322 #
	AR_AC1*2		2323 #	5462	5688	5841	6477	6590	6592	6737	6798	6847	6848	6921
	AR_AC2			2324 #	5895
	AR_AC3			2325 #	9746	9896	9910	9994	10198	10269	10283	10307	10758
	AR_AC3*2		2326 #
	AR_AC4			2327 #	9945
	AR_ADMSK AND VMA HEL	2329 #
	AR_AD*.25 LONG		2328 #	5749	5752	6174	6479	6673	6696	6869	10279	10376
	AR_ARX			2385 #	3832	3913	4757	4942	4947	4949	5271	5276	5475	5490	5521
				5525	5881	5893	5898	6088	6342	6515	6518	6526	6633	6726	6731
				6945	7221	7252	7585	7632	7782	7817	7909	7930	8031	8033	8427
				8756	8910	9074	9192	9193	9208	9239	9258	9300	9331	9340	9418
				9423	9482	9510	9513	9515	9718	9740	9744	9813	9846	9850	9853
				9855	9858	10086	10142	10201	10273	10294	10296	10320	10393	10494	10531
				10536	10592	10625	10626	10627	10652	10656	10685	10704	10734	10782	10790
				10844	10845	10846	10847
	AR_ARX (ADX)		2387 #	5451	5467	5468	5474	5482	5489	6314	6373	6506	6519	6634
				6946	7812
	AR_ARX (AD)		2386 #	3861	3865	3870	3872	6779	6788	7970	9473	9712	10156	10158
	AR_ARX ANDC ADMSK	2389 #	4788	5180	5266	9664
	AR_ARX AND ADMSK	2388 #	5274
	AR_ARX COMP		2390 #	10006
	AR_ARX OR PUR		2392 #
	AR_ARX*.25		2394 #	6090	9411
	AR_ARX*.25-AR-1		2395 #	10309
	AR_ARX*2		2396 #	7859
	AR_ARX*4		2397 #
	AR_ARX*4 COMP		2398 #
	AR_ARX*AC1		2399 #	7834	7840
	AR_ARX*BR		2400 #	7016	8802
	AR_ARX*BRX		2401 #	4795	8478	9670	10054
	AR_ARX*E1		2402 #	7841
	AR_ARX+1 (AD)		2403 #	9900	9912	10586
	AR_ARX+AR*4		2404 #
	AR_ARX+BR		2405 #	6999	9710
	AR_ARX+BRX+1		2406 #
	AR_ARX+XR		2407 #	3863	3867	3871	3873
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page CRF-37
; 							Cross Reference Listing					

	AR_ARX-1		2408 #	5437	7845	10116	10160	10161
	AR_ARX-BR		2409 #	9753
	AR_AR AND ADMSK		2331 #	4935	5026	5031
	AR_AR AND CSMSK		2333 #	9352	9432	9447
	AR_AR OR PUR		2334 #	9354	9469
	AR_AR SWAP		2336 #	4080	4566	4569	4839	5993	6044	6073	7352	7978	7991	8108
				8162	8407	8411	8827	8911	9502
	AR_AR*.25		2338 #	7248
	AR_AR*.25 LONG		2339 #	5642	5665	6102	6345	6394	6623	6625	6934	6936	6980	7238
	AR_AR*.5		2340 #	6431	7247
	AR_AR*.5 LONG		2341 #	6627	6661	6938	6969	6983	7972	10437	10805
	AR_AR*1.25 LONG		2342 #	10376
	AR_AR*10		2343 #	10200
	AR_AR*10 LONG		2344 #	10293	10398
	AR_AR*2			2345 #	3798	8918
	AR_AR*2 LONG		2346 #	6348
	AR_AR*4			2347 #	8994	8998	9040	9059
	AR_AR*4 LONG		2348 #	6350
	AR_AR*5 LONG		2349 #	10220
	AR_AR*8			2350 #	6720	6729	7220	10637	10645	10680
	AR_AR*8 LONG		2351 #	6352	6371	6384
	AR_AR*AC0		2352 #	4331	4341	4360	4376	4386	4396	4406	4416	4427	4447	4457
				4574	4575	4576	5317	5320	5552	7785
	AR_AR*AC1		2353 #
	AR_AR*BR		2354 #	4847	5191	5269	6992	8803	9445	10272
	AR_AR*EXPMSK		2355 #
	AR_AR*MSK		2356 #	10474
	AR_AR*SFLGS		2357 #	9752	9756	10035	10225
	AR_AR*SLEN		2358 #	9747
	AR_AR*T0		2359 #	9742	10152
	AR_AR+1			2361 #	3848	4636	6628	6640	6952	7578	7582	8308	9033	9091	10047
				10336	10526	10534	10582	10590	10673	10708	10710	10834
	AR_AR+1 LONG		2362 #	10336
	AR_AR+1-AR0		2363 #	10530	10585
	AR_AR+BR		2364 #	5784	5787	5797	5851	5863	6318	6428	6522	6569	6785	6806
				6814	6968	7251	7361	7950	7953	8107	8161	8843	8849	8881	8944
				9084	9751	10034
	AR_AR+BR LONG		2365 #	5797	5851	5863	6569	6814	8881	8944
	AR_AR+E1		2366 #	10384	10438
	AR_AR+FM[]		2367 #
	AR_AR+SBR		2369 #
	AR_AR+T0		2371 #	7819	7847
	AR_AR+T1		2372 #	7780	7811	7815
	AR_AR+XR		2377 #
	AR_AR-1			2379 #	4651	4699	4980	9034	10487
	AR_AR-BR		2380 #	5565	5785	5786	5800	5853	6803	7219	7951	8090	8091	10004
				10031
	AR_AR-BR LONG		2381 #	5800	5853
	AR_AR-BR-1		2382 #
	AR_AR-T0		2383 #
	AR_BRX			2424 #	5260	5527	5706	5902	7888	7987	7988	7989	8000	9058	9061
				9135	9808	10786	10835
	AR_BRX+1		2425 #	8045
	AR_BR			2411 #	4991	5517	5530	5713	5882	5886	5941	5981	6297	6309	6427
				6512	6541	6635	6714	6718	6802	6844	6947	6998	7213	7218	7332
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page CRF-38
; 							Cross Reference Listing					

				7345	7351	7439	7440	7573	7574	7575	7576	7760	7885	7887	7903
				7905	8003	8321	8364	8373	8435	8482	8791	8868	8906	9233	9255
				9301	9703	9807	9811	9913	10139	10155	10768	10788
	AR_BR COMP		2412 #	6641	6644	6953	6956	10005
	AR_BR COMP LONG		2413 #	5906
	AR_BR LONG		2414 #	5912	5914	5937	6773	6835	8053	9561	9588	9613	10204	10217
				10226	10232	10339	10370	10379	10395
	AR_BR OR ARX		2415 #	9944	9949	9961
	AR_BR*.5		2416 #
	AR_BR*.5 LONG		2417 #	10285
	AR_BR*2			2418 #	6006
	AR_BR*2 LONG		2419 #	5515	6379
	AR_BR*4			2420 #
	AR_BR*4 LONG		2421 #	6381
	AR_BR+1			2422 #	7986	8047
	AR_BR+1 LONG		2423 #
	AR_CACHE CNT		2427 #	8876	8929
	AR_DLEN			2428 #	9592	9596	9604	9618	10013	10020	10023	10477	10501
	AR_DLEN COMP		2429 #	9565
	AR_DLEN+1		2430 #	10095
	AR_DSTP			2431 #	9727	10011	10171	10483	10555	10655	10664
	AR_DSTP+1		2432 #
	AR_DSTP2		2433 #	10584	10850
	AR_DSTP2+1		2434 #
	AR_DSTW			2435 #
	AR_E0			2436 #	7826
	AR_E1			2437 #
	AR_EBOX CNT		2438 #	8875	8928
	AR_EBUS			2439 #	3802	3804	8332
	AR_EBUS REG		2440 #	4897	8805	8823	9209	9224
	AR_FILL			2441 #	10094
	AR_FM[]			2443 #	9696
	AR_FM			2442 #	5911	5931	7775	7826	7837	7855	9290	9307	9345	9353	9369
				9380	9406	9457	9474	9496	9557	9592	9596	9604	9608	9618	9633
				9698	9727	10011	10013	10020	10023	10040	10088	10094	10140	10171	10321
				10333	10435	10451	10453	10477	10478	10483	10490	10501	10502	10529	10555
				10584	10655	10664	10803	10812	10850	10860	10862
	AR_FM(#)		2445 #
	AR_FM(VMA)		2447 #
	AR_INTERVAL		2448 #	8889
	AR_MEM			2450 #	3955	3977	3988	4812	4813	4816	4828	4954	4982	4985	5001
				5002	7202	7243	7326	7340	7581	7691	7693	7716	7720	8022	8050
				8118	8119	8169	8291	9032	9041	9090	9287	9302	9322	9348	9370
				9393	9674	9992	10117	10319	10388	10449	10632	10760	10775	10808	10813
	AR_MQ			2451 #	5471	5487	5815	5816	5817	5818	5864	5870	5885	5932	6317
				6525	6577	6597	6599	6820	6850	6852	6880	7144	7732	7784	7954
				8024	9056	10143	10345	10347	10557	10794
	AR_MQ COMP		2452 #	6617	6932
	AR_MQ*.25		2453 #	6375
	AR_MQ*2			2454 #
	AR_MQ*4			2455 #	9125
	AR_MQ*AC1		2456 #
	AR_MQ*AC2		2457 #
	AR_MQ*AC3		2458 #
	AR_MQ+1			2459 #	3787	8100	8154
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page CRF-39
; 							Cross Reference Listing					

	AR_MQ+AC0		2460 #
	AR_MQ+BR		2461 #
	AR_MQ-1			2462 #	8017	8029	8044
	AR_MQ-BR		2463 #
	AR_MTR REQ		2464 #	8917
	AR_PC			2465 #	4845	5250	7967	9650	9652
	AR_PC FLAGS		2466 #	5270
	AR_PC+1			2467 #	4933	5022	5024
	AR_PERF CNT		2468 #	8874	8927
	AR_PERIOD		2469 #	8891
	AR_PUR+AR0		2471 #
	AR_SERIAL		2474 #	8405
	AR_SFLGS		2475 #	10088	10435	10451	10453	10478	10812	10860	10862
	AR_SHIFT		2476 #	4003	4033	4307	4843	5207	5257	5428	5430	5449	5454	5538
				5539	5597	5880	5883	5896	5940	6018	6517	6527	6631	6658	6670
				6777	6943	6964	7018	7146	7148	7357	7360	7704	7735	7737	7904
				7908	8381	8792	8947	9077	9303	9654	9736	10016	10203	10237	10378
				10461	10615	10633
	AR_SIGN			2477 #	3999	4032	5502	5503	5514	5598	5724	5727	5874	5939	6012
				6013	6263	6311	6500	6503	6768	6770	6987	7334	7341	7355	10236
	AR_SLEN			2478 #	10490
	AR_SLEN COMP		2479 #	9758	10033	10051	10212	10218
	AR_SLEN+1		2480 #	10019	10207	10367	10488	10491
	AR_SRCP			2481 #	9557	10040	10140	10502	10803
	AR_SRCP+1		2482 #
	AR_SRCP2		2483 #	10529
	AR_SRCP2+1		2484 #
	AR_SV.AR		2485 #	9698
	AR_SV.ARX		2487 #
	AR_SV.BR		2488 #	9290	9307	9345	9353	9369	9380	9406	9457
	AR_SV.PFW		2489 #	9474	9608	9633
	AR_SV.SC		2490 #	9496
	AR_SV.VMA		2491 #
	AR_SWD			2493 #
	AR_T0			2495 #	5911	7775	7837	10321
	AR_T1			2496 #	5931	10333
	AR_T2			2497 #	7855
	AR_TIME BASE		2498 #	8873	8926
	AR_VMA HELD		2509 #	7967	9650	9652
	AR_XR			2510 #	4758
	AR_[] AND FM[]		2288 #	9979
	B DISP			2686 #	4282	4564	4567	4571	4947	5453	5508	5528	5532	5846	5978
				5993	6474	6690	8307	8871	8879	9923	9924	10009	10192	10200	10378
				10436	10473	10477
	B WRITE			2687 #	4898	5597	6442	6446	8292	8479	8827
	BLKO TIM(L)		2688 #	8910	8912
	BLKO TIM(R)		2689 #	8911
	BR_AR LONG		2690 #	4310	5514	5631	5798	5801	5902	5904	5906	5907	5912	5914
				5937	5938	6309	6371	6384	6408	6411	6477	6482	6490	6832	6835
				6846	6939	8962	8964	10199	10207	10217	10281	10283	10339	10342	10366
	BYTE DISP		2691 #	4869	7426	7429	7439	7493	7500	7752	7758	8286	8845	8851
				9438	10261	10517	10563	10730	10775	10776	10777	10790	10830
	BYTE INDRCT		2695 #	7601	7603	7605	7607	7623	7625
	BYTE LOAD		2696 #
	BYTE PREV & CLR SR3	2698 #	7413	7480	7877
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page CRF-40
; 							Cross Reference Listing					

	BYTE PREV & SET SR2	2699 #	7881
	BYTE PREV & SET SR3	2700 #	7420	7487
	BYTE READ		2702 #	7610	7611	7612	7613	7621	7622
	BYTE READ PC		2703 #
	BYTE RPW		2704 #
	CALL			2711 #	3790	4774	4791	4824	4844	4896	4939	5179	5184	5185	5244
				5249	5253	5255	5518	5589	5611	5870	5887	5910	5926	5932	6078
				6080	6498	6562	6577	6590	6592	6608	6689	6694	6698	6702	6705
				6712	6717	6723	6732	6759	6762	6774	6780	6805	6809	6813	6816
				6824	6834	6844	6847	6848	6851	6853	6863	6872	6880	7207	7237
				7328	7350	7376	7411	7414	7418	7421	7430	7431	7437	7439	7478
				7481	7485	7488	7501	7504	7753	7801	7854	7856	7878	7882	7886
				7929	7971	7992	8100	8118	8119	8120	8154	8169	8170	8285	8291
				8322	8379	8387	8389	8394	8408	8411	8423	8449	8472	8750	8766
				8767	8777	8784	8789	8804	8817	8822	8832	8833	8861	8868	8885
				8887	8899	8908	8918	8967	9014	9040	9041	9044	9055	9059	9060
				9080	9083	9092	9100	9105	9110	9123	9124	9127	9128	9133	9134
				9136	9142	9651	9667	9702	9894	9895	9902	9941	9942	9945	9946
				9958	9959	9968	9970	9992	9993	10019	10022	10041	10079	10087	10094
				10141	10151	10172	10184	10208	10259	10284	10305	10319	10320	10334	10341
				10344	10392	10537	10555	10558	10593	10613	10731	10742	10804	10806	10810
				10831	10858	10861
	CALL []			2715 #	4774	4791	6689	6694	6698	6702	6705	6712	6717	6723	6732
				6759	6762	6774	6780	6805	6809	6813	6816	6824	6834	6844	6847
				6848	6851	6853	6863	6872	6880	7207	7237	7328	7350	7376	7414
				7421	7481	7488	7882	7971	7992	8408	8411	8767	8833	8861	9092
				9667	9894	9895	9902	9941	9942	9945	9946	9958	9959	9970	9992
				9993	10184	10259	10613
	CALL.C			2718 #
	CALL.M			2719 #	5689	5693	5756	5765	5862	6598	6600	7427	7494	7757	7774
				7779	8420	8469	8755	8814	8880	8897	8943	9039	9143	10076	10433
				10516
	CALL.S			2720 #	4286	4302	5843	6049	6473
	CALL[]			2716 #
	CBR			2727 #	9329	9340	9417	9423
	CLR ACC+SET UCODE	2729 #
	CLR ACCOUNT EN		2730 #	3801	9189	9191
	CLR AR			2731 #	3789	6308	6411	6746	6797	6799	6854	6985	7208	7215	7244
				7249	7329	7342	10010	10332	10614
	CLR ARX			2732 #	5527	5588	5609	5711	6309	6314	6374	6427	6428	6520	6634
				6780	6788	6946	7855	10015	10199
	CLR EBUS DEMAND		2733 #	8333
	CLR EXP			2734 #	10270
	CLR FE			2735 #	4004	4026	4858	4875	6392	6715	6719	6854	6921	7357
	CLR FPD			2736 #	4020	7432	7879	10372
	CLR MQ			2737 #	5839	6662	7243	7340	7361
	CLR MTR PA EN		2738 #
	CLR PT LINE		2740 #	8844
	CLR PT LINE (KEEP)	2741 #	8850
	CLR P			2739 #	4102	5265
	CLR SC			2742 #	4004	4026	4858	5928	6803
	CLR SPECIAL CYCLE	2743 #	9316
	CLR SR2			2744 #
	CLR SR3			2745 #	6529
	CLR TRACKS EN		2746 #
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page CRF-41
; 							Cross Reference Listing					

	CLR TRK+PA EN		2747 #
	CMS FETCH		2748 #	10145
	COMP FETCH		2749 #	4602
	CONI APR(L)		2750 #	8426
	CONI APR(R)		2751 #	8425
	CONI MTR		2752 #	8901
	CONI PAG		2753 #	8819
	CONI PI(L)		2754 #	8477
	CONI PI(PAR)		2755 #	8475
	CONI PI(R)		2756 #	8473
	CONO APR		2757 #	8422	8428
	CONO MTR		2758 #	8898
	CONO PAG		2759 #	8815
	CONO PI			2760 #	8470
	CONO TIM		2761 #	8886
	CONTINUE		2762 #	4869
	CSMSK			2764 #	9352	9432	9447
	DATAI APR(L)		2767 #	8395
	DATAI PAG(L)		2768 #	5254	8788
	DATAO APR		2769 #	8388
	DATAO PAG(L)		2770 #	8756
	DIAG IN			2771 #	4897	5254	8395	8425	8426	8473	8475	8477	8788	8805	8819
				8823	8873	8874	8875	8876	8889	8891	8901	8917	8926	8927	8928
				8929	9209	9224
	DIAG OUT		2772 #	8388	8422	8428	8470	8756	8815	8886	8898	8910	8911	8912
	DISMISS			2773 #	4766	4818	4819	8304	9042
	DIVIDE			2774 #	5747	5750	5755	5764	5780	5781	5782	5783	5784	5785	5786
				5787	5811	5812	5813	5814	7948	7949	7950	7951
	DLEN			2775 #	9565	9592	9596	9604	9618	10005	10006	10013	10020	10023	10052
				10095	10097	10477	10489	10501
	DLEN_AR			2776 #	10005	10006	10052	10097	10489
	DROP EBUS REQ		2777 #	8345
	DSTP			2779 #	9727	9733	10011	10171	10171	10483	10555	10555	10581	10598	10599
				10602	10655	10664	10790	10791
	DSTP2_AR		2787 #	10592	10796
	DSTP2			2785 #	10583	10584	10592	10777	10796	10850
	DSTP_AR			2783 #	9733	10598	10599	10602	10790	10791
	DSTW			2788 #
	DSTW_AR			2789 #
	E0			2793 #	6690	6697	6725	6730	6808	6918	7826	7885	9808	10479	10741
				10743	10858
	E0_AR			2794 #	7885	9808
	E1			2795 #	6706	6715	6734	6775	6781	6800	6843	6951	7183	7184	7196
				7197	7198	7245	7330	7343	7841	7888	9850	9853	9855	9858	10383
				10384	10436	10437	10438	10447	10805	10806
	E1_AR			2796 #	7888	9850	9853	9855	9858
	EA MOD DISP		2798 #	3833	3913	4723	4770	7596	7632	9813	9846	10525	10540	10600
				10603
	EPT FETCH		2803 #	9009	9010	9015
	EPT REF			2804 #	8963	9018	9065	9282
	EPT REF CACHE		2805 #	7892	7974
	EXEC REF		2806 #
	EXIT			2807 #	4080	4089	4221	4223	4226	4229	4233	4237	4246	4247	4253
				4254	4260	4261	4267	4268	4321	4331	4341	4360	4376	4386	4396
				4406	4416	4427	4437	4447	4457	4467	5552	5565	5614	5705	5707
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page CRF-42
; 							Cross Reference Listing					

				5712
	EXIT DBL		2808 #	4000	5851	5853	5941	5943
	EXP TEST		2809 #
	EXP TST			2810 #	6432	6662
	EXPMSK			2811 #	3849	6924	6926	6990	7127	7128	7134	7135	7364	7367	7883
				9976
	EXP_-SC-1		2812 #
	EXP_-SC-1 TST		2813 #
	EXP_1			2814 #	6578
	EXP_FE TST		2815 #	6432	6662
	EXP_SC			2816 #	7246
	EXP_SC.MS		2817 #	6986
	EXP_SCAD		2818 #	6578	7246	10270
	EXP_SCAD.C		2819 #	6432	6662
	EXP_SCAD.MS		2820 #	6986
	EXP_SIGN		2821 #	5994	5997	6005	6045	6048	6074	6173	6239	6471	6540	7358
	EXP_SIGN.C		2822 #	7253
	EXP_SIGN.MS		2824 #
	EXP_SIGN.M		2823 #	6574
	EXT ADDR		2826 #	9838
	EXT BYTE READ		2827 #	7415	7422	7482	7489
	EXT BYTE RPW		2828 #
	EXT INDEX		2829 #	9820	9821	9822	9823	9839
	EXT INDRCT		2830 #	9815	9816	9817	9818	9840	9841
	FETCH			2876 #	3733	4769	4822	4826	4941	4989	4990	5022	5028	5053	5261
				5437	9043	10236	10374
	FETCH WAIT		2882 #	4091	10030
	FETCH+1			2877 #	10676
	FE_#			2833 #	3914	3916	3955	3977	5480	5483	5588	5610	5718	5725	5728
				5815	5816	5817	5818	5856	5871	5926	6047	6077	6262	6483	6570
				6607	6784	6810	6815	6862	7251	7325	7339	7568	7571	7615	7616
				7617	7618	7802	7804	7946	7955	8407	8449	8863	9203	9208	9553
				9847	9894	9902	10045	10138	10282	10340	10343	10483	10502	10803
	FE_# AND S		2834 #	9007	9074	9123	9132
	FE_#+AR0-8		2835 #
	FE_#+SC			2836 #	6050
	FE_#-SC			2837 #	7733
	FE_+#			2838 #
	FE_-1			2839 #	5905	9282	9283
	FE_-SC-1		2841 #	9511
	FE_-S			2840 #
	FE_1			2842 #	5899
	FE_AR0-8		2843 #	4866	6721	6730	7221	10003	10308
	FE_AR0-8 AND #		2844 #
	FE_AR0-8 COMP		2845 #	10186
	FE_EXP			2846 #	5994	5997	6471	9501
	FE_EXP+1		2847 #
	FE_EXP+SC		2848 #	6239
	FE_EXP-#		2849 #	6279	6283
	FE_EXP-1		2850 #
	FE_FE AND AR0-8		2852 #	9288	9378	9910
	FE_FE AND #		2851 #	9331	9348
	FE_FE OR #		2853 #	9370	9393	9445	9476
	FE_FE OR AR0-8		2854 #
	FE_FE SHRT		2855 #	9382
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page CRF-43
; 							Cross Reference Listing					

	FE_FE+#			2856 #	6088	6091	6345	6379	6624	6626	6935	6936	7232	7239	8416
				10699
	FE_FE+1			2857 #	5632	5642	5644	5646	5648	5660	5662	5664	5665	5670	5862
				6015	6016	6019	6381	6431	6597	6599	6627	6661	6821	6823	6850
				6852	6938	6969
	FE_FE+S			2858 #
	FE_FE+SC		2859 #	6006	6542	9253	9255
	FE_FE-#			2860 #	6350	6352	6372	6376	6385	6394	9439	10672	10684	10708	10711
				10733	10793
	FE_FE-1			2861 #	5747	5750	5755	5764	5780	5781	5782	5783	5784	5785	5786
				5787	5811	5812	5813	5814	6348	6630	6941	7235	7906	7948	7949
				7950	7951	8843	8849	10293	10295
	FE_FE-S			2862 #
	FE_FE-SC		2863 #	6631	6658	6943	6964	9413
	FE_FE-SC-1		2864 #
	FE_P			2865 #	5427	5430	7905	7909	10461	10530	10585
	FE_P AND #		2866 #	8764	9251	10463	10628	10736
	FE_P AND SC		2867 #
	FE_P OR #		2868 #
	FE_P+SC			2870 #	10686
	FE_P+1			2869 #
	FE_S			2871 #	7595	7597	7977	10524	10539	10540	10598	10599	10602
	FE_S+#			2872 #	7890
	FE_SC			2873 #	5636	5637	5638	5640	5653	5654	5655	5657	5798	5801	7726
				10346	10348
	FILL			2883 #	9895	9946	9947	9993	10094	10259	10315	10320
	FILL_AR			2884 #	9895	9993	10259	10320
	FIN STORE		2885 #	4000	4001	4007	4009	4620	4795	4798	4810	4941	4946	5028
				5053	5186	5194	5276	7506	7585	7762	8128	8178	8295	10786
	FIN XFER		2886 #	3966	4800	4811	8966	10784
	FINISH			2887 #	4042	5888	10241
	FM(#)_AR		2891 #
	FM[]_AR			2889 #	3798	3849	6690	6695	6697	6703	6706	6723	6724	6731	6732
				6735	6763	6775	6781	6800	6807	6817	6843	6857	6877	6917	6920
				7245	7252	7330	7332	7343	7345	7373	8988
	FM_AR			2888 #	3798	3849	5893	5909	6690	6695	6697	6703	6706	6723	6724
				6731	6732	6735	6763	6775	6781	6800	6807	6817	6843	6857	6877
				6917	6920	7245	7252	7330	7332	7343	7345	7373	7752	7776	7782
				7784	7825	7885	7886	7888	8988	9725	9733	9808	9850	9853	9855
				9858	9895	9993	10005	10006	10007	10009	10017	10050	10052	10075	10097
				10143	10190	10195	10197	10204	10259	10294	10296	10305	10306	10318	10320
				10369	10433	10461	10463	10489	10494	10524	10536	10539	10540	10592	10598
				10599	10602	10624	10631	10790	10791	10796	10835
	FORCE AR-ARX		2893 #	9189	9191
	GEN # AND AR0-8		2897 #	9304	9341	9365	9399
	GEN #+AR0-8		2898 #	10635
	GEN #+SC		2899 #	5522	6501
	GEN #-SC		2900 #	9438
	GEN -AR LONG		2901 #	5749	5752	6174	6479	6673	6696	6869	10279
	GEN -SC			2902 #
	GEN -SC-1		2903 #
	GEN 0S			2904 #
	GEN 2AR			2905 #
	GEN AC0			2907 #	7352
	GEN AC0+1		2908 #
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page CRF-44
; 							Cross Reference Listing					

	GEN AR			2909 #	3883	3885	6528	6580	6701	6837	7024	7203	7254	7335	7377
				7415	7422	7482	7489	7621	7623	7979	8329	8332	8334	8336	8347
				8349	8355	8479	9812	9838	9840
	GEN AR*AC0		2910 #	4602	5323	5325	6489	6845
	GEN AR*BR		2911 #	5612	5872	7210	10298
	GEN AR*T0		2912 #
	GEN AR+1		2913 #	7147	7568	7571
	GEN AR+2BR		2914 #	6178
	GEN AR+BR		2915 #
	GEN AR+E1		2916 #
	GEN AR+XR		2917 #	3884	3887	7622	7625	9839	9841
	GEN AR-2BR		2918 #	6176
	GEN AR-AC3		2919 #	10210
	GEN AR-BR		2920 #	5710	6748	7214
	GEN AR-BR-1		2921 #	7210	10298
	GEN AR0-8		2922 #
	GEN ARX			2923 #	6482	6699	7601	7605	7610	7612	7975	9815	9817	9820	9822
				10050	10145
	GEN ARX COMP		2924 #	10314
	GEN ARX*BRX		2926 #
	GEN ARX*BR		2925 #
	GEN ARX+1		2927 #
	GEN ARX+XR		2928 #	3863	3867	3871	3873	7603	7607	7611	7613	9816	9818	9821
				9823
	GEN ARX-1		2929 #	5316
	GEN BR			2931 #	5003
	GEN BR*2		2932 #	9240
	GEN BR+ARX		2933 #
	GEN BRX+1		2934 #
	GEN CRY18		2935 #	4707	6369	8300	8308
	GEN E1			2936 #	6951
	GEN FE			2937 #
	GEN FE AND #		2938 #	9429	9472
	GEN FE AND AR0-8	2939 #
	GEN FE AND S		2940 #
	GEN FE AND SC		2941 #	9401
	GEN FE OR AR0-8		2942 #	9911
	GEN FE+#		2943 #
	GEN FE-#		2944 #	7230
	GEN FE-1		2945 #	4869
	GEN FE-S		2946 #
	GEN FE-SC		2947 #
	GEN FE-SC-1		2948 #	7717
	GEN MQ			2950 #
	GEN MQ-AR		2951 #
	GEN P AND SC		2953 #	9431	9474
	GEN P AND #		2952 #	8409
	GEN P+SC		2954 #
	GEN P-#			2955 #
	GEN P-S			2956 #	10809
	GEN P-SC		2957 #
	GEN SC			2958 #	9810
	GEN SCAD 0S		2959 #
	GEN T1			2960 #
	GEN T2			2961 #
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page CRF-45
; 							Cross Reference Listing					

	GET ECL EBUS		2962 #	3875	3876	3877	3878	4830	8374	8916	9199	9825	9826	9827
				9828
	GLOBAL			2963 #	3861	3863	3865	3867	3870	3871	3872	3873	7415	7422	7482
				7489	7601	7603	7605	7607	7610	7611	7612	7613	9815	9816	9817
				9818	9820	9821	9822	9823
	HALT			2965 #	4856
	I FETCH			2968 #	3966	3999	4001	4007	4009	4099	4106	4289	4798	4904	4946
				5319	5426	5456	5475	5490	5513	5538	5757	5766	5886	5927	6315
				6316	6671	7020	7146	7148	7149	7204	7212	7216	7432	7506	7762
				7781	7860	7879	7911	8032	8038	8046	8128	8178	8303	10023	10312
	INDEXED			2972 #	3884	3887	7622	7625	9839	9841
	INH CRY18		2973 #	5317	7847	10534	10582	10586	10590	10673	10710
	IO INIT			2974 #	8347
	IR DISP			2975 #	3945	3956	3967	3978	3989	4767	4793	4801	9851	9854	9856
				9859
	JFCL FETCH		2977 #	4846
	JFCL S			2978 #	4848
	JFCL T			2979 #	4845
	JUMP FETCH		2980 #	4668	4683	4699	4707
	LD PCS			2982 #	4831
	LD PREV CTXT		2983 #	5256
	LOAD AR			2984 #	4727	4741	4800	4810	4811	5186	5903	7201	7242	7324	7338
				7580	7892	7974	8018	8030	8039	8048	8155	8171	8311	8963	8964
				8995	9018	9019	9089	9101	9102	9106	9107	9282	9283	9301	9306
				9321	9343	9368	9392	9427	9672	9903	10116	10315	10383	10447	10479
				10626	10627	10700	10704	10741	10743	10806	10858
	LOAD AR (WR TST)	2986 #	10755	10759
	LOAD ARX		2988 #	3840	4282	4939	5184	5194	5246	5842	6472	6688	7222	7327
				7928	8966	9012
	LOAD ARX (WR TST)	2990 #	10783
	LOAD EBR		2992 #	8833
	LOAD IR			2994 #	3835	3846	5336	9812
	LOAD UBR		2998 #	8767
	LOAD VMA(EA)_ARX+BR	3000 #	8113	8114	8121
	LONG EN			3005 #	3910	7630	9844
	MAP			3010 #	3919	4889	9222
	MB WAIT			3011 #	3944	4000	4895	5851	5853	5941	5943	7902	7975	8295	8383
				8778	8860	8921	9209	9223	9430	9628	9664
	MEM_AR			3012 #	4306	4943	4948	5250	5260	5273	7595	7598	8000	8024	8044
				8126	8129	8176	8179	8297	8307	8946	9042	9363	10559	10788	10849
				10857
	MQ_0.C			3014 #
	MQ_0.M			3015 #	5479	5487	6015	6016	6019	6513	6516	6598	6600	6851	6853
				6881	7017	7779	10345	10347
	MQ_0.S			3016 #	4286	4302	5843	6471	6689	7202	7326
	MQ_1			3017 #
	MQ_1S			3018 #
	MQ_AD			3019 #	6836	9971
	MQ_ARX			3024 #	5484	5909	6543	6545	7333	9896	10191	10641	10643	10664
	MQ_ARX COMP		3025 #
	MQ_AR			3020 #	4121	5266	5587	5609	5815	5816	5817	5818	5864	5870	5932
				6007	6010	6047	6560	6570	6577	6641	6644	6646	6812	6815	6820
				6868	6953	6956	6958	7716	7855	7968	8013	8016	8022	8047	8870
				8918	8987	9808	10007	10138	10333	10369	10555
	MQ_AR (AD)		3021 #
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page CRF-46
; 							Cross Reference Listing					

	MQ_AR COMP		3022 #
	MQ_AR SWAP		3023 #
	MQ_BR			3026 #	9971
	MQ_BR COMP		3027 #
	MQ_FM[]			3028 #
	MQ_MQ*.25		3029 #	5884	6623	6934	6981
	MQ_MQ*2			3030 #	5882	5922	5924	10153
	MQ_MQ*BR		3031 #	6836
	MQ_MQ-1			3032 #
	MQ_SHIFT		3033 #	5466	5473	5482	5489	5527	5855	6012	6313	6373	6506	6519
				6521	6525	6634	6635	6788	6946	6947	8764
	MSK			3035 #	10017	10204	10439	10472	10474	10624
	MSK_AR			3036 #	10017	10204	10624
	MUL			3037 #	5632	5642	5644	5646	5648	5660	5662	5664	5665	5670	5862
	NO CRY			3040 #	4563	4566
	NORM			3041 #	6022	6090	6102	6346	6372	6377	6385	6395	6428	6523	6580
				6603	6628	6636	6642	6645	6646	6786	6838	6859	6925	6927	6949
				6954	6957	6959	6968	7024	7240	7254	7335	7346	7377
	NORM AR			3043 #	6050
	NORM -AR		3042 #	6344
	NXT INSTR		3044 #	4004	4026
	OPTIONS			3046 #	8407
	P0			3076 #	9352	9432	9447
	P1			3077 #	9354	9469
	P10			3078 #	9234	9290	9307	9345	9353	9369	9380	9406	9457	9502
	P11			3079 #	9239	9496
	P12			3080 #	9232	9233	9258	9474	9478	9608	9633
	P13			3081 #
	P14			3082 #
	P15			3083 #
	P16			3084 #	9192	9510	9698
	P17			3085 #	9193	9514	9516	9581
	P2			3086 #	9329	9340	9417	9423
	P3			3087 #	9300	9315	9391
	P4			3088 #
	P5			3089 #	9242	9379	9482	9526	9533
	P6			3090 #
	P7			3091 #
	PC_VMA			3093 #	4859
	PF DISP			3094 #	9199	9210
	PFA			3096 #
	PFA_AR			3097 #
	PHYS REF		3099 #	9102	9107	9112	9301	9306	9321	9343	9363	9368	9392	9427
	PHYS REF CACHE		3100 #	9089	9093
	POP AR			3102 #	4977
	POP AR-ARX		3103 #	4979
	POP ARX			3104 #
	PORTAL			3106 #	4721
	PT FETCH		3107 #
	PT REF			3108 #	3840	5184
	PT SEL_INVAL		3109 #	8835
	PT SEL_INVAL (KEEP)	3110 #	8839
	PT SEL_NORMAL		3111 #	8846	8852
	PUR			3113 #	9354	9469
	PUSH			3116 #	4931	4936
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page CRF-47
; 							Cross Reference Listing					

	P_#			3048 #
	P_#-SC			3050 #
	P_#-S			3049 #	8004	10544	10587
	P_-SC			3051 #	7862	7864
	P_1S			3052 #
	P_FE			3053 #	5432	7910	10533	10834
	P_FE OR SC		3054 #	9226	10715	10716
	P_FE+SC			3055 #
	P_FE-S			3056 #	7578	10047	10526
	P_FE-S.S		3057 #	7580
	P_FE.C			3058 #	10589
	P_P AND #		3059 #	7013	8412	10399	10464	10468	10721
	P_P AND SC		3060 #	10674
	P_P OR #		3061 #	7998	10465	10466	10467	10469
	P_P OR SC		3062 #	9483	10493	10863
	P_P OR SC#		3063 #
	P_P+#			3064 #
	P_P+1			3065 #	10675
	P_P+S			3066 #	9724
	P_P+S.C			3067 #	9729
	P_P-S			3068 #	7426	7493	7757	8001	9143	10049	10516	10563
	P_SC			3069 #	7774	7779	7835	8800
	P_SC#			3070 #	7583
	P_SCAD			3071 #	4102	5265	5432	7580	7910	9226	9724	10533	10715	10716	10834
	P_SCAD#			3072 #	7013	7583	7998	8004	8412	9729	10399	10464	10465	10466	10467
				10468	10469	10544	10587	10589	10675	10721
	P_SCAD.C		3073 #	7578	10047	10526
	P_SCAD.M		3074 #	7426	7493	7757	7774	7779	7835	7862	7864	8001	8800	9143
				9483	10049	10493	10516	10563	10674	10863
	R0			3121 #	9223
	R1			3122 #
	R10			3123 #	9736	9747	9749	9758	10007	10019	10028	10033	10051	10075	10190
				10207	10212	10218	10306	10367	10369	10433	10488	10490	10491
	R11			3124 #	5909	5931	6724	6732	6765	6777	7776	7780	7782	7811	7815
				10294	10296	10333
	R12			3125 #	6695	6703	6710	6719	6735	6807	6856	6857	6873	6877	6917
				6920	6997	7252	7332	7345	7373	7784	7855	10305	10332
	R13			3126 #	9895	9946	9947	9993	10094	10259	10315	10320
	R14			3127 #
	R15			3128 #	3798	4773	4788	4935	5026	5031	5180	5261	5266	5270	5274
				8990	9002	9024	9048	9070	9085	9115	9664	9978	9979
	R16			3129 #	6690	6697	6725	6730	6808	6918	7826	7885	9808	10479	10741
				10743	10858
	R17			3130 #
	R2			3131 #	9697
	R3			3132 #	8988	9696
	R4			3133 #	3849	6924	6926	6990	7127	7128	7134	7135	7364	7367	7883
				9976
	R5			3134 #	6706	6715	6734	6775	6781	6800	6843	6951	7183	7184	7196
				7197	7198	7245	7330	7343	7841	7888	9850	9853	9855	9858	10383
				10384	10436	10437	10438	10447	10805	10806
	R6			3135 #	5893	5911	6723	6731	6761	6763	6766	6778	6817	7752	7775
				7819	7825	7837	7847	7886	7907	9742	10143	10152	10318	10321
	R7			3136 #	10017	10204	10439	10472	10474	10624
	RD+CLR C CNT		3138 #	8929
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page CRF-48
; 							Cross Reference Listing					

	RD+CLR E CNT		3139 #	8928
	RD+CLR PA		3140 #	8927
	RD+CLR TB		3141 #	8926
	READ BP2		3143 #	7597
	READ EBR		3145 #	8821
	READ ERA		3146 #	8447
	READ UBR		3147 #	8803
	REL EBUS		3148 #	8336	8479
	REL ECL EBUS		3149 #	4898	8292	8825	8859	8881	8920	8930	9210	9225
	REQ EBUS		3150 #	8322	8483
	REQ SV.VMA		3152 #	9526
	REQ VMA HELD		3153 #
	RETURN0			3157 #	9527
	RETURN1			3158 #	4833	4839	5277	6737	7440	7444	7447	7610	7611	7612	7613
				7621	7622	7981	8003	8370	8374	8947	8968	9960	9962	9971	10435
				10501
	RETURN10		3159 #	9947	9951
	RETURN12		3160 #	9082
	RETURN15		3161 #
	RETURN16		3162 #
	RETURN17		3163 #
	RETURN2			3164 #	4954	6177	6179	6748	7446	7704	7705	7955	8109	8130	8180
				9085	9116	9969	9980	10100	10479	10544
	RETURN20		3165 #	5271	9912
	RETURN3			3166 #	4310	5207	5757	5766	5815	5818	7720	7737	8337	8350	8808
				10483	10863
	RETURN30		3167 #
	RETURN37		3168 #
	RETURN4			3169 #	5653	5654	5655	5657	6544	6546	7567	7570	7573	7574	7575
				7576	7579	7586	8863	9077	10439	10474	10494
	RETURN5			3170 #	5816	5817	10463
	RETURN6			3171 #	5636	5637	5638	5640	5759	5768	5799	5802	10559
	RETURN7			3172 #	5760	5769
	RET[]			3156 #	7127	7128	7134	7135
	RSTR FLAGS_AR		3173 #	4762	4812	4813	4816
	RSTR VMA_ARX		3175 #
	RSTR VMA_MQ		3176 #	7981	7998
	RSTR VMA_SV.VMA		3177 #	9482
	SBR			3182 #	9300	9315	9391
	SBUS DIAG		3184 #	8451
	SC_#			3186 #	3789	3802	3804	3917	4288	4301	4304	4842	4844	5250	5251
				5424	5531	5540	5594	5614	5705	5707	5711	5846	5875	5895	5939
				6310	6368	6374	6522	6580	6602	6615	6629	6635	6712	6717	6785
				6833	6837	6858	6930	6948	6982	6988	6993	7000	7002	7004	7024
				7254	7355	7359	7375	7893	7902	7904	7926	7928	7970	7985	7986
				7991	8379	8757	8777	8779	8783	8807	8818	8832	8871	8882	8924
				8944	8994	9014	9076	9100	9105	9110	9222	9287	9384	9650	9652
				9735	10010	10200	10226	10233	10235	10263	10279	10282	10340	10343	10376
				10449	10478	10614	10633	10652	10811	10860	10862
	SC_# AND AR0-8		3187 #	9256	10630
	SC_# AND S		3188 #
	SC_# OR SC		3189 #
	SC_#+AR0-8		3190 #	6296
	SC_#+SC			3191 #	5449	5452	5454	5469	5472	5500	5504	5526	5528	6007	6014
				6177	6179	6504	6543	6561
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page CRF-49
; 							Cross Reference Listing					

	SC_#-SC			3192 #	5207	6010	6545	6767	6771	7503	7691	7734	9135	10557
	SC_#-SC-1		3193 #
	SC_-SC			3195 #	9418	9428
	SC_-SC-1		3196 #	9515
	SC_-S			3194 #
	SC_0			3197 #
	SC_1			3198 #	5692	5893	5899	7801	9411	10260	10369
	SC_1S			3199 #	5929
	SC_AR0-8		3200 #
	SC_EA			3201 #	5421	5440	5442	5461	5464	5480	6237
	SC_EXP			3202 #	6045	7244	9501	9509
	SC_EXP+1		3203 #	6074
	SC_EXP+SC		3204 #	6048	6574
	SC_EXP-#		3205 #
	SC_EXP-1		3206 #
	SC_EXP-SC		3207 #	6005	6173	6540
	SC_FE			3208 #	6766	6769	7696	7732	8861	9482
	SC_FE AND #		3209 #
	SC_FE#			3210 #
	SC_FE+#			3211 #	6312
	SC_FE+1			3212 #	10642	10644	10645
	SC_FE+SC		3213 #	5485	5488	6984	7431	7698	9128	10174	10518	10632
	SC_FE-#			3214 #	10310
	SC_FE-1			3215 #	6491
	SC_FE-SC		3216 #	7736	7777
	SC_FE-SC-1		3217 #	10294	10296
	SC_P			3218 #	7429	7438	7500	7582	7771	7830	8003	9144	10742
	SC_P AND #		3219 #	10700	10702
	SC_P AND SC		3220 #	9225	9417	9423
	SC_P+S			3222 #
	SC_P+1			3221 #
	SC_P-#			3223 #	6243	7443	7861	7863
	SC_S			3224 #	7753	7854	7885	10015
	SC_SC AND #		3225 #
	SEL AC4			3228 #	9950	10239
	SEL DSTP		3229 #	9729	9738	10595	10596	10788
	SEL DSTP2		3230 #	9948	10589	10590	10795
	SET ACC+CLR UCODE	3232 #
	SET ACCOUNT EN		3233 #	3832	4905	8921	8932	9527	9632	9674	9703
	SET AROV		3234 #	5523	5598	5615	5876	6307	7149
	SET CONS XCT		3235 #	4875
	SET DATAI		3236 #	9055	9124
	SET DATAO		3237 #	9041	9091	9702
	SET EBUS DEMAND		3238 #	8330
	SET FL NO DIV		3239 #	6081	6610	6865
	SET FLAGS_AR		3240 #	3730	5280	9673
	SET FLOV		3241 #	7006	7011	7212	7370
	SET FPD			3242 #	7595	7628	8003	8311	8312	10335
	SET FXU			3243 #	7010	7216	7371
	SET HALTED		3244 #	4858
	SET IO PF		3245 #	9699
	SET MTR PA EN		3246 #
	SET NO DIVIDE		3247 #	5702
	SET PC+1 INH		3248 #	3841
	SET PI CYCLE		3249 #	3788	8931	8987
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page CRF-50
; 							Cross Reference Listing					

	SET PXCT		3250 #	5335
	SET SR1			3251 #	6102	6344	7884
	SET SR2			3252 #	5914	6592	6618	6876
	SET SR3			3253 #	5934	6530	6558	6933
	SET SXCT		3254 #
	SET TRACKS EN		3255 #
	SET TRK+PA EN		3256 #
	SFLGS_AR		3258 #	10009	10195	10197	10461	10463	10494	10631	10835
	SFLGS			3257 #	9752	9756	10009	10035	10088	10195	10197	10225	10435	10451	10453
				10461	10463	10478	10494	10631	10812	10835	10860	10862
	SH DISP			3259 #	5252	7001	7894	8990	9007	10633	10650
	SIGNS DISP		3260 #	5719	5913	5915	9240	9277	9279	10046	10050	10077	10097	10142
				10143	10157	10190	10314	10371	10396	10434	10462	10489
	SKIP FETCH		3261 #	4620
	SKP -EBUS GRANT		3263 #	8344
	SKP -EBUS XFER		3264 #	8334
	SKP -LOCAL AC ADDR	3266 #	4099	4106	5179	5243
	SKP -START		3268 #	4865
	SKP -VMA SEC0		3270 #	7572	7598	7923
	SKP AC EQ 0		3272 #
	SKP AC REF		3273 #
	SKP AC#0		3274 #	4002	4621	6244	6246	6247
	SKP AC0+		3275 #	5799
	SKP AC0-		3276 #	5802
	SKP AD NE		3277 #	5424	5710	6482	6528	6556	6699	6798	6951	7144	7147	7203
				7353	7780	7979	8044	9116	9329	9417
	SKP AD0			3278 #	5324	5326	5612	5872	5900	6078	6489	6606	6701	6705	6711
				6748	6759	6761	6804	6808	6816	6844	6845	6862	6874	6880	6918
				6922	7210	7214	7349	7374	7818	7975	8014	10004	10013	10262
	SKP ADX0		3279 #
	SKP AR EQ		3280 #	4876
	SKP AR EQ -1		3281 #
	SKP AR GT BR		3282 #	9081	10113
	SKP AR NE		3283 #	7804	8016	10278	10818	10859
	SKP AR NE BR		3284 #	5519
	SKP AR NZ		3285 #
	SKP AR SIG		3286 #	5594
	SKP AR0			3287 #	4083	4257	4264	5318	5435	5694	5726	5729	6262	6575	6694
				6698	6872	7206	7237	7582	9501	9509	9749	9758	10028	10078	10530
				10585
	SKP AR1			3288 #
	SKP AR18		3289 #	4243	4250	5422	5440	5442	5461	5464	5480	8765	9852	10473
	SKP AR2			3290 #	8757	10209
	SKP AR6			3291 #	8996	8998	9032	9057
	SKP ARX LE BRX		3292 #
	SKP ARX LT BRX		3293 #	8125	8175
	SKP ARX NE		3294 #	6342
	SKP ARX NZ		3295 #
	SKP ARX+MQ NE		3296 #	6615	6930
	SKP ARX0		3297 #	10139	10449	10637	10655	10680
	SKP ARX2		3298 #	10390
	SKP BR EQ		3300 #	6089	7772	10164
	SKP BR EQ -1		3301 #	8102
	SKP BR0			3302 #	5926	6080	6173	6609	6864	6881	10033	10155	10334
	SKP CRY0		3303 #	4931	4936	4981	5000	5316	5905	5923	5924	6176	6178	6369
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page CRF-51
; 							Cross Reference Listing					

				6640	6952	8026	9437	10211	10275	10309	10367	10439
	SKP EVEN PAR		3304 #
	SKP EXP NE		3305 #
	SKP FE0			3306 #	5911
	SKP FETCH		3307 #
	SKP INTRPT		3308 #	3862	3864	3866	3868	3886	3888	4870	4887	4902	5181	7602
				7604	7606	7608	7624	7626	8024	8050	8123	8173	8348	9287	9371
				9553	9815	9816	9817	9818	9840	9841	10046	10095	10174	10377	10518
				10701	10705
	SKP IO LEGAL		3309 #	4728	4729	4735	4737	4895	8285	8291	8380	8387	8389	8394
				8408	8421	8424	8450	8469	8472	8751	8755	8783	8814	8817	8869
				8885	8888	8897	8900	8909	9608
	SKP KERNEL		3310 #	4725
	SKP MQ EQ -1		3311 #	10386
	SKP MQ NE		3312 #
	SKP PC SEC0		3316 #	4757	4758	4933	4984	4987	5022	5024	5047	5177	6225	7411
				7418	7478	7485	9968	10528	10529	10583	10584	10625	10665	10697	10699
				10731	10789	10831
	SKP PI CYCLE		3318 #	8297	8300	8309	9633
	SKP P NE		3313 #	9352	9447
	SKP P!S XCT		3314 #	8089	8114
	SKP RPW			3319 #	9203	9208
	SKP RUN			3320 #
	SKP SC NE		3324 #	5498	8769
	SKP SC0			3325 #	5933	10313
	SKP SCAD NE		3326 #	5427	5430	7906	9304	9342	9366	9399	9402	9429	9431	9473
				9475	9810
	SKP SCAD NZ		3327 #	8409	9911
	SKP SCAD0		3328 #	5450	5453	5455	5469	5472	5485	5488	5500	5505	5522	6005
				6008	6010	6014	6243	6279	6283	6296	6312	6502	6504	6540	6544
				6546	6767	7231	7443	7504	7691	7698	7718	7890	8001	9136	9143
				10049	10557	10636	10672	10684	10709	10712	10733	10793	10809
	SKP USER		3329 #	4773	4790	4815	4816	4821	5267	5332	9386	9666
	SLEN			3331 #	9736	9747	9749	9758	10007	10019	10028	10033	10051	10075	10190
				10207	10212	10218	10306	10367	10369	10433	10488	10490	10491
	SLEN_AR			3332 #	10007	10075	10190	10306	10369	10433
	SR DISP			3333 #	5934	5935	5940	6347	6349	6351	6353	6380	6382	6383	6393
				6412	6432	6639	6662	7008	7017	7438	7693	7803	7805	7817	7830
				7859	9232	9534	9713	9725	9733	9754	10098
	SRCP			3384 #	9557	9725	10040	10050	10140	10140	10502	10502	10524	10539	10540
				10803	10803
	SRCP2_AR		3387 #	10536
	SRCP2			3386 #	10528	10529	10536
	SRCP_AR			3385 #	9725	10050	10524	10539	10540
	SR_#			3334 #	5978	5979	5980	7416	7423	7440	7930	7989	8000	9565	9596
				9604
	SR_0			3335 #	4016	4017	4021	4033	4828	4901	5260	6442	6446	6456	6657
				6672	6963	7022	7860	8038	8053	9557	9569	9588	9613	9618	9710
				10035	10055	10142	10237	10379	10435
	SR_1			3336 #	6848	9561	9573	9592
	SR_2			3337 #
	SR_BDD			3339 #	10392
	SR_BDF			3340 #	10319
	SR_BDT			3341 #	9577	10269	10336	10395
	SR_BLT(DST)		3342 #	8118	8119	8120
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page CRF-52
; 							Cross Reference Listing					

	SR_BLT(PXCT DST)	3344 #	8169	8170
	SR_BLT(PXCT SRC)	3345 #	8162	8180
	SR_BLT(SRC)		3347 #	8108	8130
	SR_DB			3348 #	10203
	SR_DST			3349 #	10087
	SR_DSTF			3350 #	10041
	SR_ED(+D)		3351 #	10151	10810	10861
	SR_ED(PAT)		3352 #	10615	10698
	SR_ED(S)		3353 #	10141	10654
	SR_MAP			3368 #	4892
	SR_SRC			3371 #	9600	10012	10016	10024	10040	10042	10081
	SR_SRC+DST		3372 #	10022	10079
	SR_WORD			3377 #
	SR_XBLT(DST)		3380 #	8022	8040	8049
	SR_XBLT(SRC)		3381 #	8012	8023	8052
	STACK UPDATE		3390 #	4981	4999	5315
	STORE			3392 #	4119	4301	4304	4307	4636	4651	4776	4792	4796	5026	5027
				5037	5185	5192	5248	5258	5275	5277	7567	7570	7579	7583	7584
				7586	7737	7999	8023	8051	8173	8308	8414	8455	8882	8945	8947
				9033	9034	9065	9066	9093	9111	9112	9221	9354	9469	9663	9669
				9671	10768	10784	10787	10844	10845	10846	10847	10850
	STORE VMA(EA)_ARX	3394 #	8123
	SV.ARX			3405 #	9193	9514	9516	9581
	SV.ARX_AR		3409 #	9193
	SV.AR_AR		3403 #	9192
	SV.AR			3399 #	9192	9510	9698
	SV.BR_AR		3412 #	9234
	SV.BR			3411 #	9234	9290	9307	9345	9353	9369	9380	9406	9457	9502
	SV.IOP			3414 #	8988	9696
	SV.IOPF			3415 #	9697
	SV.IOPF_AR		3416 #	9697
	SV.PAR			3418 #	9223
	SV.PAR_AR		3419 #	9223
	SV.PFW			3420 #	9232	9233	9258	9474	9478	9608	9633
	SV.PFW_AR		3421 #	9232	9233	9258	9478
	SV.SC_AR		3423 #	9239
	SV.SC			3422 #	9239	9496
	SV.VMA			3424 #	9242	9379	9482	9526	9533
	SV.VMA_AR		3425 #	9242
	SWD			3427 #
	SWD_AR			3428 #
	SWEEP CACHE		3429 #	8382
	T0			3433 #	5893	5911	6723	6731	6761	6763	6766	6778	6817	7752	7775
				7819	7825	7837	7847	7886	7907	9742	10143	10152	10318	10321
	T0_AR			3434 #	5893	7752	7825	7886	10143	10318
	T1			3435 #	5909	5931	6724	6732	6765	6777	7776	7780	7782	7811	7815
				10294	10296	10333
	T1_AR			3436 #	5909	7776	7782	10294	10296
	T2			3437 #	6695	6703	6710	6719	6735	6807	6856	6857	6873	6877	6917
				6920	6997	7252	7332	7345	7373	7784	7855	10305	10332
	T2_AR			3438 #	7784	10305
	TAKE INTRPT		3439 #	3911	4867	5193	5208	5333	7631	9845
	TEST AR			3440 #
	TEST AR.AC0		3441 #	4571
	TEST AR.BR		3442 #	4846	8296	8298	9437
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page CRF-53
; 							Cross Reference Listing					

	TEST AR.MSK		3443 #	10439
	TEST ARX		3444 #	10085
	TEST ARX.AR*4		3445 #
	TEST BRL		3446 #	8300
	TEST CBR		3448 #	9329	9417
	TEST FETCH		3450 #	4563	4566	4571	8296	8298	8300	10085
	TRAP1			3451 #
	TRAP2			3452 #	4943	4948	4996	4997	5001
	TRAP3			3453 #
	UNCSH PHYS REF		3467 #
	UPT FETCH		3468 #
	UPT REF			3469 #	5246	5248	8964	9283	9663
	USER REF		3470 #
	VMA_#			3472 #	5182	5191	5247	7887	7897	7898	7899	7900	8919	8954	8956
				8958	8960	9628
	VMA_#+AR32-35		3473 #	7973	9276	9278
	VMA_40			3474 #
	VMA_40+PI*2		3475 #	8992	8993
	VMA_41			3476 #
	VMA_41+PI*2		3477 #	9005
	VMA_420+TRAP		3478 #	3834	3836
	VMA_430+MODE		3479 #	5245
	VMA_AC3			3480 #	10729	10755	10829
	VMA_AR			3481 #	4822	4826	4939	4990	7201	7242	7324	7338	8311	8312	8382
				8833	9015	9127	9305	9366	10627	10700	10704	10759	10845	10847
	VMA_AR AND ADMSK	3482 #	5261	8990	9002
	VMA_AR+1		3483 #	9060	9134
	VMA_AR+BR		3484 #
	VMA_AR+CBR		3486 #	9340
	VMA_AR+E0		3488 #	10858
	VMA_AR+E0+1		3489 #	10743
	VMA_AR+E1		3490 #	10383	10447	10806
	VMA_AR+SBR		3492 #	9300	9315	9391
	VMA_AR+XR		3497 #
	VMA_AR-1		3498 #	9044
	VMA_ARX			3499 #	4989	5185	8023	8051	8173	10626
	VMA_ARX AND ADMSK	3500 #	9024	9048	9070
	VMA_ARX+1		3501 #	9850	9853	9855	9858
	VMA_ARX+BR		3502 #	8155	8171
	VMA_ARX+CBR		3504 #	9423
	VMA_ARX+XR		3506 #
	VMA_BR			3508 #	4769	4941	8039	9363
	VMA_E0+1		3509 #	10479	10741
	VMA_FM[]		3510 #	10315
	VMA_MQ			3511 #	8767	8882	10114
	VMA_MQ+1		3512 #	10115
	VMA_PC			3513 #	10524	10539	10599	10602
	VMA_PC+1		3514 #	10088	10209	10227	10274	10366	10653
	VMA_SV.VMA		3516 #	9533
	VMA_VMA HELD		3527 #	3916	9220
	VMA_VMA+1		3530 #	4282	4306	4796	4800	4810	4811	5028	5053	5186	5194	5251
				5275	5277	5842	5897	6472	6688	7205	7327	7580	7928	8455	8947
				8966	9083	9669	9671	9672	10232	10234	10373	10783	10850
	VMA_VMA-1		3531 #	7586	8945	10787
	WR PT ENTRY		3533 #	8752	9484
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page CRF-54
; 							Cross Reference Listing					

	WR REFILL RAM		3534 #	8390
	WRITE (E)		3536 #	5003
	XR			3539 #	3833	3913	7632	9846
	[]_#[]			2247 #
	[]_ADA[]		2248 #
	[]_ADB[]		2249 #
	[]_FM[]			2250 #	6715	6719	6725	6730	6734	6761	6765	6766	6777	6778	6808
				6918	6990	6997	7183	7184	7196	7197	7198	9976
	[]_[]*FM[]		2245 #	6710	6856	6873	6924	6926	7127	7128	7134	7135	7364	7367
				7883
	[]_[]*[]		2244 #
	[]_[]-FM[]		2246 #	9978
	(AR+ARX+MQ)*.25		2252 #	6654	6829	6961
	(AR+ARX+MQ)*2		2253 #	5636	5637	5638	5640	5653	5654	5655	5657	6630	6828	6830
				6941
	(MQ)*.25		2254 #	6654	6829	6961
	(MQ)*2			2255 #	5636	5637	5638	5640	5653	5654	5655	5657	6630	6828	6830
				6941
(D) MACRO%
	AC			3578 #	4053	4054	4062	4063	4067	4068	4072	4073	4128	4130	4137
				4138	4142	4143	4147	4148	4152	4153	4157	4158	4162	4163	4167
				4168	4174	4175	4179	4180	4184	4185	4189	4190	4194	4195	4199
				4200	4204	4205	4209	4210	4314	4315	4324	4325	4334	4335	4344
				4346	4353	4354	4369	4370	4379	4380	4389	4390	4399	4400	4409
				4410	4420	4421	4430	4431	4440	4441	4450	4451	4460	4461	4883
				5089	5545	5546	5557	5558	5570	5571
	B			3581 #	4317	4327	4337	4351	4356	4372	4382	4392	4402	4412	4423
				4433	4443	4453	4463	5548	5560	5573
	BLKI			3614 #	8213	8260	8271
	BLKO			3615 #	8262	8273
	CONI			3618 #	8196	8207	8218	8242	8254	8265	8276
	CONO			3619 #	8195	8206	8217	8241	8253	8264	8275
	CONSO			3620 #	8198	8209	8220	8244	8256	8267	8278
	CONSZ			3621 #	8197	8208	8219	8243	8255	8266	8277
	DATAI			3616 #	8192	8214	8261	8272
	DATAO			3617 #	8194	8216	8239	8240	8263	8274
	DBL AC			3582 #	5602	5603	5675	5676	5680	5681
	DBL B			3583 #	5605	5678	5683
	EA			3557 #	4114	4130	4346	4713	4911	4913	5009	5010	5067	5068	5069
				5070	5072	5073	5074	5075	5077	5078	5079	5080	5082	5083	5084
				5085	5088	5089	5091	5092	5093	5094	5095	5096	5097	5098	5109
				5110	5111	5112	5113	5114	5118	5119	5120	5121	5122	5123	5124
				5125	5126	5127	5128	5129	5130	5131	5132	5133	5134	5135	5136
				5137	5138	5139	5140	5141	5142	5143	5144	5145	5146	5147	5148
				5149	5153	5154	5300	5413	5950	5951
	FL-AC			3584 #	5954	5959	5960	5964	5969	5970	6027	6032	6033	6056	6057
				6061	6062	6219	6257
	FL-BOTH			3586 #	5957	5962	5967	5972	6030	6035	6059	6064
	FL-MEM			3585 #	5956	5961	5966	5971	6029	6034	6058	6063
	I			3552 #	4058	4474	4475	4476	4477	4478	4479	4490	4491	4492	4493
				4494	4495	4496	4497	4508	4509	4510	4511	4512	4513	4514	4515
				4526	4527	4528	4529	4530	4531	4532	4533	4582	4583	4584	4585
				4586	4587	4588	4589	4657	4658	4659	4660	4661	4662	4663	4664
				4672	4673	4674	4675	4676	4677	4678	4679	4687	4688	4689	4690
				4691	4692	4693	4694	4702	4703	4714	4883	4914	5011	5012	5301
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page CRF-55
; 							Cross Reference Listing					

				5406	5407	5408	5409	5410	5411	5412	5571	5603	5676	5681	5960
				5970	6033	6062	6219	8193	8195	8196	8197	8198	8206	8207	8208
				8209	8215	8217	8218	8219	8220	8224	8225	8226	8227	8228	8229
				8230	8231	8241	8242	8243	8244	8251	8252	8253	8254	8255	8256
				8264	8266	8267	8275	8277	8278
	I-PF			3553 #	4054	4063	4068	4073	4138	4143	4148	4153	4158	4163	4168
				4175	4180	4185	4190	4195	4200	4205	4210	4314	4315	4325	4335
				4354	4364	4370	4380	4390	4400	4409	4410	4421	4431	4441	4451
				4460	4461	4472	4473	4481	4482	5546	5558
	IW			3571 #	4316	4317	4411	4412	4462	4463
	M			3579 #	4064	4069	4074	4134	4139	4144	4149	4154	4159	4164	4169
				4176	4181	4186	4191	4196	4201	4206	4211	4316	4326	4336	4350
				4355	4365	4366	4371	4381	4391	4401	4411	4422	4432	4442	4452
				4462	5547	5559	5572	5604	5677	5682	8202
	R			3560 #	4275	4276	4483	4484	4485	4486	4487	4488	4499	4500	4501
				4502	4503	4504	4505	4506	4517	4518	4519	4520	4521	4522	4523
				4524	4535	4536	4537	4538	4539	4540	4541	4542	4591	4592	4593
				4594	4595	4596	4597	4598	4609	4610	4611	4612	4613	4614	4615
				4616	4882	4912	5570	5602	5675	5680	5829	5830	5831	5832	5954
				5955	5959	5964	5965	5969	6027	6028	6032	6056	6057	6061	6220
				6253	6254	6256	6257	6464	6465	6466	6467	6681	6682	6683	6684
				7387	7389	8194	8204	8205	8216	8239	8240	8263	8274
	R-PF			3561 #	4053	4062	4067	4072	4128	4137	4142	4147	4152	4157	4162
				4167	4174	4179	4184	4189	4194	4199	4204	4209	4324	4334	4344
				4353	4363	4369	4379	4389	4399	4420	4430	4440	4450	5545	5557
	RPW			3564 #	4060	4065	4070	4075	4113	4134	4135	4139	4140	4145	4150
				4155	4160	4165	4170	4176	4177	4181	4182	4187	4192	4197	4202
				4207	4212	4326	4327	4336	4337	4350	4351	4355	4356	4371	4372
				4381	4382	4391	4392	4401	4402	4422	4423	4432	4433	4442	4443
				4452	4453	4625	4626	4627	4628	4629	4630	4631	4632	4640	4641
				4642	4643	4644	4645	4646	4647	5547	5548	5559	5560
	RW			3562 #	5572	5573	5604	5605	5677	5678	5682	5683	5956	5957	5961
				5962	5966	5967	5971	5972	6029	6030	6034	6035	6058	6059	6063
				6064	7386	7388	8213	8260	8262	8271	8273
	S			3580 #	4060	4065	4070	4075	4135	4140	4145	4150	4155	4160	4165
				4170	4177	4182	4187	4192	4197	4202	4207	4212
	SJC-			3605 #	4582	4591	4609	4625	4640	4657	4672	4687
	SJCA			3609 #	4586	4595	4613	4629	4644	4661	4676	4691
	SJCE			3607 #	4584	4593	4611	4627	4642	4659	4674	4689	5069
	SJCG			3612 #	4589	4598	4616	4632	4647	4664	4679	4694	5075
	SJCGE			3610 #	4587	4596	4614	4630	4645	4662	4677	4692	4702	5073
	SJCL			3606 #	4583	4592	4610	4626	4641	4658	4673	4688	4703	5068
	SJCLE			3608 #	4585	4594	4612	4628	4643	4660	4675	4690	5070
	SJCN			3611 #	4588	4597	4615	4631	4646	4663	4678	4693	5074
	TC-			3596 #	4508	4509	4517	4518
	TCA			3598 #	4512	4513	4521	4522
	TCE			3597 #	4510	4511	4519	4520
	TCN			3599 #	4514	4515	4523	4524
	TN-			3588 #
	TNA			3590 #	4476	4477	4485	4486
	TNE			3589 #	4474	4475	4483	4484
	TNN			3591 #	4478	4479	4487	4488	4714
	TO-			3600 #	4526	4527	4535	4536
	TOA			3602 #	4530	4531	4539	4540
	TOE			3601 #	4528	4529	4537	4538
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page CRF-56
; 							Cross Reference Listing					

	TON			3603 #	4532	4533	4541	4542
	TZ-			3592 #	4490	4491	4499	4500
	TZA			3594 #	4494	4495	4503	4504
	TZE			3593 #	4492	4493	4501	4502
	TZN			3595 #	4496	4497	4505	4506
	W			3559 #	4064	4069	4074	4144	4149	4154	4159	4164	4169	4186	4191
				4196	4201	4206	4211	4295	4296	4365	4366	8191	8192	8202	8203
				8214	8237	8238	8249	8250	8261	8265	8272	8276
(U) MAJVER			1874 #
(U) MARK			1868 #
(U) MBOX CTL			2118 #	9250	9252	9254
	CLR PT LINE		2123 #	8844
	CLR PT LINE(NK)		2121 #	8850
	NORMAL			2127 #	8846	8852
	PT DIR CLR		2126 #	8835
	PT DIR CLR(NK)		2122 #	8839
	PT DIR WR		2124 #
	PT WR			2125 #	8752	9484
	SET IO PF ERR		2120 #	9699
	SET PAGE FAIL		2119 #
(U) MEM				1699 #
	A RD			1703 #	3870	3871	3872	3873	3883	3884	9820	9821	9822	9823	9838
				9839
	AD FUNC			1712 #	9526
	ARL IND			1701 #	4101	5048	5049	5264	5421	5427	5479	5484	5487	5687	5692
				6015	6016	6019	6237	6343	6392	6513	6516	6574	6578	6598	6600
				6851	6853	6881	6986	7017	7246	7253	7354	7426	7493	7757	7771
				7774	7779	7779	7786	7813	7835	7846	7862	7864	7903	8001	8089
				8420	8468	8754	8800	8813	8826	8879	8896	8942	9143	9237	9257
				9292	9293	9294	9382	9385	9386	9401	9483	9852	10049	10050	10076
				10210	10260	10270	10311	10313	10345	10347	10386	10390	10393	10433	10493
				10516	10563	10625	10674	10703	10729	10758	10829	10863
	B WRITE			1704 #	4080	4089	4221	4223	4226	4229	4233	4237	4246	4247	4253
				4254	4260	4261	4267	4268	4321	4331	4341	4360	4376	4386	4396
				4406	4416	4427	4437	4447	4457	4467	4898	5552	5565	5597	5614
				5705	5707	5712	6442	6446	8292	8479	8827
	EA CALC			1713 #	3861	3863	3865	3867	3885	3887	4931	4936	4977	4979	5003
				7415	7422	7482	7489	7597	7601	7603	7605	7607	7610	7611	7612
				7613	7621	7622	7623	7625	8113	8114	8121	8123	9815	9816	9817
				9818	9840	9841	10755	10759	10783
	FETCH			1705 #	4563	4566	4571	4602	4620	4668	4683	4699	4707	4846	8296
				8298	8300	10085	10145
	IFET			1716 #	3733	3966	3999	4001	4007	4009	4099	4106	4289	4769	4798
				4822	4826	4904	4941	4946	4989	4990	5022	5028	5053	5261	5319
				5426	5437	5456	5475	5490	5513	5538	5757	5766	5886	5927	6315
				6316	6671	7020	7146	7148	7149	7204	7212	7216	7432	7506	7762
				7781	7860	7879	7911	8032	8038	8046	8128	8178	8303	9043	10023
				10236	10312	10374	10676
	LOAD AR			1707 #	4727	4741	4800	4810	4811	5186	5903	7201	7242	7324	7338
				7580	7892	7974	8018	8030	8039	8048	8155	8171	8311	8963	8964
				8995	9018	9019	9089	9101	9102	9106	9107	9282	9283	9301	9306
				9321	9343	9368	9392	9427	9672	9903	10116	10315	10383	10447	10479
				10626	10627	10700	10704	10741	10743	10806	10858
	LOAD ARX		1708 #	3840	4282	4939	5184	5194	5246	5842	6472	6688	7222	7327
				7928	8966	9009	9010	9012	9015
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page CRF-57
; 							Cross Reference Listing					

	MB WAIT			1702 #	3846	3910	3911	3944	3955	3977	3988	4000	4004	4026	4091
				4285	4286	4306	4812	4813	4816	4828	4895	4943	4948	4954	4954
				4982	4983	4985	4986	5001	5002	5247	5250	5260	5273	5851	5853
				5941	5943	7202	7230	7243	7326	7340	7581	7595	7598	7630	7631
				7691	7693	7716	7716	7720	7902	7975	8000	8022	8024	8044	8050
				8118	8119	8126	8129	8169	8176	8179	8291	8295	8297	8307	8383
				8778	8860	8921	8946	9032	9041	9042	9090	9209	9223	9287	9302
				9322	9348	9363	9370	9393	9430	9628	9664	9674	9844	9845	9992
				10030	10117	10319	10388	10449	10559	10632	10760	10775	10788	10808	10813
				10849	10857
	REG FUNC		1706 #	3919	4889	8382	8390	8447	8451	8767	8803	8821	8833	9222
	RESTORE VMA		1711 #	3916	7981	7998	9220	9482
	RPW			1715 #
	RW			1714 #
	WRITE			1709 #	4119	4301	4304	4307	4636	4651	4776	4792	4796	5026	5027
				5037	5185	5192	5248	5258	5275	5277	7567	7570	7579	7583	7584
				7586	7737	7999	8023	8051	8173	8308	8414	8455	8882	8945	8947
				9033	9034	9065	9066	9093	9111	9112	9221	9354	9469	9663	9669
				9671	10768	10784	10787	10844	10845	10846	10847	10850
(U) MINVER			1875 #
(U) MQ				1605 #
	MQ SEL			1609 #	5636	5637	5638	5640	5653	5654	5655	5657	5839	6630	6662
				6828	6830	6941	7243	7340	7361
	MQ*.25			1608 #	5632	5642	5644	5646	5648	5660	5662	5664	5665	5670	5862
				5884	6623	6824	6934	6981
	MQ*2			1607 #	5747	5750	5755	5764	5780	5781	5782	5783	5784	5785	5786
				5787	5811	5812	5813	5814	5882	5922	5924	7948	7949	7950	7951
				10153
	MQM SEL			1610 #	6654	6829	6836	6961	9971
	SH			1606 #	4121	5266	5466	5473	5482	5484	5489	5527	5587	5609	5815
				5816	5817	5818	5855	5864	5870	5909	5932	6007	6010	6012	6047
				6313	6373	6506	6519	6521	6525	6543	6545	6560	6570	6577	6634
				6635	6641	6644	6646	6788	6812	6815	6820	6868	6946	6947	6953
				6956	6958	7333	7716	7855	7968	8013	8016	8022	8047	8764	8870
				8918	8987	9808	9896	10007	10138	10191	10333	10369	10555	10641	10643
				10664
(U) MQ CTL			1989 #
	AD			1997 #	6836	9971
	MQ*.25			1995 #	6654	6829	6961
	MQ*2			1991 #	5636	5637	5638	5640	5653	5654	5655	5657	6630	6828	6830
				6941
	SH			1994 #
	0S			1993 #	5839	6662	7243	7340	7361
	1S			1996 #
(U) MREG FNC			2104 #
	LOAD CCA		2111 #	8382
	LOAD EBR		2116 #	8833
	LOAD UBR		2115 #	8767
	MAP			2117 #	3919	4889	9222
	READ EBR		2107 #	8821
	READ ERA		2108 #	8447
	READ UBR		2106 #	8803
	SBUS DIAG		2105 #	8451
	WR REFILL RAM		2109 #	8390
(U) MTR CTL			2128 #
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page CRF-58
; 							Cross Reference Listing					

	CLR E CNT		2131 #	8936
	CLR M CNT		2132 #	8937
	CLR PERF		2130 #	8935
	CLR TIME		2129 #	8934
	CONO MTR		2135 #	8903
	CONO TIM		2136 #	8759
	LD PA LH		2133 #	8892
	LD PA RH		2134 #
(U) NONSTD			1901 #
	OPTIONS			1905 #	8407
(U) PARITY			2187 #
(D) PARITY			2229 #
(U) PC FLAGS			2001 #
	AROV			2002 #	5523	5598	5615	5876	6307	7149
	DIV CHK			2008 #	5702
	FDV CHK			2009 #	6081	6610	6865
	FLOV			2003 #	7006	7011	7212	7370
	FPD			2004 #	7595	7628	8003	8311	8312	10335
	FXU			2007 #	7010	7216	7371
	TRAP1			2006 #
	TRAP2			2005 #	4943	4948	4996	4997	5001
(U) PV				1908 #
	OPTIONS			1910 #	8407
(U) PXCT			1929 #
(U) SC				1655 #
	AR SHIFT		1658 #	5421	5440	5442	5461	5464	5480	6237
	FE			1656 #	6766	6769	7696	7732	8861	9482
	SCAD			1657 #	3789	3802	3804	3917	4004	4026	4288	4301	4304	4842	4844
				4858	5207	5250	5251	5424	5449	5452	5454	5469	5472	5485	5488
				5500	5504	5526	5528	5531	5540	5594	5614	5692	5705	5707	5711
				5846	5875	5893	5895	5899	5928	5929	5939	5994	5997	6005	6007
				6010	6014	6045	6048	6074	6173	6177	6179	6243	6296	6310	6312
				6368	6374	6471	6491	6504	6522	6540	6543	6545	6561	6574	6580
				6602	6615	6629	6635	6712	6717	6767	6771	6785	6803	6833	6837
				6858	6930	6948	6982	6984	6988	6993	7000	7002	7004	7024	7244
				7254	7355	7359	7375	7429	7431	7438	7443	7500	7503	7582	7691
				7698	7734	7736	7753	7771	7777	7801	7830	7854	7861	7863	7885
				7893	7902	7904	7926	7928	7970	7985	7986	7991	8003	8379	8757
				8777	8779	8783	8807	8818	8832	8871	8882	8924	8944	8994	9014
				9076	9100	9105	9110	9128	9135	9144	9222	9225	9251	9253	9256
				9287	9384	9411	9417	9418	9423	9428	9501	9509	9515	9650	9652
				9735	9809	10010	10015	10174	10200	10226	10233	10235	10260	10263	10279
				10282	10294	10296	10310	10340	10343	10369	10376	10449	10478	10516	10518
				10526	10544	10557	10563	10587	10614	10630	10632	10633	10642	10644	10645
				10652	10700	10702	10742	10811	10860	10862
(U) SCAD			1632 #
	A			1633 #	3789	3802	3804	3914	3916	3917	3955	3977	4004	4004	4026
				4026	4102	4288	4301	4304	4842	4844	4858	4858	4875	5250	5251
				5265	5424	5427	5430	5432	5480	5483	5531	5540	5588	5594	5610
				5614	5705	5707	5711	5718	5725	5728	5815	5816	5817	5818	5846
				5856	5871	5875	5895	5911	5926	5928	5939	5994	5997	6045	6047
				6077	6262	6310	6368	6374	6392	6432	6471	6483	6522	6570	6580
				6602	6607	6615	6629	6635	6662	6712	6715	6717	6719	6784	6785
				6803	6810	6815	6833	6837	6854	6858	6862	6921	6930	6948	6982
				6988	6993	7000	7002	7004	7024	7244	7251	7254	7325	7339	7355
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page CRF-59
; 							Cross Reference Listing					

				7357	7359	7375	7429	7438	7500	7568	7571	7582	7615	7616	7617
				7618	7771	7802	7804	7830	7893	7902	7904	7905	7909	7910	7926
				7928	7946	7955	7970	7985	7986	7991	8003	8379	8407	8414	8449
				8757	8777	8779	8783	8807	8818	8832	8863	8871	8882	8924	8944
				8994	9014	9076	9100	9105	9110	9144	9203	9208	9222	9235	9287
				9352	9384	9447	9501	9501	9509	9553	9650	9652	9735	9847	9894
				9902	10008	10010	10045	10138	10191	10193	10200	10226	10233	10235	10263
				10270	10279	10282	10282	10313	10340	10340	10343	10343	10376	10449	10461
				10478	10483	10502	10530	10533	10585	10589	10614	10633	10652	10730	10742
				10803	10811	10830	10834	10860	10862
	A+1			1637 #	5632	5642	5644	5646	5648	5660	5662	5664	5665	5670	5692
				5862	5893	5899	5899	6015	6016	6019	6074	6381	6431	6578	6597
				6599	6627	6661	6821	6823	6850	6852	6938	6969	7801	9411	10260
				10369	10642	10644	10645	10675
	A+B			1635 #	4866	5449	5452	5454	5469	5472	5485	5488	5498	5500	5504
				5522	5526	5528	5636	5637	5638	5640	5653	5654	5655	5657	5798
				5801	6006	6007	6014	6048	6050	6088	6091	6177	6179	6239	6296
				6312	6345	6379	6501	6504	6542	6543	6561	6574	6624	6626	6721
				6730	6935	6936	6984	6986	7221	7232	7239	7246	7431	7583	7595
				7597	7698	7726	7753	7774	7779	7835	7854	7885	7890	7921	7923
				7969	7977	8416	8769	8800	9011	9075	9128	9139	9236	9253	9255
				9724	9729	9809	9810	10003	10015	10174	10308	10346	10348	10518	10524
				10539	10540	10598	10599	10602	10632	10635	10686	10699
	A-1			1636 #	4869	5747	5750	5755	5764	5780	5781	5782	5783	5784	5785
				5786	5787	5811	5812	5813	5814	5905	5929	6348	6491	6630	6941
				7235	7906	7948	7949	7950	7951	8843	8849	9282	9283	10293	10295
	A-B			1638 #	5207	6005	6010	6173	6243	6279	6283	6350	6352	6372	6376
				6385	6394	6540	6545	6631	6658	6767	6771	6943	6964	7230	7426
				7443	7493	7503	7578	7580	7691	7733	7734	7736	7757	7777	7861
				7862	7863	7864	8001	8004	9135	9143	9413	9418	9428	9438	9439
				10047	10049	10310	10516	10526	10544	10557	10563	10587	10672	10684	10708
				10711	10733	10793	10809
	A-B-1			1634 #	7717	9511	9515	10186	10294	10296
	AND			1640 #	7013	8409	8412	8764	8996	8998	9007	9032	9057	9074	9123
				9132	9225	9251	9256	9288	9304	9331	9341	9348	9365	9378	9399
				9401	9417	9423	9429	9431	9472	9474	9910	10399	10463	10464	10468
				10628	10630	10674	10700	10702	10721	10736
	OR			1639 #	7998	9226	9257	9370	9393	9445	9476	9481	9483	9911	10194
				10465	10466	10467	10469	10493	10715	10716	10863
(U) SCADA			1641 #
	AR EXP			1644 #	5994	5997	6005	6045	6048	6074	6173	6239	6279	6283	6471
				6540	6574	7244	9501	9501	9509
	AR0-5			1643 #	5427	5430	6243	7013	7426	7429	7438	7443	7493	7500	7582
				7757	7771	7830	7861	7863	7905	7909	7998	8001	8003	8409	8412
				8764	9143	9144	9225	9251	9352	9417	9423	9431	9447	9474	9483
				9724	9729	10049	10399	10461	10463	10464	10465	10466	10467	10468	10469
				10493	10516	10530	10563	10585	10628	10674	10675	10686	10700	10702	10721
				10736	10742	10809	10863
	FE			1642 #	4869	5432	5485	5488	5632	5642	5644	5646	5648	5660	5662
				5664	5665	5670	5747	5750	5755	5764	5780	5781	5782	5783	5784
				5785	5786	5787	5811	5812	5813	5814	5862	5911	6006	6015	6016
				6019	6088	6091	6312	6345	6348	6350	6352	6372	6376	6379	6381
				6385	6394	6431	6432	6491	6542	6597	6599	6624	6626	6627	6630
				6631	6658	6661	6662	6821	6823	6850	6852	6935	6936	6938	6941
				6943	6964	6969	6984	7230	7232	7235	7239	7431	7578	7580	7698
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page CRF-60
; 							Cross Reference Listing					

				7717	7736	7777	7906	7910	7948	7949	7950	7951	8414	8416	8843
				8849	9011	9075	9128	9139	9226	9235	9253	9255	9257	9288	9331
				9348	9370	9378	9393	9401	9413	9429	9439	9445	9472	9476	9910
				9911	10008	10047	10174	10191	10193	10194	10293	10294	10295	10296	10310
				10313	10518	10526	10533	10589	10632	10642	10644	10645	10672	10684	10699
				10708	10711	10715	10716	10733	10793	10834
	#			1645 #	3789	3802	3804	3914	3916	3917	3955	3977	4288	4301	4304
				4842	4844	5207	5250	5251	5424	5449	5452	5454	5469	5472	5480
				5483	5500	5504	5522	5526	5528	5531	5540	5588	5594	5610	5614
				5705	5707	5711	5718	5725	5728	5815	5816	5817	5818	5846	5856
				5871	5875	5895	5926	5939	6007	6010	6014	6047	6050	6077	6177
				6179	6262	6296	6310	6368	6374	6483	6501	6504	6522	6543	6545
				6561	6570	6580	6602	6607	6615	6629	6635	6712	6717	6767	6771
				6784	6785	6810	6815	6833	6837	6858	6862	6930	6948	6982	6988
				6993	7000	7002	7004	7024	7251	7254	7325	7339	7355	7359	7375
				7503	7568	7571	7615	7616	7617	7618	7691	7733	7734	7802	7804
				7890	7893	7902	7904	7926	7928	7946	7955	7970	7985	7986	7991
				8004	8379	8407	8449	8757	8777	8779	8783	8807	8818	8832	8863
				8871	8882	8924	8944	8994	8996	8998	9007	9014	9032	9057	9074
				9076	9100	9105	9110	9123	9132	9135	9203	9208	9222	9256	9287
				9304	9341	9365	9384	9399	9438	9481	9553	9650	9652	9735	9809
				9847	9894	9902	10010	10045	10138	10200	10226	10233	10235	10263	10279
				10282	10282	10340	10340	10343	10343	10376	10449	10478	10483	10502	10544
				10557	10587	10614	10630	10633	10635	10652	10803	10811	10860	10862
(U) SCADA EN			1646 #
	0S			1647 #	4004	4004	4026	4026	4102	4858	4858	4866	4875	5265	5498
				5636	5637	5638	5640	5653	5654	5655	5657	5692	5798	5801	5893
				5899	5899	5905	5928	5929	6392	6578	6715	6719	6721	6730	6803
				6854	6921	6986	7221	7246	7357	7583	7595	7597	7726	7753	7774
				7779	7801	7835	7854	7862	7864	7885	7921	7923	7969	7977	8769
				8800	9236	9282	9283	9411	9418	9428	9511	9515	9810	10003	10015
				10186	10260	10270	10308	10346	10348	10369	10524	10539	10540	10598	10599
				10602	10730	10830
(U) SCADB			1649 #
	AR0-8			1652 #	4866	6296	6721	6730	7221	9256	9288	9304	9341	9365	9378
				9399	9481	9910	9911	10003	10186	10308	10630	10635
	AR6-11			1651 #	7426	7493	7578	7580	7595	7597	7753	7757	7854	7885	7890
				7977	8001	8004	8996	8998	9007	9032	9057	9074	9123	9132	9143
				9724	9729	10015	10047	10049	10516	10524	10526	10539	10540	10544	10563
				10587	10598	10599	10602	10809
	SC			1650 #	5207	5449	5452	5454	5469	5472	5485	5488	5498	5500	5504
				5522	5526	5528	5636	5637	5638	5640	5653	5654	5655	5657	5798
				5801	6005	6006	6007	6010	6014	6048	6050	6173	6177	6179	6239
				6501	6504	6540	6542	6543	6545	6561	6574	6631	6658	6767	6771
				6943	6964	6984	6986	7246	7431	7503	7583	7691	7698	7717	7726
				7733	7734	7736	7774	7777	7779	7835	7862	7864	7921	7923	7969
				8769	8800	9128	9135	9225	9226	9236	9253	9255	9257	9401	9413
				9417	9418	9423	9428	9431	9438	9474	9483	9511	9515	9809	9810
				10174	10294	10296	10346	10348	10493	10518	10557	10632	10674	10686	10715
				10716	10863
	#			1653 #	6088	6091	6243	6279	6283	6312	6345	6350	6352	6372	6376
				6379	6385	6394	6624	6626	6935	6936	7013	7230	7232	7239	7443
				7861	7863	7998	8409	8412	8416	8764	9011	9075	9139	9251	9331
				9348	9370	9393	9429	9439	9445	9472	9476	10194	10310	10399	10463
				10464	10465	10466	10467	10468	10469	10628	10672	10684	10699	10700	10702
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page CRF-61
; 							Cross Reference Listing					

				10708	10711	10721	10733	10736	10793
(U) SH				1665 #	3861	3863	3865	3867	3870	3871	3872	3873	3884	3887	7415
				7422	7482	7489	7601	7603	7605	7607	7610	7611	7612	7613	7622
				7625	9815	9816	9817	9818	9820	9821	9822	9823	9839	9841
	AR			1667 #	4119	4121	4121	4866	5266	5497	5499	5503	5517	5587	5609
				5704	5706	5717	5815	5816	5817	5818	5845	5864	5870	5932	6007
				6010	6013	6016	6047	6262	6297	6498	6500	6503	6560	6570	6577
				6606	6641	6644	6646	6766	6768	6770	6784	6812	6815	6820	6862
				6868	6922	6953	6956	6958	6987	7002	7004	7206	7244	7341	7355
				7362	7419	7429	7486	7500	7581	7697	7716	7855	7926	7946	7954
				7968	7970	7977	8013	8016	8022	8047	8083	8476	8777	8779	8807
				8870	8908	8918	8987	9014	9039	9056	9058	9076	9125	9144	9289
				9378	9411	9650	9652	9752	9808	10004	10007	10007	10040	10078	10112
				10138	10138	10156	10158	10210	10269	10333	10335	10369	10377	10450	10450
				10524	10529	10540	10555	10584	10599	10602	10631	10703	10729	10736	10829
	AR SWAP			1669 #	4080	4226	4229	4232	4233	4236	4237	4253	4254	4260	4261
				4566	4569	4814	4817	4839	5037	5048	5049	5270	5314	5993	6044
				6073	7352	7978	7991	8089	8107	8108	8161	8162	8289	8407	8411
				8413	8420	8426	8468	8474	8754	8813	8821	8827	8890	8896	8911
				8923	9237	9242	9242	9427	9472	9502	9712	10390	10452	10452
	ARX			1668 #	3832	3913	4757	4775	4942	4947	4949	5054	5271	5276	5475
				5484	5490	5521	5525	5881	5893	5898	5909	6088	6342	6515	6518
				6526	6543	6545	6633	6726	6731	6945	7221	7252	7333	7585	7632
				7782	7817	7909	7930	8031	8033	8427	8756	8893	8910	8942	9074
				9192	9193	9208	9239	9258	9300	9331	9340	9418	9423	9482	9510
				9513	9515	9668	9718	9740	9744	9813	9846	9850	9853	9855	9858
				9896	10086	10142	10191	10201	10273	10294	10296	10320	10393	10494	10531
				10536	10592	10625	10626	10627	10641	10643	10652	10656	10664	10685	10704
				10734	10782	10790	10844	10845	10846	10847
	SHIFT AR!ARX		1666 #	4003	4033	4307	4843	5207	5207	5252	5257	5428	5430	5449
				5454	5466	5471	5473	5482	5487	5489	5502	5527	5533	5538	5539
				5597	5724	5727	5855	5880	5882	5883	5886	5894	5896	5900	5911
				5940	6012	6015	6018	6311	6313	6317	6373	6375	6506	6517	6519
				6521	6525	6527	6631	6634	6635	6658	6670	6772	6777	6779	6788
				6943	6946	6947	6964	6989	7001	7018	7146	7148	7357	7360	7696
				7704	7732	7735	7735	7737	7894	7904	7908	7989	8381	8764	8792
				8825	8947	8953	8955	8957	8959	8990	9007	9077	9114	9292	9302
				9303	9382	9386	9654	9736	10016	10203	10237	10262	10378	10461	10615
				10633	10633	10650
(U) SKIP			1728 #
	AC REF			1769 #
	AC#0			1736 #	4002	4621	6244	6246	6247
	AD CRY0			1746 #	4876	4931	4936	4981	5000	5316	5905	5923	5924	6089	6176
				6178	6342	6369	6615	6640	6930	6952	7772	7804	8016	8026	8102
				9081	9437	10113	10164	10211	10275	10278	10309	10367	10386	10439	10818
				10859
	AD#0			1748 #	5424	5519	5594	5710	6482	6528	6556	6699	6798	6951	7144
				7147	7203	7353	7780	7979	8044	9116	9329	9417
	AD0			1747 #	5324	5326	5612	5799	5802	5872	5900	6078	6489	6606	6701
				6705	6711	6748	6759	6761	6804	6808	6816	6844	6845	6862	6874
				6880	6918	6922	7210	7214	7349	7374	7818	7975	8014	8757	10004
				10013	10209	10262
	ADX0			1745 #	8125	8175	10390
	AR0			1735 #	4083	4257	4264	5318	5435	5694	5726	5729	6262	6575	6694
				6698	6872	7206	7237	7582	9501	9509	9749	9758	10028	10078	10530
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page CRF-62
; 							Cross Reference Listing					

				10585
	AR18			1734 #	4243	4250	5422	5440	5442	5461	5464	5480	8765	9852	10473
	ARX0			1733 #	10139	10449	10637	10655	10680
	BR0			1732 #	5926	6080	6173	6609	6864	6881	10033	10155	10334
	EVEN PAR		1731 #
	FETCH			1753 #
	INTRPT			1761 #	3862	3864	3866	3868	3886	3888	4870	4887	4902	5181	7602
				7604	7606	7608	7624	7626	8024	8050	8123	8173	8348	9287	9371
				9553	9815	9816	9817	9818	9840	9841	10046	10095	10174	10377	10518
				10701	10705
	IO LEGAL		1764 #	4728	4729	4735	4737	4895	8285	8291	8380	8387	8389	8394
				8408	8421	8424	8450	8469	8472	8751	8755	8783	8814	8817	8869
				8885	8888	8897	8900	8909	9608
	KERNEL			1754 #	4725
	P!S XCT			1765 #	8089	8114
	PC SEC0			1741 #	4757	4758	4933	4984	4987	5022	5024	5047	5177	6225	7411
				7418	7478	7485	9968	10528	10529	10583	10584	10625	10665	10697	10699
				10731	10789	10831
	PI CYCLE		1758 #	8297	8300	8309	9633
	PUBLIC			1756 #
	RPW REF			1757 #	9203	9208
	RUN			1763 #
	SC0			1737 #	5933	10313
	SCAD#0			1744 #	5427	5430	5498	7906	8409	8769	8996	8998	9032	9057	9304
				9342	9352	9366	9399	9402	9429	9431	9447	9473	9475	9810	9911
	SCAD0			1743 #	5450	5453	5455	5469	5472	5485	5488	5500	5505	5522	5911
				6005	6008	6010	6014	6243	6279	6283	6296	6312	6502	6504	6540
				6544	6546	6767	7231	7443	7504	7691	7698	7718	7890	8001	9136
				9143	10049	10557	10636	10672	10684	10709	10712	10733	10793	10809
	USER			1755 #	4773	4790	4815	4816	4821	5267	5332	9386	9666
	-EBUS GRANT		1759 #	8344
	-EBUS XFER		1760 #	8334
	-LOCAL AC ADDR		1750 #	4099	4106	5179	5243
	-MTR REQ		1770 #	3911	4867	5193	5208	5333	7631	9845
	-START			1762 #	4865
	-VMA SEC0		1767 #	7572	7598	7923
(U) SP MEM			2072 #
	CACHE INH		2079 #
	EPT			2093 #	8963	9018	9065	9282
	EPT CACHE		2094 #	7892	7974
	EPT EN			2078 #
	EPT FETCH		2095 #	9009	9010	9015
	EXEC			2075 #
	FETCH			2073 #
	PT			2098 #	3840	5184
	PT FETCH		2099 #
	SEC 0			2076 #
	UNCSH+UNPAGE		2080 #
	UNPAGED			2092 #	9102	9107	9112	9301	9306	9321	9343	9363	9368	9392	9427
	UNPAGED+CACHED		2081 #	9089	9093
	UPT			2096 #	5246	5248	8964	9283	9663
	UPT EN			2077 #
	UPT FETCH		2097 #
	USER			2074 #
(U) SPEC			1844 #
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page CRF-63
; 							Cross Reference Listing					

	AD LONG			1864 #	4287	4303	5749	5749	5752	5752	5797	5800	5851	5853	5863
				5904	5907	5938	5942	6174	6174	6318	6479	6479	6569	6615	6627
				6661	6673	6673	6696	6696	6814	6869	6869	6930	6938	6969	6983
				7972	8881	8944	10220	10221	10234	10278	10279	10279	10293	10336	10376
				10398	10437	10805
	ARL IND			1859 #	4102	4107	4107	4286	4302	4775	4790	4982	4985	5054	5257
				5265	5267	5432	5432	5843	5994	5997	6005	6045	6048	6074	6074
				6173	6239	6471	6471	6540	6689	6939	7202	7326	7358	7580	7910
				7921	7923	7969	8414	8893	8903	9226	9235	9236	9666	9668	9724
				10008	10193	10533	10715	10716	10834
	CLR FPD			1849 #	4020	7432	7879	10372
	FLAG CTL		1861 #	3730	4721	4762	4766	4812	4813	4816	4818	4819	4845	4848
				4856	5280	8304	9042	9673
	GEN CRY18		1852 #	4101	4707	5254	5264	6369	8300	8308	8788
	INH CRY18		1846 #	5317	7847	10534	10582	10586	10590	10673	10710
	LOAD PC			1850 #	4859
	MQ SHIFT		1847 #	5882	5884	5922	5924	6623	6934	6981	10153
	MTR CTL			1860 #	8886	8898	8910	8911	8912	8926	8927	8928	8929
	SAVE FLAGS		1862 #	4729	4740	4933	5022	5024	5273
	SCM ALT			1848 #	5421	5440	5442	5461	5464	5480	6237	6766	6769	7696	7732
				8861	9482
	SP MEM CYCLE		1863 #	3840	5184	5246	5248	7892	7974	8963	8964	9009	9010	9015
				9018	9065	9089	9093	9102	9107	9112	9282	9283	9301	9306	9321
				9343	9363	9368	9392	9427	9663
	STACK UPDATE		1857 #	4931	4936	4981	4999	5315
	XCRY AR0		1851 #	3999	4032	5319	5502	5503	5514	5594	5598	5724	5727	5874
				5939	6012	6013	6263	6284	6311	6500	6503	6768	6770	6987	7334
				7341	7355	10236	10530	10585
(U) SPEC INSTR			2020 #	9316
	CONS XCT		2029 #	4875
	CONT			2030 #	4869
	HALTED			2028 #	4858
	INH PC+1		2023 #	3841
	INSTR ABORT		2027 #	8941	9654
	INTRPT INH		2026 #
	KERNEL CYCLE		2022 #
	PXCT			2025 #	5335
	SET PI CYCLE		2021 #	3788	8931	8987
	SXCT			2024 #
(U) SWITCH%
	ADJBP			1119	6223	6229	6231	7746	7755	7759	7761	7769	7912
	BACK.BLT		1129	8093	8098	8101	8133	8143
	BIG.PT			1187	8768	8770	8772	8838	8840	8847	8853	9330	9333	9336	9347
				9349	9351	9400	9403	9405	9408	9410	9412	9414
	BLT.PXCT		11	1076	2999	3001	3003	3343	3346	3393	3395	3397	8085	8088
				8092	8152	8181
	CST.WRITE		20	1186	9440	9444	9446
	DBL.INT			1116	5823	5828	5944
	DDT.BUG			21	1188	8397	8404	8417
	DIAG.INST		1172	1174	1176	5287	5298	5303	5340	5350	5362
	EPT540			6	1169	9268	9274	9280
	EXTEND			1113	6286	6299	6301	9762	9927	9938	9982	9985	10102	10105	10175
				10178	10242	10245	10400	10403	10605	10608	10865
	EXTEXP			13	3791	3797	3799	3847	3850	3855	5090	5099	5108	5155	5158
				5351	5361	6678	6792	6795	6839	6842	6882	6885	7025	7028	7151
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page CRF-64
; 							Cross Reference Listing					

				7159	7176	7180	7182	7379
	FPLONG			10	1058	5949	5952	5975	5983	5989	6037	6042	6066	6071	6107
				6165	6183	6216	6403	6405	6407	6413	6421	6437	6439	6441	6443
				6445	6447	6455	6457	6459
	GFTCNV			18	1189	6789	6791	7029	7118	7185	7190	7195	7257	7323
	IMULI.OPT		1092	5576	5579	5586	5590	5593
	INSTR.STAT		1153	1155	1158	1916	1918	1920	8433	8437	8445	8508	8740
	IPA20			17	1184	8999	9001	9003	9087	9095
	KLPAGE			9	1065	1082	1088	1090	1888	1890	1892	2332	2335	2368	2370
				2391	2393	2470	2472	2486	2492	2618	2620	2637	2639	2666	2671
				2726	2728	2763	2765	3095	3098	3112	3114	3151	3154	3174	3178
				3181	3183	3367	3369	3398	3400	3402	3404	3406	3408	3410	3413
				3417	3426	3447	3449	3485	3487	3491	3493	3503	3505	3515	3517
				3524	3526	3528	4891	4893	4899	4906	8745	8749	8753	9148	9538
				9548	9580	9582	9584	9605	9609	9625	9634	9648	9677	9684	9709
				9711
	LONG.PC			7	1167	1895	1897	1899	4726	4730	4734	4739	4742	4745	4772
				4835
	MODEL.B			8	1072	1083	1086	1095	1098	1107	1109	1622	1625	1627	1675
				1681	1710	1717	1724	1738	1740	1742	1749	1751	1766	1768	1798
				1800	1811	1813	1816	1840	1842	1853	1856	1858	1909	1911	1913
				1928	1946	1953	1956	2042	2070	2110	2112	2114	2196	2198	2257
				2260	2263	2270	2272	2274	2276	2278	2280	2444	2446	2692	2694
				2697	2701	2705	2708	2710	2712	2714	2717	2721	2725	2778	2780
				2782	2784	2786	2825	2831	2875	2878	2881	2890	2892	2967	2969
				2971	2985	2987	2989	2991	2993	2995	2997	3004	3006	3101	3105
				3115	3117	3142	3144	3227	3231	3265	3267	3269	3271	3315	3317
				3321	3323	3338	3354	3366	3370	3373	3376	3378	3383	3389	3391
				3521	3523	3529	3535	3537	3726	3729	3731	3889	3900	3921	3939
				3941	3943	3950	3952	3954	3961	3963	3965	3972	3974	3976	3983
				3985	3987	4923	4930	4937	4959	4975	5004	5235	5237	5239	5635
				5639	5652	5656	5690	5695	5700	5709	5714	6288	6291	6294	6481
				6484	6487	6505	6508	6511	6524	6531	6553	6563	6568	6591	6593
				6595	6616	6619	6622	6638	6647	6652	6665	6667	6669	6677	7380
				7727	7731	8359	8361	8363	8365	8367	8369	8785	8787	8790	8794
				8799	8806	9020	9023	9025	9026	9028	9045	9047	9049	9067	9069
				9071	9098	9117	9186	9188	9190	9492	9495	9497	9503	9505	9507
				9539	9541	9543	9615	9619	9690	9695	9704	9728	9730	9732	9737
				9739	9774	9779	9784	9867	9874	9926	10167	10170	10173	10238	10240
				10480	10482	10484	10551	10554	10556	10566	10571	10578	10619	10623	10629
				10657	10660	10667	10747	10752	10798	10823	10825	10833	10839	10852	10855
	MOS			8453	8454	8456	8465
	MULTI			14	1062	2082	2091	2100
	NOCST			15	1185	9328	9337	9339	9355	9362	9372	9416	9420	9422	9458
				9468	9485
	NONSTD			1178	1902	1904	1906
	OP.CNT			1040	1137	1139	3813	3816	8560	8604
	OP.TIME			1043	1141	1143	3817	3820	8606	8636
	OWGBP			16	1183	3792	3794	3796	3851	3854	6224	6226	6228	6241	6248
				7397	7410	7448	7453	7477	7507	7816	7820	7822	7824	7827	7829
				7831	7833	7838	7842	7858	7865	7869	7874	7913	7957	8005	9883
				9890	9914	9939	9981	9990	9996	10002	10111	10119	10130	10182	10187
				10189	10257	10264	10268	10611	10616	10618
	PAGCNT			1054	1160	1163	4860	4863	8760	8763	9194	9198	9202	9205	9207
				9212	9214
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page CRF-65
; 							Cross Reference Listing					

	PUSHM			1111	5352	5356	5360
	RPW			1122	3563	3565	3567
	SHIFT.MUUO		1067	5218	5220	5222	9627	9629	9631
	SMP			12	1179	7458	7460	7462	7464	7467	7470	7496	7499	7502	7547
				7560	7643	7682	7719	7721	7723	7728	7730
	SNORM.OPT		4	1103	6354	6365	6386
	SO.CNT			1046	1145	1147	3821	3825	8640	8689
	SO2.CNT			1049	1149	1151	3826	3830	8639	8692	8739
	SXCT			1096	1099	3895	3897	3899	5339	5364	5401
	TRACKS			1036	1133	1135	3809	3812	8511	8513	8515	8520	8536	8542	8558
	TRXDEF			1165	2373	2376	2499	2508	2674	2676	3454	3465	3494	3496	3518
				3520
	WRTST			1126	3568	3570	3572	4055	4057	4059
	XADDR			5	2052	2054	2056	2797	2799	2802	3379	3382	3554	3556	3558
				3859	3880	3901	3908	3920	4097	4108	4129	4131	4133	4345	4347
				4349	4751	4755	4761	4779	4785	4794	4803	4809	4825	4827	4834
				5016	5021	5033	5040	5044	5051	5170	5176	5195	5212	5240	5284
				5309	5313	5321	6287	6295	6298	7177	7179	7401	7403	7406	7457
				7463	7471	7517	7561	7683	7748	7751	7754	7806	7808	7810	7814
				7843	7922	7925	7927	7932	8010	8055	9610	9614	9655	9662	9675
				9716	9720	9769	9803	9861	9875	9882	9925	10519	10521	10523	10527
				10545	10565	10579	10604	10661	10663	10666	10688	10696	10713	10726	10728
				10732	10753	10757	10761	10766	10797	10826	10828	10832	10840	10842	10851
(U) TIME			1689 #
	2T			1692 #	4574	4575	4576	4870	7568	7571	7578	10436
	3T			1693 #	3835	3914	3945	3955	3967	3977	3988	4865	4954	4980	4983
				4986	5718	7503	7632	7692	7717	8405	8844	8849	9253	9255	9379
				9847	10116	10386	10438
	4T			1694 #
	5T			1695 #	3802	3804	4831	4897	5254	5256	8329	8332	8336	8349	8354
				8355	8388	8395	8422	8425	8426	8428	8470	8473	8475	8477	8756
				8788	8805	8815	8819	8823	8873	8874	8875	8876	8886	8889	8891
				8898	8901	8910	8911	8912	8917	8926	8927	8928	8929	8997	9055
				9209	9224
(U) U0				1505 #
(U) U21				1567 #
(U) U23				1573 #
(U) U42				1648 #
(U) U45				1654 #
(U) U48				1661 #
(U) U51				1682 #
(U) U73				1866 #
(U) VMA				1683 #	9526
	AD			1688 #	3787	3916	4769	4822	4826	4939	4941	4989	4990	5185	5261
				7201	7242	7324	7338	8018	8023	8030	8039	8048	8051	8155	8171
				8173	8311	8312	8382	8767	8833	8843	8849	8862	8882	8990	9002
				9015	9024	9044	9048	9060	9070	9127	9134	9220	9300	9305	9315
				9340	9363	9366	9391	9423	9533	9850	9853	9855	9858	10114	10115
				10315	10383	10447	10479	10626	10627	10700	10704	10729	10741	10743	10755
				10759	10806	10829	10845	10847	10858
	LOAD			1686 #	3834	3836	3861	3863	3865	3867	3885	3887	4931	4936	4977
				4979	5003	5182	5191	5245	5247	7415	7422	7482	7489	7601	7603
				7605	7607	7610	7611	7612	7613	7621	7622	7623	7625	7887	7897
				7898	7899	7900	7973	7981	7998	8113	8114	8121	8123	8919	8954
				8956	8958	8960	8992	8993	9005	9276	9278	9482	9628	9815	9816
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page CRF-66
; 							Cross Reference Listing					

				9817	9818	9839	9840	9841
	PC			1685 #	3733	4859	9043	10524	10539	10599	10602	10811
	PC+1			1687 #	3870	3871	3872	3873	3883	3884	3966	3999	4001	4007	4009
				4099	4106	4289	4563	4566	4571	4602	4620	4668	4683	4699	4707
				4798	4846	4904	4946	5319	5426	5456	5475	5490	5513	5538	5757
				5766	5886	5927	6315	6316	6671	7020	7146	7148	7149	7204	7212
				7216	7432	7506	7762	7781	7860	7879	7911	8032	8038	8046	8128
				8178	8296	8298	8300	8303	10023	10085	10088	10145	10209	10227	10274
				10312	10366	10653
	VMA			1684 #	4282	4306	4796	4800	4810	4811	5028	5053	5186	5194	5251
				5275	5277	5842	5897	6472	6688	7205	7327	7580	7586	7597	7928
				8455	8945	8947	8966	9083	9669	9671	9672	10232	10234	10373	10783
				10787	10850
(U) VMAX			1676 #
	AD12-17			1680 #
	PC SEC			1678 #	5045	5050
	PREV SEC		1679 #	4774	4791	5268	8801	9667
	VMAX			1677 #
(U) #				1872 #	3789	3801	3802	3804	3832	3834	3835	3836	3846	3870	3871
				3872	3873	3883	3884	3914	3916	3917	3955	3977	4004	4016	4017
				4021	4026	4033	4288	4301	4304	4828	4842	4844	4892	4901	4905
				5182	5191	5207	5245	5247	5250	5251	5260	5281	5282	5283	5336
				5336	5424	5449	5452	5454	5469	5472	5480	5483	5500	5504	5522
				5526	5528	5531	5540	5588	5594	5610	5614	5705	5707	5711	5718
				5725	5728	5815	5816	5817	5818	5846	5856	5871	5875	5895	5914
				5926	5934	5939	5978	5979	5980	6007	6010	6014	6047	6050	6077
				6088	6091	6102	6177	6179	6243	6262	6279	6283	6296	6310	6312
				6344	6345	6350	6352	6368	6372	6374	6376	6379	6385	6394	6442
				6446	6456	6483	6501	6504	6522	6529	6530	6543	6545	6558	6561
				6570	6580	6592	6602	6607	6615	6618	6624	6626	6629	6635	6657
				6672	6712	6717	6747	6767	6771	6784	6785	6801	6810	6815	6833
				6837	6848	6855	6858	6863	6876	6930	6933	6935	6937	6948	6963
				6982	6988	6991	6993	7000	7002	7004	7013	7022	7024	7209	7211
				7217	7231	7232	7239	7250	7251	7254	7325	7331	7339	7344	7356
				7359	7375	7413	7420	7440	7443	7480	7487	7503	7568	7571	7615
				7616	7617	7618	7691	7733	7734	7802	7804	7860	7861	7863	7877
				7881	7884	7887	7890	7893	7897	7898	7899	7900	7902	7904	7926
				7928	7930	7946	7955	7970	7973	7985	7986	7989	7991	7998	8000
				8004	8012	8022	8023	8038	8040	8049	8052	8053	8108	8118	8119
				8120	8130	8162	8169	8170	8180	8379	8409	8412	8416	8449	8757
				8764	8766	8777	8778	8779	8783	8807	8818	8832	8860	8863	8871
				8882	8919	8921	8924	8932	8944	8954	8956	8958	8960	8992	8993
				8994	8996	8998	9005	9007	9011	9014	9032	9057	9074	9075	9076
				9100	9105	9110	9123	9132	9135	9139	9189	9191	9203	9208	9222
				9251	9256	9276	9278	9287	9304	9331	9341	9348	9365	9370	9384
				9393	9399	9413	9429	9438	9439	9445	9472	9476	9481	9527	9553
				9557	9561	9565	9569	9573	9577	9588	9592	9596	9600	9604	9613
				9618	9628	9632	9650	9652	9674	9703	9710	9735	9809	9812	9820
				9821	9822	9823	9838	9839	9847	9894	9902	10003	10010	10012	10016
				10022	10024	10035	10040	10041	10042	10045	10055	10079	10081	10087	10138
				10141	10142	10151	10186	10194	10200	10203	10226	10233	10235	10237	10263
				10269	10279	10282	10308	10310	10319	10336	10340	10343	10376	10379	10392
				10395	10399	10435	10449	10463	10464	10465	10466	10467	10468	10469	10478
				10483	10502	10544	10557	10587	10614	10615	10628	10630	10633	10635	10652
				10654	10672	10684	10698	10699	10700	10702	10708	10711	10721	10733	10736
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page CRF-67
; 							Cross Reference Listing					

				10793	10803	10810	10811	10860	10861	10862
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page LLD-1
; 							Location / Line Number Index
; Dcode Loc'n	0	1	2	3	4	5	6	7					

D 0000		5067	5068	5069	5070	5072	5073	5074	5075
D 0010		5077	5078	5079	5080	5082	5083	5084	5085
D 0020		5088	5089	5091	5092	5093	5094	5095	5096
D 0030		5097	5098	5109	5110	5111	5112	5113	5114
D 0040		5118	5119	5120	5121	5122	5123	5124	5125
D 0050		5126	5127	5128	5129	5130	5131	5132	5133
D 0060		5134	5135	5136	5137	5138	5139	5140	5141
D 0070		5142	5143	5144	5145	5146	5147	5148	5149

D 0100		5153	5154	6681	6682	5300	5301	6683	6684
D 0110		6464	6465	6466	6467	5829	5830	5831	5832
D 0120		4275	4276	6253	6254	4295	4296	6256	6257
D 0130		5950	5951	6219	6220	7386	7387	7388	7389
D 0140		5954	5955	5956	5957	5959	5960	5961	5962
D 0150		5964	5965	5966	5967	5969	5970	5971	5972
D 0160		6027	6028	6029	6030	6032	6033	6034	6035
D 0170		6056	6057	6058	6059	6061	6062	6063	6064

D 0200		4053	4054	4058	4060	4062	4063	4064	4065
D 0210		4067	4068	4069	4070	4072	4073	4074	4075
D 0220		5570	5571	5572	5573	5602	5603	5604	5605
D 0230		5675	5676	5677	5678	5680	5681	5682	5683
D 0240		5406	5407	5408	5409	5410	5411	5412	5413
D 0250		4113	4114	4702	4703	4713	4714	4882	4883
D 0260		4911	4912	4913	4914	5009	5010	5011	5012
D 0270		5545	5546	5547	5548	5557	5558	5559	5560

D 0300		4582	4583	4584	4585	4586	4587	4588	4589
D 0310		4591	4592	4593	4594	4595	4596	4597	4598
D 0320		4657	4658	4659	4660	4661	4662	4663	4664
D 0330		4609	4610	4611	4612	4613	4614	4615	4616
D 0340		4672	4673	4674	4675	4676	4677	4678	4679
D 0350		4625	4626	4627	4628	4629	4630	4631	4632
D 0360		4687	4688	4689	4690	4691	4692	4693	4694
D 0370		4640	4641	4642	4643	4644	4645	4646	4647

D 0400		4314	4315	4316	4317	4324	4325	4326	4327
D 0410		4334	4335	4336	4337	4344	4346	4350	4351
D 0420		4353	4354	4355	4356	4363	4364	4365	4366
D 0430		4369	4370	4371	4372	4379	4380	4381	4382
D 0440		4389	4390	4391	4392	4399	4400	4401	4402
D 0450		4409	4410	4411	4412	4420	4421	4422	4423
D 0460		4430	4431	4432	4433	4440	4441	4442	4443
D 0470		4450	4451	4452	4453	4460	4461	4462	4463

D 0500		4128	4130	4134	4135	4137	4138	4139	4140
D 0510		4142	4143	4144	4145	4147	4148	4149	4150
D 0520		4152	4153	4154	4155	4157	4158	4159	4160
D 0530		4162	4163	4164	4165	4167	4168	4169	4170
D 0540		4174	4175	4176	4177	4179	4180	4181	4182
D 0550		4184	4185	4186	4187	4189	4190	4191	4192
D 0560		4194	4195	4196	4197	4199	4200	4201	4202
D 0570		4204	4205	4206	4207	4209	4210	4211	4212
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page LLD-2
; 							Location / Line Number Index
; Dcode Loc'n	0	1	2	3	4	5	6	7					

D 0600		4472	4473	4474	4475	4476	4477	4478	4479
D 0610		4481	4482	4483	4484	4485	4486	4487	4488
D 0620		4490	4491	4492	4493	4494	4495	4496	4497
D 0630		4499	4500	4501	4502	4503	4504	4505	4506
D 0640		4508	4509	4510	4511	4512	4513	4514	4515
D 0650		4517	4518	4519	4520	4521	4522	4523	4524
D 0660		4526	4527	4528	4529	4530	4531	4532	4533
D 0670		4535	4536	4537	4538	4539	4540	4541	4542

D 0700		8191	8192	8193	8194	8195	8196	8197	8198
D 0710		8202	8203	8204	8205	8206	8207	8208	8209
D 0720		8213	8214	8215	8216	8217	8218	8219	8220
D 0730		8224	8225	8226	8227	8228	8229	8230	8231
D 0740		8237	8238	8239	8240	8241	8242	8243	8244
D 0750		8249	8250	8251	8252	8253	8254	8255	8256
D 0760		8260	8261	8262	8263	8264	8265	8266	8267
D 0770		8271	8272	8273	8274	8275	8276	8277	8278
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page LLU-1
; 							Location / Line Number Index
; Ucode Loc'n	0	1	2	3	4	5	6	7					

U 0000		3730:	3733:	4080=	3945:	3956:	3967:	3978:	3989:
U 0010		4564=	4567=	4569=	4571=	4573=	4574=	4575=	4576=
U 0020		4020=	4021=	8295=	8296=	6408=	6412=	8297=	8298=
U 0030		4285=	4286=	3848 	4288=	6431=	6433=	4757=	4758=
U 0040		9553=	9557=	9561=	9565=	9569=	9573=	9577=	9581=
U 0050		9588=	9592=	9596=	9600=	9604=	9608=	9613=	9618=
U 0060		3840=	3999=	4000=	4002=	4003=	4004=	4007=	4009=
U 0070		3910=	3911=	5280=	5281=	4016=	4017=	5282=	5283=

U 0100		4089:	4091:	4099:	4119:	4122:	4221:	4223:	4107:
U 0110		4301=	4302=	4083=	4304=	4232=	4233=	5941=	5943=
U 0120		4939=	3849 	4942=	4943=	4844=	8311=	4845=	8312=
U 0130		5184=	6427=	5185=	5187=	3916 	6428=	4043:	4048:
U 0140		3788=	3917 	3790=	3798=	3801=	3802=	3804=	3919 
U 0150		10487=	6442=	3833=	3834=	10488=	6446=	3835=	3836=
U 0160		3862=	3864=	3866=	3868=	3870=	3871=	3872=	3873=
U 0170		3875=	3876=	3877=	3878=	3883=	3884=	3886=	3888=

U 0200		5611=	4086=	4236=	4237=	5612=	4226=	5614=	5615=
U 0210		5689=	5691=	5694=	5702=	4246=	4247=	5705=	5707=
U 0220		5253=	5255=	4026 	5256=	7953=	7955=	4875=	4876=
U 0230		5450=	5453=	5455=	5456=	5748=	5749=	5751=	5752=
U 0240		6498=	10259=	8307=	8308=	6502=	6504=	10613=	8309=
U 0250		5851=	10261=	5853=	5923=	5856=	4032 	10614=	5924=
U 0260		5636=	5637=	5638=	5640=	5642=	5644=	5646=	5648=
U 0270		3841=	3846=	3914=	4033 	5518=	5937=	5519=	5938=

U 0300		4253=	4254=	5993=	5995=	4260=	4261=	4229=	5997=
U 0310		7411=	7412=	7414=	7416=	7418=	7419=	7421=	7423=
U 0320		5653=	5654=	5655=	5657=	5660=	5662=	5664=	5665=
U 0330		6608=	4289 	6609=	6610=	4101=	4102=	6640=	6642=
U 0340		5179=	5181=	5756=	5757=	8303=	8304=	5759=	5760=
U 0350		5862=	6774=	4306 	6775=	5863=	6671=	5864=	6672=
U 0360		5182=	4307 	6049=	7003=	4760=	4762=	6050=	7005=
U 0370		6477=	4309 	6479=	7006=	6483=	4310 	6491=	7008=

U 0400		7478=	7479=	7481=	7483=	7485=	7486=	7488=	7490=
U 0410		8285=	8286=	8289=	4243=	4267=	4268=	8291=	8292=
U 0420		7948=	7949=	5765=	5766=	7950=	7951=	5768=	5769=
U 0430		6562=	6780=	4699 	6781=	6569=	7010=	6570=	7011=
U 0440		7854=	4767 	7856=	7366=	4765=	4766=	7859=	7369=
U 0450		8411=	8412=	10094=	7370=	8413=	4773 	10095=	7371=
U 0460		5780=	5781=	5782=	5783=	5784=	5785=	5786=	5787=
U 0470		6712=	6713=	6714=	6715=	4774=	4776=	7439=	7440=

U 0500		8394=	8395=	8405=	5589=	4887=	4889=	4250=	5594=
U 0510		8435=	8447=	8450=	8451=	5839=	5843=	4257=	5844=
U 0520		7602=	7604=	7606=	7608=	7610=	7611=	7612=	7613=
U 0530		7615=	7616=	7617=	7618=	7621=	7622=	7624=	7626=
U 0540		6717=	4790 	6718=	6719=	4787=	4789=	7897=	7898=
U 0550		7899=	7900=	7020=	7022=	4801 	9203=	9208=	9209=
U 0560		5887=	6834=	5888=	6835=	5797=	5799=	5800=	5802=
U 0570		9142=	7985=	9143=	7986=	4810 	7987=	9144=	7988=
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page LLU-2
; 							Location / Line Number Index
; Ucode Loc'n	0	1	2	3	4	5	6	7					

U 0600		4720:	4721:	4723:	4724:	4725:	4727:	4728:	4729:
U 0610		4735:	4736:	4737:	4738:	4740:	4741:	4746:	4747:
U 0620		6863=	4811 	6864=	6865=	4812 	4815:	4817:	4796:
U 0630		4769:	7886=	4770:	7887=	4798:	4828 	9243=	9251=
U 0640		5811=	5812=	5813=	5814=	5815=	5816=	5817=	5818=
U 0650		8992=	8993=	8994=	8995=	8996=	8997=	8998=	9002=
U 0660		8766=	8767=	4830 	9009=	9992=	8769=	9993=	9010=
U 0670		10208=	10209=	4831 	9011=	10211=	10212=	9994=	9012=

U 0700		4842:	4264=	4931=	4933=	5978=	5979=	5980=	5981=
U 0710		8469=	4282=	4321=	8470=	8472=	4331=	4341=	8473=
U 0720		7774=	7775=	7777=	4833 	5910=	9018=	5911=	9019=
U 0730		7926=	7929=	4839 	7930=	7328=	9024=	7329=	9032=
U 0740		9039=	9040=	9041=	9042=	9043=	9044=	4846 	9048=
U 0750		8118=	8119=	8120=	8121=	4791=	4793=	4847 	9050=
U 0760		9058=	9059=	9055=	9056=	7779=	9060=	7780=	9061=
U 0770		4848 	8169=	8170=	8171=	4818=	4819=	4859 	9062=

U 1000		5314:	4360=	5244:	4892 	5479:	5167:	5177:	4376=
U 1010		5198:	5200:	5202:	7156:	7158:	4898 	4855:	4856:
U 1020		4821=	4822=	5245:	4954 	7971=	9065=	7972=	9066=
U 1030		8321=	8322=	4981 	8330=	7992=	9070=	7998=	9072=
U 1040		8873=	8874=	8875=	8876=	4824=	4826=	4991 	9232=
U 1050		8954=	8956=	8958=	8960=	4866=	4867=	5000 	9233=
U 1060		5871=	5003 	9092=	9094=	5872=	5028 	5875=	5876=
U 1070		9082=	9083=	5047 	9084=	8100=	9277=	8102=	9279=

U 1100		8387=	8388=	8389=	8390=	7161:	7163:	7165:	7167:
U 1110		7169:	7171:	7173:	7175:	4977=	4979=	4386=	5050 
U 1120		5926=	5927=	5053 	5928=	5054 	5929=	6661=	6663=
U 1130		9100=	5194 	9101=	9102=	8154=	9282=	8155=	9283=
U 1140		9105=	5246 	9106=	9107=	5933=	5247 	5934=	5935=
U 1150		9289=	9290=	5259 	9292=	8804=	9293=	8805=	9294=
U 1160		6078=	5260 	6080=	6081=	4869=	4870=	6089=	6091=
U 1170		9379=	9380=	5261 	9384=	8822=	9385=	8824=	9387=

U 1200		8421=	8422=	8424=	8425=	8751=	8752=	8755=	8756=
U 1210		8784=	8789=	8791=	8792=	8814=	8815=	8818=	8819=
U 1220		9815=	9816=	9817=	9818=	9820=	9821=	9822=	9823=
U 1230		9825=	9826=	9827=	9828=	9838=	9839=	9840=	9841=
U 1240		6343=	6344=	6346=	6347=	6349=	6351=	6353=	6369=
U 1250		9110=	5266 	9111=	9112=	4896=	4897=	10049=	10050=
U 1260		9651=	9653=	5267 	9654=	6380=	6382=	6383=	6385=
U 1270		4901=	4902=	9702=	9703=	4904=	4905=	10051=	10052=

U 1300		8885=	8886=	8888=	8889=	8897=	8898=	8900=	8901=
U 1310		8906=	4396=	8909=	8910=	5022=	5024=	5037=	5045=
U 1320		4935=	4936=	6577=	6578=	5270 	7921=	6580=	7923=
U 1330		4947=	4949=	5271 	10100=	4984=	4987=	5273 	10101=
U 1340		6590=	6592=	5275 	6598=	8967=	6600=	8968=	6603=
U 1350		10141=	10142=	10143=	5277 	5316 	10151=	10145=	10153=
U 1360		6615=	6618=	6624=	6626=	6627=	6629=	6630=	6631=
U 1370		9958=	9959=	9960=	9961=	4989=	4990=	10160=	10161=
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page LLU-3
; 							Location / Line Number Index
; Ucode Loc'n	0	1	2	3	4	5	6	7					

U 1400		5422=	5424=	5441=	5442=	5462=	5463=	6044=	6045=
U 1410		6073=	6074=	6225=	6238=	6263=	6280=	6284=	6297=
U 1420		6694=	6695=	6696=	6697=	6698=	6700=	6702=	6703=
U 1430		9968=	9969=	9970=	9971=	9014=	10191=	9015=	10192=
U 1440		6813=	5320 	4996=	4997=	6814=	5464 	6816=	6817=
U 1450		10040=	10041=	5472 	10042=	5001=	5002=	10315=	10316=
U 1460		6824=	5480 	5488 	7818=	6828=	6829=	6830=	7819=
U 1470		10086=	10087=	5508 	10088=	9080=	10376=	9081=	10377=

U 1500		6473=	6689=	6474=	6690=	8380=	8381=	8869=	8871=
U 1510		4406=	4416=	4427=	4437=	4447=	4457=	4467=	4602=
U 1520		6847=	6848=	5515 	6851=	10305=	6853=	10306=	6854=
U 1530		10282=	10284=	5565 	10285=	10804=	10398=	10805=	10399=
U 1540		10858=	10462=	10859=	10463=	5632 	10464=	5670 	10465=
U 1550		5710 	10466=	5719 	10467=	5846 	10468=	5868 	10469=
U 1560		6931=	6933=	6935=	6937=	6938=	6940=	6942=	6943=
U 1570		5026=	5027=	5869 	10473=	5031=	5032=	5880 	10474=

U 1600		4621=	4636=	4651=	4668=	4683=	4698=	4707=	5552=
U 1610		5564=	5881 	5882 	10490=	5048=	5049=	5884 	10491=
U 1620		10319=	10320=	5885 	10321=	5192=	5193=	6969=	6982=
U 1630		5207=	5208=	5893 	10501=	5249=	5250=	5895 	10502=
U 1640		5897 	10636=	5899 	10637=	5900 	10638=	5931 	10639=
U 1650		5939 	10640=	5940 	10642=	5998 	10644=	6004 	10645=
U 1660		7427=	6005 	5264=	5265=	7430=	7431=	6010 	7432=
U 1670		7494=	6019 	5268=	5269=	7501=	7504=	6022 	7506=

U 1700		7567=	7569=	7570=	7572=	7573=	7574=	7575=	7576=
U 1710		5318=	5319=	6047 	7840=	7596=	7597=	7598=	7841=
U 1720		7753=	7758=	7760=	7860=	6239 	7762=	6310 	7861=
U 1730		10537=	6312 	10539=	10540=	7801=	6317 	7803=	7805=
U 1740		10555=	10558=	6318 	10559=	7811=	7813=	7815=	7817=
U 1750		8832=	6377 	8833=	6456 	5324=	5326=	8835=	8839=
U 1760		10593=	6518 	10595=	10596=	5332=	5333=	8845=	8846=
U 1770		10731=	10734=	6520 	10736=	5335=	5336=	6521 	9191:

U 2000		10741=	10742=	6523 	10743=	5426=	5428=	8851=	8852=
U 2010		8926=	8927=	8928=	8929=	8930=	6525 	9439=	9445=
U 2020		9123=	9124=	6526 	9125=	9127=	9128=	6527 	9129=
U 2030		9133=	6528 	5431=	5433=	9134=	9136=	6540 	9137=
U 2040		5436=	5437=	9851=	9852=	5467=	5469=	9854=	9856=
U 2050		9941=	9942=	9943=	9944=	9945=	9946=	9947=	9948=
U 2060		10831=	10834=	6546 	10835=	10010=	10011=	10012=	10013=
U 2070		10019=	10020=	6575 	10263=	10022=	10023=	10024=	10269=

U 2100		10077=	10078=	10079=	6633 	6634 	10768=	10081=	10769=
U 2110		5474=	5475=	5483=	5485=	5489=	5490=	10193=	10194=
U 2120		5498=	5500=	5502=	5505=	5513=	5514=	10201=	10202=
U 2130		5522=	5523=	10293=	10294=	5526=	5528=	10295=	10296=
U 2140		5532=	5533=	5538=	5540=	5597=	5598=	10334=	10335=
U 2150		10341=	10344=	6636 	10346=	6639 	10348=	5712=	5713=
U 2160		5726=	5729=	5903=	5905=	10392=	10393=	10396=	6654 
U 2170		10434=	10435=	10436=	6673 	5906=	5907=	10437=	10438=
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page LLU-4
; 							Location / Line Number Index
; Ucode Loc'n	0	1	2	3	4	5	6	7					

U 2200		5913=	5915=	6006=	6008=	10477=	10478=	10479=	10483=
U 2210		6012=	6014=	6015=	6016=	10525=	10526=	10528=	10529=
U 2220		6102=	6103=	6173=	6174=	10581=	10582=	10583=	10584=
U 2230		10653=	10654=	10655=	10656=	10665=	10776=	6711 	10777=
U 2240		6177=	6179=	6243=	6244=	6720 	10778=	6722 	10783=
U 2250		6246=	6247=	6307=	6308=	6725 	10794=	6726 	10795=
U 2260		10806=	6727 	10808=	10809=	10810=	10811=	10812=	10813=
U 2270		6315=	6316=	6372=	6374=	10844=	10845=	10846=	10847=

U 2300		6393=	6395=	6507=	6513=	10860=	10861=	6729 	10862=
U 2310		6516=	6517=	6529=	6530=	6542=	6544=	6555=	6556=
U 2320		6557=	6558=	6645=	6646=	6657=	6658=	6705=	6706=
U 2330		6723=	6724=	6732=	6733=	6759=	6760=	6762=	6763=
U 2340		6768=	6769=	6797=	6798=	6799=	6800=	6805=	6806=
U 2350		6809=	6810=	6820=	6821=	6844=	6846=	6868=	6869=
U 2360		6872=	6874=	6876=	6877=	6880=	6881=	6925=	6927=
U 2370		6952=	6954=	6957=	6959=	6963=	6964=	7127=	7128=

U 2400		7134=	7135=	7146=	7147=	7148=	7149=	7204=	7205=
U 2410		7207=	7208=	7211=	7212=	7215=	7216=	7234=	7235=
U 2420		7237=	7240=	7350=	7351=	7354=	7356=	7376=	7377=
U 2430		7437=	7438=	7443=	7444=	7446=	7447=	7579=	7580=
U 2440		7583=	7584=	7630=	7631=	7692=	7693=	7696=	7698=
U 2450		7704=	7705=	7718=	7720=	7726=	7733=	7781=	7782=
U 2460		7830=	7834=	7876=	7877=	7878=	7879=	7882=	7883=
U 2470		7892=	7893=	7907=	7908=	7977=	7978=	7980=	7981=

U 2500		8003=	8004=	8016=	8018=	8026=	8027=	8030=	8032=
U 2510		8038=	8040=	8046=	8048=	8052=	8053=	8090=	8091=
U 2520		8113=	8114=	8125=	8126=	8128=	8130=	8175=	8176=
U 2530		8178=	8180=	8333=	8334=	8344=	8345=	8347=	8348=
U 2540		8373=	8374=	8408=	8409=	8482=	8483=	8759=	8765=
U 2550		8777=	8778=	8861=	8863=	8880=	8881=	8919=	8920=
U 2560		8943=	8945=	9033=	9034=	9220=	9221=	9306=	9307=
U 2570		9315=	9316=	9332=	9340=	9344=	9345=	9353=	9354=

U 2600		9368=	9369=	9402=	9406=	9411=	9413=	9419=	9423=
U 2610		9432=	9438=	9457=	9469=	9475=	9476=	9481=	9482=
U 2620		9502=	6730 	9510=	9511=	9514=	9516=	9628=	9632=
U 2630		9667=	9669=	9751=	9752=	9807=	9808=	9811=	9812=
U 2640		9844=	9845=	9859=	9860=	9912=	9913=	10005=	10006=
U 2650		10030=	10031=	10034=	10035=	10046=	10047=	10097=	10098=
U 2660		10114=	10115=	10137=	10139=	10157=	10158=	10172=	10174=
U 2670		10184=	10185=	10217=	10218=	10233=	10235=	10278=	10279=

U 2700		10311=	10312=	10371=	10373=	10378=	10379=	10383=	10384=
U 2710		10388=	10389=	10451=	10453=	10517=	10518=	10530=	10531=
U 2720		10533=	10534=	10585=	10586=	10589=	10590=	10626=	10627=
U 2730		10649=	10650=	10674=	10675=	10685=	10686=	10697=	10698=
U 2740		10701=	10702=	10709=	10712=	10715=	10716=	10756=	10758=
U 2750		10790=	10791=	6731 	6734 	6735 	6737 	6746 	6747 
U 2760		6748 	6765 	6766 	6767 	6770 	6771 	6772 	6776 
U 2770		6777 	6778 	6779 	6782 	6783 	6784 	6786 	6788 
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page LLU-5
; 							Location / Line Number Index
; Ucode Loc'n	0	1	2	3	4	5	6	7					

U 3000		6801 	6802 	8364:	8370:	6803 	9894:	9898:	6807 
U 3010		9899:	9900:	9902:	7178:	7183:	6811 	6832 	6836 
U 3020		6838 	6843 	6855 	6856 	6857 	9895:	6859 	6917 
U 3030		6918 	6920 	9903:	6921 	6922 	9896:	6945 	6946 
U 3040		6949 	6951 	6961 	6966 	6967 	6968 	6984 	6985 
U 3050		6986 	6988 	6990 	6991 	6993 	6997 	6998 	7000 
U 3060		7001 	7014 	7016 	7017 	7024 	7144 	7150 	7201 
U 3070		7202 	7203 	7209 	7210 	7213 	7214 	7217 	9923:

U 3100		7218 	7219 	7220 	7222 	7184:	7186:	7187:	7188:
U 3110		7189:	7196:	7197:	7198:	7231 	7242 	7243 	7244 
U 3120		7245 	7246 	7247 	7248 	7249 	7250 	7251 	7252 
U 3130		7253 	7255 	7325 	7326 	7330 	7331 	7333 	7334 
U 3140		7335 	7339 	7340 	7341 	7342 	7343 	7344 	7346 
U 3150		7353 	7357 	7358 	7359 	7360 	7361 	7362 	7373 
U 3160		7581 	7582 	7586 	7628 	7632 	7734 	7736 	7737 
U 3170		7772 	7784 	7786 	7823 	7825 	7826 	7835 	9924:

U 3200		7836 	7837 	7846 	7848 	7862 	7863 	7864 	7884 
U 3210		7885 	7888 	7890 	7894 	7902 	7903 	7904 	7905 
U 3220		7906 	7909 	7910 	7911 	7931 	7946 	7967 	7968 
U 3230		7969 	7973 	7974 	7975 	7979 	7989 	7999 	8000 
U 3240		8001 	8012 	8014 	8022 	8023 	8024 	8033 	8044 
U 3250		8049 	8050 	8084 	8089 	8107 	8108 	8109 	8123 
U 3260		8161 	8163 	8173 	8300 	8337 	8350 	8354 	8355 
U 3270		8382 	8383 	8414 	8416 	8426 	8427 	8428 	8455 

U 3300		8475 	8477 	8478 	8479 	8757 	8779 	8800 	8801 
U 3310		8802 	8808 	8825 	8826 	8827 	8859 	8882 	8890 
U 3320		8891 	8893 	8903 	8911 	8912 	8916 	8917 	8921 
U 3330		8924 	8931 	8932 	8934 	8935 	8936 	8937 	8941 
U 3340		8946 	8947 	8963 	8964 	8987 	8988 	8990 	9005 
U 3350		9007 	9057 	9074 	9075 	9076 	9077 	9085 	9089 
U 3360		9090 	9114 	9116 	9139 	9192 	9193 	9199 	9210 
U 3370		9222 	9223 	9224 	9225 	9226 	9234 	9235 	9236 

U 3400		9238 	9240 	9253 	9255 	9256 	9257 	9258 	9287 
U 3410		9300 	9301 	9302 	9303 	9305 	9321 	9322 	9329 
U 3420		9342 	9348 	9352 	9363 	9366 	9371 	9391 	9392 
U 3430		9393 	9399 	9417 	9428 	9430 	9447 	9473 	9478 
U 3440		9483 	9484 	9496 	9526 	9527 	9534 	9633 	9663 
U 3450		9665 	9666 	9671 	9672 	9673 	9674 	9696 	9697 
U 3460		9698 	9699 	9710 	9712 	9713 	9718 	9719 	9724 
U 3470		9725 	9727 	9729 	9733 	9735 	9736 	9738 	9740 

U 3500		9742 	9744 	9745 	9746 	9747 	9749 	9753 	9754 
U 3510		9756 	9758 	9809 	9810 	9813 	9847 	9910 	9911 
U 3520		9949 	9950 	9951 	9953 	9962 	9976 	9977 	9978 
U 3530		9980 	9995 	10003 	10004 	10007 	10008 	10009 	10015 
U 3540		10016 	10017 	10028 	10033 	10054 	10055 	10112 	10113 
U 3550		10116 	10117 	10155 	10164 	10186 	10190 	10195 	10197 
U 3560		10198 	10199 	10200 	10203 	10204 	10220 	10221 	10225 
U 3570		10227 	10236 	10237 	10239 	10241 	10271 	10272 	10273 
; KL10 Microcode for TOPS-20		4 February 1985  V1(357)		MICRO %34(270)		Page LLU-6
; 							Location / Line Number Index
; Ucode Loc'n	0	1	2	3	4	5	6	7					

U 3600		10275 	10298 	10307 	10308 	10310 	10314 	10318 	10332 
U 3610		10336 	10367 	10374 	10386 	10390 	10439 	10447 	10449 
U 3620		10489 	10493 	10494 	10544 	10564 	10587 	10598 	10600 
U 3630		10603 	10615 	10624 	10625 	10628 	10631 	10632 	10633 
U 3640		10672 	10676 	10680 	10699 	10703 	10705 	10721 	10759 
U 3650		10760 	10775 	10784 	10787 	10789 	10796 	10818 	10849 
U 3660		10850 	10857 	10863 					
U 3670 - 3767 Unused
U 3770									9189:

No errors detected
End of microcode assembly
331 pages of listing
Used 56.10 in 01:10.11
  Memory used: 124P
  Symbol table: 41P
  Text strings: 13P
  Loc'n assignment: 18P
  Cross reference: 46P