Google
 

Trailing-Edge - PDP-10 Archives - BB-BL69C-SB_1986 - klx.mcr
There are 4 other files named klx.mcr in the archive. Click here to see a list.
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page TOC-1
; 							Table of Contents					

; 1		KLX.MIC[10,5351]	19:52 24-Jul-85
; 1	KL10 Microcode with KL Paging
; 19		EDHIS.MIC[10,5351]	19:59 24-Jul-85
; 36	REVISION HISTORY
; 1086		DEFINE.MIC[10,5351]	19:52 24-Jul-85
; 1087	CONDITIONAL ASSEMBLY VARIABLE DEFINITIONS
; 1248	HOW TO READ THE MICROCODE -- FORMATS & CONSTRUCTS
; 1451	MICROCODE LISTING TEMPLATE
; 1502	KL10 INSTRUCTION OPCODE MAP
; 1558	CONTROL RAM DEFINITIONS -- J, AD
; 1614	CONTROL RAM DEFINITIONS -- DATA PATH MIXERS
; 1687	CONTROL RAM DEFINITIONS -- 10-BIT LOGIC
; 1720	CONTROL RAM DEFINITIONS -- SHIFT, ARMM, VMA, TIME
; 1754	CONTROL RAM DEFINITIONS -- MEM SPECIAL FUNCTIONS
; 1783	CONTROL RAM DEFINITIONS -- SKIP/COND SPECIAL FUNCTIONS
; 1875	CONTROL RAM DEFINITIONS -- DISP/SPEC SPECIAL FUNCTIONS
; 1927	CONTROL RAM DEFINITIONS -- MAGIC NUMBER FIELD
; 2246	DISPATCH RAM DEFINITIONS
; 2292		MACRO.MIC[10,5351]	19:52 24-Jul-85
; 2293	CRAM Macros--Miscellaneous and A
; 2343	CRAM Macros--AR
; 2576	CRAM Macros--AR Miscellaneous, ARL, and ARR
; 2652	CRAM Macros--ARX
; 2762	CRAM Macros--B, C, D
; 2869	CRAM Macros--E, F
; 2976	CRAM Macros--G, H, I, J, L
; 3093	CRAM Macros--M, N, O, P
; 3205	CRAM Macros--R
; 3266	CRAM Macros--S
; 3523	CRAM Macros--T, U, V, W, X
; 3633	DRAM Macros
; 3717		BASIC.MIC[10,5351]	19:52 24-Jul-85
; 3718	THE INSTRUCTION LOOP
; 3814	NEXT INSTRUCTION DISPATCH
; 3949	EFFECTIVE ADDRESS COMPUTATION AND OPERAND FETCH
; 4015	WAIT FOR (E)
; 4083	TERMINATION
; 4142	MOVE GROUP, EXCH, BLT
; 4185	XMOVEI, XHLLI, MOVEM, EXCH, BLT
; 4216	HALFWORD GROUP
; 4363	DMOVE, DMOVN, DMOVEM, DMOVNM
; 4404	BOOLEAN GROUP
; 4561		SKPJMP.MIC[10,5351]	19:52 24-Jul-85
; 4562	TEST GROUP
; 4671	COMPARE -- CAI, CAM
; 4697	ARITHMETIC SKIPS -- AOS, SOS, SKIP
; 4746	CONDITIONAL JUMPS -- JUMP, AOJ, SOJ, AOBJ
; 4802	AC DECODE JUMPS -- JRST, JFCL
; 4942	HALT LOOP
; 4971	MAP, XCT
; 5000	STACK INSTRUCTIONS -- PUSHJ, PUSH, POP, POPJ
; 5098	SUBROUTINE CALL/RETURN -- JSR, JSP, JSA, JRA
; 5148	UUO'S
; 5378	JSYS, ADJSP
; 5420	XCT, PXCT, SXCT
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page TOC-2
; 							Table of Contents					

; 5494		SHIFT.MIC[10,5351]	19:52 24-Jul-85
; 5495	ROTATES AND LOGICAL SHIFTS -- ROT, LSH, JFFO
; 5550	ROTATE AND LOGICAL SHIFT COMBINED -- ROTC, LSHC
; 5584	ARITHMETIC SHIFTS -- ASH, ASHC
; 5633		ARITH.MIC[10,5351]	19:52 24-Jul-85
; 5634	ADD, SUB
; 5659	MUL, IMUL
; 5710	MULTIPLY SUBROUTINE
; 5764	DIV, IDIV
; 5823	INTEGER DIVIDE SUBROUTINE
; 5863	BASIC DIVIDE LOOP
; 5912	DOUBLE INTEGER ARITHMETIC -- DADD, DSUB, DMUL, DDIV
; 6037		FP.MIC[10,5351]	19:52 24-Jul-85
; 6038	SINGLE FLOATING ADD & SUB -- FAD, FADR, FSB, FSBR
; 6112	SINGLE FLOATING MULTIPLY -- FMP, FMPR
; 6141	SINGLE FLOATING DIVIDE -- FDV, FDVR
; 6269	UFA, DFN, FSC
; 6320	FIX, FIXR, FLTR, EXTEND
; 6390	SINGLE PRECISION FLOATING NORMALIZATION
; 6531	DOUBLE FLOATING ARITHMETIC -- DFAD, DFSB, DFMP, DFDV
; 6682	DOUBLE PRECISION NORMALIZATION
; 6744		EXTEXP.MIC[10,5351]	19:52 24-Jul-85
; 6745	GFLT DOUBLE PRECISION ARITHMETIC
; 6864	GFLT MULTIPLY
; 6911	GFLT DIVIDE
; 6954	GFLT NORMALIZATION
; 7097	GFLT TO INTEGER CONVERSION
; 7223	GFLT DATA CONVERSION INSTRUCTIONS
; 7451		BLT.MIC[10,5351]	19:52 24-Jul-85
; 7452	XBLT
; 7502	BLT
; 7590	EXTENDED ADDRESSING CODE FOR PXCT OF BLT
; 7627		BYTE.MIC[10,5351]	19:52 24-Jul-85
; 7628	Single Byte Instructions:  ILDB, LDB
; 7740	Single Byte Instructions:  DPB, IDPB
; 7847	Single Byte Instructions:  IBP, ADJBP
; 8054	Subroutines for Single Byte Instructions
; 8220		BYTSUB.MIC[10,5351]	19:52 24-Jul-85
; 8221	BYTE GROUP -- Some Old Style Subroutines
; 8231	INCREMENT BYTE POINTER SUBROUTINE
; 8283	BYTE EFFECTIVE ADDRESS EVALUATOR - XADDR
; 8331	LOAD BYTE SUBROUTINE
; 8354	DEPOSIT BYTE SUBROUTINE
; 8417		EIS.MIC[10,5351]	19:52 24-Jul-85
; 8418	EXTENDED INSTRUCTION SET DECODING
; 8587	ONE WORD GLOBAL BYTE POINTER SUBROUTINES FOR EXTEND
; 8642	EIS -- STRING MOVE
; 8762	EIS -- STRING COMPARE
; 8835	EIS -- DECIMAL TO BINARY CONVERSION
; 8902	EIS -- BINARY TO DECIMAL CONVERSION
; 9060	EIS -- SRCMOD SUBROUTINE TO GET MODIFIED SOURCE BYTE
; 9266	EIS -- EDIT FUNCTION
; 9525		IO.MIC[10,5351]	19:56 24-Jul-85
; 9526	I/O INSTRUCTIONS
; 9625	EXTERNAL DEVICE I/O INSTRUCTIONS
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page TOC-3
; 							Table of Contents					

; 9723	INTERNAL DEVICE FUNCTIONS -- APR, CCA
; 9777	INTERNAL DEVICE FUNCTIONS -- PI
; 9832	TRACKS SUPPORT
; 10089	INTERNAL DEVICE FUNCTIONS -- PAG
; 10212	INTERNAL DEVICE FUNCTIONS -- TIM & MTR
; 10317	PRIORITY INTERRUPT PROCESSING
; 10486	KL-MODE PAGE REFILL LOGIC
; 10876	KI-MODE PAGE FAIL HANDLING
; 11028	PAGE FAIL/INTERRUPT CLEANUP FOR SPECIAL INSTRUCTIONS
;	Cross Reference Index
;	DCODE Location / Line Number Index
;	UCODE Location / Line Number Index
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 1
; KLX.MIC[10,5351]	19:52 24-Jul-85				KLX.MIC[10,5351]	19:52 24-Jul-85		

						; 1	.TOC	"KL10 Microcode with KL Paging"
						; 2	
						; 3	.SET/SNORM.OPT=1
						; 4	.SET/XADDR=1
						; 5	.SET/EPT540=1
						; 6	.SET/LONG.PC=1
						; 7	.SET/MODEL.B=1
						; 8	.SET/KLPAGE=1
						; 9	.SET/FPLONG=0
						; 10	.SET/BLT.PXCT=1
						; 11	.SET/SMP=0		;No SMP (DOES RPW instead of RW FOR DPB, IDPB)
						; 12	.SET/EXTEXP=1
						; 13	.SET/MULTI=1		;DOES NOT CACHE PAGE TABLE DATA
						; 14	.SET/NOCST=1		;DOES NOT DO AGE UPDATES, ETC. WITH CST = 0
						; 15	.SET/OWGBP=1		;ONE WORD GLOBAL BYTE POINTERS
						; 16	.SET/IPA20=1		;IPA20-L
						; 17	.SET/GFTCNV=0		;DO NOT DO GFLOAT CONVERSION INSTRUCTIONS [273]
						; 18				;SAVES 75 WORDS. MONITOR WILL TAKE CARE OF THEM.
						; 19	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 1
; EDHIS.MIC[10,5351]	19:59 24-Jul-85				KLX.MIC[10,5351]	19:52 24-Jul-85		

; 20	.NOBIN
; 21	
; 22	;	THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
; 23	; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
; 24	; EQUIPMENT CORPORATION.  DIGITAL EQUIPMENT CORPORATION ASSUMES NO
; 25	; RESPONSIBITY FOR ANY ERRORS THAT MAY APPEAR IN THIS DOCUMENT.
; 26	;	THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO THE
; 27	; PURCHASER UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND
; 28	; CAN BE COPIED (WITH INCLUSION OF DIGITAL'S COPYRIGHT NOTICE) ONLY
; 29	; FOR USE IN SUCH SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING
; 30	; BY DIGITAL.
; 31	;	DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE
; 32	; USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED
; 33	; BY DIGITAL.
; 34	; COPYRIGHT (C) 1975,1976,1977,1978,1979,1980,1981,1982,1983,1984,1985 DIGITAL EQUIPMENT CORPORATION
; 35	
; 36	.TOC	"REVISION HISTORY"
; 37	
; 38	;	The following collection of people have contributed to the
; 39	;	production and maintenance of this code.  In reverse chronological
; 40	;	order:
; 41	;
; 42	;	QQSV (Dick Wagman) -- beginning with edit 301
; 43	;	Sean Keenan
; 44	;	Don Dossa
; 45	;	Mike Newman
; 46	;	Jud Leonard
; 47	;
; 48	.TITLE	"KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985"
; 49	.VERSION/MAJOR=2/MINOR=0/EDIT=411/WHO=0
; 50	;REV	WHY
; 51	;
; 52	;411	24 July 85--Another try at the SMP fix.  PI cycle 7 must go to
; 53	;	memory for interlock to work, so delete use of the cache on the
; 54	;	PHYS REF.  This may have performance drawbacks for TOPS-20 and
; 55	;	TOPS-10 uniprocessor, so there may have to be two versions of
; 56	;	microcode (again!) to resolve this.
; 57	;410	11 July 85--Force PI functions 3 and 7 to use RPW cycles, so
; 58	;	SMP will work properly.  Save a couple words in the process.
; 59	;407	18 June 85--Change macro ARX_2 to ARX_2+MQ0 and fix related bug
; 60	;	in ADJBP by clearing MQ on entry to instruction.  This prevents
; 61	;	ADJBP from computing the wrong byte capacities for OWGs with
; 62	;	byte sizes of 6 and 18.  Also reverse AC1 and AC2 in DB2WD.
; 63	;	That was causing CVTDBx to reverse the byte pointer halves if
; 64	;	an OWG was used, ruining things entirely.
; 65	;406	11 Mar 85--Define R17 as HARDPFW, and save the hard page fail word
; 66	;	there for TOPS-10, thus protecting it from getting clobbered by a
; 67	;	later soft page fail.
; 68	;400	9 Aug 84--Initial first edit number for releasable version 2.0.
; 69	;377	9 Aug 84--All of these are reserved (somewhat paranoically, I think)
; 70	; .	for version 1 as well.  The likelihood of them actually being used
; 71	;360	is vanishingly small!
; 72	;357	9 Aug 84--Add the 136 location constraint (forgotten in 356).
; 73	;356	8 Aug 84--Make the # field of location 136 contain the major and
; 74	;	minor version numbers.  Grab a random instruction with no # field
; 75	;	in use to do this.
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 1-1
; EDHIS.MIC[10,5351]	19:59 24-Jul-85			REVISION HISTORY					

; 76	;353	21 May 84--LDB and DPB in version 1 were leaving state register bit
; 77	;	3 set when the byte word was loaded, resulting in the page fault
; 78	;	handler treating it as if it were a string instruction and trying
; 79	;	to back up a byte pointer in AC1 when the reference page faulted.
; 80	;	Cure it by reseting the state register in GBYTE.  (Sure hope this
; 81	;	is the last bug in version 1!)
; 82	;352	4 Apr 84--It turns out that the string instructions had the same
; 83	;	problem as the byte instructions in 351!  Copy AR to ARX one
; 84	;	cycle earlier in both GRSC2 and IDST to fix it.  Also make sure
; 85	;	that all byte pointers default to PC section by initializing VMA
; 86	;	to PC on all calls to both of these routines.  This cleans up edit
; 87	;	300.
; 88	;351	12 Mar 84--When ILDB or IDPB incremented a one word local pointer
; 89	;	in such a way that the low half word changed sign, the section
; 90	;	computation for the byte address would get screwed up if the
; 91	;	index AC had a global address.  Fix this by copying the updated
; 92	;	pointer into ARX, thus forcing EA MOD DISP to look at the proper
; 93	;	bit in ARX18.
; 94	;350	15 Feb 84--Fix indexed indirection byte pointer effective address
; 95	;	calculations to load the indirect word into both AR and ARX.
; 96	;347	20 Jan 84--Rewrite the MVST and CMPS dispatches to test for illegal
; 97	;	bits in the lengths before BRX gets smashed.  UUO was reporting a
; 98	;	bogus op code in these situations.
; 99	;	Turn on BIG.PT by default, since it should work with both old and
; 100	;	new software and hardware.
; 101	;346	18 Jan 84--Fix the .IFNOT variation of BIG.PT to clear the Keep
; 102	;	bit if anybody sets it.  This was introduced in 343.
; 103	;	Add the DDT.BUG conditional.  Under it, rewrite APRID to move
; 104	;	bit 23 to bit 5 if it is set in the serial number.  This is a
; 105	;	piece of garbage which I hope can disappear soon (it seems EDDT
; 106	;	used the serial number to test for a KS-10!).
; 107	;	Fix the time field on the page map word type dispatch (the assembler
; 108	;	default was too high).  Also make the PAGCNT conditional hang on
; 109	;	to the original AR value after it counts the PFH entry (this would
; 110	;	only matter for an AR parity error).  Rename AR and ARX defaults to
; 111	;	MEM for the AR_MEM and ARX_MEM macros, respectively.
; 112	;345	6 Dec 83--Clean up all the pieces and integrate the new byte
; 113	;	instruction implementation into the rest of the microcode.  Also
; 114	;	add the FIN LOAD macro (more mnemonic than FIN XFER, its equivalent)
; 115	;	and include AR/AR on AR_MEM and ARX/ARX on ARX_MEM, as those macros
; 116	;	really don't work unless those fields take their default.  This
; 117	;	version marks the first time that major chunks of code have been
; 118	;	bodily replaced; accordingly, with this edit the major version has
; 119	;	been bumped to 2.
; 120	;344	1 Dec 83--Save CVTBDx fill character address, which was getting lost
; 121	;	if OWGBPs were in use, in a manner similar to that used in CMPSx
; 122	;	(see edit 310).  Also, fix some conditionals for EXPMSK constant
; 123	;	generation, so that OWGBPs will assemble with EXTEXP off.
; 124	;343	18 Nov 83--Install new code for IBP and ADJBP, saving time and
; 125	;	microwords.
; 126	;342	8 Nov 83--Change definition of CLR PT LINE to be consistent with
; 127	;	new paging board (see also 333).  Also, redefine bit 3 of effective
; 128	;	word to reverse keep sense (so unkept only pages are cleared when
; 129	;	bit 3 is set).
; 130	;341	28 Sep 83--Force the ARX to contain the first byte pointer word on
; 131	;	exit from INCRBP so that subsequent EA MOD DISP wil work.  Force
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 1-2
; EDHIS.MIC[10,5351]	19:59 24-Jul-85			REVISION HISTORY					

; 132	;	OWGs to explicitly wait for store to complete after increment
; 133	;	(unfortunately there is no implicit MB WAIT in MEM/EA CALC.  Sorry!).
; 134	;340	The OWG/OWL test for the byte instructions had the sense of the
; 135	;	test backwards in several places.  Rework LDBDSP, INCRBP, and
; 136	;	DPBDSP.  This makes it impossible for DPEA to test for a byte
; 137	;	off the top of a word on its return, so it has been desubroutinized.
; 138	;337	15 Sep 83--Start work on a complete rewrite of all byte and character
; 139	;	instructions.  Begin by installing initial versions of LDB, ILDB,
; 140	;	DPB, and IDPB.  All of these are designed to make one word global
; 141	;	byte pointers run faster by loading their shift counts from CRAM
; 142	;	dispatch tables.  Also, reduce time for DISP/SH0-3 to three ticks.
; 143	;	Move CDBLST into FP to allow EXTEXP conditional to be turned off.
; 144	;	Also, shuffle conditional placement to prevent EXTEXP shutoff from
; 145	;	turning off XBLT as well.
; 146	;336	9 Aug 83--Back off 330 for a bit, since TOPS-10 7.02 must be tested
; 147	;	and OWGs in section 0 fail for string instructions (they get converted
; 148	;	to TWGs, which are illegal in section 0).  For now, we will maintain
; 149	;	both sources.
; 150	;335	Force memory to be released for SMP case of DPB if P > 36 causes no
; 151	;	actual data to be stored.  Make an OWG reference to an address >
; 152	;	37,,777777 cause a page fail (GBYTE was stripping the excess bits).
; 153	;334	Fix conflict generated in CLRPT by 333 by creating new subroutine
; 154	;	ARSWAP which is just AR_AR SWAP.  Make several other routines call it,
; 155	;	thus saving a few words.
; 156	;333	Add new conditional BIG.PT.  Under it, add code to implement the "Keep
; 157	;	me" bit for paging as bit 5 of the page table, and to move it to page
; 158	;	map bit 23 during page refill.  Also make DATAO PAG not clear Kept
; 159	;	pages if bit 3 of the word is off.
; 160	;332	Redefine all bank 7 ACs as R0,...,R17, and all bank 6 ACs as P0,...,
; 161	;	P17.  Change all other alias definitions to refer to these.  This
; 162	;	gives us a uniform cross reference for all scratch register references.
; 163	;	Put all macro definitions into alphabetical order, making it easier
; 164	;	to look up a macro definition.  Split the edit history into its own
; 165	;	file.  There are no functional changes from 331.
; 166	;331	Allow XSFM anywhere.  Clean up the code a bit in the process.  There
; 167	;	still remain a number of references to XSFM or XPCW distinctions,
; 168	;	and these could almost certainly be cleaned up further.
; 169	;330	Allow one word global byte pointers in section zero.  This includes
; 170	;	changes in BYTE, EIS, and FP.  Change GBYTE and CNV2WD to return 2;
; 171	;	eliminate GTST as obsolete.  Also shuffle the calls to these routines
; 172	;	to conform to the new calling conventions, and put the OWG test at
; 173	;	the beginning of IBP, ILDB, IDBP, LDB, DPB, and ADJBP.
; 174	;327	Add PAGCNT conditional.  Under it, include control to count entry
; 175	;	into PFH code and DATAO PAG with bit 2 set.
; 176	;326	Change VMA restoration in INC2WD and CNV2WD (see edits 320 and 307)
; 177	;	to use RSTR VMA_MQ in order to keep the global/local sense of the
; 178	;	reference.  This was causing ILDBs of OWGs in shadow memory to
; 179	;	save the incremented byte pointer in the ACs instead of memory.
; 180	;325	Add VMA/LOAD to local indexed EA computation for EXTEND E1 to make
; 181	;	it read the section number from VMA instead of PCS (!) if the index
; 182	;	is section local.
; 183	;324	Force the XADDR conditional to use RPW type references for DPB and
; 184	;	IDPB if the SMP conditional is on, even if one word globals are not
; 185	;	active.
; 186	;323	Add missing constraint near NOT.WR, accidentally broken by 322.
; 187	;322	Generate the A(cessible) bit in a page fail word caused by a read
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 1-3
; EDHIS.MIC[10,5351]	19:59 24-Jul-85			REVISION HISTORY					

; 188	;	violation if the page is otherwise accessible and if no CST is present.
; 189	;	This could be fixed for the CST present case as well, but has been
; 190	;	deferred since we are tight on space and no one seems to need it
; 191	;	anyway.
; 192	;321	Prevent statistics microcode from losing traps by forcing NICOND
; 193	;	dispatch 11 to ignore the statistics and take the trap.
; 194	;320	Restore the VMA again in INC2WD (broken by 307), since the state
; 195	;	register bits may have changed in the interim.  This was causing
; 196	;	PXCT to do surprising things (mostly bad).
; 197	;317	Originally, this was an attempt to uncount multiply counted op
; 198	;	codes which resulted from interrupts during long instructions.
; 199	;	That project has been shelved for now.  Instead, the second
; 200	;	NICOND dispatch during op code counting has had its final constraint
; 201	;	fixed.
; 202	;316	Make counting only version compatible with time and counting by making
; 203	;	counting only version use TRX2 and TRX3, removing physical contiguity
; 204	;	requirement.
; 205	;315	Op code counting lives again!  The setup code activated by DATAO PI
; 206	;	was attempting to write the TRX registers with data fresh from memory,
; 207	;	resulting in parity checks when it was used (see edit 73, for example).
; 208	;	Juggle code to overlap next address calculation with parity wait.
; 209	;314	Add CST.WRITE conditional to facilitate assembly of microcode
; 210	;	without the CST writable bit (see edit 303).
; 211	;313	Put TIME/3T on XFERW, as the assembler was getting the wrong
; 212	;	value with both AR_MEM and ARX_MEM macros present.
; 213	;312	Fix definition of BYTE RPW to include a write test.  This was
; 214	;	causing the SMP version of DPB to hang when memory was readable
; 215	;	but not writable.
; 216	;311	Make all IOP function 7 style of references look in the cache.
; 217	;310	Improve the fix in 307 to save the computed E0+1 in FILL during
; 218	;	OWGBP conversion and to restore the VMA from there when done.
; 219	;	Also, make sure that the VMA is initialized to PC for all cases
; 220	;	when doing effective address calculations for two word globals
; 221	;	in string instructions.  307 was not enough to clean up the
; 222	;	CMPSx fill problem, since VMA HELD was never loaded.
; 223	;	Force EXT2WD to prereference AC4 and AC5 so that glitch discovered
; 224	;	for second edit 210 will not be activated.
; 225	;307	Restore VMA from MQ at end of CNV2WD (and remove it from INC2WD,
; 226	;	saving a word in the process).  This was causing CMPSx to load
; 227	;	a random fill word and MOVSLJ to store to a random place when the
; 228	;	source length was zero if one word globals were in use.
; 229	;	Force page fail code to look for ARX as well as AR parity errors
; 230	;	(now possible with BYTE RPW implemented).
; 231	;	Make sign extension of E1 go to right place in EXTEND decoding of
; 232	;	offset instructions (broken in 301).
; 233	;306	Add University of Essex code to statistics (TRACKS) code to make
; 234	;	it work with address break enabled.
; 235	;305	Fix CST write bit logic to not test bit 18 when reading.
; 236	;304	Switch byte read interlock from LDB to DPB (broken in 303).
; 237	;303	Implement bit 18 of a CST entry as a write enable bit in addition
; 238	;	to all the other write enable functions.
; 239	;	Knock one cycle out of byte deposit where the byte is being
; 240	;	deposited into the high order byte of a word.
; 241	;	Implement the SMP conditional for extended addressing by
; 242	;	replicating all the byte effective address calculation code for
; 243	;	DPB.  This is unfortunate, but necessary due to the huge dispatch
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 1-4
; EDHIS.MIC[10,5351]	19:59 24-Jul-85			REVISION HISTORY					

; 244	;	table that ends this subroutine.
; 245	;302	Move XFERW out of EIS (which no longer absolutely requires it
; 246	;	in line) into SKPJMP (more in the heart of things).  Also
; 247	;	juggle comment lines and code layout to reduce the listing
; 248	;	size a bit and to force some of the .TOC lines into the table
; 249	;	of contents (even though the code nearby may be suppressed).
; 250	;301	Fix ADJBP so that instructions which occur at the last word on
; 251	;	a page do not cause a page failure of some random type (one cycle
; 252	;	too many between I FETCH and NICOND).
; 253	;	Fix effective address calculation for EXTEND so that only offset
; 254	;	instructions (and not GSNGL, for example) will have E1 sign
; 255	;	smeared.
; 256	;	Implement XJRST.  Also force JSP and JSR to do full 30 bit
; 257	;	effective address calculations.
; 258	;300	ADD LOAD OF VMA FROM PC IN PUTDST TO GET THE SECTION ADDRESS
; 259	;	CORRECT ON THE STRING INSTRUCTIONS.
; 260	;277	Add EA CALC table for SMP configurations of extended addressing
; 261	;	for TOPS-10.  (TOPS-20 paging)
; 262	;276	Force global EA CALC for EXTEND instructions in PUTDST.
; 263	;275	FIX THE ERROR CODE IN STRING COMPARE FOR ILLEGAL BITS IN THE
; 264	;	LENGTH FIELD. WAS CAUSING AR PARITY ERRORS.
; 265	;274	SAVE THE API FUNCTION WORD ON AN IO PAGE FAIL INSTEAD OF THE
; 266	;	PAGE FAIL WORD. THIS TAKES PLACE IN BOTH THE AC BLK 7 AC 2
; 267	;	AND THE MONITOR.
; 268	;273	PUT CONDITIONALS AROUND 4 GFLOAT CONVERSION INSTRUCTIONS.
; 269	;	THEY WILL ACT AS MUUO'S AND MONITOR WILL TAKE CARE OF THEM.
; 270	;272	CONO APR 200000 AT TIMES WAS NOT GENERATING EBUS RESET OF A
; 271	;	SUFFICIENT LENGTH TO CLEAR DTE REGISTERS. ADDED ANOTHER
; 272	;	MICROWORD SO THAT CONO APR IS NOW UP FOR TWO FULL WORDS WHICH
; 273	;	GETS AROUND THE HARDWARE PROBLEM.
; 274	;271	ILLEGAL INDIRECT PAGE FAIL (24) WAS NOT ALLOWING USER TO BE SET.
; 275	;270	WHEN IN SECTIONS > 1, AN UPDATED OWGBP WOULD BE WRITTEN INTO
; 276	;	MEMORY INSTEAD OF THE AC'S.
; 277	;267	CHANGED TESTS FOR OWGBP TO TEST FOR PC SEC0 FIRST. SAVES 33 NS.
; 278	;266	CONDITIONALS ON FOR TOPS-20 DEVELOPMENT.
; 279	;265	REMOVED EDIT 244. SOFTWARE ENGINEERING WILL SUPPLY MONITOR
; 280	;	CODE TO TAKE CARE OF PROBLEM. CODE COSTS TOO MUCH TIME IN
; 281	;	THE INSTRUCTION EXECUTION.
; 282	;264	ADDED CONDITIONALS TO CODE FOR IPA20, OWGBP AND NO CST UPDATE IF
; 283	;	CBR IS ZERO. THIS IS FOR RELEASE 5 OF TOPS-20.
; 284	;263	IBP DID NOT CLEAR FPD ON EXIT.
; 285	;262	ALLOW XBLT TO BE VALID IN SECTION 0.
; 286	;261	FIX CODE AT END OF ADJBP CODE TO CLEAR STATE REG. IF ILDB
; 287	;	WITH 2 WD GLOBAL POINTER POINTING TO ADDRESS NOT IN CORE
; 288	;	CLEAN DISPATCHES TO WRONG CODE BECAUSE SR LEFT OVER FROM
; 289	;	ADJBP.
; 290	;260	FIX FM PARITY ERRORS AT MVF1: ADDED NULL CALL TO RET2:
; 291	;	AT MVST: TO TAKE CARE OF EXTRA TICK FOR PARITY.
; 292	;257	MAKE SURE THAT THE UPDATED ONE WORD GLOBAL BYTE POINTER IS
; 293	;	WRITTEN BACK INTO THE CORRECT CONTEXT.
; 294	;256	MAKE ANOTHER ATTEMPT TO FIX PXCT OF ONE WORD GLOBAL BYTE POINTERS.
; 295	;	THE GIBP CODE GETS THE SAME CHANGES AS EDIT 255.
; 296	;255	MAKE ONE WORD GLOBAL BYTE POINTERS WORK WITH PXCT. THE STATE
; 297	;	REGISTER BITS ON MCL4 (NOT TO BE CONFUSED WITH CON3), WERE NOT
; 298	;	BEING SET PROPERLY TO ALLOW PREVIOUS ENA AND USER ENA TO BE SET.
; 299	;	GUARANTEE THAT THESE SR BITS ARE SET PRIOR TO THE LOAD OF THE VMA.
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 1-5
; EDHIS.MIC[10,5351]	19:59 24-Jul-85			REVISION HISTORY					

; 300	;254	FIX PROBLEM WITH OWGBP WHERE FPD DOES NOT EFFECT
; 301	;	INC OF POINTER AFTER PAGE FAIL
; 302	;253	FIXED ADDRESSING FOR SH DISP AT GADJL0:
; 303	;252	MOVE STRING INSTRUCTIONS DO NOT GET THE CORRECT DATA ON
; 304	;	LOCAL POINTERS IN NON 0 SECTIONS
; 305	;251	ADD CODE FOR ONE WORD GLOBAL BYTE POINTERS.
; 306	;	TOOK OUT EDITS 243 AND 250 TO GET ENOUGH SPACE IN CRAM
; 307	;	FOR THIS EDIT. OWGBP WITH EXTEND INSTRUCTIONS WILL NOT
; 308	;	RETURN A OWGBP. THEY WILL RETURN A TWO WORD GLOBAL BP.
; 309	;250	ALLOW SMP SWITCH TO EFFECT TOPS-20 MODEL B TO DO RPW IN
; 310	;	BYTE INSTRUCTIONS.
; 311	;247	DO NOT DO A CST UPDATE OR AGE UPDATE IF THE CBR IS ZERO.
; 312	;246	EXTEND OP CODE DECODE FOR MODEL A WAS ACCEPTING MODEL B
; 313	;	OP CODES (20-31). ADDED CONDITIONALS TO CODE TO FIX.
; 314	;245	FIX 2 WORD GLOBAL BYTE POINTER BUG WITH IBP INSTRUCTION
; 315	;	WITH EXTENDED ADDRESSING OUT OF SECTION 0
; 316	;244	FIX MOVST EXTEND INST. SO THAT ILLEGAL (> 36) S FIELD
; 317	;	DOES NOT CAUSE STOP CODE TO CRASH SYSTEM FOR TOPS-10 MODEL B.
; 318	;243	WRTIME TRIED TO DO MEM WRITE EVEN THOUGH THE INSTRUCTION
; 319	;	DOES NOT DO ANYTHING TO MEMORY. CAUSED PROBLEMS IF THE MEMORY
; 320	;	LOCATION WAS NOT WRITABLE.
; 321	;242	FIX CODE FROM EDIT 234 TO GET PF CODE OF 24.
; 322	;241	FIX DFAD AND DFMP FOR ROUNDING OCCURS PROPERLY. ADDED STICKY
; 323	;	BIT FOR LEAST SIGNIFICANT BITS OF THE RESULT.
; 324	;240	FIX GFLT INSTRUCTIONS GFIX AND DGFIX SO THEY WILL TRUNCATE NEGATIVE
; 325	;	NUMBERS IN THE CORRECT DIRECTION. THE MQ MUST BE ZERO BEFORE
; 326	;	THE ARX_2 MACRO IS INVOKED OR THE ARX MIGHT GET A 3 FROM MQ00.
; 327	;237	ADD OPTION BIT FOR PV CPU IN THE APRID WORD AS IT IS DOCUMENTED
; 328	;	IN ALL OF THE HARDWARE DOCUMENTATION. SET THE BIT ACCORDING
; 329	;	TO THE MODEL.B OPTION SWITCH. IT WILL BE MAGIC NUMBER BIT 3.
; 330	;236	ALLOW THE INTEGER DIVIDE OF THE LARGEST NEGATIVE NUMBER BY
; 331	;	PLUS ONE TO SUCCEED. THIS USED TO BE A DOCUMENTED RESTRICTION
; 332	;	THAT THIS OPERATION WOULD CAUSE AN OVERFLOW AND NO DIVIDE.
; 333	;235	FIX JRA SO IT DOESN'T FALL INTO SECTION ZERO FROM A NON-ZERO
; 334	;	SECTION EVERY TIME BY WRITING THE PC SECTION INTO THE VMAX.
; 335	;234	BUILD A PAGE FAIL CODE OF 24 WHEN AN ILLEGAL INDIRECT WORD
; 336	;	IS FOUND DURING THE EFFECTIVE ADDRESS CALCULATION IN
; 337	;	A NON-ZERO SECTION. THE PAGE FAIL CODE WAS PREVIOUSLY NOT
; 338	;	BEING REPORTED.
; 339	;233	SAVE THE IOP FUNCTION WORD THAT APPEARS ON THE EBUS WHEN AN
; 340	;	EXTERNAL DEVICE INTERRUPTS THE CPU. SAVE THIS INFORMATION
; 341	;	ON EVERY INTERRUPT IN AC BLOCK 7, AC 3. THE CONTENTS
; 342	;	OF THIS AC WILL BE PRESERVED UNTIL THE NEXT INTERRUPT.
; 343	;	OPERATING SYSTEMS SHOULD SAVE THIS INFORMATION AS SOON AS POSSIBLE
; 344	;	IF ITS CONTENTS ARE TO BE RELIABLE AND MEANINGFUL.
; 345	;232	ADDS 13 NEW INSRUCTIONS FOR SUPPORTING FORTRAN78 ON MODEL
; 346	;	B MACHINES. THESE INSTRUCTIONS ARE:
; 347	;	       OPCODE     SYMBOL
; 348	;	       ======     ======
; 349	;		102	GFAD AC,E
; 350	;		103	GFSB AC,E
; 351	;		106	GFMP AC,E
; 352	;		107	GFDV AC,E
; 353	;		EXTEND INSTRUCTIONS    EXTEND OPCODE
; 354	;		====== ============    ====== ======
; 355	;		EXTEND AC,[GSNGL  0,E]	    21
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 1-6
; EDHIS.MIC[10,5351]	19:59 24-Jul-85			REVISION HISTORY					

; 356	;		EXTEND AC,[GDBLE  0,E]	    22
; 357	;		EXTEND AC,[DGFIX  0,E]	    23
; 358	;		EXTEND AC,[GFIX   0,E]	    24
; 359	;		EXTEND AC,[DGFIXR 0,E]	    25
; 360	;		EXTEND AC,[GFIXR  0,E]	    26
; 361	;		EXTEND AC,[DGFLTR 0,E]	    27
; 362	;		EXTEND AC,[GFLTR  0,E]	    30
; 363	;		EXTEND AC,[GFSC   0,E]	    31
; 364	;231	FIX IN PROBLEM IN EDIT 215 TO XDPB THAT PREVENTED THE KL
; 365	;	FROM HANDLING INTERRUPTS WHILE EVALUTAING AN INDEXED INDIRECT CHAIN.
; 366	;	AN "=0" WAS MISSING BY BYTEIP.
; 367	;230	TO PRESERVE COMPATABILITY WITH THE KS10 AND BECAUSE OF SPACE
; 368	;	LIMITATIONS IN TOPS20 MODEL A, THE SPECIFICATION FOR THE
; 369	;	CVTDBX INSTRUCTIONS HAVE BEEN CHANGED TO ELIMINATE THE NEED
; 370	;	FOR AN OVERFLOW TEST DURING THE CONVERSION. THIS CHANGE
; 371	;	EFFECTIVELY REMOVES EDIT 221.
; 372	;227	DELETE EDIT 222 AND RETURN THE CVTBDX INSTRUCTIONS TO THEIR
; 373	;	OLD, BROKEN FUNCTIONALITY SINCE ANY ATTEMPT TO PREVENT THE
; 374	;	FLAGS FROM BEING CHANGED PREMATURELY HAS TO CONTEND WITH
; 375	;	INTERRUPTABILITY PROBLEMS. THE HARDWARE REFERENCE MANUAL
; 376	;	HAS A FOOTNOTE ABOUT THE FLAG PROBLEM SO THE CURRENT FUNCTIONALITY
; 377	;	IS DOCUMENTED FOR USERS.
; 378	;226	PREVENT AR PARITY ERRORS WHEN INCREMENTING BYTE POINTERS IN THE ACS.
; 379	;225	THE CODE TO SUPPORT THE MX20 VIA THE SBUS DIAG LOOP MECHANISM
; 380	;	DOES NOT TIME OUT CORRECTLY BECAUSE THE LOOP COUNTER IS BEING
; 381	;	REINITIALIZED EVERY TIME THROUGH THE LOOP. FIX THIS PROBLEM
; 382	;	EVEN THOUGH THE CODE IS NOT ASSEMBLED IN CURRENT RELEASES.
; 383	;224	FIX BUG IN EDIT 223 THAT CAUSED THE WRONG PAGE FAIL
; 384	;	WORD TO BE WRITTEN WHEN AN I/O PAGE FAIL OCCURS.
; 385	;223	WHEN A MEMORY PARITY ERROR OCCURRS AT PI LEVEL, AS EVIDENCED
; 386	;	BY AN AR DATA PARITY ERROR, THE DTE MAY BE WAITING FOR A
; 387	;	RESPONSE. IF IT IS, A DEX FAILURE WILL OCCUR UNLESS WE CAUSE
; 388	;	DEMAND TO WIGGLE.  WE CAN DO THIS BY FORCING THE DATA  IN THE
; 389	;	AR OVER THE EBUS.
; 390	;222	CVTBDX IS NOT SUPPOSED TO CHANGE THE CONTENTS OF THE ACS
; 391	;	OR MEMORY IF THE CONVERTED NUMBER WILL NOT FIT INTO THE
; 392	;	DESTINATION FIELD. IT WAS, HOWEVER, CHANGING THE FLAGS
; 393	;	BEFORE IT KNEW IF THE NUMBER WOULD FIT.
; 394	;221	THE CVTDBX WERE FAILING TO SET OV AND TRAP1 WHEN THE
; 395	;	CONVERTED DECIMAL NUMBER WOULD NOT FIT INTO A
; 396	;	DOUBLE WORD.
; 397	;220	THE TRANSLATE INSTRUCTIONS WERE USING A 15 BIT WIDE
; 398	;	FIELD FOR THE REPLACEMENT BYTE IN THE TRANSLATE TABLE
; 399	;	WHILE THE SPECIFICATION STATED THAT THE TRANSLATE
; 400	;	INSTRUCTIONS WOULD USE ONLY 12 BITS.
; 401	;217	PREVENT CRAM PARITY ERRORS CAUSED BY DISPATCHING TO LOCATION
; 402	;	3042 WHEN INDEXING IS SPECIFIED IN THE EFFECTIVE ADDDRESS
; 403	;	CALCULATION OF E1 WHEN THE EXTEDED OPCODE IS ZERO (ILLEGAL).
; 404	;	THE FIX IS TO PUT A JUMP TO UUO AT 3042.
; 405	;216	CHANGE THE DEFAULT VALUE FOR THE SMP SWITCH TO BE ONE. THIS
; 406	;	CAUSES THE MICROCODE TO INCLUDE SMP SUPPORT BY DEFAULT.
; 407	;215	CHANGES DPB INSTRUCTION TO R-P-W CYCLE ON DATA FETCH PORTION OF
; 408	;	INSTRUCTION TO SOLVE AN INTERACTION PROBLEM IN AN SMP OPERATING
; 409	;	SYSTEM.  THIS CHANGE ONLY APPLIES TO MICROCODES FOR TOPS-10
; 410	;	AND TOPS-20, MODEL A.
; 411	;214	ADDED CHANGES FOR XADR, RELEASE 4 AS FOLLOWS.
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 1-7
; EDHIS.MIC[10,5351]	19:59 24-Jul-85			REVISION HISTORY					

; 412	;	STORE PREVIOUS CONTEXT SECTION (PCS) IN FLAGS WORD (BITS 31-35)
; 413	;	IF EXEC MODE AND XSFM OR XPCW INSTRUCTION,MUUO OR PAGE FAIL.
; 414	;	RESTORE PCS FROM FLAGS WORDS (BITS 31-35) WHEN XJRSTF OR XJEN
; 415	;	IS EXECUTED IN EXEC MODE AND THE NEW PC IS ALSO IN EXEC MODE.
; 416	;213	SET/FPLONG=0 PARAMETER ADDED TO TOPS-10 MICROCODE FOR KL MODEL
; 417	;	A AND MODEL B.
; 418	;212	CHANGE THE CODE AT LDIND: TO TEST FOR USER MODE IF USER MODE
; 419	;	TURN OFF SPECIAL CYCLE THAT MAY STILL BE ON. THE MICROCODE WILL DEPEND
; 420	;	ON KERNAL PROGRAMS TO NOT GET IN PAGE POINTER
; 421	;	LOOPS. INSTRUCTIONS EXECUTED FROM THE CONSOLE WILL NOT WORK.
; 422	;	PI INSTRUCTIONS GET A RESTRICTION TO NOT GET INDIRECT PAGE POINTERS
; 423	;	IN THEIR PAGING CHAIN AS DO EXAMINES AND DEPOSITS AND BYTE TRANSFERS.
; 424	;211	CHANGE THE TEST FOR INDIRECT POINTERS TO NOT HAPPEN ON SECTION
; 425	;	POINTERS AND JUST ON INDIRECT PAGE POINTERS. AT LDIND:+1 AND LDIMM:+2
; 426	;210	MAKE ALL AC+# MICROINSTRUCTIONS HAVE THE # FIELD THE SAME IN THE
; 427	;	PREVIOUS MICROINSTRUCTION TO SOLVE A TIMONG GLITCH IN THE HARDWARE.
; 428	;	MAKE EXCHANG MARK AND DESTINATION POINTERS UUO IF THEY DO NOT
; 429	;	HAVE BYTE POINTERS OF EQUAL LENGTH. CHANGES PERVASIVE IN EIS ALSO IN PF
; 430	;	RECOVERY IN IO.
; 431	;	MAKE THE LOAD OF AN INDIRECT POINTER CLEAR PI CYCLE IF SET.
; 432	;	THIS MEANS THAT THE MONITOR CANNOT USE KERNAL CYCLE, INSTR ABORT
; 433	;	INH PC+1 OR HALT IN A PI CYCLE IF AN INDIRECT POINTER CAN
; 434	;	BE A PART OF THE REFILL. ALSO NOTE THE POSSIBILITY OF GETTING AN
; 435	;	INTERUPT BEFOR THE PI INSTRUCTION COMPLETES. (NEVER CONTINUES PI
; 436	;	INSTRUCTION) CHANGES AT LDIND.
; 437	;207	CHANGE SBUS DIAG CODE FOR MOS PUT IT IN MOS CONDITIONAL /MOS=1
; 438	;	IF ON SBUS DIAG TRIES AT LEAST 8 TIMES TO GET A RESPONSE
; 439	;	OTHER THAN -1 IF IT GOT -1 ALL THOSE TIMES THE MICROCODE
; 440	;	GIVES UP AND RETURNS 0
; 441	;206	FINAL FIXES TO PUSHM AND POPM
; 442	;205	FIX BUG IN INDEX CALCULATION OF E1 FOR EXTENDED ADDRESSING.
; 443	;	INDEXING REQUIRED THAT AN AREAD BE PERFORMED IN ORDER TO LOAD
; 444	;	THE AR WITH A CORRECT FINAL RESULT. THE EFFECTIVE ADDRESS CALCULATION
; 445	;	AROUND EXTLA: GOT A NEW MACRO ADDED FOR INDEXING THAT DOES THE AREAD.
; 446	;	ABSOLUTE LOCATIONS IN THE RANGE 3040 GET USED AS TARGETS FOR THIS
; 447	;	AREAD THEN THE CODE REJOINS THE OLD CODE AT EXT2:
; 448	;	THE AREAD WAS NECESSARY FOR THE HARDWARE MAGIC TO LOAD PARTS OF THE
; 449	;	AR DEPENDING ON THE INDEX REGISTER AND OTHER EXTENDED ADRESSING
; 450	;	PARAMETERS.
; 451	;204	ADD AUTOMATIC VERSION NUMBER
; 452	;	ADD CODE TO DO SBUS DIAG TESTING REQUIRED BY MOS
; 453	;203	PUT THE BLKO PAG, CHANGE IN 201 IN A KLPAGING CONDITIONAL
; 454	;	KIPAGING GETS TANGLED IN AR PARITY ERRORS AND IN GENERAL DOES
; 455	;	THE WRONG THINGS
; 456	;202	TURN OFF IMULI OPTIMIZATION IT GETS THE SIGN BIT AND THE OVERFLOW
; 457	;	FOULED UP (TURNED OFF FOR MODEL B ONLY WAS OFF IN MODEL A)
; 458	;201	CHANGE BLKO PAG, TO INVALIDATE ONLY ONE ENTRY BY CLEARING IT
; 459	;	CHANGES AT PAGBO PAGBO+1 AND CLRPT+3 CLRPT+3 GETS SETUP THAT USED
; 460	;	TO BE AT PAGBO+1, PAGBO+1 NOW CLEARS ENTRY AND QUITS
; 461	;	KLPAGE ERROR CHECK FOR TOPS 10 MODEL A TO CAUSE ERROR
; 462	;	IF SWITCH SETTINGS ARE IN CONFLICT DIDDLED
; 463	;200	CHANGE ALL EXEC REF TRACKS FEATURES BACK TO PHYS REF
; 464	;	ON SUSPICION THAT PAGE FAULTS ARE NOT HANDLED PROPERLY
; 465	;	MAKE NON TRACKS INSTR STAT FEATURES GET FOUR PHYSICAL
; 466	;	PAGE NUMBERS FROM FIRST FOUR LOCATIONS IN THE PAGE PRESENTED
; 467	;	IN THE DATAO PI, THE CODE ALSO USES THAT PAGE FIRST
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 1-8
; EDHIS.MIC[10,5351]	19:59 24-Jul-85			REVISION HISTORY					

; 468	;	LOCATION TO PUT THE INITIAL JUNK INTO ON STARTUP
; 469	;177	FIX SOME BUGS IN OPCODE TIMING CODE AT OPTM0: AND BEYOND
; 470	;176	ADD TO THE TIME COUNTING CODE CODE THAT COUNTS FREQUENCY
; 471	;	OF EACH OPCODE IN PAGE+2 AND PAGE+3
; 472	;175	FIX TIME COUNTING CODE TO ACOUNT FOR EACH OPCODE IN THE
; 473	;	USER OR EXEC MODE IT WAS SEEN IN, EDGE COUNTS WERE DONE IN
; 474	;	WRONG MODE CHANGES UNDER OP.TIME CONDITONALS (PERVASIVE)
; 475	;174	CHANGE TRACKS AND TIME COUNTING TO USE EXEC VIRTUAL SPACE
; 476	;	INSTEAD OF PHYSICAL SPACE
; 477	;173	SEPERATE OUT THE DISMISS AT 626: BECAUSE OF SUSPECTED BUG
; 478	;172	THE FACT THAT XJEN DISMISSES BEFORE READING NEW PC WORDS CAUSES
; 479	;	A PROBLEM FOR TOPS 20. REHASH THE CODE AT 600: TO 637: TO MAKE
; 480	;	XJEN READ THE TWO WORDS FIRST AND THEN DISMISS.
; 481	;171	CAUSE IO PAGE FAIL FIX IN 170 TO SHIFT AT END GETTING CORRECT
; 482	;	PAGE FAIL WORD CHANGE AT IOPGF:
; 483	;170	MAKE CLRFPD: GO DIRECT TO FINI: INSTEAD OF THROUGH NOP: THIS WAS
; 484	;	COSTING 2 TICS IN BYTE INSTRUCTIONS
; 485	;	CHANGE IO PAGE FAIL TO SAVE A VIRTUAL ADDRESS IN THE AC BLOCK 7
; 486	;	LOCATION 2 INSTEAD OF THE DATA THAT WAS ON THE EBUS CHANGES AT
; 487	;	PGF4:+1 AND IOPGF:
; 488	;167	CHANGE DEFAULT ON ADB MIXER SELECTS. NO DEFAULT NOW SUBFIELD U23
; 489	;	IS DEFAULTED TO 1 TO AVOID SELECTING FM AND NEEDING TO WAIT FOR PARITY.
; 490	;	THIS LEAVES THE OTHER BIT OF THE FIELD AVAILABLE FOR PARITY
; 491	;	EPT MOVED TO 540 USING SWITCH IN KLX,KLL (KLA,KLB NOW DEFUNCT)
; 492	;166	CHANGE FIELD DEFINITION FORMAT CHANGE THE WAY THE OPTIONS FIELD
; 493	;	GETS ITS VALUES ASSIGNED. EACH BIT GETS A FIELD DEFINITION.
; 494	;165	BUG IN 161 TO 164 WAS MISSING AC0 AT POP2: PARITY BIT WAS PUT THERE
; 495	;	IN THE NEWER MICROCODES
; 496	;	INSTALL MANY THINGS TO MAKE WORD STRING MOVES WORK START AT
; 497	;	MOVWD1 AND UNTILL BMVWD1 ALSO ASSORTED MACROS ARE ADDED
; 498	;	THESE ARE INSTALLED IN A SEPERATED EIS FILE (WDEIS) FOR THE MOST PART
; 499	;	THERE ARE SOME NEW MACROS AND THE CLEAN+17 LOCATION IS USED FOR
; 500	;	THIS CASE UNDER MODEL B CONDITIONAL INTERRUPTS DO NOT WORK YET
; 501	;	IN THIS CODE BUT ALL DATA TRANSFERS ARE CORRECT. INTERRUPTS ARE
; 502	;	TAKEN SO SUSPECT THE PROBLEM IS IN THE CLEANUP CODE.
; 503	;164	LEAVE IN ONLY MAP FIX
; 504	;163	TAKE OUT MAP FIX LEAVING XHLLI IN AND JRSTF IN
; 505	;162	PUT XHLLI BACK IN TAKE OUT JRSTF ONLY IN SEC 0 CODE
; 506	;161	XHLLI OUT TO DEBUG ADD RSTF0: TO MAKE TEST FOR JRSTF IN NON
; 507	;	0 SECTIONS TEST IN ALL CASES
; 508	;157	INSTALL XHLLI MAKE JRSTF UUO ON NON ZERO SECTIONS
; 509	;	ALSO MAKE MAP DOING A REFILL PAGE FAIL RIGHT THIS MEANS THAT AFTER
; 510	;	CLEAN IT CANNOT DO ANYTHING INTERESTING IF AN INTERRUPT IS PENDING
; 511	;	CHANGES AT MAP2:
; 512	;156	REINSERT A SKP INTRPT IN THE PAGE FAULT HANDLER TO HAVE INDIRECT
; 513	;	POINTER CHAINS INTERRUPTABLE. AT PGRF6:+6
; 514	;155	ABORTIVE MAP FIX FIX REMOVED PROBLEM MUST BE FIXED IN HARDWARE.
; 515	;154	ADD TESTS FOR AC'S IN PHYSICAL REFERENCES FOR EXAMINES AND DEPOSITS
; 516	;	PHYS REFS GO TO MEMORY, NOT AC'S AFTER PROBLEM SHEET 1675
; 517	;	CHANGES AT PILD+3 PIFET+2 PSTOR PHYS1 PHYS2 PHYS3
; 518	;	ADD CHANGES IN TRACKS TO MAKE MODEL A WORK AT TRK2+2 AND +3
; 519	;153	ADD SPECIAL CODE FOR PXCT OF BLT THIS HOPEFULLY CAN GO AWAY
; 520	;	WHEN THE EXTENDED ADDRESSING MONITOR DOES NOT USE PXCT ANYMORE
; 521	;	IT IS UNDER .IF/BLT.PXCT CONDITIONAL AND COSTS 12 WORDS
; 522	;152	CHANGE WHAT BLT DOES TO MATCH THE SPEC SR_BLT(XXX) IS CHANGED TO
; 523	;	NOT FORCE GLOBAL ADDRESSING THE LOAD VMA(EA)_ARX+BR AND
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 1-9
; EDHIS.MIC[10,5351]	19:59 24-Jul-85			REVISION HISTORY					

; 524	;	STORE VMA(EA)_ARX MACROS ARE ADDED TO FORCE THE GLOBAL/LOCAL PARAMETERS
; 525	;	TO BE THE SAME AS THOSE OF THE EFFECTIVE ADDRESS
; 526	;151	PUT THE EPT AND UPT AT 540 UNDER SWITCH CONTROL .IF/EPT540
; 527	;150	VERSION NUMBER BACKED UP TO PRESERVE SPACE IN VERSION NUMBER FIELD
; 528	;304	EXTEND 0 WOULD GET A JUMP TO AN UNUSED MICROLOCATION IN MODEL.B
; 529	;	ONLY THIS WAS BECAUSE LOCATION 2002: IN MODEL.A SHOULD BE AT 3002:
; 530	;	IN MODEL.B 3002: AND 3003: PUT IN WHERE 2002: AND 2003: ARE UNDER
; 531	;	CONDITIONALS.
; 532	;303	CHANGE THE NUMBER FIELD OF THE SR_BLT(XXX) MACROS TO GIVE THE
; 533	;	BIT 0 OFF ALL THE TIME. THIS GIVES BLT MORE THE FORM OF THE OTHER
; 534	;	EXTENDED ADDRESSING STUFF IN HOW IT REFERS TO THE SHADOW AC'S.
; 535	;	IT IS STILL BELIEVED TO BE BROKEN BUT IS BETTER THAN IT WAS.
; 536	;302	ADD LONGER ADDRESS CONSTRAINTS FOR THE NEW MICROASSEMBLER. EVERY
; 537	;	LOCATION THAT THE DISPATCH RAM CAN JUMP TO IS EFFECTED. THE
; 538	;	CONSTRAINTS THATUSED TO LOOK LIKE =00**** MUST NOW LOOK LIKE
; 539	;	=0****00**** THIS IS BECAUSE THE MODEL B MACHINE CAN AND DID
; 540	;	REALLY SET THAT BIT. THE CHANGE MAKES THE MICROCODE INCOMPATIBLE
; 541	;	WITH THE OLD ASSEMBLER.
; 542	;301	HALT IS CLEARING THE RUN FLOP WITH HARDWARE MUST CHECK FOR
; 543	;	KERNAL MODE BEFOR THE HALT MACRO SO USER IOT MODE WILL
; 544	;	NOT BE ABLE TO HALT. THIS TAKES ONE MICROWORD AT 1017:
; 545	;	THE SENSE OF THE SKIP IS REVERSED AGAIN SO 1016: IS BACK TO
; 546	;	BEING THE UUO AND CHALT: IS NOW A SEPERATE WORD AFTER 1017:.
; 547	;300	REPLACE HALT CODE AGAIN BUT THIS TIME GET THE SENSE OF THE
; 548	;	SKIP RIGHT BY SWAPPING THE CONTENTS OF LOCATIONS 1016: AND 1017:
; 549	;	PUT THE 1: ADDRESS CONSTRAINT ON CONT:.
; 550	;277	PUT HALT BACK THE WAY IT WAS SKP USER HAS THE INVERSE SKIP SENSE
; 551	;	AND HENCE DOES THE WRONG THING. HALT TO BE FIXED LATER.
; 552	;276	YET ANOTHER TRY AT THE BLKO PROBLEM BLK1: SHOULD HAVE HAD A
; 553	;	J/BLK2.
; 554	;275	THE LONG PC CHANGES HAD XSFM1: BEFOR THE ADDRESS CONSTRAINT THUS
; 555	;	GIVEING THE WRONG ADDRESS. THE =0 IS PUT BEFOR THE LABEL.
; 556	;274	FIX THE DIAG.INST CONDITIONALS TO BEHAVE PROPERLY WITH THE
; 557	;	CONSTRAINTS OF DRAM LOCATIONS MAP DIED BECAUSE IT NEVER WAS
; 558	;	REACHED OUT OF A DISPATCH.
; 559	;273	INSERT THE DIAG.INST FEATURE FOR THE DIAGNOSTICS PEOPLE.
; 560	;	CHANGES AT DCODE 104:, 106: AND AT XCT: SHOULD NOT EFFECT OTHER
; 561	;	ASSEMBLIES.
; 562	;272	THE FIX TO THE GARBAGE IN THE LEFT HALF OF VMA IN 265 FORGOT TO
; 563	;	LOAD THE VMA IN BLK3:+1 PUT THAT IN. ALSO ON JUD'S RECOMENDATION
; 564	;	PUT A COPY OF THE NOP MICROINSTRUCTION AFTER CLRFPD: TO MAKE
; 565	;	ENOUGH TIME IN THE SKIP CASE. IT SEEMED TO WORK WITHOUT THIS
; 566	;	AND IF SPACE GETS TIGHT IT SOULD BE REMOVED.
; 567	;271	FIX IN 267 PGF4:+4 DOES NOT WORK, CANNOT PUT VMA_# THERE. POSSIBLY BECAUSE
; 568	;	VMA_# CONFLICTS IN SOME ESOTERIC WAY WITH STORE? THAT CHANGE
; 569	;	IS TAKEN OUT AND AT PGF1 THE VMA IS GIVEN 500 OR 501. THIS IS SLIGHTLY
; 570	;	LESS DESIREABLE AND FURTHER EFFORT COULD BE SPENT IN THE UCODE TO
; 571	;	MAKE PAGE FAILS LESS UNWEILDY FOR THE SOFTWARE ROUTINE THAT CONVERTS
; 572	;	THEM TO MODEL B FORM.
; 573	;270	CHANGE HALT TO CHECK FOR USER MODE INSTEAD OF IO LEGAL. A JOB
; 574	;	IN USER IOT SHOULD NOT BE ABLE TO HALT THE MACHINE.
; 575	;267	ADD NEW CONDITIONAL SHIFT.MUUO TO PROVIDE THE SHIFTED DOWN MUUO
; 576	;	DATA BLOCKS MORE SIMILAR TO THE XADDR TYPES. CONDITIONAL IS USED
; 577	;	AT 1003: AND PGF4:+4 TO PROVIDE A DIFFERENT STARTING ADDRESS.
; 578	;266	FIX PILD+3 TO LOAD THE VMA AT THE SAME TIME THUS ENABLING
; 579	;	THE MODEL HACK FIX TO LOAD THE LONG VMA.
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 1-10
; EDHIS.MIC[10,5351]	19:59 24-Jul-85			REVISION HISTORY					

; 580	;265	HAIR UP THE ALREADY HAIRY BLKXX CODE TO CLOBBER THE LEFT HALF OF AR
; 581	;	BEFOR USING IT AS AN ADDRESS. CLOBBERED ARL AT BLK2 AND LOADED
; 582	;	VMA AT BLK3.
; 583	;264	ADD J/CLRFPD AT BFIN TO MAKE IT THE SAME AS IT WAS. BFIN GOT
; 584	;	MOVED TO A DIFFERENT PLACE IN THE LAST EDIT AND THIS J FIELD
; 585	;	WAS NOT FIXED.
; 586	;263	ADD THE MIT FIXES. IOTEND AND THE BLK1 TO BLK4 GROUP ARE CHANGED
; 587	;	EXTENSIVELY. CLRFPD IS PUT JUST BEFORE FINI CONSTRAINT ON IOFET
; 588	;	IS CHANGED.
; 589	;	ADD THE LONG PC FORMAT UNDER A NEW CONDITIONAL LONG.PC THE
; 590	;	CONDITIONAL IS TURNED ON BY XADDR. CONDITIONALS ARE ADDED TO THE
; 591	;	LONG PC CODE TO MAKE IT SMALLER WHEN ONLY SECTION 0 IS POSSIBLE.
; 592	;	ADD COMMENTS TO THE MICROCODE OPTIONS FIELD.
; 593	;	RESTORE SXCT CODE FROM VERSION 131. TO BE USED ONLY IN MODEL A
; 594	;	NON KLPAGING CODE.
; 595	;262	PUT WORD AT INDR1+1 UNDER SXCT CONDITIONAL SO WHEN SXCT IS OFF WE
; 596	;	GET AN ADDITIONAL SAVINGS OF ONE WORD.
; 597	;261	ADD PHYS REFS AT PGRF6+4 AND PIDISP+4 TO MAKE MODEL.A LOAD A LONG
; 598	;	VMA. PART OF THIS CODE IS NOT UNDER CONDITIONAL BECAUSE IT SHOULD NOT MATTER
; 599	;	TO A MODEL.B MACHINE. PIDISP+4 ALSO GETS THE LOAD OF THE SAME DATA
; 600	;	REPEATED SO THE PHYS REF HAS SOMETHING TO WORK ON.
; 601	;	FLUSH THE NOW USELESS CODE AT CHALT TO GENERATE THE LD AR.PHYS
; 602	;	CONSTANTS.
; 603	;	CURRENTLY THERE IS SORT OF A BUG IN THAT THE SBR AND THE CBR
; 604	;	CAN NOT BE ABOVE 256K IN A MODEL.A MACHINE. THIS DOES NOT BOTHER
; 605	;	THE CURRENT MONITORS AT ALL IN THAT THESE TABLES ARE IN VERY LOW CORE.
; 606	;	IF THAT CHANGES THE LOCATIONS SECIMM+3 SECIMM+7, LDIND, PGRF5, LDSHR
; 607	;	AND LDPT1+1 MUST ALL GET FIXED UP. THE GENERAL FIX IS TO GET A PHYS REF
; 608	;	IN THE MICROINSTRUCTION THAT LOADS THE VMA. THIS CAN BE DONE BY
; 609	;	POSTPONING THE LOAD OF THE VMA ONE MICROINSTRUCTION IN ALL OF THESE
; 610	;	PLACES, BUT, SINCE THAT CAUSES A PERFORMANCE DEGRADATION IT WAS NOT
; 611	;	DONE.
; 612	;260	DIVERGANT CHANGES TO MAKE KLPAGING PHYS REFS THE OLD WAY
; 613	;	CAUSE ALL CASES OF VMA_XXX+LD AR.PHYS TO GO BACK TO THE
; 614	;	OLD PHYS REF WAY
; 615	;257	IN MODEL B MACHINES AT LDPT+1 THE VMA IS GETTING GARBAGE IN THE
; 616	;	LEFT HALF BECAUSE IT ADDED IN JUNK THAT WAS IN AR LEFT. FIX IS TO
; 617	;	CLEAR ARL AFTER LDPT AND TO DO THE SHUFFLE PERFORMED THERE ONE
; 618	;	MICROINSTRUCTION LATER.
; 619	;******	A HACK FIX IS USED HERE THAT TAKES TWO WORDS. THIS WAS DONE BECAUSE
; 620	;	OF EXTREEM TIME PRESSURE TO DEBUG >256K MODEL B. THERE OUGHT TO BE
; 621	;	A WAY TO REDUCE THIS FIX TO ONLY ONE WORD IN SPACE AND TIME, OR
; 622	;	EVEN LESS.
; 623	;256	EDIT JUMPED TO RANDOMNESS WITH AN EXTRA RETURN. THIS HAPPENED
; 624	;	BECAUSE THERE WAS NO CALL AT EDSFLT IN THE MODEL B NON XADDR CODE
; 625	;	ADDED CALL TO EDSFLT.
; 626	;255	SAVE EDIT FROM GETTING AN EXTRA STORE CYCLE AT EDSSIG BY SENDING
; 627	;	IT ALWAYS TO THE EDFLT1 LOCATION INSTEAD OF EDFLT THIS ONLY
; 628	;	CHANGES WHAT HAPPENS IN MODEL B NON XADDR BECAUSE IN MODEL A
; 629	;	EDFLT AND EDFLT1 ARE THE SAME LOCATION ANYWAY
; 630	;254	CAUSE THE A INDRCT CHANGE IN 253 TO BE ONLY FOR NON EXTENDED
; 631	;	ADDRESSING MACHINES. THIS THROWS DOUBT ON THE WORD SAVINGS
; 632	;	THAT MIGHT HAVE BEEN POSSIBLE
; 633	;253	CHANGE A INDRCT TO LOAD BOTH THE AR AND ARX, IN THE EXTENDED
; 634	;	INSTRUCTION SET THIS HAPPENED TO BE DEPENDED ON AT EXT2+2 AND
; 635	;	EXT2+3. THE DEFINITION OF A IND IN EA CALC/ WAS FIXED TO
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 1-11
; EDHIS.MIC[10,5351]	19:59 24-Jul-85			REVISION HISTORY					

; 636	;	LOAD THE AR AND THE ARX
; 637	;	I THINK THIS PERMITS THE SAVINGS OF AN EXTRA WORD AND SOME
; 638	;	TIME ON ALL INDIRECTS. CHECK OUT FLUSHING INDR1 AND MAKING INDRCT
; 639	;	DO THE DISPATCH AND GO TO COMPEA
; 640	;	  FORCE ADB TO GENERATE AR*4 AS DEFAULT THIS DISABLES PARITY
; 641	;	CHECKING ON THE FM WHEN IT IS NOT BEING READ FIXED IN
; 642	;	DEFINITION OF ADB THIS WILL ALSO SPEED UP THE MACHINE BY SOME
; 643	;	BECAUSE THE ADB FIELD CAN NO LONGER FORCE 3 TICS WITHOUT REALLY
; 644	;	NEEDING THAT LONG
; 645	;252	SAVE A WORD AT IOPGF+1 BY MAKING IT PILD+3 THIS ADDS THE SET
; 646	;	ACCOUNT ENABLE TO AN UNDEFINED CASE.
; 647	;251	TURNING ON PAGING CAUSED A HANG THIS WAS BECAUSE OF A MISIMPLIMENTED
; 648	;	FIX IN 250. THE ATTEMPT TO PUT THAT FIX IN NO SPACE FAILED AND IT TOOK
; 649	;	ONE WORD. AT LDPT+1 ADD BR/AR AT GTCST1 RECOVER THE AR FROM THE BR
; 650	;	THIS SEEMS LIKE IT SHOULD BE ABLE TO BE BUMMED BUT I CANNOT
; 651	;	FIGURE OUT HOW
; 652	;	ALSO FIX A PLACE WHERE A PHYS REF WAS LEFT IN THE MODEL A CODE
; 653	;	AT PGRF6+4 MODEL B CONDITIONAL IS AS IT WAS MODEL A IS NEW TO USE
; 654	;	LD AR.PHYS MECHANISM
; 655	;250	LOADING HIGH ORDER GARBAGE TO THE VMA WITH THE FIX FOR
; 656	;	>256K CAUSES FUNNY THINGS TO HAPPEN. BITS GET CLOBBERED
; 657	;	WITH AR0-8_SCAD 14 LINES AFTER SECIMM. ACTUALLY IS MORE
; 658	;	HAIR BECAUSE OF CONFLICTING FIELDS. CODE ABOVE AND BELOW
; 659	;	THAT GOT REARRANGED TO SIMPLER MODEL A AND MODEL B CONDITIONALS
; 660	;	SINCE NOW ALL LINES ARE DIFFERENT. SHUFFLING OF FE IS DONE
; 661	;	TO PROVIDE ROOM FOR A CONSTANT ON THE CORRECT SIDE OF THE SCAD
; 662	;	AT LDPT A SIMILAR
; 663	;	RECODING IS NEEDED. 4 LINES OF CODE ARE REDONE IN MODEL
; 664	;	A CONDITIONAL AND CONDITIONALS ARE RESHUFFLED TO HAVE
; 665	;	SIMPLER FORMAT
; 666	;	NEW MACROS ARE ADDED GEN AR0-8, GEN FE AND AR0-8
; 667	;	VMA_AR+LD AR.PHYS AND ITS FRIENDS ARE TAKEN OUT OF KLPAGING
; 668	;	CONDITIONAL THEY ARE USED TO DO EXAMINES AND DEPOSITS NOW
; 669	;247	FIX ST AR.PHYS TO GIVE BIT 4 INSTEAD OF BIT 5 AT CHALT
; 670	;	AT PSTORE CHECK FOR AC REF AND IF SO WRITE FM MUST DO THIS
; 671	;	BECAUSE LOAD AD FUNC DOES NOT SET MCL STORE AR
; 672	;246	FIX MUUO, IN EXTENDED ADDRESSING, TO GET NEW PC BEFORE CLOBBERING
; 673	;	THE USER AND PUBLIC FLAGS THAT TELL WHERE TO GET IT.  FIX CONDITIONAL
; 674	;	ASSEMBLY AT INDRCT TO DO EA TYPE DISP IN MODEL A, NOT MODEL B.
; 675	;245	ADDITIONAL FIXES FOR THE 256K PROBLEM, TO MAKE EXAMINE AND
; 676	;	DEPOSIT WORK.  CHANGES AT CHALT TO CREATE CONSTANT "ST AR.PHYS",
; 677	;	AND EXTENSIVELY NEAR PICYC1, PIDATI, AND PIDATO.  CHANGES ARE ALL
; 678	;	UNDER MODEL B CONDITIONAL, BECAUSE MODEL B HARDWARE WORKS OK, AND
; 679	;	THE FIX IS REGARDED AS CROCKISH.
; 680	;244	WAIT FOR COMPLETION OF INDIRECT REFERENCE AT BYTEI+1 AND EXTI+1
; 681	;	EVEN THOUGH INTERRUPT REQUEST HAS BEEN SEEN, SO AS NOT TO CONFUSE MBOX.
; 682	;243	VARIOUS FIXES TO MAKE THESE SOURCES WITH MODEL.B SWITCH OFF
; 683	;	EQUIVALENT TO MODEL A SOURCES, SO WE CAN DISCARD MODEL A SOURCES
; 684	;	THE FIXES ARE:
; 685	;		1) SWITCH SNORM.OPT, TO SAVE SPACE IN SINGLE PRECISION
; 686	;		FLOATING NORMALIZATION.
; 687	;		2) CREATION OF LD AR.PHYS MAGIC CONSTANT, TO SOLVE HARDWARE
; 688	;		PROBLEMS GENERATING ADDRESSES ABOVE 256K.
; 689	;242	FIX AT SECPTR+1 TO PRESERVE AR LEFT UNTIL WE CAN CHECK
; 690	;	FOR BITS 12-17 NON ZERO CORRECT ADDRESS CONSTRAINTS AT
; 691	;	SECIMM+1 & +2 TO GET BRANCHING RIGHT FOR SHARED AND INDIRECT
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 1-12
; EDHIS.MIC[10,5351]	19:59 24-Jul-85			REVISION HISTORY					

; 692	;	SECTION POINTERS.  FIX AT LDIMM+1 TO CLEAR LH OF AR BEFORE
; 693	;	LOADING VMA WITH SPT ADDRESS, TO PREVENT PAGE FAULT ON SPT
; 694	;	REFERENCE.
; 695	;241	MORE FIXES AT START: AND NEWPC:, FOR SAME PROBLEM AS 240.
; 696	;	MUST LOAD FLAGS AND CLEAR VMAX, THEN LOAD VMA INTO PC TO CLEAR
; 697	;	PCX, THEN RELOAD VMA TO GET EFFECT OF NEW FLAGS AND CLEARED
; 698	;	PCX.  (MODEL A ONLY).
; 699	;240	FIXES AT START: AND NEWPC: TO LOAD 23-BIT ADDRESS RATHER
; 700	;	THAN 30-BIT, SINCE OTHER BITS ARE PC FLAGS.  AT SAME TIME AND
; 701	;	PLACE, FIX MODEL A CODE TO CLEAR PC SECTION NUMBER.
; 702	;237	CHANGE CONDITIONALS AROUND PUSH AND POP CODE FROM XADDR TO
; 703	;	MODEL.B. COULD SIMPLIFY IFNOT XADDR.
; 704	;236	FIX ADDRESS CONSTRAINTS ON USES OF EA MOD DISP IN MODEL
; 705	;	B MACHINE WITH EXTENDED ADDRESSING OFF.  PROBLEMS AT COMPEA,
; 706	;	BFETCH, AND EXT2.
; 707	;235	SLIGHTLY CLEANER FIXES FOR PROBLEMS IN 234 TO AVOID WASTING TIME
; 708	;	AND SPACE.  BYTE READ MACRO NEEDS TO SET VMA/LOAD, AND VMA_VMA
; 709	;	HELD MACRO DOESN'T USE MEM FIELD UNLESS MODEL B AND KL PAGING.
; 710	;	ALSO FIX CONDITIONAL ASSEMBLY STUFF TO AVOID SPURIOUS ERRORS.
; 711	;234	INSTALL FIXES FOR SOME PLACES WHERE MODEL B CODE CAUSES CONFLICT
; 712	;	WITH THE OLD NON KLPAGING NON EXTENDED ADDRESSING CODE
; 713	;	THESE ARE AT BFETCH, PGF3-1, PGF6, EXT1+2
; 714	;233	FIX THE FOLLOWING PROBLEMS:
; 715	;		KL PAGING SHOULD PRODUCE A PAGE FAILURE WHEN BITS
; 716	;		 12-17 OF A PRIVATE SECTION POINTER ARE NON 0
; 717	;		 FIXED AT SECPTR ETC.
; 718	;		EDIT DOES NOT ALLOW INTERUPTS
; 719	;		 FIXED AT EDNXT1 AND AFTER THAT
; 720	;		MAP SHOULD NOT BE LEGAL IN USER MODE
; 721	;		 FIXED AT MAP2 AND CLEAN+15
; 722	;		MOVMI IS SHORTENED BY MAKING IT THE SAME AS MOVEI
; 723	;		 AT DON LEWINES SUGGESTION THIS IS IN DCODE 215
; 724	;232	MERGE THE SECOND ORDER STATISTICS GATHERING CODE WITH THIS
; 725	;	CODE INTENT IS TO KEEP IT HERE
; 726	;231	CHANGE THE LOAD CCA DEFINITION TO REFLECT THE NEW HARDWARE
; 727	;	THIS IS ENABLED WHEN THE MODEL.B ASSEMBLY SWITCH IS ON
; 728	;230	THIS IS THE POINT WHERE MICHAEL NEWMAN TAKES OVER THE MICROCODE
; 729	;	MAINTENCE SEVERAL BUG FIXES GET EDITED INTO 126 AT THIS POINT
; 730	;	TWO SETS OF PARALLEL CODE WILL BE MAINTAINED FOR A WHILE.
; 731	;	FIX THE CMPS PARODY ERROR PROBLEM WHEN ILLEGAL BITS ARE FOUND IN
; 732	;	THE LENGTHS.
; 733	;227	FIX PIBYTE TO GET DTE# CORRECT ON TO-10 TRANSFERS.  FIX MTRREQ
; 734	;	CYCLES TO WAIT FOR STORE TO FINISH BEFORE RE-ENABLING ACCOUNT.
; 735	;	FIX ADJSP OF LONG STACK POINTERS TO FETCH NEXT INSTR.
; 736	;226	FIX EXMD TO LOAD AR, RATHER THAN ARX, WITH MARK POINTER, AS
; 737	;	EXPECTED BY THE HANDLER.  FIX EDIT, SEVERAL PLACES, TO IGNORE
; 738	;	LEFT HALF OF MARK & PATTERN ADDRESSES WHEN PC SECTION IS ZERO.
; 739	;	FIX EDIT TO MAKE EXTENDED REFERENCE FOR PATTERN BYTES.
; 740	;	FIX ADJSP TO BE MEANINGFUL WITH LONG STACK POINTERS
; 741	;225	FIX BYTEA NOT TO CLOBBER FE ON INDIRECTS, FIX EXMD TO BACK
; 742	;	UP VMA AFTER STORING DSTP2 AND BEFORE STORING DSTP.  FIX EDIT TO
; 743	;	COUNT THE WHOLE PATTERN ADDRESS IF PC SECTION NOT ZERO.
; 744	;224	FIX EXTEND ADDRESS CALCULATION TO RECOVER E0 FROM MQ, AND
; 745	;	FIX EXTEND OPCODE TEST TO DISALLOW OPS >20.
; 746	;	FIXES TO HANDLE NEW ENCODING OF AC-OP ON APR BOARD.
; 747	;223	COMPLETE 222.  P HAS TO GO TO SC AS WELL AS AR0-5.  CREATE
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 1-13
; EDHIS.MIC[10,5351]	19:59 24-Jul-85			REVISION HISTORY					

; 748	;	SUBROUTINE RESETP TO DO IT.  GET CODE IN SYNC WITH HARDWARE AND
; 749	;	MOST RECENT SPEC FOR MEANING OF PXCT AC BITS IN EXTEND.  THUS
; 750	;	UNDO COMMENT IN 221:  WE SHOULD LOOK AT PXCT B11.  ALSO FIX
; 751	;	EXTEND TO USE CORRECT ENCODING OF BITS 9, 11, AND 12 FOR PXCT
; 752	;	OF STRING OPERATIONS.  FIX DATAI PAG SO IT DOESN'T LOSE THE
; 753	;	PREVIOUS CONTEXT AC BLOCK WHEN LOADING PREVIOUS SECTION #.
; 754	;	INSERT CHANGE CLAIMED FOR EDIT 55, TO INHIBIT INTERRUPT DURING
; 755	;	PI CYCLES.
; 756	;222	FIX BYTE POINTER UPDATE ROUTINES GSRC & IDST IN EIS CODE
; 757	;	TO UPDATE P WHEN INCREMENTING SECOND WORD.  JUST FORGOT TO. TRY
; 758	;	AGAIN TO CONTROL EIS REFERENCES OFF E0, FOR EXTENDED OR NOT.
; 759	;221	COMPLETE FIX OF 220, TO KEEP SR CORRECT THROUGH RELOAD OF IR
; 760	;	IN EXTEND DECODING, AND TO CONTROL SR CORRECTLY FOR XBLT DST
; 761	;	REFERENCES.  (WE WERE LOOKING AT PXCT B11, SHOULD BE B12).
; 762	;220	FIXES SEVERAL PLACES TO USE "EA" IN DRAM A FIELD INSTEAD OF "I",
; 763	;	NOTABLY BLT, WHICH WAS USING WRONG SECTION.  FIX EXTEND TO
; 764	;	CONTROL VMA EXTENDED BEFORE FETCHING EXTEND-OP, SO AS NOT TO
; 765	;	LOOK "UNDER" THE AC'S.  FIX XBLT FOREWARD TO STOP WHEN AC GOES
; 766	;	TO ZERO, NOT -1.  ALSO CONTROL SR BEFORE INITIAL STORE TO GET
; 767	;	CORRECT CONTEXT.
; 768	;217	CODE CHANGES TO MAKE SECOND WORD OF BYTE POINTER WORK RIGHT
; 769	;	WHETHER EFIW OR IFIW, BY CONTROLLING CRY18 OR CRY6.
; 770	;216	RECODE EXTENDED INSTRUCTION SET DECODING & EFFECTIVE ADDRESS
; 771	;	CALCULATION.  FIX UUO CODE TO INCREMENT VMA AFTER STORING PC.
; 772	;	FIX ADJBP TO GET 36 BIT ADDRESS ADJUSTMENT IF B12 SET.
; 773	;215	REARRANGE CONDITIONAL ASSEMBLY DEFAULTS TO BE MORE LOGICAL
; 774	;	INSERT FORM FEEDS AND COMMENTS TO HELP BEAUTIFY THE LISTING.
; 775	;	REWORK THE NEW JRST'S, TO MAKE THEM SMALLER, FASTER, AND TEST
; 776	;	IO LEGAL BEFORE DISMISSING.  PUT IN XBLT.
; 777	;214	MODIFY ADJBP AND UUO'S FOR EXTENDED ADDRESSING. REWORK PARITY
; 778	;	ERROR HANDLING, IN A FRUITLESS ATTEMPT TO MAKE IT SMALLER,
; 779	;	BUT SUCCESSFULLY MAKING IT CLEARER.  FIX ASSEMBLY ERRORS IN EIS
; 780	;	DUE TO AC4 CHANGES, AND ADD CODE TO HANDLE LONG BYTE POINTERS
; 781	;	IN AC'S.  PUT IN CODE TO GIVE PAGE FAIL 24 ON ILLEGAL FORMAT
; 782	;	INDIRECT WORD.
; 783	;213	FIX LDB & DPB TO TEST POINTER BIT 12 ON CALL TO BYTEA.
; 784	;212	MODIFY JSP, JSR TO STORE FULL PC WITHOUT FLAGS IN NON-ZERO SEC
; 785	;	SEPARATE CONDITIONALS FOR "MODEL B" MACHINE FROM THOSE FOR
; 786	;	EXTENDED ADDRESSING MICROCODE.
; 787	;211	REMOVE UNNECESSARY DIDDLING OF VMA USER BIT DURING PAGE REFILL,
; 788	;	AND ELIMINATE SPECIAL CASE FOR MAP INSTRUCTION, WHEN EXTENDED
; 789	;	ADDRESSING HARDWARE EXISTS TO SOLVE THESE PROBLEMS.
; 790	;	FIX SEVERAL CASES OF SIGNS DISP WITH INADEQUATE CONSTRAINT.
; 791	;210	FIX DEFINITION OF "SKP LOCAL AC REF", WHICH CONFUSED "AC
; 792	;	REF" WITH "LOCAL AC REF".
; 793	;207	FIX JRSTF (AND ITS DERIVATIVES) TO LOAD FLAGS INTO AR AFTER
; 794	;	DOING EA MOD DISP, WHICH WOULD OTHERWISE CLOBBER THEM.  FIX
; 795	;	COMPEA CODE TO LET AREAD HARDWARE LOAD AR.  OTHERWISE GET SEC #.
; 796	;206	FIX PCTXT ROUTINE TO GET PREVIOUS CONTEXT SECTION.
; 797	;205	FIX POPJ TO LOAD HALFWORD OR FULLWORD PC ACCORDING TO PC SECT
; 798	;204	FIX CONDITIONALS AROUND LOC 47, WRONG IN 202.  FIX DEFINITION
; 799	;	OF A INDRCT, DOESN'T NEED #07.  FIX STACK INSTRUCTIONS FOR
; 800	;	EXTENDED ADDRESSING.  MUST NOT LOAD VMA FROM FULL AD.
; 801	;203	INCLUDE CODE AT NEXT+2 TO GENERATE ADDRESS MASK (LOW 23 BITS)
; 802	;	AT HALT TIME, AND CODE IN PICYCLE TO USE IT TO GET 23 BIT ADDR
; 803	;	OUT OF IOP FUNCTION WORD.
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 1-14
; EDHIS.MIC[10,5351]	19:59 24-Jul-85			REVISION HISTORY					

; 804	;202	MOVE "40+A" LOCATIONS TO "A" UNDER EXTENDED ADDRESSING.  CHANGE
; 805	;	ALL CALL MACROS TO GENERATE CALL BIT INSTEAD OF SPECIAL FUNC'S.
; 806	;201	BEGIN EXTENDED ADDRESSING CHANGES IN EARNEST.  INTEGRATE NEW
; 807	;	EFFECTIVE ADDRESS COMPUTATION CODE, AND REVISE INSTRUCTION
; 808	;	ROUTINES AS NECESSARY.
; 809	;126	FIX STRAC3-2, WHERE COMMA GOT LEFT OFF WHEN IFETCH MOVED
; 810	;125	REMOVE NXT INSTR FROM STAC1, STRAC3, & STAC4, MAKING THEM JUMP
; 811	;	TO FINI INSTEAD.  PROBLEM INVOLVES A RACE IF PAGE FAIL OCCURS
; 812	;	WHILE WRITING FM.  IF FM ADDRESS CHANGES BEFORE COND/FM WRITE
; 813	;	GOES FALSE, APR BOARD MAY GRONK PARITY BIT OF SOME FM LOC'N.
; 814	;	THIS RESULTS IN SOME SOME PATHS FROM FETCH TO NICOND BECOMING
; 815	;	LONGER THAN 6 TICKS, SO THE FETCHES GOT SHUFFLED IN SOME PLACES.
; 816	;	MICROCODE PATCH ELIMINATES MOST PROBABLE CAUSE, WHICH IS PAGE
; 817	;	FAIL AT NICOND TIME WHILE WRITING AC OTHER THAN 0.  IT DOES NOT
; 818	;	TAKE CARE OF THE POSSIBILITY THAT COND/FM WRITE WILL GLITCH AT
; 819	;	INSTR 1777 TIME.
; 820	;124	FIXES IN SEVERAL PLACES TO SET AND CLEAR ACCOUNT ENABLE SO AS
; 821	;	TO GET REPEATABLE ACCOUNTING MEASURES OF USEFUL WORK DONE. THE
; 822	;	ENABLE IS NOW CLEARED FOR METER UPDATE CYCLES AND KL PAGE REFILL
; 823	;	CYCLES.  THE HARDWARE ALREADY TAKES CARE OF PI CYCLES.
; 824	;123	CORRECT 122 TO CONSTRAIN LOC "UNHALT", AND TO LOAD ARX FROM AR,
; 825	;	SO AS TO LET "SKP AR EQ" WORK.  PROBLEM AROSE BECAUSE MACRO ALSO
; 826	;	TESTS ARX00-01.  FIX EDIT, WHEN STORING DEST POINTER ON SELECT
; 827	;	SIGNIFICANCE START, TO ELIMINATE AMBIGUITY IN DEST P FIELD.
; 828	;122	SPEC CHANGE TO EXIT FROM HALT LOOP, SO THAT AR0-8=0 WITH AR9-35
; 829	;	NON-ZERO LOADS AR INTO PC TO START PROCESSOR.  THIS IS DIFFERENT
; 830	;	FROM EXECUTING JRST BECAUSE PC FLAGS ARE CLEARED.
; 831	;121	FIX TO 120 TO ALLOW A CYCLE BETWEEN FILLER FROM MEMORY AND
; 832	;	WRITING IT INTO FM (THUS PARITY CAN BE COMPUTED).  ALSO CLEAR
; 833	;	STATE REGISTER IN EDIT BEFORE GETTING NEXT PATTERN BYTE.
; 834	;120	FIX EIS TO TOLERATE PAGE FAIL ON READ OF FILL BYTE IN MOVSRJ
; 835	;	OR B2D CONVERSION.  REQUIRES GETTING FILLER BEFORE STORING DLEN
; 836	;	ALSO INTEGRATE OPCODE COUNTING/TIMING CODE UNDER CONDITIONALS
; 837	;117	FIX PARITY ERROR CODE TO WRITEBACK AR ON RPW ERROR.
; 838	;116	REWRITE OF DDIV, SO THAT THE NO-DIVIDE TEST IS ON THE MOST
; 839	;	SIGNIFICANT HALF OF THE MAGNITUDE OF THE DIVIDEND, RATHER THAN
; 840	;	THE MAGNITUDE OF THE MOST SIGNIFICANT HALF.  IN THE PROCESS,
; 841	;	SAVE TIME AND SPACE.  ALSO PUT IN CONDITIONAL ASSEMBLY VARIABLE
; 842	;	"WRTST" TO INHIBIT WRITE TEST CYCLE FOR INSTRUCTIONS WHICH
; 843	;	APPEAR NOT TO NEED IT, AND THUS TO SPEED THEM UP.
; 844	;115	FIX SBDIAG TO SET MCL REG FUNC TO INHIBIT EBOX MAY BE PAGED.
; 845	;114	RECODE STRING COMPARE TO SAVE SPACE AND TIME.  CHANGE DEFAULTS
; 846	;	FOR KLPAGING TO INCLUDE EIS, EXCLUDE TRACKS FEATURE.  CHANGE
; 847	;	KLPAGING (NEW SPEC) TO KEEP "LOGICALLY WRITABLE" IN SOFTWARE BIT
; 848	;113	RECODE KL PAGING TO ELIMINATE PROBLEM OF WRITING HARDWARE
; 849	;	PAGE TABLE BEFORE CHECKING FOR AGE TRAP, AND THEREFORE LEAVING
; 850	;	THE PAGE ACCESSIBLE AFTER THE TRAP.  THE RECODING ALSO IMPROVES
; 851	;	THE ALGORITHM IN THAT THE HARDWARE ENTRY INCLUDES THE W BIT SET
; 852	;	IF THE CORE TABLES ALLOWED WRITE AND THE CST INDICATES WRITTEN,
; 853	;	EVEN IF THE CURRENT REFERENCE WAS NOT A WRITE.
; 854	;	ALSO FIX CODE WHICH WRITES PT DIR, TO GET WRITE REF BIT FROM
; 855	;	VMA HELD INTO BIT 5 OF SAVED PAGE FAIL WORD.
; 856	;112	FIX PAGE FAIL CODE FOR USE WITH PROB SHEET 1396, WHICH LOADS
; 857	;	PC IF PAGE FAIL OCCURS ON NICOND.  THUS CODE NEEDN'T CHECK FOR
; 858	;	FETCH AT CLEAN, WHICH CAUSED OTHER PROBLEMS ON PARITY ERRORS.
; 859	;	CLEAR FE AND SC IN NXT INSTR MACRO (JUST CLEANLINESS).
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 1-15
; EDHIS.MIC[10,5351]	19:59 24-Jul-85			REVISION HISTORY					

; 860	;111	PATCH SEVERAL ROUTINES WITH THE FOLLOWING MACRO --
; 861	;	FETCH WAIT	"MEM/MB WAIT"
; 862	;	TO PREVENT SEQUENCES IN WHICH PAGE FAIL INFO CAN GET LOST
; 863	;	BECAUSE OF LONG TIME FROM REQUEST TO MB WAIT.  THESE PATCHES
; 864	;	SHOULD BE REMOVED AFTER AN ECO HAS BEEN INSTALLED TO FIX.
; 865	;	IN ADDITION, EBUSX SUBROUTINE HAS BEEN MODIFIED TO PREVENT RACE
; 866	;	CONDITION WHEN SETTING UP IO FUNCTION WITH COND/EBUS CTL AND
; 867	;	MAGIC # BIT 4.  MUST NOT CHANGE #5 THROUGH #8 ON NEXT CYCLE.
; 868	;	FIX KLPAGING CODE TO GO BACK TO AREAD ON MAP REF, BECAUSE
; 869	;	MEM/AD FUNC DOESN'T CORRECTLY RESTORE APR REG FUNC.  ALSO MAKE
; 870	;	THE CODE SMARTER ON NO MATCH CONDITION, SO REQUEST DOESN'T HAVE
; 871	;	TO BE RESTARTED AND IMMEDIATELY FAIL AGAIN.
; 872	;110	GIVE UP ON THE OLD STRING COMPARE CODE, INSTALLING MIKE NEWMAN'S
; 873	;	VERSION.  SOMEWHAT SLOWER, BUT GIVES THE RIGHT ANSWERS.
; 874	;	FIX LDB CODE TO WAIT FOR MEM WORD EVEN IF INTERRUPT REQUEST
; 875	;	SEEN, SO AS NOT TO GET CONFUSED WHEN IT ARRIVES OR PAGE FAILS.
; 876	;	ALSO IMPROVE CLRPT ROUTINE USED BY CONO AND DATAO PAG TO START
; 877	;	LOOP WITH VMA CLEARED AND PT WR SELECTION SETUP CORRECTLY.
; 878	;107	FIX STRING COMPARES TO CHECK FOR INTERRUPT.  THIS INVOLVED
; 879	;	CHECKING DURING GSRC ROUTINE, WHICH ELIMINATES NEED FOR CHECK
; 880	;	IN SRCMOD (WHICH CALLS GSRC).  IT ALSO REQUIRED CLEARING SFLGS
; 881	;	AT STARTUP, AND ADJUSTING DLEN UPDATE CODE IN DEST FILL TO GET
; 882	;	VALID LENGTH STORED ON INTERRUPT.
; 883	;106	ELIMINATE RACE IN DECODING OF # FIELD ON MTR BOARD BY HOLDING
; 884	;	LOW 3 BITS THROUGH NEXT MICROINSTRUCTION.
; 885	;	FIX LUUO AND MUUO TO ALLOW INTERRUPTS.
; 886	;	FIX B2D OFFSET TO SIGN-EXTEND E1 AFTER INTERRUPT.  FINISH 105,
; 887	;	TO GET ENTIRE AR LOADED WHILE CLEARING MQ (ARL WAS HOLDING).
; 888	;	FIX KL PAGING TO USE VMA/1 INSTEAD OF VMA/AD WHEN RESTORING VMA
; 889	;	FROM VMA HELD OR COPIES THEREOF.
; 890	;	FIX UFA NOT TO ALWAYS GET UNDERFLOW ON NEGATIVE RESULTS.
; 891	;	SAME FIX AS EDIT 103 OF BREADBOARD.  WHERE DID IT GET LOST?
; 892	;105	FIX KL PAGING AS REVISED BY EDIT 103 TO CORRECTLY RESTORE
; 893	;	BR ON NO-MATCH CONDITION
; 894	;	ANOTHER FIX TO B2D, TO CLEAR MQ ON ENTRY.  BUG INVOLVED GARBAGE
; 895	;	FROM MQ SHIFTING INTO ARX DURING DEVELOPMENT OF POWER OF TEN.
; 896	;104	FIX BINARY TO DECIMAL CONVERSION, WHICH WAS NOT GOING TO CLEAN
; 897	;	ON FINDING AN INTERRUPT, AND ON RESTART WITH FPD SET, WAS NOT
; 898	;	SETTING UP SLEN.  TSK, TSK.  CORRECT CLEANUP FOR DEST FILL IN
; 899	;	MOVSRJ, WHICH WAS INCREMENTING BOTH SLEN AND DLEN, SHOULD
; 900	;	HAVE BEEN NEITHER.  FIX JSR, BROKEN BY EDIT 103.  JUMP MUST BE
; 901	;	TO E+1, NOT E.
; 902	;103	CREATE CONDITIONAL ASSEMBLY FOR EXTENDED ADDRESSING. UNDER IT,
; 903	;	CREATE MEM FIELD DEFINITIONS, SUPPRESS SXCT.
; 904	;	SAVE A WORD IN JSR BY USING JSTAC IN COMMON WITH PUSHJ.
; 905	;	FORCE TIME FIELD IN CASES WHERE ASSEMBLER DEFAULT SCREWS UP.
; 906	;	ADD INTERRUPT TESTS IN KL PAGING CODE TO PREVENT HANGS, AND
; 907	;	REVISE PAGE FAIL WORD TO ELIMINATE THE NEW FAIL CODES.
; 908	;102	ATTEMPT ANOTHER FIX OF MOVSRJ, CVTBDX FILL.  EDIT 71 LOSES
; 909	;	DUE TO INCONSISTENCY -- DLEN UPDATE MUST NOT PRECEED CLEANUP.
; 910	;	CREATE CONDITIONAL ASSEMBLY SWITCHES TO CONTROL EXTENDED
; 911	;	INSTRUCTION SET, DOUBLE INTEGER ARITHMETIC, AND ADJBP.  CHANGE
; 912	;	DEFAULT OF IMULI.OPT, WHICH CAN GET SIGN WRONG ON OVERFLOW.
; 913	;101	FIX METER REQUEST CODE TO "ABORT INSTR" EVEN IF NOT SETTING
; 914	;	PI CYCLE.  THIS SHOULD FIX OCCASIONAL LOSS OF TRAPS PROBLEM.
; 915	;100	FIXES TO KL PAGING CODE TO PREVENT LOADING VMA FROM AD WHILE
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 1-16
; EDHIS.MIC[10,5351]	19:59 24-Jul-85			REVISION HISTORY					

; 916	;	REQUESTING PHYSICAL REF.  FIX JSR TO PREVENT FM PARITY STOP
; 917	;	ON STORE TO AC.  FIX 1777 TO FORCE RECIRCULATION OF AR/ARX,
; 918	;	EVEN IF MBOX RESP STILL TRUE.
; 919	;77	FIX DDIV TO GET MQ SHIFTED LEFT ONE PLACE, WITHOUT INTRODUCING
; 920	;	AN EXTRA BIT, AT DDVX1.  THIS INVOLVES INHIBITING ADA TO PREVENT
; 921	;	AD CRY0 FROM COMMING INTO MQ35.
; 922	;76	FIX UFA TO ALLOW AN EBOX CYCLE BETWEEN FETCH AND NICOND WHEN
; 923	;	FRACTION SUM IS ZERO, AT UFA3.
; 924	;75	PUT BACK INSTRUCTION "MBREL" REMOVED BY EDIT 64.  NECESSARY TO
; 925	;	ENSURE THAT EBOX REQUEST FOR FETCH DOESN'T COME UP WHILE
; 926	;	REGISTER FUNCTION IS IN PROGRESS, WHICH WOULD CONFUSE MBOX ON
; 927	;	STARTING THE FETCH.
; 928	;74	CHANGES TO EIS FOR NEW-SPEC AC USAGE.  CHANGES TO KL PAGING FOR
; 929	;	INDIRECT, IMMEDIATE SECTION POINTERS
; 930	;73	FIX JRA TO PREVENT WRITING AC WITH DATA FRESH FROM MEMORY (ALLOW
; 931	;	A CYCLE FOR PARITY CHECK).  FIX DPB CODE TAKE ONLY 3 TICKS ON
; 932	;	RETURN FROM BYTEA, SO THAT CACHE DATA DOESN'T ARRIVE INTO AR
; 933	;	AND ARX UNTIL DPB1, WHEN THE BYTE HAS GOTTEN OUT TO MQ.
; 934	;72	FIX DEFINITION OF SP MEM/UNPAGED TO INHIBIT VMA USER.  FIX
; 935	;	PAGE FAIL CODE TO CHECK FOR VMA FETCH BEFORE LOOKING AT
; 936	;	INTERRUPT REQUEST.  PROBLEM WAS INTERRUPT CONCURRENT WITH
; 937	;	PAGE FAIL ON JRSTF TO USER.  PC FLAGS GOT RESTORED, BUT VMA
; 938	;	NEVER COPIED TO PC BECAUSE PAGE FAIL INHIBITED NICOND, AND
; 939	;	INTERRUPT ABORTED PAGE FAIL HANDLING TO LOAD PC.
; 940	;71	DEFINE FMADR/AC4=6.  FIX MOVFIL ROUTINE TO PUT AWAY UPDATED
; 941	;	LENGTH DIFFERENCE WHEN INTERRUPTED, THUS AVOIDING RANDOMNESS
; 942	;	IN MOVSRJ, CVTBDX. FIX CVTBD CALL TO MOVFIL TO PRESERVE SR.
; 943	;	CHANGE STMAC AND PIDONE FROM "FIN XFER" TO "FIN STORE", BECAUSE
; 944	;	STORE WAS IN PROGRESS, WHICH CAUSED FM WRITE IF AC REF, AND
; 945	;	GOT A PARITY ERROR DUE TO ADB/FM.
; 946	;70	FIX PXCT 4,[POP ...], WHICH DIDN'T GET DEST CONTEXT SET FOR
; 947	;	STORE.  MUST USE SR_100 TO SET IT.
; 948	;67	FIX PROBLEM IN ADJBP BY WHICH BYTES/WORD WAS GETTING LOST
; 949	;	WHEN DIVIDE ROUTINE LOADED REMAINDER INTO BR.  SOLVED BY
; 950	;	SAVING BYTES/WORD IN T1.
; 951	;66	FIX KL PAGING TO RESTORE VMA ON TRAP, SAVE ADDRESS OF POINTER
; 952	;	CAUSING TRAP, AND NOT RESTORE ARX EXCEPT FOR BLT PAGE FAIL.
; 953	;	ALSO SET TIME PARAMETER ON ADB/FM TO ALLOW TIME FOR PARITY
; 954	;	CHECKING OF FM.
; 955	;65	FIX KL PAGING CODE TO DO MBWAIT AFTER DETERMINING THAT PARITY
; 956	;	ERROR HAS NOT OCCURRED, SO AS TO GET CORRECT VMA TO SAVE.
; 957	;	CREATE SYMBOLS FOR KL PAGE FAIL CODES.  PUT CONDITIONAL
; 958	;	ASSEMBLY AROUND IMULI OPTIMIZATION CODE, AND SXCT.  CREATE
; 959	;	SYMBOL "OPTIONS" IN # FIELD FOR MICROCODE OPTIONS.
; 960	;64	MICROCODE FOR KL10 PAGING (PAGE REFILL, MAP INSTR)...
; 961	;	REMOVE UNNECESSARY INSTRUCTION MBREL: FROM SWEEP AND APRBO
; 962	;	COSMETIC CHANGES TO KEEP COMMENTS & MACRO DEFINITIONS FROM
; 963	;	OVERFLOWING LINE OF LISTING, AND INSERTION OF CONDITIONAL
; 964	;	ASSEMBLY CONTROL OF LONG FLOATING POINT INSTRUCTIONS.
; 965	;63	IN MTR REQUEST ROUTINE, DON'T DISMISS WHEN PI CYCLE HASN'T
; 966	;	BEEN SET.
; 967	;62	FIX RDMTR CODE TO PUT 35 IN SC BEFORE GOING TO DMOVEM CODE.
; 968	;61	FIX PIIBP ROUTINE TO USE CALL.M INSTEAD OF SPEC/CALL,
; 969	;	WHICH GETS OVERRIDDEN BY P_P-S... IN MTR REQUEST SERVICE
; 970	;	ROUTINE, DON'T SET PI CYCLE UNLESS REQUEST IS FOR VECTOR.
; 971	;60	FIX DATAO PAG TO DO MB WAIT AFTER STORING EBOX ACCT AND
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 1-17
; EDHIS.MIC[10,5351]	19:59 24-Jul-85			REVISION HISTORY					

; 972	;	BEFORE CHANGING VMA.
; 973	;57	RE-CODE USES OF A@, B@ TO USE VMA/1, RATHER THAN VMA/AD,
; 974	;	IN ORDER TO GET CORRECT CONTEXT ON INDIRECT WORD. SEE MCL4
; 975	;56	FIX SECOND PART OF PICYCLE (TAG NEXT:) TO ENSURE THAT
; 976	;	PC+1 INH, KERNEL CYCLE, ETC REMAIN UP DURING 2ND PART.
; 977	;	ALSO CHANGE SPEC/FLAG CTL FOR ECO 1261, WHICH REQUIRES
; 978	;	#07 TO BE OPPOSITE OF #04 TO GENERATE SCD LEAVE USER.
; 979	;55	FIX SPEC INSTR/SET PI CYCLE TO INHIBIT INTERRUPTS
; 980	;	(IN PARTICULAR, METER UPDATE REQUESTS).  MAKE SURE VALID
; 981	;	DATA SAVED ON IO PAGE FAIL AND PARITY ERRORS. REMOVE
; 982	;	BACKWARDS BLT... IT BROKE TOO MANY PROGRAMS.
; 983	;54	FIX OVERFLOW CHECK IN IMULI OPTIMIZATION TO INH CRY 18
; 984	;	UPDATE TO USE CONDITIONAL ASSEMBLY IN MICRO VERS 20.
; 985	;53	FIX T1,T2 PARAMETERS ON BYTE DISP, SIGNS DISP
; 986	;52	CORRECT SHIFT AMOUNT FOR IMULI OPTIMIZATION, AND FIX MACRO
; 987	;	DEFINITIONS FOR SET SR?, WHICH WERE ALWAYS SETTING SR0.
; 988	;51	OPTIMIZE IMULI OF TWO POSITIVE OPERANDS (TO SPEED UP SUBSCRIPT
; 989	;	CALCULATIONS) BY TAKING ONLY 9 MULTIPLY STEPS AND STARTING
; 990	;	NEXT INSTRUCTION FETCH EARLIER.  OPTIMIZATION CAN BE REMOVED
; 991	;	BY COMMENTING OUT TWO INSTRUCTIONS AT IMULI, AND ONE FOLLOWING
; 992	;	IMUL.  ALSO FIX APRBI/UVERS TO KEEP SERIAL # OUT OF LH.
; 993	;50	INTRODUCE SKIP/FETCH AND CODE IN PAGE FAIL RECOVERY TO LOAD
; 994	;	PC FROM VMA IF PAGE FAIL OCCURED ON FETCH, BECAUSE NICOND
; 995	;	CYCLE, WHICH SHOULD HAVE LOADED PC, GETS INHIBITED BY INSTR 1777
; 996	;	ALSO INCLUDE EXTENDED INSTRUCTION SET.
; 997	;47	UNDO XCT CHANGES OF EDIT 46, WHICH BROKE XCT DUE TO INSUFFICIENT
; 998	;	TIME FOR DRAM HOLD BEFORE USING "A READ". ALSO FIX VECTOR
; 999	;	INTERRUPT CODE TO LOOK AT CORRECT BITS FOR CONTROLLER NUMBER.
; 1000	;46	FOLLOW-ON TO EDIT 45, SAVING 2 WORDS AND A CYCLE
; 1001	;	ALSO MOVE JRST TO 600, JFCL TO 700, UUO'S TO 100X AS PREPARATION
; 1002	;	FOR EXTENDED INSTRUCTION SET
; 1003	;45	FIX SXCT TO LOOK AT AC FIELD OF SXCT, NOT SUBJECT INSTRUCTION,
; 1004	;	WHEN DECIDING WHETHER TO USE BASE-TYPE ADDRESS CALCULATION.
; 1005	;44	FIX PAGE FAIL LOGIC TO WORK FOR EITHER PAGE FAIL OR PARITY
; 1006	;	ERROR.  EDITS 42 AND 43 BOTH WRONG.  ALSO CORRECT RACE IN
; 1007	;	WRITING PERFORMANCE ANALYSIS ENABLES TO PREVENT SPURIOUS COUNTS.
; 1008	;43	CORRECT USE OF PF DISP BY EDIT 42.  LOW BITS ARE INVERTED
; 1009	;42	FIX BUGS INTRODUCED BY EDIT 40, WHICH MADE FLTR OF 1B0 HANG
; 1010	;	TRYING TO NEGATE IT, AND FIX UP EXPONENT CORRECTION ON LONG
; 1011	;	SHIFT LEFT.  ALSO PUT IN CODE TO HANDLE PARITY ERROR PAGE
; 1012	;	FAILURES, AND SET TIME CONTROLS ON 43-47.
; 1013	;41	REWRITE OF VECTOR INTERRUPT PROCESSING TO MAKE DTE VECTORS
; 1014	;	GO TO 142+8N, WHERE N IS DTE#.  RH20 GO TO PROGRAMMED ADDRESS
; 1015	;	IN EPT, EXTERNAL DEVICES USE EXEC VIRTUAL ADDRESSES.
; 1016	;40	IMPROVEMENTS TO FLOATING NORMALIZATION TO MAKE LONG SHIFTS
; 1017	;	FASTER, PRIMARILY TO HELP FLTR
; 1018	;37	FIX FLOATING DIVIDE SO THAT THE TRUNCATED FORM OF A NEGATIVE
; 1019	;	QUOTIENT IS EQUAL TO THE HIGH-ORDER PART OF THE INFINITE-
; 1020	;	PRECISION QUOTIENT.  SEE COMMENTS IN THE CODE.  ALSO BUM
; 1021	;	A CYCLE OUT OF FLOATING DIVIDE BY STARTING THE NORMALIZE
; 1022	;	WHILE MOVING THE QUOTIENT INTO AR.
; 1023	;	SEVERAL CHANGES TO MAKE TRACKS FEATURE WORK
; 1024	;36	FIX CONO MTR TO PUT DATA ON BOTH HALVES, SO PI CAN SEE PIA
; 1025	;35	FIX CONI PI TO READ BACK WRITE EVEN PARITY ENABLES
; 1026	;34	FIX BLT USE OF SR, SO NO CORRECTION OF ARX NECESSARY
; 1027	;33	FIX PAGE TABLE REFERENCES TO FORCE UNPAGED REF.  FIX TRAP
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 1-18
; EDHIS.MIC[10,5351]	19:59 24-Jul-85			REVISION HISTORY					

; 1028	;	TO SET PC+1 INHIBIT.
; 1029	;32	CORRECT SETTING OF SC FOR SHIFTING METER COUNTERS, TO GET
; 1030	;	12 BITS UNUSED AT RIGHT WHEN IT GETS TO CORE.
; 1031	;31	RECODE ASH AND ASHC TO SAVE SPACE
; 1032	;30	FIX JFFO TO SHIFT AR CORRECTLY AT JFFO2.  BUM ADJSP TO USE
; 1033	;	STMAC FOR UPDATING PDL POINTER.
; 1034	;27	FIX CONI PAG TO READ EBUS.  CORRECT DEFINITIONS OF MBOX
; 1035	;	REGISTER FUNCTIONS, WHICH HAD BITS 0 AND 3 INVERTED.
; 1036	;26	FIX DEFINITIONS OF DIAG FUNC CONO MTR AND CONO TIM, WHICH
; 1037	;	WERE REVERSED
; 1038	;25	FIX DECODING OF PHYSICAL DEVICE NUMBER IN PI FUNCTION CODE
; 1039	;	AND RE-CODE JFCL FOR FEWER MICROWORDS
; 1040	;24	FIX JFFO TO SHIFT ON FIRST 6-BIT TEST STEP, AND JRSTF TO
; 1041	;	KEEP E AND XR DISTINCT.  ALSO SET LOAD-ENABLE BITS IN
; 1042	;	DATAI PAG, WORD.
; 1043	;23	FIX CONO PI, TO HOLD AR ONTO EBUS THRU REL EBUS, BECAUSE
; 1044	;	PI BOARD DELAYS CONO PI TO GET CONO SET EQUIVALENT.
; 1045	;22	MORE JFCL FIXES.  MUST USE FLAG CTL/JFCL WHILE CLEARING BITS,
; 1046	;	AS WELL AS WHILE TESTING THEM.  BUM A WORD OUT OF JFFO BY
; 1047	;	MAKING THE SIXBIT COUNT NEGATIVE.  CHANGES SO SHIFT SUBR
; 1048	;	RETURNS 2, BYTEA 1.  FIX SETMB TO STORE BACK AND FETCH.
; 1049	;21	RE-WRITE JFCL TO KEEP LOW OPCODE BITS OUT OF AR0-1, BECAUSE
; 1050	;	PC00 GETS PROPAGATED LEFT TO ADA -1 AND -2.
; 1051	;20	FIX BLT TO LOAD BR WITH SRC-DST ADDR
; 1052	;	ALSO SET TIME PARAMETERS ON CONDITIONAL FETCH FUNCTIONS
; 1053	;17	CHANGE SWEEP ONE PAGE TO PUT PAGE # IN E, RATHER THAN ADDR.
; 1054	;	ALSO CHANGE COND/FM WRITE TO MATCH ECO #1068.
; 1055	;16	FIX JUMP FETCH MACRO TO LOAD VMA FROM PC+1 (TEST SATISFIED
; 1056	;	OVERRIDES THIS TO HOLD VMA).  ALSO BUM ONE MICROWORD FROM MUUO.
; 1057	;15	INCLUDE PAGE FAIL DISP IN DISP/ FIELD
; 1058	;	ALSO MAKE MUUO STORE PROCESS CONTEXT WORD AT 426, AND SETUP
; 1059	;	PCS FROM PC EXTENSION, CWSX FROM SXCT
; 1060	;14	FIX DEFINITIONS OF SKIP/IO LEGAL, AC#0, SC0, EVEN PAR
; 1061	;	ALSO FIX DATAO PAG, TO SEND LH DATA ON BOTH HALVES OF EBUS
; 1062	;13	ALIGN SETEBR SO CALL TO SHIFT RETURNS CORRECTLY
; 1063	;12	MAKE SURE AD COPIES AR DURING DATAO, CONO, AND CLEAR AR AT
; 1064	;	SET DATAI TIME.
; 1065	;11	FIXES TO CONTINUE CODE SO CONSOLE WORKS, AND CORRECTIONS TO
; 1066	;	PROTECTED DEP/EXAM SO PROTECTION PROTECTS.
; 1067	;10	FIX A READ MACRO TO VMA/PC+1.  AD OVERRIDES UNLESS DRAM A=1
; 1068	;07	RE-WRITE OF PI CYCLE CODE TO RECOGNIZE NEW EBUS SPEC.
; 1069	;06	FIX DEFINITIONS OF SKIPS 40-57 BY COMPLEMENTING 3 LOW ORDER BITS
; 1070	;	FIX MULSUB TO CORRESPOND TO NEW CRA LOGIC
; 1071	;05	FIX EBUS CTL DEFINITIONS TO GET F01 CORRECT.  CORRECT FLAG CTL
; 1072	;	DEFINITIONS TO PREVENT LEAVE USER WHEN NOT WANTED, AND FIX
; 1073	;	JRST/JFCL TO HAVE FLAGS IN AR WHEN NEEDED.
; 1074	;04	FIX RETURNS FROM MULSUB, PUT BETTER COMMENTS ON SNORM CODE,
; 1075	;	IMPROVE SNORM ALGORITHM TO MINIMIZE WORST-CASE TIME.
; 1076	;03	FIX DISPATCH ADDRESS PROBLEMS, MOSTLY JRST/JFCL AND UUO'S.
; 1077	;02	CHANGES PER INSTRUCTION SET REVIEW -- DELETE USE OF BIT12 OF
; 1078	;	BYTE POINTERS, CHANGE BLT TO PUT FINAL SRC,DST ADDRESSES IN AC,
; 1079	;	MAKE TRUNCATE FORM FLOATING POINT REALLY TRUNCATE, ELIMINATE
; 1080	;	LOCAL JSYS SUPPORT, DELETE PXCT OPCODE (XCT W/ NON-ZERO AC IN
; 1081	;	EXEC MODE), LUUO'S GO TO 40/41 OF CURRENT SPACE.
; 1082	;01	UPDATES FOR .TITLE AND .TOC PSEUDO OPS,
; 1083	;	AND VARIOUS CHANGES FOR PROTO HARDWARE
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 1-19
; EDHIS.MIC[10,5351]	19:59 24-Jul-85			REVISION HISTORY					

; 1084	;00	CREATION, BASED ON BREADBOARD AS OF EDIT 66
						; 1085	.BIN
						; 1086	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 1
; DEFINE.MIC[10,5351]	19:52 24-Jul-85			CONDITIONAL ASSEMBLY VARIABLE DEFINITIONS		

						; 1087	.TOC	"CONDITIONAL ASSEMBLY VARIABLE DEFINITIONS"
; 1088	.NOBIN
; 1089	
; 1090	; [COST ESTIMATES IN BRACKETS INDICATE NUMBER OF ADDITIONAL
; 1091	; MICROINSTRUCTIONS REQUIRED BY TURNING ON THE FEATURE SWITCH]
; 1092	
; 1093	.DEFAULT/TRACKS=0	;1 ENABLES STORING PC AFTER EVERY INSTRUCTION,
; 1094				; & CREATES DATAI/O PI TO READ/SETUP PC BUFFER
; 1095				;ADDRESS. [COST = 21 WDS]
; 1096	
; 1097	.DEFAULT/OP.CNT=0	;1 ENABLES CODE TO BUILD A HISTOGRAM IN CORE
; 1098				; COUNTING USES OF EACH OPCODE IN USER & EXEC
; 1099	
; 1100	.DEFAULT/OP.TIME=0	;1 ENABLES CODE TO ACCUMULATE TIME SPENT BY
; 1101				; EACH OPCODE
; 1102	
; 1103	.DEFAULT/SO.CNT=0	;SECOND ORDER COUNTING IN 128K STARTING AT LOC
; 1104				; 400000 NOT DEBUGED [COST = 28 WDS]
; 1105	
; 1106	.DEFAULT/SO2.CNT=0	;SECOND ORDER COUNTING IN 128K STARTING AT LOC
; 1107				; PRESENTED AT START DOES ONE MORE ADD THAN
; 1108				; SO.CNT AND HENCE AN INSTRUCTION TAKES
; 1109				; 120 NS LONGER THAN SO.CNT [COST = 28 WDS]
; 1110	
; 1111	.DEFAULT/PAGCNT=0	;Enable code to count entries into the PFH and
; 1112				; number of DATAO PAGs with bit 2 set.  [Cost =
; 1113				; 6 words] [327]
; 1114	
; 1115	.DEFAULT/FPLONG=1	;1 ENABLES KA-STYLE DOUBLE PRECISION FLOATING
; 1116				;POINT INSTRUCTIONS: FADL, FSBL, FMPL, FDVL,
; 1117				; UFA, DFN. [COST = 49 WDS]
; 1118	
; 1119	.DEFAULT/MULTI=0	;1 IF MULTIPROCESSOR SYSTEM, TO SUPPRESS CACHE
; 1120				;ON UNPAGED REF'S.  PAGED REF'S ARE UP TO EXEC.
; 1121	
; 1122	.DEFAULT/KLPAGE=0	;1 ENABLES KL-MODE PAGING. [COST = 85 WDS]
; 1123	
; 1124	.DEFAULT/SHIFT.MUUO=0	;ENABLES A DIFFERENT MUUO FORMAT FOR MODEL A
; 1125				;THAT IS SLIGHTLY CLOSER TO THE XADDR FORMAT
; 1126				;EXPECTED TO BE USED IN CONJUNCTION WITH LONG.PC
; 1127				;BUT THEY DO NOT DEPEND ON EACH OTHER
; 1128	
; 1129	.DEFAULT/MODEL.B=0	;1 INDICATES EXTENDED ADDRESSING HARDWARE,
; 1130				;PRIMARILY 2K (RATHER THAN 1280) CONTROL RAM,
; 1131				;NEW MCL, CTL, AND APR BOARDS.
; 1132	
; 1133	.DEFAULT/BLT.PXCT=0	;1ENABLES SPECIAL BLT CODE FOR EXTENDED ADDRESSING
; 1134				;THIS IS SUPPOSED TO GO AWAY IN THE FUTURE
; 1135				;WHEN PXCT OF BLT IS NO LONGER USED BY TOPS-20
; 1136				;THIS SHOULD ONLY BE USED BY KLX XADDR MICROCODE
; 1137				;[COST 12 WORDS]
; 1138	
; 1139		.IF/KLPAGE
;;1140		.IFNOT/MODEL.B
;;1141		.SET/XADDR=0	;CAN'T DO EXTENDED ADDRESSING WITHOUT MODEL B
;;1142		.set/extexp=0	;No room in TOPS20 Model A machine for extended exp.
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 1-1
; DEFINE.MIC[10,5351]	19:52 24-Jul-85			CONDITIONAL ASSEMBLY VARIABLE DEFINITIONS		

; 1143	.ENDIF/MODEL.B
; 1144	
;;1145		.IFNOT/KLPAGE
;;1146	.SET/XADDR=0		;CAN'T HAVE EXTENDED ADDRESSING WITHOUT KL PAGE
; 1147		.ENDIF/KLPAGE
; 1148	
; 1149	.DEFAULT/IMULI.OPT=0	;1 ENABLES OPTIMIZATION OF IMULI TO TAKE ONLY
; 1150				;NINE MULTIPLY STEPS [COST = 3 WDS]
; 1151	
; 1152		.IF/MODEL.B	; [COST = 19 WDS]
; 1153	.SET/SXCT=0		;DONT NEED SXCT WITH EXTENDED ADDRESSING
; 1154				;CAN'T DO IT IN MODEL B HARDWARE
; 1155		.ENDIF/MODEL.B
; 1156	.DEFAULT/SXCT=0		;1 ENABLES SPECIAL XCT INSTR, WHICH ALLOWS
; 1157				; DIAGNOSTICS TO GENERATE LARGE ADDRESSES.
; 1158	
; 1159	
; 1160	.DEFAULT/SNORM.OPT=0	;1 ENABLES FASTER NORMALIZATION OF SINGLE-
; 1161				; PRECISION RESULTS WHICH HAVE SEVERE LOSS OF
; 1162				; SIGNIFICANCE [COST = 4 WDS]
; 1163	
;;1164	.IFNOT/MODEL.B
;;1165		.SET/PUSHM=0	;CODE ONLY WORKS FOR MODEL B
; 1166	.ENDIF/MODEL.B
; 1167	
; 1168	.DEFAULT/PUSHM=0	;ENABLES THE PUSHM AND POPM INSTRUCTIONS
; 1169				; [COST = ??? WDS]
; 1170	.DEFAULT/EXTEND=1	;1 ENABLES EXTENDED INSTRUCTION SET
; 1171				; [COST = 290 WDS]
; 1172	
; 1173	.DEFAULT/DBL.INT=1	;1 ENABLES DOUBLE INTEGER INSTRUCTIONS
; 1174				; [COST = 59 WDS]
; 1175	
; 1176	.DEFAULT/ADJBP=1	;1 ENABLES ADJUST BYTE POINTER
; 1177				; [COST = 24 WDS]
; 1178	
; 1179	.DEFAULT/RPW=1		;1 ENABLES READ-PAUSE-WRITE CYCLES FOR
; 1180				;NON-CACHED REFERENCES BY CERTAIN INSTRUCTIONS.
; 1181				; [COST = 0]
; 1182	
; 1183	.DEFAULT/WRTST=0	;1 ENABLES WRITE-TEST CYCLES AT AREAD TIME FOR
; 1184				;INSTRUCTIONS LIKE MOVEM AND SETZM.  [COST = 0]
; 1185	
; 1186	.DEFAULT/BACK.BLT=0	;1 ENABLES BLT TO DECREMENT ADDRESSES ON EACH
; 1187				;STEP IF E < RH(AC).  BREAKS MANY PROGRAMS.
; 1188				; [COST = 9 WDS]
; 1189	
;;1190	.IF/TRACKS		;SETUP CONTROL FOR COMMON CODE
;;1191		.SET/INSTR.STAT=1
; 1192	.ENDIF/TRACKS
; 1193	
;;1194	.IF/OP.CNT
;;1195		.SET/INSTR.STAT=1	;ENABLE COMMON CODE, ERROR IF TRACKS TOO
; 1196	.ENDIF/OP.CNT
; 1197	
;;1198	.IF/OP.TIME
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 1-2
; DEFINE.MIC[10,5351]	19:52 24-Jul-85			CONDITIONAL ASSEMBLY VARIABLE DEFINITIONS		

;;1199		.SET/INSTR.STAT=1	;ERROR IF TRACKS OR OP.CNT ALSO SET
; 1200	.ENDIF/OP.TIME
; 1201	
;;1202	.IF/SO.CNT
;;1203		.SET/INSTR.STAT=1
; 1204	.ENDIF/SO.CNT
; 1205	
;;1206	.IF/SO2.CNT
;;1207		.SET/INSTR.STAT=1
; 1208	.ENDIF/SO2.CNT
; 1209	
; 1210	.DEFAULT/INSTR.STAT=0		;IF NO STATISTICS, TURN OFF COMMON CODE
; 1211	
;;1212	.IF/INSTR.STAT
;;1213		.SET/NONSTD=1		;STATISTICS CODE IS NONSTANDARD
;;1214		.SET/TRXDEF=1		;Make sure TRX registers get defined [327]
; 1215	.ENDIF/INSTR.STAT
; 1216	
;;1217	.IF/PAGCNT
;;1218		.SET/NONSTD=1		;All statistics are nonstandard
;;1219		.SET/TRXDEF=1		;We need the TRX registers
; 1220	.ENDIF/PAGCNT
; 1221	
; 1222	.DEFAULT/TRXDEF=0		;Normally no TRX registers needed
; 1223	
; 1224	.DEFAULT/LONG.PC=0		;LONG PC FORMAT [COST 9 WORDS 11 WORDS IF XADDR]
; 1225	
; 1226	.DEFAULT/EPT540=0		;PUT EPT AND UPT SECTION TABLES AT 540 IF ON
; 1227					;  440 IF OFF
; 1228	
; 1229	.DEFAULT/DIAG.INST=0		;UNSUPPORTED DIAGNOSTIC MICROCODE
; 1230	
;;1231	.IF/DIAG.INST
;;1232		.SET/NONSTD=1		;NONSTANDARD MICROCODE
; 1233	.ENDIF/DIAG.INST
; 1234	
; 1235	.DEFAULT/NONSTD=0		;NONSTANDARD MICROCODE IS NORMALLY OFF
; 1236	.DEFAULT/SMP=1			;[216]1 IF SYMMETRIC MULTIPROCESSOR 
; 1237					;SYSTEM.
; 1238					;TO ENABLE RPW ON DPB INSTRUCTION.
; 1239					;[COST=9 WORDS if not XADDR, more if XADDR]
; 1240	.DEFAULT/OWGBP=0		;[264]
; 1241	.DEFAULT/IPA20=0		;[264]
; 1242	.DEFAULT/NOCST=0		;[264]
; 1243	.DEFAULT/CST.WRITE=1		;[314] Enable CST writable bit
; 1244	.DEFAULT/BIG.PT=1		;[333][347] Special code for big page table and Keep bit
; 1245	.DEFAULT/DDT.BUG=0		;[346] If on, enable APRID hack to move bit 23
; 1246	.DEFAULT/GFTCNV=1		;[273] GFLOAT CONVERSION INST.
; 1247	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 2
; DEFINE.MIC[10,5351]	19:52 24-Jul-85			HOW TO READ THE MICROCODE -- FORMATS & CONSTRUCTS	

; 1248	.TOC	"HOW TO READ THE MICROCODE -- FORMATS & CONSTRUCTS"
; 1249	
; 1250	;(1)	FIELD DEFINITIONS
; 1251	;	THESE OCCUR AT THE BEGINNING OF THE LISTING, IN THE SOURCE FILE
; 1252	; DEFINE.MIC (CONTROL AND DISPATCH RAM DEFINITIONS).
; 1253	; THEY HAVE THE FORM:
; 1254	;	SYMBOL/=<L:R>M,J
; 1255	;ANOTHER FORM ACCEPTED BY THE ASSEMBLER (FOR HISTORIC REASONS) IS:
; 1256	;	SYMBOL/=J,K,R,M		;THIS FORM HAS BEEN REMOVED FROM THIS CODE
; 1257	;	THE PARAMETER (J) IS MEANINGFUL ONLY WHEN "D" IS SPECIFIED
; 1258	; AS THE DEFAULT MECHANISM, AND IN THAT CASE, GIVES THE DEFAULT VALUE OF
; 1259	; THE FIELD IN OCTAL.
; 1260	;	THE PARAMETER (K) GIVES THE FIELD SIZE IN (DECIMAL) NUMBER
; 1261	; OF BITS. THIS IS USED ONLY IN THE OUTDATED FORMAT.
; 1262	;	THE PARAMETER (L) GIVES THE BIT POSITION OF THE LEFTMOST BIT
; 1263	;IN THE FIELD. THE SAME METHOD IS USED AS FOR (R) BELOW.
; 1264	;	THE PARAMETER (R) GIVES THE FIELD POSITION IN DECIMAL
; 1265	; AS THE BIT NUMBER OF THE RIGHTMOST BIT OF THE FIELD.  BITS ARE NUMBERED
; 1266	; FROM 0 ON THE LEFT.  NOTE THAT THE POSITION OF BITS IN THE MICROWORD
; 1267	; SHOWN IN THE LISTING BEARS NO RELATION TO THE ORDERING OF BITS IN THE
; 1268	; HARDWARE MICROWORD, WHERE FIELDS ARE OFTEN BROKEN UP AND SCATTERED.
; 1269	;	THE PARAMETER (M) IS OPTIONAL, AND SELECTS A DEFAULT
; 1270	; MECHANISM FOR THE FIELD.  THE LEGAL VALUES OF THIS PARAMETER ARE THE
; 1271	; CHARACTERS "D", "T", "P", OR "+".
; 1272	;	  "D" MEANS (J) IS THE DEFAULT VALUE OF THE FIELD IF NO EXPLICIT
; 1273	;	VALUE IS SPECIFIED.
; 1274	;	  "T" IS USED ON THE TIME FIELD TO SPECIFY THAT THE VALUE OF THE
; 1275	;	FIELD DEPENDS ON THE TIME PARAMETERS SELECTED FOR OTHER FIELDS.
; 1276	;	THE VALUE OF A FIELD WITH THIS SPECIFICATION DEFAULTS TO THE
; 1277	;	MAX OF <SUM OF THE T1 PARAMETERS DEFINED FOR FIELD/VALUES
; 1278	;	SPECIFIED IN THIS MICROINSTRUCTION>, <SUM OF THE T2 PARAMETERS
; 1279	;	FOR THIS MICROINSTRUCTION>, <J PARAMETER OF THIS FIELD>.
; 1280	;	WITHIN THE KL10 MICROCODE, T1 PARAMETERS ARE USED TO SPECIFY
; 1281	;	FUNCTIONS WHICH DEPEND ON THE ADDER SETUP TIME, AND T2 PARAMETERS
; 1282	;	ARE USED FOR FUNCTIONS WHICH REQUIRE ADDITIONAL TIME FOR CORRECT
; 1283	;	SELECTION OF THE NEXT MICROINSTRUCTION ADDRESS.
; 1284	;	  "P" IS USED ON THE PARITY FIELD TO SPECIFY THAT THE VALUE OF THE
; 1285	;	FIELD SHOULD DEFAULT SUCH THAT PARITY OF THE ENTIRE WORD
; 1286	;	IS ODD.  IF THIS OPTION IS SELECTED ON A FIELD WHOSE SIZE (K) IS
; 1287	;	ZERO, THE MICRO ASSEMBLER WILL ATTEMPT TO FIND A BIT SOMEWHERE
; 1288	;	IN THE WORD FOR WHICH NO VALUE IS SPECIFIED OR DEFAULTED.
; 1289	;	  "+" IS USED ON THE JUMP ADDRESS FIELD TO SPECIFY THAT THE DEFAULT
; 1290	;	JUMP ADDRESS IS THE ADDRESS OF THE NEXT INSTRUCTION ASSEMBLED (NOT,
; 1291	;	IN GENERAL, THE CURRENT LOCATION +1).
; 1292	;	IN GENERAL, A FIELD CORRESPONDS TO THE SET OF BITS WHICH PROVIDE
; 1293	; SELECT INPUTS FOR MIXERS OR DECODERS, OR CONTROLS FOR ALU'S.
; 1294	; EXAMPLES:
; 1295	;	AR/=<24:26>D,0	OR	AR/=0,3,26,D
; 1296	;	THE MICROCODE FIELD WHICH CONTROLS THE AR MIXER (AND THEREFORE
; 1297	; THE DATA TO BE LOADED INTO AR ON EACH EBOX CLOCK) IS THREE BITS WIDE
; 1298	; AND THE RIGHTMOST BIT IS SHOWN IN THE LISTING AS BIT 26 OF THE
; 1299	; MICROINSTRUCTION.  IF NO VALUE IS SPECIFICALLY REQUESTED FOR THE FIELD,
; 1300	; THE MICROASSEMBLER WILL ENSURE THAT THE FIELD IS 0.
; 1301	;	AD/=<12:17>	OR	AD/=0,6,17
; 1302	;	THE FIELD WHICH CONTROLS THE AD IS 6 BITS WIDE, ENDING ON
; 1303	; BIT 17.  THE FOURTH PARAMETER OF THE FIELD IS OMITTED, SO THE FIELD
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 2-1
; DEFINE.MIC[10,5351]	19:52 24-Jul-85			HOW TO READ THE MICROCODE -- FORMATS & CONSTRUCTS	

; 1304	; IS AVAILABLE TO THE MICROASSEMBLER (IF NO VALUE IS EXPLICITLY
; 1305	; CALLED OUT FOR THE FIELD) FOR MODIFICATION TO ENSURE ODD PARITY IN THE
; 1306	; ENTIRE WORD.
; 1307	;
; 1308	;(2)	VALUE DEFINITIONS
; 1309	;	FOLLOWING A FIELD DEFINITION, SYMBOLS MAY BE CREATED IN THAT
; 1310	; FIELD TO CORRESPOND TO VALUES OF THE FIELD.  THE FORM IS:
; 1311	;	SYMBOL=N,T1,T2
; 1312	;	"N" IS, IN OCTAL, THE VALUE OF SYMBOL WHEN USED IN THE FIELD.
; 1313	; T1 AND T2 ARE OPTIONAL, AND SPECIFY PARAMETERS IN THE TIME FIELD
; 1314	; CALCULATION FOR MICROINSTRUCTIONS IN WHICH THIS FIELD/SYMBOL IS USED.
; 1315	; THE MICROASSEMBLER COMPUTES THE SUMS OF ALL THE T1'S AND ALL THE T2'S
; 1316	; SPECIFIED FOR FIELD/SYMBOL SPECIFICATIONS IN A WORD, AND USES THE MAX
; 1317	; OF THE TWO SUMS AS THE DEFAULT VALUE FOR THE FIELD WHOSE DEFAULT
; 1318	; MECHANISM IS "T".  EXAMPLES:
; 1319	;	AD/=<12:17>	;FIELD DEFINITION IN WHICH FOLLOWING SYMBOLS EXIST
; 1320	;	XOR=31
; 1321	;	A+B=6,1
; 1322	;	HERE THE SYMBOLS "XOR" AND "A+B" ARE DEFINED FOR THE "AD" FIELD.
; 1323	; TO THE ASSEMBLER, THEREFORE, WRITING "AD/XOR" MEANS PUT THE VALUE 31
; 1324	; INTO THE 6-BIT FIELD ENDING ON BIT 17 OF THE MICROWORD.  THE SYMBOLS
; 1325	; ARE CHOSEN FOR MNEMONIC SIGNIFICANCE, OF COURSE, SO ONE READING
; 1326	; THE MICROCODE WOULD INTERPRET "AD/XOR" AS "THE OUTPUT OF AD SHALL BE THE
; 1327	; EXCLUSIVE OR OF ITS A AND B INPUTS".  SIMILIARLY, "AD/A+B" IS READ AS
; 1328	; "AD PRODUCES THE SUM OF A AND B".  THE SECOND PARAMETER IN THE DEFINITION
; 1329	; OF "A+B" IS A CONTROL TO THE MICRO ASSEMBLER'S TIME-FIELD CALCULATION,
; 1330	; WHICH TELLS THE ASSEMBLER THAT THIS OPERATION TAKES LONGER THAN THE
; 1331	; BASIC CYCLE, AND THEREFORE THAT THE TIME FIELD SHOULD BE INCREASED.
; 1332	;	AR/=<24:26>D,0	;FIELD DEFINITION FOR FOLLOWING SYMBOLS
; 1333	;	AR=0
; 1334	;	AD=2
; 1335	;	HERE THE SYMBOLS "AR" AND "AD" ARE DEFINED FOR THE FIELD NAMED
; 1336	; "AR", WHICH CONTROLS THE AR MIXER.  WE COULD WRITE AR/AR TO MEAN THAT
; 1337	; THE AR MIXER SELECT INPUTS WOULD BE 0, WHICH IN THE 
; 1338	; HARDWARE SELECTS THE AR OUTPUT FOR RECIRCULATION TO THE REGISTER.  IN
; 1339	; PRACTICE, HOWEVER, WE WANT THIS TO BE THE DEFAULT CASE, SO THAT AR
; 1340	; DOES NOT CHANGE UNLESS WE SPECIFICALLY REQUEST IT, SO THE FIELD
; 1341	; DEFINITION SPECIFIES 0 AS THE DEFAULT VALUE OF THE FIELD.  IF WE
; 1342	; WANT AR LOADED FROM THE AD OUTPUT, WE WRITE "AR/AD" TO SET THE
; 1343	; MIXER SELECTS TO PASS THE AD OUTPUT INTO THE AR.
; 1344	;
; 1345	;(3)	LABEL DEFINITIONS
; 1346	;	A MICRO INSTRUCTION MAY BE LABELLED BY A SYMBOL FOLLOWED BY COLON
; 1347	; PRECEDING THE MICROINSTRUCTION DEFINITION.  THE ADDRESS OF THE
; 1348	; MICROINSTRUCTION BECOMES THE VALUE OF THE SYMBOL IN THE FIELD NAMED "J".
; 1349	; EXAMPLE:
; 1350	;	FOO:	J/FOO
; 1351	;	THIS IS A MICROINSTRUCTION WHOSE "J" FIELD (JUMP ADDRESS) CONTAINS
; 1352	; THE VALUE "FOO".  IT ALSO DEFINES THE SYMBOL "FOO" TO BE THE ADDRESS
; 1353	; OF ITSELF.  THEREFORE, IF EXECUTED BY THE MICROPROCESSOR, IT WOULD
; 1354	; LOOP ON ITSELF.
; 1355	;
; 1356	;(4)	COMMENTS
; 1357	;	A SEMICOLON ANYWHERE ON A LINE CAUSES THE REST OF THE LINE
; 1358	; TO BE IGNORED BY THE ASSEMBLER.  THIS TEXT IS AN EXAMPLE OF COMMENTS.
; 1359	;
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 2-2
; DEFINE.MIC[10,5351]	19:52 24-Jul-85			HOW TO READ THE MICROCODE -- FORMATS & CONSTRUCTS	

; 1360	;(5)	MICROINSTRUCTION DEFINITION
; 1361	;	A WORD OF MICROCODE IS DEFINED BY SPECIFYING A FIELD NAME,
; 1362	; FOLLOWED BY SLASH (/), FOLLOWED BY A VALUE.  THE VALUE MAY BE A
; 1363	; SYMBOL DEFINED FOR THAT FIELD, AN OCTAL DIGIT STRING, OR A DECIMAL
; 1364	; DIGIT STRING (DISTINGUISHED BY THE FACT THAT IT CONTAINS "8" AND/OR
; 1365	; "9" AND/OR IS TERMINATED BY A PERIOD). SEVERAL FIELDS MAY BE SPECIFIED
; 1366	; IN ONE MICROINSTRUCTION BY SEPARATING FIELD/VALUE SPECIFICATIONS WITH
; 1367	; COMMAS.  EXAMPLE:
; 1368	;	ADB/BR,ADA/AR,AD/A+B,AR/AD
; 1369	;	THE FIELD NAMED "ADB" IS GIVEN THE VALUE NAMED "BR" (TO
; 1370	; CAUSE THE MIXER ON THE B SIDE OF AD TO SELECT BR), FIELD "ADA" HAS VALUE
; 1371	; "AR", FIELD "AD" HAS VALUE "A+B", AND FIELD "AR" HAS VALUE "AD".
; 1372	;
; 1373	;(6)	CONTINUATION
; 1374	;	THE DEFINITION OF A MICROINSTRUCTION MAY CONTINUED ONTO TWO OR
; 1375	; MORE LINES BY BREAKING IT AFTER ANY COMMA.  IN OTHER WORDS, IF THE
; 1376	; LAST NON-BLANK, NON-COMMENT CHARACTER ON A LINE IS A COMMA, THE
; 1377	; INSTRUCTION SPECIFICATION IS CONTINUED ON THE FOLLOWING LINE.
; 1378	; EXAMPLE:
; 1379	;	ADB/BR,ADA/AR,		;SELECT AR & BR AS AD INPUTS
; 1380	;		AD/A+B,AR/AD	;TAKE THE SUM INTO AR
; 1381	; BY CONVENTION, CONTINUATION LINES ARE INDENTED AN EXTRA TAB.
; 1382	;
; 1383	;(7)	MACROS
; 1384	;	A MACRO IS A SYMBOL WHOSE VALUE IS ONE OR MORE FIELD/VALUE
; 1385	; SPECIFICATIONS AND/OR MACROS.  A MACRO DEFINITION IS A LINE CONTAINING
; 1386	; THE MACRO NAME FOLLOWED BY A QUOTED STRING WHICH IS THE VALUE OF THE
; 1387	; MACRO.  EXAMPLE:
; 1388	;	AR_AR+BR	"ADB/BR,ADA/AR,AD/A+B,AR/AD"
; 1389	; THE APPEARANCE OF A MACRO IN A MICROINSTRUCTION DEFINITION IS EQUIVALENT
; 1390	; TO THE APPEARANCE OF ITS VALUE.  MACROS FOR VARIOUS FUNCTIONS
; 1391	; ARE DEFINED IN "MACRO.MIC".
; 1392	;
; 1393	;(8)	PSEUDO OPS
; 1394	;	THE MICRO ASSEMBLER HAS 10 PSEUDO-OPERATORS:
; 1395	;.DCODE AND .UCODE SELECT THE RAM INTO WHICH SUBSEQUENT MICROCODE WILL
; 1396	;BE LOADED, AND THEREFORE THE FIELD DEFINITIONS AND MACROS WHICH ARE
; 1397	;MEANINGFUL IN SUBSEQUENT MICROCODE
; 1398	;.TITLE DEFINES A STRING OF TEXT TO APPEAR IN THE PAGE HEADER, AND
; 1399	;.TOC DEFINES AN ENTRY FOR THE TABLE OF CONTENTS AT THE BEGINNING.
; 1400	;.SET DEFINES THE VALUE OF A CONDITIONAL ASSEMBLY PARAMETER,
; 1401	;.CHANGE REDEFINES A CONDITIONAL ASSEMBLY PARAMETER,
; 1402	;.DEFAULT ASSIGNS A VALUE TO AN UNDEFINED PARAMETER.
; 1403	;.IF ENABLES ASSEMBLY IF THE VALUE OF THE PARAMETER IS NOT ZERO,
; 1404	;.IFNOT ENABLES ASSEMBLY IF THE PARAMETER VALUE IS ZERO, AND
; 1405	;.ENDIF RE-ENABLES ASSEMBLY IF SUPPRESSED BY THE PARAMETER NAMED.
; 1406	;
; 1407	;(9)	LOCATION CONTROL
; 1408	;	A MICROINSTRUCTION "LABELLED" WITH A NUMBER IS ASSIGNED TO THAT
; 1409	; ADDRESS.
; 1410	;	THE CHARACTER "=" AT THE BEGINNING OF A LINE, FOLLOWED BY
; 1411	; A STRING OF 0'S, 1'S, AND/OR *'S, SPECIFIES A CONSTRAINT ON THE
; 1412	; ADDRESS OF FOLLOWING MICROINSTRUCTIONS.  THE NUMBER OF CHARACTERS
; 1413	; IN THE CONSTRAINT STRING (EXCLUDING THE "=") IS THE NUMBER OF LOW-ORDER
; 1414	; BITS CONSTRAINED IN THE ADDRESS.  THE MICROASSEMBLER ATTEMPTS TO FIND
; 1415	; AN UNUSED LOCATION WHOSE ADDRESS HAS 0 BITS IN THE POSITIONS
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 2-3
; DEFINE.MIC[10,5351]	19:52 24-Jul-85			HOW TO READ THE MICROCODE -- FORMATS & CONSTRUCTS	

; 1416	; CORRESPONDING TO 0'S IN THE CONSTRAINT STRING AND 1 BITS WHERE THE
; 1417	; CONSTRAINT HAS 1'S.  ASTERISKS DENOTE "DON'T CARE" BIT POSITIONS.
; 1418	;	IF THERE ARE ANY 0'S IN THE CONSTRAINT STRING, THE CONSTRAINT
; 1419	; IMPLIES A BLOCK OF <2**N> MICROWORDS, WHERE N IS THE NUMBER OF 0'S
; 1420	; IN THE STRING.  ALL LOCATIONS IN THE BLOCK WILL HAVE 1'S IN THE ADDRESS
; 1421	; BITS CORRESPONDING TO 1'S IN THE STRING, AND BIT POSITIONS DENOTED BY *'S
; 1422	; WILL BE THE SAME IN ALL LOCATIONS OF THE BLOCK.
; 1423	;	IN SUCH A CONSTRAINT BLOCK, THE DEFAULT ADDRESS PROGRESSION IS
; 1424	; COUNTING IN THE "0" POSITIONS OF THE CONSTRAINT STRING, BUT A NEW
; 1425	; CONSTRAINT STRING OCCURING WITHIN A BLOCK MAY FORCE SKIPPING OVER
; 1426	; SOME LOCATIONS OF THE BLOCK.  WITHIN A BLOCK, A NEW CONSTRAINT
; 1427	; STRING DOES NOT CHANGE THE PATTERN OF DEFAULT ADDRESS PROGRESSION, IT
; 1428	; MERELY ADVANCES THE LOCATION COUNTER OVER THOSE LOCATIONS.  THE
; 1429	; MICROASSEMBLER WILL LATER FILL THEM IN.
; 1430	;	A NULL CONSTRAINT STRING ("=" FOLLOWED BY ANYTHING BUT "0",
; 1431	; "1", OR "*") SERVES TO TERMINATE A CONSTRAINT BLOCK.
; 1432	; EXAMPLES:
; 1433	;	=0	
; 1434	;	THIS SPECIFIES THAT THE LOW-ORDER ADDRESS BIT MUST BE ZERO--
; 1435	; THE MICROASSEMBLER FINDS AN EVEN-ODD PAIR OF LOCATIONS, AND PUTS
; 1436	; THE NEXT TWO MICROINSTRUCTIONS INTO THEM.
; 1437	;	=11
; 1438	;	THIS SPECIFIES THAT THE TWO LOW-ORDER BITS OF THE ADDRESS MUST
; 1439	; BOTH BE ONES.  SINCE THERE ARE NO 0'S IN THIS CONSTRAINT, THE
; 1440	; ASSEMBLER FINDS ONLY ONE LOCATION MEETING THE CONSTRAINT.
; 1441	;	=0*****
; 1442	;	THIS SPECIFIES AN ADDRESS IN WHICH THE "40" BIT IS ZERO.  DUE
; 1443	; TO THE IMPLEMENTATION OF THIS FEATURE IN THE ASSEMBLER,  THE DEFAULT
; 1444	; ADDRESS PROGRESSION APPLIES ONLY TO THE LOW-ORDER 5 BITS, SO THIS
; 1445	; CONSTRAINT FINDS ONE WORD IN WHICH THE "40" BIT IS ZERO, AND DOES
; 1446	; NOT ATTEMPT TO FIND ONE IN WHICH THAT BIT IS A ONE.
; 1447	;THIS LIMITATION HAS BEEN CHANGED WITH NEWER ASSEMBLER VERSIONS.
; 1448	;HOWEVER NONE OF THE LOCATIONS IN THE MICROCODE REQUIRE ANYTHING BUT THE
; 1449	;CONSTRAINT MENTIONED ABOVE.
; 1450	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 3
; DEFINE.MIC[10,5351]	19:52 24-Jul-85			MICROCODE LISTING TEMPLATE				

; 1451	.TOC	"MICROCODE LISTING TEMPLATE"
; 1452	;HERE IS A TEMPLATE WHICH CAN BE USED WITH THE MICROCODE
; 1453	; LISTING TO IDENTIFY FIELDS IN THE OUTPUT --
; 1454	
; 1455	
; 1456	; ----  ---- ---- ---- ---- ---- ---- ----
; 1457	; [--]  [--] []!! !!!! !!!! !![] [][] ![-]
; 1458	;   !     !   !!! !!!! !!!! !! !  ! ! ! + # = MAGIC NUMBERS
; 1459	;   !     !   !!! !!!! !!!! !! !  ! ! + MARK = SCOPE SYNC
; 1460	;   !     !   !!! !!!! !!!! !! !  ! !
; 1461	;   !     !   !!! !!!! !!!! !! !  ! + CALL, DISP/SPEC = SPEC FUNCTIONS
; 1462	;   !     !   !!! !!!! !!!! !! !  + SKIP/COND = SPECIAL FUNCTIONS
; 1463	;   !     !   !!! !!!! !!!! !! !
; 1464	;   !     !   !!! !!!! !!!! !! + TIME, MEM = UINST TIME & MEM FUNCTION
; 1465	;   !     !   !!! !!!! !!!! !+ VMA = VMA INPUT SELECT
; 1466	;   !     !   !!! !!!! !!!! + SH/ARMM = SH FUNCTION / ARMM SELECT
; 1467	;   !     !   !!! !!!! !!!!
; 1468	;   !     !   !!! !!!! !!!+ SC, FE = SC INPUT SELECT & FE LOAD
; 1469	;   !     !   !!! !!!! !!+ SCADB = SELECT FOR SCAD "B" INPUT
; 1470	;   !     !   !!! !!!! !+ SCADA = ENABLE AND SELECT FOR SCAD "A" INPUT
; 1471	;   !     !   !!! !!!! + SCAD = SC/FE ADDER FUNCTION
; 1472	;   !     !   !!! !!!!
; 1473	;   !     !   !!! !!!+ FM ADR = FAST MEMORY ADDRESS SELECT
; 1474	;   !     !   !!! !!+ BR, BRX, MQ = LOAD BR & BRX, SEL FOR MQ
; 1475	;   !     !   !!! !+ ARX = SELECT FOR ARX INPUT
; 1476	;   !     !   !!! + AR = SELECT FOR AR INPUT
; 1477	;   !     !   !!!
; 1478	;   !     !   !!+ ADB = SELECT FOR ADDER "B" INPUT
; 1479	;   !     !   !+ ADA = SELECT AND ENABLE FOR ADDER "A" INPUT
; 1480	;   !     !   + AD = OPERATION IN ADDER AND ADDER EXTENSION
; 1481	;   !     !
; 1482	;   !     + J = BASE ADDRESS TO WHICH THIS MICROINSTRUCTION JUMPS
; 1483	;   !
; 1484	;   + LOCATION IN CRAM INTO WHICH THIS WORD IS LOADED
; 1485	;
; 1486	; U/V = MICRO INSTRUCTION FOR CRAM
; 1487	
; 1488	;*******************************************************************
; 1489	
; 1490	; D = WORD FOR DRAM
; 1491	;
; 1492	;   + LOCATION IN DRAM INTO WHICH THIS WORD IS LOADED
; 1493	;   !
; 1494	;   !   + A = OPERAND ACCESS CONTROL
; 1495	;   !   !+ B = INSTRUCTION "MODE"
; 1496	;   !   !! + P = PARITY FOR THIS WORD
; 1497	;   !   !! !
; 1498	;   !   !! !   + J = ADDRESS OF HANDLER FOR THIS INSTRUCTION
; 1499	; [--]  !! ! [--]
; 1500	; ----  ---- ----
; 1501	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 4
; DEFINE.MIC[10,5351]	19:52 24-Jul-85			KL10 INSTRUCTION OPCODE MAP				

; 1502	.TOC	"KL10 INSTRUCTION OPCODE MAP"
; 1503	
; 1504	;	0	1	2	3	4	5	6	7
; 1505	;100	UUO	UUO	EFAD	EFSB	JSYS	ADJSP	EFMP	EFDV
; 1506	;110	DFAD	DFSB	DFMP	DFDV	DADD	DSUB	DMUL	DDIV
; 1507	;120	DMOVE	DMOVN	FIX	EXTEND	DMOVEM	DMOVNM	FIXR	FLTR
; 1508	;130	UFA	DFN	FSC	IBP	ILDB	LDB	IDPB	DPB
; 1509	;140	FAD	FADL	FADM	FADB	FADR	FADRI	FADRM	FADRB
; 1510	;150	FSB	FSBL	FSBM	FSBB	FSBR	FSBRI	FSBRM	FSBRB
; 1511	;160	FMP	FMPL	FMPM	FMPB	FMPR	FMPRI	FMPRM	FMPRB
; 1512	;170	FDV	FDVL	FDVM	FDVB	FDVR	FDVRI	FDVRM	FDVRB
; 1513	;	0	1	2	3	4	5	6	7
; 1514	;200	MOVE	MOVEI	MOVEM	MOVES	MOVS	MOVSI	MOVSM	MOVSS
; 1515	;210	MOVN	MOVNI	MOVNM	MOVNS	MOVM	MOVMI	MOVMM	MOVMS
; 1516	;220	IMUL	IMULI	IMULM	IMULB	MUL	MULI	MULM	MULB
; 1517	;230	IDIV	IDIVI	IDIVM	IDIVB	DIV	DIVI	DIVM	DIVB
; 1518	;240	ASH	ROT	LSH	JFFO	ASHC	ROTC	LSHC	UUO
; 1519	;250	EXCH	BLT	AOBJP	AOBJN	JRST	JFCL	XCT	MAP
; 1520	;260	PUSHJ	PUSH	POP	POPJ	JSR	JSP	JSA	JRA
; 1521	;270	ADD	ADDI	ADDM	ADDB	SUB	SUBI	SUBM	SUBB
; 1522	;	0	1	2	3	4	5	6	7
; 1523	;300	CAI	CAIL	CAIE	CAILE	CAIA	CAIGE	CAIN	CAIG
; 1524	;310	CAM	CAML	CAME	CAMLE	CAMA	CAMGE	CAMN	CAMG
; 1525	;320	JUMP	JUMPL	JUMPE	JUMPLE	JUMPA	JUMPGE	JUMPN	JUMPG
; 1526	;330	SKIP	SKIPL	SKIPE	SKIPLE	SKIPA	SKIPGE	SKIPN	SKIPG
; 1527	;340	AOJ	AOJL	AOJE	AOJLE	AOJA	AOJGE	AOJN	AOJG
; 1528	;350	AOS	AOSL	AOSE	AOSLE	AOSA	AOSGE	AOSN	AOSG
; 1529	;360	SOJ	SOJL	SOJE	SOJLE	SOJA	SOJGE	SOJN	SOJG
; 1530	;370	SOS	SOSL	SOSE	SOSLE	SOSA	SOSGE	SOSN	SOSG
; 1531	;	0	1	2	3	4	5	6	7
; 1532	;400	SETZ	SETZI	SETZM	SETZB	AND	ANDI	ANDM	ANDB
; 1533	;410	ANDCA	ANDCAI	ANDCAM	ANDCAB	SETM	SETMI	SETMM	SETMB
; 1534	;420	ANDCM	ANDCMI	ANDCMM	ANDCMB	SETA	SETAI	SETAM	SETAB
; 1535	;430	XOR	XORI	XORM	XORB	IOR	IORI	IORM	IORB
; 1536	;440	ANDCB	ANDCBI	ANDCBM	ANDCBB	EQV	EQVI	EQVM	EQVB
; 1537	;450	SETCA	SETCAI	SETCAM	SETCAB	ORCA	ORCAI	ORCAM	ORCAB
; 1538	;460	SETCM	SETCMI	SETCMM	SETCMB	ORCM	ORCMI	ORCMM	ORCMB
; 1539	;470	ORCB	ORCBI	ORCBM	ORCBB	SETO	SETOI	SETOM	SETOB
; 1540	;	0	1	2	3	4	5	6	7
; 1541	;500	HLL	HLLI	HLLM	HLLS	HRL	HRLI	HRLM	HRLS
; 1542	;510	HLLZ	HLLZI	HLLZM	HLLZS	HRLZ	HRLZI	HRLZM	HRLZS
; 1543	;520	HLLO	HLLOI	HLLOM	HLLOS	HRLO	HRLOI	HRLOM	HRLOS
; 1544	;530	HLLE	HLLEI	HLLEM	HLLES	HRLE	HRLEI	HRLEM	HRLES
; 1545	;540	HRR	HRRI	HRRM	HRRS	HLR	HLRI	HLRM	HLRS
; 1546	;550	HRRZ	HRRZI	HRRZM	HRRZS	HLRZ	HLRZI	HLRZM	HLRZS
; 1547	;560	HRRO	HRROI	HRROM	HRROS	HLRO	HLROI	HLROM	HLROS
; 1548	;570	HRRE	HRREI	HRREM	HRRES	HLRE	HLREI	HLREM	HLRES
; 1549	;	0	1	2	3	4	5	6	7
; 1550	;600	TRN	TLN	TRNE	TLNE	TRNA	TLNA	TRNN	TLNN
; 1551	;610	TDN	TSN	TDNE	TSNE	TDNA	TSNA	TDNN	TSNN
; 1552	;620	TRZ	TLZ	TRZE	TLZE	TRZA	TLZA	TRZN	TLZN
; 1553	;630	TDZ	TSZ	TDZE	TSZE	TDZA	TSZA	TDZN	TSZN
; 1554	;640	TRC	TLC	TRCE	TLCE	TRCA	TLCA	TRCN	TLCN
; 1555	;650	TDC	TSC	TDCE	TSCE	TDCA	TSCA	TDCN	TSCN
; 1556	;660	TRO	TLO	TROE	TLOE	TROA	TLOA	TRON	TLON
; 1557	;670	TDO	TSO	TDOE	TSOE	TDOA	TSOA	TDON	TSON
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 5
; DEFINE.MIC[10,5351]	19:52 24-Jul-85			CONTROL RAM DEFINITIONS -- J, AD			

; 1558	.TOC	"CONTROL RAM DEFINITIONS -- J, AD"
; 1559	;FIELDS ARRANGED FOR READABILITY, NOT COMPACTNESS
; 1560	; IN THE PROCESSOR, BITS ARE SCATTERED IN ANOTHER ORDER
; 1561	
; 1562	U0/=<0:0>D,0	;BIT 0 UNUSED
; 1563	J/=<1:11>+	;SYMBOLS WILL BE DEFINED BY TAGS (CRA1&CRA2)
; 1564	
; 1565	;MAIN ADDER CONTROLS.  Bit 0 = carry in, bit 1 = boolean operation
; 1566	; Bits 2-5 are S8-S1 of the 10181 ALU chip.  For normal arithmetic,
; 1567	; the AD and ADX are separated unless SPEC/AD LONG or equivalent is given.
; 1568	
; 1569	
; 1570	AD/=<12:17>	; (EDP3, EXCEPT CARRY IN, ON CTL1)
; 1571		A+1=40,1
; 1572		A+XCRY=00,1
; 1573	;	A+ANDCB=01,1
; 1574	;	A+AND=02,1
; 1575		A*2=03,1
; 1576		A*2+1=43,1
; 1577	;	OR+1=44,1
; 1578	;	OR+ANDCB=05,1
; 1579		A+B=06,1
; 1580		A+B+1=46,1
; 1581	;	A+OR=07,1
; 1582		ORCB+1=50,1
; 1583		A-B-1=11,1
; 1584		A-B=51,1
; 1585	;	AND+ORCB=52,1
; 1586	;	A+ORCB=53,1
; 1587		XCRY-1=54,1
; 1588	;	ANDCB-1=15,1
; 1589	;	AND-1=16,1
; 1590		A-1=17,1
; 1591			;ADDER LOGICAL FUNCTIONS
; 1592		SETCA=20
; 1593		ORC=21		;NAND
; 1594		ORCA=22
; 1595		1S=23
; 1596		ANDC=24		;NOR
; 1597		NOR=24
; 1598		SETCB=25
; 1599		EQV=26
; 1600		ORCB=27
; 1601		ANDCA=30
; 1602		XOR=31
; 1603		B=32
; 1604		OR=33
; 1605		0S=34
; 1606		ANDCB=35
; 1607		AND=36
; 1608		A=37
; 1609			;BOOLEAN FUNCTIONS FOR WHICH CRY0 IS INTERESTING
; 1610		CRY A EQ -1=60,1	;GENERATE CRY0 IF A=1S, AD=SETCA
; 1611		CRY A.B#0=36,1		;CRY 0 IF A&B NON-ZERO, AD=AND
; 1612		CRY A#0=37,1		;GENERATE CRY0 IF A .NE. 0, AD=A
; 1613		CRY A GE B=71,1		;CRY0 IF A .GE. B, UNSIGNED; AD=XOR
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 6
; DEFINE.MIC[10,5351]	19:52 24-Jul-85			CONTROL RAM DEFINITIONS -- DATA PATH MIXERS		

; 1614	.TOC	"CONTROL RAM DEFINITIONS -- DATA PATH MIXERS"
; 1615	
; 1616	ADA/=<18:20>		; (EDP3)
; 1617		AR=0
; 1618		ARX=1
; 1619		MQ=2
; 1620		PC=3
; 1621	ADA EN/=<18:18>		;ADA ENABLE ALSO ENABLES ADXA (EDP3)
; 1622		EN=0
; 1623		0S=1
; 1624	U21/=<21:21>D,0		;BIT 21 UNUSED
; 1625	ADB/=<22:23>		;CONTROLS ADB AND ADXB (EDP3)
; 1626		FM=0,,1		;MUST HAVE TIME FOR PARITY CHECK
; 1627		BR*2=1
; 1628		BR=2
; 1629		AR*4=3
; 1630	U23/=<23:23>D,1		;PREVENT DEFAULT SELECTION OF FM
; 1631				;FORCE IT TO TAKE ONE OF THE SHORTER
; 1632				;PATHS IF FM NOT NEEDED ALSO DISABLES
; 1633				;PARITY CHECKING LOGIC
; 1634	
; 1635	;REGISTER INPUTS
; 1636	
; 1637	AR/=<24:26>D,0		; (EDP1)
; 1638		AR=0
; 1639		ARMM=0		;REQUIRES SPECIAL FUNCTION
; 1640		MEM=0		;[346] MB WAIT will poke to 1 (CACHE) or 2 (AD)
; 1641		CACHE=1		;ORDINARILY SELECTED BY HWARE
; 1642		AD=2
; 1643		EBUS=3
; 1644		SH=4
; 1645		AD*2=5		;Low bit from ADX0
; 1646		ADX=6
; 1647		AD*.25=7
; 1648	ARX/=<27:29>D,0		; (EDP2)
; 1649		ARX=0		;[345] BY DEFAULT
; 1650		MEM=0		;[346] Gets poked by MB WAIT to 1 or 2
; 1651		CACHE=1		;ORDINARILY BY MBOX RESP
; 1652		AD=2
; 1653		MQ=3
; 1654		SH=4
; 1655		ADX*2=5		;Low bit from MQ0
; 1656		ADX=6
; 1657		ADX*.25=7
; 1658	BR/=<30:30>D,0		;DEFAULT TO RECIRCULATE (EDP4)
; 1659		AR=1
; 1660	BRX/=<31:31>D,0		;DEFAULT TO RECIRCULATE (EDP4)
; 1661		ARX=1
; 1662	MQ/=<32:32>D,0		;DEFAULT TO RECIRCULATE (EDP2)
; 1663		SH=1		;LOAD FROM SHIFT MATRIX
; 1664		MQ*2=0		;With SPEC/MQ SHIFT--Low bit from AD CRY -2
; 1665		MQ*.25=1	;With SPEC/MQ SHIFT--High bits from ADX34, ADX35
; 1666		MQ SEL=0	;WITH COND/REG CTL
; 1667		MQM SEL=1	;WITH COND/REG CTL
; 1668	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 7
; DEFINE.MIC[10,5351]	19:52 24-Jul-85			CONTROL RAM DEFINITIONS -- DATA PATH MIXERS		

; 1669	;FMADR SELECTS THE SOURCE OF THE FAST MEMORY ADDRESS,
; 1670	; RATHER THAN PROVIDING THE ADDRESS ITSELF
; 1671	
; 1672	FMADR/=<33:35>		; (APR4&APR5)
; 1673		AC0=0		;IR 9-12
; 1674		AC1=1		;<IR 9-12>+1 MOD 16
; 1675		XR=2		;ARX 14-17
; 1676		VMA=3		;VMA 32-35
; 1677		AC2=4		;<IR 9-12>+2 MOD 16
; 1678		AC3=5		;<IR 9-12>+3 MOD 16
;;1679	.IFNOT/MODEL.B
;;1680		AC4=6		;CURRENT BLOCK, AC+4
;;1681		ac5=7		;current block, ac+5
; 1682	.IF/MODEL.B
; 1683		AC+#=6		;CURRENT BLOCK, AC+ MAGIC #
; 1684	.ENDIF/MODEL.B
; 1685		#B#=7		;BLOCK AND AC SELECTED BY # FIELD
; 1686	
; 1687	.TOC	"CONTROL RAM DEFINITIONS -- 10-BIT LOGIC"
; 1688	
; 1689	SCAD/=<36:38>		; (SCD1)
; 1690		A=0
; 1691		A-B-1=1
; 1692		A+B=2
; 1693		A-1=3
; 1694		A+1=4
; 1695		A-B=5
; 1696		OR=6
; 1697		AND=7
; 1698	SCADA/=<39:41>		; (SCD1)
; 1699		FE=0
; 1700		AR0-5=1		;BYTE POINTER P FIELD
; 1701		AR EXP=2	;<AR 01-08> XOR <AR 00>
; 1702		#=3		;SIGN EXTENDED WITH #00
; 1703	SCADA EN/=<39:39>	; (SCD1)
; 1704		0S=1
; 1705	U42/=<42:42>D,0	;BIT 42 UNUSED
; 1706	SCADB/=<43:44>		; (SCD1)
; 1707		SC=0
; 1708		AR6-11=1	;BYTE POINTER S FIELD
; 1709		AR0-8=2
; 1710		#=3		;NO SIGN EXTENSION
; 1711	U45/=<45:45>D,0		;BIT 45 UNUSED
; 1712	SC/=<46:46>D,0		;RECIRCULATE BY DEFAULT (SCD2)
; 1713		FE=0		;WITH SCM ALT
; 1714		SCAD=1
; 1715		AR SHIFT=1	;WITH SCM ALT ;AR 18, 28-35
; 1716	FE/=<47:47>D,0		;RECIRCULATE BY DEFAULT (SCD2)
; 1717		SCAD=1
; 1718	U48/=<48:48>D,0		;BIT 48 UNUSED
; 1719	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 8
; DEFINE.MIC[10,5351]	19:52 24-Jul-85			CONTROL RAM DEFINITIONS -- SHIFT, ARMM, VMA, TIME	

; 1720	.TOC	"CONTROL RAM DEFINITIONS -- SHIFT, ARMM, VMA, TIME"
; 1721	
; 1722	SH/=<49:50>		; (SH1)
; 1723		SHIFT AR!ARX=0	;LEFT BY (SC)
; 1724		AR=1
; 1725		ARX=2
; 1726		AR SWAP=3	;HALVES SWAPPED
; 1727	ARMM/=<49:50>		;SAME BITS AS SH CONTROL (SCD3)
; 1728		#=0		;MAGIC # 0-8 TO AR 0-8
; 1729		EXP_SIGN=1	;AR1-8 _ AR0
; 1730		SCAD EXP=2	;AR0-8_SCAD
; 1731		SCAD POS=3	;AR0-5_SCAD
; 1732	.IF/MODEL.B
; 1733	VMAX/=<49:50>		;SAME BITS AS SH CONTROL (VMA4)
; 1734		VMAX=0		;VMA SECTION #
; 1735		PC SEC=1	;PC SECTION #
; 1736		PREV SEC=2	;PREVIOUS CONTEXT SECT
; 1737		AD12-17=3
; 1738	.ENDIF/MODEL.B
; 1739	U51/=<51:51>D,0		;BIT 51 UNUSED
; 1740	VMA/=<52:53>D,0		;ALSO CONTROLLED BY SPECIAL FUNCTIONS
; 1741		VMA=0		;BY DEFAULT
; 1742		PC=1		;MAY BE OVERRIDDEN BY MCL LOGIC	TO LOAD FROM AD
; 1743		LOAD=1		; IF WE KNOW IT WILL BE OVERRIDDEN, USE THIS
; 1744		PC+1=2
; 1745		AD=3		;ENTIRE VMA, INCLUDING SECTION
; 1746	TIME/=<54:55>T		;CONTROLS MINIMUM MICROINSTRUCTION EXECUTION
; 1747				; TIME, COUNTING MBOX CLOCK TICKS (CLK)
; 1748				;ASSEMBLER GENERALLY TAKES CARE OF THIS
; 1749		2T=0		;2 TICKS
; 1750		3T=1		;3 TICKS
; 1751		4T=2		;4 TICKS
; 1752		5T=3		;5 TICKS (COND/DIAG FUNC & #00, --> .5 USEC)
; 1753	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 9
; DEFINE.MIC[10,5351]	19:52 24-Jul-85			CONTROL RAM DEFINITIONS -- MEM SPECIAL FUNCTIONS	

; 1754	.TOC	"CONTROL RAM DEFINITIONS -- MEM SPECIAL FUNCTIONS"
; 1755	
; 1756	MEM/=<56:59>D,0		; (MCL1)
; 1757	;	NOP=0		;DEFAULT
; 1758		ARL IND=1	;CONTROL AR LEFT MUX FROM # FIELD
; 1759		MB WAIT=2	;WAIT FOR MBOX RESP IF PENDING
; 1760		A RD=4		;OPERAND READ and load PXCT bits (model B)
; 1761		B WRITE=5	;CONDITIONAL WRITE ON DRAM B 01
; 1762		FETCH=6		;LOAD NEXT INSTR TO ARX (CONTROL BY #)
; 1763		REG FUNC=7	;MBOX REGISTER FUNCTIONS
; 1764		LOAD AR=12
; 1765		LOAD ARX=13
; 1766		WRITE=16	;FROM AR TO MEMORY
; 1767	.IF/MODEL.B
; 1768		RESTORE VMA=3	;AD FUNC WITHOUT GENERATING A REQUEST
; 1769		AD FUNC=10	;FUNCTION LOADED FROM AD LEFT
; 1770		EA CALC=11	;FUNCTION DECODED FROM # FIELD
; 1771		RW=14		;READ, TEST WRITABILITY
; 1772		RPW=15		;READ-PAUSE-WRITE
; 1773		IFET=17		;UNCONDITIONAL FETCH
;;1774	.IFNOT/MODEL.B		;OLD-STYLE MCL BOARD
;;1775		SEC 0=3		;CLEAR VMAX
;;1776		A IND=10	;A-TYPE INDIRECT
;;1777		BYTE IND=11	;BYTE-TYPE INDIRECT
;;1778		AD FUNC=14	;FUNCTION FROM AD LEFT
;;1779		BYTE RD=15	;BYTE READ TO BOTH AR AND ARX
;;1780		RPW=17		;LOAD AR WITH RPW CYCLE
; 1781	.ENDIF/MODEL.B
; 1782	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 10
; DEFINE.MIC[10,5351]	19:52 24-Jul-85			CONTROL RAM DEFINITIONS -- SKIP/COND SPECIAL FUNCTIONS

; 1783	.TOC	"CONTROL RAM DEFINITIONS -- SKIP/COND SPECIAL FUNCTIONS"
; 1784	
; 1785	SKIP/=<60:65>D,0	;MICRO-PROGRAM SKIPS
; 1786				; 40-57 DECODED ON (CRA2)
; 1787	;	SPARE=40
; 1788		EVEN PAR=41,,1	;AR PARITY IS EVEN
; 1789		BR0=42		;BR BIT 00
; 1790		ARX0=43		;ARX BIT 00
; 1791		AR18=44		;AR BIT 18
; 1792		AR0=45		;AR BIT 00
; 1793		AC#0=46		;IR9-12 .EQ. 0
; 1794		SC0=47		;SC BIT 00
;;1795	.IFNOT/MODEL.B
;;1796		SC .LT. 36=50
; 1797	.IF/MODEL.B
; 1798		PC SEC0=50
; 1799	.ENDIF/MODEL.B
; 1800		SCAD0=51,,1	;SIGN OF SCAD OUTPUT
; 1801		SCAD#0=52,,1	;SCAD OUTPUT IS NON-ZERO
; 1802		ADX0=53,1	;ADDER EXTENSION BIT 00
; 1803		AD CRY0=54,1	;CARRY OUT OF AD BIT -2 (BOOLE IGNORED)
; 1804		AD0=55,1	;ADDER BIT 00
; 1805		AD#0=56,1	;AD BITS 00-35 CONTAIN SOME ONES
; 1806	.IF/MODEL.B
; 1807		-LOCAL AC ADDR=57	;VMA18-31 =0 ON LOCAL REF IN SEC >1
; 1808	.ENDIF/MODEL.B
; 1809				; 60-77 DECODED ON (CON2)
; 1810		FETCH=60	;VMA FETCH (LAST CYCLE WAS A FETCH)
; 1811		KERNEL=61	;PC IS IN KERNEL MODE
; 1812		USER=62		;PC IS IN USER MODE
; 1813		PUBLIC=63	;PC IS PUBLIC (INCLUDING SUPER)
; 1814		RPW REF=64	;MIDDLE OF READ-PAUSE-WRITE CYCLE
; 1815		PI CYCLE=65	;PI CYCLE IN PROGRESS
; 1816		-EBUS GRANT=66	;PI HASN'T RELEASED BUS FOR CPU USE
; 1817		-EBUS XFER=67	;NO TRANSFER RECIEVED FROM DEVICE
; 1818		INTRPT=70	;AN INTERRUPT REQUEST WAITING FOR SERVICE
; 1819		-START=71	;NO CONTINUE BUTTON
; 1820		RUN=72		;PROCESSOR NOT HALTED
; 1821		IO LEGAL=73	;KERNEL, PI CYCLE, USER IOT, OR DEVICE .GE. 740
; 1822		P!S XCT=74	;PXCT OR SXCT
; 1823	.IF/MODEL.B
; 1824		-VMA SEC0=75	;VMA SECTION NUMBER (13-17) IS NOT ZERO
; 1825	.ENDIF/MODEL.B
; 1826		AC REF=76,,1	;VMA .LT.20 ON READ OR WRITE
; 1827		-MTR REQ=77	;INTERRUPT REQUEST NOT DUE TO METER
; 1828	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 11
; DEFINE.MIC[10,5351]	19:52 24-Jul-85			CONTROL RAM DEFINITIONS -- SKIP/COND SPECIAL FUNCTIONS

; 1829	;SKIP/COND FIELD CONTINUED
; 1830	
; 1831	COND/=<60:65>D,0	;NON-SKIP SPECIAL FUNCTIONS
; 1832				;0-7 DECODED ON (CTL2)
; 1833	;	NOP=0		;BY DEFAULT
; 1834		LD AR0-8=1
; 1835		LD AR9-17=2	;Gates VMAX into ARMM (see VMA4)
; 1836		LD AR18-35=3
; 1837		AR CLR=4
; 1838		ARX CLR=5
; 1839		ARL IND=6	;CONTROL AR LEFT, CALL, AND CLEAR BITS FROM #
; 1840		REG CTL=7	;CONTROL AR LOAD, EXP TST, AND MQ FROM #
; 1841				; 10-37 DECODED ON (CON1)
; 1842		FM WRITE=10	;WRITE AR INTO CURRENTLY ADDRESSED FM LOC
; 1843		PCF_#=11	;SET PC FLAGS FROM # FIELD
; 1844		FE SHRT=12	;SHIFT FE RIGHT 1
; 1845		AD FLAGS=13	;SET PC CRY0, CRY1, OVRFLO, TRAP1 AS APPROPRIATE
; 1846		LOAD IR=14	;LATCH AD OR CACHE DATA INTO IR, load PXCT bits
; 1847		SPEC INSTR=15	;SET/CLR SXCT, PXCT, PICYC, TRAP INSTR FLAGS
; 1848		SR_#=16		;CONTROL FOR STATE REGISTER and PXCT bits (CON3, MCL4)
; 1849		SEL VMA=17	;READ VMA THROUGH ADA/PC
; 1850		DIAG FUNC=20	;SELECT DIAGNOSTIC INFO ONTO EBUS
; 1851		EBOX STATE=21	;SET STATE FLOPS
; 1852		EBUS CTL=22	;I/O FUNCTIONS
; 1853		MBOX CTL=23
; 1854	;	SPARE=24
; 1855	.IF/MODEL.B
; 1856		LONG EN=25	;THIS WORD CAN BE INTERPRETED AS LONG INDIRECT
; 1857	.ENDIF/MODEL.B
; 1858	;	SPARE=26
; 1859	;	SPARE=27
; 1860		VMA_#=30
; 1861		VMA_#+TRAP=31
; 1862		VMA_#+MODE=32
; 1863		VMA_#+AR32-35=33
; 1864		VMA_#+PI*2=34
; 1865		VMA DEC=35	;VMA_VMA-1
; 1866		VMA INC=36	;VMA_VMA+1
; 1867		LD VMA HELD=37	;HOLD VMA ON SIDE
;;1868	.IFNOT/MODEL.B
;;1869	U66/=<66:66>D,0		;BIT 66 UNUSED
; 1870	.IF/MODEL.B
; 1871	CALL/=<66:66>D,0	;CALL FUNCTION
; 1872		CALL=1		;GOOD TO 15 LEVELS IN MODEL B
; 1873	.ENDIF/MODEL.B
; 1874	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 12
; DEFINE.MIC[10,5351]	19:52 24-Jul-85			CONTROL RAM DEFINITIONS -- DISP/SPEC SPECIAL FUNCTIONS

; 1875	.TOC	"CONTROL RAM DEFINITIONS -- DISP/SPEC SPECIAL FUNCTIONS"
; 1876	
; 1877	DISP/=<67:71>D,10	;0-7 AND 30-37 ARE DISPATCHES (CRA1&CRA2)
; 1878		DIAG=0
; 1879		DRAM J=1
; 1880		DRAM A RD=2	;IMPLIES INH CRY18
; 1881		RETURN=3	;POPJ RETURN
; 1882		PG FAIL=4	;PAGE FAIL TYPE DISP
; 1883		SR=5		;16 WAYS ON STATE REGISTER
; 1884		NICOND=6	;NEXT INSTRUCTION CONDITION (see NEXT for detail)
; 1885		SH0-3=7,,1	;[337] 16 WAYS ON HIGH-ORDER BITS OF SHIFTER
; 1886		MUL=30		;FE0*4 + MQ34*2 + MQ35; implies MQ SHIFT, AD LONG
; 1887		DIV=31,,1	;FE0*4 + BR0*2 + AD CRY0; implies MQ SHIFT, AD LONG
; 1888		SIGNS=32,1	;ARX0*8 + AR0*4 + BR0*2 + AD0
; 1889		DRAM B=33	;8 WAYS ON DRAM B FIELD
; 1890		BYTE=34,,1	;FPD*4 + AR12*2 + SCAD0
; 1891		NORM=35,2	;See normalization for details. Implies AD LONG
; 1892		EA MOD=36	;(ARX0 or -LONG EN)*8 + -(LONG EN and ARX1)*4 +
; 1893				;ARX13*2 + (ARX2-5) or (ARX14-17) non zero; enable
; 1894				;is (ARX0 or -LONG EN) for second case.  If ARX18
; 1895				;is 0, clear AR left; otherwise, poke ARL select
; 1896				;to set bit 2 (usually gates AD left into ARL)
;;1897	.IFNOT/MODEL.B
;;1898		EA TYPE=37
; 1899	.ENDIF/MODEL.B
; 1900	
; 1901	SPEC/=<67:71>D,10	;NON-DISPATCH SPECIAL FUNCTIONS (CTL1)
; 1902	;	NOP=10		;DEFAULT
; 1903		INH CRY18=11
; 1904		MQ SHIFT=12	;ENABLE MQ*2, MQ SHRT2
; 1905		SCM ALT=13	;ENABLE FE, ARSHIFT
; 1906		CLR FPD=14
; 1907		LOAD PC=15
; 1908		XCRY AR0=16	;CARRY INTO AD IS XOR'D WITH AR00
; 1909		GEN CRY18=17
;;1910	.IFNOT/MODEL.B
;;1911		SEC HOLD=20	;INHIBIT LOADING VMAX
;;1912		CALL=21		;MAX DEPTH 4, INCLUDING PAGE REFILL
; 1913	.IF/MODEL.B
; 1914		STACK UPDATE=20	;CONTROL CRY18 IF LOCAL STACK
; 1915	.ENDIF/MODEL.B
; 1916		ARL IND=22	;# SPECIFIES ARL MIX, ENABLES, & CALL
; 1917		MTR CTL=23	;# CONTROLS METERS
; 1918		FLAG CTL=24	;FUNCTION ENCODED IN # FIELD
; 1919		SAVE FLAGS=25	;TELLS PI CYCLE TO HOLD INTRPT
; 1920		SP MEM CYCLE=26	;MEM REQUEST IS MODIFIED BY #
; 1921		AD LONG=27	;AD BECOMES 72 BIT ALU
; 1922	
; 1923	U73/=<72:73>D,0		;BITS 72-73 UNUSED
; 1924	
; 1925	MARK/=<74:74>D,0	;FIELD SERVICE "MARK" BIT
; 1926	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 13
; DEFINE.MIC[10,5351]	19:52 24-Jul-85			CONTROL RAM DEFINITIONS -- MAGIC NUMBER FIELD		

; 1927	.TOC	"CONTROL RAM DEFINITIONS -- MAGIC NUMBER FIELD"
; 1928	
; 1929	#/=<75:83>D,0		;THE INFAMOUS "MAGIC NUMBERS"
; 1930	
; 1931	MAJVER/=<75:80>		;[356] Major version number
; 1932	MINVER/=<81:83>		;[356] Minor version number
; 1933	
; 1934		;THE OPTIONS DESIGNATE CERTAIN ASSEMBLIES FROM THE SAME
; 1935			;MICROCODE SOURCES
; 1936			;# BIT 0 INDICATES KLPAGING
; 1937			;# BIT 1 INDICATES EXTENDED ADDRESSING
; 1938			;# BIT 2 INDICATES NONSTANDARD MICROCODE
; 1939			;# BIT 3 INDICATES A CPU WITH THE PV KIT. (MODEL B)
; 1940			;# BIT 8 INDICATES INSTRUCTION STATISTICS GATHERING
; 1941			;	(I.E. TRACKS)
; 1942		;EACH OPTION BIT IS GIVEN A SEPARATE FIELD DEFINITION
; 1943	
; 1944	KLPAGE/=<75:75>			;KLPAGING
; 1945	.IF/KLPAGE
; 1946		OPTIONS=1
;;1947	.IFNOT/KLPAGE
;;1948		OPTIONS=0
; 1949	.ENDIF/KLPAGE
; 1950	
; 1951	LONGPC/=<76:76>			;LONG PC FORMAT AS IN EXTENDED ADDRESSING
; 1952	.IF/LONG.PC			; THIS IS A SLIGHTLY BASTARDIZED FORMAT IN
; 1953		OPTIONS=1		; MODEL A MACHINES DUE TO SPACE LIMITATIONS
;;1954	.IFNOT/LONG.PC
;;1955		OPTIONS=0
; 1956	.ENDIF/LONG.PC
; 1957	
; 1958	NONSTD/=<77:77>			;NONSTANDARD MICROCODE (EG DIAGNOSTIC MICROCODE)
;;1959	.IF/NONSTD
;;1960		OPTIONS=1
; 1961	.IFNOT/NONSTD
; 1962		OPTIONS=0
; 1963	.ENDIF/NONSTD
; 1964	
; 1965	PV/=<78:78>			;MODEL B - PV CPU
; 1966	.IF/MODEL.B
; 1967		OPTIONS=1
;;1968	.IFNOT/MODEL.B
;;1969		OPTIONS=0
; 1970	.ENDIF/MODEL.B
; 1971	
; 1972	ISTAT/=<83:83>			;STATISTICS GATHERING CODE (IE TRACKS)
;;1973	.IF/INSTR.STAT
;;1974		OPTIONS=1
; 1975	.IFNOT/INSTR.STAT
; 1976		OPTIONS=0
; 1977	.ENDIF/INSTR.STAT
; 1978	
; 1979	ACB/=<77:79>		;AC block number. Used with FMADR/#B#
; 1980		PAGB=6		;AC block used for KL paging registers
; 1981		MICROB=7	;AC block for general microcode scratch
; 1982	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 13-1
; DEFINE.MIC[10,5351]	19:52 24-Jul-85			CONTROL RAM DEFINITIONS -- MAGIC NUMBER FIELD		

; 1983	AC#/=<80:83>		;AC number used with ACB or AC-OP (below)
; 1984	
; 1985	.IF/MODEL.B
; 1986	PXCT/=<75:77>		;(MCL4) Loaded by CON/SR_#, CON/LOAD IR, and MEM/A RD
; 1987				;Bit 0 enables the VMAX to not come from the AD when
; 1988				; VMA/AD (allowing local AC refs, for example).  Bits
; 1989				; 1 and 2 select which PXCT bits a memory reference
; 1990				; will select for possible previous context.
; 1991	;
; 1992	; WARNING !!! BECAUSE OF A TIMING PROBLEM IN THE HARDWARE ALL AC-OPS
; 1993	;		MUST HAVE THE NUMBER FIELD THE SAME IN THE PREVIOUS
; 1994	;		MICROINSTRUCTION. THE SYMPTOM WILL BE GARBAGE WRITTEN IN A
; 1995	;		DIFFERENT AC AS THE ADDRESS LINES DON'T MAKE IT IN TIME
; 1996	;		FOR THE WRITE PULSE.
; 1997	;
; 1998	AC-OP/=<75:79>		;CONTROLS OPERATION ON AC AND AC#
; 1999		AC+#=6
; 2000		#=32		;JUST AC#
; 2001		OR=33		;AC <OR> AC#
; 2002				;ALL AD/ FUNCTIONS <40 WORK
; 2003	.ENDIF/MODEL.B
; 2004	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 14
; DEFINE.MIC[10,5351]	19:52 24-Jul-85			CONTROL RAM DEFINITIONS -- MAGIC NUMBER FIELD		

; 2005	;VARIOUS SPECIAL FUNCTIONS ENABLE SPECIAL DECODING OF THE
; 2006	; "MAGIC #" FIELD, AS FOLLOWS:
; 2007	
; 2008	;SPECIAL DATA PATH CONTROLS
; 2009	
;;2010	.IFNOT/MODEL.B
;;2011	CALL/=<75:75>		;ENABLED BY ARL IND (CTL2)
;;2012		CALL=1
; 2013	.ENDIF/MODEL.B
; 2014	AR0-8/=<76:76>		;ENABLED BY ARL IND (CTL2)
; 2015		LOAD=1
; 2016	CLR/=<77:80>		;ENABLED BY ARL IND (CTL2)
; 2017		MQ=10
; 2018		ARX=4
; 2019		ARL=2
; 2020		ARR=1
; 2021		AR=3
; 2022		AR+ARX=7
; 2023		AR+MQ=13
; 2024		ARX+MQ=14
; 2025		AR+ARX+MQ=17
; 2026		ARL+ARX=6
; 2027		ARL+ARX+MQ=16
; 2028		ARR+MQ=11
; 2029	ARL/=<81:83>		;ENABLED BY ARL IND (CTL2)
; 2030		ARL=0
; 2031		ARMM=0		;REQUIRES SPECIAL FUNCTION
; 2032		CACHE=1		;ORDINARILY SELECTED BY HWARE
; 2033		AD=2
; 2034		EBUS=3
; 2035		SH=4
; 2036		AD*2=5
; 2037		ADX=6
; 2038		AD*.25=7
; 2039	AR CTL/=<75:77>		;ENABLED BY COND/REG CTL (CTL2)
; 2040		AR0-8 LOAD=4
; 2041		AR9-17 LOAD=2	;Gates VMAX into ARMM (see VMA4)
; 2042		ARR LOAD=1
; 2043		ARL LOAD=6
; 2044	EXP TST/=<80:80>	;ENABLED BY COND/REG CTL (CTL1)
; 2045		AR_EXP=1
; 2046	MQ CTL/=<82:83>		;ENABLED BY COND/REG CTL (CTL2)
; 2047	;	MQ=0		;WITH MQ/MQ SEL
; 2048		MQ*2=1		;WITH MQ/MQ SEL--Low bit is ADX0
; 2049	;	MQ*.5=2		; " (DROPS BITS 0,6,12,18,24,30)
; 2050		0S=3		; "
; 2051		SH=0		;WITH MQ/MQM SEL
; 2052		MQ*.25=1	;WITH MQ/MQM SEL--High bits are ADX34, ADX35
; 2053		1S=2		; "
; 2054		AD=3		; "
; 2055	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 15
; DEFINE.MIC[10,5351]	19:52 24-Jul-85			CONTROL RAM DEFINITIONS -- MAGIC NUMBER FIELD		

; 2056	;SPECIAL CONTROL OF EBOX FLAGS & FUNCTIONS
; 2057	
; 2058	PC FLAGS/=<75:83>	;ENABLED BY COND/PCF_# (SCD4)
; 2059		AROV=420	;SET ARITH OVFLO & TRAP1
; 2060		FLOV=620	;SAME, PLUS FLOATING OVFLO
; 2061		FPD=100		;SET FIRST PART DONE
; 2062		TRAP2=40	;SET TRAP2 (PDL OVFLO)
; 2063		TRAP1=20	;SET TRAP1 (ARITH OVFLO)
; 2064		FXU=630		;FLOV + EXP UNDERFLOW
; 2065		DIV CHK=424	;NO DIVIDE + AROV
; 2066		FDV CHK=624	;FLOATING NO DIVIDE
; 2067	FLAG CTL/=<75:83>	;ENABLED BY SPEC/FLAG CTL (SCD5)
; 2068		RSTR FLAGS=420	;AS IN JRSTF
; 2069		JFCL=602	;FORCE PC 00 = AROV
; 2070		JFCL+LD=622	;SECOND PART OF JFCL -- CLEAR TESTED FLAGS
; 2071		DISMISS=502	;CLEAR PI CYCLE IF SET (CON5)
; 2072				; ELSE DISMISS HIGHEST PI HOLD
; 2073		DISMISS+LD=522	;LOAD FLAGS AND DISMISS
; 2074		HALT=442	;STOP PROCESSOR IF LEGAL (CON2)
; 2075		SET FLAGS=20	;AS IN MUUO
; 2076		PORTAL=412	;CLEAR PUBLIC IF PRIVATE INSTR
; 2077	SPEC INSTR/=<75:83>	;ENABLED BY COND/SPEC INSTR
; 2078		SET PI CYCLE=714; (CON5)
; 2079		KERNEL CYCLE=200;MAKE IO LEGAL, EXEC ADDR SPACE (CON4)
; 2080		INH PC+1=100	;TO MAKE JSR WORK IN TRAP, INTRPT (CON4)
; 2081		SXCT=40		;START SECTION XCT (MCL4)
; 2082		PXCT=20		;START PREV CONTXT XCT (MCL4)
; 2083		INTRPT INH=10	;INHIBIT INTERRUPTS (CON4)
; 2084		INSTR ABORT=4	; (CON2)
; 2085		HALTED=302	;TELL CONSOLE WE'RE HALTED (CON4)
; 2086		CONS XCT=310	;FLAGS FOR INSTR XCT'D FROM CONSOLE
; 2087		CONT=0		;RESTORE NORMAL STATE FOR CONTINUE
; 2088	FETCH/=<75:83>		;ENABLED BY MEM/FETCH
; 2089		UNCOND=400
; 2090				;LOW 2 BITS DECODED ON (IR3)
; 2091		COMP=201,2	;DEPENDING ON AD AND DRAM B
; 2092		SKIP=202,2
; 2093		TEST=203,1
; 2094		JUMP=502,2	;AS IN JUMPX, ON AD AND DRAM B
; 2095		JFCL=503,1	;JUMP ON TEST CONDITION
; 2096	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 16
; DEFINE.MIC[10,5351]	19:52 24-Jul-85			CONTROL RAM DEFINITIONS -- MAGIC NUMBER FIELD		

; 2097	;SPECIAL MEMORY REQUEST FUNCTIONS
; 2098	
; 2099	.IF/MODEL.B
; 2100	EA CALC/=<75:83>	;SPECIFIC CONTROLS FOR MEM/EA CALC
; 2101	;	LOAD AR=400
; 2102	;	LOAD ARX=200
; 2103	;	PAUSE=100	;Freeze memory--always use with 040
; 2104	;	WRITE=040	;SET VMA WRITE
; 2105	;	PREV EN=20	;PREV CONTXT SELECTED BY SR AND PXCT
; 2106	;	INDIRECT=10	;PREV CONTXT FOR EA CALC
; 2107	;	EA=2		;RESTORATION OF ORIGINAL EA CONDITIONS
; 2108	;	STACK=1		;PREV CONTXT SELECTED BY PXCT B12
; 2109	.IF/XADDR		;JUST TO ARX FOR EXTENDED ADDRESSING
; 2110		A IND=230	;INDIRECT AT FIRST EA CALC TIME
;;2111	.IFNOT/XADDR		;TO BOTH AR AND ARX AS IN MODEL A
;;2112		A IND=630	;INDIRECT AT FIRST EA CALC TIME
; 2113	.ENDIF/XADDR
; 2114		BYTE LD=420	;Read byte data to AR only [337]
; 2115		BYTE RD=620	;READ BYTE DATA TO AR & ARX
; 2116		BYTE RD PC=621	;READ BYTE DATA TO AR & ARX WITH PC SECTION
; 2117		BYTE RPW=760	;Read byte data to AR, ARX, write test, pause [312]
; 2118		BYTE IND=610	;INDIRECT AT BYTE EA CALC TIME
; 2119		PUSH=041	;STORE TO STACK
; 2120		POP AR=421	;READ FROM STACK TO AR
; 2121		POP ARX=221	;READ FROM STACK TO ARX
; 2122		POP AR-ARX=621	;POP TO BOTH
; 2123		WRITE(E)=042
; 2124		LD AR(EA)=402	;LOAD AR GLOBAL/LOCAL AS IN EA
; 2125		LD AR+WR=440	;LOAD AR, TEST WRITABILITY
; 2126		LD ARX+WR=240	;LOAD ARX, TEST WRITABILITY
; 2127	.ENDIF/MODEL.B
; 2128	
; 2129	SP MEM/=<75:83>		;ENABLED BY SPEC/SP MEM CYCLE
; 2130		FETCH=400	;LOAD IR WHEN DATA ARRIVES (MCL5)
; 2131		USER=200	;FORCE USER OR UPT (MCL2)
; 2132		EXEC=100	;FORCE EXEC OR EPT (MCL3)
; 2133		SEC 0=40	;CLEAR VMAX (MCL4)
; 2134		UPT EN=20	;UPT IF USER EN (MCL3)
; 2135		EPT EN=10	;EPT IF NOT USER EN (MCL3)
; 2136		CACHE INH=2	; (MCL6)
; 2137		UNCSH+UNPAGE=103;UNCACHED AND UNPAGED
; 2138		UNPAGED+CACHED=101	;physical reference with cache enabled.
;;2139	.IFNOT/MULTI
;;2140		UNPAGED=101	; (MCL6)
;;2141		EPT=111
;;2142		EPT CACHE=111	;[260]
;;2143		EPT FETCH=511
;;2144		UPT=221
;;2145		UPT FETCH=621
;;2146		PT=31
;;2147		PT FETCH=431
; 2148	.IF/MULTI
; 2149		UNPAGED=103	; (MCL6)
; 2150		EPT=113
; 2151		EPT CACHE=111	;[260]
; 2152		EPT FETCH=513
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 16-1
; DEFINE.MIC[10,5351]	19:52 24-Jul-85			CONTROL RAM DEFINITIONS -- MAGIC NUMBER FIELD		

; 2153		UPT=223
; 2154		UPT FETCH=623
; 2155		PT=33
; 2156		PT FETCH=433
; 2157	.ENDIF/MULTI
; 2158	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 17
; DEFINE.MIC[10,5351]	19:52 24-Jul-85			CONTROL RAM DEFINITIONS -- MAGIC NUMBER FIELD		

; 2159	;MBOX CONTROLS
; 2160	
; 2161	MREG FNC/=<75:83>	;ENABLED BY MEM/REG FUNC (APR6)
; 2162		SBUS DIAG=407	;PERFORM SBUS DIAGNOSTIC CYCLE
; 2163		READ UBR=502	;ASK MBOX TO LOAD UBR INTO EBUS REG
; 2164		READ EBR=503	;PUT EBR INTO EBUS REG
; 2165		READ ERA=504
; 2166		WR REFILL RAM=505	;DISGUISED AS A "READ REG" FUNCTION
; 2167	.IF/MODEL.B		;THIS GOT CHANGED IN THE GENERAL SPEEDUP (APR6)
; 2168		LOAD CCA=606	;START A SWEEP
;;2169	.IFNOT/MODEL.B		;HERE IS WHAT IT USED TO BE
;;2170		LOAD CCA=601	;START A SWEEP
; 2171	.ENDIF/MODEL.B
; 2172		LOAD UBR=602	;SETUP UBR FROM VMA
; 2173		LOAD EBR=603	;SETUP EBR FROM VMA
; 2174		MAP=140		;GET PHYS ADDR CORRESPONDING TO VMA (MCL6)
; 2175	MBOX CTL/=<75:83>	;ENABLED BY COND/MBOX CTL (APR5)
; 2176		SET PAGE FAIL=200
; 2177		SET IO PF ERR=100
; 2178		CLR PT LINE(NK)=61,,1;[333] Clear valid if no Keep bit set
; 2179		PT DIR CLR(NK)=41;Enable clear of PT DIR for non keep entries
; 2180		CLR PT LINE=31,,1;CLEAR VALID FOR 4 ENTRIES (new pager board) [342]
; 2181		PT DIR WR=20,1	;WRITE PAGE TABLE DIRECTORY
; 2182		PT WR=10,1	;WRITE PAGE TABLE ENTRY SELECTED BY VMA
; 2183		PT DIR CLR=1	;SELECT FOR CLEARING PT DIR (PAG3)
; 2184		NORMAL=0	;RESET PT WR SELECTION
; 2185	MTR CTL/=<81:83>	;FUNCTION DECODING FOR METERS (MTR3)
; 2186		CLR TIME=0		; USUALLY USED WITH DIAG FUNC
; 2187		CLR PERF=1
; 2188		CLR E CNT=2
; 2189		CLR M CNT=3
; 2190		LD PA LH=4
; 2191		LD PA RH=5
; 2192		CONO MTR=6
; 2193		CONO TIM=7
; 2194	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 18
; DEFINE.MIC[10,5351]	19:52 24-Jul-85			CONTROL RAM DEFINITIONS -- MAGIC NUMBER FIELD		

; 2195	;I/O FUNCTIONS
; 2196	
; 2197	EBUS CTL/=<75:83>	;ENABLED BY COND/EBUS CTL (APR3)
; 2198		GRAB EEBUS=400	;"EBUS RETURN" TAKES ECL EBUS FOR EBOX
; 2199		REQ EBUS=200
; 2200		REL EBUS=100	; (CON3)
; 2201		EBUS DEMAND=60	;ASSERT DEMAND, KEEP CS, FUNC
; 2202		EBUS NODEMAND=20;DROP DEMAND, KEEP CS, FUNC
; 2203	;	CTL_IR=10	;SELECT F01 & F02 FROM IR
; 2204	;	DISABLE CS=4	;TURN OFF CONTROLLER SELECT
; 2205	;	DATAIO=2	;0 FOR CONI/O
; 2206	;	INPUT=1		;0 FOR OUTPUT
; 2207		IO INIT=30	;ENABLE IR3-9 TO EBUS CONTROLLER SELECT,
; 2208				; IR10-12 (DECODED) TO FUNCTION
; 2209				; AND AR ONTO EBUS IF FUNCTION IS OUTPUT
; 2210		DATAO=26	;0'S TO CS, DATAO TO FCN, AND AR TO EBUS
; 2211		DATAI=27	;0'S TO CS, DATAI TO FCN
; 2212		REL EEBUS=0	;LEGGO
; 2213	DIAG FUNC/=<75:83>	;ENABLED BY COND/DIAG FUNC (CTL3)
; 2214		.5 USEC=400,3		;STRETCH CLOCK TO LET EBUS SETTLE (CON?)
; 2215		LD PA LEFT=404,3	;LH PERF ANAL CONTROLS FROM RH (MTR)
; 2216		LD PA RIGHT=405,3	;RH PA CONTROLS FROM RH (MTR)
; 2217		CONO MTR=406,3		;ACCOUNTING CONTROLS (MTR)
; 2218		CONO TIM=407,3		;INTERVAL TIMER CONTROLS (MTR)
; 2219		CONO APR=414,3		; (CON3)
; 2220		CONO PI=415,3		; (CON3)
; 2221		CONO PAG=416,3		;CACHE & PAGING CTL (CON3)
; 2222		DATAO APR=417,3		;ADDRESS BREAK (CON3)
; 2223		DATAO PAG=620,3		;AC BLOCKS & PREV CONTXT (CON3)
; 2224		LD AC BLKS=425,3	;FORCE LOADING AC BLOCKS
; 2225		LD PCS+CWSX=426,3	;FORCE LOADING PREV CONTXT SEC, CWSX
; 2226		CONI PI(R)=500,3	;PI HOLD & ACTIVE TO LH (PI)
; 2227		CONI PI(L)=501,3	;PI GEN TO LH (PI)
; 2228		CONI APR(R)=510,3	;APR INTERRUPT & PIA TO LH (APR6)
; 2229		RD TIME=510,3		;TIME BASE TO RH (MTR5)
; 2230		DATAI PAG(L)=511,3	;AC BLOCKS, PREV CONTXT TO LH (APR6)
; 2231		RD PERF CNT=511,3	;PERFORMANCE COUNT TO RH (MTR5)
; 2232		CONI APR(L)=512,3	;APR INTERRUPT ENABLES TO LH (APR6)
; 2233		RD EBOX CNT=512,3	;EBOX COUNT TO RH (MTR5)
; 2234		DATAI APR=513,3		;ADDR BREAK CONDITIONS TO LH (APR6)
; 2235		RD CACHE CNT=513,3	;CACHE COUNT TO RH (MTR5)
; 2236		RD INTRVL=514,3		;INTERVAL TIMER TO RH (MTR5)
; 2237		RD PERIOD=515,3		;PERIOD REGISTER TO RH (MTR5)
; 2238		CONI MTR=516,3		;CONTROLS & PIA TO RH (MTR5)
; 2239		RD MTR REQ=517,3	;ENCODED UPDATE REQUEST TO 20-22 (MTR5)
; 2240		CONI PI(PAR)=530,3	;WRITE EVEN PARITY ENABLES TO RH (CON1)
; 2241		CONI PAG=531,3		;CACHE & TRAP CTL TO RH (CON1)
; 2242		RD EBUS REG=567,3	;EBUS REGISTER IN MBOX (MBZ1 & MBC1)
; 2243	
; 2244	PARITY/=0,0,0,P		;USE ANY AVAILABLE FIELD FOR PARITY
; 2245	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 19
; DEFINE.MIC[10,5351]	19:52 24-Jul-85			DISPATCH RAM DEFINITIONS				

; 2246	.TOC	"DISPATCH RAM DEFINITIONS"
; 2247	;FIELDS ARE ARRANGED FOR EASY READING, NOT COMPACTNESS
; 2248	
; 2249		.DCODE
; 2250	A/=<0:2>		;OPERAND FETCH MODE
; 2251		IMMED=0		;IMMEDIATE
; 2252		IMMED-PF=1	;IMMEDIATE, START PREFETCH
; 2253	.IF/MODEL.B
; 2254		ADDR=2		;FULL EFFECTIVE ADDRESS
; 2255	.ENDIF/MODEL.B
; 2256		WR-TST=3	;TEST WRITABILITY
; 2257		READ=4		;READ ONLY
; 2258		READ-PF=5	;READ, THEN PREFETCH
; 2259		RD-WR=6		;READ WRITE (SEPARATE CYCLES)
; 2260		RD-P-WR=7	;READ PAUSE WRITE
; 2261	
; 2262	B/=<3:5>		;STORE RESULTS AT--
; 2263		DBL AC=1	;DOUBLE RESULT TO AC & AC+1
; 2264		DBL BOTH=2	;MULB, DIVB, ETC
; 2265		SELF=3		;SELF MODE INSTRUCTIONS
; 2266		AC=5		;SINGLE RESULT TO AC, PREFETCH IN PROG
; 2267		MEM=6		;RESULT TO MEMORY
; 2268		BOTH=7		;SINGLE RESULT TO MEMORY AND AC
; 2269	
; 2270		SJC-=3		;SKIP JUMP COMPARE CONTROLS
; 2271		SJCL=2
; 2272		SJCE=1
; 2273		SJCLE=0
; 2274		SJCA=7
; 2275		SJCGE=6
; 2276		SJCN=5
; 2277		SJCG=4
; 2278	B0/=<3:3>		;INVERTS VARIOUS TEST, SKIP, AND JUMP CONTROLS
; 2279		CRY0(0)=0	;TEST TST CAUSES PC SKIP IF CRY0=0
; 2280		CRY0(1)=1	; SAME IF CRY0=1
; 2281	B1-2/=<4:5>		;FLOATING RESULT STORE MODE
; 2282		AC=1	;RESULT TO AC
; 2283		MEM=2	;RESULT JUST TO MEM
; 2284		BOTH=3	;RESULT TO BOTH
; 2285	
; 2286	PARITY/=<11:11>P
; 2287	
; 2288	J/=<14:23>		;EXECUTOR (40&20-BITS ALWAYS 0)
; 2289		.UCODE
; 2290	
						; 2291	.BIN
						; 2292	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 1
; MACRO.MIC[10,5351]	19:52 24-Jul-85			CRAM Macros--Miscellaneous and A			

						; 2293	.TOC	"CRAM Macros--Miscellaneous and A"
; 2294	.NOBIN
; 2295	;
; 2296	;	All the CRAM macros have been alphabetized for easy reference.  We have
; 2297	;	defined "_" to be alphabetically lower than the alphabet (although its
; 2298	;	ASCII representation makes it higher) so that macros such as AR_AR+1
; 2299	;	will precede ARX_AR+1, for example (this seems more intuitive).
; 2300	;
; 2301	[]_[]*[]	"@1/AD, ADA/@2, ADB/@3"
; 2302	[]_[]*FM[]	"@3, ADA/@2, ADB/FM, @1/AD"
; 2303	[]_[]-FM[]	"@3, ADA/@2, ADB/FM, @1/AD, AD/A-B"
; 2304	[]_#[]		"@1_#,#/@2"
; 2305	[]_ADA[]	"@1/AD, ADA/@2, AD/A"
; 2306	[]_ADB[]	"@1/AD, ADA EN/0S, ADB/@2, AD/B"
; 2307	[]_FM[]		"@1/AD, ADA EN/0S, ADB/FM, @2, AD/B"
; 2308	
; 2309	(AR+ARX+MQ)*.25	"ADA/AR,AD/A,AR/AD*.25,ARX/ADX*.25,(MQ)*.25"
; 2310	(AR+ARX+MQ)*2	"ADA/AR,AD/A,AR/AD*2,ARX/ADX*2,(MQ)*2"
; 2311	(MQ)*.25	"COND/REG CTL,MQ/MQM SEL,MQ CTL/MQ*.25"
; 2312	(MQ)*2		"COND/REG CTL,MQ/MQ SEL,MQ CTL/MQ*2"
; 2313	
; 2314	.IF/MODEL.B
; 2315	A INDRCT	"MEM/EA CALC,EA CALC/A IND,VMA/LOAD"
; 2316	A READ		"VMA/PC+1,DISP/DRAM A RD,MEM/A RD,#/300,J/0"
;;2317	.IFNOT/MODEL.B
;;2318	A INDRCT	"MEM/A IND,VMA/LOAD"
;;2319	A READ		"VMA/PC+1,DISP/DRAM A RD,MEM/A RD,#/0,J/0"
; 2320	.ENDIF/MODEL.B
; 2321	ABORT INSTR	"COND/SPEC INSTR,SPEC INSTR/INSTR ABORT"
; 2322	AC0		"FMADR/AC0"
; 2323	AC0_AR		"FMADR/AC0,COND/FM WRITE"
; 2324	AC1_AR		"FMADR/AC1,COND/FM WRITE"
; 2325	AC2_AR		"FMADR/AC2,COND/FM WRITE"
; 2326	AC3_AR		"FMADR/AC3,COND/FM WRITE"
; 2327	.IF/MODEL.B
; 2328	AC4		"FMADR/AC+#,AC-OP/AC+#,AC#/4"
;;2329	.IFNOT/MODEL.B
;;2330	AC4		"FMADR/AC4"
; 2331	.ENDIF/MODEL.B
; 2332	AC4_AR		"AC4,COND/FM WRITE"
; 2333	.IF/MODEL.B
; 2334	AC5		"FMADR/AC+#,AC-OP/AC+#,AC#/5"
;;2335	.IFNOT/MODEL.B
;;2336	AC5		"FMADR/AC5"
; 2337	.ENDIF/MODEL.B
; 2338	AC5_AR		"AC5,COND/FM WRITE"
; 2339	AD FLAGS	"COND/AD FLAGS"
; 2340	AD LONG		"SPEC/AD LONG"
; 2341	ADMSK		"R15"		;23 ONES
; 2342	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 2
; MACRO.MIC[10,5351]	19:52 24-Jul-85			CRAM Macros--AR						

; 2343	.TOC	"CRAM Macros--AR"
; 2344	
; 2345	AR_[] AND FM[]	"ADA/@1,ADB/FM,@2,AD/AND,AR/AD"
; 2346	AR_(AR+2BR)*.25	"ADA/AR,ADB/BR*2,AD/A+B,AR/AD*.25"
; 2347	AR_(AR+BR)*.25	"ADA/AR,ADB/BR,AD/A+B,AR/AD*.25"
; 2348	AR_(AR-2BR)*.25	"ADA/AR,ADB/BR*2,AD/A-B,AR/AD*.25"
; 2349	AR_(AR-BR)*.25	"ADA/AR,ADB/BR,AD/A-B,AR/AD*.25"
; 2350	AR_(ARX OR AR*4)*.25	"ADA/ARX,ADB/AR*4,AD/OR,AR/AD*.25"
; 2351	AR_-AC0		"FMADR/AC0,ADB/FM,ADA EN/0S,AD/A-B,AR/AD"
; 2352	AR_-AR		"ADA EN/0S,ADB/AR*4,AD/A-B,AR/AD*.25"
; 2353	AR_-AR LONG	"GEN -AR LONG,AR_AD*.25 LONG"
; 2354	AR_-BR		"ADB/BR,ADA EN/0S,AD/A-B,AR/AD"
; 2355	AR_-BR LONG	"ADA EN/0S,ADB/BR,AD/A-B,AR/AD,ARX/ADX,SPEC/AD LONG"
; 2356	AR_-BR*2 LONG	"ADA EN/0S,ADB/BR*2,AD/A-B,AR/AD,ARX/ADX,SPEC/AD LONG"
; 2357	AR_-BRX		"ADB/BR,ADA EN/0S,AD/A-B,AR/ADX"
; 2358	AR_-DLEN	"DLEN,ADB/FM,ADA EN/0S,AD/A-B,AR/AD"
; 2359	AR_-FM[]	"ADA EN/0S,ADB/FM,@1,AD/A-B,AR/AD"
; 2360	AR_-SLEN	"SLEN,ADB/FM,ADA EN/0S,AD/A-B,AR/AD"
; 2361	AR_0.C		"COND/ARL IND,CLR/AR"
; 2362	AR_0.M		"MEM/ARL IND,CLR/AR"
; 2363	AR_0.S		"SPEC/ARL IND,CLR/AR"
; 2364	AR_0S		"AD/0S,AR/AD"
; 2365	AR_1		"ADA EN/0S,AD/A+1,AR/AD"
; 2366	AR_1 LONG	"ADA EN/0S,AD/A+1,AR/AD*.25,ARX/ADX"
; 2367	AR_1S		"AD/1S,AR/AD"
; 2368	AR_2		"ADA EN/0S,AD/A+1,AR/AD*2"
; 2369	AR_2(AR*BR)	"ADA/AR,ADB/BR,AR/AD*2"
; 2370	AR_2(AR+1)	"ADA/AR,AD/A+1,AR/AD*2"
; 2371	AR_2(AR+BR)	"AR_2(AR*BR),AD/A+B"
; 2372	AR_2(AR+BR) LONG "AR_2(AR*BR),AD/A+B,ARX/ADX*2,SPEC/AD LONG"
; 2373	AR_2(AR-BR)	"AR_2(AR*BR),AD/A-B"
; 2374	
; 2375	AR_AC0		"FMADR/AC0,ADB/FM,AD/B,AR/AD"
; 2376	AR_AC0 COMP	"FMADR/AC0,ADB/FM,AD/SETCB,AR/AD"
; 2377	AR_AC0+1	"ADA EN/0S,ADB/FM,FMADR/AC0,AD/A+B+1,AR/AD"
; 2378	AR_AC1		"FMADR/AC1,ADB/FM,AD/B,AR/AD"
; 2379	AR_AC1 COMP	"FMADR/AC1,ADB/FM,AD/SETCB,AR/AD"
; 2380	AR_AC1*2	"FMADR/AC1,ADB/FM,AD/B,AR/AD*2"
; 2381	AR_AC2		"FMADR/AC2,ADB/FM,AD/B,AR/AD"
; 2382	AR_AC3		"FMADR/AC3,ADB/FM,AD/B,AR/AD"
; 2383	AR_AC3*2	"FMADR/AC3,ADB/FM,AD/B,AR/AD*2"
; 2384	AR_AC4		"AC4,ADB/FM,AD/B,AR/AD"
; 2385	AR_AD*.25 LONG	"AR/AD*.25,ARX/ADX*.25,SPEC/AD LONG"
; 2386	AR_ADMSK AND VMA HELD	"COND/SEL VMA,ADA/PC,ADB/FM,ADMSK,AD/AND,AR/AD"
; 2387	
; 2388	AR_AR AND ADMSK	 "ADMSK,ADB/FM,ADA/AR,AD/AND,AR/AD"
; 2389	.IF/KLPAGE
; 2390	AR_AR AND CSMSK	"CSMSK,ADB/FM,ADA/AR,AD/AND,AR/AD"
; 2391	AR_AR OR PUR	"PUR,ADB/FM,ADA/AR,AD/OR,AR/AD"
; 2392	.ENDIF/KLPAGE
; 2393	AR_AR SWAP	"SH/AR SWAP,AR/SH"
; 2394	
; 2395	AR_AR*.25	"ADA/AR,AD/A,AR/AD*.25"
; 2396	AR_AR*.25 LONG	"ADA/AR,AD/A,AR/AD*.25,ARX/ADX*.25"
; 2397	AR_AR*.5	"ADA/AR,AD/A*2,AR/AD*.25"
; 2398	AR_AR*.5 LONG	"ADA/AR,AD/A*2,SPEC/AD LONG,AR/AD*.25,ARX/ADX*.25"
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 2-1
; MACRO.MIC[10,5351]	19:52 24-Jul-85			CRAM Macros--AR						

; 2399	AR_AR*1.25 LONG	"ADA/AR,ADB/AR*4,AD/A+B,AR_AD*.25 LONG"
; 2400	AR_AR*10	"ADA/AR,ADB/AR*4,AD/A+B,AR/AD*2"
; 2401	AR_AR*10 LONG	"ADA/AR,ADB/AR*4,AD/A+B,AR/AD*2,ARX/ADX*2,SPEC/AD LONG"
; 2402	AR_AR*2		"ADA/AR,AD/A,AR/AD*2"
; 2403	AR_AR*2 LONG	"ADA/AR,AD/A,AR/AD*2,ARX/ADX*2"
; 2404	AR_AR*4		"ADB/AR*4,AD/B,AR/AD"
; 2405	AR_AR*4 LONG	"ADB/AR*4,AD/B,AR/AD,ARX/ADX"
; 2406	AR_AR*5 LONG	"ADA/AR,ADB/AR*4,AD/A+B,AR/AD,ARX/ADX,SPEC/AD LONG"
; 2407	AR_AR*8		"ADB/AR*4,AD/B,AR/AD*2"
; 2408	AR_AR*8 LONG	"ADB/AR*4,AD/B,AR/AD*2,ARX/ADX*2"
; 2409	AR_AR*AC0	"FMADR/AC0,ADB/FM,ADA/AR,AR/AD"	;GENERAL BINARY OPERATION
; 2410	AR_AR*AC1	"FMADR/AC1,ADB/FM,ADA/AR,AR/AD"
; 2411	AR_AR*BR	"ADA/AR,ADB/BR,AR/AD"
; 2412	AR_AR*EXPMSK	"EXPMSK,ADB/FM,ADA/AR,AR/AD"	;[224]
; 2413	AR_AR*MSK	"MSK,ADB/FM,ADA/AR,AR/AD"
; 2414	AR_AR*SFLGS	"SFLGS,ADB/FM,ADA/AR,AR/AD"
; 2415	AR_AR*SLEN	"SLEN,ADB/FM,ADA/AR,AR/AD"
; 2416	AR_AR*T0	"T0,ADB/FM,ADA/AR,AR/AD"
; 2417	
; 2418	AR_AR+1		"ADA/AR,AD/A+1,AR/AD"
; 2419	AR_AR+1 LONG	"AR_AR+1,ARX/ADX,SPEC/AD LONG"
; 2420	AR_AR+1-AR0	"ADA/AR,AD/A+1,AR/AD,SPEC/XCRY AR0"
; 2421	AR_AR+BR	"ADA/AR,ADB/BR,AD/A+B,AR/AD"
; 2422	AR_AR+BR LONG	"AR_AR+BR,ARX/ADX,SPEC/AD LONG"
; 2423	AR_AR+E1	"E1,ADB/FM,ADA/AR,AD/A+B,AR/AD"
; 2424	AR_AR+FM[]	"ADA/AR,ADB/FM,@1,AD/A+B,AR/AD";[343]
; 2425	.IF/KLPAGE
; 2426	AR_AR+SBR	"SBR,ADB/FM,ADA/AR,AD/A+B,AR/AD"
; 2427	.ENDIF/KLPAGE
; 2428	AR_AR+T0	"T0,ADB/FM,ADA/AR,AD/A+B,AR/AD"
; 2429	AR_AR+T1	"T1,ADB/FM,ADA/AR,AD/A+B,AR/AD"
;;2430	.IF/TRXDEF
;;2431	AR_AR+TRB	"TRB,ADB/FM,ADA/AR,AD/A+B,AR/AD"
;;2432	AR_AR+TRX	"TRX,ADB/FM,ADA/AR,AD/A+B,AR/AD"
; 2433	.ENDIF/TRXDEF
; 2434	AR_AR+XR	"GEN AR+XR,AR/AD"
; 2435	AR_AR-1		"ADA/AR,AD/A-1,AR/AD"
; 2436	AR_AR-BR	"ADA/AR,ADB/BR,AD/A-B,AR/AD"
; 2437	AR_AR-BR LONG	"AR_AR-BR,ARX/ADX,SPEC/AD LONG"
; 2438	AR_AR-BR-1	"GEN AR*BR,AD/A-B-1,AR/AD"
; 2439	AR_AR-FM[]	"ADA/AR,ADB/FM,@1,AD/A-B,AR/AD"
; 2440	AR_AR-T0	"T0,ADB/FM,ADA/AR,AD/A-B,AR/AD"
; 2441	
; 2442	AR_ARX		"SH/ARX,AR/SH"
; 2443	AR_ARX (AD)	"ADA/ARX,AD/A,AR/AD"
; 2444	AR_ARX (ADX)	"ADA EN/EN,AD/A,AR/ADX"
; 2445	AR_ARX AND ADMSK "ADMSK,ADB/FM,ADA/ARX,AD/AND,AR/AD"
; 2446	AR_ARX ANDC ADMSK "ADMSK,ADB/FM,ADA/ARX,AD/ANDCB,AR/AD"
; 2447	AR_ARX COMP	"ADA EN/EN,AD/SETCA,AR/ADX"
; 2448	.IF/KLPAGE
; 2449	AR_ARX OR PUR	"PUR,ADB/FM,ADA/ARX,AD/OR,AR/AD"
; 2450	.ENDIF/KLPAGE
; 2451	AR_ARX*.25	"ADA/ARX,AD/A,AR/AD*.25"
; 2452	AR_ARX*.25-AR-1	"ADB/AR*4,ADA/ARX,AD/A-B-1,AR/AD*.25"
; 2453	AR_ARX*2	"ADA/ARX,AD/A,AR/AD*2"
; 2454	AR_ARX*4	"ADB/AR*4,AD/B,AR/ADX"
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 2-2
; MACRO.MIC[10,5351]	19:52 24-Jul-85			CRAM Macros--AR						

; 2455	AR_ARX*4 COMP	"ADB/AR*4,AD/SETCB,AR/ADX"
; 2456	AR_ARX*AC1	"FMADR/AC1,ADB/FM,ADA/ARX,AR/AD"
; 2457	AR_ARX*BR	"ADA/ARX,ADB/BR,AR/AD"
; 2458	AR_ARX*BRX	"ADA/AR,ADB/BR,AR/ADX"
; 2459	AR_ARX*E1	"E1,ADB/FM,ADA/ARX,AR/AD"
; 2460	AR_ARX+1	"ADA EN/EN,AD/A+1,AR/ADX"
; 2461	AR_ARX+1 (AD)	"ADA/ARX,AD/A+1,AR/AD"
; 2462	AR_ARX+AC0	"ADA/ARX,ADB/FM,FMADR/AC0,AD/A+B,AR/AD"
; 2463	AR_ARX+AR*4	"ADA/ARX,ADB/AR*4,AD/A+B,AR/AD"
; 2464	AR_ARX+BR	"ADA/ARX,ADB/BR,AD/A+B,AR/AD"
; 2465	AR_ARX+BRX	"ADA EN/EN,ADB/BR,AD/A+B,AR/ADX"
; 2466	AR_ARX+BRX+1	"ADA EN/EN,ADB/BR,AD/A+B+1,AR/ADX"	;[343]
; 2467	AR_ARX+FM[]	"ADA/ARX,ADB/FM,@1,AD/A+B,AR/AD"
; 2468	AR_ARX+XR	"GEN ARX+XR,AR/AD"
; 2469	AR_ARX-1	"ADA EN/EN,AD/A-1,AR/ADX"
; 2470	AR_ARX-AC3	"ADA/ARX,ADB/FM,FMADR/AC3,AD/A-B,AR/AD"
; 2471	AR_ARX-BR	"ADA/ARX,ADB/BR,AD/A-B,AR/AD"
; 2472	
; 2473	AR_BR		"ADB/BR,AD/B,AR/AD"
; 2474	AR_BR COMP	"ADB/BR,AD/SETCB,AR/AD"
; 2475	AR_BR COMP LONG	"ADB/BR,AD/SETCB,AR/AD,ARX/ADX"
; 2476	AR_BR LONG	"ADB/BR,AD/B,AR/AD,ARX/ADX"
; 2477	AR_BR OR ARX	"ADA/ARX,ADB/BR,AD/OR,AR/AD"
; 2478	AR_BR*.5	"ADB/BR*2,AD/B,AR/AD*.25"
; 2479	AR_BR*.5 LONG	"ADB/BR*2,AD/B,AR/AD*.25,ARX/ADX*.25"
; 2480	AR_BR*2		"ADB/BR*2,AD/B,AR/AD"
; 2481	AR_BR*2 LONG	"ADB/BR*2,AD/B,AR/AD,ARX/ADX"
; 2482	AR_BR*4		"ADB/BR*2,AD/B,AR/AD*2"			;[230]
; 2483	AR_BR*4 LONG	"ADB/BR*2,AD/B,AR/AD*2,ARX/ADX*2"
; 2484	AR_BR+1		"ADB/BR,ADA EN/0S,AD/A+B+1,AR/AD"
; 2485	AR_BR+1 LONG	"ADA EN/0S,ADB/BR,AD/A+B+1,AR/AD,ARX/ADX,SPEC/AD LONG"
; 2486	AR_BRX		"ADB/BR,AD/B,AR/ADX"
; 2487	AR_BRX+1	"ADA EN/0S,ADB/BR,AD/A+B+1,AR/ADX"
; 2488	
; 2489	AR_CACHE CNT	"DIAG IN,DIAG FUNC/RD CACHE CNT"
; 2490	AR_DLEN		"DLEN,AR_FM"
; 2491	AR_DLEN COMP	"DLEN,ADB/FM,AD/SETCB,AR/AD"
; 2492	AR_DLEN+1	"DLEN,ADB/FM,ADA EN/0S,AD/A+B+1,AR/AD"
; 2493	AR_DSTP		"DSTP,AR_FM"
; 2494	AR_DSTP+1	"DSTP,ADB/FM,ADA EN/0S,AD/A+B+1,AR/AD"
; 2495	AR_DSTP2	"DSTP2,AR_FM"
; 2496	AR_DSTP2+1	"DSTP2,ADB/FM,ADA EN/0S,AD/A+B+1,AR/AD"
; 2497	AR_DSTW		"DSTW,AR_FM"
; 2498	AR_E0		"E0,AR_FM"
; 2499	AR_E1		"E1,AR_FM"
; 2500	AR_EBOX CNT	"DIAG IN,DIAG FUNC/RD EBOX CNT"
; 2501	AR_EBUS		"AR/EBUS,TIME/5T"
; 2502	AR_EBUS REG	"DIAG IN,DIAG FUNC/RD EBUS REG"
; 2503	AR_FILL		"FILL,AR_FM"
; 2504	AR_FM		"ADB/FM,AD/B,AR/AD"
; 2505	AR_FM[]		"AR/AD, AD/B, ADB/FM, @1"	;[274]
; 2506	AR_FM[]+1	"ADA EN/0S,ADB/FM,@1,AD/A+B+1,AR/AD"
; 2507	.IF/MODEL.B
; 2508	AR_FM(#)	"FMADR/AC+#,AC-OP/AC+#,ADB/FM,AD/B,AR/AD"
; 2509	.ENDIF/MODEL.B
; 2510	AR_FM(VMA)	"FMADR/VMA,ADB/FM,AD/B,AR/AD"
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 2-3
; MACRO.MIC[10,5351]	19:52 24-Jul-85			CRAM Macros--AR						

; 2511	AR_INTERVAL	"DIAG IN,DIAG FUNC/RD INTRVL"
; 2512	
; 2513	AR_MEM		"MEM/MB WAIT,FMADR/VMA,ADB/FM,AD/B,AR/MEM"
; 2514	AR_MQ		"ADA/MQ,AD/A,AR/AD"
; 2515	AR_MQ COMP	"ADA/MQ,AD/SETCA,AR/AD"
; 2516	AR_MQ*.25	"ADA/MQ,AD/A,AR/AD*.25"
; 2517	AR_MQ*2		"ADA/MQ,AD/A,AR/AD*2"
; 2518	AR_MQ*4		"ADA/MQ,AD/A*2,AR/AD*2"
; 2519	AR_MQ*AC1	"FMADR/AC1,ADB/FM,ADA/MQ,AR/AD"
; 2520	AR_MQ*AC2	"FMADR/AC2,ADB/FM,ADA/MQ,AR/AD"
; 2521	AR_MQ*AC3	"FMADR/AC3,ADB/FM,ADA/MQ,AR/AD"
; 2522	AR_MQ+1		"ADA/MQ,AD/A+1,AR/AD"
; 2523	AR_MQ+AC0	"FMADR/AC0,ADB/FM,ADA/MQ,AD/A+B,AR/AD"
; 2524	AR_MQ+BR	"ADA/MQ,ADB/BR,AD/A+B,AR/AD"		;[343]
; 2525	AR_MQ-1		"ADA/MQ,AD/A-1,AR/AD"
; 2526	AR_MQ-AC3	"ADA/MQ,ADB/FM,FMADR/AC3,AD/A-B,AR/AD"
; 2527	AR_MQ-BR	"ADA/MQ,ADB/BR,AD/A-B,AR/AD"
; 2528	AR_MTR REQ	"DIAG IN,DIAG FUNC/RD MTR REQ"
; 2529	AR_PC		"ADA/PC,AD/A,AR/AD"
; 2530	AR_PC FLAGS	"ADMSK,ADB/FM,ADA/PC,AD/ANDCB,AR/AD"
; 2531	AR_PC+1		"ADA/PC,AD/A+1,AR/AD,SPEC/SAVE FLAGS"
; 2532	AR_PERF CNT	"DIAG IN,DIAG FUNC/RD PERF CNT"
; 2533	AR_PERIOD	"DIAG IN,DIAG FUNC/RD PERIOD"
; 2534	.IF/KLPAGE
; 2535	AR_PUR+AR0	"PUR,ADB/FM,ADA EN/0S,AD/A+B,SPEC/XCRY AR0,AR/AD"
; 2536	.ENDIF/KLPAGE
; 2537	
; 2538	AR_SERIAL	"AR/ARMM,COND/REG CTL,AR CTL/ARR LOAD"
; 2539	AR_SFLGS	"SFLGS,AR_FM"
; 2540	AR_SHIFT	"SH/SHIFT AR!ARX,AR/SH"
; 2541	AR_SIGN		"AD/XCRY-1,SPEC/XCRY AR0,AR/AD"
; 2542	AR_SLEN		"SLEN,AR_FM"
; 2543	AR_SLEN COMP	"SLEN,ADB/FM,AD/SETCB,AR/AD"
; 2544	AR_SLEN+1	"SLEN,ADB/FM,ADA EN/0S,AD/A+B+1,AR/AD"
; 2545	AR_SRCP		"SRCP,AR_FM"
; 2546	AR_SRCP+1	"SRCP,ADB/FM,ADA EN/0S,AD/A+B+1,AR/AD"
; 2547	AR_SRCP2	"SRCP2,AR_FM"
; 2548	AR_SRCP2+1	"SRCP2,ADB/FM,ADA EN/0S,AD/A+B+1,AR/AD"
; 2549	AR_SV.AR	"SV.AR,AR_FM"
; 2550	.IF/KLPAGE
; 2551	AR_SV.ARX	"SV.ARX,AR_FM"
; 2552	AR_SV.BR	"SV.BR,AR_FM"
; 2553	AR_SV.PFW	"SV.PFW,AR_FM"
; 2554	AR_SV.SC	"SV.SC,AR_FM"
; 2555	AR_SV.VMA	"SV.VMA,AR_FM"
; 2556	.ENDIF/KLPAGE
; 2557	AR_SWD		"SWD,AR_FM"
; 2558	
; 2559	AR_T0		"T0,AR_FM"
; 2560	AR_T1		"T1,AR_FM"
; 2561	AR_T2		"T2,AR_FM"
; 2562	AR_TIME BASE	"DIAG IN,DIAG FUNC/RD TIME"
;;2563	.IF/TRXDEF
;;2564	AR_TRB		"TRB,AR_FM"
;;2565	AR_TRX		"TRX,AR_FM"
;;2566	AR_TRX+1	"TRX,ADB/FM,ADA EN/0S,AD/A+B+1,AR/AD"
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 2-4
; MACRO.MIC[10,5351]	19:52 24-Jul-85			CRAM Macros--AR						

;;2567	AR_TRX1		"TRX1,AR_FM"
;;2568	AR_TRX2		"TRX2,AR_FM"
;;2569	AR_TRX2+1	"TRX2,ADB/FM,ADA EN/0S,AD/A+B+1,AR/AD"
;;2570	AR_TRX3		"TRX3,AR_FM"
;;2571	AR_TRX3+1	"TRX3,ADB/FM,ADA EN/0S,AD/A+B+1,AR/AD"
; 2572	.ENDIF/TRXDEF
; 2573	AR_VMA HELD	"COND/SEL VMA,AR_PC"
; 2574	AR_XR		"FMADR/XR,ADB/FM,AD/B,AR/AD"
; 2575	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 3
; MACRO.MIC[10,5351]	19:52 24-Jul-85			CRAM Macros--AR Miscellaneous, ARL, and ARR		

; 2576	.TOC	"CRAM Macros--AR Miscellaneous, ARL, and ARR"
; 2577	
; 2578	AR+ARX+MQ_0.M	"MEM/ARL IND,CLR/AR+ARX+MQ"
; 2579	AR+MQ_0.M	"MEM/ARL IND,CLR/AR+MQ"
; 2580	AR+MQ_0.S	"SPEC/ARL IND,CLR/AR+MQ"
; 2581	
; 2582	AR0-3 DISP	"SH/AR,DISP/SH0-3"
; 2583	AR0-8_#		"COND/LD AR0-8,AR/ARMM,ARMM/#"
; 2584	AR0-8_# AND AR0-8 "SCADA/#,SCADB/AR0-8,SCAD/AND,AR0-8_SCAD#"
; 2585	AR0-8_# OR AR0-8 "SCADA/#,SCADB/AR0-8,SCAD/OR,AR0-8_SCAD#"
; 2586	AR0-8_#+SC	"SCADA/#,SCADB/SC,SCAD/A+B,AR0-8_SCAD#"
; 2587	AR0-8_-SC-1	"SCADA EN/0S,SCADB/SC,SCAD/A-B-1,AR0-8_SCAD"
; 2588	AR0-8_FE	"SCADA/FE,SCAD/A,AR0-8_SCAD"
; 2589	AR0-8_FE OR #	"SCADA/FE,SCADB/#,SCAD/OR,AR0-8_SCAD#"
; 2590	AR0-8_FE OR SC	"SCADA/FE,SCADB/SC,SCAD/OR,AR0-8_SCAD.M"
; 2591	AR0-8_FE#	"SCADA/FE,SCAD/A,ARMM/SCAD EXP,AR/ARMM,COND/LD AR0-8"
; 2592	AR0-8_FE+#	"SCADA/FE,SCADB/#,SCAD/A+B,AR0-8_SCAD#"
; 2593	AR0-8_FE+1	"SCADA/FE,SCAD/A+1,AR0-8_SCAD"
; 2594	AR0-8_FE+SC	"SCADA/FE,SCADB/SC,SCAD/A+B,AR0-8_SCAD.M"
; 2595	AR0-8_FE-SC	"SCADA/FE,SCADB/SC,SCAD/A-B,AR0-8_SCAD.M"
; 2596	AR0-8_FE.M	"SCADA/FE,SCAD/A,AR0-8_SCAD.M"
; 2597	AR0-8_FE.R	"GEN FE,AR0-8_SCAD.R"
; 2598	AR0-8_SC	"SCADA EN/0S,SCADB/SC,SCAD/A+B,AR0-8_SCAD"
; 2599	AR0-8_SCAD	"SPEC/ARL IND,ARL/ARMM,AR0-8/LOAD,ARMM/SCAD EXP"
; 2600	AR0-8_SCAD#	"ARMM/SCAD EXP,AR/ARMM,COND/LD AR0-8"
; 2601	AR0-8_SCAD.M	"MEM/ARL IND,ARL/ARMM,AR0-8/LOAD,ARMM/SCAD EXP"
; 2602	AR0-8_SCAD.R	"ARMM/SCAD EXP,AR/ARMM,COND/REG CTL,AR CTL/AR0-8 LOAD"
; 2603	AR12-17_PC SEC	"AR/ARMM,VMAX/PC SEC,COND/LD AR9-17"
; 2604	AR12-17_PREV SEC	"AR/ARMM,VMAX/PREV SEC,COND/LD AR9-17"
; 2605	AR18-21 DISP	"SH/AR SWAP,DISP/SH0-3"
; 2606	
; 2607	ARL_0.C		"COND/ARL IND,CLR/ARL"
; 2608	ARL_0.M		"MEM/ARL IND,CLR/ARL"
; 2609	ARL_0.S		"SPEC/ARL IND,CLR/ARL"
; 2610	ARL_0S		"COND/ARL IND,CLR/ARL"
; 2611	ARL_1.M		"ADA EN/0S,AD/A+1,SPEC/GEN CRY18,MEM/ARL IND,ARL/AD"
; 2612	ARL_1S		"AD/1S,COND/ARL IND,ARL/AD"
; 2613	ARL_1S.M	"AD/1S,MEM/ARL IND,ARL/AD"
; 2614	ARL_AC0		"FMADR/AC0,ADB/FM,AD/B,COND/ARL IND,ARL/AD"
; 2615	ARL_ARL		"COND/ARL IND,ARL/ARL"
; 2616	ARL_ARL.M	"MEM/ARL IND,ARL/ARL"
; 2617	ARL_ARL.S	"SPEC/ARL IND,ARL/ARL"
; 2618	ARL_ARR		"COND/ARL IND,ARL/SH,SH/AR SWAP"
; 2619	ARL_ARR.M	"MEM/ARL IND,ARL/SH,SH/AR SWAP"
; 2620	ARL_ARR.S	"SPEC/ARL IND,ARL/SH,SH/AR SWAP"
; 2621	ARL_ARX (ADX)	"ADA EN/EN,AD/A,MEM/ARL IND,ARL/ADX"
; 2622	ARL_ARXL	"SPEC/ARL IND,SH/ARX,ARL/SH"
; 2623	ARL_ARXL.M	"MEM/ARL IND,SH/ARX,ARL/SH"
; 2624	ARL_BRL		"ADB/BR,AD/B,COND/ARL IND,ARL/AD"
; 2625	ARL_BRL.M	"ADB/BR,AD/B,MEM/ARL IND,ARL/AD"
; 2626	ARL_BRL.S	"ADB/BR,AD/B,SPEC/ARL IND,ARL/AD"
; 2627	ARL_SHIFT	"MEM/ARL IND,SH/SHIFT AR!ARX,ARL/SH"
; 2628	ARL_SIGN	"AD/XCRY-1,SPEC/XCRY AR0,COND/ARL IND,ARL/AD"
; 2629	ARL+ARX+MQ_0.M	"MEM/ARL IND,CLR/ARL+ARX+MQ"
; 2630	ARL+ARX_0.M	"MEM/ARL IND,CLR/ARL+ARX"
; 2631	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 3-1
; MACRO.MIC[10,5351]	19:52 24-Jul-85			CRAM Macros--AR Miscellaneous, ARL, and ARR		

; 2632	ARR_0.C		"COND/ARL IND,CLR/ARR"
; 2633	ARR_0.M		"MEM/ARL IND,CLR/ARR"
; 2634	ARR_0.S		"SPEC/ARL IND,CLR/ARR"
; 2635	ARR_0S		"AR_0S"
; 2636	ARR_1S		"AR_1S"
; 2637	ARR_AC0		"AR_AC0"
; 2638	ARR_AC0.S	"SPEC/ARL IND,FMADR/AC0,ADB/FM,AD/B,AR/AD"
; 2639	ARR_AR+1	"AR_AR+1"				;[343]
; 2640	ARR_AR+BR	"AR_AR+BR"				;[343]
; 2641	ARR_ARL		"SH/AR SWAP,AR/SH"
; 2642	ARR_ARR		"AR/AR"
; 2643	ARR_ARX		"AR_ARX"
; 2644	ARR_ARX+1	"AR_ARX+1"
; 2645	ARR_ARX+BRX	"AR_ARX+BRX"
; 2646	ARR_ARX+BR	"AR_ARX+BR"				;[343]
; 2647	ARR_ARX-1	"AR_ARX-1"
; 2648	ARR_BR		"ADB/BR,AD/B,COND/ARL IND,AR/AD"	;[252]
; 2649	ARR_PC+1	"ADA/PC,AD/A+1,AR/AD"
; 2650	ARR+MQ_0.S	"SPEC/ARL IND,CLR/ARR+MQ"
; 2651	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 4
; MACRO.MIC[10,5351]	19:52 24-Jul-85			CRAM Macros--ARX					

; 2652	.TOC	"CRAM Macros--ARX"
; 2653	
; 2654	ARX_-2+MQ0	"AD/1S,ARX/ADX*2"			;[343] -2 if MQ0 = 0
; 2655	ARX_-AC0	"ADA EN/0S,ADB/FM,FMADR/AC0,AD/A-B,ARX/AD"
; 2656	ARX_-BRX	"ADB/BR,ADA EN/0S,AD/A-B,ARX/ADX"
; 2657	ARX_-FM[]	"ADA EN/0S,ADB/FM,@1,AD/A-B,ARX/AD"
; 2658	ARX_-SLEN	"SLEN,ADB/FM,ADA EN/0S,AD/A-B,ARX/AD"
; 2659	ARX_0.C		"COND/ARL IND,CLR/ARX"
; 2660	ARX_0.M		"MEM/ARL IND,CLR/ARX"
; 2661	ARX_0.S		"SPEC/ARL IND,CLR/ARX"
; 2662	ARX_0S		"AD/0S,ARX/AD"
; 2663	ARX_1		"ADA EN/0S,AD/A+1,ARX/AD"
; 2664	ARX_1B1		"ADA EN/0S,AD/A+1,ARX/ADX*.25"
; 2665	ARX_1B17-1	"ADA EN/0S,AD/A-1,SPEC/GEN CRY18,ARX/AD"
; 2666	ARX_1S		"AD/1S,ARX/AD"
; 2667	ARX_2+MQ0	"ADA EN/0S,AD/A+1,ARX/ADX*2"
; 2668	
; 2669	ARX_AC0		"FMADR/AC0,ADB/FM,AD/B,ARX/AD"
; 2670	ARX_AC0 COMP	"ADB/FM,FMADR/AC0,AD/SETCB,ARX/AD"
; 2671	ARX_AC0+1	"ADA EN/0S,ADB/FM,FMADR/AC0,AD/A+B+1,ARX/AD"
; 2672	ARX_AC1		"FMADR/AC1,ADB/FM,AD/B,ARX/AD"
; 2673	ARX_AC2		"FMADR/AC2,ADB/FM,AD/B,ARX/AD"
; 2674	ARX_AC3		"FMADR/AC3,ADB/FM,AD/B,ARX/AD"
; 2675	ARX_AC4		"AC4,ADB/FM,AD/B,ARX/AD"
; 2676	
; 2677	ARX_AR		"SH/AR,ARX/SH"
; 2678	ARX_AR (AD)	"ADA/AR,AD/A,ARX/AD"
; 2679	ARX_AR AND ADMSK "ADMSK,ADB/FM,ADA/AR,AD/AND,ARX/AD"
; 2680	ARX_AR ANDCA BR	"ADA/AR,ADB/BR,AD/ANDCA,ARX/AD"
; 2681	ARX_AR SIGN	"AD/XCRY-1,SPEC/XCRY AR0,ARX/AD"
; 2682	ARX_AR SWAP	"SH/AR SWAP,ARX/SH"
; 2683	ARX_AR*2	"ADA/AR,AD/A*2,ARX/AD"			;[343]
; 2684	ARX_AR*4 COMP	"ADB/AR*4,AD/SETCB,ARX/AD"
; 2685	ARX_AR*MSK	"MSK,ADB/FM,ADA/AR,ARX/AD"
; 2686	ARX_AR+1	"ADA/AR,AD/A+1,ARX/AD"
; 2687	.IF/KLPAGE
; 2688	ARX_AR+CBR	"CBR,ADB/FM,ADA/AR,AD/A+B,ARX/AD"
; 2689	.ENDIF/KLPAGE
; 2690	ARX_AR+FM[]	"ADA/AR,ADB/FM,@1,AD/A+B,ARX/AD"
; 2691	ARX_AR-1	"ADA/AR,AD/A-1,ARX/AD"
; 2692	ARX_AR-BR	"ADA/AR,ADB/BR,AD/A-B,ARX/AD"		;[224]
; 2693	ARX_AR-FM[]	"ADA/AR,ADB/FM,@1,AD/A-B,ARX/AD"
; 2694	ARX_AR-FM[]-1	"ADA/AR,ADB/FM,@1,AD/A-B-1,ARX/AD"
; 2695	
; 2696	ARX_ARX AND ADMSK "ADMSK,ADB/FM,ADA/ARX,AD/AND,ARX/AD"
; 2697	ARX_ARX ANDC ADMSK "ADMSK,ADB/FM,ADA/ARX,AD/ANDCB,ARX/AD"
; 2698	ARX_ARX*-6	"ADA EN/EN,ADB/AR*4,AD/A-B,ARX/ADX*2"
; 2699	ARX_ARX*.25	"ADA EN/EN,AD/A,ARX/ADX*.25"
; 2700	ARX_ARX*.5	"ADA EN/EN,AD/A*2,ARX/ADX*.25"
; 2701	ARX_ARX*2	"ADA EN/EN,AD/A,ARX/ADX*2"
; 2702	ARX_ARX*2 COMP	"ADA EN/EN,AD/SETCA,ARX/ADX*2"
; 2703	ARX_ARX*4	"ADB/AR*4,AD/B,ARX/ADX"
; 2704	ARX_ARX*4 COMP	"ADB/AR*4,AD/SETCB,ARX/ADX"
; 2705	ARX_ARX*8	"ADB/AR*4,AD/B,ARX/ADX*2"
; 2706	ARX_ARX*BRX	"ADA/AR,ADB/BR,ARX/ADX"
; 2707	ARX_ARX*EXPMSK	"EXPMSK,ADB/FM,ADA/ARX,ARX/AD"		;[224]
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 4-1
; MACRO.MIC[10,5351]	19:52 24-Jul-85			CRAM Macros--ARX					

; 2708	ARX_ARX+1	"ADA EN/EN,AD/A+1,ARX/ADX"
; 2709	ARX_ARX+AC0	"ADA/ARX,ADB/FM,FMADR/AC0,AD/A+B,ARX/AD"
; 2710	.IF/KLPAGE
; 2711	ARX_ARX+CBR	"CBR,ADB/FM,ADA/ARX,AD/A+B,ARX/AD"
; 2712	.ENDIF/KLPAGE
; 2713	ARX_ARX+FM[]	"ADA/ARX,ADB/FM,@1,AD/A+B,ARX/AD"	;[343]
; 2714	ARX_ARX-1	"ADA EN/EN,AD/A-1,ARX/ADX"
; 2715	ARX_ARX-1 (AD)	"ADA/ARX,AD/A-1,ARX/AD"
; 2716	ARX_ARX-AR*4	"ADA/ARX,ADB/AR*4,AD/A-B,ARX/AD"	;[343]
; 2717	ARX_ARX-FM[]	"ADA/ARX,ADB/FM,@1,AD/A-B,ARX/AD"
; 2718	ARX_ARX-FM[]-1	"ADA/ARX,ADB/FM,@1,AD/A-B-1,ARX/AD"
; 2719	
; 2720	ARX_BR		"ADB/BR,AD/B,ARX/AD"
; 2721	ARX_BR*2	"ADB/BR*2,AD/B,ARX/AD"
; 2722	ARX_BR+1	"ADB/BR,ADA EN/0S,AD/A+B+1,ARX/AD"
; 2723	ARX_BRX		"ADB/BR,AD/B,ARX/ADX"
; 2724	ARX_BRX COMP	"ADB/BR,AD/SETCB,ARX/ADX"
; 2725	ARX_BRX+1	"ADA EN/0S,ADB/BR,AD/A+B+1,ARX/ADX"
; 2726	ARX_DSTP	"DSTP,ARX_FM"
; 2727	ARX_DSTP2	"DSTP2,ARX_FM"
; 2728	ARX_E1		"E1,ARX_FM"
; 2729	ARX_FILL	"FILL,ARX_FM"				;[310]
; 2730	ARX_FM		"ADB/FM,AD/B,ARX/AD"
; 2731	ARX_FM[]	"ADB/FM,@1,AD/B,ARX/AD"			;[343]
; 2732	ARX_FM[]+1	"ADA EN/0S,ADB/FM,@1,AD/A+B+1,ARX/AD"
; 2733	ARX_FM(VMA)	"FMADR/VMA,ADB/FM,AD/B,ARX/AD"
; 2734	ARX_MEM		"MEM/MB WAIT,FMADR/VMA,ADB/FM,AD/B,ARX/MEM"
; 2735	ARX_MQ-1	"ADA/MQ,AD/A-1,ARX/AD"			;[343]
; 2736	ARX_MQ-FM[]	"ADA/MQ,ADB/FM,@1,AD/A-B,ARX/AD"
; 2737	ARX_MQ-FM[]-1	"ADA/MQ,ADB/FM,@1,AD/A-B-1,ARX/AD"
; 2738	
; 2739	ARX_PC		"ADA/PC,AD/A,ARX/AD"
; 2740	ARX_PC+1	"ADA/PC,AD/A+1,ARX/AD,SPEC/SAVE FLAGS"
; 2741	ARX_SHIFT	"SH/SHIFT AR!ARX,ARX/SH"
; 2742	ARX_SRCP	"SRCP,ARX_FM"
; 2743	ARX_SRCP2	"SRCP2,ARX_FM"
; 2744	.IF/KLPAGE
; 2745	ARX_SV.AR	"SV.AR,ARX_FM"
; 2746	ARX_SV.ARX	"SV.ARX,ARX_FM"
; 2747	ARX_SV.BR	"SV.BR,ARX_FM"
; 2748	ARX_SV.VMA	"SV.VMA,ARX_FM"
; 2749	.ENDIF/KLPAGE
; 2750	ARX_T0		"T0,ARX_FM"
; 2751	ARX_T2		"T2,ARX_FM"
;;2752	.IF/TRXDEF
;;2753	ARX_TRB		"TRB,ARX_FM"
; 2754	.ENDIF/TRXDEF
; 2755	ARX_VMA HELD	"COND/SEL VMA,ARX_PC"
; 2756	ARX+MQ_0.M	"MEM/ARL IND,CLR/ARX+MQ"
; 2757	ARX+MQ_0.S	"SPEC/ARL IND,CLR/ARX+MQ"
; 2758	ARX0_AR35	"ADA/AR,AD/A*2+1,ARX/ADX*.25"	;[337]
; 2759	ARX0_MQ35	"ADA/MQ,AD/A*2+1,ARX/ADX*.25"
; 2760	ARX0-3 DISP	"SH/ARX,DISP/SH0-3"
; 2761	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 5
; MACRO.MIC[10,5351]	19:52 24-Jul-85			CRAM Macros--B, C, D					

; 2762	.TOC	"CRAM Macros--B, C, D"
; 2763	
; 2764	B DISP		"DISP/DRAM B"
; 2765	B WRITE		"DISP/DRAM B,MEM/B WRITE"
; 2766	BLKO TIM(L)	"SPEC/MTR CTL,DIAG OUT,DIAG FUNC/LD PA LEFT"
; 2767	BLKO TIM(R)	"SPEC/MTR CTL,DIAG OUT,DIAG FUNC/LD PA RIGHT"
; 2768	BR_AR LONG	"BR/AR,BRX/ARX"
; 2769	BYTE DISP	"DISP/BYTE"
;;2770	.IFNOT/MODEL.B
;;2771	BYTE INDRCT	"MEM/BYTE IND,VMA/LOAD"
; 2772	.IF/MODEL.B
; 2773	BYTE INDRCT	"MEM/EA CALC,EA CALC/BYTE IND,VMA/LOAD"
; 2774	BYTE LOAD	"MEM/EA CALC,EA CALC/BYTE LD,VMA/LOAD";[337]
; 2775	.ENDIF/MODEL.B
; 2776	BYTE PREV & CLR SR3	"COND/SR_#,#/640"
; 2777	BYTE PREV & SET SR2	"COND/SR_#,#/622"
; 2778	BYTE PREV & SET SR3	"COND/SR_#,#/641"
; 2779	.IF/MODEL.B
; 2780	BYTE READ	"MEM/EA CALC,EA CALC/BYTE RD,VMA/LOAD"
; 2781	BYTE READ PC	"MEM/EA CALC,EA CALC/BYTE RD PC,VMA/LOAD"
; 2782	BYTE RPW	"MEM/EA CALC,EA CALC/BYTE RPW,VMA/LOAD"
;;2783	.IFNOT/MODEL.B
;;2784	BYTE READ	"MEM/BYTE RD,VMA/LOAD"
;;2785	BYTE RPW	"MEM/RPW,VMA/AD"
; 2786	.ENDIF/MODEL.B
; 2787	
; 2788	.IF/MODEL.B
; 2789	CALL		"CALL/CALL"
;;2790	.IFNOT/MODEL.B
;;2791	CALL		"SPEC/CALL"
; 2792	.ENDIF/MODEL.B
; 2793	CALL []		"CALL, J/@1"
; 2794	CALL[]		"CALL, J/@1"
; 2795	.IF/MODEL.B
; 2796	CALL.C		"CALL/CALL"
; 2797	CALL.M		"CALL/CALL"
; 2798	CALL.S		"CALL/CALL"
;;2799	.IFNOT/MODEL.B
;;2800	CALL.C		"COND/ARL IND,CALL/CALL"
;;2801	CALL.M		"MEM/ARL IND,CALL/CALL"
;;2802	CALL.S		"SPEC/ARL IND,CALL/CALL"
; 2803	.ENDIF/MODEL.B
; 2804	.IF/KLPAGE
; 2805	CBR		"P2"
; 2806	.ENDIF/KLPAGE
; 2807	CLR ACC+SET UCODE	"COND/EBOX STATE,#/245"
; 2808	CLR ACCOUNT EN	"COND/EBOX STATE,#/145"
; 2809	CLR AR		"COND/AR CLR"
; 2810	CLR ARX		"COND/ARX CLR"
; 2811	CLR EBUS DEMAND	"COND/EBUS CTL,EBUS CTL/EBUS NODEMAND"
; 2812	CLR EXP		"SCADA EN/0S,SCAD/A,EXP_SCAD"
; 2813	CLR FE		"SCADA EN/0S,SCAD/A,FE/SCAD"
; 2814	CLR FPD		"SPEC/CLR FPD"
; 2815	CLR MQ		"COND/REG CTL,MQ/MQ SEL,MQ CTL/0S"
; 2816	CLR MTR PA EN	"COND/EBOX STATE,#/025"
; 2817	CLR P		"SCADA EN/0S,SCAD/A,P_SCAD"
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 5-1
; MACRO.MIC[10,5351]	19:52 24-Jul-85			CRAM Macros--B, C, D					

; 2818	CLR PT LINE	"COND/MBOX CTL,MBOX CTL/CLR PT LINE"
; 2819	CLR PT LINE (KEEP) "COND/MBOX CTL,MBOX CTL/CLR PT LINE(NK)"
; 2820	CLR SC		"SCADA EN/0S,SCAD/A,SC/SCAD"
; 2821	CLR SPECIAL CYCLE	"COND/SPEC INSTR,SPEC INSTR/0"
; 2822	CLR SR2		"COND/SR_#,#/20"
; 2823	CLR SR3		"COND/SR_#,#/40"
; 2824	CLR TRACKS EN	"COND/EBOX STATE,#/121"
; 2825	CLR TRK+PA EN	"COND/EBOX STATE,#/021"
; 2826	CMS FETCH	"VMA/PC+1,MEM/FETCH,FETCH/SKIP"
; 2827	COMP FETCH	"AD/XOR,VMA/PC+1,MEM/FETCH,FETCH/COMP"
; 2828	CONI APR(L)	"DIAG IN,DIAG FUNC/CONI APR(L)"
; 2829	CONI APR(R)	"DIAG IN,DIAG FUNC/CONI APR(R)"
; 2830	CONI MTR	"DIAG IN,DIAG FUNC/CONI MTR"
; 2831	CONI PAG	"DIAG IN,DIAG FUNC/CONI PAG"
; 2832	CONI PI(L)	"DIAG IN,DIAG FUNC/CONI PI(L)"
; 2833	CONI PI(PAR)	"DIAG IN,DIAG FUNC/CONI PI(PAR)"
; 2834	CONI PI(R)	"DIAG IN,DIAG FUNC/CONI PI(R)"
; 2835	CONO APR	"DIAG OUT,DIAG FUNC/CONO APR"
; 2836	CONO MTR	"SPEC/MTR CTL,DIAG OUT,DIAG FUNC/CONO MTR"
; 2837	CONO PAG	"DIAG OUT,DIAG FUNC/CONO PAG"
; 2838	CONO PI		"DIAG OUT,DIAG FUNC/CONO PI"
; 2839	CONO TIM	"SPEC/MTR CTL,DIAG OUT,DIAG FUNC/CONO TIM"
; 2840	CONTINUE	"COND/SPEC INSTR,SPEC INSTR/CONT"
; 2841	.IF/KLPAGE
; 2842	CSMSK		"P0"
; 2843	.ENDIF/KLPAGE
; 2844	
; 2845	DATAI APR(L)	"DIAG IN,DIAG FUNC/DATAI APR"
; 2846	DATAI PAG(L)	"DIAG IN,DIAG FUNC/DATAI PAG(L)"
; 2847	DATAO APR	"DIAG OUT,DIAG FUNC/DATAO APR"
; 2848	DATAO PAG(L)	"DIAG OUT,DIAG FUNC/DATAO PAG"
; 2849	DIAG IN		"COND/DIAG FUNC,TIME/5T,AR/EBUS"
; 2850	DIAG OUT	"COND/DIAG FUNC,TIME/5T,ADA/AR,AD/A"
; 2851	DISMISS		"SPEC/FLAG CTL,FLAG CTL/DISMISS"
; 2852	DIVIDE		"FE_FE-1,DISP/DIV,MQ/MQ*2"
; 2853	DLEN		"FMADR/AC3"
; 2854	DLEN_AR		"DLEN,FM_AR"
; 2855	DROP EBUS REQ	"COND/EBUS CTL,EBUS CTL/0"
; 2856	.IF/MODEL.B
; 2857	DSTP		"FMADR/AC+#,AC-OP/AC+#,AC#/4"
;;2858	.IFNOT/MODEL.B
;;2859	DSTP		"FMADR/AC4"
; 2860	.ENDIF/MODEL.B
; 2861	DSTP_AR		"DSTP,FM_AR"
; 2862	.IF/MODEL.B
; 2863	DSTP2		"FMADR/AC+#,AC-OP/AC+#,AC#/5"
; 2864	.ENDIF/MODEL.B
; 2865	DSTP2_AR	"DSTP2,FM_AR"
; 2866	DSTW		"R14"
; 2867	DSTW_AR		"DSTW,FM_AR"
; 2868	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 6
; MACRO.MIC[10,5351]	19:52 24-Jul-85			CRAM Macros--E, F					

; 2869	.TOC	"CRAM Macros--E, F"
; 2870	
; 2871	E0		"R16"
; 2872	E0_AR		"E0,FM_AR"
; 2873	E1		"R5"
; 2874	E1_AR		"E1,FM_AR"
; 2875	.IF/XADDR
; 2876	EA MOD DISP	"DISP/EA MOD,AD/1S"
;;2877	.IFNOT/XADDR
;;2878	EA MOD DISP	"DISP/EA MOD"
;;2879	EA TYPE DISP	"DISP/EA TYPE"
; 2880	.ENDIF/XADDR
; 2881	EPT FETCH	"MEM/LOAD ARX,SPEC/SP MEM CYCLE,SP MEM/EPT FETCH"
; 2882	EPT REF		"SPEC/SP MEM CYCLE,SP MEM/EPT"
; 2883	EPT REF	CACHE	"SPEC/SP MEM CYCLE,SP MEM/EPT CACHE"
; 2884	EXEC REF	"SPEC/SP MEM CYCLE,SP MEM/EXEC"
; 2885	EXIT		"DISP/DRAM B,MEM/B WRITE,J/ST0"
; 2886	EXIT DBL	"MB WAIT,J/ST2AC"	;"I FETCH,J/DSTAC" WHEN TIMING FIXED
; 2887	EXP TEST	"COND/REG CTL,EXP TST/AR_EXP"
; 2888	EXP TST		"COND/REG CTL,EXP TST/AR_EXP"
; 2889	EXPMSK		"R4"		;[224][233]
; 2890	EXP_-SC-1	"SCADA EN/0S,SCADB/SC,SCAD/A-B-1,EXP_SCAD"
; 2891	EXP_-SC-1 TST	"SCADA EN/0S,SCADB/SC,SCAD/A-B-1,EXP_SCAD.C,EXP TST"
; 2892	EXP_1		"SCADA EN/0S,SCAD/A+1,EXP_SCAD"
; 2893	EXP_FE TST	"SCADA/FE,SCAD/A,EXP_SCAD.C,EXP TST"
; 2894	EXP_SC		"SCADA EN/0S,SCADB/SC,SCAD/A+B,EXP_SCAD"
; 2895	EXP_SC.MS	"MEM/ARL IND,ARL/ARMM,COND/LD AR0-8,ARMM/SCAD EXP,EXP_SCAD.MS";[224]
; 2896	EXP_SCAD	"MEM/ARL IND,ARL/ARMM,AR0-8/LOAD,ARMM/SCAD EXP"
; 2897	EXP_SCAD.C	"COND/REG CTL,AR CTL/AR0-8 LOAD,AR/ARMM,ARMM/SCAD EXP"
; 2898	EXP_SCAD.MS	"SCADA EN/0S,SCADB/SC,SCAD/A+B"
; 2899	EXP_SIGN	"SPEC/ARL IND,ARL/ARMM,AR0-8/LOAD,ARMM/EXP_SIGN"
; 2900	EXP_SIGN.C	"COND/ARL IND,ARL/ARMM,AR0-8/LOAD,ARMM/EXP_SIGN"
; 2901	EXP_SIGN.M	"MEM/ARL IND,ARL/ARMM,AR0-8/LOAD,ARMM/EXP_SIGN"
; 2902	EXP_SIGN.MS	"MEM/ARL IND,ARL/ARMM,COND/LD AR0-8,ARMM/EXP_SIGN";[224]
; 2903	.IF/MODEL.B
; 2904	EXT ADDR	"MEM/A RD,#/400,DISP/DRAM B"
; 2905	EXT BYTE READ	"MEM/EA CALC,EA CALC/BYTE RD,VMA/LOAD,GLOBAL"
; 2906	EXT BYTE RPW	"MEM/EA CALC,EA CALC/BYTE RPW,VMA/LOAD,GLOBAL";[337]
; 2907	EXT INDEX	"MEM/A RD,#/400,DISP/DRAM A RD"
; 2908	EXT INDRCT	"MEM/EA CALC,EA CALC/A IND,VMA/LOAD"
; 2909	.ENDIF/MODEL.B
; 2910	
; 2911	FE_#		"SCADA/#,SCAD/A,FE/SCAD"
; 2912	FE_# AND S	"SCADA/#,SCADB/AR6-11,SCAD/AND,FE/SCAD"
; 2913	FE_#+AR0-8	"SCADA/#,SCADB/AR0-8,SCAD/A+B,FE/SCAD"
; 2914	FE_#+SC		"SCADA/#,SCADB/SC,SCAD/A+B,FE/SCAD"
; 2915	FE_#-SC		"SCADA/#,SCADB/SC,SCAD/A-B,FE/SCAD"
; 2916	FE_+#		"SCADA EN/0S,SCADB/#,SCAD/A+B,FE/SCAD"
; 2917	FE_-1		"SCADA EN/0S,SCAD/A-1,FE/SCAD"
; 2918	FE_-S		"SCADA EN/0S,SCADB/AR6-11,SCAD/A-B,FE/SCAD";[337]
; 2919	FE_-SC		"SCADA EN/0S,SCADB/SC,SCAD/A-B,FE/SCAD"
; 2920	FE_-SC-1	"SCADA EN/0S,SCADB/SC,SCAD/A-B-1,FE/SCAD"
; 2921	FE_1		"SCADA EN/0S,SCAD/A+1,FE/SCAD"
; 2922	FE_AR0-8	"SCADA EN/0S,SCADB/AR0-8,SCAD/A+B,FE/SCAD"
; 2923	FE_AR0-8 AND #	"SCADA/#,SCADB/AR0-8,SCAD/AND,FE/SCAD"
; 2924	FE_AR0-8 COMP	"SCADA EN/0S,SCADB/AR0-8,SCAD/A-B-1,FE/SCAD"
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 6-1
; MACRO.MIC[10,5351]	19:52 24-Jul-85			CRAM Macros--E, F					

; 2925	FE_EXP		"SCADA/AR EXP,SCAD/A,FE/SCAD"
; 2926	FE_EXP+1	"SCADA/AR EXP,SCAD/A+1,FE/SCAD"
; 2927	FE_EXP+SC	"SCADA/AR EXP,SCADB/SC,SCAD/A+B,FE/SCAD"
; 2928	FE_EXP-#	"SCADA/AR EXP,SCADB/#,SCAD/A-B,FE/SCAD"
; 2929	FE_EXP-1	"SCADA/AR EXP,SCAD/A-1,FE/SCAD"
; 2930	FE_FE AND #	"SCADA/FE,SCADB/#,SCAD/AND,FE/SCAD"
; 2931	FE_FE AND AR0-8	"SCADA/FE,SCADB/AR0-8,SCAD/AND,FE/SCAD"
; 2932	FE_FE OR #	"SCADA/FE,SCADB/#,SCAD/OR,FE/SCAD"
; 2933	FE_FE OR AR0-8	"SCADA/FE,SCADB/AR0-8,SCAD/OR,FE/SCAD"
; 2934	FE_FE SHRT	"COND/FE SHRT,FE/0"
; 2935	FE_FE+#		"SCADA/FE,SCADB/#,SCAD/A+B,FE/SCAD"
; 2936	FE_FE+1		"SCADA/FE,SCAD/A+1,FE/SCAD"
; 2937	FE_FE+S		"SCADA/FE,SCADB/AR6-11,SCAD/A+B,FE/SCAD"
; 2938	FE_FE+SC	"SCADA/FE,SCADB/SC,SCAD/A+B,FE/SCAD"
; 2939	FE_FE-#		"SCADA/FE,SCADB/#,SCAD/A-B,FE/SCAD"
; 2940	FE_FE-1		"SCADA/FE,SCAD/A-1,FE/SCAD"
; 2941	FE_FE-S		"SCADA/FE,SCADB/AR6-11,SCAD/A-B,FE/SCAD"
; 2942	FE_FE-SC	"SCADA/FE,SCADB/SC,SCAD/A-B,FE/SCAD"
; 2943	FE_FE-SC-1	"SCADA/FE,SCADB/SC,SCAD/A-B-1,FE/SCAD"	;[343]
; 2944	FE_P		"SCADA/AR0-5,SCAD/A,FE/SCAD"
; 2945	FE_P AND #	"SCADA/AR0-5,SCADB/#,SCAD/AND,FE/SCAD"
; 2946	FE_P AND SC	"SCADA/AR0-5,SCADB/SC,SCAD/AND,FE/SCAD"
; 2947	FE_P OR #	"SCADA/AR0-5,SCADB/#,SCAD/OR,FE/SCAD"
; 2948	FE_P+1		"SCADA/AR0-5,SCAD/A+1,FE/SCAD"		;[343]
; 2949	FE_P+SC		"SCADA/AR0-5,SCADB/SC,SCAD/A+B,FE/SCAD"
; 2950	FE_P-S		"SCADA/AR0-5,SCADB/AR6-11,SCAD/A-B,FE/SCAD"
; 2951	FE_S		"SCADA EN/0S,SCADB/AR6-11,SCAD/A+B,FE/SCAD"
; 2952	FE_S+#		"SCADA/#,SCADB/AR6-11,SCAD/A+B,FE/SCAD"
; 2953	FE_SC		"SCADA EN/0S,SCADB/SC,SCAD/A+B,FE/SCAD"
; 2954	
; 2955	.IF/MODEL.B
; 2956	FETCH		"MEM/IFET"
; 2957	FETCH+1		"COND/VMA INC,MEM/IFET"
;;2958	.IFNOT/MODEL.B
;;2959	FETCH		"MEM/FETCH,FETCH/UNCOND"
;;2960	FETCH+1		"COND/VMA INC,MEM/FETCH,FETCH/UNCOND"
; 2961	.ENDIF/MODEL.B
; 2962	FETCH WAIT	"MEM/MB WAIT"		;See edit 111
; 2963	FILL		"R13"
; 2964	FILL_AR		"FILL,FM_AR"
; 2965	FIN LOAD	"ADB/FM,FMADR/VMA,AD/B"	;Finish load of AR or ARX, start new op
; 2966	FIN STORE	"FMADR/VMA"		;FINISH STORE, start new operation
; 2967	FIN XFER	"FMADR/VMA,ADB/FM,AD/B"	;Same as FIN LOAD
; 2968	FINISH		"J/FINI"	;USE INSTEAD OF NXT INSTR IF FM WRITE
; 2969	FM_AR		"COND/FM WRITE"
; 2970	FM[]_AR		"@1, FM_AR"
; 2971	.IF/MODEL.B
; 2972	FM(#)_AR	"FMADR/AC+#,AC-OP/AC+#,COND/FM WRITE"
; 2973	.ENDIF/MODEL.B
; 2974	FORCE AR-ARX	"ADB/AR*4,AD/B,AR/AD*.25,ARX/ADX*.25"
; 2975	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 7
; MACRO.MIC[10,5351]	19:52 24-Jul-85			CRAM Macros--G, H, I, J, L				

; 2976	.TOC	"CRAM Macros--G, H, I, J, L"
; 2977	
; 2978	GEN # AND AR0-8	"SCADA/#,SCADB/AR0-8,SCAD/AND"
; 2979	GEN #+AR0-8	"SCADA/#,SCADB/AR0-8,SCAD/A+B"
; 2980	GEN #+SC	"SCADA/#,SCADB/SC,SCAD/A+B"
; 2981	GEN #-SC	"SCADA/#,SCADB/SC,SCAD/A-B"
; 2982	GEN -AR LONG	"ADB/AR*4,ADA EN/0S,AD/A-B,SPEC/AD LONG"
; 2983	GEN -AR*4	"ADA EN/0S,ADB/AR*4,AD/A-B"
; 2984	GEN -SC		"SCADB/SC,SCADA EN/0S,SCAD/A-B"
; 2985	GEN -SC-1	"SCADB/SC,SCADA EN/0S,SCAD/A-B-1"
; 2986	GEN 0S		"AD/0S"
; 2987	GEN 2AR		"ADA/AR, AD/A*2"
; 2988	
; 2989	GEN AC0		"FMADR/AC0,ADB/FM,AD/B"
; 2990	GEN AC0+1	"FMADR/AC0,ADB/FM,ADA EN/0S,AD/A+B+1"
; 2991	GEN AR		"ADA/AR,AD/A"
; 2992	GEN AR*AC0	"FMADR/AC0,ADB/FM,ADA/AR"
; 2993	GEN AR*BR	"ADA/AR,ADB/BR"
; 2994	GEN AR*T0	"T0,ADB/FM,ADA/AR"
; 2995	GEN AR+1	"ADA/AR,AD/A+1"
; 2996	GEN AR+2BR	"ADA/AR,ADB/BR*2,AD/A+B"
; 2997	GEN AR+BR	"ADA/AR,ADB/BR,AD/A+B"
; 2998	GEN AR+E1	"E1,ADB/FM,ADA/AR,AD/A+B"
; 2999	GEN AR+FM[]	"ADA/AR,ADB/FM,@1,AD/A+B"
; 3000	GEN AR+XR	"FMADR/XR,ADB/FM,ADA/AR,AD/A+B"
; 3001	GEN AR-2BR	"ADA/AR,ADB/BR*2,AD/A-B"
; 3002	GEN AR-AC3	"FMADR/AC3,ADB/FM,ADA/AR,AD/A-B"
; 3003	GEN AR-BR	"ADA/AR,ADB/BR,AD/A-B"
; 3004	GEN AR-BR-1	"GEN AR*BR,AD/A-B-1"
; 3005	GEN AR-FM[]	"ADA/AR,ADB/FM,@1,AD/A-B"
; 3006	GEN AR0-8	"SCADA EN/0S,SCADB/AR0-8,SCAD/OR"
; 3007	GEN ARX		"ADA/ARX,AD/A"
; 3008	GEN ARX COMP	"ADA/ARX,AD/SETCA"
; 3009	GEN ARX*BR	"ADA/ARX,ADB/BR"		;[224]
; 3010	GEN ARX*BRX	"ADA EN/EN,ADB/BR"
; 3011	GEN ARX+1	"ADA/ARX,AD/A+1"
; 3012	GEN ARX+XR	"FMADR/XR,ADB/FM,ADA/ARX,AD/A+B"
; 3013	GEN ARX-1	"ADA/ARX,AD/A-1"
; 3014	
; 3015	GEN BR		"ADB/BR,AD/B"
; 3016	GEN BR*2	"ADB/BR*2,AD/B"
; 3017	GEN BR+ARX	"ADA/ARX,ADB/BR,AD/A+B"		;[230]
; 3018	GEN BRX+1	"ADA EN/0S,ADB/BR,AD/A+B+1"
; 3019	GEN CRY18	"SPEC/GEN CRY18"
; 3020	GEN E1		"E1, ADB/FM, AD/B"
; 3021	GEN FE		"SCADA/FE,SCAD/A"
; 3022	GEN FE AND #	"SCADA/FE,SCADB/#,SCAD/AND"
; 3023	GEN FE AND AR0-8 "SCADA/FE,SCADB/AR0-8,SCAD/AND"
; 3024	GEN FE AND S	"SCADA/FE,SCADB/AR6-11,SCAD/AND"
; 3025	GEN FE AND SC	"SCADA/FE,SCADB/SC,SCAD/AND"
; 3026	GEN FE OR AR0-8	"SCADA/FE,SCADB/AR0-8,SCAD/OR"	;[347]
; 3027	GEN FE+#	"SCADA/FE,SCADB/#,SCAD/A+B"
; 3028	GEN FE-#	"SCADA/FE,SCADB/#,SCAD/A-B"
; 3029	GEN FE-1	"SCADA/FE,SCAD/A-1"
; 3030	GEN FE-S	"SCADA/FE,SCADB/AR6-11,SCAD/A-B"
; 3031	GEN FE-SC	"SCADA/FE,SCADB/SC,SCAD/A-B"
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 7-1
; MACRO.MIC[10,5351]	19:52 24-Jul-85			CRAM Macros--G, H, I, J, L				

; 3032	GEN FE-SC-1	"SCADA/FE,SCADB/SC,SCAD/A-B-1"	; [303] For DPB to top byte
; 3033	GEN MQ		"ADA/MQ,AD/A"
; 3034	GEN MQ-AR	"ADA/MQ,ADB/AR,AD/A-B"
; 3035	GEN P AND #	"SCADA/AR0-5,SCADB/#,SCAD/AND"
; 3036	GEN P AND SC	"SCADA/AR0-5,SCADB/SC,SCAD/AND"
; 3037	GEN P+SC	"SCADA/AR0-5,SCADB/SC,SCAD/A+B"
; 3038	GEN P-#		"SCADA/AR0-5,SCADB/#,SCAD/A-B"		;[337]
; 3039	GEN P-S		"SCADA/AR0-5,SCADB/AR6-11,SCAD/A-B"
; 3040	GEN P-SC	"SCADA/AR0-5,SCADB/SC,SCAD/A-B"
; 3041	GEN SC		"SCADB/SC,SCADA EN/0S,SCAD/A+B"
; 3042	GEN SCAD 0S	"SCADA EN/0S,SCAD/A"
; 3043	GEN T1		"T1,ADB/FM,AD/B"
; 3044	GEN T2		"T2,ADB/FM,AD/B"
; 3045	GET ECL EBUS	"COND/EBUS CTL,EBUS CTL/GRAB EEBUS"
; 3046	GLOBAL		"SH/1"
; 3047	
; 3048	HALT		"SPEC/FLAG CTL,FLAG CTL/HALT"
; 3049	HARDPFW		"R17"				;Hard page fail word
; 3050	
; 3051	.IF/MODEL.B
; 3052	I FETCH		"VMA/PC+1,MEM/IFET"
;;3053	.IFNOT/MODEL.B
;;3054	I FETCH		"VMA/PC+1,MEM/FETCH,FETCH/UNCOND"
; 3055	.ENDIF/MODEL.B
; 3056	INDEXED		"SH/2"
; 3057	INH CRY18	"SPEC/INH CRY18"
; 3058	IO INIT		"COND/EBUS CTL,EBUS CTL/IO INIT"
; 3059	IR DISP		"DISP/DRAM J"
; 3060	
; 3061	JFCL FETCH	"VMA/PC+1,MEM/FETCH,FETCH/JFCL"
; 3062	JFCL S		"SPEC/FLAG CTL,FLAG CTL/JFCL+LD"
; 3063	JFCL T		"SPEC/FLAG CTL,FLAG CTL/JFCL"
; 3064	JUMP FETCH	"VMA/PC+1,MEM/FETCH,FETCH/JUMP"
; 3065	
; 3066	LD PCS		"COND/DIAG FUNC,TIME/5T,DIAG FUNC/LD PCS+CWSX,ADA/ARX,AD/A"
; 3067	LD PREV CTXT	"COND/DIAG FUNC,TIME/5T,DIAG FUNC/LD PCS+CWSX,ADA/PC,AD/A"
; 3068	LOAD AR		"MEM/LOAD AR"
; 3069	.IF/MODEL.B
; 3070	LOAD AR (RPW)	"MEM/RPW"
; 3071	LOAD AR (WR TST)	"MEM/EA CALC,EA CALC/LD AR+WR"
; 3072	.ENDIF/MODEL.B
; 3073	LOAD ARX	"MEM/LOAD ARX"
; 3074	.IF/MODEL.B
; 3075	LOAD ARX (WR TST)	"MEM/EA CALC,EA CALC/LD ARX+WR"
; 3076	.ENDIF/MODEL.B
; 3077	LOAD EBR	"MEM/REG FUNC,MREG FNC/LOAD EBR"
; 3078	.IF/MODEL.B
; 3079	LOAD IR		"COND/LOAD IR,PXCT/0"
;;3080	.IFNOT/MODEL.B
;;3081	LOAD IR		"COND/LOAD IR"
; 3082	.ENDIF/MODEL.B
; 3083	LOAD UBR	"MEM/REG FUNC,MREG FNC/LOAD UBR"
; 3084	.IF/BLT.PXCT
; 3085	LOAD VMA(EA)_ARX+BR "VMA/LOAD,MEM/EA CALC,EA CALC/LD AR(EA),ADA/ARX,ADB/BR,AD/A+B"
;;3086	.IFNOT/BLT.PXCT
;;3087	LOAD VMA(EA)_ARX+BR "ADA/ARX,ADB/BR,AD/A+B,VMA/AD,LOAD AR"
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 7-2
; MACRO.MIC[10,5351]	19:52 24-Jul-85			CRAM Macros--G, H, I, J, L				

; 3088	.ENDIF/BLT.PXCT
; 3089	.IF/MODEL.B
; 3090	LONG EN		"COND/LONG EN"
; 3091	.ENDIF/MODEL.B
; 3092	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 8
; MACRO.MIC[10,5351]	19:52 24-Jul-85			CRAM Macros--M, N, O, P					

; 3093	.TOC	"CRAM Macros--M, N, O, P"
; 3094	
; 3095	MAP		"MEM/REG FUNC,MREG FNC/MAP"
; 3096	MB WAIT		"MEM/MB WAIT"
; 3097	MEM_AR		"FMADR/VMA,MEM/MB WAIT"
; 3098	
; 3099	MQ_0.C		"COND/ARL IND,CLR/MQ"
; 3100	MQ_0.M		"MEM/ARL IND,CLR/MQ"
; 3101	MQ_0.S		"SPEC/ARL IND,CLR/MQ"
; 3102	MQ_1		"ADA EN/0S,AD/A+1,MQ_AD"
; 3103	MQ_1S		"COND/REG CTL,MQ/MQM SEL,MQ CTL/1S"
; 3104	MQ_AD		"COND/REG CTL,MQ/MQM SEL,MQ CTL/AD"
; 3105	MQ_AR		"SH/AR,MQ/SH"
; 3106	MQ_AR (AD)	"ADA/AR,AD/A,MQ_AD"
; 3107	MQ_AR COMP	"ADA/AR,AD/SETCA,MQ_AD"
; 3108	MQ_AR SWAP	"SH/AR SWAP,MQ/SH"
; 3109	MQ_ARX		"SH/ARX,MQ/SH"
; 3110	MQ_ARX COMP	"ADA/ARX,AD/SETCA,MQ_AD"
; 3111	MQ_BR		"ADB/BR,AD/B,MQ_AD"
; 3112	MQ_BR COMP	"ADB/BR,AD/SETCB,MQ_AD"
; 3113	MQ_FM[]		"ADB/FM,@1,AD/B,MQ_AD"			;[343]
; 3114	MQ_MQ*.25	"SPEC/MQ SHIFT,MQ/MQ*.25"
; 3115	MQ_MQ*2		"SPEC/MQ SHIFT,MQ/MQ*2"
; 3116	MQ_MQ*BR	"ADA/MQ, ADB/BR, MQ_AD"
; 3117	MQ_MQ-1		"ADA/MQ,AD/A-1,MQ_AD"			;[343]
; 3118	MQ_SHIFT	"SH/SHIFT AR!ARX,MQ/SH"
; 3119	
; 3120	MSK		"R7"
; 3121	MSK_AR		"MSK,FM_AR"
; 3122	MUL		"FE_FE+1,DISP/MUL,MQ/MQ*.25"
; 3123	
; 3124	
; 3125	NO CRY		"AD/SETCA"
; 3126	NORM		"DISP/NORM"
; 3127	NORM -AR	"ADA EN/0S,ADB/AR*4,AD/A-B,AR/AD*.25,ARX/ADX*.25,DISP/NORM"
; 3128	NORM AR		"ADB/AR*4,AD/B,DISP/NORM"
; 3129	NXT INSTR	"MEM/MB WAIT,DISP/NICOND,#/0,CLR SC,CLR FE,J/NEXT"
; 3130	
; 3131	OPTIONS		"ISTAT/OPTIONS,KLPAGE/OPTIONS,LONGPC/OPTIONS,NONSTD/OPTIONS,PV/OPTIONS"
; 3132	
; 3133	P_#		"SCADA/#,SCAD/A,P_SCAD#"
; 3134	P_#-S		"SCADA/#,SCADB/AR6-11,SCAD/A-B,P_SCAD#"
; 3135	P_#-SC		"SCADA/#,SCADB/SC,SCAD/A-B,P_SCAD#"	;[343]
; 3136	P_-SC		"SCADA EN/0S,SCADB/SC,SCAD/A-B,P_SCAD"
; 3137	P_0		"SCADA EN/0S,SCAD/A,P_SCAD"
; 3138	P_1S		"SCADA EN/0S,SCAD/A-1,P_SCAD"
; 3139	P_FE		"SCADA/FE,SCAD/A,P_SCAD"
; 3140	P_FE OR SC	"SCADA/FE,SCADB/SC,SCAD/OR,P_SCAD"
; 3141	P_FE+SC		"SCADA/FE,SCADB/SC,SCAD/A+B,P_SCAD.C"
; 3142	P_FE-S		"SCADA/FE,SCADB/AR6-11,SCAD/A-B,P_SCAD.C"
; 3143	P_FE-S.S	"SCADA/FE,SCADB/AR6-11,SCAD/A-B,P_SCAD.S"
; 3144	P_FE.C		"SCADA/FE,SCAD/A,P_SCAD#"
; 3145	P_P AND #	"SCADA/AR0-5,SCADB/#,SCAD/AND,P_SCAD#"
; 3146	P_P AND SC	"SCADA/AR0-5,SCADB/SC,SCAD/AND,P_SCAD"
; 3147	P_P OR #	"SCADA/AR0-5,SCADB/#,SCAD/OR,P_SCAD#"
; 3148	P_P OR SC	"SCADA/AR0-5,SCADB/SC,SCAD/OR,P_SCAD"
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 8-1
; MACRO.MIC[10,5351]	19:52 24-Jul-85			CRAM Macros--M, N, O, P					

; 3149	P_P OR SC#	"SCADA/AR0-5,SCADB/SC,SCAD/OR,P_SCAD#"
; 3150	P_P+#		"SCADA/AR0-5,SCADB/#,SCAD/A+B,P_SCAD#"
; 3151	P_P+1		"SCADA/AR0-5,SCAD/A+1,P_SCAD#"		;[337]
; 3152	P_P+S		"SCADA/AR0-5,SCADB/AR6-11,SCAD/A+B,P_SCAD"
; 3153	P_P+S.C		"SCADA/AR0-5,SCADB/AR6-11,SCAD/A+B,P_SCAD#"
; 3154	P_P-S		"SCADA/AR0-5,SCADB/AR6-11,SCAD/A-B,P_SCAD"
; 3155	P_SC		"SCADA EN/0S,SCADB/SC,SCAD/A+B,P_SCAD"
; 3156	P_SC#		"SCADA EN/0S,SCADB/SC,SCAD/A+B,P_SCAD#"
; 3157	P_SCAD		"MEM/ARL IND,ARL/ARMM,AR0-8/LOAD,ARMM/SCAD POS"
; 3158	P_SCAD#		"COND/LD AR0-8,AR/ARMM,ARMM/SCAD POS"
; 3159	P_SCAD.C	"COND/ARL IND,ARL/ARMM,AR0-8/LOAD,ARMM/SCAD POS"
; 3160	P_SCAD.S	"SPEC/ARL IND,ARL/ARMM,AR0-8/LOAD,ARMM/SCAD POS"
; 3161	
; 3162	P0		"FMADR/#B#,ACB/PAGB,AC#/0"	Paging AC 0
; 3163	P1		"FMADR/#B#,ACB/PAGB,AC#/1"
; 3164	P10		"FMADR/#B#,ACB/PAGB,AC#/10"
; 3165	P11		"FMADR/#B#,ACB/PAGB,AC#/11"
; 3166	P12		"FMADR/#B#,ACB/PAGB,AC#/12"
; 3167	P13		"FMADR/#B#,ACB/PAGB,AC#/13"
; 3168	P14		"FMADR/#B#,ACB/PAGB,AC#/14"
; 3169	P15		"FMADR/#B#,ACB/PAGB,AC#/15"
; 3170	P16		"FMADR/#B#,ACB/PAGB,AC#/16"
; 3171	P17		"FMADR/#B#,ACB/PAGB,AC#/17"
; 3172	P2		"FMADR/#B#,ACB/PAGB,AC#/2"
; 3173	P3		"FMADR/#B#,ACB/PAGB,AC#/3"
; 3174	P4		"FMADR/#B#,ACB/PAGB,AC#/4"
; 3175	P5		"FMADR/#B#,ACB/PAGB,AC#/5"
; 3176	P6		"FMADR/#B#,ACB/PAGB,AC#/6"
; 3177	P7		"FMADR/#B#,ACB/PAGB,AC#/7"
; 3178	
; 3179	PC_VMA		"SPEC/LOAD PC"
; 3180	PF DISP		"DISP/PG FAIL"
; 3181	.IF/KLPAGE
; 3182	PFA		"P4"
; 3183	PFA_AR		"PFA,COND/FM WRITE"
; 3184	.ENDIF/KLPAGE
; 3185	PHYS REF	"SPEC/SP MEM CYCLE,SP MEM/UNPAGED"
; 3186	PHYS REF CACHE	"SPEC/SP MEM CYCLE,SP MEM/UNPAGED+CACHED"
; 3187	.IF/MODEL.B
; 3188	POP AR		"MEM/EA CALC,EA CALC/POP AR,VMA/LOAD"
; 3189	POP AR-ARX	"MEM/EA CALC,EA CALC/POP AR-ARX,VMA/LOAD"
; 3190	POP ARX		"MEM/EA CALC,EA CALC/POP ARX,VMA/LOAD"
; 3191	.ENDIF/MODEL.B
; 3192	PORTAL		"SPEC/FLAG CTL,FLAG CTL/PORTAL"
; 3193	PT FETCH	"MEM/LOAD ARX,SPEC/SP MEM CYCLE,SP MEM/PT FETCH"
; 3194	PT REF		"SPEC/SP MEM CYCLE,SP MEM/PT"
; 3195	PT SEL_INVAL	"COND/MBOX CTL,MBOX CTL/PT DIR CLR"
; 3196	PT SEL_INVAL (KEEP) "COND/MBOX CTL,MBOX CTL/PT DIR CLR(NK)"
; 3197	PT SEL_NORMAL	"COND/MBOX CTL,MBOX CTL/NORMAL"
; 3198	.IF/KLPAGE
; 3199	PUR		"P1"
; 3200	.ENDIF/KLPAGE
; 3201	.IF/MODEL.B
; 3202	PUSH		"MEM/EA CALC,EA CALC/PUSH,VMA/LOAD,SPEC/STACK UPDATE"
; 3203	.ENDIF/MODEL.B
; 3204	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 9
; MACRO.MIC[10,5351]	19:52 24-Jul-85			CRAM Macros--R						

; 3205	.TOC	"CRAM Macros--R"
; 3206	
; 3207	R0		"FMADR/#B#,ACB/MICROB,AC#/0"	Scratch register 0
; 3208	R1		"FMADR/#B#,ACB/MICROB,AC#/1"	Scratch register 1
; 3209	R10		"FMADR/#B#,ACB/MICROB,AC#/10"	Scratch register 10
; 3210	R11		"FMADR/#B#,ACB/MICROB,AC#/11"	Scratch register 11
; 3211	R12		"FMADR/#B#,ACB/MICROB,AC#/12"	Scratch register 12
; 3212	R13		"FMADR/#B#,ACB/MICROB,AC#/13"	Scratch register 13
; 3213	R14		"FMADR/#B#,ACB/MICROB,AC#/14"	Scratch register 14
; 3214	R15		"FMADR/#B#,ACB/MICROB,AC#/15"	Scratch register 15
; 3215	R16		"FMADR/#B#,ACB/MICROB,AC#/16"	Scratch register 16
; 3216	R17		"FMADR/#B#,ACB/MICROB,AC#/17"	Scratch register 17
; 3217	R2		"FMADR/#B#,ACB/MICROB,AC#/2"	Scratch register 2
; 3218	R3		"FMADR/#B#,ACB/MICROB,AC#/3"	Scratch register 3
; 3219	R4		"FMADR/#B#,ACB/MICROB,AC#/4"	Scratch register 4
; 3220	R5		"FMADR/#B#,ACB/MICROB,AC#/5"	Scratch register 5
; 3221	R6		"FMADR/#B#,ACB/MICROB,AC#/6"	Scratch register 6
; 3222	R7		"FMADR/#B#,ACB/MICROB,AC#/7"	Scratch register 7
; 3223	
; 3224	RD+CLR C CNT	"SPEC/MTR CTL,AR_CACHE CNT"
; 3225	RD+CLR E CNT	"SPEC/MTR CTL,AR_EBOX CNT"
; 3226	RD+CLR PA	"SPEC/MTR CTL,AR_PERF CNT"
; 3227	RD+CLR TB	"SPEC/MTR CTL,AR_TIME BASE"
; 3228	.IF/MODEL.B
; 3229	READ BP2	"MEM/EA CALC,EA CALC/BYTE IND,VMA/VMA,COND/VMA INC"
; 3230	.ENDIF/MODEL.B
; 3231	READ EBR	"MEM/REG FUNC,MREG FNC/READ EBR"
; 3232	READ ERA	"MEM/REG FUNC,MREG FNC/READ ERA"
; 3233	READ UBR	"MEM/REG FUNC,MREG FNC/READ UBR"
; 3234	REL EBUS	"COND/EBUS CTL,EBUS CTL/REL EBUS"
; 3235	REL ECL EBUS	"COND/EBUS CTL,EBUS CTL/REL EEBUS"
; 3236	REQ EBUS	"COND/EBUS CTL,EBUS CTL/REQ EBUS"
; 3237	.IF/KLPAGE
; 3238	REQ SV.VMA	"SV.VMA,ADB/FM,AD/B,VMA/1,MEM/AD FUNC"
; 3239	REQ VMA HELD	"COND/SEL VMA,ADA/PC,AD/A,VMA/1,MEM/AD FUNC"
; 3240	.ENDIF/KLPAGE
; 3241	
; 3242	RET[]		"DISP/RETURN,J/@1"
; 3243	RETURN []	"DISP/RETURN,J/@1"
; 3244	RETURN0		"DISP/RETURN,J/0"
; 3245	RETURN1		"DISP/RETURN,J/1"
; 3246	RETURN10	"DISP/RETURN,J/10"
; 3247	RETURN12	"DISP/RETURN,J/12"
; 3248	RETURN15	"DISP/RETURN,J/15"			;[343]
; 3249	RETURN16	"DISP/RETURN,J/16"			;[337]
; 3250	RETURN17	"DISP/RETURN,J/17"			;[337]
; 3251	RETURN2		"DISP/RETURN,J/2"
; 3252	RETURN20	"DISP/RETURN,J/20"
; 3253	RETURN3		"DISP/RETURN,J/3"
; 3254	RETURN30	"DISP/RETURN,J/30"
; 3255	RETURN37	"DISP/RETURN,J/37"
; 3256	RETURN4		"DISP/RETURN,J/4"
; 3257	RETURN5		"DISP/RETURN,J/5"
; 3258	RETURN6		"DISP/RETURN,J/6"
; 3259	RETURN7		"DISP/RETURN,J/7"
; 3260	RSTR FLAGS_AR	"SPEC/FLAG CTL,FLAG CTL/RSTR FLAGS"
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 9-1
; MACRO.MIC[10,5351]	19:52 24-Jul-85			CRAM Macros--R						

; 3261	.IF/KLPAGE
; 3262	RSTR VMA_ARX	"ADA/ARX,AD/A,VMA/LOAD,MEM/RESTORE VMA"
; 3263	RSTR VMA_MQ	"ADA/MQ,AD/A,VMA/LOAD,MEM/RESTORE VMA"
; 3264	RSTR VMA_SV.VMA	"SV.VMA,ADB/FM,AD/B,VMA/LOAD,MEM/RESTORE VMA"
; 3265	.ENDIF/KLPAGE
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 10
; MACRO.MIC[10,5351]	19:52 24-Jul-85			CRAM Macros--S						

; 3266	.TOC	"CRAM Macros--S"
; 3267	
; 3268	.IF/KLPAGE
; 3269	SBR		"P3"
; 3270	.ENDIF/KLPAGE
; 3271	SBUS DIAG	"MEM/REG FUNC,MREG FNC/SBUS DIAG"
; 3272	
; 3273	SC_#		"SCADA/#,SCAD/A,SC/SCAD"
; 3274	SC_# AND AR0-8	"SCADA/#,SCADB/AR0-8,SCAD/AND,SC/SCAD"
; 3275	SC_# AND S	"SCADA/#,SCADB/AR6-11,SCAD/AND,SC/SCAD"
; 3276	SC_# OR SC	"SCADA/#,SCADB/SC,SCAD/OR,SC/SCAD"
; 3277	SC_#+AR0-8	"SCADA/#,SCADB/AR0-8,SCAD/A+B,SC/SCAD"
; 3278	SC_#+SC		"SCADA/#,SCADB/SC,SCAD/A+B,SC/SCAD"
; 3279	SC_#-S		"SCADA/#,SCADB/AR6-11,SCAD/A-B,SC/SCAD"
; 3280	SC_#-SC		"SCADA/#,SCADB/SC,SCAD/A-B,SC/SCAD"
; 3281	SC_#-SC-1	"SCADA/#,SCADB/SC,SCAD/A-B-1,SC/SCAD"
; 3282	SC_-S		"SCADA EN/0S,SCADB/AR6-11,SCAD/A-B,SC/SCAD";[343]
; 3283	SC_-SC		"SCADA EN/0S,SCADB/SC,SCAD/A-B,SC/SCAD"
; 3284	SC_-SC-1	"SCADA EN/0S,SCADB/SC,SCAD/A-B-1,SC/SCAD"
; 3285	SC_0		"SCADA EN/0S,SCAD/A,SC/SCAD"
; 3286	SC_1		"SCADA EN/0S,SCAD/A+1,SC/SCAD"
; 3287	SC_1S		"SCADA EN/0S,SCAD/A-1,SC/SCAD"
; 3288	SC_AR0-8	"SCADA EN/0S,SCADB/AR0-8,SCAD/A+B,SC/SCAD" ;[231]
; 3289	SC_EA		"SPEC/SCM ALT,SC/AR SHIFT"
; 3290	SC_EXP		"SCADA/AR EXP,SCAD/A,SC/SCAD"
; 3291	SC_EXP+1	"SCADA/AR EXP,SCAD/A+1,SC/SCAD"
; 3292	SC_EXP+SC	"SCADA/AR EXP,SCADB/SC,SCAD/A+B,SC/SCAD"
; 3293	SC_EXP-#	"SCADA/AR EXP,SCADB/#,SCAD/A-B,SC/SCAD"
; 3294	SC_EXP-1	"SCADA/AR EXP,SCAD/A-1,SC/SCAD"
; 3295	SC_EXP-SC	"SCADA/AR EXP,SCADB/SC,SCAD/A-B,SC/SCAD"
; 3296	SC_FE		"SPEC/SCM ALT,SC/FE"
; 3297	SC_FE AND #	"SCADA/FE,SCADB/#,SCAD/AND,SC/SCAD"
; 3298	SC_FE#		"SCADA/FE,SCAD/A,SC/SCAD"	  ;[337] If SPEC is in conflict
; 3299	SC_FE+#		"SCADA/FE,SCADB/#,SCAD/A+B,SC/SCAD"
; 3300	SC_FE+1		"SCADA/FE,SCAD/A+1,SC/SCAD"
; 3301	SC_FE+S		"SCADA/FE,SCADB/AR6-11,SCAD/A+B,SC/SCAD"
; 3302	SC_FE+SC	"SCADA/FE,SCADB/SC,SCAD/A+B,SC/SCAD"
; 3303	SC_FE-#		"SCADA/FE,SCADB/#,SCAD/A-B,SC/SCAD"
; 3304	SC_FE-1		"SCADA/FE,SCAD/A-1,SC/SCAD"
; 3305	SC_FE-SC	"SCADA/FE,SCADB/SC,SCAD/A-B,SC/SCAD"
; 3306	SC_FE-SC-1	"SCADA/FE,SCADB/SC,SCAD/A-B-1,SC/SCAD"
; 3307	SC_P		"SCADA/AR0-5,SCAD/A,SC/SCAD"
; 3308	SC_P AND #	"SCADA/AR0-5,SCADB/#,SCAD/AND,SC/SCAD"
; 3309	SC_P AND SC	"SCADA/AR0-5,SCADB/SC,SCAD/AND,SC/SCAD"
; 3310	SC_P+1		"SCADA/AR0-5,SCAD/A+1,SC/SCAD"		;[337]
; 3311	SC_P+S		"SCADA/AR0-5,SCADB/AR6-11,SCAD/A+B,SC/SCAD";[343]
; 3312	SC_P-#		"SCADA/AR0-5,SCADB/#,SCAD/A-B,SC/SCAD"
; 3313	SC_S		"SCADB/AR6-11,SCADA EN/0S,SCAD/A+B,SC/SCAD"
; 3314	SC_SC AND #	"SCADA/#,SCADB/SC,SCAD/AND,SC/SCAD"
; 3315	
; 3316	.IF/MODEL.B
; 3317	SEL AC4		"AC-OP/AC+#,AC#/4"
; 3318	SEL DSTP	"AC-OP/AC+#,AC#/4"
; 3319	SEL DSTP2	"AC-OP/AC+#,AC#/5"
; 3320	.ENDIF/MODEL.B
; 3321	SET ACC+CLR UCODE	"COND/EBOX STATE,#/005"
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 10-1
; MACRO.MIC[10,5351]	19:52 24-Jul-85			CRAM Macros--S						

; 3322	SET ACCOUNT EN	"COND/EBOX STATE,#/105"
; 3323	SET AROV	"COND/PCF_#,PC FLAGS/AROV"
; 3324	SET CONS XCT	"COND/SPEC INSTR,SPEC INSTR/CONS XCT"
; 3325	SET DATAI	"COND/EBUS CTL,EBUS CTL/DATAI,AD/0S,AR/AD"
; 3326	SET DATAO	"COND/EBUS CTL,EBUS CTL/DATAO"
; 3327	SET EBUS DEMAND	"COND/EBUS CTL,EBUS CTL/EBUS DEMAND"
; 3328	SET FL NO DIV	"COND/PCF_#,PC FLAGS/FDV CHK"
; 3329	SET FLAGS_AR	"SPEC/FLAG CTL,FLAG CTL/SET FLAGS"
; 3330	SET FLOV	"COND/PCF_#,PC FLAGS/FLOV"
; 3331	SET FPD		"COND/PCF_#,PC FLAGS/FPD"
; 3332	SET FXU		"COND/PCF_#,PC FLAGS/FXU"	;[224]
; 3333	SET HALTED	"COND/SPEC INSTR,SPEC INSTR/HALTED"
; 3334	SET IO PF	"COND/MBOX CTL,MBOX CTL/SET IO PF ERR"
; 3335	SET MTR PA EN	"COND/EBOX STATE,#/225"
; 3336	SET NO DIVIDE	"COND/PCF_#,PC FLAGS/DIV CHK"
; 3337	SET PC+1 INH	"COND/SPEC INSTR,SPEC INSTR/INH PC+1"
; 3338	SET PI CYCLE	"COND/SPEC INSTR,SPEC INSTR/SET PI CYCLE"
; 3339	SET PXCT	"COND/SPEC INSTR,SPEC INSTR/PXCT"
; 3340	SET SR1		"COND/SR_#,#/64"
; 3341	SET SR2		"COND/SR_#,#/62"
; 3342	SET SR3		"COND/SR_#,#/61"
; 3343	SET SXCT	"COND/SPEC INSTR,SPEC INSTR/SXCT"
; 3344	SET TRACKS EN	"COND/EBOX STATE,#/131"
; 3345	SET TRK+PA EN	"COND/EBOX STATE,#/231"
; 3346	SFLGS		"FMADR/AC0"
; 3347	SFLGS_AR	"SFLGS,FM_AR"
; 3348	SH DISP		"SH/SHIFT AR!ARX,DISP/SH0-3"
; 3349	SIGNS DISP	"DISP/SIGNS"
; 3350	SKIP FETCH	"ADA/AR,AD/A,VMA/PC+1,MEM/FETCH,FETCH/SKIP"
; 3351	
; 3352	SKP -EBUS GRANT	"SKIP/-EBUS GRANT"
; 3353	SKP -EBUS XFER	"SKIP/-EBUS XFER"
; 3354	.IF/MODEL.B
; 3355	SKP -LOCAL AC ADDR	"SKIP/-LOCAL AC ADDR"
; 3356	.ENDIF/MODEL.B
; 3357	SKP -START	"SKIP/-START"
; 3358	.IF/MODEL.B
; 3359	SKP -VMA SEC0	"SKIP/-VMA SEC0"
; 3360	.ENDIF/MODEL.B
; 3361	SKP AC EQ 0	"SKIP/AC#0"			;[343] More mnemonic than AC#0
; 3362	SKP AC REF	"SKIP/AC REF"
; 3363	SKP AC#0	"SKIP/AC#0"
; 3364	SKP AC0+	"FMADR/AC0,ADB/FM,AD/SETCB,SKIP/AD0"
; 3365	SKP AC0-	"FMADR/AC0,ADB/FM,AD/B,SKIP/AD0"
; 3366	SKP AD NE	"SKIP/AD#0"
; 3367	SKP AD NZ	"SKIP/AD#0"			;Mnemonic synonym
; 3368	SKP AD0		"SKIP/AD0"
; 3369	SKP ADX0	"SKIP/ADX0"
; 3370	SKP AR EQ	"ADA EN/0S,ADB/AR*4,AD/ORCB+1,SKIP/AD CRY0"
; 3371	SKP AR EQ -1	"ADA/AR,AD/CRY A EQ -1,SKIP/AD CRY0"
; 3372	SKP AR GT BR	"ADA/AR,ADB/BR,AD/XOR,SKIP/AD CRY0"
; 3373	SKP AR NE	"ADA/AR,AD/CRY A#0,SKIP/AD CRY0"
; 3374	SKP AR NE BR	"ADA/AR,ADB/BR,AD/XOR,SKIP/AD#0"
; 3375	SKP AR NZ	"ADA/AR,AD/A,SKIP/AD#0"			;[343]
; 3376	SKP AR SIG	"ADA/AR,AD/A+XCRY,SPEC/XCRY AR0,SKIP/AD#0"
; 3377	SKP AR0		"SKIP/AR0"
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 10-2
; MACRO.MIC[10,5351]	19:52 24-Jul-85			CRAM Macros--S						

; 3378	SKP AR1		"ADA/AR,AD/A*2,SKIP/AD0"
; 3379	SKP AR18	"SKIP/AR18"
; 3380	SKP AR2		"ADB/AR*4,AD/B,SKIP/AD0"
; 3381	SKP AR6		"SCADB/AR6-11,SCADA/#,#/40,SCAD/AND,SKIP/SCAD#0"
; 3382	SKP ARX LE BRX	"ADA EN/EN,ADB/BR,AD/A-B-1,SKIP/ADX0"
; 3383	SKP ARX LT BRX	"ADA EN/EN,ADB/BR,AD/A-B,SKIP/ADX0"
; 3384	SKP ARX NE	"ADA/ARX,AD/CRY A#0,SKIP/AD CRY0"
; 3385	SKP ARX NZ	"ADA/ARX,AD/A,SKIP/AD#0"		;[343]
; 3386	SKP ARX+MQ NE	"ADA/MQ,AD/CRY A#0,SPEC/AD LONG,SKIP/AD CRY0"
; 3387	SKP ARX0	"SKIP/ARX0"
; 3388	SKP ARX2	"ADB/AR*4,AD/B,SKIP/ADX0"
; 3389	
; 3390	SKP BR EQ	"ADA EN/0S,ADB/BR,AD/CRY A GE B,SKIP/AD CRY0"
; 3391	SKP BR EQ -1	"ADA EN/0S,ADB/BR,AD/A+B+1,SKIP/AD CRY0"
; 3392	SKP BR0		"SKIP/BR0"
; 3393	SKP CRY0	"SKIP/AD CRY0"
; 3394	SKP EVEN PAR	"SKIP/EVEN PAR"
; 3395	SKP EXP NE	"SCADA/AR EXP,SCAD/A,SKIP/SCAD#0"
; 3396	SKP FE NZ	"SCADA/FE,SCAD/A,SKIP/SCAD#0"
; 3397	SKP FE0		"SCADA/FE,SCAD/A,SKIP/SCAD0"
; 3398	SKP FETCH	"SKIP/FETCH"
; 3399	SKP INTRPT	"SKIP/INTRPT"
; 3400	SKP IO LEGAL	"SKIP/IO LEGAL"
; 3401	SKP KERNEL	"SKIP/KERNEL"
; 3402	SKP MQ EQ -1	"ADA/MQ,AD/CRY A EQ -1,SKIP/AD CRY0"
; 3403	SKP MQ NE	"ADA/MQ,AD/CRY A#0,SKIP/AD CRY0"
; 3404	SKP P NE	"SCADA/AR0-5,SCAD/A,SKIP/SCAD#0"
; 3405	SKP P!S XCT	"SKIP/P!S XCT"
; 3406	.IF/MODEL.B
; 3407	SKP PC SEC0	"SKIP/PC SEC0"
; 3408	.ENDIF/MODEL.B
; 3409	SKP PI CYCLE	"SKIP/PI CYCLE"
; 3410	SKP RPW		"SKIP/RPW REF"
; 3411	SKP RUN		"SKIP/RUN"
;;3412	.IFNOT/MODEL.B
;;3413	SKP SC LE 36	"SCADB/SC,SCADA/#,#/-36.,SCAD/A+B,SKIP/SCAD0"
; 3414	.ENDIF/MODEL.B
; 3415	SKP SC NE	"SCADB/SC,SCADA EN/0S,SCAD/A+B,SKIP/SCAD#0"
; 3416	SKP SC NZ	"SCADA EN/0S,SCADB/SC,SCAD/A+B,SKIP/SCAD#0"
; 3417	SKP SC0		"SKIP/SC0"
; 3418	SKP SCAD NE	"SKIP/SCAD#0"
; 3419	SKP SCAD NZ	"SKIP/SCAD#0"			;[347]
; 3420	SKP SCAD0	"SKIP/SCAD0"
; 3421	SKP USER	"SKIP/USER"
; 3422	
; 3423	SLEN		"R10"		;MUST BE 170
; 3424	SLEN_AR		"SLEN,FM_AR"
; 3425	SR DISP		"DISP/SR"
; 3426	SR_#		"COND/SR_#"		;USED FOR NON-PAGE-FAIL APPLICATIONS
; 3427	SR_0		"COND/SR_#,#/0"
; 3428	SR_1		"COND/SR_#,#/1"
; 3429	SR_2		"COND/SR_#,#/2"		;[224]
; 3430	.IF/MODEL.B
; 3431	SR_BDD		"COND/SR_#,#/206"	;B2D AFTER UPDATING DST PTR
; 3432	SR_BDF		"COND/SR_#,#/203"	;B2D STORING FILLERS
; 3433	SR_BDT		"COND/SR_#,#/010"	;B2D IN TRANSLATION
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 10-3
; MACRO.MIC[10,5351]	19:52 24-Jul-85			CRAM Macros--S						

; 3434	SR_BLT(DST)	"COND/SR_#,#/507"
; 3435	.IF/BLT.PXCT
; 3436	SR_BLT(PXCT DST)"COND/SR_#,#/107"
; 3437	SR_BLT(PXCT SRC)"COND/SR_#,#/307"	;SPECIAL FOR PXCT
; 3438	.ENDIF/BLT.PXCT
; 3439	SR_BLT(SRC)	"COND/SR_#,#/707"
; 3440	SR_DB		"COND/SR_#,#/102"	;D2B ANYWHERE
; 3441	SR_DST		"COND/SR_#,#/212"
; 3442	SR_DSTF		"COND/SR_#,#/214"
; 3443	SR_ED(+D)	"COND/SR_#,#/224"
; 3444	SR_ED(PAT)	"COND/SR_#,#/0"	;PATTERN REF IS EXTENDED
; 3445	SR_ED(S)	"COND/SR_#,#/101"
;;3446	.IFNOT/MODEL.B
;;3447	SR_BDD		"COND/SR_#,#/6"		;B2D AFTER UPDATING DST PTR
;;3448	SR_BDF		"COND/SR_#,#/3"		;B2D STORING FILLERS
;;3449	SR_BDT		"COND/SR_#,#/10"	;B2D IN TRANSLATION
;;3450	SR_BLT(DST)	"COND/SR_#,#/107"	;  BY PXCT 10,4
;;3451	SR_BLT(SRC)	"COND/SR_#,#/607"	;CONTEXT CONTROLLED BY PXCT 2,1
;;3452	SR_DB		"COND/SR_#,#/2"		;D2B ANYWHERE
;;3453	SR_DST		"COND/SR_#,#/12"
;;3454	SR_DSTF		"COND/SR_#,#/14"
;;3455	SR_ED(+D)	"COND/SR_#,#/24"
;;3456	SR_ED(PAT)	"COND/SR_#,#/0"
;;3457	SR_ED(S)	"COND/SR_#,#/1"
; 3458	.ENDIF/MODEL.B
; 3459	.IF/KLPAGE
; 3460	SR_MAP		"COND/SR_#,#/15"	;CATCH MAP PAGE FAILURES
; 3461	.ENDIF/KLPAGE
; 3462	.IF/MODEL.B
; 3463	SR_SRC		"COND/SR_#,#/111"
; 3464	SR_SRC+DST	"COND/SR_#,#/213"
;;3465	.IFNOT/MODEL.B
;;3466	SR_SRC		"COND/SR_#,#/11"
;;3467	SR_SRC+DST	"COND/SR_#,#/13"
; 3468	.ENDIF/MODEL.B
; 3469	SR_WORD		"COND/SR_#,#/17"	;WORD MOVES OF STRING INSTRS
; 3470	.IF/MODEL.B
; 3471	.IF/XADDR
; 3472	SR_XBLT(DST)	"COND/SR_#,#/316"
; 3473	SR_XBLT(SRC)	"COND/SR_#,#/216"
; 3474	.ENDIF/XADDR
; 3475	.ENDIF/MODEL.B
; 3476	SRCP		"FMADR/AC1"
; 3477	SRCP_AR		"SRCP,FM_AR"
; 3478	SRCP2		"FMADR/AC2"
; 3479	SRCP2_AR	"SRCP2,FM_AR"
; 3480	
; 3481	.IF/MODEL.B
; 3482	STACK UPDATE	"SPEC/STACK UPDATE"
; 3483	.ENDIF/MODEL.B
; 3484	STORE		"MEM/WRITE"
; 3485	.IF/BLT.PXCT
; 3486	STORE VMA(EA)_ARX	"VMA/LOAD,MEM/EA CALC,EA CALC/WRITE(E),ADA/ARX,AD/A"
;;3487	.IFNOT/BLT.PXCT
;;3488	STORE VMA(EA)_ARX		"ADA/ARX,AD/A,VMA/AD,STORE"
; 3489	.ENDIF/BLT.PXCT
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 10-4
; MACRO.MIC[10,5351]	19:52 24-Jul-85			CRAM Macros--S						

; 3490	.IF/KLPAGE
; 3491	SV.AR		"P16"		;156 REQUIRED FOR PF.PAR HACK
;;3492	.IFNOT/KLPAGE
;;3493	SV.AR		"R0"
; 3494	.ENDIF/KLPAGE
; 3495	SV.AR_AR	"SV.AR,COND/FM WRITE"
; 3496	.IF/KLPAGE
; 3497	SV.ARX		"P17"		;157 REQUIRED FOR PF.PAR HACK
;;3498	.IFNOT/KLPAGE
;;3499	SV.ARX		"R1"
; 3500	.ENDIF/KLPAGE
; 3501	SV.ARX_AR	"SV.ARX,COND/FM WRITE"
; 3502	.IF/KLPAGE
; 3503	SV.BR		"P10"
; 3504	SV.BR_AR	"SV.BR,COND/FM WRITE"
; 3505	.ENDIF/KLPAGE
; 3506	SV.IOP		"R3"		;[233]
; 3507	SV.IOPF		"R2"
; 3508	SV.IOPF_AR	"SV.IOPF,COND/FM WRITE"	;IO PAGE FAIL WORD
; 3509	.IF/KLPAGE
; 3510	SV.PAR		"R0"		;Note not in PAGB block
; 3511	SV.PAR_AR	"SV.PAR,COND/FM WRITE"
; 3512	SV.PFW		"P12"
; 3513	SV.PFW_AR	"SV.PFW,COND/FM WRITE"
; 3514	SV.SC		"P11"
; 3515	SV.SC_AR	"SV.SC,COND/FM WRITE"
; 3516	SV.VMA		"P5"
; 3517	SV.VMA_AR	"SV.VMA,COND/FM WRITE"
; 3518	.ENDIF/KLPAGE
; 3519	SWD		"R1"		;BUFFER FOR SOURCE BYTE WORD
; 3520	SWD_AR		"SWD,FM_AR"
; 3521	SWEEP CACHE	"MEM/REG FUNC,MREG FNC/LOAD CCA"
; 3522	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 11
; MACRO.MIC[10,5351]	19:52 24-Jul-85			CRAM Macros--T, U, V, W, X				

; 3523	.TOC	"CRAM Macros--T, U, V, W, X"
; 3524	
; 3525	T0		"R6"
; 3526	T0_AR		"T0,FM_AR"
; 3527	T1		"R11"
; 3528	T1_AR		"T1,FM_AR"
; 3529	T2		"R12"
; 3530	T2_AR		"T2,FM_AR"
; 3531	TAKE INTRPT	"SKIP/-MTR REQ,J/MTRINT"
; 3532	TEST AR		"ADA/AR,AD/CRY A#0"
; 3533	TEST AR.AC0	"FMADR/AC0,ADB/FM,ADA/AR,AD/CRY A.B#0"
; 3534	TEST AR.BR	"ADB/BR,ADA/AR,AD/CRY A.B#0"
; 3535	TEST AR.MSK	"MSK,ADB/FM,ADA/AR,AD/CRY A.B#0"
; 3536	TEST ARX	"ADA/ARX,AD/CRY A#0"
; 3537	TEST ARX.AR*4	"ADA/ARX,ADB/AR*4,AD/CRY A.B#0"
; 3538	TEST BRL	"ADA EN/0S,ADB/BR,AD/ORCB+1,GEN CRY18"
; 3539	.IF/KLPAGE
; 3540	TEST CBR	"CBR,ADB/FM,AD/B,SKP AD NE"	;[247]
; 3541	.ENDIF/KLPAGE
; 3542	TEST FETCH	"VMA/PC+1,MEM/FETCH,FETCH/TEST"
; 3543	TRAP1		"COND/PCF_#,PC FLAGS/TRAP1"
; 3544	TRAP2		"COND/PCF_#,PC FLAGS/TRAP2"
; 3545	TRAP3		"COND/PCF_#,PC FLAGS/TRAP3"
;;3546	.IF/TRXDEF
;;3547	TRB		"E0"		;same as E0.
;;3548	TRB_AR		"TRB,FM_AR"
;;3549	TRX		"R17"
;;3550	TRX_AR		"TRX,FM_AR"
;;3551	TRX1		"R2"
;;3552	TRX1_AR		"TRX1,FM_AR"
;;3553	TRX2		"R1"
;;3554	TRX2_AR		"TRX2,FM_AR"
;;3555	TRX3		"R14"
;;3556	TRX3_AR		"TRX3,FM_AR"
; 3557	.ENDIF/TRXDEF
; 3558	
; 3559	UNCSH PHYS REF	"SPEC/SP MEM CYCLE,SP MEM/UNCSH+UNPAGE"
; 3560	UPT FETCH	"MEM/LOAD ARX,SPEC/SP MEM CYCLE,SP MEM/UPT FETCH"
; 3561	UPT REF		"SPEC/SP MEM CYCLE,SP MEM/UPT"
; 3562	USER REF	"SPEC/SP MEM CYCLE,SP MEM/USER"
; 3563	
; 3564	VMA_#		"VMA/LOAD,COND/VMA_#"
; 3565	VMA_#+AR32-35	"VMA/LOAD,COND/VMA_#+AR32-35"
; 3566	VMA_40		"VMA/LOAD,COND/VMA_#,#/40"
; 3567	VMA_40+PI*2	"VMA/LOAD,COND/VMA_#+PI*2,#/40"
; 3568	VMA_41		"VMA/LOAD,COND/VMA_#,#/41"
; 3569	VMA_41+PI*2	"VMA/LOAD,COND/VMA_#+PI*2,#/41"
; 3570	VMA_420+TRAP	"VMA/LOAD,COND/VMA_#+TRAP,#/420"
; 3571	VMA_430+MODE	"VMA/LOAD,COND/VMA_#+MODE,#/430"
; 3572	VMA_AC3		"FMADR/AC3,ADB/FM,AD/B,VMA/AD"
; 3573	VMA_AR		"ADA/AR,AD/A,VMA/AD"
; 3574	VMA_AR AND ADMSK "ADMSK,ADB/FM,ADA/AR,AD/AND,VMA/AD"
; 3575	VMA_AR+1	"ADA/AR,AD/A+1,VMA/AD"
; 3576	VMA_AR+BR	"ADA/AR,ADB/BR,AD/A+B,VMA/AD"
; 3577	.IF/KLPAGE
; 3578	VMA_AR+CBR	"CBR,ADB/FM,ADA/AR,AD/A+B,VMA/AD"
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 11-1
; MACRO.MIC[10,5351]	19:52 24-Jul-85			CRAM Macros--T, U, V, W, X				

; 3579	.ENDIF/KLPAGE
; 3580	VMA_AR+E0	"E0,ADB/FM,ADA/AR,AD/A+B,VMA/AD"
; 3581	VMA_AR+E0+1	"E0,ADB/FM,ADA/AR,AD/A+B+1,VMA/AD"
; 3582	VMA_AR+E1	"E1,ADB/FM,ADA/AR,AD/A+B,VMA/AD"
; 3583	.IF/KLPAGE
; 3584	VMA_AR+SBR	"SBR,ADB/FM,ADA/AR,AD/A+B,VMA/AD"
; 3585	.ENDIF/KLPAGE
;;3586	.IF/TRXDEF
;;3587	VMA_AR+TRB	"TRB,ADB/FM,ADA/AR,AD/A+B,VMA/AD"
; 3588	.ENDIF/TRXDEF
; 3589	VMA_AR+XR	"GEN AR+XR,VMA/AD"
; 3590	VMA_AR-1	"ADA/AR,AD/A-1,VMA/AD"
; 3591	VMA_ARX		"ADA/ARX,AD/A,VMA/AD"
; 3592	VMA_ARX AND ADMSK "ADMSK,ADB/FM,ADA/ARX,AD/AND,VMA/AD"
; 3593	VMA_ARX+1	"ADA/ARX,AD/A+1,VMA/AD"
; 3594	VMA_ARX+BR	"ADA/ARX,ADB/BR,AD/A+B,VMA/AD"
; 3595	.IF/KLPAGE
; 3596	VMA_ARX+CBR	"CBR,ADB/FM,ADA/ARX,AD/A+B,VMA/AD"
; 3597	.ENDIF/KLPAGE
; 3598	VMA_ARX+XR	"GEN ARX+XR,VMA/AD"
; 3599	
; 3600	VMA_BR		"ADB/BR,AD/B,VMA/AD"
; 3601	VMA_E0+1	"E0,ADB/FM,ADA EN/0S,AD/A+B+1,VMA/AD"
; 3602	VMA_FM[]	"ADA EN/0S,ADB/FM,@1,AD/B,VMA/AD";[344]
; 3603	VMA_MQ		"ADA/MQ,AD/A,VMA/AD"
; 3604	VMA_MQ+1	"ADA/MQ,AD/A+1,VMA/AD"		;[310]
; 3605	VMA_PC		"VMA/PC"			;[252]
; 3606	VMA_PC+1	"VMA/PC+1"
; 3607	.IF/KLPAGE
; 3608	VMA_SV.VMA	"SV.VMA,ADB/FM,AD/B,VMA/AD"
; 3609	.ENDIF/KLPAGE
;;3610	.IF/TRXDEF
;;3611	VMA_TRB		"TRB,ADB/FM,AD/B,VMA/AD"
; 3612	.ENDIF/TRXDEF
;;3613	.IFNOT/MODEL.B
;;3614	VMA_VMA HELD	"COND/SEL VMA,ADA/PC,AD/A,VMA/AD"
; 3615	.IF/MODEL.B
;;3616	.IFNOT/KLPAGE
;;3617	VMA_VMA HELD	"COND/SEL VMA,ADA/PC,AD/A,VMA/AD"
; 3618	.IF/KLPAGE
; 3619	VMA_VMA HELD	"COND/SEL VMA,ADA/PC,AD/A,VMA/AD,MEM/RESTORE VMA"
; 3620	.ENDIF/KLPAGE
; 3621	.ENDIF/MODEL.B
; 3622	VMA_VMA+1	"VMA/VMA,COND/VMA INC"
; 3623	VMA_VMA-1	"VMA/VMA,COND/VMA DEC"
; 3624	
; 3625	WR PT ENTRY	"COND/MBOX CTL,MBOX CTL/PT WR"
; 3626	WR REFILL RAM	"MEM/REG FUNC,MREG FNC/WR REFILL RAM"
; 3627	.IF/MODEL.B
; 3628	WRITE (E)	"MEM/EA CALC,EA CALC/WRITE(E),VMA/LOAD"
; 3629	.ENDIF/MODEL.B
; 3630	
; 3631	XR		"FMADR/XR"
; 3632	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 12
; MACRO.MIC[10,5351]	19:52 24-Jul-85			DRAM Macros						

; 3633	.TOC	"DRAM Macros"
; 3634	
; 3635		.DCODE
; 3636	;
; 3637	;	These macros have not been sorted alphabetically, as (1) there are
; 3638	;	too few to bother, and (2) no one ever looks at the DRAM anyway!
; 3639	;
; 3640	;"A FIELD" MACROS
; 3641	; DECODED TO TELL WHAT TO DO WITH EFFECTIVE ADDRESS
; 3642	; AND WHETHER TO PREFETCH FROM PC+1
; 3643	
; 3644	I	"A/IMMED"
; 3645	I-PF	"A/IMMED-PF"
;;3646	.IFNOT/XADDR
;;3647	EA	"A/IMMED"
; 3648	.IF/XADDR
; 3649	EA	"A/ADDR"
; 3650	.ENDIF/XADDR
; 3651	W	"A/WR-TST"
; 3652	R	"A/READ"
; 3653	R-PF	"A/READ-PF"
; 3654	RW	"A/RD-WR"
; 3655	.IF/RPW
; 3656	RPW	"A/RD-P-WR"
;;3657	.IFNOT/RPW
;;3658	RPW	"A/RD-WR"
; 3659	.ENDIF/RPW
;;3660	.IF/WRTST
;;3661	IW	"A/WR-TST"
; 3662	.IFNOT/WRTST
; 3663	IW	"A/IMMED"
; 3664	.ENDIF/WRTST
; 3665	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 13
; MACRO.MIC[10,5351]	19:52 24-Jul-85			DRAM Macros						

; 3666	;"B FIELD" MACROS
; 3667	; DECODED BY MOST INSTRUCTIONS TO TELL WHERE TO STORE RESULTS,
; 3668	; BUT USED BY OTHERS TO HOLD VARIOUS "MODE" INFORMATION
; 3669	
; 3670	AC	"B/AC"
; 3671	M	"B/MEM"
; 3672	S	"B/SELF"
; 3673	B	"B/BOTH"
; 3674	DBL AC	"B/DBL AC"
; 3675	DBL B	"B/DBL BOTH"
; 3676	FL-AC	"B1-2/AC"
; 3677	FL-MEM	"B1-2/MEM"
; 3678	FL-BOTH	"B1-2/BOTH"
; 3679	
; 3680	TN-	"B0/CRY0(1),B1-2/0"
; 3681	TNE	"B0/CRY0(0),B1-2/0"
; 3682	TNA	"B0/CRY0(0),B1-2/0"
; 3683	TNN	"B0/CRY0(1),B1-2/0"
; 3684	TZ-	"B0/CRY0(1),B1-2/1"
; 3685	TZE	"B0/CRY0(0),B1-2/1"
; 3686	TZA	"B0/CRY0(0),B1-2/1"
; 3687	TZN	"B0/CRY0(1),B1-2/1"
; 3688	TC-	"B0/CRY0(1),B1-2/2"
; 3689	TCE	"B0/CRY0(0),B1-2/2"
; 3690	TCA	"B0/CRY0(0),B1-2/2"
; 3691	TCN	"B0/CRY0(1),B1-2/2"
; 3692	TO-	"B0/CRY0(1),B1-2/3"
; 3693	TOE	"B0/CRY0(0),B1-2/3"
; 3694	TOA	"B0/CRY0(0),B1-2/3"
; 3695	TON	"B0/CRY0(1),B1-2/3"
; 3696	
; 3697	SJC-	"B/SJC-"
; 3698	SJCL	"B/SJCL"
; 3699	SJCE	"B/SJCE"
; 3700	SJCLE	"B/SJCLE"
; 3701	SJCA	"B/SJCA"
; 3702	SJCGE	"B/SJCGE"
; 3703	SJCN	"B/SJCN"
; 3704	SJCG	"B/SJCG"
; 3705	
; 3706	BLKI	"B0/CRY0(0),B1-2/2"
; 3707	BLKO	"B0/CRY0(0),B1-2/0"
; 3708	DATAI	"B/6"
; 3709	DATAO	"B/4"
; 3710	CONI	"B/6"
; 3711	CONO	"B/4"
; 3712	CONSO	"B0/CRY0(1),B1-2/1"
; 3713	CONSZ	"B0/CRY0(0),B1-2/1"
; 3714	
						; 3715	.BIN
						; 3716		.UCODE
						; 3717	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 1
; BASIC.MIC[10,5351]	19:52 24-Jul-85			THE INSTRUCTION LOOP					

						; 3718	.TOC	"THE INSTRUCTION LOOP"
						; 3719	
						; 3720	;	Comments updated [302][344]
						; 3721	;
						; 3722	;INSTRUCTION DECODE, EA COMPUTATION, AND OPERAND FETCH
						; 3723	;
						; 3724	;	IN GENERAL, AN INSTRUCTION IS STARTED AT XCTGO.
						; 3725	; AT THIS TIME THE INSTRUCTION IS IN ARX AND IR, AND PC HAS ITS ADDRESS.
						; 3726	; THE DRAM OUTPUTS AND "AC" BITS WILL SETTLE DURING THIS
						; 3727	; MICROINSTRUCTION, AND WILL BE LATCHED BY THE CLOCK WHICH ENDS
						; 3728	; THE CYCLE.  XCTGO DISPATCHES ON THE STATE OF THE
						; 3729	; INDIRECT AND INDEX BITS OF THE ARX (EA MOD DISP) TO COMPEA OR
						; 3730	; ONE OF THE THREE LOCATIONS FOLLOWING IT.
						; 3731	;	IF INDIRECT IS SPECIFIED, THE INDIRECT POINTER IS FETCHED (AT
						; 3732	; COMPEA+2 OR +3 DEPENDING ON WHETHER INDEXING IS ALSO SPECIFIED).
						; 3733	; WE WAIT FOR IT AT INDRCT, AND THEN LOOP BACK TO COMPEA.  WHEN NO
						; 3734	; INDIRECT IS CALLED FOR, WE COMPUTE THE INSTRUCTION'S EFFECTIVE ADDRESS
						; 3735	; (EA) AT COMPEA OR COMPEA+1 (DEPENDING ON WHETHER INDEXING IS CALLED
						; 3736	; FOR), AND PERFORM THE FUNCTION "A READ", WHOSE OPERATION DEPENDS
						; 3737	; ON THE DRAM A FIELD, AS FOLLOWS:
						; 3738	;
						; 3739	; MACRO	 A-FLD	MEM FUNCTION	VMA	DISPATCH
						; 3740	;  I	  0	NONE		AD(=EA)  DRAM J
						; 3741	; I-PF	  1	FETCH		PC+1	 DRAM J
						; 3742	; EA	  2	30 BIT EA CALC	AD	 DRAM J
						; 3743	;  W	  3	WR TST		AD	   3 (MODEL B)	43 (MODEL A)
						; 3744	;  R	  4	READ		AD	   4		44
						; 3745	; R-PF	  5	READ		AD	   5		45
						; 3746	; RW	  6	READ/WR TST	AD	   6		46
						; 3747	; RPW	  7	RD-PSE/WR TST	AD	   7		47
						; 3748	;
						; 3749	;	A FIELD VALUES 0 AND 1 ARE USED FOR INSTRUCTIONS WHICH NEITHER
						; 3750	; READ NOR WRITE THE CONTENTS OF EA (IMMEDIATE-MODE INSTRUCTIONS,
						; 3751	; JUMPS, ETC).  THESE DISPATCH FROM "A READ" DIRECTLY TO THE MICROCODE
						; 3752	; WHICH HANDLES THE INSTRUCTION.  IF THE A FIELD CONTAINS 1, "A READ"
						; 3753	; CAUSES A PREFETCH (FROM PC+1), SO THAT THE MBOX CAN WORK ON GETTING
						; 3754	; THE NEXT INSTRUCTION INTO ARX WHILE THE EBOX PERFORMS THIS ONE.
						; 3755	;	IF THE A FIELD CONTAINS A 2, THE EA CALCULATION WILL PROVIDE
						; 3756	; A FULL 30 BIT EFFECTIVE ADDRESS TO THE AD AT THE END.  THIS WAS
						; 3757	; INTRODUCED WITH EXTENDED ADDRESSING, TO ALLOW SUCH INSTRUCTIONS AS
						; 3758	; XMOVEI AND XHLLI TO COMPUTE A COMPLETE ADDRESS WITHOUT ACTUALLY
						; 3759	; REFERENCING IT.  OTHERWISE, THIS IS SIMILAR TO AN A FIELD OF 0.  NOTE
						; 3760	; THAT AN A FIELD OF 0 WILL STILL PROVIDE A 30 BIT ADDRESS TO THE VMA;
						; 3761	; ONLY THE RESULT IN THE AD WILL BE DIFFERENT.
						; 3762	;	IF THE A FIELD CONTAINS 3, THE MBOX PERFORMS A PAGING CHECK ON
						; 3763	; EA, AND CAUSES A PAGE FAIL IF THAT LOCATION IS NOT WRITABLE.
						; 3764	; THE MICROCODE GOES TO 3 TO WAIT FOR COMPLETION OF THE PAGE CHECK,
						; 3765	; AND AT THAT LOCATION LOADS AC INTO AR.  THE WRITABILITY OF EA IS
						; 3766	; VERIFIED AT THIS TIME TO PREVENT INCORRECTLY SETTING FLAGS OR
						; 3767	; THE PROCESSOR STATE IF THE INSTRUCTION WILL BE ABORTED BY PAGE
						; 3768	; FAILURE.  LOCATION 3 THEN DISPATCHES TO THE HANDLER FOR THE
						; 3769	; CURRENT INSTRUCTION.
						; 3770	;	A FIELD VALUES 4 TO 7 PERFORM READS FROM EA.  6 AND 7 ALSO TEST
						; 3771	; THE WRITABILITY OF THE LOCATION, AND 7 PERFORMS THE FIRST HALF OF
						; 3772	; A READ-PAUSE-WRITE CYCLE IF EA IS AN UN-CACHED ADDRESS.  THE DISPATCH
						; 3773	; IS TO A, WHERE WE WAIT FOR MEMORY DATA TO ARRIVE IN AR.  IF THE A
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 1-1
; BASIC.MIC[10,5351]	19:52 24-Jul-85			THE INSTRUCTION LOOP					

						; 3774	; FIELD WAS 5, WE PREFETCH FROM PC+1 AS SOON AS THE DATA ARRIVES.
						; 3775	; IN ANY CASE, WE DISPATCH ACCORDING TO THE DRAM J FIELD TO THE
						; 3776	; HANDLER FOR THE INSTRUCTION.
						; 3777	;	IF A PAGE FAIL OCCURS AT ANY TIME (EITHER IN THIS CODE OR DURING
						; 3778	; INSTRUCTION EXECUTION) THE MICROPROCESSOR TRAPS TO CRAM LOCATION
						; 3779	; 1777 OR 3777, WHERE IT CAUSES A PAGE FAIL TRAP.
						; 3780	;
						; 3781	;	MOST INSTRUCTIONS (THE MOVE, HALFWORD, AND BOOLEAN GROUPS,
						; 3782	; PLUS ADD AND SUB) ARE PERFORMED BY HANDLERS CONSISTING OF ONE OR
						; 3783	; TWO MICROINSTRUCTIONS WHICH LEAVE THE RESULT IN AR, AND COMPLETE
						; 3784	; BY INVOKING THE "EXIT" MACRO.  EXIT USES THE MEM/B WRITE FUNCTION
						; 3785	; TO BEGIN A STORE TO MEMORY FOR THOSE MODES IN WHICH THE RESULT
						; 3786	; GOES TO MEMORY, AND DISP/DRAM B TO GET TO ONE OF THE MICROINSTRUCTIONS
						; 3787	; FOLLOWING ST0.  THIS CODE DEPENDS ON A CERTAIN AMOUNT OF CORRELATION
						; 3788	; BETWEEN THE DRAM A AND B FIELDS.  IN PARTICULAR, STAC (STORE AC)
						; 3789	; ASSUMES THAT A PREFETCH HAS OCCURRED, WHILE THE OTHERS ASSUME THAT
						; 3790	; NO PREFETCH HAS OCCURED.  THUS NORMAL AND IMMEDIATE MODES, WHOSE
						; 3791	; RESULTS GO ONLY TO AC, MUST PREFETCH IN THE DRAM A FIELD, WHILE
						; 3792	; MEM, BOTH, AND SELF MODES, WHOSE RESULTS GO TO MEMORY, MUST NOT.
						; 3793	; (THIS RESTRICTION IS AVOIDED FOR THOSE INSTRUCTIONS WHICH NEVER
						; 3794	; PREFETCH -- IN MUL, DIV, AND IDIV BY USE OF THE EXIT TO ST2AC,
						; 3795	; AND IN IMUL AND THE SINGLE PRECISION FLOATING POINT
						; 3796	; INSTRUCTIONS BY A RESTRICTED EXIT TO ST6.)
						; 3797	;	ANOTHER LARGE SET OF INSTRUCTIONS (SKIP, AOS, SOS, JUMP, AOJ,
						; 3798	; SOJ, AOBJ, CAI, CAM, AND THE TEST GROUP) KNOWS WHERE TO PUT THE
						; 3799	; RESULTS WITHOUT MODE INFORMATION, AND THEY USE THE DRAM B FIELD TO
						; 3800	; DETERMINE WHETHER TO SKIP OR JUMP, AS A FUNCTION OF THEIR OPERANDS.
						; 3801	; SKIP, AOS, AND SOS ARE CONSIDERED SELF-MODE INSTRUCTIONS,
						; 3802	; AND AFTER MAKING THE FETCH DECISION (AND RE-WRITING MEMORY, IN
						; 3803	; THE CASE OF AOS OR SOS), JUMP TO STSELF TO DECIDE WHETHER OR NOT
						; 3804	; TO PUT THE RESULT ALSO IN AC.  THE OTHER INSTRUCTIONS OF THIS SET
						; 3805	; JUMP TO STORAC OR NOP AFTER MAKING THE FETCH DECISION, DEPENDING
						; 3806	; ON WHETHER OR NOT THE OPCODE DEFINITION REQUIRES MODIFICATION OF AC.
						; 3807	; (NOTE THE DIFFERENCE BETWEEN STAC AND FINI ON THE ONE HAND,
						; 3808	; AND STORAC AND NOP ON THE OTHER -- STORAC AND NOP MUST BE USED WHEN
						; 3809	; THE NEXT INSTRUCTION FETCH OCCURS ON THE PRECEDING EBOX CYCLE, BECAUSE
						; 3810	; NICOND MUST NOT IMMEDIATELY FOLLOW A FETCH (ONE CYCLE REQUIRED FOR
						; 3811	; VMA AC REF TO MAKE IT THROUGH THE NICOND LOGIC), STAC AND FINI ARE
						; 3812	; USED WHEN THERE HAS BEEN AN INTERVENING CYCLE.)
						; 3813	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 2
; BASIC.MIC[10,5351]	19:52 24-Jul-85			NEXT INSTRUCTION DISPATCH				

						; 3814	.TOC	"NEXT INSTRUCTION DISPATCH"
						; 3815	
						; 3816	;START BY PUTTING PC WORD IN AR, JUMP HERE
						; 3817	0:
						;;3818	.IFNOT/MODEL.B
						;;3819	START:	SET FLAGS_AR,VMA_AR,MEM/SEC 0,	;LOAD FLAGS, CLEAR VMAX
						;;3820			BR/AR,J/SETPC		;THEN JUMP TO ADDR IN AR
						; 3821	.IF/MODEL.B
U 0000, 1232,0001,0000,0000,0000,0024,0020	; 3822	START:	SET FLAGS_AR,J/SETPC		;LOAD FLAGS, USE REST AS ADDR
						; 3823	.ENDIF/MODEL.B
						; 3824	1:					;MUST BE AT START+1
U 0001, 0075,4001,0000,0000,0117,0010,0000	; 3825	CONT:	VMA/PC,FETCH,J/XCTW		;HERE TO CONTINUE FROM PC
						; 3826	;
						; 3827	;	Comments updated [321].
						; 3828	;
						; 3829	;	DISP/NICOND (THE "NXT INSTR" MACRO) BRINGS US TO ONE OF THE
						; 3830	; LOCATIONS FOLLOWING "NEXT".  PC HAS BEEN UPDATED TO ADDRESS THE NEXT
						; 3831	; INSTRUCTION IN THE NORMAL FLOW, AND IF IT IS FROM MEMORY
						; 3832	; (AS OPPOSED TO AC'S), THE INSTRUCTION IS IN ARX AND IR.
						; 3833	;	THE NICOND DISPATCH IS PRIORITY ENCODED, AS FOLLOWS:
						; 3834	; [FOR FULL DETAILS, SEE PRINT CON2]
						; 3835	;(1)	IF PI CYCLE IS TRUE, GO TO NEXT FOR SECOND HALF
						; 3836	; OF STANDARD OR VECTOR INTERRUPT.
						; 3837	;(2)	IF THE RUN FLOP (CON RUN) IS OFF, GO TO NEXT+2, FROM WHICH THE
						; 3838	; MICROCODE WILL ENTER THE HALT LOOP TO WAIT FOR THE CONSOLE TO RESTART
						; 3839	; INSTRUCTION PROCESSING.
						; 3840	;(3)	IF THE METER HAS A REQUEST, GO TO NEXT+4 (MTRINT) TO SERVE IT.
						; 3841	;(4)	IF THE PI SYSTEM HAS A REQUEST READY, GO TO NEXT+6 (INTRPT)
						; 3842	; TO START A PI CYCLE.
						; 3843	;(5)	IF CON UCODE STATE 05 (TRACK EN) IS SET, GO TO NEXT+10 OR 11.
						; 3844	; Normally NEXT+10 will be used; if a trap flag was set by the previous
						; 3845	; instruction, however, NEXT+11 will be reached.  This is the only
						; 3846	; way the trap will ever be detected, so be cautious of ignoring it.
						; 3847	; THIS FLOP IS ENTIRELY UNDER CONTROL OF THE MICROCODE, AND IS ONLY
						; 3848	; USED FOR THE SPECIAL STATISTICS-GATHERING MICROCODE.
						; 3849	;(6)	IF THE LAST INSTRUCTION SET A TRAP FLAG, GO TO NEXT+13 OR +17,
						; 3850	; IT DOESN'T MATTER WHICH.  (NEXT+17 will be reached if VMA contains
						; 3851	; an AC address, probably irrelevant when a trap flag was set.)
						; 3852	;(7)	IF VMA CONTAINS AN AC ADDRESS, IMPLYING THAT THE NEXT
						; 3853	; INSTRUCTION IS TO COME OUT OF FAST MEMORY, GO TO NEXT+16 TO GET IT.
						; 3854	;(10)	--NORMAL CASE-- THE INSTRUCTION IS IN ARX, READY TO GO, GO
						; 3855	; TO NEXT+12 (XCTGO).
						; 3856	;
						; 3857	;	The NICOND dispatch yields the following:
						; 3858	;
						; 3859	;	+0	CON PI CYCLE
						; 3860	;	+1	Unused
						; 3861	;	+2	-CON RUN (i.e. halt)
						; 3862	;	+3	Unused
						; 3863	;	+4	CON MTR INT REQ (meter interrupt)
						; 3864	;	+5	Unused
						; 3865	;	+6	CON INT REQ (interrupt)
						; 3866	;	+7	Unused
						; 3867	;	+10	CON UCODE STATE 05 (tracks enable)
						; 3868	;	+11	CON UCODE STATE 05+TRAP REQ (tracks enable+trap)
						; 3869	;	+12	-VM AC REF (normal instruction)
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 2-1
; BASIC.MIC[10,5351]	19:52 24-Jul-85			NEXT INSTRUCTION DISPATCH				

						; 3870	;	+13	-VM AC REF+TRAP REQ (normal instruction+trap)
						; 3871	;	+14	Unused
						; 3872	;	+15	Unused
						; 3873	;	+16	-CON PI CYCLE (AC ref)
						; 3874	;	+17	-CON PI CYCLE+TRAP REQ (AC ref+trap)
						; 3875	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 3
; BASIC.MIC[10,5351]	19:52 24-Jul-85			NEXT INSTRUCTION DISPATCH				

						; 3876	;NICOND (NXT INSTR) DISPATCH BLOCK
						; 3877	
						; 3878	=11*0000				;USE LOC'NS INACCESSIBLE TO DRAM
						; 3879	NEXT:	AR_MQ+1,VMA/AD,			;2ND PART OF INTERRUPT
U 0140, 3633,4023,2000,0000,0320,1510,0714	; 3880			SET PI CYCLE,J/PICYC2	;CONTINUE WITH 41+2N
						; 3881	=0010	CLR AR,ARX_1S,SC_#,#/23.,	;HERE IF RUN FLOP OFF
U 0142, 1454,2341,0200,0302,0000,0450,0027	; 3882			CALL,J/ROTS		;BUILD ADDR MASK
						;;3883	.IFNOT/EXTEXP				;[230]
						;;3884	.IFNOT/OWGBP				;[344]
						;;3885		ADMSK,FM_AR,AR_AR+1,J/CHALT	;SAVE MASK, GO HALT
						;;3886	.IF/OWGBP				;[344]
						;;3887		FM[ADMSK]_AR,AR_AR*2,J/EXMSK	;[230] AR HAS 77,,777776
						;;3888	.ENDIF/OWGBP				;[344]
						; 3889	.IF/EXTEXP				;[230]
U 0143, 0030,3701,5007,0000,0000,1010,0175	; 3890		FM[ADMSK]_AR,AR_AR*2,J/EXMSK	;[230] AR HAS 77,,777776
						; 3891	.ENDIF/EXTEXP				;[230]
						; 3892	=0100
U 0144, 3607,0001,0000,0000,0000,2110,0145	; 3893	MTRINT:	CLR ACCOUNT EN,J/MTRREQ		;HERE IF METER REQUEST UP
U 0145, 3626,0001,3000,0302,0060,0010,0002	; 3894		AR_EBUS,SC_#,#/2,J/PICYC1	;HERE IF TAKE INTRPT DOESNT FIND
						; 3895	=0110					; A METER REQUEST
U 0146, 3626,0001,3000,0302,0060,0010,0002	; 3896	INTRPT:	AR_EBUS,SC_#,#/2,J/PICYC1	;HERE IF INTERRUPT PENDING
						; 3897	;
						; 3898	;	[321] Even if statistics are enabled, traps should not be lost,
						; 3899	;	so override TRACKS and friends when TRAP is set.
						; 3900	;
						;;3901	.IF/TRACKS
						;;3902	=1000	AR_TRX+1,GEN CRY18,SKP CRY0,J/TRK1;STORE PC BEFORE EXECUTING INSTR
						;;3903		VMA_420+TRAP,J/TRAPX		;[321] Don't lose traps!
						; 3904	.ENDIF/TRACKS
						;;3905	.IF/OP.CNT
						;;3906	=1000	SC_#,#/9.,SKP USER,J/OPCT1	;COUNT THIS INSTR
						;;3907		VMA_420+TRAP,J/TRAPX		;[321] Don't lose traps!
						; 3908	.ENDIF/OP.CNT
						;;3909	.IF/OP.TIME
						;;3910	=1000	AR_2,CLR TRK+PA EN,J/OPTM0	;TIME THIS INSTR
						;;3911		VMA_420+TRAP,J/TRAPX		;[321] Don't lose traps!
						; 3912	.ENDIF/OP.TIME
						;;3913	.IF/SO.CNT
						;;3914	=1000
						;;3915	TRK0:	ARX_TRB,BRX/ARX,SKP AC REF,J/TRK1;GET PREV INSTR HOLD THIS INSTR
						;;3916		VMA_420+TRAP,J/TRAPX		;[321] Don't lose traps!
						; 3917	.ENDIF/SO.CNT
						;;3918	.IF/SO2.CNT
						;;3919	=1000
						;;3920	TRK0:	ARX_TRB,BRX/ARX,SKP AC REF,J/TRK1;GET PREV INSTR HOLD THIS INSTR
						;;3921		VMA_420+TRAP,J/TRAPX		;[321] Don't lose traps!
						; 3922	.ENDIF/SO2.CNT
						; 3923	=1010
						; 3924	XCTGO:	BRX/ARX,AR_ARX,SET ACCOUNT EN,	;SAVE INSTR, SIGN EXTEND Y,
U 0152, 0174,2341,4022,0000,2000,2136,0105	; 3925			XR,EA MOD DISP,J/COMPEA	; GO CALCULATE EA
U 0153, 0060,4001,0000,0000,0100,3110,0420	; 3926	TRAP:	VMA_420+TRAP,J/TRAPX		;HERE IF TRAP BITS SET
U 0156, 0152,3240,0203,0000,0020,1410,0000	; 3927	=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	; 3928		VMA_420+TRAP,J/TRAPX		;HERE IF TRAP BITS SET
						; 3929	
						; 3930	;HERE ON TRAPS, VMA SETUP WITH 420+TRAP CODE
						; 3931	=11****
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 3-1
; BASIC.MIC[10,5351]	19:52 24-Jul-85			NEXT INSTRUCTION DISPATCH				

U 0060, 0074,0001,0000,0000,0013,0026,0033	; 3932	TRAPX:	LOAD ARX,PT REF			;GET AND XCT TRAP INSTR
U 0074, 0075,0001,0000,0000,0000,1510,0100	; 3933	=11****	SET PC+1 INH			;DON'T INCREMENT PC FOR THIS INSTR
						; 3934	
						; 3935	;HERE AFTER FETCHING INSTR TO BE EXECUTED
						; 3936	
						; 3937	=11****
U 0075, 0152,3240,0003,0000,0022,1410,0000	; 3938	XCTW:	ARX_MEM,LOAD IR,J/XCTGO		;GET INSTR TO XCT
						; 3939	.IF/EXTEXP				;[230]
U 0030, 0124,4003,2000,0000,0020,0010,0000	; 3940	EXMSK:	AR_AR+1				;[230] GIVES 77,,777777
U 0124, 0752,4001,0007,0000,0000,1010,0164	; 3941		FM[EXPMSK]_AR,J/CHALT		;[230] MASK FOR FORTRAN EXT EXP
						;;3942	.IFNOT/EXTEXP				;[344]
						;;3943	.IF/OWGBP				;[344]
						;;3944	EXMSK:	AR_AR+1				;[230] GIVES 77,,777777
						;;3945		FM[EXPMSK]_AR,J/CHALT		;[230] MASK FOR FORTRAN EXT EXP
						;;3946	.ENDIF/OWGBP				;[344]
						; 3947	.ENDIF/EXTEXP				;[230]
						; 3948	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 4
; BASIC.MIC[10,5351]	19:52 24-Jul-85			EFFECTIVE ADDRESS COMPUTATION AND OPERAND FETCH		

						; 3949	.TOC	"EFFECTIVE ADDRESS COMPUTATION AND OPERAND FETCH"
						; 3950	
						; 3951	.IF/XADDR
						; 3952	=11*0000
						; 3953	EFIW:	AR_ARX (AD),GLOBAL,A INDRCT,	;LONG EXTENDED ADDR
U 0160, 0070,3713,2000,0000,1111,7010,0230	; 3954			SKP INTRPT,J/INDRCT	;WITH INDIRECT SET
						; 3955		AR_ARX+XR,GLOBAL,A INDRCT,
U 0161, 0070,0610,2002,4000,1131,7010,0230	; 3956			SKP INTRPT,J/INDRCT
						; 3957		AR_ARX (AD),GLOBAL,A INDRCT,
U 0162, 0070,3713,2000,0000,1111,7010,0230	; 3958			SKP INTRPT,J/INDRCT
						; 3959		AR_ARX+XR,GLOBAL,A INDRCT,
U 0163, 0070,0610,2002,4000,1131,7010,0230	; 3960			SKP INTRPT,J/INDRCT
						; 3961	
U 0164, 0000,3713,2000,0000,1204,0002,0300	; 3962		AR_ARX (AD),GLOBAL,A READ	;LONG EXTENDED ADDR
U 0165, 0000,0610,2002,4000,1224,0002,0300	; 3963		AR_ARX+XR,GLOBAL,A READ		; WITH INDEXING IN 2-5
U 0166, 0000,3713,2000,0000,1204,0002,0300	; 3964		AR_ARX (AD),GLOBAL,A READ
U 0167, 0000,0610,2002,4000,1224,0002,0300	; 3965		AR_ARX+XR,GLOBAL,A READ
						; 3966	
U 0170, 0131,0001,0000,0000,0000,2210,0400	; 3967	PF24:	GET ECL EBUS,J/ILLIND		;[234]ARX BITS 0,1 = 11
U 0171, 0131,0001,0000,0000,0000,2210,0400	; 3968		GET ECL EBUS,J/ILLIND
U 0172, 0131,0001,0000,0000,0000,2210,0400	; 3969		GET ECL EBUS,J/ILLIND
U 0173, 0131,0001,0000,0000,0000,2210,0400	; 3970		GET ECL EBUS,J/ILLIND
						; 3971	
						; 3972	.ENDIF/XADDR
						; 3973	
						; 3974	=11*1100
U 0174, 0000,3701,0000,0000,0204,0002,0300	; 3975	COMPEA:	GEN AR,A READ			;LOCAL
U 0175, 0000,0600,0002,4000,2224,0002,0300	; 3976		GEN AR+XR,INDEXED,A READ	;LOCAL UNLESS XR>0
						; 3977		GEN AR,A INDRCT,
U 0176, 0070,3701,0000,0000,0111,7010,0230	; 3978			SKP INTRPT,J/INDRCT
						; 3979		GEN AR+XR,INDEXED,A INDRCT,
U 0177, 0070,0600,0002,4000,2131,7010,0230	; 3980			SKP INTRPT,J/INDRCT
						;;3981	.IFNOT/MODEL.B
						;;3982	=11***0
						;;3983	INDRCT:	ARX_MEM,EA TYPE DISP,J/INDR1
						;;3984	TAKINT:	ARX_MEM,TAKE INTRPT
						;;3985	=11**01
						;;3986	INDR1:	AR_ARX,XR,EA MOD DISP,J/COMPEA
						;;3987	.IF/SXCT
						;;3988		AR_ARX (AD),A READ		;HERE IF SXCT 0,
						;;3989	.IFNOT/SXCT
						;;3990	=
						;;3991	.ENDIF/SXCT
						; 3992	.IF/MODEL.B
						;;3993	.IFNOT/XADDR
						;;3994	=11***0
						;;3995	INDRCT:	ARX_MEM,J/INDR1
						;;3996	TAKINT:	ARX_MEM,TAKE INTRPT
						;;3997	
						;;3998	=11****
						;;3999	INDR1:	AR_ARX,EA MOD DISP,J/COMPEA
						; 4000	.IF/XADDR
						; 4001	=11***0
U 0070, 0460,3240,0003,0000,0022,2510,0000	; 4002	INDRCT:	ARX_MEM,LONG EN,J/INDR1
U 0071, 0144,3200,0003,0000,0022,7710,0000	; 4003	TAKINT:	ARX_MEM,TAKE INTRPT
						; 4004	=11****
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 4-1
; BASIC.MIC[10,5351]	19:52 24-Jul-85			EFFECTIVE ADDRESS COMPUTATION AND OPERAND FETCH		

						; 4005	INDR1:	AR_ARX,XR,EA MOD DISP,
U 0460, 0160,2341,4002,0301,2020,0036,0024	; 4006			FE_#,#/24,TIME/3T,J/EFIW
						; 4007	
U 0131, 0141,3731,0000,0301,0303,1710,0024	; 4008	ILLIND:	VMA_VMA HELD, FE_#, #/24	;[234]ILLEGAL INDIRECT PF
U 0141, 0147,4001,0000,0302,0000,0010,0140	; 4009		SC_#, #/140			;[234][242]
						; 4010						;[271]MASK TO INSERT PF CODE.
U 0147, 3653,0001,0000,0000,0007,0010,0140	; 4011		MAP, J/PFPAR2			;[234]GET MAP INFO, JOIN PF ROUTINE
						; 4012	.ENDIF/XADDR
						; 4013	.ENDIF/MODEL.B
						; 4014	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 5
; BASIC.MIC[10,5351]	19:52 24-Jul-85			WAIT FOR (E)						

						; 4015	.TOC	"WAIT FOR (E)"
						; 4016	
						; 4017	;THE EXECUTE CODE FOR EACH INSTRUCTION IS ENTERED WITH
						; 4018	; THE OPCODE AND AC # IN BRX AND IR, THE LAST INDIRECT WORD
						; 4019	; IN ARX, AND AR AND VMA SETUP AS A FUNCTION OF THE A
						; 4020	; FIELD OF THE DISPATCH RAM. A PREFETCH IS IN PROGRESS IF THE
						; 4021	; DRAM A FIELD WAS 1 OR 5 (OR IF IR CONTAINS "JRST 0,").
						; 4022	
						; 4023	;ON "A READ", THE HARDWARE DISPATCHES TO THE EXECUTE CODE FOR
						; 4024	; THE INSTRUCTION IF THE DRAM A FIELD IS 0-2.  IF THE A FIELD
						; 4025	; CONTAINS 3-7, THE HARDWARE DISPATCHES TO A (MODEL B), OR 40+A
						; 4026	; (MODEL A), BELOW:
						; 4027	
						; 4028	;COME HERE ON "A READ" FUNCTION IF DRAM A FIELD IS 3
						; 4029	; A "WRITE TST" IS IN PROGRESS
						; 4030	
						; 4031	.IF/MODEL.B
						; 4032	3:
						;;4033	.IFNOT/MODEL.B
						;;4034	43:
						; 4035	.ENDIF/MODEL.B
						; 4036		BR/AR,AR_AC0,MB WAIT,		;WAIT FOR PERMISSION TO WRITE
U 0003, 0000,3240,2040,0000,0022,0001,0000	; 4037			TIME/3T,IR DISP,J/0	;AND GO TO EXECUTE CODE
						; 4038	
						; 4039	;HERE ON "A READ" FUNCTION IF DRAM A FIELD IS 4
						; 4040	; A "LOAD AR" IS IN PROGRESS.  We load FE with 2 for LDB and DPB. [337]
						; 4041	
						; 4042	.IF/MODEL.B
						; 4043	4:
						;;4044	.IFNOT/MODEL.B
						;;4045	44:
						; 4046	.ENDIF/MODEL.B
						; 4047		BR/AR,AR_MEM,TIME/3T,FE_#,#/2,	;GET OPERAND, set up FE for byte
U 0004, 0000,3200,0043,0301,0022,0001,0002	; 4048			IR DISP,J/0		; instructions [337], and go
						; 4049	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 6
; BASIC.MIC[10,5351]	19:52 24-Jul-85			WAIT FOR (E)						

						; 4050	;HERE ON "A READ" IF A FIELD IS 5
						; 4051	; A "LOAD AR" IS IN PROGRESS, AND WE MUST PREFETCH WHEN IT COMPLETES
						; 4052	
						; 4053	.IF/MODEL.B
						; 4054	5:
						;;4055	.IFNOT/MODEL.B
						;;4056	45:
						; 4057	.ENDIF/MODEL.B
						; 4058		BR/AR,FIN XFER,I FETCH,		;GET OPERAND, PREFETCH,
U 0005, 0000,3200,0043,0000,0237,0001,0000	; 4059			TIME/3T,IR DISP,J/0	; & START EXECUTE
						; 4060	
						; 4061	;HERE ON "A READ" IF A FIELD IS 6
						; 4062	; A "LOAD AR" IS IN PROGRESS, BUT PAGING IS TESTING WRITABILITY
						; 4063	; We load FE with 2 for ILDB and IDPB. [337]
						; 4064	.IF/MODEL.B
						; 4065	6:
						;;4066	.IFNOT/MODEL.B
						;;4067	46:
						; 4068	.ENDIF/MODEL.B
						; 4069		BR/AR,AR_MEM,TIME/3T,FE_#,#/2,	;GET OPERAND, load FE for byte
U 0006, 0000,3200,0043,0301,0022,0001,0002	; 4070			IR DISP,J/0		; instructions [337], and go
						; 4071	
						; 4072	;HERE ON "A READ" IF A FIELD IS 7
						; 4073	; A "READ-PAUSE-WRITE" IS IN PROGRESS
						; 4074	
						; 4075	.IF/MODEL.B
						; 4076	7:
						;;4077	.IFNOT/MODEL.B
						;;4078	47:
						; 4079	.ENDIF/MODEL.B
						; 4080		BR/AR,AR_MEM,TIME/3T,		;GET OPERAND
U 0007, 0000,3200,0043,0000,0022,0001,0000	; 4081			IR DISP,J/0		; START EXECUTE
						; 4082	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 7
; BASIC.MIC[10,5351]	19:52 24-Jul-85			TERMINATION						

						; 4083	.TOC	"TERMINATION"
						; 4084	
						; 4085	;DISPATCH HERE WITH THE "EXIT" MACRO,
						; 4086	; OR JUMP DIRECTLY TO ONE OF THESE LOCATIONS.
						; 4087	
						; 4088	=11*000
						; 4089	ST0:					;BASE FOR B DISP IN EXIT MACRO
						; 4090	=001
U 0061, 0241,5441,2000,0000,0237,1016,0000	; 4091	ST2AC:	AC0_AR,AR_SIGN,I FETCH,J/STD1	;HERE TO STORE AC0 & AC1
U 0062, 0061,4001,0003,0000,0002,0010,0000	; 4092		FIN STORE,EXIT DBL		;MULB, DIVB, ETC ...
						; 4093		FIN STORE,I FETCH,		;SELF MODE
U 0063, 0072,4001,0003,0000,0217,4610,0000	; 4094			SKP AC#0,J/STSELF	; RESULT TO AC TOO?
U 0064, 0065,0001,4000,0000,0000,0010,0000	; 4095	SHFLOD:	AR_SHIFT			;[337] Shift byte load result
U 0065, 0140,4001,0000,0403,0002,1006,0000	; 4096	STAC:	AC0_AR,NXT INSTR		;NORMAL AND IMMEDIATE MODES
						; 4097	ST6:
						; 4098	IFNOP:
U 0066, 0073,4001,0003,0000,0217,0010,0000	; 4099	STMEM:	FIN STORE,I FETCH,J/NOP		;MEM MODE
						; 4100	IFSTAC:
U 0067, 0072,0001,0003,0000,0217,0010,0000	; 4101	STBOTH:	FIN STORE,I FETCH,J/STORAC	;BOTH MODE
						; 4102	=
						; 4103	;HERE TO FINISH, AFTER FETCHING NEXT INSTRUCTION.
						; 4104	; WE MUST GUARANTEE AT LEAST ONE EBOX CYCLE BETWEEN FETCH AND NICOND,
						; 4105	; TO ALLOW VMA AC REF TO MAKE IT THROUGH THE NICOND LOGIC.
						; 4106	=11***0
						; 4107	STSELF:					;SKIP, AOS, SOS COME HERE
U 0072, 0065,0001,0000,0000,0000,1610,0000	; 4108	STORAC:	SR_0,J/STAC			;STORE AC, TOO
U 0073, 0221,4001,0000,0000,0000,1610,0000	; 4109	NOP:	SR_0,J/FINI
						; 4110	
						; 4111	=0
U 0020, 0221,4001,0000,0000,0000,0014,0000	; 4112	CLRFPD:	CLR FPD,J/FINI			;CAN'T DO THIS UNTIL STORE COMPLETE
U 0021, 0221,4001,0000,0000,0000,1610,0000	; 4113	NOP2:	SR_0,J/FINI			;THE CODE SEEMS TO WORK WITHOUT THIS
						; 4114						; BUT THE TIMING IS VERY HAIRY AND
						; 4115						; THE HARDWARE PROBABLY ISN'T
						; 4116						; SUPPOSED TO
						; 4117	
U 0221, 0140,0001,0000,0403,0002,0006,0000	; 4118	FINI:	NXT INSTR			;GET NEXT INSTR IN ARX & IR,
						; 4119						; LOAD PC, TEST PI CYCLE, RUN,
						; 4120						; PI READY, TRAPS
						; 4121	
						; 4122	;HERE TO STORE ARITHMETIC DOUBLE RESULTS
						; 4123	
U 0232, 0241,5401,2000,0000,0020,1016,0000	; 4124	DSTAC:	AC0_AR,AR_SIGN			;HERE WITH FETCH STARTED
U 0241, 0136,0001,4000,0000,0000,1610,0000	; 4125	STD1:	AR_SHIFT,SR_0			;BRING IN LOW PART
						; 4126	;
						; 4127	;	[356] The next two locations are fixed at 136 and 137.  We don't
						; 4128	;	really care where they are, but the front end looks at the # field
						; 4129	;	of these to get the microcode major version (# bits 0-5 of 136),
						; 4130	;	minor version (# bits 6-8 of 136), and edit number (# bits 0-8 of
						; 4131	;	137).
						; 4132	;	
						; 4133	136:					;[357]
						; 4134	STAC1:	AC1_AR,FINISH,			;GO DO NEXT INSTRUCTION
U 0136, 0221,4001,0001,0000,0000,1010,0020	; 4135			MAJVER/MAJOR,MINVER/MINOR;[356]
						; 4136	;
						; 4137	;HERE TO GET MICRO-CODE VERSION #.  FIXED LOC'N SO SOFTWARE CAN FIND IT
						; 4138	;
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 7-1
; BASIC.MIC[10,5351]	19:52 24-Jul-85			TERMINATION						

						; 4139	137:
U 0137, 3640,4001,0040,0000,0000,0110,0411	; 4140	UVERS:	BR/AR,AR0-8_#,#/EDIT,J/GTAR08	;COPY VERSION TO AR
						; 4141	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 8
; BASIC.MIC[10,5351]	19:52 24-Jul-85			MOVE GROUP, EXCH, BLT					

						; 4142	.TOC	"MOVE GROUP, EXCH, BLT"
						; 4143	
						; 4144		.DCODE
D 0200, 5500,0100				; 4145	200:	R-PF,	AC,	J/MOVE	;BASIC MOVE
D 0201, 1501,0100				; 4146		I-PF,	AC,	J/MOVE
						;;4147	.IF/WRTST
						;;4148		W,	M,	J/MOVE
						; 4149	.IFNOT/WRTST
D 0202, 0101,0103				; 4150		I,	B/1,	J/MOVEM
						; 4151	.ENDIF/WRTST
D 0203, 7301,0100				; 4152		RPW,	S,	J/MOVE
						; 4153	
D 0204, 5500,0002				; 4154	204:	R-PF,	AC,	J/MOVS
D 0205, 1501,0002				; 4155		I-PF,	AC,	J/MOVS
D 0206, 3600,0002				; 4156		W,	M,	J/MOVS
D 0207, 7301,0002				; 4157		RPW,	S,	J/MOVS
						; 4158	
D 0210, 5501,0201				; 4159	210:	R-PF,	AC,	J/MOVN
D 0211, 1500,0201				; 4160		I-PF,	AC,	J/MOVN
D 0212, 3601,0201				; 4161		W,	M,	J/MOVN
D 0213, 7300,0201				; 4162		RPW,	S,	J/MOVN
						; 4163	
D 0214, 5500,0112				; 4164	214:	R-PF,	AC,	J/MOVM
D 0215, 1501,0112				; 4165		I-PF,	AC,	J/MOVM
D 0216, 3600,0112				; 4166		W,	M,	J/MOVM
D 0217, 7301,0112				; 4167		RPW,	S,	J/MOVM
						; 4168		.UCODE
						; 4169	
						; 4170	; ENTER WITH 0,E, (E), OR (AC) IN AR
						; 4171	=0****00****
U 0002, 0060,4001,4000,0000,3005,0033,0000	; 4172	MOVS:	AR_AR SWAP,EXIT			;ALSO USED BY HALFWORD GROUP
						; 4173	=
						; 4174	=0****00****
U 0112, 0100,0001,0040,0000,0000,4510,0000	; 4175	MOVM:	BR/AR,SKP AR0,J/MOVE		;FORCE POSITIVE
						; 4176	=
						; 4177	=0****00****
U 0201, 0101,0001,0040,0000,0000,0010,0000	; 4178	MOVN:	BR/AR,J/MOVNEG			;GET NEGATIVE
						; 4179	=
						; 4180	100:
U 0100, 0060,0001,0000,0000,0005,0033,0000	; 4181	MOVE:	EXIT				;STORE AS IS FROM AR
						; 4182	101:
U 0101, 0100,5142,2000,0000,0022,1310,0000	; 4183	MOVNEG:	AR_-BR,AD FLAGS,FETCH WAIT,J/MOVE
						; 4184	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 9
; BASIC.MIC[10,5351]	19:52 24-Jul-85			XMOVEI, XHLLI, MOVEM, EXCH, BLT				

						; 4185	.TOC	"XMOVEI, XHLLI, MOVEM, EXCH, BLT"
						; 4186	
						; 4187	;HERE FOR XMOVEI (=SETMI), WITH 36-BIT ADDRESS IN VMA AND AR
						; 4188	
						; 4189	.IF/XADDR
						; 4190	102:
U 0102, 0224,0001,0000,0000,0217,5710,0000	; 4191	XMOVEI:	SKP -LOCAL AC ADDR,I FETCH
						; 4192	=0
U 0224, 0065,4061,0000,0000,0021,0017,0002	; 4193	XMOVEI1:ARL_1.M,ARR_ARR,J/STAC		;AC IN NON-ZERO SECTION
U 0225, 0065,0001,0000,0400,3001,0010,0200	; 4194		CLR P,J/STAC			;RETURN 30-BIT ADDRESS
						; 4195	
						; 4196	;HERE FOR XHLLI (=HLLI), WITH 36-BIT ADDRESS IN VMA AND AR
						; 4197	107:
						; 4198	XHLLI:	SKP -LOCAL AC ADDR,I FETCH,
U 0107, 0224,3240,2000,0000,0237,5722,0000	; 4199			ARR_AC0.S,ARL_ARL.S,J/XMOVEI1
						; 4200	.ENDIF/XADDR
						; 4201	
						; 4202	;EXCH, BLT
						; 4203	
						; 4204		.DCODE
D 0250, 7001,0103				; 4205	250:	RPW,	B/0,	J/EXCH
D 0251, 2000,0104				; 4206		EA,		J/BLT
						; 4207		.UCODE
						; 4208	
						; 4209	103:
						; 4210	MOVEM:					;LIKE EXCH, EXCEPT NO STORE AC
U 0103, 1160,3200,2400,0000,1036,0010,0000	; 4211	EXCH:	ARX_AR,AR_AC0,STORE,J/STMAC	;PUT AC AT E, THEN STORE AC
						; 4212	104:
						; 4213	BLT:	MQ_AR,ARX_AR,			;END ADDR TO MQ & ARX
U 0104, 3317,3200,2410,0000,1020,0610,0000	; 4214			ARR_AC0,ARL_ARL,J/BLT1	;FIRST DEST ADDR TO AR
						; 4215	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 10
; BASIC.MIC[10,5351]	19:52 24-Jul-85			HALFWORD GROUP						

						; 4216	.TOC	"HALFWORD GROUP"
						; 4217	;	DESTINATION LEFT HALF
						; 4218	
						; 4219		.DCODE
D 0500, 5500,0106				; 4220	500:	R-PF,	AC,	J/HLL
						; 4221	.IF/XADDR
D 0501, 2500,0107				; 4222		EA,	AC,	J/XHLLI		;GET 36 BIT ADDRESS IN AR AND VMA
						;;4223	.IFNOT/XADDR
						;;4224		I-PF,	AC,	J/HLL
						; 4225	.ENDIF/XADDR
D 0502, 7601,0105				; 4226		RPW,	M,	J/HRR		;HLLM = HRR EXCEPT FOR STORE
D 0503, 7301,0100				; 4227		RPW,	S,	J/MOVE		;HLLS = MOVES
						; 4228	
D 0504, 5500,0205				; 4229		R-PF,	AC,	J/HRL
D 0505, 1501,0205				; 4230		I-PF,	AC,	J/HRL
D 0506, 7601,0114				; 4231		RPW,	M,	J/HRLM
D 0507, 7300,0115				; 4232		RPW,	S,	J/HRLS
						; 4233	
D 0510, 5501,0702				; 4234	510:	R-PF,	AC,	J/HLLZ
D 0511, 1500,0702				; 4235		I-PF,	AC,	J/HLLZ
D 0512, 3601,0702				; 4236		W,	M,	J/HLLZ
D 0513, 7300,0702				; 4237		RPW,	S,	J/HLLZ
						; 4238	
D 0514, 5500,0504				; 4239		R-PF,	AC,	J/HRLZ
D 0515, 1501,0504				; 4240		I-PF,	AC,	J/HRLZ
D 0516, 3600,0504				; 4241		W,	M,	J/HRLZ
D 0517, 7301,0504				; 4242		RPW,	S,	J/HRLZ
						; 4243	
D 0520, 5500,0703				; 4244	520:	R-PF,	AC,	J/HLLO
D 0521, 1501,0703				; 4245		I-PF,	AC,	J/HLLO
D 0522, 3600,0703				; 4246		W,	M,	J/HLLO
D 0523, 7301,0703				; 4247		RPW,	S,	J/HLLO
						; 4248	
D 0524, 5501,0505				; 4249		R-PF,	AC,	J/HRLO
D 0525, 1500,0505				; 4250		I-PF,	AC,	J/HRLO
D 0526, 3601,0505				; 4251		W,	M,	J/HRLO
D 0527, 7300,0505				; 4252		RPW,	S,	J/HRLO
						; 4253	
D 0530, 5501,0503				; 4254	530:	R-PF,	AC,	J/HLLE
D 0531, 1500,0503				; 4255		I-PF,	AC,	J/HLLE
D 0532, 3601,0503				; 4256		W,	M,	J/HLLE
D 0533, 7300,0503				; 4257		RPW,	S,	J/HLLE
						; 4258	
D 0534, 5501,0401				; 4259		R-PF,	AC,	J/HRLE
D 0535, 1500,0401				; 4260		I-PF,	AC,	J/HRLE
D 0536, 3601,0401				; 4261		W,	M,	J/HRLE
D 0537, 7300,0401				; 4262		RPW,	S,	J/HRLE
						; 4263	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 11
; BASIC.MIC[10,5351]	19:52 24-Jul-85			HALFWORD GROUP						

						; 4264	;	DESTINATION RIGHT HALF
						; 4265	
D 0540, 5500,0105				; 4266	540:	R-PF,	AC,	J/HRR
D 0541, 1501,0105				; 4267		I-PF,	AC,	J/HRR
D 0542, 7601,0106				; 4268		RPW,	M,	J/HLL		;HRRM = HLL EXCEPT FOR STORE
D 0543, 7301,0100				; 4269		RPW,	S,	J/MOVE		;HRRS = MOVES
						; 4270	
D 0544, 5500,0206				; 4271		R-PF,	AC,	J/HLR
D 0545, 1501,0206				; 4272		I-PF,	AC,	J/HLR
D 0546, 7600,0402				; 4273		RPW,	M,	J/HLRM
D 0547, 7301,0403				; 4274		RPW,	S,	J/HLRS
						; 4275	
D 0550, 5500,0414				; 4276	550:	R-PF,	AC,	J/HRRZ
D 0551, 1501,0414				; 4277		I-PF,	AC,	J/HRRZ
D 0552, 3600,0414				; 4278		W,	M,	J/HRRZ
D 0553, 7301,0414				; 4279		RPW,	S,	J/HRRZ
						; 4280	
D 0554, 5501,0514				; 4281		R-PF,	AC,	J/HLRZ
D 0555, 1500,0514				; 4282		I-PF,	AC,	J/HLRZ
D 0556, 3601,0514				; 4283		W,	M,	J/HLRZ
D 0557, 7300,0514				; 4284		RPW,	S,	J/HLRZ
						; 4285	
D 0560, 5501,0415				; 4286	560:	R-PF,	AC,	J/HRRO
D 0561, 1500,0415				; 4287		I-PF,	AC,	J/HRRO
D 0562, 3601,0415				; 4288		W,	M,	J/HRRO
D 0563, 7300,0415				; 4289		RPW,	S,	J/HRRO
						; 4290	
D 0564, 5500,0515				; 4291		R-PF,	AC,	J/HLRO
D 0565, 1501,0515				; 4292		I-PF,	AC,	J/HLRO
D 0566, 3600,0515				; 4293		W,	M,	J/HLRO
D 0567, 7301,0515				; 4294		RPW,	S,	J/HLRO
						; 4295	
D 0570, 5500,0212				; 4296	570:	R-PF,	AC,	J/HRRE
D 0571, 1501,0212				; 4297		I-PF,	AC,	J/HRRE
D 0572, 3600,0212				; 4298		W,	M,	J/HRRE
D 0573, 7301,0212				; 4299		RPW,	S,	J/HRRE
						; 4300	
D 0574, 5500,0405				; 4301		R-PF,	AC,	J/HLRE
D 0575, 1501,0405				; 4302		I-PF,	AC,	J/HLRE
D 0576, 3600,0405				; 4303		W,	M,	J/HLRE
D 0577, 7301,0405				; 4304		RPW,	S,	J/HLRE
						; 4305	
						; 4306		.UCODE
						; 4307	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 12
; BASIC.MIC[10,5351]	19:52 24-Jul-85			HALFWORD GROUP						

						; 4308	;FIRST, THE 16 OPS WHICH DO NOT AFFECT THE "OTHER" HALF.
						; 4309	;THESE MUST BE TREATED SEPARATELY, BECAUSE THEY COMBINE MEMORY DATA
						; 4310	;IN AR WITH DATA FROM THE FM.  ENTER WITH 0,E OR (E) IN AR.
						; 4311	
						; 4312	105:
U 0105, 0060,3200,0000,0000,0025,0633,0002	; 4313	HRR:	ARL_AC0,ARR_ARR,EXIT		;HRR, HRRI, HLLM
						; 4314	106:
U 0106, 0060,3200,2000,0000,0025,0633,0000	; 4315	HLL:	ARR_AC0,ARL_ARL,EXIT		;HLL, HLLI, HRRM
						; 4316				;HRRS, HLLS ARE BOTH EQUIVALENT TO MOVES
						; 4317	=0****00****
U 0205, 0060,3240,2000,0000,3025,0633,0004	; 4318	HRL:	ARL_ARR,ARR_AC0,EXIT		;HRL, HRLI
						; 4319	=
						; 4320	=0****00****
U 0206, 0060,3240,4000,0000,3025,0633,0002	; 4321	HLR:	ARR_ARL,ARL_AC0,EXIT		;HLR, HLRI
						; 4322	=
						; 4323	=0****00***0
U 0114, 0002,3240,2000,0000,3020,0610,0004	; 4324	HRLM:	ARL_ARR,ARR_AC0,J/MOVS		;HRLM
U 0115, 0060,4001,0000,0000,3005,0633,0004	; 4325	HRLS:	ARL_ARR,ARR_ARR,EXIT		;HRLS
						; 4326	=
						; 4327	=0****00***0
U 0402, 0002,3240,4000,0000,3020,0610,0002	; 4328	HLRM:	ARR_ARL,ARL_AC0,J/MOVS		;HLRM
U 0403, 0060,4001,4000,0000,3005,0633,0000	; 4329	HLRS:	ARR_ARL,ARL_ARL,EXIT		;HLRS
						; 4330	=
						; 4331	;NOW THE HALFWORD OPS WHICH CONTROL THE "OTHER" HALF
						; 4332	; ENTER WITH 0,E, (E), OR (AC) IN AR
						; 4333	
						; 4334	=0****00****
U 0212, 0414,0001,0000,0000,0000,4410,0000	; 4335	HRRE:	SKP AR18			;SELECT HRRZ OR HRRO ON SIGN
						; 4336	=
						; 4337	=0****00***0
U 0414, 0060,4001,0000,0000,0005,0633,0020	; 4338	HRRZ:	ARL_0S,ARR_ARR,EXIT
U 0415, 0060,2301,0000,0000,0005,0633,0002	; 4339	HRRO:	ARL_1S,ARR_ARR,EXIT
						; 4340	=
						; 4341	=0****00****
U 0401, 0504,0001,0000,0000,0000,4410,0000	; 4342	HRLE:	SKP AR18
						; 4343	=
						; 4344	=0****00***0
U 0504, 0060,3441,2000,0000,3005,0633,0004	; 4345	HRLZ:	ARL_ARR,ARR_0S,EXIT
U 0505, 0060,2341,2000,0000,3005,0633,0004	; 4346	HRLO:	ARL_ARR,ARR_1S,EXIT
						; 4347	=
						; 4348	=0****00****
U 0405, 0514,0001,0000,0000,0000,4510,0000	; 4349	HLRE:	SKP AR0
						; 4350	=
						; 4351	=0****00***0
U 0514, 0060,0001,4000,0000,3005,0633,0020	; 4352	HLRZ:	ARR_ARL,ARL_0S,EXIT
U 0515, 0060,2341,4000,0000,3005,0633,0002	; 4353	HLRO:	ARR_ARL,ARL_1S,EXIT
						; 4354	=
						; 4355	=0****00****
U 0503, 0702,0001,0000,0000,0000,4510,0000	; 4356	HLLE:	SKP AR0
						; 4357	=
						; 4358	=0****00***0
U 0702, 0060,3401,2000,0000,0005,0633,0000	; 4359	HLLZ:	ARR_0S,ARL_ARL,EXIT
U 0703, 0060,2301,2000,0000,0005,0633,0000	; 4360	HLLO:	ARR_1S,ARL_ARL,EXIT
						; 4361	=
						; 4362	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 13
; BASIC.MIC[10,5351]	19:52 24-Jul-85			DMOVE, DMOVN, DMOVEM, DMOVNM				

						; 4363	.TOC	"DMOVE, DMOVN, DMOVEM, DMOVNM"
						; 4364	;DOUBLE-WORD MOVES
						; 4365	
						; 4366		.DCODE
D 0120, 4001,0516				; 4367	120:	R,	B/0,	J/DMOVE
D 0121, 4100,0516				; 4368		R,	B/1,	J/DMOVN
						; 4369		.UCODE
						; 4370	
						; 4371	; ENTER WITH (E) IN AR
						; 4372	=0****00****
						; 4373	DMOVN:
U 0516, 0120,4001,0000,0000,0013,3633,0000	; 4374	DMOVE:	VMA_VMA+1,LOAD ARX,B DISP	;PICK UP (E+1)
						; 4375	=
						; 4376	=00
U 0120, 1731,3200,0003,0000,0022,0010,0000	; 4377	DLOAD:	ARX_MEM,J/STDAC			;[343] GO STORE DOUBLE AC
U 0121, 0431,3200,0003,0000,0022,0062,0100	; 4378		ARX_MEM,MQ_0.S,CALL.S,J/GTDBR	;LOAD BR WITH DOUBLE OPERAND
						; 4379	=11	AR_-BR LONG,AD FLAGS,		;NEGATE DOUBLE OPERAND
U 0123, 0244,5142,2600,0302,0020,1327,0043	; 4380			SC_#,#/35.		;& STORE RESULT
U 0244, 0241,3401,2000,0000,0217,1010,0000	; 4381	DBLST:	AC0_AR,AR_0S,I FETCH,J/STD1	;STORE HIGH WORD, READY LOW
						; 4382	
						; 4383	
						; 4384	;DOUBLE MOVES TO MEMORY
						; 4385	
						; 4386		.DCODE
D 0124, 3001,0110				; 4387	124:	W,		J/DMOVEM
D 0125, 3000,0111				; 4388		W,		J/DMOVNM
						; 4389		.UCODE
						; 4390	
						; 4391	;ENTER WITH (AC) IN AR
						; 4392	=0****00**00
U 0110, 0341,3200,0201,0302,0036,0010,0044	; 4393	DMOVEM:	ARX_AC1,STORE,SC_#,#/36.,J/DMVM1
U 0111, 0431,3240,0201,0000,0020,0062,0100	; 4394	DMOVNM:	ARX_AC1,MQ_0.S,CALL.S,J/GTDBR	;HIGH WORD IS ALREADY IN AR
						; 4395	=11	AR_-BR LONG,AD FLAGS,		;NEGATE
U 0113, 0341,5142,2600,0302,0036,1327,0043	; 4396			STORE,SC_#,#/35.	; & STORE
						; 4397	=
U 0341, 0344,3401,2003,0000,0002,3610,0000	; 4398	DMVM1:	MEM_AR,VMA_VMA+1,AR_0S
U 0344, 0066,4001,4000,0000,0016,0010,0000	; 4399		AR_SHIFT,STORE,J/STMEM
						; 4400	
U 0431, 0446,3701,0500,0000,0000,0010,0000	; 4401	GTDBR:	ARX_ARX*2			;SHIFT OUT LOW SIGN
U 0446, 0003,0001,0060,0000,0000,0003,0000	; 4402	LDBRL:	BR_AR LONG,RETURN3		;COPY TO BR LONG
						; 4403	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 14
; BASIC.MIC[10,5351]	19:52 24-Jul-85			BOOLEAN GROUP						

						; 4404	.TOC	"BOOLEAN GROUP"
						; 4405		.DCODE
D 0400, 1500,0701				; 4406	400:	I-PF,	AC,	J/SETZ
D 0401, 1500,0701				; 4407		I-PF,	AC,	J/SETZ
D 0402, 0601,0701				; 4408		IW,	M,	J/SETZ
D 0403, 0700,0701				; 4409		IW,	B,	J/SETZ
						; 4410		.UCODE
						; 4411	
						; 4412	=0****00****
U 0701, 0060,3401,2000,0000,0005,0033,0000	; 4413	SETZ:	AR_0S,EXIT
						; 4414	=
						; 4415		.DCODE
D 0404, 5501,1001				; 4416	404:	R-PF,	AC,	J/AND
D 0405, 1500,1001				; 4417		I-PF,	AC,	J/AND
D 0406, 7600,1001				; 4418		RPW,	M,	J/AND
D 0407, 7701,1001				; 4419		RPW,	B,	J/AND
						; 4420		.UCODE
						; 4421	
						; 4422	=0****00****
U 1001, 0060,3600,2000,4000,0025,0033,0000	; 4423	AND:	AR_AR*AC0,AD/AND,EXIT
						; 4424	=
						; 4425		.DCODE
D 0410, 5501,1007				; 4426	410:	R-PF,	AC,	J/ANDCA
D 0411, 1500,1007				; 4427		I-PF,	AC,	J/ANDCA
D 0412, 7600,1007				; 4428		RPW,	M,	J/ANDCA
D 0413, 7701,1007				; 4429		RPW,	B,	J/ANDCA
						; 4430		.UCODE
						; 4431	
						; 4432	=0****00****
U 1007, 0060,3500,2000,4000,0025,0033,0000	; 4433	ANDCA:	AR_AR*AC0,AD/ANDCB,EXIT
						; 4434	=
						; 4435		.DCODE
D 0414, 5500,0100				; 4436	414:	R-PF,	AC,	J/MOVE		;SETM = MOVE
						; 4437	.IF/XADDR
D 0415, 2500,0102				; 4438		EA,	AC,	J/XMOVEI	;XMOVEI <=> SETMI
						;;4439	.IFNOT/XADDR
						;;4440		I-PF,	AC,	J/MOVE
						; 4441	.ENDIF/XADDR
D 0416, 7601,0100				; 4442		RPW,	M,	J/MOVE		;SETMM = NOP THAT WRITES MEMORY
D 0417, 7700,0100				; 4443		RPW,	B,	J/MOVE		;SETMB = MOVE THAT WRITES MEMORY
						; 4444	
D 0420, 5500,1116				; 4445	420:	R-PF,	AC,	J/ANDCM
D 0421, 1501,1116				; 4446		I-PF,	AC,	J/ANDCM
D 0422, 7601,1116				; 4447		RPW,	M,	J/ANDCM
D 0423, 7700,1116				; 4448		RPW,	B,	J/ANDCM
						; 4449		.UCODE
						; 4450	
						; 4451	=0****00****
U 1116, 0060,3000,2000,4000,0025,0033,0000	; 4452	ANDCM:	AR_AR*AC0,AD/ANDCA,EXIT
						; 4453	=
						; 4454		.DCODE
D 0424, 5001,0014				; 4455	424:	R-PF,		J/TDN		;SETA = NOP
D 0425, 1000,0014				; 4456		I-PF,		J/TDN		;SETAI IS, TOO
D 0426, 3600,0100				; 4457		W,	M,	J/MOVE		;SETAM = MOVEM
D 0427, 3600,0100				; 4458		W,	M,	J/MOVE		;SETAB, TOO
						; 4459	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 15
; BASIC.MIC[10,5351]	19:52 24-Jul-85			BOOLEAN GROUP						

						; 4460		.DCODE
D 0430, 5500,1201				; 4461	430:	R-PF,	AC,	J/XOR
D 0431, 1501,1201				; 4462		I-PF,	AC,	J/XOR
D 0432, 7601,1201				; 4463		RPW,	M,	J/XOR
D 0433, 7700,1201				; 4464		RPW,	B,	J/XOR
						; 4465		.UCODE
						; 4466	
						; 4467	=0****00****
U 1201, 0060,3100,2000,0000,0025,0033,0000	; 4468	XOR:	AR_AR*AC0,AD/XOR,EXIT
						; 4469	=
						; 4470		.DCODE
D 0434, 5500,1202				; 4471	434:	R-PF,	AC,	J/IOR
D 0435, 1501,1202				; 4472		I-PF,	AC,	J/IOR
D 0436, 7601,1202				; 4473		RPW,	M,	J/IOR
D 0437, 7700,1202				; 4474		RPW,	B,	J/IOR
						; 4475		.UCODE
						; 4476	
						; 4477	=0****00****
U 1202, 0060,3300,2000,4000,0025,0033,0000	; 4478	IOR:	AR_AR*AC0,AD/OR,EXIT
						; 4479	=
						; 4480		.DCODE
D 0440, 5501,1205				; 4481	440:	R-PF,	AC,	J/ANDCB
D 0441, 1500,1205				; 4482		I-PF,	AC,	J/ANDCB
D 0442, 7600,1205				; 4483		RPW,	M,	J/ANDCB
D 0443, 7701,1205				; 4484		RPW,	B,	J/ANDCB
						; 4485		.UCODE
						; 4486	
						; 4487	=0****00****
U 1205, 0060,2400,2000,4000,0025,0033,0000	; 4488	ANDCB:	AR_AR*AC0,AD/ANDC,EXIT
						; 4489	=
						; 4490		.DCODE
D 0444, 5501,1206				; 4491	444:	R-PF,	AC,	J/EQV
D 0445, 1500,1206				; 4492		I-PF,	AC,	J/EQV
D 0446, 7600,1206				; 4493		RPW,	M,	J/EQV
D 0447, 7701,1206				; 4494		RPW,	B,	J/EQV
						; 4495		.UCODE
						; 4496	
						; 4497	=0****00****
U 1206, 0060,2600,2000,0000,0025,0033,0000	; 4498	EQV:	AR_AR*AC0,AD/EQV,EXIT
						; 4499	=
						; 4500		.DCODE
D 0450, 1501,1311				; 4501	450:	I-PF,	AC,	J/SETCA
D 0451, 1501,1311				; 4502		I-PF,	AC,	J/SETCA
D 0452, 0600,1311				; 4503		IW,	M,	J/SETCA
D 0453, 0701,1311				; 4504		IW,	B,	J/SETCA
						; 4505		.UCODE
						; 4506	
						; 4507	=0****00****
U 1311, 0060,2500,2000,0000,0025,0033,0000	; 4508	SETCA:	AR_AR*AC0,AD/SETCB,EXIT
						; 4509	=
						; 4510	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 16
; BASIC.MIC[10,5351]	19:52 24-Jul-85			BOOLEAN GROUP						

						; 4511		.DCODE
D 0454, 5501,1510				; 4512	454:	R-PF,	AC,	J/ORCA
D 0455, 1500,1510				; 4513		I-PF,	AC,	J/ORCA
D 0456, 7600,1510				; 4514		RPW,	M,	J/ORCA
D 0457, 7701,1510				; 4515		RPW,	B,	J/ORCA
						; 4516		.UCODE
						; 4517	
						; 4518	=0****00****
U 1510, 0060,2700,2000,4000,0025,0033,0000	; 4519	ORCA:	AR_AR*AC0,AD/ORCB,EXIT
						; 4520	=
						; 4521		.DCODE
D 0460, 5500,1511				; 4522	460:	R-PF,	AC,	J/SETCM
D 0461, 1501,1511				; 4523		I-PF,	AC,	J/SETCM
D 0462, 7601,1511				; 4524		RPW,	M,	J/SETCM
D 0463, 7700,1511				; 4525		RPW,	B,	J/SETCM
						; 4526		.UCODE
						; 4527	
						; 4528	=0****00****
U 1511, 0060,2001,2000,0000,0005,0033,0000	; 4529	SETCM:	ADA/AR,AD/SETCA,AR/AD,EXIT
						; 4530	=
						; 4531		.DCODE
D 0464, 5500,1512				; 4532	464:	R-PF,	AC,	J/ORCM
D 0465, 1501,1512				; 4533		I-PF,	AC,	J/ORCM
D 0466, 7601,1512				; 4534		RPW,	M,	J/ORCM
D 0467, 7700,1512				; 4535		RPW,	B,	J/ORCM
						; 4536		.UCODE
						; 4537	
						; 4538	=0****00****
U 1512, 0060,2200,2000,4000,0025,0033,0000	; 4539	ORCM:	AR_AR*AC0,AD/ORCA,EXIT
						; 4540	=
						; 4541		.DCODE
D 0470, 5501,1513				; 4542	470:	R-PF,	AC,	J/ORCB
D 0471, 1500,1513				; 4543		I-PF,	AC,	J/ORCB
D 0472, 7600,1513				; 4544		RPW,	M,	J/ORCB
D 0473, 7701,1513				; 4545		RPW,	B,	J/ORCB
						; 4546		.UCODE
						; 4547	
						; 4548	=0****00****
U 1513, 0060,2100,2000,4000,0025,0033,0000	; 4549	ORCB:	AR_AR*AC0,AD/ORC,EXIT
						; 4550	=
						; 4551		.DCODE
D 0474, 1501,1514				; 4552	474:	I-PF,	AC,	J/SETO
D 0475, 1501,1514				; 4553		I-PF,	AC,	J/SETO
D 0476, 0600,1514				; 4554		IW,	M,	J/SETO
D 0477, 0701,1514				; 4555		IW,	B,	J/SETO
						; 4556		.UCODE
						; 4557	
						; 4558	=0****00****
U 1514, 0060,2301,2000,0000,0005,0033,0000	; 4559	SETO:	AR_1S,EXIT
						; 4560	=
						; 4561	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 1
; SKPJMP.MIC[10,5351]	19:52 24-Jul-85			TEST GROUP						

						; 4562	.TOC	"TEST GROUP"
						; 4563		.DCODE
D 0600, 1000,0014				; 4564	600:	I-PF,		J/TDN		;TRN- IS NOP
D 0601, 1000,0014				; 4565		I-PF,		J/TDN		;SO IS TLN-
D 0602, 0000,0013				; 4566		I,	TNE,	J/TDXX
D 0603, 0001,0012				; 4567		I,	TNE,	J/TSXX
D 0604, 0000,0010				; 4568		I,	TNA,	J/TDX
D 0605, 0001,0011				; 4569		I,	TNA,	J/TSX
D 0606, 0401,0013				; 4570		I,	TNN,	J/TDXX
D 0607, 0400,0012				; 4571		I,	TNN,	J/TSXX
						; 4572	
D 0610, 1000,0014				; 4573	610:	I-PF,		J/TDN		;TDN- IS A NOP
D 0611, 1000,0014				; 4574		I-PF,		J/TDN		;TSN- ALSO
D 0612, 4001,0013				; 4575		R,	TNE,	J/TDXX
D 0613, 4000,0012				; 4576		R,	TNE,	J/TSXX
D 0614, 4001,0010				; 4577		R,	TNA,	J/TDX
D 0615, 4000,0011				; 4578		R,	TNA,	J/TSX
D 0616, 4400,0013				; 4579		R,	TNN,	J/TDXX
D 0617, 4401,0012				; 4580		R,	TNN,	J/TSXX
						; 4581	
D 0620, 0500,0010				; 4582	620:	I,	TZ-,	J/TDX
D 0621, 0501,0011				; 4583		I,	TZ-,	J/TSX
D 0622, 0101,0013				; 4584		I,	TZE,	J/TDXX
D 0623, 0100,0012				; 4585		I,	TZE,	J/TSXX
D 0624, 0101,0010				; 4586		I,	TZA,	J/TDX
D 0625, 0100,0011				; 4587		I,	TZA,	J/TSX
D 0626, 0500,0013				; 4588		I,	TZN,	J/TDXX
D 0627, 0501,0012				; 4589		I,	TZN,	J/TSXX
						; 4590	
D 0630, 4501,0010				; 4591	630:	R,	TZ-,	J/TDX
D 0631, 4500,0011				; 4592		R,	TZ-,	J/TSX
D 0632, 4100,0013				; 4593		R,	TZE,	J/TDXX
D 0633, 4101,0012				; 4594		R,	TZE,	J/TSXX
D 0634, 4100,0010				; 4595		R,	TZA,	J/TDX
D 0635, 4101,0011				; 4596		R,	TZA,	J/TSX
D 0636, 4501,0013				; 4597		R,	TZN,	J/TDXX
D 0637, 4500,0012				; 4598		R,	TZN,	J/TSXX
						; 4599	
D 0640, 0600,0010				; 4600	640:	I,	TC-,	J/TDX
D 0641, 0601,0011				; 4601		I,	TC-,	J/TSX
D 0642, 0201,0013				; 4602		I,	TCE,	J/TDXX
D 0643, 0200,0012				; 4603		I,	TCE,	J/TSXX
D 0644, 0201,0010				; 4604		I,	TCA,	J/TDX
D 0645, 0200,0011				; 4605		I,	TCA,	J/TSX
D 0646, 0600,0013				; 4606		I,	TCN,	J/TDXX
D 0647, 0601,0012				; 4607		I,	TCN,	J/TSXX
						; 4608	
D 0650, 4601,0010				; 4609	650:	R,	TC-,	J/TDX
D 0651, 4600,0011				; 4610		R,	TC-,	J/TSX
D 0652, 4200,0013				; 4611		R,	TCE,	J/TDXX
D 0653, 4201,0012				; 4612		R,	TCE,	J/TSXX
D 0654, 4200,0010				; 4613		R,	TCA,	J/TDX
D 0655, 4201,0011				; 4614		R,	TCA,	J/TSX
D 0656, 4601,0013				; 4615		R,	TCN,	J/TDXX
D 0657, 4600,0012				; 4616		R,	TCN,	J/TSXX
						; 4617	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 2
; SKPJMP.MIC[10,5351]	19:52 24-Jul-85			TEST GROUP						

D 0660, 0701,0010				; 4618	660:	I,	TO-,	J/TDX
D 0661, 0700,0011				; 4619		I,	TO-,	J/TSX
D 0662, 0300,0013				; 4620		I,	TOE,	J/TDXX
D 0663, 0301,0012				; 4621		I,	TOE,	J/TSXX
D 0664, 0300,0010				; 4622		I,	TOA,	J/TDX
D 0665, 0301,0011				; 4623		I,	TOA,	J/TSX
D 0666, 0701,0013				; 4624		I,	TON,	J/TDXX
D 0667, 0700,0012				; 4625		I,	TON,	J/TSXX
						; 4626	
D 0670, 4700,0010				; 4627	670:	R,	TO-,	J/TDX
D 0671, 4701,0011				; 4628		R,	TO-,	J/TSX
D 0672, 4301,0013				; 4629		R,	TOE,	J/TDXX
D 0673, 4300,0012				; 4630		R,	TOE,	J/TSXX
D 0674, 4301,0010				; 4631		R,	TOA,	J/TDX
D 0675, 4300,0011				; 4632		R,	TOA,	J/TSX
D 0676, 4700,0013				; 4633		R,	TON,	J/TDXX
D 0677, 4701,0012				; 4634		R,	TON,	J/TSXX
						; 4635		.UCODE
						; 4636	
						; 4637	;THESE 64 INSTRUCTIONS ARE DECODED BY MASK MODE (IMMEDIATE OR MEMORY)
						; 4638	; IN THE A FIELD, DISPATCH TO HERE ON THE J FIELD, AND RE-DISPATCH
						; 4639	; FOR THE MODIFICATION ON THE B FIELD.
						; 4640	
						; 4641	; ENTER WITH 0,E OR (E) IN AR, B FIELD BITS 1 AND 2 AS FOLLOWS:
						; 4642	; 0 0	NO MODIFICATION
						; 4643	; 0 1	ZEROS
						; 4644	; 1 0	COMPLEMENT
						; 4645	; 1 1	ONES
						; 4646	;   THIS ORDER HAS NO SIGNIFICANCE EXCEPT THAT IT CORRESPONDS TO THE
						; 4647	;   ORDER OF INSTRUCTIONS AT TGROUP.
						; 4648	
						; 4649	;THE HIGH ORDER BIT OF THE B FIELD (B0) IS XOR'D WITH AD CRY0 TO
						; 4650	;   DETERMINE THE SENSE OF THE SKIP:
						; 4651	; 0	SKIP IF CRY0=1 (TXX- AND TXXN)
						; 4652	; 1	SKIP IF CRY0=0 (TXXA AND TXXE)
						; 4653	
						; 4654	=0****00*000
						; 4655	TDX:	TEST FETCH,NO CRY,		;TDXA AND TRXA
U 0010, 0014,2001,0000,0000,0226,0033,0203	; 4656			B DISP,J/TDN
						; 4657	
						; 4658	TSX:	AR_AR SWAP,TEST FETCH,NO CRY,	;TSX, TSXA, TLX, AND TLXA
U 0011, 0014,2041,4000,0000,3226,0033,0203	; 4659			B DISP,J/TDN
						; 4660	
U 0012, 0013,4001,4000,0000,3000,0010,0000	; 4661	TSXX:	AR_AR SWAP			;TSXE, TSXN, TLXE, AND TLXN
						; 4662	
U 0013, 0014,3600,0000,0000,0246,0033,0203	; 4663	TDXX:	TEST AR.AC0,TEST FETCH,B DISP	;TDXE, TDXN, TRXE, AND TRXN
						; 4664	
U 0014, 0221,0001,0000,0000,0000,0010,0000	; 4665	TDN:	J/FINI				;NO MODIFICATION
U 0015, 0065,3000,2000,4000,0000,0010,0000	; 4666	TDZ:	AR_AR*AC0,AD/ANDCA,TIME/2T,J/STAC	;ZEROS
U 0016, 0065,3100,2000,0000,0000,0010,0000	; 4667	TDC:	AR_AR*AC0,AD/XOR,TIME/2T,J/STAC		;COMP
U 0017, 0065,3300,2000,4000,0000,0010,0000	; 4668	TDO:	AR_AR*AC0,AD/OR,TIME/2T,J/STAC		;ONES
						; 4669	=
						; 4670	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 3
; SKPJMP.MIC[10,5351]	19:52 24-Jul-85			COMPARE -- CAI, CAM					

						; 4671	.TOC	"COMPARE -- CAI, CAM"
						; 4672	
						; 4673		.DCODE
D 0300, 0301,1515				; 4674	300:	I,	SJC-,	J/CAIM	;CAI
D 0301, 0200,1515				; 4675		I,	SJCL,	J/CAIM
D 0302, 0100,1515				; 4676		I,	SJCE,	J/CAIM
D 0303, 0001,1515				; 4677		I,	SJCLE,	J/CAIM
D 0304, 0700,1515				; 4678		I,	SJCA,	J/CAIM
D 0305, 0601,1515				; 4679		I,	SJCGE,	J/CAIM
D 0306, 0501,1515				; 4680		I,	SJCN,	J/CAIM
D 0307, 0400,1515				; 4681		I,	SJCG,	J/CAIM
						; 4682	
D 0310, 4300,1515				; 4683	310:	R,	SJC-,	J/CAIM	;CAM
D 0311, 4201,1515				; 4684		R,	SJCL,	J/CAIM
D 0312, 4101,1515				; 4685		R,	SJCE,	J/CAIM
D 0313, 4000,1515				; 4686		R,	SJCLE,	J/CAIM
D 0314, 4701,1515				; 4687		R,	SJCA,	J/CAIM
D 0315, 4600,1515				; 4688		R,	SJCGE,	J/CAIM
D 0316, 4500,1515				; 4689		R,	SJCN,	J/CAIM
D 0317, 4401,1515				; 4690		R,	SJCG,	J/CAIM
						; 4691		.UCODE
						; 4692	
						; 4693	=0****00****
U 1515, 0073,3100,0000,0000,0246,0010,0201	; 4694	CAIM:	GEN AR*AC0,COMP FETCH,J/NOP
						; 4695	=
						; 4696	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 4
; SKPJMP.MIC[10,5351]	19:52 24-Jul-85			ARITHMETIC SKIPS -- AOS, SOS, SKIP			

						; 4697	.TOC	"ARITHMETIC SKIPS -- AOS, SOS, SKIP"
						; 4698	;ENTER WITH (E) IN AR
						; 4699	
						; 4700		.DCODE
D 0330, 4300,1516				; 4701	330:	R,	SJC-,	J/SKIP	;NOT A NOP IF AC .NE. 0
D 0331, 4201,1516				; 4702		R,	SJCL,	J/SKIP
D 0332, 4101,1516				; 4703		R,	SJCE,	J/SKIP
D 0333, 4000,1516				; 4704		R,	SJCLE,	J/SKIP
D 0334, 4701,1516				; 4705		R,	SJCA,	J/SKIP
D 0335, 4600,1516				; 4706		R,	SJCGE,	J/SKIP
D 0336, 4500,1516				; 4707		R,	SJCN,	J/SKIP
D 0337, 4401,1516				; 4708		R,	SJCG,	J/SKIP
						; 4709		.UCODE
						; 4710	
						; 4711	=0****00****
						; 4712	SKIP:	FIN STORE,SKIP FETCH,
U 1516, 0072,3703,0003,0000,0246,4610,0202	; 4713			SKP AC#0,J/STSELF	;STORE IN SELF MODE
						; 4714	=
						; 4715	
						; 4716		.DCODE
D 0350, 7301,1517				; 4717	350:	RPW,	SJC-,	J/AOS
D 0351, 7200,1517				; 4718		RPW,	SJCL,	J/AOS
D 0352, 7100,1517				; 4719		RPW,	SJCE,	J/AOS
D 0353, 7001,1517				; 4720		RPW,	SJCLE,	J/AOS
D 0354, 7700,1517				; 4721		RPW,	SJCA,	J/AOS
D 0355, 7601,1517				; 4722		RPW,	SJCGE,	J/AOS
D 0356, 7501,1517				; 4723		RPW,	SJCN,	J/AOS
D 0357, 7400,1517				; 4724		RPW,	SJCG,	J/AOS
						; 4725		.UCODE
						; 4726	
						; 4727	=0****00****
U 1517, 1516,4001,2000,0000,0036,1310,0000	; 4728	AOS:	AR_AR+1,AD FLAGS,STORE,J/SKIP
						; 4729	=
						; 4730	
						; 4731		.DCODE
D 0370, 7301,1600				; 4732	370:	RPW,	SJC-,	J/SOS
D 0371, 7200,1600				; 4733		RPW,	SJCL,	J/SOS
D 0372, 7100,1600				; 4734		RPW,	SJCE,	J/SOS
D 0373, 7001,1600				; 4735		RPW,	SJCLE,	J/SOS
D 0374, 7700,1600				; 4736		RPW,	SJCA,	J/SOS
D 0375, 7601,1600				; 4737		RPW,	SJCGE,	J/SOS
D 0376, 7501,1600				; 4738		RPW,	SJCN,	J/SOS
D 0377, 7400,1600				; 4739		RPW,	SJCG,	J/SOS
						; 4740		.UCODE
						; 4741	
						; 4742	=0****00****
U 1600, 1516,1703,2000,0000,0036,1310,0000	; 4743	SOS:	AR_AR-1,AD FLAGS,STORE,J/SKIP
						; 4744	=
						; 4745	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 5
; SKPJMP.MIC[10,5351]	19:52 24-Jul-85			CONDITIONAL JUMPS -- JUMP, AOJ, SOJ, AOBJ		

						; 4746	.TOC	"CONDITIONAL JUMPS -- JUMP, AOJ, SOJ, AOBJ"
						; 4747	
						; 4748		.DCODE
D 0320, 0301,1601				; 4749	320:	I,	SJC-,	J/JUMP
D 0321, 0200,1601				; 4750		I,	SJCL,	J/JUMP
D 0322, 0100,1601				; 4751		I,	SJCE,	J/JUMP
D 0323, 0001,1601				; 4752		I,	SJCLE,	J/JUMP
D 0324, 0700,1601				; 4753		I,	SJCA,	J/JUMP
D 0325, 0601,1601				; 4754		I,	SJCGE,	J/JUMP
D 0326, 0501,1601				; 4755		I,	SJCN,	J/JUMP
D 0327, 0400,1601				; 4756		I,	SJCG,	J/JUMP
						; 4757		.UCODE
						; 4758	
						; 4759	=0****00****
U 1601, 0073,3200,2000,0000,0246,0010,0502	; 4760	JUMP:	AR_AC0,JUMP FETCH,J/NOP		; E IS IN VMA (HERE AND BELOW)
						; 4761	=
						; 4762	
						; 4763		.DCODE
D 0340, 0301,1602				; 4764	340:	I,	SJC-,	J/AOJ
D 0341, 0200,1602				; 4765		I,	SJCL,	J/AOJ
D 0342, 0100,1602				; 4766		I,	SJCE,	J/AOJ
D 0343, 0001,1602				; 4767		I,	SJCLE,	J/AOJ
D 0344, 0700,1602				; 4768		I,	SJCA,	J/AOJ
D 0345, 0601,1602				; 4769		I,	SJCGE,	J/AOJ
D 0346, 0501,1602				; 4770		I,	SJCN,	J/AOJ
D 0347, 0400,1602				; 4771		I,	SJCG,	J/AOJ
						; 4772		.UCODE
						; 4773	
						; 4774	=0****00****
U 1602, 0072,4640,2000,0000,0266,1310,0502	; 4775	AOJ:	AR_AC0+1,AD FLAGS,JUMP FETCH,J/STORAC
						; 4776	=
						; 4777	
						; 4778		.DCODE
D 0360, 0300,1603				; 4779	360:	I,	SJC-,	J/SOJ
D 0361, 0201,1603				; 4780		I,	SJCL,	J/SOJ
D 0362, 0101,1603				; 4781		I,	SJCE,	J/SOJ
D 0363, 0000,1603				; 4782		I,	SJCLE,	J/SOJ
D 0364, 0701,1603				; 4783		I,	SJCA,	J/SOJ
D 0365, 0600,1603				; 4784		I,	SJCGE,	J/SOJ
D 0366, 0500,1603				; 4785		I,	SJCN,	J/SOJ
D 0367, 0401,1603				; 4786		I,	SJCG,	J/SOJ
						; 4787		.UCODE
						; 4788	
						; 4789	=0****00****
U 1603, 0476,3240,2000,0000,0020,0010,0000	; 4790	SOJ:	AR_AC0
U 0476, 0072,1703,2000,0000,0266,1310,0502	; 4791	=	AR_AR-1,AD FLAGS,JUMP FETCH,J/STORAC
						; 4792	
						; 4793		.DCODE
D 0252, 0601,1604				; 4794	252:	I,	SJCGE,	J/AOBJ
D 0253, 0200,1604				; 4795		I,	SJCL,	J/AOBJ
						; 4796		.UCODE
						; 4797	
						; 4798	=0****00****
U 1604, 0072,4640,2000,0000,0266,0017,0502	; 4799	AOBJ:	AR_AC0+1,GEN CRY18,JUMP FETCH,J/STORAC
						; 4800	=
						; 4801	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 6
; SKPJMP.MIC[10,5351]	19:52 24-Jul-85			AC DECODE JUMPS -- JRST, JFCL				

						; 4802	.TOC	"AC DECODE JUMPS -- JRST, JFCL"
						; 4803	
						; 4804		.DCODE
D 0254, 2000,0600				; 4805	254:	EA,	J/JRST		;DISPATCHES TO 1 OF 16 ON AC BITS
D 0255, 0401,0700				; 4806		I,TNN,	J/JFCL
						; 4807		.UCODE
						; 4808	
						; 4809	;A READ DETECTS JRST, AND DISPATCHES TO ONE OF 16 LOC'NS ON AC BITS
						; 4810	
						; 4811	600:				;DRAM REQUIRES JRST AT MULTIPLE OF 200
U 0600, 0221,0001,0000,0000,0000,0010,0000	; 4812	JRST:	J/FINI				;(0) A READ PREFETCHES ON JRST 0,
U 0601, 0630,0001,0040,0000,0000,0024,0412	; 4813	601:	PORTAL,BR/AR,J/BRJMP		;(1) PORTAL
						; 4814	602:
U 0602, 0076,2341,0040,0000,0000,0036,0000	; 4815	JRST2:	EA MOD DISP,BR/AR,J/JRSTF	;(2) JRSTF
U 0603, 1002,4001,0000,0000,0000,0010,0000	; 4816	603:	J/UUO				;(3)
U 0604, 1016,0001,0000,0000,0000,6110,0000	; 4817	604:	SKP KERNEL,J/IHALT		;(4) HALT
						; 4818	.IF/LONG.PC
U 0605, 0624,4001,0000,0000,0012,0010,0000	; 4819	605:	LOAD AR,J/XJRSTF1		;(5) XJRSTF -- VALID ANYWHERE
U 0606, 0604,4001,0000,0000,0000,7310,0000	; 4820	606:	SKP IO LEGAL,J/604		;(6) XJEN -- TRAP IF USER
U 0607, 0664,4031,0200,0000,0020,7325,0000	; 4821	607:	SKP IO LEGAL,ARX_PC+1,J/XPCW1	;(7) XPCW -- TRAP IF USER
						;;4822	.IFNOT/LONG.PC
						;;4823	605:	J/UUO				;(5)
						;;4824	606:	J/UUO				;(6)
						;;4825	607:	J/UUO				;(7)
						; 4826	.ENDIF/LONG.PC
U 0610, 0440,0001,0000,0000,0000,7310,0000	; 4827	610:	SKP IO LEGAL,J/DISM		;(10) JRST 10, DISMISS ONLY
U 0611, 1002,4001,0000,0000,0000,0010,0000	; 4828	611:	J/UUO				;(11)
U 0612, 0440,0001,0000,0000,0000,7310,0000	; 4829	612:	SKP IO LEGAL,J/DISM		;(12) JEN
U 0613, 1002,4001,0000,0000,0000,0010,0000	; 4830	613:	J/UUO				;(13)
						; 4831	.IF/LONG.PC
U 0614, 0551,4033,0200,0000,0020,0625,0030	; 4832	614:	AR_0.C,ARX_PC+1,J/XSFM1		;(14) XSFM [331]
U 0615, 0645,0001,0000,0000,0012,0010,0000	; 4833	615:	LOAD AR,J/PCA			;(15) XJRST [301]
						;;4834	.IFNOT/LONG.PC
						;;4835	614:	J/UUO				;(14)
						;;4836	615:	J/UUO				;(15)
						; 4837	.ENDIF/LONG.PC
U 0616, 1002,4001,0000,0000,0000,0010,0000	; 4838	616:	J/UUO				;(16)
U 0617, 1002,4001,0000,0000,0000,0010,0000	; 4839	617:	J/UUO				;(17)
						; 4840	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 7
; SKPJMP.MIC[10,5351]	19:52 24-Jul-85			AC DECODE JUMPS -- JRST, JFCL				

						; 4841	;HERE TO FINISH THE MORE COMPLEX FORMS OF JRST
						; 4842	
						;;4843	.IFNOT/XADDR
						;;4844	=1110
						;;4845	JRSTF:	AR_ARX,J/RSTF			;NO XR, RESTORE FROM INDIRECT WORD
						;;4846		AR_XR,J/RSTF			;INDEXED, RESTORE FROM REGISTER
						; 4847	.IF/XADDR
						; 4848	=1110
U 0076, 0334,0001,4000,0000,2000,5010,0000	; 4849	JRSTF:	AR_ARX,SKP PC SEC0,J/RSTF0	;NO XR, RESTORE FROM INDIRECT WORD
U 0077, 0334,3240,2002,0000,0020,5010,0000	; 4850		AR_XR,SKP PC SEC0		;INDEXED, RESTORE FROM REGISTER
						; 4851	=0
U 0334, 1002,4001,0000,0000,0000,0010,0000	; 4852	RSTF0:	J/UUO
						; 4853	.ENDIF/XADDR
U 0335, 0630,0001,0000,0000,0000,0024,0420	; 4854	RSTF:	RSTR FLAGS_AR,J/BRJMP
						; 4855	
						; 4856	=0
U 0440, 1002,4001,0000,0000,0000,0010,0000	; 4857	DISM:	J/UUO				;ATTEMPT TO DISMISS FROM USER
U 0441, 0532,4001,0040,0000,0000,0024,0502	; 4858		DISMISS,BR/AR
U 0532, 0020,0001,0000,0000,0000,0001,0000	; 4859		IR DISP,J/20			;SPLIT OUT AGAIN
						; 4860	630:					;JRST 10,
U 0630, 0073,3242,0000,0000,0317,0010,0000	; 4861	BRJMP:	VMA_BR,FETCH,J/NOP		;RELOAD VMA WITH NEW FLAGS
U 0632, 0076,2301,0000,0000,0000,0036,0000	; 4862	632:	EA MOD DISP,J/JRSTF		;JEN, MUST RESTORE FLAGS
						; 4863	
						; 4864	.IF/LONG.PC
U 0551, 0554,3510,0207,0000,0020,6210,0175	; 4865	XSFM1:	ARX_ARX ANDC ADMSK,SKP USER    	;[331] XSFM now legal everywhere
U 0554, 0676,4001,0000,0000,2000,0250,0000	; 4866	=0	AR12-17_PREV SEC,CALL [ARSWAP]	;[334] SAVE PCS IN AR
						; 4867		ARL_ARXL,ARR_ARR,        	;STORE FLAG WORD
U 0555, 0634,0001,0000,0000,2016,0022,0004	; 4868			STORE,J/XSFM2
						; 4869	;					;[334]
						; 4870	
						;;4871	.IFNOT/XADDR
						;;4872	=0
						;;4873	XPCW1:	J/UUO				;BAD USE OF XPCW 
						;;4874		AR_ARX ANDC ADMSK,STORE,	;STORE FLAGS WORD
						;;4875			BRX/ARX,ARX/AD,
						;;4876			IR DISP,J/20		;IS THIS XSFM OR XPCW
						; 4877	.IF/XADDR
						; 4878	=0
U 0664, 1002,4001,0000,0000,0000,0010,0000	; 4879	XPCW1:	J/UUO				;BAD USE OF XPCW
						; 4880		AR_ARX ANDC ADMSK,BRX/ARX,	;SAVE FLAGS,PC IN BRX AND
U 0665, 0621,3510,2227,0000,0020,0010,0175	; 4881			ARX/AD			;FLAGS IN ARX
U 0621, 0670,4001,0040,0000,0000,6222,0030	; 4882		AR_0.S,BR/AR,SKP USER
U 0670, 0676,4001,0000,0000,2000,0250,0000	; 4883	=0	AR12-17_PREV SEC,CALL [ARSWAP]	;[334] SAVE PCS IN AR
						; 4884		ARL_BRL,ARR_ARR,STORE,		;STORE FLAGS WORD
U 0671, 0020,3242,0000,0000,0016,0601,0002	; 4885			IR DISP,J/20		;IS THIS XSFM, OR XPCW?
						; 4886	.ENDIF/XADDR
						; 4887	627:	FIN STORE,AR_ARX*BRX,AD/ANDCA,	;XPCW.  GET ADDRESS TO AR
U 0627, 0636,3002,6003,0000,0016,3610,0000	; 4888			VMA_VMA+1,STORE,J/XPCW2
						; 4889	634:
U 0634, 0073,4001,0003,0000,0217,0010,0000	; 4890	XSFM2:	FIN STORE,I FETCH,J/NOP		;XSFM.  DONE.
						; 4891	
						; 4892	XJRSTF1:FIN XFER,VMA_VMA+1,LOAD AR,	;GETS TO 625 OR 626 FOR XJRSTF
U 0624, 0020,3240,0003,0000,0032,3601,0000	; 4893			IR DISP,J/20		; OR XJEN
						; 4894	
						;;4895	.IFNOT/XADDR
						;;4896	XPCW2:	FIN STORE,VMA_VMA+1,LOAD AR	;STORE PC ADDR, GET NEW FLAGS
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 7-1
; SKPJMP.MIC[10,5351]	19:52 24-Jul-85			AC DECODE JUMPS -- JRST, JFCL				

						;;4897		FIN XFER,VMA_VMA+1,LOAD AR	;GOT FLAGS GET PC ADDRESS
						;;4898	625:	RSTR FLAGS_AR,AR_MEM,J/ARJMP	;XJRSTF WINDS UP HERE
						;;4899	626:	RSTR FLAGS_AR,AR_MEM		;XJEN WINDS UP HERE
						;;4900		DISMISS,J/ARJMP
						; 4901	.IF/XADDR
U 0636, 0641,4001,0003,0000,0012,3610,0000	; 4902	XPCW2:	FIN STORE,VMA_VMA+1,LOAD AR	;STORE PC ADDR, GET NEW FLAGS
U 0641, 0642,3200,0003,0000,0032,3610,0000	; 4903		FIN XFER,VMA_VMA+1,LOAD AR	;GOT FLAGS, GET PC ADDRESS
U 0642, 0751,3200,0003,0000,0022,0024,0420	; 4904		RSTR FLAGS_AR,AR_MEM,J/ARJMP
						; 4905	625:	RSTR FLAGS_AR,AR_MEM,       	;XJRSTF WINDS UP HERE
						; 4906			ARX_AR SWAP,		;SAVE PCS,FLAGS IN ARX
U 0625, 0734,3200,0403,0000,3022,6224,0420	; 4907			SKP USER,J/XJRSTF2
						; 4908	626:	RSTR FLAGS_AR,AR_MEM,SKP USER,	;XJEN WINDS UP HERE
U 0626, 0674,3200,0403,0000,3022,6224,0420	; 4909			ARX_AR SWAP		;SAVE PCS,FLAGS IN ARX
U 0674, 0734,4001,0000,0000,0000,0024,0502	; 4910	=0	DISMISS,J/XJRSTF2
U 0675, 0751,4001,0000,0000,0000,0024,0502	; 4911		DISMISS,J/ARJMP
						; 4912	=0
U 0734, 0750,4001,0000,0000,0000,6210,0000	; 4913	XJRSTF2:SKP USER,J/XJRSTF3
U 0735, 0073,3703,0000,0000,0317,0010,0000	; 4914		VMA_AR,FETCH,J/NOP
						; 4915	=0
U 0750, 0654,4001,0000,0000,0000,0050,0000	; 4916	XJRSTF3:CALL,J/LDPCS			;RESTORE PCS FROM FLAGS WORD
						; 4917	.ENDIF/XADDR
U 0751, 0073,3703,0000,0000,0317,0010,0000	; 4918	ARJMP:	VMA_AR,FETCH,J/NOP		;DONE
						; 4919	.IF/XADDR
U 0645, 0751,3200,0003,0000,0022,1610,0000	; 4920	PCA:	AR_MEM,SR_0,J/ARJMP		;[301] End of LUUO and XJRST
						; 4921	;
U 0654, 0661,4001,0000,0000,0000,2210,0400	; 4922	LDPCS:	GET ECL EBUS
U 0661, 0666,3711,0000,0000,0060,2010,0426	; 4923		LD PCS
						; 4924		COND/EBUS CTL,EBUS CTL/2,	;RELEASE ECL BUS
U 0666, 0001,0001,0000,0000,0000,2203,0002	; 4925			RETURN1
						; 4926	.ENDIF/XADDR
						; 4927	.ENDIF/LONG.PC
						; 4928	;
						; 4929	;	[334] Subroutine to swap AR halves.  Used in a couple of places.
						; 4930	;
U 0676, 0001,0001,4000,0000,3000,0003,0000	; 4931	ARSWAP:	AR_AR SWAP,RETURN1		;[334] Rearrange things
						; 4932	;
						; 4933	700:					;JFCL MUST BE AT JRST+100
U 0700, 0034,3242,0600,0302,0000,0010,0015	; 4934	JFCL:	ARX_BRX,SC_#,#/13.		;GET BACK AC FIELD
						; 4935	=0*	AR_SHIFT,ARX_0S,		;MOVE AC TO AR32-35
U 0034, 2662,3441,4200,0302,0000,0050,0040	; 4936			SC_#,#/32.,CALL,J/SHIFT	;SHIFTER WILL MOVE TO 0-3
U 0036, 0731,3731,2040,0000,0000,0024,0602	; 4937		BR/AR,AR_PC,JFCL T		;GET PC FLAGS INTO AR
U 0731, 0741,3602,0000,0000,0246,0010,0503	; 4938		TEST AR.BR,JFCL FETCH		;JUMP IF TEST SATISFIED
U 0741, 0745,3502,2000,0000,0000,0010,0000	; 4939		AR_AR*BR,AD/ANDCB		;CLEAR TESTED FLAGS IN AR
U 0745, 0221,4001,0000,0000,0000,0024,0622	; 4940		JFCL S,J/FINI			;SET PC FROM THEM
						; 4941	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 8
; SKPJMP.MIC[10,5351]	19:52 24-Jul-85			HALT LOOP						

						; 4942	.TOC	"HALT LOOP"
						; 4943	;HERE WHILE PROCESSOR IS "HALTED"
						; 4944	
						; 4945	1016:
						; 4946	UUO107:					;OP 107 COMES HERE
U 1016, 1002,4001,0000,0000,0000,0010,0000	; 4947	IHALT:	J/UUO				;HERE IF HALT NOT IN KERNEL
U 1017, 0752,4001,0000,0000,0000,0024,0442	; 4948	1017:	HALT
						; 4949	
						; 4950	CHALT:	AR_0S,CLR SC,CLR FE,SET HALTED,	;KERNEL OR CONSOLE HALT
U 0752, 0754,3441,2000,0403,0100,1515,0302	; 4951			VMA/PC,PC_VMA		; IF JRST 4, COPY EA TO PC
						;;4952	.IF/PAGCNT				;[327] PFH, DATAO PAG bit 2 counts
						;;4953		TRX2_AR				;[327] Zero count registers
						;;4954		TRX3_AR
						; 4955	.ENDIF/PAGCNT				;[327]
						; 4956	=0
						; 4957	HALT1:	SKP -START,TIME/3T,		;CHECK FOR CONTINUE BUTTON
U 0754, 0764,0001,0400,2421,1020,7110,0000	; 4958			FE_AR0-8,ARX_AR,J/HALT2	;PICK UP OPCODE IN CASE XCT
U 0755, 0144,0001,0000,0000,0000,7710,0000	; 4959		TAKE INTRPT			;HERE IF EXAMINE/DEPOSIT UP
						; 4960	=0
U 0764, 0226,4001,0000,3000,0020,1534,0000	; 4961	HALT2:	GEN FE-1,BYTE DISP,CONTINUE,J/UNHALT	;INSTR FROM SWITCHES?
U 0765, 0754,0001,0000,0000,0000,7010,0000	; 4962		SKP INTRPT,TIME/2T,J/HALT1	;HALT LOOP MUST BE AN ODD
						; 4963						; NUMBER OF TICKS TO ALLOW
						; 4964						; DIAGNOSTICS TO SYNCRONIZE
						; 4965						; EBOX WITH E & SBUS CLK PHASES.
						; 4966	=110
U 0226, 1645,4001,0000,0401,0000,1510,0310	; 4967	UNHALT:	SET CONS XCT,CLR FE,J/UXCT	;XCT ONE FROM "SWITCHES"
U 0227, 0000,5063,0000,0000,0040,5410,0000	; 4968		SKP AR EQ,J/START		;NOT AN INSTR.  START, OR CONT?
						; 4969	
						; 4970	
						; 4971	.TOC	"MAP, XCT"
						; 4972	
						; 4973		.DCODE
D 0256, 4000,1114				; 4974	256:	R,		J/XCT	;OPERAND FETCHED AS DATA
D 0257, 0500,1115				; 4975		I,	AC,	J/MAP
						; 4976		.UCODE
						; 4977	
						; 4978	=0****00***0
U 1114, 1640,0001,0000,0000,0000,7010,0000	; 4979	XCT:	SKP INTRPT,J/XCT1		;CHECK FOR XCT . LOOP
						; 4980	
U 1115, 0756,0001,0040,0000,0007,0010,0140	; 4981	MAP:	MAP,BR/AR			;MAP E, GO READ BACK EBRG
						; 4982	=
						; 4983	.IF/KLPAGE				;IN KL PAGING MODE,
U 0756, 0774,0001,0000,0000,0000,1610,0015	; 4984		SR_MAP				;MAP CAN PAGE FAIL
						; 4985	.ENDIF/KLPAGE
						; 4986	=0
						; 4987	RDEBRG:	AR_0S,SKP IO LEGAL,MB WAIT,	;FINISH READ REG FUNC
U 0774, 3046,3441,2000,0000,0002,7350,0000	; 4988			CALL,J/GETEEB		;AND GET EBUS
U 0775, 0766,0001,3000,0000,0060,2010,0567	; 4989		AR_EBUS REG			;READ DATA
U 0766, 0066,0001,0000,0000,0005,2233,0000	; 4990		REL ECL EBUS,B WRITE,J/ST6	;GIVE IT TO USER
						; 4991	.IF/KLPAGE
						; 4992	=0
U 1020, 1002,0001,0000,0000,0000,1610,0000	; 4993	MAP2:	SR_0,J/UUO			;NO MAPS IN USER MODE
U 1021, 1034,0001,0000,0000,0000,7010,0000	; 4994		SKP INTRPT			;DO NOT BUM THIS CODE OUT
						; 4995	=0					;IT IS NECESSARY TO DO NOTHING
U 1034, 0072,0001,0000,0000,0217,0010,0000	; 4996		I FETCH,J/STORAC		;INTERESTING AFTER A MAP IF
U 1035, 0071,0001,0000,0000,0000,2110,0105	; 4997		SET ACCOUNT EN,J/TAKINT		;AN INTERRUPT IS PENDING
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 8-1
; SKPJMP.MIC[10,5351]	19:52 24-Jul-85			MAP, XCT						

						; 4998	.ENDIF/KLPAGE
						; 4999	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 9
; SKPJMP.MIC[10,5351]	19:52 24-Jul-85			STACK INSTRUCTIONS -- PUSHJ, PUSH, POP, POPJ		

						; 5000	.TOC	"STACK INSTRUCTIONS -- PUSHJ, PUSH, POP, POPJ"
						; 5001	
						; 5002		.DCODE
D 0260, 2000,1315				; 5003	260:	EA,		J/PUSHJ
D 0261, 4001,1314				; 5004		R,	B/0,	J/PUSH
D 0262, 2000,1316				; 5005		EA,	B/0,	J/POP
D 0263, 0000,1317				; 5006		I,		J/POPJ
						; 5007		.UCODE
						; 5008	
						; 5009	;PUSHJ
						; 5010	; ENTER WITH E IN AR
						; 5011	;PUSH
						; 5012	; ENTER WITH (E) IN AR
						; 5013	
						; 5014	=0****00***0
						;;5015	.IFNOT/MODEL.B
						;;5016	PUSH:	ARX_AC0+1,GEN CRY18,SKP CRY0,	;BUMP BOTH HALVES OF AC,
						;;5017			VMA/AD,STORE,J/STMAC	;PUT AR ONTO LIST
						;;5018	
						;;5019	PUSHJ:	BR/AR,AR_PC+1			;SAVE JUMP ADDR, GET PC
						;;5020	=	ARX_AC0+1,GEN CRY18,SKP CRY0,	;COMPUTE STACK ADDRESS
						;;5021			VMA/AD,STORE,J/JSTAC	;AND PREPARE TO STORE PC
						; 5022	.IF/MODEL.B		;COULD SIMPLIFY IFNOT XADDR
U 1314, 1160,4640,0200,0000,0151,5420,0041	; 5023	PUSH:	ARX_AC0+1,PUSH,SKP CRY0,J/STMAC	;BUMP AC ACCORDING TO FORMAT
						; 5024						; AND SECTION NUMBER
U 1315, 1064,4033,2040,0000,0020,5025,0000	; 5025	PUSHJ:	BR/AR,AR_PC+1,SKP PC SEC0	;GET PC WITH FLAGS
						; 5026	=
U 1064, 1065,3600,2007,0000,0020,0010,0175	; 5027	=0	AR_AR AND ADMSK			;STRIP OFF FLAGS IF NOT SEC0
U 1065, 0132,4640,0200,0000,0151,5420,0041	; 5028		ARX_AC0+1,PUSH,SKP CRY0,J/JSTAC	;UPDATE STACK POINTER, STORE
						; 5029	.ENDIF/MODEL.B
						; 5030	=00
U 0130, 0770,3701,0000,0000,0313,0050,0000	; 5031	JRA1:	VMA_AR,LOAD ARX,CALL,J/XFERW	;GET SAVED AC
						; 5032	=10
						; 5033	JSTAC:	FIN STORE,VMA_BR,FETCH,		;STORE PC, JUMP ADDR TO VMA
U 0132, 0072,3202,4003,0000,2317,0010,0000	; 5034			AR_ARX,J/STORAC		;PREPARE TO STORE AC VALUE
U 0133, 0132,4001,0003,0000,0002,1110,0040	; 5035		TRAP2,MEM_AR,J/JSTAC		;CAUSE PDL OVRFLO
						; 5036	
						; 5037	=0
						; 5038	STMAC:	FIN STORE,I FETCH,		;STORE RESULT, GET NEXT INSTR
U 1160, 0072,4001,4003,0000,2217,0033,0000	; 5039			AR_ARX,B DISP,J/STSELF	;STORE AC IF B=0
						; 5040		MEM_AR,TRAP2,			;PDL OVFLO, CAUSE TRAP
U 1161, 0067,0001,4003,0000,2002,1110,0040	; 5041			AR_ARX,J/IFSTAC		;UPDATE AC BEFORE TRAPPING
						; 5042	;
						; 5043	;	A one line subroutine to wait for a memory fetch (either AR
						; 5044	;	or ARX) and return.  Used by all sorts of things.
						; 5045	;
U 0770, 0002,3240,0003,0000,0022,0003,0000	; 5046	XFERW:	AR_MEM,ARX_MEM,TIME/3T,RETURN2	; Cross reference both macros [313]
						; 5047	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 10
; SKPJMP.MIC[10,5351]	19:52 24-Jul-85			STACK INSTRUCTIONS -- PUSHJ, PUSH, POP, POPJ		

						; 5048	;POP, POPJ
						; 5049	;ENTER WITH E IN AR
						; 5050	
						;;5051	.IFNOT/MODEL.B
						;;5052	=0****00***0
						;;5053	POP:	BR/AR,AR_AC0,VMA/AD,		;GET PUSHDOWN POINTER
						;;5054			LOAD AR,J/POP1		;BEGIN DATA FETCH FROM STACK
						;;5055	
						;;5056	POPJ:	AR_AC0,VMA/AD,LOAD ARX		;START FETCH FROM STACK
						;;5057	=	AR_AR-1,INH CRY18,SKP CRY0	;DECR STACK POINTER, CHECK UNDERFLOW
						;;5058	=0	ARX_MEM,TRAP2,J/POPJ1		;UNDERFLOW OCCURRED
						;;5059		ARX_MEM				;GET STACK WORD
						;;5060	POPJ1:	AC0_AR,VMA_ARX,FETCH,J/NOP	;SET NEW AC VALUE, JUMP
						;;5061	
						;;5062	
						;;5063	POP1:	ARX_AR-1,INH CRY18,SKP CRY0	;ADJUST POINTER, CHECK TRAP
						;;5064	=0	AR_MEM,TRAP2			;PDL OVFLO, CAUSE TRAP
						;;5065		AR_MEM,SR_#,#/100		;SET DEST CONTEXT FLAG
						;;5066		VMA_BR,STORE,SR_0,J/STMAC	;PUT RESULT AWAY, THEN AC
						; 5067	.IF/MODEL.B		;COULD SIMPLIFY IFNOT XADDR
						; 5068	=0****00***0
U 1316, 1015,3200,2040,0000,0131,0010,0421	; 5069	POP:	BR/AR,AR_AC0,POP AR,J/POP2	;GET FROM STACK
						; 5070	
U 1317, 0776,3200,2000,0000,0131,0010,0621	; 5071	POPJ:	AR_AC0,POP AR-ARX		;GET STACK TO AR AND ARX
						; 5072	=	AR_AR-1,TIME/3T,		;BACK OFF POINTER
U 0776, 1174,1701,2000,0000,0020,5420,0000	; 5073			AC0,STACK UPDATE,SKP CRY0	; UNDERFLOW?
						; 5074	=0	BR/AR,AR_MEM,ARL_0.S,		;AC TO BR, HALFWORD PC TO AR
						; 5075			ARX_MEM,TIME/3T,	;FULL PC TO ARX.
U 1174, 1260,3200,0043,0000,0022,5022,0020	; 5076			SKP PC SEC0,J/POPJT	; GO SET TRAP
						; 5077		BR/AR,AR_MEM,ARL_0.S,		;AC TO BR, HALFWORD PC TO AR
						; 5078			ARX_MEM,TIME/3T,	;FULL PC TO ARX.
U 1175, 1254,3240,0043,0000,0022,5022,0020	; 5079			SKP PC SEC0		;EXTENDED FORM?
						; 5080	=0
U 1254, 1003,3711,0000,0000,0317,0010,0000	; 5081	POPJ2:	VMA_ARX,FETCH,J/POPJ4		;YES.  LOAD ENTIRE ADDR
U 1255, 1003,3703,0000,0000,0317,0010,0000	; 5082	POPJ3:	VMA_AR,FETCH			;NO, LOAD HALFWORD ADDRESS
U 1003, 0065,3242,2000,0000,0000,0010,0000	; 5083	POPJ4:	AR_BR,J/STAC			;GET AC BACK, GO STUFF IT
						; 5084	
						; 5085	;HERE IF POPJ GETS STACK UNDERFLOW
						; 5086	; SKIP IF PC SECTION 0
						; 5087	=0
U 1260, 1254,4001,0000,0000,0000,1110,0040	; 5088	POPJT:	TRAP2,J/POPJ2
U 1261, 1255,0001,0000,0000,0000,1110,0040	; 5089		TRAP2,J/POPJ3
						; 5090	
						; 5091	POP2:	ARX_AR-1,AC0,STACK UPDATE,	;BACK UP POINTER
U 1015, 1264,1703,0200,0000,0040,5420,0000	; 5092			SKP CRY0
U 1264, 1023,3200,0003,0000,0022,1110,0040	; 5093	=0	AR_MEM,TRAP2,J/POP3
U 1265, 1023,3240,0003,0000,0022,0010,0000	; 5094		AR_MEM
U 1023, 1160,3242,0000,0000,0111,0010,0042	; 5095	POP3:	GEN BR,WRITE (E),J/STMAC	;STORE RESULT & AC
						; 5096	.ENDIF/MODEL.B
						; 5097	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 11
; SKPJMP.MIC[10,5351]	19:52 24-Jul-85			SUBROUTINE CALL/RETURN -- JSR, JSP, JSA, JRA		

						; 5098	.TOC	"SUBROUTINE CALL/RETURN -- JSR, JSP, JSA, JRA"
						; 5099	
						; 5100		.DCODE
D 0264, 2001,1401				; 5101	264:	EA,		J/JSR		; [301] Make sure these can cross
D 0265, 2000,1400				; 5102		EA,		J/JSP		; section boundaries
D 0266, 0000,1402				; 5103		I,		J/JSA
D 0267, 0001,1403				; 5104		I,		J/JRA
						; 5105		.UCODE
						; 5106	
						; 5107	=0****00***0
						;;5108	.IFNOT/XADDR
						;;5109	JSP:	AR_PC+1,FETCH,J/STORAC
						;;5110	
						;;5111	JSR:	AR_PC+1,STORE
						;;5112	=	FIN STORE,VMA_VMA+1,FETCH,J/NOP
						; 5113	.IF/XADDR
U 1400, 1274,4031,2000,0000,0037,5025,0000	; 5114	JSP:	AR_PC+1,FETCH,SKP PC SEC0,J/JSP1
						; 5115	
U 1401, 1270,4033,2000,0000,0020,5025,0000	; 5116	JSR:	AR_PC+1,SKP PC SEC0
						; 5117	=
U 1270, 1025,3600,2007,0000,0036,0010,0175	; 5118	=0	AR_AR AND ADMSK,STORE,J/JSR1
U 1271, 1025,0001,0000,0000,0016,0010,0000	; 5119		STORE				;IN SECT 0, SAVE FLAGS, TOO
U 1025, 0073,0001,0003,0000,0017,3610,0000	; 5120	JSR1:	FIN STORE,VMA_VMA+1,FETCH,J/NOP
						; 5121	
						; 5122	=0
U 1274, 0065,3600,2007,4000,0020,0010,0175	; 5123	JSP1:	AR_AR AND ADMSK,J/STAC		;NON-ZERO SEC, NO FLAGS
U 1275, 0221,4001,0000,0000,0000,1010,0000	; 5124		AC0_AR,J/FINI
						; 5125	.ENDIF/XADDR
						; 5126	
						; 5127	
						; 5128	=0****00***0
U 1402, 1044,3200,2400,0000,3036,0010,0000	; 5129	JSA:	ARX_AR SWAP,AR_AC0,STORE,J/JSA1	;SAVE E IN ARX LEFT, GET AC
						; 5130	
						; 5131	JRA:
						;;5132	.IFNOT/XADDR				;[235]
						;;5133		BR/AR, AR_AC0			;get AC, save jump address.
						;;5134	=
						;;5135		ARR_ARL, ARL_0.M, J/JRA1	;E to ARR.
						; 5136	.IF/XADDR				;[235]
U 1403, 1032,4001,0000,0000,1000,0210,0000	; 5137		AR12-17_PC SEC			;[235] put section in jump address.
						; 5138	=
U 1032, 1334,3200,2040,0000,0020,5010,0000	; 5139		BR/AR, AR_AC0, SKP PC SEC0	;[235] save jump address, get AC.
U 1334, 1042,4001,4000,0000,3001,0010,0020	; 5140	=0	ARR_ARL, ARL_0.M, J/JRAB	;[235] in section part to ARR.
U 1335, 0130,4001,4000,0000,3001,0010,0020	; 5141		ARR_ARL, ARL_0.M, J/JRA1	;[235] E to ARR.
U 1042, 0130,0001,0000,0000,1000,0210,0000	; 5142	JRAB:	AR12-17_PC SEC, J/JRA1		;[235] section to ARL.
						; 5143	.ENDIF/XADDR				;[235]
						; 5144	
U 1044, 1050,0001,0003,0000,0017,3610,0000	; 5145	JSA1:	FIN STORE,VMA_VMA+1,FETCH	;JUMP TO E+1
U 1050, 0065,4033,2000,0000,2020,0022,0004	; 5146		ARR_PC+1,ARL_ARXL,J/STAC	;PC+1,,E GOES TO AC
						; 5147	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 12
; SKPJMP.MIC[10,5351]	19:52 24-Jul-85			UUO'S							

						; 5148	.TOC	"UUO'S"
						; 5149	;LUUO'S TRAP TO CURRENT CONTEXT
						; 5150	; EXTENDED INSTRUCTION SET IS "HIDDEN" BENEATH LUUO OPCODES
						; 5151	;
						; 5152	;	WARNING:  use extreme caution if E1 for MOVSRJ or CMPSE should
						; 5153	;	ever be used for anything, as they are sign smeared if they are
						; 5154	;	> 377777 (they fall in with MOVSO and friends at EXT2). [301]
						; 5155	;	Use similar caution if new EXTEND codes are created which
						; 5156	;	must have the DCODE B field be 1 or 3.
						; 5157	;
						; 5158		.DCODE
D 0000, 2000,1002				; 5159	000:	EA,		J/UUO
D 0001, 2200,1005				; 5160		EA,	SJCL,	J/L-CMS		;CMSX HIDDEN BENEATH LUUO
D 0002, 2100,1005				; 5161		EA,	SJCE,	J/L-CMS
D 0003, 2001,1005				; 5162		EA,	SJCLE,	J/L-CMS
						; 5163	
D 0004, 2200,1006				; 5164	004:	EA,	B/2,	J/L-EDIT	;EDIT
D 0005, 2601,1005				; 5165		EA,	SJCGE,	J/L-CMS
D 0006, 2501,1005				; 5166		EA,	SJCN,	J/L-CMS
D 0007, 2400,1005				; 5167		EA,	SJCG,	J/L-CMS
						; 5168	
D 0010, 2101,1010				; 5169	010:	EA,	B/1,	J/L-DBIN	;CVTDBO
D 0011, 2401,1010				; 5170		EA,	B/4,	J/L-DBIN	;CVTDBT
D 0012, 2100,1011				; 5171		EA,	B/1,	J/L-BDEC	;CVTBDO
D 0013, 2001,1011				; 5172		EA,	B/0,	J/L-BDEC	;CVTBDT
						; 5173	
D 0014, 2100,1012				; 5174	014:	EA,	B/1,	J/L-MVS		;MOVSO
D 0015, 2001,1012				; 5175		EA,	B/0,	J/L-MVS		;MOVST
D 0016, 2200,1012				; 5176		EA,	B/2,	J/L-MVS		;MOVSLJ
D 0017, 2301,1012				; 5177		EA,	B/3,	J/L-MVS		;MOVSRJ
						; 5178	
						; 5179	020:	
D 0020, 2000,1013				; 5180		EA,		J/L-XBLT	;XBLT
D 0021, 2501,1014				; 5181		EA,	AC,	J/L-GTPI	;GSNGL
						; 5182	.IF/EXTEXP				;[337]
D 0022, 2001,1104				; 5183		EA,		J/L-SFTE	;GDBLE
D 0023, 2000,1105				; 5184		EA,	B/0,	J/L-GTDI	;DGFIX
D 0024, 2201,1106				; 5185	024:	EA,	B/2,	J/L-GTSI	;GFIX
D 0025, 2400,1107				; 5186		EA,	B/4,	J/L-GTDR	;DGFIXR
D 0026, 2601,1110				; 5187		EA,	B/6,	J/L-GTSR	;GFIXR
D 0027, 2000,1111				; 5188		EA,		J/L-DITE	;DGFLTR
D 0030, 2000,1112				; 5189	030:	EA,		J/L-SITE	;GFLTR
D 0031, 2001,1113				; 5190		EA,		J/L-EFSC	;GFSC
						;;5191	.IFNOT/EXTEXP
						;;5192		EA,	J/LUUO
						;;5193		EA,	J/LUUO
						;;5194	024:	EA,	J/LUUO
						;;5195		EA,	J/LUUO
						;;5196		EA,	J/LUUO
						;;5197		EA,	J/LUUO
						;;5198	030:	EA,	J/LUUO
						;;5199		EA,	J/LUUO
						; 5200	.ENDIF/EXTEXP
D 0032, 2001,1006				; 5201		EA,	J/LUUO			;These are reserved to Cobol.
D 0033, 2001,1006				; 5202		EA,	J/LUUO
D 0034, 2001,1006				; 5203		EA,	J/LUUO
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 12-1
; SKPJMP.MIC[10,5351]	19:52 24-Jul-85			UUO'S							

D 0035, 2001,1006				; 5204		EA,	J/LUUO
D 0036, 2001,1006				; 5205		EA,	J/LUUO
D 0037, 2001,1006				; 5206		EA,	J/LUUO
						; 5207	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 13
; SKPJMP.MIC[10,5351]	19:52 24-Jul-85			UUO'S							

						; 5208	;MONITOR UUO'S -- TRAP TO EXEC
						; 5209	
D 0040, 2000,1002				; 5210	040:	EA,	J/MUUO		;CALL
D 0041, 2000,1002				; 5211		EA,	J/MUUO		;INIT
D 0042, 2000,1002				; 5212		EA,	J/MUUO
D 0043, 2000,1002				; 5213		EA,	J/MUUO
D 0044, 2000,1002				; 5214		EA,	J/MUUO
D 0045, 2000,1002				; 5215		EA,	J/MUUO
D 0046, 2000,1002				; 5216		EA,	J/MUUO
D 0047, 2000,1002				; 5217		EA,	J/MUUO		;CALLI
D 0050, 2000,1002				; 5218		EA,	J/MUUO		;OPEN
D 0051, 2000,1002				; 5219		EA,	J/MUUO		;TTCALL
D 0052, 2000,1002				; 5220		EA,	J/MUUO
D 0053, 2000,1002				; 5221		EA,	J/MUUO
D 0054, 2000,1002				; 5222		EA,	J/MUUO
D 0055, 2000,1002				; 5223		EA,	J/MUUO		;RENAME
D 0056, 2000,1002				; 5224		EA,	J/MUUO		;IN
D 0057, 2000,1002				; 5225		EA,	J/MUUO		;OUT
D 0060, 2000,1002				; 5226		EA,	J/MUUO		;SETSTS
D 0061, 2000,1002				; 5227		EA,	J/MUUO		;STATO
D 0062, 2000,1002				; 5228		EA,	J/MUUO		;GETSTS
D 0063, 2000,1002				; 5229		EA,	J/MUUO		;STATZ
D 0064, 2000,1002				; 5230		EA,	J/MUUO		;INBUF
D 0065, 2000,1002				; 5231		EA,	J/MUUO		;OUTBUF
D 0066, 2000,1002				; 5232		EA,	J/MUUO		;INPUT
D 0067, 2000,1002				; 5233		EA,	J/MUUO		;OUTPUT
D 0070, 2000,1002				; 5234		EA,	J/MUUO		;CLOSE
D 0071, 2000,1002				; 5235		EA,	J/MUUO		;RELEAS
D 0072, 2000,1002				; 5236		EA,	J/MUUO		;MTAPE
D 0073, 2000,1002				; 5237		EA,	J/MUUO		;UGETF
D 0074, 2000,1002				; 5238		EA,	J/MUUO		;USETI
D 0075, 2000,1002				; 5239		EA,	J/MUUO		;USETO
D 0076, 2000,1002				; 5240		EA,	J/MUUO		;LOOKUP
D 0077, 2000,1002				; 5241		EA,	J/MUUO		;ENTER
						; 5242	
						; 5243	;EXPANSION OPCODES
						; 5244	
D 0100, 2000,1002				; 5245	100:	EA,	J/UUO		;UJEN
D 0101, 2000,1002				; 5246		EA,	J/UUO
						;;5247	.IFNOT/EXTEXP
						;;5248	102:	EA,	J/UUO
						;;5249		EA,	J/UUO
						; 5250	.ENDIF/EXTEXP
						; 5251		.UCODE
						; 5252	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 14
; SKPJMP.MIC[10,5351]	19:52 24-Jul-85			UUO'S							

						; 5253	;HERE FOR UNDEFINED OPS (UUO'S) AND ILLEGAL INSTRUCTIONS
						; 5254	;E IS IN AR, OPCODE AND AC IN BRX
						; 5255	
						; 5256	;HERE ON LUUO'S
						; 5257	; E IN AR, INSTR IN BRX
						; 5258	1005:
U 1005, 1006,0001,0000,0000,0000,0010,0000	; 5259	L-CMS:	J/LUUO				;LOC FOR HIDING STRING COMPARE
						; 5260	1006:
						; 5261	L-EDIT:					;HIDE EDIT HERE
						;;5262	.IFNOT/XADDR
						;;5263	LUUO:	ARX_BRX,SC_#,#/13.,
						;;5264			SKP INTRPT,CALL,J/ROTS	;COMBINE E WITH UUO
						;;5265	1007:	AR_SHIFT,VMA_40,STORE		;STORE OPCODE ETC AT 40
						;;5266		FIN STORE,VMA_41,
						;;5267			LOAD ARX,J/XCTW		;GO PERFORM 41
						; 5268	.IF/XADDR
U 1006, 0444,3242,0600,0000,0000,5010,0000	; 5269	LUUO:	ARX_BRX,SKP PC SEC0,J/LUUO1	;WHICH KIND OF UUO?
						; 5270	=0***0
U 0444, 1474,4001,0000,0000,0000,5750,0000	; 5271	LUUO1:	SKP -LOCAL AC ADDR,CALL,J/UUOCOM	;EXTENDED.  DO IT
						; 5272		BR/AR,AR_ARX ANDC ADMSK,	;COMPATABLE.  ADDR TO BR
U 0445, 1434,3510,2047,4000,0020,7010,0175	; 5273			SKP INTRPT,J/LUUO2	; DO IT THE OLD WAY
U 0464, 0220,0001,0000,0000,0100,3010,0420	; 5274		VMA_#,#/420			;PT LOC FOR LUUO BLOCK POINTER
						; 5275	=
U 0220, 0770,4001,0000,0000,0013,0066,0033	; 5276	=00	LOAD ARX,PT REF,CALL,J/XFERW	;GET LUUO BLOCK ADDRESS
U 0222, 1276,3711,0000,0000,0316,0050,0000	; 5277	=10	VMA_ARX,STORE,CALL,J/UUOC2	;STORE UUO OPCODE AND FLAGS
						; 5278		FIN STORE,VMA_VMA+1,LOAD AR,	;NOW GET A NEW PC
U 0223, 0645,0001,0003,0000,0012,3610,0000	; 5279			J/PCA			; [301]
						; 5280	
						; 5281	;HERE FOR COMPATIBLE UUO
						; 5282	=0
						; 5283	LUUO2:	AR_AR*BR,AD/OR,VMA_#,#/40,	;SAVE OPCODE AND EA
U 1434, 1061,3302,2004,0000,0116,3010,0040	; 5284			STORE,J/LUUO3		;THEN GET INSTR FROM 41
U 1435, 0144,0001,0000,0000,0000,7710,0000	; 5285		TAKE INTRPT			;ONE MOMENT, PLEASE
U 1061, 0075,4001,0003,0000,0013,3610,0000	; 5286	LUUO3:	FIN STORE,VMA_VMA+1,LOAD ARX,J/XCTW
						; 5287	.ENDIF/XADDR
						; 5288	
						; 5289	1010:
U 1010, 1006,0001,0000,0000,0000,0010,0000	; 5290	L-DBIN:	J/LUUO				;DBIN AT 2010
						; 5291	1011:
U 1011, 1006,0001,0000,0000,0000,0010,0000	; 5292	L-BDEC:	J/LUUO				;BDEC AT 2011
						; 5293	1012:
U 1012, 1006,0001,0000,0000,0000,0010,0000	; 5294	L-MVS:	J/LUUO				;MOVE STRING AT 2012
						; 5295	
						; 5296	;ROTATE SUBROUTINE
						; 5297	
						; 5298	=0
U 1454, 0003,4001,4400,5302,0000,0003,0044	; 5299	ROTS:	AR_SHIFT,ARX_SHIFT,SC_#-SC,#/36.,RETURN3
U 1455, 0144,0001,0000,0000,0000,7710,0000	; 5300		TAKE INTRPT
						; 5301	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 15
; SKPJMP.MIC[10,5351]	19:52 24-Jul-85			UUO'S							

						; 5302	;HERE ON MUUO'S
						; 5303	; E IN AR, OP AND AC IN BRX
						;;5304	.IFNOT/XADDR
						;;5305	1002:					;FIXED ADDRESS TO COOPERATE
						;;5306						;WITH EXTEND AND OTHER OPS
						;;5307	UUO:					;UNDEFINED OP'S .GE. 100
						;;5308	MUUO:	ARX_BRX,SC_#,#/13.,
						;;5309			SKP INTRPT,CALL,J/ROTS
						;;5310	.IFNOT/SHIFT.MUUO
						;;5311	1003:	AR_SHIFT,VMA_#,#/424
						;;5312	.IF/SHIFT.MUUO
						;;5313	1003:	AR_SHIFT,VMA_#,#/425
						;;5314	.ENDIF/SHIFT.MUUO
						;;5315		STORE,UPT REF			;FIRST, STORE INSTRUCTION
						;;5316		FIN STORE,AR_PC+1,VMA_VMA+1,STORE	;NEXT, PC
						;;5317	=100	MEM_AR,VMA_VMA+1,SC_#,#/60,
						;;5318			CALL,J/GTEEB1
						;;5319		DATAI PAG(L),CALL,J/PCTXT	;GET PROCESS CONTEXT VARIABLES
						;;5320	=11	LD PREV CTXT			;PCS FROM PC, CWSX FROM SXCT
						;;5321		AR_SHIFT,ARL_BRL.S,		;COMBINE UBR WITH AC BLKS, CWSX
						;;5322			STORE,			; STORE THAT AT 426 (XADDR =427)
						;;5323			COND/EBUS CTL,EBUS CTL/2; & RELEASE ECL EBUS
						;;5324		MEM_AR,VMA_430+MODE		;NOW READY TO GET NEW PC
						;;5325		LOAD AR,UPT REF			;FETCH NEW PC
						;;5326	NEWPC:	AR_MEM,SR_0,J/START		;USE IT
						;;5327	.IF/MODEL.B
						;;5328	SETPC:	VMA_AR AND ADMSK,FETCH,J/NOP	;USE LOW AR AS ADDRESS
						;;5329	.IFNOT/MODEL.B
						;;5330	SETPC:	PC_VMA,J/BRJMP			;LOAD PC, INCLUDING SECTION
						;;5331	.ENDIF/MODEL.B
						; 5332	.IF/XADDR
						; 5333	1002:
						; 5334	UUO:					;A PEDANTIC DISTINCTION...
						; 5335	MUUO:	ARX_BRX,SKP -LOCAL AC ADDR,	;PULL TOGETHER PIECES OF UUO
U 1002, 1474,3202,0600,0000,0000,5750,0000	; 5336			CALL,J/UUOCOM
U 1022, 1070,0001,0000,0000,0100,3210,0430	; 5337	1022:	VMA_430+MODE			;GET NEW PC
U 1070, 1117,0001,0000,0000,0013,0026,0223	; 5338		LOAD ARX,UPT REF
U 1117, 1470,3200,0003,0000,0122,3010,0424	; 5339		ARX_MEM,VMA_#,#/424		;LOC'N OF MUUO DATA BLOCK
						; 5340	=0	BRX/ARX,STORE,UPT REF,		;STORE OPCODE, FLAGS
U 1470, 1276,4001,0020,0000,0016,0066,0223	; 5341			CALL,J/UUOC2		;NOW RETURN TO COMMON CODE
U 1471, 0230,3733,2003,0302,0002,0010,0004	; 5342		MEM_AR,AR_PC,SC_#,#/4		;READY TO SETUP NEW FLAGS
						; 5343	=00	VMA_VMA+1,SC_#,#/60,		;SET UP FOR CONTEXT WORD
						; 5344			SH DISP,AR_0S,		;TEST USER AND PUBLIC FLAGS
U 0230, 0432,3401,2000,0302,0020,3647,0060	; 5345			CALL,J/MUUOF		;SET NEW PREV FLAGS, GET EBUS
						; 5346		DATAI PAG(L),ARX_1B17-1,	;GO COLLECT DATAI PAG INFO
U 0231, 3570,1761,3200,0000,0060,2057,0511	; 5347			CALL,J/PCTXT
U 0233, 1164,3731,0000,0000,0060,2010,0426	; 5348	=11	LD PREV CTXT			;PCS FROM PC, CWSX FROM SXCT
						; 5349		AR_SHIFT,ARL_BRL.S,		;COMBINE UBR WITH AC BLKS, CWSX
						; 5350			STORE,			; STORE THAT AT 426 (XADDR =427)
U 1164, 1222,3202,4000,0000,0016,2222,0002	; 5351			COND/EBUS CTL,EBUS CTL/2; & RELEASE ECL EBUS
U 1222, 1232,3242,6003,0000,0002,1610,0000	; 5352		MEM_AR,AR_BRX,SR_0		;NOW GET NEW PC
U 1232, 0073,3600,0007,4000,0337,0010,0175	; 5353	SETPC:	VMA_AR AND ADMSK,FETCH,J/NOP
						; 5354	
						; 5355	=0
U 1474, 1252,4041,0000,0000,0021,0017,0002	; 5356	UUOCOM:	ARL_1.M,J/UUOC1			;FORCE AC ADDRESS
U 1475, 1252,4001,0000,0400,3001,0010,0200	; 5357		CLR P				;NOT AC, GET CLEAN SECT #
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 15-1
; SKPJMP.MIC[10,5351]	19:52 24-Jul-85			UUO'S							

U 1252, 1262,3510,2017,4000,1020,0010,0175	; 5358	UUOC1:	MQ_AR,AR_ARX ANDC ADMSK		;SAVE ADDR IN MQ.  GET OPCODE
U 1262, 1544,4001,0040,0000,0000,6222,0030	; 5359		BR/AR,AR_0.S,SKP USER		;SAVE OPCODE IN BR
U 1544, 1545,4001,0000,0000,2000,0210,0000	; 5360	=0	AR12-17_PREV SEC		;GET PCS
U 1545, 1266,3302,2000,0000,0000,0010,0000	; 5361		AR_AR*BR,AD/OR			;OPCODE/PCS COMBINED
U 1266, 1272,3530,2407,0000,3020,0010,0175	; 5362		ARX_AR SWAP,AR_PC FLAGS		;GET FLAGS FROM PC
U 1272, 0020,4001,4000,0000,2000,0603,0000	; 5363		ARL_ARL,AR_ARX,RETURN20		;FLAGS AND OPCODE COMBINED
						; 5364						;GO BACK TO CALLER TO STORE
U 1276, 1332,4033,0203,0000,0022,0025,0000	; 5365	UUOC2:	MEM_AR,ARX_PC+1			;FINISH STORE
						; 5366		AR_ARX AND ADMSK,		;PC+1 ADDRESS TO AR
U 1332, 1421,3610,2307,4000,0036,3610,0175	; 5367			VMA_VMA+1,STORE,ARX/MQ	;PUT PC AWAY, GET EFFECTIVE ADDR
						; 5368		FIN STORE,AR_ARX,
U 1421, 0001,0001,4003,0000,2016,3603,0000	; 5369			VMA_VMA+1,STORE,RETURN1	;PUT EA AWAY.
						; 5370	
						; 5371	=1010					;HERE TO SETUP NEW FLAGS
U 0432, 3047,4001,0000,0000,0000,0024,0020	; 5372	MUUOF:	SET FLAGS_AR,J/GTEEB1		;GO GET ECL EBUS
U 0433, 0432,4001,0000,0000,0000,0110,0400	; 5373		AR0-8_#,#/400,J/MUUOF		;PREV CTXT SUPERVISOR
U 0436, 0432,4001,0000,0000,0000,0110,0004	; 5374		AR0-8_#,#/004,J/MUUOF		;  USER/CONCEALED
U 0437, 0432,0001,0000,0000,0000,0110,0404	; 5375		AR0-8_#,#/404,J/MUUOF		;  USER/PUBLIC
						; 5376	.ENDIF/XADDR
						; 5377	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 16
; SKPJMP.MIC[10,5351]	19:52 24-Jul-85			JSYS, ADJSP						

						; 5378	.TOC	"JSYS, ADJSP"
						;;5379	.IF/DIAG.INST
						;;5380		.DCODE
						;;5381	104:	EA,		J/DIADISP		;DIAG
						;;5382		I,	B/0,	J/ADJSP
						;;5383		.UCODE
						;;5384	
						;;5385	;HERE FOR DIAG INSTRUCTION
						;;5386	
						;;5387	1001:
						;;5388	DIADISP:	J/DIAGINSTR
						;;5389	
						; 5390	.IFNOT/DIAG.INST
						; 5391		.DCODE
D 0104, 2000,1002				; 5392	104:	EA,		J/UUO		;JSYS
D 0105, 0000,1000				; 5393		I,	B/0,	J/ADJSP
						; 5394		.UCODE
						; 5395	.ENDIF/DIAG.INST
						; 5396	
						; 5397	;HERE FOR ADJSP INSTRUCTION
						; 5398	; ENTER WITH E IN AR, PREFETCH IN PROGRESS
						; 5399	
						; 5400	1000:					;PUT ADJSP NEXT TO UUO
						;;5401	.IFNOT/XADDR
						;;5402	ADJSP:	ARL_ARR,ARR_ARR			;PUT E IN BOTH HALVES
						;;5403		AR_AR*AC0,AD/A+B,INH CRY18,	;ADJUST POINTER,
						;;5404			ARX/AD,SKP AR0		;SKIP IF NEGATIVE
						; 5405	.IF/XADDR
U 1000, 1425,4061,0200,0000,3020,0610,0004	; 5406	ADJSP:	ARX_1,ARL_ARR,ARR_ARR		;MUST TEST FOR SHORT STACK
						; 5407		AC0,STACK UPDATE,		;MCL SHORT STACK ENABLES CRY18
U 1425, 1554,1711,0000,0000,0040,5420,0000	; 5408			GEN ARX-1,SKP CRY0	; THUS CRY IFF LONG POINTER
						; 5409	=0	AR_AR*AC0,AD/A+B,INH CRY18,	;ADJUST POINTER,
U 1554, 1614,0600,2200,0000,0020,4511,0000	; 5410			ARX/AD,SKP AR0,J/ADJSP1	;SKIP IF NEGATIVE
U 1555, 1432,5401,0000,0000,0237,0616,0002	; 5411		ARL_SIGN,ARR_ARR,I FETCH	;LONG:  SIGN EXTEND E
U 1432, 0065,0600,2000,0000,0020,0010,0000	; 5412		AR_AR*AC0,AD/A+B,J/STAC		;DONE
						; 5413	.ENDIF/XADDR
						; 5414	=0
						; 5415	ADJSP1:	GEN AR*AC0,AD/ANDCA,		;TEST FOR - TO + CHANGE
U 1614, 1160,3000,0000,4000,0020,5510,0000	; 5416			SKP AD0,J/STMAC
						; 5417		GEN AR*AC0,AD/ANDCB,		;TEST FOR + TO - CHANGE
U 1615, 1160,3500,0000,4000,0020,5510,0000	; 5418			SKP AD0,J/STMAC
						; 5419	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 17
; SKPJMP.MIC[10,5351]	19:52 24-Jul-85			XCT, PXCT, SXCT						

						; 5420	.TOC	"XCT, PXCT, SXCT"
						; 5421	;HERE FOR EXTENDED ADDRESSING INSTRUCTIONS
						; 5422	
						; 5423	=0
U 1640, 1644,4001,0000,0000,0000,6210,0000	; 5424	XCT1:	SKP USER,J/PXCT			;HERE ON XCT, NO INTERRUPT
U 1641, 0144,0001,0000,0000,0000,7710,0000	; 5425		TAKE INTRPT			;GET OUT OF LONG XCT CHAIN
						; 5426	=0
U 1644, 1645,4001,0000,0000,0000,1510,0020	; 5427	PXCT:	SET PXCT			;SETUP PXCT CONTROLS FROM 9-12
U 1645, 0152,3703,0200,0000,0000,1410,0000	; 5428	UXCT:	ARX_AR (AD),LOAD IR,#/0,J/XCTGO	;COPY INSTR TO ARX, IR
						; 5429	
						; 5430		.DCODE
						; 5431	.IFNOT/SXCT
						;;5432	  .IF/DIAG.INST
						;;5433	106:	R,	J/DIAGXCT			;DIAG MODEL B SXCT = XCT
						;;5434		EA,	J/XCTUUO
						;;5435	.UCODE
						;;5436				;UNSUPPORTED FEATURE
						;;5437				;SEPERATE FROM XCT BECAUSE OF DRAM CONSTRAINTS
						;;5438	=0****00***0
						;;5439	DIAGXCT:	SKP INTRPT,J/XCT1		;CHECK FOR XCT . LOOP
						;;5440	XCTUUO:	J/UUO				;INST PAIR FOR XCT
						;;5441	=
						; 5442	  .IFNOT/DIAG.INST
						;;5443	   .IFNOT/EXTEXP
						;;5444	    .IFNOT/PUSHM
						;;5445	106:	EA,	J/UUO
						;;5446		EA,	J/UUO
						;;5447		.UCODE
						;;5448	    .IF/PUSHM
						;;5449	106:	R,	J/PUSHM			;PUSH MULTIPLE
						;;5450	107:	EA,	J/POPM			;POP MULTIPLE
						;;5451	.UCODE
						;;5452	    .ENDIF/PUSHM
						; 5453	   .ENDIF/EXTEXP
						; 5454	  .ENDIF/DIAG.INST
						; 5455	
						;;5456	.IF/SXCT	;NOTE: THE SXCT INSTRUCTION IS A TEMPORARY MECHANISM
						;;5457	106:	R,	J/SXCT		;INTENDED FOR DIAGNOSTICS ONLY
						;;5458		EA,	J/UUO107
						;;5459		.UCODE
						;;5460	
						;;5461	1014:					;PUT NEXT TO UUO107
						;;5462	SXCT:	SKP KERNEL,CALL,J/IOCHK		;LEGAL IN KERNEL MODE ONLY
						;;5463	1015:	BR/AR,ARX_AR,AR_AC0,		;SHUFFLE INSTR TO GET BASE REG
						;;5464			SET SXCT		;SETUP HARDWARE FLAGS
						;;5465		SKP AC#0			;CHOOSE LOOP FOR EA CALC
						;;5466	=0	BR/AR,AR_BR,LOAD IR,		;AC0 IS BASE INDEX
						;;5467			BRX/ARX,ARL_0.M,
						;;5468			EA MOD DISP,J/SXCTB
						;;5469		AR_BR,LOAD IR,ARL_0.M,		;GET EXT ADDR FROM XR OR INDRCT
						;;5470			BRX/ARX,J/XIND2
						;;5471	=00
						;;5472	PXLOOP:	GEN AR,A READ			;GO DO INSTR
						;;5473		AR_AR+XR,A READ
						;;5474		GEN AR,A INDRCT,SKP INTRPT,J/XIND1
						;;5475		GEN AR+XR,A INDRCT,SKP INTRPT
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 17-1
; SKPJMP.MIC[10,5351]	19:52 24-Jul-85			XCT, PXCT, SXCT						

						;;5476	
						;;5477	=0
						;;5478	XIND1:	AR_MEM,ARX_MEM,EA TYPE DISP,J/XIND2
						;;5479		MB WAIT,TAKE INTRPT
						;;5480	=00
						;;5481	XIND2:	EA MOD DISP,J/PXLOOP		;CURRENT OR PREV WITHOUT CWSX
						;;5482		AR_ARX (AD),A READ		;PREV AND CWSX
						;;5483		AR_ARX (AD),A READ		;SXCT 0,
						;;5484		EA MOD DISP,J/SXCTB		;SXCT B,
						;;5485	
						;;5486	=00
						;;5487	SXCTB:	AR_AR+BR,A READ			;GO
						;;5488		AR_AR+XR,ARL_0.C,J/SXCTB	;NO MORE INDIRECTS
						;;5489		GEN AR,A INDRCT,		;FOLLOW INDRCT POINTER
						;;5490			SKP INTRPT,J/XIND1
						;;5491		GEN AR+XR,A INDRCT,
						;;5492			SKP INTRPT,J/XIND1
						; 5493	.ENDIF/SXCT
						; 5494	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 1
; SHIFT.MIC[10,5351]	19:52 24-Jul-85			ROTATES AND LOGICAL SHIFTS -- ROT, LSH, JFFO		

						; 5495	.TOC	"ROTATES AND LOGICAL SHIFTS -- ROT, LSH, JFFO"
						; 5496	
						; 5497		.DCODE
D 0240, 0001,1406				; 5498	240:	I,	B/0,	J/ASH
D 0241, 0000,1407				; 5499		I,	B/0,	J/ROT
D 0242, 0201,1404				; 5500		I,	B/2,	J/LSH
D 0243, 0001,1405				; 5501		I,		J/JFFO
D 0244, 0101,1410				; 5502		I,	B/1,	J/ASHC
D 0245, 0001,1411				; 5503		I,		J/ROTC
D 0246, 0001,1004				; 5504		I,		J/LSHC
D 0247, 2000,1002				; 5505		EA,		J/UUO
						; 5506		.UCODE
						; 5507	
						; 5508	;ENTER WITH 0,E IN AR
						; 5509	; NOTE THAT VALUES OF SC GREATER THAN 36
						; 5510	; CAUSE THE SHIFTER TO SELECT ARX.
						; 5511	
						; 5512	=0****00***0
						; 5513	LSH:	AR_AC0,ARL/AD,ARX_0.M,SC_EA,
U 1404, 0330,3240,2000,0002,0021,4413,0042	; 5514			SKP AR18,J/SHR1
						; 5515	
U 1405, 1710,3240,2000,0302,0020,5610,0006	; 5516	JFFO:	AR_AC0,SKP AD NE,SC_#,#/6
						; 5517	=
U 1710, 0073,4001,0001,0000,0217,1010,0000	; 5518	=0	AC1_AR,I FETCH,J/NOP		;AC WAS ZERO, NO JUMP
						; 5519		ARX+MQ_0.M,FE_P,SKP SCAD NE,	;TEST FIRST 6 BITS
U 1711, 1714,0001,4000,0101,0021,5210,0144	; 5520			AR_SHIFT,ARL/SH		;DISCARD THEM
						; 5521	=0
						; 5522	JFFO1:	AR_SHIFT,FE_P,SKP SCAD NE,	;TEST NEXT 6 BITS
U 1714, 1714,1701,4600,0101,0020,5210,0000	; 5523			ARX_ARX-1,J/JFFO1	;LOOP, COUNTING, TILL NE
						; 5524		P_FE,ARR_0.S,			;RESTORE 6 NON-ZERO BITS
U 1715, 1720,5123,0500,0000,3021,0022,0210	; 5525			ARX_ARX*-6		;GET POS GROUP COUNT*6
						; 5526	=0
						; 5527	JFFO2:	SKP AR0,AR_2(AR+1),		;LOOP TO FIND A 1
U 1720, 1720,4003,5600,0000,0040,4510,0000	; 5528			ARX_ARX+1,J/JFFO2	;COUNTING AS WE GO
U 1721, 2124,1701,6000,0000,0037,0010,0000	; 5529		AR_ARX-1,FETCH,J/STRAC1
						; 5530	
						; 5531	=0****00***0
						; 5532	ASH:	SC_EA,SKP AR18,			;GET SHIFT AMOUNT
U 1406, 1754,3441,2000,0002,0000,4413,0000	; 5533			AR_0S,J/ASHL		;SET LOW PART = 0
U 1407, 0330,3240,2200,0002,0040,4413,0000	; 5534	ROT:	AR_AC0,ARX_AC0,SC_EA,SKP AR18
						; 5535	=
						; 5536	;SINGLE-WORD LSH/ROT
						; 5537	; FOR ROT, B=0, AR AND ARX BOTH CONTAIN AC
						; 5538	; FOR LSH, B=2, AR HAS AC, ARX IS ZERO
						; 5539	
						; 5540	=00
						; 5541	SHR1:	AR_SHIFT,SC_#+SC,#/-36.,	;DO POS (LEFT) SHIFT, CHK RANGE
U 0330, 0332,4001,4000,2302,0020,5110,0734	; 5542			SKP SCAD0,J/SHR2
						; 5543		ARX_AR (AD),AR_ARX (ADX),
						; 5544			SC_#+SC,#/36.,
U 0331, 0330,3701,6200,2302,0020,5133,0044	; 5545			B DISP,SKP SCAD0,J/SHR1	;MAKE NEG SHIFT TO EQUIV POS
						; 5546	SHR2:	AR_SHIFT,SC_#+SC,#/-36.,
U 0332, 0332,4001,4000,2302,0020,5110,0734	; 5547			SKP SCAD0,J/SHR2	;BRING SC INTO RANGE
U 0333, 0073,0001,0000,0000,0217,1010,0000	; 5548		AC0_AR,I FETCH,J/NOP		;DONE
						; 5549	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 2
; SHIFT.MIC[10,5351]	19:52 24-Jul-85			ROTATE AND LOGICAL SHIFT COMBINED -- ROTC, LSHC		

						; 5550	.TOC	"ROTATE AND LOGICAL SHIFT COMBINED -- ROTC, LSHC"
						; 5551	
						; 5552	=0****00***0
						; 5553	ASHC:	SC_EA,SKP AR18,			;SETUP SHIFT COUNT
U 1410, 1754,3240,5001,0002,0020,4413,0000	; 5554			AR_AC1*2,J/ASHL		;GET LOW WORD
U 1411, 1441,3200,0201,0000,0020,0010,0000	; 5555	ROTC:	ARX_AC1
U 1441, 1724,3200,2000,0002,0020,4413,0000	; 5556	=	AR_AC0,SC_EA,SKP AR18		;SETUP BOTH AC'S
						; 5557	=0
						; 5558	ROT3:	MQ_SHIFT,ARX_AR (AD),
U 1724, 1442,3701,6210,0000,0000,0010,0000	; 5559			AR_ARX (ADX),J/ROT4
						; 5560		ARX_AR (AD),AR_ARX (ADX),
U 1725, 1724,3703,6200,2302,0020,5110,0044	; 5561			SC_#+SC,#/36.,SKP SCAD0,J/ROT3
						; 5562	
						; 5563	ROT4:	AR_MQ,ARX_SHIFT,
U 1442, 1730,3723,2400,2302,0020,5110,0734	; 5564			SC_#+SC,#/-36.,SKP SCAD0
						; 5565	=0	MQ_SHIFT,ARX_AR (AD),
U 1730, 1442,3701,6210,0000,0000,0010,0000	; 5566			AR_ARX (ADX),J/ROT4
U 1731, 2124,4001,4000,0000,2217,1010,0000	; 5567	STDAC:	AC0_AR,AR_ARX,I FETCH,J/STRAC1
						; 5568	
						; 5569	
						; 5570	1004:					;NEXT TO UUO
U 1004, 1451,3240,0201,0000,0021,0010,0100	; 5571	LSHC:	ARX_AC1,MQ_0.M
U 1451, 1734,3200,2000,0303,0020,4413,0044	; 5572	LSH1:	AR_AC0,SC_EA,FE_#,#/36.,SKP AR18
						; 5573	=0
						; 5574	LSH2:	MQ_SHIFT,AR_ARX (ADX),
U 1734, 1462,3721,6310,0301,0000,0010,0734	; 5575			ARX/MQ,FE_#,#/-36.,J/LSH3
						; 5576		ARX_AR (AD),AR_0.M,MQ_ARX,
U 1735, 1734,3703,0210,2002,2021,5110,0030	; 5577			SC_FE+SC,SKP SCAD0,J/LSH2
						; 5578	
						; 5579	LSH3:	AR_MQ,ARL/AD,ARX_SHIFT,MQ_0.M,
U 1462, 1750,3721,2400,2002,0021,5110,0102	; 5580			SC_FE+SC,SKP SCAD0
U 1750, 1462,3701,6310,0000,0000,0010,0000	; 5581	=0	MQ_SHIFT,AR_ARX (ADX),ARX/MQ,J/LSH3
U 1751, 2124,4001,4000,0000,2217,1010,0000	; 5582		AC0_AR,AR_ARX,I FETCH,J/STRAC1
						; 5583	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 3
; SHIFT.MIC[10,5351]	19:52 24-Jul-85			ARITHMETIC SHIFTS -- ASH, ASHC				

						; 5584	.TOC	"ARITHMETIC SHIFTS -- ASH, ASHC"
						; 5585	
						; 5586	;COMMON CODE FOR ARITHMETIC SHIFTS
						; 5587	
						; 5588	=0
						; 5589	ASHL:	ARX_AR,AR_AC0,			;INPUT NOW IN AR LONG
U 1754, 1764,3240,2400,2400,1040,5210,0000	; 5590			SKP SC NE,J/ASHL1	;CHECK FOR NULL SHIFT
						; 5591		ARX_AR,AR_AC0,			;HERE IF RIGHT SHIFT
U 1755, 1760,3200,2400,2302,1040,5110,0044	; 5592			SC_#+SC,#/36.,SKP SCAD0	;CHECK FOR LONG ONE
						; 5593	=0
U 1760, 1472,5401,2440,0000,0020,0016,0000	; 5594	ASHR1:	BR/AR,ARX_SHIFT,AR_SIGN,J/ASHR2	;LOW OUTPUT TO ARX
						; 5595		ARX_AR,AR_SIGN,			;HERE IF SHIFT COUNT .GT. 36
						; 5596			SC_#+SC,#/36.,		;BRING COUNT UP BY 36
U 1761, 1760,5441,2400,2302,1020,5116,0044	; 5597			SKP SCAD0,J/ASHR1	;LOOP TILL COUNT REASONABLE
						; 5598	
						; 5599	ASHR2:	BRX/ARX,ARX_BR,			;HIGH INPUT TO ARX
U 1472, 2050,3202,0220,0000,0000,0033,0000	; 5600			B DISP,J/ASHX
						; 5601	
						; 5602	;HERE FOR LEFT ARITHMETIC SHIFT
						; 5603	
						; 5604	=0
U 1764, 0073,4001,0000,0000,0217,0010,0000	; 5605	ASHL1:	I FETCH,J/NOP			;SHIFT 0 IS A NOP
U 1765, 1476,5441,2060,0000,0020,0016,0000	; 5606		BR_AR LONG,AR_SIGN		;SAVE INPUT, GEN SIGN WORD
U 1476, 0560,3201,2640,0000,0000,0010,0000	; 5607		BR/AR,AR_BR*2 LONG		;SAVE SIGN, GET MAGNITUDE BITS
						; 5608	=0*
						; 5609	ASHL2:	BRX/ARX,ARX_AR,AR_BR,		;HI IN TO ARX, LOW TO BRX
U 0560, 2662,3242,2420,0000,1000,0050,0000	; 5610			CALL,J/SHIFT		;CALL SHIFTER TO GET BITS LOST
U 0562, 1774,3102,0004,0000,0020,5610,0000	; 5611		SKP AR NE BR			;ANY BITS DIFFERENT FROM SIGN?
						; 5612	=0
						; 5613	ASHL3:	AR_ARX,ARX_BRX,			;RESTORE HI TO AR, LOW TO ARX
U 1774, 2040,3242,4600,2300,2020,5110,0734	; 5614			GEN #+SC,#/-36.,SKP SCAD0,J/ASHL4
U 1775, 1774,4001,0000,0000,0000,1110,0420	; 5615		SET AROV,J/ASHL3		;BITS SHIFTED OUT NE SIGN
						; 5616	=0
						; 5617	ASHL4:	AR_ARX,ARX_0S,			;HERE IF E .GT. 36
U 2040, 0560,3441,4200,2302,2000,0010,0734	; 5618			SC_#+SC,#/-36.,J/ASHL2	;SHIFT 36 PLACES, TRY AGAIN
						; 5619		MQ_SHIFT,AR_BRX,CLR ARX,	;HIGH OUTPUT TO MQ,
U 2041, 2044,3202,6010,2302,0000,0533,0777	; 5620			SC_#+SC,#/-1,B DISP	;COMPENSATE FOR EXTRA SHIFT
						; 5621	=0
						; 5622	ASHL5:	AR_BR,BRX/ARX,ARX/MQ,		;SIGN TO AR, HIGH OUT TO ARX
						; 5623			SC_#,#/35.,		;READY TO COMBINE THEM
U 2044, 2050,3202,2320,0302,0000,0033,0043	; 5624			B DISP,J/ASHX		;STORE AS APPROPRIATE
U 2045, 2044,4001,0400,0000,0000,0010,0000	; 5625		ARX_SHIFT,J/ASHL5		;LOW OUTPUT TO ARX
						; 5626	
						; 5627	;HERE TO GET FINAL RESULTS.
						; 5628	
						; 5629	=0
U 2050, 0072,4001,4000,0000,0217,0010,0000	; 5630	ASHX:	AR_SHIFT,I FETCH,J/STORAC	;HERE AFTER ASH
						; 5631		AR_SHIFT,ARX_BRX,		;HERE AFTER ASHC
U 2051, 0061,3202,4600,0302,0000,0010,0043	; 5632			SC_#,#/35.,J/ST2AC
						; 5633	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 1
; ARITH.MIC[10,5351]	19:52 24-Jul-85			ADD, SUB						

						; 5634	.TOC	"ADD, SUB"
						; 5635	
						; 5636		.DCODE
D 0270, 5500,1605				; 5637	270:	R-PF,	AC,	J/ADD
D 0271, 1501,1605				; 5638		I-PF,	AC,	J/ADD
D 0272, 7601,1605				; 5639		RPW,	M,	J/ADD
D 0273, 7700,1605				; 5640		RPW,	B,	J/ADD
						; 5641		.UCODE
						; 5642	
						; 5643	=0****00****
U 1605, 0060,0600,2000,0000,0025,1333,0000	; 5644	ADD:	AR_AR*AC0,AD/A+B,AD FLAGS,EXIT
						; 5645	=
						; 5646	
						; 5647	
						; 5648		.DCODE
D 0274, 5500,1606				; 5649	274:	R-PF,	AC,	J/SUB
D 0275, 1501,1606				; 5650		I-PF,	AC,	J/SUB
D 0276, 7601,1606				; 5651		RPW,	M,	J/SUB
D 0277, 7700,1606				; 5652		RPW,	B,	J/SUB
						; 5653		.UCODE
						; 5654	
						; 5655	=0****00****
U 1606, 1533,3240,2040,0000,0020,0010,0000	; 5656	SUB:	AR_AC0,BR/AR
U 1533, 0060,5102,2000,0000,0025,1333,0000	; 5657	=	AR_AR-BR,AD FLAGS,EXIT
						; 5658	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 2
; ARITH.MIC[10,5351]	19:52 24-Jul-85			MUL, IMUL						

						; 5659	.TOC	"MUL, IMUL"
						; 5660	
						; 5661		.DCODE
D 0220, 4501,0302				; 5662	220:	R,	AC,	J/IMUL
D 0221, 0500,0302				; 5663		I,	AC,	J/IMULI
D 0222, 6600,0302				; 5664		RW,	M,	J/IMUL
D 0223, 6701,0302				; 5665		RW,	B,	J/IMUL
						; 5666		.UCODE
						; 5667	
						; 5668	.IFNOT/IMULI.OPT
						; 5669	=0****00*01*
						; 5670	IMULI:
						;;5671	.IF/IMULI.OPT
						;;5672	=0****00*000
						;;5673	IMULI:	SKP AR18,GEN AC0,SIGNS DISP,	;OPTIMIZE SPECIAL CASE
						;;5674			TIME/3T,SC_#,#/17.
						;;5675	=010	MQ_AR,AR_AC0,			;HERE FOR IMULI OF + BY +
						;;5676			CLR ARX,FE_#,#/-9.,	; 9 STEPS WILL DO
						;;5677			CALL,J/MULSUB
						; 5678	.ENDIF/IMULI.OPT
						; 5679	IMUL:	MQ_AR,AR_AC0,			;M'IER TO MQ, M'CAND TO AR
						; 5680			CLR ARX,FE_#,#/-18.,
U 0302, 1534,3200,2010,0301,1020,0550,0756	; 5681			CALL,J/MULSUB		;CALL MULTIPLY SUBROUTINE
						;;5682	.IF/IMULI.OPT
						;;5683	=110	AR_SHIFT,SKP AR NE,INH CRY18,	;HERE FROM IMULI
						;;5684			I FETCH,J/MUL1		; AFTER SHORT MULTIPLY
						; 5685	.ENDIF/IMULI.OPT
U 0306, 2054,0001,0000,0302,0040,5616,0043	; 5686		SC_#,#/35.,SKP AR SIG		;CHECK OVERFLOW AND STORE
						; 5687	=
						; 5688	=0
U 2054, 0066,4001,4000,0000,0005,0033,0000	; 5689	IMUL2:	AR_SHIFT,B WRITE,J/ST6		;STORE LOW WORD OF PRODUCT
U 2055, 2054,5401,2000,0000,0020,1116,0420	; 5690		SET AROV,AR_SIGN,J/IMUL2	;NOTE OVERFLOW...
						; 5691	
						; 5692	
						; 5693		.DCODE
D 0224, 4100,0400				; 5694	224:	R,	DBL AC,	J/MUL
D 0225, 0101,0400				; 5695		I,	DBL AC,	J/MUL
D 0226, 6600,0400				; 5696		RW,	M,	J/MUL
D 0227, 6201,0400				; 5697		RW,	DBL B,	J/MUL
						; 5698		.UCODE
						; 5699	
						; 5700	=0****00*000
						; 5701	MUL:	MQ_AR,CLR ARX,			;MULTIPLIER TO MQ
						; 5702			AR_AC0,FE_#,#/-18.,	;SETUP MULTIPLICAND AND STEP CNT
U 0400, 1534,3200,2010,0301,1020,0550,0756	; 5703			CALL,J/MULSUB		;AND GO TO SUBROUTINE
U 0404, 0406,3602,0004,0000,0020,5510,0000	; 5704	=100	GEN AR*BR,AD/AND,SKP AD0	;M'IER NEG, CHECK M'CAND & PROD TOO
						; 5705	=110
U 0406, 0060,0001,0000,0302,0005,0033,0043	; 5706	MUL1:	SC_#,#/35.,EXIT			;STORE DOUBLE RESULT
U 0407, 0406,0001,0000,0000,0000,1110,0420	; 5707		SET AROV,J/MUL1			;MUST HAVE SQUARED 400000,,0
						; 5708	=
						; 5709	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 3
; ARITH.MIC[10,5351]	19:52 24-Jul-85			MULTIPLY SUBROUTINE					

						; 5710	.TOC	"MULTIPLY SUBROUTINE"
						; 5711	; ENTER WITH MULTIPLIER IN MQ,
						; 5712	; MULTIPLICAND IN AR!ARX, MINUS STEP COUNT IN FE
						; 5713	; RETURNS PRODUCT IN AR!ARX!MQ.
						; 5714	; RETURN 4, 6 TELLS SIGN OF MULTIPLIER
						; 5715	; 4 AND 6 ARE USED SO CALLER CAN IGNORE
						; 5716	; DIFFERENCE BY ALIGNMENT OF CALL LOC'N
						; 5717	;[TIME=4+2(-FE)+(# OF ARITH STEPS)] ... IF FE=-18, 40-58.
						; 5718	;
						; 5719	;Recall:
						; 5720	; MUL		"FE_FE+1,DISP/MUL,MQ/MQ*.25"
						; 5721	;
						; 5722	
						; 5723	MULSUB:	BR_AR LONG,AR_0S,ARX_0S,	;M'CAND TO BR LONG, CLEAR PROD
U 1534, 0320,3441,2270,4001,0000,0030,0000	; 5724			MUL,J/MULP		;START THE MULTIPLICATION
						; 5725	=000					;GRAB AN 8-WORD BLOCK
						; 5726	MULP:
						; 5727	.IF/MODEL.B
U 0320, 0006,3701,5500,2401,0000,0703,0001	; 5728		(AR+ARX+MQ)*2,FE_SC,RETURN6	;XADDR MACHINE HAS
U 0321, 0006,3701,5500,2401,0000,0703,0001	; 5729		(AR+ARX+MQ)*2,FE_SC,RETURN6	; NO "CRA MUL DONE"
U 0322, 0006,3701,5500,2401,0000,0703,0001	; 5730		(AR+ARX+MQ)*2,FE_SC,RETURN6
						; 5731	.ENDIF/MODEL.B
U 0323, 0006,3701,5500,2401,0000,0703,0001	; 5732	=011	(AR+ARX+MQ)*2,FE_SC,RETURN6	;DISCARD REDUNDANT SIGN BIT
						; 5733	
U 0324, 0320,3703,7710,4001,0000,0030,0000	; 5734	=100	AR_AR*.25 LONG,MUL,J/MULP	;M'IER BITS 00 AFTER POS STEP
						; 5735		AR_(AR+BR)*.25,ARX/ADX*.25,	;01 AFTER +
U 0325, 0320,0602,7714,4001,0020,0030,0000	; 5736			MUL,J/MULP
						; 5737		AR_(AR-2BR)*.25,ARX/ADX*.25,	;10 AFTER +
U 0326, 0420,5101,7714,4001,0020,0030,0000	; 5738			MUL,J/MULM
						; 5739		AR_(AR-BR)*.25,ARX/ADX*.25,
U 0327, 0420,5102,7714,4001,0020,0030,0000	; 5740			MUL,J/MULM		;11 AFTER +
						; 5741	
						; 5742	=000					;ANOTHER 8-WORD BLOCK FOR
						; 5743	MULM:					; AFTER SUBTRACTION STEPS
						; 5744	.IF/MODEL.B
U 0420, 0004,3703,5500,2401,0000,0703,0001	; 5745		(AR+ARX+MQ)*2,FE_SC,RETURN4
U 0421, 0004,3703,5500,2401,0000,0703,0001	; 5746		(AR+ARX+MQ)*2,FE_SC,RETURN4
U 0422, 0004,3703,5500,2401,0000,0703,0001	; 5747		(AR+ARX+MQ)*2,FE_SC,RETURN4
						; 5748	.ENDIF/MODEL.B
U 0423, 0004,3703,5500,2401,0000,0703,0001	; 5749	=011	(AR+ARX+MQ)*2,FE_SC,RETURN4	;M'IER WAS NEGATIVE
						; 5750	
						; 5751	=100	AR_(AR+BR)*.25,ARX/ADX*.25,	;M'IER BITS 00 AFTER NEG STEP
U 0424, 0320,0602,7714,4001,0020,0030,0000	; 5752			MUL,J/MULP
						; 5753		AR_(AR+2BR)*.25,ARX/ADX*.25,	;01 AFTER -
U 0425, 0320,0601,7714,4001,0020,0030,0000	; 5754			MUL,J/MULP
						; 5755		AR_(AR-BR)*.25,ARX/ADX*.25,	;10 AFTER -
U 0426, 0420,5102,7714,4001,0020,0030,0000	; 5756			MUL,J/MULM
U 0427, 0420,3701,7710,4001,0000,0030,0000	; 5757		AR_AR*.25 LONG,MUL,J/MULM	;11 AFTER -
						; 5758	
						; 5759	;HERE TO CONTINUE A LONG MULTIPLICATION
						; 5760	; WITH PARTIAL PRODUCT IN AR LONG
						; 5761	
U 1542, 0320,3441,0010,4001,0000,0030,0000	; 5762	MULREE:	AD/0S,MUL,J/MULP		;DIVE IN WITHOUT CLOBBERING AR
						; 5763	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 4
; ARITH.MIC[10,5351]	19:52 24-Jul-85			DIV, IDIV						

						; 5764	.TOC	"DIV, IDIV"
						; 5765	
						; 5766		.DCODE
D 0230, 4100,0411				; 5767	230:	R,	DBL AC,	J/IDIV
D 0231, 0101,0411				; 5768		I,	DBL AC,	J/IDIV
D 0232, 6600,0411				; 5769		RW,	M,	J/IDIV
D 0233, 6201,0411				; 5770		RW,	DBL B,	J/IDIV
						; 5771	
D 0234, 4101,0410				; 5772	234:	R,	DBL AC,	J/DIV
D 0235, 0100,0410				; 5773		I,	DBL AC,	J/DIV
D 0236, 6601,0410				; 5774		RW,	M,	J/DIV
D 0237, 6200,0410				; 5775		RW,	DBL B,	J/DIV
						; 5776		.UCODE
						; 5777	
						; 5778	=0****00*000
						; 5779	DIV:	BR/AR,ARX+MQ_0.M,		;DIVISOR TO BR
						; 5780			AR_AC1*2,ARL/AD*2,	;LOW DIVIDEND TO AR
U 0410, 1561,3200,5041,0000,0021,0050,0145	; 5781			CALL.M,J/DIV1		;GET HIGH DIVIDEND
						; 5782	.IF/MODEL.B
U 0411, 1551,4041,2040,0000,0020,0010,0000	; 5783	IDIV:	BR/AR, AR_1, J/IDIV2		;[236]
						; 5784	IDIV1:	BR/AR,ARX+MQ_0.M,SC_1,		;DIVISOR TO BR
						; 5785			AR_AC0,ARL/AD,CALL.M,	;DIVIDEND TO AR
U 0412, 2130,3240,2040,4402,0021,4550,0142	; 5786			SKP AR0,J/DIV2		;TEST DIVISOR SIGN
						;;5787	.IFNOT/MODEL.B
						;;5788	=10
						;;5789	IDIV:	BR/AR,ARX+MQ_0.M,SC_1,		;DIVISOR TO BR
						;;5790			AR_AC0,ARL/AD,CALL.M,	;DIVIDEND TO AR
						;;5791			SKP AR0,J/DIV2		;TEST DIVISOR SIGN
						; 5792	.ENDIF/MODEL.B
						; 5793	=011
U 0413, 0073,4001,0000,0000,0000,1110,0424	; 5794	NODIVD:	SET NO DIVIDE,J/NOP		;HERE IF DIVIDE IMPOSSIBLE
						; 5795	
						; 5796	=110	ARX_AR,AR_-BRX,			;REMAIN TO ARX, GET CORRECT QUOTIENT
U 0416, 0060,5142,6400,0302,1025,0033,0044	; 5797			SC_#,#/36.,EXIT
						; 5798		ARX_AR,AR_BRX,			;HERE FOR POS QUOTIENT
U 0417, 0060,3202,6400,0302,1005,0033,0044	; 5799			SC_#,#/36.,EXIT
						; 5800	=
						; 5801	.IF/MODEL.B
U 1551, 2114,5102,0004,0000,0040,5610,0000	; 5802	IDIV2:	GEN AR-BR, SKP AD NE		;[236] IS DIVISOR = 1?
						; 5803	=0	AR_AC0, CLR ARX, SC_#, #/36.,	;[236] YES, ANSWER IS AC0.
U 2114, 0060,3240,2000,0302,0025,0533,0044	; 5804			EXIT			;[236]
U 2115, 0412,3202,2000,0000,0000,0010,0000	; 5805		AR_BR, J/IDIV1			;
						; 5806	.ENDIF/MODEL.B
						; 5807	;HERE ON DIVIDE TO SET UP DIVIDEND
						; 5808	
						; 5809	DIV1:	BRX/ARX,ARX_AR,AR_AC0,		;CLR BRX, DIVIDEND IN AR LONG
						; 5810			FE_#,#/33.,TIME/3T,	;SETUP ITERATION COUNT
U 1561, 0454,3240,2420,0301,1020,0032,0041	; 5811			SIGNS DISP,J/DIVS1	;ENTER SUBR
						; 5812	
						; 5813	;HERE ON IDIV TO SET UP DIVIDEND.  SKIP IF DIVISOR NEG
						; 5814	
						; 5815	=0
						; 5816	DIV2:	BRX/ARX,ARX_SHIFT,AR_SIGN,	;CLR BRX, DIVIDEND TO AR LONG
						; 5817			FE_#,#/33.,		;SETUP LOOP COUNT
U 2130, 0454,5401,2420,0301,0020,4516,0041	; 5818			SKP AR0,J/DIVS1		;ENTER SUBR ACCORDING TO SIGNS
						; 5819		BRX/ARX,ARX_SHIFT,AR_SIGN,	;CLR BRX, DIVIDEND TO AR LONG
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 4-1
; ARITH.MIC[10,5351]	19:52 24-Jul-85			DIV, IDIV						

						; 5820			FE_#,#/33.,		;SETUP LOOP COUNT
U 2131, 0456,5441,2420,0301,0020,4516,0041	; 5821			SKP AR0,J/DIVS2		;ENTER SUBR ACCORDING TO SIGNS
						; 5822	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 5
; ARITH.MIC[10,5351]	19:52 24-Jul-85			INTEGER DIVIDE SUBROUTINE				

						; 5823	.TOC	"INTEGER DIVIDE SUBROUTINE"
						; 5824	; ENTER WITH SIGNS DISPATCH OF DIVISOR AND DIVIDEND,
						; 5825	; DIVISOR IN BR, BRX CLR; DIVIDEND IN AR!ARX
						; 5826	; STEP COUNT IN FE (# OF QUOTIENT BITS -2)
						; 5827	; IF NO DIVIDE, RETURN 3 WITH IFETCH STARTED
						; 5828	; OTHERWISE, RETURN WITH SIGNED REMAINDER IN AR,
						; 5829	; POSITIVE QUOTIENT IN BRX AND MQ.
						; 5830	; RETURN 6 IF QUOTIENT SHOULD BE NEGATIVE,
						; 5831	; RETURN 7 IF QUOTIENT SHOULD BE POSITIVE.
						; 5832	;[TIME=14+3(FE)+3(D'END NEG)+3(RESTORE REQ'D)+1(REMAINDER NEG)]
						; 5833	; ... IF FE=33, 113-120
						; 5834	;
						; 5835	;Recall:
						; 5836	; DIVIDE	"FE_FE-1,DISP/DIV,MQ/MQ*2"
						; 5837	;
						; 5838	=1100
						; 5839	DIVS1:	DIVIDE,AR_2(AR-BR),
U 0454, 0462,5102,5500,3001,0020,0031,0000	; 5840			ARX/ADX*2,J/DIVS3	;BOTH D'END AND D'SOR POS
U 0455, 0454,5143,7700,0000,0020,0027,0000	; 5841		AR_-AR LONG,J/DIVS1		;MAKE POS DIVIDEND, THEN CHK
						; 5842	DIVS2:	DIVIDE,AR_2(AR+BR),
U 0456, 0522,0602,5504,3001,0020,0031,0000	; 5843			ARX/ADX*2,J/DIVS4	;D'END POS, D'SOR NEG
U 0457, 0456,5163,7700,0000,0020,0027,0000	; 5844		AR_-AR LONG,J/DIVS2
						; 5845	
						; 5846	=010
						; 5847	DIVS3:	DIVIDE,AR_2(AR+BR),ARX/ADX*2,
U 0462, 0540,0602,5504,3001,0020,0071,0005	; 5848			ARL/AD*2,CALL.M,J/DIVLP	;START DIVIDING
U 0463, 0003,4001,0000,0000,0217,0003,0000	; 5849		I FETCH,RETURN3			;RETURN TO CALLER WITH NO DIVIDE
						; 5850	
U 0466, 0006,5162,2020,0000,0020,0003,0000	; 5851		AR_-BR,BRX/ARX,RETURN6		;D'END NEG, SO NEGATE QUO & REM
U 0467, 0007,0001,0020,0000,0000,0003,0000	; 5852		BRX/ARX,RETURN7			;EVERYTHING POSITIVE
						; 5853	
						; 5854	
						; 5855	=010
						; 5856	DIVS4:	DIVIDE,AR_2(AR-BR),ARX/ADX*2,
U 0522, 0540,5102,5500,3001,0020,0071,0005	; 5857			ARL/AD*2,CALL.M,J/DIVLP	;BEGIN DIVISION FOR REAL BITS
U 0523, 0003,4001,0000,0000,0217,0003,0000	; 5858		I FETCH,RETURN3			;ABORT FOR IMPOSSIBLE DIVISION
						; 5859	
U 0526, 0006,4001,0020,0000,0000,0003,0000	; 5860		BRX/ARX,RETURN6			;NEGATE QUO
U 0527, 0007,5142,2020,0000,0020,0003,0000	; 5861		AR_-BR,BRX/ARX,RETURN7		;NEGATE REM
						; 5862	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 6
; ARITH.MIC[10,5351]	19:52 24-Jul-85			BASIC DIVIDE LOOP					

						; 5863	.TOC	"BASIC DIVIDE LOOP"
						; 5864	; THE LOOP ITSELF IS AN INNER SUBROUTINE, TO MAKE IT SUITABLE
						; 5865	; FOR USE IN DOUBLE-LENGTH DIVISION.
						; 5866	; THE DOUBLE LENGTH REMAINDER IS RETURNED IN BR!BRX (RESTORED)
						; 5867	; THE SINGLE LENGTH QUOTIENT (LOW PART IF DBL-LEN DIVISION) IN ARX
						; 5868	; RETURN 6 IF QUOTIENT (REALLY AC0.XOR.BR) NEGATIVE, OR 7 IF POSITIVE
						; 5869	;[TIME=12+3(FE)+3(RESTORE REQ'D)] ... IF FE=33, 111-114.
						; 5870	
						; 5871	=000
U 0540, 0540,0602,5500,3001,0020,0031,0000	; 5872	DIVLP:	DIVIDE,AR_2(AR+BR),ARX/ADX*2,J/DIVLP
U 0541, 0540,5102,5504,3001,0020,0031,0000	; 5873		DIVIDE,AR_2(AR-BR),ARX/ADX*2,J/DIVLP
U 0542, 0540,5102,5504,3001,0020,0031,0000	; 5874	DIV-:	DIVIDE,AR_2(AR-BR),ARX/ADX*2,J/DIVLP
U 0543, 0540,0602,5500,3001,0020,0031,0000	; 5875	DIV+:	DIVIDE,AR_2(AR+BR),ARX/ADX*2,J/DIVLP
U 0544, 0564,0602,2604,3001,0020,0031,0000	; 5876		DIVIDE,AR_AR+BR,ARX/ADX,J/DIVX
U 0545, 0564,5102,2600,3001,0020,0031,0000	; 5877		DIVIDE,AR_AR-BR,ARX/ADX,J/DIVX
U 0546, 0564,5102,2600,3001,0020,0031,0000	; 5878		DIVIDE,AR_AR-BR,ARX/ADX,J/DIVX		;NO SHIFT ON FINAL STEP
U 0547, 0564,0602,2604,3001,0020,0031,0000	; 5879		DIVIDE,AR_AR+BR,ARX/ADX,J/DIVX
						; 5880	
						; 5881	;HERE AFTER FINAL DIVIDE STEP
						; 5882	; MQ HAS POSITIVE FORM QUOTIENT
						; 5883	; AR!ARX HAS REMAINDER, EXCEPT THAT IT MUST BE RESTORED IF IT IS
						; 5884	; NEGATIVE (IT'S NEGATIVE IF THERE WAS NO CARRY ON FINAL STEP)
						; 5885	; THE ORIGINAL DIVIDEND IS STILL IN AC0, SO WE CHECK ITS SIGN
						; 5886	; TO DETERMINE WHETHER TO NEGATE THE (RESTORED) REMAINDER.
						; 5887	
						; 5888	=100
U 0564, 0565,0602,2600,0000,0020,0027,0000	; 5889	DIVX:	AR_AR+BR LONG			;RESTORE REMAIN WITH POS D'SOR
						; 5890		BR_AR LONG,ARX/MQ,FE_SC,	;LONG REMAIN TO BR, QUO TO ARX
U 0565, 0006,2500,0360,2401,0020,5503,0000	; 5891			SKP AC0+,RETURN6	;RETURN TESTING D'END SIGN
U 0566, 0567,5102,2600,0000,0020,0027,0000	; 5892		AR_AR-BR LONG			;RESTORE REMAIN WITH NEG D'SOR
						; 5893		BR_AR LONG,ARX/MQ,FE_SC,
U 0567, 0006,3200,0360,2401,0020,5503,0000	; 5894			SKP AC0-,RETURN6
						; 5895	
						; 5896	
						; 5897	;SUBROUTINE FOR FIRST PART OF LONG DIVISIONS
						; 5898	; ENTER AT DDVSUB WITH SKP BR0
						; 5899	; RETURN3 IF SHOULD RESUME WITH ADD STEP
						; 5900	; RETURN5 IF SHOULD RESUME WITH SUBTRACT
						; 5901	
						; 5902	=000
U 0720, 0720,0602,5504,3001,0020,0031,0000	; 5903	DDVLP:	AR_2(AR+BR),ARX/ADX*2,DIVIDE,J/DDVLP
U 0721, 0720,5102,5500,3001,0020,0031,0000	; 5904		AR_2(AR-BR),ARX/ADX*2,DIVIDE,J/DDVLP
U 0722, 0720,5102,5500,3001,0020,0031,0000	; 5905	DDVSUB:	AR_2(AR-BR),ARX/ADX*2,DIVIDE,J/DDVLP
U 0723, 0720,0602,5504,3001,0020,0031,0000	; 5906		AR_2(AR+BR),ARX/ADX*2,DIVIDE,J/DDVLP
U 0724, 0003,3723,2010,0301,1000,0003,0040	; 5907		AR_MQ,MQ_AR,FE_#,#/32.,RETURN3
U 0725, 0005,3723,2010,0301,1000,0003,0040	; 5908		AR_MQ,MQ_AR,FE_#,#/32.,RETURN5
U 0726, 0005,3723,2010,0301,1000,0003,0040	; 5909		AR_MQ,MQ_AR,FE_#,#/32.,RETURN5
U 0727, 0003,3723,2010,0301,1000,0003,0040	; 5910		AR_MQ,MQ_AR,FE_#,#/32.,RETURN3
						; 5911	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 7
; ARITH.MIC[10,5351]	19:52 24-Jul-85			DOUBLE INTEGER ARITHMETIC -- DADD, DSUB, DMUL, DDIV

						; 5912	.TOC	"DOUBLE INTEGER ARITHMETIC -- DADD, DSUB, DMUL, DDIV"
						; 5913	
						; 5914		.DCODE
						;;5915	.IFNOT/DBL.INT
						;;5916	114:	EA,	J/UUO
						;;5917		EA,	J/UUO
						;;5918		EA,	J/UUO
						;;5919		EA,	J/UUO
						; 5920	.IF/DBL.INT
D 0114, 4001,0211				; 5921	114:	R,	B/0,	J/DASMD		;DADD
D 0115, 4200,0211				; 5922		R,	B/2,	J/DASMD		;DSUB
D 0116, 4400,0211				; 5923		R,	B/4,	J/DASMD		;DMUL
D 0117, 4000,0210				; 5924		R,		J/DDIV
						; 5925		.UCODE
						; 5926	
						; 5927	;HERE FOR DOUBLE WORD ADD, SUBTRACT, MULTIPLY, OR DIVIDE
						; 5928	;ENTER WITH (E) IN AR, E IN VMA
						; 5929	
						; 5930	=0****00**00
U 0210, 1732,3240,0205,0000,0020,0710,0003	; 5931	DDIV:	ARX_AC3,CLR MQ,J/DDIV0		;GET LOWEST PART OF D'END
						; 5932	
						; 5933	DASMD:	BR/AR,AR_AC1*2,ARL/AD*2,	;HIGH MEM WORD TO BR
						; 5934			VMA_VMA+1,LOAD ARX,	;ASK FOR LOW WORD
U 0211, 0770,3200,5041,0000,0033,3662,0105	; 5935			MQ_0.S,CALL.S,J/XFERW	;AND WAIT FOR IT
U 0213, 1572,3721,0500,0000,0000,0010,0000	; 5936	=11	ARX_ARX*2			;SHIFT LOW MEM WORD LEFT
						; 5937	=	BRX/ARX,ARX_AR,AR_AC0,		;ALL DATA IN PLACE
U 1572, 0470,3240,2420,0302,1020,0033,0043	; 5938			SC_#,#/35.,B DISP	;DO THE OPERATION
						; 5939	
						; 5940	;HERE WITH (E) IN BR, (E+1)*2 IN BRX
						; 5941	; (AC) IN AR, (AC+1)*2 IN ARX
						; 5942	
U 0470, 0061,0602,2604,0000,0022,1327,0000	; 5943	=00*	AR_AR+BR LONG,AD FLAGS,EXIT DBL	;DADD
						; 5944	
U 0472, 0061,5102,2600,0000,0022,1327,0000	; 5945		AR_AR-BR LONG,AD FLAGS,EXIT DBL	;DSUB
						; 5946	
						; 5947		MQ_SHIFT,AR_0S,ARX_0S,		;DMUL, USE AC1 AS INITIAL M'IER
U 0474, 0530,3441,2210,0301,0000,0010,0756	; 5948			FE_#,#/-18.,J/DMULT	;SETUP STEP COUNT
						; 5949	=
						; 5950	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 8
; ARITH.MIC[10,5351]	19:52 24-Jul-85			DOUBLE INTEGER ARITHMETIC -- DADD, DSUB, DMUL, DDIV

						; 5951	;HERE FOR DOUBLE WORD MULTIPLY
						; 5952	
						; 5953	=00*
U 0530, 0320,3401,0010,4001,0000,0070,0000	; 5954	DMULT:	AD/0S,MUL,CALL.M,J/MULP		;BEGIN MULTIPLY
U 0534, 0536,0602,2600,0000,0020,0027,0000	; 5955	=10*	AR_AR+BR LONG			;CANCEL EFFECTS OF LOW BIT 0
U 0536, 1607,3721,2010,0000,1000,0010,0000	; 5956		MQ_AR,AR_MQ			;EXCH HI AND LOW PRODUCT WORDS
						; 5957	
						; 5958	;HERE AFTER 1ST CALL ON MPY SUBR.  SAVE LOW WORD OF PROD, GET HIGH M'IER
						; 5959	
U 1607, 1612,4001,0005,0000,0000,1010,0000	; 5960		AC3_AR				;LOW WORD OF PRODUCT
U 1612, 0740,3240,2000,0000,0020,0010,0000	; 5961		AR_AC0				;GET HIGH M'IER WORD
						; 5962	=000	MQ_AR,AR_MQ,CALL,		;DIVE IN AGAIN
U 0740, 1542,3721,2010,0301,1000,0050,0756	; 5963			FE_#,#/-18.,J/MULREE	;CONTINUE THE MULTIPLY
U 0744, 0746,3602,0000,0000,0020,5510,0000	; 5964	=100	GEN AR*BR,AD/AND,SKP AD0	;SKP IF M'IER, M'CAND, & PROD NEG
						; 5965	=110
						; 5966	DMUL1:	AC0_AR,AR_SIGN,
U 0746, 1622,5401,2000,0302,0020,1016,0043	; 5967			SC_#,#/35.,J/DMUL2	;STORE HIGH WORD OF PRODUCT
U 0747, 0746,4001,0000,0000,0000,1110,0420	; 5968		SET AROV,J/DMUL1
						; 5969	
						; 5970	;MULTIPLY NOW COMPLETE, STORE RESULTS WITH PROPER SIGN IN BIT 0
						; 5971	
U 1622, 1626,4001,4040,0000,0000,0010,0000	; 5972	DMUL2:	BR/AR,AR_SHIFT			;GET 2ND WITH SIGN, SAVE SIGN
U 1626, 1632,4001,4301,0000,2000,1010,0000	; 5973		AC1_AR,AR_ARX,ARX/MQ		;READY TO BUILD 3RD WORD
U 1632, 1712,3242,2400,0000,0000,0012,0000	; 5974		ARX_SHIFT,AR_BR,MQ_MQ*2		;SIGNIFICANT BITS TO ARX, SIGN TO AR
						; 5975		AR_SHIFT,ARX_AC3,		;3RD WORD IN AR, GET LOW
U 1712, 1716,3240,4215,0000,0020,0012,0000	; 5976			MQ_MQ*.25		;EXTRA PROD BIT TO MQ 35
U 1716, 0631,3723,2004,0000,0000,1010,0000	; 5977		AC2_AR,AR_MQ			;,I FETCH WHEN TIMING FIXED
						; 5978	=0*	ARX_SHIFT,AR_BR,I FETCH,	;LOW WORD AND SIGN READY
U 0631, 2662,3202,2400,0000,0217,0050,0000	; 5979			CALL,J/SHIFT		; GET LOW WORD TO AR
U 0633, 0221,4001,0005,0000,0000,1010,0000	; 5980	STRAC3:	AC3_AR,FINISH			;GANZ GETAN
						; 5981	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 9
; ARITH.MIC[10,5351]	19:52 24-Jul-85			DOUBLE INTEGER ARITHMETIC -- DADD, DSUB, DMUL, DDIV

						; 5982	;HERE FOR DOUBLE INTEGER DIVISION
						; 5983	;AR HAS (E), ARX HAS (AC3), AND MQ IS CLEAR
						; 5984	
U 1732, 1736,3243,4507,4402,2000,1010,0166	; 5985	DDIV0:	T0_AR,AR_ARX,ARX_ARX*8,SC_1	;SAVE (E) IN T0
						; 5986		BRX/ARX,ARX_SHIFT,		;AC3 3-35 TO BRX, 1-2 TO ARX
U 1736, 1742,3200,2424,0302,0020,0010,0002	; 5987			AR_AC2,SC_#,#/2		;GET AC2 READY
						; 5988		AR_SHIFT,BR/AR,			;AC2 BITS 2-35 WITH AC3 1-2
U 1742, 1747,3200,4241,0000,0020,3610,0000	; 5989			ARX_AC1,VMA_VMA+1	;READY TO GET (E+1)
						; 5990		BR/AR,AR_ARX,ARX_BR*2,		;LOW DOUBLE WORD NOW IN BR LONG
U 1747, 1752,3241,4240,4403,2000,0010,0000	; 5991			SC_1,FE_1
U 1752, 2132,3240,2400,0000,0020,5510,0000	; 5992		ARX_SHIFT,AR_AC0,SKP AD0	;HIGH DOUBLEWORD IN AR LONG
						; 5993	=0
						; 5994	DDIV1:	BR_AR LONG,AR_BRX,ARX_BR,	;HI POS D'END TO BR
U 2132, 1224,3242,6260,0000,0012,0010,0000	; 5995			LOAD AR,J/DDIV2		;GET LOW D'SOR READY
						; 5996		BR_AR LONG,AR_-BR LONG,		;NEGATE LOW D'END
U 2133, 2134,5142,2660,3401,0040,5427,0000	; 5997			FE_-1,SKP CRY0		;TEST FOR CARRY PROPAGATION
U 2134, 2132,2502,2660,0000,0000,0010,0000	; 5998	=0	BR_AR LONG,AR_BR COMP LONG,J/DDIV1
U 2135, 2132,5162,2660,0000,0020,0027,0000	; 5999		BR_AR LONG,AR_-BR LONG,J/DDIV1	;FINISH NEGATION OF D'END
						; 6000	=0*
						; 6001	DDIV2:	T1_AR,MQ_ARX,ARX_0S,		;LOWEST D'END TO T1, NEXT TO MQ
U 1224, 0770,3441,0217,0000,2000,1050,0171	; 6002			CALL,J/XFERW		; WAIT FOR (E+1)
U 1226, 2140,3200,2407,0000,0040,5110,0166	; 6003		ARX_SHIFT,AR_T0,SKP FE0		;DIVISOR NOW IN AR LONG
						; 6004	=0	AR_BR LONG,BR_AR LONG,		;PUT OPERANDS IN PLACE FOR DIV
U 2140, 0473,3202,2660,0000,0020,0032,0000	; 6005			SIGNS DISP,J/DDIV3	;TEST D'SOR SIGN
						; 6006		AR_BR LONG,BR_AR LONG,SET SR2,	;NOTE D'END NEGATIVE
U 2141, 0473,3202,2660,0000,0020,1632,0062	; 6007			SIGNS DISP,J/DDIV3
						; 6008	
						; 6009	;HERE WITH THE DIVISOR IN BR LONG,
						; 6010	; THE HIGH PART OF THE MAGNITUDE OF THE DIVIDEND IN AR LONG,
						; 6011	; AND THE LOW PART OF THE MAGNITUDE OF THE DIVIDEND IN MQ AND T1
						; 6012	; SKIP IF DIVISOR NEGATIVE, & CHECK FOR NO-DIVIDE.
						; 6013	=1011
						; 6014	DDIV3:	AR_2(AR-BR),ARX/ADX*2,MQ_MQ*2,	;SEE IF FIRST DIVIDE STEP
U 0473, 1040,5102,5504,0000,0040,5412,0000	; 6015			SKP CRY0,J/DDIV4	; GENERATES A 1
U 0477, 1040,0602,5500,0000,0040,5412,0000	; 6016		AR_2(AR+BR),ARX/ADX*2,MQ_MQ*2,SKP CRY0
						; 6017	=000
U 1040, 0720,4001,0000,0301,0000,4250,0041	; 6018	DDIV4:	FE_#,#/33.,SKP BR0,CALL,J/DDVLP	;GO DO FIRST HALF OF DIVIDE
U 1041, 0413,0001,0000,0000,0217,0010,0000	; 6019		I FETCH,J/NODIVD		;TOO MANY QUOTIENT BITS
U 1043, 1756,4001,0001,0402,0000,1010,0000	; 6020	=011	AC1_AR,CLR SC,J/DDIV6		;SAVE HI QUOTIENT IN AC1
U 1045, 1756,4001,0001,3402,0000,1010,0000	; 6021	=101	AC1_AR,SC_1S			;SET FLAG FOR RESUMPTION
						; 6022	=
U 1756, 1024,3200,2007,0000,0020,0010,0171	; 6023	DDIV6:	AR_T1				;GET LOWEST DIVIDEND BITS
						; 6024	=100	MQ_AR,AR_MQ,CALL,		;FINISH DIVISION, GENERATING
U 1024, 0540,3721,2010,0000,1000,4750,0000	; 6025			SKP SC0,J/DIVLP		; 35 MORE QUOTIENT BITS
U 1026, 0535,3240,2001,0000,0020,1605,0061	; 6026	=110	AR_AC1,SR DISP,SET SR3,J/DDVX1	;QUOTIENT NEGATIVE.  NOTE
U 1027, 0535,3240,2001,0000,0020,0005,0000	; 6027		AR_AC1,SR DISP			;HERE'S HIGH PART OF QUOTIENT
						; 6028	=1101
U 0535, 1771,3242,2660,0000,0000,0010,0000	; 6029	DDVX1:	BR_AR LONG,AR_BR LONG,J/DDVX2	;POS REMAINDER.  GO STORE
U 0537, 1771,5142,2660,0000,0020,0027,0000	; 6030		BR_AR LONG,AR_-BR LONG,J/DDVX2	;NEGATE REMAINDER
U 1771, 1776,5441,2004,0302,0020,1016,0043	; 6031	DDVX2:	AC2_AR,AR_SIGN,SC_#,#/35.
U 1776, 0116,4001,4000,0000,0000,0005,0000	; 6032		AR_SHIFT,SR DISP		;GET LOW WORD OF REM.  TEST QUO SIGN
U 0116, 0061,3202,2505,0000,0002,1010,0000	; 6033	=1110	AC3_AR,AR_BR,ARX/ADX*2,EXIT DBL	;GET QUOTIENT, SQUEEZE OUT HOLE
						; 6034		AC3_AR,AR_-BR,ARX/ADX*2,AD LONG,;GET NEGATIVE QUOTIENT
U 0117, 0061,5162,2505,0000,0022,1027,0000	; 6035			EXIT DBL
						; 6036	.ENDIF/DBL.INT
						; 6037	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 1
; FP.MIC[10,5351]	19:52 24-Jul-85			SINGLE FLOATING ADD & SUB -- FAD, FADR, FSB, FSBR	

						; 6038	.TOC	"SINGLE FLOATING ADD & SUB -- FAD, FADR, FSB, FSBR"
						; 6039	
						; 6040		.DCODE
						; 6041	
D 0140, 4100,0310				; 6042	140:	R,	FL-AC,	B0/0,	J/FAD
D 0141, 4001,0313				; 6043		R,		B0/0,	J/FPNO
D 0142, 6201,0310				; 6044		RW,	FL-MEM,	B0/0,	J/FAD
D 0143, 6300,0310				; 6045		RW,	FL-BOTH,B0/0,	J/FAD
						; 6046	
D 0144, 4100,0203				; 6047		R,	FL-AC,		J/FADR
D 0145, 0100,0202				; 6048		I,	FL-AC,	B0/0,	J/FADRI
D 0146, 6201,0203				; 6049		RW,	FL-MEM,		J/FADR
D 0147, 6300,0203				; 6050		RW,	FL-BOTH,	J/FADR
						; 6051	
D 0150, 4501,0310				; 6052	150:	R,	FL-AC,	B0/1,	J/FSB
D 0151, 4400,0313				; 6053		R,		B0/1,	J/FPNO
D 0152, 6600,0310				; 6054		RW,	FL-MEM,	B0/1,	J/FSB
D 0153, 6701,0310				; 6055		RW,	FL-BOTH,B0/1,	J/FSB
						; 6056	
D 0154, 4101,0207				; 6057		R,	FL-AC,		J/FSBR
D 0155, 0501,0202				; 6058		I,	FL-AC,	B0/1,	J/FSBRI
D 0156, 6200,0207				; 6059		RW,	FL-MEM,		J/FSBR
D 0157, 6301,0207				; 6060		RW,	FL-BOTH,	J/FSBR
						; 6061		.UCODE
						; 6062	
						; 6063	.IFNOT/FPLONG
						; 6064	=0****00**00
						; 6065	FAD:
U 0310, 0203,4001,0000,0000,0000,1633,0001	; 6066	FSB:	SR_#,#/1,B DISP,J/FADR		;FLAG NO ROUND, GO FAD/FSB
U 0311, 1413,0001,0000,0000,0000,1610,0001	; 6067	FMP:	SR_#,#/1,J/FMPR
U 0312, 1415,0001,0000,0000,0000,1610,0001	; 6068	FDV:	SR_#,#/1,J/FDVR
U 0313, 1002,3242,2000,0000,0000,0010,0000	; 6069	FPNO:	AR_BR,J/UUO
						; 6070	=
						;;6071	.IF/FPLONG
						;;6072	=0****00***0
						;;6073	FAD:
						;;6074	FSB:	SR_#,#/1,B DISP,J/FADR		;FLAG TRUNCATE MODE, GO FAD
						;;6075	FADL:
						;;6076	FSBL:	SR_#,#/2,B DISP,J/FADR		;FLAG LONG MODE
						; 6077	.ENDIF/FPLONG
						; 6078	=
						; 6079	=0****00*010
						; 6080	FADRI:
U 0202, 0203,0001,4000,0000,3000,0033,0000	; 6081	FSBRI:	AR_AR SWAP,B DISP
						; 6082	FADR:	FE_EXP,EXP_SIGN,SC/SCAD,
U 0203, 2046,3441,0200,0203,1000,0022,0200	; 6083			ARX_0S,J/FAS
						; 6084	=111
U 0207, 2042,3401,0200,0203,1000,0022,0200	; 6085	FSBR:	FE_EXP,SC/SCAD,EXP_SIGN,ARX_0S
U 2042, 2046,5143,7000,0000,0020,0010,0000	; 6086	=	AR_-AR,J/FAS			;NEGATE SUBTRAHEND
						; 6087	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 2
; FP.MIC[10,5351]	19:52 24-Jul-85			SINGLE FLOATING ADD & SUB -- FAD, FADR, FSB, FSBR	

						; 6088	;FIND OPERAND WITH LARGER EXP, LEAVING IT IN BR,
						; 6089	; AND ITS EXP-1 IN FE.  THE SMALLER OPERAND IS LEFT IN AR,
						; 6090	; SHIFTED RIGHT BY THE DIFFERENCE BETWEEN THE EXPONENTS -1
						; 6091	
U 2046, 2052,3240,2060,0000,0020,0010,0000	; 6092	FAS:	BR/AR,BRX/ARX,AR_AC0		;SAVE MEM OP IN BR, GET AC
U 2052, 2142,0001,0000,5202,1020,5122,0200	; 6093		SC_EXP-SC,EXP_SIGN,SKP SCAD0	;FIND LARGER OPERAND
U 2142, 2056,3241,2040,2001,0000,0010,0000	; 6094	=0	FE_FE+SC,BR/AR,AR_BR*2,J/FAS1	;AC EXP .GE. MEM
						; 6095		MQ_AR,SC_#+SC,#/37.,		;MEM OP LARGER, SHIFT AC OP
U 2143, 2150,0001,0010,2302,1020,5110,0045	; 6096			SKP SCAD0,J/FAS2	;COMPUTE SHIFT AMOUNT
						; 6097	
U 2056, 2150,0001,0010,5302,1020,5110,0044	; 6098	FAS1:	MQ_AR,SC_#-SC,#/36.,SKP SCAD0	;CHECK SHIFT AMOUNT
						; 6099	=0
U 2150, 2061,5441,2310,0000,0020,0016,0000	; 6100	FAS2:	MQ_SHIFT,ARX/MQ,AR_SIGN,J/FAS3	;LOW TO MQ, READY TO GET HI
						; 6101		AR_SIGN,ARX_AR,			;HERE IF EXP DIFF .GT. 36
U 2151, 2152,5401,2400,2302,1020,5116,0044	; 6102			SC_#+SC,#/36.,SKP SCAD0	; .GT. 72?
U 2152, 2064,0001,0400,4001,0001,0010,0100	; 6103	=0	ARX_SHIFT,MQ_0.M,FE_FE+1,J/FAS5
U 2153, 2064,4001,0400,4001,1001,0010,0100	; 6104		ARX_AR,MQ_0.M,FE_FE+1,J/FAS5	;SHIFTED CLEAR OUT
						; 6105	
						; 6106	FAS3:	AR_SHIFT,ARL/SH,ARX/MQ,
U 2061, 2064,4001,4300,4001,0001,0010,0104	; 6107			MQ_0.M,FE_FE+1		;READY TO ADD
						; 6108	
						; 6109	FAS5:	AR_(AR+2BR)*.25,ARX/ADX*.25,	;HERE FOR ADD OR SUB
U 2064, 1120,0601,7704,0000,0060,0035,0000	; 6110			NORM,J/SNORM
						; 6111	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 3
; FP.MIC[10,5351]	19:52 24-Jul-85			SINGLE FLOATING MULTIPLY -- FMP, FMPR			

						; 6112	.TOC	"SINGLE FLOATING MULTIPLY -- FMP, FMPR"
						; 6113	
						; 6114		.DCODE
D 0160, 4101,0311				; 6115	160:	R,	FL-AC,	J/FMP
D 0161, 4001,0313				; 6116		R,		J/FPNO
D 0162, 6200,0311				; 6117		RW,	FL-MEM,	J/FMP
D 0163, 6301,0311				; 6118		RW,	FL-BOTH,J/FMP
						; 6119	
D 0164, 4100,1413				; 6120		R,	FL-AC,	J/FMPR
D 0165, 0100,1412				; 6121		I,	FL-AC,	J/FMPRI
D 0166, 6201,1413				; 6122		RW,	FL-MEM,	J/FMPR
D 0167, 6300,1413				; 6123		RW,	FL-BOTH,J/FMPR
						; 6124		.UCODE
						;;6125	.IF/FPLONG
						;;6126	=0****00***0
						;;6127	FMP:	SR_#,#/1,J/FMPR			;FLAG TRUNCATE MODE
						;;6128	FMPL:	SR_#,#/2,J/FMPR			;LONG MODE
						;;6129	=
						; 6130	.ENDIF/FPLONG
						; 6131	=0****00***0
U 1412, 1413,4001,4000,0000,3000,0010,0000	; 6132	FMPRI:	AR_AR SWAP
U 1413, 2066,3441,0200,0202,1000,0022,0200	; 6133	FMPR:	SC_EXP,EXP_SIGN,ARX_0S		;PREPARE M'IER FRACTION
						; 6134	
U 2066, 0122,3240,2010,0301,1020,0010,0762	; 6135	=	MQ_AR,AR_AC0,FE_#,#/-14.	;M'IER TO MQ, GET M'CAND
						; 6136	=01*	SC_EXP+SC,EXP_SIGN,		;SEPARATE M'CAND FRACTION FROM EXP
U 0122, 1534,0001,0000,2202,1000,0062,0200	; 6137			CALL.S,J/MULSUB		;AND BEGIN MULTIPLY
U 0126, 1120,3203,0000,2301,0040,0035,0600	; 6138	=11*	FE_#+SC,#/-200,NORM AR,J/SNORM
						; 6139	=
						; 6140	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 4
; FP.MIC[10,5351]	19:52 24-Jul-85			SINGLE FLOATING DIVIDE -- FDV, FDVR			

						; 6141	.TOC	"SINGLE FLOATING DIVIDE -- FDV, FDVR"
						; 6142	
						; 6143		.DCODE
D 0170, 4101,0312				; 6144	170:	R,	FL-AC,	J/FDV
D 0171, 4100,0313				; 6145		R,	FL-AC,	J/FPNO
D 0172, 6200,0312				; 6146		RW,	FL-MEM,	J/FDV
D 0173, 6301,0312				; 6147		RW,	FL-BOTH,J/FDV
						; 6148	
D 0174, 4100,1415				; 6149		R,	FL-AC,	J/FDVR
D 0175, 0100,1414				; 6150		I,	FL-AC,	J/FDVRI
D 0176, 6201,1415				; 6151		RW,	FL-MEM,	J/FDVR
D 0177, 6300,1415				; 6152		RW,	FL-BOTH,J/FDVR
						; 6153		.UCODE
						;;6154	.IF/FPLONG
						;;6155	=0****00***0
						;;6156	FDVL:	FE_EXP-1,EXP_SIGN,ARX+MQ_0.S,J/FDVL1
						;;6157	FDV:	SR_#,#/1,J/FDVR			;FLAG TRUNCATE MODE
						;;6158	=
						; 6159	.ENDIF/FPLONG
						; 6160	=0****00***0
U 1414, 1415,4001,4000,0000,3000,0010,0000	; 6161	FDVRI:	AR_AR SWAP
U 1415, 1060,0001,0000,4202,1000,0022,0340	; 6162	FDVR:	SC_EXP+1,EXP_SIGN,ARX+MQ_0.S	;SETUP DIVISOR
						; 6163	=
						; 6164	=000	BR/AR,BRX/ARX,			;DIVISOR TO BR, CLR BRX
						; 6165			AR_AC0,FE_#,#/27.,	;GET DIVIDEND, STEP COUNT
U 1060, 2162,3200,2060,0301,0020,5550,0033	; 6166			SKP AD0,CALL,J/FDVCHK
						; 6167	
U 1062, 0542,0001,0000,0000,0000,4250,0000	; 6168	=10	SKP BR0,CALL,J/DIV-		;OK, BEGIN DIVISION
U 1063, 0066,4001,0000,0000,0000,1110,0624	; 6169		SET FL NO DIV,J/IFNOP		;NO DIVIDE, SORRY
						; 6170	
						; 6171	;RETURN HERE WITH QUOTIENT IN ARX.  WE TOOK 29 DIVIDE STEPS, TO
						; 6172	; GUARANTEE HAVING A ROUNDING BIT EVEN IF THE FIRST STEP GENERATES
						; 6173	; A QUOTIENT BIT OF ZERO.  THEREFORE, THE MSB OF QUOTIENT IS EITHER
						; 6174	; IN BIT 7 OR 8, AND NORM WILL FIND IT IN ONE STEP.
						; 6175	
						; 6176	=110	AR_ARX,FE_FE+#,#/2,		;NEGATIVE QUOTIENT
U 1066, 2160,7162,4000,2031,2040,5410,0002	; 6177			SKP BR EQ,J/FDVNEG	;CHECK FOR MORE QUO TO COME
						; 6178		AR_ARX*.25,ARX_ARX*.25,NORM,	;JUNK IS 36 BITS AWAY FROM MSB
U 1067, 1120,3713,7700,2031,0040,0035,0002	; 6179			FE_FE+#,#/2,J/SNORM	;POS QUOTIENT, NORMALIZE
						; 6180	=
						; 6181	;HERE IF QUOTIENT SHOULD BE NEGATIVE, WITH POSITIVE FORM IN
						; 6182	; AR AND ARX.  SKIP IF REMAINDER (IN BR) IS ZERO.  IN THIS CASE,
						; 6183	; WE CLEAR ARX, BECAUSE AR CONTAINS THE ENTIRE QUOTIENT.
						; 6184	; IF, HOWEVER, THE REMAINDER IS NOT ZERO, WE INFER
						; 6185	; THAT AN INFINITE PRECISION DIVISION WOULD GENERATE MORE ONES
						; 6186	; IN THE QUOTIENT.  IF THAT IS THE CASE, WE LEAVE ARX WITH THE
						; 6187	; QUOTIENT, SO THE NEGATION PROCESS WILL WORK CORRECTLY TO RETURN
						; 6188	; THE HIGH ORDER PART OF THE INFINITE-PRECISION NEGATIVE QUOTIENT.
						; 6189	=0
U 2160, 1120,3703,7700,0000,0040,1635,0064	; 6190	FDVNEG:	SET SR1,AR_AR*.25 LONG,NORM,J/SNORM
U 2161, 2160,3441,0200,0000,0000,0010,0000	; 6191		ARX_0S,J/FDVNEG			;REMAINDER WENT TO ZERO
						; 6192	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 5
; FP.MIC[10,5351]	19:52 24-Jul-85			SINGLE FLOATING DIVIDE -- FDV, FDVR			

						; 6193	;HERE FOR FDVL
						; 6194	
						;;6195	.IF/FPLONG
						;;6196	
						;;6197	;FDVL:	FE_EXP-1,EXP_SIGN,CLR ARX+MQ
						;;6198	=000
						;;6199	FDVL1:	AR_AC1,BR_AR LONG,		;SAVE DIVISOR IN BR LONG
						;;6200			SC_#,#/9.,CALL		;READY TO SHIFT LOW DIVIDEND
						;;6201		ARX_SHIFT,AR_AC0,		;DIVIDEND IN PLACE
						;;6202			SC_FE,FE_#,#/24.,	;EXP TO SC, STEP COUNT TO FE
						;;6203			SKP AD0,J/FDVCHK	;GO CHECK FOR NO DIVIDE
						;;6204	=010	CALL,SKP BR0,J/FDVL2		;GO BEGIN DIVIDE
						;;6205		SET FL NO DIV,J/IFNOP		;CAN'T DIVIDE, ABORT
						;;6206	
						;;6207	=110	AR_AC0,SR_#,#/5,		;NEG QUO, FLAG TRUNCATE MODE
						;;6208			SR DISP,J/FDVL4		; WAS IT 26 OR 27 STEPS?
						;;6209		AR_AC0,SR_#,#/1,		;POS QUO
						;;6210			SR DISP,J/FDVL4
						;;6211	=
						;;6212	
						;;6213	
						;;6214	;COME HERE TO START THE DIVISION.  ON THE FIRST STEP, WE CHECK
						;;6215	; TO SEE WHETHER A 1 HAS BEEN GENERATED IN THE QUOTIENT.  IF SO,
						;;6216	; 26 ADDITIONAL STEPS WILL GENERATE THE FULL 27 SIGNIFICANT BITS
						;;6217	; OF THE QUOTIENT.  IF NOT, 27 STEPS ARE REQUIRED.
						;;6218	
						;;6219	=0
						;;6220	FDVL2:	DIVIDE,AR_2(AR-BR),ARX/ADX*2,J/FDVL3	;FIRST DIVIDE STEP
						;;6221		DIVIDE,AR_2(AR+BR),ARX/ADX*2		; DOES IT GENERATE A 1?
						;;6222	=00
						;;6223	FDVL3:	DISP/DIV,MQ/MQ*2,		;NO, TAKE AN EXTRA DIVIDE STEP
						;;6224			AR_2(AR+BR),ARX/ADX*2,J/DIVLP	; WITHOUT COUNTING FE
						;;6225		SR_1,SC_#+SC,#/1,J/DIV-		;YES, 27 STEPS WILL NORMALIZE QUO
						;;6226		DISP/DIV,MQ/MQ*2,AR_2(AR-BR),ARX/ADX*2,J/DIVLP
						;;6227		SR_1,SC_#+SC,#/1,J/DIV+
						;;6228	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 6
; FP.MIC[10,5351]	19:52 24-Jul-85			SINGLE FLOATING DIVIDE -- FDV, FDVR			

						;;6229	;WE COME HERE AFTER DOING THE DIVISION, EITHER 26 OR 27 STEPS
						;;6230	; AS REQUIRED TO GENERATE A NORMALIZED QUOTIENT FROM NORMALIZED
						;;6231	; OPERANDS.  NOW FIGURE OUT WHAT EXPONENT THE REMAINDER SHOULD HAVE.
						;;6232	
						;;6233	=0
						;;6234	FDVL4:	SC_EXP-#,#/27.,			;DIVIDEND EXP-27
						;;6235			AR_BR,SKP AR0,J/FDVL6	;GET REMAINDER, TEST D'END SIGN
						;;6236		SC_EXP-#,#/26.,			;D'END EXP-26
						;;6237			AR_BR,SKP AR0
						;;6238	
						;;6239	;HERE WITH REMAINDER IN AR, ITS EXP IN SC
						;;6240	; SKIP IF D'END (AND THEREFORE REM) NEGATIVE.
						;;6241	
						;;6242	=0
						;;6243	FDVL6:	EXP_SC,BYTE DISP,		;TEST FOR UNDERFLOW
						;;6244			SKP AR EQ,J/FDVL7	; OR REM =0
						;;6245		AR_-BR,SKP CRY0,		;NEGATE REM, CHECK =0
						;;6246			GEN SC,BYTE DISP	; AND LOOK FOR EXP UFLO
						;;6247	=110	EXP_-SC-1,J/FDVL7		;ONE'S COMPLEMENT EXP
						;;6248		AR_0S				;REM =0 OR EXP UFLO
						;;6249	=110
						;;6250	FDVL7:	AC1_AR,ARX+MQ_0.M,		;SAVE REMAINDER
						;;6251			AR_MQ,ARL/AD,J/SNR2	;GO NORMALIZE QUOTIENT
						;;6252		AR_0S,J/FDVL7
						; 6253	.ENDIF/FPLONG
						; 6254	
						; 6255	
						; 6256	;SUBR TO CHECK FOR FLOATING NO DIVIDE
						; 6257	; ENTER WITH SKP ON DIVIDEND SIGN, IN AR LONG, WITH
						; 6258	; DIVISOR EXP IN SC, DIVISOR IN BR
						; 6259	
						; 6260	=0
U 2162, 2170,4001,0000,5202,1000,4222,0200	; 6261	FDVCHK:	SC_EXP-SC,EXP_SIGN,SKP BR0,J/FDVCK1
U 2163, 2162,5163,7700,0000,0020,0027,0000	; 6262		AR_-AR LONG,J/FDVCHK		;GET POSITIVE DIVIDEND
						; 6263	=0
						; 6264	FDVCK1:	GEN AR-2BR,SKP CRY0,		;TEST FOR NO DIVIDE
U 2170, 0002,5101,0004,2302,0040,5403,0177	; 6265			SC_#+SC,#/177,RETURN2	;AND CORRECT EXP
						; 6266		GEN AR+2BR,SKP CRY0,		;SAME TEST, NEG DIVISOR
U 2171, 0002,0601,0000,2302,0040,5403,0177	; 6267			SC_#+SC,#/177,RETURN2	;AND SAME EXP CORRECTION
						; 6268	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 7
; FP.MIC[10,5351]	19:52 24-Jul-85			UFA, DFN, FSC						

						; 6269	.TOC	"UFA, DFN, FSC"
						; 6270	
						; 6271		.DCODE
						;;6272	.IF/FPLONG
						;;6273	130:	R,		J/UFA
						;;6274		RPW,		J/DFN
						; 6275	.IFNOT/FPLONG
D 0130, 2000,1002				; 6276	130:	EA,	J/UUO			;UFA
D 0131, 2000,1002				; 6277		EA,	J/UUO			;DFN
						; 6278	.ENDIF/FPLONG
D 0132, 0100,1502				; 6279	132:	I,	FL-AC,	J/FSC		;Must adjoin 133 (IBP/ADJBP)
						; 6280		.UCODE
						; 6281	
						;;6282	.IF/FPLONG
						;;6283	=0****00***0
						;;6284	DFN:	FE_AR0-8,AR0-8_#,#/0,		;SAVE LOW EXP, CLR SO CAN 
						;;6285			ARX_0S,J/DFN1		; DETECT FRACTION = 0
						;;6286	UFA:	FE_EXP,SC/SCAD,EXP_SIGN,ARX_0S
						;;6287	=
						;;6288	=000	BR_AR LONG,AR_AC0,CALL,J/EXPD
						;;6289	=100	ARX_AR,AR_SIGN,ARL/AD,		;READY TO UNNORMALIZE SMALLER OP
						;;6290			CALL.M,J/SHIFT
						;;6291		AR_SIGN,ARX/AD			;LOST SMALLER OP, USE ITS SIGN
						;;6292		AR_AR+BR,SKP AD NE,		;IS RESULT SIGNIFICANT?
						;;6293			SC_FE,I FETCH
						;;6294	=
						;;6295	=0	AC1_AR,J/FINI			;NO, CLEAR RESULT AC
						;;6296		SKP EXP NE,BR/AR		;IS RIGHT SHIFT REQ'D?
						;;6297	=0	SKP AR0,FETCH WAIT,J/UFA4	;NO, IS RESULT NEG?
						;;6298		AR_BR*.5,GEN FE-#,#/377,SKP SCAD NE,FETCH WAIT
						;;6299	=0	FE_-1,SET FLOV
						;;6300		FE_FE+1,SC/SCAD,SKP AR0
						;;6301	=0
						;;6302	UFA4:	AR0-8_SC,J/STAC1		;POS, PUT IN EXP STRAIGHT
						;;6303		AR0-8_-SC-1,J/STAC1		;NEG, USE COMPLEMENT OF EXP
						;;6304	
						;;6305	
						;;6306	DFN1:	AR_-AR,SKP CRY0			; LOW FRACTION =0?
						;;6307	=0	AR0-8_FE,STORE,			;STORE LOW WORD BACK TO MEM
						;;6308			ARX_AC0 COMP,J/STMAC	; GET COMPLEMENTED HIGH WORD
						;;6309		AR0-8_FE,STORE,			;LOW WORD WAS ZERO, INSTALL EXP
						;;6310			ARX_-AC0,J/STMAC	; GET NEGATED HIGH WORD
						; 6311	.ENDIF/FPLONG
						; 6312	;
						; 6313	;FSC
						; 6314	;ENTER WITH E IN AR
						; 6315	1502:					;[345] Next to IBP because of DRAM
						; 6316	FSC:	SC_EA,ARX+MQ_0.M,
U 1502, 2071,3240,2000,0002,0021,0013,0142	; 6317			AR_AC0,ARL/AD
U 2071, 1122,4001,0000,2201,1000,0022,0200	; 6318	=	FE_EXP+SC,EXP_SIGN,J/SNR2	;NORMALIZE SCALED RESULT
						; 6319	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 8
; FP.MIC[10,5351]	19:52 24-Jul-85			FIX, FIXR, FLTR, EXTEND					

						; 6320	.TOC	"FIX, FIXR, FLTR, EXTEND"
						; 6321	
						; 6322		.DCODE
D 0122, 4001,1500				; 6323	122:	R,		J/FIX		;UNROUNDED
D 0123, 4000,1501				; 6324		R,		J/EXTEND	;EXTENDED INSTRUCTION SET
						; 6325	
D 0126, 4000,1417				; 6326	126:	R,		J/FIXR		;ROUNDED
D 0127, 4100,1416				; 6327		R,	FL-AC,	J/FLTR
						; 6328		.UCODE
						; 6329	;FLTR
						; 6330	;ENTER WITH (E) IN AR
						; 6331	=0****00***0
						; 6332	FLTR:	FE_#,#/277,ARX_AR,SKP AR0,	;BINARY POINT TO RIGHT OF ARX
U 1416, 1120,5401,2400,0301,1020,4516,0277	; 6333			AR_SIGN,J/SNORM		; SIGN EXTENDED.  GO NORMALIZE
						; 6334	
						; 6335	;FIX AND FIXR
						; 6336	;ENTER WITH (E) IN AR
						; 6337	;	FIX AND FIXR DIFFER ONLY IN THE ROUNDING CRITERION:
						; 6338	;FIXR ADDS 1 TO THE INTEGER PART IF THE FRACTION PART IS ONE-HALF
						; 6339	;OR GREATER.  FIX DROPS THE FRACTION PART OF POSITIVE NUMBERS, BUT ADDS
						; 6340	;1 TO THE INTEGER PART OF NEGATIVE NUMBERS IF THE FRACTION PART IS NOT
						; 6341	;ALL ZERO.
						; 6342	;	THIS IS IMPLEMENTED BY CHOOSING A FRACTION (THE ROUNDING
						; 6343	;CONSTANT) TO ADD TO THE INPUT, SUCH THAT A CARRY WILL OCCUR INTO THE
						; 6344	;INTEGER PART UNDER THE APPROPRIATE CONDITIONS.  FOR FIXR, THE ROUNDING
						; 6345	;CONSTANT IS EXACTLY ONE-HALF.  FOR FIX, IT IS ZERO ON POSITIVE INPUT,
						; 6346	;OR THE LARGEST POSSIBLE FRACTION (ALL 1S) ON NEGATIVE INPUT.
						; 6347	
						; 6348	=0****00****
						; 6349	FIXR:	FE_EXP-#,#/244,SKP SCAD0,	;GET BINARY POINT POSITION
U 1417, 2172,4061,0700,5231,0020,5110,0244	; 6350			ARX_1B1,J/FIX1		;GET ROUNDING CONSTANT
						; 6351	=
						; 6352	=0****00***0
						; 6353	FIX:	FE_EXP-#,#/244,SKP SCAD0,	;GET BINARY POINT POSITION
U 1500, 2172,5401,0200,5231,0020,5116,0244	; 6354			ARX_AR SIGN,J/FIX1	;SET ROUNDING CONSTANT, GO FIX
						; 6355	
						; 6356	.IF/EXTEND
						;;6357	.IFNOT/XADDR
						;;6358	.IF/MODEL.B				;[246]
						;;6359	EXTEND:	FE_#+AR0-8,#/-32,SKP SCAD0,	;VALID EXTENDED OPERATION?
						;;6360			ARX_AR,AR_BRX,J/EXT1	; OPR TO ARX, AC TO AR
						;;6361	.IFNOT/MODEL.B
						;;6362	EXTEND:	FE_#+AR0-8,#/-20,SKP SCAD0,	;[246] VALID EXTENDED OPERATION?
						;;6363			ARX_AR,AR_BRX,J/EXT1	;[246] OPR TO ARX, AC TO AR
						;;6364	.ENDIF/MODEL.B				;[246]
						; 6365	.IF/XADDR
						; 6366	EXTEND:	SC_#+AR0-8,#/-32,SKP SCAD0,	;VALID EXTENDED OPERATION?
U 1501, 2700,3202,2400,2322,1020,5110,0746	; 6367			ARX_AR,AR_BR,J/EXTF1	; OPR TO ARX, AC TO AR
						; 6368	.ENDIF/XADDR
						;;6369	.IFNOT/EXTEND
						;;6370	EXTEND:	AR_BR,J/UUO
						; 6371	.ENDIF/EXTEND
						; 6372	=
						; 6373	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 9
; FP.MIC[10,5351]	19:52 24-Jul-85			FIX, FIXR, FLTR, EXTEND					

						; 6374	;HERE FOR FIX.  CONVERT FLOATING TO INTEGER
						; 6375	
						; 6376	=0
U 2172, 0066,4001,0000,0000,0000,1110,0420	; 6377	FIX1:	SET AROV,J/IFNOP		;CAN'T DO IT, GIVE UP
U 2173, 2074,3721,0540,0000,0000,0410,0000	; 6378		BR/AR,CLR AR,ARX_ARX*2		;ROUNDING CONSTANT READY IN ARX
						; 6379		BR_AR LONG,AR_BR,CLR ARX,	;MANTISSA TO AR LONG
U 2074, 2076,3202,2060,0302,0000,0510,0011	; 6380			SC_#,#/9.		;READY TO SHIFT OFF EXPONENT
						; 6381		ARX_SHIFT,AR_SIGN,		;MANTISSA LEFT ALIGNED IN ARX
U 2076, 2200,5401,2400,2032,0020,5116,0044	; 6382			SC_FE+#,#/36.,SKP SCAD0	;ANY INTEGER BITS?
						; 6383	=0	MQ_SHIFT,			;YES, PUT THEM IN MQ
						; 6384			AR_ARX (ADX),CLR ARX,	;SHIFT MANTISSA LEFT 36 PLACES
U 2200, 2106,3701,6010,0000,0217,0510,0000	; 6385			I FETCH,J/FIX2		;AND PREFETCH NEXT
U 2201, 0072,3401,2000,0000,0217,0010,0000	; 6386		AR_0S,I FETCH,J/STORAC		;ALL SIGNIFICANCE LOST
U 2106, 2112,3723,2400,0000,0000,0010,0000	; 6387	FIX2:	ARX_SHIFT,AR_MQ			;INTEGER IN AR, FRACTION IN ARX
U 2112, 0065,0602,2000,0000,0020,0027,0000	; 6388		AR_AR+BR,AD LONG,J/STAC		;ROUND AND STORE
						; 6389	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 10
; FP.MIC[10,5351]	19:52 24-Jul-85			SINGLE PRECISION FLOATING NORMALIZATION			

						; 6390	.TOC	"SINGLE PRECISION FLOATING NORMALIZATION"
						; 6391	
						; 6392	;HERE TO NORMALIZE SINGLE PRECISION RESULTS
						; 6393	;SR2-3 TELL HOW TO STORE RESULTS:
						; 6394	;XX00 ... ROUND, SINGLE PRECISION
						; 6395	;XX01 ... TRUNCATE, SINGLE PRECISION
						; 6396	;XX10 ... LONG MODE (IMPLIES TRUNCATION)
						; 6397	;IN ADDITION, THIS CODE SETS SR 1 IF ANSWER IS NEGATIVE, SO X1YZ
						; 6398	; CORRESPONDS TO X0YZ EXCEPT THAT THE RESULT MUST BE NEGATED.
						; 6399	
						; 6400	;DISPATCH TO SNORM WITH "DISP/NORM,AR/AD*.25"
						; 6401	; THUS THE 8 POSSIBILITIES ARE:
						; 6402	;SNORM		AD=0	AR=0	EITHER ANSWER IS ZERO, OR MSB IS IN ARX
						; 6403	;SNORM+1	AD0	AR NEG	RESULT IS NEG.  MAKE POS, TRY AGAIN
						; 6404	;SNORM+2	AD1-6	AR3-8	MSB TOO FAR LEFT, SHIFT RIGHT & RETRY
						; 6405	;SNORM+3	AD7	AR9	RESULT IS CORRECTLY NORMALIZED
						; 6406	;SNORM+4	AD8	AR10	SHIFT LEFT ONCE FOR NORMALIZATION
						; 6407	;SNORM+5	AD9	AR11	SHIFT LEFT 2 PLACES
						; 6408	;SNORM+6	AD10	AR12	SHIFT LEFT THRICE
						; 6409	;SNORM+7	AD11-35	AR13-35	SHIFT LEFT A LOT, TRY AGAIN
						; 6410	
						; 6411	=000
						; 6412	SNORM:	AR_ARX,ARL/SH,SKP ARX NE,	;AR IS ZERO, GET ARX
U 1120, 2204,3713,4000,0000,2041,5410,0044	; 6413			ARX_0.M,J/SNZERO
U 1121, 1120,5143,7700,0000,0060,1635,0064	; 6414		NORM -AR,SET SR1,J/SNORM	;REMEMBER NEGATIVE, GO POSITIVE
						; 6415	SNR2:	AR_AR*.25 LONG,FE_FE+#,#/2,	;SHIFT RIGHT,
U 1122, 1120,3701,7700,2031,0040,0035,0002	; 6416			NORM,J/SNORM		;TRY AGAIN
U 1123, 0024,0001,0000,0000,0000,0005,0000	; 6417		SR DISP,J/SROUND		;AD7 -> AR9, IS ROUND REQ'D?
						; 6418		AR_AR*2 LONG,FE_FE-1,		;AD8 -> AR10, ONCE LEFT AND DONE
U 1124, 0024,3701,5500,3001,0000,0005,0000	; 6419			SR DISP,J/SROUND
						; 6420		AR_AR*4 LONG,FE_FE-#,#/2,	;AD9 -> AR11
U 1125, 0024,3243,2600,5031,0000,0005,0002	; 6421			SR DISP,J/SROUND
						; 6422		AR_AR*8 LONG,FE_FE-#,#/3,	;AD10 -> AR12
U 1126, 0024,3243,5500,5031,0000,0005,0003	; 6423			SR DISP,J/SROUND
						;;6424	.IFNOT/SNORM.OPT
						;;6425		SKP AR NE,INH CRY18,SC_#,#/7	;LOOK FOR AR13-17
						;;6426	=0	SC_#,#/13.			;LH IS 0.  SHIFT FARTHER
						;;6427		MQ_SHIFT,AR_ARX (ADX),CLR ARX,	;HIGH TO MQ, GET READY FOR LOW
						;;6428			FE_FE-SC		; ADJUST EXPONENT
						;;6429		ARX_SHIFT,AR_MQ,J/SNR2		;FRACTION REPOSITIONED. GO AGAIN
						;;6430	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 11
; FP.MIC[10,5351]	19:52 24-Jul-85			SINGLE PRECISION FLOATING NORMALIZATION			

						;;6431	;HERE IS THE FASTER VERSION OF LONG NORMALIZATION SHIFTS,
						;;6432	; WHICH TAKES FOUR WORDS MORE BUT IS A BIT QUICKER IN THE
						;;6433	; INTERMEDIATE NORMALIZATION CASES.
						;;6434	
						; 6435	.IF/SNORM.OPT
						; 6436		ADA EN/0S,ADB/AR*4,AD/ANDCA,	;GENERATE AR*4
						; 6437			AR/AD*2,ARX/ADX*2,	; AR_AR*8 LONG
						; 6438			SC_#,#/12.,		;READY TO SHIFT FARTHER
U 1127, 2202,3043,5500,0302,0020,5417,0014	; 6439			GEN CRY18,SKP CRY0	; TEST AR0-19 FOR ZERO
						; 6440	
						; 6441	=0	AR_AR*8 LONG,BR_AR LONG,	;IT WAS IN AR13-19
U 2202, 1144,3203,5560,5031,0040,0035,0006	; 6442			FE_FE-#,#/6,NORM,J/SN1	; NOW IN AR10-16, AD8-14
						; 6443		MQ_SHIFT,AR_ARX (ADX),		;13-19=0, SHIFT TO TRY 20-35
U 2203, 2116,3721,6010,0302,0000,0510,0012	; 6444			CLR ARX,SC_#,#/10.
						; 6445		ARX_SHIFT,AR_MQ*.25,		;REPOSITION FRACTION IN AR LONG
						; 6446			FE_FE-#,#/13.,		;COMPENSATE EXPONENT
U 2116, 1120,3721,7400,5031,0040,0035,0015	; 6447			NORM,J/SNORM
						; 6448	=100
						; 6449	SN1:	AR_BR*2 LONG,FE_FE+#,#/2,	;MSB IN AD8, SO IN BR10
U 1144, 0024,3241,2600,2031,0000,0005,0002	; 6450			SR DISP,J/SROUND
						; 6451		AR_BR*4 LONG,FE_FE+1,		;MSB IN AD9, THUS IN BR11
U 1145, 0024,3241,5500,4001,0000,0005,0000	; 6452			SR DISP,J/SROUND
U 1146, 0024,0001,0000,0000,0000,0005,0000	; 6453		SR DISP,J/SROUND		;AD10 -> AR9, A LUCKY GUESS
						; 6454		AR_AR*8 LONG,BR_AR LONG,	;TRY SHIFTING 3 MORE
U 1147, 1144,3203,5560,5031,0040,0035,0003	; 6455			FE_FE-#,#/3,NORM,J/SN1
						; 6456	.ENDIF/SNORM.OPT
						; 6457	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 12
; FP.MIC[10,5351]	19:52 24-Jul-85			SINGLE PRECISION FLOATING NORMALIZATION			

						; 6458	;HERE WHEN AD ENTIRELY ZERO ON NORMALIZE ATTEMPT.  SKIP IF ARX
						; 6459	; IS NOT ZERO, HAVING COPIED IT TO AR (IE, LEFT SHIFT 36 PLACES).
						; 6460	; OTHERWISE, THE ENTIRE RESULT IS ZERO, SO WE STORE THAT.
						; 6461	=0
						; 6462	SNZERO:	CLR FE,AR+ARX+MQ_0.M,		;RESULT = 0
U 2204, 0151,4001,0000,0401,0001,0005,0170	; 6463			SR DISP,J/SRND5
						; 6464		AR_AR*.25 LONG,FE_FE-#,#/34.,	;HAVE MOVED LEFT 36, GO RIGHT 2
U 2205, 1120,3701,7700,5031,0040,0035,0042	; 6465			NORM,J/SNORM		;AND TRY THAT
						; 6466	
						; 6467	
						; 6468	;WE GET HERE WITH A NORMALIZED POSITIVE FRACTION IN AR'ARX,
						; 6469	; THE CORRECTED EXPONENT IN FE, AND SR INDICATES THE PROPER SIGN
						; 6470	; FOR THE RESULT AND WHETHER THE ANSWER SHOULD BE ROUNDED,
						; 6471	; TRUNCATED, OR LONG.
						; 6472	
						;;6473	.IF/FPLONG
						;;6474	=100
						; 6475	.IFNOT/FPLONG
						; 6476	=1*0
						; 6477	.ENDIF/FPLONG
U 0024, 0035,3441,2060,0000,0000,0010,0000	; 6478	SROUND:	BR_AR LONG,AR_0S,J/SRND2	;PREPARE TO ROUND BY ADDING THE
						; 6479						; PART OF THE FRACTION WE WILL
						; 6480						; DISCARD (CARRY IF ARX0)
						; 6481		BR_AR LONG,CLR AR,ARX_1S,	;TRUNCATE MODE
U 0025, 0031,2301,0260,0000,0000,0405,0000	; 6482			SR DISP,J/STRNC		; HANDLING DEPENDS ON SIGN
						;;6483	.IF/FPLONG
						;;6484		BR_AR LONG,CLR AR,ARX_1S,	;LONG MODE
						;;6485			SC_#,#/9.
						;;6486	=	ARX_SHIFT,SR DISP		;MASK = 0,,000777 TO ARX
						;;6487	=01*
						;;6488		BR_AR LONG,AR_BR LONG,J/SRND4	;POS, TRUNCATE BY ANDING
						;;6489		AR_AR+BR,ARX/ADX,BR_AR LONG,	;NEG, MUST DIDDLE
						;;6490			NORM,J/SRND3		; NORM FORCES LONG ARITH
						; 6491	.ENDIF/FPLONG
						; 6492	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 13
; FP.MIC[10,5351]	19:52 24-Jul-85			SINGLE PRECISION FLOATING NORMALIZATION			

						; 6493	;HERE TO PERFORM ROUNDING OR TRUNCATION OF SINGLE-PRECISION RESULTS,
						; 6494	; AND CHECK FOR CARRY INTO EXPONENT FIELD REQUIRING RENORMALIZATION
						; 6495	
						; 6496	=0*1
U 0031, 0135,3202,2000,0000,0000,0510,0000	; 6497	STRNC:	AR_BR,CLR ARX,J/SRND4		;POS TRUNCATE, GO STUFF IN EXP
U 0035, 0134,0602,2004,0000,0060,0535,0000	; 6498	SRND2:	AR_AR+BR,NORM,CLR ARX		;NORM FORCES LONG ARITH
						; 6499						; SO THIS ADDS ARX TO BR'BRX
						; 6500	=1*0
U 0134, 0135,0301,7000,4001,0020,0010,0000	; 6501	SRND3:	AR_AR*.5,FE_FE+1		;RENORMALIZE
						; 6502	SRND4:	EXP_FE TST,SR DISP,		;STUFF EXP, CHECK NEG OR LONG
U 0135, 0151,3502,0600,0000,2000,0705,0410	; 6503			ARX_ARX*BRX,AD/ANDCB	;CLEAR TRUNCATED FRACTION
						; 6504	
						; 6505	;HERE TO STORE RESULT AS A FUNCTION OF SINGLE OR LONG PRECISION
						; 6506	; AND POSITIVE OR NEGATIVE...
						;;6507	.IF/FPLONG
						;;6508	=001
						; 6509	.IFNOT/FPLONG
						; 6510	=0*1
						; 6511	.ENDIF/FPLONG
U 0151, 0066,4001,0000,0000,0005,1633,0000	; 6512	SRND5:	SR_0,B WRITE,J/ST6		;POS & NOT LONG
						;;6513	.IF/FPLONG
						;;6514	SLNG3:	AC0_AR,AR_0S,SC_#,#/27.,J/SLNG4	;STORE HIGH PART OF LONG ANS
						; 6515	.ENDIF/FPLONG
U 0155, 0066,5143,7000,0000,0025,1633,0000	; 6516		AR_-AR,SR_0,B WRITE,J/ST6	;NEG & NOT LONG
						;;6517	.IF/FPLONG
						;;6518		AR_-AR LONG,J/SLNG3		;LONG NEG, MAKE IT SO
						;;6519	
						;;6520	SLNG4:	AR_SHIFT,I FETCH
						;;6521		AR0-8_FE-SC,BYTE DISP,		;TEST FOR EXP UNDERFLOW
						;;6522			SKP AR EQ		; OR LOW WORD ZERO
						;;6523	
						;;6524	=110
						; 6525	.ENDIF/FPLONG
U 2124, 0136,4001,0000,0000,0000,1610,0000	; 6526	STRAC1:	SR_0,J/STAC1			;PUT AWAY LOW WORD OF LONG RESULT
						;;6527	.IF/FPLONG
						;;6528		AR_0S,SR_0,J/STAC1		;CLEAR LOW WORD IN AC1
						; 6529	.ENDIF/FPLONG
						; 6530	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 14
; FP.MIC[10,5351]	19:52 24-Jul-85			DOUBLE FLOATING ARITHMETIC -- DFAD, DFSB, DFMP, DFDV

						; 6531	.TOC	"DOUBLE FLOATING ARITHMETIC -- DFAD, DFSB, DFMP, DFDV"
						; 6532	
						; 6533		.DCODE
D 0110, 4001,0301				; 6534	110:	R,	B/0,	J/DFLOAT	;DFAD
D 0111, 4200,0301				; 6535		R,	B/2,	J/DFLOAT	;DFSB
D 0112, 4400,0301				; 6536		R,	B/4,	J/DFLOAT	;DFMP
D 0113, 4601,0301				; 6537		R,	B/6,	J/DFLOAT	;DFDV
						; 6538		.UCODE
						; 6539	
						; 6540	=0****00**0*
						; 6541	DFLOAT:	FE_EXP,EXP_SIGN,SC/SCAD,MQ_0.S,
						; 6542			VMA_VMA+1,LOAD ARX,
U 0301, 0770,0001,0000,0203,1013,3662,0300	; 6543			CALL.S,J/XFERW		;GET LOW WORD
U 0303, 0570,3701,0500,0000,0000,0033,0000	; 6544		ARX_ARX*2,B DISP		;LOW BIT 0 IGNORED
						; 6545	=
						; 6546	=00*
U 0570, 0430,3200,5061,0000,0020,0010,0000	; 6547	DFAS:	BR_AR LONG,AR_AC1*2,J/DFAS1	;MEM OP READY, GET AC OP
						; 6548	
U 0572, 0570,5163,7700,0000,0020,0027,0000	; 6549		AR_-AR LONG,J/DFAS		;DFSB, NEGATE AND ADD
						; 6550	
						; 6551	.IF/MODEL.B
						; 6552		BR_AR LONG,GEN ARX,SKP AD NE,	;[241]HERE FOR DOUBLE FLT MUL
U 0574, 2230,3711,0060,0301,0020,5610,0756	; 6553			FE_#,#/-18.,J/DFMP	;[241]BEGIN TEST FOR STICKY BIT
						;;6554	.IFNOT/MODEL.B
						;;6555		AR_AC1,BR_AR LONG,		;HERE FOR DBL FLOATING MUL
						;;6556			FE_#,#/-18.,J/DFMP
						; 6557	.ENDIF/MODEL.B
						; 6558	
						; 6559		GEN AR*AC0,AD/XOR,SKP AD0,	;DFDV.  WILL QUO BE NEG?
						; 6560			BR_AR LONG,		;SAVE D'SOR IN BR, BRX
U 0576, 1220,3100,0060,3002,0020,5510,0000	; 6561			SC_FE-1,J/DFDV
						; 6562	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 15
; FP.MIC[10,5351]	19:52 24-Jul-85			DOUBLE FLOATING ARITHMETIC -- DFAD, DFSB, DFMP, DFDV

						; 6563	;HERE FOR DFAD AND DFSB
						; 6564	; MEM OPERAND IS IN BR (NEGATED IF DFSB)
						; 6565	; FE AND SC HAVE ITS EXPONENT
						; 6566	
						; 6567	=0*0
U 0430, 2216,3240,2400,0000,1020,0050,0000	; 6568	DFAS1:	ARX_AR,AR_AC0,CALL,J/EXPD	;AC OPERAND IN PLACE
						; 6569	=1*0
						; 6570	DFAS2:	ARX_AR,AR_SIGN,			;GET SHIFTED HIGH WORD
						; 6571			GEN #+SC,#/-36.,	;IS ANY SHIFT REQUIRED?
U 0434, 2212,5401,2400,2300,1020,5116,0734	; 6572			SKP SCAD0,J/DFAS3
						; 6573		ARX_AR,AR_SIGN,			;DIFF IS > 36
U 0435, 2210,5401,2400,2302,1020,5116,0044	; 6574			SC_#+SC,#/36.,SKP SCAD0	;CHECK FOR >72
						; 6575	.IF/MODEL.B
						; 6576	=0	AC0_AR,MQ_SHIFT,AR_ARX (ADX),
U 2210, 2154,3721,6310,0000,0000,1010,0000	; 6577			ARX/MQ,J/DFAS6		;[241]36 < DIFF < 72
						;;6578	.IFNOT/MODEL.B
						;;6579	=0	AC0_AR,MQ_SHIFT,AR_ARX (ADX),
						;;6580			ARX/MQ,J/DFAS4		;36 < DIFF < 72
						; 6581	.ENDIF/MODEL.B
						; 6582		AR_BR,ARL/AD,ARX_BRX,		;DIFF >72
U 2211, 1166,3202,2600,0000,0001,0010,0102	; 6583			MQ_0.M,J/DNTRY		;NORMALIZE LARGER OP
						; 6584	=0
						; 6585	DFAS3:	AR_ARX,ARL/SH,ARX/MQ,		;NO SHIFT REQUIRED
U 2212, 2146,4001,4300,0000,2001,0010,0104	; 6586			MQ_0.M,J/DFAS5
U 2213, 2126,4001,4000,0000,0000,0010,0000	; 6587		AR_SHIFT			;BEGIN SHIFTING SMALLER OP
U 2126, 2136,0001,4300,0000,2000,1010,0000	; 6588		AC0_AR,AR_ARX,ARX/MQ		;HI PART TO AC
						; 6589		MQ_SHIFT,AR_ARX (ADX),		;MID PART TO MQ
U 2136, 2144,3721,6010,0000,0000,0510,0000	; 6590			CLR ARX			;SHIFT ZEROS IN FROM RIGHT
U 2144, 2146,3240,2310,0000,0020,0010,0000	; 6591	DFAS4:	MQ_SHIFT,ARX/MQ,AR_AC0		;ALL PIECES NOW IN PLACE
						; 6592	DFAS5:	AR_AR+BR,ARX/ADX,SC_#,#/4,	;HERE WHEN OPERANDS ALIGNED
U 2146, 1240,0602,2600,0302,0060,0035,0004	; 6593			NORM,J/DNORM		;ADD, AND NORMALIZE RESULT
						; 6594	.IF/MODEL.B
U 2154, 2156,3723,2010,0000,0000,0010,0000	; 6595	DFAS6:	MQ_SHIFT,AR_MQ			;[241]GET H,L, PUT S,H IN AR
U 2156, 2174,3441,4201,0000,2000,1010,0000	; 6596		AC1_AR,AR_ARX,ARX_0S		;[241]STORE S,H
U 2174, 2206,3240,4201,0000,0020,0010,0000	; 6597		ARX_AC1,AR_SHIFT		;[241]GET L,0, GET S,H BACK
U 2206, 2214,3703,0000,0000,0020,5610,0000	; 6598		GEN AR,SKP AD NE		;[241]TEST FOR 0'S,
U 2214, 2146,3200,2000,0000,0020,1610,0040	; 6599	=0	CLR SR3,AR_AC0,J/DFAS5		;[241]DO 2'S COMP, ALL IN PLACE
U 2215, 2146,3200,2000,0000,0020,1610,0061	; 6600		SET SR3,AR_AC0,J/DFAS5		;[241]DO 1'S COMP, ALL IN PLACE
						; 6601	.ENDIF/MODEL.B
						; 6602	
						; 6603	;SUBROUTINE TO CHOOSE OPERAND WITH SMALLER EXPONENT, AND
						; 6604	; PREPARE FOR SHIFTING IT.
						; 6605	; ENTER WITH ONE OPERAND FRACTION IN BR, ITS EXPONENT IN FE & SC,
						; 6606	; THE OTHER OP IN AR WITH ITS EXPONENT IN AR0-8
						; 6607	; RETURN THE LARGER EXPONENT IN FE, AND 36-(MAGNITUDE OF DIFFERENCE)
						; 6608	; IN SC.  RETURN 4 IF SC POSITIVE, 5 IF NEGATIVE.
						; 6609	
U 2216, 2222,0001,0000,5202,1020,5122,0200	; 6610	EXPD:	SC_EXP-SC,EXP_SIGN,SKP SCAD0	;COMPARE MAGNITUDES
						; 6611	=0	AR_BR,ARX_BRX,BR/AR,BRX/ARX,	;AC OP IS LARGER MAGNITUDE
U 2222, 2227,3242,2660,2001,0000,0010,0000	; 6612			FE_FE+SC,J/EXPD1	;ITS EXP TO FE
						; 6613		MQ_ARX,SC_#+SC,#/36.,		;CHECK FOR EXP DIFF > 36
U 2223, 0004,4001,0010,2302,2020,5103,0044	; 6614			SKP SCAD0,RETURN4
						; 6615	EXPD1:	MQ_ARX,SC_#-SC,#/36.,		;AC EXP .GE. MEM
U 2227, 0004,0001,0010,5302,2020,5103,0044	; 6616			SKP SCAD0,RETURN4	;SHIFT MEM OP
						; 6617	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 16
; FP.MIC[10,5351]	19:52 24-Jul-85			DOUBLE FLOATING ARITHMETIC -- DFAD, DFSB, DFMP, DFDV

						; 6618	;DFMP
						; 6619	; DO TESTS FOR STICKY BITS FIRST THEN
						; 6620	; GET HERE WITH MEM OPERAND (M'CAND) IN BR!BRX
						; 6621	; AR HAS (AC1), LOW HALF OF M'IER
						; 6622	
						; 6623	.IF/MODEL.B
						; 6624	=0
U 2230, 0640,3240,2001,0000,0020,0010,0000	; 6625	DFMP:	AR_AC1,J/DFMP1			;NO STICKY BIT
U 2231, 2232,3240,2001,0000,0020,5610,0000	; 6626		AR_AC1,SKP AD NE		;GET AC LOW AND TEST
U 2232, 0640,0001,0000,0000,0000,0010,0000	; 6627	=0	J/DFMP1				;NO STICKY BIT
U 2233, 0640,0001,0000,0000,0000,1610,0061	; 6628		SET SR3				;WORRY ABOUT IT IN NORM
						; 6629	=00*
						; 6630	DFMP1:	MQ_AR,AR_0S,ARX_0S,		;SETUP LOW M'IER
						; 6631			SC_#+SC,#/-200,		;CORRECT EXPONENT
U 0640, 1542,3401,2210,2302,1000,0050,0600	; 6632			CALL,J/MULREE		;MULTIPLY BY THE LOW PART
						;;6633	.IFNOT/MODEL.B
						;;6634	=00*
						;;6635	DFMP:	MQ_AR,AR_0S,ARX_0S,		;SETUP LOW M'IER
						;;6636			SC_#+SC,#/-200,		;CORRECT EXPONENT
						;;6637			CALL,J/MULREE		;MULTIPLY BY THE LOW PART
						; 6638	.ENDIF/MODEL.B
U 0644, 0646,0602,2604,0000,0020,0027,0000	; 6639	=10*	AR_AR+BR LONG			;OOPS, LOW SIGN WAS SET
U 0646, 2243,3240,2010,0301,1020,0010,0762	; 6640		MQ_AR,AR_AC0,FE_#,#/-14.	;READY TO CONTINUE WITH HIGH PART
						; 6641	
						; 6642	;HERE TO USE HIGH MULTIPLIER
						; 6643	
						; 6644		SC_EXP+SC,EXP_SIGN.M,		;EXTRACT EXP FROM HIGH WORD
U 2243, 1162,4001,0000,2202,1001,4510,0200	; 6645			SKP AR0			;CHECK FOR NEG M'IER
						; 6646	=010
U 1162, 1542,3721,2010,0000,1000,0050,0000	; 6647	DFMP2:	MQ_AR,AR_MQ,CALL,J/MULREE	;GO BACK IN FOR HIGH PART
U 1163, 1162,4001,0000,4400,2001,0010,0200	; 6648		EXP_1,J/DFMP2			;OOPS, NEG, MOVE SIGN TO BIT 8
						; 6649	=110
U 1166, 1240,3703,0000,0302,0040,0035,0004	; 6650	DNTRY:	SC_#,#/4,GEN AR,NORM,J/DNORM	;NORMALIZE THE ANSWER
						; 6651	=
						; 6652	
						; 6653	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 17
; FP.MIC[10,5351]	19:52 24-Jul-85			DOUBLE FLOATING ARITHMETIC -- DFAD, DFSB, DFMP, DFDV

						; 6654	
						; 6655	;DFDV
						; 6656	; GET HERE WITH DIVISOR IN BR!BRX, ITS EXP-1 IN SC
						; 6657	; SKIP IF D'SOR AND D'END SIGNS DIFFER
						; 6658	
						; 6659	=000
U 1220, 0340,3240,5001,0000,0020,0050,0000	; 6660	DFDV:	AR_AC1*2,CALL,J/DFDV1		;GET LOW D'END, GO START DIVIDE
						; 6661	.IF/MODEL.B
U 1221, 0340,3240,5001,0000,0020,1650,0062	; 6662		SET SR2,AR_AC1*2,CALL,J/DFDV1	;NOTE NEG QUO
						;;6663	.IFNOT/MODEL.B
						;;6664		SR_1,AR_AC1*2,CALL,J/DFDV1	;NOTE NEG QUO
						; 6665	.ENDIF/MODEL.B
						; 6666	
						; 6667	=011	AC1_AR,AR_MQ,ARL/AD,FE_FE+1,	;HERE FROM DDVSUB. NEW STEP CNT
U 1223, 0543,3723,2001,4001,0001,1050,0102	; 6668			MQ_0.M,CALL.M,J/DIV+	; SAVE HIGH QUO, RESUME
						; 6669	=101	AC1_AR,AR_MQ,ARL/AD,FE_FE+1,
U 1225, 0542,3721,2001,4001,0001,1050,0102	; 6670			MQ_0.M,CALL.M,J/DIV-
						; 6671	
						; 6672	=111	AR_AC1,ARX/MQ,SC_#,#/4,		;POSITIVE QUOTIENT TO AR LONG
U 1227, 1240,3200,2301,0302,0040,0035,0004	; 6673			NORM,J/DNORM		;NORMALIZE AND ROUND
						; 6674	
						; 6675	=00
						; 6676	DFDV1:	ARX_AR,AR_AC0,SKP AD0,		;TEST DIVIDEND SIGN
						; 6677			FE_#,#/26.,		;SETUP COUNT FOR HIGH QUO
U 0340, 2162,3240,2400,0301,1020,5550,0032	; 6678			CALL,J/FDVCHK		;GO CHECK DIVIDABILITY
U 0342, 0722,0001,0000,0000,0000,4210,0000	; 6679	=10	SKP BR0,J/DDVSUB		;BEGIN DIVISION (RETURN ABOVE)
U 0343, 0066,4001,0000,0000,0000,1110,0624	; 6680		SET FL NO DIV,J/IFNOP		;ABORT THE DIVISION
						; 6681	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 18
; FP.MIC[10,5351]	19:52 24-Jul-85			DOUBLE PRECISION NORMALIZATION				

						; 6682	.TOC	"DOUBLE PRECISION NORMALIZATION"
						; 6683	
						; 6684	=000
U 1240, 2250,3721,0000,0302,0040,5427,0043	; 6685	DNORM:	SKP ARX+MQ NE,SC_#,#/35.,J/DNZERO	;AR=0
						; 6686	.IF/MODEL.B
						; 6687		BR/AR,BRX/ARX,AR_MQ COMP,	;RESULT NEG, MAKE POS
U 1241, 2274,2021,2060,0000,0000,1610,0062	; 6688			SET SR2,J/DNNEG		;[241]FLAG NEGATIVE
						;;6689	.IFNOT/MODEL.B
						;;6690		BR/AR,BRX/ARX,AR_MQ COMP,	;RESULT NEG, MAKE POS
						;;6691			SR_1,J/DNNEG		;FLAG NEGATIVE
						; 6692	.ENDIF/MODEL.B
						; 6693		AR_AR*.25 LONG,MQ_MQ*.25,
U 1242, 2276,3701,7710,2031,0000,0012,0004	; 6694			FE_FE+#,#/4,J/DNHI	;MSB IN AR 1-6
						; 6695		AR_AR*.25 LONG,
U 1243, 1245,3701,7700,2031,0000,0010,0002	; 6696			FE_FE+#,#/2,J/DROUND	;MSB IN AR7
U 1244, 1245,0301,7700,4001,0020,0027,0000	; 6697		AR_AR*.5 LONG,FE_FE+1		;MSB IN AR8
						; 6698	DROUND:	AR_AR+1,ARX/ADX,NORM,		;MSB IS AR9, RIGHT ON
U 1245, 1046,4001,2600,0302,0060,0035,0043	; 6699			SC_#,#/35.,J/DRND1
U 1246, 1245,3701,5500,3001,0000,0710,0001	; 6700		(AR+ARX+MQ)*2,FE_FE-1,J/DROUND	;MSB IN AR10
U 1247, 2244,4001,4000,5001,0000,0010,0000	; 6701		AR_SHIFT,FE_FE-SC		;SOMEWHERE IN AR 11-35
						; 6702	
U 2244, 2254,4001,4340,0000,2000,0010,0000	; 6703	DNSHFT:	BR/AR,AR_ARX,ARX/MQ		;SHIFT THE WHOLE THING
U 2254, 2256,3721,6010,0000,0000,0510,0000	; 6704		MQ_SHIFT,AR_ARX (ADX),CLR ARX
						; 6705		MQ_SHIFT,ARX/MQ,AR_BR,SC_#,#/10.,
U 2256, 1240,3202,2310,0302,0040,0035,0012	; 6706			NORM,J/DNORM		;GIVE IT ANOTHER GO
						; 6707	
						; 6708	.IF/MODEL.B
U 2274, 0556,0001,0000,0000,0000,0005,0000	; 6709	DNNEG:	SR DISP				;[241]TEST FOR 1'S COMP
U 0556, 2234,4001,2000,0000,0040,5410,0000	; 6710	=1110	AR_AR+1,SKP CRY0,J/DNNEG1	;[241]COMPLETE NEGATION OF MQ
						; 6711		MQ_AR,AR_BR COMP,ARX_BRX COMP,
U 0557, 1240,2502,2610,0000,1040,0035,0000	; 6712			NORM,J/DNORM		;NORMALIZE THE POS FORM
						; 6713	=0
						; 6714	DNNEG1:	MQ_AR,AR_BR COMP,ARX_BRX COMP,
U 2234, 1240,2502,2610,0000,1040,0035,0000	; 6715			NORM,J/DNORM		;NORMALIZE THE POS FORM
U 2235, 1240,5142,2610,0000,1060,0035,0000	; 6716		MQ_AR,AR_-BR,ARX/ADX,NORM,J/DNORM
						;;6717	.IFNOT/MODEL.B
						;;6718	DNNEG:	AR_AR+1,SKP CRY0		;COMPLETE NEGATION OF MQ
						;;6719	=0	MQ_AR,AR_BR COMP,ARX_BRX COMP,
						;;6720			NORM,J/DNORM		;NORMALIZE THE POS FORM
						;;6721		MQ_AR,AR_-BR,ARX/ADX,NORM,J/DNORM
						; 6722	.ENDIF/MODEL.B
						; 6723	
U 2276, 1166,3703,7710,0000,0000,0710,0001	; 6724	DNHI:	(AR+ARX+MQ)*.25,J/DNTRY		;GO TRY AGAIN
						; 6725	
						; 6726	=0
U 2250, 0244,3401,2200,0000,0000,1610,0000	; 6727	DNZERO:	SR_0,AR_0S,ARX_0S,J/DBLST	;RESULT = 0, STORE THAT
U 2251, 2244,4001,4000,5001,0000,0010,0000	; 6728		AR_SHIFT,FE_FE-SC,J/DNSHFT	;NOT ZERO, SHIFT AND TRY AGAIN
						; 6729	
						; 6730	=110
U 1046, 1047,0301,7700,4001,0020,0027,0000	; 6731	DRND1:	AR_AR*.5 LONG,FE_FE+1		;ROUNDING BLEW THE NORM, GO RIGHT
						; 6732		EXP_FE TST,SR DISP,CLR MQ,	;STUFF EXP IN, CHECK RESULT SIGN
U 1047, 0575,4041,0220,0000,2020,0705,0413	; 6733			BRX/ARX,ARX_1		;READY IF NEGATION NECESSARY
						; 6734	
						; 6735	.IF/MODEL.B
						; 6736	=1101					;[241]
						;;6737	.IFNOT/MODEL.B
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 18-1
; FP.MIC[10,5351]	19:52 24-Jul-85			DOUBLE PRECISION NORMALIZATION				

						;;6738	=0
						; 6739	.ENDIF/MODEL.B
						; 6740		AC0_AR,AR_SHIFT,ARX_BRX,	;STORE HIGH WORD, READY LOW
U 0575, 0241,3202,4600,0000,0217,1010,0000	; 6741			I FETCH,J/STD1
U 0577, 2312,3002,0604,0000,0000,1610,0000	; 6742		ARX_ARX*BRX,AD/ANDCA,SR_0	;CLEAR ROUNDING BIT
U 2312, 0244,5163,7700,0000,0020,0027,0000	; 6743	CDBLST:	AR_-AR LONG,J/DBLST		;[345] NEGATE RESULT AND STORE
						; 6744	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 1
; EXTEXP.MIC[10,5351]	19:52 24-Jul-85			GFLT DOUBLE PRECISION ARITHMETIC			

						; 6745	.TOC	"GFLT DOUBLE PRECISION ARITHMETIC"
						; 6746	
						; 6747	.IF/MODEL.B
						; 6748	.IF/EXTEXP
						; 6749	
						; 6750		.DCODE
D 0102, 4000,0305				; 6751	102:	R,	B/0,	J/EDFLOT	;EFAD
D 0103, 4201,0305				; 6752	103:	R,	B/2,	J/EDFLOT	;EFSB
D 0106, 4401,0305				; 6753	106:	R,	B/4,	J/EDFLOT	;EFMP
D 0107, 4600,0305				; 6754	107:	R,	B/6,	J/EDFLOT	;EFDV
						; 6755		.UCODE
						; 6756	
						; 6757	=0****00**0*
						; 6758	EDFLOT:	VMA_VMA+1, LOAD ARX,
U 0305, 0770,4001,0000,0000,0013,3662,0100	; 6759			MQ_0.S, CALL [XFERW]
U 0307, 1320,3721,0507,0000,0000,1033,0176	; 6760		FM[E0]_AR, ARX_ARX*2, B DISP	;mem high to E0, do instruction
						; 6761	=
						; 6762	
						; 6763	=000
U 1320, 2412,4001,0000,0000,0000,4550,0000	; 6764	EDFL1:	SKP AR0, CALL [ISOEXP]		;save mem high word in E0.
U 1321, 2252,4001,0007,0000,0000,1010,0172	; 6765		FM[T2]_AR, J/EF1		;save mem exp in T2.
U 1322, 1323,5143,7700,0000,0020,0027,0000	; 6766		AR_-AR LONG			;subtract now same as add.
U 1323, 1320,4001,0007,0000,0000,1010,0176	; 6767		FM[E0]_AR, J/EDFL1		;save "positive" exponent
U 1324, 2412,4001,0000,0000,0000,4550,0000	; 6768	=100	SKP AR0, CALL [ISOEXP]		;isolate mem exp in AR.
						; 6769		BR/AR, GEN ARX, SKP AD NE,	;start test for sticky bits.
U 1325, 2300,3711,0040,0000,0020,5610,0000	; 6770			J/EFMP
						; 6771	=110	BR/AR, GEN AR, SKP AD0, 	;save mem high in br.
U 1326, 2412,3703,0040,0000,0020,5550,0000	; 6772			CALL [ISOEXP]		;get mem exp
U 1327, 3162,3401,2007,0000,0000,1010,0172	; 6773		FM[T2]_AR, AR_0S, J/EFDV0	;save mem exp in T2. No sticky bits.
						; 6774	=0
U 2252, 2412,3200,2000,0000,0020,5550,0000	; 6775	EF1:	AR_AC0, SKP AD0, CALL [ISOEXP]	;get AC op
U 2253, 2314,0001,0047,0000,0000,1010,0165	; 6776		FM[E1]_AR, BR/AR		;save AC exp in E1
						; 6777	
						; 6778	;Now have positive mem exponent in T2, pos AC exp in E1.
						; 6779	;Save larger exp in T2 and exp diff if less than 340 in SC.
						; 6780		[AR]_[AR]*FM[T2], AD/A-B,	;AR gets exp diff.
U 2314, 0450,5100,2007,0000,0040,5510,0172	; 6781			SKP AD0			;AR get exp diff, BRX gets exp.
U 0450, 2454,0001,0000,0302,0000,0050,0003	; 6782	=00	SC_#, #/3, CALL [EXPDIF]	;test for exp diff >72.
U 0451, 0550,0001,0040,0000,0000,0010,0000	; 6783		BR/AR, J/EF3A			;mem op larger.
U 0452, 2354,3242,2000,0000,0000,0010,0000	; 6784		AR_BR, J/EF5			;restore exp to AR.
U 0453, 3171,3260,2007,0401,0020,0010,0165	; 6785		[AR]_FM[E1], CLR FE, J/ACNORM	;exp diff too large, norm AC op.
						; 6786	=00
U 0550, 2454,5142,2000,0302,0020,0050,0003	; 6787	EF3A:	AR_-BR, SC_#, #/3, CALL [EXPDIF];mem larger, get positive diff.
U 0552, 2316,3242,2000,0000,0000,0010,0000	; 6788	=10	AR_BR, J/EF3B			;restore exponent to AR.
U 0553, 3167,3240,2007,0401,0020,0010,0172	; 6789		[AR]_FM[T2], CLR FE, J/MEMNRM	;exp diff > 72. norm mem op.
U 2316, 2332,3243,5000,0000,0000,0010,0000	; 6790	EF3B:	AR_AR*8				;move exp difference into AR0-8.
						; 6791		FE_AR0-8,			;mem larger, op doable.
U 2332, 2260,3240,2000,2421,0020,0010,0000	; 6792			AR_AC0			;save smaller AC op in T0,T1
U 2260, 2446,0001,0007,0000,0000,1050,0166	; 6793	=0	FM[T0]_AR, CALL [EF5B]
U 2261, 2334,0001,0007,0000,0000,1010,0171	; 6794		FM[T1]_AR
U 2334, 2336,3240,2007,0000,0020,0010,0176	; 6795		[AR]_FM[E0]			;save larger mem op in AC0,AC1
U 2336, 2352,0001,4000,0000,2000,1010,0000	; 6796		AC0_AR, AR_ARX
U 2352, 2264,0001,0001,0000,0000,1010,0000	; 6797		AC1_AR, J/EF5A			;all set to shift and add.
						; 6798	
U 2354, 2367,3243,5000,0000,0000,0010,0000	; 6799	EF5:	AR_AR*8				;move exp difference into AR0-8.
U 2367, 2373,3260,2007,2421,0020,0010,0176	; 6800		FE_AR0-8, [AR]_FM[E0]		;smaller mem op to T0,T1
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 1-1
; EXTEXP.MIC[10,5351]	19:52 24-Jul-85			GFLT DOUBLE PRECISION ARITHMETIC			

U 2373, 2262,4001,4007,0000,2000,1010,0166	; 6801		FM[T0]_AR, AR_ARX
U 2262, 2446,0001,0007,0000,0000,1050,0171	; 6802	=0	FM[T1]_AR, CALL [EF5B]
U 2263, 2436,4001,0001,0000,0000,1010,0000	; 6803		AC1_AR				;we expect AC1*2 to be saved.
U 2436, 2444,3240,2007,0000,0020,0010,0165	; 6804		[AR]_FM[E1]			;save larger AC exp in T2
U 2444, 2264,4001,0007,0000,0000,1010,0172	; 6805		FM[T2]_AR, J/EF5A
						; 6806	
U 2446, 0001,3240,5001,0000,0020,0003,0000	; 6807	EF5B:	AR_AC1*2, RETURN1
						; 6808	
						; 6809	;EXPDIF determines if the exponent difference is too large-ie >110 oct.
						; 6810	;The largest allowed value for shifting is 72 decimal. This is 110 octal.
						; 6811	;Since the exponent is in AR1-11, 110 octal has the value 11 in AR1-8.
						; 6812	;It expects the exponent difference in AR0-8.
						; 6813	;It uses AR0-8 and the BR.
						; 6814	;Returns 2 if the difference is ok (<=110).
						; 6815	;Returns 3 if the difference is too large (>110).
U 2454, 2456,4001,0040,0000,0000,0410,0000	; 6816	EXPDIF:	BR/AR, CLR AR			;zero all of those bits.
U 2456, 2461,0001,0000,0000,0000,0110,0010	; 6817		AR0-8_#, #/10			;put in 100 in AR0-11.
U 2461, 0002,5102,0004,0000,0040,5503,0000	; 6818		GEN AR-BR, SKP AD0, RETURN2	;<max diff>-<actual diff>
						; 6819	
						; 6820	;We now have:
						; 6821	; AC0	/ larger op high
						; 6822	; AC1	/ larger op low
						; 6823	; T0	/ smaller op high
						; 6824	; T1	/ smaller op low
						; 6825	; T2	/ larger exponent
						; 6826	; FE	/ exp difference
						; 6827	;We must now sign extend both high ops.
						; 6828	=0
U 2264, 2420,3240,2000,0000,0020,5550,0000	; 6829	EF5A:	AR_AC0, SKP AD0, CALL [SGNEXT]	;get larger high op
U 2265, 2270,4001,0000,0000,0000,1010,0000	; 6830		AC0_AR				;save larger extended op in AC0
						; 6831	=0	[AR]_FM[T0], SKP AD0,		;get smaller high op
U 2270, 2420,3240,2007,0000,0020,5550,0166	; 6832			CALL [SGNEXT]		; and sign extend into AR1-11.
U 2271, 2506,4001,0007,0000,0000,1010,0166	; 6833		FM[T0]_AR			;save smaller extended op in T0
						; 6834	;We are now set to shift the smaller op to align it with the larger op.
U 2506, 2511,3260,2007,0000,0020,0010,0171	; 6835		[AR]_FM[T1]
U 2511, 2513,3240,2407,0000,1020,0013,0166	; 6836		[AR]_FM[T0], ARX_AR, SC_FE	;move diff to SC for next line.
U 2513, 2272,0001,0000,5302,0020,5110,0044	; 6837		SC_#-SC, #/36., SKP SCAD0
U 2272, 2556,5441,2400,0000,1020,0016,0000	; 6838	=0	ARX_AR, AR_SIGN, J/EF10		;FE < 37.
U 2273, 2535,0001,0060,0000,0000,0013,0000	; 6839		BR/AR, BRX/ARX, SC_FE
U 2535, 2542,5441,2400,0000,1020,0016,0000	; 6840		AR_SIGN, ARX_AR
U 2542, 2546,0001,0000,5302,0000,0010,0110	; 6841		SC_#-SC, #/72.
U 2546, 0531,4001,0400,0000,0000,0010,0000	; 6842		ARX_SHIFT			;high is sign, low is sign,,high.
						; 6843	=01	AR_BR LONG, BR/AR, BRX/ARX,	;save new stuff in BR long.
U 0531, 3034,3242,2660,0000,0000,0050,0000	; 6844			CALL [EF12]		;MQ gets lowest word.
U 0533, 2551,0001,0007,0000,0000,1010,0165	; 6845		FM[E1]_AR			;save sticky bits.
U 2551, 3024,3200,2001,0000,0020,0010,0000	; 6846		AR_AC1, J/EF11			;now prepare to add.
U 2556, 2653,3240,4207,0000,0020,0010,0171	; 6847	EF10:	AR_SHIFT, [ARX]_FM[T1]		;shift high op, load low word.
U 2653, 3004,3240,2047,0000,0020,0010,0166	; 6848		BR/AR, [AR]_FM[T0]		;shift low op, load high word.
U 3004, 0561,3711,2400,0000,0000,0010,0000	; 6849		AR_ARX (AD), ARX_SHIFT		;get shifted low word into ARX.
U 0561, 3034,0001,0020,0000,0000,0550,0000	; 6850	=01	BRX/ARX, CLR ARX, CALL [EF12]	;save low word, shift end bits.
U 0563, 3007,4001,0007,0000,0000,1010,0165	; 6851		FM[E1]_AR			;save sticky bits. (word 4 of sum).
U 3007, 3024,3200,2001,0000,0020,0010,0000	; 6852		AR_AC1, J/EF11			;prepare to add.
U 3015, 3024,3200,2061,0000,0020,0010,0000	; 6853		BR/AR, BRX/ARX, AR_AC1		;get larger op in AR,ARX
U 3024, 3033,3200,2400,0301,1020,0010,0000	; 6854	EF11:	ARX_AR, AR_AC0, FE_#, #/0	;smaller op in BR,BRX
						; 6855		AR_AR+BR, ARX/ADX, SC_#, #/3,	;operation done, now normalize.
U 3033, 1520,0602,2600,0302,0060,0035,0003	; 6856			NORM, J/ENORM
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 1-2
; EXTEXP.MIC[10,5351]	19:52 24-Jul-85			GFLT DOUBLE PRECISION ARITHMETIC			

						; 6857	
U 3034, 2662,3713,2010,0000,0000,0510,0000	; 6858	EF12:	MQ_SHIFT, AR_ARX (AD), CLR ARX,J/SHIFT
						;;6859	.IF/GFTCNV		;[273]
						;;6860	EF12A:	AR_SHIFT, RETURN10
						; 6861	.ENDIF/GFTCNV		;[273]
						; 6862	.ENDIF/EXTEXP
						; 6863	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 2
; EXTEXP.MIC[10,5351]	19:52 24-Jul-85			GFLT MULTIPLY						

						; 6864	.TOC	"GFLT MULTIPLY"
						; 6865	.IF/EXTEXP
						; 6866	=0
U 2300, 2303,4001,0000,0000,0000,0410,0000	; 6867	EFMP:	CLR AR, J/EFMP1			;mem low op is zero, no sticky bits.
U 2301, 2302,3240,5001,0000,0020,5610,0000	; 6868		AR_AC1*2, SKP AD NE		;is AC low op non-zero as well ?
U 2302, 2303,4001,0000,0000,0000,0410,0000	; 6869	=0	CLR AR				;yes, no sticky bits today.
U 2303, 3076,3441,2007,0000,0000,1010,0165	; 6870	EFMP1:	FM[E1]_AR, AR_0S		;set sticky bits.
U 3076, 3141,0001,0000,0000,0000,0110,0200	; 6871		AR0-8_#, #/200			;subtract 200.
U 3141, 3154,3202,2040,0000,0000,0010,0000	; 6872		BR/AR, AR_BR			;swap around exp and 2000.
U 3154, 2304,5102,2000,0402,0020,0010,0000	; 6873		AR_AR-BR, CLR SC		;done, and SC is cleared.
						; 6874	=0	BR/AR, AR_AC0, SKP AD0,		;save exp-2000 in BR.
U 2304, 2412,3240,2040,0000,0020,5550,0000	; 6875			CALL [ISOEXP]		;get AC high and isolate exp.
U 2305, 3155,0602,2000,0000,0020,0010,0000	; 6876		AR_AR+BR			;add exponents together.
U 3155, 2320,0001,0007,0000,0000,1010,0172	; 6877		FM[T2]_AR			;and store the sum in T2.
						; 6878	=0	[AR]_FM[E0], SKP AD0,		;get mem high op sign extended.
U 2320, 2420,3260,2007,0000,0020,5550,0176	; 6879			CALL [SGNEXT]
U 2321, 3156,0001,0000,0301,0000,0010,0756	; 6880		FE_#, #/-18.			;
U 3156, 1420,3240,2061,0000,0020,0010,0000	; 6881		BR/AR, BRX/ARX, AR_AC1		;move mem ops to BR!BRX.
						; 6882	=000	MQ_AR, AR_0S, ARX_0S,		;multiply by low word.
U 1420, 1542,3401,2210,0000,1000,0050,0000	; 6883			CALL [MULREE]
U 1424, 1426,0602,2604,0000,0020,0027,0000	; 6884	=100	AR_AR+BR LONG			;low sign was set, add results.
						; 6885	=110	MQ_AR, AR_AC0, FE_#, #/-13.,	;now continue with high part.
U 1426, 2420,3240,2010,0301,1020,5550,0763	; 6886			SKP AD0, CALL [SGNEXT]	;sign extend the ac high op.
U 1427, 2324,4001,0007,0000,0000,1010,0166	; 6887		FM[T0]_AR			;save sign extended AC op.
						; 6888	;	SKP AR0				;test sign bit to adjust FE.
						; 6889	=0
U 2324, 1440,3723,2010,0000,1000,0010,0000	; 6890	EFMPP1:	MQ_AR, AR_MQ, J/EFMPP2		;swap AR+MQ.
U 2325, 2324,0001,0000,4001,0000,0010,0000	; 6891		FE_FE+1, J/EFMPP1		;inc the FE if number is neg.
						; 6892	=000
						; 6893	EFMPP2:	AD/0S, FE_FE+1, DISP/MUL,	;now multiply by the high word.
U 1440, 0320,3401,0010,4001,0000,0070,0000	; 6894			MQ/MQ*.25, CALL [MULP]
						; 6895	;Since our last multiply step used 2 signs bits instead of a sign bit
						; 6896	;and the MSB, our answer is too low by a power of two for positive numbers
						; 6897	;and too low by a power of 4 for negative numbers.
U 1444, 3157,3701,5500,0000,0000,0710,0001	; 6898	=100	(AR+ARX+MQ)*2, J/EFMPP3		;try this correction factor.
U 1445, 3157,3703,7710,0000,0000,0710,0001	; 6899	=101	(AR+ARX+MQ)*.25, J/EFMPP3	;shouldn't ever get here.
U 1446, 3157,3701,5500,0000,0000,0710,0001	; 6900	=110	(AR+ARX+MQ)*2			;and this for postive numbers.
						; 6901	=
U 3157, 0571,2341,0260,0000,0000,0610,0030	; 6902	EFMPP3:	BR_AR LONG, AR_0.C, ARX_1S	;result to BR!BRX. Build mask.
						; 6903	=01	SC_#, #/10.,			;load SC with shift count.
U 0571, 2662,4001,0000,0302,0000,0050,0012	; 6904			CALL [SHIFT]		;Now have mask of 0,,1777
U 0573, 3160,3202,2660,0000,0000,0010,0000	; 6905		AR_BR LONG, BR_AR LONG		;mask to BR, result TO AR!ARX.
U 3160, 3161,3522,0010,0000,0000,0710,0003	; 6906		MQ_MQ*BR, AD/ANDCB		;clear the last 10 MQ bits.
						; 6907		GEN AR, SC_#, #/3,		;generate NORM bits.
U 3161, 1520,3703,0000,0302,0040,0035,0003	; 6908			NORM, J/ENORM		;conditions set for EE norm.
						; 6909	.ENDIF/EXTEXP
						; 6910	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 3
; EXTEXP.MIC[10,5351]	19:52 24-Jul-85			GFLT DIVIDE						

						; 6911	.TOC	"GFLT DIVIDE"
						; 6912	.IF/EXTEXP
U 3162, 2340,0001,0007,0000,0000,1010,0165	; 6913	EFDV0:	FM[E1]_AR			;no sticky bits on divide.
U 2340, 2420,3202,2000,0000,0020,5550,0000	; 6914	=0	AR_BR, SKP AD0, CALL [SGNEXT]	;sign extend mem high.
						; 6915		GEN AR*AC0, AD/XOR, SKP AD0,	;determine sign of result.
U 2341, 1460,3100,0060,0000,0020,5510,0000	; 6916			BR_AR LONG		;mem op to BR!BRX.
U 1460, 0620,3240,5001,0000,0020,0050,0000	; 6917	=000	AR_AC1*2, CALL [EFDV1]		;start division.
U 1461, 0620,3240,5001,0000,0020,1650,0001	; 6918		SR_1, AR_AC1*2, CALL [EFDV1]	;note result if negative.
						; 6919	
						; 6920	=011	AC1_AR, AR_MQ, ARL/AD, FE_FE+1,	;set step count to 35-2.
U 1463, 0543,3723,2001,4001,0001,1050,0102	; 6921			MQ_0.M, CALL [DIV+]
						; 6922	=101	AC1_AR, AR_MQ, ARL/AD, FE_FE+1,
U 1465, 0542,3721,2001,4001,0001,1050,0102	; 6923			MQ_0.M, CALL [DIV-]
U 1467, 3163,4001,0000,0401,0000,0410,0000	; 6924	=111	CLR AR, CLR FE			;exp must be adjusted-
U 3163, 3164,4001,0000,0000,0000,0110,0200	; 6925		AR0-8_#, #/200			;  it is currently 2000 too low
U 3164, 3165,0600,2007,4000,0020,0010,0172	; 6926		[AR]_[AR]*FM[T2], AD/A+B	;add in the correction.
U 3165, 3166,4001,0007,0000,0000,1010,0172	; 6927		FM[T2]_AR			;store the corrected exp in T2.
						; 6928		AR_AC1, ARX/MQ, SC_#, #/3,	;get answer ready for norm.
U 3166, 1520,3200,2301,0302,0040,0035,0003	; 6929			NORM, J/ENORM
						; 6930	
						; 6931	=00
						; 6932	EFDV1:	ARX_AR, AR_AC0, SKP AD0, FE_#,	;AC low*2 to ARX, AC high to AR.
U 0620, 2342,3200,2400,0301,1020,5550,0027	; 6933			#/23., CALL [EDVCHK]
U 0622, 0722,0001,0000,0000,0000,4210,0000	; 6934	=10	SKP BR0, J/DDVSUB
U 0623, 0066,4001,0000,0000,0000,1110,0624	; 6935		SET FL NO DIV, J/IFNOP		;no division this time.
						; 6936	
						; 6937	=0
U 2342, 2344,0001,0010,0000,1000,0010,0000	; 6938	EDVCHK:	MQ_AR, J/EDVCH1			;go to an even address.
U 2343, 2342,5163,7700,0000,0020,0027,0000	; 6939		AR_-AR LONG, J/EDVCHK		;make ac op positive.
						; 6940	
						; 6941	=0
U 2344, 2412,4001,0000,0000,0000,4550,0000	; 6942	EDVCH1:	SKP AR0, CALL [ISOEXP]		;op saved in MQ, get exp in AR.
						; 6943		[AR]_[AR]*FM[T2], AD/A-B,	;subtract exponents.
U 2345, 2360,5100,2007,0000,0040,5510,0172	; 6944			SKP AD0			;did this cause an underflow ?
						; 6945	=0
U 2360, 2361,4001,0000,0000,0000,1610,0062	; 6946		SET SR2 			;no, let SR2 denote this.
U 2361, 2362,0001,0007,0000,0000,1010,0172	; 6947	EDVCH2:	FM[T2]_AR			;yes, save exponent in T2 for ENORM.
						; 6948	
						; 6949	=0
U 2362, 2420,3723,2000,0000,0020,5550,0000	; 6950	EDVCH3:	AR_MQ, SKP AD0, CALL [SGNEXT]	;now sign extend the op.
U 2363, 2170,0001,0000,0000,0001,4210,0100	; 6951		SKP BR0, MQ_0.M, J/FDVCK1
						; 6952	.ENDIF/EXTEXP
						; 6953	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 4
; EXTEXP.MIC[10,5351]	19:52 24-Jul-85			GFLT NORMALIZATION					

						; 6954	.TOC	"GFLT NORMALIZATION"
						; 6955	.IF/EXTEXP
						; 6956	;Normalization is done here.
						; 6957	;	The are 8 addresses the can be reached when doing a
						; 6958	;	NORM dispatch. The following table describes the
						; 6959	;	dispatching and how to normalize the fraction and
						; 6960	;	exponent.
						; 6961	;
						; 6962	;	=000	AR=0			AR is zero, check ARX,MQ
						; 6963	;	=001	AR00=1			sign bit on, complement
						; 6964	;	=010	MSB in AR 1-6		shf 4 rt.(a guess)
						; 6965	;	=011	MSB in AR07		sht 2 rt.
						; 6966	;	=100	MSB in AR08		sht 3 rt.
						; 6967	;	=101	MSB in AR09		right on!
						; 6968	;	=110	MSB in AR10		sht 1 lf.
						; 6969	;	=111	MSB in AR 11-35		sht 4 lf.(a guess)
						; 6970	;
						; 6971	;The normalization routine for double precision assumes that
						; 6972	;	the exponent can be found in the FE. As it goes through
						; 6973	;	the normalization process, it adjusts the fraction and
						; 6974	;	the FE by the correct amounts to normalize the number.
						; 6975	;	In GFLT numbers, the exponent may not fit
						; 6976	;	into the FE, so it has to be saved in an accumulator.
						; 6977	;	However, if one assumes initially that the exponent is
						; 6978	;	zero and that it is in the FE, then the same normalization
						; 6979	;	algorithm can be used as in double precision numbers
						; 6980	;	with the realization that at the end of the normalization
						; 6981	;	process the FE contains the correction (EC)  that must be
						; 6982	;	added into the saved exponent (ES)  to produce a 'bit-9'
						; 6983	;	normalized number. Once this correction value is obtained,
						; 6984	;	the 'bit-12' normalized exponent (EN)  is given by
						; 6985	;			EN = ES + EC + 3
						; 6986	
U 3167, 3170,0001,0007,0000,0000,1010,0172	; 6987	MEMNRM:	FM[T2]_AR			;save larger exponent.
U 3170, 2374,3240,2007,0000,0020,5510,0176	; 6988		[AR]_FM[E0], SKP AD0, J/ACNRM1	;get high word, sign extend it
						; 6989	
U 3171, 3172,4001,0007,0000,0000,1010,0172	; 6990	ACNORM:	FM[T2]_AR			;save larger exponent.
U 3172, 3173,3240,5001,0401,0020,0010,0000	; 6991		AR_AC1*2, CLR FE		;get low word*2 into AR.
U 3173, 2374,3200,2400,0000,1020,5510,0000	; 6992		ARX_AR, AR_AC0, SKP AD0		;get high word, sign extend it.
						; 6993	=0
						; 6994	ACNRM1:	[AR]_[AR]*FM[EXPMSK], AD/AND,	;sign extend with 0's.
U 2374, 1520,3600,2007,0000,0040,0035,0164	; 6995		NORM, J/ENORM
						; 6996		[AR]_[AR]*FM[EXPMSK], AD/ORCB,	;sign extend with 1's.
U 2375, 1520,2700,2007,0000,0040,0035,0164	; 6997			NORM			;fall into the normalize routine.
						; 6998	
						; 6999	=000
						; 7000	ENORM:	SKP ARX+MQ NE, SC_#, #/35.,	;AR=0,check ARX,+MQ.
U 1520, 2410,3723,0000,0302,0040,5427,0043	; 7001			J/ENZERO
						; 7002		BR/AR, BRX/ARX, AR_MQ COMP,	;result neg, complement.
U 1521, 3200,2023,2060,0000,0000,1610,0061	; 7003			SET SR3, J/ENNEG	;flag negative seen.
						; 7004		AR_AR*.25 LONG, MQ_MQ*.25,	;MSB in AR 1-6.
U 1522, 3201,3703,7710,2031,0000,0012,0004	; 7005			FE_FE+#, #/4, J/ENHI
						; 7006		AR_AR*.25 LONG, FE_FE+#,	;MSB in AR07.
U 1523, 1525,3703,7700,2031,0000,0010,0002	; 7007			#/2, J/EROUND		;
U 1524, 1525,0303,7700,4001,0020,0027,0000	; 7008		AR_AR*.5 LONG, FE_FE+1		;MSB in AR08.
						; 7009	EROUND:	BR_AR LONG, AR+MQ_0.S,	 	;MSB in AR09, where we want it.
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 4-1
; EXTEXP.MIC[10,5351]	19:52 24-Jul-85			GFLT NORMALIZATION					

U 1525, 3202,4001,0060,0000,0000,0022,0130	; 7010			J/ERND1			;put result in BR!BRX.
						; 7011		(AR+ARX+MQ)*2, FE_FE-1,		;MSB in AR10.
U 1526, 1525,3703,5500,3001,0000,0710,0001	; 7012			J/EROUND
U 1527, 3174,0001,4000,5001,0000,0010,0000	; 7013		AR_SHIFT, FE_FE-SC		;MSB somewhere in AR 11-35.
						; 7014	
U 3174, 3175,0001,4340,0000,2000,0010,0000	; 7015	ENSHFT:	BR/AR, AR_ARX, ARX/MQ		;shift everyone.
U 3175, 3176,3721,6010,0000,0000,0510,0000	; 7016		MQ_SHIFT, AR_ARX (ADX), CLR ARX
						; 7017		MQ_SHIFT, ARX/MQ, AR_BR,	;go aroung again.
						; 7018			SC_#, #/10.,
U 3176, 1520,3242,2310,0302,0040,0035,0012	; 7019			NORM, J/ENORM
						; 7020	
U 3200, 2400,3200,0007,0000,0020,5610,0165	; 7021	ENNEG:	GEN E1, SKP AD NE		;any sticky bits left around?
U 2400, 2402,4001,2000,0000,0040,5410,0000	; 7022	=0	AR_AR+1, SKP CRY0, J/ENNEG1	;no, 2's comp MQ.
						; 7023		MQ_AR, AR_BR COMP, ARX_BRX COMP,
U 2401, 1520,2542,2610,0000,1040,0035,0000	; 7024			NORM, J/ENORM		;one's complement to finish.
						; 7025	=0
						; 7026	ENNEG1:	MQ_AR, AR_BR COMP, ARX_BRX COMP,
U 2402, 1520,2542,2610,0000,1040,0035,0000	; 7027			NORM, J/ENORM		;one's complement to finish.
						; 7028		MQ_AR, AR_-BR, ARX/ADX,		;carry happened, do two's comp.
U 2403, 1520,5162,2610,0000,1060,0035,0000	; 7029			NORM, J/ENORM
						; 7030	
U 3201, 3223,3703,7710,0000,0000,0710,0001	; 7031	ENHI:	(AR+ARX+MQ)*.25, J/ENTRY	;go try again after setting SC.
						; 7032	=0
U 2410, 0244,3401,2200,0000,0000,1610,0000	; 7033	ENZERO:	SR_0, AR_0S, ARX_0S, J/DBLST	;result = 0, store in AC,AC+1.
U 2411, 3174,0001,4000,5001,0000,0010,0000	; 7034		AR_SHIFT, FE_FE-SC, J/ENSHFT	;not zero, try next 35 bits.
						; 7035	
U 3202, 3203,4061,0500,0000,0020,0010,0000	; 7036	ERND1:	ARX_2+MQ0			;[407] build rounding constant.
U 3203, 3204,3243,0600,0000,0000,0010,0000	; 7037		ARX_ARX*4			;gen a 10 in the ARX for rounding.
U 3204, 1546,0602,2604,0000,0060,0035,0000	; 7038		AR_AR+BR, ARX/ADX, NORM		;do the rounding and test norm.
U 1546, 1547,0301,7700,4001,0020,0027,0000	; 7039	=110	AR_AR*.5 LONG, FE_FE+1		;rounding blew norm, correct it.
						; 7040	
						; 7041	; When we get here the number is 'bit-9' normalized
						; 7042	; in the AR,ARX.  Add the FE + 3 to the exponent
						; 7043	; saved in T2.
						; 7044	; At this point the Extended Exponent must be put
						; 7045	; into the AR after everything is shifted right 3 bits.
						; 7046	; The double precision norm routine does this by:
						; 7047	; EXP_FE TST, SR DISP, CLR MQ, BRX/ARX, ARX_1
						; 7048	
						; 7049	
						; 7050	ERND2:	AR_AR*.25 LONG,		;shift everything 2 bits right.
						; 7051			MQ_MQ*.25,	;	"	"	"
U 1547, 3205,3701,7710,0302,0000,0012,0003	; 7052			SC_#, #/3	;add in correction to FE.
						; 7053		AR_AR*.5 LONG,		;now shift the final bit position.
U 3205, 3206,0301,7700,2002,0020,0027,0000	; 7054			SC_FE+SC	;total exponent correction.
U 3206, 3207,0001,0060,0000,0000,0410,0000	; 7055		BR/AR, BRX/ARX, CLR AR	;save answer in BR,BRX.
U 3207, 3210,0001,0000,2400,2001,0110,0000	; 7056		EXP_SC.MS		;get exp corr in AR.
						; 7057		ARX_AR, AR_SIGN,	;get exp into ARX 1-8.
U 3210, 3211,5401,2400,0302,1020,0016,0041	; 7058			SC_#,#/33.	;prepare to shift 3 places.
						; 7059		ARX_SHIFT,		;move exponent into ARX 1-11.
U 3211, 3212,3260,2407,0000,0020,0010,0164	; 7060			[AR]_FM[EXPMSK]	;prepare to build mask in AR.
U 3212, 3213,4001,0000,0000,0000,0110,0400	; 7061		AR0-8_#, #/400		;include AR00 in EXPMSK==>400077,,-1
						; 7062		AR_AR*BR, AD/AND,	;zero AR1-11 to make room for exp.
U 3213, 3214,3602,2004,0302,0000,0010,0043	; 7063			SC_#, #/35.
						; 7064	
						; 7065	; I am sure a few lines of code can be saved around here.
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 4-2
; EXTEXP.MIC[10,5351]	19:52 24-Jul-85			GFLT NORMALIZATION					

						; 7066	
U 3214, 3215,3260,2047,0000,0020,0010,0172	; 7067		[AR]_FM[T2], BR/AR	;save high word in BR, load larger exp.
U 3215, 3216,3202,2040,0000,0000,0010,0000	; 7068		AR_BR, BR/AR		;swap around so we can add.
						; 7069		AR_ARX+BR, BR/AR,	;have final exponent, check for problems.
U 3216, 3217,0612,2044,0302,0020,0010,0000	; 7070			SC_#,#/0
U 3217, 0643,4001,0000,0000,0020,0007,0000	; 7071		SH DISP			;any exponent problems ?
						; 7072	=0011	ARX_AR, SC_#, #/35.,	; no problems.
U 0643, 3221,0001,0400,0302,1000,0010,0043	; 7073			J/ENFNL1
						; 7074	ENFNL0:	ARX_AR, SC_#, #/35.,	; no problems.
U 0647, 3221,0001,0400,0302,1000,0010,0043	; 7075			J/ENFNL1
U 0653, 3220,0001,0000,0000,0000,1110,0620	; 7076		SET FLOV,  J/EEOV	; an overflow occurred.
						; 7077	
U 0657, 0635,0001,0000,0000,0000,0005,0000	; 7078		SR DISP			;floating underflow - is it real ?
						; 7079	=1101	;test SR2.
U 0635, 3220,4001,0000,0000,0000,1110,0630	; 7080		SET FXU, J/EEOV		;yes, it is a real underflow.
U 0637, 3220,0001,0000,0000,0000,1110,0620	; 7081		SET FLOV		;no, GFDV saw an overflow before.
						; 7082	
						; 7083	EEOV:	P_P AND #, #/37,	;turn off AR00.
U 3220, 0647,4001,0000,7130,3000,0110,0037	; 7084			J/ENFNL0
						; 7085	
U 3221, 3222,3312,2000,0000,0000,0010,0000	; 7086	ENFNL1:	AR_ARX*BR, AD/OR	;AR now has high word, BRX has low.
U 3222, 0742,4061,0200,0000,0021,0005,0100	; 7087		ARX_1, MQ_0.M, SR DISP	;incase negation of lower word needed.
						; 7088	=10	AC0_AR, AR_SHIFT,	;store high word,
						; 7089			ARX_BRX,	;move low word to ARX.
U 0742, 0241,3202,4600,0000,0217,1010,0000	; 7090			I FETCH, J/STD1	;prepare to store low word and exit.
						; 7091		ARX_ARX*BRX, AD/ANDCA,	; clear rounding bit.
U 0743, 2312,3002,0604,0000,0000,1610,0000	; 7092			SR_0,J/CDBLST	;negate result and store double result.
						; 7093	
U 3223, 1520,3703,0000,0302,0040,0035,0003	; 7094	ENTRY:	SC_#, #/3, GEN AR, NORM, J/ENORM; go normalize again.
						; 7095	.ENDIF/EXTEXP
						; 7096	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 5
; EXTEXP.MIC[10,5351]	19:52 24-Jul-85			GFLT TO INTEGER CONVERSION				

						; 7097	.TOC	"GFLT TO INTEGER CONVERSION"
						; 7098	.IF/EXTEXP
						;;7099	.IF/GFTCNV		;[273]
						;;7100	
						;;7101	;ETXIX routine is used when converting extended exponent data to
						;;7102	;single/double precision integers with rounding/truncation.
						;;7103	;This routine assumes that the AR/ARX contain the extended exponent
						;;7104	;data. It also assumes that the maximum exponent value + 1 of either
						;;7105	;36 or 70 (decimal) are already in the FE. This is the positive exponent
						;;7106	;maximum; the code adjusts for the fact that a negative number can have
						;;7107	;an exponent one greater than a positive number.
						;;7108	;It uses all of the registers in the EBOX and returns 4 if the
						;;7109	;result is positive and returns 5 if the result is negative
						;;7110	;with the AR/ARX containing the double word integer. It is the
						;;7111	;responsibility of the calling routine to determine whether
						;;7112	;rounding or truncation should be performed and how many words
						;;7113	;to store.
						;;7114	
						;;7115	ETXIX:	ARX_ARX*2		;get low word*2 into ARX.
						;;7116	=0	MQ_AR, SKP AR0,		; get a positive exp in AR.
						;;7117			CALL [ISOEXP]
						;;7118		CLR AR, BR/AR		;clear extraneous bits, save exp.
						;;7119		AR0-8_#, #/200		;test for positive exp.
						;;7120		GEN AR+BR, SKP AD0,	;skip on positive exponent(sum has AD0 on).
						;;7121			AR_0.M		;so exponent test has a clean register.
						;;7122	=0	MEM/ARL IND, CLR/AR+ARX,;exponent must be positive.
						;;7123			RETURN4		;return to caller.
						;;7124		AR0-8_#, #/212, J/ET1	;start range check of positive exponent
						;;7125	
						;;7126	;At this point the exponent is in BR 1-11 and it is positive.
						;;7127	;Now we must determine if it is a small enough positive number
						;;7128	;to make the conversion to integer meaningful.
						;;7129	ET1:	GEN AR-BR, SKP AD0	;do the exponent test.
						;;7130	=0	AR_BR*4, J/ET2		;exp fits in AR0-8, now for final test!
						;;7131		SET AROV, I FETCH, J/NOP;exponent out of range.
						;;7132	ET2:	AR_AR*2			;finish moving exponent into AR0-8.
						;;7133		SC_AR0-8, GEN MQ,	;exponent to SC.
						;;7134			SKP AD0		;max neg exponent is 1 gtr than max pos exp.
						;;7135	=0
						;;7136	ET2A:	AR_MQ, GEN FE-SC,	;shift low word into ARX00-34, caller
						;;7137			SKP SCAD0,	;put max exponent+1 in FE. range check.
						;;7138			J/ET2B
						;;7139		FE_FE+1, J/ET2A		;max neg exp is 1 gtr than max pos exp.
						;;7140	=0
						;;7141	ET2B:	FE_SC, J/ET3		;save exp in FE.
						;;7142		SET AROV, I FETCH, J/NOP;exponent is too large.
						;;7143	ET3:	SC_#, #/12.		;prepare to map AR12 into AR00.
						;;7144	
						;;7145	;We now have the high word in the AR and
						;;7146	;the low word*2 in the ARX. The SC has 12 (dec) to let the
						;;7147	;shifter strip off the sign and exponent of the high word.
						;;7148		AR_SIGN, MQ_SHIFT	;put high 36 integer bits into MQ.
						;;7149		AR_ARX, BR/AR, CLR ARX	;generate low 36 integer bits and
						;;7150		AR_BR, ARX/MQ, MQ_SHIFT,;  put in MQ. High bits to ARX.
						;;7151			SC_FE-#, #/36.,	;check the size of the exponent.
						;;7152			SKP SCAD0	;if exp<36. then high result is sign.
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 5-1
; EXTEXP.MIC[10,5351]	19:52 24-Jul-85			GFLT TO INTEGER CONVERSION				

						;;7153	=0	GEN SC, SKP SCAD NE,	;is exponent gtr or geq to 36 ?
						;;7154			J/ET3A
						;;7155		SC_#+SC, #/37., J/ET5	;exponent less than 36.
						;;7156	=0
						;;7157	ET3A:	(AR+ARX+MQ)*2, J/ET3B	;must shift left 1 bit.
						;;7158		BRX/ARX, SC_#+SC, #/1,	;adjust exp, save low word in BRX.
						;;7159			J/ET4
						;;7160	ET3B:	BR_AR LONG, AR_ARX,	;high and low to BR!BRX
						;;7161			SC_#, #/35.,	;get a good exponent for final shifting.
						;;7162			ARX/MQ, J/ET4A	;rest of fraction to ARX.
						;;7163	ET4:	AR_ARX (AD), ARX/MQ,	;exp gtr 36. High result has integer bits.
						;;7164			MQ_SHIFT	;high result to MQ.
						;;7165		AR_MQ, ARX_SHIFT	;put integer bits into ARX.
						;;7166		BR_AR LONG, AR_ARX (AD),;now compute fraction.
						;;7167			CLR ARX		;low integer to AR, pad with zeros in ARX.
						;;7168	ET4A:	AR_BR LONG, MQ_SHIFT,	;restore integer to AR!ARX, fraction to MQ.
						;;7169			SC_#, #/35.,	;low word must have bit 0 same as high.
						;;7170			SKP AD0, RET[4]	;  and return on sign of integer.
						;;7171	=01
						;;7172	ET5:	FM[T0]_AR, AR_ARX (AD),	;sign is high 36 bit result. Save in T0.
						;;7173			ARX/MQ,		;high 36 bits of frac to AR, low 23 to ARX.
						;;7174			MQ_SHIFT,	;low integer result to MQ.
						;;7175			CALL [SHIFT]	;high half of fraction to AR.
						;;7176	
						;;7177	;Now we have the high 36 bits of mantissa in AR, the low 23 bits if mantissa
						;;7178	;in the ARX, the high 36 bit result (the sign bits) in T0 and the low 36 bit
						;;7179	;result in the MQ. Now we compute the fraction to store.
						;;7180		BR/AR, AR_ARX, CLR ARX	;high frac to BR. Now gen low fraction bits.
						;;7181		ARX_SHIFT,		;low fraction bits to ARX.
						;;7182			SC_#, #/35.	;low word must have same sign as high.
						;;7183		GEN ARX*BR, AD/OR,	;gen composite OR of fraction into 1 word.
						;;7184			MQ_AD,		;put this funny fraction in the MQ.
						;;7185			ARX/MQ		;low integer result to ARX.
						;;7186		[AR]_FM[T0], SKP AD0,	;get high result (Sign) back in AR.
						;;7187			RET[4]		;and return to caller.
						; 7188	.ENDIF/GFTCNV		;[273]
						; 7189	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 6
; EXTEXP.MIC[10,5351]	19:52 24-Jul-85			GFLT TO INTEGER CONVERSION				

						; 7190	
						; 7191	;ISOEXP will isolate the exponent in an extended exponent data word.
						; 7192	;It will return the positive representation of the exponent.
						; 7193	;Call with AR containing high order word with "SKP AR0" to do
						; 7194	;correct things with one's complemented exponent in negative numbers.
						; 7195	;It returns 1 with the positive exponent in the AR.
						; 7196	=0
U 2412, 0001,3500,2007,4000,0020,0003,0164	; 7197	ISOEXP:	[AR]_[AR]*FM[EXPMSK],AD/ANDCB,RET[1] ;isolate pos exp in AR1-11.
U 2413, 0001,2400,2007,4000,0020,0003,0164	; 7198		[AR]_[AR]*FM[EXPMSK],AD/NOR,RET[1]   ;isolate neg exp in AR1-11.
						; 7199	
						; 7200	;SGNEXT will extend the sign bit of the AR into AR1-11. Call with
						; 7201	;SKP AR0 so the correct actions are taken for negative numbers.
						; 7202	;It will do a return 1 with either ones or zeroes in AR1-11.
						; 7203	=0
U 2420, 0001,3600,2007,4000,0020,0003,0164	; 7204	SGNEXT:	[AR]_[AR]*FM[EXPMSK], AD/AND, RET[1]  ;extend 0s into AR1-11.
U 2421, 0001,2700,2007,4000,0020,0003,0164	; 7205		[AR]_[AR]*FM[EXPMSK], AD/ORCB, RET[1] ;extend ones into AR1-11.
						; 7206	
						; 7207	;OVTEST will determine if the high order word of a double integer,
						; 7208	;as stored in the AR is all sign bits, ie either it is all zeroes
						; 7209	;or all ones. The call is via "GEN AR, SKP AD NE, J/OVTEST".
						; 7210	;It assumes that the double integer is in the AR/ARX and the SC
						; 7211	;contains 35 decimal.
						; 7212	;OVTEST will store the ARX*.5 and exit if the AR is all sign bits.
						; 7213	;It will set AROV and jump to NOP if it finds some data bits.
U 3224, 2422,3723,2000,0000,0020,5610,0000	; 7214	OVTST1:	AR_MQ, SKP AD NE		;get the sign bits from the MQ.
						; 7215	=0
U 2422, 3225,4001,4000,0000,0217,0010,0000	; 7216	OVTEST:	AR_SHIFT, I FETCH, J/OVTST2	;the high word is all zeros - ok.
U 2423, 2440,4001,0000,0000,0040,5610,0000	; 7217		GEN AR+1, SKP AD NE		;check to see if it is all ones.
U 2440, 3225,4001,4000,0000,0217,0010,0000	; 7218	=0	AR_SHIFT, I FETCH, J/OVTST2 	;this is simply a negative number.
U 2441, 0073,4001,0000,0000,0217,1110,0420	; 7219		SET AROV, I FETCH, J/NOP	;sorry, we found some data bits.
U 3225, 0073,4001,0000,0000,0000,1010,0000	; 7220	OVTST2:	AC0_AR, J/NOP			;finish the store.
						; 7221	.ENDIF/EXTEXP
						; 7222	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 7
; EXTEXP.MIC[10,5351]	19:52 24-Jul-85			GFLT DATA CONVERSION INSTRUCTIONS			

						; 7223	.TOC	"GFLT DATA CONVERSION INSTRUCTIONS"
						; 7224	
						; 7225	1013:
U 1013, 1006,0001,0000,0000,0000,0010,0000	; 7226	L-XBLT:	J/LUUO
						; 7227	1014:
U 1014, 1006,0001,0000,0000,0000,0010,0000	; 7228	L-GTPI:	J/LUUO
						; 7229	.IF/EXTEXP				;[337]
						; 7230	1104:
U 1104, 1006,0001,0000,0000,0000,0010,0000	; 7231	L-SFTE:	J/LUUO
						; 7232	1105:
U 1105, 1006,0001,0000,0000,0000,0010,0000	; 7233	L-GTDI:	J/LUUO
						; 7234	1106:
U 1106, 1006,0001,0000,0000,0000,0010,0000	; 7235	L-GTSI:	J/LUUO
						; 7236	1107:
U 1107, 1006,0001,0000,0000,0000,0010,0000	; 7237	L-GTDR:	J/LUUO
						; 7238	1110:
U 1110, 1006,0001,0000,0000,0000,0010,0000	; 7239	L-GTSR:	J/LUUO
						; 7240	1111:
U 1111, 1006,0001,0000,0000,0000,0010,0000	; 7241	L-DITE:	J/LUUO
						; 7242	1112:
U 1112, 1006,0001,0000,0000,0000,0010,0000	; 7243	L-SITE:	J/LUUO
						; 7244	1113:
U 1113, 1006,0001,0000,0000,0000,0010,0000	; 7245	L-EFSC:	J/LUUO
						; 7246	.ENDIF/EXTEXP				;[337]
						; 7247	.IF/XADDR
U 3013, 3306,3200,0204,0000,0020,0010,0000	; 7248	3013:	ARX_AC2, J/XBLT		; -20-  XBLT
						; 7249	.ENDIF/XADDR
						;;7250	.IFNOT/EXTEXP				;[337]
						;;7251	3014:	J/MUUO				;[337] No GSNGL if no G floating
						; 7252	.IF/EXTEXP				;[337]
U 3014, 3226,3240,2007,0000,0020,0010,0165	; 7253	3014:	[AR]_FM[E1], J/L-GTSP	; -21-	GSNGL
U 3104, 3243,3240,2007,0000,0020,0010,0165	; 7254	3104:	[AR]_FM[E1], J/L-EDBL	; -22-	GDBLE
						; 7255	.IFNOT/GFTCNV		;[273]
U 3105, 1002,4001,0000,0000,0000,0010,0000	; 7256	3105:	J/MUUO			; -23-	DGFIX	;[273]
U 3106, 1002,4001,0000,0000,0000,0010,0000	; 7257	3106:	J/MUUO			; -24-	GFIX	;[273]
U 3107, 1002,4001,0000,0000,0000,0010,0000	; 7258	3107:	J/MUUO			; -25-	DGFIXR	;[273]
U 3110, 1002,4001,0000,0000,0000,0010,0000	; 7259	3110:	J/MUUO			; -26-	GFIXR	;[273]
						;;7260	.IF/GFTCNV		;[273]
						;;7261	3105:	[AR]_FM[E1], J/L-GTIN	; -23-	DGFIX
						;;7262	3106:	[AR]_FM[E1], J/L-GTIN	; -24-	GFIX
						;;7263	3107:	[AR]_FM[E1], J/L-GTIN	; -25-	DGFIXR
						;;7264	3110:	[AR]_FM[E1], J/L-GTIN	; -26-	GFIXR
						; 7265	.ENDIF/GFTCNV		;[273]
U 3111, 3260,3260,2007,0000,0020,0010,0165	; 7266	3111:	[AR]_FM[E1], J/L-FLTR	; -27-	DGFLTR
U 3112, 3267,3240,2007,0000,0020,0010,0165	; 7267	3112:	[AR]_FM[E1], J/L-DFLT	; -30-	GFLTR
U 3113, 2502,3240,2007,0000,0020,0010,0165	; 7268	3113:	[AR]_FM[E1], J/L-DFSC	; -31-	GFSC
						; 7269	
						; 7270	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 8
; EXTEXP.MIC[10,5351]	19:52 24-Jul-85			GFLT DATA CONVERSION INSTRUCTIONS			

U 3226, 3227,3703,0000,0000,0312,0010,0000	; 7271	L-GTSP:	VMA_AR, LOAD AR		;-21- GSNGL EDPFP TO SPFP
U 3227, 3230,3200,0003,0000,0022,0022,0100	; 7272		AR_MEM, MQ_0.S		;load high word into AR.
U 3230, 2442,3703,0000,0000,0020,5610,0000	; 7273		GEN AR, SKP AD NE	;check for zeroes.
U 2442, 0072,0001,0000,0000,0217,0010,0000	; 7274	=0	I FETCH, J/STORAC	;high word zero, store it.
U 2443, 2450,4001,0000,0000,0000,3610,0000	; 7275		VMA_VMA+1		;point to mem low word.
						; 7276	=0	ARX_AR, SKP AR0,	;save high word in ARX.
U 2450, 2412,4001,0400,0000,1000,4550,0000	; 7277			CALL [ISOEXP]	;get the excess-2000 exponent.
U 2451, 3231,4001,0040,0000,0000,0410,0000	; 7278		CLR AR, BR/AR		;exp to BR.
U 3231, 3232,0001,0000,0000,0000,0110,0220	; 7279		AR0-8_#, #/220		;largest exponent allowed is 2200.
U 3232, 2452,1102,0004,0000,0040,5510,0000	; 7280		GEN AR-BR-1, SKP AD0	;range check exponent.
U 2452, 3233,4001,0000,0000,0000,0110,0157	; 7281	=0	AR0-8_#, #/157, J/L-GTS1;do lower range check now.(actually too low)
U 2453, 0073,0001,0000,0000,0217,1110,0620	; 7282		SET FLOV, I FETCH, J/NOP;tough
U 3233, 3234,3202,2040,0000,0000,0010,0000	; 7283	L-GTS1:	BR/AR, AR_BR		;swap values around for next subtract.
U 3234, 2470,5102,0000,0000,0040,5510,0000	; 7284		GEN AR-BR, SKP AD0	;do lower range check.
U 2470, 3235,0001,0040,0000,0000,0410,0000	; 7285	=0	BR/AR, CLR AR, J/L-GTS6	;passed. 10 bit path to do last checks.
U 2471, 0073,4001,0000,0000,0217,1110,0630	; 7286		SET FXU, I FETCH, J/NOP	;too low.
U 3235, 3236,0001,0000,0000,0000,0110,0160	; 7287	L-GTS6:	AR0-8_#, #/160		;subtract 1600 to get excess 200 exp.
U 3236, 3237,3202,2040,0000,0000,0010,0000	; 7288		AR_BR, BR/AR		;swap around to do subtract.
U 3237, 3240,5102,2000,0000,0020,0010,0000	; 7289		AR_AR-BR		;got it.
U 3240, 3241,3203,5000,0000,0000,0010,0000	; 7290		AR_AR*8			;move excess-200 exponent over.
						; 7291		FE_AR0-8, AR_ARX,	;put some exponent in FE. High word to AR.
U 3241, 3242,4001,4000,2421,2013,0010,0000	; 7292			LOAD ARX	;low word to ARX.
						; 7293	;This next test determines the relative size of the exponent. If the expo-
						; 7294	;nent is less than 401 then it is a positive exponent and all will be well.
						; 7295	;If the exponent is greater than 400 (actually 700), then the exponent is
						; 7296	;really negative but bit 0 of the FE is off. To correct the sign of the
						; 7297	;exponent and to prevent undeserved FXU later because of the incorrect sign
						; 7298	;bit, we must examine the value of the exponent so as to always get the
						; 7299	;correct sign during normalization.
						; 7300		ARX_MEM, GEN FE-#,	;undeserved FXU happens when FE00 should be
U 3242, 2472,3200,0003,5030,0042,5110,0500	; 7301			#/500, SKP SCAD0;set from previous subtract of 1600.
						; 7302	=0	FE_FE+#, #/777,		;set FE00. Later add will clear it.
						; 7303			ARX_ARX*2,	;low word * 2.
U 2472, 2500,3701,0500,2031,0000,0010,0777	; 7304			J/L-GTS7	;continue.
U 2473, 2500,3701,0500,3001,0000,0010,0000	; 7305		FE_FE-1, ARX_ARX*2	;adjust FE so later add gets right exp.
						; 7306	=0
U 2500, 2420,0001,0000,0000,0000,4550,0000	; 7307	L-GTS7:	SKP AR0, CALL [SGNEXT]	;sign extend high word.
						; 7308		AR_AR*.25 LONG,		;prepare for normalization
						; 7309			FE_FE+#, #/6,	;adjust exponent.
U 2501, 1120,3703,7700,2031,0040,0035,0006	; 7310			NORM, J/SNORM	;finish up.
						; 7311	
U 3243, 3244,3703,0000,0000,0312,0010,0000	; 7312	L-EDBL:	VMA_AR, LOAD AR		;-22- GDBLE SPFP to EXTENDED EXPONENT
U 3244, 3245,3200,0003,0000,0022,0710,0003	; 7313		AR_MEM, CLR MQ
U 3245, 3246,0001,0400,0202,1000,0410,0000	; 7314		SC_EXP, ARX_AR, CLR AR	;correct the expoent, save a copy in the ARX
U 3246, 3247,4001,0007,0000,0000,1010,0165	; 7315		FM[E1]_AR		;no sticky bits here.
U 3247, 3250,4001,0000,2400,2001,0010,0200	; 7316		EXP_SC			;put the "positive" exponent back IN THE AR.
U 3250, 3251,0303,7000,0000,0020,0010,0000	; 7317		AR_AR*.5		;must move exponent into AR4-11
U 3251, 3252,3703,7000,0000,0000,0010,0000	; 7318		AR_AR*.25		;  done.
U 3252, 3253,0001,0040,0000,0000,0410,0000	; 7319		BR/AR, CLR AR		;exp to BR.
U 3253, 3254,4001,0000,0000,0000,0110,0160	; 7320		AR0-8_#, #/160		;put 1600 in the AR for exp conversion
U 3254, 3255,0602,2004,0301,0020,0010,0775	; 7321		AR_AR+BR, FE_#, #/-3	;convert exp, set initial exp correction
U 3255, 3256,4001,4007,0000,2000,1010,0172	; 7322		FM[T2]_AR, AR_ARX	;save exp for ENORM, frac to AR
U 3256, 3257,4001,0000,0000,1001,0610,0240	; 7323		EXP_SIGN.C, ARX_0.M	;get rid of exp, clear low word
						; 7324		GEN AR, SC_#, #/3, NORM,;normalize an extended exponent number
U 3257, 1520,3703,0000,0302,0040,0035,0003	; 7325			J/ENORM
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 9
; EXTEXP.MIC[10,5351]	19:52 24-Jul-85			GFLT DATA CONVERSION INSTRUCTIONS			

						; 7326	
						;;7327	.IF/GFTCNV		;[273]
						;;7328	L-GTIN:	VMA_AR, LOAD AR		;23-26. fetch high word.
						;;7329		AR_MEM, MQ_0.S,		;word in AR, init MQ.
						;;7330			VMA_VMA+1	;prepare to fetch low word.
						;;7331		GEN AR, SKP AD NE	;is high word all zeroes ?
						;;7332	=0	CLR ARX, EXIT DBL	;high word zero, store zeroes.
						;;7333		LOAD ARX, B DISP	;fetch low word, call appropriate routine.
						;;7334	
						;;7335	=000	ARX_MEM, J/L-G23	;do GDP to DP integer, truncate.
						;;7336	=010	ARX_MEM, J/L-G24	;do GDP to SP integer, truncate.
						;;7337	=100	ARX_MEM, J/L-G25	;do GDP to DP integer, rounded.
						;;7338	=110	ARX_MEM, J/L-G26	;do GDP to SP integer, rounded.
						;;7339	=				;terminate this dispatch block.
						;;7340	
						;;7341	;DGFIX needs the sticky bit fix.
						;;7342	=0010
						;;7343	L-G23:	FE_#, #/70.,		;-23- DGFIX GDP to double integer, truncate.
						;;7344			CALL [ETXIX]	;do the conversion
						;;7345	=0110	EXIT DBL		;store results.
						;;7346	=0111	BR_AR LONG, AR_ARX,	;save high 2 words in BR!BRX, MSB of
						;;7347			ARX/MQ,		;fraction to AR35. Rest of fraction to ARX.
						;;7348			SC_#, #/35.,	;get fraction all together.
						;;7349			CALL [EF12A]
						;;7350	=1111	GEN AR, SKP AD NE,	;any fraction bits on ?
						;;7351			MQ_0.S		;[240]CLEAR MQ00 FOR ARX_2 MACRO.
						;;7352	=0	AR_BR LONG, J/ST2AC	;no, leave answer alone.
						;;7353		CLR AR, ARX_2		;yes, add 1 to integer part.
						;;7354		AR_AR+BR LONG, J/ST2AC	;store result.
						;;7355	
						;;7356	;GFIX needs the sticky bit fix.
						;;7357	=0010
						;;7358	L-G24:	FE_#, #/35.,		;-24- GFIX GDP to single integer, truncate.
						;;7359			CALL [ETXIX]	;do the conversion
						;;7360	=0110
						;;7361	L-GTS2:	SKP AR NE, J/OVTEST	;test for sign bits in AR and store.
						;;7362	=0111	BR_AR LONG, AR_ARX,	;save in BR!BRX.
						;;7363			ARX/MQ,		;add one to integer part of negative number
						;;7364			SC_#, #/35.,	;if fraction is not zero.
						;;7365			CALL [EF12A]
						;;7366	=1111	GEN AR, SKP AD NE,	;is fraction zero ?
						;;7367			MQ_0.S		;[240]CLEAR MQ00 FOR ARX_2 MACRO.
						;;7368	=0	AR_BR LONG, SKP AD NE,	;yes, try to store the result.
						;;7369			J/OVTEST
						;;7370		CLR AR, ARX_2		;no, add one to integer part.
						;;7371		AR_AR+BR LONG, SKP AD NE,; do the add and test that the high
						;;7372			J/OVTEST	;word is all sign bits.
						;;7373	
						;;7374	=011
						;;7375	L-G25:	FE_#, #/70.,		;-25- DGFIXR GDP to double integer, rounded.
						;;7376			CALL [ETXIX]	;do the conversion
						;;7377	=111	BR_AR LONG, CLR AR,	;save in BR!BRX, round by adding one half
						;;7378			ARX_1,		;to result. Remember that the MSB of the
						;;7379			SC_#, #/35.	;store routine expects this.
						;;7380		AR_AR+BR LONG, AD FLAGS	;fraction is on ARX35.  Do the rounding and
						;;7381	;=0	; replace SKP CRY0 with AD FLAGS. Eliminates extra word.
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 9-1
; EXTEXP.MIC[10,5351]	19:52 24-Jul-85			GFLT DATA CONVERSION INSTRUCTIONS			

						;;7382		EXIT DBL		;  store the double result.
						;;7383	;	SET AROV, I FETCH, J/NOP;rounding caused an overflow - too bad!
						;;7384	
						;;7385	=011
						;;7386	L-G26:	FE_#, #/35.,		;-26- GFIXR GDP to single integer, rounded.
						;;7387			CALL [ETXIX]	;do the conversion.
						;;7388	=111	BR_AR LONG, CLR AR,	;save in CR!BRX, round by adding one half
						;;7389			ARX_1,		;to result. MSB of the fraction is in ARX35.
						;;7390			SC_#, #/35.	;store routine expects this.
						;;7391		AR_AR+BR LONG, SKP AD NE,;do the rounding.
						;;7392			J/OVTEST	;figure out what, if any, to store.
						; 7393	.ENDIF/GFTCNV		;[273]
						; 7394	L-FLTR:	VMA_AR, LOAD AR,	;-27- DGFLTR DP INTEGER to EDPFP
U 3260, 3261,3703,0000,0301,0312,0010,0137	; 7395			FE_#, #/137	;inital fugde factor for exp
U 3261, 1464,3200,0003,0000,0022,0022,0100	; 7396		AR_MEM, MQ_0.S		;get high word into the AR.
						; 7397	=0*	VMA_VMA+1, LOAD ARX,	;get the low word into the ARX,
U 1464, 0770,0001,0040,0000,0013,3650,0000	; 7398			BR/AR, CALL [XFERW]; and save the high word in the BR.
U 1466, 3262,3721,0500,0000,0000,0410,0000	; 7399	=1*	ARX_ARX*2, CLR AR	;ignore the sign copy.
U 3262, 3263,4001,0007,0000,0000,1010,0165	; 7400		FM[E1]_AR		;no sticky bits here.
U 3263, 3264,4001,0000,0000,0000,0110,0200	; 7401		AR0-8_#, #/200		;ENORM expects the exponent in T2.
						; 7402		FM[T2]_AR, AR_BR,	;and save it in T2.
U 3264, 3265,3202,2217,0000,2000,1010,0172	; 7403			ARX/AD, MQ_ARX	;sign to AR, high to ARX, low to MQ.
U 3265, 3266,5441,2000,0000,0020,0016,0000	; 7404		AR_SIGN 		;
U 3266, 1520,3701,0000,0000,0040,0035,0000	; 7405		GEN AR, NORM, J/ENORM	;restore high word and normalize.
						; 7406	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 10
; EXTEXP.MIC[10,5351]	19:52 24-Jul-85			GFLT DATA CONVERSION INSTRUCTIONS			

						; 7407	
						; 7408	L-DFLT:	VMA_AR, LOAD AR,	;-30- GFLTRSP INTEGER to EDPFP
U 3267, 3270,3701,0000,0301,0312,0010,0004	; 7409			FE_#, #/4	;initial fudge factor for exp.
U 3270, 3271,3240,0003,0000,0022,0710,0003	; 7410		AR_MEM, CLR MQ		;get the single precision op.
U 3271, 3272,5441,2400,0000,1020,0016,0000	; 7411		AR_SIGN, ARX_AR		;build a dummy high word of all sign.
U 3272, 3273,4001,0040,0000,0000,0410,0000	; 7412		BR/AR, CLR AR		;save sign, prepare for exponent.
U 3273, 3274,4001,0007,0000,0000,1010,0165	; 7413		FM[E1]_AR		;no sticky bits here.
U 3274, 3275,0001,0000,0000,0000,0110,0207	; 7414		AR0-8_#, #/207		;build an initial exp of 207 for ENORM
						; 7415		FM[T2]_AR, AR_BR,	;save exp for ENORM, restore sign word.
U 3275, 1520,3202,2007,0000,0040,1035,0172	; 7416			NORM, J/ENORM	;and normalize it.
						; 7417	
						; 7418	=0
						; 7419	L-DFSC:	AR_AC0, BR/AR, SKP AD0,	;-31- GFSC EDPFP SCALE
U 2502, 2412,3240,2040,0000,0020,5550,0000	; 7420			CALL [ISOEXP]	;get the exponent into the AR.
U 2503, 3276,3202,2040,0000,0000,0010,0000	; 7421		BR/AR, AR_BR		;put exp in BR, scale factor to AR.
						; 7422		AR_AR SWAP, GEN AC0,	;put scale in left half of AR.
U 3276, 2514,3200,4000,0000,3020,5610,0000	; 7423			SKP AD NE	;is high word zero ?
U 2514, 0061,4001,0000,0000,0001,0010,0170	; 7424	=0	AR+ARX+MQ_0.M, J/ST2AC	;yes, store zero as double result.
						; 7425		AR_SIGN, ARX_AR, SC_#,	;no, move sign and scale factor together.
U 2515, 3277,5401,2400,0302,1020,0016,0042	; 7426			#/34.
U 3277, 3300,0001,4000,0401,0000,0010,0000	; 7427		AR_SHIFT, CLR FE	;sign now in AR00, scale in AR 9-19.
U 3300, 3301,4001,0000,0000,1000,0022,0200	; 7428		EXP_SIGN		;scale sign is in AR00; extend it.
U 3301, 3302,0001,0000,0302,0000,0010,0010	; 7429		SC_#, #/8.		;move scale factor into AR 1-11 and
U 3302, 3303,3240,4201,0000,0020,0010,0000	; 7430		AR_SHIFT, ARX_AC1	; put the sign to left of scale factor.
U 3303, 3304,0602,2004,0000,0020,0710,0003	; 7431		AR_AR+BR, CLR MQ	;add exponent and scale factor.
U 3304, 0663,4001,0000,0000,1020,0007,0000	; 7432		SH/AR, DISP/SH0-3	;check for over and under flovs.
						; 7433	=0011
						; 7434	L-FSC2:	[AR]_[AR]*FM[EXPMSK],	;clear out non-exponent bits.
						; 7435			AD/ANDCB,	;and AR00 in the over or under flow case.
U 0663, 3305,3500,2007,4000,0020,0010,0164	; 7436			J/L-FSC3	; and continue
						; 7437	=0111	[AR]_[AR]*FM[EXPMSK],	;clear out non-exponent bits.
						; 7438			AD/ANDCB,	;
U 0667, 3305,3500,2007,4000,0020,0010,0164	; 7439			J/L-FSC3	; and continue
U 0673, 0663,0001,0000,0000,0000,1110,0620	; 7440	=1011	SET FLOV, J/L-FSC2	;you lose
U 0677, 0663,4001,0000,0000,0000,1110,0630	; 7441	=1111	SET FXU, J/L-FSC2	;ditto
						; 7442	
U 3305, 2520,3721,0507,0000,0000,1010,0172	; 7443	L-FSC3:	FM[T2]_AR, ARX_ARX*2	;save new exponent fofr ENORM.
						; 7444	=0	AR_AC0, SKP AD0,	;get the high word.
						; 7445			SC_#, #/3,	;for ENORM.
U 2520, 2420,3200,2000,0302,0020,5550,0003	; 7446			CALL [SGNEXT]	;and sign extend it for ENORM as well.
U 2521, 1520,3701,0000,0000,0040,0035,0000	; 7447		GEN AR, NORM, J/ENORM	;put the result back together.
						; 7448	
						; 7449	.ENDIF/EXTEXP
						; 7450	.ENDIF/MODEL.B
						; 7451	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 1
; BLT.MIC[10,5351]	19:52 24-Jul-85			XBLT							

						; 7452	.TOC	"XBLT"
						; 7453	
						; 7454	;HERE FROM EXTEND, ARX CONTAINS AC2
						; 7455	.IF/XADDR
						; 7456	
U 3306, 3307,3200,2001,0000,0020,1610,0216	; 7457	XBLT:	AR_AC1,SR_XBLT(SRC)		;[262] IN CASE OF INTERRUPT
						; 7458		BR/AR,BRX/ARX,MQ_AR,		;SRC ADDR TO BR, DST TO BRX
U 3307, 2522,3200,2070,0000,1020,5510,0000	; 7459			AR_AC0,SKP AD0,J/XBLT3	;GET LENGTH, TEST DIRECTION
						; 7460	=0
U 2522, 2560,3703,0010,0000,1040,5410,0000	; 7461	XBLT3:	SKP AR NE,MQ_AR,J/XBLT4
						; 7462		AR_MQ-1,ARX_ARX-1,		;DECR SRC & DST ADDR'S FOR DOWN
U 2523, 3310,1723,2600,0000,0352,0010,0000	; 7463			VMA/AD,LOAD AR		;GET FIRST WORD
						; 7464	
						; 7465	;HERE IS MAIN LOOP FOR XBLT, DOWNWARDS
						; 7466	
U 3310, 3311,3240,0013,0000,1022,1610,0316	; 7467	XBLTDN:	MQ_AR,AR_MEM,SR_XBLT(DST)	;WAIT FOR SOURCE WORD
U 3311, 3312,3713,0000,0000,0316,1610,0216	; 7468		VMA_ARX,STORE,SR_XBLT(SRC)	;STORE IT IN DESTINATION
U 3312, 2524,3723,2003,0000,0002,7010,0000	; 7469		MEM_AR,AR_MQ,SKP INTRPT		;WAIT, CHECK FOR INTRPT
						; 7470	=0	BR/AR,BRX/ARX,			;PUT DECREMENTED ADDR'S IN BR,X
U 2524, 2552,4660,2060,0000,0040,5410,0000	; 7471			AR_AC0+1,SKP CRY0,J/XBLTD1	;COUNT OFF LENGTH
U 2525, 3746,4640,2060,0000,0020,0010,0000	; 7472		BR/AR,BRX/ARX,AR_AC0+1,J/PGFAC0	;CLEANUP AND TAKE INTERRUPT
						; 7473	=0
						; 7474	XBLTD1:	AC0_AR,AR_MQ-1,ARX_ARX-1,	;STORE NEW LENGTH, GET NEXT ADDR
U 2552, 3310,1721,2600,0000,0352,1010,0000	; 7475			VMA/AD,LOAD AR,J/XBLTDN	; AND READ SRC WORD
						; 7476		AC0_AR,AR_ARX,ARX/MQ,		;DONE!  PUT ALL AWAY
U 2553, 3313,0001,4300,0000,2217,1010,0000	; 7477			I FETCH
U 3313, 2124,4001,4004,0000,2000,1010,0000	; 7478	XBLTX:	AC2_AR,AR_ARX,J/STRAC1
						; 7479	
						; 7480	;HERE FOR UPWARD BLT, TESTING FOR NON-ZERO LENGTH
						; 7481	
						; 7482	=0
U 2560, 0073,0001,0000,0000,0217,1610,0000	; 7483	XBLT4:	I FETCH,SR_0,J/NOP		;DO NOTHING IF AC =0
						; 7484		VMA_BR,LOAD AR,			;ELSE START RIGHT IN
U 2561, 3316,3242,0000,0000,0312,1610,0316	; 7485			SR_XBLT(DST),J/XBLTU1
						; 7486	
						; 7487	;HERE IS MAIN LOOP FOR XBLT, UPWARDS
						; 7488	
U 3314, 2562,1723,2003,0000,0042,5610,0000	; 7489	XBLTUP:	MEM_AR,AR_MQ-1,SKP AD NE	;COUNT EXHAUSTED?
						; 7490	=0	AC0_AR,ARX_BR+1,AR_BRX+1,	;YES.  GET FINAL ADDRESSES
U 2562, 3313,4642,6200,0000,0257,1010,0000	; 7491			I FETCH,J/XBLTX		; READY TO STORE
						; 7492		AC0_AR,MQ_AR,AR_BR+1,ARX_BRX+1,
U 2563, 3315,4662,2610,0000,1352,1010,0000	; 7493			VMA/AD,LOAD AR		;GET SOURCE WORD
U 3315, 3316,0001,0060,0000,0000,1610,0316	; 7494		BR/AR,BRX/ARX,SR_XBLT(DST)	;MUST BE SAVED PRIOR TO MBWAIT
U 3316, 2564,3200,0003,0000,0022,7010,0000	; 7495	XBLTU1:	AR_MEM,SKP INTRPT		;WAIT FOR SRC, TEST INTRPT
						; 7496	=0	VMA_ARX,STORE,			;COPY TO DST
U 2564, 3314,3713,0000,0000,0316,1610,0216	; 7497			SR_XBLT(SRC),J/XBLTUP	;LOOP
U 2565, 3747,3242,2600,0000,0000,1610,0000	; 7498		AR_BR LONG,SR_0,J/XBLTPF	;TAKE INTERRUPT
						; 7499	
						; 7500	.ENDIF/XADDR
						; 7501	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 2
; BLT.MIC[10,5351]	19:52 24-Jul-85			BLT							

						; 7502	.TOC	"BLT"
						; 7503	; ENTER WITH 0,E IN AR
						; 7504	
						; 7505	;IN THE LOOP, ARX CONTAINS THE CURRENT DESTINATION ADDRESS,
						; 7506	; BRX CONTAINS THE TERMINAL ADDRESS, AND BR CONTAINS THE DIFFERENCE
						; 7507	; BETWEEN THE SOURCE AND DESTINATION ADDRESSES.
						; 7508	
						; 7509	;UNLIKE EARLIER -10 PROCESSORS, THIS CODE CHECKS FOR THE CASE IN WHICH
						; 7510	; THE DESTINATION ADDRESS IN RH(AC) IS GREATER THAN E, AND RATHER THAN
						; 7511	; STOPPING AFTER ONE WORD, COPIES DOWNWARD (EFFECTIVELY DECREMENTING
						; 7512	; AC BY 1,,1 ON EACH STEP, RATHER THAN INCREMENTING).
						; 7513	
						; 7514	;THIS CODE ALSO PROVIDES A GUARANTEED RESULT IN AC ON COMPLETION OF
						; 7515	; THE TRANSFER (EXCEPT IN THE CASE AC IS PART OF BUT NOT THE LAST WORD
						; 7516	; OF THE DESTINATION BLOCK).  WHEN AC IS NOT PART OF THE DESTINATION
						; 7517	; BLOCK, IT IS LEFT CONTAINING THE ADDRESSES OF THE FIRST WORD FOLLOWING
						; 7518	; THE SOURCE BLOCK (IN THE LH), AND THE FIRST WORD FOLLOWING THE DEST-
						; 7519	; INATION BLOCK (IN THE RH).  IF AC IS THE LAST WORD OF THE DESTINATION
						; 7520	; BLOCK, IT WILL BE A COPY OF THE LAST WORD OF THE SOURCE BLOCK.
						; 7521	
						; 7522	;IN ADDITION, A SPECIAL-CASE CHECK IS MADE FOR THE CASE IN WHICH EACH
						; 7523	; WORD STORED IS USED AS THE SOURCE OF THE NEXT TRANSFER.  IN THIS CASE,
						; 7524	; ONLY ONE READ NEED BE PERFORMED, AND THAT DATA MAY BE STORED FOR EACH
						; 7525	; TRANSFER.  THUS THE COMMON USE OF BLT TO CLEAR CORE IS SPEEDED UP.
						; 7526	
						; 7527	;BLT:	ARX_AR,MQ_AR,ARR_AC0,ARL_ARL	;END TO ARX & MQ, DEST TO AR
						; 7528	BLT1:	BR/AR,ARX_AR,BRX/ARX,		;DST TO BR & ARX, END TO BRX
U 3317, 3320,3200,2460,0000,1020,0010,0000	; 7529			AR_AC0			;SRC TO ARL
						;;7530	.IFNOT/BLT.PXCT
						;;7531		ARR_ARL,ARL_BRL			;SRC TO ARR (SAME SECTION AS E)
						;;7532		AR_AR-BR			;SRC-DST TO ARR
						; 7533	.IF/BLT.PXCT
U 3320, 2566,3202,4000,0000,3001,7410,0002	; 7534		ARR_ARL,ARL_BRL.M,SKP P!S XCT	;SRC TO ARR (SAME SECTION AS E)
U 2566, 1574,5102,2004,0000,0020,0010,0000	; 7535	=0	AR_AR-BR,J/BLT2			;SRC-DST TO ARR
U 2567, 1634,5102,2000,0000,0020,0010,0000	; 7536		AR_AR-BR,J/BLTPXCT		;TREAT PXCT OF BLT SPECIAL
						; 7537	.ENDIF/BLT.PXCT
						;;7538	.IF/BACK.BLT
						;;7539		BR/AR,SKP ARX LE BRX		;SRC-DST TO BR. UP OR DOWN?
						;;7540	=00	AR_MQ-1,CALL,J/BLTAC		;DOWN, READY WITH E-1
						;;7541		AR_MQ+1,CALL,J/BLTAC		;UP, PUT E+1 IN AR FOR AC
						;;7542	DOWN:	LOAD VMA(EA)_ARX+BR,J/DN1	;DOWN, START THE LOOP
						; 7543	.IFNOT/BACK.BLT
						; 7544	=0*
U 1574, 3321,4023,2040,0000,0020,0050,0000	; 7545	BLT2:	BR/AR,AR_MQ+1,CALL,J/BLTAC	;SRC-DST TO BR, E+1 IN AR
						; 7546	.ENDIF/BACK.BLT
U 1576, 2570,4662,0000,0000,0040,5410,0000	; 7547		SKP BR EQ -1,J/UP		;IS THIS CORE CLEARING CASE?
						; 7548	
						; 7549	
						; 7550	;HERE TO SETUP FINAL AC
						; 7551	
U 3321, 3322,0602,2000,0000,3020,0610,0004	; 7552	BLTAC:	ARL_ARR,AR_AR+BR		;FINAL DEST TO LH, SRC TO RH
U 3322, 3323,0001,4000,0000,3000,1610,0707	; 7553		AR_AR SWAP,SR_BLT(SRC)
U 3323, 0002,0001,0000,0000,0000,1003,0000	; 7554	ACSETU:	AC0_AR,RETURN2			;[334] Used below as well
						; 7555	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 3
; BLT.MIC[10,5351]	19:52 24-Jul-85			BLT							

						; 7556	;HERE FOR UPWARD BLT (AC RH .LE. E)
						; 7557	=0
U 2570, 0761,0612,0000,0000,0131,0010,0402	; 7558	UP:	LOAD VMA(EA)_ARX+BR,J/UP1	;NOT CLEAR CORE
U 2571, 0760,0612,0004,0000,0131,7410,0402	; 7559		SKP P!S XCT,LOAD VMA(EA)_ARX+BR	;DO NOT OPTIMIZE UNDER EXT ADDR
						; 7560	
						; 7561	;USE EVEN LOC'NS OF THIS BLOCK OF 4 IN SPECIAL "CLEAR CORE" CASE
						; 7562	
U 0760, 3324,3200,0003,0000,0022,1650,0507	; 7563	=00	AR_MEM,CALL,SR_BLT(DST),J/UP2	;GET THE WORD TO STORE IN ALL
U 0761, 3324,3200,0003,0000,0022,1650,0507	; 7564	UP1:	AR_MEM,CALL,SR_BLT(DST),J/UP2	;GET SOURCE WORD
U 0762, 3324,0001,0000,0000,0000,1650,0507	; 7565		CALL,SR_BLT(DST),J/UP2		;HERE TO STORE SAME SRC AGAIN
U 0763, 0761,0612,0000,0000,0131,0010,0402	; 7566		LOAD VMA(EA)_ARX+BR,J/UP1	;HERE TO GET NEXT SRC
						; 7567	
U 3324, 2572,3711,0000,0000,0111,7010,0042	; 7568	UP2:	STORE VMA(EA)_ARX,SKP INTRPT	;OK, GET DST ADDRESS
						; 7569	=0
U 2572, 2574,5102,0000,0000,0040,5310,0000	; 7570	UP3:	SKP ARX LT BRX,J/UP4		;CHECK FOR LAST TRANSFER
U 2573, 3744,4001,0003,0000,0002,0010,0000	; 7571		MEM_AR,J/BLTPF			;FINISH THIS, GO SERVE INTRPT
						; 7572	=0
U 2574, 0073,4001,0003,0000,0217,0010,0000	; 7573	UP4:	FIN STORE,I FETCH,J/NOP		;THAT'S ALL, FOLKS
						; 7574		MEM_AR,ARX_ARX+1,		;STORE DST,
U 2575, 0002,4021,0603,0000,0022,1603,0707	; 7575			SR_BLT(SRC),RETURN2	; CONTINUE
						; 7576	
						; 7577	;BLT CONTINUED - HERE FOR DOWNWARD BLT (AC RH .GT. E)
						;;7578	.IF/BACK.BLT
						;;7579	
						;;7580	DN1:	AR_MEM,SR_BLT(DST)		;WAIT FOR SOURCE DATA
						;;7581		VMA_ARX,STORE,SKP INTRPT	;OK, START DST REF
						;;7582	=0	SKP ARX LE BRX,J/DN3		;CHECK FOR END CONDITION
						;;7583		MEM_AR,J/BLTPF			;FINISH STORE, TAKE INTRPT
						;;7584	=0
						;;7585	DN3:	MEM_AR,ARX_ARX-1,		;NOT END, LOOP
						;;7586			SR_BLT(SRC),J/DOWN
						;;7587		FIN STORE,I FETCH,J/NOP		;END
						; 7588	.ENDIF/BACK.BLT
						; 7589	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 4
; BLT.MIC[10,5351]	19:52 24-Jul-85			EXTENDED ADDRESSING CODE FOR PXCT OF BLT		

						; 7590	.TOC "EXTENDED ADDRESSING CODE FOR PXCT OF BLT"
						; 7591	
						; 7592	;THIS MUST BE SEPERATE CODE TO MAKE PXCT WORK NOTE THAT PXCT ONLY CAN
						; 7593	;BE USED IN SECTION 0 AND IN FACT WILL EVENTUALLY BE REMOVED FROM THERE
						; 7594	;HOPEFULLY THIS CODE CAN GO AWAY THE SPEC IS THAT PXCT OF BLT IS NOT DEFINED
						; 7595	;AND WILL NOT BE USED ON EXTENDED ADDRESSING MACHINES.
						; 7596	
						; 7597	.IF/BLT.PXCT
						; 7598	=0*
U 1634, 3325,4021,2040,0000,0020,0050,0000	; 7599	BLTPXCT:BR/AR,AR_MQ+1,CALL,J/BLTPX1	;SRC-DST TO BR, E+1 IN AR
U 1636, 0771,0612,0000,0000,0332,0010,0000	; 7600	UPPX:	VMA_ARX+BR,LOAD AR,J/UP1PX	;NOT CLEAR CORE
						; 7601						;CORE CLEARING NOT LEGAL
						; 7602	
						; 7603	
						; 7604	;HERE TO SETUP FINAL AC
						; 7605	
U 3325, 3326,0602,2004,0000,3020,0610,0004	; 7606	BLTPX1:	ARL_ARR,AR_AR+BR		;FINAL DEST TO LH, SRC TO RH
						; 7607		AR_AR SWAP,SR_BLT(PXCT SRC),
U 3326, 3323,4001,4000,0000,3000,1610,0307	; 7608			J/ACSETU		;[334] Use common return above
						; 7609	
						; 7610	;USE EVEN LOC'NS OF THIS BLOCK OF 4 IN SPECIAL "CLEAR CORE" CASE
						; 7611	
						; 7612	=00
						; 7613	=01
U 0771, 3327,3240,0003,0000,0022,1650,0107	; 7614	UP1PX:	AR_MEM,CALL,SR_BLT(PXCT DST),J/UP2PX	;GET SOURCE WORD
U 0772, 3327,4001,0000,0000,0000,1650,0107	; 7615		CALL,SR_BLT(PXCT DST),J/UP2PX	;HERE TO STORE SAME SRC AGAIN
U 0773, 0771,0612,0000,0000,0332,0010,0000	; 7616		VMA_ARX+BR,LOAD AR,J/UP1PX	;HERE TO GET NEXT SRC
						; 7617	
U 3327, 2576,3713,0000,0000,0316,7010,0000	; 7618	UP2PX:	VMA_ARX,STORE,SKP INTRPT	;OK, GET DST ADDRESS
						; 7619	=0
U 2576, 2600,5102,0000,0000,0040,5310,0000	; 7620	UP3PX:	SKP ARX LT BRX,J/UP4PX		;CHECK FOR LAST TRANSFER
U 2577, 3744,4001,0003,0000,0002,0010,0000	; 7621		MEM_AR,J/BLTPF			;FINISH THIS, GO SERVE INTRPT
						; 7622	=0
U 2600, 0073,4001,0003,0000,0217,0010,0000	; 7623	UP4PX:	FIN STORE,I FETCH,J/NOP		;THAT'S ALL, FOLKS
						; 7624		MEM_AR,ARX_ARX+1,		;STORE DST,
U 2601, 0002,4001,0603,0000,0022,1603,0307	; 7625			SR_BLT(PXCT SRC),RETURN2	; CONTINUE
						; 7626	.ENDIF/BLT.PXCT
						; 7627	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 1
; BYTE.MIC[10,5351]	19:52 24-Jul-85			Single Byte Instructions:  ILDB, LDB			

						; 7628		.TOC	"Single Byte Instructions:  ILDB, LDB"
						; 7629	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
						; 7630	;									;
						; 7631	;	The following code represents a complete overhauling of the	;
						; 7632	;	byte oriented PDP-10 instructions.  These instructions have	;
						; 7633	;	been reworked with one and two word global byte pointers in	;
						; 7634	;	mind.  Special emphasis has been placed on high speed oper-	;
						; 7635	;	ation of the one word byte pointers, even where	that has meant	;
						; 7636	;	spending a substantial amount of CRAM; TWGs, by contrast,	;
						; 7637	;	have just been made to work.					;
						; 7638	;									;
						; 7639	;	The approach used for OWLs has been to minimize the amount	;
						; 7640	;	of computation that is not overlapped with memory reference.	;
						; 7641	;	This has been done by carefully initializing the SC and FE	;
						; 7642	;	in such a manner that the next shift count can be computed	;
						; 7643	;	while the current shift is taking place.  The OWG code dis-	;
						; 7644	;	patches into CRAM tables which set up these counts.  This	;
						; 7645	;	requires a lot of CRAM (one word for each possible OWG for	;
						; 7646	;	both loading and depositing bytes), but it eliminates the	;
						; 7647	;	requirement for a memory access to look up that information	;
						; 7648	;	in the EPT.							;
						; 7649	;									;
						; 7650	;						--QQSV			;
						; 7651	;									;
						; 7652	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
						; 7653	
						; 7654	;
						; 7655	;	ILDB--Increment a byte pointer (in memory), then load the byte
						; 7656	;	it specifies into AC.
						; 7657	;	LDB--Load byte specified by byte pointer into AC.
						; 7658	;	The constraints immediately below are necessary to make IBP
						; 7659	;	work.
						; 7660	;
						; 7661		.DCODE
D 0134, 6500,0200				; 7662	134:	RW,	AC,	J/ILDB
D 0135, 4500,0204				; 7663		R,	AC,	J/LDB		;No write test for LDB
						; 7664		.UCODE
						; 7665	
						; 7666	=0****000000
						; 7667	ILDB:	ARX_AR,SC_P-#,#/37.,		;Save word for later dispatch
U 0200, 1642,4001,0400,5132,1020,0074,0045	; 7668			BYTE DISP,CALL [INCRBP]	; Test for OWG, increment BP
						; 7669	=100
						; 7670	LDB:	MEM_AR,ARX_AR,			;Await possible pointer store
U 0204, 0214,4001,0403,5132,1022,0034,0045	; 7671			SC_P-#,#/37.,BYTE DISP	; Save P; split OWL, OWG, TWG
						; 7672	=1100	GEN AR,EXT BYTE READ,SC_FE#,	;An OWG. Start reading the word
U 0214, 0733,3701,0000,0002,1131,0007,0620	; 7673			AR0-3 DISP,J/OWGLDB	; Split the low and high OWGs
						; 7674		MEM_AR,SET FPD,FE_S,		;A simple OWL. Save S and unwind
U 0215, 1154,2341,0003,2411,0002,1176,0100	; 7675			EA MOD DISP,CALL [LDEA]	; byte pointer EA
						; 7676		GEN AR,EXT BYTE READ,SC_FE#,	;An OWG (bit 12 is irrelevant)
U 0216, 0733,3701,0000,0002,1131,0007,0620	; 7677			AR0-3 DISP,J/OWGLDB	; Split the low and high OWGs
U 0217, 0234,4001,0003,0000,0002,7510,0000	; 7678		MEM_AR,SKP -VMA SEC0		;A TWG, maybe. Not in section 0
						; 7679	=11100	FE_S,SET FPD,
U 0234, 1154,2301,0000,2411,0000,1176,0100	; 7680			EA MOD DISP,CALL [LDEA]	;No TWGs in section 0 (treat as OWL)
U 0235, 0236,4001,0000,2411,0011,3610,0610	; 7681		FE_S,READ BP2			;Real TWG. Treat as global indirect
U 0236, 1130,4001,0000,0000,0000,1150,0100	; 7682		SET FPD,CALL [LEAIND]
						; 7683	=11111	FIN LOAD,SC_#-SC,#/-1,		;Wait for byte word. SC = 36-(P+S)
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 1-1
; BYTE.MIC[10,5351]	19:52 24-Jul-85			Single Byte Instructions:  ILDB, LDB			

U 0237, 2602,3240,0003,5302,0237,4710,0777	; 7684			SKP SC0,I FETCH		; Does byte go off the top?
						; 7685	=
						; 7686	=0	CLR FPD,ARX_AR,AR_0S,SC_FE+SC,	;Yes. Byte is at top of word; try
U 2602, 0064,3441,2400,2002,1020,5114,0000	; 7687			SKP SCAD0,J/SHFLOD	; to truncate it. Test if P off top
						; 7688	OWGLOD:	CLR FPD,ARX_SHIFT,AR_0S,	;Normal byte. Put at top of ARX;
U 2603, 0064,3441,2400,0002,0000,0014,0000	; 7689			SC_FE#,J/SHFLOD		; SC = S. Set for final shift
						; 7690	;
						; 7691	;	Load byte from an OWG.  Split P&S in range 45-57 octal (in which
						; 7692	;	case we optimize for a byte size of 6) or 60-77 (optimize for size
						; 7693	;	7.)  (Unfortunately, we can't reasonably optimize for size 8 bytes,
						; 7694	;	as they run from 54 to 60, thus including both ranges.)  The idea
						; 7695	;	here is to set up the shift counts that will be required for the
						; 7696	;	actual byte.  Thus, SC_36.-(P+S) and FE_S.
						; 7697	;
						; 7698	=1011
U 0733, 0240,4001,0000,0301,0020,0007,0006	; 7699	OWGLDB:	FE_#,#/6,SH DISP,J/OWGLOW	;Range is 45-57. Assume size 6
U 0737, 0260,4001,0000,0301,0020,0007,0007	; 7700		FE_#,#/7,SH DISP,J/OWGHIG	;Range is 60-77. Assume size 7
						; 7701	;
						; 7702	=00000
						; 7703	OWGLOW:					;Dummy label (40-44 are OWLs)
U 0245, 0701,3200,0003,0000,0237,0014,0000	; 7704	=00101	FIN LOAD,I FETCH,CLR FPD,J/SETZ	;45 S=6, P=36 (bad). Clear the AC
U 0246, 2603,3200,0003,0402,0237,0010,0000	; 7705		FIN LOAD,I FETCH,CLR SC,J/OWGLOD;46 S=6, P=30
U 0247, 2603,3240,0003,0302,0237,0010,0006	; 7706		FIN LOAD,I FETCH,SC_#,#/6,J/OWGLOD;47 S=6, P=24
U 0250, 2603,3240,0003,0302,0237,0010,0014	; 7707		FIN LOAD,I FETCH,SC_#,#/12.,J/OWGLOD;50 S=6, P=18
U 0251, 2603,3240,0003,0302,0237,0010,0022	; 7708		FIN LOAD,I FETCH,SC_#,#/18.,J/OWGLOD;51 S=6, P=12
U 0252, 2603,3240,0003,0302,0237,0010,0030	; 7709		FIN LOAD,I FETCH,SC_#,#/24.,J/OWGLOD;52 S=6, P=6
U 0253, 2603,3240,0003,0302,0237,0010,0036	; 7710		FIN LOAD,I FETCH,SC_#,#/30.,J/OWGLOD;53 S=6, P=0
						; 7711	
U 0254, 0701,3200,0003,0000,0237,0014,0000	; 7712		FIN LOAD,I FETCH,CLR FPD,J/SETZ	;54 S=8, P=36 (bad). Treat as SETZ
U 0255, 3330,4001,0000,0402,0000,0010,0000	; 7713		CLR SC,J/SIZE8L			;55 S=8, P=28. Correct the size
U 0256, 3330,4001,0000,0302,0000,0010,0010	; 7714		SC_#,#/8,J/SIZE8L		;56 S=8, P=20
U 0257, 3330,4001,0000,0302,0000,0010,0020	; 7715		SC_#,#/16.,J/SIZE8L		;57 S=8, P=12
U 0260, 3330,0001,0000,0302,0000,0010,0030	; 7716	OWGHIG:	SC_#,#/24.,J/SIZE8L		;60 S=8, P=4
						; 7717	
U 0261, 0701,3200,0003,0000,0237,0014,0000	; 7718		FIN LOAD,I FETCH,CLR FPD,J/SETZ	;61 S=7, P=36 (bad). Treat as SETZ
U 0262, 2603,3200,0003,0402,0237,0010,0000	; 7719		FIN LOAD,I FETCH,CLR SC,J/OWGLOD;62 S=7, P=29. Ready to shift
U 0263, 2603,3200,0003,0302,0237,0010,0007	; 7720		FIN LOAD,I FETCH,SC_#,#/7,J/OWGLOD;63 S=7, P=22
U 0264, 2603,3200,0003,0302,0237,0010,0016	; 7721		FIN LOAD,I FETCH,SC_#,#/14.,J/OWGLOD;64 S=7, P=15
U 0265, 2603,3200,0003,0302,0237,0010,0025	; 7722		FIN LOAD,I FETCH,SC_#,#/21.,J/OWGLOD;65 S=7, P=8
U 0266, 2603,3200,0003,0302,0237,0010,0034	; 7723		FIN LOAD,I FETCH,SC_#,#/28.,J/OWGLOD;66 S=7, P=1
						; 7724	
U 0267, 0701,3200,0003,0000,0237,0014,0000	; 7725		FIN LOAD,I FETCH,CLR FPD,J/SETZ	;67 S=9, P=36 (bad). Clear the AC
U 0270, 3331,0001,0000,0402,0000,0010,0000	; 7726		CLR SC,J/SIZE9L			;70 S=9, P=27. Correct size
U 0271, 3331,4001,0000,0302,0000,0010,0011	; 7727		SC_#,#/9,J/SIZE9L		;71 S=9, P=18
U 0272, 3331,4001,0000,0302,0000,0010,0022	; 7728		SC_#,#/18.,J/SIZE9L		;72 S=9, P=9
U 0273, 3331,4001,0000,0302,0000,0010,0033	; 7729		SC_#,#/27.,J/SIZE9L		;73 S=9, P=0
						; 7730	
U 0274, 0701,3200,0003,0000,0237,0014,0000	; 7731		FIN LOAD,I FETCH,CLR FPD,J/SETZ	;74 S=18, P=36 (bad). Clear AC
U 0275, 0514,3200,0003,0000,0237,0014,0000	; 7732		FIN LOAD,I FETCH,CLR FPD,J/HLRZ	;75 S=18, P=18. This is HLRZ, folks
U 0276, 0414,3240,0003,0000,0237,0014,0000	; 7733		FIN LOAD,I FETCH,CLR FPD,J/HRRZ	;76 S=18, P=0. Same as HRRZ
						; 7734	
U 0277, 1137,3200,0003,0000,0022,0010,0000	; 7735		AR_MEM,J/ILLOWG			;77 Illegal. Force UUO
						; 7736	;
U 3330, 2603,3200,0003,0301,0237,0010,0010	; 7737	SIZE8L:	FIN LOAD,I FETCH,FE_#,#/8,J/OWGLOD;Fix up all size 8 bytes
U 3331, 2603,3240,0003,0301,0237,0010,0011	; 7738	SIZE9L:	FIN LOAD,I FETCH,FE_#,#/9,J/OWGLOD;Do the same for size 9
						; 7739	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 2
; BYTE.MIC[10,5351]	19:52 24-Jul-85			Single Byte Instructions:  DPB, IDPB			

						; 7740		.TOC	"Single Byte Instructions:  DPB, IDPB"
						; 7741	;
						; 7742	;	IDPB--Increment a byte pointer (in memory), then store the rightmost
						; 7743	;	bits of the AC into the byte it specifies.
						; 7744	;	DPB--Store the rightmost bits of the AC into byte specified by
						; 7745	;	pointer.
						; 7746	;	The constraints immediately below are necessary to make IBP
						; 7747	;	work.
						; 7748	;
						; 7749		.DCODE
D 0136, 6601,0300				; 7750	136:	RW,	M,	J/IDPB
D 0137, 4601,0304				; 7751		R,	M,	J/DPB		;No write test if no increment
						; 7752		.UCODE
						; 7753	
						; 7754	=0****000000
						; 7755	IDPB:	ARX_AR,SC_P-#,#/37.,BYTE DISP,	;Save for dispatch later, test
U 0300, 1642,4001,0400,5132,1020,0074,0045	; 7756			CALL [INCRBP]		; for OWG, increment pointer
						; 7757	=100
						; 7758	DPB:	MEM_AR,ARX_AR,SC_P-#,#/37.,	;Await possible pointer store
U 0304, 0314,0001,0403,5132,1022,0034,0045	; 7759			BYTE DISP		; Save P; test OWL, OWG, TWG
						; 7760	=1100	GEN AR,EXT BYTE RPW,SC_FE#,	;An OWG. Start byte read; SC_2
U 0314, 0753,3701,0000,0002,1131,0007,0760	; 7761			AR0-3 DISP,J/OWGDPB	; Split into OWG groups
						; 7762		MEM_AR,SET FPD,FE_-S,		;An OWL. Save byte size
U 0315, 1234,2341,0003,5411,0002,1136,0100	; 7763			EA MOD DISP,J/DPEA	; and compute byte word address
						; 7764		GEN AR,EXT BYTE RPW,SC_FE#,	;An OWG. See above
U 0316, 0753,3701,0000,0002,1131,0007,0760	; 7765			AR0-3 DISP,J/OWGDPB	; (Bit 12 is irrelevant here)
U 0317, 2604,4001,0003,0000,0002,7510,0000	; 7766		MEM_AR,SKP -VMA SEC0,J/DEPTWG	;Maybe a TWG. Never in section 0
						; 7767	=11110
U 0336, 3333,3240,0010,1401,0020,0713,0003	; 7768	GUDSIZ:	FE_-SC-1,SC_FE,MQ_FM[AC0],J/DEPBYT;Copy byte to MQ; FE_36-P, SC_-S
U 0337, 0336,0001,0000,2301,0000,0010,0001	; 7769		FE_#+SC,#/1,J/GUDSIZ		;Size too large. Force to 36-P
						; 7770	=
						; 7771	=0
						; 7772	DEPTWG:	MEM_AR,SET FPD,FE_-S,		;No TWGs allowed in section 0
U 2604, 1234,2341,0003,5411,0002,1136,0100	; 7773			EA MOD DISP,J/DPEA
U 2605, 3332,0001,0000,5411,0011,3610,0610	; 7774		FE_-S,READ BP2			;A TWG. Start reading second word
U 3332, 1140,4001,0000,0000,0000,1110,0100	; 7775		SET FPD,J/DEAIND		;And dive into indirection loop
						; 7776	;
						; 7777	;	At this point, we have FE = 36-P and SC = -S with memory being
						; 7778	;	loaded into both AR and ARX.  Also, both S and P have been forced
						; 7779	;	into the range 0:36.  The deposit is done with three shifts:
						; 7780	;
						; 7781	;	Shift 1:  AR and ARX have memory; shift count = 36-P
						; 7782	;	Shift 2:  AR has byte to deposit, ARX has previous shift;
						; 7783	;		  shift count = 36-S
						; 7784	;	Shift 3:  AR and ARX have previous shift; shift count = P+S
						; 7785	;
						; 7786	DEPBYT:	AR_MEM,ARX_MEM,TIME/3T,		;Wait for memory load
U 3333, 3334,3200,0003,2301,0022,0013,0044	; 7787			SC_FE,FE_#+SC,#/36.	;SC_36-P, FE_36-S
						; 7788	DEPOWG:	AR_MQ,ARX_SHIFT,		;Fetch byte, do first shift
U 3334, 3335,3721,2400,5301,0000,0013,0110	; 7789			SC_FE,FE_#-SC,#/72.	;SC_36-S, FE_72-(36-P) = 36+P
U 3335, 3336,0001,4400,5002,0000,0010,0000	; 7790		AR_SHIFT,ARX_SHIFT,SC_FE-SC	;Next shift; SC_(36+P)-(36-S) = P+S
						; 7791	RELMEM: AR_SHIFT,STORE,CLR FPD,
U 3336, 0066,4001,4000,0000,0016,1614,0000	; 7792			SR_0,J/STMEM		;Last shift; store and clear FPD
						; 7793	;
						; 7794	;	Deposit byte with an OWG.  Once again, P&S gets split into the
						; 7795	;	ranges 45-57 octal (optimized for size 6) and 60-77 (optimized
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 2-1
; BYTE.MIC[10,5351]	19:52 24-Jul-85			Single Byte Instructions:  DPB, IDPB			

						; 7796	;	for size 7).  In addition to setting SC to 36-P and FE to 36-S,
						; 7797	;	this code also copies AC to MQ.  Since MQ_FM[] uses the # field,
						; 7798	;	this is accomplished by reading the AC into ARX and then copying
						; 7799	;	it to the MQ just before the cache can step on ARX with the
						; 7800	;	byte data.  The timing for this is a tad hairy, but it seems to
						; 7801	;	work.
						; 7802	;
						; 7803	=1011
						; 7804	OWGDPB:	ARX_FM[AC0],FE_#,#/30.,SH DISP,	;Low range OWG. Assume size 6
U 0753, 0340,3240,0200,0301,0020,0007,0036	; 7805			TIME/3T,J/ODLOW		;Fetch byte to store
						; 7806		ARX_FM[AC0],FE_#,#/29.,SH DISP,	;High range. Assume size 7
U 0757, 0360,3200,0200,0301,0020,0007,0035	; 7807			TIME/3T,J/ODHIGH
						; 7808	;
						; 7809	=00000
						; 7810	ODLOW:					;Another dummy (40-44 are OWLs)
U 0345, 3336,3240,0003,0402,0022,0010,0000	; 7811	=00101	AR_MEM,CLR SC,J/RELMEM		;45 S=6, P=36 (bad). Release memory
U 0346, 3334,3240,0013,0302,2022,0010,0006	; 7812		MQ_ARX,AR_MEM,SC_#,#/6,J/DEPOWG	;46 S=6, P=30. Copy byte to MQ
U 0347, 3334,3240,0013,0302,2022,0010,0014	; 7813		MQ_ARX,AR_MEM,SC_#,#/12.,J/DEPOWG;47 S=6, P=24
U 0350, 3334,3240,0013,0302,2022,0010,0022	; 7814		MQ_ARX,AR_MEM,SC_#,#/18.,J/DEPOWG;50 S=6, P=18
U 0351, 3334,3240,0013,0302,2022,0010,0030	; 7815		MQ_ARX,AR_MEM,SC_#,#/24.,J/DEPOWG;51 S=6, P=12
U 0352, 3334,3240,0013,0302,2022,0010,0036	; 7816		MQ_ARX,AR_MEM,SC_#,#/30.,J/DEPOWG;52 S=6, P=6
U 0353, 3334,3240,0013,0302,2022,0010,0044	; 7817		MQ_ARX,AR_MEM,SC_#,#/36.,J/DEPOWG;53 S=6, P=0
						; 7818	
U 0354, 3336,3240,0003,0402,0022,0010,0000	; 7819		AR_MEM,CLR SC,J/RELMEM		;54 S=8, P=36. Just release memory
U 0355, 3337,0001,0010,0302,2000,0010,0010	; 7820		MQ_ARX,SC_#,#/8,J/SIZE8D	;55 S=8, P=28. Copy byte, fix size
U 0356, 3337,0001,0010,0302,2000,0010,0020	; 7821		MQ_ARX,SC_#,#/16.,J/SIZE8D	;56 S=8, P=20
U 0357, 3337,4001,0010,0302,2000,0010,0030	; 7822		MQ_ARX,SC_#,#/24.,J/SIZE8D	;57 S=8, P=12
U 0360, 3337,0001,0010,0302,2000,0010,0040	; 7823	ODHIGH:	MQ_ARX,SC_#,#/32.,J/SIZE8D	;60 S=8, P=4
						; 7824	
U 0361, 3336,3240,0003,0402,0022,0010,0000	; 7825		AR_MEM,CLR SC,J/RELMEM		;61 S=7, P=36 (bad). Release memory
U 0362, 3334,3200,0013,0302,2022,0010,0007	; 7826		MQ_ARX,AR_MEM,SC_#,#/7,J/DEPOWG	;62 S=7, P=29. Copy byte to MQ
U 0363, 3334,3200,0013,0302,2022,0010,0016	; 7827		MQ_ARX,AR_MEM,SC_#,#/14.,J/DEPOWG;63 S=7, P=22
U 0364, 3334,3200,0013,0302,2022,0010,0025	; 7828		MQ_ARX,AR_MEM,SC_#,#/21.,J/DEPOWG;64 S=7, P=15
U 0365, 3334,3200,0013,0302,2022,0010,0034	; 7829		MQ_ARX,AR_MEM,SC_#,#/28.,J/DEPOWG;65 S=7, P=8
U 0366, 3334,3200,0013,0302,2022,0010,0043	; 7830		MQ_ARX,AR_MEM,SC_#,#/35.,J/DEPOWG;66 S=7, P=1
						; 7831	
U 0367, 3336,3240,0003,0402,0022,0010,0000	; 7832		AR_MEM,CLR SC,J/RELMEM		;67 S=9, P=36, no good. Let go!
U 0370, 3340,4001,0010,0302,2000,0010,0011	; 7833		MQ_ARX,SC_#,#/9,J/SIZE9D	;70 S=9, P=27. Copy byte, fix size
U 0371, 3340,4001,0010,0302,2000,0010,0022	; 7834		MQ_ARX,SC_#,#/18.,J/SIZE9D	;71 S=9, P=18
U 0372, 3340,4001,0010,0302,2000,0010,0033	; 7835		MQ_ARX,SC_#,#/27.,J/SIZE9D	;72 S=9, P=9
U 0373, 3340,4001,0010,0302,2000,0010,0044	; 7836		MQ_ARX,SC_#,#/36.,J/SIZE9D	;73 S=9, P=0
						; 7837	
U 0374, 3336,3240,0003,0402,0022,0010,0000	; 7838		AR_MEM,CLR SC,J/RELMEM		;74 S=18, P=36. Just unpause memory
U 0375, 0114,3240,0003,0000,0022,0014,0000	; 7839		AR_MEM,CLR FPD,J/HRLM		;75 S=18, P=18. Treat as HRLM
U 0376, 0106,3240,0003,0000,0022,0014,0000	; 7840		AR_MEM,CLR FPD,J/HLL		;76 S=18, P=0. Treat as HRRM
						; 7841	
U 0377, 1137,3200,0003,0000,0036,0010,0000	; 7842		FIN LOAD,STORE,J/ILLOWG		;77 Illegal byte pointer. UUO it
						; 7843	;
U 3337, 3334,3200,0003,0301,0022,0010,0034	; 7844	SIZE8D:	AR_MEM,FE_#,#/28.,J/DEPOWG	;Fix FE for size 8 bytes
U 3340, 3334,3240,0003,0301,0022,0010,0033	; 7845	SIZE9D:	AR_MEM,FE_#,#/27.,J/DEPOWG	;Same for size 9
						; 7846	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 3
; BYTE.MIC[10,5351]	19:52 24-Jul-85			Single Byte Instructions:  IBP, ADJBP			

						; 7847		.TOC	"Single Byte Instructions:  IBP, ADJBP"
						; 7848	;
						; 7849	;	IBP--Increment a byte pointer (in memory).
						; 7850	;	ADJBP--Adjust a one or two word byte pointer from memory by an
						; 7851	;	amount specified by the (non zero) AC.
						; 7852	;	Both of these instructions key off of the same op code (133);
						; 7853	;	they are distinguished by ADJBP having a non zero AC field.
						; 7854	;
						; 7855	;	The IBP case is rather simple.
						; 7856	;
						; 7857		.DCODE
D 0133, 4001,1503				; 7858	133:	R,		J/IBP		;IBP and ADJBP--must adjoin FSC
						; 7859		.UCODE
						; 7860	
						; 7861	1503:					;[345] In same block of 8 as FSC
U 1503, 0032,3401,0200,5132,0000,4610,0045	; 7862	IBP:	SC_P-#,#/37.,ARX_0S,SKP AC EQ 0	;[407] Test for OWG. IBP or ADJBP?
						; 7863	=11010
U 0032, 2606,4001,0010,5412,2000,4710,0000	; 7864	IBPTST:	SC_-S,MQ_ARX,SKP SC0,J/ADJBP	;[407] ADJBP. Clear MQ0. OWG?
U 0033, 1642,4001,0000,0000,0000,4750,0000	; 7865		SKP SC0,CALL [INCRBP]		;IBP. Test for OWG and do it
U 0037, 0073,0001,0003,0000,0217,0014,0000	; 7866	=11111	FIN STORE,CLR FPD,I FETCH,J/NOP	;Tidy up and leave
						; 7867	;
						; 7868	;	ADJBP is handled separately for OWGs and OWL/TWGs.  We consider
						; 7869	;	the latter case first.
						; 7870	;	Step 1:  figure out the byte capacity of a word.  This is broken
						; 7871	;	into the capacity to the left of the current byte (including the
						; 7872	;	byte itself) and the capacity to the right of the byte.  If these
						; 7873	;	add up to zero, then the byte can't fit in a word, and we return
						; 7874	;	to the user with no divide set.  If the byte size is zero, we
						; 7875	;	return with the pointer as is.
						; 7876	;	For this version, we compute the capacities by using repeated
						; 7877	;	subtraction.  Since the numbers involved are typically no greater
						; 7878	;	than five or six (and are never bigger than 36) this will be faster
						; 7879	;	than division.
						; 7880	=0
U 2606, 1050,4041,0500,0101,1020,0007,0000	; 7881	ADJBP:	FE_P,ARX_2+MQ0,AR0-3 DISP,J/ADJOWG;[407] OWG. Split on range
U 2607, 2610,3401,0200,0103,0000,4710,0000	; 7882		FE_P,SC/SCAD,ARX_0S,SKP SC0	;OWL/TWG. Is the size zero?
U 2610, 2624,4001,0000,0000,0000,7510,0000	; 7883	=0	SKP -VMA SEC0,J/OWLCPY		;Yes. Test for possible TWG
U 2611, 2612,0001,0010,5011,2020,5110,0000	; 7884		MQ_ARX,FE_FE-S,SKP SCAD0	;No. Clear MQ. Bytes to the right?
						; 7885	=0
						; 7886	CAPLOW:	ARX_ARX+1,FE_FE-S,SKP SCAD0,	;Yes. Count the byte and look
U 2612, 2612,4021,0600,5011,0020,5110,0000	; 7887			J/CAPLOW		; for another one
						; 7888		BR/AR,BRX/ARX,ARX_-2+MQ0,	;No more. Save count and pointer
U 2613, 2614,2301,0560,5300,3000,0110,0044	; 7889			P_#-SC,#/36.		; and set up next count
						; 7890	=0
						; 7891	CAPHGH:	P_P-S,ARX_ARX+1,SKP SCAD0,	;Count possible byte on left,
U 2614, 2614,4021,0600,5110,3021,5110,0200	; 7892			J/CAPHGH		; saving alignment info
U 2615, 3341,4602,6007,0000,0020,1010,0166	; 7893		T0_AR,AR_ARX+BRX+1		;All counted. Get total capacity
U 3341, 2616,3703,0000,0000,0020,5610,0000	; 7894		SKP AR NZ			;Will any bytes fit into word?
U 2616, 0413,0001,0000,0000,0217,0010,0000	; 7895	=0	I FETCH,J/NODIVD		;No. This is pretty silly
						; 7896	;
						; 7897	;	Step 2:  generate a modified adjustment count and compute the
						; 7898	;	number of words to move and the relative byte position within
						; 7899	;	the word.  All adjustments are done relative to the first byte
						; 7900	;	in the word, so that the resulting quotient is the actual
						; 7901	;	number of words to add to the base address.  If the adjustment
						; 7902	;	is negative, however, we must back up the quotient by one and
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 3-1
; BYTE.MIC[10,5351]	19:52 24-Jul-85			Single Byte Instructions:  IBP, ADJBP			

						; 7903	;	offset the remainder by the capacity if it is non zero.
						; 7904	;
						; 7905	;	In order to speed up the division, the absolute value of the
						; 7906	;	modified adjustment is broken into ranges of up to 63, 64 to
						; 7907	;	2**18-1, and 2**18 or greater.  This lets us use step counts of
						; 7908	;	7, 19, and 36, respectively, saving a lot of time for the most
						; 7909	;	common cases.
						; 7910	;
						; 7911	;	For this portion of the work, OWGs and OWLs are identical.
						; 7912	;
U 2617, 3342,0610,0200,0302,0020,0010,0036	; 7913	ADJOIN:	ARX_ARX+FM[AC0],SC_#,#/30.	;Compute modified adjustment
						; 7914		T1_AR,BR/AR,AR_ARX,BRX/ARX,	;Divisor is capacity. Is modified
U 3342, 0767,3401,4267,0000,2000,1032,0171	; 7915			ARX_0S,SIGNS DISP,TIME/2T; adjustment negative?
						; 7916	=0111	AC0_AR,BRX/ARX,ARX_AR (AD),	;No. Clear BRX; use adjustment as
						; 7917			ARL_ARL.S,ARR+MQ_0.S,	; dividend, and look at high order
U 0767, 3343,3703,0220,0000,0000,1022,0110	; 7918			J/POSADJ		; half of dividend for speedup
						; 7919		AC0_AR,BRX/ARX,ARX_-BRX,	;Yes. Negate adjustment for both
U 0777, 3343,5142,0620,0000,0020,1022,0116	; 7920			ARL/ADX,ARR+MQ_0.S	; dividend and test
						; 7921	POSADJ:	AR_ARX (ADX),ARX_SHIFT,		;Generate high order 30 bits of
U 3343, 2620,3703,6400,0301,0020,5610,0044	; 7922			FE_#,#/36.,SKP AR NZ	; dividend. Are high 18 bits zero?
						; 7923	=0	ARX_SHIFT,SC_FE,		;Yes. Align low six bits to top of
U 2620, 1562,3713,0400,0000,0020,5613,0000	; 7924			SKP ARX NZ,J/SMALDV	; word. Is that enough?
U 2621, 1560,0301,0200,0301,0020,0413,0041	; 7925		ARX_AR*2,CLR AR,FE_#,#/33.,SC_FE;Need long division. Align dividend
						; 7926	=000
						; 7927	ADJDIV:	DIVIDE,AR_2(AR-BR),ARX/ADX*2,	;Do first divide step
U 1560, 0462,5102,5504,3001,0020,0071,0000	; 7928			CALL [DIVS3]		; and call subroutine for the rest
						; 7929	=010
U 1562, 0454,3401,2000,0301,0000,0050,0004	; 7930	SMALDV:	AR_0S,FE_#,#/4,CALL [DIVS1]	;Very short division is adequate
						; 7931		ARX_AR SWAP,AR_0S,FE_#,#/16.,	;Medium size needed. Put significant
U 1563, 1560,3441,2400,0301,3000,0010,0020	; 7932			J/ADJDIV		; dividend bits in proper spot
						; 7933	;
						; 7934	;	Return from division is either 6 (negative dividend) or 7
						; 7935	;	(non negative dividend).  We tuck the negative offset code in
						; 7936	;	at 4 and 5 for convenience.
						; 7937	;
U 1564, 1567,5142,0600,0000,0020,0010,0000	; 7938	NEGADJ:	ARX_-BRX,J/ADJUST		;Zero remainder. Negate quotient
U 1565, 1567,0600,2007,0000,0020,0010,0171	; 7939		AR_AR+FM[T1],J/ADJUST		;Non zero. Offset by capacity
						; 7940	;
						; 7941	;	On exit from division, AR has the signed remainder and ARX and
						; 7942	;	BRX have the positive quotient.  If the dividend was negative,
						; 7943	;	we must either negate the quotient or negate and subtract one
						; 7944	;	(thus one's complementing it) depending upon whether there was
						; 7945	;	a non zero remainder.
						; 7946	;
U 1566, 1564,2542,0600,0000,0000,4510,0000	; 7947		ARX_BRX COMP,SKP AR0,J/NEGADJ	;Negative dividend. Complement
						; 7948						; quotient and test remainder
						; 7949	;
						; 7950	;	Step 3:  add the final quotient to the address, and offset the
						; 7951	;	byte into the word by the adjusted remainder.  To do this, we
						; 7952	;	must finally differentiate an OWL from a TWG.  (Recall that we
						; 7953	;	saved most of the original byte pointer (including bit 12) in
						; 7954	;	T0 before we did the division.)  In any event, for an OWL we
						; 7955	;	add the quotient to the right half of the byte pointer; for a
						; 7956	;	TWG we fetch the second word and then add the quotient to bits
						; 7957	;	6-35 if it's global, to bits 18-35 if it's local.
						; 7958	;
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 3-2
; BYTE.MIC[10,5351]	19:52 24-Jul-85			Single Byte Instructions:  IBP, ADJBP			

						; 7959	;	After this, we subtract the byte pointer S field from (36 - the
						; 7960	;	alignment information left in the P field) precisely remainder
						; 7961	;	times (recall that division copied SC, preloaded with 36, into
						; 7962	;	FE when it finished).  That's about it.
						; 7963	;
						; 7964	;	OWGs split off their separate way.
						; 7965	;
U 1567, 1036,3240,2017,0000,1020,0005,0166	; 7966	ADJUST:	MQ_AR,AR_T0,SR DISP		;Remainder to MQ. OWG or OWL/TWG?
						; 7967	=1110	BR/AR,SC_P+S,MQ_MQ-1,		;OWL/TWG. Copy pointer, add first
U 1036, 1165,1721,0050,2112,0020,0734,0003	; 7968			BYTE DISP,J/ADJTWG	; S, generate count. Perhaps TWG?
						; 7969		FE_P+1,BR/AR,AR_MQ,		;An OWG. Grab initial P&S and
U 1037, 3350,3723,2040,4101,0217,0010,0000	; 7970			I FETCH,J/SNATCH	; set up quotient addition
						; 7971	;
						; 7972	=101
						; 7973	ADJTWG:	FE_FE-SC,ARL_ARL,ARR_ARX+BR,	;OWL. Adjust address; initialize P
U 1165, 1624,0612,2300,5001,0020,0610,0000	; 7974			ARX/MQ,J/ADJP
						; 7975		FE_FE-SC,AR_ARX,ARX_AR (AD),	;Perhaps TWG. Move quotient to AR
U 1167, 1030,3701,4200,5001,2000,7510,0000	; 7976			SKP -VMA SEC0		; No TWGs allowed in section 0
						; 7977	=00	ARL_ARXL,ARR_AR+BR,		;Section 0. An OWL in TWG's clothing
U 1030, 1624,0602,2304,0000,2020,0022,0004	; 7978			ARX/MQ,J/ADJP
						; 7979		BR/AR,BRX/ARX,VMA_VMA+1,LOAD AR,;A real TWG. Keep quotient and
U 1031, 0770,0001,0060,0000,0012,3650,0000	; 7980			CALL [XFERW]		; remainder while fetching address
U 1033, 2622,0602,2404,0102,1020,4510,0000	; 7981	=11	SC_P,AR_AR+BR,ARX_AR,SKP AR0	;Assume global address. Is it?
U 2622, 3344,4001,0000,2400,3001,0010,0200	; 7982	=0	P_SC,J/TWGDUN			;Yes. Use 30 bit addition
U 2623, 3344,0612,2004,0000,2020,0022,0004	; 7983		ARL_ARXL,ARR_ARX+BR		;No. Foolish, but 18 bits is enough
U 3344, 1624,3242,6301,0000,0000,1010,0000	; 7984	TWGDUN:	AC1_AR,AR_BRX,ARX/MQ		;Store address; restore first word
						; 7985	;
						; 7986	;	Address has been adjusted.  Adjust P by remainder bytes.
						; 7987	;
						; 7988	=100
						; 7989	ADJP:	FE_FE-S,P_SCAD,ARX_ARX-1,	;Step to next byte and count
U 1624, 1624,1701,0600,5011,3021,4310,0200	; 7990			SKP ARX0,J/ADJP		; down the remainder
U 1625, 0072,0001,0000,0000,0217,0010,0000	; 7991	TWGCPY:	I FETCH,J/STORAC		;Adjustment done. Load AC0
						; 7992	;
						; 7993	;	If the byte size is zero, we just load AC0, or ACs 0 and 1 if it's
						; 7994	;	a TWG.
						; 7995	;
U 1627, 0120,0001,0000,0000,0013,3610,0000	; 7996	=111	VMA_VMA+1,LOAD ARX,J/DLOAD	;A TWG. Use DMOVE code to load it
						; 7997	;
						; 7998	=0
U 2624, 0072,0001,0000,0000,0217,0010,0000	; 7999	OWLCPY:	I FETCH,J/STORAC		;Section 0, an OWL. Just load AC0
U 2625, 1625,4001,0000,0000,0000,0034,0000	; 8000		BYTE DISP,TIME/2T,J/TWGCPY	;Not section 0. Test AR12 for TWG
						; 8001	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 4
; BYTE.MIC[10,5351]	19:52 24-Jul-85			Single Byte Instructions:  IBP, ADJBP			

						; 8002	;
						; 8003	;	OWGs use the same basic algorithm as OWLs and TWGs, but the
						; 8004	;	actual implementation of steps 1 and 3 is quite different.
						; 8005	;	Step 1:  get the byte capacity of the word and current offset
						; 8006	;	of the OWG within the word.  Note that OWGs may be split into
						; 8007	;	ranges of sizes, with the capacity identical for each OWG within
						; 8008	;	a range.  The current offset within the word can be computed by
						; 8009	;	subtracting the range base + 1 from the P&S field.  The range base
						; 8010	;	is saved in the OWG for later final adjustment.  The capacity is
						; 8011	;	computed in a rather wry way:  ARX is initially loaded with the
						; 8012	;	capacity - 4; later, AR is set to -1.  When AR*4 is subtracted
						; 8013	;	from ARX, AR*4 will be -4 as long as ARX was positive.  The only
						; 8014	;	negative case is for a capacity of 2 (for 18 bit bytes); that one
						; 8015	;	is special cased.
						; 8016	;
						; 8017	=1000
						; 8018	ADJOWG:					;40:43. No OWGs here
						; 8019	=1001	ARX_2+MQ0,TIME/2T,P_#,#/45,	;44:47. Size 6: capacity 6, base 45
U 1051, 3345,4061,0500,0302,3000,0110,0045	; 8020			SC/SCAD,J/OWGCOM	;[407]
						; 8021		ARX_2+MQ0,TIME/2T,P_#,#/45,	;50:53. More size 6
U 1052, 3345,4061,0500,0302,3000,0110,0045	; 8022			SC/SCAD,J/OWGCOM	;[407]
U 1053, 3345,3441,0200,0302,3000,0110,0054	; 8023		ARX_0S,P_#,#/54,SC/SCAD,J/OWGCOM;54:57. Size 8: capacity 4, base 54
U 1054, 2630,4001,0000,5030,0020,5110,0061	; 8024		GEN FE-#,#/61,SKP SCAD0,J/EIGHT7;60:63. Either size 8 or size 7
U 1055, 2632,0001,0000,5030,0020,5110,0067	; 8025		GEN FE-#,#/67,SKP SCAD0,J/SEVEN9;64:67. Either size 7 or size 9
U 1056, 3345,3441,0200,0302,3000,0110,0067	; 8026		ARX_0S,P_#,#/67,SC/SCAD,J/OWGCOM;70:73. Size 9: capacity 4, base 67
U 1057, 2626,4001,0000,5030,0020,5110,0077	; 8027		GEN FE-#,#/77,SKP SCAD0		;74:77. Is this an illegal pointer?
U 2626, 1002,3242,2000,0000,0000,0010,0000	; 8028	=0	AR_BR,J/UUO			;77 is no good. UUO it
						; 8029		BRX/ARX,ARX_1S,P_#,#/74,SC/SCAD,;74:76. Size 18: capacity 2, base 74
U 2627, 3345,2341,0220,0302,3000,0110,0074	; 8030			J/OWGCOM		; Save size; force ARX negative
						; 8031	;
						; 8032	=0
						; 8033	EIGHT7:	ARX_1,TIME/2T,P_#,#/61,SC/SCAD,	;61:63. Size 7: capacity 5, base 61
U 2630, 3345,4041,0200,0302,3000,0110,0061	; 8034			J/OWGCOM
U 2631, 3345,3441,0200,0302,3000,0110,0054	; 8035		ARX_0S,P_#,#/54,SC/SCAD,J/OWGCOM;60 is the last size 8 byte
						; 8036	;
						; 8037	=0
U 2632, 3345,3441,0200,0302,3000,0110,0067	; 8038	SEVEN9:	ARX_0S,P_#,#/67,SC/SCAD,J/OWGCOM;67 is the first size 9 byte
U 2633, 3345,4041,0200,0302,3000,0110,0061	; 8039		ARX_1,TIME/2T,P_#,#/61,SC/SCAD	;64:66 are the last size 7 bytes
U 3345, 3346,2341,2007,1001,0000,1010,0166	; 8040	OWGCOM:	T0_AR,AR_1S,FE_FE-SC-1		;Save pointer; find initial offset
U 3346, 2634,5113,0204,0000,3021,4310,0200	; 8041		P_FE,ARX_ARX-AR*4,SKP ARX0	;Try to get capacity. Is it 2?
						; 8042	=0	BRX/ARX,ARX_AR,AR_SIGN,		;No. Save it; set up offset and
U 2634, 3347,5401,2420,0302,1020,0016,0006	; 8043			SC_#,#/6,J/OFSHFT	; shift count for offset generation
U 2635, 3347,5441,2400,0302,1020,0016,0006	; 8044		ARX_AR,AR_SIGN,SC_#,#/6		;Yes. Size was loaded above
U 3347, 2617,3202,6400,0000,0000,1610,0001	; 8045	OFSHFT:	AR_BRX,ARX_SHIFT,SR_1,J/ADJOIN	;Mark OWG and rejoin for step 2
						; 8046	;
						; 8047	;	Step 3: add the final quotient to the address, and offset the OWG
						; 8048	;	into the word by remainder bytes.  Since this becomes a simple
						; 8049	;	integer add, this portion is rather trivial.
						; 8050	;
U 3350, 3351,0612,2004,0002,0020,1613,0000	; 8051	SNATCH:	SC_EA,AR_ARX+BR,SR_0		;Grab offset; adjust address
U 3351, 0065,4001,0000,2000,3000,0610,0200	; 8052		P_FE+SC,J/STAC			;Add proper offset to P&S. Done!
						; 8053	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 5
; BYTE.MIC[10,5351]	19:52 24-Jul-85			Subroutines for Single Byte Instructions		

						; 8054	.TOC	"Subroutines for Single Byte Instructions"
						; 8055	;
						; 8056	;	INCRBP--Subroutine to increment a byte pointer.  The first (or
						; 8057	;	only) word of the relevant pointer is in AR.  Call with SC_P-#,
						; 8058	;	#/37.,BYTE DISP, thus testing for OWG and first part done
						; 8059	;	simultaneously.  If FPD is set, this routine returns 4 without
						; 8060	;	doing anything; otherwise, the pointer will be incremented and
						; 8061	;	the store will have been started.  Return 4 if an OWL or TWG
						; 8062	;	must recompute SC or on any OWG, 15 if an OWL and SC is OK, and
						; 8063	;	17 if possibly a TWG with SC OK.  Note that ARX must have the
						; 8064	;	first byte pointer word on exit if this is an OWL or TWG.
						; 8065	;
						; 8066	=010					;Test FPD and OWG
U 1642, 1070,4001,0000,0002,1020,1107,0100	; 8067	INCRBP:	SC_FE#,SET FPD,AR0-3 DISP,J/OWGINC;OWG, no FPD. SC_2; test edges
U 1643, 1704,4001,0000,5110,3021,0034,0200	; 8068		P_P-S,BYTE DISP,J/BYTINC	;No OWG, no FPD. Check for overflow
U 1646, 0004,4001,0000,0000,0000,0003,0000	; 8069		RETURN4				;OWG, FPD. Forget it
U 1647, 0004,4001,0000,0000,0000,0003,0000	; 8070		RETURN4				;No OWG, FPD. No increment needed
						; 8071	;
						; 8072	;	Either OWL or TWG.  Check which; if no overflow, it doesn't really
						; 8073	;	matter.
						; 8074	;
						; 8075	=100
U 1704, 0015,4001,0000,5132,0016,0003,0045	; 8076	BYTINC:	SC_P-#,#/37.,STORE,RETURN15	;OWL, no overflow. Store and leave
						; 8077		FE_#,#/36.,GEN AR+1,		;OWL, overflow. Compute new P and
U 1705, 2636,4001,0000,0301,0000,0010,0044	; 8078			TIME/2T,J/OWLINC	; set up new address portion
U 1706, 0017,0001,0000,5132,0016,0003,0045	; 8079		SC_P-#,#/37.,STORE,RETURN17	;TWG, no overflow. Just like OWL
						; 8080		FE_#,#/36.,GEN AR+1,TIME/2T,	;TWG, overflow. Compute new P and
U 1707, 2636,4003,0000,0301,0000,7510,0044	; 8081			SKP -VMA SEC0		; test for valid TWG
						; 8082	=0
						; 8083	OWLINC:	P_FE-S,ARR_AR+1,TIME/2T,STORE,	;OWL. Increment address, set new P
U 2636, 3355,4001,2000,5010,3016,0610,0200	; 8084			J/SNARFP
U 2637, 3352,4001,0000,5010,3012,3622,0200	; 8085		P_FE-S.S,VMA_VMA+1,LOAD AR	;TWG. Set new P, fetch second word
U 3352, 3353,3240,0403,0000,1022,0010,0000	; 8086		ARX_AR,AR_MEM			;Save first word, await second
U 3353, 2640,4001,2040,0102,0020,4510,0000	; 8087		SC_P,BR/AR,SKP AR0,AR_AR+1	;Increment address, check I/EFIW
U 2640, 3354,0001,0000,2400,3016,0110,0000	; 8088	=0	P_SC#,STORE,J/STORTG		;EFIW. Do full global increment
U 2641, 3354,3242,0000,0000,0016,0610,0002	; 8089		ARL_BRL,STORE			;IFIW. Just increment right half
						; 8090	STORTG:	FIN STORE,AR_ARX,VMA_VMA-1,	;Finish second word
U 3354, 0004,0001,4003,0000,2016,3503,0000	; 8091			STORE,RETURN4		; and store first
						; 8092	;
U 3355, 0015,0001,0400,5132,1000,0003,0045	; 8093	SNARFP:	ARX_AR,SC_P-#,#/37.,RETURN15	;[351] Save offset P, new pointer
						; 8094	;
						; 8095	;	An OWG.  53, 60, 66, 73, 76, and 77 need special handling.
						; 8096	;	All others just tick the P&S field.
						; 8097	;
						; 8098	=1000
						; 8099	OWGINC:					;40:43. No OWGs here
U 1071, 0004,4001,0000,4100,3016,0103,0000	; 8100	=1001	P_P+1,STORE,RETURN4		;44:47. No special handling
						; 8101		GEN AR+1,GEN P-#,#/53,		;50:53. 53 becomes 46
U 1072, 2642,4001,0000,5130,0020,5210,0053	; 8102			SKP SCAD NE,J/OVER6
U 1073, 0004,4001,0000,4100,3016,0103,0000	; 8103		P_P+1,STORE,RETURN4		;54:57. No special handling
						; 8104		GEN AR+1,GEN P-#,#/60,		;60:63. 60 becomes 55
U 1074, 2646,4003,0000,5130,0020,5210,0060	; 8105			SKP SCAD NE,J/OVER8
						; 8106		GEN AR+1,GEN P-#,#/66,		;64:67. 66 becomes 62
U 1075, 2644,4001,0000,5130,0020,5210,0066	; 8107			SKP SCAD NE,J/OVER7
						; 8108		GEN AR+1,GEN P-#,#/73,		;70:73. 73 becomes 70
U 1076, 2650,4003,0000,5130,0020,5210,0073	; 8109			SKP SCAD NE,J/OVER9
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 5-1
; BYTE.MIC[10,5351]	19:52 24-Jul-85			Subroutines for Single Byte Instructions		

U 1077, 1134,4003,0000,4102,0020,0007,0000	; 8110		GEN AR+1,SC_P+1,SH DISP		;74:77. Test low P&S bits
U 1134, 0004,4001,0000,2400,3016,0103,0000	; 8111	=1100	P_SC#,STORE,RETURN4		;74 becomes 75. Store and leave
U 1135, 0004,4001,0000,2400,3016,0103,0000	; 8112	NXTOWG:	P_SC#,STORE,RETURN4		;75 becomes 76. Store and leave
						; 8113		AR_AR+1,TIME/2T,SC_#,#/75,	;76 becomes 75. Increment address
U 1136, 1135,4003,2000,0302,0000,0010,0075	; 8114			J/NXTOWG		; first
U 1137, 0313,0001,0003,0000,0002,0014,0000	; 8115	ILLOWG:	MEM_AR,CLR FPD,J/FPNO		;77 Illegal byte pointer. UUO it
						; 8116	;
						; 8117	=0
U 2642, 1135,4003,2000,0302,0000,0010,0046	; 8118	OVER6:	AR_AR+1,TIME/2T,SC_#,#/46,J/NXTOWG;53. Increment address first
U 2643, 0004,4001,0000,4100,3016,0103,0000	; 8119		P_P+1,STORE,RETURN4		;Others just tick P&S
						; 8120	;
						; 8121	=0
U 2644, 1135,4003,2000,0302,0000,0010,0062	; 8122	OVER7:	AR_AR+1,TIME/2T,SC_#,#/62,J/NXTOWG;66. Increment address first
U 2645, 0004,4001,0000,4100,3016,0103,0000	; 8123		P_P+1,STORE,RETURN4		;Others just tick P&S
						; 8124	;
						; 8125	=0
U 2646, 1135,4001,2000,0302,0000,0010,0055	; 8126	OVER8:	AR_AR+1,TIME/2T,SC_#,#/55,J/NXTOWG;60. Increment address first
U 2647, 0004,4001,0000,4100,3016,0103,0000	; 8127		P_P+1,STORE,RETURN4		;Others just tick P&S
						; 8128	;
						; 8129	=0
U 2650, 1135,4003,2000,0302,0000,0010,0070	; 8130	OVER9:	AR_AR+1,TIME/2T,SC_#,#/70,J/NXTOWG;73. Increment address first
U 2651, 0004,4001,0000,4100,3016,0103,0000	; 8131		P_P+1,STORE,RETURN4		;Others just tick P&S
						; 8132	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 6
; BYTE.MIC[10,5351]	19:52 24-Jul-85			Subroutines for Single Byte Instructions		

						; 8133	;
						; 8134	;	LDEA--Subroutine to compute the effective address of a byte from
						; 8135	;	a one word local byte pointer.  Called with the byte pointer in ARX
						; 8136	;	and EA MOD DISP on it.
						; 8137	;	LEAIND--Entry point for two word global EA calculation on the
						; 8138	;	second pointer word.  Called with READ BP2 on the second pointer
						; 8139	;	word.
						; 8140	;	Both entries return 37 with the byte being loaded into AR, and
						; 8141	;	with the FE added to SC.
						; 8142	;	Warning:  two of the words below (LDEA+1, LEAIND+5) cannot have
						; 8143	;	their parity generated directly by the assembler.  The SKP AR0 macro
						; 8144	;	can be used to force correct parity.  It will be ignored, since
						; 8145	;	J/37.
						; 8146	;
						; 8147	=1100
						; 8148	LDEA:	GEN AR,BYTE LOAD,		;No index, no indirect. Load byte
U 1154, 0037,3703,0000,2002,0111,0003,0420	; 8149			SC_FE+SC,RETURN37	; word
						; 8150		GEN AR+XR,INDEXED,BYTE LOAD,	;Index, no indirect. Add index
U 1155, 0037,0600,0002,2002,2131,0003,0420	; 8151			SC_FE+SC,RETURN37	; register to generate byte address
						; 8152		GEN AR,BYTE INDRCT,		;No index, indirect. Test for
U 1156, 1130,3703,0000,0000,0111,7010,0610	; 8153			SKP INTRPT,J/LEAIND	; interrupt
						; 8154		GEN AR+XR,INDEXED,BYTE INDRCT,	;[350] Index, indirect. Add index
U 1157, 1130,0600,0002,0000,2131,7010,0610	; 8155			SKP INTRPT		; register and test for interrupt
						; 8156	=00
U 1130, 3356,3240,0003,0000,0022,2550,0000	; 8157	LEAIND:	ARX_MEM,LONG EN,CALL [BYTIND]	;No interrupt. Unwind indirection
U 1131, 0144,3200,0003,0000,0022,7710,0000	; 8158		ARX_MEM,TAKE INTRPT		;Interrupted. Blow this place
U 1132, 1154,2301,0002,0000,0020,0036,0000	; 8159		XR,EA MOD DISP,TIME/3T,J/LDEA	;Local word at end. Untangle it
U 1133, 1176,2301,0002,0000,0020,0036,0000	; 8160		XR,EA MOD DISP,TIME/3T		;Global word at end. Indexed?
						; 8161	=1110	GEN ARX,GLOBAL,BYTE LOAD,	;No indexing. Read global word
U 1176, 0037,3713,0000,2002,1111,0003,0420	; 8162			SC_FE+SC,RETURN37	; and add FE to SC
						; 8163		GEN ARX+XR,GLOBAL,BYTE LOAD,	;Indexing. Add index to address
						; 8164			SC_FE+SC,RETURN37,	; and do otherwise the same
U 1177, 0037,0610,0002,2002,1131,4503,0420	; 8165			SKP AR0			; (This forces odd parity)
						; 8166	;
						; 8167	;	DPEA--Routine to compute the effective address of a byte from
						; 8168	;	a one word local byte pointer to be used in a deposit operation.
						; 8169	;	Entered with the byte pointer in ARX and EA MOD DISP on it.
						; 8170	;	DEAIND--Entry point for two word global EA calculation on the
						; 8171	;	second pointer word.  Entered with READ BP2 on the second pointer
						; 8172	;	word.
						; 8173	;	Both entries return to GUDSIZ testing the sign of FE-SC-1.
						; 8174	;	[340] This code has been desubroutinized for now, since it
						; 8175	;	must be called from an odd address.
						; 8176	;	WARNING:  two of the words below (DPEA+1, DEAIND+5) cannot
						; 8177	;	have their parity generated by the assembler.  Since the SKIP
						; 8178	;	field is already busy, we use the MQ field and set MQ/SH when
						; 8179	;	we need to generate parity.
						; 8180	;
						; 8181	=1100
						; 8182	DPEA:	GEN AR,BYTE RPW,GEN FE-SC-1,	;No index, no indirect. Load byte
U 1234, 0336,3703,0000,1000,0131,5110,0760	; 8183			SKP SCAD0,J/GUDSIZ	; word, test word underflow
						; 8184		GEN AR+XR,INDEXED,BYTE RPW,	;Index, no indirect. Add index
						; 8185			GEN FE-SC-1,SKP SCAD0,	; register, load byte, test word
U 1235, 0336,0600,0012,1000,2151,5110,0760	; 8186			MQ/SH,J/GUDSIZ		; underflow, and force odd parity
						; 8187		GEN AR,BYTE INDRCT,		;No index, indirect. Start read
U 1236, 1140,3701,0000,0000,0111,7010,0610	; 8188			SKP INTRPT,J/DEAIND	; and test for interrupt
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 6-1
; BYTE.MIC[10,5351]	19:52 24-Jul-85			Subroutines for Single Byte Instructions		

						; 8189		GEN AR+XR,INDEXED,BYTE INDRCT,	;Index, indirect. Add index
U 1237, 1140,0600,0002,4000,2131,7010,0610	; 8190			SKP INTRPT		; register, read, test interrupt
						; 8191	=00
U 1140, 3356,3240,0003,0000,0022,2550,0000	; 8192	DEAIND:	ARX_MEM,LONG EN,CALL [BYTIND]	;No interrupt. Unwind indirection
U 1141, 0144,3200,0003,0000,0022,7710,0000	; 8193		ARX_MEM,TAKE INTRPT		;Interrupted. Blast out sideways
U 1142, 1234,2301,0002,0000,0020,0036,0000	; 8194		XR,EA MOD DISP,TIME/3T,J/DPEA	;Local word at end. Decode further
U 1143, 1256,2341,0002,0000,0020,0036,0000	; 8195		XR,EA MOD DISP,TIME/3T		;Global end word. Indexed?
						; 8196	=1110	GEN ARX,GLOBAL,BYTE RPW,	;No index. Read byte word
						; 8197			GEN FE-SC-1,SKP SCAD0,	; and test byte underflow
U 1256, 0336,3713,0000,1000,1131,5110,0760	; 8198			J/GUDSIZ
						; 8199		GEN ARX+XR,GLOBAL,BYTE RPW,	;Index. Add it in, read byte word,
						; 8200			GEN FE-SC-1,SKP SCAD0,	; and test byte underflow
U 1257, 0336,0610,0002,1000,1151,5110,0760	; 8201			J/GUDSIZ		;Can force odd parity here
						; 8202	;
						; 8203	;	BYTIND--Subroutine to unwind some indirection for an OWL or
						; 8204	;	a TWG.  Call with current indirect word in ARX.  Return 2 if
						; 8205	;	final word is local (possibly indirected), 3 if it is global.
						; 8206	;	Return 0 if final word is global indirect, in which case we
						; 8207	;	will dive back in again if no interrupt is pending.
						; 8208	;
U 3356, 1263,2341,4002,0000,2020,0036,0000	; 8209	BYTIND:	AR_ARX,XR,EA MOD DISP,TIME/3T	;Dispatch on global indirection
U 1263, 1336,2301,0002,0000,0020,0036,0000	; 8210	=0011	XR,EA MOD DISP,TIME/3T,J/GLBIND	;Global indirect. Test indexing
U 1267, 0003,0001,0000,0000,0000,0003,0000	; 8211		RETURN3				;Global, no indirect. Done for now
U 1273, 0170,0001,0000,0301,0000,0010,0024	; 8212		FE_#,#/24,J/PF24		;Both bits 0 and 1 set. No good
U 1277, 0002,4001,0000,0000,0000,0003,0000	; 8213		RETURN2				;Local word. Let main line handle it
						; 8214	;
						; 8215	=1110
						; 8216	GLBIND:	GEN ARX,GLOBAL,BYTE INDRCT,	;No indexing. Fetch next word in
U 1336, 0000,3711,0000,0000,1111,7003,0610	; 8217			SKP INTRPT,RETURN0	; loop, testing for interrupt
						; 8218		GEN ARX+XR,GLOBAL,BYTE INDRCT,	;Indexing. Add in index and do
U 1337, 0000,0610,0002,0000,1131,7003,0610	; 8219			SKP INTRPT,RETURN0	; similarly
						; 8220	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 1
; BYTSUB.MIC[10,5351]	19:52 24-Jul-85			BYTE GROUP -- Some Old Style Subroutines		

						; 8221	.TOC	"BYTE GROUP -- Some Old Style Subroutines"
						; 8222	;
						; 8223	;	This file once included all of the byte instruction code.
						; 8224	;	With the coming of the new version of the byte instructions,
						; 8225	;	however, much of this stuff became unnecessary and has
						; 8226	;	been eliminated as a result.  It is hoped to be able to
						; 8227	;	eliminate more of this once we rewrite the string instructions.
						; 8228	;	[345]
						; 8229	;
						; 8230	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 2
; BYTSUB.MIC[10,5351]	19:52 24-Jul-85			INCREMENT BYTE POINTER SUBROUTINE			

						; 8231	.TOC	"INCREMENT BYTE POINTER SUBROUTINE"
						; 8232	
						; 8233	;THIS SUBROUTINE IS CALLED BY THE INSTRUCTIONS ILDB, IDPB AS
						; 8234	;WELL AS THE MICROCODED 10/11 INTERFACE HANDLER.
						; 8235	;CALL WITH BYTE DISP TESTING FPD AND SIGN OF P-S
						; 8236	;[TIME=2+2(BP OVFLO)]
						; 8237	
						;;8238	.IFNOT/XADDR
						;;8239	=010					;BR12 IRELEVANT
						;;8240	IBPS:	STORE,RETURN4			;SIMPLE, NO OVERFLOW
						;;8241		FE_#,#/36.,GEN AR+1,TIME/2T,	;HERE IF OVRFLO OF WORD
						;;8242			ARX_AR,J/NXTWRD
						;;8243		AR_BR,RETURN4			;FPD WAS SET, RESTORE AR
						;;8244		AR_BR,RETURN4			; AND CONVERT TO LDB OR DPB
						;;8245						;TEST BR12 ONLY
						;;8246	NXTWRD:	AR_AR+1,P_FE-S,STORE,
						;;8247			TIME/2T,RETURN4
						;;8248	
						;;8249	
						;;8250	.TOC	"BYTE EFFECTIVE ADDRESS EVALUATOR - NO XADDR"
						;;8251	
						;;8252	;ENTER WITH POINTER IN AR, ARX, AND BR
						;;8253	;RETURN1 WITH (EA) LOADING INTO AR AND ARX,
						;;8254	;FPD SET, P IN SC, AND S IN FE
						;;8255	;[TIME=4+1(INDEXED)+?(INDIRECT)]
						;;8256	
						;;8257	BYTEA:	MEM_AR,FE_S,SET FPD,		;PUT AWAY UPDATED POINTER
						;;8258			EA MOD DISP		;EVAL BP ADDR
						;;8259	=1100
						;;8260	BFETCH:	GEN ARX,BYTE READ,RETURN1	;START DATA FETCH
						;;8261		GEN ARX+XR,BYTE READ,RETURN1	;ADDRESS IS INDEXED
						;;8262		GEN ARX,BYTE INDRCT,J/BYTEI	;DO INDIRECT
						;;8263		GEN ARX+XR,BYTE INDRCT,J/BYTEI	;INDIRECT INDEXED!!!
						;;8264	
						;;8265	BYTEI:	ARX_MEM,SKP INTRPT		;WAIT FOR INDIRECT WORD
						;;8266	=0	EA MOD DISP,J/BFETCH		;PROCEED IN ADDR EVAL
						;;8267		SR DISP,J/CLEAN			;INTERRUPTED, CLEAN UP AS REQ'D
						; 8268	.IF/XADDR
						; 8269	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 3
; BYTSUB.MIC[10,5351]	19:52 24-Jul-85			INCREMENT BYTE POINTER SUBROUTINE			

						; 8270	;IBP SUBROUTINE
						; 8271	; CALL WITH BP IN AR, P_P-S, BYTE DISP
						; 8272	
						; 8273	=010
U 1722, 0004,0001,0000,0000,0016,0003,0000	; 8274	IBPS:	STORE,RETURN4			;SIMPLE CASE
						; 8275		FE_#,#/36.,GEN AR+1,TIME/2T,	;POINTER OVERFLOW, B12=0
U 1723, 2652,4003,0000,0301,0000,0010,0044	; 8276			J/NXTWRD
U 1726, 0004,3242,2000,0000,0000,0003,0000	; 8277		AR_BR,RETURN4
U 1727, 0004,3242,2000,0000,0000,0003,0000	; 8278		AR_BR,RETURN4
						; 8279	=0
						; 8280	NXTWRD:	P_FE-S,AR_AR+1,TIME/2T,		;SINGLE WORD BP
U 2652, 0004,4001,2000,5010,3016,0603,0200	; 8281			STORE,RETURN4
						; 8282	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 4
; BYTSUB.MIC[10,5351]	19:52 24-Jul-85			BYTE EFFECTIVE ADDRESS EVALUATOR - XADDR		

						; 8283	.TOC	"BYTE EFFECTIVE ADDRESS EVALUATOR - XADDR"
						; 8284	;HERE TO EVALUATE EFFECTIVE ADDRESS OF BYTE POINTER.
						; 8285	; ENTER AT BYTEA WITH BYTE DISP (SCAD0=0), EXCEPT FOR EXTENDED
						; 8286	; INSTRUCTION SET, WHICH MUST GET SECOND PART OF POINTER FROM
						; 8287	; AC AND MUST NOT SET FPD, AND THEREFORE ENTERS AT BFETCH (FOR
						; 8288	; SINGLE-WORD POINTERS) OR BYTEI (FOR LONG POINTERS).
						; 8289	
						; 8290	=100
						; 8291	BYTEA:	MEM_AR,FE_S,SET FPD,
U 1744, 1354,2341,0003,2411,0002,1136,0100	; 8292			EA MOD DISP,J/BFETCH
U 1745, 3357,4001,0000,2411,0011,3610,0610	; 8293		READ BP2,FE_S,J/BPART2		;GET SECOND WORD
U 1746, 1744,4001,0003,0000,0002,7510,0000	; 8294		MEM_AR,SKP -VMA SEC0,J/BYTEA	;B12=1.  OBEY IF NOT SEC0
						; 8295	=
						; 8296	=0000
						; 8297	BXA:	GEN ARX,GLOBAL,BYTE INDRCT,
U 1340, 2654,3713,0000,0000,1111,7010,0610	; 8298			SKP INTRPT,J/BYTEI
						; 8299		GEN ARX+XR,GLOBAL,BYTE INDRCT,
U 1341, 2654,0610,0002,4000,1131,7010,0610	; 8300			SKP INTRPT,J/BYTEI
						; 8301		GEN ARX,GLOBAL,BYTE INDRCT,
U 1342, 2654,3713,0000,0000,1111,7010,0610	; 8302			SKP INTRPT,J/BYTEI
						; 8303		GEN ARX+XR,GLOBAL,BYTE INDRCT,
U 1343, 2654,0610,0002,4000,1131,7010,0610	; 8304			SKP INTRPT,J/BYTEI
						; 8305	
U 1344, 0001,3711,0000,0000,1111,0003,0620	; 8306		GEN ARX,GLOBAL,BYTE READ,RETURN1
U 1345, 0001,0610,0002,0000,1131,0003,0620	; 8307		GEN ARX+XR,GLOBAL,BYTE READ,RETURN1
U 1346, 0001,3711,0000,0000,1111,0003,0620	; 8308		GEN ARX,GLOBAL,BYTE READ,RETURN1
U 1347, 0001,0610,0002,0000,1131,0003,0620	; 8309		GEN ARX+XR,GLOBAL,BYTE READ,RETURN1
						; 8310	
U 1350, 0170,0001,0000,0301,0000,0010,0024	; 8311		FE_#,#/24,J/PF24		;ILLEGAL FORMAT INDIRECT WORD
U 1351, 0170,0001,0000,0301,0000,0010,0024	; 8312		FE_#,#/24,J/PF24
U 1352, 0170,0001,0000,0301,0000,0010,0024	; 8313		FE_#,#/24,J/PF24
U 1353, 0170,0001,0000,0301,0000,0010,0024	; 8314		FE_#,#/24,J/PF24
						; 8315	
						; 8316	BFETCH:
U 1354, 0001,3701,0000,0000,0111,0003,0620	; 8317		GEN AR,BYTE READ,RETURN1
U 1355, 0001,0600,0002,4000,2131,0003,0620	; 8318		GEN AR+XR,INDEXED,BYTE READ,RETURN1
						; 8319		GEN AR,BYTE INDRCT,
U 1356, 2654,3703,0000,0000,0111,7010,0610	; 8320			SKP INTRPT,J/BYTEI
						; 8321		GEN AR+XR,INDEXED,BYTE INDRCT,
U 1357, 2654,0600,0002,0000,2131,7010,0610	; 8322			SKP INTRPT,J/BYTEI
						; 8323	
U 3357, 2654,0001,0000,0000,0000,1110,0100	; 8324	BPART2:	SET FPD				;SET BEFORE FAULTING
						; 8325	=0
U 2654, 3360,3200,0003,0000,0022,2510,0000	; 8326	BYTEI:	ARX_MEM,LONG EN,J/BYTEI2
U 2655, 0144,3200,0003,0000,0022,7710,0000	; 8327		ARX_MEM,TAKE INTRPT
U 3360, 1340,2341,4002,0000,2020,0036,0000	; 8328	BYTEI2:	AR_ARX,XR,EA MOD DISP,TIME/3T,J/BXA
						; 8329	.ENDIF/XADDR
						; 8330	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 5
; BYTSUB.MIC[10,5351]	19:52 24-Jul-85			LOAD BYTE SUBROUTINE					

						; 8331	.TOC	"LOAD BYTE SUBROUTINE"
						; 8332	;ENTER WITH S IN FE, P+S IN SC, AND AR LOAD IN PROGRESS
						; 8333	;SKP INTERRUPT AT ENTRY IS OPTIONAL
						; 8334	;RETURN2 WITH BYTE RIGHT JUSTIFIED IN AR
						; 8335	;[TIME=7]
						; 8336	=0
						; 8337	LDB1:	AR_MEM,SC_#-SC,#/36.,SKP SCAD0,	;36-(P+S)
U 2656, 2660,3200,0003,5302,0022,5110,0044	; 8338			TIME/3T,J/LDB2
U 2657, 0040,3240,0003,0000,0022,0005,0000	; 8339		AR_MEM,SR DISP,J/CLEAN		;HERE IF INTERRUPT PENDING
						; 8340	
						; 8341	=0
U 2660, 2662,3401,2400,0000,0000,0013,0000	; 8342	LDB2:	ARX_SHIFT,AR_0S,SC_FE,J/SHIFT	;BYTE IN ARX HI, READY TO SHIFT
						; 8343		ARX_AR,AR_0S,			;P+S > 36, PUT BYTE IN ARX HI
U 2661, 2662,3441,2400,2002,1020,5110,0000	; 8344			SC_FE+SC,SKP SCAD0	;ADJUST S AND SHIFT BYTE
						; 8345	
						; 8346	;PUT BYTE INTO AR RIGHT-JUSTIFIED
						; 8347	; THIS INSTRUCTION ALSO CALLED ALONE AS A SUBROUTINE
						; 8348	
						; 8349	=0
U 2662, 0002,0001,4000,0000,0000,0003,0000	; 8350	SHIFT:	AR_SHIFT,RETURN2		;RETURN WITH BYTE IN AR
U 2663, 0002,4001,0000,0000,0000,0003,0000	; 8351		RETURN2				;BYTE WAS OFF THE END, RETURN AR=0
						; 8352	
						; 8353	
						; 8354	.TOC	"DEPOSIT BYTE SUBROUTINE"
						; 8355	;ENTER WITH BYTE RIGHT JUSTIFIED IN AR, POINTER IN BR,
						; 8356	; S IN FE, 36-P IN SC, AND LOAD AR-ARX STARTED
						; 8357	; SKP IF P>36
						; 8358	;RETURN3 WITH FINAL STORE IN PROGRESS
						; 8359	;[TIME=11]
						; 8360	
						; 8361	=0
						; 8362	DPB1:	MQ_AR,AR_MEM,ARX_MEM,		;GET WORD TO ROTATE 36-P
						; 8363			GEN FE-SC-1,TIME/3T,	; [303] COMPUTE S-(36-P)-1
U 2664, 2666,3200,0013,1000,1022,5110,0000	; 8364			SKP SCAD0,J/DPB2	;CHECK THAT P+S<=36
U 2665, 0003,3200,0003,0000,0022,0003,0000	; 8365		AR_MEM,RETURN3			;[226]P>36, STORE NOTHING
						; 8366	
						; 8367	=0
U 2666, 2667,0001,0000,2401,0000,0010,0000	; 8368	DPB2:	FE_SC				;P+S>36, S_36-P
						; 8369		ARX_SHIFT,AR_MQ,SC_FE,		;ARX HAS P,X,S
U 2667, 3361,3723,2400,5301,0000,0013,0110	; 8370			FE_#-SC,#/72.		;SC_S, FE_72-(36-P)=36+P
U 3361, 3362,4001,0000,5302,0000,0010,0044	; 8371		SC_#-SC,#/36.			;SC_36-S (KNOWN .LE. P)
						; 8372		AR_SHIFT,ARX_SHIFT,		;S,P,X
U 3362, 3363,0001,4400,5002,0000,0010,0000	; 8373			SC_FE-SC		;SC_(36+P)-(36-S)=P+S
U 3363, 0003,0001,4000,0000,0016,0003,0000	; 8374		AR_SHIFT,STORE,RETURN3		;[335][345] DONE, STORE IT BACK
						; 8375	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 6
; BYTSUB.MIC[10,5351]	19:52 24-Jul-85			DEPOSIT BYTE SUBROUTINE					

						; 8376	;SUBROUTINE TO GET CONTENTS OF SC RIGHT ALIGNED IN AR
						; 8377	;[TIME=6]
						; 8378	
U 3364, 3365,0001,0000,2400,2000,0022,0200	; 8379	GETSC:	AR0-8_SC			;PUT SC INTO AR
U 3365, 2662,0001,0400,0302,1000,0010,0011	; 8380		ARX_AR,SC_#,#/9.,J/SHIFT	;HERE WITH DATA IN AR0-8
						; 8381	;
						; 8382	;	Some one word global subroutines.
						; 8383	;
						; 8384	.IF/OWGBP
						; 8385	=0
U 2670, 2672,4001,0000,5132,0020,5110,0045	; 8386	GTST:	SC_P-#,#/45, SKP SCAD0,J/GTST1	;TEST FOR ONE WORD GLOBAL [265]
U 2671, 0001,4001,0000,0000,0000,0003,0000	; 8387		RETURN1				;NOT IN SEC 0
						; 8388	=0
U 2672, 0002,0001,0040,0000,0000,0003,0000	; 8389	GTST1:	BR/AR,RETURN2			;DO OWG CODE
U 2673, 0001,4001,0000,0000,0000,0003,0000	; 8390		RETURN1				;NOT OWG
						; 8391	;
						; 8392	;CNV2WD -- ROUTINE TO CALCULATE NEW P FIELD OF ONE WORD GLOBAL BYTE
						; 8393	;POINTER AND STORE NEW POINTER. A TABLE IS IN THE EPT STARTING AT 700
						; 8394	;AND THIS IS USED TO CONVERT THE OWGBP TO A TWO WORD GLOBAL POINTER
						; 8395	;AND TO CALCULATE THE NEW P FOR THE STORE.
						; 8396	;
						; 8397	;ENTER WITH P-45 IN SC
						; 8398	;	    BYTE POINTER IN BR
						; 8399	;
						; 8400	
U 3366, 3367,3731,2000,0000,0000,1710,0000	; 8401	CNV2WD:	AR_VMA HELD			;[326] GET FULL VMA FOR WRITE
U 3367, 3370,0001,0010,0000,1000,0010,0000	; 8402		MQ_AR				;SAVE FOR WRITE BACK
U 3370, 1654,0001,0000,2400,2000,0022,0200	; 8403		AR0-8_SC			;P-45 IN AR
						; 8404	=0*	AR_ARX (AD),ARX_AR,SC_#,#/9.,	;SWAP AROUND FOR SHIFT
U 1654, 2662,3711,2400,0302,1000,0050,0011	; 8405			CALL [SHIFT]		;NOW SHIFT IT TO BIT 35
U 1656, 3371,0303,7700,0000,0020,0027,0000	; 8406		AR_AR*.5 LONG			;MAKE IT AN OFFSET, LSB IN ARX0
U 3371, 3372,4001,0000,0000,0100,3310,0700	; 8407		VMA_#+AR32-35,#/700		;POINT TO RIGHT WORD
U 3372, 3373,4001,0000,0000,0012,0026,0111	; 8408		LOAD AR,EPT REF CACHE		;GET AND CACHE DATA FROM EPT [260]
U 3373, 2674,3711,0000,0000,0022,5510,0000	; 8409		MB WAIT,GEN ARX,SKP AD0		;TEST FOR EVEN/ODD
						; 8410	=0
U 2674, 3374,4001,0400,2411,1000,0010,0000	; 8411	CNV01:	FE_S,ARX_AR,J/CNV02		;SKIP SWAP
U 2675, 2674,4001,4000,0000,3000,0010,0000	; 8412		AR_AR SWAP,J/CNV01		;SWAP HALVES FOR ODD
U 3374, 2676,3701,0020,0000,0020,5610,0000	; 8413	CNV02:	BRX/ARX,GEN AR,SKP AD NE	;DID WE GET 0 DATA ?
U 2676, 1002,0001,0040,0000,0000,0010,0000	; 8414	=0	BR/AR,J/UUO			;P=77 OR EPT NOT SET UP
U 2677, 0001,3721,0000,0000,0103,0003,0000	; 8415		RSTR VMA_MQ,RETURN1		;[307][326]NO, RESTORE VMA AND EXIT
						; 8416	.ENDIF/OWGBP
						; 8417	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 1
; EIS.MIC[10,5351]	19:52 24-Jul-85			EXTENDED INSTRUCTION SET DECODING			

						; 8418	.TOC	"EXTENDED INSTRUCTION SET DECODING"
						; 8419	
						; 8420	.IF/EXTEND
						; 8421	;GET HERE WITH E0 IN BR, (E0) IN AR
						; 8422	;	(E0) IS THE OPERATION WORD, AND HAS THE NORMAL -10 INSTRUCTION
						; 8423	;	FORMAT -- BITS 0-8 ARE OPCODE, 9-12 IGNORED, 13 @, 14-17 XR,
						; 8424	;	AND 18-35 Y.  THE AC USED COMES FROM THE EXTEND INSTRUCTION.
						; 8425	; COMPUTE E1 FROM 13-35
						; 8426	
						;;8427	.IFNOT/XADDR
						;;8428	;EXTEND:FE_#+AR0-8,#/-32,SKP SCAD0,	;CHECK LEGAL OPERATION
						;;8429	;		ARX_AR,AR_BRX		;OPR TO ARX, GET AC FROM BRX
						;;8430	=0
						;;8431	EXT1:	AR_BR,J/UUO			;OPCODE > 17 or 31
						;;8432	.IF/MODEL.B				;[246]
						;;8433		AR0-8_FE+#,#/32			;PLUG OPR INTO EXTEND AC
						;;8434		GEN AR,LOAD IR,AR_ARX
						;;8435		ARL_0.M,EA MOD DISP,J/EXT2
						;;8436	=1100
						;;8437	.IFNOT/MODEL.B				;[246]
						;;8438		AR0-8_FE+#,#/20			;PLUG OPR INTO EXTEND AC
						;;8439		GEN AR,LOAD IR,AR_ARX,ARL_0.M,
						;;8440			EA MOD DISP
						;;8441	=00
						;;8442	.ENDIF/MODEL.B
						;;8443	EXT2:	E1_AR,B DISP,J/EXT5		;SAVE E1, READY TO SAVE E0
						;;8444		ARL_0.M,AR_ARX+XR,J/EXT2
						;;8445		GEN ARX,A INDRCT,SKP INTRPT,J/EXT3
						;;8446		GEN ARX+XR,A INDRCT,
						;;8447			SKP INTRPT,J/EXT3
						;;8448	=0
						;;8449	EXT3:	AR_MEM,ARX_MEM,J/EXT4
						;;8450		AR_MEM,TAKE INTRPT
						;;8451	EXT4:	ARL_0.M,EA MOD DISP,J/EXT2
						;;8452	
						;;8453	=110
						;;8454	EXT5:	AR_BR,J/EXT6			;TRANSLATE MODE, DO NOT EXTEND
						;;8455		ARL_1S.M,SKP AR18		;SIGN EXTEND E1 IF NEGATIVE
						;;8456	=0	AR_BR,J/EXT6			;POS, ALREADY OK
						;;8457		E1_AR,AR_BR			;PUT NEG RESULT IN E1
						;;8458	EXT6:	E0_AR,VMA_AR+1,IR DISP,J/2000	;ENTER EXTENDED INSTR HANDLER
						;;8459	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 2
; EIS.MIC[10,5351]	19:52 24-Jul-85			EXTENDED INSTRUCTION SET DECODING			

						;;8460	;HERE FOR EXTENDED INSTRUCTION SET DECODING UNDER XADDR
						; 8461	.IF/XADDR
						; 8462	;EXTEND: SC_#+AR0-8,#/-32,SKP SCAD0,	;VALID EXTENDED OPERATION?
						; 8463	;		ARX_AR,AR_BR,J/EXTF1	; OPR TO ARX, AC TO AR
						; 8464	=0
U 2700, 1002,3242,2000,0000,0000,0010,0000	; 8465	EXTF1:	AR_BR,J/UUO			;Opcode is too large.
U 2701, 3375,3242,6017,0000,1000,1010,0176	; 8466		E0_AR,MQ_AR,AR_BRX		;SAVE E0.  GET AC FROM EXTEND
U 3375, 3376,4001,0000,2302,2000,0110,0032	; 8467		AR0-8_#+SC,#/32,SC/SCAD		;COMBINE EXT OP <32 WITH AC
U 3376, 2702,0001,0000,2400,0020,5210,0000	; 8468		GEN SC,SKP SCAD NE		;TEST OP CODE
U 2702, 1002,3242,2000,0000,0000,0010,0000	; 8469	=0	AR_BR,J/UUO			;OP CODE = 0 (UUO) [217][251]
U 2703, 3377,3701,0000,0000,0000,1410,0000	; 8470		GEN AR,LOAD IR			;MAP THIS OVER THE LUUO SPACE
U 3377, 1374,2301,4000,0000,2000,0036,0000	; 8471	EXTF2:	AR_ARX,EA MOD DISP,J/EXTLA	;GO EVALUATE E1
						; 8472	=0000
U 1360, 2704,3711,0000,0000,1111,7010,0230	; 8473	EXTXA:	GEN ARX,GLOBAL,EXT INDRCT,SKP INTRPT,J/EXTI
U 1361, 2704,0610,0002,0000,1131,7010,0230	; 8474		GEN ARX+XR,GLOBAL,EXT INDRCT,SKP INTRPT,J/EXTI
U 1362, 2704,3711,0000,0000,1111,7010,0230	; 8475		GEN ARX,GLOBAL,EXT INDRCT,SKP INTRPT,J/EXTI
U 1363, 2704,0610,0002,0000,1131,7010,0230	; 8476		GEN ARX+XR,GLOBAL,EXT INDRCT,SKP INTRPT,J/EXTI
						; 8477	
U 1364, 3077,3711,0300,0000,1004,0002,0400	; 8478		GEN ARX,GLOBAL,EXT INDEX,ARX/MQ,J/3077
U 1365, 3077,0610,0302,0000,1024,0002,0400	; 8479		GEN ARX+XR,GLOBAL,EXT INDEX,ARX/MQ,J/3077
U 1366, 3077,3711,0300,0000,1004,0002,0400	; 8480		GEN ARX,GLOBAL,EXT INDEX,ARX/MQ,J/3077
U 1367, 3077,0610,0302,0000,1024,0002,0400	; 8481		GEN ARX+XR,GLOBAL,EXT INDEX,ARX/MQ,J/3077
						; 8482	
U 1370, 0131,0001,0000,0000,0000,2210,0400	; 8483		GET ECL EBUS,J/ILLIND		;[234] illegal indirect word
U 1371, 0131,0001,0000,0000,0000,2210,0400	; 8484		GET ECL EBUS,J/ILLIND		;[234] illegal indirect word
U 1372, 0131,0001,0000,0000,0000,2210,0400	; 8485		GET ECL EBUS,J/ILLIND		;[234] illegal indirect word
U 1373, 0131,0001,0000,0000,0000,2210,0400	; 8486		GET ECL EBUS,J/ILLIND		;[234] illegal indirect word
						; 8487	;
						; 8488	;	[325]
						; 8489	;	The effective address dispatch logic is quite arcane.  It appears
						; 8490	;	that MEM/A RD,DISP/DRAM A RD, and SH/2 interact to get the section
						; 8491	;	number from either AD (if the AC > 777777) or from VMA section, but
						; 8492	;	in order for that to work, we must do something with the VMA, even
						; 8493	;	though we don't actually use it here if the address computation
						; 8494	;	is complete.  Thus the VMA/LOAD has been added for the index case.
						; 8495	;
U 1374, 1762,3701,0300,0000,0004,0033,0400	; 8496	EXTLA:	GEN AR,EXT ADDR,ARX/MQ,J/EXT2
U 1375, 3077,0600,0302,0000,2124,0002,0400	; 8497		GEN AR+XR,INDEXED,EXT INDEX,ARX/MQ,VMA/LOAD,J/3077 ;[325]
U 1376, 2704,3701,0000,0000,0111,7010,0230	; 8498		GEN AR,EXT INDRCT,SKP INTRPT,J/EXTI
U 1377, 2704,0600,0002,4000,2131,7010,0230	; 8499		GEN AR+XR,INDEXED,EXT INDRCT,SKP INTRPT,J/EXTI
						; 8500	
						; 8501	=0
U 2704, 3400,3240,0003,0000,0022,2510,0000	; 8502	EXTI:	ARX_MEM,LONG EN,J/EXTI2
U 2705, 0144,3200,0003,0000,0022,7710,0000	; 8503		ARX_MEM,TAKE INTRPT
						; 8504	EXTI2:	AR_ARX,XR,EA MOD DISP,
U 3400, 1360,2341,4002,0301,2020,0036,0024	; 8505			FE_#,#/24,TIME/3T,J/EXTXA
						; 8506	
						; 8507	=010
						; 8508	EXT2:	E1_AR,AR_ARX,VMA_ARX+1,		;ESTABLISH E1
U 1762, 2000,4011,4007,0000,2320,1001,0165	; 8509			IR DISP,J/2000		;GO TO SPECIFIC HANDLER
U 1763, 2706,4001,0000,0000,0001,4410,0020	; 8510		ARL_0.M,SKP AR18,J/EXT3		;OFFSET MODE.  EXTEND E1
						; 8511		E1_AR,AR_ARX,VMA_ARX+1,		;[301] Duplicate these to
U 1766, 2000,4011,4007,0000,2320,1001,0165	; 8512			IR DISP,J/2000		; distinguish GSNGL (B=5) from
						; 8513		E1_AR,AR_ARX,VMA_ARX+1,		; offset instructions (B=1)
U 1767, 2000,4011,4007,0000,2320,1001,0165	; 8514			IR DISP,J/2000
						; 8515	=0
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 2-1
; EIS.MIC[10,5351]	19:52 24-Jul-85			EXTENDED INSTRUCTION SET DECODING			

						; 8516	EXT3:	E1_AR,AR_ARX,VMA_ARX+1,		;ESTABLISH E1
U 2706, 2000,4011,4007,0000,2320,1001,0165	; 8517			IR DISP,J/2000		;GO TO SPECIFIC HANDLER
U 2707, 2706,2341,0000,0000,0000,0610,0002	; 8518		ARL_1S,J/EXT3			;NEGATIVE OFFSET
						; 8519	.ENDIF/XADDR
						; 8520	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 3
; EIS.MIC[10,5351]	19:52 24-Jul-85			EXTENDED INSTRUCTION SET DECODING			

						; 8521	;	By using "IR DISP,J/2000" we can use the same DRAM for LUUOs as
						; 8522	;	for the EXTEND instructions with like opcodes.  The LUUOs dispatch
						; 8523	;	to addresses in the range 1000-1017; by dispatching with J/2000,
						; 8524	;	the EXTEND ops go to 3000-3017 (model B) or 2000-20017 (model A).
						;;8525	.IFNOT/MODEL.B
						;;8526	2005:	AR_AC3,J/CMPS			;HIDDEN BEHIND L-CMS
						;;8527	2006:	CLR AR,ARX_1S,SC_#,#/15.,J/EDIT	;HIDDEN BEHIND L-EDIT
						;;8528	2010:	AR_AC0 COMP,J/DBIN		;HIDDEN BEHIND L-DBIN
						;;8529	2011:	AR_AC1,ARL/AD,SC_1,ARX+MQ_0.M,
						;;8530			BYTE DISP,J/BDEC	;HIDDEN BEHIND L-BDEC
						;;8531	2012:	AR_AC3,LOAD AR,J/MVST		;HIDDEN BEHIND L-MVS
						; 8532	.IF/MODEL.B
						;;8533	.IFNOT/XADDR
						;;8534	3005:	AR_AC3,J/CMPS			;HIDDEN BEHIND L-CMS
						;;8535	3006:	CLR AR,ARX_1S,SC_#,#/15.,J/EDIT	;HIDDEN BEHIND L-EDIT
						;;8536	3010:	AR_AC0 COMP,J/DBIN		;HIDDEN BEHIND L-DBIN
						;;8537	3011:	AR_AC1,ARL/AD,SC_1,ARX+MQ_0.M,
						;;8538			BYTE DISP,J/BDEC	;HIDDEN BEHIND L-BDEC
						;;8539	3012:	AR_AC3,LOAD AR,J/MVST		;HIDDEN BEHIND L-MVS
						; 8540	.IF/XADDR
						;;8541	.IFNOT/OWGBP				;[265]
						;;8542	3005:	AR_AC3,J/CMPS			;HIDDEN BEHIND L-CMS
						;;8543	3006:	CLR AR,ARX_1S,SC_#,#/15.,J/EDIT	;HIDDEN BEHIND L-EDIT
						;;8544	3010:	AR_AC0 COMP,J/DBIN		;HIDDEN BEHIND L-DBIN
						;;8545	3011:	AR_AC1,ARL/AD,SC_1,ARX+MQ_0.M,
						;;8546			BYTE DISP,J/BDEC	;HIDDEN BEHIND L-BDEC
						;;8547	3012:	AR_AC3,LOAD AR,J/MVST		;HIDDEN BEHIND L-MVS
						; 8548	.IF/OWGBP				;[265]
						; 8549	;
						; 8550	;	[347] CMPS dispatch rewritten to test bad high length bits first.
						; 8551	;
U 3005, 3401,3200,2000,0301,0020,0050,0777	; 8552	3005:	AR_AC0,FE_#,#/777,CALL [FLGTST]	;[347] Any illegal high bits in len?
U 3025, 2020,0001,0007,0000,0000,1050,0173	; 8553	3025:	FILL_AR,CALL [EXT2WD]		;[310][347] Save fill VMA, test OWG
U 3035, 3431,3240,2015,0000,2020,0010,0000	; 8554	3035:	AR_AC3,MQ_ARX,J/CMPS		;[310][347] Get dest length and go
						; 8555	;
U 3006, 0465,0001,0000,0000,0000,0010,0000	; 8556	3006:	J/EDIT				;HIDDEN BEHIND L-EDIT
U 3010, 2734,0001,0000,0000,0000,0010,0000	; 8557	3010:	J/DBIN				;HIDDEN BEHIND L-DBIN
U 3011, 0461,4013,2000,0000,0020,0010,0000	; 8558	3011:	AR_ARX+1 (AD),J/BDEC		;[344] HIDDEN BEHIND L-BDEC
						; 8559	;
U 3012, 3401,3240,2000,0301,0020,0050,0077	; 8560	3012:	AR_AC0,FE_#,#/77,CALL [FLGTST]	;[347] MVST. Watch out for illegal
U 3032, 0660,4001,0000,0000,0012,0010,0000	; 8561	3032:	LOAD AR,J/MVST			; flags first. 
						; 8562	;
						; 8563	;	Subroutine to check for bits set that are not allowed to be.
						; 8564	;	Enter with AR containing AC0 and FE with relevant bit mask.
						; 8565	;	Return 20 if none set; sideways exit to UUO if any are.  Note
						; 8566	;	that BRX must still contain the EXTEND for this to work.
						; 8567	;
U 3401, 3402,3200,2005,7021,0020,0010,0000	; 8568	FLGTST:	AR_AC3,FE_FE AND AR0-8		;[347] Get dest length
U 3402, 2710,4001,0000,6020,0020,5210,0000	; 8569		GEN FE OR AR0-8,SKP SCAD NZ	;[347] Are any high bits set?
U 2710, 0020,4013,2000,0000,0020,0003,0000	; 8570	=0	AR_ARX+1 (AD),RETURN20		;[347] No. Start saving fill VMA
U 2711, 1002,3242,2000,0000,0000,0010,0000	; 8571		AR_BR,J/UUO			;[347] Yes. Blow out of the water
						; 8572	.ENDIF/OWGBP				;[265]
						; 8573	;3042:	AR_BR,J/UUO		;[217] INDEXING ON ILL. EXTEND OP.
						; 8574	;
						; 8575	;	As first written, locations 3044, 3045, 3046, 3050, 3051, 3052,
						; 8576	;	3144, 3145, 3146, 3147, 3150, 3151, 3152, 3153, and 3154 all were
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 3-1
; EIS.MIC[10,5351]	19:52 24-Jul-85			EXTENDED INSTRUCTION SET DECODING			

						; 8577	;	B DISP,J/EXT2.  The comment:  these are index cases because index
						; 8578	;	must do AREAD with the DISP function in order to get the correct
						; 8579	;	index value for E1.
						; 8580	;
U 3077, 1762,4001,0000,0000,0000,0033,0000	; 8581	3077:	B DISP, J/EXT2		;[251]
U 3177, 1762,4001,0000,0000,0000,0033,0000	; 8582	3177:	B DISP, J/EXT2		;[251]
						; 8583	.ENDIF/XADDR
						; 8584	.ENDIF/MODEL.B
						; 8585	.ENDIF/EXTEND
						; 8586	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 4
; EIS.MIC[10,5351]	19:52 24-Jul-85			ONE WORD GLOBAL BYTE POINTER SUBROUTINES FOR EXTEND

						; 8587	.TOC	"ONE WORD GLOBAL BYTE POINTER SUBROUTINES FOR EXTEND"
						; 8588	;
						; 8589	; HERE FOR MVST, EDIT AND CMPS INSTRUCTIONS
						; 8590	; MUST CHECK BOTH AC1 AND AC4 FOR OWGBP
						; 8591	; AND CONVERT TO TWO WORD GLOBAL POINTERS.
						; 8592	; There is also a hack in here for the CMPSx instructions.  In
						; 8593	; order to find their fill characters in the right place, we must
						; 8594	; fetch FILL (saved as E0+1) into ARX.  [310]
						; 8595	; BDEC ENTERS AT EXT01 FOR AC4 ONLY
						; 8596	.IF/EXTEND
						; 8597	.IF/OWGBP				;[265]
						; 8598	=000
U 2020, 1170,3200,2001,0000,0020,0050,0000	; 8599	EXT2WD:	AR_AC1,CALL [TST2WD]		;AC1 OWGBP ?
U 2021, 3410,0001,0000,0000,0000,0050,0000	; 8600		CALL [STR2WD]			;YES, CONVERT DONE, STORE
U 2022, 2024,0001,0000,0000,0000,0010,0000	; 8601		J/EXT01				;NO, TRY AC4
U 2023, 3406,3312,2004,0000,0000,1010,0000	; 8602		AC2_AR,AR_BR OR ARX,J/EXT02	;ADDRESS STORE
U 2024, 1170,3200,2006,0000,0020,0050,0144	; 8603	EXT01:	AR_AC4,CALL [TST2WD]		;AC4 OWGBP ?
U 2025, 3410,3240,0207,0000,0020,0050,0173	; 8604		ARX_FILL,CALL [STR2WD]		;[310] YES, CONVERT DONE, STORE
U 2026, 0010,3200,0207,0000,0020,0003,0173	; 8605		ARX_FILL,RETURN10		;[310][347] NO, CAN'T DO NO MORE
U 2027, 3403,0001,0000,0000,0000,0010,0145	; 8606		SEL DSTP2			;[310] DON'T GLITCH ON AC5 STORE
U 3403, 3404,3312,2006,0000,0000,1010,0145	; 8607		AC5_AR,AR_BR OR ARX		; (See second edit #210)
U 3404, 3405,3202,0600,0000,0000,0010,0144	; 8608		ARX_BRX,SEL AC4			;[310] RESTORE ARX AND SELECT AC4
U 3405, 0010,4001,0006,0000,0000,1003,0144	; 8609		AC4_AR,RETURN10			;[347] P,S,BIT 12 = 1 TO AC4
						; 8610	
U 3406, 2024,0001,0001,0000,0000,1010,0000	; 8611	EXT02:	AC1_AR,J/EXT01			;P,S,BIT 12 = 1 TO AC1
						; 8612	
						; 8613	; HERE FOR DBIN
						; 8614	
						; 8615	=00
U 1150, 1170,3200,2001,0000,0020,0050,0000	; 8616	DB2WD:	AR_AC1,CALL [TST2WD]		;AC1 OWGBP ?
U 1151, 3410,0001,0000,0000,0000,0050,0000	; 8617		CALL [STR2WD]			;YES, CONVRT DONE, STORE
U 1152, 0001,4001,0000,0000,0000,0003,0000	; 8618		RETURN1				;NO, GET OUT
U 1153, 3407,3312,2004,4000,0000,1010,0000	; 8619		AC2_AR,AR_BR OR ARX		;[407] ADDRESS TO AC2
U 3407, 0001,4001,0001,0000,0000,1003,0000	; 8620		AC1_AR,RETURN1			;[407] P,S,BIT 12 = 1 TO AC1
						; 8621	
						; 8622	; HERE TO TEST FOR OWGBP IN THE AR AND
						; 8623	; TO CONVERT IT IF IT'S OK
						; 8624	
						; 8625	=00
U 1170, 2670,0001,0000,0000,0000,5050,0000	; 8626	TST2WD:	SKP PC SEC0,CALL,J/GTST		;TEST FOR NOT SEC 0 AND OWGBP [266]
U 1171, 0002,4001,0000,0000,0000,0003,0000	; 8627	RET2:	RETURN2				;[260]NOT TODAY
U 1172, 3366,0001,0000,0000,0000,0050,0000	; 8628		CALL [CNV2WD]			;YES, CONVERT 
U 1173, 0001,3202,0010,0000,0000,0703,0003	; 8629		MQ_BR,RETURN1			;GET OUT
						; 8630	
						; 8631	; HERE TO GET P,S,BIT 12 = 1 AND A GOOD ADDRESS
						; 8632	; SOME VERY TRICKY STUFF GOING ON HERE
						; 8633	
U 3410, 3411,3240,2067,0000,0020,0010,0164	; 8634	STR2WD:	[AR]_FM[EXPMSK], BR/AR,BRX/ARX	;[310] P,S,JUNK TO BR, SAVE ARX
U 3411, 3412,3002,0204,0000,0000,0010,0000	; 8635		ARX_AR ANDCA BR			;P,S,0 TO ARX
U 3412, 3413,5100,2007,0000,0020,0010,0175	; 8636		[AR]_[AR]-FM[ADMSK]		;BIT 12 = 1 TO AR
						; 8637		AR_[MQ] AND FM[ADMSK],		;0,ADDRESS TO AR
U 3413, 0002,3620,2047,4000,0020,0003,0175	; 8638			BR/AR,RETURN2		;BIT 12=1 TO BR
						; 8639	.ENDIF/OWGBP				;[265]
						; 8640	.ENDIF/EXTEND
						; 8641	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 5
; EIS.MIC[10,5351]	19:52 24-Jul-85			EIS -- STRING MOVE					

						; 8642	.TOC	"EIS -- STRING MOVE"
						; 8643	.IF/EXTEND
						; 8644	; HERE FOR MOVE STRING, CHECK FOR OWGBP FIRST
						; 8645	;SLEN IS THE COMPLEMENT OF THE SHORTER STRING LENGTH
						; 8646	;DLEN IS <SRC LEN>-<DST LEN>
						; 8647	
						; 8648	.IF/OWGBP
						; 8649	=0*0*					;[347]
U 0660, 1171,3200,0003,0000,0022,0050,0000	; 8650	MVST:	AR_MEM,CALL [RET2]		;[260]GET FILL, WAIT FOR PARITY
U 0662, 2020,0001,0007,0000,0000,1050,0173	; 8651		FILL_AR,CALL [EXT2WD]		;SAVE FILL, CHECK FOR OWGBP
U 0672, 3414,3200,2005,0000,0020,0010,0000	; 8652	=1*1*	AR_AC3				;[347] GET DLEN
U 3414, 3415,3200,2040,0000,0020,0010,0000	; 8653		BR/AR,AR_AC0			;[347] Copy for length compare
						;;8654	.IFNOT/OWGBP
						;;8655	MVST:	BR/AR,AR_MEM,			;HOLD AC3, WAIT FOR FILLER
						;;8656			FE_AR0-8,SKP SCAD NE	;CHECK FOR FLAGS IN DEST LEN
						;;8657	=0	ARX_AC0,J/MVST1			;GET SRC LEN, FLAGS
						;;8658	NOLENS:	AR_E0,J/UUO			;NO FLAGS ALLOWED IN DST LEN
						;;8659	MVST1:	FILL_AR,AR_ARX			;SAVE FILL CHAR
						; 8660	.ENDIF/OWGBP
U 3415, 3416,0001,0000,2421,0000,0110,0000	; 8661		FE_AR0-8,AR0-8_#,#/0		;SEPARATE FLAGS OFF
U 3416, 2712,5102,2400,0000,1040,5510,0000	; 8662		ARX_AR,AR_AR-BR,SKP AD0		;COMPUTE SRC-DST LEN
U 2712, 3417,2542,2005,0000,0000,1010,0000	; 8663	=0	DLEN_AR,AR_BR COMP,J/MVST2	;SRC LONGER
U 2713, 3417,2001,6005,0000,0000,1010,0000	; 8664		DLEN_AR,AR_ARX COMP		;DST LONGER
U 3417, 3420,3401,2417,0000,1000,1010,0170	; 8665	MVST2:	SLEN_AR,ARX_AR,MQ_AR,AR_0S	;-SHORT LEN -1 TO MQ
U 3420, 3421,0001,0020,0000,2000,0022,0200	; 8666		AR0-8_FE,BRX/ARX		; AND BRX
U 3421, 2164,0001,0000,0000,0000,1033,0000	; 8667		SFLGS_AR,B DISP
U 2164, 3423,2341,0200,0302,0000,0410,0014	; 8668	=100	CLR AR,ARX_1S,SC_#,#/12.,J/MOVS2;[220]TRANSLATE, BUILD MASK
U 2165, 3422,3240,2006,0000,0020,0010,0144	; 8669		AR_DSTP,J/MVSO3			;OFFSET, MASK DEPENDS ON S
U 2166, 2240,4662,6600,0000,0020,1610,0111	; 8670		ARX_BRX+1,AR/ADX,SR_SRC,J/MOVST1	;LEFT JUSTIFY
U 2167, 1230,3240,2005,0000,0020,5510,0000	; 8671		AR_DLEN,SKP AD0,J/MOVRJ		;RIGHT JUSTIFY
						; 8672	
U 3422, 3423,2341,2000,2412,0000,0510,0000	; 8673	MVSO3:	SC_S,CLR ARX,AR_1S		;PREPARE TO BUILD MASK
U 3423, 3424,4001,4000,0000,0000,1610,0111	; 8674	MOVS2:	AR_SHIFT,SR_SRC
U 3424, 2220,0001,0007,0000,0000,1010,0167	; 8675		MSK_AR
						; 8676	=000
U 2220, 2370,4640,2007,0000,0020,0050,0170	; 8677	MOVELP:	AR_SLEN+1,CALL,J/SRCMOD		;PICK UP SOURCE BYTE
U 2221, 2241,3240,2005,0000,0020,0010,0000	; 8678		AR_DLEN,J/MOVSTX		;(1) LENGTH EXHAUSTED
						; 8679	=100
U 2224, 1540,4001,0000,0000,0000,1650,0213	; 8680	MOVPUT:	SR_SRC+DST,CALL,J/PUTDST	;(4) NORMAL, STORE DST BYTE
U 2225, 3425,3200,2005,0000,0237,0010,0000	; 8681		I FETCH,AR_DLEN,J/MVABT		;(5) ABORT
U 2226, 2220,0001,0000,0000,0000,1610,0111	; 8682	=110	SR_SRC,J/MOVELP			;(6) DPB DONE
						; 8683	=
						; 8684	;HERE TO ABORT A STRING MOVE DUE TO TRANSLATE OR OFFSET FAILURE
						; 8685	
U 3425, 2714,5160,2047,0000,0020,4510,0170	; 8686	MVABT:	BR/AR,AR_-SLEN,SKP AR0		;WHICH STRING LONGER?
						; 8687	=0
U 2714, 3426,4001,0005,0000,0002,1010,0000	; 8688	MVABT1:	AC3_AR,FETCH WAIT,J/MVABT2	;PUT AWAY DEST LEN
U 2715, 2714,5102,2000,0000,0020,0010,0000	; 8689		AR_AR-BR,J/MVABT1		;DEST LEN WAS GREATER
						; 8690	
U 3426, 2716,2540,2007,0000,0020,4210,0170	; 8691	MVABT2:	AR_SLEN COMP,SKP BR0		;GET UNDECREMENTED SLEN
U 2716, 2717,0602,2004,0000,0020,0010,0000	; 8692	=0	AR_AR+BR			;SRC LONGER BY (DLEN)
U 2717, 0065,3300,2000,4000,0020,1610,0000	; 8693	MVEND:	AR_AR*SFLGS,AD/OR,SR_0,J/STAC	;PUT BACK REMAINING LENGTH
						; 8694	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 6
; EIS.MIC[10,5351]	19:52 24-Jul-85			EIS -- STRING MOVE					

						; 8695	;HERE TO BEGIN RIGHT-JUSTIFIED MOVE
						; 8696	
						; 8697	=00
U 1230, 2720,3240,2401,0000,1020,1610,0111	; 8698	MOVRJ:	ARX_AR,AR_SRCP,SR_SRC,J/MVSKP	;SRC LONGER, SKIP OVER SOME
U 1231, 0652,4001,0000,0000,0000,1650,0214	; 8699		SR_DSTF,CALL,J/MOVF1		;DST LONGER, FILL IT
U 1233, 2240,4662,6600,0000,0020,1610,0111	; 8700	=11	ARX_BRX+1,AR/ADX,SR_SRC,J/MOVST1	;DONE FILLING
						; 8701	
						; 8702	=0
						; 8703	MVSKP:	ARX_ARX-1 (AD),FE_#,#/36.,
U 2720, 1436,1711,0200,0301,0040,7032,0044	; 8704			SIGNS DISP,SKP INTRPT,J/MVSK1
U 2721, 2720,4003,2000,5010,3020,0610,0200	; 8705		P_FE-S,AR_AR+1,J/MVSKP
						; 8706	=1110
U 1436, 2720,0001,0000,5110,3021,5110,0200	; 8707	MVSK1:	P_P-S,SKP SCAD0,J/MVSKP		;BUMP POINTER
U 1437, 1456,3713,0001,0000,0021,1032,0030	; 8708		SRCP_AR,GEN ARX,SIGNS DISP,AR_0.M
U 1456, 3427,2540,2227,0000,0020,0010,0170	; 8709	=1110	BRX/ARX,AR_SLEN COMP,ARX/AD,J/MVSK3	;INTERRUPTED
U 1457, 2246,4001,0005,0000,0000,1010,0000	; 8710		DLEN_AR,J/MVSK4			;DONE FILLING
						; 8711	
U 3427, 3430,4602,6005,4000,0020,1010,0000	; 8712	MVSK3:	AC3_AR,AR_ARX*BRX,AD/A+B+1	;DEST HAS SHORT LEN
U 3430, 3772,4001,0000,0000,0000,1610,0000	; 8713		SR_0,J/STRPF2			;FIX UP AC0, SERVE INTRPT
						; 8714	
						; 8715	;HERE FOR NO-MODIFICATION STRING MOVES
						; 8716	
						; 8717	;[266]	Remove edit 244
						; 8718	;;[244]	THIS ADDRESS MUST REMAIN SET FOR THE PROBLEM
						; 8719	;;	OF THE S FIELD OF THE SOURCE POINTER BEING > 36.
						; 8720	;;
						; 8721	;.IF/MODEL.B
						; 8722	;1300:					;[244]
						; 8723	;MOVST1:	SLEN_AR,BRX/ARX,		;PUT UPDATED LEN AWAY
						; 8724	;		AR+ARX+MQ_0.M,CALL.M,
						; 8725	;		SIGNS DISP,J/GSRC
						; 8726	;1301:
						; 8727	;MOVSTX:	SKP AR0,ARX_AR,AR_0S,J/MOVST2	;SHORT LEN EXHAUSTED
						; 8728	;1302:	SR_SRC+DST,CALL,J/PUTDST
						; 8729	;1306:
						; 8730	;MVSK4:	ARX_BRX+1,AR/ADX,SR_SRC,J/MOVST1
						; 8731	;.IFNOT/MODEL.B		;[244][266]
						; 8732	=000
						; 8733	MOVST1:	SLEN_AR,BRX/ARX,		;PUT UPDATED LEN AWAY
						; 8734			AR+ARX+MQ_0.M,CALL.M,
U 2240, 1753,4001,0027,0000,0021,1072,0170	; 8735			SIGNS DISP,J/GSRC
U 2241, 1250,3401,2400,0000,1000,4510,0000	; 8736	MOVSTX:	SKP AR0,ARX_AR,AR_0S,J/MOVST2	;SHORT LEN EXHAUSTED
U 2242, 1540,4001,0000,0000,0000,1650,0213	; 8737	=010	SR_SRC+DST,CALL,J/PUTDST
						; 8738	=110
U 2246, 2240,4662,6600,0000,0020,1610,0111	; 8739	MVSK4:	ARX_BRX+1,AR/ADX,SR_SRC,J/MOVST1
						; 8740	=
						; 8741	;.ENDIF/MODEL.B		;[244][266]
						; 8742	=00
						; 8743	MOVST2:	TEST ARX,TEST FETCH,		;SKIP IF BOTH LENGTHS =0
U 1250, 2717,3713,4005,0000,2246,1010,0203	; 8744			AC3_AR,AR_ARX,J/MVEND	;CLEAR DEST LEN, REBUILD SRC
U 1251, 0652,4001,0000,0000,0000,1650,0212	; 8745		SR_DST,CALL,J/MOVF1		;SOURCE GONE, FILL OUT DST
U 1253, 3524,3200,2000,0000,0220,0010,0000	; 8746	=11	AR_SFLGS,VMA_PC+1,J/SFET1	;DONE FILLING
						; 8747	
						; 8748	;NOTE -- IT AIN'T AS EASY AS IT LOOKS TO BUM A CYCLE OUT OF THIS
						; 8749	; ROUTINE, BECAUSE AN INTERRUPT, IF ANY, HAS TO BE TAKEN AFTER THE
						; 8750	; POINTER UPDATE AND BEFORE THE LENGTH UPDATE.  GOOD HUNTING!
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 6-1
; EIS.MIC[10,5351]	19:52 24-Jul-85			EIS -- STRING MOVE					

						; 8751	=01*
U 0652, 1540,3240,2007,0000,0020,0050,0173	; 8752	MOVF1:	AR_FILL,CALL,J/PUTDST
U 0656, 2722,4660,2005,0000,0020,7010,0000	; 8753		AR_DLEN+1,SKP INTRPT,J/MOVF2
						; 8754	=0
U 2722, 1473,0001,0005,0000,0020,1032,0000	; 8755	MOVF2:	DLEN_AR,SIGNS DISP,J/MOVF3	;DONE?
U 2723, 0040,4001,0000,0000,0000,0005,0000	; 8756		SR DISP,J/CLEAN			;BREAK OUT FOR INTERRUPT
						; 8757	=1011
U 1473, 0002,4001,0000,0000,0000,0003,0000	; 8758	MOVF3:	RETURN2				;YES, DONE
U 1477, 0652,0001,0000,0000,0000,0010,0000	; 8759		J/MOVF1				;NO, DO ANOTHER
						; 8760	.ENDIF/EXTEND
						; 8761	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 7
; EIS.MIC[10,5351]	19:52 24-Jul-85			EIS -- STRING COMPARE					

						; 8762	.TOC	"EIS -- STRING COMPARE"
						; 8763	.IF/EXTEND
						; 8764	
						; 8765	;HERE FOR CMPS, CHECK FOR OWGBP FIRST
						; 8766	; [310] E0+1 will be saved in FILL during OWG checking.  We restore it
						; 8767	; from ARX to MQ here.  This keeps us from fetching bogus fill characters.
						; 8768	
						; 8769	.IF/OWGBP
U 3431, 3432,3200,2440,0000,1020,0010,0000	; 8770	CMPS:	BR/AR,ARX_AR,AR_AC0		;[347]DEST LEN TO BR, GET SRC LEN
U 3432, 2724,3102,0000,0000,0020,5410,0000	; 8771		SKP AR GT BR			;[347] Which string is longer?
U 2724, 3433,3721,0000,0000,0300,0010,0000	; 8772	=0	VMA_MQ,J/CMPS1			;[310] Source shorter
U 2725, 3433,4023,0000,0000,0320,0010,0000	; 8773		VMA_MQ+1			;[310] SRC LONGER, GET DST FILLER
U 3433, 3434,1703,6200,0000,0032,0010,0000	; 8774	CMPS1:	LOAD AR,AR_ARX-1,ARX_AR-1,TIME/3T;[347] Decrement lengths, get fill
U 3434, 2727,3240,0063,0000,0022,0010,0000	; 8775		AR_MEM,BR/AR,BRX/ARX,J/CMPS4	;DECREMENTED LEN'S TO BR'S
						; 8776	
						;;8777	.IFNOT/OWGBP				;[347]
						;;8778	CMPS:	BR/AR,ARX_AR,FE_AR0-8,AR_AC0	;DEST LEN TO BR, GET SRC LEN
						;;8779		FE_FE OR AR0-8,			;GATHER HIGH BITS OF LEN'S
						;;8780			SKP AR GT BR		;WHICH STRING LONGER?
						;;8781	=0					;[347]
						;;8782	CMPS1:	LOAD AR,AR_ARX-1,ARX_AR-1,	;SRC SHORTER
						;;8783			GEN FE,SKP SCAD NE,J/CMPS2 ;CHECK LEN'S PURE
						;;8784		VMA_VMA+1,J/CMPS1		;SRC LONGER, GET DST FILLER
						;;8785	=0
						;;8786	CMPS2:	AR_MEM,BR/AR,BRX/ARX,J/CMPS4	;DECREMENTED LEN'S TO BR'S
						;;8787		AR_MEM,J/NOLENS			;[275] ILLEGAL BITS IN LEN'S
						; 8788	.ENDIF/OWGBP
						; 8789	
						; 8790	;HERE IS THE COMPARE LOOP.
						; 8791	; MQ CONTAINS THE FILL CHARACTER FOR THE SHORTER STRING,
						; 8792	; BR CONTAINS THE REMAINING DESTINATION LENGTH,
						; 8793	; BRX CONTAINS THE REMAINING SOURCE LENGTH
						; 8794	=0
U 2726, 1536,4321,0700,0000,0020,0010,0000	; 8795	CMPS3:	ARX0_MQ35,J/CMPSX		;WE GOT INEQUALITY.  GET SIGN
						; 8796	CMPS4:	MQ_AR,ARX_AR,FE_#,#/36.,	;FILL TO MQ & ARX
U 2727, 1530,3242,2410,0301,1000,4310,0044	; 8797			AR_BR,SKP ARX0		;MORE CHARS IN SRC STRING?
						; 8798	=1000	AR_SRCP,ARX_SRCP,		;READY WITH SRC POINTER
U 1530, 2760,3240,2201,0000,0040,1650,0101	; 8799			SR_ED(S),CALL,J/GSRC1	;GO GET SRC BYTE
U 1531, 1532,3441,4200,0000,2020,1632,0000	; 8800		AR_ARX,ARX_0S,SR_0,SIGNS DISP	;SRC DONE.  TEST DEST LEN
U 1532, 1535,3723,2007,0000,0020,1032,0166	; 8801	=1010	T0_AR,AR_MQ,SIGNS DISP,J/CMPS5	;SRC (OR SRC FILL) TO T0,
						; 8802	=1110					;TEST FOR END OF DEST STRING
U 1536, 0073,3711,0000,0000,0246,0010,0202	; 8803	CMPSX:	GEN ARX,CMS FETCH,J/NOP		;QUIT WITH COMPARE COND IN ARX
						; 8804	=
						; 8805	;HERE TO GET DESTINATION BYTE.  SRC IS IN T0, FILL CHAR IN AR
						; 8806	;HERE WITH SIGNS DISP, TO AVOID CALL ON CMPDST IF DST LEN EXHAUSTED
						; 8807	
						; 8808	=1101
U 1535, 2732,4001,0000,0000,0000,1650,0224	; 8809	CMPS5:	SR_ED(+D),CALL,J/CMPDST		;GO FOR DESTINATION BYTE
						; 8810		AR_AR*T0,AD/XOR,		;AR ZERO IF EQUAL
U 1537, 3435,3100,2307,4000,0020,0012,0166	; 8811			ARX/MQ,MQ_MQ*2		;FILL TO ARX, CRY TO MQ35
						; 8812		BR/AR,BRX/ARX,			;EQUALITY TO BR, FILL TO BRX
U 3435, 2730,3242,2660,0000,0000,4210,0000	; 8813			AR_BR,ARX_BRX,SKP BR0	;LENGTHS TO AR, ARX
						; 8814	=0	AC3_AR,ARX_AR,AR_ARX (AD),	;UPDATE DEST LEN IN AC3
U 2730, 1556,3713,2405,0000,1020,1032,0000	; 8815			SIGNS DISP,J/CMPS6	;TEST SRC LEN
U 2731, 1556,3713,2400,0000,1000,0010,0000	; 8816		ARX_AR,AR_ARX (AD)		;DEST LEN EXHAUSTED
						; 8817	=1110
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 7-1
; EIS.MIC[10,5351]	19:52 24-Jul-85			EIS -- STRING COMPARE					

U 1556, 3436,1703,6200,0000,0040,1010,0000	; 8818	CMPS6:	AC0_AR,AR_ARX-1,ARX_AR-1,J/CMPS7	;UPDATE SRC LEN IN AC0
U 1557, 3436,1701,6200,0000,0040,0010,0000	; 8819		AR_ARX-1,ARX_AR-1		;SRC EXHAUSTED PREVIOUSLY
						; 8820	
						; 8821	CMPS7:	BR/AR,BRX/ARX,			;LENGTHS TO BR'S
U 3436, 2726,7162,6060,0000,0040,5410,0000	; 8822			SKP BR EQ,AR/ADX,J/CMPS3	;CHECK FOR EQUALITY
						; 8823	
						; 8824	=0
						;;8825	.IFNOT/MODEL.B
						;;8826	CMPDST:	AR_DSTP,ARX_DSTP,FE_#,#/36.,	;GET DEST BYTE FOR COMPARE
						;;8827			CALL,J/IDST		;UPDATE DEST POINTER
						; 8828	.IF/MODEL.B
						; 8829	CMPDST:	AR_DSTP,ARX_DSTP,		;GET DEST BYTE FOR COMPARE
U 2732, 3507,3240,2206,0000,0040,0050,0144	; 8830			CALL,J/IDST		;UPDATE DEST POINTER
						; 8831	.ENDIF/MODEL.B
U 2733, 2656,4001,0000,2002,0000,7010,0000	; 8832		SC_FE+SC,SKP INTRPT,J/LDB1	;GET DEST BYTE
						; 8833	.ENDIF/EXTEND
						; 8834	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 8
; EIS.MIC[10,5351]	19:52 24-Jul-85			EIS -- DECIMAL TO BINARY CONVERSION			

						; 8835	.TOC	"EIS -- DECIMAL TO BINARY CONVERSION"
						; 8836	.IF/EXTEND
						; 8837	; HERE WITH AC0 (SRC LEN) IN AR COMPLEMENTED
						; 8838	; IN THE LOOP, AC3 CONTAINS 10 (DECIMAL), BR'BRX HAS ACCUMULATED BINARY
						; 8839	
						; 8840	.IF/OWGBP
						; 8841	=0
U 2734, 1150,0001,0000,0000,0000,0050,0000	; 8842	DBIN:	CALL [DB2WD]			;CHECK FOR OWGBP
U 2735, 3437,2540,2000,0000,0020,0010,0000	; 8843		AR_AC0 COMP			;FLAGS TO AR
U 3437, 3440,0001,0040,1421,0000,0110,0777	; 8844		BR/AR,FE_AR0-8 COMP,AR0-8_#,#/-1	;FORCE OUT FLAGS
						;;8845	.IFNOT/OWGBP
						;;8846	DBIN:	BR/AR,FE_AR0-8 COMP,AR0-8_#,#/-1	;FORCE OUT FLAGS
						; 8847	.ENDIF/OWGBP
U 3440, 1575,3441,2207,0000,0020,1032,0170	; 8848		SLEN_AR,AR_0S,ARX_0S,SIGNS DISP
U 1575, 3442,3200,0216,0000,2020,0110,0144	; 8849	=1101	AR0-8_FE#,MQ_ARX,ARX_AC4,J/DBS1	;BUILD SFLGS
U 1577, 2266,0001,0000,0000,0000,0033,0000	; 8850		B DISP				;OFFSET OR TRANSLATE?
U 2266, 3441,4001,0000,0000,2000,0022,0200	; 8851	=110	AR0-8_FE,J/DBST			;TRANSLATE, LET S FLAG SET LATER
U 2267, 3441,4001,0000,6030,2000,0110,0400	; 8852		AR0-8_FE OR #,#/400		;OFFSET, SET S FLAG
U 3441, 3444,3401,2200,0000,0000,1010,0000	; 8853	DBST:	SFLGS_AR,AR_0S,ARX_0S,J/DBS2	;CLEAR BINARY
						; 8854	
U 3442, 3443,3721,0500,0000,0000,1010,0000	; 8855	DBS1:	SFLGS_AR,ARX_ARX*2		;HERE WHEN SIG ALREADY ON
U 3443, 3444,3200,2005,0000,0020,0010,0000	; 8856		AR_AC3				;ACCUMULATED BINARY IN AR
U 3444, 3445,4061,2060,0000,0020,0510,0000	; 8857	DBS2:	BR_AR LONG,AR_1,CLR ARX
U 3445, 2306,0603,5004,0302,0020,0033,0004	; 8858		AR_AR*10,B DISP,SC_#,#/4	;GET CONSTANT 10 FOR COMPARE
U 2306, 3446,2301,4205,0000,2000,1010,0000	; 8859	=110	AC3_AR,AR_ARX,ARX_1S,J/DBS3	;PREPARE TO BUILD MASK
U 2307, 3446,2301,2005,0000,0000,1010,0000	; 8860		AC3_AR,AR_1S			;OFFSET
U 3446, 3447,0001,4000,0000,0000,1610,0102	; 8861	DBS3:	AR_SHIFT,SR_DB
U 3447, 0520,3202,2607,0000,0000,1010,0167	; 8862		MSK_AR,AR_BR LONG		;SAVE MASK, GET INITIAL INPUT
						; 8863	
						; 8864	=0*0
						; 8865	DBINLP:	BR_AR LONG,AR_SLEN+1,		;BINARY BACK TO BR, COUNT LENGTH
U 0520, 2370,4640,2067,0000,0020,0050,0170	; 8866			CALL,J/SRCMOD		;PICK UP A DIGIT
U 0521, 2740,3203,0000,0000,0220,5510,0000	; 8867		SKP AR2,VMA_PC+1,J/DBXIT	;(1) DONE, TEST M FLAG
						; 8868		ARX_AR,AR+MQ_0.M,GEN AR-AC3,	;(4) NORMAL, ADD IN DIGIT
U 0524, 2736,5100,0405,4000,1041,5410,0130	; 8869			SKP CRY0,J/DBIN2	;TEST FOR DIGIT >9
U 0525, 3452,2500,2007,0000,0020,0010,0170	; 8870		AR_SLEN COMP,J/DBABT		;(5) ABORT
						; 8871	
						; 8872	;HERE TO ADD IN A DIGIT
						; 8873	
						; 8874	=0
U 2736, 3450,3202,2660,0000,0000,0010,0000	; 8875	DBIN2:	BR_AR LONG,AR_BR LONG,J/DBIN3	;DIGIT TO BR LONG, BINARY TO AR LONG
U 2737, 3452,2500,2007,0000,0020,0010,0170	; 8876		AR_SLEN COMP,J/DBABT		;DIGIT >9, ABORT
						; 8877	
U 3450, 3451,0603,2604,0000,0020,0027,0000	; 8878	DBIN3:	AR_AR*5 LONG			;ALREADY HAVE BINARY *2
U 3451, 0520,0602,5500,0000,0020,0027,0000	; 8879		AR_2(AR+BR) LONG,J/DBINLP	;ADD IN DIGIT, SHIFT LEFT
						; 8880	
						; 8881	;HERE ON ABORT
						; 8882	
U 3452, 3453,3300,2000,4000,0020,0010,0000	; 8883	DBABT:	AR_AR*SFLGS,AD/OR		;[230][221]FLAGS +LEN REMAINING
						; 8884		AC0_AR,AR_BR LONG,SC_#,#/35.,	;PUT BACK UNUSED LENGTH
U 3453, 3454,3242,2600,0302,0200,1010,0043	; 8885			VMA_PC+1,J/STOR34	;END WITH NO SKIP
						; 8886	
						; 8887	;HERE AT END
						; 8888	
						; 8889	=0
						; 8890	DBXIT:	AR_BR LONG,VMA_VMA+1,		; M FLAG=0
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 8-1
; EIS.MIC[10,5351]	19:52 24-Jul-85			EIS -- DECIMAL TO BINARY CONVERSION			

U 2740, 3454,3242,2600,0302,0000,3610,0043	; 8891			SC_#,#/35.,J/STOR34	;GO FOR NEXT INSTR
						; 8892		AR_-BR LONG,VMA_VMA+1,		;NEGATE
U 2741, 3454,5142,2600,0302,0020,3627,0043	; 8893			SC_#,#/35.
U 3454, 3455,5401,2005,0000,0037,1016,0000	; 8894	STOR34:	AC3_AR,AR_SIGN,FETCH		;STORE HIGH PART
U 3455, 3456,0001,4000,0000,0000,1610,0000	; 8895		AR_SHIFT,SR_0			;GET LOW READY
						; 8896	.IF/MODEL.B
U 3456, 3457,0001,0000,0000,0000,0010,0144	; 8897		SEL AC4				;PRESEL NUMBER TO FIX HARDW GLITCH
						; 8898	.ENDIF/MODEL.B
U 3457, 0221,0001,0006,0000,0000,1010,0144	; 8899	STAC4:	AC4_AR,FINISH
						; 8900	.ENDIF/EXTEND
						; 8901	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 9
; EIS.MIC[10,5351]	19:52 24-Jul-85			EIS -- BINARY TO DECIMAL CONVERSION			

						; 8902	.TOC	"EIS -- BINARY TO DECIMAL CONVERSION"
						; 8903	.IF/EXTEND
						; 8904	;	AC0,AC1 = BINARY INTEGER INPUT
						; 8905	;	AC3 = FLAGS, MAX LENGTH OF DECIMAL STRING
						; 8906	;	AC4 = DESTINATION STRING POINTER
						; 8907	; TEMPS ARE USED AS FOLLOWS:
						; 8908	;	FILL = VMA of fill character (to preserve through OWGBP check) [344]
						; 8909	;	SLEN= # OF SIGNIFICANT DIGITS
						; 8910	;	T1,2= 10.**(SLEN) THE LOWEST POWER OF TEN LARGER THAN BINARY
						; 8911	;
						; 8912	;FPD IS SET IF THE INSTRUCTION WAS INTERRUPTED AFTER CONVERSION OF THE
						; 8913	; BINARY INTEGER TO FRACTION FORM (AFTER STORING FILL, IF NEEDED).
						; 8914	
						; 8915	.IF/OWGBP
						; 8916	=0***					;[347]
U 0461, 2024,4001,0007,0000,0000,1050,0173	; 8917	BDEC:	FILL_AR,CALL [EXT01]		;[344] Save fill VMA, check OWGBP
						; 8918		AR_AC1,ARL/AD,SC_1,ARX+MQ_0.M,
U 0471, 1443,3200,2001,4402,0041,0034,0142	; 8919			BYTE DISP		;GET BIN INTEGER
						; 8920	=011	ARX_SHIFT,AR_AC0,SKP AD0,	;BINARY INTEGER NOW IN AR LONG
U 1443, 2742,3200,2400,0302,0020,5510,0020	; 8921			SC_#,#/20,J/BD1		;IS IT NEGATIVE?
						;;8922	.IFNOT/OWGBP
						;;8923	=011
						;;8924	BDEC:	ARX_SHIFT,AR_AC0,SKP AD0,	;BINARY INTEGER NOW IN AR LONG
						;;8925			SC_#,#/20,J/BD1		;IS IT NEGATIVE?
						; 8926	.ENDIF/OWGBP
U 1447, 3460,3200,2405,0000,1020,1610,0010	; 8927	BDDR1:	ARX_AR,AR_AC3,SR_BDT		;RESUME WITH FRACTION IN AR LONG
						; 8928		BR/AR,CLR EXP,			;SEPARATE FLAGS & LENGTH
U 3460, 3461,3240,0260,0400,2021,0010,0200	; 8929			BRX/ARX,ARX_AC0		;LOW FRAC TO BRX, HI TO ARX
U 3461, 3462,3002,2044,0000,0000,0010,0000	; 8930		AR_AR*BR,AD/ANDCA,BR/AR		;JUST FLAGS TO AR, JUST LEN TO BR
U 3462, 3463,4001,4005,0000,2000,1010,0000	; 8931		AC3_AR,AR_ARX			;GET HI FRAC TO AR
						; 8932		BR/AR,VMA_PC+1,			;FRAC TO BR LONG, GET VMA READY
U 3463, 2746,5162,2040,0000,0240,5410,0000	; 8933			AR_-BR,SKP CRY0,J/BDDR4	;CHECK FOR MORE TO GO
						; 8934	
						; 8935	=0
U 2742, 1330,3701,0000,0000,0040,5427,0000	; 8936	BD1:	SKP AR NE,AD LONG,J/BD2		;TEST FOR ZERO LONG
U 2743, 1331,5163,7700,0302,0020,0027,0030	; 8937		AR_-AR LONG,SC_#,#/30,J/BD3	;MAKE POSITIVE, SET N&M FLAGS
						; 8938	=00
						; 8939	BD2:	BR_AR LONG,AR_1 LONG,		;BINARY RIGHT-ALIGNED IN BR,
U 1330, 2322,4041,7660,0303,0020,0010,0024	; 8940			SC_#,FE_#,#/20.,J/BD4	;LOOK FOR LARGER POWER OF TEN
						; 8941	BD3:	BR_AR LONG,AR_AC3,		;SAVE POS BINARY, GET AC FLAGS
U 1331, 3545,3240,2065,0000,0020,0050,0000	; 8942			CALL,J/SETFLG		; SET FLAGS AS NEEDED
U 1333, 1330,3201,7705,0000,0000,1010,0000	; 8943	=11	AC3_AR,AR_BR*.5 LONG,J/BD2	;SAVE NEW FLAGS, SHIFT BINARY RIGHT
						; 8944	
						; 8945	;HERE TO FIND THE SMALLEST POWER OF TEN LARGER THAN THE BINARY INTEGER.
						; 8946	;BINARY IS IN BR LONG, AND POSITIVE UNLESS IT WAS 1B0.  IN THIS CASE THE
						; 8947	;COMPARISON WILL NEVER FIND A LARGER POWER OF TEN, BUT THE COUNT IN FE
						; 8948	;WILL RUN OUT, AND WE WILL CORRECTLY COMPUTE 22 DIGITS REQUIRED.
						; 8949	
						; 8950	=010					;IGNORE BR SIGN
U 2322, 3464,0603,5504,3001,0020,0027,0000	; 8951	BD4:	AR_AR*10 LONG,FE_FE-1,J/BD6	;THIS POWER IS TOO SMALL
U 2323, 1660,4001,4007,1002,2000,1010,0171	; 8952		SC_FE-SC-1,T1_AR,AR_ARX,J/BD7	;THIS POWER IS BIG ENOUGH
U 2326, 2327,4001,0000,3001,0000,0010,0000	; 8953		FE_FE-1				;10.**21 IS TOO SMALL, USE 22
U 2327, 1660,4001,4007,1002,2000,1010,0171	; 8954		SC_FE-SC-1,T1_AR,AR_ARX,J/BD7	;10.**21 IS BIG ENOUGH
						; 8955	
U 3464, 2322,1102,0004,0000,0020,0031,0000	; 8956	BD6:	GEN AR-BR-1,DISP/DIV,J/BD4	;COMPARE BINARY TO 10**N
						; 8957	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 10
; EIS.MIC[10,5351]	19:52 24-Jul-85			EIS -- BINARY TO DECIMAL CONVERSION			

						; 8958	;HERE HAVING FOUND THE NUMBER OF DIGITS REQUIRED TO REPRESENT THE
						; 8959	; GIVEN INTEGER.  THE ONE'S COMPLEMENT OF THE NUMBER OF DIGITS IS NOW
						; 8960	; IN SC, AND T1/T2 IS GETTING A POWER OF TEN LARGER THAN THE INPUT.
						; 8961	
						; 8962	=0*
U 1660, 3364,2301,2007,0000,0000,1050,0172	; 8963	BD7:	T2_AR,AR_1S,CALL,J/GETSC	;SAVE (10**N), GET -# OF DIGITS
U 1662, 3465,2543,0207,0000,0000,1010,0170	; 8964		SLEN_AR,ARX_AR*4 COMP		;-# OF SIGNIFICANT DIGITS-1
U 3465, 3466,3200,2005,0000,0020,0010,0000	; 8965		AR_AC3				;GET FLAGS, LENGTH
U 3466, 3467,0001,0000,2421,0000,0110,0000	; 8966		FE_AR0-8,AR0-8_#,#/0		;LEN IN AR, FLAGS IN FE
						; 8967		AR_ARX*.25-AR-1,SKP CRY0,	;-# OF FILL CHARS -1
U 3467, 2744,1113,7000,5032,0040,5410,0400	; 8968			SC_FE-#,#/400		;SC0 SET IF S FLAG =0
U 2744, 3470,4003,0200,0000,0021,0010,0030	; 8969	=0	ARX_AR+1,AR_0.M,J/BD8		;ENOUGH SPACE. -FILL CNT TO ARX
U 2745, 0073,4001,0000,0000,0217,0010,0000	; 8970		I FETCH,J/NOP			;OVERFLOW
						; 8971	BD8:	AR0-8_FE.M,SKP SC0,		;FLAGS TO AR.  S FLAG =0?
U 3470, 1616,2013,0000,0000,2021,4732,0200	; 8972			GEN ARX COMP,SIGNS DISP	; OR EXACT LENGTH?
U 1616, 3471,3260,0007,0000,0332,0010,0173	; 8973	=1110	VMA_FM[FILL],LOAD AR,J/BDF1	;[344] Must fill. GET FILLER
U 1617, 3472,4001,0005,0000,0000,1010,0000	; 8974	BD9:	AC3_AR,J/BDDV1			;NO FILL.  FLAGS TO AC3
						; 8975	
U 3471, 1430,0001,0007,0000,0000,1010,0166	; 8976	BDF1:	T0_AR				;[344] Save flags in T0
U 1430, 3003,3200,0003,0000,0022,1650,0203	; 8977	=00	AR_MEM,SR_BDF,CALL,J/RET1	;GET FILLER, GO WAIT FOR PARITY
U 1431, 2722,0001,4007,0000,2000,1050,0173	; 8978		FILL_AR,AR_ARX,CALL,J/MOVF2	;FILL AS REQUIRED
U 1433, 1617,3200,2007,0000,0020,0010,0166	; 8979	=11	AR_T0,J/BD9			;GET FLAGS BACK
						; 8980	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 11
; EIS.MIC[10,5351]	19:52 24-Jul-85			EIS -- BINARY TO DECIMAL CONVERSION			

						; 8981	;SETUP FOR LONG DIVISION OF BINARY BY 10**N
						; 8982	;BR STILL HAS BINARY RIGHT ALIGNED (IE, LOW SIGN SQUEEZED OUT BY
						; 8983	; SHIFTING HIGH WORD RIGHT).  BR IS POSITIVE UNLESS INPUT INTEGER WAS
						; 8984	; 1B0, IN WHICH CASE BR IS -1B1.  T1,T2 HAS LARGER POWER OF TEN, UNLESS
						; 8985	; BINARY EXCEEDS 10**21, IN WHICH CASE T1,T2 CONTAINS 10**21. SINCE
						; 8986	; BINARY CANNOT BE AS LARGE AS 2 * 10**21, THE FIRST DIVIDE STEP
						; 8987	; IS GUARANTEED TO GENERATE A 1 IN THIS CASE ONLY, AND TO REDUCE THE
						; 8988	; BINARY TO LESS THAN 10**21.
						; 8989	
U 3472, 2346,3200,0207,0000,0020,0410,0172	; 8990	BDDV1:	ARX_T2,CLR AR			;FILL DONE.  GET 10**N
						; 8991	=110	AR_T1,MQ_AR,			;D'SOR SET IN AR, MQ CLR
U 2346, 2350,3240,2017,0000,1020,4250,0171	; 8992			SKP BR0,CALL,J/BDDV2	; CHK D'END SIGN
U 2347, 3473,3200,2400,0000,1020,1110,0100	; 8993		ARX_AR,AR_AC0,SET FPD		;DONE, GET FULL QUO IN AR LONG
U 3473, 3474,4001,2600,0000,0020,1627,0010	; 8994		AR_AR+1 LONG,SR_BDT,J/BDD1	;PREVENT 9'S DISEASE
						; 8995	
						; 8996	=000
						; 8997	BDDV2:	AR_BR LONG,BR_AR LONG,		;BEGIN LONG DIVISION
						; 8998			SC_#,FE_#,#/34.,	;STEP COUNTS FOR BOTH PARTS
U 2350, 0722,3242,2660,0303,0000,0050,0042	; 8999			CALL,J/DDVSUB
						; 9000		AR_-BR,ARX/ADX,BR_AR LONG,	;HERE IF BINARY WAS 1B0
						; 9001			SC_#,FE_#,#/34.,	; IT'S NOW 1B1
U 2351, 0722,5162,2660,0303,0020,0050,0042	; 9002			CALL,J/DDVSUB
						; 9003	=011	AC0_AR,AR_MQ,ARL/AD,MQ_0.M,	;HALF DONE WITH DIVISION
U 2353, 0720,3723,2000,2401,0001,1010,0102	; 9004			FE_SC,J/DDVLP		;RESUME WITH ADD STEP
						; 9005	=101	AC0_AR,AR_MQ,ARL/AD,MQ_0.M,
U 2355, 0722,3721,2000,2401,0001,1010,0102	; 9006			FE_SC,J/DDVSUB		;RESUME WITH SUBTRACT STEP
						; 9007	=
						; 9008	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 12
; EIS.MIC[10,5351]	19:52 24-Jul-85			EIS -- BINARY TO DECIMAL CONVERSION			

						; 9009	;HERE WITH QUOTIENT OF <INPUT INTEGER>/<10**N> IN AR LONG, WITH THE
						; 9010	; BINARY POINT BETWEEN BITS 0 AND 1 OF AR.  THUS, BIT 0 WILL BE SET
						; 9011	; IFF THE INPUT INTEGER WAS GREATER THAN OR EQUAL TO 10**21.
						; 9012	; SINCE THIS IS A TRUNCATED FRACTION, IT IS NOT GREATER THAN THE TRUE
						; 9013	; QUOTIENT, AND THE ERROR IS LESS THAN 2**-71. WE ADD 2**-71, TO
						; 9014	; GUARANTEE THAT OUR FRACTION IS GREATER THAN THE TRUE QUOTIENT,
						; 9015	; WITH AN ERROR NO GREATER THAN 2**-71.  WE WILL THEN MULTIPLY THIS
						; 9016	; FRACTION BY 10 N TIMES, REMOVING THE INTEGER PART AT EACH STEP
						; 9017	; TO EXTRACT THE N DIGITS.  SINCE N IS AT MOST 21, THIS IS A MULTIPLI-
						; 9018	; CATION BY AT MOST 10**21, SO THE ERROR IS AT MOST (2**-71)*(10**21).
						; 9019	; SINCE THIS IS LESS THAN ONE, THE ERROR DOES NOT INTRUDE INTO THE
						; 9020	; OUTPUT DIGIT STRING.
						; 9021	
						; 9022	;HERE IS LOOP TO EXTRACT DIGITS FROM FRACTION IN AC0,AC1
						; 9023	
						; 9024	BDD1:	BR_AR LONG,VMA_PC+1,		;START NEXT LOOP ITERATION
U 3474, 2746,4640,2067,0000,0240,5410,0170	; 9025			AR_SLEN+1,SKP CRY0	;ANY MORE DIGITS?
						; 9026	=0					;HERE TO RESUME AFTER INTERRUPT
						; 9027	BDDR4:	SLEN_AR,MQ_AR,SC_1,		;YES, SAVE LENGTH REMAINING
						; 9028			AR_BR LONG,		; AND GET FRACTION
U 2746, 1635,3202,2617,4402,1020,1032,0170	; 9029			SIGNS DISP,J/BDD2	;CHECK FOR 1ST DIGIT OF 10**21
						; 9030		AR_0S,ARX_0S,CLR FPD,		;NO, DONE.  CLEAR AC0 & AC1
U 2747, 3475,3441,2200,0000,0000,3614,0000	; 9031			VMA_VMA+1
U 3475, 2124,0001,0000,0000,0017,1010,0000	; 9032		AC0_AR,FETCH,J/STRAC1		;MOVE FETCH WHEN TIMING FIXED
						; 9033	=1101					;LOOK AT BR0 ONLY
U 1635, 1637,0603,7700,0302,0020,0027,0004	; 9034	BDD2:	AR_AR*1.25 LONG,SC_#,#/4	;NEXT DIGIT TO AR0-3
U 1637, 2750,3401,2400,0000,1000,7010,0000	; 9035		ARX_AR,AR_0S,SKP INTRPT		;READY TO SHIFT IN DIGIT
U 2750, 2752,0001,4000,0000,0000,0033,0000	; 9036	=0	AR_SHIFT,B DISP,J/BDD3		;STORE IT
U 2751, 3763,3242,2600,0000,0000,1610,0000	; 9037		AR_BR LONG,SR_0,J/B2DPF		;UPDATE REGS & QUIT
						; 9038	
						; 9039	;HERE TO STORE DIGIT IN AR FOR BDEC
						; 9040	=0
U 2752, 3476,0600,0007,4000,0332,0010,0165	; 9041	BDD3:	VMA_AR+E1,LOAD AR,J/BDD4	;TRANSLATE: GET TABLE ENTRY
U 2753, 2364,0600,2007,0000,0020,0010,0165	; 9042		AR_AR+E1,J/BDD7			;OFFSET AR AND STORE IT
						; 9043	
U 3476, 2754,6023,0000,0000,0021,5410,0040	; 9044	BDD4:	SKP MQ EQ -1,TIME/3T,ARX_0.M	;LAST DIGIT?
						; 9045	=0
U 2754, 3477,3200,0003,0000,0022,0010,0000	; 9046	BDD5:	AR_MEM,J/BDD6			;NO, STORE RH (POS DIGIT)
U 2755, 2754,3200,0205,0000,0020,0010,0000	; 9047		ARX_AC3,J/BDD5			;YES, LOOK AT M FLAG
U 3477, 2364,3243,0400,0000,3021,5310,0020	; 9048	BDD6:	SKP ARX2,ARX_AR SWAP,ARL_0.M
						; 9049	=100
U 2364, 1540,0001,0000,0000,0000,1650,0206	; 9050	BDD7:	SR_BDD,CALL,J/PUTDST
U 2365, 2364,4001,4000,0000,2001,0010,0020	; 9051		AR_ARX,ARL_0.M,J/BDD7		;M SET ON LAST DIGIT, USE LH
						; 9052	
						; 9053		AR_BR LONG,SR_BDT,		;GET FRACTION BACK
U 2366, 1655,3242,2600,0000,0020,1632,0010	; 9054			SIGNS DISP		;CHECK BR0 FOR INTEGER PART
						; 9055	=
U 1655, 1657,0603,5500,0000,0020,0027,0000	; 9056	=1101	AR_AR*10 LONG			;DISCARD PREVIOUS DIGIT
U 1657, 3474,0001,0000,7130,3000,0110,0037	; 9057		P_P AND #,#/37,J/BDD1		;CLEAR AR0, GO FOR NEXT
						; 9058	.ENDIF/EXTEND
						; 9059	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 13
; EIS.MIC[10,5351]	19:52 24-Jul-85			EIS -- SRCMOD SUBROUTINE TO GET MODIFIED SOURCE BYTE

						; 9060	.TOC	"EIS -- SRCMOD SUBROUTINE TO GET MODIFIED SOURCE BYTE"
						; 9061	.IF/EXTEND
						; 9062	
						; 9063	;SLEN = COMPLEMENT OF LENGTH
						; 9064	;MSK = MASK
						; 9065	;E1 = EFFECTIVE ADDRESS OF OPERATION WORD (SIGN EXTENDED IF OFFSET)
						; 9066	
						; 9067	;CALL WITH:	AR_SLEN+1,CALL,J/SRCMOD
						; 9068	;RETURNS:	1 LENGTH EXHAUSTED: FLAGS IN AR
						; 9069	;		2 (EDIT ONLY) NO SIGNIFICANCE: FLAGS IN FE
						; 9070	;		3 (EDIT ONLY) SIGNIFICANCE START: BYTE IN AR, FLAGS IN FE
						; 9071	;		4 NORMAL: BYTE IN AR
						; 9072	;		5 ABORT: OUT OF RANGE OR TRANSLATE FAILURE
						; 9073	;	BR, BRX, PRESERVED.
						; 9074	;	B=0 IF TRANSLATE, =1 IF OFFSET MODE, =2 IF EDIT, =4 IF CVTDBT
						; 9075	
						; 9076	;[266] Remove edit 244
						; 9077	;;[244]	THIS ADDRESS MUST REMAIN FOR THE PROBLEM OF THE
						; 9078	;;	S FIELD OF THE SOURCE POINTER BEING GREATER THAT 36.
						; 9079	;
						; 9080	;.IF/MODEL.B
						; 9081	;1200:					;[244]
						; 9082	;SRCMOD:	SLEN_AR,AR+ARX+MQ_0.M,CALL.M,	;PUT LENGTH AWAY, GET BYTE
						; 9083	;		SIGNS DISP,J/GSRC	;CHECK FOR LENGTH EXHAUSTION
						; 9084	;1201:	AR_SFLGS,SR_0,RETURN1		;LEN =0, DONE
						; 9085	;1202:	E1,TIME/2T,B DISP		;BYTE IN AR
						; 9086	;1206:	AR_AR*.5 LONG,E1,J/XLATE	;LOW BIT TO ARX0, BYTE/2 TO AR LOW
						; 9087	;1207:	AR_AR+E1,TIME/3T		;OFFSET, ADD OFFSET, TEST MASK
						; 9088	;	TEST AR.MSK,SKP CRY0,RETURN4	;RETURN 4 IF OK, 5 OUT OF RANGE
						; 9089	;.IFNOT/MODEL.B				;[244][266]
						; 9090	=000
						; 9091	SRCMOD:	SLEN_AR,AR+ARX+MQ_0.M,CALL.M,	;PUT LENGTH AWAY, GET BYTE
U 2370, 1753,0001,0007,0000,0021,1072,0170	; 9092			SIGNS DISP,J/GSRC	;CHECK FOR LENGTH EXHAUSTION
U 2371, 0001,3200,2000,0000,0020,1603,0000	; 9093		AR_SFLGS,SR_0,RETURN1		;LEN =0, DONE
U 2372, 2376,0001,0007,0000,0000,0033,0165	; 9094		E1,TIME/2T,B DISP		;BYTE IN AR
U 2376, 3501,0301,7707,0000,0020,0027,0165	; 9095	=110	AR_AR*.5 LONG,E1,J/XLATE	;LOW BIT TO ARX0, BYTE/2 TO AR LOW
U 2377, 3500,0600,2007,0000,0020,0010,0165	; 9096		AR_AR+E1,TIME/3T		;OFFSET, ADD OFFSET, TEST MASK
U 3500, 0004,3600,0007,4000,0040,5403,0167	; 9097		TEST AR.MSK,SKP CRY0,RETURN4	;RETURN 4 IF OK, 5 OUT OF RANGE
						; 9098	;.ENDIF/MODEL.B		;[244][266]
						; 9099	
						; 9100	;HERE ON TRANSLATE-MODE OPERATIONS, WITH THE BYTE/2 IN AR, AND
						; 9101	; THE LEAST SIGNIFICANT BIT OF THE BYTE IN ARX0.  PERFORM THE
						; 9102	; TABLE LOOKUP, AND OPERATE AS CONTROLLED BY THE HIGH THREE BITS
						; 9103	; OF THE TABLE ENTRY.
						; 9104	
U 3501, 3502,0600,0007,0000,0332,0010,0165	; 9105	XLATE:	VMA_AR+E1,LOAD AR		;GET FUNCTION FROM TABLE
						; 9106	
U 3502, 2756,3240,0003,0302,0022,4310,0022	; 9107	TRNAR:	AR_MEM,SKP ARX0,SC_#,#/18.	;WHICH HALF?
						; 9108	=0	ARX_AR,AR0-3 DISP,		;LH, MOVE TO ARX LEFT
U 2756, 1661,3240,2400,0000,1040,0007,0000	; 9109			AR_SFLGS,J/TRNFNC
						; 9110		ARX_AR SWAP,AR18-21 DISP,	;RH, MOVE THAT TO ARX LEFT
U 2757, 1661,3200,2400,0000,3040,0007,0000	; 9111			AR_SFLGS,J/TRNFNC
						; 9112	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 14
; EIS.MIC[10,5351]	19:52 24-Jul-85			EIS -- SRCMOD SUBROUTINE TO GET MODIFIED SOURCE BYTE

						; 9113	;HERE ON TRANSLATE OPERATION TO PERFORM FUNCTIONS REQUIRED BY
						; 9114	; THE 3 HIGH ORDER BITS OF THE TRANSLATE FUNCTION HALFWORD.
						; 9115	; WE HAVE DISPATCHED ON THOSE THREE BITS, WITH THE FUNCTION
						; 9116	; HALFWORD IN LH(ARX), AND THE FLAGS FROM AC0 IN AR.
						; 9117	
						; 9118	=0001
						; 9119	TRNFNC:	SFLGS_AR,FE_P,AR_SHIFT,		;SAVE FLAGS, GET FCN IN AR RIGHT
U 1661, 1713,4001,4000,0101,0020,1032,0000	; 9120			SIGNS DISP,J/TRNRET	;WAS S FLAG ALREADY SET?
U 1663, 0005,0001,0000,7131,0000,1003,0003	; 9121	TRNABT:	SFLGS_AR,FE_P AND #,#/3,RETURN5	;ABORT
U 1665, 1661,4001,0000,7130,3000,0110,0067	; 9122		P_P AND #,#/67,J/TRNFNC		;CLEAR M FLAG
U 1667, 1661,0001,0000,6130,3000,0110,0010	; 9123		P_P OR #,#/10,J/TRNFNC		;SET M FLAG
U 1671, 1661,0001,0000,6130,3000,0110,0020	; 9124	TRNSIG:	P_P OR #,#/20,J/TRNFNC		;SET N FLAG
U 1673, 1663,4001,0000,6130,3000,0110,0020	; 9125		P_P OR #,#/20,J/TRNABT		;SET N AND ABORT
U 1675, 1671,0001,0000,7130,3000,0110,0067	; 9126		P_P AND #,#/67,J/TRNSIG		;CLEAR M, THEN SET N
U 1677, 1661,4001,0000,6130,3000,0110,0030	; 9127		P_P OR #,#/30,J/TRNFNC		;SET N AND M
						; 9128	
						; 9129	=1011
						; 9130	TRNRET:	ARX_AR*MSK,AD/AND,		;S FLAG IS 0, GET BYTE IN AR
U 1713, 2404,3600,0207,4000,0020,4433,0167	; 9131			SKP AR18,B DISP,J/TRNSS	;IS THIS EDIT?
U 1717, 0004,3600,2007,4000,0020,0003,0167	; 9132		AR_AR*MSK,AD/AND,RETURN4	;RETURN NORMAL SINCE S FLAG SET
						; 9133	
						; 9134	=100
U 2404, 0150,3240,2005,0000,0020,0033,0000	; 9135	TRNSS:	AR_DLEN,B DISP,J/TRNNS1		;NO SIG ON MOVE OR D2B
U 2405, 3504,3200,2000,0302,0020,0010,0040	; 9136		AR_SFLGS,SC_#,#/40,J/TRNSS1	;SIG START, SET FLAG
U 2406, 0002,4640,0007,0000,0332,0003,0176	; 9137		VMA_E0+1,LOAD AR,RETURN2	;EDIT NO SIG.  GET FILL
						;;9138	.IFNOT/MODEL.B
						;;9139		AR_DSTP,FE_#,#/36.,RETURN3	;EDIT SIG START
						; 9140	.IF/MODEL.B
U 2407, 0003,3200,2006,0301,0020,0003,0144	; 9141		AR_DSTP,FE_#,#/144,RETURN3	;EDIT SIG START
						; 9142	.ENDIF/MODEL.B
						; 9143	
						; 9144	=0**
U 0150, 3503,1703,2000,0000,0020,0010,0000	; 9145	TRNNS1:	AR_AR-1,J/TRNNS2		;COMPENSATE FOR IGNORING SRC
U 0154, 2370,4660,2007,0000,0020,0010,0170	; 9146		AR_SLEN+1,J/SRCMOD		;D2B HAS NO DEST LENGTH
U 3503, 1733,4001,0005,0000,0020,1032,0000	; 9147	TRNNS2:	DLEN_AR,SIGNS DISP
U 1733, 2370,3200,2007,0000,0020,0010,0170	; 9148	=1011	AR_SLEN,J/SRCMOD		;SLEN = DST LEN, DON'T CHANGE IT
U 1737, 2370,4660,2007,0000,0020,0010,0170	; 9149		AR_SLEN+1,J/SRCMOD		;SLEN REFLECTS SRC LENGTH
						; 9150						; COUNT DOWN FOR BYTE SKIPPED
U 3504, 3505,0001,0000,6100,3001,0010,0200	; 9151	TRNSS1:	P_P OR SC
U 3505, 0004,0001,4000,0000,2000,1003,0000	; 9152		SFLGS_AR,AR_ARX,RETURN4		;RETURN WITH SIG SET
						; 9153	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 15
; EIS.MIC[10,5351]	19:52 24-Jul-85			EIS -- SRCMOD SUBROUTINE TO GET MODIFIED SOURCE BYTE

						; 9154	;SUBROUTINE TO GET BYTE FROM SOURCE STRING
						; 9155	; CALL GSRC WITH SIGNS DISP TO CHECK FOR LENGTH EXHAUSTION
						; 9156	; [TIME = 17 + 3(BP OVERFLOW)]
						; 9157	
						; 9158	=1011
U 1753, 0001,3240,2005,0000,0020,0003,0000	; 9159	GSRC:	AR_DLEN,RETURN1			;LEN RAN OUT
U 1757, 2760,3200,2201,0301,0040,0010,0044	; 9160	GETSRC:	AR_SRCP,ARX_SRCP,FE_#,#/36.
						; 9161	;[266] Remove edit 244
						; 9162	;.IF/MODEL.B
						; 9163	;	GEN FE-S,SKP SCAD0		;[244] IS S > 36 ?
						; 9164	;=0	J/GSRC1				;[244] NO, GO BELOW
						; 9165	;	DISP/RETURN,J/501		;[244] YES, TRICKY WAY TO
						; 9166	;					;[244] GET OUT
						; 9167	;;[244]	THIS IS DONE THIS WAY SO THAT WE CAN TAKE THE ERROR
						; 9168	;;	RETURN OF THE EXTEND INSTRUCTION. THE TWO PLACES THAT
						; 9169	;;	CALL GSRC ARE SET SO THAT A RETURN WITH J FIELD OF 500
						; 9170	;;	WILL GO TO HERE.
						; 9171	;1701:	RETURN5				;[244] ERROR RETURN
						; 9172	;.ENDIF/MODEL.B		;[244][266]
						; 9173	=0
						; 9174	GSRC1:	P_P-S,SC/SCAD,VMA_PC,CALL.M,	;[352] Increment pointer, init VMA
U 2760, 2414,4001,0000,5112,3121,0074,0200	; 9175			BYTE DISP,J/GSRC2	; section, test word overflow
U 2761, 2656,4001,0000,2002,0000,7010,0000	; 9176		SC_FE+SC,SKP INTRPT,J/LDB1	;GET BYTE & RETURN TO CALLER
						;;9177	.IFNOT/XADDR
						;;9178	=110
						; 9179	.IF/XADDR
						; 9180	=100
						; 9181	.ENDIF/XADDR
						; 9182	GSRC2:	SRCP_AR,ARX_AR,FE_S,		;[352] STORE POINTER,
U 2414, 1354,2341,0401,2411,1000,1036,0000	; 9183			EA MOD DISP,J/BFETCH	; GO EVALUATE THE ADDRESS
						; 9184	GSRC3:	ARR_AR+1,ARX/AD,INH CRY18,	;[352] Update address for ARX (used
U 2415, 2414,4003,2200,5012,3020,0611,0200	; 9185			P_FE-S,SC/SCAD,J/GSRC2	; in EA MOD DISP) and set P
						; 9186	.IF/XADDR
U 2416, 1452,3240,0204,0000,0020,5010,0000	; 9187		ARX_SRCP2,SKP PC SEC0,J/GSRC4	;GET ADDR PART OF POINTER
U 2417, 2762,3240,2404,0000,1020,5010,0000	; 9188		ARX_AR,AR_SRCP2,SKP PC SEC0
U 2762, 2764,4001,2000,0101,0020,4516,0000	; 9189	=0	FE_P,AR_AR+1-AR0,SKP AR0,J/GSRC5
U 2763, 2415,0001,4000,0000,2000,0010,0000	; 9190		AR_ARX,J/GSRC3			;OOPS, SEC 0 IS COMPATABLE
						; 9191	=0
U 2764, 1450,4001,0000,0000,3001,0010,0200	; 9192	GSRC5:	P_FE,J/GSRC6			;EFIW, INCR ALL BUT 0-5
U 2765, 1450,4003,2000,0000,0020,0011,0000	; 9193		AR_AR+1,INH CRY18		;IFIW, INCR RIGHT HALF ONLY
						; 9194	=00
						; 9195	GSRC6:	SRCP2_AR,AR_ARX,ARX_AR (AD),	;SAVE ADDR PART
U 1450, 3506,3701,4204,0000,2000,1050,0000	; 9196			CALL,J/RESETP		;GO SET P TO 36-S
						; 9197	=10
U 1452, 2654,4001,0001,2411,0000,1010,0000	; 9198	GSRC4:	SRCP_AR,FE_S,J/BYTEI		;[352] GO EVALUATE LONG POINTER
U 1453, 1354,2341,0401,2411,1000,1036,0000	; 9199		SRCP_AR,ARX_AR,FE_S,EA MOD DISP,J/BFETCH
						; 9200	
						; 9201	;SUBROUTINE TO LOAD P FROM 36-S
						; 9202	
U 3506, 0002,0001,0000,5312,3000,0103,0044	; 9203	RESETP:	P_#-S,#/36.,SC/SCAD,RETURN2	;START P BACK AT LEFT EDGE
						; 9204	.ENDIF/XADDR
						; 9205	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 16
; EIS.MIC[10,5351]	19:52 24-Jul-85			EIS -- SRCMOD SUBROUTINE TO GET MODIFIED SOURCE BYTE

						; 9206	;SUBR TO STORE AR IN DEST STRING
						; 9207	; [TIME = 24 + 3(BP OVERFLOW)]
						; 9208	
						; 9209	=00
						;;9210	.IFNOT/MODEL.B
						;;9211	PUTDST:	MQ_AR,AR_DSTP,ARX_DSTP,
						;;9212			FE_#,#/36.,CALL,J/IDST
						; 9213	.IF/MODEL.B
U 1540, 3507,3240,2216,0000,1040,0050,0144	; 9214	PUTDST:	MQ_AR,AR_DSTP,ARX_DSTP,CALL,J/IDST
						; 9215	.ENDIF/MODEL.B
						; 9216		AR_MQ,SC_#-SC,#/36.,SKP SCAD0,
U 1541, 2664,3721,2000,5302,0020,5150,0044	; 9217			CALL,J/DPB1
U 1543, 0006,4001,0003,0000,0002,0003,0000	; 9218	=11	MEM_AR,RETURN6
						; 9219	
						; 9220	;SUBROUTINES TO UPDATE STRING POINTERS
						; 9221	
						; 9222	IDST:	VMA_PC,P_P-S,SC/SCAD,BYTE DISP,	;[352] Init VMA section and
U 3507, 2424,0001,0000,5112,3121,0034,0200	; 9223			J/IDST2			; TEST FOR WORD OVERFLOW
						;;9224	.IFNOT/XADDR
						;;9225	  .IFNOT/MODEL.B
						;;9226	=110
						;;9227	IDST2:	DSTP_AR,ARX_AR,FE_S,		;STORE POINTER,
						;;9228			EA MOD DISP,J/BFETCH	; GO GET THE WORD ADDRESSED
						;;9229		AR_AR+1,P_FE-S,SC/SCAD,J/IDST2
						;;9230	  .IF/MODEL.B
						;;9231	=110
						;;9232	IDST2:	SEL DSTP,ARX_AR,J/IDST2B	;[352] PRESEL #, fix ARX address
						;;9233	IDST2A:	FE_#,#/36.			;COULDN'T LOAD FE EARLIER
						;;9234		AR_AR+1,P_FE-S,SC/SCAD,J/IDST2
						;;9235	IDST2B:	DSTP_AR,ARX_AR,FE_S,		;[352] STORE POINTER,
						;;9236			EA MOD DISP,J/BFETCH	; GO GET THE WORD ADDRESSED
						;;9237	  .ENDIF/MODEL.B
						; 9238	.IF/XADDR
						; 9239	=100
U 2424, 3513,4001,0406,0000,1000,0010,0144	; 9240	IDST2:	DSTP,ARX_AR,J/IDST2B		;[352] PRESEL #, fix ARX address
U 2425, 3510,4001,2000,0000,0020,0011,0000	; 9241		AR_AR+1,INH CRY18,J/IDST3
U 2426, 1552,3240,0206,0000,0020,5010,0145	; 9242		ARX_DSTP2,SKP PC SEC0,J/IDST4	;GET ADDR PART OF POINTER
U 2427, 2766,3240,2406,0000,1020,5010,0145	; 9243		ARX_AR,AR_DSTP2,SKP PC SEC0
U 2766, 2770,4001,2000,0101,0020,4516,0000	; 9244	=0	FE_P,AR_AR+1-AR0,SKP AR0,J/IDST5
U 2767, 3510,4013,2000,0000,0020,0011,0000	; 9245		AR_ARX+1 (AD),INH CRY18
U 3510, 2424,0001,0000,5312,3000,0110,0044	; 9246	IDST3:	P_#-S,#/36.,SC/SCAD,J/IDST2	;GO STORE SHORT POINTER AWAY
						; 9247	=0
U 2770, 1550,4001,0000,0000,3000,0110,0145	; 9248	IDST5:	P_FE.C,SEL DSTP2,J/IDST6	;PRESEL # TO FIX HARDW GLITCH
U 2771, 1550,4001,2000,0000,0020,0011,0145	; 9249		AR_AR+1,INH CRY18,SEL DSTP2
						; 9250	=00
						; 9251	IDST6:	DSTP2_AR,AR_ARX,ARX_AR (AD),	;INCR ADDR PART
U 1550, 3506,3703,4206,0000,2000,1050,0145	; 9252			CALL,J/RESETP		;GET P BACK TO 36-S
						; 9253	=10
U 1552, 3511,0001,0000,0000,0000,0010,0144	; 9254	IDST4:	SEL DSTP,J/IDST7		;PRESEL # TO PREVENT HARDW GLITCH
U 1553, 3512,0001,0000,0000,0000,0010,0144	; 9255		SEL DSTP,J/IDST8		;PRESEL # TO PREVENT HARDW GLITCH
						; 9256	
U 3511, 2654,4001,0006,2411,0000,1010,0144	; 9257	IDST7:	DSTP_AR,FE_S,J/BYTEI
						; 9258	IDST8:	DSTP_AR,ARX_AR,FE_S,		;[352][300]
U 3512, 1354,2341,0406,2411,1000,1036,0144	; 9259			EA MOD DISP,J/BFETCH
						; 9260	
						; 9261	IDST2B:	DSTP_AR,ARX_AR,FE_S,		;[352][300]STORE POINTER,
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 16-1
; EIS.MIC[10,5351]	19:52 24-Jul-85			EIS -- SRCMOD SUBROUTINE TO GET MODIFIED SOURCE BYTE

U 3513, 1354,2341,0406,2411,1000,1036,0144	; 9262			EA MOD DISP,J/BFETCH	; GO GET THE WORD ADDRESSED
						; 9263	.ENDIF/XADDR
						; 9264	.ENDIF/EXTEND
						; 9265	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 17
; EIS.MIC[10,5351]	19:52 24-Jul-85			EIS -- EDIT FUNCTION					

						; 9266	.TOC	"EIS -- EDIT FUNCTION"
						; 9267	.IF/EXTEND
						; 9268	;	HERE WITH E0, E1 SETUP, 0 IN AR, -1 IN ARX, AND 15 IN SC
						; 9269	
						; 9270	.IF/OWGBP
						; 9271	=0***					;[347]
U 0465, 2020,0001,0000,0000,0000,0050,0000	; 9272	EDIT:	CALL [EXT2WD]			;CHECK FOR OWGBP
U 0475, 3514,2341,0200,0302,0000,0410,0017	; 9273		CLR AR,ARX_1S,SC_#,#/15.	;SETUP FOR SHIFT
U 3514, 3515,3200,4200,0000,0020,1610,0000	; 9274		AR_SHIFT,ARX_AC0,SR_ED(PAT)	;MASK TO AR, FLAGS ETC TO ARX
						;;9275	.IFNOT/OWGBP
						;;9276	EDIT:	AR_SHIFT,ARX_AC0,SR_ED(PAT)	;MASK TO AR, FLAGS ETC TO ARX
						; 9277	.ENDIF/OWGBP
						;;9278	.IFNOT/MODEL.B
						;;9279	=1*0	MSK_AR,AR_ARX (AD),		;SAVE MASK, GET FLAGS IN AR
						;;9280			VMA_ARX,LOAD AR,	;GET FIRST PATTERN OPERATOR
						;;9281			CALL,J/TRNABT		;GET PBN INTO FE
						; 9282	.IF/MODEL.B
U 3515, 3516,0001,0007,0000,0000,1010,0167	; 9283		MSK_AR				;SAVE MASK FOR TRAN FUNC
U 3516, 2772,4001,4000,0000,2001,5010,0020	; 9284		AR_ARX,ARL_0.M,SKP PC SEC0	;DO WE ALLOW SECTION #?
U 2772, 3517,3713,4000,0000,2312,0010,0000	; 9285	=0	VMA_ARX,LOAD AR,AR_ARX,J/EDIT1	;YES.  PROVIDE IT
U 2773, 3517,3701,4000,0000,2312,0010,0000	; 9286		VMA_AR,LOAD AR,AR_ARX		;NO, GIVE 0
U 3517, 3520,4001,0000,7131,0000,0010,0003	; 9287	EDIT1:	FE_P AND #,#/3			;GET PBN IN FE
						; 9288	.ENDIF/MODEL.B
						; 9289	EDITLP:	SC_# AND AR0-8,#/30,		;PBN*8 IN SC
U 3520, 3521,4001,0400,7322,1000,1010,0030	; 9290			SFLGS_AR,ARX_AR		;UPDATED AC NOW IN AC AND ARX
U 3521, 3522,3240,0003,2002,0022,0010,0000	; 9291		AR_MEM,SC_FE+SC			;PATTERN IN AR, PBN*9 IN SC
U 3522, 2001,0001,4000,0302,0020,0007,0005	; 9292		AR_SHIFT,SH DISP,SC_#,#/5	;PATTERN BYTE TO AR0-8,
						; 9293	=0001					; DISP ON HIGH 3 BITS
						; 9294	EDDISP:	GEN #+AR0-8,#/-5,
U 2001, 2774,4001,0000,2320,0020,5110,0773	; 9295			SKP SCAD0,J/EDOPR	;(0XX) OPERATE GROUP
U 2003, 1610,3203,5000,0000,0000,4310,0000	; 9296		AR_AR*8,SKP ARX0,J/EDMSG	;(1XX) MESSAGE
U 2005, 3000,4001,0000,0000,0000,0010,0000	; 9297		J/EDNOP				;(2XX) UNDEFINED
U 2007, 3000,4001,0000,0000,0000,0010,0000	; 9298		J/EDNOP				;(3XX) UNDEFINED
U 2011, 3000,4001,0000,0000,0000,0010,0000	; 9299		J/EDNOP				;(4XX) UNDEFINED
						; 9300		MQ_ARX,ARX_ARX*4,
U 2013, 3525,3203,0610,4002,2000,0010,0000	; 9301			SC_FE+1,J/EDSKPT	;(5XX) SKIP IF MINUS
						; 9302		MQ_ARX,ARX_ARX*2,
U 2015, 3525,3721,0510,4002,2000,0010,0000	; 9303			SC_FE+1,J/EDSKPT	;(6XX) SKIP IF NON-ZERO
U 2017, 3001,3203,5000,4002,0000,0010,0000	; 9304		AR_AR*8,SC_FE+1,J/EDSKP		;(7XX) SKIP ALWAYS
						; 9305	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 18
; EIS.MIC[10,5351]	19:52 24-Jul-85			EIS -- EDIT FUNCTION					

						; 9306	;HERE TO DECODE OPERATE GROUP
						; 9307	=0
U 2774, 3000,4001,0000,0000,0000,0010,0000	; 9308	EDOPR:	J/EDNOP				;OPR .GE. 005 UNDEFINED
U 2775, 2430,0001,0000,0000,0020,0007,0000	; 9309		SH DISP,J/OPDISP		;(00X), DISP ON LOW 3 BITS
						; 9310	=000
						; 9311	OPDISP:	AR_ARX,SC_#,#/-4,		;(000) STOP
U 2430, 3523,4001,4000,0302,2200,0010,0774	; 9312			VMA_PC+1,J/EDSTOP
U 2431, 1664,0001,0000,0000,0000,1610,0101	; 9313		SR_ED(S),J/EDSEL		;(001) SELECT
U 2432, 1570,3240,2006,0000,0020,4310,0144	; 9314		AR_DSTP,SKP ARX0,J/EDSSIG	;(002) START SIGNIFICANCE
U 2433, 3531,0001,4000,0000,2000,0010,0000	; 9315		AR_ARX,J/EDFLDS			;(003) FIELD SEPARATOR
						;;9316	.IFNOT/MODEL.B
						;;9317		VMA_AC3,LOAD ARX,		;(004) EXCH MARK AND DEST
						;;9318			MQ_ARX,J/EDEXMD
						; 9319	.IF/MODEL.B
						;;9320	.IFNOT/XADDR
						;;9321		AR_DSTP,MQ_ARX,J/EDEXMD		;(004) EXMD
						; 9322	.IF/XADDR
						; 9323		AR_DSTP,ARX/AD,MQ_ARX,		;(004) EXMD
U 2434, 3030,3240,2216,0000,2020,5010,0144	; 9324			SKP PC SEC0,J/EDEX0
						; 9325	.ENDIF/XADDR
						; 9326	.ENDIF/MODEL.B
						; 9327	=
						; 9328	;HERE TO TERMINATE EDIT INSTRUCTION
						; 9329	; SC HAS -4, FE HAS CURRENT PBN, VMA HAS PC IF ABORT, PC+1 IF DONE
						; 9330	
U 3523, 2776,4001,0000,5031,0020,5110,0003	; 9331	EDSTOP:	FE_FE-#,#/3,SKP SCAD0
						; 9332	=0	AR_AR+1,INH CRY18,
U 2776, 3524,4003,2000,7100,3021,0011,0200	; 9333			P_P AND SC,J/SFET1
U 2777, 3524,0001,0000,4100,3000,0110,0000	; 9334		P_P+1
U 3524, 0072,4001,0000,0000,0017,3610,0000	; 9335	SFET1:	FETCH+1,J/STORAC
						; 9336	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 19
; EIS.MIC[10,5351]	19:52 24-Jul-85			EIS -- EDIT FUNCTION					

						; 9337	;HERE FOR SKPM & SKPN, WITH APPROPRIATE BIT IN ARX0
						; 9338	
U 3525, 3000,3203,5300,0000,0000,4310,0000	; 9339	EDSKPT:	AR_AR*8,SKP ARX0,ARX/MQ		;SKIP DISTANCE TO AR0-5
						; 9340	
						; 9341	;HERE AT END OF OPERATION TO UPDATE PBN
						; 9342	=0
						; 9343	EDNOP:	FE_FE-#,#/3,SKP SCAD0,		;END OF PATTERN WORD?
U 3000, 3016,4001,4000,5031,2020,5110,0003	; 9344			AR_ARX,J/EDNXT1
U 3001, 3000,0001,0000,2101,0000,0010,0000	; 9345	EDSKP:	FE_P+SC,J/EDNOP			;ADD SKIP DISTANCE
						; 9346	=0
						;;9347	.IFNOT/XADDR
						;;9348	EDNXT1:	AR_AR+1,INH CRY18,		;BUMP TO NEXT WORD
						;;9349			FE_FE-#,#/4,		;REDUCE PBN
						;;9350			SKP SCAD0,J/EDNXT1
						;;9351		SR_ED(PAT)
						;;9352		FE_FE+#,#/4			;RESTORE PBN POS, INCR IT
						;;9353		SC_P AND #,#/74,VMA_AR,LOAD AR,	;FLAGS & EDIT BIT TO SC, GET PATTERN
						;;9354			SKP INTRPT,J/EDNXT3
						; 9355	.IF/XADDR
U 3016, 3022,4001,0000,0000,0000,5010,0000	; 9356	EDNXT1:	SKP PC SEC0,J/EDNXT2
U 3017, 3526,4001,0000,0000,0000,1610,0000	; 9357		SR_ED(PAT)
U 3526, 3020,4001,0000,2031,0000,5010,0004	; 9358		FE_FE+#,#/4,SKP PC SEC0		;RESTORE PBN POS, INCR IT
						; 9359	=0	SC_P AND #,#/74,VMA_AR,LOAD AR,	;FLAGS & EDIT BIT TO SC,
U 3020, 3026,3703,0000,7132,0312,7010,0074	; 9360			SKP INTRPT,J/EDNXT3	; GET PATTERN
U 3021, 3527,0001,0000,7132,0000,0010,0074	; 9361		SC_P AND #,#/74			;IN SEC0, MUST NOT LOAD FULL SEC
U 3527, 3530,4001,0400,0000,1001,0010,0020	; 9362		ARX_AR,ARL_0.M			;CLEAR SEC #
						; 9363		VMA_AR,LOAD AR,AR_ARX,		;GET PATTERN
U 3530, 3026,3701,4000,0000,2312,7010,0000	; 9364			SKP INTRPT,J/EDNXT3
						; 9365	
						; 9366	=0
						; 9367	EDNXT2:	AR_AR+1,FE_FE-#,#/4,		;REDUCE PBN
U 3022, 3016,4001,2000,5031,0020,5110,0004	; 9368			SKP SCAD0,J/EDNXT1
						; 9369		AR_AR+1,INH CRY18,		;BUMP TO NEXT WORD
						; 9370			FE_FE-#,#/4,		;REDUCE PBN
U 3023, 3016,4003,2000,5031,0020,5111,0004	; 9371			SKP SCAD0,J/EDNXT1
						; 9372	.ENDIF/XADDR
						; 9373	=0
U 3026, 3520,0001,0000,6000,3001,0010,0200	; 9374	EDNXT3:	P_FE OR SC,J/EDITLP		;SET NEW PBN, GO DO NEXT PATTERN
U 3027, 3746,4001,0000,6000,3001,0010,0200	; 9375		P_FE OR SC,J/PGFAC0		;GO RESTORE THINGS AND TAKE
						; 9376						; THE INTERUPT
						; 9377	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 20
; EIS.MIC[10,5351]	19:52 24-Jul-85			EIS -- EDIT FUNCTION					

						; 9378	;HERE FOR FIELD SEPARATOR (CLEAR FLAGS IN AC 0-2)
						; 9379	
U 3531, 1573,4001,0000,7130,3000,0110,0007	; 9380	EDFLDS:	P_P AND #,#/7,J/EDSEND		;EASY ENOUGH
						; 9381	
						; 9382	;HERE FOR SIG START
						; 9383	
						; 9384	=00
						;;9385	.IFNOT/XADDR
						;;9386	EDSSIG:	VMA_AC3,STORE,CALL,J/EDFLT1	;SAVE MARK, GET FLOAT
						; 9387	.IF/XADDR
						; 9388	EDSSIG:	ARX_AR,VMA_AC3,AR/AD,ARL_0.M,
						; 9389			BYTE DISP,SCADA EN/0S,SCAD/A,
U 1570, 2474,3240,2405,0400,1341,5074,0020	; 9390			CALL,SKP PC SEC0,J/EDFLT
						; 9391	.ENDIF/XADDR
						; 9392		FE_FE-#,#/3,SKP SCAD0,		;S FLAG ALREADY SET, NOP
U 1571, 3016,4001,4000,5031,2020,5110,0003	; 9393			AR_ARX,J/EDNXT1
						; 9394	=11
U 1573, 3000,0001,0400,7131,1000,0010,0003	; 9395	EDSEND:	FE_P AND #,#/3,ARX_AR,J/EDNOP	;READY TO DO NEXT OP
						; 9396	
						; 9397	;HERE FOR MESSAGE CHAR
						; 9398	
						; 9399	=00
U 1610, 2462,4660,0007,0000,0332,0010,0176	; 9400	EDMSG:	VMA_E0+1,LOAD AR,J/EDSFIL	;NO SIG, PUT FILLER
U 1611, 3364,3441,2000,0102,0000,0050,0000	; 9401		SC_P,AR_0S,CALL,J/GETSC		;GET MESSAGE SELECT IN AR
U 1613, 2467,4600,0007,0000,0332,0010,0176	; 9402	=11	VMA_AR+E0+1,LOAD AR,J/EDMPUT	;STORE MESSAGE
						; 9403	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 21
; EIS.MIC[10,5351]	19:52 24-Jul-85			EIS -- EDIT FUNCTION					

						; 9404	;HERE TO EXCHANGE MARK AND DESTINATION POINTERS
						; 9405	
						;;9406	.IFNOT/MODEL.B				;EASY CASE
						;;9407	EDEXMD:	AR_DSTP				;READY TO STORE DEST PTR
						;;9408		FIN XFER,STORE			;WAIT FOR MARK, STORE DSTP
						;;9409		MEM_AR,AR_ARX			;READY TO UPDATE DSTP
						;;9410		DSTP_AR,ARX/MQ,J/EDNOP		;DONE, GET NEXT OPR
						; 9411	.IF/MODEL.B
						; 9412	.IF/XADDR
						; 9413	=0
						; 9414	EDEX0:	VMA_AC3,LOAD AR (WR TST),	;GET MARK POINTER
U 3030, 3534,3240,0065,0000,0331,0010,0440	; 9415			BR/AR,BRX/ARX,J/EDEX2	;DSTP IN BR & BRX,
						; 9416	.ENDIF/XADDR
U 3031, 3532,3240,2045,0000,0021,0010,0020	; 9417	EDEXMD:	BR/AR,AR_AC3,ARL_0.M
U 3532, 3533,3701,0000,0000,0311,0010,0440	; 9418		VMA_AR,LOAD AR (WR TST)		;GET MARK FROM SECT 0
U 3533, 2245,3200,0003,0000,0022,0010,0000	; 9419		AR_MEM
						;;9420	.IFNOT/XADDR
						;;9421		BR/AR,AR_BR,STORE		;STORE DEST POINTER
						;;9422		MEM_AR,AR_BR,SEL DSTP		;DONE.  GET MARK AGAIN
						;;9423						;PRESELECT # TO FIX HARDWARE GLITCH
						;;9424		DSTP_AR,ARX/MQ,J/EDNOP		;MARK BECOMES DEST. GET NEXT PAT
						; 9425	.IF/XADDR
						; 9426	=101
U 2245, 3537,3202,2040,0000,0016,0010,0000	; 9427	EDDSNG:	BR/AR,AR_BR,STORE,J/EDEXX	;NEITHER POINTER IS DOUBLE
U 2247, 1002,4001,0000,0000,0000,0010,0000	; 9428		J/UUO				;SHORT DSTP, LONG MARK ILLEGAL
						; 9429	;;;FLUSH WHEN SURE THIS IS RIGHT
						; 9430	;	BR/AR,AR_BR,			;DSTP TO AR, MARK TO BR
						; 9431	;		VMA_VMA+1,LOAD ARX	;GET MARK2
						; 9432	;	FIN XFER,VMA_VMA-1,STORE,J/EDEXX;NOW STORE DSTP AS NEW MARK
						; 9433	
U 3534, 2435,3240,0003,0000,0042,0034,0000	; 9434	EDEX2:	AR_MEM,BYTE DISP		;WAIT FOR MARK, TEST DESTP
U 2435, 2245,4001,0000,0000,0020,0034,0000	; 9435	=101	BYTE DISP,J/EDDSNG		;NO, CHECK MARK
U 2437, 2445,3200,0206,0000,0040,0034,0145	; 9436		ARX_DSTP2,BYTE DISP		;YES, CHECK MARK
U 2445, 1002,4001,0000,0000,0000,0010,0000	; 9437	=101	J/UUO				;LONG DSTP SHORT MARK ABORT
						; 9438	;;;FLUSH WHEN SURE THE UUO IS RIGHT
						; 9439	;	BR/AR,AR_ARX,			;MARK TO BR, DSTP2 TO AR
						; 9440	;		VMA_VMA+1,STORE,J/EDEXM4 ; STORE DSTP2
						; 9441		BR/AR,AR_ARX,
U 2447, 3535,0001,4040,0000,2011,3610,0240	; 9442			VMA_VMA+1,LOAD ARX (WR TST)	;GET MARK2
U 3535, 3536,3240,0003,0000,0036,0010,0000	; 9443		FIN XFER,STORE			;PUT BACK DSTP2
						; 9444	;EDEXM4:
						; 9445		FIN STORE,AR_BRX,		;GET DSTP FROM BRX
U 3536, 3537,3202,6003,0000,0016,3510,0000	; 9446			VMA_VMA-1,STORE		;PUT THAT DOWN
						; 9447	EDEXX:	MEM_AR,AR_BR,SEL DSTP,		;PRESELECT # TO FIX HARDWARE GLITCH
U 3537, 3036,3242,2003,0000,0002,5010,0144	; 9448			SKP PC SEC0		;GET MARK FOR NEW DSTP
U 3036, 2455,0001,4006,0000,2020,1034,0144	; 9449	=0	DSTP_AR,AR_ARX,BYTE DISP,J/EDEX1
U 3037, 2455,4001,0006,0000,0000,1010,0144	; 9450		DSTP_AR
						; 9451	=101
						; 9452	EDEX1:	FE_FE-#,#/3,SKP SCAD0,
U 2455, 3016,3721,2000,5031,0020,5110,0003	; 9453			AR_MQ,J/EDNXT1
U 2457, 3540,0001,0000,0000,0000,0010,0145	; 9454		SEL DSTP2			;PRESELECT # TO FIX HARDWARE GLITCH
U 3540, 2455,0001,0006,0000,0000,1010,0145	; 9455		DSTP2_AR,J/EDEX1		;PUT OLD MARK2 AS DSTP2
						; 9456	.ENDIF/XADDR
						; 9457	.ENDIF/MODEL.B
						; 9458	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 22
; EIS.MIC[10,5351]	19:52 24-Jul-85			EIS -- EDIT FUNCTION					

						; 9459	;HERE FOR SELECT
						; 9460	
						; 9461	=0*
						; 9462	EDSEL:	AR_SRCP,ARX_SRCP,FE_#,#/36.,
U 1664, 2760,3240,2201,0301,0040,0050,0044	; 9463			CALL,J/GSRC1		;GO GET SRC BYTE
U 1666, 2460,0303,7707,0000,0020,0027,0165	; 9464		AR_AR*.5 LONG,E1		;GOT IT, DIVIDE BY 2
U 2460, 3502,0600,0007,4000,0332,0050,0165	; 9465	=000	VMA_AR+E1,LOAD AR,CALL,J/TRNAR	;GO TRANSLATE BY HALFWORDS
						; 9466	=010
U 2462, 3541,3240,0003,0000,0022,0010,0000	; 9467	EDSFIL:	AR_MEM,J/EDSF1			;(2) NO SIGNIFICANCE, STORE FILL
U 2463, 1620,0001,0020,5110,0020,5110,0000	; 9468		GEN P-S,SKP SCAD0,BRX/ARX,J/EDSFLT ;(3) SIG START, DO FLOAT CHAR
U 2464, 1540,0001,0000,0000,0000,1650,0224	; 9469	EDSPUT:	SR_ED(+D),CALL,J/PUTDST		;(4) NORMAL, STORE AT DST
U 2465, 3523,4001,0000,0302,0100,0010,0774	; 9470		VMA/PC,SC_#,#/-4,J/EDSTOP	;(5) ABORT
U 2466, 1573,3240,2000,0000,0020,0010,0000	; 9471	EDFPUT:	AR_SFLGS,J/EDSEND		;(6) BUMP PBN AND GO TO NEXT
U 2467, 2464,3200,0003,0000,0022,0010,0000	; 9472	EDMPUT:	AR_MEM,J/EDSPUT			;FILL OR MSG IN AR, STORE IT
						; 9473	
						; 9474	
						; 9475	;HERE WHEN TIME TO STORE FILL CHAR
						; 9476	
U 3541, 2466,3701,0000,0000,0040,5410,0000	; 9477	EDSF1:	SKP AR NE,J/EDFPUT		;IS THERE ONE?
						; 9478	
						; 9479	;HERE WHEN SELECT STARTS SIGNIFICANCE
						; 9480	
						; 9481	=00
						;;9482	.IFNOT/MODEL.B
						;;9483	EDSFLT:	VMA_AC3,STORE,CALL,J/EDFLT	;STORE DEST AT MARK ADDR
						; 9484	.IF/MODEL.B
						;;9485	.IFNOT/XADDR
						;;9486	EDSFLT:	ARX_AR,AR_AC3,ARL_0.M,CALL,J/EDFLT
						; 9487	.IF/XADDR
						; 9488	EDSFLT:	ARX_AR,VMA_AC3,AR/AD,ARL_0.M,
						; 9489			BYTE DISP,SCADA EN/0S,SCAD/A,
U 1620, 2474,3240,2405,0400,1341,5074,0020	; 9490			CALL,SKP PC SEC0,J/EDFLT
						; 9491	.ENDIF/XADDR
						; 9492	.ENDIF/MODEL.B
U 1621, 1620,4001,2000,0000,3021,0010,0200	; 9493		P_FE,AR_AR+1,J/EDSFLT		;FORCE STANDARD POINTER FORM
U 1623, 2464,3202,6000,0000,0000,1010,0000	; 9494	=11	SFLGS_AR,AR_BRX,J/EDSPUT	;SET S FLAG, GET BYTE, STORE IT
						; 9495	
						; 9496	;HERE IS SUBROUTINE TO STORE FLOAT CHAR
						; 9497	
						; 9498	.IF/MODEL.B
						;;9499	.IFNOT/XADDR
						;;9500	EDFLT:	VMA_AR,AR_ARX,STORE,J/EDFLT1
						; 9501	.IF/XADDR
						; 9502	=100
U 2474, 3544,0001,4000,0000,2016,0010,0000	; 9503	EDFLT:	AR_ARX,STORE,J/EDFLT1		;SHORT POINTER.  STORE IT
U 2475, 3544,3703,4000,0000,2316,0010,0000	; 9504		VMA_AR,AR_ARX,STORE,J/EDFLT1	; LIKEWISE.  FORCE SECTION 0
U 2476, 3542,0001,4000,0000,2016,0010,0000	; 9505		AR_ARX,STORE,J/EDFLTX		;LONG POINTER, DO MORE
U 2477, 3544,3703,4000,0000,2316,0010,0000	; 9506		VMA_AR,AR_ARX,STORE,J/EDFLT1	; IN SECTION 0, KEEP THERE
						; 9507	
U 3542, 3543,4001,0003,0000,0002,0010,0000	; 9508	EDFLTX:	MEM_AR				;FINISH STORE OF 1ST PART
U 3543, 3544,3200,2006,0000,0036,3610,0145	; 9509		AR_DSTP2,VMA_VMA+1,STORE	;NOW DO SECOND PART
						; 9510	.ENDIF/XADDR
						;;9511	.IFNOT/MODEL.B
						;;9512	
						;;9513	EDFLT:
						; 9514	.ENDIF/MODEL.B
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 22-1
; EIS.MIC[10,5351]	19:52 24-Jul-85			EIS -- EDIT FUNCTION					

						; 9515	
U 3544, 1670,4061,5003,0000,0022,0010,0000	; 9516	EDFLT1:	MEM_AR,AR_2			;MARK STORED, READY FOR FLOAT
U 1670, 0770,0600,0007,4000,0332,0050,0176	; 9517	=0*	VMA_AR+E0,LOAD AR,CALL,J/XFERW
U 1672, 2504,3701,0000,0000,0040,5410,0000	; 9518		SKP AR NE
U 2504, 3545,3200,2000,0302,0020,0010,0040	; 9519	=100	AR_SFLGS,SC_#,#/40,J/SETFLG	;NO FLOAT CHR, SET S FLAG
U 2505, 1540,0001,0000,0000,0000,1650,0224	; 9520		SR_ED(+D),CALL,J/PUTDST		;STORE FLOAT CHR IN DST
U 2507, 3545,3200,2000,0302,0020,0010,0040	; 9521	=111	AR_SFLGS,SC_#,#/40		;SET S FLAG AND RETURN
U 3545, 0003,4001,0000,6100,3001,0003,0200	; 9522	SETFLG:	P_P OR SC,RETURN3		;NO FLOAT CHR, SET S FLAG
						; 9523	
						; 9524	.ENDIF/EXTEND
						; 9525	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 1
; IO.MIC[10,5351]	19:56 24-Jul-85			I/O INSTRUCTIONS					

						; 9526	.TOC	"I/O INSTRUCTIONS"
						; 9527	
						; 9528	; BITS 10-12 OF INSTRUCTION GET MAPPED TO IR 7-9 FOR I/O INSTRUCTIONS
						; 9529	; THE DEVICE ADDRESS IS BROKEN DOWN AS ONE OF THE FIRST 7, OR ALL OTHERS
						; 9530		.DCODE
						; 9531	
						; 9532	;DEVICE 000 (APR)
						; 9533	
D 0700, 3001,0512				; 9534	700:	W,		J/APRBI	;APRID (BLKI APR,)	OPTIONS, SERIAL #
D 0701, 3600,0510				; 9535		W,	DATAI,	J/APRDI	;DATAI APR,		ADDRESS COMPARE
D 0702, 0000,0706				; 9536		I,		J/APRBO	;WRFIL (BLKO APR,)	REFILL RAM
D 0703, 4401,0704				; 9537		R,	DATAO,	J/APRDO	;DATAO APR,		ADDRESS COMPARE
D 0704, 0401,0714				; 9538		I,	CONO,	J/APRCO	;CONO APR,		APR FLAGS
D 0705, 0601,0716				; 9539		I,	CONI,	J/APRCI	;CONI APR,
D 0706, 0100,0716				; 9540		I,	CONSZ,	J/APRCI	;CONSZ APR,
D 0707, 0501,0716				; 9541		I,	CONSO,	J/APRCI	;CONSO APR,
						; 9542	
						; 9543	;DEVICE 004 (PI)
						; 9544	
D 0710, 3600,0711				; 9545	710:	W,	M,	J/PIBI	;RDERA (BLKI PI,)	READ ERA
D 0711, 3301,0710				; 9546		W,	B/3,	J/PIDI	;DATAI PI,		Stats, or not used
D 0712, 4001,0712				; 9547		R,		J/PIBO	;SBDIAG (BLKO PI,)	SBUS DIAGNOSTIC
D 0713, 4000,0710				; 9548		R,	B/0,	J/PIDO	;DATAO PI,		More statistics
D 0714, 0400,1200				; 9549		I,	CONO,	J/PICO	;CONO PI,		PI SYSTEM CONTROL
D 0715, 0600,1204				; 9550		I,	CONI,	J/PICI	;CONI PI,		IN PROGRESS, ENABLE
D 0716, 0101,1204				; 9551		I,	CONSZ,	J/PICI
D 0717, 0500,1204				; 9552		I,	CONSO,	J/PICI
						; 9553	
						; 9554	;DEVICE 010 (PAG)
						; 9555	
D 0720, 6200,1212				; 9556	720:	RW,	BLKI,	J/PAGBI	;BLKI PAG,		UNASSIGNED
D 0721, 3600,1210				; 9557		W,	DATAI,	J/PAGDI	;DATAI PAG,		USER CONTEXT
D 0722, 0001,1100				; 9558		I,		J/PAGBO	;CLRPT (BLKO PAG,)	INVAL PAGE TABLE
D 0723, 4400,1102				; 9559		R,	DATAO,	J/PAGDO	;DATAO PAG,		USER CONTEXT
D 0724, 0400,1214				; 9560		I,	CONO,	J/PAGCO	;CONO PAG,		EXEC CONTEXT
D 0725, 0600,1216				; 9561		I,	CONI,	J/PAGCI	;CONI PAG,
D 0726, 0101,1216				; 9562		I,	CONSZ,	J/PAGCI
D 0727, 0500,1216				; 9563		I,	CONSO,	J/PAGCI
						; 9564	
						; 9565	;DEVICE 014 (CCA)
						; 9566	
D 0730, 0001,1504				; 9567	730:	I,	J/SWEEP	;BLKI CCA,	8 FUNCTIONS TO SWEEP THE CACHE
D 0731, 0001,1504				; 9568		I,	J/SWEEP	;SWPIA (DATAI CCA,)INVALIDATE CACHE, NO CORE UPDATE
D 0732, 0001,1504				; 9569		I,	J/SWEEP	;SWPVA (BLKO CCA,)VALIDATE CORE, LEAVE CACHE VALID
D 0733, 0001,1504				; 9570		I,	J/SWEEP	;SWPUA (DATAO CCA,)UNLOAD CACHE TO CORE, CLEAR CACHE
D 0734, 0001,1504				; 9571		I,	J/SWEEP	;CONO CCA,
D 0735, 0001,1504				; 9572		I,	J/SWEEP	;SWPIO (CONI CCA,)INVALIDATE ONE PAGE
D 0736, 0001,1504				; 9573		I,	J/SWEEP	;SWPVO (CONSZ CCA,)VALIDATE ONE PAGE
D 0737, 0001,1504				; 9574		I,	J/SWEEP	;SWPUO (CONSO CCA,)UNLOAD ONE PAGE
						; 9575	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 2
; IO.MIC[10,5351]	19:56 24-Jul-85			I/O INSTRUCTIONS					

						; 9576	;I/O CONT'D
						; 9577	
						; 9578	;DEVICE 020 (TIM)
						; 9579	
D 0740, 3101,1506				; 9580	740:	W,	B/1,	J/RDMTR	;RDPERF (BLKI TIM,)	PERF CNT
D 0741, 3000,1506				; 9581		W,	B/0,	J/RDMTR	;RDTIME (DATAI TIM,)	TIME BASE
D 0742, 4400,1312				; 9582		R,	DATAO,	J/TIMBO	;WRPAE (BLKO TIM,)	PA ENABLES
D 0743, 4401,1310				; 9583		R,	DATAO,	J/TIMDO	;DATAO TIM,		UNDEFINED
D 0744, 0401,1300				; 9584		I,	CONO,	J/TIMCO	;CONO TIM,		SETUP INTERVAL TIMER
D 0745, 0601,1302				; 9585		I,	CONI,	J/TIMCI	;CONI TIM,		RD INTERVAL & PERIOD
D 0746, 0100,1302				; 9586		I,	CONSZ,	J/TIMCI
D 0747, 0501,1302				; 9587		I,	CONSO,	J/TIMCI
						; 9588	
						; 9589	;DEVICE 024 (MTR)
						; 9590	
						; 9591	
D 0750, 3300,1506				; 9592	750:	W,	B/3,	J/RDMTR	;RDMACT (BLKI MTR,)	CACHE CNT
D 0751, 3201,1506				; 9593		W,	B/2,	J/RDMTR	;RDEACT (DATAI MTR,)	EBOX CNT
D 0752, 0001,1002				; 9594		I,		J/UUO	;BLKO MTR,		UNDEFINED
D 0753, 0001,1002				; 9595		I,		J/UUO	;DATAO MTR,		UNDEFINED
D 0754, 0400,1304				; 9596		I,	CONO,	J/MTRCO	;WRTIME (CONO MTR,)	ACCT & TB CTL
D 0755, 0600,1306				; 9597		I,	CONI,	J/MTRCI	;CONI MTR,		SAME
D 0756, 0101,1306				; 9598		I,	CONSZ,	J/MTRCI
D 0757, 0500,1306				; 9599		I,	CONSO,	J/MTRCI
						; 9600	
						; 9601	;DEVICE 030
						; 9602	
D 0760, 6200,0500				; 9603	760:	RW,	BLKI,	J/BLKIO
D 0761, 3601,0506				; 9604		W,	DATAI,	J/IO
D 0762, 6001,0500				; 9605		RW,	BLKO,	J/BLKIO
D 0763, 4401,0506				; 9606		R,	DATAO,	J/IO
D 0764, 0401,0502				; 9607		I,	CONO,	J/CONO
D 0765, 3601,0506				; 9608		W,	CONI,	J/IO
D 0766, 0101,0502				; 9609		I,	CONSZ,	J/CONS
D 0767, 0500,0502				; 9610		I,	CONSO,	J/CONS
						; 9611	
						; 9612	;DEVICES 034-774 (ALL OTHERS)
						; 9613	
D 0770, 6200,0500				; 9614	770:	RW,	BLKI,	J/BLKIO
D 0771, 3601,0506				; 9615		W,	DATAI,	J/IO
D 0772, 6001,0500				; 9616		RW,	BLKO,	J/BLKIO
D 0773, 4401,0506				; 9617		R,	DATAO,	J/IO
D 0774, 0401,0502				; 9618		I,	CONO,	J/CONO
D 0775, 3601,0506				; 9619		W,	CONI,	J/IO
D 0776, 0101,0502				; 9620		I,	CONSZ,	J/CONS
D 0777, 0500,0502				; 9621		I,	CONSO,	J/CONS
						; 9622	
						; 9623		.UCODE
						; 9624	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 3
; IO.MIC[10,5351]	19:56 24-Jul-85			EXTERNAL DEVICE I/O INSTRUCTIONS			

						; 9625	.TOC	"EXTERNAL DEVICE I/O INSTRUCTIONS"
						; 9626	
						; 9627	=0****00*000
U 0500, 3002,0001,0000,0000,0000,7350,0000	; 9628	BLKIO:	SKP IO LEGAL,CALL,J/IOCHK	;FIRST VERIFY INSTR VALIDITY
U 0501, 0443,0001,0000,0000,0020,0034,0000	; 9629		BYTE DISP,J/BLK1		;TEST FPD
						; 9630	CONS:					;HERE FOR CONSO, CONSZ TO LOAD
						; 9631						; BR IN CASE OF UUO
U 0502, 0506,4001,0040,0000,3000,0610,0004	; 9632	CONO:	BR/AR,ARL_ARR,ARR_ARR		;CONDITIONS TO BOTH HALVES
						; 9633	=10
U 0506, 1630,3200,0003,0000,0022,7350,0000	; 9634	IO:	AR_MEM,SKP IO LEGAL,CALL,J/GTEBUS;WAIT FOR MBOX IF BLKI/O
U 0507, 0022,0001,0000,0000,0005,2233,0000	; 9635	RELEEB:	REL ECL EBUS,B WRITE		;XFER DONE, WHAT TO DO?
						; 9636	=
						; 9637	=1*010
U 0022, 3546,4001,0003,0000,0002,0010,0000	; 9638	IOTEND:	FIN STORE,MB WAIT,J/BLK4	;BLKI/BLKO
U 0023, 0073,3602,0004,0000,0246,0010,0203	; 9639		TEST AR.BR,TEST FETCH,J/NOP	;CONSZ
U 0026, 0242,4001,0003,0000,0002,6510,0000	; 9640		MEM_AR,SKP PI CYCLE,J/IOFET	;DATA/CON I/O
U 0027, 0073,3602,0004,0000,0246,0010,0203	; 9641		TEST AR.BR,TEST FETCH,J/NOP	;CONSO
						; 9642	;BLKI/BLKO SCREWED AROUND WITH TO TRY TO STOP PI LOSSAGE
U 3546, 0020,5062,0000,0000,0246,6517,0203	; 9643	BLK4:	TEST BRL,TEST FETCH,SKP PI CYCLE,J/CLRFPD
						; 9644	
						; 9645	.IF/IPA20				;[410] Tail of PI function 7
						; 9646	=1***00
U 0240, 3552,4001,0003,0000,0002,2250,0026	; 9647	ESEND:	MEM_AR,SET DATAO,CALL [EBUSO]	;Send data out over EBUS
						; 9648	.ENDIF/IPA20				;[410]
						; 9649	=1***10					;[410]
U 0242, 0073,4001,0000,0000,0217,0010,0000	; 9650	IOFET:	I FETCH,J/NOP			;HERE IF NOT PI CYCLE
U 0243, 2104,0001,0000,0000,0000,0024,0502	; 9651		DISMISS,J/PIFET			;DISMISS INTRPT AFTER DATA/CON I/O
						; 9652	
						; 9653	=1**010
U 0442, 0125,4001,0043,0000,0002,0633,0020	; 9654	BLK2:	MEM_AR,BR/AR,ARL_0.C,B DISP,J/BLK3
U 0443, 0442,4003,2000,0000,0036,0017,0000	; 9655	BLK1:	AR_AR+1,GEN CRY18,STORE,J/BLK2	;UPDATE POINTER WORD
U 0447, 0442,0001,0000,0000,0000,6510,0000	; 9656	=111	SKP PI CYCLE,J/BLK2		;IF FPD & NOT PI, DON'T INCREMENT
						; 9657	=1*101					;DO DATAI OR DATAO
U 0125, 0506,3703,0000,0000,0312,1110,0100	; 9658	BLK3:	VMA_AR,LOAD AR,SET FPD,J/IO	;GET DATA TO OUTPUT
U 0127, 0506,3703,0000,0000,0300,1110,0100	; 9659		VMA_AR,SET FPD,J/IO		;INPUT DO BEFORE MEM
						; 9660	
						; 9661	;;;NOTE NOTE NOTE SET FPD INHIBITED BY HARDWARE IF PI CYCLE (SCD5)
						; 9662	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 4
; IO.MIC[10,5351]	19:56 24-Jul-85			EXTERNAL DEVICE I/O INSTRUCTIONS			

						; 9663	;SUBROUTINES TO HANDLE EBUS
						; 9664	;CALL WITH "SKP IO LEGAL"
						; 9665	;ENTER AFTER LOADING AR IF OUTPUT FUNCTION
						; 9666	
						; 9667	=00
U 1630, 1002,3242,2000,0000,0000,0010,0000	; 9668	GTEBUS:	AR_BR,J/UUO			;HERE IF IO ILLEGAL IN THIS MODE
U 1631, 3042,4001,0000,0000,0000,2250,0200	; 9669		REQ EBUS,CALL,J/WGRANT		;ASK PI SYSTEM FOR BUS
						; 9670	=11					;RETURN TO TRANSFER ROUTINE
						; 9671	
						; 9672	;SUBROUTINE TO PERFORM EBUS TRANSFER
						; 9673	;SETUP CONTROLLER SELECT AND FUNCTION LINES BEFORE CALL
						; 9674	;IF OUTPUT, ALSO PUT AR ONTO EBUS DATA LINES
						; 9675	
						; 9676	EBUSX:	GEN AR,TIME/5T,			;WAIT AFTER ASSERTING FUNCTION
U 1633, 3041,3701,0000,0000,0060,2210,0060	; 9677			SET EBUS DEMAND,J/WXFER	; AFTER 300 NS, ASSERT DEMAND
						; 9678	=0
						; 9679	EBUSW:	AR_EBUS,GEN AR,
U 3040, 3547,3703,3000,0000,0060,2210,0020	; 9680			CLR EBUS DEMAND,J/RELEB	;STROBE DATA AND DROP DEMAND
U 3041, 3040,3701,0000,0000,0000,6710,0000	; 9681	WXFER:	GEN AR,SKP -EBUS XFER,J/EBUSW	;WAIT FOR TRANSFER
						; 9682	
						; 9683	RELEB:	GEN AR,REL EBUS,TIME/5T,	;DROP DATA, CS, AND FCN
U 3547, 0003,3701,0000,0000,0060,2203,0100	; 9684			RETURN3			;AFTER 150 NS, THEN RELEASE BUS
						; 9685	
						; 9686	
						; 9687	;SUBROUTINE TO WAIT FOR PI SYSTEM TO GRANT EBUS
						; 9688	; IT WILL EITHER SEND EBUS GRANT, OR PI READY
						; 9689	
						; 9690	=0
U 3042, 3044,4001,0000,0000,0000,6610,0000	; 9691	WGRANT:	SKP -EBUS GRANT,J/WGRNT1	;GOT IT?
U 3043, 0071,4001,0000,0000,0000,2210,0000	; 9692		DROP EBUS REQ,J/TAKINT
						; 9693	=0
U 3044, 3550,3701,0000,0000,0000,2210,0030	; 9694	WGRNT1:	IO INIT,GEN AR,J/WGRNT2		;GOT IT, SETUP CS, FCN, AND DATA
U 3045, 3042,0001,0000,0000,0000,7010,0000	; 9695		SKP INTRPT,J/WGRANT		;DIDN'T GET IT, TEST FOR INTERUPT
						; 9696	WGRNT2:	GEN AR,TIME/5T,			;JUST WAIT
U 3550, 0003,3703,0000,0000,0060,0003,0030	; 9697			EBUS CTL/IO INIT,RETURN3
						; 9698	
						; 9699	;HERE TO START PI CYCLE TRANSFER.  HOLD EBUS CTL SELECTION
						; 9700	
U 3551, 1633,0001,0000,0000,0060,0010,0027	; 9701	EBUSI:	TIME/5T,EBUS CTL/DATAI,J/EBUSX
U 3552, 1633,3701,0000,0000,0060,0010,0026	; 9702	EBUSO:	GEN AR,TIME/5T,EBUS CTL/DATAO,J/EBUSX
						; 9703	
						; 9704	;SUBROUTINES TO CHECK IO LEGALITY FOR INTERNAL I/O INSTRUCTIONS
						; 9705	
						; 9706	.IF/MODEL.B
						; 9707	3002:
						;;9708	.IFNOT/MODEL.B
						;;9709	2002:					;ACCESSIBLE ON EXTEND [0]
						; 9710	.ENDIF/MODEL.B
U 3002, 1002,3242,2000,0000,0000,0010,0000	; 9711	IOCHK:	AR_BR,J/UUO			;NAUGHTY, MUST'NT DO
						; 9712	.IF/MODEL.B
						; 9713	3003:
						;;9714	.IFNOT/MODEL.B
						;;9715	2003:
						; 9716	.ENDIF/MODEL.B
U 3003, 0001,4001,0000,0000,0000,0003,0000	; 9717	RET1:	RETURN1				;ONE-CYCLE NULL ROUTINE
						; 9718	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 4-1
; IO.MIC[10,5351]	19:56 24-Jul-85			EXTERNAL DEVICE I/O INSTRUCTIONS			

						; 9719	=0
U 3046, 1002,3242,2000,0000,0000,0010,0000	; 9720	GETEEB:	AR_BR,J/UUO			;IO ILLEGAL IN THIS MODE
U 3047, 0001,0001,0000,0000,0000,2203,0400	; 9721	GTEEB1:	GET ECL EBUS,RETURN1
						; 9722	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 5
; IO.MIC[10,5351]	19:56 24-Jul-85			INTERNAL DEVICE FUNCTIONS -- APR, CCA			

						; 9723	.TOC	"INTERNAL DEVICE FUNCTIONS -- APR, CCA"
						; 9724	
						; 9725	=0****00***0
						; 9726	SWEEP:	BR/AR,SC_#,#/9.,CALL,
U 1504, 3002,0001,0040,0302,0000,7350,0011	; 9727			SKP IO LEGAL,J/IOCHK	;ALLOWED?
U 1505, 3553,0001,4000,0000,0000,0010,0000	; 9728		AR_SHIFT			;MOVE PAGE # TO PLACE
U 3553, 3554,3701,0000,0000,0307,0010,0606	; 9729	=	VMA_AR,SWEEP CACHE		;START A SWEEP
U 3554, 0066,0001,0000,0000,0002,0010,0000	; 9730	MBREL:	MB WAIT,J/IFNOP			;COMPLETE REG FUNC BEFORE FETCH
						; 9731	
						; 9732	
						; 9733	=0****00**00
U 0704, 3046,0001,0000,0000,0000,7350,0000	; 9734	APRDO:	CALL,SKP IO LEGAL,J/GETEEB	;SET ADDR BREAK
U 0705, 0507,3703,0000,0000,0060,2010,0417	; 9735		DATAO APR,J/RELEEB
U 0706, 3002,4001,0040,0000,0000,7350,0000	; 9736	APRBO:	BR/AR,CALL,SKP IO LEGAL,J/IOCHK	;SET CACHE REFILL ALGORITHM
U 0707, 3554,4001,0000,0000,0007,0010,0505	; 9737		WR REFILL RAM,J/MBREL		;INFO ALREADY IN VMA
						; 9738	=
						; 9739	
						; 9740	=0****00*000
U 0510, 3046,0001,0000,0000,0000,7350,0000	; 9741	APRDI:	CALL,SKP IO LEGAL,J/GETEEB	;READ ADDR BREAK
U 0511, 0507,0001,3000,0000,0060,2010,0513	; 9742		DATAI APR(L),J/RELEEB
						; 9743	=010
						; 9744	.IFNOT/DDT.BUG				;[346] Normal code
U 0512, 3002,0001,0000,0000,0000,7350,0000	; 9745	APRBI:	CALL,SKP IO LEGAL,J/IOCHK	;RETURN MICRO VERSION, SERIAL #
						; 9746		AR_SERIAL,TIME/3T,		;READ SERIAL NUMBER
U 0513, 0137,4001,0000,0000,0020,0750,0100	; 9747			CALL,J/UVERS		;GET MICRO-CODE VERSION IN AR
U 0517, 3555,3242,2000,0000,3000,0022,0004	; 9748	=111	ARL_ARR.S,AR_BR			;COMB SERIAL WITH VERSION
						; 9749	=	AR0-8_#,STORE,OPTIONS,		;SET OPTION FLAGS
U 3555, 0066,0001,0000,0000,0016,0110,0640	; 9750			J/STMEM
						;;9751	.IF/DDT.BUG				;[346] Gross hack to make EDDT work
						;;9752	APRBI:	AR_SERIAL,TIME/3T		;[346] Get hardware serial number
						;;9753	=
						;;9754	=0	AR_AR SWAP,FE_#,OPTIONS,	;Set to test bit 23
						;;9755			SKP IO LEGAL,CALL [IOCHK]; Is this a legal instruction here?
						;;9756		GEN P AND #,#/1,SKP SCAD NZ	;Was bit 23 set?
						;;9757	=0*0
						;;9758	SEROK:	AR_AR SWAP,CALL [UVERS]		;Maybe not. Get microcode version
						;;9759		P_P AND #,#/76,J/SERFIX		;Yes. Clean it and move it
						;;9760		ARL_ARR,ARR_BR			;It's fixed. Shuffle version to spot
						;;9761	=	AR0-8_FE,STORE,J/STMEM		;Move in options and store result
						;;9762	;
						;;9763	SERFIX:	FE_FE+#,#/10,J/SEROK		;OR in bit 5 for option
						; 9764	.ENDIF/DDT.BUG				;[346] All this code is GROSS!!
						; 9765	
						; 9766	=0****00**00
						; 9767	APRCO:	BR/AR,ARL_ARR.M,ARR_ARR,CALL.M,	;SET APR FLAGS
U 0714, 3046,4001,0040,0000,3001,7350,0004	; 9768			SKP IO LEGAL,J/GETEEB
U 0715, 3560,3701,0000,0000,0060,2010,0414	; 9769		CONO APR, J/APRCO7		;[272]
						; 9770	APRCI:	BR/AR,CALL,
U 0716, 3046,4001,0040,0000,0000,7350,0000	; 9771			SKP IO LEGAL,J/GETEEB	;READ APR FLAGS
U 0717, 3556,4001,3000,0000,0060,2010,0510	; 9772		CONI APR(R)			;GET RIGHT HALF OF APR CONDITIONS
U 3556, 3557,0001,3400,0000,3060,2010,0512	; 9773	=	ARX_AR SWAP,CONI APR(L)		;NOW LH COND TO AR LEFT
U 3557, 0507,0001,4000,0000,2000,0610,0000	; 9774		AR_ARX,ARL_ARL,J/RELEEB		;COMBINE HALVES
U 3560, 0507,3703,0000,0000,0060,2010,0414	; 9775	APRCO7:		CONO APR,J/RELEEB	;[272]
						; 9776	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 6
; IO.MIC[10,5351]	19:56 24-Jul-85			INTERNAL DEVICE FUNCTIONS -- PI				

						; 9777	.TOC	"INTERNAL DEVICE FUNCTIONS -- PI"
						; 9778	
						; 9779	=0****00*000
						; 9780	.IFNOT/INSTR.STAT
						; 9781	PIDO:
U 0710, 1002,3242,2000,0000,0000,0010,0000	; 9782	PIDI:	AR_BR,J/UUO			;DATAI/O PI, UNASSIGNED
						; 9783	
						;;9784	.IF/INSTR.STAT
						;;9785	;DATAO PI, SETS UP BUFFER POINTERS FOR TRACKS
						;;9786	;DATAI PI, READS CURRENT BUFFER POINTER
						;;9787	
						;;9788	PIDI:
						;;9789	PIDO:	BR/AR,ARL+ARX_0.M,CALL.M,	;CHECK IO LEGALITY
						;;9790			SKP IO LEGAL,J/IOCHK
						;;9791		SC_#,#/9.,B DISP,SKP BR0,J/PIDX	;NOW, WHAT TO DO?
						; 9792	.ENDIF/INSTR.STAT
						; 9793	
U 0711, 0774,0001,0000,0000,0007,0010,0504	; 9794	PIBI:	READ ERA,J/RDEBRG		;GET AND STORE
						; 9795	=0
						; 9796	PIBO:	FE_#,#/7,CALL,			;NUMBER OF TIMES TO TRY
U 0712, 3002,0001,0000,0301,0000,7350,0007	; 9797			SKP IO LEGAL,J/IOCHK	;SBUS DIAGNOSTIC
U 0713, 3561,0001,0040,0000,0007,0010,0407	; 9798	DODIAG:	SBUS DIAG,BR/AR			;SEND THE DIAG FUNCTION FROM AR
						; 9799	=
						; 9800	.DEFAULT/MOS=0
						; 9801	.IFNOT/MOS
U 3561, 0066,4001,1000,0000,0016,3610,0000	; 9802		AR/CACHE,VMA_VMA+1,STORE,J/STMEM ;STORE THE RESPONSE
						;;9803	.IF/MOS
						;;9804		AR/CACHE,MB WAIT		;[225]GET THE DATA.
						;;9805		GEN AR+1,SKP AD NE		;IF MEMORY RETURNED -1 TRY AGAIN
						;;9806	=0
						;;9807		FE_FE-1,SKP SCAD0,J/SDTEST	;IT IS SEE IF TOO MANY TRIES
						;;9808	SDONE:	VMA_VMA+1,STORE,J/STMEM		;STORE THE RESPONSE
						;;9809	=0
						;;9810	SDTEST:	AR_BR,J/DIAG1			;[225]RECOVER THE FUNC AND RETRY.
						;;9811		AR_0S,J/SDONE			;TOO MANY TRIES QUIT RETURNING 0
						; 9812	.ENDIF/MOS
						; 9813	
						; 9814	=0****00*000
						; 9815	PICO:	BR/AR,ARL_ARR.M,ARR_ARR,
U 1200, 3050,0001,0040,0000,3001,7350,0004	; 9816			CALL.M,SKP IO LEGAL,J/PICOM1
U 1203, 3565,3703,0000,0000,0060,2010,0415	; 9817	=11	CONO PI,J/PICOM2		;SEND THE DATA
						; 9818	=0****00*100
U 1204, 3050,0001,0040,0000,0000,7350,0000	; 9819	PICI:	BR/AR,CALL,SKP IO LEGAL,J/PICOM1
U 1207, 3562,4001,3000,0000,0060,2010,0500	; 9820	=11	CONI PI(R)			;READ RH TO AR LEFT
						; 9821	=	ARX_AR SWAP,			;RH COND TO ARX RH
U 3562, 3563,4001,3400,0000,3060,2010,0530	; 9822			CONI PI(PAR)		; AND PARITY ENABLES TO RH
						; 9823		BRX/ARX,ARX_AR,			;READY TO COMB RH PARTS
U 3563, 3564,4001,3420,0000,1060,2010,0501	; 9824			CONI PI(L)		; AND LH TO AR LEFT
U 3564, 3565,3302,6004,0000,0000,0610,0000	; 9825		AR_ARX*BRX,AD/OR,ARL_ARL	;COMBINE THEM
U 3565, 0022,3701,0000,0000,0005,2233,0100	; 9826	PICOM2:	REL EBUS,GEN AR,B WRITE,J/IOTEND
						; 9827	
						; 9828	=0
U 3050, 1002,3242,2000,0000,0000,0010,0000	; 9829	PICOM1:	AR_BR,J/UUO			;LOSE
U 3051, 3042,0001,0000,0000,0000,2210,0200	; 9830		REQ EBUS,J/WGRANT		;OK, WAIT TO GET FULL EBUS
						; 9831	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 7
; IO.MIC[10,5351]	19:56 24-Jul-85			TRACKS SUPPORT						

						; 9832	.TOC	"TRACKS SUPPORT"
						; 9833	;
						; 9834	;	According to the University of Essex, when TRACKS is used with
						; 9835	;	address break enabled, the monitor cannot disable address break
						; 9836	;	for the actual execution of the instruction unless we include
						; 9837	;	"ABORT INSTR" as part of the TRACKS loop.  Accordingly, this is
						; 9838	;	now done for all the different flavors of TRACKS.  Thanks, folks.
						; 9839	;
						; 9840	;[317]	During an attempt to implement uncounting of doubly counted op
						; 9841	;	codes for the OP.CNT conditional, we learned:  (1) EA
						; 9842	;	calculation requires that VMA be initialized to the instruction
						; 9843	;	location (usually PC) for the local/global stuff to work properly.
						; 9844	;	Beware!  (This is important if you try to do something after
						; 9845	;	fetching an instruction but before you EA calc it.)  (2) NICOND
						; 9846	;	clears the trap enable flag.  If INSTR.STAT is on, this will force
						; 9847	;	the dispatch to the statistics logic without taking the trap,
						; 9848	;	which will thus be lost and gone forever.  This is a hardware bug,
						; 9849	;	but it's rather impossible to ECO it at this late date.
						; 9850	;
						; 9851	;[321]	The solution to this is to ignore the statistics flag if a trap
						; 9852	;	is ready.  See the block at NEXT for details.  (It's not really
						; 9853	;	a hardware bug after all.)
						; 9854	;
						;;9855	.IF/INSTR.STAT
						;;9856	=00
						;;9857	PIDX:	CLR TRACKS EN,J/IFNOP		;TURN TRACKS OFF
						;;9858	.IF/TRACKS
						;;9859		ARX_SHIFT,ARL_BRL,ARR_0.S,J/PIDO2
						;;9860	.IFNOT/TRACKS
						;;9861		ARX_SHIFT,AR_2,J/PIDX1		;[315] Turn statistics on
						;;9862	.ENDIF/TRACKS
						;;9863	=11	AR_TRX				;READ BACK POINTER
						;;9864		ARL_0.M				;GET INDEX PART
						;;9865		AR_AR+TRB,STORE,J/STMEM		;DONE WITH DATAI
						;;9866	
						;;9867	.IFNOT/TRACKS
						;;9868	PIDX1:	AR_ARX+AR*4			;SAVE PAGE NUMBERS IN TRX REGISTERS
						;;9869		TRB_AR				;INITIAL GARBAGE HERE
						;;9870		VMA_ARX,LOAD AR,PHYS REF
						;;9871		AR_MEM
						;;9872		VMA_ARX+1,LOAD AR,PHYS REF
						;;9873		TRX_AR,ARX_ARX+1		;[315] Must wait one cycle for
						;;9874		AR_MEM				;parity check before writing AC
						;;9875		VMA_ARX+1,LOAD AR,PHYS REF
						;;9876		TRX1_AR,ARX_ARX+1		;[315] Note that this will always
						;;9877		AR_MEM				;make it before AR is smashed
						;;9878		VMA_ARX+1,LOAD AR,PHYS REF
						;;9879		TRX2_AR
						;;9880		AR_MEM
						;;9881		SET TRACKS EN			;[315] Might as well do this now
						;;9882		TRX3_AR,I FETCH,J/NOP		;SAVE TABLE PAGE #, TURN ON
						;;9883	.ENDIF/TRACKS
						;;9884	
						;;9885	PIDO2:	TRX_AR,AR_ARX			;SET UP INDEX
						;;9886		TRB_AR				;AND BASE
						;;9887		SET TRACKS EN,J/IFNOP		;TURN TRACKS ON
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 7-1
; IO.MIC[10,5351]	19:56 24-Jul-85			TRACKS SUPPORT						

						;;9888	
						;;9889	.IF/TRACKS
						;;9890	;HERE WHEN NICOND FINDS TRACKS ENABLED
						;;9891	=0
						;;9892	TRK1:	TRX_AR,J/TRK2			;PUT BACK UPDATED INDEX
						;;9893		AR_AR SWAP			;END OF BUFFER.  RESET
						;;9894		AR_-AR,J/TRK1			; ORIGINAL INDEX
						;;9895	
						;;9896	TRK2:	ARL_0.M
						;;9897		AR_AR+TRB			;ADDRESS TRACKS BUFFER
						;;9898		VMA_AR,PHYS REF			;TO MAKE MODEL A WORK
						;;9899		AR_PC,STORE,PHYS REF		; PUT PC THERE
						;;9900		MEM_AR,VMA/PC,CLR TRACKS EN	;PREVENT NICOND SEEING TRACKS...
						;;9901		ABORT INSTR			;[306] Make address break work by
						;;9902						; copying AD BRK CYC to AD FAIL INH
						;;9903		SET TRACKS EN			;...UNTIL NEXT TIME
						;;9904		DISP/NICOND,J/NEXT		;GO DO NEXT INSTR
						;;9905	.ENDIF/TRACKS
						;;9906	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 8
; IO.MIC[10,5351]	19:56 24-Jul-85			TRACKS SUPPORT						

						;;9907	.IF/OP.CNT
						;;9908	;HERE WHEN NICOND FINDS OPCODE COUNTING ENABLED
						;;9909	; SKIP IF USER MODE
						;;9910	;[316] Make this register usage compatible with timing version below by
						;;9911	; making it use TRX2 (for exec mode counts pointer) and TRX3 (for user mode
						;;9912	; counts pointer) instead of TRX and TRX+1.
						;;9913	;[317] A massive attempt to uncount doubly counted instructions when an
						;;9914	; interrupt was detected has been backed off.  See INSTR.STAT dispatch logic
						;;9915	; above for commentary.
						;;9916	;
						;;9917	=0
						;;9918	OPCT1:	AR_TRX2,SKP AC REF,J/OPCT2	;[316] TRX HAS PAGE # FOR EXEC TABLE
						;;9919		AR_TRX3,SKP AC REF		;[316] NEXT PAGE IS FOR USER
						;;9920	=0
						;;9921	OPCT2:	AR_SHIFT,MQ_SHIFT,		;[317] Save VMA of increment
						;;9922			CLR TRACKS EN,J/OPCT3	;OPCODE INDEXES INTO TABLE
						;;9923		ARX_FM(VMA),J/OPCT2		;GET INSTR FROM FM
						;;9924	;
						;;9925	OPCT3:	VMA_AR,LOAD AR,PHYS REF		;GET TABLE ENTRY
						;;9926		AR_MEM				;[306] Make address break work
						;;9927		BR/AR,AR_AR+1,STORE		;ADD THIS OCCURANCE TO IT, keep old
						;;9928		MEM_AR,VMA/PC
						;;9929		SET TRACKS EN			;LET US GET BACK NEXT NICOND
						;;9930		DISP/NICOND			;DO INSTR IN ARX
						;;9931	;
						;;9932	;	In an attempt to prevent an interrupt after counting an instruction,
						;;9933	;	we now fake the second NICOND in line.
						;;9934	;
						;;9935	=0000	AR_BR,CLR TRACKS EN,J/OPFIX	;Some kind of odd condition.
						;;9936	=0010	AR_BR,CLR TRACKS EN,J/OPFIX	; Uncount the instruction
						;;9937		AR_BR,CLR TRACKS EN,J/OPFIX
						;;9938		AR_BR,CLR TRACKS EN,J/OPFIX
						;;9939		AR_BR,CLR TRACKS EN,J/OPFIX
						;;9940		AR_BR,CLR TRACKS EN,J/OPFIX
						;;9941	=1010	BRX/ARX,AR_ARX,SET ACCOUNT EN,	;The usual case
						;;9942			XR,EA MOD DISP,J/COMPEA
						;;9943		AR_BR,CLR TRACKS EN,J/OPFIX
						;;9944	=1110	GEN ARX,LOAD IR,#/0,J/XCTGO	;Instruction in registers
						;;9945		AR_BR,CLR TRACKS EN
						;;9946	;
						;;9947	OPFIX:	VMA_MQ,STORE,PHYS REF		;Restore old count
						;;9948		MEM_AR,VMA/PC
						;;9949		SET TRACKS EN			;Turn TRACKS back on
						;;9950		DISP/NICOND,J/NEXT		; and do it yet again
						;;9951	.ENDIF/OP.CNT
						;;9952	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 9
; IO.MIC[10,5351]	19:56 24-Jul-85			TRACKS SUPPORT						

						;;9953	.IF/OP.TIME
						;;9954	;HERE TO ADD UP TIME SPENT IN INSTR'S
						;;9955	
						;;9956	OPTM0:	SC_#,#/9.,SKP USER,J/OPTM1
						;;9957	=0
						;;9958	OPTM1:	BR_AR LONG,AR_TRX2,SKP AC REF,	;INSTR IN ARX PAGE IN AR
						;;9959			J/OPTM2
						;;9960		BR_AR LONG,AR_TRX3,SKP AC REF,	;INSTR IN ARX PAGE IN AR
						;;9961			J/OPTM2
						;;9962	=0
						;;9963	OPTM2:	AR_SHIFT,ABORT INSTR,J/OPTM3	;[306] GENERATE ADDR TO INCREMENT
						;;9964						;NEXT GET ADDR FOR THIS
						;;9965		ARX_FM(VMA),J/OPTM2		;GET NEXT INSTR FROM FM
						;;9966	OPTM3:	VMA_AR,LOAD AR,UNCSH PHYS REF	;BUMP COUNT LOCATION
						;;9967		AR_MEM
						;;9968		AR_AR+1,STORE
						;;9969		MEM_AR,SKP USER
						;;9970	=0	AR_TRX,J/OPTM4
						;;9971		AR_TRX1
						;;9972	OPTM4:	AR_SHIFT,ARX_TRB
						;;9973		TRB_AR				;SAVE NEXT LOC TO BUMP
						;;9974		RD+CLR PA			;TIME TO AR
						;;9975		MTR CTL/CLR PERF
						;;9976		VMA_ARX,LOAD ARX,UNCSH PHYS REF	;GET TABLE ENTRY
						;;9977		AR_AR-BR,ARL_0.S		;COMPENSATE TIME FOR THIS CODE
						;;9978		BR/AR,ARX_MEM,SKP AR18		;IF THIS WAS AN ENABLED STATE,
						;;9979	=0	AR_ARX+BR,STORE			;WRITE IT BACK
						;;9980		MEM_AR,VMA/PC			;NOW SETUP NEXT INSTR AGAIN
						;;9981		ARX_BRX,SET TRK+PA EN		;RESTORE STATISTICS FLAGS
						;;9982		DISP/NICOND,J/NEXT
						;;9983	.ENDIF/OP.TIME
						;;9984	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 10
; IO.MIC[10,5351]	19:56 24-Jul-85			TRACKS SUPPORT						

						;;9985	;THIS IS THE SECOND ORDER STATISTICS GATHERING CODE
						;;9986	.IFNOT/SO2.CNT
						;;9987	.IF/SO.CNT
						;;9988	;THIS IS NON DEBUGED CODE THAT IS IN A VERY PRIMATIVE STATE
						;;9989	;IT WAS ABANDONED BETWEEN EDITS AS THE MONITOR NEEDED SOMETHING
						;;9990	;SLIGHTLY DIFFERENT
						;;9991	;THIS IS CODE TO DO A SECOND ORDER STATISTIC IN THE SECOND 128K
						;;9992	;EACH ENTRY IS A HALF WORD
						;;9993	;THE LOW ORDER BIT OF <LAST OPCODE><THIS OPCODE> CONCATENATION
						;;9994	;DETERMINES WHICH HALFWORD IS INCREMENTED. OFF IS HIGH
						;;9995	;IF A HALFWORD OVERFLOWS THE CODE TURNS ITSELF OFF AND WRITES -1
						;;9996	;AT LOCATION 400000
						;;9997	;TRX HIDES THE LOCATION PRESENTED TRB THE LAST OPCODE
						;;9998	
						;;9999	;	THIS IS IN THE NEXT LOOP COMMENTED HERE FOR DOCUMENTATION
						;;10000	;TRK0:	ARX_TRB,BRX/ARX,SKP AC REF,J/TRK1;GET PREV INSTR HIDE THIS ONE
						;;10001	
						;;10002	=0
						;;10003	TRK1:	AR_1,SC_#,#/9.,J/TRK2		;SHIFT IN FIRST OPCODE
						;;10004		ARX_FM(VMA),AR_ARX		;GET THE INSTRUCTION FROM FM
						;;10005		BRX/ARX,AR_1,SC_#,#/9.,ARX_AR	; WHEN IT HIDES THERE
						;;10006	TRK2:	AR_SHIFT,SC_#,#/8.,ARX_BRX	;SETUP TO DO THE NEXT OPCODE
						;;10007		AR_SHIFT,CLR TRACKS EN		;CONVIENT TO SHUT OFF TRACKS
						;;10008		VMA_AR,LOAD ARX,PHYS REF,AR_ARX	;LOW BIT OF INSTR WHERE CAN TEST
						;;10009		ARX_SHIFT,TRB_AR		;LOW BIT OF INSTR TO HIGH BIT
						;;10010		ARL_0.S,ARR_1S,SKP ARX0		;SEE WHICH HALFWORD TO INC
						;;10011						; ALSO SETTING UP FOR TEST IN
						;;10012						; LOW INCREMENT
						;;10013	=0	ARL_1.M,ARR_0.M,J/TRK3		;INC HIGH
						;;10014		ARX_MEM				;INC LOW
						;;10015		BR/AR,ARX_ARX+1,AR/ADX,STORE	;INCREMENT LOW HALF AND STORE IT
						;;10016		TEST AR.BR,SKP CRY0		;USING AND-1 HACK TO TEST OVFLOW
						;;10017	=0	AR_0S,J/TRKLOS			;OVERFLOWED FIXUP TO LOSE
						;;10018		MEM_AR,ARX_BRX,VMA/PC,AR_BRX	;NO OVERFLOW GET OUT ALSO
						;;10019	TRKN1:	SET TRACKS EN			; SAVE AWAY THIS OPCODE
						;;10020	TRKND:	DISP/NICOND,J/NEXT		;AND DO NEXT INSTR
						;;10021	
						;;10022	TRK3:	ARX_MEM,BR/AR			;GET WORD TO INC
						;;10023		AR_ARX+BR,STORE,SKP CRY0	;COMPUTE AND CHECK FOR OVERFLOW
						;;10024	=0	ARX_BRX,VMA/PC,MEM_AR,AR_BRX,	;SAVE AWAY THIS INSTR
						;;10025			J/TRKN1			; AND GET OUT
						;;10026		AR_0.C,ARX_BRX,MEM_AR,J/TRKLOS	;SHUT DOWN TRACKS ON OVERFLOW
						;;10027	
						;;10028	
						;;10029	TRKLOS:	AR_1,SC_#,#/17.			;WHEN LOSS PUT -1 IN 400000
						;;10030		AR_SHIFT
						;;10031		GEN AR,VMA/AD,PHYS REF		;SHUT OFF TRACKS AND QUIT
						;;10032		AR_TRB,STORE
						;;10033		MEM_AR,VMA/AD
						;;10034		J/TRKND
						;;10035	
						;;10036	.ENDIF/SO.CNT
						;;10037	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 11
; IO.MIC[10,5351]	19:56 24-Jul-85			TRACKS SUPPORT						

						;;10038	
						;;10039	.IF/SO2.CNT
						;;10040	;THIS ONE DOES THE COUNTING IN 128K STARTING AT AN ADDRESS PRESENTED IT
						;;10041	;THIS IS CODE TO DO A SECOND ORDER STATISTIC IN THE SECOND 128K
						;;10042	;EACH ENTRY IS A HALF WORD
						;;10043	;THE LOW ORDER BIT OF <LAST OPCODE><THIS OPCODE> CONCATENATION
						;;10044	;DETERMINES WHICH HALFWORD IS INCREMENTED. OFF IS HIGH
						;;10045	;IF A HALFWORD OVERFLOWS THE CODE TURNS ITSELF OFF AND WRITES -1
						;;10046	;AT LOCATION PRESENTED
						;;10047	;TRX HIDES THE LOCATION PRESENTED TRB THE LAST OPCODE
						;;10048	
						;;10049	;	THIS IS IN THE NEXT LOOP COMMENTED HERE FOR DOCUMENTATION
						;;10050	;TRK0:	ARX_TRB,BRX/ARX,SKP AC REF,J/TRK1;GET PREV INSTR HIDE THIS ONE
						;;10051	
						;;10052	=0
						;;10053	TRK1:	AR_0S,SC_#,#/9.,J/TRK2		;SHIFT IN FIRST OPCODE
						;;10054		ARX_FM(VMA),AR_ARX		;GET THE INSTRUCTION FROM FM
						;;10055		BRX/ARX,AR_0S,SC_#,#/9.,ARX_AR	; WHEN IT HIDES THERE
						;;10056	TRK2:	AR_SHIFT,SC_#,#/8.,ARX_BRX	;SETUP TO DO THE NEXT OPCODE
						;;10057		AR_SHIFT,CLR TRACKS EN		;CONVIENT TO SHUT OFF TRACKS
						;;10058		AR_AR+TRX			;BUMPS BY NUMBER FED IT
						;;10059		VMA_AR,LOAD ARX,PHYS REF,AR_ARX	;LOW BIT OF INSTR WHERE CAN TEST
						;;10060		ARX_SHIFT,TRB_AR		;LOW BIT OF INSTR TO HIGH BIT
						;;10061		ARL_0.S,ARR_1S,SKP ARX0		;SEE WHICH HALFWORD TO INC
						;;10062						; ALSO SETTING UP FOR TEST IN
						;;10063						; LOW INCREMENT
						;;10064	=0	ARL_1.M,ARR_0.M,J/TRK3		;INC HIGH
						;;10065		ARX_MEM,ABORT INSTR		;[306] INC LOW
						;;10066		BR/AR,ARX_ARX+1,AR/ADX,STORE	;INCREMENT LOW HALF AND STORE IT
						;;10067		TEST AR.BR,SKP CRY0		;USING AND-1 HACK TO TEST OVFLOW
						;;10068	=0	AR_0S,J/TRKLOS			;OVERFLOWED FIXUP TO LOSE
						;;10069		MEM_AR,ARX_BRX,VMA/PC,AR_BRX	;NO OVERFLOW GET OUT ALSO
						;;10070	TRKN1:	SET TRACKS EN			; SAVE AWAY THIS OPCODE
						;;10071	TRKND:	DISP/NICOND,J/NEXT		;AND DO NEXT INSTR
						;;10072	
						;;10073	TRK3:	ARX_MEM,BR/AR,ABORT INSTR	;[306] GET WORD TO INC
						;;10074		AR_ARX+BR,STORE,SKP CRY0	;COMPUTE AND CHECK FOR OVERFLOW
						;;10075	=0	ARX_BRX,VMA/PC,MEM_AR,AR_BRX,	;SAVE AWAY THIS INSTR
						;;10076			J/TRKN1			; AND GET OUT
						;;10077		AR_0.C,ARX_BRX,MEM_AR,J/TRKLOS	;SHUT DOWN TRACKS ON OVERFLOW
						;;10078	
						;;10079	
						;;10080	TRKLOS:	AR_TRX
						;;10081		GEN AR,VMA/AD,PHYS REF	;WRITE -1 IN PRESENTED LOCATION
						;;10082		AR_TRB,STORE
						;;10083		MEM_AR,VMA/PC		;NEED AN INSTRUCTION TO GIVE
						;;10084		J/TRKND			;TIME TO NICOND AFTER VMA/PC
						;;10085	
						;;10086	.ENDIF/SO2.CNT
						; 10087	.ENDIF/INSTR.STAT
						; 10088	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 12
; IO.MIC[10,5351]	19:56 24-Jul-85			INTERNAL DEVICE FUNCTIONS -- PAG			

						; 10089	.TOC	"INTERNAL DEVICE FUNCTIONS -- PAG"
						; 10090	
						; 10091	=0****00**00
						;;10092	.IFNOT/KLPAGE
						;;10093	PAGBO:	BR/AR,CLR FE,CALL,		;INVALIDATE ONE PAGE TABLE LINE
						;;10094			SKP IO LEGAL,J/IOCHK
						;;10095	PAGBO1:	PT SEL_INVAL,J/PTLOOP		;SETUP INITIAL PT WR SELECT
						; 10096	.IF/KLPAGE
						; 10097	PAGBO:	AR_0S,BR/AR,CALL,		;CLEAR ONE PAGE TABLE ENTRY
U 1100, 3002,3441,2040,0000,0000,7350,0000	; 10098			SKP IO LEGAL,J/IOCHK
U 1101, 0066,0001,0000,0000,0020,2310,0010	; 10099		WR PT ENTRY,J/IFNOP
						; 10100	.ENDIF/KLPAGE
						; 10101	PAGDO:	ARX_AR (AD),ARR_ARL,ARL_ARL.M,	;SETUP USER CONTEXT
U 1102, 3046,3701,4200,0000,3001,7350,0000	; 10102			CALL.M,SKP IO LEGAL,J/GETEEB
U 1103, 3566,3701,4000,0000,2060,2010,0620	; 10103		DATAO PAG(L),AR_ARX		;SETUP AC BLOCKS, PREV CTXT
U 3566, 3052,3203,0000,0302,0020,5510,0011	; 10104	=	SKP AR2,SC_#,#/9.
						; 10105	=0
U 3052, 0507,4001,0000,0000,0000,0010,0007	; 10106	TIMCO1:	MTR CTL/CONO TIM,J/RELEEB	;DO NOT CHANGE UBR
						;;10107	.IF/PAGCNT				;[327] Count DATAO PAG with bit 2
						;;10108		MQ_AR,AR_TRX3+1			;[327] Do the count
						;;10109		TRX3_AR,AR_MQ
						; 10110	.ENDIF/PAGCNT				;[327]
						; 10111		FE_P AND #,#/4,MQ_SHIFT,	;[333] Save bit 3 for keep test
U 3053, 0650,3401,2010,7131,0000,4410,0004	; 10112			SKP AR18,AR_0S		;STORE ACCT?
U 0650, 3054,4001,0000,0000,0000,0150,0100	; 10113	=0*0	AR0-8_#,#/100,CALL,J/PAGD2	;YES, START WITH EBOX CNT
U 0651, 3577,3721,0000,0000,0307,0050,0602	; 10114		VMA_MQ,LOAD UBR,CALL [CLRPT]	;[333] No. Set for page table clear
						; 10115	.IF/BIG.PT				;[333]
U 0655, 2516,4001,0000,2400,0020,5210,0000	; 10116	=1*1	SKP SC NE,J/KEEPME		;[333] Might keep keep me bits
						;;10117	.IFNOT/BIG.PT
						;;10118	=1*1	PT SEL_INVAL,J/PTLOOP		;SETUP INITIAL PT WR SELECT
						; 10119	.ENDIF/BIG.PT				;[333]
						; 10120	;
						; 10121	;	PAGD2 is set up as a subroutine for addressing convenience only.
						; 10122	;
						; 10123	=0
U 3054, 2532,0001,0400,0302,1000,0050,0015	; 10124	PAGD2:	ARX_AR,SC_#,#/13.,CALL,J/EMTR	;UPDATE THE EBOX ACCT
U 3055, 3567,0001,0000,0000,0002,0110,0140	; 10125		MB WAIT,AR0-8_#,#/140		;READY TO GET CACHE ACCT
U 3567, 2533,0001,0400,0302,1000,0010,0015	; 10126		ARX_AR,SC_#,#/13.,J/CMTR	;RETURN ABOVE TO CLR PT
						; 10127	
						; 10128	
						; 10129	=0****00**00
						; 10130	PAGDI:	SC_#,#/70,SKP IO LEGAL,
U 1210, 3046,0001,0000,0302,0000,7350,0070	; 10131			CALL,J/GETEEB
						;;10132	.IFNOT/MODEL.B
						;;10133		DATAI PAG(L),CALL,J/PCTXT	;FIRST GET AC BLOCKS & CWSX
						; 10134	.IF/MODEL.B
						; 10135		DATAI PAG(L),ARX_1B17-1,	;PUT AC BLKS IN AR,
U 1211, 3570,1761,3200,0000,0060,2057,0511	; 10136			CALL,J/PCTXT		; [0,,-1] IN ARX
						; 10137	.ENDIF/MODEL.B
U 1212, 1002,3242,2000,0000,0000,0010,0000	; 10138	PAGBI:	AR_BR,J/UUO			;BLKI PAG, IS UNASSIGNED
U 1213, 0507,3242,4000,0000,0000,0610,0002	; 10139		AR_SHIFT,ARL_BRL,J/RELEEB	;COMBINE UBR WITH AC BLKS, CWSX
						; 10140	=
						;;10141	.IFNOT/MODEL.B
						;;10142	PCTXT:	P_SC				;PLUG IN LOAD-ENABLE BITS
						;;10143	=0*	BR/AR,AR_0S,READ UBR,		;ASK MBOX FOR UBR LOC'N
						;;10144			CALL,J/XFERW		;NOW READ IT
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 12-1
; IO.MIC[10,5351]	19:56 24-Jul-85			INTERNAL DEVICE FUNCTIONS -- PAG			

						;;10145		AR_EBUS REG
						; 10146	.IF/MODEL.B
U 3570, 3571,3243,0500,2400,3001,0010,0200	; 10147	PCTXT:	P_SC,ARX_ARX*8			;STUFF IN LOAD EN, ARX=7,,-10
U 3571, 3572,3203,0540,0000,2000,0210,0000	; 10148		BR/AR,AR12-17_PREV SEC,ARX_ARX*8
U 3572, 1674,3012,2044,0000,0000,0010,0000	; 10149		BR/AR,AR_ARX*BR,AD/ANDCA	;PCS TO BR, LD EN, AC BLKS TO AR
						; 10150	=0*	AR_AR*BR,AD/OR,READ UBR,	;LH READY IN AR.  GET UBR
U 1674, 0770,3302,2004,0000,0007,0050,0502	; 10151			CALL,J/XFERW
U 1676, 3573,4001,3040,0000,0060,2010,0567	; 10152		BR/AR,AR_EBUS REG		;LH TO BR.  READ UBR ADDRESS
						; 10153	.ENDIF/MODEL.B
						; 10154		ARX_AR,AR_0S,SC_#,#/27.,	;READY TO MOVE INTO POSITION
U 3573, 0003,3441,2400,0302,1000,0003,0033	; 10155			RETURN3
						; 10156	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 13
; IO.MIC[10,5351]	19:56 24-Jul-85			INTERNAL DEVICE FUNCTIONS -- PAG			

						; 10157	;CONI/O PAG,
						; 10158	
						; 10159	=0****00**00
						; 10160	PAGCO:	BR/AR,ARL_ARR.M,ARR_ARR,ARX_0S,	;SET EXEC CONTEXT
U 1214, 3046,3441,0240,0000,3001,7350,0004	; 10161			SKP IO LEGAL,CALL.M,J/GETEEB
U 1215, 2510,3703,0000,0000,0060,2010,0416	; 10162		CONO PAG,J/SETEBR		;SET CACHE, SEC, TRAP EN FLAGS
						; 10163	
						; 10164	PAGCI:	BR/AR,AR_0S,CALL,SKP IO LEGAL,	;READ EXEC CONTEXT
U 1216, 3046,3401,2040,0302,0000,7350,0011	; 10165			SC_#,#/9.,J/GETEEB
U 1217, 2000,0001,3000,0000,0060,2010,0531	; 10166		CONI PAG			;READ CACHE, SEC, TRAP EN
						; 10167	=
						; 10168	=0*	ARX_AR SWAP,AR_0S,READ EBR,	;SETUP EPT LOC'N TO READ
U 2000, 0770,3401,2400,0000,3007,0050,0503	; 10169			CALL,J/XFERW
						; 10170		AR_EBUS REG,			;GET EBR IN AR
U 2002, 3574,3401,3220,0000,0060,2010,0567	; 10171			BRX/ARX,ARX_0S		;SAVE FLAGS IN LH OF BRX
U 3574, 3575,4001,0400,0000,0000,2210,0000	; 10172		ARX_SHIFT,REL ECL EBUS		;MOVE EBR LOC LEFT
U 3575, 3576,3302,0000,0000,0001,0010,0016	; 10173		ARR_0.M,ADB/BR,ADA EN/EN,AD/OR,ARL/ADX	;COMBINE, THEN PUT IN RH
U 3576, 0022,4001,4000,0000,3005,0033,0000	; 10174		AR_AR SWAP,B WRITE,J/IOTEND	;STORE THE RESULT
						; 10175	
						; 10176	;HERE TO FINISH CONO PAG,
						; 10177	
						; 10178	=000					;[342]
U 2510, 2662,4001,0000,0302,0000,0050,0011	; 10179	SETEBR:	SC_#,#/9.,CALL,J/SHIFT		;MOVE EBR LOC'N TO POSITION
U 2512, 3577,3701,0000,0000,0307,0050,0603	; 10180	=010	VMA_AR,LOAD EBR,CALL [CLRPT]	;[333]SETUP EBR
						; 10181	=110					;[342]SETUP INITIAL PT WR SELECT
U 2516, 2356,0001,0000,0000,0000,2310,0001	; 10182	KEEPME:	PT SEL_INVAL,J/PTLOOP		;[342] FOR NON KLPAGE THIS CAN SEND
						; 10183						; THE USER TO PAGBO1 AND SAVE 1
						; 10184						; UCODE LOCATION
						; 10185	.IF/BIG.PT				;[333] Entry from DATAO
U 2517, 2526,0001,0000,0000,0000,2310,0041	; 10186		PT SEL_INVAL (KEEP),J/KEEPCL	;[342] Hang on to KEEP pages
						; 10187	.ENDIF/BIG.PT				;[333]
						; 10188	=
						; 10189	=110
						; 10190	PTLOOP:	AR_AR+BR,VMA/AD,FE_FE-1,	;SELECT A LINE OF PT
						; 10191			CLR PT LINE,TIME/3T,	;DO THE WORK
U 2356, 2356,0602,2004,3001,0320,2334,0031	; 10192			BYTE DISP,J/PTLOOP	;LOOP TO CLEAR ALL
U 2357, 0066,0001,0000,0000,0000,2310,0000	; 10193		PT SEL_NORMAL,J/IFNOP		;RESET PT WR SELECTION
						; 10194	.IF/BIG.PT				;[333]
						; 10195	=110
						; 10196	KEEPCL:	AR_AR+BR,VMA/AD,FE_FE-1,TIME/3T,;SELECT A LINE OF PT
						; 10197			CLR PT LINE (KEEP),	;DO THE WORK
U 2526, 2526,0602,2000,3001,0320,2334,0061	; 10198			BYTE DISP,J/KEEPCL	;Hang onto lines with KEEP ME set
U 2527, 0066,0001,0000,0000,0000,2310,0000	; 10199		PT SEL_NORMAL,J/IFNOP		;RESET PT WR SELECTION
						; 10200	.ENDIF/BIG.PT				;[333]
						; 10201	;
						; 10202	;	[333] Set up to clear hardware page table after setting EBR or
						; 10203	;	UBR.  KEEP ME pages may or may not be cleared, depending upon the
						; 10204	;	setting of DATAO PAG bit 3.  (Clear everything for CONO PAG.)
						; 10205	;
U 3577, 3056,3401,2200,0000,0000,2210,0000	; 10206	CLRPT:	AR_0S,ARX_0S,REL ECL EBUS	;[334]DON'T HANG UP BUS FOR THIS
						; 10207	=0	AR0-8_#,#/10,MB WAIT,		;WAIT FOR U/E BR LOAD
U 3056, 0676,0001,0000,0000,0002,0153,0010	; 10208			SC_FE,CALL [ARSWAP]	;[334]GET 1B23
						; 10209		BR/AR,AR_0S,VMA/AD,		;[333][334] START CLEARING AT ZERO
U 3057, 0004,3441,2040,0301,0300,0003,0077	; 10210			FE_#,#/63.,RETURN4	;SETUP LOOP COUNT
						; 10211	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 14
; IO.MIC[10,5351]	19:56 24-Jul-85			INTERNAL DEVICE FUNCTIONS -- TIM & MTR			

						; 10212	.TOC	"INTERNAL DEVICE FUNCTIONS -- TIM & MTR"
						; 10213	
						; 10214	=0****00***0
						; 10215	RDMTR:	AR_BR,CALL,			;GET E TO AR
U 1506, 3046,3202,2000,0000,0000,7350,0000	; 10216			SKP IO LEGAL,J/GETEEB	;GRAB CONTROL OF EBUS
						; 10217		MQ_AR,AR_0S,			;SAVE E IN MQ
U 1507, 1650,3441,2010,0302,1000,0033,0015	; 10218			SC_#,#/13.,B DISP	;WHICH COUNTER?
						; 10219	=
U 1650, 3060,4001,3000,0000,0060,2010,0510	; 10220	=00	AR_TIME BASE,J/RDMTR1		;DATAI TIM,
U 1651, 3060,0001,3000,0000,0060,2010,0511	; 10221		AR_PERF CNT,J/RDMTR1		;BLKI TIM,
U 1652, 3060,0001,3000,0000,0060,2010,0512	; 10222		AR_EBOX CNT,J/RDMTR1		;DATAI MTR,
U 1653, 3060,4001,3000,0000,0060,2010,0513	; 10223		AR_CACHE CNT,J/RDMTR1		;BLKI MTR,
						; 10224	
						; 10225	=0
						; 10226	RDMTR1:	ARL+ARX_0.M,B DISP,		;SHIFT COUNT INTO POSITION
U 3060, 1700,0001,0000,0000,0001,0073,0060	; 10227			CALL.M,J/MTRDBL		;ADD DOUBLE WORD FROM PT
U 3061, 3600,0602,2600,0000,0020,2227,0000	; 10228		AR_AR+BR LONG,REL ECL EBUS
U 3600, 0341,3721,0000,0302,0316,0010,0043	; 10229		VMA_MQ,STORE,SC_#,#/35.,J/DMVM1	;STORE TOTAL AT E & E+1
						; 10230	
						; 10231	=0****00**00
U 1300, 3046,4001,0040,0000,0000,7350,0000	; 10232	TIMCO:	BR/AR,CALL,SKP IO LEGAL,J/GETEEB
U 1301, 3052,3701,0000,0000,0060,2023,0407	; 10233		CONO TIM,J/TIMCO1
						; 10234	TIMCI:	BR/AR,AR_0S,CALL,
U 1302, 3046,3441,2040,0000,0000,7350,0000	; 10235			SKP IO LEGAL,J/GETEEB
U 1303, 3601,4001,3000,0000,0060,2010,0514	; 10236		AR_INTERVAL			;INTERVAL GOES TO LH
U 3601, 3602,3441,2400,0000,3000,0010,0000	; 10237	=	ARX_AR SWAP,AR_0S
U 3602, 3603,4001,3000,0000,0060,2010,0515	; 10238		AR_PERIOD			;PERIOD TO RH
						; 10239	TIMBO1:	MTR CTL/LD PA LH,		;KEEP MTR DECODE FOR TIMBO
U 3603, 0507,4001,0000,0000,2000,0022,0004	; 10240			ARL_ARXL,J/RELEEB	;COMBINE PERIOD WITH INTERVAL
						; 10241	
						; 10242	=0****00**00
						; 10243	MTRCO:	BR/AR,ARL_ARR.M,ARR_ARR,
U 1304, 3046,4001,0040,0000,3001,7350,0004	; 10244			CALL.M,SKP IO LEGAL,J/GETEEB
U 1305, 3604,3703,0000,0000,0060,2023,0406	; 10245		CONO MTR,J/MTRCO1
						; 10246	MTRCI:	BR/AR,AR_0S,CALL,
U 1306, 3046,3441,2040,0000,0000,7350,0000	; 10247			SKP IO LEGAL,J/GETEEB
U 1307, 3604,0001,3000,0000,0060,2010,0516	; 10248		CONI MTR			;READ BACK CONDITIONS
						; 10249	=
U 3604, 0507,0001,0000,0000,0000,0022,0026	; 10250	MTRCO1:	ARL_0.S,MTR CTL/CONO MTR,J/RELEEB
						; 10251	
						; 10252	=0****00**00
U 1310, 1002,3242,2000,0000,0000,0010,0000	; 10253	TIMDO:	AR_BR,J/UUO			;DATAO TIM, UNDEFINED
						; 10254	=10
						; 10255	TIMBO:	ARX_AR,AR_0S,CALL,		;SAVE ENABLES, CLEAR AR
U 1312, 3046,3401,2400,0000,1000,7350,0000	; 10256			SKP IO LEGAL,J/GETEEB	;CHECK LEGALITY, GET BUS
U 1313, 3605,3703,4000,0000,2060,2023,0404	; 10257		BLKO TIM(L),AR_ARX		;TURN OFF BY CLEARING LH ENABLES
U 3605, 3606,3703,4000,0000,3060,2023,0405	; 10258	=	BLKO TIM(R),AR_AR SWAP		;SEND RH
U 3606, 3603,3703,0000,0000,0060,2023,0404	; 10259		BLKO TIM(L),J/TIMBO1		;SEND LH, TURNING ON AGAIN
						; 10260	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 15
; IO.MIC[10,5351]	19:56 24-Jul-85			INTERNAL DEVICE FUNCTIONS -- TIM & MTR			

						; 10261	;HERE WHEN METER INCREMENT REQUEST DETECTED
						; 10262	
U 3607, 3610,4001,0000,0000,0000,2210,0400	; 10263	MTRREQ:	GET ECL EBUS			;TAKE CONTROL OF BUS
U 3610, 3062,4001,3000,0000,0060,2010,0517	; 10264		AR_MTR REQ			;WHAT TYPE REQUEST?
						; 10265	=0	MQ_AR,AR_AR*2,CALL,		;GET READY TO DISP
U 3062, 3612,3701,5010,0000,1100,3050,0514	; 10266			VMA_#,#/514,J/MTRRQ0
U 3063, 3611,4001,0000,0000,0000,2210,0000	; 10267		REL ECL EBUS			;DONE
U 3611, 2104,0001,0000,0000,0002,2110,0105	; 10268		MB WAIT,SET ACCOUNT EN,J/PIFET	;FETCH NEXT INSTR
						; 10269	
						; 10270	MTRRQ0:	ARX_AR SWAP,DISP/SH0-3,AR_0S,	;DISPATCH ON REQUEST TYPE
U 3612, 2530,3401,2400,0302,3020,0007,0015	; 10271			SC_#,#/13.
						; 10272	=000
U 2530, 3615,0001,3000,0000,0060,2023,0510	; 10273		RD+CLR TB,J/TMTR1		;TIME BASE
U 2531, 3616,4001,3000,0000,0060,2023,0511	; 10274		RD+CLR PA,J/PMTR1		;PERF ANALYSIS CNT
U 2532, 3617,0001,3000,0000,0060,2023,0512	; 10275	EMTR:	RD+CLR E CNT,J/EMTR1		;EBOX CNT
U 2533, 3620,0001,3000,0000,0060,2023,0513	; 10276	CMTR:	RD+CLR C CNT,J/CMTR1		;CACHE CNT
U 2534, 3613,0001,0000,0000,0000,2210,0000	; 10277		REL ECL EBUS			;INTERVAL -- VECTOR INTERRUPT
U 3613, 3614,4001,0000,0000,0000,1510,0714	; 10278	=	SET PI CYCLE
U 3614, 2043,0001,0000,0000,0000,2110,0105	; 10279		SET ACCOUNT EN,J/PIINST
						; 10280	
U 3615, 3621,4001,0000,0000,0000,0010,0000	; 10281	TMTR1:	MTR CTL/CLR TIME,J/MTRRQ1	;HOLD SELECTS FOR
U 3616, 3621,0001,0000,0000,0000,0010,0001	; 10282	PMTR1:	MTR CTL/CLR PERF,J/MTRRQ1	;MTR CTL FUNCTION
U 3617, 3621,0001,0000,0000,0000,0010,0002	; 10283	EMTR1:	MTR CTL/CLR E CNT,J/MTRRQ1	; TO PREVENT RACE
U 3620, 3621,4001,0000,0000,0000,0010,0003	; 10284	CMTR1:	MTR CTL/CLR M CNT,J/MTRRQ1	; AND POSSIBLE GLITCHES
						; 10285	
						; 10286	;HERE WITH RELEVANT COUNT IN ARR, GARBAGE IN ARL
						; 10287	
U 3621, 3064,0001,0000,0000,0000,1510,0004	; 10288	MTRRQ1:	ABORT INSTR
						; 10289	=0	ARL+ARX_0.M,ARX0-3 DISP,	;CLEAR GARBAGE & RE-DISPATCH
U 3064, 1700,4001,0000,0000,2021,0047,0060	; 10290			CALL.M,J/MTRDBL		; TO ADD DOUBLE COUNTER FROM PT
						; 10291		AR_AR+BR LONG,SC_#,#/35.,
U 3065, 3622,0602,2604,0302,0036,3527,0043	; 10292			VMA_VMA-1,STORE		;STORE BACK IN PROCESS TABLE
U 3622, 3623,3441,2003,0000,0002,0010,0000	; 10293		MEM_AR,AR_0S			;HI PART TO MEM
U 3623, 0001,4001,4000,0000,0016,3603,0000	; 10294		AR_SHIFT,VMA_VMA+1,STORE,RETURN1
						; 10295	
						; 10296	;HERE TO PICK UP DOUBLEWORD FROM PROCESS TABLE
						; 10297	; AND ADD CURRENT CONTENTS OF APPROPRIATE METER
						; 10298	
						; 10299	=00
						; 10300	MTRDBL:	AR_0S,ARX_SHIFT,
U 1700, 3624,3401,2400,0000,0100,3010,0510	; 10301			VMA_#,#/510,J/RDEMTR	;TIME BASE IN EPT 510-511
						; 10302		AR_0S,ARX_SHIFT,
U 1701, 3624,3441,2400,0000,0100,3010,0512	; 10303			VMA_#,#/512,J/RDEMTR	;PERF CNT IN EPT 512-513
						; 10304		AR_0S,ARX_SHIFT,
U 1702, 3625,3441,2400,0000,0100,3010,0504	; 10305			VMA_#,#/504,J/RDUMTR	;EBOX ACCT IN UPT 504-505
						; 10306		AR_0S,ARX_SHIFT,
U 1703, 3625,3401,2400,0000,0100,3010,0506	; 10307			VMA_#,#/506,J/RDUMTR	;CACHE ACCT IN UPT 506-507
						; 10308	
						; 10309	RDEMTR:	BR_AR LONG,			;SAVE COUNT IN BR!BRX
U 3624, 2004,4001,0060,0000,0012,0026,0113	; 10310			LOAD AR,EPT REF,J/RDMTR2;GET HIGH WORD FROM EPT
U 3625, 2004,4001,0060,0000,0012,0026,0223	; 10311	RDUMTR:	BR_AR LONG,LOAD AR,UPT REF	; OR UPT AS APPROP
						; 10312	=0*
						; 10313	RDMTR2:	FIN XFER,VMA_VMA+1,LOAD ARX,	;NOW GET LOW WORD
U 2004, 0770,3200,0003,0000,0033,3650,0000	; 10314			CALL,J/XFERW		;GO WAIT FOR IT
U 2006, 0001,3701,0500,0000,0000,0003,0000	; 10315		ARX_ARX*2,RETURN1
						; 10316	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 16
; IO.MIC[10,5351]	19:56 24-Jul-85			PRIORITY INTERRUPT PROCESSING				

						; 10317	.TOC	"PRIORITY INTERRUPT PROCESSING"
						; 10318	;HERE WHEN PRIORITY INTERRUPT REQUEST DETECTED
						; 10319	;PI LOGIC HAS DONE HANDSHAKE TO BRING FUNCTION WORD IN ON EBUS
						; 10320	; FUNCTION WORD IS NOW IN AR, SC=2
						; 10321	
						; 10322	;THE FORMAT OF THE FUNCTION WORD IS --
						; 10323	;    0-2	ADDRESS SPACE FOR THE FUNCTION
						; 10324	;	0=EPT
						; 10325	;	1=EXEC VIRTUAL
						; 10326	;	4=PHYSICAL
						; 10327	;	OTHERS UNDEFINED
						; 10328	;    3-5	FUNCTION TO PERFORM (SEE LIST BELOW AT PIDISP)
						; 10329	;      6	FUNCTION QUALIFIER
						; 10330	;   7-10	PHYSICAL DEVICE # ON EBUS
						; 10331	;  11-12	UNDEFINED
						; 10332	;  13-35	ADDRESS FOR FUNCTION
						; 10333	
U 3626, 3627,4001,0010,0000,1000,1510,0714	; 10334	PICYC1:	SET PI CYCLE,MQ_AR		;START PI CYCLE
U 3627, 3630,0001,0007,0000,0000,1010,0163	; 10335		FM[SV.IOP]_AR			;[234] save IOP function word
						; 10336						; in AC3.
U 3630, 2030,3600,0207,0000,0340,0007,0175	; 10337		VMA_AR AND ADMSK,ARX/AD,SH DISP	;EXTRACT ADDR, DISP ON FCN
						; 10338	=1000					;3-5 IS FUNCTION TO PERFORM
U 2030, 2043,0001,0000,0000,0100,3410,0040	; 10339	PIDISP:	VMA_40+PI*2,J/PIINST		;(0) STANDARD INTERRUPT
U 2031, 2043,0001,0000,0000,0100,3410,0040	; 10340		VMA_40+PI*2,J/PIINST		;(1) DITTO
U 2032, 3634,3203,2000,0302,0000,0010,0005	; 10341		AR_AR*4,SC_#,#/5,J/PIVECT	;(2) VECTOR
U 2033, 2077,4001,0000,0000,0015,0010,0000	; 10342		LOAD AR (RPW),J/PIINCR		;(3) INCREMENT [410] and interlock
U 2034, 2100,0001,0000,7310,0020,5210,0040	; 10343		SKP AR6,J/PIDATO		;(4) DATAO
U 2035, 1422,0001,0020,0000,0060,0010,0000	; 10344		BRX/ARX,TIME/5T,J/PIDATI	;(5) DATAI
U 2036, 2540,3243,2000,7310,0020,5210,0040	; 10345		AR_AR*4,SKP AR6,J/PIBYTE	;(6) BYTE TRANSFER
						;;10346	.IFNOT/IPA20				;[265]
						;;10347		VMA_40+PI*2,J/PIINST		;(7) UNDEFINED
						; 10348	.IF/IPA20				;[265]
U 2037, 3631,0001,0000,0000,0015,0026,0103	; 10349		LOAD AR (RPW),PHYS REF   	;[411] Increment word with interlock
U 3631, 3632,3200,0003,0000,0022,0010,0000	; 10350	AWAIT:	AR_MEM				;***HACK*** until real AWAIT ready
U 3632, 0240,4001,2000,0000,0036,0026,0103	; 10351		AR_AR+1,STORE,PHYS REF,J/ESEND	;[411] so SMP will work properly
						; 10352	.ENDIF/IPA20
						; 10353	
U 3633, 2043,4001,0000,0000,0100,3410,0041	; 10354	PICYC2:	VMA_41+PI*2,J/PIINST		;2ND PART OF STD INT
						; 10355	
U 3634, 2043,3441,2000,7311,0020,0007,0030	; 10356	PIVECT:	FE_# AND S,#/30,AR_0S,SH DISP	;WHAT KIND OF DEVICE?
						; 10357	=0011
U 2043, 0075,0001,0000,0000,0013,0026,0513	; 10358	PIINST:	EPT FETCH,J/XCTW		;CHAN 0-3
U 2047, 0075,0001,0000,0000,0013,0026,0513	; 10359		EPT FETCH,J/XCTW		;CHAN 4-7
U 2053, 2010,4001,0000,2030,2000,0110,0142	; 10360		AR0-8_FE+#,#/142,J/DTEVEC	;DTE 0-3
U 2057, 0075,4001,0000,0000,0013,0010,0000	; 10361		LOAD ARX,J/XCTW			;EXTERNAL DEVICE
						; 10362	=0*
U 2010, 2662,3441,2400,0302,1000,0050,0011	; 10363	DTEVEC:	ARX_AR,AR_0S,SC_#,#/9.,CALL,J/SHIFT
U 2012, 0075,3703,0000,0000,0313,0026,0513	; 10364		VMA_AR,EPT FETCH,J/XCTW
						; 10365	
						; 10366	=0101
U 2065, 0770,4001,0000,0000,0012,0026,0113	; 10367	PILD:	LOAD AR,EPT REF,J/XFERW		;GET DATUM FROM EPT
U 2067, 0770,4001,0000,0000,0012,0010,0000	; 10368		LOAD AR,J/XFERW			; OR EXEC VIRTUAL ADDR SPACE
						;;10369	.IFNOT/MODEL.B
						;;10370		VMA_ARX,LOAD AR,
						;;10371			PHYS REF,J/XFERW	; OR PHYSICAL MEMORY, AS REQUESTED
						; 10372	.IF/MODEL.B
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 16-1
; IO.MIC[10,5351]	19:56 24-Jul-85			PRIORITY INTERRUPT PROCESSING				

U 2075, 2060,3610,0207,4000,0320,0010,0175	; 10373		VMA_ARX AND ADMSK,ARX/AD,J/PHYS2;FORCE AC'S FOR 0-17
						; 10374	.ENDIF/MODEL.B
						;;10375	.IFNOT/MODEL.B			;[224]
						;;10376	IOPFIN:	SET ACCOUNT EN,J/PIDONE		;IN CASE OF EBUS PROBLEMS
						; 10377	.ENDIF/MODEL.B			;[224]
						; 10378	
						; 10379	;HERE TO PERFORM INCREMENT FUNCTION
						; 10380	
U 2077, 3066,3240,0003,7310,0042,5210,0040	; 10381	PIINCR:	AR_MEM,SKP AR6			;GET WORD, INCR OR DECR?
U 3066, 2103,4003,2000,0000,0036,0010,0000	; 10382	=0	AR_AR+1,STORE,J/PIDONE
U 3067, 2103,1701,2000,0000,0036,0010,0000	; 10383		AR_AR-1,STORE,J/PIDONE
						; 10384	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 17
; IO.MIC[10,5351]	19:56 24-Jul-85			PRIORITY INTERRUPT PROCESSING				

						; 10385	;HERE FOR DATAO (EXAMINE) FUNCTION
						; 10386	
						; 10387	=0000
U 2100, 2065,4001,0000,0000,1020,0047,0000	; 10388	PIDATO:	AR0-3 DISP,CALL.M,J/PILD	;GET DATA FROM REQUESTED ADR SPC
U 2101, 3636,3243,2000,0000,0000,0050,0000	; 10389		AR_AR*4,CALL,J/RDEX		;RESTRICTED EXAMINE
U 2102, 3552,3200,0003,0000,0022,2250,0026	; 10390	PIOUT:	AR_MEM,SET DATAO,CALL,J/EBUSO	;SEND DATA
U 2103, 2104,4001,0003,0000,0002,0024,0502	; 10391	PIDONE:	MEM_AR,DISMISS			;DONE, DISMISS & RESUME NORMAL
U 2104, 0073,4001,0000,0000,0117,0010,0000	; 10392	PIFET:	VMA/PC,FETCH,J/NOP		;RESUME AS BEFORE
U 2105, 2014,1701,0000,0000,0320,0050,0000	; 10393	=0101	VMA_AR-1,CALL,J/DEXCHK		;GO PROT/RELOC THIS EXAM
						;;10394	.IFNOT/MODEL.B
						;;10395	=0111	VMA_ARX,LOAD AR,PHYS REF,J/PIOUT;PROTECTED PHYSICAL
						; 10396	.IF/MODEL.B
U 2107, 1770,3610,0207,4000,0320,0010,0175	; 10397	=0111	VMA_ARX AND ADMSK,ARX/AD,J/PHYS1;FORCE AC'S FOR 0-17
						; 10398	.ENDIF/MODEL.B
U 2117, 2102,0001,0000,0000,0000,0010,0000	; 10399	=1111	J/PIOUT				;PROT VIOLATION.  SEND 0
						; 10400	
						; 10401	;HERE FOR DATAI (DEPOSIT) FUNCTION
						; 10402	
						; 10403	=10
U 1422, 3551,3441,2000,0000,0060,2250,0027	; 10404	PIDATI:	SET DATAI,TIME/5T,CALL,J/EBUSI	;READ THE DATA
U 1423, 3635,3721,2400,0000,1000,0010,0000	; 10405		ARX_AR,AR_MQ			;DATUM TO ARX, GET FCN WORD
U 3635, 2120,3242,0620,7310,0020,5210,0040	; 10406		BRX/ARX,ARX_BRX,SKP AR6		;RESTRICTED?
U 2120, 2145,3242,6000,0000,1020,0007,0000	; 10407	=0000	AR0-3 DISP,AR_BRX,J/PIST	;NO, STORE AS REQUESTED
U 2121, 3636,3243,2000,0000,0000,0050,0000	; 10408		AR_AR*4,CALL,J/RDEX		;YES, GET PROT/RELOC ADDR
U 2125, 2014,4003,0000,0000,0320,0050,0000	; 10409	=0101	VMA_AR+1,CALL,J/DEXCHK		;VERIFY LEGALITY
U 2127, 2155,3202,6000,0000,0000,0010,0000	; 10410	=0111	AR_BRX,J/PSTOR			;DATA IN AR, ADDR IN ARX. STORE PHYS
U 2137, 2103,4001,0000,0000,0000,0010,0000	; 10411	=1111	J/PIDONE			;PROT VIOLATION, STORE NOTHING
						; 10412	
						; 10413	=0101
U 2145, 2103,0001,0000,0000,0016,0026,0113	; 10414	PIST:	STORE,EPT REF,J/PIDONE
U 2147, 2103,0001,0000,0000,0016,0010,0000	; 10415		STORE,J/PIDONE
						;;10416	.IFNOT/MODEL.B
						;;10417	PSTOR:	VMA_ARX,STORE,PHYS REF,J/PIDONE
						; 10418	.IF/MODEL.B
U 2155, 2070,3610,0207,0000,0320,0010,0175	; 10419	PSTOR:	VMA_ARX AND ADMSK,ARX/AD,J/PHYS3;FORCE AC'S FOR 0-17
						; 10420	.ENDIF/MODEL.B
U 2157, 2103,4001,0000,0000,0000,0010,0000	; 10421		J/PIDONE
						; 10422	
U 3636, 3637,4001,4000,7311,2000,0010,0030	; 10423	RDEX:	FE_# AND S,#/30,AR_ARX		;DTE# *8 TO FE, ADDR TO AR
U 3637, 3640,0001,0040,2030,2000,0110,0145	; 10424		BR/AR,AR0-8_FE+#,#/145		;SAVE ADDR TO BR, GET EPT LOC
U 3640, 3641,3401,2400,0302,1000,0010,0011	; 10425	GTAR08:	ARX_AR,AR_0S,SC_#,#/9.
U 3641, 0004,0001,4000,0000,0000,0003,0000	; 10426		AR_SHIFT,RETURN4
						; 10427	
						; 10428	=0*
U 2014, 2065,4001,0000,0000,0000,0050,0000	; 10429	DEXCHK:	CALL,J/PILD			;PROTECTION WORD FROM EPT
U 2016, 1740,3102,0004,0000,0020,5410,0000	; 10430		SKP AR GT BR			;ALLOWED?
U 1740, 0012,3401,2000,0000,0000,0003,0000	; 10431	=00	AR_0S,RETURN12			;NO, SEND 0, STORE NOTHING
U 1741, 2065,4001,0000,0000,0000,3650,0000	; 10432		VMA_VMA+1,CALL,J/PILD		;YES, GET RELOCATION WORD
U 1743, 3642,0602,2004,0000,0020,0010,0000	; 10433	=11	AR_AR+BR			;RELOCATE TO PHYSICAL ADDR
U 3642, 0002,3600,0207,4000,0020,0003,0175	; 10434		ARX_AR AND ADMSK,RETURN2	;STRIP TO 23 BITS
						; 10435	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 18
; IO.MIC[10,5351]	19:56 24-Jul-85			PRIORITY INTERRUPT PROCESSING				

						; 10436	;FORCE AC'S FOR 0-17
						; 10437	
						; 10438	.IF/MODEL.B
						; 10439	=00
U 1770, 3643,4001,0000,0302,0000,0050,0040	; 10440	PHYS1:	SC_#,#/32.,CALL,J/CHKAC		;DATAO (EXAMINE)
U 1772, 2102,0001,0000,0000,0012,0010,0000	; 10441	=10	LOAD AR,J/PIOUT			;AC REF DONT USE PHYS REF
U 1773, 2102,4001,0000,0000,0012,0026,0103	; 10442		LOAD AR,PHYS REF,J/PIOUT	;NOT AC'S GET PHYSICAL MEMORY
						; 10443	
						; 10444	=00
U 2060, 3643,4001,0000,0302,0000,0050,0040	; 10445	PHYS2:	SC_#,#/32.,CALL,J/CHKAC		;DATAO (EXAMINE)
U 2062, 0770,4001,0000,0000,0012,0010,0000	; 10446	=10	LOAD AR,J/XFERW
U 2063, 0770,0001,0000,0000,0012,0026,0103	; 10447		LOAD AR,PHYS REF,J/XFERW	;NOT AC'S GET PHYSICAL MEMORY
						; 10448	
						; 10449	=00
U 2070, 3643,4001,0000,0302,0000,0050,0040	; 10450	PHYS3:	SC_#,#/32.,CALL,J/CHKAC
U 2072, 2103,0001,0000,0000,0016,0010,0000	; 10451	=10	STORE,J/PIDONE
U 2073, 2103,4001,0000,0000,0016,0026,0103	; 10452		STORE,PHYS REF,J/PIDONE
						; 10453	
U 3643, 3644,0001,0400,0000,0000,0010,0000	; 10454	CHKAC:	ARX_SHIFT			;GET ADDRESS WITHOUT 32-35
						; 10455		ARX_ARX AND ADMSK,		;FLUSH GARBAGE IN 0-3
U 3644, 0002,3610,0207,0000,0020,5603,0175	; 10456			SKP AD NE,RETURN2	;AND MAKE THE TEST
						; 10457	.ENDIF/MODEL.B
						; 10458	
						; 10459	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 19
; IO.MIC[10,5351]	19:56 24-Jul-85			PRIORITY INTERRUPT PROCESSING				

						; 10460	;HERE FOR BYTE TRANSFERS
						; 10461	
						; 10462	=000
U 2540, 3645,0001,0000,7311,0000,0050,0030	; 10463	PIBYTE:	FE_# AND S,#/30,CALL,J/PIBPA	;OUT... GET BP ADDR
U 2541, 3551,3441,2000,0000,0000,2250,0027	; 10464		SET DATAI,CALL,J/EBUSI		;IN ... FIRST READ THE DATA
U 2543, 2550,0321,5400,0000,1020,0010,0000	; 10465	=011	ARX_AR,AR_MQ*4,J/PIDPB		;GOT IT, GO DEPOSIT IT
						; 10466	
U 2544, 0730,3701,0000,0000,0300,0050,0000	; 10467	=100	VMA_AR,CALL,J/PIIBP		;GO INCREMENT OUTPUT BP
U 2545, 2656,4001,0000,2002,0000,0050,0000	; 10468		SC_FE+SC,CALL,J/LDB1		;GO LOAD BYTE FROM IT
U 2547, 2102,0001,0000,0000,0000,0010,0000	; 10469	=111	J/PIOUT				;THEN SEND BYTE
						; 10470	
						; 10471	=000
						; 10472	PIDPB:	BRX/ARX,FE_# AND S,#/30,	;HERE WITH INPUT DATA
U 2550, 3645,4001,0020,7311,0000,0050,0030	; 10473			CALL,J/PIBPA
U 2554, 0730,4003,0000,0000,0320,0050,0000	; 10474	=100	VMA_AR+1,CALL,J/PIIBP		;GO INCREMENT INPUT BYTE PTR
						; 10475		AR_BRX,SC_#-SC,#/36.,		;STORE BYTE WITH IT
U 2555, 2664,3202,6000,5302,0020,5150,0044	; 10476			SKP SCAD0,CALL,J/DPB1
U 2557, 2103,4001,0000,0000,0000,0010,0000	; 10477	=111	J/PIDONE
						; 10478	
U 3645, 3640,4001,0000,2030,2000,0110,0140	; 10479	PIBPA:	AR0-8_FE+#,#/140,J/GTAR08
						; 10480	
						; 10481	=00*
U 0730, 2065,4001,0000,0000,0000,0050,0000	; 10482	PIIBP:	CALL,J/PILD			;GET POINTER FROM EPT
U 0732, 1722,0001,0000,5110,3021,5150,0200	; 10483		P_P-S,SKP SCAD0,CALL.M,J/IBPS	;INCREMENT IT
U 0736, 1744,4001,0400,0102,1000,0010,0000	; 10484	=11*	ARX_AR,SC_P,J/BYTEA		;NOW EVALUATE ITS ADDR
						; 10485	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 20
; IO.MIC[10,5351]	19:56 24-Jul-85			KL-MODE PAGE REFILL LOGIC				

						; 10486	.TOC	"KL-MODE PAGE REFILL LOGIC"
						; 10487	
						; 10488	.IF/KLPAGE
						; 10489	;HERE ON ANY PAGE FAILURE
						; 10490	;THE POSSIBLE CAUSES ARE --
						; 10491	;  1:	A PARITY ERROR WAS DETECTED IN AR OR ARX FOLLOWING A READ
						; 10492	;	REFERENCE.  IN THIS CASE WE SAVE THE BAD WORD IN A RESERVED
						; 10493	;	LOCATION IN FAST MEMORY BLOCK 7, AND RETURN A PAGE FAIL CODE
						; 10494	;	INDICATING THE ERROR.
						; 10495	;  2:	THE MBOX DETECTED A PROPRIETARY VIOLATION OR PAGE TABLE PARITY
						; 10496	;	ERROR, OR THE EBOX FOUND THE SELECTED ADDRESS BREAK CONDITION.
						; 10497	;	IN THIS CASE, WE RETURN THE PAGE FAIL CODE GENERATED BY THE
						; 10498	;	MBOX (SEE PRINT PAG4).
						; 10499	;  3:	A REFERENCE OCCURRED FOR A VIRTUAL PAGE FOR WHICH THE HARDWARE
						; 10500	;	PAGE TABLE DIRECTORY HAD NO VALID MATCH.  IN THIS CASE, WE
						; 10501	;	WRITE THE PAGE TABLE DIRECTORY FROM THE VMA, AND CLEAR THE
						; 10502	;	ACCESS BITS FOR ALL PAGE ENTRIES CONTROLLED BY THE SELECTED
						; 10503	;	DIRECTORY ENTRY.  WE THEN JOIN THE REFILL CODE, BELOW.
						; 10504	;  4:	A REFERENCE OCCURRED FOR A VIRTUAL PAGE FOR WHICH THE ACCESS BIT
						; 10505	;	IN THE HARDWARE PAGE TABLE WAS OFF, OR A WRITE OCCURRED TO A
						; 10506	;	PAGE WHOSE WRITABLE BIT WAS OFF.  IN THIS CASE, WE EVALUATE THE
						; 10507	;	PAGING POINTERS IN CORE TO DETERMINE WHETHER THE ACCESS SHOULD
						; 10508	;	BE ALLOWED, AND IF SO, THE PHYSICAL PAGE TO WHICH IT SHOULD BE
						; 10509	;	TRANSLATED.  WE THEN EITHER PAGE FAIL, OR WRITE A PAGE ENTRY
						; 10510	;	INTO THE HARDWARE PAGE TABLE AND RESTART THE REFERENCE.
						; 10511	;
						; 10512	;	[322] Note that in the latter case, if a page should be accessible
						; 10513	;	but not writable, it is the microcode's responsibility to turn on
						; 10514	;	bit 2 of the page fail word (the Accessible bit) if a write
						; 10515	;	reference is attempted to such a page.  Currently, this is done only
						; 10516	;	if no CST is present (TOPS-10 operating mode), since TOPS-20
						; 10517	;	retraces the page map from scratch and thus generates the correct
						; 10518	;	information.  The bit can be made correct for the CST present case
						; 10519	;	(see code near NOTWR), but since we are now quite tight on control
						; 10520	;	store, we have chosen not to implement this.
						; 10521	;
						; 10522	;	If you are looking at this code for the first time, be aware that
						; 10523	;	only AR, ARX, SC, and FE are saved and restored here; thus BRX and
						; 10524	;	MQ are strictly off limits for this code.
						; 10525	;
						;;10526	.IFNOT/MODEL.B
						;;10527	2377:	CLR ACCOUNT EN,FORCE AR-ARX,J/PF1
						; 10528	.IF/MODEL.B
U 3777, 3646,3203,7700,0000,0000,2110,0145	; 10529	3777:	CLR ACCOUNT EN,FORCE AR-ARX,J/PF1
						; 10530	.ENDIF/MODEL.B
U 1777, 3646,3203,7700,0000,0000,2110,0145	; 10531	1777:	CLR ACCOUNT EN,FORCE AR-ARX
U 3646, 3647,3701,4207,0000,2000,1010,0156	; 10532	PF1:	SV.AR_AR,AR_ARX,ARX_AR (AD)	;SAVE CURRENT AR
U 3647, 3650,3703,4207,0000,2000,1010,0157	; 10533		SV.ARX_AR,AR_ARX,ARX_AR (AD)	; AND ARX
						;;10534	.IF/PAGCNT				;[327] Page fault counting
						;;10535		AR_TRX2+1			;[327] Count this page fault
						;;10536		TRX2_AR
						;;10537		AR_SV.AR			;[346] Don't lose initial AR
						; 10538	.ENDIF/PAGCNT				;[327]
U 3650, 2174,0001,0000,0000,0000,2204,0400	; 10539		GET ECL EBUS,PF DISP,J/PF2	;PARITY ERROR?
						; 10540	=1100
						; 10541	PF2:
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 20-1
; IO.MIC[10,5351]	19:56 24-Jul-85			KL-MODE PAGE REFILL LOGIC				

						; 10542	.IFNOT/PAGCNT				;[327]
U 2175, 3070,0001,0000,0301,0000,6410,0036	; 10543	=1101	FE_#,#/36,SKP RPW,J/PFPAR	;YES.  AR PARITY ERROR, CODE 36
						; 10544						;CHECK FOR MIDDLE OF RPW CYCLE
						;;10545	.IF/PAGCNT
						;;10546	=1101	AR_SV.AR,J/ARPAR		;[327] AR parity error. Get back
						; 10547	.ENDIF/PAGCNT				;[327] saved AR
U 2176, 3070,4001,4000,0301,2000,6410,0037	; 10548		AR_ARX,FE_#,#/37,SKP RPW,J/PFPAR;[307] YES, ARX PARITY. COULD BE RPW
U 2177, 3651,4001,3000,0000,0062,2010,0567	; 10549		AR_EBUS REG,MB WAIT		;NO. GET PAGE FAIL WORD
U 3651, 2207,0001,0000,0000,0000,2204,0000	; 10550		REL ECL EBUS,PF DISP,J/PF4	;EBOX HANDLING REQUIRED?
						; 10551	;
						;;10552	.IF/PAGCNT				;[327]
						;;10553	ARPAR:	FE_#,#/36,SKP RPW,J/PFPAR	;Set code 36 and check for RPW
						; 10554	.ENDIF/PAGCNT
						; 10555	
						; 10556	;HERE ON ANY PARITY ERROR
						; 10557	;SKIP IF MIDDLE OF READ-PAUSE-WRITE CYCLE, IN WHICH CASE WE
						; 10558	; MUST WRITEBACK THE DATA TO PREVENT INCOMPLETE CYCLE
						; 10559	=0
U 3070, 3652,3733,0000,0000,0303,1710,0000	; 10560	PFPAR:	VMA_VMA HELD,J/PFPAR1		;MAY HAVE CHANGED AT MBWAIT
U 3071, 3652,4001,0000,0000,0016,0010,0000	; 10561		STORE				;WRITEBACK WITH GOOD PARITY
U 3652, 3653,4001,0000,0302,0007,0010,0140	; 10562	PFPAR1:	MAP,SC_#,#/140			;GET MAP INFO ON REF
U 3653, 3654,0001,0007,0000,0002,1010,0160	; 10563	PFPAR2:	SV.PAR_AR,MB WAIT		;[234]SAVE WORD WITH BAD PARITY
U 3654, 3655,4001,3000,0000,0060,2010,0567	; 10564		AR_EBUS REG			;READ MAP INFO
U 3655, 3656,0001,0000,7102,0000,2210,0000	; 10565		REL ECL EBUS,SC_P AND SC	;GET USER BIT FROM MAP WORD
U 3656, 2207,0001,0000,6000,3001,0010,0200	; 10566		P_FE OR SC,J/PF4		;STUFF IN PARITY ERROR CODE
						; 10567	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 21
; IO.MIC[10,5351]	19:56 24-Jul-85			KL-MODE PAGE REFILL LOGIC				

						; 10568	;HERE WITH PAGE FAIL WORD IN AR
						; 10569	; TESTING FOR EBOX HANDLING REQUIRED.
						; 10570	
						; 10571	=0111
U 2207, 0040,4001,0007,0000,0000,1005,0152	; 10572	PF4:	SV.PFW_AR,SR DISP,J/CLEAN	;NO, GO CLEAN UP
U 2217, 3657,3242,2047,0000,0000,1010,0152	; 10573		SV.PFW_AR,AR_BR,BR/AR		;YES, GET BR TOO
U 3657, 3660,3401,2007,0000,0000,1010,0150	; 10574		SV.BR_AR,AR_0S			;SAVE BR
U 3660, 3661,4001,0000,0000,2000,0022,0200	; 10575		AR0-8_FE			;NOW SAVE 10-BIT REGS
U 3661, 3662,3703,0200,2400,2000,0022,0200	; 10576		ARX_AR (AD),AR0-8_SC		;FE TO ARX, SC TO AR
						; 10577		ARR_ARL,ARL_ARX (ADX),		;FE IN ARL, SC IN ARR
U 3662, 3663,3733,4200,0000,3001,1710,0006	; 10578			ARX_VMA HELD		;GET VMA WHICH FAILED
						; 10579		SV.SC_AR,AR_ARX,		;HOLD SC & FE
U 3663, 2236,3241,4007,0000,2020,1032,0151	; 10580			GEN BR*2,SIGNS DISP	;TEST FOR PT DIR MATCH
						; 10581	=1110
						; 10582	PGRF1:	SV.VMA_AR,ARX_AR SWAP,ARR_ARL,	;GET SEC # TO AR32-35
U 2236, 2255,0001,4407,0000,3000,1036,0145	; 10583			DISP/EA MOD,J/PGRF2	; SEC < 20?
						; 10584	
						; 10585	;	HERE TO WRITE PT DIR, & CLR 4 PAGE ENTRIES.  If the expanded
						; 10586	;	page table ECO has been installed, this will only clear two entries
						; 10587	;	(since they go in pairs for that case), but in either case the
						; 10588	;	right thing will happen. [333]
						; 10589	;
						; 10590		AR_0S,COND/MBOX CTL,MBOX CTL/2,	;READY TO CLEAR EVEN PAIR
U 2237, 3664,3401,2000,7133,0000,2310,0002	; 10591			FE_P AND #,#/2,SC/SCAD	;GET WRITE REF BIT TO FE & SC
						; 10592		COND/MBOX CTL,MBOX CTL/33,	;CLR EVEN, WR DIR, SEL ODD
U 3664, 3665,0001,0000,2003,0020,2310,0033	; 10593			TIME/3T,FE_FE+SC,SC/SCAD; WR REF = 4 NOW
						; 10594		COND/MBOX CTL,MBOX CTL/10,	;CLR ODD, RESET NORMAL SELECT
U 3665, 3666,3202,2000,2001,0020,2310,0010	; 10595			TIME/3T,FE_FE+SC,AR_BR	;GET PFW BACK, WR REF = 10
U 3666, 3667,4001,0000,7322,0000,0010,0401	; 10596		SC_# AND AR0-8,#/401		;GET USER & PAGED REF BITS
U 3667, 3670,4001,0000,6000,2001,0010,0200	; 10597		AR0-8_FE OR SC			;COMBINE WITH WR REF BIT
U 3670, 2236,0001,4047,0000,2000,1010,0152	; 10598		SV.PFW_AR,BR/AR,AR_ARX,J/PGRF1	;REJOIN MAIN PATH
						; 10599	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 22
; IO.MIC[10,5351]	19:56 24-Jul-85			KL-MODE PAGE REFILL LOGIC				

						; 10600	;	HERE TO TRACE PAGE POINTERS FOR THIS ADDRESS
						; 10601	;	VMA WHICH FAILED IS IN ARX AND AR WITH THE HALVES SWAPPED
						; 10602	;	PAGE FAIL WORD IS IN BR
						; 10603	;	[333] Bit 5 of all access pointers is implemented as "Keep" for
						; 10604	;	pages which should not be swept from the page map on DATAO PAG
						; 10605	;	UBR reload unless bit 3 is also set.
						; 10606	;
						; 10607	
						;;10608	.IFNOT/EPT540
						;;10609	=1101
						;;10610	PGRF2:	VMA_#+AR32-35,#/440,		;YES.
						;;10611			SIGNS DISP,J/PGRF3	; USER REF?
						;;10612		VMA_#+AR32-35,#/460,		;NO
						;;10613			SIGNS DISP,J/PGRF3
						; 10614	.IF/EPT540
						; 10615	=1101
						; 10616	PGRF2:	VMA_#+AR32-35,#/540,		;YES.
U 2255, 2275,4001,0000,0000,0120,3332,0540	; 10617			SIGNS DISP,J/PGRF3	; USER REF?
						; 10618		VMA_#+AR32-35,#/560,		;NO
U 2257, 2275,0001,0000,0000,0120,3332,0560	; 10619			SIGNS DISP,J/PGRF3
						; 10620	.ENDIF/EPT540
						; 10621	=1101
U 2275, 3671,4001,0000,3401,0012,0026,0113	; 10622	PGRF3:	LOAD AR,EPT REF,FE_-1,J/SECPTR	;Initialize APWKC bits, get section
U 2277, 3671,4001,0000,3401,0012,0026,0223	; 10623		LOAD AR,UPT REF,FE_-1		; pointer from EPT or UPT
						; 10624	
						; 10625	;HERE TO FIND PAGE MAP WITH SECTION POINTER
						; 10626	
U 3671, 2310,3240,0003,0302,0022,7010,0011	; 10627	SECPTR:	AR_MEM,SC_#,#/9,SKP INTRPT	;GET SECTION POINTER
						; 10628	=1000	FE_FE AND AR0-8,BR/AR,		;COMBINE ACCESS BITS
U 2310, 2311,0001,0040,7021,1020,0007,0000	; 10629			AR0-3 DISP		;SPT INDEX IN ARR, DISP ON TYPE
U 2311, 3726,3240,2007,0000,0020,0010,0150	; 10630	=1001	AR_SV.BR,J/PFT			;NO ACCESS TO SECTION (OR INTRPT)
						; 10631	=1011
U 2313, 3701,0001,0400,0000,0001,0010,0020	; 10632	SECIMM:	ARX_SHIFT,ARL_0.M,J/PGRF5	;IMMEDIATE
U 2315, 3074,4001,0000,0000,0001,0010,0020	; 10633	=1101	ARL_0.M,J/LDIND			;SHARED
U 2317, 3672,4001,0000,0000,0001,0010,0020	; 10634	=1111	ARL_0.M				;INDIRECT SECTION POINTER
						; 10635	;
						; 10636	;	WARNING:  do not use the technique at LDIND to allow
						; 10637	;	interrupts out of section pointer loops, as that will have
						; 10638	;	adverse effects on byte transfers and console executes.
						; 10639	;
U 3672, 3673,0600,4007,4000,2320,0010,0143	; 10640		VMA_AR+SBR,AR_ARX		;LOOK IN SPT
U 3673, 3674,3242,2040,0000,0012,0026,0103	; 10641		BR/AR,AR_BR,LOAD AR,PHYS REF	;CALL FOR SPT ENTRY
U 3674, 3675,3240,0403,0000,0022,0010,0000	; 10642		ARX_SHIFT,AR_MEM		;SEC PTR INDEX TO ARX0-8
U 3675, 3676,3242,4200,0000,0000,0010,0000	; 10643		AR_SHIFT,ARX_BR			;NEW SEC PTR ADDR TO AR
						; 10644		GEN # AND AR0-8,#/77,SKP SCAD NE,
U 3676, 3072,3701,0000,7320,0320,5210,0077	; 10645			VMA_AR
U 3072, 3671,0001,0000,0000,0012,0026,0103	; 10646	=0	LOAD AR,PHYS REF,J/SECPTR
U 3073, 3726,3240,2007,0000,0020,0010,0150	; 10647		AR_SV.BR,J/PFT			;TRAP, SEC MAP NOT IN CORE
						; 10648	;
						; 10649	;	We must turn off special cycle for indirect pointers so that
						; 10650	;	we can take an interrupt.  However, we can't do it if PXCT or
						; 10651	;	SXCT might be active.  Thus, a kernel mode program can get into
						; 10652	;	a page fail loop that the microcode cannot exit.
						; 10653	;
						; 10654	=0
U 3074, 3677,0600,0007,0000,0320,0010,0143	; 10655	LDIND:	VMA_AR+SBR,J/LDIND1		;FOR INDIRECT PAGE POINTERS
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 22-1
; IO.MIC[10,5351]	19:56 24-Jul-85			KL-MODE PAGE REFILL LOGIC				

U 3075, 3074,0001,0000,0000,0000,1510,0000	; 10656		CLR SPECIAL CYCLE,J/LDIND
						; 10657	;
						; 10658	;	This fixes the glitch that INSTR FETCH (NICOND) doesn't
						; 10659	;	clear 'CON4 INT DISABLE L' before fetching user's instruction.
						; 10660	;					;SHARED SEC = INDRCT PAG
U 3677, 3700,4001,0000,0000,0012,0026,0103	; 10661	LDIND1:	LOAD AR,PHYS REF		;GET PAGE MAP ADDR
U 3700, 2313,3240,0003,0000,0022,0010,0000	; 10662		AR_MEM,J/SECIMM
						; 10663	
						; 10664	
						; 10665	;HERE WITH PAGE NO OF PAGE MAP IN AR,
						; 10666	; VIRTUAL PAGE NO WITHIN SECTION IN ARX0-8
						; 10667	
						; 10668	.IF/NOCST
U 3701, 3100,3240,0007,0000,0020,5610,0142	; 10669	PGRF5:	TEST CBR			;[247] CBR = 0 MEANS NO CST UPDATE
						; 10670	.IF/BIG.PT				;[346]
						; 10671	=0	AR_ARX,FE_FE AND #,#/174,	;[247][333] NO CST UPDATE
U 3100, 3706,4001,4000,7031,2000,0010,0174	; 10672			J/NO.CST		;[247]
						;;10673	.IFNOT/BIG.PT				;[346]
						;;10674	=0	AR_ARX,FE_FE AND #,#/164,	;[247] NO CST UPDATE. Eat bit 5
						;;10675			J/NO.CST		;[247] if no big page table
						; 10676	.ENDIF/BIG.PT				;[346]
						;;10677	.IFNOT/NOCST				;[247]
						;;10678	PGRF5:
						; 10679	.ENDIF/NOCST				;[247]
U 3101, 3702,0600,4007,4000,2320,0010,0142	; 10680		VMA_AR+CBR,AR_ARX		;GENERATE CST ADDRESS
						; 10681		GEN # AND AR0-8,#/77,		;IS PAGE MAP IN CORE?
U 3702, 3102,4001,0000,7320,0020,5210,0077	; 10682			SKP SCAD NE
						; 10683	=0	LOAD AR,PHYS REF,		;GET CST ENTRY FOR PAGE MAP
U 3102, 3703,0001,0040,0000,0012,0026,0103	; 10684			BR/AR,J/PGRF6		;SAVE PAGE PTR ADDR IN BR
U 3103, 3726,3240,2007,0000,0020,0010,0150	; 10685		AR_SV.BR,J/PFT			;NOT IN CORE, PAGE FAIL TRAP
						; 10686	;
						; 10687	.IF/BIG.PT				;[346]
U 3703, 3704,3200,0003,7031,0022,0010,0174	; 10688	PGRF6:	AR_MEM,FE_FE AND #,#/174	;[333]HERE IF CST FOR PAGE MAP
						;;10689	.IFNOT/BIG.PT				;[346]
						;;10690	PGRF6:	AR_MEM,FE_FE AND #,#/164	;HERE IF CST FOR PAGE MAP. No K bit
						; 10691	.ENDIF/BIG.PT				;[346] if no big page table
U 3704, 3114,3600,2007,0100,0040,5210,0140	; 10692		AR_AR AND CSMSK,SKP P NE	;BEGIN CST UPDATE
U 3114, 3726,3240,2007,0000,0020,0010,0150	; 10693	=0	AR_SV.BR,J/PFT			;AGE TRAP, MAP BEING SWAPPED
U 3115, 3705,3300,2007,0000,0036,0010,0141	; 10694		AR_AR OR PUR,STORE		;PUT CST WORD BACK
						;;10695	.IFNOT/NOCST				;[247]
						;;10696		MEM_AR,VMA_BR,PHYS REF		;PHYS REF MAKES MODEL.A LOAD
						;;10697						;LONG VMA
						;;10698		LOAD AR,PHYS REF		;GET PAGE MAP ENTRY
						;;10699		AR_MEM,FE_FE OR #,#/100,	;PAGE POINTER
						;;10700			SKP INTRPT		;CHECK FOR LONG INDIRECT
						;;10701						;POINTER
						; 10702	.IF/NOCST				;[247]
U 3705, 3116,3202,0003,0000,0302,0026,0103	; 10703		MEM_AR,VMA_BR,PHYS REF,J/NOCST0	;PHYS REF MAKES MODEL.A LOAD
						; 10704						;LONG VMA
						; 10705	NO.CST:	GEN # AND AR0-8, #/77,		;[247] page map in core ?
U 3706, 3116,3701,0000,7320,0320,5210,0077	; 10706			VMA_AR,SKP SCAD NE	;[247]
						; 10707	=0
U 3116, 3707,0001,0000,0000,0012,0026,0103	; 10708	NOCST0:	LOAD AR,PHYS REF, J/NOCST1	;[247] GET PAGE MAP ENTRY
U 3117, 3726,3240,2007,0000,0020,0010,0150	; 10709		AR_SV.BR, J/PFT			;[247] not in core, pf trap
						; 10710	NOCST1:	AR_MEM,FE_FE OR #,#/100,	;[247] PAGE POINTER
U 3707, 2330,3240,0003,6031,0022,7010,0100	; 10711			SKP INTRPT		;[247] CHECK FOR LONG INDIRECT
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 22-2
; IO.MIC[10,5351]	19:56 24-Jul-85			KL-MODE PAGE REFILL LOGIC				

						; 10712	.ENDIF/NOCST				;[247] POINTER
						; 10713	;
						; 10714	;	HERE WITH PAGE MAP ENTRY IN AR
						; 10715	;	FE HAS ACCUMULATED ACCESS BITS -- APWKC*4
						; 10716	;	SC CONTAINS 9.
						; 10717	;
						; 10718	=1000	FE_FE AND AR0-8,AR0-3 DISP,	;COMBINE PWKC, DISP ON TYPE
U 2330, 2331,3200,0207,7021,1020,0007,0145	; 10719			ARX_SV.VMA,TIME/3T	;[346] GET BACK SAVED VMA
U 2331, 3726,3240,2007,0000,0020,0010,0150	; 10720	=1001	AR_SV.BR,J/PFT			;0=NO ACCESS (OR HERE ON INTRPT)
						; 10721	=1011
						; 10722	LDIMM:	ARL_SHIFT,FE_FE SHRT,		;1=IMMEDIATE, LOAD PT
						; 10723			ARX_ARX*2 COMP,		; GET -WR REF TO ARX03
U 2333, 3713,2021,0500,0302,0001,1210,0004	; 10724			SC_#,#/4,J/LDPT		;[333] Set to move K bit
U 2335, 3710,4001,0000,0000,0001,0010,0020	; 10725	=1101	ARL_0.M,J/LDSHR			;2=SHARED, GET SPT ENTRY
						; 10726	=1111	ARL_0.M,ARX_SHIFT,SKP USER,	;3=INDIRECT, LOOP
U 2337, 3074,4001,0400,0000,0001,6210,0020	; 10727			J/LDIND
						; 10728	;
						; 10729	;	HERE TO GET SHARED PAGE POINTER OUT OF SPT
						; 10730	;
U 3710, 3711,0600,0007,4000,0320,0010,0143	; 10731	LDSHR:	VMA_AR+SBR			;ADDRESS OF SPT ENTRY
U 3711, 3712,4001,0000,0000,0012,0026,0103	; 10732		LOAD AR,PHYS REF
U 3712, 2333,3200,0003,6031,0022,0010,0100	; 10733		AR_MEM,FE_FE OR #,#/100,J/LDIMM	;TREAT SPT ENTRY AS IMMED
						; 10734	
						; 10735	;
						; 10736	;	HERE WITH IMMEDIATE PAGE NO IN AR TO LOAD INTO PT
						; 10737	;
						; 10738	
U 3713, 3120,4001,0000,7320,0020,5210,0077	; 10739	LDPT:	GEN # AND AR0-8,#/77,SKP SCAD NE;Test storage medium
						; 10740	.IF/BIG.PT				;[333]
						; 10741	=0	ARL_0.M,GEN FE AND SC,		;[333]In core. Is Keep bit set?
U 3120, 3122,4001,0000,7000,0021,5210,0020	; 10742			SKP SCAD NE,J/LDPT1
						;;10743	.IFNOT/BIG.PT
						;;10744	=0	ARL_0S,J/LDPT1
						; 10745	.ENDIF/BIG.PT				;[333]
U 3121, 3726,3240,2007,0000,0020,0010,0150	; 10746		AR_SV.BR,J/PFT			;PAGE NOT IN CORE
						; 10747	;
						; 10748	.IF/BIG.PT				;[333]
						; 10749	=0
						; 10750	.ENDIF/BIG.PT
U 3122, 3714,3711,7400,4402,1000,0010,0000	; 10751	LDPT1:	ARX_AR,AR_ARX*.25,SC_1,J/KMOVED	;[333]No K. GET -WR REF TO AR05
						; 10752	.IF/BIG.PT
U 3123, 3122,4001,0000,5001,0000,0110,0010	; 10753		AR0-8_#,#/10,FE_FE-SC,J/LDPT1	;[333]K set. Move to bit 5 for now
						; 10754	.ENDIF/BIG.PT
						; 10755	;
						; 10756	.IF/NOCST				;[247]
U 3714, 3124,3200,0007,7102,0020,5610,0142	; 10757	KMOVED:	TEST CBR, SC_P AND SC		;[247][333]CBR = 0? (-WR REF TO SC)
						; 10758	=0	SC_-SC,AR_ARX,ARX_AR (AD),
U 3124, 3717,3701,4200,5402,2000,0010,0000	; 10759			J/NOUPDT		;[247] YES, SKIP SOME
						;;10760	.IFNOT/NOCST				;[333]
						;;10761	KMOVED:					;[333]
						; 10762	.ENDIF/NOCST				;[247]
U 3125, 3715,0610,4007,7102,2320,0010,0542	; 10763		VMA_ARX+CBR,AR_ARX,SC_P AND SC	;PAGE IN CORE. SC_-WR REF
						; 10764	;
						; 10765	;	NOW GET CST ENTRY FOR THIS PAGE.
						; 10766	;
						; 10767	GTCST:	LOAD AR,PHYS REF,ARX_AR SWAP,	;Shuffle K over to bit 23
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 22-3
; IO.MIC[10,5351]	19:56 24-Jul-85			KL-MODE PAGE REFILL LOGIC				

U 3715, 3716,4061,2400,5402,3032,0026,0103	; 10768			SC_-SC,AR_1		;SC=0 IF WR REF, ELSE -1
						; 10769		GEN FE AND #,#/10,SKP SCAD NE,	;SKIP IF WRITABLE
U 3716, 3126,4001,0040,7030,0022,5210,0010	; 10770			BR/AR,MB WAIT		;GET CST ENTRY & BIT FOR TESTING
						; 10771	=0	GEN P AND SC,SKP SCAD NE,	;FAIL IF WRITING OR AGE=0
U 3126, 3132,3600,2007,7100,0040,5210,0140	; 10772			AR_AR AND CSMSK,J/NOTWR	;STRIP OLD AGE FROM CST
						; 10773	;
						; 10774	;	[303] Looks like it's writable.  Make one final check by looking
						; 10775	;	at bit 18 of the CST entry, and abort if it's not set.
						; 10776	;
						; 10777		TEST AR.BR,SKP CRY0,		;POSSIBLY WRITABLE--SKIP IF CST
U 3127, 2536,3602,0004,5300,0040,5434,0777	; 10778			GEN #-SC,#/-1,BYTE DISP	; WRITTEN OR THIS IS WRITE REF
U 2536, 3131,4001,0000,5031,0000,0010,0004	; 10779	=110	FE_FE-#,#/4,J/STCST		;[305] TEMPORARILY UNWRITABLE, SET S
						; 10780	.IF/CST.WRITE				;[314]
						; 10781		AR_AR*BR,AD/OR,FE_FE OR #,#/4,	;SET CST WRITTEN AND SOFT BITS
U 2537, 3130,3302,2004,6031,0000,4410,0004	; 10782			SKP AR18		;IS IT REALLY WRITABLE? [303]
U 3130, 3726,3240,2007,0000,0020,0010,0150	; 10783	=0	AR_SV.BR,J/PFT			;NOT REALLY. BAIL OUT
						;;10784	.IFNOT/CST.WRITE			;[314]
						;;10785		AR_AR*BR,AD/OR,FE_FE OR #,#/4	;[314] Set CST written and soft bits
						; 10786	.ENDIF/CST.WRITE			;[314]
U 3131, 3132,3600,2007,0120,0040,5210,0140	; 10787	STCST:	AR_AR AND CSMSK,SKP P NE	;[305] WRITABLE. CLEAR, TEST OLD AGE
						; 10788	;
						; 10789	;	[322] At this point we should check whether we got here as a result
						; 10790	;	of an age trap (in which case we just take the page failure) or not,
						; 10791	;	in which case the failure was due to a write reference and we should
						; 10792	;	set bit 2 (the A bit) in the PFW.  This is not currently done
						; 10793	;	because (1) nobody needs it now, and (2) we are very short on CRAM
						; 10794	;	space.
						; 10795	;
						; 10796	=0
U 3132, 3726,3240,2007,0000,0020,0010,0150	; 10797	NOTWR:	AR_SV.BR,J/PFT			;WRITE OR AGE TRAP
						;;10798	.IFNOT/NOCST				;[247]
						;;10799		AR_AR OR PUR,STORE		;SET USE BITS, STORE BACK CST
						;;10800		MB WAIT,VMA_SV.VMA,		;RELOAD VMA FOR ORIGINAL REF
						;;10801			AR_SV.VMA,SC_1		;READY TO TEST VMA USER
						;;10802		GEN P AND SC,SKP SCAD NE,	;TEST VMA USER, copy page # to ARL,
						;;10803			AR_ARX,			;[333] K to AR bit 23, APMWC0 TO SC
						;;10804			SC_FE,ARX_AR (AD)	; MAP BIT TO ARX
						;;10805	=0	P_P OR SC#,EXEC REF,J/WRHPT	;BUILD PT ENTRY, CLEAR VMA USER
						;;10806		P_P OR SC#,USER REF		; OR SET USER, AS NECESSARY
						;;10807	WRHPT:	WR PT ENTRY,FE_#,#/10,AR_ARX*4	;UPDATE HARDWARE TABLE
						; 10808	.IF/NOCST
U 3133, 3137,3300,2007,4000,0036,0010,0141	; 10809		AR_AR OR PUR,STORE,J/WRHPT	;[247]SET USE BITS,
						; 10810						; STORE BACK CST
						; 10811	;
						; 10812	NOUPDT:	GEN FE AND #, #/10, ARX_AR SWAP,
U 3717, 3134,3713,2400,7030,3020,5210,0010	; 10813			AR_ARX (AD),SKP SCAD NE	;[247] SKIP IF WRITABLE
						; 10814	=0	AR_SV.PFW,GEN P AND SC,		;[322] Get saved PFW and
U 3134, 3136,3200,2007,7100,0040,5210,0152	; 10815			SKP SCAD NE,J/NOT.WR	;[247]FAIL IF WRITING
U 3135, 3137,4001,0000,6031,0000,0010,0004	; 10816		FE_FE OR #, #/4, J/WRHPT	;[247]SET WRITABLE BIT
						; 10817	;
U 3720, 3132,4001,0007,0000,0000,1010,0152	; 10818	WRFAIL:	SV.PFW_AR,J/NOTWR		;[322]Restore PFW and page fail
						; 10819	;
						; 10820	=0					;[323]
U 3136, 3720,4001,0000,6320,2000,0110,0100	; 10821	NOT.WR:	AR0-8_# OR AR0-8,#/100,J/WRFAIL	;[322]Write failure. Set A in PFW
U 3137, 3721,3240,4007,0000,2123,0013,0145	; 10822	WRHPT:	RSTR VMA_SV.VMA,AR_ARX,SC_FE	;RELOAD ORIGINAL VMA
U 3721, 3722,4001,0000,6100,3001,0010,0200	; 10823		P_P OR SC			;[333]COMBINE APMWC WITH PAGE #, K
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 22-4
; IO.MIC[10,5351]	19:56 24-Jul-85			KL-MODE PAGE REFILL LOGIC				

U 3722, 3723,0001,0000,0000,0020,2310,0010	; 10824		WR PT ENTRY			;UPDATE HARDWARE PAGE TABLE
						; 10825	.ENDIF/NOCST
						; 10826	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 23
; IO.MIC[10,5351]	19:56 24-Jul-85			KL-MODE PAGE REFILL LOGIC				

						; 10827	;HERE WHEN MAP INFO WRITTEN INTO HARDWARE PAGE TABLE
						; 10828	; WE NOW NEED ONLY RESTORE THE REGISTERS WE HAVE USED, AND RESTART THE
						; 10829	; MEMORY REFERENCE WHICH FAILED, RETURNING TO THE MICROINSTRUCTION
						; 10830	; WHICH WAITS FOR ITS COMPLETION.  (EXCEPT FOR MAP)
						; 10831	
						;;10832	.IFNOT/MODEL.B
						;;10833		GEN FE AND S,SKP SCAD NE,	;TEST FOR MAP INSTR
						;;10834			AR_SV.SC
						; 10835	.IF/MODEL.B
U 3723, 3140,3200,2007,0000,0020,0010,0151	; 10836		AR_SV.SC
						; 10837	.ENDIF/MODEL.B
						; 10838	
						; 10839	;HERE TO RESTORE REGISTERS AND RESTART REFERENCE WHICH FAILED
						; 10840	
						; 10841	=0	SC_EXP,FE_EXP,SKP AR0,		;RESTORE FE
U 3140, 3142,3240,4207,0203,3020,4510,0150	; 10842			AR_AR SWAP,ARX_SV.BR,J/PGRST1
						;;10843	.IFNOT/MODEL.B
						;;10844		AR_SV.VMA,ARX_SV.VMA,J/COMPEA	;*MAP* RESTART FROM AREAD
						; 10845	.IF/MODEL.B
						; 10846	=
						; 10847	.ENDIF/MODEL.B
						; 10848	=0
						; 10849	PGRST1:	SC_EXP,SKP AR0,			;RESTORE SC
U 3142, 3144,3240,4207,0202,2020,4510,0156	; 10850			AR_ARX,ARX_SV.AR,J/PGRST2
U 3143, 3142,4001,0000,1401,0000,0010,0000	; 10851		FE_-SC-1,J/PGRST1		;MAKE FE NEG
						; 10852	=0
						; 10853	PGRST2:	BR/AR,AR_ARX,			;RESTORE BR AND AR
U 3144, 3724,3200,4247,0000,2020,0010,0157	; 10854			ARX_SV.ARX,J/PGRST3	; AND ARX
						; 10855		SC_-SC-1,BR/AR,AR_ARX,		;NEGATE SC
U 3145, 3724,3240,4247,1402,2020,0010,0157	; 10856			ARX_SV.ARX
						; 10857	
						; 10858	;HERE RETURN TO POINT OF FAULT.  THERE MUST BE EXACTLY ONE MICRO-
						; 10859	; INSTRUCTION, OF 2 OR 3 TICKS, BETWEEN THE REQUEST AND THE RETURN.
						; 10860	; AT LEAST ONE IS REQUIRED TO GET NICOND LOGIC SET UP CORRECTLY IN
						; 10861	; CASE THIS IS A FETCH, BUT THERE MUST NOT BE TIME FOR A READ TO
						; 10862	; READ REFERENCE TO COMPLETE, BECAUSE THE MB WAIT INSTRUCTION TO WHICH
						; 10863	; WE RETURN MAY EXPECT TO GET SOMETHING OUT OF AR OR ARX BEFORE THE
						; 10864	; MBOX RESPONSE.  SEE DPB1.
						; 10865	
U 3724, 3725,3240,0007,0000,0130,0010,0145	; 10866	PGRST3:	REQ SV.VMA			;RESTART FAULTED REQUEST
U 3725, 0000,4001,0000,0000,0000,2103,0105	; 10867		SET ACCOUNT EN,RETURN0		;RETURN TO POINT OF FAILURE
						; 10868	
						; 10869	
						; 10870	;HERE ON A TRAP CONDITION DETECTED BY REFILL LOGIC
						; 10871	;AR CONTAINS SAVED BR
						; 10872	
						; 10873	PFT:	BR/AR,VMA_SV.VMA,		;RESTORE BR & VMA
U 3726, 0040,3200,0047,0000,0320,0005,0145	; 10874			SR DISP,J/CLEAN		;TAKE TRAP
						; 10875	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 24
; IO.MIC[10,5351]	19:56 24-Jul-85			KI-MODE PAGE FAIL HANDLING				

						; 10876	.TOC	"KI-MODE PAGE FAIL HANDLING"
						; 10877	
						;;10878	.IFNOT/KLPAGE
						;;10879	.IFNOT/MODEL.B
						;;10880	2377:	CLR ACCOUNT EN,FORCE AR-ARX,J/PFSAVE
						;;10881	.IF/MODEL.B
						;;10882	3777:	CLR ACCOUNT EN,FORCE AR-ARX,J/PFSAVE
						;;10883	.ENDIF/MODEL.B
						;;10884	1777:	CLR ACCOUNT EN,FORCE AR-ARX	;DON'T CHARGE PAGE FAIL TO USER
						;;10885	PFSAVE:	SV.AR_AR,AR_ARX			;PRESERVE AR, ARX
						;;10886		SV.ARX_AR,SR DISP,J/CLEAN	;NOW CHECK FOR CLEANUP REQUIRED
						;;10887	
						; 10888	.ENDIF/KLPAGE
						; 10889	;HERE ON PAGE FAIL OR INTERRUPT WHICH REQUIRES CLEANUP IN ORDER
						; 10890	; TO BE CORRECTLY RESTARTABLE AFTER SERVICE...
						; 10891	
						; 10892	=1*0000
U 0040, 3146,0001,0000,0301,0000,7010,0037	; 10893	CLEAN:	FE_#,#/37,SKP INTRPT,J/PGF1	;HERE FOR INTRPT OR PGF?
						; 10894	
						; 10895	;(1) HERE ON EDIT SOURCE FAIL
						; 10896	
U 0041, 3751,3240,2001,0000,0020,1610,0000	; 10897		AR_SRCP,SR_0,J/BACKS		;BACK UP SRC POINTER
						; 10898	
						; 10899	;(2) HERE ON ANY FAILURE IN DECIMAL TO BINARY
						; 10900	
U 0042, 3756,3202,2600,0000,0000,1610,0001	; 10901		AR_BR LONG,SR_1,J/D2BPF		;GET ACCUMULATED BINARY
						; 10902	
						; 10903	;(3) HERE ON DST FAIL IN BINARY TO DECIMAL FILL
						; 10904	
U 0043, 3762,2540,2005,0000,0020,1610,0004	; 10905		AR_DLEN COMP,SR_#,#/4,J/B2DFPF
						; 10906	
						; 10907	;(4) HERE ON EDIT DST FAIL WITH NO SRC POINTER UPDATE
						; 10908	
U 0044, 3753,4001,0000,0000,0000,1610,0000	; 10909		SR_0,J/BACKD			;BACK UP DST POINTER ONLY
						; 10910	
						; 10911	;(5) HERE ON EDIT DST FAIL AFTER UPDATING SRC POINTER
						; 10912	
U 0045, 3753,0001,0000,0000,0000,1610,0001	; 10913		SR_1,J/BACKD			;BACK UP DST, THEN SRC
						; 10914	
						; 10915	;(6) HERE ON DESTINATION FAILURE IN BINARY TO DECIMAL
						; 10916	
U 0046, 3753,0001,0000,0000,0000,1610,0010	; 10917		SR_BDT,J/BACKD			;BACK UP DST, THEN SAVE FRACTION
						; 10918	
						; 10919	;(7) HERE ON BLT FAILURE
						; 10920	.IF/KLPAGE
U 0047, 3744,3240,0207,0000,0020,0010,0157	; 10921		ARX_SV.ARX,J/BLTPF		;GET DEST ADDR AGAIN
						;;10922	.IFNOT/KLPAGE
						;;10923	BLTPF:	AR_ARX+BR,SR_0,J/BLTPF1		;CURRENT SRC ADDR
						; 10924	.ENDIF/KLPAGE
						; 10925	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 25
; IO.MIC[10,5351]	19:56 24-Jul-85			KI-MODE PAGE FAIL HANDLING				

						; 10926	;(10) HERE ON TRANSLATION FAILURE IN BINARY TO DECIMAL
						; 10927	
U 0050, 3763,3242,2600,0000,0000,1610,0000	; 10928		AR_BR LONG,SR_0,J/B2DPF		;GET BINARY FRACTION
						; 10929	
						; 10930	;(11) HERE ON SRC FAILURE IN COMPARE OR MOVE STRING
						; 10931	
U 0051, 3767,3240,2005,0000,0020,1610,0001	; 10932		AR_DLEN,SR_1,J/STRPF		;PUT LENGTHS BACK, THEN BACK SRC
						; 10933	
						; 10934	;(12) HERE ON DST FAILURE IN COMPARE OR MOVE STRING
						; 10935	
U 0052, 3767,3240,2005,0000,0020,1610,0004	; 10936		AR_DLEN,SR_#,#/4,J/STRPF
						; 10937	
						; 10938	;(13) HERE ON DST FAILURE AFTER UPDATING SRC IN COMPARE OR MOVE
						; 10939	
U 0053, 3753,0001,0000,0000,0000,1610,0111	; 10940		SR_SRC,J/BACKD			;BACK DST, THEN HANDLE AS SRC FAIL
						; 10941	
						; 10942	;(14) HERE ON DST FILL FAILURE IN MOVRJ
						; 10943	
U 0054, 3773,3240,2005,0000,0020,1610,0004	; 10944		AR_DLEN,SR_#,#/4,J/STRPF4
						; 10945	.IF/KLPAGE
						; 10946	;(15) HERE ON PAGE FAILURE IN MAP INSTRUCTION.  RETURN PAGE FAIL WORD
						; 10947	
U 0055, 1020,3240,2007,0000,0020,7310,0152	; 10948		AR_SV.PFW,SKP IO LEGAL,J/MAP2	;RETURN PFW IN AC
						; 10949	.ENDIF/KLPAGE
						; 10950	.IF/XADDR
						; 10951	;(16) HERE ON PAGE FAIL IN XBLT
						; 10952	
U 0056, 3747,3242,2600,0000,0000,1610,0000	; 10953		AR_BR LONG,SR_0,J/XBLTPF
						; 10954	.ENDIF/XADDR
						; 10955	.IF/MODEL.B
						; 10956	;(17)	HERE ON FAILURE IN WORD MOVE STRING
						; 10957	
U 0057, 3773,3200,2005,0000,0020,1610,0000	; 10958		AR_DLEN,SR_0,J/STRPF4
						; 10959	.ENDIF/MODEL.B
						; 10960	=
						; 10961	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 26
; IO.MIC[10,5351]	19:56 24-Jul-85			KI-MODE PAGE FAIL HANDLING				

						; 10962	;HERE ON ANY PAGE FAILURE OR PI REQUEST IN LONG INSTRUCTIONS
						; 10963	; SKIP IF PI REQUEST, WHICH TAKES PRIORITY
						; 10964	
						; 10965	.IF/KLPAGE
						; 10966	=0
						; 10967	.IFNOT/SHIFT.MUUO
U 3146, 3727,0001,0000,0000,0102,3010,0500	; 10968	PGF1:	MB WAIT,VMA_#,#/500,J/PGF2
						;;10969	.IF/SHIFT.MUUO
						;;10970	PGF1:	MB WAIT,VMA_#,#/501,J/PGF2	;SHIFT TO CLOSER MATCH XADDR FORM
						; 10971	.ENDIF/SHIFT.MUUO
U 3147, 0071,0001,0000,0000,0000,2110,0105	; 10972		SET ACCOUNT EN,J/TAKINT		;CLEANUP DONE, SERVE INTRPT
U 3727, 2110,3240,2007,0000,0020,6510,0152	; 10973	PGF2:	AR_SV.PFW,SKP PI CYCLE,J/PGF4	;GET BACK PAGE FAIL WORD
						;;10974	.IFNOT/KLPAGE
						;;10975	=0
						;;10976	PGF1:	GET ECL EBUS,CLR SC,
						;;10977			PF DISP,J/PGF2
						;;10978		SET ACCOUNT EN,J/TAKINT		;HERE TO SERVE INTRPT, DO IT
						;;10979	=1100
						;;10980	PGF2:
						;;10981	=01	AR_SV.AR,FE_FE-1,		;AR PARITY ERROR
						;;10982			SKP RPW,J/PGF6		;DO WE NEED TO RESTART RPW?
						;;10983	=10	VMA_VMA HELD,MAP,SC_FE		;ARX PARITY ERROR, PF CODE 37
						;;10984	PGF3:	MB WAIT,VMA_#,#/500
						;;10985		AR_EBUS REG			;READ PAGE FAIL WORD
						;;10986		REL ECL EBUS
						;;10987		P_P OR SC,SKP PI CYCLE		;STUFF ERROR CODE IF PARITY
						; 10988	.ENDIF/KLPAGE
						; 10989	=00
						; 10990	PGF4:	ARX_AR,AR_VMA HELD,SC_#,#/13.,	;READY TO COMBINE PF WORD
U 2110, 1454,3733,2400,0302,1000,1750,0015	; 10991			CALL,J/ROTS		; WITH ADDRESS
						; 10992		ARX_AR,AR_VMA HELD,SC_#,#/13.,	;READY TO COMBINE PF WORD
U 2111, 3740,3733,2400,0302,1000,1710,0015	; 10993			J/IOPGF			; WITH ADDRESS
U 2113, 3730,4001,4000,0000,0000,1510,0004	; 10994	=11	AR_SHIFT,ABORT INSTR		;RECOVER TRAP FLAGS, IF ANY
						;;10995	.IFNOT/XADDR
						;;10996		STORE,UPT REF			;PUT PAGE FAIL WORD AT 500
						;;10997		FM[HARDPFW]_AR			;[406] Protect from soft page fail
						;;10998		FIN STORE,AR_PC,
						;;10999			VMA_VMA+1,STORE		;STORE OLD PC AT 501 OR 502
						;;11000		FIN STORE,AR_0S,
						;;11001			VMA_VMA+1,LOAD AR	;GET NEW PC FROM 502 OR 503
						;;11002		SET ACCOUNT EN,J/NEWPC
						; 11003	.IF/XADDR
U 3730, 3731,3731,0200,0000,0016,0026,0223	; 11004		STORE,UPT REF,ARX_PC		;PAGE FAULT WORD TO 500
U 3731, 3732,0001,0007,0000,0000,1010,0177	; 11005		FM[HARDPFW]_AR			;[406] Protect from soft page fail
						; 11006		AR_ARX ANDC ADMSK,MB WAIT,	;GET PC FLAGS FOR STORING
U 3732, 3733,3510,2227,0000,0022,0010,0175	; 11007			BRX/ARX,ARX/AD		;FULL PC IN BRX, FLAGS IN ARX
U 3733, 3150,0001,0000,0000,0000,6222,0030	; 11008		AR_0.S,SKP USER
U 3150, 0676,4001,0000,0000,2000,0250,0000	; 11009	=0	AR12-17_PREV SEC,CALL [ARSWAP]	;[334] GET PCS IF EXEC MODE
						; 11010		ARL_ARXL,ARR_ARR,		;FLAGS WORD IN AR
U 3151, 3734,4001,0000,0000,2016,3622,0004	; 11011			VMA_VMA+1,STORE		;STORE FLAGS WORD IN 501
						; 11012		AR_ARX*BRX,AD/ANDCA,		;GET PC ADDRESS
U 3734, 3735,3002,6004,0000,0016,3610,0000	; 11013			VMA_VMA+1,STORE		; STORE IT IN 502
U 3735, 3736,3401,2000,0000,0012,3610,0000	; 11014		AR_0S,VMA_VMA+1,LOAD AR		;GET NEW PC ADDRESS FROM 503
U 3736, 3737,4001,0000,0000,0000,0024,0020	; 11015		SET FLAGS_AR			;CLEAR ALL FLAGS
U 3737, 0751,3200,0003,0000,0022,2110,0105	; 11016		AR_MEM,SET ACCOUNT EN,J/ARJMP	;NEW ADDRESS FOR PC
						; 11017	.ENDIF/XADDR
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 26-1
; IO.MIC[10,5351]	19:56 24-Jul-85			KI-MODE PAGE FAIL HANDLING				

						; 11018	
						;;11019	.IFNOT/KLPAGE
						;;11020	
						;;11021	;HERE ON PARITY ERROR IN AR.  SKIP IF READ-PAUSE-WRITE IN PROGRESS
						;;11022	=0
						;;11023	PGF6:	VMA_VMA HELD,MAP,		;AR PARITY ERROR
						;;11024			SC_FE,J/PGF3		;PF CODE 36
						;;11025		STORE,J/PGF6			;COMPLETE CYCLE, WITH GOOD PAR
						; 11026	.ENDIF/KLPAGE
						; 11027	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 27
; IO.MIC[10,5351]	19:56 24-Jul-85			PAGE FAIL/INTERRUPT CLEANUP FOR SPECIAL INSTRUCTIONS

						; 11028	.TOC	"PAGE FAIL/INTERRUPT CLEANUP FOR SPECIAL INSTRUCTIONS"
						; 11029	
						; 11030	;HERE ON PAGE FAIL DURING PI CYCLE
						; 11031	
						;;11032	.IFNOT/MODEL.B			 	;[224][274]
						;;11033	IOPGF:	AR_SHIFT,ARX_SHIFT,SC_#-SC,	;TROUBLE... CREATE PAGE FAIL WORD
						;;11034			#/36.
						;;11035		AR_SHIFT,SET IO PF
						;;11036		SV.IOPF_AR,J/IOPFIN		;FINISH  IOPF ROUTINE
						; 11037	.IF/MODEL.B				;[224] DO FANCY STUFF FOR DTE.
U 3740, 3741,3200,2007,0000,0020,0010,0163	; 11038	IOPGF:	AR_FM[SV.IOP]			;[274] GET THE SAVED API WORD
U 3741, 3742,0001,0007,0000,0000,1010,0162	; 11039		SV.IOPF_AR			;[224] SAVE IT IN AC BLK 7.
U 3742, 3743,3200,2047,0000,0020,0010,0156	; 11040		BR/AR,AR_SV.AR			;[224] KEEP IOPF WORD AROUND,
U 3743, 2122,4001,0000,0000,0000,2310,0100	; 11041		SET IO PF			;[224][274] HANDLE DTE.
						; 11042	
						; 11043	;[223] THIS RESTARTS THE DTE'S CLOCK TO PREVENT A DEX FAILURE.
U 2122, 3552,0001,0000,0000,0000,2250,0026	; 11044	=10	SET DATAO,CALL,J/EBUSO		;[223] SEND THE DATA TO THE DTE.
U 2123, 2103,3202,2000,0000,0000,2110,0105	; 11045		AR_BR,SET ACCOUNT EN,J/PIDONE	;[223] AND FINISH THE INTRPT.
						; 11046	.ENDIF/MODEL.B				;[224]
						; 11047	
						; 11048	
						; 11049		;HERE ON BLT PAGE FAIL
						; 11050	
						; 11051	.IF/KLPAGE
U 3744, 3745,0612,2004,0000,0020,1610,0000	; 11052	BLTPF:	AR_ARX+BR,SR_0			;CURRENT SRC ADDR
						; 11053	.ENDIF/KLPAGE
U 3745, 3746,3713,2000,0000,3000,0610,0004	; 11054	BLTPF1:	AR_ARX (AD),ARL_ARR
U 3746, 0040,0001,0000,0000,0000,1005,0000	; 11055	PGFAC0:	AC0_AR,SR DISP,J/CLEAN		;BEGIN NORMAL PF WORK
						; 11056	
						; 11057	;HERE ON XBLT PAGE FAIL OR INTERRUPT
						; 11058	.IF/XADDR
						; 11059	
U 3747, 3750,0001,4001,0000,2000,1010,0000	; 11060	XBLTPF:	AC1_AR,AR_ARX
U 3750, 0040,0001,0004,0000,0000,1010,0000	; 11061		AC2_AR,J/CLEAN
						; 11062	.ENDIF/XADDR
						; 11063	
						; 11064	;HERE ON VARIOUS CASES OF STRING/EDIT FAILURE
						; 11065	
U 3751, 3752,0001,0000,2110,3001,0010,0200	; 11066	BACKS:	P_P+S
U 3752, 0040,4001,0001,0000,0000,1005,0000	; 11067		SRCP_AR,SR DISP,J/CLEAN		;RE-DISPATCH FOR MORE
						; 11068	
U 3753, 3754,3200,2006,0000,0020,0010,0144	; 11069	BACKD:	AR_DSTP
						; 11070	.IF/MODEL.B
U 3754, 3755,4001,0000,2110,3000,0110,0144	; 11071		P_P+S.C,SEL DSTP		;PRESEL NUM FIELD FOR HARDW GLITCH
						;;11072	.IFNOT/MODEL.B
						;;11073		P_P+S
						; 11074	.ENDIF/MODEL.B
U 3755, 0040,4001,0006,0000,0000,1005,0144	; 11075		DSTP_AR,SR DISP,J/CLEAN
						; 11076	
U 3756, 3757,3401,2005,0302,0000,1010,0043	; 11077	D2BPF:	AC3_AR,AR_0S,SC_#,#/35.		;PUT AWAY HIGH BINARY
U 3757, 3760,5160,4207,0000,0020,0010,0170	; 11078		AR_SHIFT,ARX_-SLEN		;LOW TO AR, REMAINING LEN TO ARX
						; 11079	.IF/MODEL.B
U 3760, 3761,0001,0000,0000,0000,0010,0144	; 11080		SEL DSTP			;PRESEL NUM FIELD FOR HARDW GLITCH
						; 11081	.ENDIF/MODEL.B
U 3761, 3772,0001,4006,0000,2000,1010,0144	; 11082		AC4_AR,AR_ARX,J/STRPF2		;PUT LOW AWAY
						; 11083	
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page 27-1
; IO.MIC[10,5351]	19:56 24-Jul-85			PAGE FAIL/INTERRUPT CLEANUP FOR SPECIAL INSTRUCTIONS

U 3762, 3766,3300,2007,4000,0020,0010,0166	; 11084	B2DFPF:	AR_AR*T0,AD/OR,J/B2DPF2
						; 11085	
U 3763, 3764,0001,4000,0000,2000,1010,0000	; 11086	B2DPF:	AC0_AR,AR_ARX			;HIGH FRACTION TO AC
U 3764, 3765,0001,0001,0000,0000,1010,0000	; 11087		AC1_AR				;LOW TO AC1
U 3765, 3766,3200,2005,0000,0020,0010,0000	; 11088		AR_AC3				;GET FLAGS
U 3766, 3771,5100,2007,4000,0020,0010,0170	; 11089	B2DPF2:	AR_AR*SLEN,AD/A-B,J/STRPF3	;REBUILD FLAGS+LEN
						; 11090	
U 3767, 3152,5160,2047,0000,0020,4510,0170	; 11091	STRPF:	BR/AR,AR_-SLEN,SKP AR0		;WHICH IS LONGER?
						; 11092	=0
U 3152, 3772,0602,2005,4000,0020,1010,0000	; 11093	STRPF1:	AC3_AR,AR_AR+BR,J/STRPF2	;SRC LONGER
U 3153, 3770,3300,2400,0000,1020,0010,0000	; 11094		ARX_AR,AR_AR*SFLGS,AD/OR	;DST.  BUILD SRC LEN+FLAGS
U 3770, 3771,5112,2000,4000,0020,1010,0000	; 11095		AC0_AR,AR_ARX-BR		;THAT'S AWAY, MAKE DST LEN
U 3771, 0040,0001,0005,0000,0000,1005,0000	; 11096	STRPF3:	AC3_AR,SR DISP,J/CLEAN		;OK, NOW BACK UP SRC IF REQ'D
						; 11097	
U 3772, 3746,3300,2000,0000,0020,0010,0000	; 11098	STRPF2:	AR_AR*SFLGS,AD/OR,J/PGFAC0
						; 11099	
U 3773, 3152,2500,2047,0000,0020,4510,0170	; 11100	STRPF4:	BR/AR,AR_SLEN COMP,SKP AR0,J/STRPF1
						; 11101	


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

	END
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-1
; 							Cross Reference Listing					

(D) A				2250 #
	ADDR			2254 #	4206	4222	4438	4805	5003	5005	5101	5102	5159	5160	5161
				5162	5164	5165	5166	5167	5169	5170	5171	5172	5174	5175	5176
				5177	5180	5181	5183	5184	5185	5186	5187	5188	5189	5190	5201
				5202	5203	5204	5205	5206	5210	5211	5212	5213	5214	5215	5216
				5217	5218	5219	5220	5221	5222	5223	5224	5225	5226	5227	5228
				5229	5230	5231	5232	5233	5234	5235	5236	5237	5238	5239	5240
				5241	5245	5246	5392	5505	6276	6277
	IMMED			2251 #	4150	4408	4409	4503	4504	4554	4555	4566	4567	4568	4569
				4570	4571	4582	4583	4584	4585	4586	4587	4588	4589	4600	4601
				4602	4603	4604	4605	4606	4607	4618	4619	4620	4621	4622	4623
				4624	4625	4674	4675	4676	4677	4678	4679	4680	4681	4749	4750
				4751	4752	4753	4754	4755	4756	4764	4765	4766	4767	4768	4769
				4770	4771	4779	4780	4781	4782	4783	4784	4785	4786	4794	4795
				4806	4975	5006	5103	5104	5393	5498	5499	5500	5501	5502	5503
				5504	5663	5695	5768	5773	6048	6058	6121	6150	6279	9536	9538
				9539	9540	9541	9549	9550	9551	9552	9558	9560	9561	9562	9563
				9567	9568	9569	9570	9571	9572	9573	9574	9584	9585	9586	9587
				9594	9595	9596	9597	9598	9599	9607	9609	9610	9618	9620	9621
	IMMED-PF		2252 #	4146	4155	4160	4165	4230	4235	4240	4245	4250	4255	4260
				4267	4272	4277	4282	4287	4292	4297	4302	4406	4407	4417	4427
				4446	4456	4462	4472	4482	4492	4501	4502	4513	4523	4533	4543
				4552	4553	4564	4565	4573	4574	5638	5650
	RD-P-WR			2260 #	4152	4157	4162	4167	4205	4226	4227	4231	4232	4237	4242
				4247	4252	4257	4262	4268	4269	4273	4274	4279	4284	4289	4294
				4299	4304	4418	4419	4428	4429	4442	4443	4447	4448	4463	4464
				4473	4474	4483	4484	4493	4494	4514	4515	4524	4525	4534	4535
				4544	4545	4717	4718	4719	4720	4721	4722	4723	4724	4732	4733
				4734	4735	4736	4737	4738	4739	5639	5640	5651	5652
	RD-WR			2259 #	5664	5665	5696	5697	5769	5770	5774	5775	6044	6045	6049
				6050	6054	6055	6059	6060	6117	6118	6122	6123	6146	6147	6151
				6152	7662	7750	9556	9603	9605	9614	9616
	READ			2257 #	4367	4368	4575	4576	4577	4578	4579	4580	4591	4592	4593
				4594	4595	4596	4597	4598	4609	4610	4611	4612	4613	4614	4615
				4616	4627	4628	4629	4630	4631	4632	4633	4634	4683	4684	4685
				4686	4687	4688	4689	4690	4701	4702	4703	4704	4705	4706	4707
				4708	4974	5004	5662	5694	5767	5772	5921	5922	5923	5924	6042
				6043	6047	6052	6053	6057	6115	6116	6120	6144	6145	6149	6323
				6324	6326	6327	6534	6535	6536	6537	6751	6752	6753	6754	7663
				7751	7858	9537	9547	9548	9559	9582	9583	9606	9617
	READ-PF			2258 #	4145	4154	4159	4164	4220	4229	4234	4239	4244	4249	4254
				4259	4266	4271	4276	4281	4286	4291	4296	4301	4416	4426	4436
				4445	4455	4461	4471	4481	4491	4512	4522	4532	4542	5637	5649
	WR-TST			2256 #	4156	4161	4166	4236	4241	4246	4251	4256	4261	4278	4283
				4288	4293	4298	4303	4387	4388	4457	4458	9534	9535	9545	9546
				9557	9580	9581	9592	9593	9604	9608	9615	9619
(U) AC#				1983 #	3890	3941	4865	4880	5027	5118	5123	5272	5353	5358	5362
				5366	5985	6001	6003	6023	6760	6765	6767	6773	6776	6780	6785
				6789	6793	6794	6795	6800	6801	6802	6804	6805	6831	6833	6835
				6836	6845	6847	6848	6851	6870	6877	6878	6887	6913	6926	6927
				6943	6947	6987	6988	6990	6994	6996	7021	7060	7067	7197	7198
				7204	7205	7253	7254	7266	7267	7268	7315	7322	7400	7402	7413
				7415	7434	7437	7443	7893	7914	7939	7966	8040	8466	8508	8511
				8513	8516	8553	8603	8604	8605	8606	8607	8608	8609	8634	8636
				8637	8651	8665	8669	8675	8677	8686	8691	8709	8733	8752	8801
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-2
; 							Cross Reference Listing					

				8810	8829	8829	8848	8849	8862	8865	8870	8876	8897	8899	8917
				8952	8954	8963	8964	8973	8976	8978	8979	8990	8991	9025	9027
				9041	9042	9091	9094	9095	9096	9097	9105	9130	9132	9137	9141
				9146	9148	9149	9214	9214	9240	9242	9243	9248	9249	9251	9254
				9255	9257	9258	9261	9283	9314	9323	9400	9402	9436	9447	9449
				9450	9454	9455	9464	9465	9509	9517	10335	10337	10373	10397	10419
				10434	10455	10532	10533	10563	10572	10573	10574	10579	10582	10598	10630
				10640	10647	10655	10669	10680	10685	10692	10693	10694	10709	10719	10720
				10731	10746	10757	10763	10772	10783	10787	10797	10809	10814	10818	10822
				10836	10842	10850	10854	10856	10866	10873	10921	10948	10973	11005	11006
				11038	11039	11040	11069	11071	11075	11078	11080	11082	11084	11089	11091
				11100
(U) AC-OP			1998 #
	AC+#			1999 #	8603	8606	8607	8608	8609	8669	8829	8829	8849	8897	8899
				9141	9214	9214	9240	9242	9243	9248	9249	9251	9254	9255	9257
				9258	9261	9314	9323	9436	9447	9449	9450	9454	9455	9509	11069
				11071	11075	11080	11082
	OR			2001 #
	#			2000 #
(U) ACB				1979 #
	MICROB			1981 #	3890	3941	4865	4880	5027	5118	5123	5272	5353	5358	5362
				5366	5985	6001	6003	6023	6760	6765	6767	6773	6776	6780	6785
				6789	6793	6794	6795	6800	6801	6802	6804	6805	6831	6833	6835
				6836	6845	6847	6848	6851	6870	6877	6878	6887	6913	6926	6927
				6943	6947	6987	6988	6990	6994	6996	7021	7060	7067	7197	7198
				7204	7205	7253	7254	7266	7267	7268	7315	7322	7400	7402	7413
				7415	7434	7437	7443	7893	7914	7939	7966	8040	8466	8508	8511
				8513	8516	8553	8604	8605	8634	8636	8637	8651	8665	8675	8677
				8686	8691	8709	8733	8752	8801	8810	8848	8862	8865	8870	8876
				8917	8952	8954	8963	8964	8973	8976	8978	8979	8990	8991	9025
				9027	9041	9042	9091	9094	9095	9096	9097	9105	9130	9132	9137
				9146	9148	9149	9283	9400	9402	9464	9465	9517	10335	10337	10373
				10397	10419	10434	10455	10563	11005	11006	11038	11039	11078	11084	11089
				11091	11100
	PAGB			1980 #	10532	10533	10572	10573	10574	10579	10582	10598	10630	10640	10647
				10655	10669	10680	10685	10692	10693	10694	10709	10719	10720	10731	10746
				10757	10763	10772	10783	10787	10797	10809	10814	10818	10822	10836	10842
				10850	10854	10856	10866	10873	10921	10948	10973	11040
(U) AD				1570 #
	A			1608 #	3890	3953	3957	3962	3964	3975	3977	4008	4401	4712	4914
				4918	4923	4937	5031	5081	5082	5277	5342	5348	5428	5543	5543
				5558	5559	5560	5560	5563	5565	5566	5574	5576	5579	5581	5728
				5729	5730	5732	5734	5745	5746	5747	5749	5757	5907	5908	5909
				5910	5936	5956	5962	5977	6024	6178	6178	6190	6378	6384	6387
				6415	6418	6443	6445	6464	6544	6552	6576	6589	6595	6598	6647
				6650	6667	6669	6693	6695	6700	6704	6724	6760	6769	6771	6849
				6858	6890	6898	6899	6900	6907	6920	6922	6950	7004	7006	7011
				7016	7031	7050	7094	7214	7271	7273	7303	7305	7308	7312	7318
				7324	7394	7399	7405	7408	7443	7447	7468	7469	7496	7568	7618
				7672	7676	7760	7764	7788	7894	7916	7921	7922	7924	7969	7975
				8148	8152	8161	8182	8187	8196	8216	8297	8301	8306	8308	8317
				8319	8369	8401	8404	8409	8413	8415	8470	8473	8475	8478	8480
				8496	8498	8708	8772	8801	8803	8814	8816	8855	9003	9005	9195
				9216	9251	9285	9286	9302	9359	9363	9418	9453	9504	9506	9658
				9659	9676	9679	9681	9683	9694	9696	9702	9729	9735	9769	9775
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-3
; 							Cross Reference Listing					

				9817	9826	10101	10103	10114	10162	10180	10229	10233	10245	10257	10258
				10259	10265	10315	10364	10405	10467	10532	10533	10560	10576	10577	10578
				10645	10706	10751	10758	10813	10990	10992	11004	11054
	A*2			1575 #	6501	6697	6731	7008	7039	7053	7317	7925	8406	9095	9464
				10465
	A*2+1			1576 #	8795
	A+1			1571 #	3879	3940	4193	4728	4821	4832	5025	5114	5116	5146	5356
				5365	5406	5527	5528	5783	6350	6698	6710	6733	7022	7036	7087
				7217	7545	7574	7599	7624	7881	7886	7891	8019	8021	8033	8039
				8077	8080	8083	8087	8101	8104	8106	8108	8110	8113	8118	8122
				8126	8130	8275	8280	8508	8511	8513	8516	8558	8570	8705	8773
				8857	8939	8969	8994	9184	9189	9193	9241	9244	9245	9249	9332
				9367	9369	9493	9516	9655	10351	10382	10409	10474	10768
	A+B			1579 #	3955	3959	3963	3965	3976	3979	5409	5412	5644	5735	5751
				5753	5842	5847	5872	5875	5876	5879	5889	5903	5906	5943	5955
				6016	6109	6266	6388	6498	6592	6639	6855	6876	6884	6926	7038
				7069	7321	7431	7552	7558	7559	7566	7600	7606	7616	7913	7939
				7973	7977	7981	7983	8051	8150	8154	8163	8184	8189	8199	8218
				8299	8303	8307	8309	8318	8321	8474	8476	8479	8481	8497	8499
				8692	8858	8878	8879	8951	9034	9041	9042	9056	9096	9105	9465
				9517	10190	10196	10228	10291	10433	10640	10655	10680	10731	10763	11052
				11093
	A+B+1			1580 #	4775	4799	5023	5028	7471	7472	7490	7490	7492	7492	7547
				7893	8670	8677	8700	8712	8739	8753	8865	9025	9137	9146	9149
				9400	9402
	A+XCRY			1572 #	5686
	A-1			1590 #	4743	4791	5072	5091	5346	5408	5523	5529	7462	7462	7474
				7474	7489	7967	7989	8703	8774	8774	8818	8818	8819	8819	9145
				10135	10383	10393
	A-B			1584 #	4183	4379	4395	5525	5657	5737	5739	5755	5796	5802	5839
				5841	5844	5851	5856	5861	5873	5874	5877	5878	5892	5904	5905
				5945	5996	5999	6014	6030	6034	6086	6262	6264	6414	6516	6549
				6716	6743	6766	6780	6787	6818	6873	6939	6943	7028	7284	7289
				7535	7536	7570	7620	7919	7927	7938	8041	8636	8662	8686	8689
				8868	8892	8933	8937	9000	11078	11089	11091	11095
	A-B-1			1583 #	7280	8956	8967
	AND			1607 #	4423	5027	5118	5123	5353	5366	5704	5964	6994	7062	7204
				8637	9130	9132	10337	10373	10397	10419	10434	10455	10692	10772	10787
	ANDC			1596 #	4488
	ANDCA			1601 #	4452	4666	4887	5415	6436	6742	7091	8635	8930	10149	11012
	ANDCB			1606 #	4433	4865	4880	4939	5272	5358	5362	5417	6503	6906	7197
				7435	7438	11006
	B			1603 #	3927	3938	4002	4003	4036	4047	4058	4069	4080	4199	4211
				4214	4313	4315	4318	4321	4324	4328	4377	4378	4393	4394	4760
				4790	4850	4861	4884	4892	4903	4904	4905	4908	4920	4934	5033
				5046	5046	5069	5071	5074	5075	5077	5078	5083	5093	5094	5095
				5129	5139	5269	5335	5339	5349	5352	5513	5516	5534	5534	5554
				5555	5556	5571	5572	5589	5591	5599	5607	5609	5613	5619	5622
				5631	5656	5679	5702	5780	5785	5798	5803	5805	5809	5894	5931
				5933	5937	5961	5974	5975	5978	5985	5987	5989	5990	5992	5994
				5994	6003	6004	6006	6023	6026	6027	6029	6033	6069	6092	6094
				6135	6138	6165	6317	6367	6379	6420	6422	6441	6449	6451	6454
				6497	6547	6568	6582	6582	6591	6597	6599	6600	6611	6611	6625
				6626	6640	6660	6662	6672	6676	6705	6740	6775	6784	6785	6788
				6789	6790	6792	6795	6799	6800	6804	6807	6829	6831	6835	6836
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-4
; 							Cross Reference Listing					

				6843	6846	6847	6848	6852	6853	6854	6868	6872	6874	6878	6881
				6885	6905	6914	6917	6918	6928	6932	6988	6991	6992	7017	7021
				7037	7060	7067	7068	7089	7248	7253	7254	7266	7267	7268	7272
				7283	7288	7290	7300	7313	7396	7402	7410	7415	7419	7421	7422
				7430	7444	7457	7459	7467	7484	7495	7498	7529	7534	7563	7564
				7614	7683	7704	7705	7706	7707	7708	7709	7710	7712	7718	7719
				7720	7721	7722	7723	7725	7731	7732	7733	7735	7737	7738	7768
				7786	7786	7804	7806	7811	7812	7813	7814	7815	7816	7817	7819
				7825	7826	7827	7828	7829	7830	7832	7838	7839	7840	7842	7844
				7845	7966	7984	8028	8045	8086	8089	8157	8158	8192	8193	8277
				8278	8326	8327	8337	8339	8362	8362	8365	8465	8466	8469	8502
				8503	8552	8554	8560	8568	8571	8599	8603	8604	8605	8608	8616
				8629	8634	8650	8652	8653	8669	8671	8678	8681	8698	8746	8752
				8770	8775	8797	8798	8798	8813	8813	8829	8829	8849	8856	8862
				8867	8875	8884	8890	8918	8920	8927	8929	8941	8943	8965	8973
				8977	8979	8990	8991	8993	8997	9028	9037	9046	9047	9048	9053
				9093	9107	9109	9111	9135	9136	9141	9148	9159	9160	9160	9187
				9188	9214	9214	9242	9243	9274	9291	9296	9300	9304	9314	9323
				9339	9388	9414	9417	9419	9427	9434	9436	9443	9445	9447	9462
				9462	9467	9471	9472	9488	9494	9509	9519	9521	9634	9668	9711
				9720	9748	9782	9829	10104	10138	10139	10147	10148	10215	10253	10313
				10341	10345	10350	10381	10389	10390	10406	10407	10408	10410	10475	10529
				10531	10573	10580	10595	10627	10630	10641	10642	10643	10647	10662	10669
				10685	10688	10693	10703	10709	10710	10719	10720	10733	10746	10757	10783
				10797	10814	10822	10836	10842	10850	10854	10856	10866	10873	10897	10901
				10921	10928	10932	10936	10944	10948	10953	10958	10973	11016	11038	11040
				11045	11069	11088
	CRY A EQ -1		1610 #	9044
	CRY A GE B		1613 #	6177	8822
	CRY A#0			1612 #	6412	6685	7000	7461	8743	8936	9477	9518
	CRY A.B#0		1611 #	4663	4938	9097	9639	9641	10777
	EQV			1599 #	4498
	NOR			1597 #	7198
	OR			1604 #	4478	4668	5283	5361	7086	8602	8607	8619	8693	8883	9825
				10150	10173	10694	10781	10809	11084	11094	11098
	ORC			1593 #	4549
	ORCA			1594 #	4539
	ORCB			1600 #	4519	6996	7205
	ORCB+1			1582 #	4968	9643
	SETCA			1592 #	4529	4655	4658	6687	7002	8664	8972	10723
	SETCB			1598 #	4508	5891	5998	6711	6711	6714	6714	7023	7023	7026	7026
				7947	8663	8691	8709	8843	8870	8876	8964	10905	11100
	XCRY-1			1587 #	4091	4124	5411	5594	5595	5606	5690	5816	5819	5966	6031
				6100	6101	6333	6354	6381	6570	6573	6838	6840	7057	7404	7411
				7425	8042	8044	8894
	XOR			1602 #	4468	4667	4694	5611	6559	6915	8771	8810	10430
	0S			1605 #	4345	4359	4381	4398	4413	4935	4950	4987	5344	5533	5617
				5723	5723	5762	5947	5947	5954	6001	6083	6085	6133	6191	6386
				6478	6596	6630	6630	6727	6727	6773	6870	6882	6882	6893	7033
				7033	7686	7688	7862	7882	7915	7930	7931	8023	8026	8035	8038
				8342	8343	8665	8736	8800	8848	8848	8853	8853	9030	9030	9035
				9401	10097	10112	10154	10160	10164	10168	10171	10206	10206	10209	10217
				10234	10237	10246	10255	10270	10293	10300	10302	10304	10306	10356	10363
				10404	10425	10431	10464	10574	10590	11014	11077
	1S			1595 #	3881	3925	4005	4339	4346	4353	4360	4559	4815	4862	6481
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-5
; 							Cross Reference Listing					

				6902	7675	7680	7763	7773	7888	8029	8040	8159	8160	8194	8195
				8209	8210	8292	8328	8471	8504	8518	8668	8673	8859	8860	8963
				9183	9199	9259	9262	9273
(U) ADA				1616 #
	AR			1617 #	3890	3940	3975	3976	3977	3979	4423	4433	4452	4468	4478
				4488	4498	4508	4519	4529	4539	4549	4663	4666	4667	4668	4694
				4712	4728	4743	4791	4887	4914	4918	4938	4939	5027	5031	5072
				5082	5091	5118	5123	5283	5353	5361	5409	5412	5415	5417	5428
				5527	5543	5558	5560	5565	5576	5611	5644	5657	5686	5704	5728
				5729	5730	5732	5734	5735	5737	5739	5745	5746	5747	5749	5751
				5753	5755	5757	5802	5839	5842	5847	5856	5872	5873	5874	5875
				5876	5877	5878	5879	5889	5892	5903	5904	5905	5906	5943	5945
				5955	5964	6014	6016	6109	6190	6264	6266	6388	6415	6418	6464
				6498	6501	6503	6559	6592	6598	6639	6650	6693	6695	6697	6698
				6700	6710	6724	6731	6742	6771	6780	6818	6855	6873	6876	6884
				6898	6899	6900	6907	6915	6926	6943	6994	6996	7004	7006	7008
				7011	7022	7031	7038	7039	7050	7053	7062	7091	7094	7197	7198
				7204	7205	7217	7271	7273	7280	7284	7289	7308	7312	7317	7318
				7321	7324	7394	7405	7408	7431	7434	7437	7447	7461	7535	7536
				7552	7606	7672	7676	7760	7764	7894	7916	7922	7925	7927	7939
				7975	7977	7981	8077	8080	8083	8087	8101	8104	8106	8108	8110
				8113	8118	8122	8126	8130	8148	8150	8152	8154	8182	8184	8187
				8189	8275	8280	8317	8318	8319	8321	8406	8413	8470	8496	8497
				8498	8499	8635	8636	8662	8689	8692	8693	8705	8712	8771	8774
				8810	8818	8819	8858	8868	8878	8879	8883	8930	8936	8951	8956
				8969	8994	9034	9041	9042	9056	9095	9096	9097	9105	9130	9132
				9145	9184	9189	9193	9195	9241	9244	9249	9251	9286	9332	9359
				9363	9367	9369	9402	9418	9464	9465	9477	9493	9504	9506	9517
				9518	9639	9641	9655	9658	9659	9676	9679	9681	9683	9694	9696
				9702	9729	9735	9769	9775	9817	9825	9826	10101	10103	10150	10162
				10180	10190	10196	10228	10233	10245	10257	10258	10259	10265	10291	10337
				10351	10364	10382	10383	10393	10409	10430	10433	10434	10467	10474	10532
				10533	10576	10640	10645	10655	10680	10692	10694	10706	10731	10758	10772
				10777	10781	10787	10809	11012	11084	11089	11093	11094	11098
	ARX			1618 #	3953	3955	3957	3959	3962	3963	3964	3965	4865	4880	4923
				5081	5272	5277	5358	5366	5408	6178	6412	6552	6769	6849	6858
				7069	7086	7468	7496	7558	7559	7566	7568	7600	7616	7618	7913
				7924	7973	7983	8041	8051	8161	8163	8196	8199	8216	8218	8297
				8299	8301	8303	8306	8307	8308	8309	8404	8409	8473	8474	8475
				8476	8478	8479	8480	8481	8508	8511	8513	8516	8558	8570	8602
				8607	8619	8703	8708	8743	8803	8814	8816	8967	8972	9245	9285
				10149	10373	10397	10419	10455	10751	10763	10813	11006	11052	11054	11095
	MQ			1619 #	3879	5563	5579	5907	5908	5909	5910	5956	5962	5977	6024
				6387	6445	6595	6647	6667	6669	6685	6687	6890	6906	6920	6922
				6950	7000	7002	7214	7462	7469	7474	7489	7545	7599	7788	7967
				7969	8369	8415	8637	8772	8773	8795	8801	9003	9005	9044	9216
				9453	10114	10229	10405	10465
	PC			1620 #	4008	4821	4832	4937	5025	5114	5116	5146	5342	5348	5362
				5365	8401	10560	10578	10990	10992	11004
(U) ADA EN			1621 #
	EN			1622 #	4401	5523	5525	5528	5529	5543	5559	5560	5566	5574	5581
				5936	6178	6378	6384	6443	6544	6576	6589	6704	6760	7016	7303
				7305	7399	7443	7462	7474	7570	7574	7620	7624	7886	7891	7893
				7921	7989	8664	8774	8818	8819	8855	9302	10173	10315	10577	10723
	0S			1623 #	4183	4193	4379	4395	4775	4799	4968	5023	5028	5346	5356
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-6
; 							Cross Reference Listing					

				5406	5783	5796	5841	5844	5851	5861	5996	5999	6030	6034	6086
				6177	6262	6350	6414	6436	6516	6549	6716	6733	6743	6766	6785
				6787	6789	6795	6800	6804	6831	6835	6836	6847	6848	6878	6939
				6988	7028	7036	7060	7067	7087	7253	7254	7266	7267	7268	7471
				7472	7490	7490	7492	7492	7547	7881	7919	7938	8019	8021	8033
				8039	8634	8670	8677	8686	8700	8739	8753	8822	8857	8865	8892
				8933	8937	8939	8973	9000	9025	9137	9146	9149	9400	9516	9643
				10135	10768	11078	11091
(U) ADB				1625 #
	AR*4			1629 #	4968	5525	5841	5844	5985	6086	6138	6262	6414	6420	6422
				6436	6441	6454	6516	6549	6743	6766	6790	6799	6939	7037	7290
				8041	8858	8867	8878	8937	8951	8964	8967	9034	9048	9056	9296
				9300	9304	9339	10104	10147	10148	10341	10345	10389	10408	10529	10531
	BR			1628 #	4183	4379	4395	4861	4884	4887	4934	4938	4939	5033	5083
				5095	5269	5283	5335	5349	5352	5361	5599	5609	5611	5613	5619
				5622	5631	5657	5704	5735	5739	5751	5755	5796	5798	5802	5805
				5839	5842	5847	5851	5856	5861	5872	5873	5874	5875	5876	5877
				5878	5879	5889	5892	5903	5904	5905	5906	5943	5945	5955	5964
				5974	5978	5994	5994	5996	5998	5999	6004	6006	6014	6016	6029
				6030	6033	6034	6069	6177	6367	6379	6388	6497	6498	6503	6582
				6582	6592	6611	6611	6639	6705	6711	6711	6714	6714	6716	6740
				6742	6784	6787	6788	6818	6843	6855	6872	6873	6876	6884	6905
				6906	6914	7017	7023	7023	7026	7026	7028	7038	7062	7068	7069
				7086	7089	7091	7280	7283	7284	7288	7289	7321	7402	7415	7421
				7431	7484	7490	7490	7492	7492	7498	7534	7535	7536	7547	7552
				7558	7559	7566	7570	7600	7606	7616	7620	7893	7919	7927	7938
				7947	7973	7977	7981	7983	7984	8028	8045	8051	8089	8277	8278
				8465	8466	8469	8571	8602	8607	8608	8619	8629	8635	8662	8663
				8670	8689	8692	8700	8712	8739	8771	8797	8813	8813	8822	8862
				8875	8879	8884	8890	8892	8930	8933	8956	8997	9000	9028	9037
				9053	9427	9445	9447	9494	9639	9641	9643	9668	9711	9720	9748
				9782	9825	9829	10138	10139	10149	10150	10173	10190	10196	10215	10228
				10253	10291	10406	10407	10410	10430	10433	10475	10573	10595	10641	10643
				10703	10777	10781	10901	10928	10953	11012	11045	11052	11093	11095
	BR*2			1627 #	5607	5737	5753	5990	6094	6109	6264	6266	6449	6451	8943
				10580
	FM			1626 #	3927	3938	3955	3959	3963	3965	3976	3979	4002	4003	4036
				4047	4058	4069	4080	4199	4211	4214	4313	4315	4318	4321	4324
				4328	4377	4378	4393	4394	4423	4433	4452	4468	4478	4488	4498
				4508	4519	4539	4549	4663	4666	4667	4668	4694	4760	4775	4790
				4799	4850	4865	4880	4892	4903	4904	4905	4908	4920	5023	5027
				5028	5046	5046	5069	5071	5074	5075	5077	5078	5093	5094	5118
				5123	5129	5139	5272	5339	5353	5358	5362	5366	5409	5412	5415
				5417	5513	5516	5534	5534	5554	5555	5556	5571	5572	5589	5591
				5644	5656	5679	5702	5780	5785	5803	5809	5891	5894	5931	5933
				5937	5961	5975	5987	5989	5992	6003	6023	6026	6027	6092	6135
				6165	6317	6547	6559	6568	6591	6597	6599	6600	6625	6626	6640
				6660	6662	6672	6676	6775	6780	6785	6789	6792	6795	6800	6804
				6807	6829	6831	6835	6836	6846	6847	6848	6852	6853	6854	6868
				6874	6878	6881	6885	6915	6917	6918	6926	6928	6932	6943	6988
				6991	6992	6994	6996	7021	7060	7067	7197	7198	7204	7205	7248
				7253	7254	7266	7267	7268	7272	7300	7313	7396	7410	7419	7422
				7430	7434	7437	7444	7457	7459	7467	7471	7472	7495	7529	7563
				7564	7614	7683	7704	7705	7706	7707	7708	7709	7710	7712	7718
				7719	7720	7721	7722	7723	7725	7731	7732	7733	7735	7737	7738
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-7
; 							Cross Reference Listing					

				7768	7786	7786	7804	7806	7811	7812	7813	7814	7815	7816	7817
				7819	7825	7826	7827	7828	7829	7830	7832	7838	7839	7840	7842
				7844	7845	7913	7939	7966	8086	8150	8154	8157	8158	8163	8184
				8189	8192	8193	8199	8218	8299	8303	8307	8309	8318	8321	8326
				8327	8337	8339	8362	8362	8365	8474	8476	8479	8481	8497	8499
				8502	8503	8552	8554	8560	8568	8599	8603	8604	8605	8616	8634
				8636	8637	8650	8652	8653	8669	8671	8677	8678	8681	8686	8691
				8693	8698	8709	8746	8752	8753	8770	8775	8798	8798	8810	8829
				8829	8843	8849	8856	8865	8868	8870	8876	8883	8918	8920	8927
				8929	8941	8965	8973	8977	8979	8990	8991	8993	9025	9041	9042
				9046	9047	9093	9096	9097	9105	9107	9109	9111	9130	9132	9135
				9136	9137	9141	9146	9148	9149	9159	9160	9160	9187	9188	9214
				9214	9242	9243	9274	9291	9314	9323	9388	9400	9402	9414	9417
				9419	9434	9436	9443	9462	9462	9465	9467	9471	9472	9488	9509
				9517	9519	9521	9634	10313	10337	10350	10373	10381	10390	10397	10419
				10434	10455	10627	10630	10640	10642	10647	10655	10662	10669	10680	10685
				10688	10692	10693	10694	10709	10710	10719	10720	10731	10733	10746	10757
				10763	10772	10783	10787	10797	10809	10814	10822	10836	10842	10850	10854
				10856	10866	10873	10897	10905	10921	10932	10936	10944	10948	10958	10973
				11006	11016	11038	11040	11069	11078	11084	11088	11089	11091	11094	11098
				11100
(U) AR				1637 #
	AD			1642 #	3879	3940	3953	3955	3957	3959	3962	3963	3964	3965	4036
				4091	4124	4183	4199	4211	4214	4315	4318	4324	4345	4346	4359
				4360	4379	4381	4395	4398	4413	4423	4433	4452	4468	4478	4488
				4498	4508	4519	4529	4539	4549	4559	4666	4667	4668	4728	4743
				4760	4775	4790	4791	4799	4850	4880	4937	4939	4950	4987	5025
				5027	5069	5071	5072	5083	5114	5116	5118	5123	5129	5139	5146
				5272	5283	5342	5344	5358	5361	5362	5366	5409	5412	5513	5516
				5533	5534	5556	5563	5572	5579	5589	5591	5594	5595	5606	5607
				5609	5622	5644	5656	5657	5679	5690	5702	5723	5783	5785	5803
				5805	5809	5816	5819	5851	5861	5876	5877	5878	5879	5889	5892
				5907	5908	5909	5910	5937	5943	5945	5947	5955	5956	5961	5962
				5966	5974	5977	5978	5987	5992	5996	5998	5999	6003	6004	6006
				6023	6024	6026	6027	6029	6030	6031	6033	6034	6069	6092	6094
				6100	6101	6135	6165	6317	6333	6367	6379	6381	6386	6387	6388
				6420	6449	6478	6497	6498	6568	6570	6573	6582	6591	6592	6595
				6599	6600	6611	6625	6626	6630	6639	6640	6647	6667	6669	6672
				6676	6687	6698	6705	6710	6711	6714	6716	6727	6773	6775	6780
				6784	6785	6787	6788	6789	6792	6795	6800	6804	6829	6831	6835
				6836	6838	6840	6843	6846	6848	6849	6852	6853	6854	6855	6858
				6870	6872	6873	6874	6876	6878	6881	6882	6884	6885	6890	6905
				6914	6920	6922	6926	6928	6932	6943	6950	6988	6992	6994	6996
				7002	7017	7022	7023	7026	7028	7033	7038	7057	7060	7062	7067
				7068	7069	7086	7197	7198	7204	7205	7214	7253	7254	7266	7267
				7268	7283	7288	7289	7321	7402	7404	7411	7415	7419	7421	7425
				7431	7434	7437	7444	7457	7459	7462	7469	7471	7472	7474	7489
				7492	7498	7529	7535	7536	7545	7552	7599	7606	7686	7688	7788
				7930	7931	7939	7966	7969	7973	7977	7981	7983	8028	8040	8042
				8044	8051	8083	8087	8113	8118	8122	8126	8130	8277	8278	8280
				8342	8343	8369	8401	8404	8465	8469	8552	8554	8558	8560	8568
				8570	8571	8599	8602	8603	8607	8616	8619	8634	8636	8637	8652
				8653	8662	8663	8665	8669	8671	8673	8677	8678	8681	8686	8689
				8691	8692	8693	8698	8705	8709	8736	8746	8752	8753	8770	8797
				8798	8801	8810	8813	8814	8816	8829	8843	8848	8853	8856	8857
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-8
; 							Cross Reference Listing					

				8860	8862	8865	8870	8875	8876	8878	8883	8884	8890	8892	8894
				8918	8920	8927	8930	8933	8941	8963	8965	8979	8991	8993	8994
				8997	9000	9003	9005	9025	9028	9030	9035	9037	9042	9053	9093
				9096	9109	9111	9132	9135	9136	9141	9145	9146	9148	9149	9159
				9160	9184	9188	9189	9193	9214	9216	9241	9243	9244	9245	9249
				9314	9323	9332	9367	9369	9388	9401	9417	9427	9447	9453	9462
				9471	9488	9493	9509	9519	9521	9655	9668	9711	9720	9748	9782
				9829	10097	10112	10138	10149	10150	10154	10164	10168	10190	10196	10206
				10209	10215	10217	10228	10234	10237	10246	10253	10255	10270	10291	10293
				10300	10302	10304	10306	10341	10345	10351	10356	10363	10382	10383	10389
				10404	10405	10408	10425	10431	10433	10464	10573	10574	10590	10595	10630
				10641	10647	10685	10692	10693	10694	10709	10720	10746	10768	10772	10781
				10783	10787	10797	10809	10813	10814	10836	10897	10901	10905	10928	10932
				10936	10944	10948	10953	10958	10973	10990	10992	11006	11014	11038	11040
				11045	11052	11054	11069	11077	11084	11088	11089	11091	11093	11094	11095
				11098	11100
	AD*.25			1647 #	5734	5735	5737	5739	5751	5753	5755	5757	5841	5844	6086
				6109	6178	6190	6262	6414	6415	6445	6464	6501	6516	6549	6693
				6695	6697	6724	6731	6743	6766	6899	6939	7004	7006	7008	7031
				7039	7050	7053	7308	7317	7318	8406	8937	8939	8943	8967	9034
				9095	9464	10529	10531	10751
	AD*2			1645 #	3890	5527	5554	5728	5729	5730	5732	5745	5746	5747	5749
				5780	5839	5842	5847	5856	5872	5873	5874	5875	5903	5904	5905
				5906	5933	6014	6016	6418	6422	6437	6441	6451	6454	6547	6660
				6662	6700	6790	6799	6807	6868	6898	6900	6917	6918	6991	7011
				7290	7927	8858	8879	8951	9056	9296	9304	9339	9516	10265	10465
	ADX			1646 #	4887	5352	5529	5543	5559	5560	5566	5574	5581	5619	5796
				5798	5994	6384	6443	6576	6589	6704	7016	7490	7893	7921	7984
				8045	8466	8664	8670	8700	8712	8739	8774	8818	8819	8822	9445
				9494	9825	10407	10410	10475	11012
	AR			1638 #	4193	4313	4325	4338	4339	4867	4884	5406	5411	9632	9767
				9815	10160	10243	11010
	ARMM			1639 #	4140	4866	4883	5137	5142	5360	5373	5374	5375	6502	6732
				6817	6871	6925	7061	7083	7279	7281	7287	7320	7401	7414	7889
				8019	8021	8023	8026	8029	8033	8035	8038	8039	8088	8100	8103
				8111	8112	8119	8123	8127	8131	8467	8661	8844	8849	8852	8966
				9057	9122	9123	9124	9125	9126	9127	9203	9246	9248	9334	9380
				9746	9749	10113	10125	10148	10207	10360	10424	10479	10753	10821	11009
				11071
	CACHE			1641 #	9802
	EBUS			1643 #	3894	3896	4989	5346	9679	9742	9772	9773	9820	9822	9824
				10135	10152	10166	10170	10220	10221	10222	10223	10236	10238	10248	10264
				10273	10274	10275	10276	10549	10564
	MEM			1640 #	4047	4069	4080	4904	4905	4908	4920	5046	5074	5077	5093
				5094	7272	7313	7396	7410	7467	7495	7563	7564	7614	7735	7786
				7811	7812	7813	7814	7815	7816	7817	7819	7825	7826	7827	7828
				7829	7830	7832	7838	7839	7840	7844	7845	8086	8337	8339	8362
				8365	8650	8775	8977	9046	9107	9291	9419	9434	9467	9472	9634
				10350	10381	10390	10627	10642	10662	10688	10710	10733	11016
	SH			1644 #	3924	4005	4095	4125	4172	4321	4328	4329	4352	4353	4399
				4658	4661	4849	4931	4935	5034	5039	5041	5140	5141	5299	5349
				5363	5368	5520	5522	5541	5546	5567	5582	5613	5617	5630	5631
				5689	5972	5973	5975	5985	5988	5990	6032	6081	6106	6132	6161
				6176	6412	6585	6587	6588	6596	6597	6701	6703	6728	6740	6796
				6801	6847	7013	7015	7034	7088	7216	7218	7291	7322	7422	7427
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-9
; 							Cross Reference Listing					

				7430	7476	7478	7534	7553	7607	7790	7791	7914	7975	8090	8209
				8328	8350	8372	8374	8412	8471	8504	8508	8511	8513	8516	8674
				8744	8800	8859	8861	8895	8931	8952	8954	8978	9036	9051	9119
				9152	9190	9195	9251	9274	9284	9285	9286	9292	9311	9315	9344
				9363	9393	9441	9449	9503	9504	9505	9506	9728	9774	10101	10103
				10139	10174	10257	10258	10294	10423	10426	10532	10533	10548	10577	10579
				10582	10598	10640	10643	10671	10680	10758	10763	10822	10842	10850	10853
				10855	10994	11060	11078	11082	11086
(U) AR CTL			2039 #
	AR0-8 LOAD		2040 #	6502	6732
	AR9-17 LOAD		2041 #
	ARL LOAD		2043 #
	ARR LOAD		2042 #	9746
(U) AR0-8			2014 #
	LOAD			2015 #	4194	5357	5524	6082	6085	6093	6133	6136	6162	6261	6318
				6541	6610	6644	6648	7316	7323	7428	7891	7982	7989	8041	8052
				8068	8083	8085	8280	8379	8403	8666	8705	8707	8851	8928	8971
				9151	9174	9185	9192	9222	9333	9374	9375	9493	9522	10147	10483
				10566	10575	10576	10597	10823	11066
(U) ARL				2029 #
	AD			2033 #	4193	4313	4321	4328	4339	4353	4884	5349	5356	5411	5513
				5579	5785	6317	6582	6667	6669	6920	6922	7534	8089	8518	8918
				9003	9005	10139
	AD*.25			2038 #
	AD*2			2036 #	5780	5848	5857	5933
	ADX			2037 #	7920	10173	10577
	ARL			2030 #	4199	4214	4315	4329	4359	4360	5363	7917	7973	9774	9825
				10101
	ARMM			2031 #	4194	5357	5524	6082	6085	6093	6133	6136	6162	6261	6318
				6541	6610	6644	6648	7056	7316	7323	7428	7891	7982	7989	8041
				8052	8068	8083	8085	8280	8379	8403	8666	8705	8707	8851	8928
				8971	9151	9174	9185	9192	9222	9333	9374	9375	9493	9522	10147
				10483	10566	10575	10576	10597	10823	11066
	CACHE			2032 #
	EBUS			2034 #
	SH			2035 #	4318	4324	4325	4345	4346	4867	5146	5406	5520	6106	6412
				6585	7552	7606	7977	7983	9632	9748	9767	9815	10160	10240	10243
				10722	11010	11054
(U) ARMM			1727 #
	EXP_SIGN		1729 #	6082	6085	6093	6133	6136	6162	6261	6318	6541	6610	6644
				7323	7428
	SCAD EXP		1730 #	6502	6648	6732	7056	7316	8379	8403	8467	8666	8849	8851
				8852	8928	8971	10360	10424	10479	10575	10576	10597	10821
	SCAD POS		1731 #	4194	5357	5524	7083	7889	7891	7982	7989	8019	8021	8023
				8026	8029	8033	8035	8038	8039	8041	8052	8068	8083	8085	8088
				8100	8103	8111	8112	8119	8123	8127	8131	8280	8705	8707	9057
				9122	9123	9124	9125	9126	9127	9151	9174	9185	9192	9203	9222
				9246	9248	9333	9334	9374	9375	9380	9493	9522	10147	10483	10566
				10823	11066	11071
	#			1728 #	4140	5373	5374	5375	6817	6871	6925	7061	7279	7281	7287
				7320	7401	7414	8661	8844	8966	9749	10113	10125	10207	10753
(U) ARX				1648 #
	AD			1652 #	3881	3927	4393	4394	4821	4832	4865	4881	4935	5023	5028
				5091	5346	5365	5406	5410	5428	5534	5543	5555	5558	5560	5565
				5571	5576	5599	5617	5723	5931	5947	5975	5989	5990	5994	6001
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-10
; 							Cross Reference Listing					

				6083	6085	6133	6191	6354	6481	6596	6597	6630	6727	6733	6847
				6882	6902	7033	7087	7248	7403	7430	7490	7804	7806	7862	7882
				7913	7915	7916	7925	7975	8023	8026	8029	8033	8035	8038	8039
				8041	8604	8605	8635	8668	8703	8709	8774	8798	8800	8818	8819
				8829	8848	8849	8853	8859	8929	8964	8969	8990	9030	9047	9130
				9160	9184	9187	9195	9214	9242	9251	9273	9274	9323	9436	9462
				10101	10135	10160	10171	10206	10337	10373	10397	10419	10434	10455	10532
				10533	10576	10578	10643	10719	10758	10842	10850	10854	10856	10921	11004
				11007	11078
	ADX			1656 #	4379	4395	4934	5269	5335	5523	5528	5607	5613	5631	5876
				5877	5878	5879	5889	5892	5943	5945	5955	5996	5998	5999	6004
				6006	6029	6030	6420	6449	6503	6582	6592	6611	6639	6698	6711
				6714	6716	6740	6742	6843	6855	6884	6905	7023	7026	7028	7037
				7038	7089	7091	7462	7474	7492	7498	7574	7624	7886	7891	7919
				7938	7947	7989	8608	8670	8700	8739	8813	8862	8875	8878	8884
				8890	8892	8939	8994	8997	9000	9028	9037	9053	9300	10228	10291
				10406	10901	10928	10953
	ADX*.25			1657 #	5734	5735	5737	5739	5751	5753	5755	5757	5841	5844	6109
				6178	6190	6262	6350	6414	6415	6464	6549	6693	6695	6697	6724
				6731	6743	6766	6899	6939	7004	7006	7008	7031	7039	7050	7053
				7308	8406	8795	8937	8943	9034	9095	9464	10529	10531
	ADX*2			1655 #	4401	5525	5728	5729	5730	5732	5745	5746	5747	5749	5840
				5843	5847	5856	5872	5873	5874	5875	5903	5904	5905	5906	5936
				5985	6014	6016	6033	6034	6378	6418	6422	6437	6441	6451	6454
				6544	6700	6760	6898	6900	7011	7036	7303	7305	7399	7443	7881
				7888	7927	8019	8021	8855	8879	8951	9056	9302	10147	10148	10315
				10723
	ARX			1649 #
	CACHE			1651 #
	MEM			1650 #	3938	4002	4003	4377	4378	5046	5075	5078	5339	7300	7786
				8157	8158	8192	8193	8326	8327	8362	8502	8503
	MQ			1653 #	5367	5575	5581	5622	5890	5893	5973	6100	6106	6577	6585
				6588	6591	6672	6703	6705	6928	7015	7017	7476	7974	7978	7984
				8478	8479	8480	8481	8496	8497	8811	9339
	SH			1654 #	4211	4213	4906	4909	4958	5129	5299	5362	5563	5579	5589
				5591	5594	5595	5609	5625	5796	5798	5809	5816	5819	5937	5974
				5978	5986	5992	6003	6101	6103	6104	6332	6367	6381	6387	6445
				6568	6570	6573	6676	6836	6838	6840	6842	6849	6854	6932	6992
				7057	7059	7072	7074	7276	7314	7411	7425	7528	7667	7670	7686
				7688	7755	7758	7788	7790	7921	7923	7931	7981	8042	8044	8045
				8086	8093	8342	8343	8369	8372	8380	8404	8411	8662	8665	8698
				8736	8770	8796	8814	8816	8868	8920	8927	8993	9035	9048	9108
				9110	9182	9188	9199	9240	9243	9258	9261	9290	9362	9388	9395
				9488	9773	9821	9823	10124	10126	10154	10168	10172	10237	10255	10270
				10300	10302	10304	10306	10363	10405	10425	10454	10465	10484	10582	10632
				10642	10726	10751	10767	10812	10990	10992	11094
(D) B				2262 #	4150	4205	4367	4368	5004	5005	5164	5169	5170	5171	5172
				5174	5175	5176	5177	5184	5185	5186	5187	5393	5498	5499	5500
				5502	5921	5922	5923	6534	6535	6536	6537	6751	6752	6753	6754
				9535	9537	9538	9539	9546	9548	9549	9550	9557	9559	9560	9561
				9580	9581	9582	9583	9584	9585	9592	9593	9596	9597	9604	9606
				9607	9608	9615	9617	9618	9619
	AC			2266 #	4145	4146	4154	4155	4159	4160	4164	4165	4220	4222	4229
				4230	4234	4235	4239	4240	4244	4245	4249	4250	4254	4255	4259
				4260	4266	4267	4271	4272	4276	4277	4281	4282	4286	4287	4291
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-11
; 							Cross Reference Listing					

				4292	4296	4297	4301	4302	4406	4407	4416	4417	4426	4427	4436
				4438	4445	4446	4461	4462	4471	4472	4481	4482	4491	4492	4501
				4502	4512	4513	4522	4523	4532	4533	4542	4543	4552	4553	4975
				5181	5637	5638	5649	5650	5662	5663	7662	7663
	BOTH			2268 #	4409	4419	4429	4443	4448	4464	4474	4484	4494	4504	4515
				4525	4535	4545	4555	5640	5652	5665
	DBL AC			2263 #	5694	5695	5767	5768	5772	5773
	DBL BOTH		2264 #	5697	5770	5775
	MEM			2267 #	4156	4161	4166	4226	4231	4236	4241	4246	4251	4256	4261
				4268	4273	4278	4283	4288	4293	4298	4303	4408	4418	4428	4442
				4447	4457	4458	4463	4473	4483	4493	4503	4514	4524	4534	4544
				4554	5639	5651	5664	5696	5769	5774	7750	7751	9545
	SELF			2265 #	4152	4157	4162	4167	4227	4232	4237	4242	4247	4252	4257
				4262	4269	4274	4279	4284	4289	4294	4299	4304
	SJC-			2270 #	4674	4683	4701	4717	4732	4749	4764	4779
	SJCA			2274 #	4678	4687	4705	4721	4736	4753	4768	4783
	SJCE			2272 #	4676	4685	4703	4719	4734	4751	4766	4781	5161
	SJCG			2277 #	4681	4690	4708	4724	4739	4756	4771	4786	5167
	SJCGE			2275 #	4679	4688	4706	4722	4737	4754	4769	4784	4794	5165
	SJCL			2271 #	4675	4684	4702	4718	4733	4750	4765	4780	4795	5160
	SJCLE			2273 #	4677	4686	4704	4720	4735	4752	4767	4782	5162
	SJCN			2276 #	4680	4689	4707	4723	4738	4755	4770	4785	5166
(D) B0				2278 #	6042	6043	6044	6045	6048	6052	6053	6054	6055	6058
	CRY0(0)			2279 #	4566	4567	4568	4569	4575	4576	4577	4578	4584	4585	4586
				4587	4593	4594	4595	4596	4602	4603	4604	4605	4611	4612	4613
				4614	4620	4621	4622	4623	4629	4630	4631	4632	9540	9551	9556
				9562	9586	9598	9603	9605	9609	9614	9616	9620
	CRY0(1)			2280 #	4570	4571	4579	4580	4582	4583	4588	4589	4591	4592	4597
				4598	4600	4601	4606	4607	4609	4610	4615	4616	4618	4619	4624
				4625	4627	4628	4633	4634	4806	9541	9552	9563	9587	9599	9610
				9621
(D) B1-2			2281 #	4566	4567	4568	4569	4570	4571	4575	4576	4577	4578	4579
				4580	4582	4583	4584	4585	4586	4587	4588	4589	4591	4592	4593
				4594	4595	4596	4597	4598	4600	4601	4602	4603	4604	4605	4606
				4607	4609	4610	4611	4612	4613	4614	4615	4616	4618	4619	4620
				4621	4622	4623	4624	4625	4627	4628	4629	4630	4631	4632	4633
				4634	4806	9540	9541	9551	9552	9556	9562	9563	9586	9587	9598
				9599	9603	9605	9609	9610	9614	9616	9620	9621
	AC			2282 #	6042	6047	6048	6052	6057	6058	6115	6120	6121	6144	6145
				6149	6150	6279	6327
	BOTH			2284 #	6045	6050	6055	6060	6118	6123	6147	6152
	MEM			2283 #	6044	6049	6054	6059	6117	6122	6146	6151
(U) BR				1658 #
	AR			1659 #	4036	4047	4058	4069	4080	4140	4175	4178	4402	4813	4815
				4858	4882	4937	4981	5025	5069	5074	5077	5139	5272	5359	5594
				5606	5607	5656	5723	5779	5783	5784	5890	5893	5933	5972	5988
				5990	5994	5996	5998	5999	6004	6006	6029	6030	6092	6094	6164
				6378	6379	6441	6454	6478	6481	6547	6552	6560	6611	6687	6703
				6769	6771	6776	6783	6816	6839	6843	6848	6853	6872	6874	6881
				6902	6905	6916	7002	7009	7015	7055	7067	7068	7069	7278	7283
				7285	7288	7319	7398	7412	7419	7421	7458	7470	7472	7494	7528
				7545	7599	7888	7914	7967	7969	7979	8087	8389	8414	8634	8638
				8653	8686	8770	8775	8812	8821	8844	8857	8865	8875	8928	8930
				8932	8939	8941	8997	9000	9024	9415	9417	9427	9441	9632	9654
				9726	9736	9767	9770	9798	9815	9819	10097	10148	10149	10152	10160
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-12
; 							Cross Reference Listing					

				10164	10209	10232	10234	10243	10246	10309	10311	10424	10573	10598	10628
				10641	10684	10770	10853	10855	10873	11040	11091	11100
(U) BRX				1660 #
	ARX			1661 #	3924	4402	4880	5340	5599	5606	5609	5622	5723	5809	5816
				5819	5851	5852	5860	5861	5890	5893	5937	5986	5994	5996	5998
				5999	6004	6006	6029	6030	6092	6164	6379	6441	6454	6478	6481
				6547	6552	6560	6611	6687	6733	6839	6843	6850	6853	6881	6902
				6905	6916	7002	7009	7055	7458	7470	7472	7494	7528	7888	7914
				7916	7919	7979	8029	8042	8413	8634	8666	8709	8733	8775	8812
				8821	8857	8865	8875	8929	8939	8941	8997	9000	9024	9415	9468
				9823	10171	10309	10311	10344	10406	10472	11007
(U) CALL			1871 #
	CALL			1872 #	3882	4378	4394	4866	4883	4916	4936	4988	5031	5271	5276
				5277	5336	5341	5345	5347	5610	5681	5703	5781	5785	5848	5857
				5935	5954	5962	5979	6002	6018	6024	6137	6166	6168	6543	6568
				6632	6647	6660	6662	6668	6670	6678	6759	6764	6768	6772	6775
				6782	6787	6793	6802	6829	6832	6844	6850	6875	6879	6883	6886
				6894	6904	6914	6917	6918	6921	6923	6933	6942	6950	7277	7307
				7398	7420	7446	7545	7563	7564	7565	7599	7614	7615	7668	7675
				7680	7682	7756	7865	7928	7930	7980	8157	8192	8405	8552	8553
				8560	8599	8600	8603	8604	8616	8617	8626	8628	8650	8651	8677
				8680	8699	8734	8737	8745	8752	8799	8809	8830	8842	8866	8917
				8942	8963	8977	8978	8992	8999	9002	9050	9091	9174	9196	9214
				9217	9252	9272	9390	9401	9463	9465	9469	9490	9517	9520	9628
				9634	9647	9669	9726	9734	9736	9741	9745	9747	9767	9770	9796
				9816	9819	10097	10102	10113	10114	10124	10131	10136	10151	10161	10164
				10169	10179	10180	10208	10215	10227	10232	10234	10244	10246	10255	10265
				10290	10314	10363	10388	10389	10390	10393	10404	10408	10409	10429	10432
				10440	10445	10450	10463	10464	10467	10468	10473	10474	10476	10482	10483
				10991	11009	11044
(U) CLR				2016 #
	AR			2021 #	4832	4882	5359	5576	6902	8708	8969	11008
	AR+ARX			2022 #
	AR+ARX+MQ		2025 #	6462	7424	8734	9091
	AR+MQ			2023 #	7009	8868
	ARL			2019 #	4338	4352	5074	5077	5140	5141	8510	9048	9051	9284	9362
				9388	9417	9488	9654	10250	10632	10633	10634	10725	10726	10741
	ARL+ARX			2026 #	10226	10289
	ARL+ARX+MQ		2027 #
	ARR			2020 #	5524	10173
	ARR+MQ			2028 #	7917	7920
	ARX			2018 #	5513	6413	7323	9044
	ARX+MQ			2024 #	5519	5779	5784	6162	6316	8918
	MQ			2017 #	4378	4394	5571	5579	5935	6103	6104	6107	6541	6583	6586
				6668	6670	6759	6921	6923	6951	7087	7272	7396	9003	9005
(U) COND			1831 #
	AD FLAGS		1845 #	4183	4379	4395	4728	4743	4775	4791	5644	5657	5943	5945
	AR CLR			1837 #	3881	6378	6481	6816	6867	6869	6924	7055	7278	7285	7314
				7319	7399	7412	7925	8668	8990	9273
	ARL IND			1839 #	4214	4313	4315	4318	4321	4324	4325	4328	4329	4338	4339
				4345	4346	4352	4353	4359	4360	4832	4884	5363	5406	5411	6902
				7323	7552	7606	7973	8052	8083	8089	8280	8518	8705	9185	9632
				9654	9774	9825	10139	11054
	ARX CLR			1838 #	5619	5680	5701	5803	6379	6384	6444	6497	6498	6590	6704
				6850	6858	7016	8673	8857
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-13
; 							Cross Reference Listing					

	DIAG FUNC		1850 #	4923	4989	5346	5348	9735	9742	9769	9772	9773	9775	9817
				9820	9822	9824	10103	10135	10152	10162	10166	10170	10220	10221	10222
				10223	10233	10236	10238	10245	10248	10257	10258	10259	10264	10273	10274
				10275	10276	10549	10564
	EBOX STATE		1851 #	3893	3924	4997	10268	10279	10529	10531	10867	10972	11016	11045
	EBUS CTL		1852 #	3967	3968	3969	3970	4922	4924	4990	5351	8483	8484	8485
				8486	9635	9647	9669	9677	9680	9683	9692	9694	9721	9826	9830
				10172	10206	10228	10263	10267	10277	10390	10404	10464	10539	10550	10565
				11044
	FE SHRT			1844 #	10722
	FM WRITE		1842 #	3890	3941	4091	4096	4124	4134	4381	5124	5518	5548	5567
				5582	5960	5966	5973	5977	5980	5985	6001	6020	6021	6031	6033
				6034	6576	6588	6596	6667	6669	6740	6760	6765	6767	6773	6776
				6793	6794	6796	6797	6801	6802	6803	6805	6830	6833	6845	6851
				6870	6877	6887	6913	6920	6922	6927	6947	6987	6990	7088	7220
				7315	7322	7400	7402	7413	7415	7443	7474	7476	7478	7490	7492
				7554	7893	7914	7916	7919	7984	8040	8466	8508	8511	8513	8516
				8553	8602	8607	8609	8611	8619	8620	8651	8663	8664	8665	8667
				8675	8688	8708	8710	8712	8733	8744	8755	8801	8814	8818	8848
				8853	8855	8859	8860	8862	8884	8894	8899	8917	8931	8943	8952
				8954	8963	8964	8974	8976	8978	9003	9005	9027	9032	9091	9119
				9121	9147	9152	9182	9195	9198	9199	9251	9257	9258	9261	9283
				9290	9449	9450	9455	9494	10335	10532	10533	10563	10572	10573	10574
				10579	10582	10598	10818	11005	11039	11055	11060	11061	11067	11075	11077
				11082	11086	11087	11093	11095	11096
	LD AR0-8		1834 #	4140	5373	5374	5375	6817	6871	6925	7056	7061	7083	7279
				7281	7287	7320	7401	7414	7889	8019	8021	8023	8026	8029	8033
				8035	8038	8039	8088	8100	8103	8111	8112	8119	8123	8127	8131
				8467	8661	8844	8849	8852	8966	9057	9122	9123	9124	9125	9126
				9127	9203	9246	9248	9334	9380	9749	10113	10125	10207	10360	10424
				10479	10753	10821	11071
	LD AR18-35		1836 #
	LD AR9-17		1835 #	4866	4883	5137	5142	5360	10148	11009
	LD VMA HELD		1867 #
	LOAD IR			1846 #	3927	3938	5428	8470
	LONG EN			1856 #	4002	8157	8192	8326	8502
	MBOX CTL		1853 #	10099	10182	10186	10191	10193	10197	10199	10590	10592	10594	10824
				11041
	PCF_#			1843 #	5035	5040	5088	5089	5093	5615	5690	5707	5794	5968	6169
				6377	6680	6935	7076	7080	7081	7219	7282	7286	7440	7441	7674
				7679	7682	7762	7772	7775	8067	8291	8324	8993	9658	9659
	REG CTL			1840 #	5728	5729	5730	5732	5745	5746	5747	5749	5931	6502	6502
				6700	6724	6732	6732	6732	6898	6899	6900	6906	7011	7031	7313
				7410	7431	7768	7967	8629	9746
	SEL VMA			1849 #	4008	8401	10560	10578	10990	10992
	SPEC INSTR		1847 #	3880	3933	4950	4961	4967	5427	10278	10288	10334	10656	10994
	SR_#			1848 #	4108	4109	4113	4125	4920	4984	4993	5352	6006	6026	6066
				6067	6068	6190	6414	6512	6516	6526	6599	6600	6628	6662	6688
				6727	6742	6918	6946	7003	7033	7092	7457	7467	7468	7483	7485
				7494	7497	7498	7553	7563	7564	7565	7575	7607	7614	7615	7625
				7792	8045	8051	8670	8674	8680	8682	8693	8698	8699	8700	8713
				8737	8739	8745	8799	8800	8809	8861	8895	8927	8977	8994	9037
				9050	9053	9093	9274	9313	9357	9469	9520	10897	10901	10905	10909
				10913	10917	10928	10932	10936	10940	10944	10953	10958	11052
	VMA DEC			1865 #	8090	9446	10292
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-14
; 							Cross Reference Listing					

	VMA INC			1866 #	4374	4398	4888	4892	4902	4903	5120	5145	5278	5286	5343
				5367	5369	5934	5989	6542	6758	7275	7397	7681	7774	7979	7996
				8085	8293	8890	8892	9031	9335	9442	9509	9802	10294	10313	10432
				11011	11013	11014
	VMA_#			1860 #	5274	5283	5339	10266	10301	10303	10305	10307	10968
	VMA_#+AR32-35		1863 #	8407	10616	10618
	VMA_#+MODE		1862 #	5337
	VMA_#+PI*2		1864 #	10339	10340	10354
	VMA_#+TRAP		1861 #	3926	3928
(U) DIAG FUNC			2213 #
	CONI APR(L)		2232 #	9773
	CONI APR(R)		2228 #	9772
	CONI MTR		2238 #	10248
	CONI PAG		2241 #	10166
	CONI PI(L)		2227 #	9824
	CONI PI(PAR)		2240 #	9822
	CONI PI(R)		2226 #	9820
	CONO APR		2219 #	9769	9775
	CONO MTR		2217 #	10245
	CONO PAG		2221 #	10162
	CONO PI			2220 #	9817
	CONO TIM		2218 #	10233
	DATAI APR		2234 #	9742
	DATAI PAG(L)		2230 #	5346	10135
	DATAO APR		2222 #	9735
	DATAO PAG		2223 #	10103
	LD AC BLKS		2224 #
	LD PA LEFT		2215 #	10257	10259
	LD PA RIGHT		2216 #	10258
	LD PCS+CWSX		2225 #	4923	5348
	RD CACHE CNT		2235 #	10223	10276
	RD EBOX CNT		2233 #	10222	10275
	RD EBUS REG		2242 #	4989	10152	10170	10549	10564
	RD INTRVL		2236 #	10236
	RD MTR REQ		2239 #	10264
	RD PERF CNT		2231 #	10221	10274
	RD PERIOD		2237 #	10238
	RD TIME			2229 #	10220	10273
	.5 USEC			2214 #
(U) DISP			1877 #
	BYTE			1890 #	4961	7668	7671	7755	7759	7968	8000	8068	8919	9175	9222
				9389	9434	9435	9436	9449	9489	9629	10192	10198	10778
	DIAG			1878 #
	DIV			1887 #	5839	5842	5847	5856	5872	5873	5874	5875	5876	5877	5878
				5879	5903	5904	5905	5906	7927	8956
	DRAM A RD		1880 #	3962	3963	3964	3965	3975	3976	8478	8479	8480	8481	8497
	DRAM B			1889 #	4172	4181	4313	4315	4318	4321	4325	4329	4338	4339	4345
				4346	4352	4353	4359	4360	4374	4413	4423	4433	4452	4468	4478
				4488	4498	4508	4519	4529	4539	4549	4559	4656	4659	4663	4990
				5039	5545	5600	5620	5624	5644	5657	5689	5706	5797	5799	5804
				5938	6066	6081	6512	6516	6544	6760	8496	8581	8582	8667	8850
				8858	9036	9094	9131	9135	9635	9654	9826	10174	10218	10226
	DRAM J			1879 #	4037	4048	4059	4070	4081	4859	4885	4893	8509	8512	8514
				8517
	EA MOD			1892 #	3925	4005	4815	4862	7675	7680	7763	7773	8159	8160	8194
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-15
; 							Cross Reference Listing					

				8195	8209	8210	8292	8328	8471	8504	9183	9199	9259	9262	10583
	MUL			1886 #	5724	5734	5736	5738	5740	5752	5754	5756	5757	5762	5954
				6893
	NICOND			1884 #	4096	4118
	NORM			1891 #	6110	6138	6178	6190	6414	6416	6442	6447	6455	6465	6498
				6593	6650	6673	6698	6706	6712	6715	6716	6856	6908	6929	6995
				6997	7019	7024	7027	7029	7038	7094	7310	7324	7405	7416	7447
	PG FAIL			1882 #	10539	10550
	RETURN			1881 #	4402	4925	4931	5046	5299	5363	5369	5728	5729	5730	5732
				5745	5746	5747	5749	5849	5851	5852	5858	5860	5861	5891	5894
				5907	5908	5909	5910	6265	6267	6614	6616	6807	6818	7197	7198
				7204	7205	7554	7575	7625	8069	8070	8076	8079	8091	8093	8100
				8103	8111	8112	8119	8123	8127	8131	8149	8151	8162	8164	8211
				8213	8217	8219	8274	8277	8278	8281	8306	8307	8308	8309	8317
				8318	8350	8351	8365	8374	8387	8389	8390	8415	8570	8605	8609
				8618	8620	8627	8629	8638	8758	9093	9097	9121	9132	9137	9141
				9152	9159	9203	9218	9522	9684	9697	9717	9721	10155	10210	10294
				10315	10426	10431	10434	10456	10867
	SH0-3			1885 #	5344	7071	7432	7673	7677	7699	7700	7761	7765	7804	7806
				7881	8067	8110	9108	9110	9292	9309	10270	10289	10337	10356	10388
				10407	10629	10718
	SIGNS			1888 #	5811	6005	6007	7915	8704	8708	8735	8755	8800	8801	8815
				8848	8972	9029	9054	9092	9120	9147	10580	10617	10619
	SR			1883 #	6026	6027	6032	6417	6419	6421	6423	6450	6452	6453	6463
				6482	6502	6709	6732	7078	7087	7966	8339	8756	10572	10874	11055
				11067	11075	11096
(U) EA CALC			2100 #
	A IND			2110 #	3953	3955	3957	3959	3977	3979	8473	8474	8475	8476	8498
				8499
	BYTE IND		2118 #	7681	7774	8152	8154	8187	8189	8216	8218	8293	8297	8299
				8301	8303	8319	8321
	BYTE LD			2114 #	8148	8150	8161	8163
	BYTE RD			2115 #	7672	7676	8306	8307	8308	8309	8317	8318
	BYTE RD PC		2116 #
	BYTE RPW		2117 #	7760	7764	8182	8184	8196	8199
	LD ARX+WR		2126 #	9442
	LD AR(EA)		2124 #	7558	7559	7566
	LD AR+WR		2125 #	9414	9418
	POP AR			2120 #	5069
	POP AR-ARX		2122 #	5071
	POP ARX			2121 #
	PUSH			2119 #	5023	5028
	WRITE(E)		2123 #	5095	7568
(U) EBUS CTL			2197 #	4924	5351	9692
	DATAI			2211 #	9701	10404	10464
	DATAO			2210 #	9647	9702	10390	11044
	EBUS DEMAND		2201 #	9677
	EBUS NODEMAND		2202 #	9680
	GRAB EEBUS		2198 #	3967	3968	3969	3970	4922	8483	8484	8485	8486	9721	10263
				10539
	IO INIT			2207 #	9694	9697
	REL EBUS		2200 #	9683	9826
	REL EEBUS		2212 #	4990	9635	10172	10206	10228	10267	10277	10550	10565
	REQ EBUS		2199 #	9669	9830
(U) EXP TST			2044 #
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-16
; 							Cross Reference Listing					

	AR_EXP			2045 #	6502	6732
(U) FE				1716 #	10722
	SCAD			1717 #	4006	4008	4047	4069	4096	4118	4950	4958	4967	5519	5522
				5572	5575	5680	5702	5724	5728	5729	5730	5732	5734	5736	5738
				5740	5745	5746	5747	5749	5752	5754	5756	5757	5762	5810	5817
				5820	5839	5842	5847	5856	5872	5873	5874	5875	5876	5877	5878
				5879	5890	5893	5903	5904	5905	5906	5907	5908	5909	5910	5948
				5954	5963	5991	5997	6018	6082	6085	6094	6103	6104	6107	6135
				6138	6165	6176	6179	6318	6332	6349	6353	6415	6418	6420	6422
				6442	6446	6449	6451	6455	6462	6464	6501	6541	6553	6612	6640
				6667	6669	6677	6694	6696	6697	6700	6701	6728	6731	6785	6789
				6791	6800	6854	6880	6885	6891	6893	6920	6922	6924	6932	6991
				7005	7006	7008	7011	7013	7034	7039	7291	7302	7305	7309	7321
				7395	7409	7427	7674	7679	7681	7699	7700	7737	7738	7762	7768
				7769	7772	7774	7787	7789	7804	7806	7844	7845	7881	7882	7884
				7886	7922	7925	7927	7930	7931	7969	7973	7975	7989	8040	8077
				8080	8212	8275	8291	8293	8311	8312	8313	8314	8368	8370	8411
				8505	8552	8560	8568	8661	8703	8796	8844	8940	8951	8953	8966
				8998	9001	9004	9006	9119	9121	9141	9160	9182	9189	9198	9199
				9244	9257	9258	9261	9287	9331	9343	9345	9358	9367	9370	9392
				9395	9452	9462	9796	10111	10190	10196	10210	10356	10423	10463	10472
				10543	10548	10591	10593	10595	10622	10623	10628	10671	10688	10710	10718
				10733	10753	10779	10781	10816	10841	10851	10893
(U) FETCH			2088 #
	COMP			2091 #	4694
	JFCL			2095 #	4938
	JUMP			2094 #	4760	4775	4791	4799
	SKIP			2092 #	4712	8803
	TEST			2093 #	4655	4658	4663	8743	9639	9641	9643
	UNCOND			2089 #
(U) FLAG CTL			2067 #
	DISMISS			2071 #	4858	4910	4911	9651	10391
	DISMISS+LD		2073 #
	HALT			2074 #	4948
	JFCL			2069 #	4937
	JFCL+LD			2070 #	4940
	PORTAL			2076 #	4813
	RSTR FLAGS		2068 #	4854	4904	4905	4908
	SET FLAGS		2075 #	3822	5372	11015
(U) FMADR			1672 #
	AC+#			1683 #	8603	8607	8609	8669	8829	8829	8849	8899	9141	9214	9214
				9240	9242	9243	9251	9257	9258	9261	9314	9323	9436	9449	9450
				9455	9509	11069	11075	11082
	AC0			1673 #	4036	4091	4096	4124	4199	4211	4214	4313	4315	4318	4321
				4324	4328	4381	4423	4433	4452	4468	4478	4488	4498	4508	4519
				4539	4549	4663	4666	4667	4668	4694	4760	4775	4790	4799	5023
				5028	5069	5071	5073	5091	5124	5129	5139	5407	5409	5412	5415
				5417	5513	5516	5534	5534	5548	5556	5567	5572	5582	5589	5591
				5644	5656	5679	5702	5785	5803	5809	5891	5894	5937	5961	5966
				5992	6092	6135	6165	6317	6559	6568	6576	6588	6591	6599	6600
				6640	6676	6740	6775	6792	6796	6829	6830	6854	6874	6885	6915
				6932	6992	7088	7220	7419	7422	7444	7459	7471	7472	7474	7476
				7490	7492	7529	7554	7768	7804	7806	7913	7916	7919	8552	8560
				8653	8667	8693	8746	8770	8818	8843	8853	8855	8883	8884	8920
				8929	8993	9003	9005	9032	9093	9109	9111	9119	9121	9136	9152
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-17
; 							Cross Reference Listing					

				9274	9290	9471	9494	9519	9521	11055	11086	11094	11095	11098
	AC1			1674 #	4134	4393	4394	5518	5554	5555	5571	5780	5933	5973	5989
				6020	6021	6026	6027	6547	6596	6597	6625	6626	6660	6662	6667
				6669	6672	6797	6803	6807	6846	6852	6853	6868	6881	6917	6918
				6920	6922	6928	6991	7430	7457	7984	8599	8611	8616	8620	8698
				8708	8798	8798	8918	9160	9160	9182	9198	9199	9462	9462	10897
				11060	11067	11087
	AC2			1677 #	5977	5987	6031	7248	7478	8602	8619	9187	9188	9195	11061
	AC3			1678 #	5931	5960	5975	5980	6033	6034	8554	8568	8652	8663	8664
				8671	8678	8681	8688	8710	8712	8744	8753	8755	8814	8856	8859
				8860	8868	8894	8927	8931	8941	8943	8965	8974	9047	9135	9147
				9159	9388	9414	9417	9488	10905	10932	10936	10944	10958	11077	11088
				11093	11096
	VMA			1676 #	3927	3938	4002	4003	4047	4058	4069	4080	4092	4093	4099
				4101	4377	4378	4398	4712	4887	4890	4892	4902	4903	4904	4905
				4908	4920	5033	5035	5038	5040	5046	5046	5074	5075	5077	5078
				5093	5094	5120	5145	5278	5286	5339	5342	5352	5365	5368	7272
				7300	7313	7396	7410	7467	7469	7489	7495	7563	7564	7571	7573
				7574	7614	7621	7623	7624	7670	7674	7678	7683	7704	7705	7706
				7707	7708	7709	7710	7712	7718	7719	7720	7721	7722	7723	7725
				7731	7732	7733	7735	7737	7738	7758	7762	7766	7772	7786	7786
				7811	7812	7813	7814	7815	7816	7817	7819	7825	7826	7827	7828
				7829	7830	7832	7838	7839	7840	7842	7844	7845	7866	8086	8090
				8115	8157	8158	8192	8193	8291	8294	8326	8327	8337	8339	8362
				8362	8365	8502	8503	8650	8775	8977	9046	9107	9218	9291	9419
				9434	9443	9445	9447	9467	9472	9508	9516	9634	9638	9640	9647
				9654	10293	10313	10350	10381	10390	10391	10627	10642	10662	10688	10703
				10710	10733	11016
	XR			1675 #	3925	3955	3959	3963	3965	3976	3979	4005	4850	8150	8154
				8159	8160	8163	8184	8189	8194	8195	8199	8209	8210	8218	8299
				8303	8307	8309	8318	8321	8328	8474	8476	8479	8481	8497	8499
				8504
	#B#			1685 #	3890	3941	4865	4880	5027	5118	5123	5272	5353	5358	5362
				5366	5985	6001	6003	6023	6760	6765	6767	6773	6776	6780	6785
				6789	6793	6794	6795	6800	6801	6802	6804	6805	6831	6833	6835
				6836	6845	6847	6848	6851	6870	6877	6878	6887	6913	6926	6927
				6943	6947	6987	6988	6990	6994	6996	7021	7060	7067	7197	7198
				7204	7205	7253	7254	7266	7267	7268	7315	7322	7400	7402	7413
				7415	7434	7437	7443	7893	7914	7939	7966	8040	8466	8508	8511
				8513	8516	8553	8604	8605	8634	8636	8637	8651	8665	8675	8677
				8686	8691	8709	8733	8752	8801	8810	8848	8862	8865	8870	8876
				8917	8952	8954	8963	8964	8973	8976	8978	8979	8990	8991	9025
				9027	9041	9042	9091	9094	9095	9096	9097	9105	9130	9132	9137
				9146	9148	9149	9283	9400	9402	9464	9465	9517	10335	10337	10373
				10397	10419	10434	10455	10532	10533	10563	10572	10573	10574	10579	10582
				10598	10630	10640	10647	10655	10669	10680	10685	10692	10693	10694	10709
				10719	10720	10731	10746	10757	10763	10772	10783	10787	10797	10809	10814
				10818	10822	10836	10842	10850	10854	10856	10866	10873	10921	10948	10973
				11005	11006	11038	11039	11040	11078	11084	11089	11091	11100
(U) ISTAT			1972 #
	OPTIONS			1976 #	9749
(U) J				1563 #	3962	3963	3964	3965	3975	3976	4037	4048	4059	4070	4081
				4402	4820	4859	4885	4893	4925	4931	5046	5299	5363	5369	5728
				5729	5730	5732	5745	5746	5747	5749	5849	5851	5852	5858	5860
				5861	5891	5894	5907	5908	5909	5910	6265	6267	6614	6616	6807
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-18
; 							Cross Reference Listing					

				6818	7197	7198	7204	7205	7554	7575	7625	8069	8070	8076	8079
				8091	8093	8100	8103	8111	8112	8119	8123	8127	8131	8149	8151
				8162	8164	8211	8213	8217	8219	8274	8277	8278	8281	8306	8307
				8308	8309	8317	8318	8350	8351	8365	8374	8387	8389	8390	8415
				8478	8479	8480	8481	8497	8509	8512	8514	8517	8570	8605	8609
				8618	8620	8627	8629	8638	8758	9093	9097	9121	9132	9137	9141
				9152	9159	9203	9218	9522	9684	9697	9717	9721	10155	10210	10294
				10315	10426	10431	10434	10456	10867
	ACNORM			6990 #	6785
	ACNRM1			6994 #	6988
	ACSETU			7554 #	7608
	ADD			5644 #	5637	5638	5639	5640
	ADJBP			7881 #	7864
	ADJDIV			7927 #	7932
	ADJOIN			7913 #	8045
	ADJOWG			8018 #	7881
	ADJP			7989 #	7974	7978	7990
	ADJSP			5406 #	5393
	ADJSP1			5415 #	5410
	ADJTWG			7973 #	7968
	ADJUST			7966 #	7938	7939
	AND			4423 #	4416	4417	4418	4419
	ANDCA			4433 #	4426	4427	4428	4429
	ANDCB			4488 #	4481	4482	4483	4484
	ANDCM			4452 #	4445	4446	4447	4448
	AOBJ			4799 #	4794	4795
	AOJ			4775 #	4764	4765	4766	4767	4768	4769	4770	4771
	AOS			4728 #	4717	4718	4719	4720	4721	4722	4723	4724
	APRBI			9745 #	9534
	APRBO			9736 #	9536
	APRCI			9770 #	9539	9540	9541
	APRCO			9767 #	9538
	APRCO7			9775 #	9769
	APRDI			9741 #	9535
	APRDO			9734 #	9537
	ARJMP			4918 #	4904	4911	4920	11016
	ARSWAP			4931 #	4866	4883	10208	11009
	ASH			5532 #	5498
	ASHC			5553 #	5502
	ASHL			5589 #	5533	5554
	ASHL1			5605 #	5590
	ASHL2			5609 #	5618
	ASHL3			5613 #	5615
	ASHL4			5617 #	5614
	ASHL5			5622 #	5625
	ASHR1			5594 #	5597
	ASHR2			5599 #	5594
	ASHX			5630 #	5600	5624
	AWAIT			10350 #
	B2DFPF			11084 #	10905
	B2DPF			11086 #	9037	10928
	B2DPF2			11089 #	11084
	BACKD			11069 #	10909	10913	10917	10940
	BACKS			11066 #	10897
	BD1			8936 #	8921
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-19
; 							Cross Reference Listing					

	BD2			8939 #	8936	8943
	BD3			8941 #	8937
	BD4			8951 #	8940	8956
	BD6			8956 #	8951
	BD7			8963 #	8952	8954
	BD8			8971 #	8969
	BD9			8974 #	8979
	BDD1			9024 #	8994	9057
	BDD2			9034 #	9029
	BDD3			9041 #	9036
	BDD4			9044 #	9041
	BDD5			9046 #	9047
	BDD6			9048 #	9046
	BDD7			9050 #	9042	9051
	BDDR1			8927 #
	BDDR4			9027 #	8933
	BDDV1			8990 #	8974
	BDDV2			8997 #	8992
	BDEC			8917 #	8558
	BDF1			8976 #	8973
	BFETCH			8316 #	8292	9183	9199	9259	9262
	BLK1			9655 #	9629
	BLK2			9654 #	9655	9656
	BLK3			9658 #	9654
	BLK4			9643 #	9638
	BLKIO			9628 #	9603	9605	9614	9616
	BLT			4213 #	4206
	BLT1			7528 #	4214
	BLT2			7545 #	7535
	BLTAC			7552 #	7545
	BLTPF			11052 #	7571	7621	10921
	BLTPF1			11054 #
	BLTPXCT			7599 #	7536
	BLTPX1			7606 #	7599
	BPART2			8324 #	8293
	BRJMP			4861 #	4813	4854
	BXA			8297 #	8328
	BYTEA			8291 #	8294	10484
	BYTEI			8326 #	8298	8300	8302	8304	8320	8322	9198	9257
	BYTEI2			8328 #	8326
	BYTINC			8076 #	8068
	BYTIND			8209 #	8157	8192
	CAIM			4694 #	4674	4675	4676	4677	4678	4679	4680	4681	4683	4684	4685
				4686	4687	4688	4689	4690
	CAPHGH			7891 #	7892
	CAPLOW			7886 #	7887
	CDBLST			6743 #	7092
	CHALT			4950 #	3941
	CHKAC			10454 #	10440	10445	10450
	CLEAN			10893 #	8339	8756	10572	10874	11055	11061	11067	11075	11096
	CLRFPD			4112 #	9643
	CLRPT			10206 #	10114	10180
	CMPDST			8829 #	8809
	CMPS			8770 #	8554
	CMPS1			8774 #	8772
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-20
; 							Cross Reference Listing					

	CMPS3			8795 #	8822
	CMPS4			8796 #	8775
	CMPS5			8809 #	8801
	CMPS6			8818 #	8815
	CMPS7			8821 #	8818
	CMPSX			8803 #	8795
	CMTR			10276 #	10126
	CMTR1			10284 #	10276
	CNV01			8411 #	8412
	CNV02			8413 #	8411
	CNV2WD			8401 #	8628
	COMPEA			3975 #	3925
	CONO			9632 #	9607	9618
	CONS			9630 #	9609	9610	9620	9621
	CONT			3825 #
	D2BPF			11077 #	10901
	DASMD			5933 #	5921	5922	5923
	DB2WD			8616 #	8842
	DBABT			8883 #	8870	8876
	DBIN			8842 #	8557
	DBIN2			8875 #	8869
	DBIN3			8878 #	8875
	DBINLP			8865 #	8879
	DBLST			4381 #	6727	6743	7033
	DBS1			8855 #	8849
	DBS2			8857 #	8853
	DBS3			8861 #	8859
	DBST			8853 #	8851
	DBXIT			8890 #	8867
	DDIV			5931 #	5924
	DDIV0			5985 #	5931
	DDIV1			5994 #	5998	5999
	DDIV2			6001 #	5995
	DDIV3			6014 #	6005	6007
	DDIV4			6018 #	6015
	DDIV6			6023 #	6020
	DDVLP			5903 #	5903	5904	5905	5906	6018	9004
	DDVSUB			5905 #	6679	6934	8999	9002	9006
	DDVX1			6029 #	6026
	DDVX2			6031 #	6029	6030
	DEAIND			8192 #	7775	8188
	DEPBYT			7786 #	7768
	DEPOWG			7788 #	7812	7813	7814	7815	7816	7817	7826	7827	7828	7829	7830
				7844	7845
	DEPTWG			7772 #	7766
	DEXCHK			10429 #	10393	10409
	DFAS			6547 #	6549
	DFAS1			6568 #	6547
	DFAS2			6570 #
	DFAS3			6585 #	6572
	DFAS4			6591 #
	DFAS5			6592 #	6586	6599	6600
	DFAS6			6595 #	6577
	DFDV			6660 #	6561
	DFDV1			6676 #	6660	6662
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-21
; 							Cross Reference Listing					

	DFLOAT			6541 #	6534	6535	6536	6537
	DFMP			6625 #	6553
	DFMP1			6630 #	6625	6627
	DFMP2			6647 #	6648
	DISM			4857 #	4827	4829
	DIV			5779 #	5772	5773	5774	5775
	DIV+			5875 #	6668	6921
	DIV-			5874 #	6168	6670	6923
	DIV1			5809 #	5781
	DIV2			5816 #	5786
	DIVLP			5872 #	5848	5857	5872	5873	5874	5875	6025
	DIVS1			5839 #	5811	5818	5841	7930
	DIVS2			5842 #	5821	5844
	DIVS3			5847 #	5840	7928
	DIVS4			5856 #	5843
	DIVX			5889 #	5876	5877	5878	5879
	DLOAD			4377 #	7996
	DMOVEM			4393 #	4387
	DMOVE			4374 #	4367
	DMOVNM			4394 #	4388
	DMOVN			4373 #	4368
	DMUL1			5966 #	5968
	DMUL2			5972 #	5967
	DMULT			5954 #	5948
	DMVM1			4398 #	4393	10229
	DNHI			6724 #	6694
	DNNEG			6709 #	6688
	DNNEG1			6714 #	6710
	DNORM			6685 #	6593	6650	6673	6706	6712	6715	6716
	DNSHFT			6703 #	6728
	DNTRY			6650 #	6583	6724
	DNZERO			6727 #	6685
	DODIAG			9798 #
	DPB			7758 #	7751
	DPB1			8362 #	9217	10476
	DPB2			8368 #	8364
	DPEA			8182 #	7763	7773	8194
	DRND1			6731 #	6699
	DROUND			6698 #	6696	6700
	DSTAC			4124 #
	DTEVEC			10363 #	10360
	EBUSI			9701 #	10404	10464
	EBUSO			9702 #	9647	10390	11044
	EBUSW			9679 #	9681
	EBUSX			9676 #	9701	9702
	EDDISP			9294 #
	EDDSNG			9427 #	9435
	EDEX0			9414 #	9324
	EDEX1			9452 #	9449	9455
	EDEX2			9434 #	9415
	EDEXMD			9417 #
	EDEXX			9447 #	9427
	EDFL1			6764 #	6767
	EDFLDS			9380 #	9315
	EDFLOT			6758 #	6751	6752	6753	6754
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-22
; 							Cross Reference Listing					

	EDFLTX			9508 #	9505
	EDFLT			9503 #	9390	9490
	EDFLT1			9516 #	9503	9504	9506
	EDFPUT			9471 #	9477
	EDIT			9272 #	8556
	EDIT1			9287 #	9285
	EDITLP			9289 #	9374
	EDMPUT			9472 #	9402
	EDMSG			9400 #	9296
	EDNOP			9343 #	9297	9298	9299	9308	9345	9395
	EDNXT1			9356 #	9344	9368	9371	9393	9453
	EDNXT2			9367 #	9356
	EDNXT3			9374 #	9360	9364
	EDOPR			9308 #	9295
	EDSEL			9462 #	9313
	EDSEND			9395 #	9380	9471
	EDSF1			9477 #	9467
	EDSFIL			9467 #	9400
	EDSFLT			9488 #	9468	9493
	EDSKPT			9339 #	9301	9303
	EDSKP			9345 #	9304
	EDSPUT			9469 #	9472	9494
	EDSSIG			9388 #	9314
	EDSTOP			9331 #	9312	9470
	EDVCHK			6938 #	6933	6939
	EDVCH1			6942 #	6938
	EDVCH2			6947 #
	EDVCH3			6950 #
	EEOV			7083 #	7076	7080
	EF1			6775 #	6765
	EF10			6847 #	6838
	EF11			6854 #	6846	6852
	EF12			6858 #	6844	6850
	EF3A			6787 #	6783
	EF3B			6790 #	6788
	EF5			6799 #	6784
	EF5A			6829 #	6797	6805
	EF5B			6807 #	6793	6802
	EFDV0			6913 #	6773
	EFDV1			6932 #	6917	6918
	EFIW			3953 #	4006
	EFMP			6867 #	6770
	EFMP1			6870 #	6867
	EFMPP1			6890 #	6891
	EFMPP2			6893 #	6890
	EFMPP3			6902 #	6898	6899
	EIGHT7			8033 #	8024
	EMTR			10275 #	10124
	EMTR1			10283 #	10275
	ENFNL0			7074 #	7084
	ENFNL1			7086 #	7073	7075
	ENHI			7031 #	7005
	ENNEG			7021 #	7003
	ENNEG1			7026 #	7022
	ENORM			7000 #	6856	6908	6929	6995	7019	7024	7027	7029	7094	7325	7405
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-23
; 							Cross Reference Listing					

				7416	7447
	ENSHFT			7015 #	7034
	ENTRY			7094 #	7031
	ENZERO			7033 #	7001
	EQV			4498 #	4491	4492	4493	4494
	ERND1			7036 #	7010
	ERND2			7050 #
	EROUND			7009 #	7007	7012
	ESEND			9647 #	10351
	EXCH			4211 #	4205
	EXMSK			3940 #	3890
	EXPD			6610 #	6568
	EXPD1			6615 #	6612
	EXPDIF			6816 #	6782	6787
	EXT01			8603 #	8601	8611	8917
	EXT02			8611 #	8602
	EXT2			8508 #	8496	8581	8582
	EXT2WD			8599 #	8553	8651	9272
	EXT3			8516 #	8510	8518
	EXTEND			6366 #	6324
	EXTF1			8465 #	6367
	EXTF2			8471 #
	EXTI			8502 #	8473	8474	8475	8476	8498	8499
	EXTI2			8504 #	8502
	EXTLA			8496 #	8471
	EXTXA			8473 #	8505
	FAD			6065 #	6042	6044	6045
	FADR			6082 #	6047	6049	6050	6066
	FADRI			6080 #	6048
	FAS			6092 #	6083	6086
	FAS1			6098 #	6094
	FAS2			6100 #	6096
	FAS3			6106 #	6100
	FAS5			6109 #	6103	6104
	FDV			6068 #	6144	6146	6147
	FDVCHK			6261 #	6166	6262	6678
	FDVCK1			6264 #	6261	6951
	FDVNEG			6190 #	6177	6191
	FDVR			6162 #	6068	6149	6151	6152
	FDVRI			6161 #	6150
	FINI			4118 #	4109	4112	4113	4134	4665	4812	4940	5124	5980	8899
	FIX			6353 #	6323
	FIX1			6377 #	6350	6354
	FIX2			6387 #	6385
	FIXR			6349 #	6326
	FLGTST			8568 #	8552	8560
	FLTR			6332 #	6327
	FMP			6067 #	6115	6117	6118
	FMPR			6133 #	6067	6120	6122	6123
	FMPRI			6132 #	6121
	FPNO			6069 #	6043	6053	6116	6145	8115
	FSB			6066 #	6052	6054	6055
	FSBR			6085 #	6057	6059	6060
	FSBRI			6081 #	6058
	FSC			6316 #	6279
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-24
; 							Cross Reference Listing					

	GETEEB			9720 #	4988	9734	9741	9768	9771	10102	10131	10161	10165	10216	10232
				10235	10244	10247	10256
	GETSC			8379 #	8963	9401
	GETSRC			9160 #
	GLBIND			8216 #	8210
	GSRC			9159 #	8735	9092
	GSRC1			9174 #	8799	9463
	GSRC2			9182 #	9175	9185
	GSRC3			9184 #	9190
	GSRC4			9198 #	9187
	GSRC5			9192 #	9189
	GSRC6			9195 #	9192
	GTAR08			10425 #	4140	10479
	GTCST			10767 #
	GTDBR			4401 #	4378	4394
	GTEBUS			9668 #	9634
	GTEEB1			9721 #	5372
	GTST			8386 #	8626
	GTST1			8389 #	8386
	GUDSIZ			7768 #	7769	8183	8186	8198	8201
	HALT1			4957 #	4962
	HALT2			4961 #	4958
	HLL			4315 #	4220	4268	7840
	HLLE			4356 #	4254	4255	4256	4257
	HLLO			4360 #	4244	4245	4246	4247
	HLLZ			4359 #	4234	4235	4236	4237
	HLR			4321 #	4271	4272
	HLRE			4349 #	4301	4302	4303	4304
	HLRM			4328 #	4273
	HLRO			4353 #	4291	4292	4293	4294
	HLRS			4329 #	4274
	HLRZ			4352 #	4281	4282	4283	4284	7732
	HRL			4318 #	4229	4230
	HRLE			4342 #	4259	4260	4261	4262
	HRLM			4324 #	4231	7839
	HRLO			4346 #	4249	4250	4251	4252
	HRLS			4325 #	4232
	HRLZ			4345 #	4239	4240	4241	4242
	HRR			4313 #	4226	4266	4267
	HRRE			4335 #	4296	4297	4298	4299
	HRRO			4339 #	4286	4287	4288	4289
	HRRZ			4338 #	4276	4277	4278	4279	7733
	IBP			7862 #	7858
	IBPS			8274 #	10483
	IBPTST			7864 #
	IDIV			5783 #	5767	5768	5769	5770
	IDIV1			5784 #	5805
	IDIV2			5802 #	5783
	IDPB			7755 #	7750
	IDST			9222 #	8830	9214
	IDST2B			9261 #	9240
	IDST2			9240 #	9223	9246
	IDST3			9246 #	9241
	IDST4			9254 #	9242
	IDST5			9248 #	9244
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-25
; 							Cross Reference Listing					

	IDST6			9251 #	9248
	IDST7			9257 #	9254
	IDST8			9258 #	9255
	IFNOP			4098 #	6169	6377	6680	6935	9730	10099	10193	10199
	IFSTAC			4100 #	5041
	IHALT			4947 #	4817
	ILDB			7667 #	7662
	ILLIND			4008 #	3967	3968	3969	3970	8483	8484	8485	8486
	ILLOWG			8115 #	7735	7842
	IMUL			5679 #	5662	5664	5665
	IMUL2			5689 #	5690
	IMULI			5670 #	5663
	INCRBP			8067 #	7668	7756	7865
	INDR1			4005 #	4002
	INDRCT			4002 #	3954	3956	3958	3960	3978	3980
	INTRPT			3896 #
	IO			9634 #	9604	9606	9608	9615	9617	9619	9658	9659
	IOCHK			9711 #	9628	9727	9736	9745	9797	10098
	IOFET			9650 #	9640
	IOPGF			11038 #	10993
	IOR			4478 #	4471	4472	4473	4474
	IOTEND			9638 #	9826	10174
	ISOEXP			7197 #	6764	6768	6772	6775	6875	6942	7277	7420
	JFCL			4934 #	4806
	JFFO			5516 #	5501
	JFFO1			5522 #	5523
	JFFO2			5527 #	5528
	JRA			5131 #	5104
	JRA1			5031 #	5141	5142
	JRAB			5142 #	5140
	JRST			4812 #	4805
	JRST2			4815 #
	JRSTF			4849 #	4815	4862
	JSA			5129 #	5103
	JSA1			5145 #	5129
	JSP			5114 #	5102
	JSP1			5123 #	5114
	JSR			5116 #	5101
	JSR1			5120 #	5118
	JSTAC			5033 #	5028	5035
	JUMP			4760 #	4749	4750	4751	4752	4753	4754	4755	4756
	KEEPCL			10196 #	10186	10198
	KEEPME			10182 #	10116
	KMOVED			10757 #	10751
	L-BDEC			5292 #	5171	5172
	L-CMS			5259 #	5160	5161	5162	5165	5166	5167
	L-DBIN			5290 #	5169	5170
	L-DFLT			7408 #	7267
	L-DFSC			7419 #	7268
	L-DITE			7241 #	5188
	L-EDBL			7312 #	7254
	L-EDIT			5261 #	5164
	L-EFSC			7245 #	5190
	L-FLTR			7394 #	7266
	L-FSC2			7434 #	7440	7441
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-26
; 							Cross Reference Listing					

	L-FSC3			7443 #	7436	7439
	L-GTDI			7233 #	5184
	L-GTDR			7237 #	5186
	L-GTPI			7228 #	5181
	L-GTSI			7235 #	5185
	L-GTSP			7271 #	7253
	L-GTSR			7239 #	5187
	L-GTS1			7283 #	7281
	L-GTS6			7287 #	7285
	L-GTS7			7307 #	7304
	L-MVS			5294 #	5174	5175	5176	5177
	L-SFTE			7231 #	5183
	L-SITE			7243 #	5189
	L-XBLT			7226 #	5180
	LDB			7670 #	7663
	LDB1			8337 #	8832	9176	10468
	LDB2			8342 #	8338
	LDBRL			4402 #
	LDEA			8148 #	7675	7680	8159
	LDIMM			10722 #	10733
	LDIND			10655 #	10633	10656	10727
	LDIND1			10661 #	10655
	LDPCS			4922 #	4916
	LDPT			10739 #	10724
	LDPT1			10751 #	10742	10753
	LDSHR			10731 #	10725
	LEAIND			8157 #	7682	8153
	LSH			5513 #	5500
	LSH1			5572 #
	LSH2			5574 #	5577
	LSH3			5579 #	5575	5581
	LSHC			5571 #	5504
	LUUO			5269 #	5201	5202	5203	5204	5205	5206	5259	5290	5292	5294	7226
				7228	7231	7233	7235	7237	7239	7241	7243	7245
	LUUO1			5271 #	5269
	LUUO2			5283 #	5273
	LUUO3			5286 #	5284
	MAP			4981 #	4975
	MAP2			4993 #	10948
	MBREL			9730 #	9737
	MEMNRM			6987 #	6789
	MOVE			4181 #	4145	4146	4152	4175	4183	4227	4269	4436	4442	4443	4457
				4458
	MOVELP			8677 #	8682
	MOVEM			4210 #	4150
	MOVF1			8752 #	8699	8745	8759
	MOVF2			8755 #	8753	8978
	MOVF3			8758 #	8755
	MOVM			4175 #	4164	4165	4166	4167
	MOVN			4178 #	4159	4160	4161	4162
	MOVNEG			4183 #	4178
	MOVPUT			8680 #
	MOVRJ			8698 #	8671
	MOVS			4172 #	4154	4155	4156	4157	4324	4328
	MOVS2			8674 #	8668
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-27
; 							Cross Reference Listing					

	MOVSTX			8736 #	8678
	MOVST1			8733 #	8670	8700	8739
	MOVST2			8743 #	8736
	MTRCI			10246 #	9597	9598	9599
	MTRCO			10243 #	9596
	MTRCO1			10250 #	10245
	MTRDBL			10300 #	10227	10290
	MTRINT			3893 #	4003	4959	5285	5300	5425	8158	8193	8327	8503
	MTRREQ			10263 #	3893
	MTRRQ0			10270 #	10266
	MTRRQ1			10288 #	10281	10282	10283	10284
	MUL			5701 #	5694	5695	5696	5697
	MUL1			5706 #	5707
	MULM			5743 #	5738	5740	5756	5757
	MULP			5726 #	5724	5734	5736	5752	5754	5762	5954	6894
	MULREE			5762 #	5963	6632	6647	6883
	MULSUB			5723 #	5681	5703	6137
	MUUO			5335 #	5210	5211	5212	5213	5214	5215	5216	5217	5218	5219	5220
				5221	5222	5223	5224	5225	5226	5227	5228	5229	5230	5231	5232
				5233	5234	5235	5236	5237	5238	5239	5240	5241	7256	7257	7258
				7259
	MUUOF			5372 #	5345	5373	5374	5375
	MVABT			8686 #	8681
	MVABT1			8688 #	8689
	MVABT2			8691 #	8688
	MVEND			8693 #	8744
	MVSK1			8707 #	8704
	MVSK3			8712 #	8709
	MVSK4			8739 #	8710
	MVSKP			8703 #	8698	8705	8707
	MVSO3			8673 #	8669
	MVST			8650 #	8561
	MVST2			8665 #	8663
	NEGADJ			7938 #	7947
	NEXT			3879 #	4096	4118
	NO.CST			10705 #	10672
	NOCST0			10708 #	10703
	NOCST1			10710 #	10708
	NODIVD			5794 #	6019	7895
	NOP			4109 #	4099	4694	4760	4861	4890	4914	4918	5120	5353	5518	5548
				5605	5794	7219	7220	7282	7286	7483	7573	7623	7866	8803	8970
				9639	9641	9650	10392
	NOP2			4113 #
	NOT.WR			10821 #	10815
	NOTWR			10797 #	10772	10818
	NOUPDT			10812 #	10759
	NXTOWG			8112 #	8114	8118	8122	8126	8130
	NXTWRD			8280 #	8276
	ODHIGH			7823 #	7807
	ODLOW			7810 #	7805
	OFSHFT			8045 #	8043
	OPDISP			9311 #	9309
	ORCA			4519 #	4512	4513	4514	4515
	ORCB			4549 #	4542	4543	4544	4545
	ORCM			4539 #	4532	4533	4534	4535
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-28
; 							Cross Reference Listing					

	OVER6			8118 #	8102
	OVER7			8122 #	8107
	OVER8			8126 #	8105
	OVER9			8130 #	8109
	OVTEST			7216 #
	OVTST1			7214 #
	OVTST2			7220 #	7216	7218
	OWGCOM			8040 #	8020	8022	8023	8026	8030	8034	8035	8038
	OWGDPB			7804 #	7761	7765
	OWGHIG			7716 #	7700
	OWGINC			8099 #	8067
	OWGLDB			7699 #	7673	7677
	OWGLOD			7688 #	7705	7706	7707	7708	7709	7710	7719	7720	7721	7722	7723
				7737	7738
	OWGLOW			7703 #	7699
	OWLCPY			7999 #	7883
	OWLINC			8083 #	8078
	PAGBI			10138 #	9556
	PAGBO			10097 #	9558
	PAGCI			10164 #	9561	9562	9563
	PAGCO			10160 #	9560
	PAGD2			10124 #	10113
	PAGDI			10130 #	9557
	PAGDO			10101 #	9559
	PCA			4920 #	4833	5279
	PCTXT			10147 #	5347	10136
	PF1			10532 #	10529
	PF2			10541 #	10539
	PF24			3967 #	8212	8311	8312	8313	8314
	PF4			10572 #	10550	10566
	PFPAR			10560 #	10543	10548
	PFPAR1			10562 #	10560
	PFPAR2			10563 #	4011
	PFT			10873 #	10630	10647	10685	10693	10709	10720	10746	10783	10797
	PGF1			10968 #	10893
	PGF2			10973 #	10968
	PGF4			10990 #	10973
	PGFAC0			11055 #	7472	9375	11098
	PGRF1			10582 #	10598
	PGRF2			10616 #	10583
	PGRF3			10622 #	10617	10619
	PGRF5			10669 #	10632
	PGRF6			10688 #	10684
	PGRST1			10849 #	10842	10851
	PGRST2			10853 #	10850
	PGRST3			10866 #	10854
	PHYS1			10440 #	10397
	PHYS2			10445 #	10373
	PHYS3			10450 #	10419
	PIBI			9794 #	9545
	PIBO			9796 #	9547
	PIBPA			10479 #	10463	10473
	PIBYTE			10463 #	10345
	PICI			9819 #	9550	9551	9552
	PICO			9815 #	9549
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-29
; 							Cross Reference Listing					

	PICOM1			9829 #	9816	9819
	PICOM2			9826 #	9817
	PICYC1			10334 #	3894	3896
	PICYC2			10354 #	3880
	PIDATI			10404 #	10344
	PIDATO			10388 #	10343
	PIDI			9782 #	9546
	PIDISP			10339 #
	PIDO			9781 #	9548
	PIDONE			10391 #	10382	10383	10411	10414	10415	10421	10451	10452	10477	11045
	PIDPB			10472 #	10465
	PIFET			10392 #	9651	10268
	PIIBP			10482 #	10467	10474
	PIINCR			10381 #	10342
	PIINST			10358 #	10279	10339	10340	10354
	PILD			10367 #	10388	10429	10432	10482
	PIOUT			10390 #	10399	10441	10442	10469
	PIST			10414 #	10407
	PIVECT			10356 #	10341
	PMTR1			10282 #	10274
	POP			5069 #	5005
	POP2			5091 #	5069
	POP3			5095 #	5093
	POPJ			5071 #	5006
	POPJ2			5081 #	5088
	POPJ3			5082 #	5089
	POPJ4			5083 #	5081
	POPJT			5088 #	5076
	POSADJ			7921 #	7918
	PSTOR			10419 #	10410
	PTLOOP			10190 #	10182	10192
	PUSH			5023 #	5004
	PUSHJ			5025 #	5003
	PUTDST			9214 #	8680	8737	8752	9050	9469	9520
	PXCT			5427 #	5424
	RDEBRG			4987 #	9794
	RDEMTR			10309 #	10301	10303
	RDEX			10423 #	10389	10408
	RDMTR			10215 #	9580	9581	9592	9593
	RDMTR1			10226 #	10220	10221	10222	10223
	RDMTR2			10313 #	10310
	RDUMTR			10311 #	10305	10307
	RELEB			9683 #	9680
	RELEEB			9635 #	9735	9742	9774	9775	10106	10139	10240	10250
	RELMEM			7791 #	7811	7819	7825	7832	7838
	RESETP			9203 #	9196	9252
	RET1			9717 #	8977
	RET2			8627 #	8650
	ROT			5534 #	5499
	ROT3			5558 #	5561
	ROT4			5563 #	5559	5566
	ROTC			5555 #	5503
	ROTS			5299 #	3882	10991
	RSTF			4854 #
	RSTF0			4852 #	4849
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-30
; 							Cross Reference Listing					

	SECIMM			10632 #	10662
	SECPTR			10627 #	10622	10646
	SETCA			4508 #	4501	4502	4503	4504
	SETCM			4529 #	4522	4523	4524	4525
	SETEBR			10179 #	10162
	SETFLG			9522 #	8942	9519
	SETO			4559 #	4552	4553	4554	4555
	SETPC			5353 #	3822
	SETZ			4413 #	4406	4407	4408	4409	7704	7712	7718	7725	7731
	SEVEN9			8038 #	8025
	SFET1			9335 #	8746	9333
	SGNEXT			7204 #	6829	6832	6879	6886	6914	6950	7307	7446
	SHFLOD			4095 #	7687	7689
	SHIFT			8350 #	4936	5610	5979	6858	6904	8342	8380	8405	10179	10363
	SHR1			5541 #	5514	5545
	SHR2			5546 #	5542	5547
	SIZE8D			7844 #	7820	7821	7822	7823
	SIZE8L			7737 #	7713	7714	7715	7716
	SIZE9D			7845 #	7833	7834	7835	7836
	SIZE9L			7738 #	7726	7727	7728	7729
	SKIP			4712 #	4701	4702	4703	4704	4705	4706	4707	4708	4728	4743
	SMALDV			7930 #	7924
	SN1			6449 #	6442	6455
	SNARFP			8093 #	8084
	SNATCH			8051 #	7970
	SNORM			6412 #	6110	6138	6179	6190	6333	6414	6416	6447	6465	7310
	SNR2			6415 #	6318
	SNZERO			6462 #	6413
	SOJ			4790 #	4779	4780	4781	4782	4783	4784	4785	4786
	SOS			4743 #	4732	4733	4734	4735	4736	4737	4738	4739
	SRCMOD			9091 #	8677	8866	9146	9148	9149
	SRND2			6498 #	6478
	SRND3			6501 #
	SRND4			6502 #	6497
	SRND5			6512 #	6463
	SROUND			6478 #	6417	6419	6421	6423	6450	6452	6453
	ST0			4089 #	4172	4181	4313	4315	4318	4321	4325	4329	4338	4339	4345
				4346	4352	4353	4359	4360	4413	4423	4433	4452	4468	4478	4488
				4498	4508	4519	4529	4539	4549	4559	5644	5657	5706	5797	5799
				5804
	ST2AC			4091 #	4092	5632	5943	5945	6033	6035	7424
	ST6			4097 #	4990	5689	6512	6516
	STAC			4096 #	4108	4193	4194	4666	4667	4668	5083	5123	5146	5412	6388
				8052	8693
	STAC1			4134 #	6526
	STAC4			8899 #
	START			3822 #	4968
	STBOTH			4101 #
	STCST			10787 #	10779
	STD1			4125 #	4091	4381	6741	7090
	STDAC			5567 #	4377
	STMAC			5038 #	4211	5023	5095	5416	5418
	STMEM			4099 #	4399	7792	9750	9802
	STOR34			8894 #	8885	8891
	STORAC			4108 #	4101	4775	4791	4799	4996	5034	5630	6386	7274	7991	7999
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-31
; 							Cross Reference Listing					

				9335
	STORTG			8090 #	8088
	STR2WD			8634 #	8600	8604	8617
	STRAC1			6526 #	5529	5567	5582	7478	9032
	STRAC3			5980 #
	STRNC			6497 #	6482
	STRPF			11091 #	10932	10936
	STRPF1			11093 #	11100
	STRPF2			11098 #	8713	11082	11093
	STRPF3			11096 #	11089
	STRPF4			11100 #	10944	10958
	STSELF			4107 #	4094	4713	5039
	SUB			5656 #	5649	5650	5651	5652
	SWEEP			9726 #	9567	9568	9569	9570	9571	9572	9573	9574
	TAKINT			4003 #	4997	9692	10972
	TDC			4667 #
	TDN			4665 #	4455	4456	4564	4565	4573	4574	4656	4659
	TDO			4668 #
	TDX			4655 #	4568	4577	4582	4586	4591	4595	4600	4604	4609	4613	4618
				4622	4627	4631
	TDXX			4663 #	4566	4570	4575	4579	4584	4588	4593	4597	4602	4606	4611
				4615	4620	4624	4629	4633
	TDZ			4666 #
	TIMBO			10255 #	9582
	TIMBO1			10239 #	10259
	TIMCI			10234 #	9585	9586	9587
	TIMCO			10232 #	9584
	TIMCO1			10106 #	10233
	TIMDO			10253 #	9583
	TMTR1			10281 #	10273
	TRAP			3926 #
	TRAPX			3932 #	3926	3928
	TRNABT			9121 #	9125
	TRNAR			9107 #	9465
	TRNFNC			9119 #	9109	9111	9122	9123	9124	9127
	TRNNS1			9145 #	9135
	TRNNS2			9147 #	9145
	TRNRET			9130 #	9120
	TRNSIG			9124 #	9126
	TRNSS			9135 #	9131
	TRNSS1			9151 #	9136
	TST2WD			8626 #	8599	8603	8616
	TSX			4658 #	4569	4578	4583	4587	4592	4596	4601	4605	4610	4614	4619
				4623	4628	4632
	TSXX			4661 #	4567	4571	4576	4580	4585	4589	4594	4598	4603	4607	4612
				4616	4621	4625	4630	4634
	TWGCPY			7991 #	8000
	TWGDUN			7984 #	7982
	UNHALT			4967 #	4961
	UP			7558 #	7547
	UP1			7564 #	7558	7566
	UP1PX			7614 #	7600	7616
	UP2			7568 #	7563	7564	7565
	UP2PX			7618 #	7614	7615
	UP3			7570 #
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-32
; 							Cross Reference Listing					

	UP3PX			7620 #
	UP4			7573 #	7570
	UP4PX			7623 #	7620
	UPPX			7600 #
	UUO			5334 #	4816	4828	4830	4838	4839	4852	4857	4879	4947	4993	5159
				5245	5246	5392	5505	6069	6276	6277	8028	8414	8465	8469	8571
				9428	9437	9594	9595	9668	9711	9720	9782	9829	10138	10253
	UUO107			4946 #
	UUOC1			5358 #	5356
	UUOC2			5365 #	5277	5341
	UUOCOM			5356 #	5271	5336
	UVERS			4140 #	9747
	UXCT			5428 #	4967
	WGRANT			9691 #	9669	9695	9830
	WGRNT1			9694 #	9691
	WGRNT2			9696 #	9694
	WRFAIL			10818 #	10821
	WRHPT			10822 #	10809	10816
	WXFER			9681 #	9677
	XBLT			7457 #	7248
	XBLT3			7461 #	7459
	XBLT4			7483 #	7461
	XBLTDN			7467 #	7475
	XBLTD1			7474 #	7471
	XBLTPF			11060 #	7498	10953
	XBLTUP			7489 #	7497
	XBLTU1			7495 #	7485
	XBLTX			7478 #	7491
	XCT			4979 #	4974
	XCT1			5424 #	4979
	XCTGO			3924 #	3927	3938	5428
	XCTW			3938 #	3825	5286	10358	10359	10361	10364
	XFERW			5046 #	5031	5276	5935	6002	6543	6759	7398	7980	9517	10151	10169
				10314	10367	10368	10446	10447
	XHLLI			4198 #	4222
	XJRSTF1			4892 #	4819
	XJRSTF2			4913 #	4907	4910
	XJRSTF3			4916 #	4913
	XLATE			9105 #	9095
	XMOVEI			4191 #	4438
	XMOVEI1			4193 #	4199
	XOR			4468 #	4461	4462	4463	4464
	XPCW1			4879 #	4821
	XPCW2			4902 #	4888
	XSFM1			4865 #	4832
	XSFM2			4890 #	4868
(D) J				2288 #
(U) KLPAGE			1944 #
	OPTIONS			1946 #	9749
(U) LONGPC			1951 #
	OPTIONS			1953 #	9749
(U) MACRO%
	A INDRCT		2315 #	3953	3955	3957	3959	3977	3979
	A READ			2316 #	3962	3963	3964	3965	3975	3976
	ABORT INSTR		2321 #	10288	10994
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-33
; 							Cross Reference Listing					

	AC0			2322 #	5073	5091	5407	7768	7804	7806	7913
	AC0_AR			2323 #	4091	4096	4124	4381	5124	5548	5567	5582	5966	6576	6588
				6740	6796	6830	7088	7220	7474	7476	7490	7492	7554	7916	7919
				8818	8884	9003	9005	9032	11055	11086	11095
	AC1_AR			2324 #	4134	5518	5973	6020	6021	6596	6667	6669	6797	6803	6920
				6922	7984	8611	8620	11060	11087
	AC2_AR			2325 #	5977	6031	7478	8602	8619	11061
	AC3_AR			2326 #	5960	5980	6033	6034	8688	8712	8744	8814	8859	8860	8894
				8931	8943	8974	11077	11093	11096
	AC4			2328 #	8603	8609	8849	8899	11082
	AC4_AR			2332 #	8609	8899	11082
	AC5			2334 #	8607
	AC5_AR			2338 #	8607
	AD FLAGS		2339 #	4183	4379	4395	4728	4743	4775	4791	5644	5657	5943	5945
	AD LONG			2340 #	6034	6388	8936
	ADMSK			2341 #	3890	4865	4880	5027	5118	5123	5272	5353	5358	5362	5366
				8636	8637	10337	10373	10397	10419	10434	10455	11006
	AR+ARX+MQ_0.M		2578 #	6462	7424	8734	9091
	AR+MQ_0.M		2579 #	8868
	AR+MQ_0.S		2580 #	7009
	AR0-3 DISP		2582 #	7673	7677	7761	7765	7881	8067	9108	10388	10407	10629	10718
	AR0-8_#			2583 #	4140	5373	5374	5375	6817	6871	6925	7061	7279	7281	7287
				7320	7401	7414	8661	8844	8966	9749	10113	10125	10207	10753
	AR0-8_# AND AR0-8	2584 #
	AR0-8_# OR AR0-8	2585 #	10821
	AR0-8_#+SC		2586 #	8467
	AR0-8_-SC-1		2587 #
	AR0-8_FE		2588 #	8666	8851	10575
	AR0-8_FE OR #		2589 #	8852
	AR0-8_FE OR SC		2590 #	10597
	AR0-8_FE#		2591 #	8849
	AR0-8_FE+#		2592 #	10360	10424	10479
	AR0-8_FE+1		2593 #
	AR0-8_FE+SC		2594 #
	AR0-8_FE-SC		2595 #
	AR0-8_FE.M		2596 #	8971
	AR0-8_FE.R		2597 #
	AR0-8_SC		2598 #	8379	8403	10576
	AR0-8_SCAD		2599 #	8379	8403	8666	8851	10575	10576
	AR0-8_SCAD#		2600 #	8467	8852	10360	10424	10479	10821
	AR0-8_SCAD.M		2601 #	8971	10597
	AR0-8_SCAD.R		2602 #
	AR12-17_PC SEC		2603 #	5137	5142
	AR12-17_PREV SEC	2604 #	4866	4883	5360	10148	11009
	AR18-21 DISP		2605 #	9110
	ARL+ARX+MQ_0.M		2629 #
	ARL+ARX_0.M		2630 #	10226	10289
	ARL_0S			2610 #	4338	4352
	ARL_0.C			2607 #	9654
	ARL_0.M			2608 #	5140	5141	8510	9048	9051	9284	9362	9388	9417	9488	10632
				10633	10634	10725	10726	10741
	ARL_0.S			2609 #	5074	5077	10250
	ARL_1S			2612 #	4339	4353	8518
	ARL_1S.M		2613 #
	ARL_1.M			2611 #	4193	5356
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-34
; 							Cross Reference Listing					

	ARL_AC0			2614 #	4313	4321	4328
	ARL_ARL			2615 #	4214	4315	4329	4359	4360	5363	7973	9774	9825
	ARL_ARL.M		2616 #	10101
	ARL_ARL.S		2617 #	4199	7917
	ARL_ARR			2618 #	4318	4324	4325	4345	4346	5406	7552	7606	9632	11054
	ARL_ARR.M		2619 #	9767	9815	10160	10243
	ARL_ARR.S		2620 #	9748
	ARL_ARX (ADX)		2621 #	10577
	ARL_ARXL		2622 #	4867	5146	7977	7983	10240	11010
	ARL_ARXL.M		2623 #
	ARL_BRL			2624 #	4884	8089	10139
	ARL_BRL.M		2625 #	7534
	ARL_BRL.S		2626 #	5349
	ARL_SHIFT		2627 #	10722
	ARL_SIGN		2628 #	5411
	ARR+MQ_0.S		2650 #	7917	7920
	ARR_0S			2635 #	4345	4359
	ARR_0.C			2632 #
	ARR_0.M			2633 #	10173
	ARR_0.S			2634 #	5524
	ARR_1S			2636 #	4346	4360
	ARR_AC0			2637 #	4214	4315	4318	4324
	ARR_AC0.S		2638 #	4199
	ARR_AR+1		2639 #	8083	9184
	ARR_AR+BR		2640 #	7977
	ARR_ARL			2641 #	4321	4328	4329	4352	4353	5140	5141	7534	10101	10577	10582
	ARR_ARR			2642 #	4193	4313	4325	4338	4339	4867	4884	5406	5411	9632	9767
				9815	10160	10243	11010
	ARR_ARX			2643 #
	ARR_ARX+1		2644 #
	ARR_ARX+BRX		2645 #
	ARR_ARX+BR		2646 #	7973	7983
	ARR_ARX-1		2647 #
	ARR_BR			2648 #
	ARR_PC+1		2649 #	5146
	ARX+MQ_0.M		2756 #	5519	5779	5784	6316	8918
	ARX+MQ_0.S		2757 #	6162
	ARX0-3 DISP		2760 #	10289
	ARX0_AR35		2758 #
	ARX0_MQ35		2759 #	8795
	ARX_-AC0		2655 #
	ARX_-BRX		2656 #	7919	7938
	ARX_-FM[]		2657 #
	ARX_-SLEN		2658 #	11078
	ARX_-2+MQ0		2654 #	7888
	ARX_0S			2662 #	4935	5617	5723	5947	6001	6083	6085	6133	6191	6596	6630
				6727	6882	7033	7862	7882	7915	8023	8026	8035	8038	8800	8848
				8853	9030	10160	10171	10206
	ARX_0.C			2659 #
	ARX_0.M			2660 #	5513	6413	7323	9044
	ARX_0.S			2661 #
	ARX_1B1			2664 #	6350
	ARX_1B17-1		2665 #	5346	10135
	ARX_1S			2666 #	3881	6481	6902	8029	8668	8859	9273
	ARX_1			2663 #	5406	6733	7087	8033	8039
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-35
; 							Cross Reference Listing					

	ARX_2+MQ0		2667 #	7036	7881	8019	8021
	ARX_AC0			2669 #	5534	8929	9274
	ARX_AC0 COMP		2670 #
	ARX_AC0+1		2671 #	5023	5028
	ARX_AC1			2672 #	4393	4394	5555	5571	5989	6597	7430
	ARX_AC2			2673 #	7248
	ARX_AC3			2674 #	5931	5975	9047
	ARX_AC4			2675 #	8849
	ARX_AR			2677 #	4211	4213	4958	5589	5591	5595	5609	5796	5798	5809	5937
				6101	6104	6332	6367	6568	6570	6573	6676	6836	6838	6840	6854
				6932	6992	7057	7072	7074	7276	7314	7411	7425	7528	7667	7670
				7686	7755	7758	7981	8042	8044	8086	8093	8343	8380	8404	8411
				8662	8665	8698	8736	8770	8796	8814	8816	8868	8927	8993	9035
				9108	9182	9188	9199	9240	9243	9258	9261	9290	9362	9388	9395
				9488	9823	10124	10126	10154	10255	10363	10405	10425	10465	10484	10751
				10990	10992	11094
	ARX_AR (AD)		2678 #	5428	5543	5558	5560	5565	5576	7916	7975	9195	9251	10101
				10532	10533	10576	10758
	ARX_AR ANDCA BR		2680 #	8635
	ARX_AR AND ADMSK	2679 #	10434
	ARX_AR SIGN		2681 #	6354
	ARX_AR SWAP		2682 #	4906	4909	5129	5362	7931	9048	9110	9773	9821	10168	10237
				10270	10582	10767	10812
	ARX_AR*2		2683 #	7925
	ARX_AR*4 COMP		2684 #	8964
	ARX_AR*MSK		2685 #	9130
	ARX_AR+1		2686 #	8969
	ARX_AR+CBR		2688 #
	ARX_AR+FM[]		2690 #
	ARX_AR-1		2691 #	5091	8774	8818	8819
	ARX_AR-BR		2692 #
	ARX_AR-FM[]		2693 #
	ARX_AR-FM[]-1		2694 #
	ARX_ARX AND ADMSK	2696 #	10455
	ARX_ARX ANDC ADMSK	2697 #	4865
	ARX_ARX*-6		2698 #	5525
	ARX_ARX*.25		2699 #	6178
	ARX_ARX*.5		2700 #
	ARX_ARX*2		2701 #	4401	5936	6378	6544	6760	7303	7305	7399	7443	8855	9302
				10315
	ARX_ARX*2 COMP		2702 #	10723
	ARX_ARX*4		2703 #	7037	9300
	ARX_ARX*4 COMP		2704 #
	ARX_ARX*8		2705 #	5985	10147	10148
	ARX_ARX*BRX		2706 #	6503	6742	7091
	ARX_ARX*EXPMSK		2707 #
	ARX_ARX+1		2708 #	5528	7574	7624	7886	7891
	ARX_ARX+AC0		2709 #
	ARX_ARX+CBR		2711 #
	ARX_ARX+FM[]		2713 #	7913
	ARX_ARX-1		2714 #	5523	7462	7474	7989
	ARX_ARX-1 (AD)		2715 #	8703
	ARX_ARX-AR*4		2716 #	8041
	ARX_ARX-FM[]		2717 #
	ARX_ARX-FM[]-1		2718 #
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-36
; 							Cross Reference Listing					

	ARX_BR			2720 #	5599	5994	10643
	ARX_BR*2		2721 #	5990
	ARX_BR+1		2722 #	7490
	ARX_BRX			2723 #	4934	5269	5335	5613	5631	6582	6611	6740	7089	8608	8813
				10406
	ARX_BRX COMP		2724 #	6711	6714	7023	7026	7947
	ARX_BRX+1		2725 #	7492	8670	8700	8739
	ARX_DSTP		2726 #	8829	9214
	ARX_DSTP2		2727 #	9242	9436
	ARX_E1			2728 #
	ARX_FILL		2729 #	8604	8605
	ARX_FM			2730 #	8604	8605	8798	8829	8990	9160	9187	9214	9242	9436	9462
				10719	10842	10850	10854	10856	10921
	ARX_FM(VMA)		2733 #	3927
	ARX_FM[]		2731 #	7804	7806
	ARX_FM[]+1		2732 #
	ARX_MEM			2734 #	3938	4002	4003	4377	4378	5046	5075	5078	5339	7300	7786
				8157	8158	8192	8193	8326	8327	8362	8502	8503
	ARX_MQ-1		2735 #
	ARX_MQ-FM[]		2736 #
	ARX_MQ-FM[]-1		2737 #
	ARX_PC			2739 #	10578	11004
	ARX_PC+1		2740 #	4821	4832	5365
	ARX_SHIFT		2741 #	5299	5563	5579	5594	5625	5816	5819	5974	5978	5986	5992
				6003	6103	6381	6387	6445	6842	6849	7059	7688	7788	7790	7921
				7923	8045	8342	8369	8372	8920	10172	10300	10302	10304	10306	10454
				10632	10642	10726
	ARX_SRCP		2742 #	8798	9160	9462
	ARX_SRCP2		2743 #	9187
	ARX_SV.AR		2745 #	10850
	ARX_SV.ARX		2746 #	10854	10856	10921
	ARX_SV.BR		2747 #	10842
	ARX_SV.VMA		2748 #	10719
	ARX_T0			2750 #
	ARX_T2			2751 #	8990
	ARX_VMA HELD		2755 #	10578
	AR_(AR+2BR)*.25		2346 #	5753	6109
	AR_(AR+BR)*.25		2347 #	5735	5751
	AR_(AR-2BR)*.25		2348 #	5737
	AR_(AR-BR)*.25		2349 #	5739	5755
	AR_(ARX OR AR*4)*.25	2350 #
	AR_-AC0			2351 #
	AR_-AR			2352 #	6086	6516
	AR_-AR LONG		2353 #	5841	5844	6262	6549	6743	6766	6939	8937
	AR_-BR			2354 #	4183	5851	5861	6034	6716	6787	7028	8933	9000
	AR_-BR LONG		2355 #	4379	4395	5996	5999	6030	8892
	AR_-BR*2 LONG		2356 #
	AR_-BRX			2357 #	5796
	AR_-DLEN		2358 #
	AR_-FM[]		2359 #
	AR_-SLEN		2360 #	8686	11091
	AR_0.C			2361 #	4832	6902
	AR_0.M			2362 #	5576	8708	8969
	AR_0.S			2363 #	4882	5359	11008
	AR_0S			2364 #	4345	4359	4381	4398	4413	4950	4987	5344	5533	5723	5947
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-37
; 							Cross Reference Listing					

				6386	6478	6630	6727	6773	6870	6882	7033	7686	7688	7930	7931
				8342	8343	8665	8736	8848	8853	9030	9035	9401	10097	10112	10154
				10164	10168	10206	10209	10217	10234	10237	10246	10255	10270	10293	10300
				10302	10304	10306	10356	10363	10425	10431	10574	10590	11014	11077
	AR_1			2365 #	5783	8857	10768
	AR_1 LONG		2366 #	8939
	AR_1S			2367 #	4346	4360	4559	8040	8673	8860	8963
	AR_2			2368 #	9516
	AR_2(AR*BR)		2369 #	5839	5842	5847	5856	5872	5873	5874	5875	5903	5904	5905
				5906	6014	6016	7927	8879
	AR_2(AR+1)		2370 #	5527
	AR_2(AR+BR)		2371 #	5842	5847	5872	5875	5903	5906	6016
	AR_2(AR+BR) LONG	2372 #	8879
	AR_2(AR-BR)		2373 #	5839	5856	5873	5874	5904	5905	6014	7927
	AR_AC0			2375 #	4036	4211	4214	4315	4318	4324	4760	4790	5069	5071	5129
				5139	5513	5516	5534	5556	5572	5589	5591	5656	5679	5702	5785
				5803	5809	5937	5961	5992	6092	6135	6165	6317	6568	6591	6599
				6600	6640	6676	6775	6792	6829	6854	6874	6885	6932	6992	7419
				7444	7459	7529	8552	8560	8653	8770	8920	8993
	AR_AC0 COMP		2376 #	8843
	AR_AC0+1		2377 #	4775	4799	7471	7472
	AR_AC1			2378 #	6026	6027	6625	6626	6672	6846	6852	6853	6881	6928	7457
				8599	8616	8918
	AR_AC1 COMP		2379 #
	AR_AC1*2		2380 #	5554	5780	5933	6547	6660	6662	6807	6868	6917	6918	6991
	AR_AC2			2381 #	5987
	AR_AC3			2382 #	8554	8568	8652	8856	8927	8941	8965	9417	11088
	AR_AC3*2		2383 #
	AR_AC4			2384 #	8603
	AR_ADMSK AND VMA HEL	2386 #
	AR_AD*.25 LONG		2385 #	5841	5844	6262	6549	6743	6766	6939	8937	9034
	AR_ARX			2442 #	3924	4005	4849	5034	5039	5041	5363	5368	5567	5582	5613
				5617	5973	5985	5990	6176	6412	6585	6588	6596	6703	6796	6801
				7015	7291	7322	7476	7478	7914	7975	8090	8209	8328	8471	8504
				8508	8511	8513	8516	8744	8800	8859	8931	8952	8954	8978	9051
				9152	9190	9195	9251	9284	9285	9286	9311	9315	9344	9363	9393
				9441	9449	9503	9504	9505	9506	9774	10103	10257	10423	10532	10533
				10548	10579	10598	10640	10671	10680	10758	10763	10822	10850	10853	10855
				11060	11082	11086
	AR_ARX (ADX)		2444 #	5543	5559	5560	5566	5574	5581	6384	6443	6576	6589	6704
				7016	7921
	AR_ARX (AD)		2443 #	3953	3957	3962	3964	6849	6858	8404	8814	8816	10813	11054
	AR_ARX ANDC ADMSK	2446 #	4880	5272	5358	11006
	AR_ARX AND ADMSK	2445 #	5366
	AR_ARX COMP		2447 #	8664
	AR_ARX OR PUR		2449 #
	AR_ARX*.25		2451 #	6178	10751
	AR_ARX*.25-AR-1		2452 #	8967
	AR_ARX*2		2453 #
	AR_ARX*4		2454 #
	AR_ARX*4 COMP		2455 #
	AR_ARX*AC1		2456 #
	AR_ARX*BR		2457 #	7086	10149
	AR_ARX*BRX		2458 #	4887	8712	9825	11012
	AR_ARX*E1		2459 #
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-38
; 							Cross Reference Listing					

	AR_ARX+1		2460 #
	AR_ARX+1 (AD)		2461 #	8558	8570	9245
	AR_ARX+AC0		2462 #
	AR_ARX+AR*4		2463 #
	AR_ARX+BR		2464 #	7069	7973	7983	8051	11052
	AR_ARX+BRX		2465 #
	AR_ARX+BRX+1		2466 #	7893
	AR_ARX+FM[]		2467 #
	AR_ARX+XR		2468 #	3955	3959	3963	3965
	AR_ARX-1		2469 #	5529	8774	8818	8819
	AR_ARX-AC3		2470 #
	AR_ARX-BR		2471 #	11095
	AR_AR AND ADMSK		2388 #	5027	5118	5123
	AR_AR AND CSMSK		2390 #	10692	10772	10787
	AR_AR OR PUR		2391 #	10694	10809
	AR_AR SWAP		2393 #	4172	4658	4661	4931	6081	6132	6161	7422	7553	7607	8412
				10174	10258	10842
	AR_AR*.25		2395 #	7318
	AR_AR*.25 LONG		2396 #	5734	5757	6190	6415	6464	6693	6695	7004	7006	7050	7308
	AR_AR*.5		2397 #	6501	7317
	AR_AR*.5 LONG		2398 #	6697	6731	7008	7039	7053	8406	9095	9464
	AR_AR*1.25 LONG		2399 #	9034
	AR_AR*10		2400 #	8858
	AR_AR*10 LONG		2401 #	8951	9056
	AR_AR*2			2402 #	3890	10265
	AR_AR*2 LONG		2403 #	6418
	AR_AR*4			2404 #	10341	10345	10389	10408
	AR_AR*4 LONG		2405 #	6420
	AR_AR*5 LONG		2406 #	8878
	AR_AR*8			2407 #	6790	6799	7290	9296	9304	9339
	AR_AR*8 LONG		2408 #	6422	6441	6454
	AR_AR*AC0		2409 #	4423	4433	4452	4468	4478	4488	4498	4508	4519	4539	4549
				4666	4667	4668	5409	5412	5644
	AR_AR*AC1		2410 #
	AR_AR*BR		2411 #	4939	5283	5361	7062	8930	10150	10781
	AR_AR*EXPMSK		2412 #
	AR_AR*MSK		2413 #	9132
	AR_AR*SFLGS		2414 #	8693	8883	11094	11098
	AR_AR*SLEN		2415 #	11089
	AR_AR*T0		2416 #	8810	11084
	AR_AR+1			2418 #	3940	4728	6698	6710	7022	8083	8087	8113	8118	8122	8126
				8130	8280	8705	8994	9184	9193	9241	9249	9332	9367	9369	9493
				9655	10351	10382
	AR_AR+1 LONG		2419 #	8994
	AR_AR+1-AR0		2420 #	9189	9244
	AR_AR+BR		2421 #	5876	5879	5889	5943	5955	6388	6498	6592	6639	6855	6876
				6884	7038	7321	7431	7552	7606	7977	7981	8692	10190	10196	10228
				10291	10433	11093
	AR_AR+BR LONG		2422 #	5889	5943	5955	6639	6884	10228	10291
	AR_AR+E1		2423 #	9042	9096
	AR_AR+FM[]		2424 #	7939
	AR_AR+SBR		2426 #
	AR_AR+T0		2428 #
	AR_AR+T1		2429 #
	AR_AR+XR		2434 #
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-39
; 							Cross Reference Listing					

	AR_AR-1			2435 #	4743	4791	5072	9145	10383
	AR_AR-BR		2436 #	5657	5877	5878	5892	5945	6873	7289	7535	7536	8662	8689
	AR_AR-BR LONG		2437 #	5892	5945
	AR_AR-BR-1		2438 #
	AR_AR-FM[]		2439 #
	AR_AR-T0		2440 #
	AR_BRX			2486 #	5352	5619	5798	5994	7984	8045	8466	9445	9494	10407	10410
				10475
	AR_BRX+1		2487 #	7490
	AR_BR			2473 #	5083	5609	5622	5805	5974	5978	6033	6069	6367	6379	6497
				6582	6611	6705	6784	6788	6872	6914	7017	7068	7283	7288	7402
				7415	7421	8028	8277	8278	8465	8469	8571	8797	8813	9427	9447
				9668	9711	9720	9748	9782	9829	10138	10215	10253	10573	10595	10641
				11045
	AR_BR COMP		2474 #	6711	6714	7023	7026	8663
	AR_BR COMP LONG		2475 #	5998
	AR_BR LONG		2476 #	6004	6006	6029	6843	6905	7498	8862	8875	8884	8890	8997
				9028	9037	9053	10901	10928	10953
	AR_BR OR ARX		2477 #	8602	8607	8619
	AR_BR*.5		2478 #
	AR_BR*.5 LONG		2479 #	8943
	AR_BR*2			2480 #	6094
	AR_BR*2 LONG		2481 #	5607	6449
	AR_BR*4			2482 #
	AR_BR*4 LONG		2483 #	6451
	AR_BR+1			2484 #	7492
	AR_BR+1 LONG		2485 #
	AR_CACHE CNT		2489 #	10223	10276
	AR_DLEN			2490 #	8671	8678	8681	9135	9159	10932	10936	10944	10958
	AR_DLEN COMP		2491 #	10905
	AR_DLEN+1		2492 #	8753
	AR_DSTP			2493 #	8669	8829	9141	9214	9314	9323	11069
	AR_DSTP+1		2494 #
	AR_DSTP2		2495 #	9243	9509
	AR_DSTP2+1		2496 #
	AR_DSTW			2497 #
	AR_E0			2498 #
	AR_E1			2499 #
	AR_EBOX CNT		2500 #	10222	10275
	AR_EBUS			2501 #	3894	3896	9679
	AR_EBUS REG		2502 #	4989	10152	10170	10549	10564
	AR_FILL			2503 #	8752
	AR_FM[]			2505 #	11038
	AR_FM[]+1		2506 #
	AR_FM			2504 #	6003	6023	7966	8669	8671	8678	8681	8698	8746	8752	8798
				8829	8979	8991	9093	9109	9111	9135	9136	9141	9148	9159	9160
				9188	9214	9243	9314	9323	9462	9471	9509	9519	9521	10630	10647
				10685	10693	10709	10720	10746	10783	10797	10814	10836	10897	10932	10936
				10944	10948	10958	10973	11040	11069
	AR_FM(#)		2508 #
	AR_FM(VMA)		2510 #
	AR_INTERVAL		2511 #	10236
	AR_MEM			2513 #	4047	4069	4080	4904	4905	4908	4920	5046	5074	5077	5093
				5094	7272	7313	7396	7410	7467	7495	7563	7564	7614	7735	7786
				7811	7812	7813	7814	7815	7816	7817	7819	7825	7826	7827	7828
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-40
; 							Cross Reference Listing					

				7829	7830	7832	7838	7839	7840	7844	7845	8086	8337	8339	8362
				8365	8650	8775	8977	9046	9107	9291	9419	9434	9467	9472	9634
				10350	10381	10390	10627	10642	10662	10688	10710	10733	11016
	AR_MQ			2514 #	5563	5579	5907	5908	5909	5910	5956	5962	5977	6024	6387
				6595	6647	6667	6669	6890	6920	6922	6950	7214	7469	7788	7969
				8369	8801	9003	9005	9216	9453	10405
	AR_MQ COMP		2515 #	6687	7002
	AR_MQ*.25		2516 #	6445
	AR_MQ*2			2517 #
	AR_MQ*4			2518 #	10465
	AR_MQ*AC1		2519 #
	AR_MQ*AC2		2520 #
	AR_MQ*AC3		2521 #
	AR_MQ+1			2522 #	3879	7545	7599
	AR_MQ+AC0		2523 #
	AR_MQ+BR		2524 #
	AR_MQ-1			2525 #	7462	7474	7489
	AR_MQ-AC3		2526 #
	AR_MQ-BR		2527 #
	AR_MTR REQ		2528 #	10264
	AR_PC			2529 #	4937	5342	8401	10990	10992
	AR_PC FLAGS		2530 #	5362
	AR_PC+1			2531 #	5025	5114	5116
	AR_PERF CNT		2532 #	10221	10274
	AR_PERIOD		2533 #	10238
	AR_PUR+AR0		2535 #
	AR_SERIAL		2538 #	9746
	AR_SFLGS		2539 #	8746	9093	9109	9111	9136	9471	9519	9521
	AR_SHIFT		2540 #	4095	4125	4399	4935	5299	5349	5520	5522	5541	5546	5630
				5631	5689	5972	5975	5988	6032	6106	6587	6597	6701	6728	6740
				6847	7013	7034	7088	7216	7218	7427	7430	7790	7791	8350	8372
				8374	8674	8861	8895	9036	9119	9274	9292	9728	10139	10294	10426
				10643	10994	11078
	AR_SIGN			2541 #	4091	4124	5594	5595	5606	5690	5816	5819	5966	6031	6100
				6101	6333	6381	6570	6573	6838	6840	7057	7404	7411	7425	8042
				8044	8894
	AR_SLEN			2542 #	9148
	AR_SLEN COMP		2543 #	8691	8709	8870	8876	11100
	AR_SLEN+1		2544 #	8677	8865	9025	9146	9149
	AR_SRCP			2545 #	8698	8798	9160	9462	10897
	AR_SRCP+1		2546 #
	AR_SRCP2		2547 #	9188
	AR_SRCP2+1		2548 #
	AR_SV.AR		2549 #	11040
	AR_SV.ARX		2551 #
	AR_SV.BR		2552 #	10630	10647	10685	10693	10709	10720	10746	10783	10797
	AR_SV.PFW		2553 #	10814	10948	10973
	AR_SV.SC		2554 #	10836
	AR_SV.VMA		2555 #
	AR_SWD			2557 #
	AR_T0			2559 #	6003	7966	8979
	AR_T1			2560 #	6023	8991
	AR_T2			2561 #
	AR_TIME BASE		2562 #	10220	10273
	AR_VMA HELD		2573 #	8401	10990	10992
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-41
; 							Cross Reference Listing					

	AR_XR			2574 #	4850
	AR_[] AND FM[]		2345 #	8637
	B DISP			2764 #	4374	4656	4659	4663	5039	5545	5600	5620	5624	5938	6066
				6081	6544	6760	8581	8582	8667	8850	8858	9036	9094	9131	9135
				9654	10218	10226
	B WRITE			2765 #	4990	5689	6512	6516	9635	9826	10174
	BLKO TIM(L)		2766 #	10257	10259
	BLKO TIM(R)		2767 #	10258
	BR_AR LONG		2768 #	4402	5606	5723	5890	5893	5994	5996	5998	5999	6004	6006
				6029	6030	6379	6441	6454	6478	6481	6547	6552	6560	6902	6905
				6916	7009	8857	8865	8875	8939	8941	8997	9000	9024	10309	10311
	BYTE DISP		2769 #	4961	7668	7671	7755	7759	7968	8000	8068	8919	9175	9222
				9389	9434	9435	9436	9449	9489	9629	10192	10198	10778
	BYTE INDRCT		2773 #	8152	8154	8187	8189	8216	8218	8297	8299	8301	8303	8319
				8321
	BYTE LOAD		2774 #	8148	8150	8161	8163
	BYTE PREV & CLR SR3	2776 #
	BYTE PREV & SET SR2	2777 #
	BYTE PREV & SET SR3	2778 #
	BYTE READ		2780 #	8306	8307	8308	8309	8317	8318
	BYTE READ PC		2781 #
	BYTE RPW		2782 #	8182	8184	8196	8199
	CALL			2789 #	3882	4866	4883	4916	4936	4988	5031	5271	5276	5277	5336
				5341	5345	5347	5610	5681	5703	5962	5979	6002	6018	6024	6166
				6168	6568	6632	6647	6660	6662	6678	6759	6764	6768	6772	6775
				6782	6787	6793	6802	6829	6832	6844	6850	6875	6879	6883	6886
				6894	6904	6914	6917	6918	6921	6923	6933	6942	6950	7277	7307
				7398	7420	7446	7545	7563	7564	7565	7599	7614	7615	7668	7675
				7680	7682	7756	7865	7928	7930	7980	8157	8192	8405	8552	8553
				8560	8599	8600	8603	8604	8616	8617	8626	8628	8650	8651	8677
				8680	8699	8737	8745	8752	8799	8809	8830	8842	8866	8917	8942
				8963	8977	8978	8992	8999	9002	9050	9196	9214	9217	9252	9272
				9390	9401	9463	9465	9469	9490	9517	9520	9628	9634	9647	9669
				9726	9734	9736	9741	9745	9747	9770	9796	9819	10097	10113	10114
				10124	10131	10136	10151	10164	10169	10179	10180	10208	10215	10232	10234
				10246	10255	10265	10314	10363	10389	10390	10393	10404	10408	10409	10429
				10432	10440	10445	10450	10463	10464	10467	10468	10473	10474	10476	10482
				10991	11009	11044
	CALL []			2793 #	4866	4883	6759	6764	6768	6772	6775	6782	6787	6793	6802
				6829	6832	6844	6850	6875	6879	6883	6886	6894	6904	6914	6917
				6918	6921	6923	6933	6942	6950	7277	7307	7398	7420	7446	7668
				7675	7680	7682	7756	7865	7928	7930	7980	8157	8192	8405	8552
				8553	8560	8599	8600	8603	8604	8616	8617	8628	8650	8651	8842
				8917	9272	9647	10114	10180	10208	11009
	CALL.C			2796 #
	CALL.M			2797 #	5781	5785	5848	5857	5954	6668	6670	8734	9091	9174	9767
				9816	10102	10161	10227	10244	10290	10388	10483
	CALL.S			2798 #	4378	4394	5935	6137	6543
	CALL[]			2794 #
	CBR			2805 #	10669	10680	10757	10763
	CLR ACC+SET UCODE	2807 #
	CLR ACCOUNT EN		2808 #	3893	10529	10531
	CLR AR			2809 #	3881	6378	6481	6816	6867	6869	6924	7055	7278	7285	7314
				7319	7399	7412	7925	8668	8990	9273
	CLR ARX			2810 #	5619	5680	5701	5803	6379	6384	6444	6497	6498	6590	6704
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-42
; 							Cross Reference Listing					

				6850	6858	7016	8673	8857
	CLR EBUS DEMAND		2811 #	9680
	CLR EXP			2812 #	8928
	CLR FE			2813 #	4096	4118	4950	4967	6462	6785	6789	6924	6991	7427
	CLR FPD			2814 #	4112	7686	7688	7704	7712	7718	7725	7731	7732	7733	7791
				7839	7840	7866	8115	9030
	CLR MQ			2815 #	5931	6732	7313	7410	7431
	CLR MTR PA EN		2816 #
	CLR PT LINE		2818 #	10191
	CLR PT LINE (KEEP)	2819 #	10197
	CLR P			2817 #	4194	5357
	CLR SC			2820 #	4096	4118	4950	6020	6873	7705	7713	7719	7726	7811	7819
				7825	7832	7838
	CLR SPECIAL CYCLE	2821 #	10656
	CLR SR2			2822 #
	CLR SR3			2823 #	6599
	CLR TRACKS EN		2824 #
	CLR TRK+PA EN		2825 #
	CMS FETCH		2826 #	8803
	COMP FETCH		2827 #	4694
	CONI APR(L)		2828 #	9773
	CONI APR(R)		2829 #	9772
	CONI MTR		2830 #	10248
	CONI PAG		2831 #	10166
	CONI PI(L)		2832 #	9824
	CONI PI(PAR)		2833 #	9822
	CONI PI(R)		2834 #	9820
	CONO APR		2835 #	9769	9775
	CONO MTR		2836 #	10245
	CONO PAG		2837 #	10162
	CONO PI			2838 #	9817
	CONO TIM		2839 #	10233
	CONTINUE		2840 #	4961
	CSMSK			2842 #	10692	10772	10787
	DATAI APR(L)		2845 #	9742
	DATAI PAG(L)		2846 #	5346	10135
	DATAO APR		2847 #	9735
	DATAO PAG(L)		2848 #	10103
	DIAG IN			2849 #	4989	5346	9742	9772	9773	9820	9822	9824	10135	10152	10166
				10170	10220	10221	10222	10223	10236	10238	10248	10264	10273	10274	10275
				10276	10549	10564
	DIAG OUT		2850 #	9735	9769	9775	9817	10103	10162	10233	10245	10257	10258	10259
	DISMISS			2851 #	4858	4910	4911	9651	10391
	DIVIDE			2852 #	5839	5842	5847	5856	5872	5873	5874	5875	5876	5877	5878
				5879	5903	5904	5905	5906	7927
	DLEN			2853 #	8663	8664	8671	8678	8681	8710	8753	8755	9135	9147	9159
				10905	10932	10936	10944	10958
	DLEN_AR			2854 #	8663	8664	8710	8755	9147
	DROP EBUS REQ		2855 #	9692
	DSTP			2857 #	8669	8829	8829	9141	9214	9214	9240	9257	9258	9261	9314
				9323	9449	9450	11069	11075
	DSTP2_AR		2865 #	9251	9455
	DSTP2			2863 #	9242	9243	9251	9436	9455	9509
	DSTP_AR			2861 #	9257	9258	9261	9449	9450	11075
	DSTW			2866 #
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-43
; 							Cross Reference Listing					

	DSTW_AR			2867 #
	E0			2871 #	6760	6767	6795	6800	6878	6988	8466	9137	9400	9402	9517
	E0_AR			2872 #	8466
	E1			2873 #	6776	6785	6804	6845	6851	6870	6913	7021	7253	7254	7266
				7267	7268	7315	7400	7413	8508	8511	8513	8516	9041	9042	9094
				9095	9096	9105	9464	9465
	E1_AR			2874 #	8508	8511	8513	8516
	EA MOD DISP		2876 #	3925	4005	4815	4862	7675	7680	7763	7773	8159	8160	8194
				8195	8209	8210	8292	8328	8471	8504	9183	9199	9259	9262
	EPT FETCH		2881 #	10358	10359	10364
	EPT REF			2882 #	10310	10367	10414	10622
	EPT REF CACHE		2883 #	8408
	EXEC REF		2884 #
	EXIT			2885 #	4172	4181	4313	4315	4318	4321	4325	4329	4338	4339	4345
				4346	4352	4353	4359	4360	4413	4423	4433	4452	4468	4478	4488
				4498	4508	4519	4529	4539	4549	4559	5644	5657	5706	5797	5799
				5804
	EXIT DBL		2886 #	4092	5943	5945	6033	6035
	EXP TEST		2887 #
	EXP TST			2888 #	6502	6732
	EXPMSK			2889 #	3941	6994	6996	7060	7197	7198	7204	7205	7434	7437	8634
	EXP_-SC-1		2890 #
	EXP_-SC-1 TST		2891 #
	EXP_1			2892 #	6648
	EXP_FE TST		2893 #	6502	6732
	EXP_SC			2894 #	7316
	EXP_SC.MS		2895 #	7056
	EXP_SCAD		2896 #	6648	7316	8928
	EXP_SCAD.C		2897 #	6502	6732
	EXP_SCAD.MS		2898 #	7056
	EXP_SIGN		2899 #	6082	6085	6093	6133	6136	6162	6261	6318	6541	6610	7428
	EXP_SIGN.C		2900 #	7323
	EXP_SIGN.MS		2902 #
	EXP_SIGN.M		2901 #	6644
	EXT ADDR		2904 #	8496
	EXT BYTE READ		2905 #	7672	7676
	EXT BYTE RPW		2906 #	7760	7764
	EXT INDEX		2907 #	8478	8479	8480	8481	8497
	EXT INDRCT		2908 #	8473	8474	8475	8476	8498	8499
	FETCH			2956 #	3825	4861	4914	4918	5033	5081	5082	5114	5120	5145	5353
				5529	8894	9032	10392
	FETCH WAIT		2962 #	4183	8688
	FETCH+1			2957 #	9335
	FE_#			2911 #	4006	4008	4047	4069	5572	5575	5680	5702	5810	5817	5820
				5907	5908	5909	5910	5948	5963	6018	6135	6165	6332	6553	6640
				6677	6854	6880	6885	6932	7321	7395	7409	7699	7700	7737	7738
				7804	7806	7844	7845	7922	7925	7930	7931	8077	8080	8212	8275
				8311	8312	8313	8314	8505	8552	8560	8703	8796	8940	8998	9001
				9141	9160	9462	9796	10210	10543	10548	10893
	FE_# AND S		2912 #	10356	10423	10463	10472
	FE_#+AR0-8		2913 #
	FE_#+SC			2914 #	6138	7769	7787
	FE_#-SC			2915 #	7789	8370
	FE_+#			2916 #
	FE_-1			2917 #	5997	10622	10623
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-44
; 							Cross Reference Listing					

	FE_-SC			2919 #
	FE_-SC-1		2920 #	7768	10851
	FE_-S			2918 #	7762	7772	7774
	FE_1			2921 #	5991
	FE_AR0-8		2922 #	4958	6791	6800	7291	8661	8966
	FE_AR0-8 AND #		2923 #
	FE_AR0-8 COMP		2924 #	8844
	FE_EXP			2925 #	6082	6085	6541	10841
	FE_EXP+1		2926 #
	FE_EXP+SC		2927 #	6318
	FE_EXP-#		2928 #	6349	6353
	FE_EXP-1		2929 #
	FE_FE AND AR0-8		2931 #	8568	10628	10718
	FE_FE AND #		2930 #	10671	10688
	FE_FE OR #		2932 #	10710	10733	10781	10816
	FE_FE OR AR0-8		2933 #
	FE_FE SHRT		2934 #	10722
	FE_FE+#			2935 #	6176	6179	6415	6449	6694	6696	7005	7006	7302	7309	9358
	FE_FE+1			2936 #	5724	5734	5736	5738	5740	5752	5754	5756	5757	5762	5954
				6103	6104	6107	6451	6501	6667	6669	6697	6731	6891	6893	6920
				6922	7008	7039
	FE_FE+S			2937 #
	FE_FE+SC		2938 #	6094	6612	10593	10595
	FE_FE-#			2939 #	6420	6422	6442	6446	6455	6464	9331	9343	9367	9370	9392
				9452	10779
	FE_FE-1			2940 #	5839	5842	5847	5856	5872	5873	5874	5875	5876	5877	5878
				5879	5903	5904	5905	5906	6418	6700	7011	7305	7927	8951	8953
				10190	10196
	FE_FE-S			2941 #	7884	7886	7989
	FE_FE-SC		2942 #	6701	6728	7013	7034	7973	7975	10753
	FE_FE-SC-1		2943 #	8040
	FE_P			2944 #	5519	5522	7881	7882	9119	9189	9244
	FE_P AND #		2945 #	9121	9287	9395	10111	10591
	FE_P AND SC		2946 #
	FE_P OR #		2947 #
	FE_P+SC			2949 #	9345
	FE_P+1			2948 #	7969
	FE_P-S			2950 #
	FE_S			2951 #	7674	7679	7681	8291	8293	8411	9182	9198	9199	9257	9258
				9261
	FE_S+#			2952 #
	FE_SC			2953 #	5728	5729	5730	5732	5745	5746	5747	5749	5890	5893	8368
				9004	9006
	FILL			2963 #	8553	8604	8605	8651	8752	8917	8973	8978
	FILL_AR			2964 #	8553	8651	8917	8978
	FIN LOAD		2965 #	7683	7704	7705	7706	7707	7708	7709	7710	7712	7718	7719
				7720	7721	7722	7723	7725	7731	7732	7733	7737	7738	7842
	FIN STORE		2966 #	4092	4093	4099	4101	4712	4887	4890	4902	5033	5038	5120
				5145	5278	5286	5368	7573	7623	7866	8090	9445	9638
	FIN XFER		2967 #	4058	4892	4903	9443	10313
	FINISH			2968 #	4134	5980	8899
	FM(#)_AR		2972 #
	FM[]_AR			2970 #	3890	3941	6760	6765	6767	6773	6776	6793	6794	6801	6802
				6805	6833	6845	6851	6870	6877	6887	6913	6927	6947	6987	6990
				7315	7322	7400	7402	7413	7415	7443	10335	11005
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-45
; 							Cross Reference Listing					

	FM_AR			2969 #	3890	3941	5985	6001	6760	6765	6767	6773	6776	6793	6794
				6801	6802	6805	6833	6845	6851	6870	6877	6887	6913	6927	6947
				6987	6990	7315	7322	7400	7402	7413	7415	7443	7893	7914	8040
				8466	8508	8511	8513	8516	8553	8651	8663	8664	8665	8667	8675
				8708	8710	8733	8755	8801	8848	8853	8855	8862	8917	8952	8954
				8963	8964	8976	8978	9027	9091	9119	9121	9147	9152	9182	9195
				9198	9199	9251	9257	9258	9261	9283	9290	9449	9450	9455	9494
				10335	11005	11067	11075
	FORCE AR-ARX		2974 #	10529	10531
	GEN # AND AR0-8		2978 #	10644	10681	10705	10739
	GEN #+AR0-8		2979 #	9294
	GEN #+SC		2980 #	5614	6571
	GEN #-SC		2981 #	10778
	GEN -AR LONG		2982 #	5841	5844	6262	6549	6743	6766	6939	8937
	GEN -AR*4		2983 #
	GEN -SC			2984 #
	GEN -SC-1		2985 #
	GEN 0S			2986 #
	GEN 2AR			2987 #
	GEN AC0			2989 #	7422
	GEN AC0+1		2990 #
	GEN AR			2991 #	3975	3977	6598	6650	6771	6907	7094	7273	7324	7405	7447
				7672	7676	7760	7764	8148	8152	8182	8187	8317	8319	8413	8470
				8496	8498	9676	9679	9681	9683	9694	9696	9702	9826
	GEN AR*AC0		2992 #	4694	5415	5417	6559	6915
	GEN AR*BR		2993 #	5704	5964	7280	8956
	GEN AR*T0		2994 #
	GEN AR+1		2995 #	7217	8077	8080	8101	8104	8106	8108	8110	8275
	GEN AR+2BR		2996 #	6266
	GEN AR+BR		2997 #
	GEN AR+E1		2998 #
	GEN AR+FM[]		2999 #
	GEN AR+XR		3000 #	3976	3979	8150	8154	8184	8189	8318	8321	8497	8499
	GEN AR-2BR		3001 #	6264
	GEN AR-AC3		3002 #	8868
	GEN AR-BR		3003 #	5802	6818	7284
	GEN AR-BR-1		3004 #	7280	8956
	GEN AR-FM[]		3005 #
	GEN AR0-8		3006 #
	GEN ARX			3007 #	6552	6769	8161	8196	8216	8297	8301	8306	8308	8409	8473
				8475	8478	8480	8708	8803
	GEN ARX COMP		3008 #	8972
	GEN ARX*BRX		3010 #
	GEN ARX*BR		3009 #
	GEN ARX+1		3011 #
	GEN ARX+XR		3012 #	3955	3959	3963	3965	8163	8199	8218	8299	8303	8307	8309
				8474	8476	8479	8481
	GEN ARX-1		3013 #	5408
	GEN BR			3015 #	5095
	GEN BR*2		3016 #	10580
	GEN BR+ARX		3017 #
	GEN BRX+1		3018 #
	GEN CRY18		3019 #	4799	6439	9643	9655
	GEN E1			3020 #	7021
	GEN FE			3021 #
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-46
; 							Cross Reference Listing					

	GEN FE AND #		3022 #	10769	10812
	GEN FE AND AR0-8	3023 #
	GEN FE AND S		3024 #
	GEN FE AND SC		3025 #	10741
	GEN FE OR AR0-8		3026 #	8569
	GEN FE+#		3027 #
	GEN FE-#		3028 #	7300	8024	8025	8027
	GEN FE-1		3029 #	4961
	GEN FE-S		3030 #
	GEN FE-SC		3031 #
	GEN FE-SC-1		3032 #	8182	8185	8197	8200	8363
	GEN MQ			3033 #
	GEN MQ-AR		3034 #
	GEN P AND SC		3036 #	10771	10814
	GEN P AND #		3035 #
	GEN P+SC		3037 #
	GEN P-#			3038 #	8101	8104	8106	8108
	GEN P-S			3039 #	9468
	GEN P-SC		3040 #
	GEN SC			3041 #	8468
	GEN SCAD 0S		3042 #
	GEN T1			3043 #
	GEN T2			3044 #
	GET ECL EBUS		3045 #	3967	3968	3969	3970	4922	8483	8484	8485	8486	9721	10263
				10539
	GLOBAL			3046 #	3953	3955	3957	3959	3962	3963	3964	3965	7672	7676	7760
				7764	8161	8163	8196	8199	8216	8218	8297	8299	8301	8303	8306
				8307	8308	8309	8473	8474	8475	8476	8478	8479	8480	8481
	HALT			3048 #	4948
	HARDPFW			3049 #	11005
	I FETCH			3052 #	4058	4091	4093	4099	4101	4191	4198	4381	4890	4996	5038
				5411	5518	5548	5567	5582	5605	5630	5849	5858	5978	6019	6385
				6386	6741	7090	7216	7218	7219	7274	7282	7286	7477	7483	7491
				7573	7623	7684	7704	7705	7706	7707	7708	7709	7710	7712	7718
				7719	7720	7721	7722	7723	7725	7731	7732	7733	7737	7738	7866
				7895	7970	7991	7999	8681	8970	9650
	INDEXED			3056 #	3976	3979	8150	8154	8184	8189	8318	8321	8497	8499
	INH CRY18		3057 #	5409	9184	9193	9241	9245	9249	9332	9369
	IO INIT			3058 #	9694
	IR DISP			3059 #	4037	4048	4059	4070	4081	4859	4885	4893	8509	8512	8514
				8517
	JFCL FETCH		3061 #	4938
	JFCL S			3062 #	4940
	JFCL T			3063 #	4937
	JUMP FETCH		3064 #	4760	4775	4791	4799
	LD PCS			3066 #	4923
	LD PREV CTXT		3067 #	5348
	LOAD AR			3068 #	4819	4833	4892	4902	4903	5278	5995	7271	7312	7394	7408
				7463	7475	7484	7493	7600	7616	7979	8085	8408	8561	8774	8973
				9041	9105	9137	9285	9286	9359	9363	9400	9402	9465	9517	9658
				10310	10311	10367	10368	10441	10442	10446	10447	10622	10623	10641	10646
				10661	10683	10708	10732	10767	11014
	LOAD AR (RPW)		3070 #	10342	10349
	LOAD AR (WR TST)	3071 #	9414	9418
	LOAD ARX		3073 #	3932	4374	5031	5276	5286	5338	5934	6542	6758	7292	7397
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-47
; 							Cross Reference Listing					

				7996	10313	10361
	LOAD ARX (WR TST)	3075 #	9442
	LOAD EBR		3077 #	10180
	LOAD IR			3079 #	3927	3938	5428	8470
	LOAD UBR		3083 #	10114
	LOAD VMA(EA)_ARX+BR	3085 #	7558	7559	7566
	LONG EN			3090 #	4002	8157	8192	8326	8502
	MAP			3095 #	4011	4981	10562
	MB WAIT			3096 #	4036	4092	4987	5943	5945	6033	6035	8409	9638	9730	10125
				10207	10268	10549	10563	10770	10968	11006
	MEM_AR			3097 #	4398	5035	5040	5342	5352	5365	7469	7489	7571	7574	7621
				7624	7670	7674	7678	7758	7762	7766	7772	8115	8291	8294	9218
				9447	9508	9516	9640	9647	9654	10293	10391	10703
	MQ_0.C			3099 #
	MQ_0.M			3100 #	5571	5579	6103	6104	6107	6583	6586	6668	6670	6921	6923
				6951	7087	9003	9005
	MQ_0.S			3101 #	4378	4394	5935	6541	6759	7272	7396
	MQ_1			3102 #
	MQ_1S			3103 #
	MQ_AD			3104 #	6906	7768	7967	8629
	MQ_ARX			3109 #	5576	6001	6613	6615	7403	7812	7813	7814	7815	7816	7817
				7820	7821	7822	7823	7826	7827	7828	7829	7830	7833	7834	7835
				7836	7864	7884	8554	8849	9300	9302	9323
	MQ_ARX COMP		3110 #
	MQ_AR			3105 #	4213	5358	5679	5701	5907	5908	5909	5910	5956	5962	6024
				6095	6098	6135	6630	6640	6647	6711	6714	6716	6882	6885	6890
				6938	7023	7026	7028	7458	7461	7467	7492	7966	8362	8402	8466
				8665	8796	8991	9027	9214	10217	10265	10334
	MQ_AR (AD)		3106 #
	MQ_AR COMP		3107 #
	MQ_AR SWAP		3108 #
	MQ_BR			3111 #	8629
	MQ_BR COMP		3112 #
	MQ_FM[]			3113 #	7768
	MQ_MQ*.25		3114 #	5976	6693	7004	7051
	MQ_MQ*2			3115 #	5974	6014	6016	8811
	MQ_MQ*BR		3116 #	6906
	MQ_MQ-1			3117 #	7967
	MQ_SHIFT		3118 #	5558	5565	5574	5581	5619	5947	6100	6383	6443	6576	6589
				6591	6595	6704	6705	6858	7016	7017	10111
	MSK			3120 #	8675	8862	9097	9130	9132	9283
	MSK_AR			3121 #	8675	8862	9283
	MUL			3122 #	5724	5734	5736	5738	5740	5752	5754	5756	5757	5762	5954
	NO CRY			3125 #	4655	4658
	NORM			3126 #	6110	6178	6190	6416	6442	6447	6455	6465	6498	6593	6650
				6673	6698	6706	6712	6715	6716	6856	6908	6929	6995	6997	7019
				7024	7027	7029	7038	7094	7310	7324	7405	7416	7447
	NORM AR			3128 #	6138
	NORM -AR		3127 #	6414
	NXT INSTR		3129 #	4096	4118
	OPTIONS			3131 #	9749
	P0			3162 #	10692	10772	10787
	P1			3163 #	10694	10809
	P10			3164 #	10574	10630	10647	10685	10693	10709	10720	10746	10783	10797	10842
	P11			3165 #	10579	10836
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-48
; 							Cross Reference Listing					

	P12			3166 #	10572	10573	10598	10814	10818	10948	10973
	P13			3167 #
	P14			3168 #
	P15			3169 #
	P16			3170 #	10532	10850	11040
	P17			3171 #	10533	10854	10856	10921
	P2			3172 #	10669	10680	10757	10763
	P3			3173 #	10640	10655	10731
	P4			3174 #
	P5			3175 #	10582	10719	10822	10866	10873
	P6			3176 #
	P7			3177 #
	PC_VMA			3179 #	4951
	PF DISP			3180 #	10539	10550
	PFA			3182 #
	PFA_AR			3183 #
	PHYS REF		3185 #	10349	10351	10442	10447	10452	10641	10646	10661	10683	10703	10708
				10732	10767
	PHYS REF CACHE		3186 #
	POP AR			3188 #	5069
	POP AR-ARX		3189 #	5071
	POP ARX			3190 #
	PORTAL			3192 #	4813
	PT FETCH		3193 #
	PT REF			3194 #	3932	5276
	PT SEL_INVAL		3195 #	10182
	PT SEL_INVAL (KEEP)	3196 #	10186
	PT SEL_NORMAL		3197 #	10193	10199
	PUR			3199 #	10694	10809
	PUSH			3202 #	5023	5028
	P_#			3133 #	8019	8021	8023	8026	8029	8033	8035	8038	8039
	P_#-SC			3135 #	7889
	P_#-S			3134 #	9203	9246
	P_-SC			3136 #
	P_0			3137 #
	P_1S			3138 #
	P_FE			3139 #	5524	8041	9192	9493
	P_FE OR SC		3140 #	9374	9375	10566
	P_FE+SC			3141 #	8052
	P_FE-S			3142 #	8083	8280	8705	9185
	P_FE-S.S		3143 #	8085
	P_FE.C			3144 #	9248
	P_P AND #		3145 #	7083	9057	9122	9126	9380
	P_P AND SC		3146 #	9333
	P_P OR #		3147 #	9123	9124	9125	9127
	P_P OR SC		3148 #	9151	9522	10823
	P_P OR SC#		3149 #
	P_P+#			3150 #
	P_P+1			3151 #	8100	8103	8119	8123	8127	8131	9334
	P_P+S			3152 #	11066
	P_P+S.C			3153 #	11071
	P_P-S			3154 #	7891	8068	8707	9174	9222	10483
	P_SC			3155 #	7982	10147
	P_SC#			3156 #	8088	8111	8112
	P_SCAD			3157 #	4194	5357	5524	7891	7982	7989	8041	8068	8707	9151	9174
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-49
; 							Cross Reference Listing					

				9192	9222	9333	9374	9375	9493	9522	10147	10483	10566	10823	11066
	P_SCAD#			3158 #	7083	7889	8019	8021	8023	8026	8029	8033	8035	8038	8039
				8088	8100	8103	8111	8112	8119	8123	8127	8131	9057	9122	9123
				9124	9125	9126	9127	9203	9246	9248	9334	9380	11071
	P_SCAD.C		3159 #	8052	8083	8280	8705	9185
	P_SCAD.S		3160 #	8085
	R0			3207 #	10563
	R1			3208 #
	R10			3209 #	8665	8677	8686	8691	8709	8733	8848	8865	8870	8876	8964
				9025	9027	9091	9146	9148	9149	11078	11089	11091	11100
	R11			3210 #	6001	6023	6794	6802	6835	6847	7914	7939	8952	8954	8991
	R12			3211 #	6765	6773	6780	6789	6805	6877	6926	6927	6943	6947	6987
				6990	7067	7322	7402	7415	7443	8963	8990
	R13			3212 #	8553	8604	8605	8651	8752	8917	8973	8978
	R14			3213 #
	R15			3214 #	3890	4865	4880	5027	5118	5123	5272	5353	5358	5362	5366
				8636	8637	10337	10373	10397	10419	10434	10455	11006
	R16			3215 #	6760	6767	6795	6800	6878	6988	8466	9137	9400	9402	9517
	R17			3216 #	11005
	R2			3217 #	11039
	R3			3218 #	10335	11038
	R4			3219 #	3941	6994	6996	7060	7197	7198	7204	7205	7434	7437	8634
	R5			3220 #	6776	6785	6804	6845	6851	6870	6913	7021	7253	7254	7266
				7267	7268	7315	7400	7413	8508	8511	8513	8516	9041	9042	9094
				9095	9096	9105	9464	9465
	R6			3221 #	5985	6003	6793	6801	6831	6833	6836	6848	6887	7893	7966
				8040	8801	8810	8976	8979	11084
	R7			3222 #	8675	8862	9097	9130	9132	9283
	RD+CLR C CNT		3224 #	10276
	RD+CLR E CNT		3225 #	10275
	RD+CLR PA		3226 #	10274
	RD+CLR TB		3227 #	10273
	READ BP2		3229 #	7681	7774	8293
	READ EBR		3231 #	10168
	READ ERA		3232 #	9794
	READ UBR		3233 #	10150
	REL EBUS		3234 #	9683	9826
	REL ECL EBUS		3235 #	4990	9635	10172	10206	10228	10267	10277	10550	10565
	REQ EBUS		3236 #	9669	9830
	REQ SV.VMA		3238 #	10866
	REQ VMA HELD		3239 #
	RETURN []		3243 #
	RETURN0			3244 #	8217	8219	10867
	RETURN1			3245 #	4925	4931	5369	6807	8306	8307	8308	8309	8317	8318	8387
				8390	8415	8618	8620	8629	9093	9159	9717	9721	10294	10315
	RETURN10		3246 #	8605	8609
	RETURN12		3247 #	10431
	RETURN15		3248 #	8076	8093
	RETURN16		3249 #
	RETURN17		3250 #	8079
	RETURN2			3251 #	5046	6265	6267	6818	7554	7575	7625	8213	8350	8351	8389
				8627	8638	8758	9137	9203	10434	10456
	RETURN20		3252 #	5363	8570
	RETURN3			3253 #	4402	5299	5849	5858	5907	5910	8211	8365	8374	9141	9522
				9684	9697	10155
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-50
; 							Cross Reference Listing					

	RETURN30		3254 #
	RETURN37		3255 #	8149	8151	8162	8164
	RETURN4			3256 #	5745	5746	5747	5749	6614	6616	8069	8070	8091	8100	8103
				8111	8112	8119	8123	8127	8131	8274	8277	8278	8281	9097	9132
				9152	10210	10426
	RETURN5			3257 #	5908	5909	9121
	RETURN6			3258 #	5728	5729	5730	5732	5851	5860	5891	5894	9218
	RETURN7			3259 #	5852	5861
	RET[]			3242 #	7197	7198	7204	7205
	RSTR FLAGS_AR		3260 #	4854	4904	4905	4908
	RSTR VMA_ARX		3262 #
	RSTR VMA_MQ		3263 #	8415
	RSTR VMA_SV.VMA		3264 #	10822
	SBR			3269 #	10640	10655	10731
	SBUS DIAG		3271 #	9798
	SC_#			3273 #	3881	3894	3896	4009	4380	4393	4396	4934	4936	5342	5343
				5516	5623	5632	5686	5706	5797	5799	5803	5938	5967	5987	6031
				6380	6438	6444	6592	6650	6672	6685	6699	6705	6782	6787	6855
				6903	6907	6928	7000	7018	7052	7058	7063	7070	7072	7074	7094
				7324	7425	7429	7445	7706	7707	7708	7709	7710	7714	7715	7716
				7720	7721	7722	7723	7727	7728	7729	7812	7813	7814	7815	7816
				7817	7820	7821	7822	7823	7826	7827	7828	7829	7830	7833	7834
				7835	7836	7913	8043	8044	8113	8118	8122	8126	8130	8380	8404
				8668	8858	8884	8891	8893	8921	8937	8940	8998	9001	9034	9107
				9136	9273	9292	9311	9470	9519	9521	9726	10104	10124	10126	10130
				10154	10165	10179	10218	10229	10271	10291	10341	10363	10425	10440	10445
				10450	10562	10627	10724	10990	10992	11077
	SC_# AND AR0-8		3274 #	9289	10596
	SC_# AND S		3275 #
	SC_# OR SC		3276 #
	SC_#+AR0-8		3277 #	6366
	SC_#+SC			3278 #	5541	5544	5546	5561	5564	5592	5596	5618	5620	6095	6102
				6265	6267	6574	6613	6631
	SC_#-S			3279 #
	SC_#-SC			3280 #	5299	6098	6615	6837	6841	7683	8337	8371	9216	10475
	SC_#-SC-1		3281 #
	SC_-SC			3283 #	10758	10768
	SC_-SC-1		3284 #	10855
	SC_-S			3282 #	7864
	SC_0			3285 #
	SC_1			3286 #	5784	5985	5991	8918	9027	10751
	SC_1S			3287 #	6021
	SC_AR0-8		3288 #
	SC_EA			3289 #	5513	5532	5534	5553	5556	5572	6316	8051
	SC_EXP			3290 #	6133	7314	10841	10849
	SC_EXP+1		3291 #	6162
	SC_EXP+SC		3292 #	6136	6644
	SC_EXP-#		3293 #
	SC_EXP-1		3294 #
	SC_EXP-SC		3295 #	6093	6261	6610
	SC_FE			3296 #	6836	6839	7768	7787	7789	7923	7925	8342	8369	10208	10822
	SC_FE AND #		3297 #
	SC_FE#			3298 #	7672	7676	7689	7760	7764	8067
	SC_FE+#			3299 #	6382
	SC_FE+1			3300 #	9301	9303	9304
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-51
; 							Cross Reference Listing					

	SC_FE+S			3301 #
	SC_FE+SC		3302 #	5577	5580	7054	7686	8149	8151	8162	8164	8344	8832	9176
				9291	10468
	SC_FE-#			3303 #	8968
	SC_FE-1			3304 #	6561
	SC_FE-SC		3305 #	7790	8373
	SC_FE-SC-1		3306 #	8952	8954
	SC_P			3307 #	7981	8087	9401	10484
	SC_P AND #		3308 #	9359	9361
	SC_P AND SC		3309 #	10565	10757	10763
	SC_P+S			3311 #	7967
	SC_P+1			3310 #	8110
	SC_P-#			3312 #	7667	7671	7755	7758	7862	8076	8079	8093	8386
	SC_S			3313 #	8673
	SC_SC AND #		3314 #
	SEL AC4			3317 #	8608	8897
	SEL DSTP		3318 #	9254	9255	9447	11071	11080
	SEL DSTP2		3319 #	8606	9248	9249	9454
	SET ACC+CLR UCODE	3321 #
	SET ACCOUNT EN		3322 #	3924	4997	10268	10279	10867	10972	11016	11045
	SET AROV		3323 #	5615	5690	5707	5968	6377	7219
	SET CONS XCT		3324 #	4967
	SET DATAI		3325 #	10404	10464
	SET DATAO		3326 #	9647	10390	11044
	SET EBUS DEMAND		3327 #	9677
	SET FL NO DIV		3328 #	6169	6680	6935
	SET FLAGS_AR		3329 #	3822	5372	11015
	SET FLOV		3330 #	7076	7081	7282	7440
	SET FPD			3331 #	7674	7679	7682	7762	7772	7775	8067	8291	8324	8993	9658
				9659
	SET FXU			3332 #	7080	7286	7441
	SET HALTED		3333 #	4950
	SET IO PF		3334 #	11041
	SET MTR PA EN		3335 #
	SET NO DIVIDE		3336 #	5794
	SET PC+1 INH		3337 #	3933
	SET PI CYCLE		3338 #	3880	10278	10334
	SET PXCT		3339 #	5427
	SET SR1			3340 #	6190	6414
	SET SR2			3341 #	6006	6662	6688	6946
	SET SR3			3342 #	6026	6600	6628	7003
	SET SXCT		3343 #
	SET TRACKS EN		3344 #
	SET TRK+PA EN		3345 #
	SFLGS_AR		3347 #	8667	8853	8855	9119	9121	9152	9290	9494
	SFLGS			3346 #	8667	8693	8746	8853	8855	8883	9093	9109	9111	9119	9121
				9136	9152	9290	9471	9494	9519	9521	11094	11098
	SH DISP			3348 #	5344	7071	7699	7700	7804	7806	8110	9292	9309	10337	10356
	SIGNS DISP		3349 #	5811	6005	6007	7915	8704	8708	8735	8755	8800	8801	8815
				8848	8972	9029	9054	9092	9120	9147	10580	10617	10619
	SKIP FETCH		3350 #	4712
	SKP -EBUS GRANT		3352 #	9691
	SKP -EBUS XFER		3353 #	9681
	SKP -LOCAL AC ADDR	3355 #	4191	4198	5271	5335
	SKP -START		3357 #	4957
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-52
; 							Cross Reference Listing					

	SKP -VMA SEC0		3359 #	7678	7766	7883	7976	8081	8294
	SKP AC EQ 0		3361 #	7862
	SKP AC REF		3362 #
	SKP AC#0		3363 #	4094	4713
	SKP AC0+		3364 #	5891
	SKP AC0-		3365 #	5894
	SKP AD NE		3366 #	5516	5802	6552	6598	6626	6769	6868	7021	7214	7217	7273
				7423	7489	8413	10456	10669	10757
	SKP AD NZ		3367 #
	SKP AD0			3368 #	5416	5418	5704	5964	5992	6166	6559	6676	6771	6775	6781
				6818	6829	6831	6874	6878	6886	6914	6915	6932	6944	6950	6988
				6992	7280	7284	7419	7444	7459	8409	8662	8671	8920
	SKP ADX0		3369 #
	SKP AR EQ		3370 #	4968
	SKP AR EQ -1		3371 #
	SKP AR GT BR		3372 #	8771	10430
	SKP AR NE		3373 #	7461	8936	9477	9518
	SKP AR NE BR		3374 #	5611
	SKP AR NZ		3375 #	7894	7922
	SKP AR SIG		3376 #	5686
	SKP AR0			3377 #	4175	4349	4356	5410	5527	5786	5818	5821	6332	6645	6764
				6768	6942	7276	7307	7947	7981	8087	8165	8686	8736	9189	9244
				10841	10849	11091	11100
	SKP AR1			3378 #
	SKP AR18		3379 #	4335	4342	5514	5532	5534	5553	5556	5572	8510	9131	10112
				10782
	SKP AR2			3380 #	8867	10104
	SKP AR6			3381 #	10343	10345	10381	10406
	SKP ARX LE BRX		3382 #
	SKP ARX LT BRX		3383 #	7570	7620
	SKP ARX NE		3384 #	6412
	SKP ARX NZ		3385 #	7924
	SKP ARX+MQ NE		3386 #	6685	7000
	SKP ARX0		3387 #	7990	8041	8797	9107	9296	9314	9339
	SKP ARX2		3388 #	9048
	SKP BR EQ		3390 #	6177	8822
	SKP BR EQ -1		3391 #	7547
	SKP BR0			3392 #	6018	6168	6261	6679	6934	6951	8691	8813	8992
	SKP CRY0		3393 #	5023	5028	5073	5092	5408	5997	6015	6016	6264	6266	6439
				6710	7022	7471	8869	8933	8967	9025	9097	10777
	SKP EVEN PAR		3394 #
	SKP EXP NE		3395 #
	SKP FE NZ		3396 #
	SKP FE0			3397 #	6003
	SKP FETCH		3398 #
	SKP INTRPT		3399 #	3954	3956	3958	3960	3978	3980	4962	4979	4994	5273	7469
				7495	7568	7618	8153	8155	8188	8190	8217	8219	8298	8300	8302
				8304	8320	8322	8473	8474	8475	8476	8498	8499	8704	8753	8832
				9035	9176	9360	9364	9695	10627	10711	10893
	SKP IO LEGAL		3400 #	4820	4821	4827	4829	4987	9628	9634	9727	9734	9736	9741
				9745	9768	9771	9797	9816	9819	10098	10102	10130	10161	10164	10216
				10232	10235	10244	10247	10256	10948
	SKP KERNEL		3401 #	4817
	SKP MQ EQ -1		3402 #	9044
	SKP MQ NE		3403 #
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-53
; 							Cross Reference Listing					

	SKP PC SEC0		3407 #	4849	4850	5025	5076	5079	5114	5116	5139	5269	8626	9187
				9188	9242	9243	9284	9324	9356	9358	9390	9448	9490
	SKP PI CYCLE		3409 #	9640	9643	9656	10973
	SKP P NE		3404 #	10692	10787
	SKP P!S XCT		3405 #	7534	7559
	SKP RPW			3410 #	10543	10548
	SKP RUN			3411 #
	SKP SC NE		3415 #	5590	10116
	SKP SC NZ		3416 #
	SKP SC0			3417 #	6025	7684	7864	7865	7882	8971
	SKP SCAD NE		3418 #	5519	5522	8102	8105	8107	8109	8468	10644	10682	10706	10739
				10742	10769	10771	10813	10815
	SKP SCAD NZ		3419 #	8569
	SKP SCAD0		3420 #	5542	5545	5547	5561	5564	5577	5580	5592	5597	5614	6093
				6096	6098	6102	6349	6353	6366	6382	6572	6574	6610	6614	6616
				6837	7301	7687	7884	7886	7891	8024	8025	8027	8183	8185	8197
				8200	8337	8344	8364	8386	8707	9216	9295	9331	9343	9368	9371
				9392	9452	9468	10476	10483
	SKP USER		3421 #	4865	4882	4907	4908	4913	5359	5424	10726	11008
	SLEN			3423 #	8665	8677	8686	8691	8709	8733	8848	8865	8870	8876	8964
				9025	9027	9091	9146	9148	9149	11078	11089	11091	11100
	SLEN_AR			3424 #	8665	8733	8848	8964	9027	9091
	SR DISP			3425 #	6026	6027	6032	6417	6419	6421	6423	6450	6452	6453	6463
				6482	6502	6709	6732	7078	7087	7966	8339	8756	10572	10874	11055
				11067	11075	11096
	SRCP			3476 #	8698	8708	8798	8798	9160	9160	9182	9198	9199	9462	9462
				10897	11067
	SRCP2_AR		3479 #	9195
	SRCP2			3478 #	9187	9188	9195
	SRCP_AR			3477 #	8708	9182	9198	9199	11067
	SR_#			3426 #	6066	6067	6068	10905	10936	10944
	SR_0			3427 #	4108	4109	4113	4125	4920	4993	5352	6512	6516	6526	6727
				6742	7033	7092	7483	7498	7792	8051	8693	8713	8800	8895	9037
				9093	10897	10909	10928	10953	10958	11052
	SR_1			3428 #	6918	8045	10901	10913	10932
	SR_2			3429 #
	SR_BDD			3431 #	9050
	SR_BDF			3432 #	8977
	SR_BDT			3433 #	8927	8994	9053	10917
	SR_BLT(DST)		3434 #	7563	7564	7565
	SR_BLT(PXCT DST)	3436 #	7614	7615
	SR_BLT(PXCT SRC)	3437 #	7607	7625
	SR_BLT(SRC)		3439 #	7553	7575
	SR_DB			3440 #	8861
	SR_DST			3441 #	8745
	SR_DSTF			3442 #	8699
	SR_ED(+D)		3443 #	8809	9469	9520
	SR_ED(PAT)		3444 #	9274	9357
	SR_ED(S)		3445 #	8799	9313
	SR_MAP			3460 #	4984
	SR_SRC			3463 #	8670	8674	8682	8698	8700	8739	10940
	SR_SRC+DST		3464 #	8680	8737
	SR_WORD			3469 #
	SR_XBLT(DST)		3472 #	7467	7485	7494
	SR_XBLT(SRC)		3473 #	7457	7468	7497
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-54
; 							Cross Reference Listing					

	STACK UPDATE		3482 #	5073	5091	5407
	STORE			3484 #	4211	4393	4396	4399	4728	4743	4868	4884	4888	5118	5119
				5129	5277	5284	5340	5350	5367	5369	7468	7496	7618	7791	7842
				8076	8079	8083	8088	8089	8091	8100	8103	8111	8112	8119	8123
				8127	8131	8274	8281	8374	9427	9443	9446	9503	9504	9505	9506
				9509	9655	9749	9802	10229	10292	10294	10351	10382	10383	10414	10415
				10451	10452	10561	10694	10809	11004	11011	11013
	STORE VMA(EA)_ARX	3486 #	7568
	SV.ARX			3497 #	10533	10854	10856	10921
	SV.ARX_AR		3501 #	10533
	SV.AR_AR		3495 #	10532
	SV.AR			3491 #	10532	10850	11040
	SV.BR_AR		3504 #	10574
	SV.BR			3503 #	10574	10630	10647	10685	10693	10709	10720	10746	10783	10797	10842
	SV.IOP			3506 #	10335	11038
	SV.IOPF			3507 #	11039
	SV.IOPF_AR		3508 #	11039
	SV.PAR			3510 #	10563
	SV.PAR_AR		3511 #	10563
	SV.PFW			3512 #	10572	10573	10598	10814	10818	10948	10973
	SV.PFW_AR		3513 #	10572	10573	10598	10818
	SV.SC_AR		3515 #	10579
	SV.SC			3514 #	10579	10836
	SV.VMA			3516 #	10582	10719	10822	10866	10873
	SV.VMA_AR		3517 #	10582
	SWD			3519 #
	SWD_AR			3520 #
	SWEEP CACHE		3521 #	9729
	T0			3525 #	5985	6003	6793	6801	6831	6833	6836	6848	6887	7893	7966
				8040	8801	8810	8976	8979	11084
	T0_AR			3526 #	5985	7893	8040	8801	8976
	T1			3527 #	6001	6023	6794	6802	6835	6847	7914	7939	8952	8954	8991
	T1_AR			3528 #	6001	7914	8952	8954
	T2			3529 #	6765	6773	6780	6789	6805	6877	6926	6927	6943	6947	6987
				6990	7067	7322	7402	7415	7443	8963	8990
	T2_AR			3530 #	8963
	TAKE INTRPT		3531 #	4003	4959	5285	5300	5425	8158	8193	8327	8503
	TEST AR			3532 #
	TEST AR.AC0		3533 #	4663
	TEST AR.BR		3534 #	4938	9639	9641	10777
	TEST AR.MSK		3535 #	9097
	TEST ARX		3536 #	8743
	TEST ARX.AR*4		3537 #
	TEST BRL		3538 #	9643
	TEST CBR		3540 #	10669	10757
	TEST FETCH		3542 #	4655	4658	4663	8743	9639	9641	9643
	TRAP1			3543 #
	TRAP2			3544 #	5035	5040	5088	5089	5093
	TRAP3			3545 #
	UNCSH PHYS REF		3559 #
	UPT FETCH		3560 #
	UPT REF			3561 #	5338	5340	10311	10623	11004
	USER REF		3562 #
	VMA_#			3564 #	5274	5283	5339	10266	10301	10303	10305	10307	10968
	VMA_#+AR32-35		3565 #	8407	10616	10618
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-55
; 							Cross Reference Listing					

	VMA_40			3566 #
	VMA_40+PI*2		3567 #	10339	10340
	VMA_41			3568 #
	VMA_41+PI*2		3569 #	10354
	VMA_420+TRAP		3570 #	3926	3928
	VMA_430+MODE		3571 #	5337
	VMA_AC3			3572 #	9388	9414	9488
	VMA_AR			3573 #	4914	4918	5031	5082	7271	7312	7394	7408	9286	9359	9363
				9418	9504	9506	9658	9659	9729	10180	10364	10467	10645	10706
	VMA_AR AND ADMSK	3574 #	5353	10337
	VMA_AR+1		3575 #	10409	10474
	VMA_AR+BR		3576 #
	VMA_AR+CBR		3578 #	10680
	VMA_AR+E0		3580 #	9517
	VMA_AR+E0+1		3581 #	9402
	VMA_AR+E1		3582 #	9041	9105	9465
	VMA_AR+SBR		3584 #	10640	10655	10731
	VMA_AR+XR		3589 #
	VMA_AR-1		3590 #	10393
	VMA_ARX			3591 #	5081	5277	7468	7496	7618	9285
	VMA_ARX AND ADMSK	3592 #	10373	10397	10419
	VMA_ARX+1		3593 #	8508	8511	8513	8516
	VMA_ARX+BR		3594 #	7600	7616
	VMA_ARX+CBR		3596 #	10763
	VMA_ARX+XR		3598 #
	VMA_BR			3600 #	4861	5033	7484	10703
	VMA_E0+1		3601 #	9137	9400
	VMA_FM[]		3602 #	8973
	VMA_MQ			3603 #	8772	10114	10229
	VMA_MQ+1		3604 #	8773
	VMA_PC			3605 #	9174	9222
	VMA_PC+1		3606 #	8746	8867	8885	8932	9024	9312
	VMA_SV.VMA		3608 #	10873
	VMA_VMA HELD		3619 #	4008	10560
	VMA_VMA+1		3622 #	4374	4398	4888	4892	4902	4903	5120	5145	5278	5286	5343
				5367	5369	5934	5989	6542	6758	7275	7397	7979	7996	8085	8890
				8892	9031	9442	9509	9802	10294	10313	10432	11011	11013	11014
	VMA_VMA-1		3623 #	8090	9446	10292
	WR PT ENTRY		3625 #	10099	10824
	WR REFILL RAM		3626 #	9737
	WRITE (E)		3628 #	5095
	XR			3631 #	3925	4005	8159	8160	8194	8195	8209	8210	8328	8504
	[]_#[]			2304 #
	[]_ADA[]		2305 #
	[]_ADB[]		2306 #
	[]_FM[]			2307 #	6785	6789	6795	6800	6804	6831	6835	6836	6847	6848	6878
				6988	7060	7067	7253	7254	7266	7267	7268	8634
	[]_[]*FM[]		2302 #	6780	6926	6943	6994	6996	7197	7198	7204	7205	7434	7437
	[]_[]*[]		2301 #
	[]_[]-FM[]		2303 #	8636
	(AR+ARX+MQ)*.25		2309 #	6724	6899	7031
	(AR+ARX+MQ)*2		2310 #	5728	5729	5730	5732	5745	5746	5747	5749	6700	6898	6900
				7011
	(MQ)*.25		2311 #	6724	6899	7031
	(MQ)*2			2312 #	5728	5729	5730	5732	5745	5746	5747	5749	6700	6898	6900
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-56
; 							Cross Reference Listing					

				7011
(D) MACRO%
	AC			3670 #	4145	4146	4154	4155	4159	4160	4164	4165	4220	4222	4229
				4230	4234	4235	4239	4240	4244	4245	4249	4250	4254	4255	4259
				4260	4266	4267	4271	4272	4276	4277	4281	4282	4286	4287	4291
				4292	4296	4297	4301	4302	4406	4407	4416	4417	4426	4427	4436
				4438	4445	4446	4461	4462	4471	4472	4481	4482	4491	4492	4501
				4502	4512	4513	4522	4523	4532	4533	4542	4543	4552	4553	4975
				5181	5637	5638	5649	5650	5662	5663	7662	7663
	B			3673 #	4409	4419	4429	4443	4448	4464	4474	4484	4494	4504	4515
				4525	4535	4545	4555	5640	5652	5665
	BLKI			3706 #	9556	9603	9614
	BLKO			3707 #	9605	9616
	CONI			3710 #	9539	9550	9561	9585	9597	9608	9619
	CONO			3711 #	9538	9549	9560	9584	9596	9607	9618
	CONSO			3712 #	9541	9552	9563	9587	9599	9610	9621
	CONSZ			3713 #	9540	9551	9562	9586	9598	9609	9620
	DATAI			3708 #	9535	9557	9604	9615
	DATAO			3709 #	9537	9559	9582	9583	9606	9617
	DBL AC			3674 #	5694	5695	5767	5768	5772	5773
	DBL B			3675 #	5697	5770	5775
	EA			3649 #	4206	4222	4438	4805	5003	5005	5101	5102	5159	5160	5161
				5162	5164	5165	5166	5167	5169	5170	5171	5172	5174	5175	5176
				5177	5180	5181	5183	5184	5185	5186	5187	5188	5189	5190	5201
				5202	5203	5204	5205	5206	5210	5211	5212	5213	5214	5215	5216
				5217	5218	5219	5220	5221	5222	5223	5224	5225	5226	5227	5228
				5229	5230	5231	5232	5233	5234	5235	5236	5237	5238	5239	5240
				5241	5245	5246	5392	5505	6276	6277
	FL-AC			3676 #	6042	6047	6048	6052	6057	6058	6115	6120	6121	6144	6145
				6149	6150	6279	6327
	FL-BOTH			3678 #	6045	6050	6055	6060	6118	6123	6147	6152
	FL-MEM			3677 #	6044	6049	6054	6059	6117	6122	6146	6151
	I			3644 #	4150	4566	4567	4568	4569	4570	4571	4582	4583	4584	4585
				4586	4587	4588	4589	4600	4601	4602	4603	4604	4605	4606	4607
				4618	4619	4620	4621	4622	4623	4624	4625	4674	4675	4676	4677
				4678	4679	4680	4681	4749	4750	4751	4752	4753	4754	4755	4756
				4764	4765	4766	4767	4768	4769	4770	4771	4779	4780	4781	4782
				4783	4784	4785	4786	4794	4795	4806	4975	5006	5103	5104	5393
				5498	5499	5500	5501	5502	5503	5504	5663	5695	5768	5773	6048
				6058	6121	6150	6279	9536	9538	9539	9540	9541	9549	9550	9551
				9552	9558	9560	9561	9562	9563	9567	9568	9569	9570	9571	9572
				9573	9574	9584	9585	9586	9587	9594	9595	9596	9597	9598	9599
				9607	9609	9610	9618	9620	9621
	I-PF			3645 #	4146	4155	4160	4165	4230	4235	4240	4245	4250	4255	4260
				4267	4272	4277	4282	4287	4292	4297	4302	4406	4407	4417	4427
				4446	4456	4462	4472	4482	4492	4501	4502	4513	4523	4533	4543
				4552	4553	4564	4565	4573	4574	5638	5650
	IW			3663 #	4408	4409	4503	4504	4554	4555
	M			3671 #	4156	4161	4166	4226	4231	4236	4241	4246	4251	4256	4261
				4268	4273	4278	4283	4288	4293	4298	4303	4408	4418	4428	4442
				4447	4457	4458	4463	4473	4483	4493	4503	4514	4524	4534	4544
				4554	5639	5651	5664	5696	5769	5774	7750	7751	9545
	R			3652 #	4367	4368	4575	4576	4577	4578	4579	4580	4591	4592	4593
				4594	4595	4596	4597	4598	4609	4610	4611	4612	4613	4614	4615
				4616	4627	4628	4629	4630	4631	4632	4633	4634	4683	4684	4685
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-57
; 							Cross Reference Listing					

				4686	4687	4688	4689	4690	4701	4702	4703	4704	4705	4706	4707
				4708	4974	5004	5662	5694	5767	5772	5921	5922	5923	5924	6042
				6043	6047	6052	6053	6057	6115	6116	6120	6144	6145	6149	6323
				6324	6326	6327	6534	6535	6536	6537	6751	6752	6753	6754	7663
				7751	7858	9537	9547	9548	9559	9582	9583	9606	9617
	R-PF			3653 #	4145	4154	4159	4164	4220	4229	4234	4239	4244	4249	4254
				4259	4266	4271	4276	4281	4286	4291	4296	4301	4416	4426	4436
				4445	4455	4461	4471	4481	4491	4512	4522	4532	4542	5637	5649
	RPW			3656 #	4152	4157	4162	4167	4205	4226	4227	4231	4232	4237	4242
				4247	4252	4257	4262	4268	4269	4273	4274	4279	4284	4289	4294
				4299	4304	4418	4419	4428	4429	4442	4443	4447	4448	4463	4464
				4473	4474	4483	4484	4493	4494	4514	4515	4524	4525	4534	4535
				4544	4545	4717	4718	4719	4720	4721	4722	4723	4724	4732	4733
				4734	4735	4736	4737	4738	4739	5639	5640	5651	5652
	RW			3654 #	5664	5665	5696	5697	5769	5770	5774	5775	6044	6045	6049
				6050	6054	6055	6059	6060	6117	6118	6122	6123	6146	6147	6151
				6152	7662	7750	9556	9603	9605	9614	9616
	S			3672 #	4152	4157	4162	4167	4227	4232	4237	4242	4247	4252	4257
				4262	4269	4274	4279	4284	4289	4294	4299	4304
	SJC-			3697 #	4674	4683	4701	4717	4732	4749	4764	4779
	SJCA			3701 #	4678	4687	4705	4721	4736	4753	4768	4783
	SJCE			3699 #	4676	4685	4703	4719	4734	4751	4766	4781	5161
	SJCG			3704 #	4681	4690	4708	4724	4739	4756	4771	4786	5167
	SJCGE			3702 #	4679	4688	4706	4722	4737	4754	4769	4784	4794	5165
	SJCL			3698 #	4675	4684	4702	4718	4733	4750	4765	4780	4795	5160
	SJCLE			3700 #	4677	4686	4704	4720	4735	4752	4767	4782	5162
	SJCN			3703 #	4680	4689	4707	4723	4738	4755	4770	4785	5166
	TC-			3688 #	4600	4601	4609	4610
	TCA			3690 #	4604	4605	4613	4614
	TCE			3689 #	4602	4603	4611	4612
	TCN			3691 #	4606	4607	4615	4616
	TN-			3680 #
	TNA			3682 #	4568	4569	4577	4578
	TNE			3681 #	4566	4567	4575	4576
	TNN			3683 #	4570	4571	4579	4580	4806
	TO-			3692 #	4618	4619	4627	4628
	TOA			3694 #	4622	4623	4631	4632
	TOE			3693 #	4620	4621	4629	4630
	TON			3695 #	4624	4625	4633	4634
	TZ-			3684 #	4582	4583	4591	4592
	TZA			3686 #	4586	4587	4595	4596
	TZE			3685 #	4584	4585	4593	4594
	TZN			3687 #	4588	4589	4597	4598
	W			3651 #	4156	4161	4166	4236	4241	4246	4251	4256	4261	4278	4283
				4288	4293	4298	4303	4387	4388	4457	4458	9534	9535	9545	9546
				9557	9580	9581	9592	9593	9604	9608	9615	9619
(U) MAJVER			1931 #
(U) MARK			1925 #
(U) MBOX CTL			2175 #	10590	10592	10594
	CLR PT LINE		2180 #	10191
	CLR PT LINE(NK)		2178 #	10197
	NORMAL			2184 #	10193	10199
	PT DIR CLR		2183 #	10182
	PT DIR CLR(NK)		2179 #	10186
	PT DIR WR		2181 #
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-58
; 							Cross Reference Listing					

	PT WR			2182 #	10099	10824
	SET IO PF ERR		2177 #	11041
	SET PAGE FAIL		2176 #
(U) MEM				1756 #
	A RD			1760 #	3962	3963	3964	3965	3975	3976	8478	8479	8480	8481	8496
				8497
	AD FUNC			1769 #	10866
	ARL IND			1758 #	4193	4194	5140	5141	5356	5357	5513	5519	5524	5571	5576
				5579	5779	5784	6103	6104	6107	6316	6413	6462	6583	6586	6644
				6648	6668	6670	6921	6923	6951	7056	7087	7316	7323	7424	7534
				7891	7982	7989	8041	8068	8510	8707	8708	8734	8868	8918	8928
				8969	8971	9003	9005	9044	9048	9051	9091	9151	9174	9192	9222
				9284	9333	9362	9374	9375	9388	9417	9488	9493	9522	9767	9815
				10101	10147	10160	10173	10226	10243	10289	10483	10566	10577	10597	10632
				10633	10634	10722	10725	10726	10741	10823	11066
	B WRITE			1761 #	4172	4181	4313	4315	4318	4321	4325	4329	4338	4339	4345
				4346	4352	4353	4359	4360	4413	4423	4433	4452	4468	4478	4488
				4498	4508	4519	4529	4539	4549	4559	4990	5644	5657	5689	5706
				5797	5799	5804	6512	6516	9635	9826	10174
	EA CALC			1770 #	3953	3955	3957	3959	3977	3979	5023	5028	5069	5071	5095
				7558	7559	7566	7568	7672	7676	7681	7760	7764	7774	8148	8150
				8152	8154	8161	8163	8182	8184	8187	8189	8196	8199	8216	8218
				8293	8297	8299	8301	8303	8306	8307	8308	8309	8317	8318	8319
				8321	8473	8474	8475	8476	8498	8499	9414	9418	9442
	FETCH			1762 #	4655	4658	4663	4694	4712	4760	4775	4791	4799	4938	8743
				8803	9639	9641	9643
	IFET			1773 #	3825	4058	4091	4093	4099	4101	4191	4198	4381	4861	4890
				4914	4918	4996	5033	5038	5081	5082	5114	5120	5145	5353	5411
				5518	5529	5548	5567	5582	5605	5630	5849	5858	5978	6019	6385
				6386	6741	7090	7216	7218	7219	7274	7282	7286	7477	7483	7491
				7573	7623	7684	7704	7705	7706	7707	7708	7709	7710	7712	7718
				7719	7720	7721	7722	7723	7725	7731	7732	7733	7737	7738	7866
				7895	7970	7991	7999	8681	8894	8970	9032	9335	9650	10392
	LOAD AR			1764 #	4819	4833	4892	4902	4903	5278	5995	7271	7312	7394	7408
				7463	7475	7484	7493	7600	7616	7979	8085	8408	8561	8774	8973
				9041	9105	9137	9285	9286	9359	9363	9400	9402	9465	9517	9658
				10310	10311	10367	10368	10441	10442	10446	10447	10622	10623	10641	10646
				10661	10683	10708	10732	10767	11014
	LOAD ARX		1765 #	3932	4374	5031	5276	5286	5338	5934	6542	6758	7292	7397
				7996	10313	10358	10359	10361	10364
	MB WAIT			1759 #	3938	4002	4003	4036	4047	4069	4080	4092	4096	4118	4183
				4377	4378	4398	4904	4905	4908	4920	4987	5035	5040	5046	5046
				5074	5075	5077	5078	5093	5094	5339	5342	5352	5365	5943	5945
				6033	6035	7272	7300	7313	7396	7410	7467	7469	7489	7495	7563
				7564	7571	7574	7614	7621	7624	7670	7674	7678	7735	7758	7762
				7766	7772	7786	7786	7811	7812	7813	7814	7815	7816	7817	7819
				7825	7826	7827	7828	7829	7830	7832	7838	7839	7840	7844	7845
				8086	8115	8157	8158	8192	8193	8291	8294	8326	8327	8337	8339
				8362	8362	8365	8409	8502	8503	8650	8688	8775	8977	9046	9107
				9218	9291	9419	9434	9447	9467	9472	9508	9516	9634	9638	9640
				9647	9654	9730	10125	10207	10268	10293	10350	10381	10390	10391	10549
				10563	10627	10642	10662	10688	10703	10710	10733	10770	10968	11006	11016
	REG FUNC		1763 #	4011	4981	9729	9737	9794	9798	10114	10150	10168	10180	10562
	RESTORE VMA		1768 #	4008	8415	10560	10822
	RPW			1772 #	10342	10349
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-59
; 							Cross Reference Listing					

	RW			1771 #
	WRITE			1766 #	4211	4393	4396	4399	4728	4743	4868	4884	4888	5118	5119
				5129	5277	5284	5340	5350	5367	5369	7468	7496	7618	7791	7842
				8076	8079	8083	8088	8089	8091	8100	8103	8111	8112	8119	8123
				8127	8131	8274	8281	8374	9427	9443	9446	9503	9504	9505	9506
				9509	9655	9749	9802	10229	10292	10294	10351	10382	10383	10414	10415
				10451	10452	10561	10694	10809	11004	11011	11013
(U) MINVER			1932 #
(U) MQ				1662 #
	MQ SEL			1666 #	5728	5729	5730	5732	5745	5746	5747	5749	5931	6700	6732
				6898	6900	7011	7313	7410	7431
	MQ*.25			1665 #	5724	5734	5736	5738	5740	5752	5754	5756	5757	5762	5954
				5976	6693	6894	7004	7051
	MQ*2			1664 #	5839	5842	5847	5856	5872	5873	5874	5875	5876	5877	5878
				5879	5903	5904	5905	5906	5974	6014	6016	7927	8811
	MQM SEL			1667 #	6724	6899	6906	7031	7768	7967	8629
	SH			1663 #	4213	5358	5558	5565	5574	5576	5581	5619	5679	5701	5907
				5908	5909	5910	5947	5956	5962	6001	6024	6095	6098	6100	6135
				6383	6443	6576	6589	6591	6595	6613	6615	6630	6640	6647	6704
				6705	6711	6714	6716	6858	6882	6885	6890	6938	7016	7017	7023
				7026	7028	7403	7458	7461	7467	7492	7812	7813	7814	7815	7816
				7817	7820	7821	7822	7823	7826	7827	7828	7829	7830	7833	7834
				7835	7836	7864	7884	7966	8186	8362	8402	8466	8554	8665	8796
				8849	8991	9027	9214	9300	9302	9323	10111	10217	10265	10334
(U) MQ CTL			2046 #
	AD			2054 #	6906	7768	7967	8629
	MQ*.25			2052 #	6724	6899	7031
	MQ*2			2048 #	5728	5729	5730	5732	5745	5746	5747	5749	6700	6898	6900
				7011
	SH			2051 #
	0S			2050 #	5931	6732	7313	7410	7431
	1S			2053 #
(U) MREG FNC			2161 #
	LOAD CCA		2168 #	9729
	LOAD EBR		2173 #	10180
	LOAD UBR		2172 #	10114
	MAP			2174 #	4011	4981	10562
	READ EBR		2164 #	10168
	READ ERA		2165 #	9794
	READ UBR		2163 #	10150
	SBUS DIAG		2162 #	9798
	WR REFILL RAM		2166 #	9737
(U) MTR CTL			2185 #
	CLR E CNT		2188 #	10283
	CLR M CNT		2189 #	10284
	CLR PERF		2187 #	10282
	CLR TIME		2186 #	10281
	CONO MTR		2192 #	10250
	CONO TIM		2193 #	10106
	LD PA LH		2190 #	10239
	LD PA RH		2191 #
(U) NONSTD			1958 #
	OPTIONS			1962 #	9749
(U) PARITY			2244 #
(D) PARITY			2286 #
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-60
; 							Cross Reference Listing					

(U) PC FLAGS			2058 #
	AROV			2059 #	5615	5690	5707	5968	6377	7219
	DIV CHK			2065 #	5794
	FDV CHK			2066 #	6169	6680	6935
	FLOV			2060 #	7076	7081	7282	7440
	FPD			2061 #	7674	7679	7682	7762	7772	7775	8067	8291	8324	8993	9658
				9659
	FXU			2064 #	7080	7286	7441
	TRAP1			2063 #
	TRAP2			2062 #	5035	5040	5088	5089	5093
(U) PV				1965 #
	OPTIONS			1967 #	9749
(U) PXCT			1986 #	3927	3938	5428	8470
(U) SC				1712 #
	AR SHIFT		1715 #	5513	5532	5534	5553	5556	5572	6316	8051
	FE			1713 #	6836	6839	7768	7787	7789	7923	7925	8342	8369	10208	10822
	SCAD			1714 #	3881	3894	3896	4009	4096	4118	4380	4393	4396	4934	4936
				4950	5299	5342	5343	5516	5541	5544	5546	5561	5564	5577	5580
				5592	5596	5618	5620	5623	5632	5686	5706	5784	5797	5799	5803
				5938	5967	5985	5987	5991	6020	6021	6031	6082	6085	6093	6095
				6098	6102	6133	6136	6162	6261	6265	6267	6366	6380	6382	6438
				6444	6541	6561	6574	6592	6610	6613	6615	6631	6644	6650	6672
				6685	6699	6705	6782	6787	6837	6841	6855	6873	6903	6907	6928
				7000	7018	7052	7054	7058	7063	7070	7072	7074	7094	7314	7324
				7425	7429	7445	7667	7671	7672	7676	7683	7686	7689	7705	7706
				7707	7708	7709	7710	7713	7714	7715	7716	7719	7720	7721	7722
				7723	7726	7727	7728	7729	7755	7758	7760	7764	7790	7811	7812
				7813	7814	7815	7816	7817	7819	7820	7821	7822	7823	7825	7826
				7827	7828	7829	7830	7832	7833	7834	7835	7836	7838	7862	7864
				7882	7913	7967	7981	8020	8022	8023	8026	8029	8033	8035	8038
				8039	8043	8044	8067	8076	8079	8087	8093	8110	8113	8118	8122
				8126	8130	8149	8151	8162	8164	8337	8344	8371	8373	8380	8386
				8404	8467	8668	8673	8832	8858	8884	8891	8893	8918	8921	8937
				8940	8952	8954	8968	8998	9001	9027	9034	9107	9136	9174	9176
				9185	9203	9216	9222	9246	9273	9289	9291	9292	9301	9303	9304
				9311	9359	9361	9401	9470	9519	9521	9726	10104	10124	10126	10130
				10154	10165	10179	10218	10229	10271	10291	10341	10363	10425	10440	10445
				10450	10468	10475	10484	10562	10565	10591	10593	10596	10627	10724	10751
				10757	10758	10763	10768	10841	10849	10855	10990	10992	11077
(U) SCAD			1689 #
	A			1690 #	3881	3894	3896	4006	4008	4009	4047	4069	4096	4096	4118
				4118	4194	4380	4393	4396	4934	4936	4950	4950	4967	5342	5343
				5357	5516	5519	5522	5524	5572	5575	5623	5632	5680	5686	5702
				5706	5797	5799	5803	5810	5817	5820	5907	5908	5909	5910	5938
				5948	5963	5967	5987	6003	6018	6020	6031	6082	6085	6133	6135
				6165	6332	6380	6438	6444	6462	6502	6541	6553	6592	6640	6650
				6672	6677	6685	6699	6705	6732	6782	6785	6787	6789	6854	6855
				6873	6880	6885	6903	6907	6924	6928	6932	6991	7000	7018	7052
				7058	7063	7070	7072	7074	7094	7314	7321	7324	7395	7409	7425
				7427	7429	7445	7672	7676	7689	7699	7700	7705	7706	7707	7708
				7709	7710	7713	7714	7715	7716	7719	7720	7721	7722	7723	7726
				7727	7728	7729	7737	7738	7760	7764	7804	7806	7811	7812	7813
				7814	7815	7816	7817	7819	7820	7821	7822	7823	7825	7826	7827
				7828	7829	7830	7832	7833	7834	7835	7836	7838	7844	7845	7881
				7882	7913	7922	7925	7930	7931	7981	8019	8021	8023	8026	8029
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-61
; 							Cross Reference Listing					

				8033	8035	8038	8039	8041	8043	8044	8067	8077	8080	8087	8113
				8118	8122	8126	8130	8212	8275	8311	8312	8313	8314	8380	8404
				8505	8552	8560	8666	8668	8703	8796	8849	8851	8858	8884	8891
				8893	8921	8928	8937	8940	8940	8971	8998	8998	9001	9001	9034
				9107	9119	9136	9141	9160	9189	9192	9244	9248	9273	9292	9311
				9389	9401	9462	9470	9489	9493	9519	9521	9726	9796	10104	10124
				10126	10130	10154	10165	10179	10210	10218	10229	10271	10291	10341	10363
				10425	10440	10445	10450	10484	10543	10548	10562	10575	10627	10692	10724
				10787	10841	10841	10849	10893	10990	10992	11077
	A+1			1694 #	5724	5734	5736	5738	5740	5752	5754	5756	5757	5762	5784
				5954	5985	5991	5991	6103	6104	6107	6162	6451	6501	6648	6667
				6669	6697	6731	6891	6893	6920	6922	7008	7039	7969	8100	8103
				8110	8119	8123	8127	8131	8918	9027	9301	9303	9304	9334	10751
	A+B			1692 #	4958	5541	5544	5546	5561	5564	5577	5580	5590	5592	5596
				5614	5618	5620	5728	5729	5730	5732	5745	5746	5747	5749	5890
				5893	6094	6095	6102	6136	6138	6176	6179	6265	6267	6318	6366
				6382	6415	6449	6571	6574	6612	6613	6631	6644	6694	6696	6791
				6800	7005	7006	7054	7056	7291	7302	7309	7316	7674	7679	7681
				7686	7769	7787	7967	7982	8052	8088	8111	8112	8149	8151	8162
				8164	8291	8293	8344	8368	8379	8403	8411	8467	8468	8661	8673
				8832	8966	9004	9006	9176	9182	9198	9199	9257	9258	9261	9291
				9294	9345	9358	10116	10147	10360	10424	10468	10479	10576	10593	10595
				11066	11071
	A-1			1693 #	4961	5839	5842	5847	5856	5872	5873	5874	5875	5876	5877
				5878	5879	5903	5904	5905	5906	5997	6021	6418	6561	6700	7011
				7305	7927	8951	8953	10190	10196	10622	10623
	A-B			1695 #	5299	6093	6098	6261	6349	6353	6420	6422	6442	6446	6455
				6464	6610	6615	6701	6728	6837	6841	7013	7034	7300	7667	7671
				7683	7755	7758	7762	7772	7774	7789	7790	7862	7864	7884	7886
				7889	7891	7973	7975	7989	8024	8025	8027	8068	8076	8079	8083
				8085	8093	8101	8104	8106	8108	8280	8337	8370	8371	8373	8386
				8705	8707	8968	9174	9185	9203	9216	9222	9246	9331	9343	9367
				9370	9392	9452	9468	10475	10483	10753	10758	10768	10778	10779
	A-B-1			1691 #	7768	8040	8182	8185	8197	8200	8363	8844	8952	8954	10851
				10855
	AND			1697 #	7083	8568	9057	9121	9122	9126	9287	9289	9333	9359	9361
				9380	9395	10111	10343	10345	10356	10381	10406	10423	10463	10472	10565
				10591	10596	10628	10644	10671	10681	10688	10705	10718	10739	10741	10757
				10763	10769	10771	10812	10814
	OR			1696 #	8569	8852	9123	9124	9125	9127	9151	9374	9375	9522	10566
				10597	10710	10733	10781	10816	10821	10823
(U) SCADA			1698 #
	AR EXP			1701 #	6082	6085	6093	6133	6136	6162	6261	6318	6349	6353	6541
				6610	6644	7314	10841	10841	10849
	AR0-5			1700 #	5519	5522	7083	7667	7671	7755	7758	7862	7881	7882	7891
				7967	7969	7981	8068	8076	8079	8087	8093	8100	8101	8103	8104
				8106	8108	8110	8119	8123	8127	8131	8386	8707	9057	9119	9121
				9122	9123	9124	9125	9126	9127	9151	9174	9189	9222	9244	9287
				9333	9334	9345	9359	9361	9380	9395	9401	9468	9522	10111	10483
				10484	10565	10591	10692	10757	10763	10771	10787	10814	10823	11066	11071
	FE			1699 #	4961	5524	5577	5580	5724	5734	5736	5738	5740	5752	5754
				5756	5757	5762	5839	5842	5847	5856	5872	5873	5874	5875	5876
				5877	5878	5879	5903	5904	5905	5906	5954	6003	6094	6103	6104
				6107	6176	6179	6382	6415	6418	6420	6422	6442	6446	6449	6451
				6455	6464	6501	6502	6561	6612	6667	6669	6694	6696	6697	6700
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-62
; 							Cross Reference Listing					

				6701	6728	6731	6732	6891	6893	6920	6922	7005	7006	7008	7011
				7013	7034	7039	7054	7300	7302	7305	7309	7672	7676	7686	7689
				7760	7764	7790	7884	7886	7927	7973	7975	7989	8024	8025	8027
				8040	8041	8052	8067	8083	8085	8149	8151	8162	8164	8182	8185
				8197	8200	8280	8344	8363	8373	8568	8569	8666	8705	8832	8849
				8851	8852	8951	8952	8953	8954	8968	8971	9176	9185	9192	9248
				9291	9301	9303	9304	9331	9343	9358	9367	9370	9374	9375	9392
				9452	9493	10190	10196	10360	10424	10468	10479	10566	10575	10593	10595
				10597	10628	10671	10688	10710	10718	10733	10741	10753	10769	10779	10781
				10812	10816
	#			1702 #	3881	3894	3896	4006	4008	4009	4047	4069	4380	4393	4396
				4934	4936	5299	5342	5343	5516	5541	5544	5546	5561	5564	5572
				5575	5592	5596	5614	5618	5620	5623	5632	5680	5686	5702	5706
				5797	5799	5803	5810	5817	5820	5907	5908	5909	5910	5938	5948
				5963	5967	5987	6018	6031	6095	6098	6102	6135	6138	6165	6265
				6267	6332	6366	6380	6438	6444	6553	6571	6574	6592	6613	6615
				6631	6640	6650	6672	6677	6685	6699	6705	6782	6787	6837	6841
				6854	6855	6880	6885	6903	6907	6928	6932	7000	7018	7052	7058
				7063	7070	7072	7074	7094	7321	7324	7395	7409	7425	7429	7445
				7683	7699	7700	7706	7707	7708	7709	7710	7714	7715	7716	7720
				7721	7722	7723	7727	7728	7729	7737	7738	7769	7787	7789	7804
				7806	7812	7813	7814	7815	7816	7817	7820	7821	7822	7823	7826
				7827	7828	7829	7830	7833	7834	7835	7836	7844	7845	7889	7913
				7922	7925	7930	7931	8019	8021	8023	8026	8029	8033	8035	8038
				8039	8043	8044	8077	8080	8113	8118	8122	8126	8130	8212	8275
				8311	8312	8313	8314	8337	8370	8371	8380	8404	8467	8505	8552
				8560	8668	8703	8796	8858	8884	8891	8893	8921	8937	8940	8940
				8998	8998	9001	9001	9034	9107	9136	9141	9160	9203	9216	9246
				9273	9289	9292	9294	9311	9462	9470	9519	9521	9726	9796	10104
				10124	10126	10130	10154	10165	10179	10210	10218	10229	10271	10291	10341
				10343	10345	10356	10363	10381	10406	10423	10425	10440	10445	10450	10463
				10472	10475	10543	10548	10562	10596	10627	10644	10681	10705	10724	10739
				10778	10821	10893	10990	10992	11077
(U) SCADA EN			1703 #
	0S			1704 #	4096	4096	4118	4118	4194	4950	4950	4958	4967	5357	5590
				5728	5729	5730	5732	5745	5746	5747	5749	5784	5890	5893	5985
				5991	5991	5997	6020	6021	6462	6648	6785	6789	6791	6800	6873
				6924	6991	7056	7291	7316	7427	7674	7679	7681	7705	7713	7719
				7726	7762	7768	7772	7774	7811	7819	7825	7832	7838	7864	7982
				8088	8111	8112	8291	8293	8368	8379	8403	8411	8468	8661	8673
				8844	8918	8928	8966	9004	9006	9027	9182	9198	9199	9257	9258
				9261	9389	9489	10116	10147	10576	10622	10623	10751	10758	10768	10851
				10855
(U) SCADB			1706 #
	AR0-8			1709 #	4958	6366	6791	6800	7291	8568	8569	8661	8844	8966	9289
				9294	10596	10628	10644	10681	10705	10718	10739	10821
	AR6-11			1708 #	7674	7679	7681	7762	7772	7774	7864	7884	7886	7891	7967
				7989	8068	8083	8085	8280	8291	8293	8411	8673	8705	8707	9174
				9182	9185	9198	9199	9203	9222	9246	9257	9258	9261	9468	10343
				10345	10356	10381	10406	10423	10463	10472	10483	11066	11071
	SC			1707 #	5299	5541	5544	5546	5561	5564	5577	5580	5590	5592	5596
				5614	5618	5620	5728	5729	5730	5732	5745	5746	5747	5749	5890
				5893	6093	6094	6095	6098	6102	6136	6138	6261	6265	6267	6318
				6571	6574	6610	6612	6613	6615	6631	6644	6701	6728	6837	6841
				7013	7034	7054	7056	7316	7683	7686	7768	7769	7787	7789	7790
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-63
; 							Cross Reference Listing					

				7889	7973	7975	7982	8040	8052	8088	8111	8112	8149	8151	8162
				8164	8182	8185	8197	8200	8337	8344	8363	8368	8370	8371	8373
				8379	8403	8467	8468	8832	8952	8954	9004	9006	9151	9176	9216
				9291	9333	9345	9374	9375	9522	10116	10147	10468	10475	10565	10566
				10576	10593	10595	10597	10741	10753	10757	10758	10763	10768	10771	10778
				10814	10823	10851	10855
	#			1710 #	6176	6179	6349	6353	6382	6415	6420	6422	6442	6446	6449
				6455	6464	6694	6696	7005	7006	7083	7300	7302	7309	7667	7671
				7755	7758	7862	8024	8025	8027	8076	8079	8093	8101	8104	8106
				8108	8386	8852	8968	9057	9121	9122	9123	9124	9125	9126	9127
				9287	9331	9343	9358	9359	9361	9367	9370	9380	9392	9395	9452
				10111	10360	10424	10479	10591	10671	10688	10710	10733	10769	10779	10781
				10812	10816
(U) SH				1722 #	3953	3955	3957	3959	3962	3963	3964	3965	3976	3979	7672
				7676	7760	7764	8150	8154	8161	8163	8184	8189	8196	8199	8216
				8218	8297	8299	8301	8303	8306	8307	8308	8309	8318	8321	8473
				8474	8475	8476	8478	8479	8480	8481	8497	8499
	AR			1724 #	4211	4213	4213	4958	5358	5589	5591	5595	5609	5679	5701
				5796	5798	5809	5907	5908	5909	5910	5937	5956	5962	6024	6095
				6098	6101	6104	6135	6332	6367	6568	6570	6573	6630	6640	6647
				6676	6711	6714	6716	6836	6838	6840	6854	6882	6885	6890	6932
				6938	6992	7023	7026	7028	7057	7072	7074	7276	7314	7411	7425
				7432	7458	7461	7467	7492	7528	7667	7670	7673	7677	7686	7755
				7758	7761	7765	7881	7966	7981	8042	8044	8067	8086	8093	8343
				8362	8380	8402	8404	8411	8466	8662	8665	8665	8698	8736	8770
				8796	8796	8814	8816	8868	8927	8991	8993	9027	9035	9108	9108
				9182	9188	9199	9214	9240	9243	9258	9261	9290	9362	9388	9395
				9488	9823	10124	10126	10154	10217	10255	10265	10334	10363	10388	10405
				10407	10425	10465	10484	10629	10718	10751	10990	10992	11094
	AR SWAP			1726 #	4172	4318	4321	4324	4325	4328	4329	4345	4346	4352	4353
				4658	4661	4906	4909	4931	5129	5140	5141	5362	5406	6081	6132
				6161	7422	7534	7552	7553	7606	7607	7931	8412	9048	9110	9110
				9632	9748	9767	9773	9815	9821	10101	10160	10168	10174	10237	10243
				10258	10270	10577	10582	10582	10767	10812	10842	11054
	ARX			1725 #	3924	4005	4849	4867	5034	5039	5041	5146	5363	5368	5567
				5576	5582	5613	5617	5973	5985	5990	6001	6176	6412	6585	6588
				6596	6613	6615	6703	6796	6801	7015	7291	7322	7403	7476	7478
				7812	7813	7814	7815	7816	7817	7820	7821	7822	7823	7826	7827
				7828	7829	7830	7833	7834	7835	7836	7864	7884	7914	7975	7977
				7983	8090	8209	8328	8471	8504	8508	8511	8513	8516	8554	8744
				8800	8849	8859	8931	8952	8954	8978	9051	9152	9190	9195	9251
				9284	9285	9286	9300	9302	9311	9315	9323	9344	9363	9393	9441
				9449	9503	9504	9505	9506	9774	10103	10240	10257	10289	10423	10532
				10533	10548	10579	10598	10640	10671	10680	10758	10763	10822	10850	10853
				10855	11010	11060	11082	11086
	SHIFT AR!ARX		1723 #	4095	4125	4399	4935	5299	5299	5344	5349	5520	5522	5541
				5546	5558	5563	5565	5574	5579	5581	5594	5619	5625	5630	5631
				5689	5816	5819	5947	5972	5974	5975	5978	5986	5988	5992	6003
				6032	6100	6103	6106	6381	6383	6387	6443	6445	6576	6587	6589
				6591	6595	6597	6701	6704	6705	6728	6740	6842	6847	6849	6858
				7013	7016	7017	7034	7059	7071	7088	7216	7218	7427	7430	7688
				7699	7700	7788	7790	7790	7791	7804	7806	7921	7923	8045	8110
				8342	8350	8369	8372	8372	8374	8674	8861	8895	8920	9036	9119
				9274	9292	9292	9309	9728	10111	10139	10172	10294	10300	10302	10304
				10306	10337	10356	10426	10454	10632	10642	10643	10722	10726	10994	11078
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-64
; 							Cross Reference Listing					

(U) SKIP			1785 #
	AC REF			1826 #
	AC#0			1793 #	4094	4713	7862
	AD CRY0			1803 #	4968	5023	5028	5073	5092	5408	5997	6015	6016	6177	6264
				6266	6412	6439	6685	6710	7000	7022	7461	7471	7547	8771	8822
				8869	8933	8936	8967	9025	9044	9097	9477	9518	10430	10777
	AD#0			1805 #	5516	5611	5686	5802	6552	6598	6626	6769	6868	7021	7214
				7217	7273	7423	7489	7894	7922	7924	8413	10456	10669	10757
	AD0			1804 #	5416	5418	5704	5891	5894	5964	5992	6166	6559	6676	6771
				6775	6781	6818	6829	6831	6874	6878	6886	6914	6915	6932	6944
				6950	6988	6992	7280	7284	7419	7444	7459	8409	8662	8671	8867
				8920	10104
	ADX0			1802 #	7570	7620	9048
	AR0			1792 #	4175	4349	4356	5410	5527	5786	5818	5821	6332	6645	6764
				6768	6942	7276	7307	7947	7981	8087	8165	8686	8736	9189	9244
				10841	10849	11091	11100
	AR18			1791 #	4335	4342	5514	5532	5534	5553	5556	5572	8510	9131	10112
				10782
	ARX0			1790 #	7990	8041	8797	9107	9296	9314	9339
	BR0			1789 #	6018	6168	6261	6679	6934	6951	8691	8813	8992
	EVEN PAR		1788 #
	FETCH			1810 #
	INTRPT			1818 #	3954	3956	3958	3960	3978	3980	4962	4979	4994	5273	7469
				7495	7568	7618	8153	8155	8188	8190	8217	8219	8298	8300	8302
				8304	8320	8322	8473	8474	8475	8476	8498	8499	8704	8753	8832
				9035	9176	9360	9364	9695	10627	10711	10893
	IO LEGAL		1821 #	4820	4821	4827	4829	4987	9628	9634	9727	9734	9736	9741
				9745	9768	9771	9797	9816	9819	10098	10102	10130	10161	10164	10216
				10232	10235	10244	10247	10256	10948
	KERNEL			1811 #	4817
	P!S XCT			1822 #	7534	7559
	PC SEC0			1798 #	4849	4850	5025	5076	5079	5114	5116	5139	5269	8626	9187
				9188	9242	9243	9284	9324	9356	9358	9390	9448	9490
	PI CYCLE		1815 #	9640	9643	9656	10973
	PUBLIC			1813 #
	RPW REF			1814 #	10543	10548
	RUN			1820 #
	SC0			1794 #	6025	7684	7864	7865	7882	8971
	SCAD#0			1801 #	5519	5522	5590	8102	8105	8107	8109	8468	8569	10116	10343
				10345	10381	10406	10644	10682	10692	10706	10739	10742	10769	10771	10787
				10813	10815
	SCAD0			1800 #	5542	5545	5547	5561	5564	5577	5580	5592	5597	5614	6003
				6093	6096	6098	6102	6349	6353	6366	6382	6572	6574	6610	6614
				6616	6837	7301	7687	7884	7886	7891	8024	8025	8027	8183	8185
				8197	8200	8337	8344	8364	8386	8707	9216	9295	9331	9343	9368
				9371	9392	9452	9468	10476	10483
	USER			1812 #	4865	4882	4907	4908	4913	5359	5424	10726	11008
	-EBUS GRANT		1816 #	9691
	-EBUS XFER		1817 #	9681
	-LOCAL AC ADDR		1807 #	4191	4198	5271	5335
	-MTR REQ		1827 #	4003	4959	5285	5300	5425	8158	8193	8327	8503
	-START			1819 #	4957
	-VMA SEC0		1824 #	7678	7766	7883	7976	8081	8294
(U) SP MEM			2129 #
	CACHE INH		2136 #
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-65
; 							Cross Reference Listing					

	EPT			2150 #	10310	10367	10414	10622
	EPT CACHE		2151 #	8408
	EPT EN			2135 #
	EPT FETCH		2152 #	10358	10359	10364
	EXEC			2132 #
	FETCH			2130 #
	PT			2155 #	3932	5276
	PT FETCH		2156 #
	SEC 0			2133 #
	UNCSH+UNPAGE		2137 #
	UNPAGED			2149 #	10349	10351	10442	10447	10452	10641	10646	10661	10683	10703	10708
				10732	10767
	UNPAGED+CACHED		2138 #
	UPT			2153 #	5338	5340	10311	10623	11004
	UPT EN			2134 #
	UPT FETCH		2154 #
	USER			2131 #
(U) SPEC			1901 #
	AD LONG			1921 #	4379	4395	5841	5841	5844	5844	5889	5892	5943	5945	5955
				5996	5999	6030	6034	6262	6262	6388	6549	6549	6639	6685	6697
				6731	6743	6743	6766	6766	6884	6939	6939	7000	7008	7039	7053
				8406	8878	8879	8892	8936	8937	8937	8951	8994	9034	9056	9095
				9464	10228	10291
	ARL IND			1916 #	4199	4199	4378	4394	4867	4882	5074	5077	5146	5349	5359
				5524	5935	6082	6085	6093	6133	6136	6162	6162	6261	6318	6541
				6541	6610	6759	7009	7272	7396	7428	7917	7917	7920	7977	7983
				8085	8379	8403	8666	8851	9748	10240	10250	10575	10576	11008	11010
	CLR FPD			1906 #	4112	7686	7688	7704	7712	7718	7725	7731	7732	7733	7791
				7839	7840	7866	8115	9030
	FLAG CTL		1918 #	3822	4813	4854	4858	4904	4905	4908	4910	4911	4937	4940
				4948	5372	9651	10391	11015
	GEN CRY18		1909 #	4193	4799	5346	5356	6439	9643	9655	10135
	INH CRY18		1903 #	5409	9184	9193	9241	9245	9249	9332	9369
	LOAD PC			1907 #	4951
	MQ SHIFT		1904 #	5974	5976	6014	6016	6693	7004	7051	8811
	MTR CTL			1917 #	10233	10245	10257	10258	10259	10273	10274	10275	10276
	SAVE FLAGS		1919 #	4821	4832	5025	5114	5116	5365
	SCM ALT			1905 #	5513	5532	5534	5553	5556	5572	6316	6836	6839	7768	7787
				7789	7923	7925	8051	8342	8369	10208	10822
	SP MEM CYCLE		1920 #	3932	5276	5338	5340	8408	10310	10311	10349	10351	10358	10359
				10364	10367	10414	10442	10447	10452	10622	10623	10641	10646	10661	10683
				10703	10708	10732	10767	11004
	STACK UPDATE		1914 #	5023	5028	5073	5091	5407
	XCRY AR0		1908 #	4091	4124	5411	5594	5595	5606	5686	5690	5816	5819	5966
				6031	6100	6101	6333	6354	6381	6570	6573	6838	6840	7057	7404
				7411	7425	8042	8044	8894	9189	9244
(U) SPEC INSTR			2077 #	10656
	CONS XCT		2086 #	4967
	CONT			2087 #	4961
	HALTED			2085 #	4950
	INH PC+1		2080 #	3933
	INSTR ABORT		2084 #	10288	10994
	INTRPT INH		2083 #
	KERNEL CYCLE		2079 #
	PXCT			2082 #	5427
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-66
; 							Cross Reference Listing					

	SET PI CYCLE		2078 #	3880	10278	10334
	SXCT			2081 #
(U) SWITCH%
	ADJBP			1176
	BACK.BLT		1186	7538	7543	7546	7578	7588
	BIG.PT			1244	10115	10117	10119	10185	10187	10194	10200	10670	10673	10676	10687
				10689	10691	10740	10743	10745	10748	10750	10752	10754
	BLT.PXCT		10	1133	3084	3086	3088	3435	3438	3485	3487	3489	7530	7533
				7537	7597	7626
	CST.WRITE		1243	10780	10784	10786
	DBL.INT			1173	5915	5920	6036
	DDT.BUG			1245	9744	9751	9764
	DIAG.INST		1229	1231	1233	5379	5390	5395	5432	5442	5454
	EPT540			5	1226	10608	10614	10620
	EXTEND			1170	6356	6369	6371	8420	8585	8596	8640	8643	8760	8763	8833
				8836	8900	8903	9058	9061	9264	9267	9524
	EXTEXP			12	3883	3889	3891	3939	3942	3947	5182	5191	5200	5247	5250
				5443	5453	6748	6862	6865	6909	6912	6952	6955	7095	7098	7221
				7229	7246	7250	7252	7449
	FPLONG			9	1115	6063	6071	6077	6125	6130	6154	6159	6195	6253	6272
				6275	6278	6282	6311	6473	6475	6477	6483	6491	6507	6509	6511
				6513	6515	6517	6525	6527	6529
	GFTCNV			17	1246	6859	6861	7099	7188	7255	7260	7265	7327	7393
	IMULI.OPT		1149	5668	5671	5678	5682	5685
	INSTR.STAT		1210	1212	1215	1973	1975	1977	9780	9784	9792	9855	10087
	IPA20			16	1241	9645	9648	10346	10348	10352
	KLPAGE			8	1122	1139	1145	1147	1945	1947	1949	2389	2392	2425	2427
				2448	2450	2534	2536	2550	2556	2687	2689	2710	2712	2744	2749
				2804	2806	2841	2843	3181	3184	3198	3200	3237	3240	3261	3265
				3268	3270	3459	3461	3490	3492	3494	3496	3498	3500	3502	3505
				3509	3518	3539	3541	3577	3579	3583	3585	3595	3597	3607	3609
				3616	3618	3620	4983	4985	4991	4998	10092	10096	10100	10488	10878
				10888	10920	10922	10924	10945	10949	10965	10974	10988	11019	11026	11051
				11053
	LONG.PC			6	1224	1952	1954	1956	4818	4822	4826	4831	4834	4837	4864
				4927
	MODEL.B			7	1129	1140	1143	1152	1155	1164	1166	1679	1682	1684	1732
				1738	1767	1774	1781	1795	1797	1799	1806	1808	1823	1825	1855
				1857	1868	1870	1873	1897	1899	1910	1913	1915	1966	1968	1970
				1985	2003	2010	2013	2099	2127	2167	2169	2171	2253	2255	2314
				2317	2320	2327	2329	2331	2333	2335	2337	2507	2509	2770	2772
				2775	2779	2783	2786	2788	2790	2792	2795	2799	2803	2856	2858
				2860	2862	2864	2903	2909	2955	2958	2961	2971	2973	3051	3053
				3055	3069	3072	3074	3076	3078	3080	3082	3089	3091	3187	3191
				3201	3203	3228	3230	3316	3320	3354	3356	3358	3360	3406	3408
				3412	3414	3430	3446	3458	3462	3465	3468	3470	3475	3481	3483
				3613	3615	3621	3627	3629	3818	3821	3823	3981	3992	4013	4031
				4033	4035	4042	4044	4046	4053	4055	4057	4064	4066	4068	4075
				4077	4079	5015	5022	5029	5051	5067	5096	5327	5329	5331	5727
				5731	5744	5748	5782	5787	5792	5801	5806	6358	6361	6364	6551
				6554	6557	6575	6578	6581	6594	6601	6623	6633	6638	6661	6663
				6665	6686	6689	6692	6708	6717	6722	6735	6737	6739	6747	7450
				8432	8437	8442	8525	8532	8584	8825	8828	8831	8896	8898	9138
				9140	9142	9210	9213	9215	9225	9230	9237	9278	9282	9288	9316
				9319	9326	9406	9411	9457	9482	9484	9492	9498	9511	9514	9706
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-67
; 							Cross Reference Listing					

				9708	9710	9712	9714	9716	10132	10134	10137	10141	10146	10153	10369
				10372	10374	10375	10377	10394	10396	10398	10416	10418	10420	10438	10457
				10526	10528	10530	10832	10835	10837	10843	10845	10847	10879	10881	10883
				10955	10959	11032	11037	11046	11070	11072	11074	11079	11081
	MOS			9800	9801	9803	9812
	MULTI			13	1119	2139	2148	2157
	NOCST			14	1242	10668	10677	10679	10695	10702	10712	10756	10760	10762	10798
				10808	10825
	NONSTD			1235	1959	1961	1963
	OP.CNT			1097	1194	1196	3905	3908	9907	9951
	OP.TIME			1100	1198	1200	3909	3912	9953	9983
	OWGBP			15	1240	3884	3886	3888	3943	3946	8384	8416	8541	8548	8572
				8597	8639	8648	8654	8660	8769	8777	8788	8840	8845	8847	8915
				8922	8926	9270	9275	9277
	PAGCNT			1111	1217	1220	4952	4955	10107	10110	10534	10538	10542	10545	10547
				10552	10554
	PUSHM			1168	5444	5448	5452
	RPW			1179	3655	3657	3659
	SHIFT.MUUO		1124	5310	5312	5314	10967	10969	10971
	SMP			11	1236
	SNORM.OPT		3	1160	6424	6435	6456
	SO.CNT			1103	1202	1204	3913	3917	9987	10036
	SO2.CNT			1106	1206	1208	3918	3922	9986	10039	10086
	SXCT			1153	1156	3987	3989	3991	5431	5456	5493
	TRACKS			1093	1190	1192	3901	3904	9858	9860	9862	9867	9883	9889	9905
	TRXDEF			1222	2430	2433	2563	2572	2752	2754	3546	3557	3586	3588	3610
				3612
	WRTST			1183	3660	3662	3664	4147	4149	4151
	XADDR			4	2109	2111	2113	2875	2877	2880	3471	3474	3646	3648	3650
				3951	3972	3993	4000	4012	4189	4200	4221	4223	4225	4437	4439
				4441	4843	4847	4853	4871	4877	4886	4895	4901	4917	4919	4926
				5108	5113	5125	5132	5136	5143	5262	5268	5287	5304	5332	5376
				5401	5405	5413	6357	6365	6368	7247	7249	7455	7500	8238	8268
				8329	8427	8461	8519	8533	8540	8583	9177	9179	9181	9186	9204
				9224	9238	9263	9320	9322	9325	9347	9355	9372	9385	9387	9391
				9412	9416	9420	9425	9456	9485	9487	9491	9499	9501	9510	10950
				10954	10995	11003	11017	11058	11062
(U) TIME			1746 #
	2T			1749 #	4666	4667	4668	4962	7915	8000	8019	8021	8033	8039	8078
				8080	8083	8113	8118	8122	8126	8130	8275	8280	9094
	3T			1750 #	3927	4006	4037	4047	4059	4069	4080	4957	5046	5072	5075
				5078	5810	7786	7805	7807	8159	8160	8194	8195	8209	8210	8328
				8338	8363	8505	8774	9044	9096	9746	10191	10196	10593	10595	10719
	4T			1751 #
	5T			1752 #	3894	3896	4923	4989	5346	5348	9676	9679	9683	9696	9701
				9702	9735	9742	9769	9772	9773	9775	9817	9820	9822	9824	10103
				10135	10152	10162	10166	10170	10220	10221	10222	10223	10233	10236	10238
				10245	10248	10257	10258	10259	10264	10273	10274	10275	10276	10344	10404
				10549	10564
(U) U0				1562 #
(U) U21				1624 #
(U) U23				1630 #
(U) U42				1705 #
(U) U45				1711 #
(U) U48				1718 #
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-68
; 							Cross Reference Listing					

(U) U51				1739 #
(U) U73				1923 #
(U) VMA				1740 #	10866
	AD			1745 #	3879	4008	4861	4914	4918	5031	5033	5081	5082	5277	5353
				7271	7312	7394	7408	7463	7468	7475	7484	7493	7496	7600	7616
				7618	8508	8511	8513	8516	8772	8773	8973	9041	9105	9137	9285
				9286	9359	9363	9388	9400	9402	9414	9418	9465	9488	9504	9506
				9517	9658	9659	9729	10114	10180	10190	10196	10209	10229	10337	10364
				10373	10393	10397	10409	10419	10467	10474	10560	10640	10645	10655	10680
				10703	10706	10731	10763	10873
	LOAD			1743 #	3926	3928	3953	3955	3957	3959	3977	3979	5023	5028	5069
				5071	5095	5274	5283	5337	5339	7558	7559	7566	7568	7672	7676
				7760	7764	8148	8150	8152	8154	8161	8163	8182	8184	8187	8189
				8196	8199	8216	8218	8297	8299	8301	8303	8306	8307	8308	8309
				8317	8318	8319	8321	8407	8415	8473	8474	8475	8476	8497	8498
				8499	10266	10301	10303	10305	10307	10339	10340	10354	10616	10618	10822
				10968
	PC			1742 #	3825	4951	9174	9222	9470	10392
	PC+1			1744 #	3962	3963	3964	3965	3975	3976	4058	4091	4093	4099	4101
				4191	4198	4381	4655	4658	4663	4694	4712	4760	4775	4791	4799
				4890	4938	4996	5038	5411	5518	5548	5567	5582	5605	5630	5849
				5858	5978	6019	6385	6386	6741	7090	7216	7218	7219	7274	7282
				7286	7477	7483	7491	7573	7623	7684	7704	7705	7706	7707	7708
				7709	7710	7712	7718	7719	7720	7721	7722	7723	7725	7731	7732
				7733	7737	7738	7866	7895	7970	7991	7999	8681	8743	8746	8803
				8867	8885	8932	8970	9024	9312	9639	9641	9643	9650
	VMA			1741 #	4374	4398	4888	4892	4902	4903	5120	5145	5278	5286	5343
				5367	5369	5934	5989	6542	6758	7275	7397	7681	7774	7979	7996
				8085	8090	8293	8890	8892	9031	9442	9446	9509	9802	10292	10294
				10313	10432	11011	11013	11014
(U) VMAX			1733 #
	AD12-17			1737 #
	PC SEC			1735 #	5137	5142
	PREV SEC		1736 #	4866	4883	5360	10148	11009
	VMAX			1734 #
(U) #				1929 #	3881	3893	3894	3896	3924	3926	3928	3962	3963	3964	3965
				3975	3976	4006	4008	4009	4047	4069	4096	4108	4109	4113	4118
				4125	4380	4393	4396	4920	4934	4936	4984	4993	4997	5274	5283
				5299	5337	5339	5342	5343	5352	5373	5374	5375	5428	5516	5541
				5544	5546	5561	5564	5572	5575	5592	5596	5614	5618	5620	5623
				5632	5680	5686	5702	5706	5797	5799	5803	5810	5817	5820	5907
				5908	5909	5910	5938	5948	5963	5967	5987	6006	6018	6026	6031
				6066	6067	6068	6095	6098	6102	6135	6138	6165	6176	6179	6190
				6265	6267	6332	6349	6353	6366	6380	6382	6414	6415	6420	6422
				6438	6442	6444	6446	6449	6455	6464	6512	6516	6526	6553	6571
				6574	6592	6599	6600	6613	6615	6628	6631	6640	6650	6662	6672
				6677	6685	6688	6694	6696	6699	6705	6727	6742	6782	6787	6817
				6837	6841	6854	6855	6871	6880	6885	6903	6907	6918	6925	6928
				6933	6946	7000	7003	7005	7007	7018	7033	7052	7058	7061	7063
				7070	7072	7074	7083	7092	7094	7279	7281	7287	7301	7302	7309
				7320	7321	7324	7395	7401	7409	7414	7426	7429	7445	7457	7467
				7468	7483	7485	7494	7497	7498	7553	7563	7564	7565	7575	7607
				7614	7615	7625	7667	7671	7683	7699	7700	7706	7707	7708	7709
				7710	7714	7715	7716	7720	7721	7722	7723	7727	7728	7729	7737
				7738	7755	7758	7769	7787	7789	7792	7804	7806	7812	7813	7814
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page CRF-69
; 							Cross Reference Listing					

				7815	7816	7817	7820	7821	7822	7823	7826	7827	7828	7829	7830
				7833	7834	7835	7836	7844	7845	7862	7889	7913	7922	7925	7930
				7931	8019	8021	8023	8024	8025	8026	8027	8029	8033	8035	8038
				8039	8043	8044	8045	8051	8076	8077	8079	8080	8093	8101	8104
				8106	8108	8113	8118	8122	8126	8130	8212	8275	8311	8312	8313
				8314	8337	8370	8371	8380	8386	8404	8407	8467	8478	8479	8480
				8481	8496	8497	8505	8552	8560	8661	8668	8670	8674	8680	8682
				8693	8698	8699	8700	8703	8713	8737	8739	8745	8796	8799	8800
				8809	8844	8852	8858	8861	8884	8891	8893	8895	8921	8927	8937
				8940	8966	8968	8977	8994	8998	9001	9034	9037	9050	9053	9057
				9093	9107	9121	9122	9123	9124	9125	9126	9127	9136	9141	9160
				9203	9216	9246	9273	9274	9287	9289	9292	9294	9311	9313	9331
				9343	9357	9358	9359	9361	9367	9370	9380	9392	9395	9452	9462
				9469	9470	9519	9520	9521	9726	9796	10104	10111	10113	10124	10125
				10126	10130	10154	10165	10179	10207	10210	10218	10229	10266	10268	10271
				10279	10291	10301	10303	10305	10307	10339	10340	10341	10343	10345	10354
				10356	10360	10363	10381	10406	10423	10424	10425	10440	10445	10450	10463
				10472	10475	10479	10529	10531	10543	10548	10562	10591	10596	10616	10618
				10627	10644	10671	10681	10688	10705	10710	10724	10733	10739	10753	10769
				10778	10779	10781	10812	10816	10821	10867	10893	10897	10901	10905	10909
				10913	10917	10928	10932	10936	10940	10944	10953	10958	10968	10972	10990
				10992	11016	11045	11052	11077
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page LLD-1
; 							Location / Line Number Index
; Dcode Loc'n	0	1	2	3	4	5	6	7					

D 0000		5159	5160	5161	5162	5164	5165	5166	5167
D 0010		5169	5170	5171	5172	5174	5175	5176	5177
D 0020		5180	5181	5183	5184	5185	5186	5187	5188
D 0030		5189	5190	5201	5202	5203	5204	5205	5206
D 0040		5210	5211	5212	5213	5214	5215	5216	5217
D 0050		5218	5219	5220	5221	5222	5223	5224	5225
D 0060		5226	5227	5228	5229	5230	5231	5232	5233
D 0070		5234	5235	5236	5237	5238	5239	5240	5241

D 0100		5245	5246	6751	6752	5392	5393	6753	6754
D 0110		6534	6535	6536	6537	5921	5922	5923	5924
D 0120		4367	4368	6323	6324	4387	4388	6326	6327
D 0130		6276	6277	6279	7858	7662	7663	7750	7751
D 0140		6042	6043	6044	6045	6047	6048	6049	6050
D 0150		6052	6053	6054	6055	6057	6058	6059	6060
D 0160		6115	6116	6117	6118	6120	6121	6122	6123
D 0170		6144	6145	6146	6147	6149	6150	6151	6152

D 0200		4145	4146	4150	4152	4154	4155	4156	4157
D 0210		4159	4160	4161	4162	4164	4165	4166	4167
D 0220		5662	5663	5664	5665	5694	5695	5696	5697
D 0230		5767	5768	5769	5770	5772	5773	5774	5775
D 0240		5498	5499	5500	5501	5502	5503	5504	5505
D 0250		4205	4206	4794	4795	4805	4806	4974	4975
D 0260		5003	5004	5005	5006	5101	5102	5103	5104
D 0270		5637	5638	5639	5640	5649	5650	5651	5652

D 0300		4674	4675	4676	4677	4678	4679	4680	4681
D 0310		4683	4684	4685	4686	4687	4688	4689	4690
D 0320		4749	4750	4751	4752	4753	4754	4755	4756
D 0330		4701	4702	4703	4704	4705	4706	4707	4708
D 0340		4764	4765	4766	4767	4768	4769	4770	4771
D 0350		4717	4718	4719	4720	4721	4722	4723	4724
D 0360		4779	4780	4781	4782	4783	4784	4785	4786
D 0370		4732	4733	4734	4735	4736	4737	4738	4739

D 0400		4406	4407	4408	4409	4416	4417	4418	4419
D 0410		4426	4427	4428	4429	4436	4438	4442	4443
D 0420		4445	4446	4447	4448	4455	4456	4457	4458
D 0430		4461	4462	4463	4464	4471	4472	4473	4474
D 0440		4481	4482	4483	4484	4491	4492	4493	4494
D 0450		4501	4502	4503	4504	4512	4513	4514	4515
D 0460		4522	4523	4524	4525	4532	4533	4534	4535
D 0470		4542	4543	4544	4545	4552	4553	4554	4555

D 0500		4220	4222	4226	4227	4229	4230	4231	4232
D 0510		4234	4235	4236	4237	4239	4240	4241	4242
D 0520		4244	4245	4246	4247	4249	4250	4251	4252
D 0530		4254	4255	4256	4257	4259	4260	4261	4262
D 0540		4266	4267	4268	4269	4271	4272	4273	4274
D 0550		4276	4277	4278	4279	4281	4282	4283	4284
D 0560		4286	4287	4288	4289	4291	4292	4293	4294
D 0570		4296	4297	4298	4299	4301	4302	4303	4304

; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page LLD-2
; 							Location / Line Number Index
; Dcode Loc'n	0	1	2	3	4	5	6	7					

D 0600		4564	4565	4566	4567	4568	4569	4570	4571
D 0610		4573	4574	4575	4576	4577	4578	4579	4580
D 0620		4582	4583	4584	4585	4586	4587	4588	4589
D 0630		4591	4592	4593	4594	4595	4596	4597	4598
D 0640		4600	4601	4602	4603	4604	4605	4606	4607
D 0650		4609	4610	4611	4612	4613	4614	4615	4616
D 0660		4618	4619	4620	4621	4622	4623	4624	4625
D 0670		4627	4628	4629	4630	4631	4632	4633	4634

D 0700		9534	9535	9536	9537	9538	9539	9540	9541
D 0710		9545	9546	9547	9548	9549	9550	9551	9552
D 0720		9556	9557	9558	9559	9560	9561	9562	9563
D 0730		9567	9568	9569	9570	9571	9572	9573	9574
D 0740		9580	9581	9582	9583	9584	9585	9586	9587
D 0750		9592	9593	9594	9595	9596	9597	9598	9599
D 0760		9603	9604	9605	9606	9607	9608	9609	9610
D 0770		9614	9615	9616	9617	9618	9619	9620	9621
; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page LLU-1
; 							Location / Line Number Index
; Ucode Loc'n	0	1	2	3	4	5	6	7					

U 0000		3822:	3825:	4172=	4037:	4048:	4059:	4070:	4081:
U 0010		4656=	4659=	4661=	4663=	4665=	4666=	4667=	4668=
U 0020		4112=	4113=	9638=	9639=	6478=	6482=	9640=	9641=
U 0030		3940 	6497=	7864=	7865=	4936=	6498=	4937=	7866=
U 0040		10893=	10897=	10901=	10905=	10909=	10913=	10917=	10921=
U 0050		10928=	10932=	10936=	10940=	10944=	10948=	10953=	10958=
U 0060		3932=	4091=	4092=	4094=	4095=	4096=	4099=	4101=
U 0070		4002=	4003=	4108=	4109=	3933=	3938=	4849=	4850=

U 0100		4181:	4183:	4191:	4211:	4214:	4313:	4315:	4199:
U 0110		4393=	4394=	4175=	4396=	4324=	4325=	6033=	6035=
U 0120		4377=	4378=	6137=	4380=	3941 	9658=	6138=	9659=
U 0130		5031=	4008 	5034=	5035=	6501=	6503=	4135:	4140:
U 0140		3880=	4009 	3882=	3890=	3893=	3894=	3896=	4011 
U 0150		9145=	6512=	3925=	3926=	9146=	6516=	3927=	3928=
U 0160		3954=	3956=	3958=	3960=	3962=	3963=	3964=	3965=
U 0170		3967=	3968=	3969=	3970=	3975=	3976=	3978=	3980=

U 0200		7668=	4178=	6081=	6083=	7671=	4318=	4321=	6085=
U 0210		5931=	5935=	4335=	5936=	7673=	7675=	7677=	7678=
U 0220		5276=	4118 	5277=	5279=	4193=	4194=	4967=	4968=
U 0230		5345=	5347=	4124 	5348=	7680=	7681=	7682=	7684=
U 0240		9647=	4125 	9650=	9651=	4381 	7704=	7705=	7706=
U 0250		7707=	7708=	7709=	7710=	7712=	7713=	7714=	7715=
U 0260		7716=	7718=	7719=	7720=	7721=	7722=	7723=	7725=
U 0270		7726=	7727=	7728=	7729=	7731=	7732=	7733=	7735=

U 0300		7756=	6543=	5681=	6544=	7759=	6759=	5686=	6760=
U 0310		6066=	6067=	6068=	6069=	7761=	7763=	7765=	7766=
U 0320		5728=	5729=	5730=	5732=	5734=	5736=	5738=	5740=
U 0330		5542=	5545=	5547=	5548=	4852=	4854=	7768=	7769=
U 0340		6678=	4398 	6679=	6680=	4399 	7811=	7812=	7813=
U 0350		7814=	7815=	7816=	7817=	7819=	7820=	7821=	7822=
U 0360		7823=	7825=	7826=	7827=	7828=	7829=	7830=	7832=
U 0370		7833=	7834=	7835=	7836=	7838=	7839=	7840=	7842=

U 0400		5703=	4342=	4328=	4329=	5704=	4349=	5706=	5707=
U 0410		5781=	5783=	5786=	5794=	4338=	4339=	5797=	5799=
U 0420		5745=	5746=	5747=	5749=	5752=	5754=	5756=	5757=
U 0430		6568=	4401 	5372=	5373=	6572=	6574=	5374=	5375=
U 0440		4857=	4858=	9654=	9655=	5271=	5273=	4402 	9656=
U 0450		6782=	6783=	6784=	6785=	5840=	5841=	5843=	5844=
U 0460		4006=	8917=	5848=	5849=	5274=	9272=	5851=	5852=
U 0470		5943=	8919=	5945=	6015=	5948=	9273=	4791 	6016=

U 0500		9628=	9629=	9632=	4356=	4345=	4346=	9634=	9635=
U 0510		9741=	9742=	9745=	9747=	4352=	4353=	4374=	9748=
U 0520		8866=	8867=	5857=	5858=	8869=	8870=	5860=	5861=
U 0530		5954=	6844=	4859 	6845=	5955=	6029=	5956=	6030=
U 0540		5872=	5873=	5874=	5875=	5876=	5877=	5878=	5879=
U 0550		6787=	4865 	6788=	6789=	4866=	4868=	6710=	6712=
U 0560		5610=	6850=	5611=	6851=	5889=	5891=	5892=	5894=
U 0570		6547=	6904=	6549=	6905=	6553=	6741=	6561=	6742=

; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page LLU-2
; 							Location / Line Number Index
; Ucode Loc'n	0	1	2	3	4	5	6	7					

U 0600		4812:	4813:	4815:	4816:	4817:	4819:	4820:	4821:
U 0610		4827:	4828:	4829:	4830:	4832:	4833:	4838:	4839:
U 0620		6933=	4882 	6934=	6935=	4893 	4907:	4909:	4888:
U 0630		4861:	5979=	4862:	5980=	4890:	7080=	4902 	7081=
U 0640		6632=	4903 	4904 	7073=	6639=	4920 	6640=	7075=
U 0650		10113=	10114=	8752=	7076=	4922 	10116=	8753=	7078=
U 0660		8650=	4923 	8651=	7436=	4879=	4881=	4925 	7439=
U 0670		4883=	4885=	8652=	7440=	4910=	4911=	4931 	7441=

U 0700		4934:	4413=	4359=	4360=	9734=	9735=	9736=	9737=
U 0710		9782=	9794=	9797=	9798=	9768=	9769=	9771=	9772=
U 0720		5903=	5904=	5905=	5906=	5907=	5908=	5909=	5910=
U 0730		10482=	4938 	10483=	7699=	4913=	4914=	10484=	7700=
U 0740		5963=	4939 	7090=	7092=	5964=	4940 	5967=	5968=
U 0750		4916=	4918=	4951 	7805=	4958=	4959=	4984 	7807=
U 0760		7563=	7564=	7565=	7566=	4961=	4962=	4990 	7918=
U 0770		5046 	7614=	7615=	7616=	4988=	4989=	5073 	7920=

U 1000		5406:	4423=	5336:	5083 	5571:	5259:	5269:	4433=
U 1010		5290:	5292:	5294:	7226:	7228:	5092 	4947:	4948:
U 1020		4993=	4994=	5337:	5095 	6025=	5120 	6026=	6027=
U 1030		7978=	7980=	5139 	7981=	4996=	4997=	7968=	7970=
U 1040		6018=	6019=	5142 	6020=	5145 	6021=	6731=	6733=
U 1050		5146 	8020=	8022=	8023=	8024=	8025=	8026=	8027=
U 1060		6166=	5286 	6168=	6169=	5027=	5028=	6177=	6179=
U 1070		5338 	8100=	8102=	8103=	8105=	8107=	8109=	8110=

U 1100		10098=	10099=	10102=	10103=	7231:	7233:	7235:	7237:
U 1110		7239:	7241:	7243:	7245:	4979=	4981=	4452=	5339 
U 1120		6413=	6414=	6416=	6417=	6419=	6421=	6423=	6439=
U 1130		8157=	8158=	8159=	8160=	8111=	8112=	8114=	8115=
U 1140		8192=	8193=	8194=	8195=	6450=	6452=	6453=	6455=
U 1150		8616=	8617=	8618=	8619=	8149=	8151=	8153=	8155=
U 1160		5039=	5041=	6647=	6648=	5351 	7974=	6650=	7976=
U 1170		8626=	8627=	8628=	8629=	5076=	5079=	8162=	8165=

U 1200		9816=	4468=	4478=	9817=	9819=	4488=	4498=	9820=
U 1210		10131=	10136=	10138=	10139=	10161=	10162=	10165=	10166=
U 1220		6660=	6662=	5352 	6668=	6002=	6670=	6003=	6673=
U 1230		8698=	8699=	5353 	8700=	8183=	8186=	8188=	8190=
U 1240		6685=	6688=	6694=	6696=	6697=	6699=	6700=	6701=
U 1250		8744=	8745=	5358 	8746=	5081=	5082=	8198=	8201=
U 1260		5088=	5089=	5359 	8210=	5093=	5094=	5362 	8211=
U 1270		5118=	5119=	5363 	8212=	5123=	5124=	5365 	8213=

U 1300		10232=	10233=	10235=	10236=	10244=	10245=	10247=	10248=
U 1310		10253=	4508=	10256=	10257=	5023=	5025=	5069=	5071=
U 1320		6764=	6765=	6766=	6767=	6768=	6770=	6772=	6773=
U 1330		8940=	8942=	5367 	8943=	5140=	5141=	8217=	8219=
U 1340		8298=	8300=	8302=	8304=	8306=	8307=	8308=	8309=
U 1350		8311=	8312=	8313=	8314=	8317=	8318=	8320=	8322=
U 1360		8473=	8474=	8475=	8476=	8478=	8479=	8480=	8481=
U 1370		8483=	8484=	8485=	8486=	8496=	8497=	8498=	8499=

; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page LLU-3
; 							Location / Line Number Index
; Ucode Loc'n	0	1	2	3	4	5	6	7					

U 1400		5114=	5116=	5129=	5137=	5514=	5516=	5533=	5534=
U 1410		5554=	5555=	6132=	6133=	6161=	6162=	6333=	6350=
U 1420		6883=	5369 	10404=	10405=	6884=	5408 	6886=	6887=
U 1430		8977=	8978=	5412 	8979=	5284=	5285=	8707=	8708=
U 1440		6894=	5556 	5564 	8921=	6898=	6899=	6900=	8927=
U 1450		9196=	5572 	9198=	9199=	5299=	5300=	8709=	8710=
U 1460		6917=	6918=	5580 	6921=	7398=	6923=	7399=	6924=
U 1470		5341=	5342=	5600 	8758=	5356=	5357=	5607 	8759=

U 1500		6354=	6367=	6317:	7862:	9727=	9728=	10216=	10218=
U 1510		4519=	4529=	4539=	4549=	4559=	4694=	4713=	4728=
U 1520		7001=	7003=	7005=	7007=	7008=	7010=	7012=	7013=
U 1530		8799=	8800=	8801=	5657 	5724 	8809=	8803=	8811=
U 1540		9214=	9217=	5762 	9218=	5360=	5361=	7039=	7052=
U 1550		9252=	5802 	9254=	9255=	5410=	5411=	8818=	8819=
U 1560		7928=	5811 	7930=	7932=	7938=	7939=	7947=	7966=
U 1570		9390=	9393=	5938 	9395=	7545=	8849=	7547=	8850=

U 1600		4743=	4760=	4775=	4790=	4799=	5644=	5656=	5960 
U 1610		9400=	9401=	5961 	9402=	5416=	5418=	8973=	8974=
U 1620		9490=	9493=	5972 	9494=	7990=	7991=	5973 	7996=
U 1630		9668=	9669=	5974 	9677=	7599=	9034=	7600=	9035=
U 1640		5424=	5425=	8067=	8068=	5427=	5428=	8069=	8070=
U 1650		10220=	10221=	10222=	10223=	8405=	9056=	8406=	9057=
U 1660		8963=	9120=	8964=	9121=	9463=	9122=	9464=	9123=
U 1670		9517=	9124=	9518=	9125=	10151=	9126=	10152=	9127=

U 1700		10301=	10303=	10305=	10307=	8076=	8078=	8079=	8081=
U 1710		5518=	5520=	5976 	9131=	5523=	5525=	5977 	9132=
U 1720		5528=	5529=	8274=	8276=	5559=	5561=	8277=	8278=
U 1730		5566=	5567=	5985 	9148=	5575=	5577=	5987 	9149=
U 1740		10431=	10432=	5989 	10433=	8292=	8293=	8294=	5991 
U 1750		5581=	5582=	5992 	9159=	5590=	5592=	6023 	9160=
U 1760		5594=	5597=	8509=	8510=	5605=	5606=	8512=	8514=
U 1770		10440=	6031 	10441=	10442=	5614=	5615=	6032 	10531:

U 2000		10169=	9295=	10171=	9296=	10314=	9297=	10315=	9298=
U 2010		10363=	9299=	10364=	9301=	10429=	9303=	10430=	9304=
U 2020		8599=	8600=	8601=	8602=	8603=	8604=	8605=	8606=
U 2030		10339=	10340=	10341=	10342=	10343=	10344=	10345=	10349=
U 2040		5618=	5620=	6086 	10358=	5624=	5625=	6092 	10359=
U 2050		5630=	5632=	6093 	10360=	5689=	5690=	6098 	10361=
U 2060		10445=	6107 	10446=	10447=	6110 	10367=	6135 	10368=
U 2070		10450=	6318 	10451=	10452=	6380 	10373=	6382 	10381=

U 2100		10388=	10389=	10390=	10391=	10392=	10393=	6387 	10397=
U 2110		10991=	10993=	6388 	10994=	5804=	5805=	6447 	10399=
U 2120		10407=	10408=	11044=	11045=	6526 	10409=	6588 	10410=
U 2130		5818=	5821=	5995=	5997=	5998=	5999=	6590 	10411=
U 2140		6005=	6007=	6094=	6096=	6591 	10414=	6593 	10415=
U 2150		6100=	6102=	6103=	6104=	6595 	10419=	6596 	10421=
U 2160		6190=	6191=	6261=	6262=	8668=	8669=	8670=	8671=
U 2170		6265=	6267=	6377=	6378=	6597 	10543=	10548=	10549=

; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page LLU-4
; 							Location / Line Number Index
; Ucode Loc'n	0	1	2	3	4	5	6	7					

U 2200		6385=	6386=	6442=	6444=	6463=	6465=	6598 	10572=
U 2210		6577=	6583=	6586=	6587=	6599=	6600=	6610 	10573=
U 2220		8677=	8678=	6612=	6614=	8680=	8681=	8682=	6616 
U 2230		6625=	6626=	6627=	6628=	6715=	6716=	10583=	10591=
U 2240		8735=	8736=	8737=	6645 	6703 	9427=	8739=	9428=
U 2250		6727=	6728=	6775=	6776=	6704 	10617=	6706 	10619=
U 2260		6793=	6794=	6802=	6803=	6829=	6830=	8851=	8852=
U 2270		6832=	6833=	6838=	6839=	6709 	10622=	6724 	10623=

U 2300		6867=	6868=	6869=	6870=	6875=	6876=	8859=	8860=
U 2310		10629=	10630=	6743 	10632=	6781 	10633=	6790 	10634=
U 2320		6879=	6880=	8951=	8952=	6890=	6891=	8953=	8954=
U 2330		10719=	10720=	6792 	10724=	6795 	10725=	6796 	10727=
U 2340		6914=	6916=	6938=	6939=	6942=	6944=	8992=	8993=
U 2350		8999=	9002=	6797 	9004=	6799 	9006=	10192=	10193=
U 2360		6946=	6947=	6950=	6951=	9050=	9051=	9054=	6800 
U 2370		9092=	9093=	9094=	6801 	6995=	6997=	9095=	9096=

U 2400		7022=	7024=	7027=	7029=	9135=	9136=	9137=	9141=
U 2410		7033=	7034=	7197=	7198=	9183=	9185=	9187=	9188=
U 2420		7204=	7205=	7216=	7217=	9240=	9241=	9242=	9243=
U 2430		9312=	9313=	9314=	9315=	9324=	9435=	6804 	9436=
U 2440		7218=	7219=	7274=	7275=	6805 	9437=	6807 	9442=
U 2450		7277=	7278=	7281=	7282=	6816 	9453=	6817 	9454=
U 2460		9465=	6818 	9467=	9468=	9469=	9470=	9471=	9472=
U 2470		7285=	7286=	7304=	7305=	9503=	9504=	9505=	9506=

U 2500		7307=	7310=	7420=	7421=	9519=	9520=	6835 	9521=
U 2510		10179=	6836 	10180=	6837 	7424=	7426=	10182=	10186=
U 2520		7446=	7447=	7461=	7463=	7471=	7472=	10198=	10199=
U 2530		10273=	10274=	10275=	10276=	10277=	6840 	10779=	10782=
U 2540		10463=	10464=	6841 	10465=	10467=	10468=	6842 	10469=
U 2550		10473=	6846 	7475=	7477=	10474=	10476=	6847 	10477=
U 2560		7483=	7485=	7491=	7493=	7497=	7498=	7535=	7536=
U 2570		7558=	7559=	7570=	7571=	7573=	7575=	7620=	7621=

U 2600		7623=	7625=	7687=	7689=	7773=	7774=	7881=	7882=
U 2610		7883=	7884=	7887=	7889=	7892=	7893=	7895=	7913=
U 2620		7924=	7925=	7982=	7983=	7999=	8000=	8028=	8030=
U 2630		8034=	8035=	8038=	8039=	8043=	8044=	8084=	8085=
U 2640		8088=	8089=	8118=	8119=	8122=	8123=	8126=	8127=
U 2650		8130=	8131=	8281=	6848 	8326=	8327=	8338=	8339=
U 2660		8342=	8344=	8350=	8351=	8364=	8365=	8368=	8370=
U 2670		8386=	8387=	8389=	8390=	8411=	8412=	8414=	8415=

U 2700		8465=	8466=	8469=	8470=	8502=	8503=	8517=	8518=
U 2710		8570=	8571=	8663=	8664=	8688=	8689=	8692=	8693=
U 2720		8704=	8705=	8755=	8756=	8772=	8773=	8795=	8797=
U 2730		8815=	8816=	8830=	8832=	8842=	8843=	8875=	8876=
U 2740		8891=	8893=	8936=	8937=	8969=	8970=	9029=	9031=
U 2750		9036=	9037=	9041=	9042=	9046=	9047=	9109=	9111=
U 2760		9175=	9176=	9189=	9190=	9192=	9193=	9244=	9245=
U 2770		9248=	9249=	9285=	9286=	9308=	9309=	9333=	9334=

; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page LLU-5
; 							Location / Line Number Index
; Ucode Loc'n	0	1	2	3	4	5	6	7					

U 3000		9344=	9345=	9711:	9717:	6849 	8552:	8556:	6852 
U 3010		8557:	8558:	8560:	7248:	7253:	6853 	9356=	9357=
U 3020		9360=	9361=	9368=	9371=	6854 	8553:	9374=	9375=
U 3030		9415=	9417=	8561:	6856 	6858 	8554:	9449=	9450=
U 3040		9680=	9681=	9691=	9692=	9694=	9695=	9720=	9721=
U 3050		9829=	9830=	10106=	10112=	10124=	10125=	10208=	10210=
U 3060		10227=	10228=	10266=	10267=	10290=	10292=	10382=	10383=
U 3070		10560=	10561=	10646=	10647=	10655=	10656=	6871 	8581:

U 3100		10672=	10680=	10684=	10685=	7254:	7256:	7257:	7258:
U 3110		7259:	7266:	7267:	7268:	10693=	10694=	10708=	10709=
U 3120		10742=	10746=	10751=	10753=	10759=	10763=	10772=	10778=
U 3130		10783=	10787=	10797=	10809=	10815=	10816=	10821=	10822=
U 3140		10842=	6872 	10850=	10851=	10854=	10856=	10968=	10972=
U 3150		11009=	11011=	11093=	11094=	6873 	6877 	6881 	6902 
U 3160		6906 	6908 	6913 	6925 	6926 	6927 	6929 	6987 
U 3170		6988 	6990 	6991 	6992 	7015 	7016 	7019 	8582:

U 3200		7021 	7031 	7036 	7037 	7038 	7054 	7055 	7056 
U 3210		7058 	7060 	7061 	7063 	7067 	7068 	7070 	7071 
U 3220		7084 	7086 	7087 	7094 	7214 	7220 	7271 	7272 
U 3230		7273 	7279 	7280 	7283 	7284 	7287 	7288 	7289 
U 3240		7290 	7292 	7301 	7312 	7313 	7314 	7315 	7316 
U 3250		7317 	7318 	7319 	7320 	7321 	7322 	7323 	7325 
U 3260		7395 	7396 	7400 	7401 	7403 	7404 	7405 	7409 
U 3270		7410 	7411 	7412 	7413 	7414 	7416 	7423 	7427 

U 3300		7428 	7429 	7430 	7431 	7432 	7443 	7457 	7459 
U 3310		7467 	7468 	7469 	7478 	7489 	7494 	7495 	7529 
U 3320		7534 	7552 	7553 	7554 	7568 	7606 	7608 	7618 
U 3330		7737 	7738 	7775 	7787 	7789 	7790 	7792 	7844 
U 3340		7845 	7894 	7915 	7922 	7984 	8040 	8041 	8045 
U 3350		8051 	8052 	8086 	8087 	8091 	8093 	8209 	8324 
U 3360		8328 	8371 	8373 	8374 	8379 	8380 	8401 	8402 
U 3370		8403 	8407 	8408 	8409 	8413 	8467 	8468 	8471 

U 3400		8505 	8568 	8569 	8607 	8608 	8609 	8611 	8620 
U 3410		8634 	8635 	8636 	8638 	8653 	8661 	8662 	8665 
U 3420		8666 	8667 	8673 	8674 	8675 	8686 	8691 	8712 
U 3430		8713 	8770 	8771 	8774 	8775 	8813 	8822 	8844 
U 3440		8848 	8853 	8855 	8856 	8857 	8858 	8861 	8862 
U 3450		8878 	8879 	8883 	8885 	8894 	8895 	8897 	8899 
U 3460		8929 	8930 	8931 	8933 	8956 	8965 	8966 	8968 
U 3470		8972 	8976 	8990 	8994 	9025 	9032 	9044 	9048 

U 3500		9097 	9105 	9107 	9147 	9151 	9152 	9203 	9223 
U 3510		9246 	9257 	9259 	9262 	9274 	9283 	9284 	9287 
U 3520		9290 	9291 	9292 	9331 	9335 	9339 	9358 	9362 
U 3530		9364 	9380 	9418 	9419 	9434 	9443 	9446 	9448 
U 3540		9455 	9477 	9508 	9509 	9516 	9522 	9643 	9684 
U 3550		9697 	9701 	9702 	9729 	9730 	9750 	9773 	9774 
U 3560		9775 	9802 	9822 	9824 	9825 	9826 	10104 	10126 
U 3570		10147 	10148 	10149 	10155 	10172 	10173 	10174 	10206 

; KL10 Microcode for TOPS-10 and TOPS-20		24 July 1985  V2(411)		MICRO %34(270)		Page LLU-6
; 							Location / Line Number Index
; Ucode Loc'n	0	1	2	3	4	5	6	7					

U 3600		10229 	10237 	10238 	10240 	10250 	10258 	10259 	10263 
U 3610		10264 	10268 	10271 	10278 	10279 	10281 	10282 	10283 
U 3620		10284 	10288 	10293 	10294 	10310 	10311 	10334 	10335 
U 3630		10337 	10350 	10351 	10354 	10356 	10406 	10423 	10424 
U 3640		10425 	10426 	10434 	10454 	10456 	10479 	10532 	10533 
U 3650		10539 	10550 	10562 	10563 	10564 	10565 	10566 	10574 
U 3660		10575 	10576 	10578 	10580 	10593 	10595 	10596 	10597 
U 3670		10598 	10627 	10640 	10641 	10642 	10643 	10645 	10661 

U 3700		10662 	10669 	10682 	10688 	10692 	10703 	10706 	10711 
U 3710		10731 	10732 	10733 	10739 	10757 	10768 	10770 	10813 
U 3720		10818 	10823 	10824 	10836 	10866 	10867 	10874 	10973 
U 3730		11004 	11005 	11007 	11008 	11013 	11014 	11015 	11016 
U 3740		11038 	11039 	11040 	11041 	11052 	11054 	11055 	11060 
U 3750		11061 	11066 	11067 	11069 	11071 	11075 	11077 	11078 
U 3760		11080 	11082 	11084 	11086 	11087 	11088 	11089 	11091 
U 3770		11095 	11096 	11098 	11100 				10529:

No errors detected
End of microcode assembly
337 pages of listing
Used 56.35 in 07:25.07
  Memory used: 129P
  Symbol table: 42P
  Text strings: 13P
  Loc'n assignment: 18P
  Cross reference: 49P