Google
 

Trailing-Edge - PDP-10 Archives - klad_sources - klad.sources/diag.ins
There are no other files named diag.ins in the archive.
*****HOW TO IMPLIMENT A DIAGNOSE INSTRUCTION IN THE
*****"DIAGA" OR "DIAGB" MICRO-CODE.

	YOUR SPECIAL MICRO-CODE WILL BE CALLED BY EXECUTION OF
THE PDP10 "DIAGNOSE" INSTRUCTION (OPCODE 104).
ALL INDEXING,INDIRECT, AND EFFECTIVE ADDRESS CALCULATION WILL
HAVE TAKEN PLACE BEFORE YOUR MICRO-CODE IS EXECUTED.
	YOUR FIRST MICRO-WORD MAY COUNT ON THE EBOX BEING IN THE
FOLLOWING STATE:
	THE OPCODE AND AC NUMBER WILL BE IN THE "IR".
	COPY OF THE INSTR WILL BE IN "BRX"
	THE LAST INDIRECT WORD IN THE "ARX".
	THE CALCULATED EFFECTIVE ADDRESS WILL BE IN THE "AR" & "VMA"
	THERE WILL BE NO MEM FUNCTIONS OR PREFETCHES IN PROGRESS.

	THE INSTRUCTION IS AN IMMEDIATE MODE INSTRUCTION. NO FETCH
IS MADE FROM THE CALCULATED EFFECTIVE ADDRESS. YOU CAN CAUSE DATA
FETCHES FROM MEMORY, HOWEVER, BY USING THE INDIRECT BIT IN THE
INSTRUCTION BEING EXECUTED, OR BY USING THE INDIRECT BIT IN
CONJUNCTION WITH INDEXING.


	THE MICRO-CODE BUFFER AREA OCCUPIES THE IDENTICAL CRAM LOCATIONS
IN BOTH MODEL A & MODEL B VERSIONS OF THE MICRO-CODE.  THE BUFFER
CONTAINS 31. LOCATIONS, FROM C-RAM ADDRESS 2340 TO 2376. THE DIAGNOSE
INSTRUCTION PASSES CONTROL TO ADDRESS 2340 WHEN IT HAS COMPLETED ITS
EFFECTIVE ADDRESS CALCULATION.
	IF YOUR SPECIAL MICRO-CODE SHOULD CAUSE A "PAGE FAIL", YOU WILL
LOSE CONTROL OF THE INSTRUCTION.

	WHEN THE SPECIAL MICRO-CODE IS COMPLETE, TO RETURN TO THE 
NORMAL INSTRUCTION STREAM,YOU MUST MOVE THE "PC" OF THE NEXT DESIRED
PDP10 INSTRUCTION INTO THE "AR", AND JUMP TO MICRO-LOCATION "0000". 
UPON ENTRY INTO YOUR SPECIAL MICRO-CODE VIA THE DIAGNOSE
INSTRUCTION, THE OLD "PC" IS IN THE PC REGISTER & YOU NEED
MERELY TO EXECUTE THE MICRO-INSTRUCTION "ARR_PC+1,J/000" TO COMPLETE
YOUR DIAGNOSE INSTRUCTION AND RETURN TO THE NORMAL INSTRUCTION FLOW.
..NOTE:(ARR_PC+1 IS THE SAME AS:ADA/PC,AD/A+1,AR/AD)

	TO ASSEMBLE YOUR MICRO-CODE:

.RU MICRO[400,1066]
*FILE.EXT=DEFINE.MIC,MACRO.MIC,LOCAT.MIC,YOURSPEC.MIC
(WHERE DEFINE,MACRO,& LOCAT HAVE BEEN COPIED TO YOUR AREA FROM
THE LIBRARY AREA)
NOTE:	DEFINE.MIC IS THE MICRO FIELD DEFINITION FILE
	MACRO.MIC CONTAINS COMMONLY USED MACROS FOR THE MICRO-CODE
	LOCAT.MIC CAUSES YOUR MICRO-CODE TO BEGIN ASSEMBLING AT
	    MICRO-LOCATION "2340".

IF YOU CODE MORE THAN 31. MICRO-INSTRUCTIONS,THE ASSEMBLER WILL
NOT CARE, NOR WILL IT WARN YOU, AND WHEN YOU LOAD YOUR SPECIAL
MICRO-CODE,YOU WILL DESTROY LOCATIONS IN THE STANDARD
MICRO-CODE, WHICH WILL PROBABLY, EVENTUALLY CAUSE A CATASTROPHIC
FAILURE IN EITHER YOUR TEST, OR DURING THE RUNNING OF FUNCTIONALS
WITH THAT MICRO-CODE.....

ALSO, THE MICRO ASSEMBLER IS NOT VERY SMART, AND DURING THE COURSE
OF ASSEMBLY MAY BEGIN ASSIGNING YOUR MICRO-CODE TO ADDRESSES
BEGINNING AT MICRO LOCATION "0000". THIS IS FATAL TO THE USE OF THE 
DIAGNOSTIC OVERLAY.. BE SURE TO CHECK YOUR MICRO-CODE LISTING TO
ENSURE THAT THIS HAS NOT HAPPENED. IF IT HAS YOU MAY HAVE TO ASSIGN
ABSOLUTE MICRO ADDRESSES TO YOUR SPECIAL MICRO-CODE AND THEN
RE-ASSEMBLE