Google
 

Trailing-Edge - PDP-10 Archives - decus_20tap4_198111 - decus/20-0134/simfcl.mac
There is 1 other file named simfcl.mac in the archive. Click here to see a list.
TITLE SIMFCL PROGRAM TO MEASURE THE EXCERCISE OF LOCATIONS OF FCL331.MAC
SUBTTL	PARAMETERS, DEFINITIONS AND INITIALIZATION.
;A CODE TABLE IS FILLED WITH JSR INSTRUCTIONS.
;THAT TABLE IS THEN USED FOR THE SIMULATION, BY EXECUTING EACH JSR
;IN TURN.
;THE JSR IS REPLACED BY REAL CODE IF:
;	1. THE CODE IS FETCHED, AND
;	2. THE INSTRUCTION IS NOT A PC-SENSITIVE ONE, AND
;	3. IT DOES NOT REFERENCE A VARIABLE HIGH SEGMENT LOCATION.
;THE JSR IS REPLACED BY A SIMULATION INSTRUCTION IF:
;	1. THE ABOVE CONDITIONS HOLD, AND
;	2. IT IS A LUUO OR A JUMP INSTRUCTION.
	CA==13		;CUSTOMER ACCUMULATOR.
DEFINE HALT (A) <
JRST [
OUTSTR [ASCIZ "
?A
"]
JRST	4,.
]
>;END DEFINE HALT (A)
BTYPE==1B1		;THIS IS A BYTE INSTRUCTION OR XCT.
STYPE==1B2		;TTCALL ONLY.
MTYPE==1B3		;THIS INSTRUCTION WILL REFERENCE MEMORY.
DTYPE==1B4		;THIS INSTRUCTION WILL REFERENCE MEM+1
LTYPE==1B5		;THIS INSTRUCTION HAS A 4-WORD ARGUMENT BLOCK.
JTYPE==1B6		;THIS INSTRUCTION MAY JUMP.
PTYPE==1B7		;THIS INSTRUCTION IS PC-SENSITIVE.
ILLTYPE==1B8		;ILLEGAL INSTRUCTION IF EFFECTIVE ADDRESS IS IN HISEG.
COD:	BLOCK	4000		;THE JSR TABLE.
USE:	BLOCK	4000		;BIT TABLE OF USAGE.; AN IMAGE OF 400000-404000.

OPTAB:			;TABLE OF BITS ILLUSTRATING OP CODES.
REPEAT 40,<Z>		;LUUO'S
MTYPE			;CALL
PTYPE!ILLTYPE		;INIT		NOTE: THIS IS IMPERFECT!
REPEAT 5,<ILLTYPE>	;UUO'S 42-46
ILLTYPE			;CALLI		NOTE: THIS IS IMPERFECT!
MTYPE!DTYPE!ILLTYPE	;OPEN		NOTE: THIS IS IMPERFECT!
STYPE			;TTCALL
REPEAT 3,<ILLTYPE>	;UUO'S 52-54
MTYPE!DTYPE!LTYPE	;RENAME
ILLTYPE			;IN
ILLTYPE			;OUT
Z			;SETSTS
Z			;STATO
MTYPE			;GETSTS
Z			;STATZ
Z			;INBUF
Z			;OUTBUF
ILLTYPE			;INPUT
ILLTYPE			;OUTPUT
Z			;CLOSE
Z			;RELEASE
Z			;MTAPE
MTYPE!ILLTYPE		;UGETF
Z			;USETI
Z			;USETO
MTYPE!DTYPE!LTYPE	;LOOKUP
MTYPE!DTYPE!LTYPE	;ENTER
ILLTYPE			;UJEN
REPEAT 7,<ILLTYPE>	;UNDEFINED UUO'S.
REPEAT 4,<DTYPE!MTYPE>	;DFAD ETC
REPEAT 4,<ILLTYP>	;UNDEFINED
DTYPE!MTYPE		;DMOVE
DTYPE!MTYPE		;DMOVN
MTYPE			;FIX
ILLTYP
DTYPE!MTYPE
DTYPE!MTYPE
REPEAT 4,<MTYPE>	;FIXR ETC
Z
MTYPE			;IBP
REPEAT 4,<BTYPE!MTYPE>	;BYTE POINTERS
REPEAT 4,<
REPEAT 5,<MTYPE>
Z
MTYPE
MTYPE
>;END REPEAT 4		;FLOATING POINT.
REPEAT 8,<
MTYPE
Z
MTYPE
MTYPE
>;END REPEAT 8		;MOVES, FIXED POINT MUL,DIV.
Z
Z
Z
JTYPE
Z
Z
Z
ILLTYPE
MTYPE		;EXCH
ILLTYPE!MTYPE	;BLT
JTYPE
JTYPE
JTYPE
JTYPE
BTYPE!MTYPE		;XCT
ILLTYPE	;MAP
JTYPE!PTYPE		;PUSHJ
MTYPE
MTYPE
Z
REPEAT 3,<JTYPE!PTYPE>	;JSR,JSP,JSA
JTYPE
REPEAT 2,<
MTYPE
Z
MTYPE
MTYPE
>;END REPEAT 2	;ADD,SUB
REPEAT 8,<Z>
REPEAT 8,<MTYPE>
REPEAT 3,<
REPEAT 8,<JTYPE>
REPEAT 8,<MTYPE>
>;END REPEAT 3	;JUMP,SKIP,AOJ,AOS,SOJ,SOS
REPEAT 3,<
Z
Z
MTYPE
MTYPE
REPEAT 4,<
MTYPE
Z
MTYPE
MTYPE
>;END REPEAT 4		;AND,ANDCA,SETM,ANDCM
>;END REPEAT 3	;RIGHT UP TO ORCBB
Z
Z
MTYPE
MTYPE
REPEAT 20,<
MTYPE
Z
MTYPE
MTYPE
>;END REPEAT 20		;HALF WORDS.
REPEAT 4,<
REPEAT 8,<Z>
REPEAT 8,<MTYPE>
>;END REPEAT 4		;TEST INSTRUCTIONS.
REPEAT 100,<ILLTYPE>
TTCTAB:			;TABLE OF BITS FOR TTCALL UUO.
REPEAT 3,<MTYPE>	;INCHRW,OUTCHR,INCHRS
STYPE!MTYPE		;OUTSTR
REPEAT 4,<MTYPE>	;INCHWL,INCHSL,GETLCH,SETLCH
REPEAT 5,<Z>		;RESCAN,CLRBFI,CLRBFO,SKPINC,SKPINL
MTYPE			;IONEOU
REPEAT 2,<Z>		;RESERVED FOR EXPANSION.
BEGIN:	RESET
	MOVE	CA,41		;MODIFY THE UUO TRAP LOCATION.
	SUBI	CA,400000
	ADDI	CA,COD		;GO TO THE SIMULATED HANDLER.
	MOVEM	CA,41
	MOVEI	CA,STRP.H	;PRE-SET TO HANDLE OUR OWN TRAPS.
	MOVEM	CA,.JBAPR##
	MOVE	CA,[JSR	DECODE]
	MOVEM	CA,COD		;SET TO FILL SIMULATION SPACE WITH TRAPS.
	MOVE	CA,[XWD COD,COD+1]
	BLT	CA,COD+3777	;FILL HIGH SEGMENT WITH TRAPS.
	SKIPA	CA,.+1		;PICK UP ENTRY TO SIMULATOR
	JRST	COD+10		;CORRESPONDS TO ONCE IMAGE.
	MOVEM	CA,FNEWEX##	;GO THERE WHEN DONE FNEWGO.
	JRST	FNEWGO##	;GO AND FIND FOCAL.SHR

;ROUTINE TO RETURN EITHER:
;1.	THE NUMBER OF REFERENCES IN THE USAGE TABLE [FNEW(-1)], OR
;2.	THE POSSIBLE SCORE, [CALLED BY FNEW(0)], OR
;3.	THE RELATIVE LOCATION OF THE NEXT UNREFERENCED LOCATION AFTER
;		THE ONE GIVEN BY THE ARGUMENT [POSITIVE ARGUMENT].
FNEW::	HLRZ	0,400000+.JBHRN##	;GET SIZE OF HIGH SEGMENT.
	SUBI	0,10		;SUBTRACT VESTIGIAL JOB DATA AREA.
	SKIPN	1,@0(16)	;WAS THE ARGUMENT ZERO?
	JRST	FNEW2		;YES.
	JUMPL	1,FNEW1		;REQUIRE NEXT RELATIVE LOCATION?
	FIXR	1,1		;OBTAIN FIXED-POINT ANSWER.
	ANDI	1,7777		;YES.	RESTRICT ARGUMENT TO 4K WORDS.
	SKIPGE	USE+1(1)	;HAS THE NEXT LOCATION BEEN REFERENCED?
	AOJA	1,.-1		;YES.
	MOVE	0,1
	AOJA	0,FNEW2		;POINT TO THE NEXT RELATIVE LOCATION.
FNEW1:	MOVE	1,[-4000,,USE]
	SETZM	0			;COUNT IN HERE.
	SKIPE	(1)
	AOS	0
	AOBJN	1,.-2
FNEW2:	FSC	0,233		;FLOAT THE ANSWER.
	SETZM	1		;MAKE IT DOUBLE-PRECISION.
	POPJ	17,		;RETURN.
SUBTTL INSTRUCTION SIMULATOR SECTION 1:	EFFECTIVE ADDRESS CALCULATION.
DECODE:	0			;COME HERE FROM SIMULATION SPACE.
	MOVE	CA,DECODE	;SAVE PC OF TRAP.
	SUBI	CA,COD
	ADDI	CA,400000	;POINT TO THE HIGH SEGMENT.
	MOVEM	CA,SIMPC1	;SAVE THE SIMULATION OF THE PC.
	MOVEM	CA,SIMPC
	SOS	CA,SIMPC	;POINT TO THE INSTRUCTION BEING SIMULATED.
	SOS	USE-400000(CA)	;MARK THE USAGE.
	MOVE	CA,@SIMPC	;GET THE INSTRUCTION BEING SIMULATED.
	MOVEM	CA,LASTEF	;SAVE FOR JRSTF FLAGS.
	TLZ	CA,777740	;CLEAR SPACE FOR THE TYPE BITS.
	MOVEM	CA,EFFADD	;SAVE FOR THE EFFECTIVE ADDRESS CALCULATION.
	LDB	CA,PSIMOP	;GET OP CODE.
	HLLZ	CA,OPTAB(CA)	;GET NATURE OF THE OPCODE.
	IORB	CA,EFFADD	;GET EFFECTIVE ADDRESS IN CA.
	SETZM	VARIAB		;MARK EFFECTIVE ADDRESS FIXED.
MOREFF:	LDB	CA,[POINT 4,EFFADD,17]	;GET INDEX FIELD.
	JUMPE	CA,EFF1		;SKIP ALL THIS IF NO INDEX FIELD.
	HLLOS	VARIAB		;MARK VARIABLE EFFECTIVE ADDRESS.
	HRR	CA,(CA)		;GET CONTENTS OF INDEX REGISTER.
	ADD	CA,EFFADD	;COMPUTE EFFECTIVE ADDRESS.
	HRRM	CA,EFFADD	;SAVE RESULT.
EFF1:	MOVE	CA,EFFADD
	TLZ	CA,17		;CLEAR INDEX FIELD.
	TLZN	CA,20		;INDIRECT BIT ON?
	TLZE	CA,(BTYPE)	;NO.	BYTE POINTER?
	SKIPA
	JRST	MARK		;NO.	COMPUTATION IS COMPLETE.
	MOVEM	CA,EFFADD	;SAVE THE BTYPE BIT.
	TRNN	CA,400000	;YES.	INDIRECT A HIGH SEGMENT ADDRESS?
	HLLOS	VARIAB		;NO.	THAT MEANS EFF ADD IS VARIABLE.
	TRNN	CA,400000	;YES.	INDIRECT A HIGH SEGMENT ADDRESS?
	JRST	EFF3		;NO.
	SKIPE	VARIAB		;IS EFF ADD VARIABLE?
	SETOM	VARIAB		;YES.	VARIABLE HIGH SEGMENT ADDRESS.
	SOS	USE-400000(CA)	;MARK USAGE.
EFF3:	MOVE	CA,(CA)		;GET NEW CODE.
	MOVEM	CA,LASTEF	;SAVE FOR JRSTF FLAGS.
	DPB	CA,[POINT 23,EFFADD,35]	;SAVE NEXT ADDRESS.
	JRST	MOREFF		;LOOP FOR MORE EFFECTIVE ADDRESS CALCULATION.
SUBTTL INSTRUCTION SIMULATOR SECTION 2:	MARK THE DATA FETCH REFERENCES.
;AT THIS STAGE CA CONTAINS ...
;BIT	0	0	UNUSED
;BITS	2-8		STYPE,MTYPE,DTYPE,LTYPE,JTYPE,PTYPE,ILLTYPE
;BITS	9-12	0	UNUSED
;BITS 13-17	0
;BITS 18-35		EFF  ADD OF SIMULATED INSTR. OR BYTE PTR IF ANY.
MARK:	TLZN	CA,(STYPE)	;TTCALL?
	JRST	MARK2		;NO.
	MOVEM	CA,EFFADD	;STORE WITH ZERO I AND X FIELDS.
	LDB	CA,PSOPAC	;GET OP CODE AND AC.
	HLLZ	CA,TTCTAB-1220(CA)	;GET NEW NATURE.
	HRR	CA,EFFADD	;PRESERVE ADDRESS.
	IORB	CA,EFFADD	;SAVE IT.
	TLZE	CA,(STYPE)	;OUTSTR?
	TRNN	CA,400000	;IS EFFECTIVE ADDRESS IN LO SEG?
	JRST	MARK2		;NO.
	HRLI	CA,(POINT 7,,)	;MAKE A BYTE POINTER.
	MOVEM	CA,BYTADD	;SAVE THE POINTER.
MARK1:	IBP	BYTADD		;POINT TO NEXT BYTE.
	MOVE	CA,BYTADD	;GET THE BYTE POINTER.
	SOS	USE-400000(CA)	;FLAG THE REFERENCE.
	LDB	CA,BYTADD	;GET THE NEXT BYTE.
	JUMPN	CA,MARK1	;LOOP UNTIL NUL BYTE.
	MOVE	CA,EFFADD
MARK2:	MOVEM	CA,EFFADD
	TRNN	CA,400000	;IS EFFECTIVE ADDRESS IN LO SEG?
	JRST	CRESIM		;IGNORE MTYPE IF LO SEG EFFECTIVE ADDR.
	TLNE	CA,(ILLTYPE)
	HALT	ILLEGAL INSTRUCTION.
	TLNN	CA,(MTYPE)	;WILL IT REFERENCE MEMORY?
	JRST	CRESIM		;NO.
	SOS	USE-400000(CA)	;MARK MEMORY REFERENCE.
	SKIPE	VARIAB		;EFF ADD VARIABLE?
	SETOM	VARIAB		;YES. AND REFERENCING HIGH SEGMENT.
	TLNE	CA,(DTYPE)	;DOUBLE PRECISION?
	SOS	USE-400000+1(CA)	;MARK E+1.
	TLNE	CA,(LTYPE)	;LOOKUP ENTER OR RENAME?
	SOS	USE-400000+2(CA)	;MARK E+2
	TLNE	CA,(LTYPE)	;LOOKUP ENTER OR RENAME?
	SOS	USE-400000+3(CA)	;ASSUME SHORT LOOKUP.
SUBTTL INSTRUCTION SIMULATOR SECTION 3:	CREATE THE SIMULATION INSTRUCTION.
CRESIM:	MOVE	CA,@SIMPC	;GET THE INSTRUCTION WE'RE SIMULATING.
	MOVEM	CA,SIMINSTR	;SAVE AS INSTRUCTION TO BE EXECUTED.
	MOVE	CA,EFFADD	;GET SOME FLAG BITS.
	TLNN	CA,(JTYPE)	;IS THIS A JUMP INSTRUCTION?
	JRST	CRSIM1		;NO.
;	LDB	CA,PSOPAC	;PICK OP CODE AND AC OF SIMULATED INSTR.
;	CAIN	CA,<JFCL>_-27	;IS IT JFCL 0?
;	JRST	CRSIM1		;YES.
;	MOVE	CA,EFFADD
;	TRZN	CA,400000	;JUMP TO LOW SEGMENT?
;	HALT	JUMP TO LOW SEGMENT.
	TRZE	CA,400000	;JUMP TO LOW SEGMENT?
	ADDI	CA,COD
	HLL	CA,SIMINSTR	;GET REST OF THE INSTRUCTION.
	TLZ	CA,37		;REMOVE H AND X FIELDS.
	MOVEM	CA,SIMINSTR	;SAVE.
	SKIPE	VARIAB		;JUMP TO VARIABLE ADDRESS?
	SETOM	VARIAB		;YES.	SIMULATE EVERY TIME.
	TLC	CA,(JRSTF)	;CHECK AGAINST JRSTF.
	TLNE	CA,777777	;IS IT JRSTF?
	JRST	CRSIM1		;NO.
	HLL	CA,LASTEF	;YES.	GET FLAGS.
	JRSTF	@CA		;RESTORE FLAGS AND JUMP.
CRSIM1:	TLNE	CA,(MTYPE)	;IS THIS A MEMORY REFERENCE INSTRUCTION?
	TRNE	CA,777600	;YES.	LOW SEGMENT JOB DATA AREA?
	JRST	CRSIM3		;NO.
	HRRZS	CA		;GET THE ACTUAL MEMORY REFERENCE.
	CAIE	CA,.JBREN##	;IS IT REFERENCING .JBREN?
	CAIN	CA,.JBSA##	;	OR .JBSA?
	JRST	CRSIM2		;YES.
	CAIE	CA,.JBAPR##	;IS IT A SET-UP?
	JRST	CRSIM3		;NO.
	MOVEI	CA,SIMAPR	;YES.	MAKE IT USE A DIFFERENT LOCATION.
	DPB	CA,PINS22	;CHANGE THE SIMULATION IN ACCORDANCE.
	JRST	CRSIM3
CRSIM2:	;HERE IF THE INSTRUCTION REFERENCES .JBSA OR .JBREN.
	MOVE	CA,SIMINSTR	;GET THE INSTRUCTION.
	TLC	CA,500000	;CHECK IF IT'S A HALF-WORD INSTRUCTION
	TLNE	CA,700000	;IS IT?
	HALT	NON-HALF-WORD INSTRUCTION REFERENCES .JBSA OR .JBREN
	TLNE	CA,040000	;IS IT STORING IN RIGHT HALF?
	TLNN	CA,002000	;IS IT STORING IN EFFECTIVE ADDRESS?
	JRST	CRSIM3		;NO.
	TLNN	CA,004000	;FROM RIGHT HALF?
	TLNE	CA,001000	;YES.	M-MODE?
	HALT	ILLEGAL STORE INTO .JBSA OR .JBREN
	LDB	CA,PSIMAC	;O.K.	GET THE SIMULATED ACCUMULATOR.
	HRL	CA,(CA)		;GET THE DATA.
	JUMPGE	CA,.-3		;ENSURE WE KNOW WHAT WE'RE DOING.
	ADD	CA,[XWD COD-400000,0]
	HLRM	CA,(CA)		;STORE THE DATA.
CRSIM3:	LDB	CA,PSIMOP	;GET THE OP CODE.
	CAIG	CA,37
	JRST	XLUUO
	CAIN	CA,<CALLI>_-33
	JRST	XCALLI
	CAIN	CA,<PUSHJ>_-33
	JRST	XPUSHJ
	CAIN	CA,<POPJ>_-33
	JRST	XPOPJ
	CAIN	CA,<JSP>_-33
	JRST	XJSP
	HLL	CA,OPTAB(CA)	;GET NATURE OF OP CODE.
	TLNE	CA,(BTYPE)	;IS IT A BYTE INSTRUCTION?
	SETOM	VARIAB		;THERE IS ONE THAT SWITCHES EFF ADD FROM LO TO HI SEG.
	TLNN	CA,(PTYPE)	;PC-SENSITIVE INSTRUCTION?
	JRST	SIMUL		;NO.
	HALT	SIMULATION FAILS ON UNEXPECTED PC-SENSITIVE INSTR.
XLUUO:	HLRO	CA,@SIMPC	;GET THE INDIRECT BIT OF THE UUO ITSELF.
	TRNN	CA,(@)		;IS THE INDIRECT BIT ON?
	SETZB	CA,VARIAB	;NO.	NO NEED TO CONTINUE SIMULATION.
	MOVE	CA,SIMPC	;GET THE ADDRESS OF THE ACTUAL UUO.
	HRLI	CA,(JRST)	;PREPARE TO EXECUTE THE UUO FROM THE HIGH SEG
	MOVEM	CA,SIMINSTR
	JRST	SIMUL
XCALLI:	HRRZ	CA,EFFADD	;GET THE NUMBER OF THE CALLI.
	CAIG	CA,115		;IGNORE ALL CALLI'S LESS THAN TRMOP.
	JRST	SIMUL
	LDB	CA,PSIMAC	;GET THE SIMULATED INSTRUCTION'S AC.
	MOVE	CA,(CA)		;GET THE CONTENTS OF THAT AC.
	TRZN	CA,400000	;DOES IT POINT TO THE HIGH SEGMENT?
	JRST	SIMUL		;NO.
	TLC	CA,777777	;MAKE THE LENGTH NEGATIVE.
	SOS	USE(CA)		;MARK A DATA REFERENCE.
	AOBJN	CA,.-1
	JRST	SIMUL
SUBTTL INSTRUCTION SIMULATOR SECTION 4:	STORE THE SIMINSTR AND DO IT.
SIMUL:	SKIPGE	VARIAB		;NO. VARIABLE HIGH SEGMENT REFERENCE?
	JRST	SIMUL4		;YES. CAREFUL SIMULATION NEEDED.
	SOS	DECODE		;POINT TO THE SPOT IN CODE TABLE.
	MOVE	CA,SIMINSTR	;YES.	GET MODIFIED INSTRUCTION.
	MOVEM	CA,@DECODE
	JRST	@DECODE
SIMUL4:	XCT	SIMINSTR
	JRST	@DECODE		;THEN CONTINUE.
	AOS	DECODE		;UNLESS THE INSTRUCTION SKIPPED.
	JRST	@DECODE

XPOPJ:	HLRZ	CA,SIMINSTR	;GET INSTR BEING SIMULATED.
	CAIE	CA,(POPJ 17,)	;PRESUMABLY FOCAL ALWAYS USES 17.
	HALT	POPJ WITH NON-STANDARD ARGUMENT.
	MOVE	CA,[JRST DOPOPJ]
	MOVEM	CA,SIMINSTRUCTION
	JRST	SIMUL		;STORE A SHORT CUT.
DOPOPJ:	POP	17,CA		;REMOVE ONE FROM THE STACK.
	TRZE	CA,400000	;RELATIVE TO BEGINNING OF CODE.
	ADDI	CA,COD		;SIMULATED CODE.
	JRST	(CA)
XPUSHJ:	MOVE	CA,SIMINSTR	;GET INSTR BEING SIMULATED.
	TLC	CA,(<PUSHJ>^!<PUSH>)
	JRST	XJRST
XJSP:	MOVE	CA,SIMINSTR	;GET INSTR BEING SIMULATED.
	TLC	CA,(<JSP>^!<MOVE>)
XJRST:	TLZ	CA,37		;REMOVE I AND X FIELDS.
	HRRI	CA,SIMPC1	;POINT TO THE CURRENT SIMULATED PC.
	XCT	CA
	JRST	@SIMINSTRUCTION

STRP.H:	HRRE	CA,.JBTPC##	;WHERE DID THE TRAP COME FROM?
	CAIG	CA,COD+4000	;ABOVE SIMULATED CODE?
	CAIG	CA,COD		;NO. BELOW SIMULATED CODE?
	JRST	STRPH1		;YES.	AVOID SIMULATION.
	SUBI	CA,COD-400000	;NO.	PRETEND THAT WE DID.
	HRRM	CA,.JBTPC##	;PUT A SIMULATION THERE.
STRPH1:	SKIPN	CA,SIMAPR
	HALT	A TRAP OCCURRED WITHOUT .JBAPR SET UP
	TRZE	CA,400000	;DID HE THINK IT WAS THE HIGH SEGMENT?
	ADDI	CA,COD		;YES.	THAT'S O.K. LET HIM THINK THAT.
	JRST	@CA

PINS22:	POINT	23,SIMINS,35	;COVER I X AND E FIELDS.
PSIMOP:	POINT	9,@SIMPC,8	;THE OP CODE OF THE SIMULATED INSTRUCTION.
PSIMAC:	POINT	4,@SIMPC,12	;THE AC OF THE SIMULATED INSTRUCTION.
PSOPAC:	POINT	13,@SIMPC,12	;THE OP CODE AND AC OF THE SIMULATED INSTR.
VARIAB:	BLOCK	1	;ZERO MEANS EFFECTIVE ADDRESS IS CONSTANT.
LASTEF:	BLOCK	1	;THE LAST ADDRESS REFERENCED DURING EFF ADD CALC.
EFFADD:	BLOCK	1	;BUILD EFFECTIVE ADDRESS OF THE SIMULATED INSTR.
			;BITS 0-12 SHOW THE TYPE OF INSTRUCTION.
BYTADD:	BLOCK	1	;TEMPORARY STORAGE.
SIMAPR:	BLOCK	1	;PLACE TO SIMULATE CONTENTS OF .JBAPR
			;NON-ZERO MEANS EFF ADD IS VARIABLE.
			;NEGATIVE MEANS A VARIABLE HIGH SEG REFERENCE IS INVOLVED.
SIMPC:	BLOCK	1	;POINT TO THE INSTRUCTION BEING SIMULATED.
SIMPC1:	BLOCK	1	;POINT TO THE INSTRUCTION AFTER THE ONE BEING SIMULATED.
SIMINS:	BLOCK	1	;MAKE THE INSTRUCTION WHICH WE SIMULATE.
	END	BEGIN