Google
 

Trailing-Edge - PDP-10 Archives - de-10-omona-v-mc9 - dxmpa.seq
There are 2 other files named dxmpa.seq in the archive. Click here to see a list.
MAINDEC-10-DXMPA-L-D						PAGE 1
                                                                                                                           SEQ 0001








		PRODUCT CODE:	MAINDEC-10-DXMPA-L-D

		PRODUCT NAME:	DX10 IO PROCESSOR MICROCODE
				VERSION 14

		AUTHOR:		FRANK BERNABY, DALE R. KECK, RICH MURATORI

		MAINTAINER:	DIAGNOSTIC ENGINEERING

		DATE:		JANUARY 1978


COPYRIGHT (C) 1975, 1978
DIGITAL EQUIPMENT CORPORATION

THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ON A 
SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH THE INCLUSION
OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE, OR ANY OTHER
COPIES THEREOF, MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE
TO ANY OTHER PERSON EXCEPT FOR THE USE ON SUCH SYSTEM AND TO ONE WHO
AGREES TO THESE LICENSE TERMS.  TITLE TO AND OWNERSHIP OF THE
SOFTWARE SHALL AT ALL TIMES REMAIN IN DEC.

THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY
DIGITAL EQUIPMENT CORPORATION.

DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
 
MAINDEC-10-DXMPA-K-D						PAGE 2
                                                                                                                           SEQ 0002
			TABLE OF CONTENTS
			-----------------

SECTION		REMARKS					PAGE
-------		-------					----

  1.0		INTRODUCTION				  3

  2.0		ERROR HANDLING				  5

  2.1		NORMAL STATUS LOGOUT FORMAT		  5

  2.2		EXTENDED STORE FORMAT			  6

  2.3		SEQUENCE ERROR TYPE CODE TABLE		  7

  3.0		HARDWARE READ-IN			  8

  4.0		MICRO-DIAGNOSTICS			  9

  4.1		MULTIPLE ENTRY POINTS			 10

  4.2		ENTRY POINT 205				 10

  4.3		DIAGNOSTIC ERROR CODES			 11

  5.0		HISTORY FILE				 13

  6.0		FLOW CHARTS

  7.0		MICRO-DIAGNOSTIC LISTING
MAINDEC-10-DXMPA-K-D						PAGE 3
                                                                                                                           SEQ 0003

1.0	INTRODUCTION


	THE DX10 MICROCODE IS A PDP-8 PROGRAM WHICH MANIPULATES THE
DX10 HARDWARE TO ALLOW THAT HARDWARE TO FUNCTION AS AN INDEPENDENT
I/O PROCESSOR.  THIS PROCESSOR, THE DX10, HAS THE ABILITY TO INTERFACE
TO THE PDP-10 VIA BOTH THE I/O BUS AND THE MEMORY BUS.  IT ALSO INTERFACES
TO AN STC MAGTAPE CONTROLLER, THE TX01, VIA AN IBM TYPE CHANNEL BUS.
	THE LOGIC WITHIN THE DX10 IS MANIPULATED BY A SERIES OF SPECIAL
IOT'S.  BASICALLY, THEY ALLOW THE SETTING AND CLEARING OF FLIP-FLOPS,THE
SELECTION OF REGISTERS, AND THE LOADING AND READING OF THESE REGISTERS.
	THE MICROCODE WILL PERFORM THESE SEQUENCES IN A PRESCRIBED MANNER
WHICH WILL ALLOW IT TO FETCH COMMANDS FROM PDP-10 MEMORY AND PROCESS
THESE COMMANDS.  THE COMMANDS WILL TYPICALLY DIRECT THE MICROCODE TO
READ AND WRITE MAGTAPE.

	THE MICROCODE IS LOADED BY A PDP-10 PROGRAM USING THE
DX10 HARDWARE FEATURE WHICH ALLOWS LOADING AND READING THE MEMORY
OF THE PDP-8A WITH DATAO/DATAI COMMANDS.
	IT IS THEN STARTED AT PDP-8 MEMORY LOCATION 200.  THE 8 WILL
FIRST INITIALIZE THE DX10 THEN WILL PERFORM A SYSTEM RESET ON
THE MAGTAPE CONTROLLER.  A SET OF DIAGNOSTICS WILL BE RUN TO INSURE
THE HARDWARE IS FUNCTIONAL.  THEN THE 8 ENTERS AN IDLE LOOP WHERE
IT WAITS FOR FURTHER DIRECTION FROM THE PDP-10.
MAINDEC-10-DXMPA-K-D						PAGE 4
                                                                                                                           SEQ 0004
	THIS DIRECTION COMES FROM THE CHANNEL COMMAND REGISTER.  THE
PDP-10 CAN PUT 4 BASIC COMMANDS INTO THIS REGISTER.
	IF THE 10 SETS BOTH CLEAR AND CONTINUE IN THE COMMAND REGISTER,
THIS TELLS THE 8 TO START THE CHANNEL PROGRAM AT THE ADDRESS SPECIFIED
IN THE ICPC REGISTER.
	IF THE 10 SETS ONLY CONTINUE, THIS TELLS THE 8 TO CONTINUE
THE CHANNEL PROGRAM AT THE ADDRESS SPECIFIED IN THE CPC REGISTER.
	IF THE 10 SETS ONLY CLEAR, THIS TELLS THE 8 TO PERFORM A SYSTEMS
RESET.
	IF THE 10 SETS THE STATUS REQUEST BIT, THIS TELLS THE 8 TO
PERFORM A STORE STATUS OPERATION.  THE ADDRESS OF THE STATUS BUFFER
COMES FROM THE ADDRESS SPECIFIED IN THE ICPC REGISTER.
	ONCE A CHANNEL PROGRAM IS STARTED IT CONTINUES RUNNING UNTIL
ONE OF TWO THINGS HAPPENS.  EITHER THE TAPE SYSTEM ENCOUNTERS AN ERROR
OR A CHANNEL COMMAND IS FETCHED WITH THE GO BIT OFF.
	IF AN ERROR IS STOPPING THE CHANNEL PROGRAM, THE MICROCODE WILL
CLEAR THE CONTINUE BIT, PERFORM A STORE STATUS OPERATION, GENERATE
A PDP-10 INTERRUPT, AND FINALLY RETURN TO THE IDLE LOOP FOR FURTHER
INSTRUCTION FROM THE PDP-10.

	THE MICROCODE IS RESPONSIBLE FOR DETECTING SEVERAL ERRORS.
IF IT SHOULD DETECT ONE OF THESES IT WILL SET THE CORRECT BIT IN THE CSR
AND STORE ERROR STATUS.
	THESE ERRORS ARE:

	1.SELECTION ERROR-	THIS ERROR WILL OCCUR IF THE CHANNEL
				PROGRAM SENDS THE ADDRESS OF A DEVICE
				THAT IS NOT PRESENT.

	2.SEQUENCE ERROR-	THE MICROCODE WILL ENCODE THE TYPE OF
				SEQUENCE ERROR INTO THE CODE FIELD OF THE
				STATUS STORE INTO ICPC+1.(SEE TABLE IN SECTION 2.3)

	3.DEVICE PARITY-	THIS ERROR INDICATES A CHANNEL BUS PARITY
				ERROR OCCURRED WHILE READING OR WRITTING DATA.

	4.LENGTH ERROR-		THIS ERROR MEANS THAT THE RECORD JUST
				READ WAS EITHER SHORTER OR LONGER THAN EXPECTED.

	5.OPI ERROR-		OPERATION INCOMPLETE ERROR SETS IF A TRANSFER
				FAILS TO COMPLETE WITHIN 10 SECONDS.
				(EACH XFER CMD WORD IS TIMED)
MAINDEC-10-DXMPA-K-D						PAGE 5
                                                                                                                           SEQ 0005

2.0	ERROR HANDLING


	THIS MICRO-CODE WILL AUTOMATICALLY ATTEMPT RECOVERY FROM
TAPE ERRORS IF BIT 3 OF THE DEVICE COMMAND INSTRUCTION IS SET.
ERRORS THAT CAN BE RECOVERED ARE DATA CHECK, DX10 SILO
DATA PARITY ERRORS, AND INTERMITTENT BUS OUT CHECKS.
	WRITE ERRORS ARE RETRIED BY BACKSPACING OVER THE RECORD JUST
WRITTEN, READING IN REVERSE UNTIL A RECORD WITH NO ERROR IS FOUND OR LOAD
POINT IS FOUND, THEN SPACING OVER THE GOOD RECORD, ERASING 4.2 INCHES
OF TAPE AND WRITING THE RECORD AGAIN.  IF THE ERROR PERSISTS, THE
SEQUENCE IS REPEATED UP TO 75 TIMES, EACH TIME ERASING AN ADDITIONAL
3.6 INCHES OF TAPE.
	READ ERRORS ARE RETRIED BY ATTEMPTING TO RE-READ THE RECORD IN
THE SAME DIRECTION 30 TIMES, MOVING THE TAPE PAST THE TAPE CLEANER
BLADE AFTER EVERY FOURTH READ.  IF THESE RE-READS FAIL, THE RECORD IS
READ IN THE OPPOSITE DIRECTION UP TO A MAXIMUM OF 30 TIMES.  THE READ
IN OPPOSITE DIRECTION IS NOT ATTEMPTED IF THE RECORD IS LONGER THAN
THE LENGTH REQUESTED OR IF THE RECORD CANNOT BE READ INTO THE SAME
POSITION IN MEMORY BECAUSE OF HARDWARE RESTRICTIONS.  THE READ OPPOSITE
IS ACCOMPLISHED BY BUILDING A CHANNEL TRANSFER LIST IN PDP-8A MEMORY.
THREE PAGES ARE RESERVED FOR THIS LIST, SO A LIST OF UP TO 42 XFER WORDS
CAN BE READ.

	IF THE MICROCODE DETECTS AN ERROR THAT CANNOT BE RECOVERED,
IT WILL SET THE APPROPRIATE STATUS BITS AND STORE THE ERROR STATUS.

	IF THE DX10 ENCOUNTERS A NXM ERROR, OR A MEMORY
PARITY ERROR THE PDP-8 IS HALTED AND THE PDP-10 IS INTERRUPTED.


	IF THE MICROCODE ENCOUNTERS EITHER A SELECTION ERROR OR
SEQUENCE ERROR IT WILL STORE THE ERROR STATUS, HALT THE CHANNEL PROGRAM,
PERFORM A SYSTEMS RESET, AND RETURN TO THE IDLE LOOP.  SELECTION ERROR
MEANS THAT THE DEVICE WASN'T ADDRESSABLE.

	ASSOCIATED WITH THE SEQUENCE ERROR BIT IS A TYPE CODE FIELD
THAT IS STORED INTO ICPC+1.  THIS FIELD FURTHER DEFINES WHAT TYPE OF
SEQUENCE ERROR OCCURRED.

2.1	NORMAL STATUS LOGOUT FORMAT

	THE NORMAL LOGOUT STATUS IS STORED INTO ICPC+1,+2, AND +3.
THE FORMAT IS:

	ICPC+1/	DSR<0:7>,CSR<8:19>,SEQCOD<22:27>,DAR<28:35>
	ICPC+2/	BYTE COUNTER<0:13>,CPC<14:35>
	ICPC+3/RECORD LENGTH<12:35>
MAINDEC-10-DXMPA-K-D						PAGE 6
                                                                                                                           SEQ 0006

2.2	EXTENDED STORE FORMAT


	IF THE MICROCODE DETECTS AN ERROR WHILE PROCESSING A COMMAND
AND THE ERROR IS NOT A SEQUENCE OR SELECTION ERROR, IT WILL ATTEMPT
TO STORE EXTENDED STATUS.
IF ICPC+3 CONTAINS A STATUS POINTER IT WILL DO THE EXTENDED STORE.
IF ICPC+3 DOESN'T CONTAIN THE POINTER, NO EXTENDED STATUS IS STORED.

IF ICPC+3 CONTAINED -^D24B13+300 (777200000300) THEN THE
FOLLOWING INFORMATION WOULD BE STORED STARTING AT LOCATION 300.


ICPC+1/DSR<0:7>,CSR<8:18>,SEQCOD<22:27>,DAR<28:35>
ICPC+2/BYTE COUNTER<0:13,>CPC<14:35>
ICPC+3/777200,,300  --------------->	300/RECORD LENGTH<12:35>
					301/TAG LINES,,BUS LINES
					302/DAC<14:35>
					303/VERSION<0:5>,EDIT<6:17>,FR<18:35>
					304/SENSE BYTES 0,1,2,3
					305/SENSE BYTES 4,5,6,7
					306/SENSE BYTES 8,9,10,11
					307/SENSE BYTES 12,13,14,15
					310/SENSE BYTES 16,17,18,19
					311/SENSE BYTES 20,21,22,23


NOTE:

	THE NUMBER OF BYTES STORED IS CONTROLLED BY THE BYTE COUNT
FIELD OF THE WORD IN ICPC+3.  THE FORMAT IS BYTE COUNT <0:13>;ADDRESS <14:35>.

	****************************************************************
								       
		IF A SEQUENCE ERROR IS DETECTED WHILE READING       	
		THEN ICPC+1 AND ICPC+2 IS OVERWRITTEN WITH		
		THE ERROR INFORMATION!					

	****************************************************************

		FORCING AN EXTENDED STORE ON REWIND INITIATION COULD CAUSE
		THE LOSS OF THE COMPLETION INTERRUPT

	***************************************************************
MAINDEC-10-DXMPA-K-D						PAGE 7
                                                                                                                           SEQ 0007

2.3	SEQUENCE ERROR TYPE CODE TABLE


ERROR #		REMARKS
-------		-------

00		CHANNEL PROGRAM IS STRUCTURED INCORRECTLY
02		BUS IN PARITY ERROR
26		A READ OR WRITE COMMAND WASN'T FOLLOWED BY XFER'S
36		NOT ALL OF THE DESIRED SENSE BYTES WHERE XFER'D IN
		EXTENDED STORE OF STATUS
43		INITIAL SELECTION ERROR READING SENSE BYTES
MAINDEC-10-DXMPA-K-D						PAGE 8
                                                                                                                           SEQ 0008

3.0	HARDWARE READIN


	THE HARDWARE READ-IN MICROCODE IS BUFFERED IN A 128 WORD ROM.
THIS ROM IS BLOCK TRANSFERRED INTO THE LAST PAGE OF PDP-8 MEMORY
WHEN THE HARDWARE READIN KEY IS STRUCK ON THE PROCESSOR.THIS PAGE
OF CODE WILL READ THE FIRST RECORD ON THE FIRST READY DRIVE INTO
PDP-10 MEMORY AND THEN START THE PDP-10 AT LOCATION 100.

	THE CODE FLOWS AS FOLLOWS:

	1.INITIALIZE DX10
	2.SETUP REWIND COMMAND IN CMD
	3.CLEAR DEVICE ADDRESS = 0
	4.PERFORM REWIND
	5.IF ERROR-INCREMENT DEVICE ADDR AND GO TO STEP 4
	6.HERE WHEN READY UNIT FOUND
	7.CHANGE COMMAND TO READ DATA
	8.SETUP BYTE COUNTER AND DATA ADDRESS REGISTERS
	9.START READ COMMAND
	10.LOAD CHANNEL BUS CONTROL REGISTER
	11.WAIT FOR BLOCK DONE
	12.START PDP-10 AT LOCATION 100
MAINDEC-10-DXMPA-K-D						PAGE 9
                                                                                                                           SEQ 0009

4.0	MICRO-DIAGNOSTICS

	THE MICROCODE WILL TEST PORTIONS OF THE DX10 HARDWARE
UPON INITIAL START-UP AND PERIODICALLY
WHILE IT'S IN THE IDLE LOOP.  TO INSURE GOOD RESPONSE TO -10 COMMANDS
THE -8 CHECKS THE CONTINUE FLOP PRIOR TO EACH TEST.
	THE 26 TESTS INCLUDE THE FOLLOWING:

	TEST		REMARKS
	----		-------

	1-10		TEST THE SPECIAL IOT'S ABILITY TO CLEAR THE AC
	11		TEST THE 8R LOAD AND READ COMMANDS
	12		TEST THE 8R SELECTION LOGIC
	13		TEST THE SILO LOGIC IN DUMP MODE
	14		TEST THE SILO LOGIC IN DUMP MODE WITH SLOW CLK
	15		TEST THE SILO LOGIC IN BYTE MODE
	16		TEST THE SILO LOGIC IN BYTE MODE WITH SLOW CLK
	17		TEST THE SILO LOGIC IN ASCIZ MODE
	20		TEST THE SILO LOGIC IN ASCIZ MODE WITH SLOW CLK
	21		TEST THE SILO LOGIC IN SIXBIT MODE
	22		TEST THE SILO LOGIC IN SIXBIT MODE WITH SLOW CLK
	23		TEST THE BLOCK DONE LOGIC(INCLUDING INTERRUPT)
	24		TEST THE CPC REGISTER
	25		TEST THE DAC REGISTER
	26		TEST THE CHANNEL BUS INTERFACE BY PERFORMING
			A SENSE COMMAND TO DEVICE ADDRESS 0.

		(NOTE: TEST 26 IS NOT RUN WHEN THE DIAGNOSTICS
		 ARE CALLED FROM THE IDLE LOOP.)


	IF THE MICROCODE DETECTS A DIAGNOSTIC ERROR IT WILL HALT AT
207 AFTER FIRST LOADING IBUS #17 WITH THE ERROR CODE.THIS SAME CODE IS
AVAILABLE IN -8 MEMORY LOCATION 5.
MAINDEC-10-DXMPA-K-D						PAGE 10
                                                                                                                           SEQ 0010

4.1	MULTIPLE ENTRY POINTS

	THE MICROCODE HAS THE FOLLOWING ENTRY POINTS:

	POINT		REMARKS
	-----		-------

	200		NORMAL COLD START ADDRESS
	201		NORMAL RESTART ADDRESS
	202		START WITHOUT DIAGNOSTICS ENABLED
	203		RESERVED
	204		RESERVED
	205		START DIAGNOSTICS ONLY(IMPLICT LOOP ON ERROR)
	206		RESERVED
	207		DIAGNOSTIC ERROR HALT LOCATION


4.2	ENTRY POINT 205 (DIAGNOSTICS ONLY-LOOP ON ERROR)

	WHEN THE MICROCODE IS STARTED AT 205, ONLY THE DIAGNOSTICS WILL
RUN.  IF AN ERROR OCCURS, THE ERROR CODE IS LOADED
INTO REG #17 AND THE DIAGNOSTIC WILL LOOP ON THE FAILURE.
MAINDEC-10-DXMPA-K-D						PAGE 11
                                                                                                                           SEQ 0011


4.3	DIAGNOSTIC ERROR CODES

	ERROR#		REMARKS
	------		-------

	100		LBO DIDN'T CLEAR AC
	101		STM DIDN'T CLEAR AC
	102		INT DIDN'T CLEAR AC
	103		L8S DIDN'T CLEAR AC
	104		LCB DIDN'T CLEAR AC
	105		L8C DIDN'T CLEAR AC
	106		L8B DIDN'T CLEAR AC
	107		L8A DIDN'T CLEAR AC
	110		8R BYTE A WAS READ BAD(L8A&G8A)
	111		8R BYTE B WAS READ BAD(L8B&G8B)
	112		8R BYTE C WAS READ BAD(L8C&G8C)
	113		8R2 SELECTION BAD
	114		8R1 SELECTION BAD
	115		8R0 SELECTION BAD
	116		WRAP AROUND SELECTION  OF 8R3 BAD
	117		WRAP AROUND SELECTION OF 8R0 BAD
	120		INT DIDN'T SELECT 8R0
	121		DUMP MODE SILO TEST FAILED
	122		DUMP MODE SILO TEST(SLOW CLK) FAILED
	123		BYTE MODE SILO TEST FAILED
	124		BYTE MODE SILO TEST (SLOW CLK) FAILED
	125		ASCIZ MODE SILO TEST FAILED
	126		ASCIZ MODE SILO TEST (SLOW CLK) FAILED
	127		SIXBIT MODE SILO TEST FAILED
	130		SIXBIT MODE SILO TEST (SLOW CLK) FAILED
	131		TBD DIDN'T SKIP ON OVERFLOW
	132		NO INTERRUPT ON OVERFLOW
	133		RESETTING OVERFLOW DIDN'T CLEAR INTERRUPT
	134		CPC DATA TEST FAILED
	135		DAC DATA TEST FAILED
MAINDEC-10-DXMPA-K-D						PAGE 12
                                                                                                                           SEQ 0012

	136		CONTROL UNIT DID NOT RESPOND TO SELECTION SEQUENCE
	137		CONTROL UNIT DID NOT RESPOND TO DEVICE ADDRESS 0
	140		ADDRESS IN DID NOT SET IN SELECTION SEQUENCE
	141		BAD PARITY ON BUS IN WITH ADDRESS IN PRESENTED
	142		NOT ZERO ADDRESS RECEIVED WHEN ATTEMPTING TO SELECT UNIT ZERO
	143		ADDRESS IN DID NOT DROP DURING SELECTION SEQUENCE
	144		STATUS IN DID NOT SET DURING SELECTION SEQUENCE
	145		BAD PARITY ON BUS IN WITH STATUS BYTE PRESENTED
	146		INITIAL STATUS BYTE WAS NON-ZERO IN SENSE COMMAND
	147		STATUS IN DID NOT DROP WHEN SERVICE OUT WAS SET
			DURING PRESENTATION OF STATUS BYTE
	150		SRV IN DID NOT SET PRESENTING A SENSE BYTE
	151		PARITY ERROR ON BUS IN WHILE PRESENTING A SENSE BYTE
	152		SERVICE IN DID NOT DROP IN RESPONSE TO SERVICE OUT
			DURING PRESENTATION OF SENSE BYTE
	153		STATUS IN DID NOT SET AFTER PRESENTING 24 SENSE BYTES
	154		PARITY ERROR IN STATUS BYTE AFTER SENSE COMMAND
	155		STATUS IN DID NOT DROP AFTER PRESENTING ENDING STATUS
			IN SENSE COMMAND
	156		OPERATIONAL IN DID NOT DROP AFTER SENSE COMMAND
	157		REQUEST IN NEVER SET AFTER SHORT BUSY SEQUENCE
	160		ADDRESS IN DID NOT SET IN CU INITIATED SEQUENCE
	161		PARITY ERROR ON BUS IN WHILE READING ADDRESS IN 
			CU INITIATED SELECTION SEQUENCE
	162		NON-ZERO ADDRESS PRESENTED IN CU INITIATED SELECTION SEQUENCE
	163		ADDRESS IN DID NOT DROP IN CU INITIATED SELECTION SEQUENCE
	164		STATUS IN DID NOT SET IN CU INITIATED SELECTION SEQUENCE
	165		STATUS IN DID NOT DROP IN CU INITIATED SELECTION SEQUENCE
	166		OPR IN DID NOT DROP AFTER CU INITIATED SELECTION SEQUENCE
	167		SERVICE OUT DIDN'T SET WHILE TRANSFERRING DATA IN TESTS 13 - 23
	170		SERVICE OUT DIDN'T CLEAR WHILE TRANSFERRING DATA IN TESTS 13 - 23
MAINDEC-10-DXMPA-K-D						PAGE 13
                                                                                                                           SEQ 0013

5.0	HISTORY FILE


VERSION		PROBLEM		FIX
-------		-------		---

1(0)	SKIP READ DATA ERR	-ADD CLL INSTRUCTION TO TRMCHK SKP READ CODE

1(1)	SENSE BYTE DISPLACEMENT	-CHG METHOD OF CALCULATING DAC ADR FOR BYTES

1(2)	CPC<14:17> CHOPPING	-SAVE CPC BEFORE DOING INT INSTRUCTION

1(3)	OPI PROBLEM		-CLR SEL & HOLD OUT AFTER DETECTING ERROR

1(4)	TIE NOT WORKING		-FIX CALCBC CODE TO CALCULATE GOOD CBC FOR TIE

1(5)	SLOW SILO CHIPS		-DELAY START OF ANY SENSE COMMAND

1(6)	NO PAR ERR ON TERM	-CHG SHRTRC TO DETECT PARITY BEFORE CLR OF RUN

1(7)	LOAD OF BYTE CNT GENERATES MEM CYC	-WHEN LOADING CPC INSURE THAT
				SIGN BIT OF BYTE CNT=0

1(10)	IMPLEMENT SLOW CLOCK	-CHG WRITE STARTUP TO USE SLOW CLOCK
				-ADD MICRO-DIAGNOSTICS FOR SLOW CLK
	REWIND RACE PROBLEM	-ACCEPT CU INTERRUPTS AT COMMAND STARTUP

				TO LOOP(ENABLE BY STARTING AT 205)
				-CHG THE ROLL OF REG 17 AND 16.REG 17
				 DISPLAYS ONLY THE ERROR CODES WHILE REG
				 16 WILL NOW DISPLAY THE IDLE LOOP COUNT.

2(0)	M8599 PROBLEM		-ADD EXTRA LOAD OF DAC TO RDSEN

2(1)	OPI PROBLEM		-CORRECT WAITB ROUTINE (10 SECOND TIMER)

2(2)	UCODE DIAG PROBLEM	-CORRECT LOOPING ON ERROR IN UCODE
				DIAGNOSTICS

2(3)	MP ERRORS WITH SHORT	-INCLUDE STM IN LOOP TO SEARCH FOR NEXT
	RECORD ERRORS		COMMAND ON STACK

2(4)	SHORT RECORD ERRORS	-(1)ADD WAIT FOR NOT BYTE AVAILABLE BEFORE
				LOADING CBC FOR ALL BUT FIRST XFER WORD ON
				A WRITE OPERATION TO BE SURE SILO
				RECEIVES ALL BYTES
				(2)PREVENT CLEARING ACCUMULATED BYTE COUNT
				WHEN STORING CU INITIATED STATUS

2(5)
MAINDEC-10-DXMPA-K-D						PAGE 14
                                                                                                                           SEQ 0014

VERSION		DATE		REASON FOR NEW VERSION
-------		----		----------------------


4(0)		DEC 1976	1.COMPLETE RE-WRITE TO REDUCE HANDSHAKE
				  TIME BETWEEN PDP-10 AND TX01.
				2.ADD AUTOMATIC ERROR RETRY ROUTINE
				  WHICH CAN BE TURNED ON WITH BIT 3
				  DEVICE COMMAND INSTRUCTION.

5(0)		MAR 1977	1.PROBLEM: LOOP WRITE TO READ OPERATION TO A
				  TX02 AT 6250 BPI GETS OVERRUN ERROR.
				  SOLUTION: DON'T ENABLE SLOW CLOCK FOR
				  CONTROL COMMANDS.
				2.PROBLEM: A READ COMMAND WHICH READS A
				  FILE MARK MAY RESULT IN AN OPI ERROR.
				  SOLUTION: FAKE AN INTERRUPT WHEN THE
				  HARDWARE FAILS TO PRODUCE ONE.

6(0)		APR 1977	PROBLEM: A WRITE ERROR THAT TERMINATES
				  BEFORE ALL DATA IS TRANSFERRED OUT OF
				  THE DX10 MAY TERMINATE WITH THE CPC
				  INCORRECT.
				SOLUTION: READ A WORD FROM MEMORY INTO
				  8R0 BEFORE GOING TO SHRTRC.

7(0)		SEP 1977	PROBLEM: A READ ERROR IS DETECTED.  THEN IN
				  PERFORMING AN EXTENDED STATUS OPERATION,
				  AN ERROR IS ENCOUNTERED WHILE DOING A SENSE
				  BYTE READ (THIS MAY BE EITHER A REAL
				  ERROR OR CU BUSY).  THIS CAUSES THE LOCATION
				  ICPC+2 TO BE WRITTEN WITH BAD DATA, NAMELY,
				  THE NEGATIVE BYTE COUNT FOR THE SENSE XFER
				  AND THE CPC VALUE USED FOR THE SENSE XFER.
				  THE RESULT IS A SYSTEM CRASH!
				SOLUTION:  IN ROUTINE 'STRSEL', THE ERROR
				  RETURN FROM 'RDSNS' CALL WAS CHANGED FROM
				  A JUMP TO STOREI TO A JUMP TO RDERR.  ALSO,
				  IN ROUTINE 'CUBUSY', THE RETURN FROM SUBROUTINE
				  WAS REPLACED WITH A JUMP TO 'RDSNS+1' TO
				  RETRY THE SENSE READ OPERATION.

10(0)		SEP 1977	1. PROBLEM: ON READ ERROR RETRY, IF ERROR WAS HARD ONE,
				  TAPE WOULD REPOSITION TO BOT OR 100 FT BACK.
				  SOLUTION: ERROR WAS IN BACKSPACING PAST TAPE
				  CLEANER.  FIX WAS TO DO A 'CLA' BEFORE SETTING
				  REPEAT COUNT IN 'RDRETB' ROUTINE.
				2. PROBLEM: IF READ ERROR OCCURRED ON 2ND,
				  3RD OR 4TH RECORD FROM BOT.  ERROR RETRY
				  WOULD MISPOSITION TAPE.
				  SOLUTION: IN ROUTINE TO REPOSITION TAPE
				  AFTER CLEANING, CHANGED INSTRUCTION AT
				  'RDRETE+1' FROM 'JMP  -2' TO 'JMP RDRETD'.
MAINDEC-10-DXMPA-K-D						PAGE 15
                                                                                                                           SEQ 0015

11(0)		OCT 1977	1.PROBLEM: VERSION 7 COULD CAUSE THE MICROCODE
				  TO OVER WRITE ITS MEMORY IF AN UNLOAD
				  COMPLETE STATUS WAS RECEIVED DURING THE
				  STORE STATUS ROUTINE.

				  SOLUTION: THE RETURN ADDRESSES OF THE
				  STORE, RDSNS AND SENSE ROUTINES ARE SAVED
				  AND THEN RESTORED IN THE GETRWS ROUTINE.
				2.PROBLEM: THE DX10 COULD HANG WHEN USED
				  ON A TX01 OR TX02 THAT WAS BEING SHARED BY
				  ANOTHER SYSTEM WITH THE TX03 OPTION.

				  SOLUTION: IF SELECT IN IS RETURNED DURING
				  A CU INITIATED SELECTION SEQUENCE, DROP
				  SELECT OUT AND WAIT FOR REQUEST IN AGAIN.
				3.PROBLEM:RELOADING OR RESTARTING THE
				  DX10 ON A TX01 OR TX02 WITH A TX03 OPTION
				  COULD TIE UP THE CHANNEL BUS IF
				  DIAGNOSTIC TEST 26 FAILED. THIS COULD IN
				  TURN HANG THE DX10 ON THE OTHER SYSTEM.

				  SOLUTION:DON'T RUN TEST 26 ON START UP.
				  TEST 26 IS NOW RUN ONLY WHEN THE DX10
				  IS STARTED AT ENTRY POINT 205.

12(0)		OCT 1977	1. PROBLEM: ON WRITE ERROR RETRY, IF RECORD
				   BEFORE ERROR FAILS TO BE READ BACKWARD
				   SUCCESSFULLY, IT WILL BE ERASED.
				   SOLUTION: CHANGE WRITE ERROR RETRY STRATEGY.
				   SIMPLY BACKSPACE BLOCK, ERASE GAP, AND
				   RETRY WRITE COMMAND.  ALSO, LOOK FOR UNIT
				   CHECK AFTER ERASE COMMAND.  IF SET REPORT
				   AS UNSUCCESSFUL RETRY.

13(0)		DEC 1977	1. PROBLEM: IF TWO DX10'S ARE TALKING TO THE
				   SAME TX01/TX02, THEY COULD GET INTO A
				   CONTENTION PROBLEM IN ACCESSING THE TX,
				   WITH BOTH OF THEM HANGING AS A RESULT.

				   SOLUTION: INDICATE CHAINING ON A CONTROL
				   UNIT INITIATED SEQUENCE WHEN EITHER
				   (A) DEVICE END IS NOT PRESENTED, OR
				   (B) DEVICE END WITH UNIT CHECK IS PRESENTED.

14(0)		JAN 1978	PROBLEM: ON READ ERROR RETRY, IF READ REVERSE
				   IS SUCCESSFUL AND RECORD IS CORRECT SIZE,
				   THEN BURST FLAG IS CLEARED AND SEQUENCE
				   ERROR 0 IS GENERATED.
				SOLUTION: SET BURST FLAG ON EXITING FROM
				   READ RETRY ROUTINE AFTER SUCCESSFUL
				   READ REVERSE OPERATION.
DXMPA  -  DX10 MICROCODE                                                DECFLO VER  00.11 03-JAN-78 09:59  PAGE A 
                                                                                                                           SEQ 0016
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
                                FLOW CHART
                             ****************   
 
                        DXMPA  -  DX10 MICROCODE
 
                             ****************   
 
 
 
 
 
 
 
 
 
 
 
 
 
 
                   COPYRIGHT 1978   
                   DIGITAL EQUIPMENT CORPORATION
                   MAYNARD, MASS. 01754   
DXMPA  -  DX10 MICROCODE                                                DECFLO VER  00.11 03-JAN-78 09:59  PAGE B 
                                                                                                                           SEQ 0017
 
                              TABLE OF CONTENTS 
                             *******************
 
 
          PAGE 01      START ADDRESSES    
 
          PAGE 02      IDLE LOOP    
 
          PAGE 03      GET REWIND OR UNLOAD STATUS    
 
          PAGE 04      SYSTEM RESET ROUTINES    
 
          PAGE 05      STORE CPU REQUESTED STATUS     
 
          PAGE 06      START UP CHANNEL PROGRAM 
 
          PAGE 07      DEVICE COMMAND EXECUTION 
 
          PAGE 08      CMDGO SUBROUTINE - DEVICE COMMAND START-UP 
 
          PAGE 09      CMDGO SUBROUTINE - SEND COMMAND TO DEVICE, GET STATUS BYTE   
 
          PAGE 10      CMDGO SUBROUTINE - START A DATA TRANSFER   
 
          PAGE 11      CMDGO SUBROUTINE - WAIT FOR CONTROL COMMAND TO COMPLETE
 
          PAGE 12      CMDGO SUBROUTINE - STORE CONTROL COMMAND ERROR STATUS  
 
          PAGE 13      CMDGO SUBROUTINE - SHORT BUSY HANDLER
 
          PAGE 14      CMDGO SUBROUTINE - INTERRUPT SERVICE ROUTINE FOR BLOCK DONE  
 
          PAGE 15      CMDGO SUBROUTINE - WAIT FOR INTERRUPT
 
          PAGE 16      CMDGO SUBROUTINE - EXIT  
 
          PAGE 17      AUTOMATIC RETRY DISPATCHER     
 
          PAGE 18      BUS OUT CHECK RETRY ROUTINE    
 
          PAGE 19      CHANNEL ERROR RETRY ROUTINE    
 
          PAGE 20      WRITE ERROR RETRY ROUTINE
 
          PAGE 21      ERASE GAP ERROR RETRY ROUTINE  
 
          PAGE 22      READ ERROR RETRY ROUTINE 
 
          PAGE 23      READ ERROR RETRY ROUTINE - END OF PASS     
DXMPA  -  DX10 MICROCODE                                                DECFLO VER  00.11 03-JAN-78 09:59  PAGE 01
START ADDRESSES                                                                                                            SEQ 0018
 
                     START ADDRESS 200             START ADDRESS 201             START ADDRESS 202    
 
                        ***********                   ***********                   *********** 
                        **ST200  **                   **ST201  **                   **ST202  ** 
                        ***********                   *****I*****                   *********** 
                             I                             I                             I
                  ***********************                  I                  *********************** 
                  *                     *                  I                  * SET NO DIAGNOSTICS  * 
                  *   INITIALIZE DX10   *                  I                  *        FLAG         * 
                  *                     *                  I                  *                     * 
                  ***********************                  I                  *********************** 
                             I                             I                             I
                  ***********************                  I<-----------------------------
                  *     SET ONETIME     *                  I
                  *   DIAGNOSTIC FLAG   *                  V
                  *                     *       *********************** 
                  ***********************       *                     * 
                             I     RESETB(04)   *   INITIALIZE DX10   * 
                 *************************      *                     * 
                 **                     **      *********************** 
                 **PERFORM SYSTEM RESET **                 I
                 **                     **                 I
                 *************************                 I
                             I                             I
                 *************************                 I
                 **                     **                 I
                 ** RUN THE DIAGNOSTICS **                 I
                 **                     **                 I
                 *************************                 I
                             I<-----------------------------
                             I     RESETB(04)   
                 *************************
                 **                     **
                 **PERFORM SYSTEM RESET **
                 **                     **
                 *************************
                             I
                  *********************** 
                  *  RESET ALL CONTROL  * 
                  *        FLAGS        * 
                  *                     * 
                  *********************** 
                             I
                  *********************** 
                  *SET CHANNEL STATUS TO* 
                  *        IDLE         * 
                  *                     * 
                  *********************** 
                             I
                        ************
                        *IDLE(02)  *
                        ************
DXMPA  -  DX10 MICROCODE                                                DECFLO VER  00.11 03-JAN-78 09:59  PAGE 02
IDLE LOOP                                                                                                                  SEQ 0019
 
 
                   ***********                                  WAIT HERE FOR COMMAND FROM DEC-SYSTEM-10    
                   **IDLE   **
                   ***********                                  RUN DIAGNOSTICS ONCE EVERY 512 LOOPS  
                        I                                       UNLESS INHIBITED    
             ***********************
             *CLEAR SUPPRESS OUT TO*
             *   CANCEL COMMAND    *
             *      CHAINING       *
             ***********************
                        I     
             ***********************
             *                     *                                               ***    
             *  CLEAR WAIT COUNT   *                                               *3*    
             *                     *                                               ***    
             ***********************                                                I     
                        I                                                ***********************
             ***********************                                     *                     *
   ***       *  SET TEMP COUNT TO  *                                     *INCREMENT TEMP COUNT *
   *1*------>*        -512         *                                     *                     *
   ***       *                     *                                     ***********************
             ***********************                                                I     
                        I                                   GETRWS(03)      -----------------   
                -----------------         *************************        /TEMP COUNT EQUAL \NO       ***  
   ***         / REQUEST IN TAG  \YES     **   READ AND REPORT   **       /       ZERO?       \------->*2*  
   *2*------->/     LINE SET?     \------>** REWIND DONE STATUS  **      /                     \       ***  
   ***       /                     \      **                     **      -----------------------
             -----------------------      *************************                 I YES 
                        I NO                          I                             I     
                        I<-----------------------------                     -----------------         *************************     
                -----------------                                          /   DIAGNOSTICS   \NO      **                     **     
               /                 \YES      ************                   /    INHIBITED?     \------>** RUN THE DIAGNOSTICS **     
              /   CONTINUE SET?   \------->*STPRG(06) *                  /                     \      **                     **     
             /                     \       ************                  -----------------------      *************************     
             -----------------------                                                I YES                         I     
                        I NO                                                        I<-----------------------------     
                        I                                                           I     
                -----------------                                        ***********************
               /                 \YES      ************                  *INCREMENT WAIT COUNT *
              /    CLEAR SET?     \------->*RESET(04) *                  * AND DISPLAY IN IBUS *
             /                     \       ************                  * REGISTER 16 LIGHTS  *
             -----------------------                                     ***********************
                        I NO                                                        I     
                        I                                                          ***    
                -----------------                                                  *1*    
               / STATUS REQUEST  \YES      ************                            ***    
              /        IN?        \------->*STRREQ(05)*     
             /                     \       ************     
             -----------------------
                        I NO  
                        I     
                       ***    
                       *3*    
                       ***    
DXMPA  -  DX10 MICROCODE                                                DECFLO VER  00.11 03-JAN-78 09:59  PAGE 03
GET REWIND OR UNLOAD STATUS                                                                                                SEQ 0020
 
 
                        ***********                                 ***                 -------------------->I    
                        **GETRWS **                                 *1*                 I                    I    
                        ***********                                 ***                 I                    I    
                             I                                       I                  I                    V    
                     *****************                       *****************          I            -----------------  
                     *               *                       * CLEAR SELECT  *          I           / ;UNIT CHECK IN  \NO     
                     * SET HOLD OUT  *                       *      OUT      *          I          /   STATUS BYTE?    \------->I   
                     *               *                       *               *          I         /                     \       I   
                     *****************                       *****************          I         -----------------------       I   
                             I                                       I                  I                    I YES              I   
                     *****************                       *****************          I            *****************          I   
                     *               *                       *               *          I            * SET SUPPRESS  *          I   
                     *SET SELECT OUT *                       *CLEAR HOLD OUT *          I            *      OUT      *          I   
                     *               *                       *               *          I            *               *          I   
                     *****************                       *****************          I            *****************          V   
                             I<------------------                    I                  I                    I<------------------   
                     -----------------          I            -----------------          I            *****************  
                    /                 \NO       I           /  DEVICE END IN  \YES      I            *               *  
                   /    ADDRESS IN?    \------->I          /   STATUS BYTE?    \------->I            *SET SERVICE OUT*  
                  /                     \                 /                     \                    *               *  
                  -----------------------                 -----------------------                    *****************  
                             I YES                                   I NO                                    I    
                  ***********************                            I                               *****************  
                  * READ DEVICE ADDRESS *                    *****************                       * CLEAR SERVICE *  
                  *  FROM BUS IN LINES  *                    * SET SUPPRESS  *                       *      OUT      *  
                  *                     *                    *      OUT      *                       *               *  
                  ***********************                    *               *                       *****************  
                             I                               *****************                               I    
                     *****************                               I                            ***********************     
                     *               *                       *****************                    *SET CHANNEL STATUS TO*     
                     *SET COMMAND OUT*                       *               *                    *    CU INITIATED     *     
                     *               *                       *SET SERVICE OUT*                    *                     *     
                     *****************                       *               *                    ***********************     
                             I                               *****************                               I    
                     *****************                               I                           *************************    
                     * CLEAR COMMAND *                       *****************                   **                     **    
                     *      OUT      *                       * CLEAR SERVICE *                   **    STORE STATUS     **    
                     *               *                       *      OUT      *                   **                     **    
                     *****************                       *               *                   *************************    
                             I<------------------            *****************                               I    
                     -----------------          I                    I                               -----------------  
                    /                 \NO       I                    I                        NO    /  UNIT CHECK IN  \ 
                   /    STATUS IN?     \------->I                    I<----------------------------/   STATUS BYTE?    \
                  /                     \                            I                            /                     \     
                  -----------------------                            I                            -----------------------     
                             I YES                                   I                                       I YES
                  ***********************                            I                            ***********************     
                  *READ STATUS BYTE FROM*                            I                            *                     *     
                  *    BUS IN LINES     *                            I                            *  READ SENSE BYTES   *     
                  *                     *                            I                            *                     *     
                  ***********************                            V                            ***********************     
                             I                                  ***********                                  I    
                            ***                                 **RETURN **<----------------------------------    
                            *1*                                 ***********   
                            ***     
DXMPA  -  DX10 MICROCODE                                                DECFLO VER  00.11 03-JAN-78 09:59  PAGE 04
SYSTEM RESET ROUTINES                                                                                                      SEQ 0021
 
 
                        ************                                      ***********     
                        *RESET     *                                      **RESETB **     
                        ************                                      ***********     
                             I                                                 I    
                     -----------------                                 *****************  
                    /                 \YES      ************           *CLEAR SUPPRESS *  
                   /   CONTINUE SET?   \------->*STPRG(06) *           *      OUT      *  
                  /                     \       ************           *               *  
                  -----------------------                              *****************  
                             I NO                                              I    
                     *****************                                 *****************  
                     *CLEAR CLEAR AND*                                 *     CLEAR     *  
                     *   CONTINUE    *                                 *OPERATIONAL OUT*  
                     *               *                                 *               *  
                     *****************                                 *****************  
                             I                                                 I    
                     *****************                                 *****************  
                     *CLEAR SUPPRESS *                                 * CLEAR ADDRESS *  
                     *      OUT      *                                 *      OUT      *  
                     *               *                                 *               *  
                     *****************                                 *****************  
                             I                                                 I    
                     *****************                                 *****************  
                     *     CLEAR     *                                 *               *  
                     *OPERATIONAL OUT*                                 *CLEAR HOLD OUT *  
                     *               *                                 *               *  
                     *****************                                 *****************  
                             I                                                 I    
                  ***********************                              *****************  
                  *      WAIT SIX       *                              * CLEAR SELECT  *  
                  *    MICRO-SECONDS    *                              *      OUT      *  
                  *                     *                              *               *  
                  ***********************                              *****************  
                             I                                                 I    
                     *****************                                 *****************  
                     *SET OPERATIONAL*                                 * CLEAR SERVICE *  
                     *      OUT      *                                 *      OUT      *  
                     *               *                                 *               *  
                     *****************                                 *****************  
                             I                                                 I    
                        ************                                   *****************  
                        *IDLE(02)  *                                   * CLEAR COMMAND *  
                        ************                                   *      OUT      *  
                                                                       *               *  
                                                                       *****************  
                                                                               I    
                                                                       *****************  
                                                                       *SET OPERATIONAL*  
                                                                       *      OUT      *  
                                                                       *               *  
                                                                       *****************  
                                                                               I    
                                                                          ***********     
                                                                          **RETURN **     
                                                                          ***********     
DXMPA  -  DX10 MICROCODE                                                DECFLO VER  00.11 03-JAN-78 09:59  PAGE 05
STORE CPU REQUESTED STATUS                                                                                                 SEQ 0022
 
 
 
 
 
 
                                                      ************
                                                      *STRREQ    *
                                                      ************
                                                           I
                                                           I
                                                *********************** 
                                                *SET CHANNEL STATUS TO* 
                                                *        IDLE         * 
                                                *                     * 
                                                *********************** 
                                                           I
                                                           I
                                               *************************
                                               **                     **
                                               **    STORE STATUS     **
                                               **                     **
                                               *************************
                                                           I
                                                           I
                                                      ************
                                                      *IDLE(02)  *
                                                      ************
DXMPA  -  DX10 MICROCODE                                                DECFLO VER  00.11 03-JAN-78 09:59  PAGE 06
START UP CHANNEL PROGRAM                                                                                                   SEQ 0023
 
 
                                            ************    
                                            *STPRG     *    
                                            ************    
                                                 I    
                                         -----------------          ***********************     
                                        /                 \YES      *                     *     
                    ************       /    CLEAR SET?     \------->* LOAD CPC FROM ICPC  *     
                    *IFETCH    *      /                     \       *                     *     
                    ************      -----------------------       ***********************     
                         I                       I NO                          I    
                         ----------------------->I<-----------------------------    
                                      ***********************     
                    ************      *                     *     
                    *DECODE(07)*      * READ FROM 10 MEMORY *     
                    ************      *                     *     
                         I            ***********************     
                         ----------------------->I    
                                         -----------------  
                                        /BIT 0 OF COMMAND \YES      ************    
                                       /       SET?        \------->*SQER00    *    TRIED TO EXECUTE A TRANSFER COMMAND 
                                      /                     \       ************    
                                      -----------------------     
                                                 I NO 
                                         -----------------  
                                        /BIT 1 OF COMMAND \YES      ************    
                                       /       SET?        \------->*DOCMD(07) *    
                                      /                     \       ************    
                                      -----------------------     
                                                 I NO 
                                         -----------------          ***********************     
                                        /BIT 2 OF COMMAND \NO       *   CLEAR CLEAR AND   *     
                                       /     SET? (GO)     \------->*      CONTINUE       *     
                                      /                     \       *                     *     
                                      -----------------------       ***********************     
                                                 I YES                         I    
                                                 I<-----------------------------    
                                         -----------------          ***********************     
                                        /BIT 3 OF COMMAND \YES      *                     *     
                                       /    SET? (JUMP)    \------->*LOAD CPC FROM COMMAND*     
                                      /                     \       *                     *     
                                      -----------------------       ***********************     
                                                 I NO                          I    
                                                 I<-----------------------------    
                                         -----------------         *************************    
                                        /BIT 4 OF COMMAND \YES     **                     **    
                                       /   SET? (STORE)    \------>**    STORE STATUS     **    
                                      /                     \      **                     **    
                                      -----------------------      *************************    
                                                 I NO                          I    
                                                 I<-----------------------------    
                                         -----------------  
                   ************   NO    /                 \YES      ************    
                   *IDLE(02)  *<-------/   CONTINUE SET?   \------->*IFETCH(06)*    
                   ************       /                     \       ************    
                                      -----------------------     
DXMPA  -  DX10 MICROCODE                                                DECFLO VER  00.11 03-JAN-78 09:59  PAGE 07
DEVICE COMMAND EXECUTION                                                                                                   SEQ 0024
 
 
                                  ************  
                                  *DOCMD     *  
                                  ************  
                                       I  
                            ***********************   
                            *SAVE THE COMMAND AND *   
                            *     CURRENT CPC     *   
                            *                     *   
                            ***********************   
                                       I     CMDGO(08)
                           *************************  
    ************           **                     **  
    *EXCMD(22) *           **   DO THE COMMAND    **                      ************                  ************    
    ************           **                     **                      *EXCMD(22) *                  *NRETRY(17)*    
         I                 *************************                      ************                  ************    
         ----------------------------->I                                       I                             I    
                               -----------------                       -----------------         *************************    
                              /                 \YES                  / AUTOMATIC ERROR \NO      **                     **    
                             /    ANY ERRORS?    \------------------>/RECOVERY REQUESTED?\------>**    STORE STATUS     **    
                            /                     \                 /                     \      **                     **    
                            -----------------------                 -----------------------      *************************    
                                       I NO                                    I YES                         I    
                                       I                                  ************                  ************    
                               -----------------                          *RETRY(17) *                  *IDLE(02)  *    
                              /                 \NO       ************    ************                  ************    
                             /   CONTINUE SET?   \------->*IDLE(02)  *  
                            /                     \       ************  
                            -----------------------   
                                       I YES    
                                       I  
                               -----------------
                              /  WAS COMMAND A  \NO       ************  
                             /    BURST TYPE?    \------->*IFETCH(06)*  
                            /                     \       ************  
                            -----------------------   
                                       I YES    
                                       I  
                                  ************  
                                  *DECODE(06)*  
                                  ************  
 
                            NEXT COMMAND WAS ALREADY  
                            READ FROM MEMORY AT END   
                            OF XFER LIST  
DXMPA  -  DX10 MICROCODE                                                DECFLO VER  00.11 03-JAN-78 09:59  PAGE 08
CMDGO SUBROUTINE - DEVICE COMMAND START-UP                                                                                 SEQ 0025
 
 
                        *********** 
                        **CMDGO  ** 
                        *********** 
                             I
                  *********************** 
                  *PUT DEVICE ADDRESS ON* 
                  *    BUS OUT LINES    * 
                  *                     * 
                  *********************** 
                             I
                     *****************    
                     *               *    
                     *SET ADDRESS OUT*    
                     *               *    
                     *****************    
                             I
                     *****************    
                     *               *    
                     * SET HOLD OUT  *    
                     *               *    
                     *****************    
                             I
                     *****************    
                     *               *    
                     *SET SELECT OUT *    
                     *               *    
                     *****************    
                             I<------------------------------------------------------------------------------     
                             I                                                                              I     
                     -----------------             -----------------             -----------------          I     
                    /                 \NO         /                 \NO         /                 \NO       I     
                   /  OPERATIONAL IN?  \-------> /    SELECT IN?     \-------> /    STATUS IN?     \------->I     
                  /                     \       /                     \       /                     \ 
                  -----------------------       -----------------------       ----------------------- 
                             I YES                         I YES                         I YES  
                     *****************                     I                             I
                     * CLEAR ADDRESS *          ***********************             ************
                     *      OUT      *          *SET SELECT ERROR BIT *             *SHORTB(13)*
                     *               *          *  IN CHANNEL STATUS  *             ************
                     *****************          *                     * 
                             I                  *********************** 
                     *****************                     I
                     *CLEAR SUPPRESS *          *********************** 
                     *      OUT      *          * CLEAR ADDRESS OUT,  * 
                     *               *          * HOLD OUT AND SELECT * 
                     *****************          *         OUT         * 
                             I                  *********************** 
                        ************                       I
                        *SENDCM(09)*           *************************
                        ************           **                     **      ************
                                               **    STORE STATUS     **----->*IDLE(02)  *
                                               **                     **      ************
                                               *************************
DXMPA  -  DX10 MICROCODE                                                DECFLO VER  00.11 03-JAN-78 09:59  PAGE 09
CMDGO SUBROUTINE - SEND COMMAND TO DEVICE, GET STATUS BYTE                                                                 SEQ 0026
 
 
                        ************
                        *SENDCM(08)*
                        ************
                             I<------------------     
                     -----------------          I     
                    /                 \NO       I     
                   /    ADDRESS IN?    \------->I     
                  /                     \ 
                  ----------------------- 
                             I YES  
                  *********************** 
                  *PUT DEVICE COMMAND ON* 
                  *    BUS IN LINES     * 
                  *                     * 
                  *********************** 
                             I
                     *****************    
                     *               *    
                     *SET COMMAND OUT*    
                     *               *    
                     *****************    
                             I
                     -----------------          *********************** 
                    /IS COMMAND REWIND\YES      * CLEAR HOLD OUT AND  * 
                   /    OR UNLOAD?     \------->*     SELECT OUT      * 
                  /                     \       *                     * 
                  -----------------------       *********************** 
                             I NO                          I
                             I<-----------------------------
                     *****************    
                     * CLEAR COMMAND *    
                     *      OUT      *    
                     *               *    
                     *****************    
                             I<------------------     
                     -----------------          I     
                    /                 \NO       I     
                   /    STATUS IN?     \------->I     
                  /                     \ 
                  ----------------------- 
                             I YES  
                             I
                     -----------------             -----------------             -----------------    
                    /ANY ERROR BITS IN\NO         / IS COMMAND TEST \NO         / CHANNEL END IN  \NO       ************
                   /   STATUS BYTE?    \-------> /        IO?        \-------> /   STATUS BYTE?    \------->*FNDX(10)  *
                  /                     \       /                     \       /                     \       ************
                  -----------------------       -----------------------       ----------------------- 
                             I YES                         I YES                         I YES  
                        ************                  ************                  ************
                        *STERR0(12)*                  *CMDEND(11)*                  *CTLCMD(11)*
                        ************                  ************                  ************
 
 
              STATUS BYTE ERROR BITS ARE ATTENTION, CU END, BUSY, UNIT CHECK, UNIT EXCEPTION    
DXMPA  -  DX10 MICROCODE                                                DECFLO VER  00.11 03-JAN-78 09:59  PAGE 10
CMDGO SUBROUTINE - START A DATA TRANSFER                                                                                   SEQ 0027
 
 
                        ************
                        *FNDX      *
                        ************
                             I
                  *********************** 
                  *READ A TRANSFER WORD * 
                  *   FROM -10 MEMORY   *       THIS MAY INCLUDE PROCESSING A CHANNEL JUMP COMMAND    
                  *                     * 
                  *********************** 
                             I
                     -----------------    
                    / WAS A TRANSFER  \NO       ************
                   /    WORD FOUND?    \------->*SQER26    *                        ************
                  /                     \       ************                        *ON(14)    *
                  -----------------------                                           ************
                             I YES                              ------------------------>I
                  ***********************                       I             *********************** 
                  *LOAD DATA ADDRESS AND*                       I             *  TURN ON INTERRUPT  * 
                  *    BYTE COUNTERS    *                       I             *       SYSTEM        * 
                  *                     *                       I             *                     * 
                  ***********************                       I             *********************** 
                             I                                  I                        I
                  ***********************                       I                   ************
                  *   COMPUTE CORRECT   *                       I                   *WAIT(15)  *
                  *  CONTROL BITS FOR   *                       I                   ************
                  * CHANNEL CONTROL REG *                       I 
                  ***********************                       I         WAIT ROUTINE WILL NORMALLY BE     
                             I                                  I         INTERRUPTED BEFORE TERMINATION    
                     *****************                          I 
                     *               *                          I 
                     *SET SERVICE OUT*                          I                    INTERRUPT  
                     *               *                          I                        I
                     *****************                          I                        I
                             I                                  I                        V
                     *****************                          I                   ************
                     * CLEAR SERVICE *                          I                   *BLKDNI(14)*
                     *      OUT      *                          I                   ************
                     *               *                          I 
                     *****************                          I 
                             I                                  I 
                  ***********************                       I 
                  *LOAD CHANNEL CONTROL *                       I 
                  *      REGISTER       *                       I 
                  *                     *                       I 
                  ***********************                       I 
                             I                                  I 
                             ---------------------------------->I 
DXMPA  -  DX10 MICROCODE                                                DECFLO VER  00.11 03-JAN-78 09:59  PAGE 11
CMDGO SUBROUTINE - WAIT FOR CONTROL COMMAND TO COMPLETE                                                                    SEQ 0028
 
 
                        ************
                        *CTLCMD(09)*
                        ************
                             I
                     -----------------    
                    /  DEVICE END IN  \YES      ***                                 ************
                   /   STATUS BYTE?    \------->*1*                                 *CMDEND(09)*
                  /                     \       ***                                 ************
                  -----------------------                            ------------------->I
                             I NO                                    I           *****************    
                     -----------------                               I           *               *    
                    /IS COMMAND REWIND\YES                           I           *SET SERVICE OUT*    
                   /    OR UNLOAD?     \---------------------------->I           *               *    
                  /                     \                                        *****************    
                  -----------------------                                                I
                             I NO                                             *********************** 
                     *****************                                        *  CLEAR SELECT OUT,  * 
                     *               *                                        *HOLD OUT AND SERVICE * 
                     *SET SERVICE OUT*                                        *         OUT         * 
                     *               *                                        *********************** 
                     *****************                                                   I
                             I                                                           I
                     *****************                                              *********** 
                     * CLEAR SERVICE *                                              **RETURN ** 
                     *      OUT      *                                              *********** 
                     *               *    
                     *****************    
                             I<------------------     
                     -----------------          I     
                    /                 \NO       I     
                   /    STATUS IN?     \------->I     
                  /                     \ 
                  ----------------------- 
                             I YES  
                     *****************    
                     *READ THE STATUS*    
                     *     BYTE      *                    ***     
                     *               *                    *1*     
                     *****************                    ***     
                             I                             I
                     -----------------             -----------------    
                    /IS COMMAND ERASE \NO         /                 \YES
                   /       GAP?        \-------> / IS COMMAND A NOP? \--->I   
                  /                     \       /                     \   I   
                  -----------------------       -----------------------   I   
                             I YES                         I NO           I   
                             ----------------------------->I              I   
                                                   *****************      I   
                                                   * SET SUPPRESS  *      I   ************
                                                   *      OUT      *--------->*CMDEND(11)*
                                                   *               *          ************
                                                   *****************    
DXMPA  -  DX10 MICROCODE                                                DECFLO VER  00.11 03-JAN-78 09:59  PAGE 12
CMDGO SUBROUTINE - STORE CONTROL COMMAND ERROR STATUS                                                                      SEQ 0029
 
 
 
 
 
 
 
 
 
 
 
                                                      ************
                                                      *STERR0(09)*
                                                      ************
                                                           I
                                                           I
                                               *************************
                                               ** STORE INITIAL ERROR **
                                               **       STATUS        **
                                               **                     **
                                               *************************
                                                           I
                                                   *****************    
                                                   *               *    
                                                   *SET SERVICE OUT*    
                                                   *               *    
                                                   *****************    
                                                           I
                                                           I
                                                *********************** 
                                                *  CLEAR SELECT OUT,  * 
                                                *HOLD OUT AND SERVICE * 
                                                *         OUT         * 
                                                *********************** 
                                                           I
                                                           I
                                                      ************
                                                      *IDLE(02)  *
                                                      ************
DXMPA  -  DX10 MICROCODE                                                DECFLO VER  00.11 03-JAN-78 09:59  PAGE 13
CMDGO SUBROUTINE - SHORT BUSY HANDLER                                                                                      SEQ 0030
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
                                                      ************
                                                      *SHORTB(08)*
                                                      ************
                                                           I
                                                *********************** 
                                                *  CLEAR SELECT OUT,  * 
                                                *HOLD OUT AND ADDRESS * 
                                                *         OUT         * 
                                                *********************** 
                                                           I<------------------     
                                                   -----------------          I     
                                                  /                 \NO       I     
                                                 /    REQUEST IN?    \------->I     
                                                /                     \ 
                                                ----------------------- 
                                                           I YES  
                                                           I     GETRWS(03)   
                                               *************************
                                               **   READ AND REPORT   **
                                               ** REWIND DONE STATUS  **
                                               **                     **
                                               *************************
                                                           I
                                                      ************
                                                      *CMDGO(08) *
                                                      ************
DXMPA  -  DX10 MICROCODE                                                DECFLO VER  00.11 03-JAN-78 09:59  PAGE 14
CMDGO SUBROUTINE - INTERRUPT SERVICE ROUTINE FOR BLOCK DONE                                                                SEQ 0031
 
 
                        ************                                   -----------------          ***********************     
                        *BLKDNI(10)*                     ***          /  READING FROM   \NO       *                     *     
                        ************                     *1--------->/      DEVCIE?      \------->*   SET LAST BLOCK    *     
                             I                           ***        /                     \       *                     *     
                  ***********************                           -----------------------       ***********************     
                  *TURN INTERRUPT SYSTEM*                                      I YES                         I    
                  *         OFF         *                              -----------------                     I    
                  *                     *                             /ANY MORE DATA IN \NO             ************    
                  ***********************                            /       SILO?       \------------->*SRVDEV(16)*    
                             I                                      /                     \             ************    
                  ***********************                           -----------------------     
                  *  READ NEXT CONTROL  *                                      I YES
                  *WORD FROM -10 MEMORY *                                      I<---------------------
                  *                     *                           ***********************          I
                  ***********************                           *  LOAD CHANNEL BUS   *          I
                             I                                      *CONTROL REGISTER WITH*          I
                     -----------------                              *   MEMORY INHIBIT    *          I
                    /  BYTE COUNTER   \NO       ************        ***********************          I
                   /     OVERFLOW?     \------->*SHRTRC(16)*                   I                     I
                  /                     \       ************        ***********************          I
                  -----------------------                           *  LOAD BYTE COUNTER  *          I
                             I YES                                  * WITH LARGE NEGATIVE *          I
                     -----------------                              *       NUMBER        *          I
                    /ANY MORE TRANSFER\NO       ***                 ***********************          I
                   /      WORDS?       \------->*1*                            I                     I
                  /                     \       ***                 ***********************          I
                  -----------------------                           *  TURN ON INTERRUPT  *          I
                             I YES                                  *       SYSTEM        *          I
                             I                                      *                     *          I
                  ***********************                           ***********************          I
                  *  LOAD CHANNEL BUS   *                                      I                     I
                  *  CONTROL REGISTER   *                                 ************               I
                  *                     *                                 *WAIT(15)  *               I
                  ***********************                                 ************               I
                             I                                                                       I
                  ***********************                         WAIT ROUTINE WILL NORMALLY BE      I
                  *LOAD DATA ADDRESS AND*                         INTERRUPTED BEFORE TERMINATION     I
                  *    BYTE COUNTERS    *                                                            I
                  *                     *                                 INTERRUPT                  I
                  ***********************                                      I                     I
                             I                                                 V                     I
                        ************                                ***********************          I
                        *ON(10)    *                                * TURN OFF INTERRUPT  *          I
                        ************                                *       SYSTEM        *          I
                                                                    *                     *          I
                                                                    ***********************          I
                                                                               I                     I
                                                                       -----------------             I
                                                                      /  BYTE COUNTER   \NO          I
                                                                     /     OVERFLOW?     \---------->I
                                                                    /                     \     
                                                                    -----------------------     
                                                                               I YES
                                                                          ************    
                                                                          *LONGRC(16)*    
                                                                          ************    
DXMPA  -  DX10 MICROCODE                                                DECFLO VER  00.11 03-JAN-78 09:59  PAGE 15
CMDGO SUBROUTINE - WAIT FOR INTERRUPT                                                                                      SEQ 0032
 
 
                        ************
                        *WAIT(10)  *
                        ************
                             I<------------------------------------------------------------------------------     
                     -----------------             -----------------          I                             I     
                    /   10 SECONDS    \NO         /                 \NO       I                             I     
                   /      ELAPSE?      \-------> /    STATUS IN?     \------->I                             I     
                  /                     \       /                     \                                     I     
                  -----------------------       -----------------------                                     I     
                             I YES                         I YES                                            I     
                  ***********************          -----------------             -----------------          I     
                  * TURN OFF INTERRUPT  *         /   WRITING TO    \NO         /  HAS STATUS IN  \NO       I     
                  *       SYSTEM        *        /      DEVICE?      \-------> /PROPOGATED THROUGH \------->I     
                  *                     *       /                     \       /        SILO?        \ 
                  ***********************       -----------------------       ----------------------- 
                             I                             I YES                         I YES  
                  ***********************       ***********************             ************
                  *    SET OPERATION    *       * TURN OFF INTERRUPT  *             *BLKDNI(14)*
                  *INCOMPLETE IN STATUS *       *       SYSTEM        *             ************
                  *                     *       *                     * 
                  ***********************       ***********************        THIS CONDITION WILL USUALLY  
                             I                             I                   CAUSE AN INTERRUPT     
                  ***********************       *********************** 
                  *                     *       *  READ NEXT CONTROL  * 
                  *  RESET THE DEVICE   *       *WORD FROM -10 MEMORY * 
                  *                     *       *                     * 
                  ***********************       *********************** 
                             I                             I
                 *************************            ************
                 **                     **            *SHRTRC(16)*
                 **    STORE STATUS     **            ************
                 **                     **
                 *************************
                             I
                        ************
                        *IDLE(02)  *
                        ************
DXMPA  -  DX10 MICROCODE                                                DECFLO VER  00.11 03-JAN-78 09:59  PAGE 16
CMDGO SUBROUTINE - EXIT                                                                                                    SEQ 0033
 
 
                                                      ************
                                                      *SHRTRC(15)*
                                                      ************
                                                           I
                                                *********************** 
                                  ************  *READ REST OF TRANSFER* 
                                  *LONGRC(14)*  *        LIST         * 
                                  ************  *                     * 
                                       I        *********************** 
                                       ------------------->I
                                                *********************** 
                                  ************  * SET LENGTH ERROR IN * 
                                  *SRVDEV(14)*  *       STATUS        * 
                                  ************  *                     * 
                                       I        *********************** 
                                       ------------------->I
                                                   -----------------          *********************** 
                                                  / CHANNEL PARITY  \YES      * SET PARITY ERROR IN * 
                                                 /      ERROR?       \------->*       STATUS        * 
                                                /                     \       *                     * 
                                                -----------------------       *********************** 
                                                           I NO                          I
                                                           I<-----------------------------
                                                           I<------------------     
                                                   -----------------          I     
                                                  /                 \NO       I     
                                                 /    STATUS IN?     \------->I     
                                                /                     \ 
                                                ----------------------- 
                                                           I YES  
                                                *********************** 
                                                *CLEAR CHANNEL CONTROL* 
                                                *      REGISTER       * 
                                                *                     * 
                                                *********************** 
                                                           I
                                                *********************** 
                                                *                     * 
                                                *READ THE STATUS BYTE * 
                                                *                     * 
                                                *********************** 
                                                           I
                                                *********************** 
                                                *                     * 
                                                *   SET SERVICE OUT   * 
                                                *                     * 
                                                *********************** 
                                                           I
                                                *********************** 
                                                *  CLEAR SELECT OUT,  *       *********** 
                                                *HOLD OUT AND SERVICE *------>**RETURN ** 
                                                *         OUT         *       *********** 
                                                *********************** 
DXMPA  -  DX10 MICROCODE                                                DECFLO VER  00.11 03-JAN-78 09:59  PAGE 17
AUTOMATIC RETRY DISPATCHER                                                                                                 SEQ 0034
 
 
                        ************
                        *RETRY(07) *
                        ************
                             I
                     -----------------             -----------------    
                    /                 \NO         / CHANNEL PARITY  \NO       ************
                   /    UNIT CHECK?    \-------> /      ERROR?       \------->*NRETRY(07)*
                  /                     \       /                     \       ************
                  -----------------------       ----------------------- 
                             I YES                         I YES  
                  ***********************             ************
                  *                     *             *CHCHK(19) *
                  *  READ SENSE BYTES   *             ************
                  *                     * 
                  *********************** 
                             I
                     -----------------    
                    /                 \YES      ************
                   / EQUIPMENT CHECK?  \------->*NRETRY(07)*         ------------------->I
                  /                     \       ************         I                   I
                  -----------------------                            I                   V
                             I NO                                    I           -----------------    
                     -----------------                               I          /                 \YES      ************
                    /                 \YES      ************         I         /   WRITE OR WTM?   \------->*WRTRET(20)*
                   /  BUS OUT CHECK?   \------->*BOCHK(18) *         I        /                     \       ************
                  /                     \       ************         I        ----------------------- 
                  -----------------------                            I                   I NO   
                             I NO                                    I           -----------------    
                     -----------------                               I          /                 \YES      ************
                    /INTERVEN. REQ'D, \YES      ************         I         /       ERG?        \------->*ERGRET(21)*
                   / COMMAND REJECT OR \------->*NRETRY(07)*         I        /                     \       ************
                  / DATA CONVTR CHECK?  \       ************         I        ----------------------- 
                  -----------------------                            I                   I NO   
                             I NO                                    I           -----------------    
                     -----------------                               I          / READ FORWARD OR \YES      ************
                    /                 \YES      ************         I         /     BACKWARD?     \------->*RDRET(22) *
                   /     OVERRUN?      \------->*CHCHK(19) *         I        /                     \       ************
                  /                     \       ************         I        ----------------------- 
                  -----------------------                            I                   I NO   
                             I NO                                    I              ************
                     -----------------                               I              *NRETRY(07)*
                    /                 \YES                           I              ************
                   /    DATA CHECK?    \---------------------------->I  
                  /                     \ 
                  ----------------------- 
                             I NO   
                        ************
                        *NRETRY(07)*
                        ************
DXMPA  -  DX10 MICROCODE                                                DECFLO VER  00.11 03-JAN-78 09:59  PAGE 18
BUS OUT CHECK RETRY ROUTINE                                                                                                SEQ 0035
 
 
                                            ************    
                                            *BOCHK     *    
                                            ************    
                                                 I    
                                         -----------------  
                                        /  DEVICE END IN  \NO     
                                       /      STATUS?      \------->I   
                                      /                     \       I   
                                      -----------------------       I   
                                                 I YES              I   
                                         -----------------          I   
                                        /                 \NO       I   
                                       /  WRITE COMMAND?   \------->I   
                                      /                     \       I   
                                      -----------------------       I   
                                                 I YES              I   
                                                 I     CMDGO(08)    I   
                                     *************************      I   
                                     **                     **      I   
                                     **BACKSPACE ONE RECORD **      I   
                                     **                     **      I   
                                     *************************      V   
                                                 I<------------------   
                                                 I     CMDGO(08)  
                                     *************************    
                                     **                     **    
                                     **  TRY COMMAND AGAIN  **    
                                     **                     **    
                                     *************************    
                                                 I    
                                         -----------------  
                                        /                 \NO       ************    
                                       /      ERROR?       \------->*EXCMD(07) *    
                                      /                     \       ************    
                                      -----------------------     
                                                 I YES
                                         -----------------  
                                        / RETRIED 5 TIMES \NO       ************    
                                       /       YET?        \------->*BOCHK(18) *    
                                      /                     \       ************    
                                      -----------------------     
                                                 I YES
                                            ************    
                                            *NRETRY(07)*    
                                            ************    
DXMPA  -  DX10 MICROCODE                                                DECFLO VER  00.11 03-JAN-78 09:59  PAGE 19
CHANNEL ERROR RETRY ROUTINE                                                                                                SEQ 0036
 
 
                        ************
                        *CHCHK(17) *
                        ************
                             I                                   CMDGO(08)    
                     -----------------         *************************
                    /  WRITE OR READ  \YES     **                     **
                   /     FORWARD?      \------>**BACKSPACE ONE RECORD **----->I     
                  /                     \      **                     **      I     
                  -----------------------      *************************      I     
                             I NO                                CMDGO(08)    I     
                     -----------------         *************************      I     
                    /                 \YES     **                     **      I     
                   /   READ BACKWARD   \------>**   SKIP ONE RECORD   **----->I     
                  /                     \      **                     **      I     
                  -----------------------      *************************      I     
                             I NO                                             V     
                             I<------------------------------------------------     
                             I     CMDGO(08)    
                 *************************
                 **                     **
                 **  TRY COMMAND AGAIN  **
                 **                     **
                 *************************
                             I
                     -----------------    
                    /                 \NO       ************
                   /      ERROR?       \------->*EXCMD(07) *
                  /                     \       ************
                  ----------------------- 
                             I YES  
                     -----------------    
                    / RETRIED 5 TIMES \NO       ************
                   /       YET?        \------->*CHCHK(19) *
                  /                     \       ************
                  ----------------------- 
                             I YES  
                        ************
                        *NRETRY(07)*
                        ************
DXMPA  -  DX10 MICROCODE                                                DECFLO VER  00.11 03-JAN-78 09:59  PAGE 20
WRITE ERROR RETRY ROUTINE                                                                                                  SEQ 0037
 
 
                        ************
                        *WRTRET    *
                        ************
                             I     CMDGO(08)    
                 *************************
                 **                     **
                 **BACKSPACE ONE RECORD **
                 **                     **
                 *************************
                             I
                             I     CMDGO(08)    
                 *************************
                 **                     ** FIRST RETRY ERASES ONE TIME, 
                 **     ERASE TAPE      ** SECOND RETRY ERASES TWO TIMES,     
                 **                     ** ETC. 
                 *************************
                             I
                     -----------------    
                    /                 \YES      ************
                   /    UNIT CHECK?    \------->*NRETRY(07)*
                  /                     \       ************
                  ----------------------- 
                             I NO  CMDGO(08)    
                 *************************
                 **                     **
                 **  TRY COMMAND AGAIN  **
                 **                     **
                 *************************
                             I
                     -----------------    
                    /                 \NO       ************
                   /      ERROR?       \------->*EXCMD(07) *
                  /                     \       ************
                  ----------------------- 
                             I YES  
                     -----------------    
                    /RETRIED 75 TIMES \NO       ************
                   /       YET?        \------->*WRTRET(20)*
                  /                     \       ************
                  ----------------------- 
                             I YES  
                        ************
                        *NRETRY(07)*
                        ************
DXMPA  -  DX10 MICROCODE                                                DECFLO VER  00.11 03-JAN-78 09:59  PAGE 21
ERASE GAP ERROR RETRY ROUTINE                                                                                              SEQ 0038
 
 
 
 
 
 
 
 
 
 
 
 
 
                                                      ************
                                                      *ERGRET    *
                                                      ************
                                                           I     CMDGO(08)    
                                               *************************
                                               **                     **
                                               **  TRY COMMAND AGAIN  **
                                               **                     **
                                               *************************
                                                           I
                                                   -----------------    
                                                  /                 \NO       ************
                                                 /      ERROR?       \------->*EXCMD(07) *
                                                /                     \       ************
                                                ----------------------- 
                                                           I YES  
                                                   -----------------    
                                                  / RETRIED 3 TIMES \NO       ************
                                                 /       YET?        \------->*ERGRET(21)*
                                                /                     \       ************
                                                ----------------------- 
                                                           I YES  
                                                      ************
                                                      *NRETRY(07)*
                                                      ************
DXMPA  -  DX10 MICROCODE                                                DECFLO VER  00.11 03-JAN-78 09:59  PAGE 22
READ ERROR RETRY ROUTINE                                                                                                   SEQ 0039
 
                        ************
                        *RDRET     *
                        ************
                             I
                  *********************** 
                  * SET PASS COUNTER TO * PASS ZERO REREADS IN SAME DIRECTION AS ERROR,   
                  *        ZERO         * PASS ONE REREADS IN OPPOSITE DIRECTION    
                  *                     * 
        ***       *********************** 
        *1*----------------->I
        ***          -----------------             -----------------    
                    /  NOISE SET IN   \NO         /WERE LESS THAN 4 \YES      ***   
                   /   SENSE BYTE 1?   \-------> /    BYTES READ?    \------->*2*   
                  /                     \       /                     \       ***   
                  -----------------------       ----------------------- 
                             I YES                         I NO   
                             I<-----------------------------     CMDGO(08)    
                     -----------------         *************************
                    /  TIME TO CLEAN  \YES     **   BACKSPACE TO 4    ** TAPE IS CLEANED AFTER  
                   /       TAPE?       \------>** RECORDS IN FRONT OF ** EVERY FOUR REREADS     
                  /                     \      **   RECORD IN ERROR   **
                  -----------------------      *************************
                             I NO                          I
                             I<----CMDGO(08)----------------
                 *************************
    ************ **  POSITION TAPE FOR  **
    *PASS2(23) * ** REREAD OF RECORD IN **
    ************ **        ERROR        **
         I       *************************
         ------------------->I                                   CMDGO(08)    
                     -----------------         *************************
                    /IS TRACK IN ERROR\NO      ** SEND TRACK IN ERROR **
                   /      AN 03?       \------>** TO TAPE CONTROLLER  **
                  /                     \      **                     **
                  -----------------------      *************************
        ***                  I YES                         I
        *2*----------------->I<-----------------------------
        ***                  I     CMDGO(08)    
                 *************************
                 **  TRY READ COMMAND   **
                 **        AGAIN        **
                 **                     **
                 *************************
                             I                                                                                     CMDGO(08)  
                     -----------------                                 -----------------         *************************    
                    /                 \NO                             /                 \NO      **    REPOSITION TO    **    
                   /      ERROR?       \---------------------------->/   IN PASS ZERO?   \------>**   OPPOSITE END OF   **    
                  /                     \                           /                     \      **       RECORD        **    
                  -----------------------                           -----------------------      *************************    
                             I YES                                             I YES                         I    
                             I                                                 I<-----------------------------    
                     -----------------                                    ************    
        ***   NO    /RETRIED 30 TIMES \YES      ************              *EXCMD(07) *    
        *1*<-------/   IN THIS PASS?   \------->*ENDPAS(23)*              ************    
        ***       /                     \       ************
                  ----------------------- 
DXMPA  -  DX10 MICROCODE                                                DECFLO VER  00.11 03-JAN-78 09:59  PAGE 23
READ ERROR RETRY ROUTINE - END OF PASS                                                                                     SEQ 0040
 
 
 
 
 
 
 
 
 
 
                        ************
                        *ENDPAS    *
                        ************
                             I                                   CMDGO(08)    
                     -----------------         *************************         -----------------    
                    /                 \YES     **  TRY ORIGINAL READ  **        /                 \NO       ************
                   /   IN PASS ONE?    \------>**    COMMAND AGAIN    **-----> /      ERROR?       \------->*EXCMD(07) *
                  /                     \      **                     **      /                     \       ************
                  -----------------------      *************************      ----------------------- 
                             I NO                                                        I YES  
                             I                                                      ************
                  ***********************                                           *NRETRY(07)*
                  *BUILD A NEW XFER LIST*                                           ************
                  *IN 8-MEMORY FOR READ * 
                  *IN OPPOSITE DIRECTION* 
                  *********************** 
                             I
                             I
                     -----------------    
                    / WILL XFER LIST  \NO       ************ IF RECORD DIFFERS IN SIZE FROM XFER LIST, DX10 
                   /LOAD DATA INTO SAME\------->*NRETRY(07)* MAY NOT BE ABLE TO ASSEMBLE THE SAME 10-MEMORY 
                  /POSITION IN 10-MEMORY\       ************ WORDS IN OPPOSITE DIRECTION  
                  ----------------------- 
                             I YES  
                             I
                  *********************** 
                  * SET PASS COUNTER TO * 
                  *         ONE         * 
                  *                     * 
                  *********************** 
                             I
                             I
                        ************
                        *PASS2(22) *
                        ************
DXMPA  -  DX10 MICROCODE                                                DECFLO VER  00.11 03-JAN-78 09:59  PAGE 24
FLOW CHART CROSS REFERENCE LIST                                                                                            SEQ 0041
 
 
 
      BLKDNI      10    14    15    
      BOCHK       17    18    18    
      CHCHK       17    17    19    19    
      CMDEND      09    11    11    
      CMDGO       07    08#   13    18    18    19    19    19    20    20    20    21    22    22    22    22    22    23    
      CTLCMD      09    11    
      DECODE      06    07    
      DOCMD       06    07    
      ENDPAS      22    23    
      ERGRET      17    21    21    
      EXCMD       07    07    18    19    20    21    22    23    
      FNDX        09    10    
      GETRWS      02    03#   13    
      IDLE        01    02#   04    05    06    07    07    08    12    15    
      IFETCH      06    06    07    
      LONGRC      14    16    
      NRETRY      07    17    17    17    17    17    18    19    20    20    21    23    23    
      ON          10    14    
      PASS2       22    23    
      RDRET       17    22    
      RESET       02    04    
      RESETB      01    01    04#   
      RETRY       07    17    
      RETURN      03    04    11    16    
      SENDCM      08    09    
      SHORTB      08    13    
      SHRTRC      14    15    16    
      SQER00      06    
      SQER26      10    
      SRVDEV      14    16    
      ST200       01#   
      ST201       01#   
      ST202       01#   
      STERR0      09    12    
      STPRG       02    04    06    
      STRREQ      02    05    
      WAIT        10    14    15    
      WRTRET      17    20    20    
/DX10 MICROCODE FOR STC MAGNETIC TAPE  VERSION #14  EDIT #0	PAL10 	V142A	30-DEC-77	8:46	PAGE 84
                                                                                                                           SEQ 0042
  3028	  			   /************************************************************
  3029	  			   /
  3030	  			   /	THE FOLLOWING ROUTINES,FROM TSTBEG TO TSTEND ARE
  3031	  			   /	SELF TEST ROUTINES.THIS IS WHERE THE -8A ATTEMPTS
  3032	  			   /	TO INSURE THAT ALL OF THE SPECIAL IOT'S ARE STILL
  3033	  			   /	FUNCTIONAL.
  3034	  			   /
  3035	  			   /	IF AN ERROR OCCURS,IT IS REPORTED BY A DIAGNOSTIC ERROR
  3036	  			   /	CODE IN THE RANGE OF 100 TO 177.
  3037	  			   /	THIS STATUS IS STORED INTO LOCATION 5
  3038	  			   /	AND DISPLAYED IN LIGHTS FOR REGISTER 17
  3039	  			   /************************************************************
  3040
  3041
  3042	  			   /************************************************************
  3043	  			   /
  3044	  			   /	INHIBIT DIAGNOSTICS ENTRY POINT
  3045	  			   /
  3046	  			   /************************************************************
  3047
  3048	  5000	0000	STPTST,	0
  3049	  5001	6007		INT				/INITIALIZE THE SYSTEM
  3050	  5002	7240		CLA CMA				/GEN A -1
  3051	  5003	3050		DCA	NODIAG			/SET NO DIAGNOSTICS FLAG
  3052	  5004	5777'		JMP	START
  3053
  3054	  			   /************************************************************
  3055	  			   /
  3056	  			   /	CONTINUOUS DIAGNOSTIC EXECUTION ENTRY PT!
  3057	  			   /
  3058	  			   /************************************************************
  3059
  3060	  5005	7240	DIAG,	CLA CMA				/GEN -1
  3061	  5006	3051		DCA	LOOPER			/SET TEST FLG
  3062	  5007	3053		DCA	ONETIM			/CLEAR ONE TIME FLAG
  3063	  5010	3005		DCA	ECODE			/INIT ERROR NUMBER LOC
  3064	  5011	4214		JMS	TSTBEG			/RUN THE DIAGNOSTICS
  3065	  5012	5211		JMP	.-1			/FOREVER
  3066
  3067	  5013	5614	TSTEXT,	JMP I	TSTBEG			/RETURN FROM DIAGNOSTICS CALL
/DX10 MICROCODE FOR STC MAGNETIC TAPE  VERSION #14  EDIT #0	PAL10 	V142A	30-DEC-77	8:46	PAGE 85
                                                                                                                           SEQ 0043
  3068	  			   /************************************************************
  3069	  			   /
  3070	  			   /	NORMAL DIAGNOSTIC ENTRY PT
  3071	  			   /
  3072	  			   /************************************************************
  3073
  3074	  5014	0000	TSTBEG,	0
  3075	  5015	7307		CLA IAC CLL RTL			/GET CPC ADDRESS
  3076	  5016	7125		STL IAC RAL			/SELECT
  3077	  5017	6516		LIS				/ON IBUS
  3078	  5020	6556		GIR				/READ <18:35>
  3079	  5021	6516		LIS				/SELECT <14:17>
  3080	  5022	6555		GIL				/READ THEM
  3081	  5023	6503		G8A				/GET BYTE A
  3082	  5024	3040		DCA	T1			/SAVE IT
  3083	  5025	6504		G8B				/GET BYTE B
  3084	  5026	3041		DCA	T2			/SAVE IT
  3085	  5027	6505		G8C				/GET BYTE C
  3086	  5030	3042		DCA	T3			/SAVE IT
/DX10 MICROCODE FOR STC MAGNETIC TAPE  VERSION #14  EDIT #0	PAL10 	V142A	30-DEC-77	8:46	PAGE 86
                                                                                                                           SEQ 0044
  3087	  			   /************************************************************
  3088	  			   /
  3089	  			   /	TEST THAT L8A,L8B,L8C,L8S,LIS,INT,LCB,SLB
  3090	  			   /	STM,I8S, & LBO ALL CLEAR THE AC
  3091	  			   /
  3092	  			   /************************************************************
  3093
  3094	  5031	4532	TST01,	JMS I	[CHKCON]		/CHK CONTINUE & GO TO TSTEND IF=1
  3095	  5032	7240		CLA CMA				/GEN -1
  3096	  5033	6517		LBO				/DO BUS OUT
  3097	  5034	7440		SZA				/SKP IF AC ZERO
  3098	  5035	5776'		JMP	DER100			/LBO DIDN'T CLR THE AC
  3099	  5036	7240	TST02,	CLA CMA				/GEN -1
  3100	  5037	6502		STM				/SET THE MP ERR TIMER
  3101	  5040	7440		SZA				/SKP IF AC IS CLEAR'D
  3102	  5041	5775'		JMP	DER101			/STM DIDN'T CLR AC
  3103	  5042	7240	TST03,	CLA CMA				/GEN -1
  3104	  5043	6007		INT				/DO INT
  3105	  5044	7440		SZA				/SKP IF AC IS CLR'D
  3106	  5045	5774'		JMP	DER102			/INT DIDN'T CLR AC
  3107	  5046	7240	TST04,	CLA CMA				/GEN -1
  3108	  5047	6511		L8S				/SELECT 8R
  3109	  5050	7440		SZA				/SKP IF AC CLEAR'D
  3110	  5051	5773'		JMP	DER103			/L8S DIDN'T CLR AC
  3111	  5052	7201	TST05,	CLA IAC				/GEN 1
  3112	  5053	6510		LCB				/DO LCB
  3113	  5054	7440		SZA				/SKP IF AC CLEAR'D
  3114	  5055	5772'		JMP	DER104			/LCB DIDN'T CLR AC
  3115	  5056	6510		LCB				/CLR RUN
  3116	  5057	7240	TST06,	CLA CMA				/GEN -1
  3117	  5060	6515		L8C				/DO 8R<24:35> LOAD
  3118	  5061	7440		SZA				/SKP IF AC CLR'D
  3119	  5062	5771'		JMP	DER105			/L8C DIDN'T CLR AC
  3120	  5063	7240	TST07,	CLA CMA				/GEN -1
  3121	  5064	6514		L8B				/DO 8R<12:23> LOAD
  3122	  5065	7440		SZA				/SKP IF AC CLEAR'D
  3123	  5066	5770'		JMP	DER106			/L8B DIDN'T CLEAR AC
  3124	  5067	7240	TST10,	CLA CMA				/GEN -1
  3125	  5070	6513		L8A				/DO 8R<0:11> LOAD
  3126	  5071	7440		SZA				/SKP IF AC CLR'D
  3127	  5072	5767'		JMP	DER107			/L8A DIDN'T CLR AC
  3128
/DX10 MICROCODE FOR STC MAGNETIC TAPE  VERSION #14  EDIT #0	PAL10 	V142A	30-DEC-77	8:46	PAGE 87
                                                                                                                           SEQ 0045
  3129	  			   /************************************************************
  3130	  			   /
  3131	  			   /	CHECK LOADING OF AN 8R
  3132	  			   /
  3133	  			   /************************************************************
  3134
  3135	  5073	4532	TST11,	JMS I	[CHKCON]		/CHK CONT AND GO TO TSTEND IF SET
  3136	  5074	1131		TAD	[1]			/GET L8A DATA BYTE
  3137	  5075	6513		L8A				/LOAD 8R<0:11>
  3138	  5076	1130		TAD	[2]			/GET L8B DATA BYTE
  3139	  5077	6514		L8B				/LOAD 8R<12:23>
  3140	  5100	1156		TAD	[3]			/GET L8C DATA BYTE
  3141	  5101	6515		L8C				/LOAD 8R<24:35>
  3142	  5102	6503		G8A				/READ BACK BYTE A
  3143	  5103	1164		TAD	[-1]			/COMPARE BYTE'S
  3144	  5104	7440		SZA				/SKP IF OK
  3145	  5105	5766'		JMP	DER110			/BYTE A READ BAD
  3146	  5106	6504		G8B				/READ BACK BYTE B
  3147	  5107	1143		TAD	[-2]			/COMPARE
  3148	  5110	7440		SZA				/SKP IF OK
  3149	  5111	5765'		JMP	DER111			/BYTE B BAD
  3150	  5112	6505		G8C				/READ BACK BYTE C
  3151	  5113	1154		TAD	[-3]			/COMPARE
  3152	  5114	7440		SZA				/SKP IF OK
  3153	  5115	5764'		JMP	DER112			/BYTE C BAD
  3154
  3155	  5116	5763'		JMP	TST12			/JUMP AROUND LITERALS TO TEST 12
  3156
  3157	  5163	5200
  3158	  5164	6361
  3159	  5165	6362
  3160	  5166	6363
  3161	  5167	6364
  3162	  5170	6365
  3163	  5171	6366
  3164	  5172	6367
  3165	  5173	6370
  3166	  5174	6371
  3167	  5175	6372
  3168	  5176	6373
  3169	  5177	0214
	  	5200		PAGE
/DX10 MICROCODE FOR STC MAGNETIC TAPE  VERSION #14  EDIT #0	PAL10 	V142A	30-DEC-77	8:46	PAGE 88
                                                                                                                           SEQ 0046
  3170	  			   /************************************************************
  3171	  			   /
  3172	  			   /	TEST 8R SELECTION INSTRUCTIONS
  3173	  			   /
  3174	  			   /************************************************************
  3175
  3176	  5200	4532	TST12,	JMS I	[CHKCON]		/CHK CONT AND GO TO TSTEND IF SET
  3177	  5201	7200		CLA				/RESET AC
  3178	  5202	6511		L8S				/SELECT 8R0
  3179	  5203	1131		TAD	[1]			/GET BYTE A
  3180	  5204	6515		L8C				/PUT INTO 8R0<24:35>
  3181	  5205	6557		I8S				/SELECT 8R1
  3182	  5206	1130		TAD	[2]			/GET BYTE B
  3183	  5207	6515		L8C				/PUT INTO 8R1<24:35>
  3184	  5210	6557		I8S				/SELECT 8R2
  3185	  5211	1156		TAD	[3]			/GET BYTE C
  3186	  5212	6515		L8C				/PUT INTO 8R2<24:35>
  3187	  5213	6557		I8S				/SELECT 8R3
  3188	  5214	1134		TAD	[4]			/GET BYTE D
  3189	  5215	6515		L8C				/PUT INTO 8R3<24:35>
  3190	  5216	6552		D8S				/SELECT 8R2
  3191	  5217	6505		G8C				/GET BYTE C
  3192	  5220	1154		TAD	[-3]			/COMPARE BYTE C
  3193	  5221	7440		SZA				/SKP IF OK
  3194	  5222	5777'		JMP	DER113			/8R2 SELECTION BAD
  3195	  5223	6552		D8S				/SELECT 8R1
  3196	  5224	6505		G8C				/GET BYTE B
  3197	  5225	1143		TAD	[-2]			/COMPARE BYTE B
  3198	  5226	7440		SZA				/SKP IF OK
  3199	  5227	5776'		JMP	DER114			/8R1 SELECTION IS BAD
  3200	  5230	6552		D8S				/SELECT 8R0
  3201	  5231	6505		G8C				/GET BYTE A
  3202	  5232	1164		TAD	[-1]			/COMPARE BYTE A
  3203	  5233	7440		SZA				/SKP IF OK
  3204	  5234	5775'		JMP	DER115			/SELECTION OF 8R0 BAD
  3205	  5235	6552		D8S				/SELECT 8R3
  3206	  5236	6505		G8C				/GET BYTE D
  3207	  5237	1136		TAD	[-4]			/COMPARE BYTE D
  3208	  5240	7440		SZA				/SKP IF OK
  3209	  5241	5774'		JMP	DER116			/WRAP AROUND SELECT BAD
  3210	  5242	6557		I8S				/SELECT 8R0
  3211	  5243	6505		G8C				/GET BYTE A
  3212	  5244	1164		TAD	[-1]			/COMPARE BYTE A
  3213	  5245	7440		SZA				/SKP IF OK
  3214	  5246	5773'		JMP	DER117			/WRAP AROUND SELECTION BAD
  3215	  5247	6557		I8S				/SELECT 8R1
  3216	  5250	6007		INT				/DO INIT OF DX10
  3217	  5251	6505		G8C				/GET BYTE A
  3218	  5252	1164		TAD	[-1]			/COMPARE
  3219	  5253	7440		SZA				/SKP IF OK
  3220	  5254	5772'		JMP	DER120			/INT INSTRUCTION DOESN'T SEL 8R0
/DX10 MICROCODE FOR STC MAGNETIC TAPE  VERSION #14  EDIT #0	PAL10 	V142A	30-DEC-77	8:46	PAGE 89
                                                                                                                           SEQ 0047
  3221
  3222	  			   /************************************************************
  3223	  			   /
  3224	  			   /	TEST DUMP MODE SKP READ THRU SILO TO DR
  3225	  			   /
  3226	  			   /************************************************************
  3227
  3228	  5255	4532	TST13,	JMS I	[CHKCON]		/CHECK CONTINUE AND GO TO TSTEND IF SET
  3229	  5256	1371		TAD	(CORDMP-1)		/GET COMPARE PNTR
  3230	  5257	4770'		JMS	SILLST			/SETUP SILO LIST
  3231	  5260	4767'		JMS	STBSLP			/SET LOOP BUS OUT TO BUS IN
  3232	  5261	7330		CLA STL RAR			/GEN 4000
  3233	  5262	6513		L8A				/PUT INTO 8R <0:11>
  3234	  5263	6514		L8B				/CLR OTHER BITS
  3235	  5264	6515		L8C
  3236	  5265	4766'		JMS	LDDAC			/LOAD DAC & BYTE CNT
  3237	  5266	1365		TAD	(DMPSKP)		/GET DUMP MODE SKIP CBC
  3238	  5267	6510		LCB				/LOAD IT
  3239	  5270	6502		STM				/KICK THE TIMER
  3240	  5271	1364		TAD	(-5)			/GET BYTE CNT
  3241	  5272	4763'		JMS	WSILO			/WRITE THE SILO
  3242	  5273	4762'		JMS	GETDR			/READ THE DR
  3243	  5274	4761'		JMS	CMP8R			/COMPARE IT WITH IN CORE PATTERN
  3244	  5275	5760'		JMP	DER121			/DUMP MODE DATA FAILURE(DR OR SILO)
  3245	  5276	4757'		JMS	CLBSLP			/CLR LOOP BUS OUT TO BUS IN
/DX10 MICROCODE FOR STC MAGNETIC TAPE  VERSION #14  EDIT #0	PAL10 	V142A	30-DEC-77	8:46	PAGE 90
                                                                                                                           SEQ 0048
  3246
  3247	  			   /************************************************************
  3248	  			   /
  3249	  			   /	TEST DUMP MODE SKP READ THRU SILO TO DR(SLOW CLK)
  3250	  			   /
  3251	  			   /************************************************************
  3252
  3253	  5277	4532	TST14,	JMS I	[CHKCON]		/CHECK CONTINUE AND GO TO TSTEND IF SET
  3254	  5300	6564		SSC				/SET THE SLOW CLOCK
  3255	  5301	1371		TAD	(CORDMP-1)		/GET COMPARE PNTR
  3256	  5302	4770'		JMS	SILLST			/SETUP SILO LIST
  3257	  5303	4767'		JMS	STBSLP			/SET LOOP BUS OUT TO BUS IN
  3258	  5304	7330		CLA STL RAR			/GEN 4000
  3259	  5305	6513		L8A				/PUT INTO 8R <0:11>
  3260	  5306	6514		L8B				/CLR OTHER BITS
  3261	  5307	6515		L8C
  3262	  5310	4766'		JMS	LDDAC			/LOAD DAC & BYTE CNT
  3263	  5311	1365		TAD	(DMPSKP)		/GET DUMP MODE SKIP CBC
  3264	  5312	6510		LCB				/LOAD IT
  3265	  5313	6502		STM				/KICK THE TIMER
  3266	  5314	1364		TAD	(-5)			/GET BYTE CNT
  3267	  5315	4763'		JMS	WSILO			/WRITE THE SILO
  3268	  5316	4762'		JMS	GETDR			/READ THE DR
  3269	  5317	4761'		JMS	CMP8R			/COMPARE IT WITH IN CORE PATTERN
  3270	  5320	5756'		JMP	DER122			/DUMP MODE DATA FAILURE(DR OR SILO)
  3271	  5321	4757'		JMS	CLBSLP			/CLR LOOP BUS OUT TO BUS IN
/DX10 MICROCODE FOR STC MAGNETIC TAPE  VERSION #14  EDIT #0	PAL10 	V142A	30-DEC-77	8:46	PAGE 91
                                                                                                                           SEQ 0049
  3272
  3273	  			   /************************************************************
  3274	  			   /
  3275	  			   /	TEST BYTE MODE SKP READ THRU SILO TO DR
  3276	  			   /
  3277	  			   /************************************************************
  3278
  3279	  5322	4532	TST15,	JMS I	[CHKCON]		/CHECK CONTINUE AND GO TO TSTEND IF SET
  3280	  5323	1355		TAD	(BYTMDE-1)		/GET COMPARE PNTR
  3281	  5324	4770'		JMS	SILLST			/SETUP SILO LIST
  3282	  5325	4767'		JMS	STBSLP			/SET LOOP BUS OUT TO BUS IN
  3283	  5326	7330		CLA STL RAR			/GEN 4000
  3284	  5327	6513		L8A				/PUT INTO 8R <0:11>
  3285	  5330	6514		L8B				/CLR OTHER BITS
  3286	  5331	6515		L8C
  3287	  5332	4766'		JMS	LDDAC			/LOAD DAC & BYTE CNT
  3288	  5333	1354		TAD	(BYTSKP)		/GET DUMP MODE SKIP CBC
  3289	  5334	6510		LCB				/LOAD IT
  3290	  5335	6502		STM				/KICK THE TIMER
  3291	  5336	1136		TAD	[-4]			/GET BYTE CNT
  3292	  5337	4763'		JMS	WSILO			/WRITE THE SILO
  3293	  5340	4762'		JMS	GETDR			/READ THE DR
  3294	  5341	4761'		JMS	CMP8R			/COMPARE IT WITH IN CORE PATTERN
  3295	  5342	5753'		JMP	DER123			/BYTE MODE DATA FAILURE(DR OR SILO)
  3296	  5343	4757'		JMS	CLBSLP			/CLR LOOP BUS OUT TO BUS IN
  3297	  5344	5752'		JMP	TST16			/JMP AROUND LITERALS
  3298
  3299	  5352	5400
  3300	  5353	6350
  3301	  5354	0550
  3302	  5355	6744
  3303	  5356	6351
  3304	  5357	6707
  3305	  5360	6352
  3306	  5361	6515
  3307	  5362	6446
  3308	  5363	6600
  3309	  5364	7773
  3310	  5365	0450
  3311	  5366	6505
  3312	  5367	6676
  3313	  5370	6641
  3314	  5371	6741
  3315	  5372	6353
  3316	  5373	6354
  3317	  5374	6355
  3318	  5375	6356
  3319	  5376	6357
  3320	  5377	6360
	  	5400		PAGE
/DX10 MICROCODE FOR STC MAGNETIC TAPE  VERSION #14  EDIT #0	PAL10 	V142A	30-DEC-77	8:46	PAGE 92
                                                                                                                           SEQ 0050
  3321
  3322	  			   /************************************************************
  3323	  			   /
  3324	  			   /	TEST BYTE MODE SKP READ THRU SILO TO DR(SLOW CLK)
  3325	  			   /
  3326	  			   /************************************************************
  3327
  3328	  5400	4532	TST16,	JMS I	[CHKCON]		/CHECK CONTINUE AND GO TO TSTEND IF SET
  3329	  5401	6564		SSC				/SET SLOW CLOCK
  3330	  5402	1377		TAD	(BYTMDE-1)		/GET COMPARE PNTR
  3331	  5403	4776'		JMS	SILLST			/SETUP SILO LIST
  3332	  5404	4775'		JMS	STBSLP			/SET LOOP BUS OUT TO BUS IN
  3333	  5405	7330		CLA STL RAR			/GEN 4000
  3334	  5406	6513		L8A				/PUT INTO 8R <0:11>
  3335	  5407	6514		L8B				/CLR OTHER BITS
  3336	  5410	6515		L8C
  3337	  5411	4774'		JMS	LDDAC			/LOAD DAC & BYTE CNT
  3338	  5412	1373		TAD	(BYTSKP)		/GET DUMP MODE SKIP CBC
  3339	  5413	6510		LCB				/LOAD IT
  3340	  5414	6502		STM				/KICK THE TIMER
  3341	  5415	1136		TAD	[-4]			/GET BYTE CNT
  3342	  5416	4772'		JMS	WSILO			/WRITE THE SILO
  3343	  5417	4771'		JMS	GETDR			/READ THE DR
  3344	  5420	4770'		JMS	CMP8R			/COMPARE IT WITH IN CORE PATTERN
  3345	  5421	5767'		JMP	DER124			/BYTE MODE DATA FAILURE(DR OR SILO)
  3346	  5422	4766'		JMS	CLBSLP			/CLR LOOP BUS OUT TO BUS IN
/DX10 MICROCODE FOR STC MAGNETIC TAPE  VERSION #14  EDIT #0	PAL10 	V142A	30-DEC-77	8:46	PAGE 93
                                                                                                                           SEQ 0051
  3347
  3348	  			   /************************************************************
  3349	  			   /
  3350	  			   /	TEST ASCIZ MODE SKP READ THRU SILO TO DR
  3351	  			   /
  3352	  			   /************************************************************
  3353
  3354	  5423	4532	TST17,	JMS I	[CHKCON]		/CHECK CONTINUE AND GO TO TSTEND IF SET
  3355	  5424	1365		TAD	(ASZMDE-1)		/GET COMPARE PNTR
  3356	  5425	4776'		JMS	SILLST			/SETUP SILO LIST
  3357	  5426	4775'		JMS	STBSLP			/SET LOOP BUS OUT TO BUS IN
  3358	  5427	7330		CLA STL RAR			/GEN 4000
  3359	  5430	6513		L8A				/PUT INTO 8R <0:11>
  3360	  5431	6514		L8B				/CLR OTHER BITS
  3361	  5432	6515		L8C
  3362	  5433	4774'		JMS	LDDAC			/LOAD DAC & BYTE CNT
  3363	  5434	1364		TAD	(ASZSKP)		/GET DUMP MODE SKIP CBC
  3364	  5435	6510		LCB				/LOAD IT
  3365	  5436	6502		STM				/KICK THE TIMER
  3366	  5437	1363		TAD	(-5)			/GET BYTE CNT
  3367	  5440	4772'		JMS	WSILO			/WRITE THE SILO
  3368	  5441	4771'		JMS	GETDR			/READ THE DR
  3369	  5442	4770'		JMS	CMP8R			/COMPARE IT WITH IN CORE PATTERN
  3370	  5443	5762'		JMP	DER125			/ASCIZ MODE DATA FAILURE(DR OR SILO)
  3371	  5444	4766'		JMS	CLBSLP			/CLR LOOP BUS OUT TO BUS IN
/DX10 MICROCODE FOR STC MAGNETIC TAPE  VERSION #14  EDIT #0	PAL10 	V142A	30-DEC-77	8:46	PAGE 94
                                                                                                                           SEQ 0052
  3372
  3373	  			   /************************************************************
  3374	  			   /
  3375	  			   /	TEST ASCIZ MODE SKP READ THRU SILO TO DR(SLOW CLK)
  3376	  			   /
  3377	  			   /************************************************************
  3378
  3379	  5445	4532	TST20,	JMS I	[CHKCON]		/CHECK CONTINUE AND GO TO TSTEND IF SET
  3380	  5446	6564		SSC				/SET SLOW CLOCK
  3381	  5447	1365		TAD	(ASZMDE-1)		/GET COMPARE PNTR
  3382	  5450	4776'		JMS	SILLST			/SETUP SILO LIST
  3383	  5451	4775'		JMS	STBSLP			/SET LOOP BUS OUT TO BUS IN
  3384	  5452	7330		CLA STL RAR			/GEN 4000
  3385	  5453	6513		L8A				/PUT INTO 8R <0:11>
  3386	  5454	6514		L8B				/CLR OTHER BITS
  3387	  5455	6515		L8C
  3388	  5456	4774'		JMS	LDDAC			/LOAD DAC & BYTE CNT
  3389	  5457	1364		TAD	(ASZSKP)		/GET DUMP MODE SKIP CBC
  3390	  5460	6510		LCB				/LOAD IT
  3391	  5461	6502		STM				/KICK THE TIMER
  3392	  5462	1363		TAD	(-5)			/GET BYTE CNT
  3393	  5463	4772'		JMS	WSILO			/WRITE THE SILO
  3394	  5464	4771'		JMS	GETDR			/READ THE DR
  3395	  5465	4770'		JMS	CMP8R			/COMPARE IT WITH IN CORE PATTERN
  3396	  5466	5761'		JMP	DER126			/ASCIZ MODE DATA FAILURE(DR OR SILO)
  3397	  5467	4766'		JMS	CLBSLP			/CLR LOOP BUS OUT TO BUS IN
/DX10 MICROCODE FOR STC MAGNETIC TAPE  VERSION #14  EDIT #0	PAL10 	V142A	30-DEC-77	8:46	PAGE 95
                                                                                                                           SEQ 0053
  3398
  3399	  			   /************************************************************
  3400	  			   /
  3401	  			   /	TEST SIXBIT MODE SKP READ THRU SILO TO DR
  3402	  			   /
  3403	  			   /************************************************************
  3404
  3405	  5470	4532	TST21,	JMS I	[CHKCON]		/CHECK CONTINUE AND GO TO TSTEND IF SET
  3406	  5471	1360		TAD	(SIXBIT-1)		/GET COMPARE PNTR
  3407	  5472	4776'		JMS	SILLST			/SETUP SILO LIST
  3408	  5473	4775'		JMS	STBSLP			/SET LOOP BUS OUT TO BUS IN
  3409	  5474	7330		CLA STL RAR			/GEN 4000
  3410	  5475	6513		L8A				/PUT INTO 8R <0:11>
  3411	  5476	6514		L8B				/CLR OTHER BITS
  3412	  5477	6515		L8C
  3413	  5500	4774'		JMS	LDDAC			/LOAD DAC & BYTE CNT
  3414	  5501	1357		TAD	(SIXSKP)		/GET DUMP MODE SKIP CBC
  3415	  5502	6510		LCB				/LOAD IT
  3416	  5503	6502		STM				/KICK THE TIMER
  3417	  5504	1356		TAD	(-6)			/GET BYTE CNT
  3418	  5505	4772'		JMS	WSILO			/WRITE THE SILO
  3419	  5506	4771'		JMS	GETDR			/READ THE DR
  3420	  5507	4770'		JMS	CMP8R			/COMPARE IT WITH IN CORE PATTERN
  3421	  5510	5755'		JMP	DER127			/SIXBIT MODE DATA FAILURE(DR OR SILO)
  3422	  5511	4766'		JMS	CLBSLP			/CLR LOOP BUS OUT TO BUS IN
/DX10 MICROCODE FOR STC MAGNETIC TAPE  VERSION #14  EDIT #0	PAL10 	V142A	30-DEC-77	8:46	PAGE 96
                                                                                                                           SEQ 0054
  3423
  3424	  			   /************************************************************
  3425	  			   /
  3426	  			   /	TEST SIXBIT MODE SKP READ THRU SILO TO DR(SLOW CLOCK)
  3427	  			   /
  3428	  			   /************************************************************
  3429
  3430	  5512	4532	TST22,	JMS I	[CHKCON]		/CHECK CONTINUE AND GO TO TSTEND IF SET
  3431	  5513	6564		SSC				/SET THE SLOW CLOCK
  3432	  5514	1360		TAD	(SIXBIT-1)		/GET COMPARE PNTR
  3433	  5515	4776'		JMS	SILLST			/SETUP SILO LIST
  3434	  5516	4775'		JMS	STBSLP			/SET LOOP BUS OUT TO BUS IN
  3435	  5517	7330		CLA STL RAR			/GEN 4000
  3436	  5520	6513		L8A				/PUT INTO 8R <0:11>
  3437	  5521	6514		L8B				/CLR OTHER BITS
  3438	  5522	6515		L8C
  3439	  5523	4774'		JMS	LDDAC			/LOAD DAC & BYTE CNT
  3440	  5524	1357		TAD	(SIXSKP)		/GET DUMP MODE SKIP CBC
  3441	  5525	6510		LCB				/LOAD IT
  3442	  5526	6502		STM				/KICK THE TIMER
  3443	  5527	1356		TAD	(-6)			/GET BYTE CNT
  3444	  5530	4772'		JMS	WSILO			/WRITE THE SILO
  3445	  5531	4771'		JMS	GETDR			/READ THE DR
  3446	  5532	4770'		JMS	CMP8R			/COMPARE IT WITH IN CORE PATTERN
  3447	  5533	5754'		JMP	DER130			/SIXBIT MODE DATA FAILURE(DR OR SILO)
  3448	  5534	4766'		JMS	CLBSLP			/CLR LOOP BUS OUT TO BUS IN
  3449	  5535	5753'		JMP	TST23			/GO AROUND LITERALS
  3450
  3451	  5553	5600
  3452	  5554	6343
  3453	  5555	6344
  3454	  5556	7772
  3455	  5557	0750
  3456	  5560	6752
  3457	  5561	6345
  3458	  5562	6346
  3459	  5563	7773
  3460	  5564	0650
  3461	  5565	6747
  3462	  5566	6707
  3463	  5567	6347
  3464	  5570	6515
  3465	  5571	6446
  3466	  5572	6600
  3467	  5573	0550
  3468	  5574	6505
  3469	  5575	6676
  3470	  5576	6641
  3471	  5577	6744
	  	5600		PAGE
/DX10 MICROCODE FOR STC MAGNETIC TAPE  VERSION #14  EDIT #0	PAL10 	V142A	30-DEC-77	8:46	PAGE 97
                                                                                                                           SEQ 0055
  3472
  3473	  			   /************************************************************
  3474	  			   /
  3475	  			   /	TEST BYTE COUNTER OVERFLOW LOGIC
  3476	  			   /
  3477	  			   /************************************************************
  3478
  3479	  5600	4532	TST23,	JMS I	[CHKCON]		/CHECK CONTINUE AND GO TO TSTEND IF SET
  3480	  5601	4777'		JMS	STBSLP			/SET LOOP BUS OUT TO BUS IN
  3481	  5602	7240		CLA CMA				/GEN 7777
  3482	  5603	6513		L8A				/PUT INTO 8R <0:11>
  3483	  5604	6514		L8B				/CLR OTHER BITS
  3484	  5605	6515		L8C
  3485	  5606	4776'		JMS	LDDAC			/LOAD DAC & BYTE CNT
  3486	  5607	1375		TAD	(SIXSKP)		/GET DUMP MODE SKIP CBC
  3487	  5610	6510		LCB				/LOAD IT
  3488	  5611	6502		STM				/KICK THE TIMER
  3489	  5612	1136		TAD	[-4]			/GET BYTE CNT
  3490	  5613	4774'		JMS	WSILO			/WRITE THE SILO
  3491	  5614	6521		TBD				/SKP ON BYTE OVERFLOW
  3492	  5615	5773'		JMP	DER131			/BYTE COUNTER DIDN'T OVERFLOW
  3493	  5616	6003		SRQ				/SKP ON INTERRUPT REQ
  3494	  5617	5772'		JMP	DER132			/OVERFLOW DIDN'T CAUSE INTERRUPT
  3495	  5620	4776'		JMS	LDDAC			/RELOAD BYTE COUNT
  3496	  5621	6003		SRQ				/SKP IF STILL OVERFLOW
  3497	  5622	7410		SKP				/OVERFLOW WAS CLR'D
  3498	  5623	5771'		JMP	DER133			/RELOADING BYTE COUNTER DIDN'T CLR INT
  3499	  5624	4770'		JMS	CLBSLP			/CLR LOOP BUS OUT TO BUS IN
/DX10 MICROCODE FOR STC MAGNETIC TAPE  VERSION #14  EDIT #0	PAL10 	V142A	30-DEC-77	8:46	PAGE 98
                                                                                                                           SEQ 0056
  3500	  			   /************************************************************
  3501	  			   /
  3502	  			   /	TEST CPC FOR HOLDING DATA
  3503	  			   /
  3504	  			   /************************************************************
  3505
  3506	  5625	4532	TST24,	JMS I	[CHKCON]		/CHECK CONTINUE AND GO TO TSTEND IF SET
  3507	  5626	4767'		JMS	SETLST			/SETUP PATTERN LIST
  3508	  5627	1136		TAD	[-4]			/GET PATTERN COUNT
  3509	  5630	3043		DCA	ICNT			/SAVE IT
  3510	  5631	7200	T24A,	CLA				/RESET AC
  3511	  5632	6511		L8S				/SELECT 8R0
  3512	  5633	4766'		JMS	LD8R			/LOAD THE 8R WITH DATA PATTERN
  3513	  5634	4765'		JMS	LDCPC			/LOAD THE CPC
  3514	  5635	6557		I8S				/SELECT 8R1
  3515	  5636	4764'		JMS	GETCPC			/GET THE CPC BACK
  3516	  5637	4763'		JMS	CMP8R			/DO DATA COMPARE
  3517	  5640	5762'		JMP	DER134			/CPC DATA FAILURE
  3518	  5641	2043		ISZ	ICNT			/UPDATE CNT
  3519	  5642	5231		JMP	T24A			/LOOP FOR MORE DATA TEST
/DX10 MICROCODE FOR STC MAGNETIC TAPE  VERSION #14  EDIT #0	PAL10 	V142A	30-DEC-77	8:46	PAGE 99
                                                                                                                           SEQ 0057
  3520
  3521	  			   /************************************************************
  3522	  			   /
  3523	  			   /	TEST DAC FOR HOLDING DATA
  3524	  			   /
  3525	  			   /************************************************************
  3526
  3527	  5643	4532	TST25,	JMS I	[CHKCON]		/CHECK CONTINUE AND GO TO TSTEND IF SET
  3528	  5644	4767'		JMS	SETLST			/SETUP PATTERN LIST
  3529	  5645	1136		TAD	[-4]			/GET PATTERN COUNT
  3530	  5646	3043		DCA	ICNT			/SAVE IT
  3531	  5647	7200	T25A,	CLA				/RESET AC
  3532	  5650	6511		L8S				/SELECT 8R0
  3533	  5651	4766'		JMS	LD8R			/LOAD THE 8R WITH DATA PATTERN
  3534	  5652	4776'		JMS	LDDAC			/LOAD THE DAC
  3535	  5653	6557		I8S				/SELECT 8R1
  3536	  5654	4761'		JMS	GETDAC			/GET THE DAC BACK
  3537	  5655	4763'		JMS	CMP8R			/DO DATA COMPARE
  3538	  5656	5760'		JMP	DER135			/DAC DATA FAILURE
  3539	  5657	2043		ISZ	ICNT			/UPDATE CNT
  3540	  5660	5247		JMP	T25A			/LOOP FOR MORE DATA TEST
  3541
  3542
  3543	  5661	4532		JMS I	[CHKCON]		/CHECK CONTINUE
  3544	  5662	1051		TAD	LOOPER			/GET LOOPER FLAG
  3545	  5663	7650		SNA CLA				/SKIP IF SET
  3546	  5664	5757'		JMP	TSTEND			/GO TO END OF TEST
  3547	  5665	1053		TAD	ONETIM			/GET ONE TIME DIAGNOSTIC FLAG
  3548	  5666	7650		SNA CLA				/SKIP IF SET
  3549	  5667	5756'		JMP	TST26			/NO, GO ON TO NEXT TEST
  3550	  5670	5757'		JMP	TSTEND			/END THE TESTS NOW
  3551
  3552	  5756	6000
  3553	  5757	6265
  3554	  5760	6336
  3555	  5761	6475
  3556	  5762	6337
  3557	  5763	6515
  3558	  5764	6465
  3559	  5765	6455
  3560	  5766	6436
  3561	  5767	6430
  3562	  5770	6707
  3563	  5771	6340
  3564	  5772	6341
  3565	  5773	6342
  3566	  5774	6600
  3567	  5775	0750
  3568	  5776	6505
  3569	  5777	6676
	  	6000		PAGE
/DX10 MICROCODE FOR STC MAGNETIC TAPE  VERSION #14  EDIT #0	PAL10 	V142A	30-DEC-77	8:46	PAGE 100
                                                                                                                           SEQ 0058
  3570	  			   /************************************************************
  3571	  			   /
  3572	  			   /	TEST CONNECTION TO TX01 BY PERFORMING A SENSE COMMAND
  3573	  			   /
  3574	  			   /	NOTE: THIS TEST IS NOT RUN WHEN CALLED
  3575	  			   /	      FROM IDLE LOOP
  3576	  			   /
  3577	  			   /************************************************************
  3578
  3579	  6000	4532	TST26,	JMS I	[CHKCON]		/SET LOOP ADDRESS
  3580	  6001	4777'		JMS	RESETB			/PERFORM A SYSTEM RESET
  3581	  6002	6502	TST26R,	STM				/KICK THE TIMER
  3582	  6003	6517		LBO				/LOAD DEVICE ADDRESS 0
  3583	  6004	6571		SAD				/SET ADDRESS OUT
  3584	  6005	6575		SHL				/SET HOLD OUT
  3585	  6006	6576		SSE				/SET SELECT OUT
  3586	  6007	6502		STM				/KICK THE TIMER
  3587	  6010	6507		GTI				/READ TAG IN LINES
  3588	  6011	0162		AND	[STATIN+OPRIN+SELIN]	/CLEAR ALL BUT NORMAL RESPONSE LINES
  3589	  6012	7450		SNA				/SKIP IF ANY ARE SET
  3590	  6013	5776'		JMP	DER136			/CONTROL UNIT DID NOT RESPOND TO SELECTION SEQUENCE
  3591	  6014	0130		AND	[SELIN]			/KEEP ONLY SELECT IN
  3592	  6015	7440		SZA				/SKIP IF NOT SELECT IN IN RESPONSE
  3593	  6016	5775'		JMP	DER137			/CONTROL UNIT DID NOT DECODE DEVICE ADDRESS 0
  3594	  							/OR CONTROL UNIT IS OFF-LINE
  3595	  6017	6507		GTI				/READ TAG IN LINES
  3596	  6020	0134		AND	[OPRIN]			/KEEP ONLY OPERATIONAL IN
  3597	  6021	7450		SNA				/SKIP IF RESPONSE WAS OPERATIONAL IN
  3598	  6022	5774'		JMP	TST26B			/SERVICE SHORT BUSY SEQUENCE
  3599	  6023	6531		CAD				/CLEAR ADDRESS OUT
  3600	  6024	6502		STM				/KICK THE TIMER
  3601	  6025	6507		GTI				/READ TAG IN LINES
  3602	  6026	0127		AND	[ADRIN]			/KEEP ONLY ADDRESS IN
  3603	  6027	7450		SNA				/SKIP IF ADDRESS IN SET
  3604	  6030	5773'		JMP	DER140			/ADDRESS IN DID NOT SET IN SELECTION SEQUENCE
  3605	  6031	6541		TBP				/TEST BUS PARITY
  3606	  6032	5772'		JMP	DER141			/BAD PARITY ON BUS IN WITH ADDRESS IN PRESENTED
  3607	  6033	6506		GBI				/READ BUS IN LINES
  3608	  6034	7440		SZA				/SKIP IF BUS IN LINES ARE ALL ZERO
  3609	  6035	5771'		JMP	DER142			/NOT ZERO ADDRESS RECEIVED WHEN ATTEMPTED TO
  3610	  							/SELECT UNIT ZERO
/DX10 MICROCODE FOR STC MAGNETIC TAPE  VERSION #14  EDIT #0	PAL10 	V142A	30-DEC-77	8:46	PAGE 101
                                                                                                                           SEQ 0059
  3611	  6036	1134		TAD	[SNS]			/GET SENSE COMMAND CODE
  3612	  6037	6517		LBO				/PUT SENSE COMMAND ON BUS
  3613	  6040	6572		SCM				/SET COMMAND OUT
  3614	  6041	7000		NOP				/STALL
  3615	  6042	6502		STM				/KICK THE TIMER
  3616	  6043	6507		GTI				/READ TAG IN LINES
  3617	  6044	0127		AND	[ADRIN]			/KEEP ONLY ADDRESS IN
  3618	  6045	7440		SZA				/SKIP IF ADDRESS IN DROPPED
  3619	  6046	5770'		JMP	DER143			/ADDRESS IN DID NOT DROP DURING SELECTION SEQUENCE
  3620	  6047	6532		CCM				/CLEAR COMMAND OUT
  3621	  6050	7000		NOP				/STALL
  3622	  6051	7000		NOP				/STALL
  3623	  6052	6502		STM				/KICK THE TIMER
  3624	  6053	6507		GTI				/READ TAG IN LINES
  3625	  6054	0126		AND	[STATIN]		/KEEP ONLY STATUS IN
  3626	  6055	7450		SNA				/SKIP IF STATUS IN SET
  3627	  6056	5767'		JMP	DER144			/STATUS IN DID NOT SET DURING TEST IO COMMAND
  3628	  6057	6541		TBP				/TEST BUS PARITY
  3629	  6060	5766'		JMP	DER145			/BAD PARITY ON BUS IN WITH STATUS BYTE PRESENTED
  3630	  6061	6506		GBI				/READ BUS IN LINES
  3631	  6062	7440		SZA				/SKIP IF STATUS BYTE IS ZERO
  3632	  6063	5765'		JMP	DER146			/NON-ZERO INITIAL STATUS BYTE PRESENTED IN SENSE COMMAND
  3633	  6064	6573		SVA				/SET SERVICE OUT
  3634	  6065	7000		NOP				/STALL
  3635	  6066	6502		STM				/KICK THE TIMER
  3636	  6067	6507		GTI				/READ TAG IN LINES
  3637	  6070	0126		AND	[STATIN]		/KEEP ONLY STATUS IN
  3638	  6071	7440		SZA				/SKIP IF STATUS IN DROPPED
  3639	  6072	5764'		JMP	DER147			/STATUS IN DID NOT DROP WHEN SERVICE OUT WAS SET
  3640	  							/DURING PRESENTATION OF STATUS BYTE
  3641	  6073	6533		CSV				/CLEAR SERVICE OUT
  3642	  6074	1125		TAD	[-30]			/GET COUNT OF SENSE BYTES
  3643	  6075	3030		DCA	TEMP			/PUT IN MEMORY
  3644	  6076	1150		TAD	[SBYT00-1]		/GET ADDRESS OF STORAGE TABLE
  3645	  6077	3010		DCA	10			/PUT IN AUTO-INDEX REGISTER
  3646
  3647	  6100	6507	TST26A,	GTI				/READ TAG IN LINES
  3648	  6101	7002		BSW				/MOVE SERVICE IN TO BIT 0
  3649	  6102	7500		SMA				/SKIP IF SET
  3650	  6103	5763'		JMP	DER150			/SRV IN DID NOT SET PRESENTING A SENSE BYTE
  3651	  6104	6541		TBP				/GET PARITY ON BUS IN
  3652	  6105	5762'		JMP	DER151			/PARITY ERROR ON BUS IN LINES WHILE READING A SENSE BYTE
  3653	  6106	6506		GBI				/READ SENSE BYTE
  3654	  6107	3410		DCA I	10			/PUT SENSE BYTE INTO TABLE
  3655	  6110	6573		SVA				/SET SERVICE OUT
  3656	  6111	6502		STM				/KICK THE TIMER
  3657	  6112	6507		GTI				/READ TAG IN LINES
  3658	  6113	7002		BSW				/MOVE SERVICE IN TO BIT 0
  3659	  6114	7510		SPA				/SKIP IF CLEAR
  3660	  6115	5761'		JMP	DER152			/SERVICE IN DID NOT DROP IN RESPONSE TO SERVICE OUT
  3661	  							/DURING PRESENTATION OF SENSE BYTES
/DX10 MICROCODE FOR STC MAGNETIC TAPE  VERSION #14  EDIT #0	PAL10 	V142A	30-DEC-77	8:46	PAGE 102
                                                                                                                           SEQ 0060
  3662	  6116	6533		CSV				/CLEAR SERVICE OUT
  3663	  6117	2030		ISZ	TEMP			/COUTN THE SENSE BYTES
  3664	  6120	5300		JMP	TST26A			/GO BACK FOR ANOTHER SENSE BYTE
  3665
  3666	  6121	6507		GTI				/READ TAG IN LINES
  3667	  6122	0126		AND	[STATIN]		/KEEP ONLY STATUS IN
  3668	  6123	7450		SNA				/SKIP IF STATUS IN SET
  3669	  6124	5760'		JMP	DER153			/STATUS IN DID OT SET AFTER PRESENTING 24 SENSE BYTES
  3670	  6125	6541		TBP				/CHECK BUS IN PARITY
  3671	  6126	5757'		JMP	DER154			/PARITY ERROR IN STATUS BYTE AFTER SENSE COMMAND
  3672	  6127	6573		SVA				/SET SERVICE OUT
  3673	  6130	6502		STM				/KICK THE TIMER
  3674	  6131	6507		GTI				/READ TAG IN LINES
  3675	  6132	0126		AND	[STATIN]		/KEEP ONLY STATUS IN
  3676	  6133	7440		SZA				/SKIP IF STATUS IN CLEARED
  3677	  6134	5756'		JMP	DER155			/STATUS IN DID NOT DROP AFTER PRESENTING ENDING STATUS
  3678	  							/IN SENSE COMMAND
  3679	  6135	6533		CSV				/CLEAR SERVICE OUT
  3680	  6136	6536		CSE				/CLEAR SELECT OUT
  3681	  6137	6535		CHL				/CLEAR HOLD OUT
  3682	  6140	6502		STM				/KICK THE TIMER
  3683	  6141	6507		GTI				/READ TAG IN LINES
  3684	  6142	0134		AND	[OPRIN]			/KEEP ONLY OPERATIONAL IN
  3685	  6143	7440		SZA				/SKIP IF OPERATIONAL IN DROPPED
  3686	  6144	5755'		JMP	DER156			/OPERATIONAL IN DID NOT DROP AFTER SENSE COMMAND
  3687	  6145	4532		JMS I	[CHKCON]		/CHECK IF TO LOOP
  3688	  6146	5754'		JMP	TSTEND			/EXIT THE TESTS
  3689
  3690	  6154	6265
  3691	  6155	6315
  3692	  6156	6316
  3693	  6157	6317
  3694	  6160	6320
  3695	  6161	6321
  3696	  6162	6322
  3697	  6163	6323
  3698	  6164	6324
  3699	  6165	6325
  3700	  6166	6326
  3701	  6167	6327
  3702	  6170	6330
  3703	  6171	6331
  3704	  6172	6332
  3705	  6173	6333
  3706	  6174	6200
  3707	  6175	6334
  3708	  6176	6335
  3709	  6177	0330
	  	6200		PAGE
/DX10 MICROCODE FOR STC MAGNETIC TAPE  VERSION #14  EDIT #0	PAL10 	V142A	30-DEC-77	8:46	PAGE 103
                                                                                                                           SEQ 0061
  3710	  6200	6536	TST26B,	CSE				/CLEAR SELECT OUT
  3711	  6201	6535		CHL				/CLEAR HOLD OUT
  3712	  6202	6531		CAD				/CLEAR ADDRESS OUT
  3713	  6203	3030		DCA	TEMP			/CLEAR TEMP LOCATION
  3714	  6204	6507	TST26C,	GTI				/READ TAG IN LINES
  3715	  6205	0131		AND	[REQIN]			/KEEP ONLY REQ IN
  3716	  6206	7440		SZA				/SKIP IF NOT YET SET
  3717	  6207	5214		JMP	TST26D			/IT SET, SELECT THE UNIT
  3718	  6210	6502		STM				/KICK THE TIMER
  3719	  6211	2030		ISZ	TEMP			/INCREMENT WAIT TIME
  3720	  6212	5204		JMP	TST26C			/KEEP WAITING
  3721	  6213	5314		JMP	DER157			/REQUEST IN NEVER SET AFTER SHORT BUSY SEQUENCE
  3722
  3723	  6214	6575	TST26D,	SHL				/SET HOLD OUT
  3724	  6215	6576		SSE				/SET SELECT OUT
  3725	  6216	6502		STM				/KICK THE TIMER
  3726	  6217	6507		GTI				/READ TAG IN LINES
  3727	  6220	0127		AND	[ADRIN]			/KEEP ONLY ADDRESS IN
  3728	  6221	7450		SNA				/SKIP IF SET
  3729	  6222	5313		JMP	DER160			/ADDRESS IN DID NOT SET IN CU INITIATED SELECTION SEQUENCE
  3730	  6223	6541		TBP				/CHECK BUS IN PARITY
  3731	  6224	5312		JMP	DER161			/PARITY ERROR ON BUS IN LINES WHILE READING ADDRESS
  3732	  6225	6506		GBI				/READ ADDRESS
  3733	  6226	7440		SZA				/SKIP IF ADDRESS IS ZERO
  3734	  6227	5311		JMP	DER162			/NON-ZERO ADDRESS PRESENTED IN CU INITIATED SELECTION SEQUENCE
  3735	  6230	6572		SCM				/SET COMMAND OUT
  3736	  6231	7000		NOP				/STALL
  3737	  6232	6507		GTI				/READ TAG IN LINES
  3738	  6233	0127		AND	[ADRIN]			/KEEP ONLY ADDRESS IN
  3739	  6234	7440		SZA				/SKIP IF CLEARED
  3740	  6235	5310		JMP	DER163			/ADDRESS IN DID NOT DROP IN CU INITIATED SELECTION SEQUENCE
  3741	  6236	6532		CCM				/CLEAR COMMAND OUT
  3742	  6237	6502		STM				/KICK THE TIMER
  3743	  6240	7000		NOP				/STALL
  3744	  6241	7000		NOP
  3745	  6242	6507		GTI				/READ TAG IN LINES
  3746	  6243	0126		AND	[STATIN]		/KKEEP ONLY STATUS IN
  3747	  6244	5307		JMP	DER164			/STATUS IN DID NOT SET IN CU INITIATED SELECTION SEQUENCE
  3748	  6245	6573		SVA				/SET SERVICE OUT
  3749	  6246	6502		STM				/KICK THE TIMER
  3750	  6247	7000		NOP				/STALL
  3751	  6250	6507		GTI				/READ TAG IN LINES
  3752	  6251	0126		AND	[STATIN]		/KEEP ONLY STATUS IN
  3753	  6252	7440		SZA				/SKIP IF CLEARED
  3754	  6253	5306		JMP	DER165			/STATUS IN DID NOT DROP IN CU INITIATED SELECTION SEQUENCE
  3755	  6254	6536		CSE				/CLEAR SELECT OUT
  3756	  6255	6535		CHL				/CLEAR HOLD OUT
  3757	  6256	6533		CSV				/CLEAR SERVICE OUT
  3758	  6257	7000		NOP				/STALL
  3759	  6260	6507		GTI				/READ TAG IN LINES
  3760	  6261	0134		AND	[OPRIN]			/KEEP ONLY OPERATIONAL IN
  3761	  6262	7440		SZA				/SKIP IF CLEARED
  3762	  6263	5305		JMP	DER166			/OPR IN DID NOT DROP AFTER CU INITIATED SELECTION SEQUENCE
  3763	  6264	5777'		JMP	TST26R			/TRY SENSE COMMAND AGAIN
/DX10 MICROCODE FOR STC MAGNETIC TAPE  VERSION #14  EDIT #0	PAL10 	V142A	30-DEC-77	8:46	PAGE 104
                                                                                                                           SEQ 0062
  3764	  			   /************************************************************
  3765	  			   /
  3766	  			   /	END OF SELF TESTING
  3767	  			   /
  3768	  			   /************************************************************
  3769
  3770
  3771	  6265	6007	TSTEND,	INT				/INITIALIZE DX10
  3772	  6266	1042		TAD	T3			/GET BYTE C
  3773	  6267	6515		L8C
  3774	  6270	1041		TAD	T2			/GET BYTE G
  3775	  6271	6514		L8B
  3776	  6272	1040		TAD	T1			/GET BYTE A
  3777	  6273	6513		L8A
  3778	  6274	7307		CLA IAC CLL RTL			/GET CPC ADDRESS
  3779	  6275	7125		STL IAC RAL			/SELECT
  3780	  6276	6516		LIS				/ON IBUS
  3781	  6277	6554		LIR				/LOAD <18:35>
  3782	  6300	6516		LIS				/SELECT <14:17>
  3783	  6301	6553		LIL				/LOAD THOSE BITS
  3784	  6302	5776'		JMP	TSTEXT			/EXIT
/DX10 MICROCODE FOR STC MAGNETIC TAPE  VERSION #14  EDIT #0	PAL10 	V142A	30-DEC-77	8:46	PAGE 105
                                                                                                                           SEQ 0063
  3785	  			   /************************************************************
  3786	  			   /
  3787	  			   /	DIAGNOSTIC ERROR HANDLER
  3788	  			   /
  3789	  			   /************************************************************
  3790
  3791	  6303	2005	DER170,	ISZ	ECODE			/SERVICE OUT DIDN'T CLEAR WHILE TRANSFERRING DATA
  3792	  							/IN TESTS 17 - 23
  3793	  6304	2005	DER167,	ISZ	ECODE			/SERVICE OUT DIDN'T SET WHILE TRANSFERRING DATA
  3794	  							/IN TESTS 17 - 23
  3795	  6305	2005	DER166,	ISZ	ECODE			/OPR IN DID NOT DROP AFTER CU INITIATED SELECTION SEQUENCE
  3796	  6306	2005	DER165,	ISZ	ECODE			/STATUS IN DID NOT DROP IN CU INITIATED SELECTION SEQUENCE
  3797	  6307	2005	DER164,	ISZ	ECODE			/STATUS IN DID NOT SET IN CU INITIATED SELECION SEQUENCE
  3798	  6310	2005	DER163,	ISZ	ECODE			/ADDRESS IN DID NOT DROP IN CU INITIATED SELECTION SEQUENCE
  3799	  6311	2005	DER162,	ISZ	ECODE			/NON-ZERO ADDRESS PRESENTED IN CU INITIATED SELECTION SEQUENCE
  3800	  6312	2005	DER161,	ISZ	ECODE			/PARITY ERROR ON BUS IN WHILE READING ADDRESS
  3801	  							/IN CU INITIATED SELECTION SEQUENCE
  3802	  6313	2005	DER160,	ISZ	ECODE			/ADDRESS IN DID NOT SET IN CU INITIATED SEQUENCE
  3803	  6314	2005	DER157,	ISZ	ECODE			/REQUEST IN NEVER SET AFTER SHORT BUSY SEQUENCE
  3804	  6315	2005	DER156,	ISZ	ECODE			/OPERATIONAL IN DID NOT DROP AFTER SENSE COMMAND
  3805	  6316	2005	DER155,	ISZ	ECODE			/STATUS IN DID NOT DROP AFTER PRESENTING ENDING STATUS
  3806	  							/IN SENSE COMMAND
  3807	  6317	2005	DER154,	ISZ	ECODE			/PARITY ERROR IN STATUS BYTE AFTER SENSE COMMAND
  3808	  6320	2005	DER153,	ISZ	ECODE			/STATUS IN DID NOT SET AFTER PRESENTING 24 SENSE BYTES
  3809	  6321	2005	DER152,	ISZ	ECODE			/SERVICE IN DID NOT DROP IN RESPONSE TO SERVICE OUT
  3810	  							/DURING PRESENTATION OF SENSE BYTE
  3811	  6322	2005	DER151,	ISZ	ECODE			/PARITY ERROR ON BUS IN WHILE READING A SENSE BYTE
  3812	  6323	2005	DER150,	ISZ	ECODE			/SRV IN DID NOT SET PRESENTING A SENSE BYTE
  3813	  6324	2005	DER147,	ISZ	ECODE			/STATUS IN DID NOT DROP WHEN SERVICE OUT WAS SET
  3814	  							/DURING PRESENTATION OF STUTUS BYTE
  3815	  6325	2005	DER146,	ISZ	ECODE			/INITIAL STATUS BYTE WAS NON-ZERO IN SENSE COMMAND
  3816	  6326	2005	DER145,	ISZ	ECODE			/BAD PARITY ON BUS IN WITH STATUS BYTE PRESENTED
  3817	  6327	2005	DER144,	ISZ	ECODE			/STATUS IN DID NOT SET DURING SELECTIONS SEQUENCE
  3818	  6330	2005	DER143,	ISZ	ECODE			/ADDRESS IN DID NOT DROP DURING SELECTION SEQUENCE
  3819	  6331	2005	DER142,	ISZ	ECODE			/NOT ZERO ADDRESS RECEIVED WHEN ATTEMPTED TO SELECT UNIT ZERO
  3820	  6332	2005	DER141,	ISZ	ECODE			/BAD PARITY ON BUS IN WITH ADDRESS IN PRESENTED
  3821	  6333	2005	DER140,	ISZ	ECODE			/ADDRESS IN DID NOT SET IN SELECTION SEQUENCE
  3822	  6334	2005	DER137,	ISZ	ECODE			/CONTROL UNIT DID NOT RESPOND TO DEVICE ADDRESS 0
  3823	  6335	2005	DER136,	ISZ	ECODE			/CONTROL UNIT DID NOT RESPOND TO SELECTION SEQUENCE
  3824	  6336	2005	DER135,	ISZ	ECODE			/DAC DATA FAILURE
  3825	  6337	2005	DER134,	ISZ	ECODE			/CPC DATA FAILURE
  3826	  6340	2005	DER133,	ISZ	ECODE			/INTERRUPT CONDITION DIDN'T CLR
  3827	  6341	2005	DER132,	ISZ	ECODE			/OVERFLOW DIDN'T CAUSE INTERRUPT
  3828	  6342	2005	DER131,	ISZ	ECODE			/BYTE COUNTER DIDN'T OVERFLOW
  3829	  6343	2005	DER130,	ISZ	ECODE			/SKP READ IN SIXBIT FAILED(SLOW CLK)
  3830	  6344	2005	DER127,	ISZ	ECODE			/SKP READ IN SIXBIT FAILED
  3831	  6345	2005	DER126,	ISZ	ECODE			/SKP READ IN ASCIZ FAILED(SLOW CLK)
  3832	  6346	2005	DER125,	ISZ	ECODE			/SKP READ IN ASCIZ FAILED
  3833	  6347	2005	DER124,	ISZ	ECODE			/SKP READ IN BYTE FAILED(SLOW CLK)
  3834	  6350	2005	DER123,	ISZ	ECODE			/SKP READ IN BYTE FAILED
  3835	  6351	2005	DER122,	ISZ	ECODE			/SKP READ IN DUMP FAILED(SLOW CLK)
  3836	  6352	2005	DER121,	ISZ	ECODE			/SKP READ IN DUMP FAILED
  3837	  6353	2005	DER120,	ISZ	ECODE			/INT DIDN'T SELECT 8R0
/DX10 MICROCODE FOR STC MAGNETIC TAPE  VERSION #14  EDIT #0	PAL10 	V142A	30-DEC-77	8:46	PAGE 106
                                                                                                                           SEQ 0064
  3838	  6354	2005	DER117,	ISZ	ECODE			/WRAP AROUND SELECT OF 8R0 BAD
  3839	  6355	2005	DER116,	ISZ	ECODE			/WRAP AROUND SELECT OF 8R3 BAD
  3840	  6356	2005	DER115,	ISZ	ECODE			/8R0 SELECTION BAD
  3841	  6357	2005	DER114,	ISZ	ECODE			/8R1 SELECTION BAD
  3842	  6360	2005	DER113,	ISZ	ECODE			/8R2 SELECTION BAD
  3843	  6361	2005	DER112,	ISZ	ECODE			/8R BYTE C READ BAD
  3844	  6362	2005	DER111,	ISZ	ECODE			/8R BYTE B READ BAD
  3845	  6363	2005	DER110,	ISZ	ECODE			/8R BYTE A READ BAD
  3846	  6364	2005	DER107,	ISZ	ECODE			/L8A DIDN'T CLR AC
  3847	  6365	2005	DER106,	ISZ	ECODE			/L8B DIDN'T CLR AC
  3848	  6366	2005	DER105,	ISZ	ECODE			/L8C DIDN'T CLR AC
  3849	  6367	2005	DER104,	ISZ	ECODE			/LCB DIDN'T CLR AC
  3850	  6370	2005	DER103,	ISZ	ECODE			/L8S DIDN'T CLR AC
  3851	  6371	2005	DER102,	ISZ	ECODE			/INT DIDN'T CLR AC
  3852	  6372	2005	DER101,	ISZ	ECODE			/STM DIDN'T CLR AC
  3853	  6373	5775'	DER100,	JMP	DERROR			/LBO DIDN'T CLR AC
  3854
  3855	  6375	6400
  3856	  6376	5013
  3857	  6377	6002
	  	6400		PAGE
/DX10 MICROCODE FOR STC MAGNETIC TAPE  VERSION #14  EDIT #0	PAL10 	V142A	30-DEC-77	8:46	PAGE 107
                                                                                                                           SEQ 0065
  3858	  			   /************************************************************
  3859	  			   /
  3860	  			   /	STORE DIAGNOSTIC ERROR CODE
  3861	  			   /
  3862	  			   /************************************************************
  3863
  3864	  6400	7203	DERROR,	CLA IAC BSW			/GEN 100 CODE
  3865	  6401	1005		TAD	ECODE			/ADJUST COUNT
  3866	  6402	3005		DCA	ECODE			/PUT BACK
  3867	  6403	7327		CLA IAC STL RTL			/GET ADDRESS 17
  3868	  6404	7125		IAC STL RAL			/SELECT
  3869	  6405	6516		LIS				/ON IBUS
  3870	  6406	1005		TAD	ECODE			/GET ERROR #
  3871	  6407	6515		L8C				/PUT IT INTO 8R
  3872	  6410	7200		CLA				/RESET AC
  3873	  6411	6514		L8B				/ZERO OTHER BITS
  3874	  6412	6554		LIR				/LOAD REG# 17
  3875	  6413	6007		INT				/INIT SYSTEM
  3876	  6414	1053		TAD	ONETIM			/GET ONE TIME FLAG
  3877	  6415	7440		SZA				/SKIP IF NOT SET
  3878	  6416	5777'		JMP	ST207			/HALT ON ERROR
  3879	  6417	1051		TAD	LOOPER			/GET LOOPING FLG
  3880	  6420	7650		SNA CLA				/SKP IF SET
  3881	  6421	5777'		JMP	ST207			/OTHERWISE HLT
  3882	  6422	7201		CLA IAC				/GEN A 1
  3883	  6423	3051		DCA	LOOPER			/PUT IN LOOPER TO LOOP FOREVER
  3884	  6424	1336		TAD	CHKCON			/GET LOOP ADDRESS
  3885	  6425	3052		DCA	LPADR			/SAVE IT
  3886	  6426	3005		DCA	ECODE			/CLEAR ERROR CODE
  3887	  6427	5452		JMP I	LPADR			/LOOP ON ERROR
/DX10 MICROCODE FOR STC MAGNETIC TAPE  VERSION #14  EDIT #0	PAL10 	V142A	30-DEC-77	8:46	PAGE 108
                                                                                                                           SEQ 0066
  3888	  			   /************************************************************
  3889	  			   /
  3890	  			   /	SETUP PATTERN LIST IN AUTO INDEX 10 & 11
  3891	  			   /
  3892	  			   /************************************************************
  3893
  3894	  6430	0000	SETLST,	0				/ENTRY
  3895	  6431	1124		TAD	[DATPTN-1]		/GET PATTERN ADDR
  3896	  6432	3010		DCA	10			/SETUP IN AUTO-INDEX
  3897	  6433	1124		TAD	[DATPTN-1]		/GET IT AGAIN
  3898	  6434	3011		DCA	11			/SETUP IN COMPARE AUTO-INDEX
  3899	  6435	5630		JMP I	SETLST			/EXIT
  3900
  3901	  			   /************************************************************
  3902	  			   /
  3903	  			   /	LOAD 8R WITH DATA PATTERN
  3904	  			   /
  3905	  			   /************************************************************
  3906
  3907	  6436	0000	LD8R,	0				/ENTRY
  3908	  6437	1410		TAD I	10			/GET BYTE A
  3909	  6440	6513		L8A				/LOAD 8R<0:11>
  3910	  6441	1410		TAD I	10			/GET BYTE B
  3911	  6442	6514		L8B				/LOAD 8R<12:23>
  3912	  6443	1410		TAD I	10			/GET BYTE C
  3913	  6444	6515		L8C				/LOAD 8R<24:35>
  3914	  6445	5636		JMP I	LD8R			/EXIT
/DX10 MICROCODE FOR STC MAGNETIC TAPE  VERSION #14  EDIT #0	PAL10 	V142A	30-DEC-77	8:46	PAGE 109
                                                                                                                           SEQ 0067
  3915	  			   /************************************************************
  3916	  			   /
  3917	  			   /	GET DATA REGISTER
  3918	  			   /
  3919	  			   /************************************************************
  3920
  3921	  6446	0000	GETDR,	0				/ENTRY
  3922	  6447	7200		CLA				/RESET AC
  3923	  6450	1131		TAD	[DR]			/GET DR ADR
  3924	  6451	6516		LIS				/SELECT IT
  3925	  6452	6555		GIL				/READ IT
  3926	  6453	6556		GIR
  3927	  6454	5646		JMP I	GETDR			/EXIT
  3928
  3929	  			   /************************************************************
  3930	  			   /
  3931	  			   /	LOAD CPC REGISTER
  3932	  			   /
  3933	  			   /************************************************************
  3934
  3935	  6455	0000	LDCPC,	0				/ENTRY
  3936	  6456	7200		CLA				/RESET AC
  3937	  6457	1123		TAD	[CPC]			/GET ADR
  3938	  6460	6516		LIS				/SELECT CPC
  3939	  6461	6554		LIR				/LOAD <18:35>
  3940	  6462	6516		LIS				/SELECT <14:17>
  3941	  6463	6553		LIL				/LOAD IT
  3942	  6464	5655		JMP I	LDCPC			/EXIT
  3943
  3944	  			   /************************************************************
  3945	  			   /
  3946	  			   /	GET CPC REGISTER
  3947	  			   /
  3948	  			   /************************************************************
  3949
  3950
  3951	  6465	0000	GETCPC,	0				/ENTRY
  3952	  6466	7200		CLA				/RESET AC
  3953	  6467	1123		TAD	[CPC]			/GET ADR
  3954	  6470	6516		LIS				/SELECT CPC
  3955	  6471	6556		GIR				/READ <18:35>
  3956	  6472	6516		LIS				/SELECT HIGH BITS<14:17>
  3957	  6473	6555		GIL				/READ THEM
  3958	  6474	5665		JMP I	GETCPC			/EXIT
/DX10 MICROCODE FOR STC MAGNETIC TAPE  VERSION #14  EDIT #0	PAL10 	V142A	30-DEC-77	8:46	PAGE 110
                                                                                                                           SEQ 0068
  3959	  			   /************************************************************
  3960	  			   /
  3961	  			   /	GET DATA ADDRESS REGISTER
  3962	  			   /
  3963	  			   /************************************************************
  3964
  3965	  6475	0000	GETDAC,	0				/ENTRY
  3966	  6476	7200		CLA				/RESET AC
  3967	  6477	1122		TAD	[DAC]			/GET ADR
  3968	  6500	6516		LIS				/SELECT DAC
  3969	  6501	6556		GIR				/READ <18:35>
  3970	  6502	6516		LIS				/SELECT DAC<14:17>
  3971	  6503	6555		GIL				/READ THOSE BITS
  3972	  6504	5675		JMP I	GETDAC			/EXIT
  3973
  3974	  			   /************************************************************
  3975	  			   /
  3976	  			   /	LOAD DATA ADDRESS REGISTER
  3977	  			   /
  3978	  			   /************************************************************
  3979
  3980	  6505	0000	LDDAC,	0				/ENTRY
  3981	  6506	7200		CLA				/RESET AC
  3982	  6507	1122		TAD	[DAC]			/GET ADDR
  3983	  6510	6516		LIS				/SELECT DAC
  3984	  6511	6554		LIR				/WRITE THOSE BITS<18:35>
  3985	  6512	6516		LIS				/SELECT DAC<14:17>
  3986	  6513	6553		LIL				/WRITE THOSE BITS
  3987	  6514	5705		JMP I	LDDAC			/EXIT
  3988
/DX10 MICROCODE FOR STC MAGNETIC TAPE  VERSION #14  EDIT #0	PAL10 	V142A	30-DEC-77	8:46	PAGE 111
                                                                                                                           SEQ 0069
  3989	  			   /************************************************************
  3990	  			   /
  3991	  			   /	COMPARE 8R REGISTER WITH RGA,RGB,RGC
  3992	  			   /
  3993	  			   /************************************************************
  3994
  3995
  3996	  6515	0000	CMP8R,	0				/ENTRY
  3997	  6516	6503		G8A				/GET BYTE A
  3998	  6517	7041		CIA				/NEGATE
  3999	  6520	1411		TAD I	11			/COMPARE WITH BYTE A IN MEM
  4000	  6521	7640		SZA CLA				/SKP IF EQUAL
  4001	  6522	5335		JMP	CPEX			/EXIT
  4002	  6523	6504		G8B				/GET BYTE B
  4003	  6524	7041		CIA				/NEGATE
  4004	  6525	1411		TAD I	11			/COMPARE WITH BYTE B IN MEM
  4005	  6526	7640		SZA CLA				/SKP IF EQUAL
  4006	  6527	5335		JMP	CPEX			/EXIT ON BYTE B FAILURE
  4007	  6530	6505		G8C				/GET BYTE C
  4008	  6531	7041		CIA				/MAKE NEGATIVE
  4009	  6532	1411		TAD I	11			/COMPARE WITH BYTE C IN MEM
  4010	  6533	7650		SNA CLA				/SKP IF NOT EQUAL
  4011	  6534	2315		ISZ	CMP8R			/SETUP GOOD RET
  4012	  6535	5715	CPEX,	JMP I	CMP8R			/EXIT
/DX10 MICROCODE FOR STC MAGNETIC TAPE  VERSION #14  EDIT #0	PAL10 	V142A	30-DEC-77	8:46	PAGE 112
                                                                                                                           SEQ 0070
  4013	  			   /************************************************************
  4014	  			   /
  4015	  			   /	CHECK CONTINUE FLOP
  4016	  			   /
  4017	  			   /************************************************************
  4018
  4019	  6536	0000	CHKCON,	0				/ENTRY
  4020	  6537	6502		STM				/KICK THE TIMER
  4021	  6540	6007		INT				/INIT SYSTEM
  4022	  6541	1051		TAD	LOOPER			/GET LOOPING FLG
  4023	  6542	7440		SZA				/SKP IF NOT SET
  4024	  6543	5347		JMP	CHKLOP			/GO CHECK IF LOOPING
  4025	  6544	6525		TCT				/CHECK THE CONTINUE FLOP
  4026	  6545	5736		JMP I	CHKCON			/NOT SET, RETURN FOR MORE TESTING
  4027	  6546	5776'		JMP	TSTEND			/SET, EXIT NOW
  4028	  6547	7004	CHKLOP,	RAL				/SHIFT SIGN BIT INTO LINK
  4029	  6550	7200		CLA				/CLEAR THE AC
  4030	  6551	1053		TAD	ONETIM			/GET ONE TIME FLAG
  4031	  6552	7640		SZA CLA				/SKIP IF CLEAR
  4032	  6553	5736		JMP I	CHKCON			/CONTINUE TESTING
  4033	  6554	7420		SNL				/SKIP IF LOOPER WAS NEGATIVE
  4034	  6555	5452		JMP I	LPADR			/RETURN TO LOOP
  4035	  6556	5736		JMP I	CHKCON			/CONTINUE
  4036
  4037	  6576	6265
  4038	  6577	0207
	  	6600		PAGE
/DX10 MICROCODE FOR STC MAGNETIC TAPE  VERSION #14  EDIT #0	PAL10 	V142A	30-DEC-77	8:46	PAGE 113
                                                                                                                           SEQ 0071
  4039	  			   /************************************************************
  4040	  			   /
  4041	  			   /	WRITE THE SILO SUBROUTINE
  4042	  			   /
  4043	  			   /************************************************************
  4044
  4045	  6600	0000	WSILO,	0				/ENTRY PT.
  4046	  6601	3317		DCA	BYTCNT			/SAVE # OF BYTES TO WRITE
  4047	  6602	1410		TAD I	10			/GET A BYTE
  4048	  6603	6517		LBO				/LOAD BYTE OUT
  4049	  6604	4217		JMS	SRVIN1			/SET SERVICE IN
  4050	  6605	4246		JMS	WSRVO1			/WAIT FOR SERVICE OUT TO SET
  4051	  6606	4230		JMS	SRVIN0			/CLR SERVICE IN
  4052	  6607	4262		JMS	WSRVO0			/WAIT FOR SERVICE OUT TO CLR
  4053	  6610	2317		ISZ	BYTCNT			/UPDATE BYTE COUNT
  4054	  6611	5202		JMP	WSILO+2			/LOOP TO SEND MORE BYTES
  4055	  6612	1170		TAD	[-100]			/GET WAIT CNT FOR SILO PROPOGATION
  4056	  6613	3030		DCA	TEMP			/SAVE IT
  4057	  6614	2030		ISZ	TEMP			/UPDATE WAIT CNT
  4058	  6615	5214		JMP	.-1			/STALLING FOR SILO
  4059	  6616	5600		JMP I	WSILO			/EXIT PT.
  4060
  4061	  			   /************************************************************
  4062	  			   /
  4063	  			   /	SET SERVICE IN
  4064	  			   /
  4065	  			   /************************************************************
  4066
  4067	  6617	0000	SRVIN1,	0				/ENTRY PT.
  4068	  6620	7200		CLA				/RESET AC
  4069	  6621	1377		TAD	(407)			/GET SERVICE IN BIT
  4070	  6622	6515		L8C				/LOAD INTO 8R
  4071	  6623	6514		L8B				/CLR OTHER BITS
  4072	  6624	7205		CLA IAC RAL			/GEN 2
  4073	  6625	6516		LIS				/SELECT IBUS #2
  4074	  6626	6554		LIR				/SET SERVICE IN
  4075	  6627	5617		JMP I	SRVIN1			/EXIT PT.
  4076
  4077	  			   /************************************************************
  4078	  			   /
  4079	  			   /	CLR SERVICE IN
  4080	  			   /
  4081	  			   /************************************************************
  4082
  4083	  6630	0000	SRVIN0,	0				/ENTRY PT.
  4084	  6631	7200		CLA				/RESET AC
  4085	  6632	1376		TAD	(7)			/GET CLR SUP OUT BITS
  4086	  6633	6515		L8C				/CLR SERVICE IN BIT IN 8R
  4087	  6634	6514		L8B				/CLR OTHER BITS
  4088	  6635	7205		CLA IAC RAL			/GEN 2
  4089	  6636	6516		LIS				/SELECT IBUS #2
  4090	  6637	6554		LIR				/CLR SERVICE IN
  4091	  6640	5630		JMP I	SRVIN0			/EXIT PT.
/DX10 MICROCODE FOR STC MAGNETIC TAPE  VERSION #14  EDIT #0	PAL10 	V142A	30-DEC-77	8:46	PAGE 114
                                                                                                                           SEQ 0072
  4092	  			   /************************************************************
  4093	  			   /
  4094	  			   /	SET SILO WRITE LIST
  4095	  			   /
  4096	  			   /************************************************************
  4097
  4098	  6641	0000	SILLST,	0				/ENTRY PT.
  4099	  6642	3011		DCA	11			/SAVE COMPARE DR PNTR
  4100	  6643	1375		TAD	(BYTPTN-1)		/GET BYTE LIST PNTR
  4101	  6644	3010		DCA	10			/SAVE ON AUTO-INDEX
  4102	  6645	5641		JMP I	SILLST			/EXIT PT.
  4103
  4104	  			   /************************************************************
  4105	  			   /
  4106	  			   /	WAIT FOR SERVICE OUT TO SET
  4107	  			   /
  4108	  			   /************************************************************
  4109
  4110	  6646	0000	WSRVO1,	0				/ENTRY PT.
  4111	  6647	3030		DCA	TEMP			/CLR WAIT REG
  4112	  6650	7205		CLA IAC RAL			/GEN 2
  4113	  6651	6516		LIS				/SELECT IBUS #2
  4114	  6652	6556		GIR				/READ IBUS #2 INTO 8R
  4115	  6653	6505		G8C				/GET BUS OUT LINES INTO AC
  4116	  6654	0163		AND	[SRVOUT]		/KEEP ONLY SERVICE OUT
  4117	  6655	7640		SZA CLA				/SKP IF ZERO
  4118	  6656	5646		JMP I	WSRVO1			/EXIT IF A ONE
  4119	  6657	2030		ISZ	TEMP			/UPDATE WAIT CNT
  4120	  6660	5250		JMP	WSRVO1+2		/LOOP IF ALLOWED
  4121	  6661	5774'		JMP	DER167			/SERVICE OUT DIDN'T SET
  4122
  4123	  			   /************************************************************
  4124	  			   /
  4125	  			   /	WAIT FOR SERVICE OUT TO CLEAR
  4126	  			   /
  4127	  			   /************************************************************
  4128
  4129	  6662	0000	WSRVO0,	0				/ENTRY PT.
  4130	  6663	3030		DCA	TEMP			/CLR WAIT CNT
  4131	  6664	7205		CLA IAC RAL			/GEN 2
  4132	  6665	6516		LIS				/SELECT IBUS #2
  4133	  6666	6556		GIR				/READ IBUS #2 INTO 8R
  4134	  6667	6505		G8C				/READ BUS OUT LINES INTO AC
  4135	  6670	0163		AND	[SRVOUT]		/KEEP ONLY SERVICE OUT
  4136	  6671	7650		SNA CLA				/SKP IF SET
  4137	  6672	5662		JMP I	WSRVO0			/EXIT IF RESET
  4138	  6673	2030		ISZ	TEMP			/UPDATE WAIT CNT
  4139	  6674	5264		JMP	WSRVO0+2		/LOOP BACK IF ALLOWED
  4140	  6675	5773'		JMP	DER170			/SERVICE OUT DIDN'T CLR
/DX10 MICROCODE FOR STC MAGNETIC TAPE  VERSION #14  EDIT #0	PAL10 	V142A	30-DEC-77	8:46	PAGE 115
                                                                                                                           SEQ 0073
  4141	  			   /************************************************************
  4142	  			   /
  4143	  			   /	SET LOOP BUS IN TO BUS OUT
  4144	  			   /
  4145	  			   /************************************************************
  4146
  4147	  6676	0000	STBSLP,	0				/ENTRY PT.
  4148	  6677	7200		CLA				/RESET AC
  4149	  6700	1372		TAD	(400)			/GET SET LOOP
  4150	  6701	6515		L8C				/PUT INTO 8R
  4151	  6702	6514		L8B				/CLR OTHER BITS
  4152	  6703	7325		CLA STL IAC RAL			/GEN 3
  4153	  6704	6516		LIS				/SELECT IBUS #3
  4154	  6705	6554		LIR				/SET LOOP BUS OUT TO BUS IN
  4155	  6706	5676		JMP I	STBSLP			/EXIT PT.
  4156
  4157	  			   /************************************************************
  4158	  			   /
  4159	  			   /	CLEAR BUS IN TO BUS OUT
  4160	  			   /
  4161	  			   /************************************************************
  4162
  4163	  6707	0000	CLBSLP,	0				/ENTRY PT.
  4164	  6710	6007		INT				/RESET AC & INIT DX10
  4165	  6711	6515		L8C				/CLR BUS LOOP BIT
  4166	  6712	6514		L8B				/CLR OTHER BITS
  4167	  6713	7325		CLA STL IAC RAL			/GEN 3
  4168	  6714	6516		LIS				/SELECT IBUS #3
  4169	  6715	6554		LIR				/CLR BUS OUT TO BUS IN LOOP
  4170	  6716	5707		JMP I	CLBSLP			/EXIT PT.
  4171
/DX10 MICROCODE FOR STC MAGNETIC TAPE  VERSION #14  EDIT #0	PAL10 	V142A	30-DEC-77	8:46	PAGE 116
                                                                                                                           SEQ 0074
  4172	  			   /************************************************************
  4173	  			   /
  4174	  			   /	DATA PATTERNS USED IN SELF-TESTING
  4175	  			   /
  4176	  			   /************************************************************
  4177
  4178	  6717	0000	BYTCNT,	0				/BYTE CNT LOC FOR WSILO
  4179
  4180	  6720	3777	DATPTN,	3777				/.ONES BYTE A
  4181	  6721	7777		7777				/.ONES BYTE B
  4182	  6722	7777		7777				/.ONES BYTE C
  4183	  6723	0000		0000				/.ZEROS BYTE A
  4184	  6724	0000		0000				/.ZEROS BYTE B
  4185	  6725	0000		0000				/.ZEROS BYTE C
  4186	  6726	2525		2525				/.ALT1 BYTE A
  4187	  6727	2525		2525				/.ALT1 BYTE B
  4188	  6730	2525		2525				/.ALT1 BYTE C
  4189	  6731	1252		1252				/.ALT2 BYTE A
  4190	  6732	5252		5252				/.ALT2 BYTE B
  4191	  6733	5252		5252				/.ALT2 BYTE C
  4192
  4193	  6734	0011	BYTPTN,	011				/BYTE A
  4194	  6735	0022		022				/BYTE B
  4195	  6736	0033		033				/BYTE C
  4196	  6737	0044		044				/BYTE D
  4197	  6740	0055		055				/BYTE E
  4198	  6741	0066		066				/BYTE F
/DX10 MICROCODE FOR STC MAGNETIC TAPE  VERSION #14  EDIT #0	PAL10 	V142A	30-DEC-77	8:46	PAGE 117
                                                                                                                           SEQ 0075
  4199	  6742	0221	CORDMP,	0221				/CORE DUMP MODE COMPARE WORD1
  4200	  6743	1033		1033				/CORE DUMP MODE COMPARE WORD 2
  4201	  6744	1115		1115				/CORE DUMP MODE COMPARE WORD 3
  4202	  6745	0221	BYTMDE,	0221				/BYTE MODE COMPARE WORD 1
  4203	  6746	1033		1033				/BYTE MODE COMPARE WORD 2
  4204	  6747	1100		1100				/BYTE MODE COMPARE WORD 3
  4205	  6750	0444	ASZMDE,	0444				/ASCIZ MODE COMPARE WORD 1
  4206	  6751	4332		4332				/ASCIZ MODE COMPARE WORD 2
  4207	  6752	2132		2132				/ASCIZ MODE COMPARE WORD 3
  4208	  6753	1122	SIXBIT,	1122				/SIXBIT MODE COMPARE WORD 1
  4209	  6754	3344		3344				/SIXBIT MODE COMPARE WORD2
  4210	  6755	5566		5566				/SIXBIT MODE COMPARE WORD 3
  4211
  4212	  6772	0400
  4213	  6773	6303
  4214	  6774	6304
  4215	  6775	6733
  4216	  6776	0007
  4217	  6777	0407
	  	7000		PAGE