Google
 

Trailing-Edge - PDP-10 Archives - klad_sources - klad.sources/dskfam.mac
There are no other files named dskfam.mac in the archive.
SUBTTL	DIAGNOSTIC SECTION

PGMNAM:	ASCIZ/
DECSYSTEM 2020 INSTRUCTION TIMING TEST (DSKFA)
/
;*START INITIALIZES THE PROCESSOR AND PI SYSTEM, INITIALIZES
;*SOME ACS AND MEMORY LOCATIONS, AND THEN CYCLES THROUGH THE
;*MAIN TABLE, CALLING VARIOUS SUBROUTINES TO DO ALL THE WORK.

STARTA:
START:	SETZM	$ONETM
	SETZM	CONSW
	PGMINT
	MOVE	41
	MOVEM	SAV41#
	MOVEI	^D2000+CACHE
	SKIPN	CSHFLG		;USING CACHE ?
	MOVEI	^D512+CACHE
	MOVEM	CODSIZ#
	MOVEI	MONUUO		;SETUP MONITOR INSTRUCTION TRAP
	MOVEM	430
	MOVEM	431
	CONO	PI,PICLR	;CLEAR PI SYSTEM
	MOVE	[JSR	ITRCLK]
	MOVEM	42		;SETUP CLOCK INTERRUPT
	MOVEI	0,60
	MOVEM	0,RADLSP
	MOVE	[1.0]		;SETUP MAX CLOCK OPERANDS
	MOVEM	MCARG1
	SETZM	MCARG2
	MOVE	[-1.5]
	MOVEM	MCARG3
	PNTNM
LOOP:	MOVEI	TB,TABLE	;INITIALIZE TABLE POINTERS
	SETZ	3,		;CLEAR 3
	GO	SETRUN		;SET UP THE TIMING LOOP
	GO	TIMEX		;EXECUTE THE TIMING LOOP
	GO	MESSAGE		;PRINT THE ID MESSAGE
	GO	CALC		;CALCULATE AND PRINT TIMING DATA
	HRRZ	TB,7(TB)	;STEP TO NEXT TABLE ENTRY
	JUMPN	TB,LOOP+1	;DONE?
	PNTMSG	[ASCIZ/
TEST COMPLETED
/]
	EOPUUO
;*SETRUN TAKES 1, 2, OR 3 INSTRUCTIONS FROM THE CURRENT TABLE
;*ENTRY AND SPREADS THEM THROUGH AN AREA OF FREE CORE STARTING
;*AT LOCATION CODE.  THE INSTRUCTIONS ARE MADE INTO A LOOP BY
;*APPENDING AN AOJA INSTRUCTION TO THE END OF THE LOOP. SETRUN
;*COUNTS THE NUMBER OF REPETITIONS (ITERATIONS) OF THE 1-,2-,
;*OR 3-INSTRUCTION GROUP AS PLACED IN CORE.  IT ALSO COUNTS THE
;*NUMBER OF INSTRUCTIONS IN THE GROUP.

SETRUN:	MOVEI	T,CODE		;FIRST INSTRUCTION GOES INTO LOCATION CODE
	MOVEI	T1,1		;A 1 FOR COMPARING WITH ADDRESSES
	MOVEI	C,1		;INITIALIZE COUNT OF ITERATIONS PER LOOP
SET1:	SETZM	WDSPI		;INITIALIZE COUNT OF WORDS PER ITERATION
	SKIPE	TT,(TB)		;1ST INSTRUCTION USED?
	GO	SET0		;YES, SO PLACE IT IN THE LOOP
	SKIPE	TT,1(TB)	;2ND INSTRUCTION USED?
	GO	SET0		;YES
	SKIPE	TT,2(TB)	;3RD INSTRUCTION USED?
	GO	SET0		;YES
	CAMGE	T,CODSIZ	;NEAR END OF FREE SPACE?
	AOJA	C,SET1		;NO, SO REPEAT
	MOVE	TT,[AOJA CC,CODE] ;YES, SO CLOSE THE TIMING LOOP
	MOVEM	TT,(T)
	RTN			;RETURN

;*SET0 PUTS ONE INSTRUCTION INTO THE FREE CORE.  THE ADDRESS OF
;*EACH INSTRUCTION IS MODIFIED ACCORDING TO THE RULE:
;*IF ADR NOT=1, NO CHANGE
;*IF ADR = 1, CHANGE TO .+1

SET0:	AOS	WDSPI		;ONE MORE WORD PER ITERATION
	CAIN	T1,(TT)		;ADDRESS = 1?
	HRRI	TT,1(T)		;YES, SO SUBSTITUTE .+1
	MOVEM	TT,(T)		;PLACE IN LOOP
	AOJA	T,CPOPJ		;INCREMENT FREE SPACE POINTER

WDSPI:	0			;WORDS PER ITERATION
;*TIMEX INITIALIZES A COUNTER FOR THE NUMBER OF TIMES AROUND THE
;*CODE LOOP, ANOTHER COUNTER FOR COUNTING CLOCK TICKS, AND
;*INITIALIZES THE PROCESSOR.  THE PI IS TURNED ON AND TIMEX WAITS
;*FOR THE BEGINNING OF A CLOCK CYCLE. IT THEN TURNS OFF THE CLOCK
;*FLAG, ASSIGNS A PI CHANNEL TO THE PROCESSOR, AND ENTERS THE 
;*TIMING LOOP

TIMEX:	MOVEI	CC,0		;CLEAR NO. OF LOOPS PER SECOND
	SETZM	TEMP
	MOVE	[JSP LOCUUO]
	MOVEM	41
	CONO	APR,1B21!1B22!1B30	;CLEAR TIMER
	WRINT	[<^D1000>B23]	;SET TIMER TO 1 SEC
	CONSo	APR,1B30	;WAIT FOR FLAG TO SET
	JRST	.-1

	CONO	APR,1B20!1B22!1B30!1B31!LAPRP1	;ENABLE TIMER
	CONO	PI,1B23!1B25!1B28!PICHN1
	JRST	CODE		;PERFORM TIMING LOOP

TICKX:	0			;CLOCK-TICK COUNTER

;*MESSAGE EXTRACTS THE ADDRESS OF THE ID MESSAGE FROM THE 
;*MAIN TABLE AND PRINTS IT.

MESSAG:	HRRZ	T1,3(TB)	;GET MESSAGE ADDRESS
	JUMPE	T1,CPOPJ1	;IF MESSAGE NULL, SKIP RETURN
	MOVE	0,T1
	PNTAL
	RTN

;*CALC1 EXTRACTS ONE TIMING DATUM FROM THE TABLE
;*AND ADDS OR SUBTRACTS IT.

CALC1:	HLRZ	TT,(T1)		;GET DATUM TO ADD OR SUBTRACT
	SKIPL	T1		;ADD ?
	ADD	T,TT		;YES
	SKIPG	T1		;SUBTRACT ?
	SUB	T,TT		;YES
	RTN			;RETURN
;*ITRCLK COUNTS OF THE CLOCK TICKS.  AT THE END OF THE SELECTED
;*INTERVAL, IT COMPUTES THE TIME TAKEN (IN N.S.) FOR ONE
;*ITERATION OF THE ORIGINAL 1-, 2-, OR 3-INSTRUCTION GROUP BY:
;*1) MULTIPLYING THE NUMBER OF COMPLETE TIMES AROUND THE LOOP
;*BY THE NUMBER OF ITERATIONS PER ONCE AROUND
;*2) COMPUTING THE NUMBER OF WORDS INTO THE LAST TIME AROUND
;*BY SUBTRACTING THE FIRST ADDRESS OF THE LOOP FROM THE
;*INTERRUPTED PC.
;*3) DIVIDING ITEM 2) BY THE NUMBER OF WORDS PER ITERATION TO GIVE THE
;*NUMBER OF ITERATIONS EXECUTED IN THE LAST (PARTIAL) TRIP AROUND THE LOOP.
;*4) ADDING 1) TO 3) TO GIVE TOTAL ITERATIONS.
;*5) TAKING THE RECIPROCAL OF 4) , APPROPRIATELY SCALED, TO GIVE
;*NANOSECONDS PER ITERATION.

;*NOTE:	TIME SPENT IN CLOCK INTERRUPTS IS IGNORED.

ITRCLK:	0
	CONI	APR,0
	TRNN	0,1B31		;8080 ?
	JRST	.+3		;NO, CLOCK
	CONO	APR,1B22!1B31!LAPRP1
	JEN	@ITRCLK
	CONO	APR,1B22!1B30!LAPRP1	;CLEAR TIMER
	CONO	PI,PIOFF	;CLEAR PI SYSTEM
	MOVE	SAV41
	MOVEM	41
	JSP	0,.+1
	TLNE	USERF		;STILL IN USER MODE ?
	JRST	.+6		;YES, NO NEED TO GO BACK TO USER
	SKIPE	MONFLG		;NO, SUPPOSED TO BE IN USER ?
	JRST	.+4		;NO
	JRSTF	@.+1		;YES, RETURN TO USER
	USERF,,.+1
	JRST	1,.+1
	IMUL	CC,C		;CONVERT LOOPS TO ITERATIONS
	HRRZ	T,ITRCLK	;GET TRAPPED LOCATION
	SUBI	T,CODE		;COMPUTE TOTAL WORDS IN LAST GO-AROUND
	IDIV	T,WDSPI		;COMPUTE ITERATIONS IN LAST GO-AROUND
	ADD	T,CC		;COMPUTE TOTAL ITERATIONS
	MOVE	TT,[^D1000000000] ;10E+9
	IDIV	TT,T		;ANSWER IS NS.
	HRLM	TT,3(TB)	;SAVE RESULT IN MAIN TABLE
	RTN			;RETURN
;*CALC TAKES THREE ADDITIVE COMMANDS FROM THE CURRENT TABLE
;*ENTRY.  EACH COMMAND SAYS DO NOTHING, ADD IN THE TIME FOR
;*THE SPECIFIED PREVIOUS TABLE ENTRY (OR FOR THIS ENTRY), OR
;*SUBTRACT THE TIME FOR THE SPECIFIED TABLE ENTRY.  THE RESULT
;*IS TYPED IN DECIMAL FOLLOWED BY "NS". IN OTHER WORDS, THE
;*NUMBER ACTUALLY TYPED OUT IS THE SUM OR DIFFERENCE OF UP TO
;*3 PREVIOUSLY MEASURED TIMING RESULTS.

CALC:	HLRZ	T,3(TB)		;INIT NET TIME
	SKIPE	T1,4(TB)	;1ST ARGUMENT ACTIVE?
	GO	CALC1		;YES, GO AND OR SUBTRACT TO NET TIME
	SKIPE	T1,5(TB)	;2ND ARG?
	GO	CALC1		;YES
	SKIPE	T1,6(TB)	;3RD ARG?
	GO	CALC1		;YES
	HLRZ	T1,7(TB)
	ANDI	T1,777		;GET DIVISOR
	SKIPE	T1
	IDIV	T,T1		;DIVIDE IF DIVISOR NOT ZERO
	SKIPGE	T
	MOVEI	T,0		;REMOVE NEG. TIME INACCURACIES
	IDIVI	T,^D1000	;DIVIDE INTO US. AND NS.
	JUMPE	T,CALCNS	;IF NO US., PRINT AS NS.
	PUT	T+1		;SAVE NS.
	MOVE	0,T
	PNTDEC
	MOVEI	PERIOD
	PNTA
	GET	T		;GET NS. BACK
	ADDI	T,5		;ROUND AND
	IDIVI	T,^D10		;CHANGE TO 100THS OF USEC.
	MOVEI	0,^D2		;FORCE TWO DIGITS IN PNUM
	HRRM	RADLSC
	MOVE	0,T
	PNTDS
	MOVEI	0,^D10
	HRRM	RADLSC
	PNTMSG	[ASCIZ/ USEC.
/]
	RTN

CALCNS:	MOVE	0,T+1		;GET REMAINDER
	PNTDEC			;PRINT THE NUMBER OF NSEC.
	PNTMSG	[ASCIZ/ NSEC.
/]
	RTN
	LIT			;PUT PRECEEDING LITERALS HERE
	DEFINE	PLUS(X)<EXP TM'X>

	DEFINE	LESS(X)<XWD -1,TM'X>

	DEFINE	AUX (N,MESS)<ASCIZ !N - MESS !>

DEFINE	ENTR (LABEL,INS,MESS,CALC,FACTOR,USER)<
	XX=3
	IRP	INS,<IFG XX,<INS	;INSTRUCTION SET TO BE TIMED>
	XX=XX-1>
	IFG	XX,<REPEAT XX,<
	0			;NULL INSTRUCTION ENTRY>>
TM'LABEL:	0+IFNB <MESS>,<EXP .+5>	;XWD TIME,LOCN OF MSG
	XX=3
	IRP	CALC,<IFG XX,<CALC	;TIME CALCULATION>
	XX=XX-1>
	IFG	XX,<REPEAT XX,<
	0			;NULL CALCULATION ENTRY>>
	IF1 <ZZ=.>
	ZY=.
	XWD <IFNB <USER>,<1B18>+IFNB<FACTOR>,<^D'FACTOR>>,IFN ZY-ZZ,<E'LABEL>	;NEXT ENTRY
	RADIX	10
	IFNB	<MESS>,<AUX \<XYZ=XYZ+1>,<MESS>>;MESSAGE
	RADIX	8
E'LABEL:>

	XYZ=0			;INIT PRINTOUT STATEMENT COUNTER

TABLE:				;THE MAIN TABLE

ENTR 1,<LSH ^D15>

ENTR 2,<LSH ^D35>,BASIC CLOCK CYCLE IS,LESS(1),20

ENTR 5,MOVEI

ENTR 11,MOVEI (3),INDEXING TAKES,LESS(5)

ENTR 12,MOVEI @3,INDIRECT TAKES,LESS(5)

ENTR 13,MOVEI @3(3),INDEXING AND INDIRECT TAKES,LESS(5)

ENTR 14,MOVEI,MOVEI TAKES

ENTR 141,MOVSI,MOVSI TAKES

ENTR 15,MOVE 3,MOVE FROM AC TAKES

ENTR 16,MOVE MARG,MOVE FROM MEMORY TAKES

ENTR 161,MOVEM TEMP,MOVE TO MEMORY TAKES

ENTR 17,HRR MARG,HRR FROM MEMORY TAKES

ENTR 171,HRRZ MARG,HRRZ FROM MEMORY TAKES

ENTR 172,HLRZ MARG,HLRZ FROM MEMORY TAKES

ENTR 18,SETZ,SETZ TAKES

ENTR 181,SETZM TEMP,SETZM TAKES

ENTR 182,SETZB TEMP,SETZB TAKES

ENTR 183,SETO,SETO TAKES

ENTR 184,SETOM TEMP,SETOM TAKES

ENTR 185,SETOB TEMP,SETOB TAKES

ENTR 19,JRST 1,JRST TAKES

ENTR 191,<JRSTF @1,1>,JRSTF @MEM TAKES

ENTR 192,JUMPA 1,JUMPA TAKES

ENTR 193,<<JUMPN 3,1>>,JUMP THAT DOESN'T TAKES

ENTR 194,<<JUMPE 3,1>>,JUMP THAT DOES TAKES

ENTR 20,<JSR 1,1>,JSR TAKES

ENTR 201,JSP 1,JSP TAKES

ENTR 202,AOBJN 1,AOBJN TAKES

ENTR 203,SOJ,SOJ TAKES

ENTR 204,SOS TEMP,SOS TAKES

ENTR 205,AOJ,AOJ TAKES

ENTR 206,AOS TEMP,AOS TAKES

ENTR 207,<MOVE [400000000000],JFFO 1>,JFFO (1B0) TAKES,LESS(16)

ENTR 208,<MOVE [1],JFFO 1>,JFFO (1B35) TAKES,LESS(16)

ENTR 209,<MOVEI PTEMP-1,PUSH>,PUSH TAKES,LESS(5)

ENTR 210,<HRROI PTEMP,POP>,POP TAKES,LESS(5)

ENTR 211,1B3,MUUO TAKES,LESS(191)

ENTR 212,1B8,LUUO TAKES,<LESS(191),LESS(201)>

ENTR 21,<MOVEI PTEMP-1,PUSHJ 1>,PUSHJ TAKES,LESS(5)

ENTR 22,ADDI,ADD IMMEDIATE TAKES

ENTR 221,ADD [6],ADD FROM MEMORY TAKES

ENTR 222,ADDM TEMP,ADD TO MEMORY TAKES

ENTR 23,<MOVEI 525252,MUL [1]>,MUL (9 ADD/SUB - 18 SHIFTS) TAKES,LESS(5)

ENTR 231,<MOVEI 525252,IMULI 2>,IMULI TAKES,LESS(5)

ENTR 24,<MOVE [1],DIV [525252]>,DIV TAKES,LESS(16)

ENTR 241,<MOVEI 525252,IDIVI 2>,IDIVI TAKES,LESS(5)

ENTR 25,<MOVSI 201400,FIX>,FIX A FLOATING POINT ONE TAKES,LESS(5)

ENTR 26,<MOVE [1],FLTR>,FLTR AN INTERGER ONE TAKES,LESS(16)

ENTR 27,<MOVSI 200400,FAD [201400000000]>,FAD (1 RIGHT SHIFT) TAKES,LESS(5)

ENTR 28,<MOVSI 200400,FAD [210040000000]>,FAD (8 SHIFT RIGHT - 3 LEFT) TAKES,LESS(5)

ENTR 29,<MOVE [200525240000],FMP [1.0]>,FMP (7 ADD/SUB - 14 SHIFTS) TAKES,LESS(16)

ENTR 30,<MOVE [200525240000],FDV [1.0]>,FDV TAKES,LESS(16)

ENTR 31,DMOVE MARG,DMOVE FROM MEMORY TAKES

ENTR 311,DMOVEM MARG,DMOVEM TO MEMORY TAKES

ENTR 32,<DMOVE DFARG3,DFAD DFARG4>,DFAD (1 RIGHT SHIFT) TAKES,LESS(31)

ENTR 33,<DMOVE DFARG5,DFAD DFARG6>,DFAD (8 SHIFT RIGHT - 1 LEFT) TAKES,LESS(31)

ENTR 34,<DMOVE DFARG4,DFMP DFARG7>,DFMP (7 ADD/SUB - 32 SHIFTS) TAKES,LESS(31)

ENTR 35,<DMOVE DFARG7,DFDV DFARG4>,DFDV TAKES,LESS(31)

ENTR 36,<<CONO PI,>>,CONO PI TAKES

ENTR 361,<<CONI PI,>>,CONI PI TAKES

ENTR 362,<<CONO PAG,20000>>,CONO PAG TAKES

ENTR 363,<<DATAO PAG,[LLDUSB,,0]>>,DATAO PAG LOAD UBR TAKES

ENTR 364,<<DATAO PAG,[LLACBL,,0]>>,DATAO PAG LOAD AC BLK TAKES

ENTR 365,<<WRIO 3,@$WRIO>>,WRIO TAKES

ENTR 366,<<RDIO 0,@$RDIO>>,RDIO TAKES

ENTR 38,<LSH ^D35>,LOGICAL SHIFT (35 PLACES LEFT) TAKES

ENTR 39,<LSH -^D35>,LOGICAL SHIFT (35 PLACES RIGHT) TAKES

ENTR 40,<LSHC ^D71>,LOGICAL SHIFT COMBINED (71 PLACES LEFT) TAKES

ENTR 41,<LSHC -^D71>,LOGICAL SHIFT COMBINED (71 PLACES RIGHT) TAKES

ENTR 42,<<MOVE [350700,,[0]]>,<MOVEM TEMP>,<IBP TEMP>>,INCREMENT BYTE POINTER TAKES,<LESS (16),LESS (161)>

ENTR 43,<<MOVE [350700,,[0]]>,<MOVEM TEMP>,<ILDB TEMP>>,ILDB (7 BITS) TAKES,<LESS (16),LESS (161)>

ENTR 44,<<MOVE [350700,,TEMP]>,<MOVEM TEMP>,<IDPB TEMP>>,IDPB (7 BITS) TAKES,<LESS (16),LESS (161)>

ENTR 441,<<MOVE [350600,,[0]]>,<MOVEM TEMP>,<ILDB TEMP>>,ILDB (6 BITS) TAKES,<LESS (16),LESS (161)>

ENTR 442,<<MOVE [350600,,[0]]>,<MOVEM TEMP>,<IDPB TEMP>>,IDPB (6 BITS) TAKES,<LESS (16),LESS (161)>

ENTR 443,<<LDB [POINT 7,TEMP,6]>>,LDB (7 BITS - POS 6) TAKES

ENTR 444,<<LDB [POINT 7,TEMP,13]>>,LDB (7 BITS - POS 13) TAKES

ENTR 445,<<LDB [POINT 7,TEMP,20]>>,LDB (7 BITS - POS 20) TAKES

ENTR 446,<<LDB [POINT 7,TEMP,27]>>,LDB (7 BITS - POS 27) TAKES

ENTR 447,<<LDB [POINT 7,TEMP,34]>>,LDB (7 BITS - POS 34) TAKES

ENTR 448,<<DPB [POINT 7,TEMP,6]>>,DPB (7 BITS - POS 6) TAKES

ENTR 449,<<DPB [POINT 7,TEMP,13]>>,DPB (7 BITS - POS 13) TAKES

ENTR 450,<<DPB [POINT 7,TEMP,20]>>,DPB (7 BITS - POS 20) TAKES

ENTR 451,<<DPB [POINT 7,TEMP,27]>>,DPB (7 BITS - POS 27) TAKES

ENTR 452,<<DPB [POINT 7,TEMP,34]>>,DPB (7 BITS - POS 34) TAKES

ENTR 453,<<LDB [POINT 6,TEMP,5]>>,LDB (6 BITS - POS 5) TAKES

ENTR 454,<<LDB [POINT 6,TEMP,11]>>,LDB (6 BITS - POS 11) TAKES

ENTR 455,<<LDB [POINT 6,TEMP,17]>>,LDB (6 BITS - POS 17) TAKES

ENTR 456,<<LDB [POINT 6,TEMP,23]>>,LDB (6 BITS - POS 23) TAKES

ENTR 457,<<LDB [POINT 6,TEMP,29]>>,LDB (6 BITS - POS 29) TAKES

ENTR 458,<<LDB [POINT 6,TEMP,35]>>,LDB (6 BITS - POS 35) TAKES

ENTR 459,<<DPB [POINT 6,TEMP,5]>>,DPB (6 BITS - POS 5) TAKES

ENTR 460,<<DPB [POINT 6,TEMP,11]>>,DPB (6 BITS - POS 11) TAKES

ENTR 461,<<DPB [POINT 6,TEMP,17]>>,DPB (6 BITS - POS 17) TAKES

ENTR 462,<<DPB [POINT 6,TEMP,23]>>,DPB (6 BITS - POS 23) TAKES

ENTR 463,<<DPB [POINT 6,TEMP,29]>>,DPB (6 BITS - POS 29) TAKES

ENTR 464,<<DPB [POINT 6,TEMP,35]>>,DPB (6 BITS - POS 35) TAKES

ENTR 46,JFCL,JFCL TAKES

ENTR 47,CAI,CAI NO-OP TAKES

ENTR 471,<<CAIN 3,0>>,CAI THAT DOESN'T SKIP TAKES

ENTR 472,<<CAIE 3,0>,1>,CAI THAT SKIPS TAKES

ENTR 473,CAM,CAM NO-OP TO AC TAKES

ENTR 474,<<CAMN 3,3>>,CAM TO AC THAT DOESN'T SKIP TAKES

ENTR 475,<<CAME 3,3>,1>,CAM TO AC THAT SKIPS TAKES

ENTR 476,CAM TEMP,CAM NO-OP TO MEMORY TAKES

ENTR 477,<<CAMN 3,TEMP>>,CAM TO MEMORY THAT DOESN'T SKIP TAKES

ENTR 478,<<CAME 3,TEMP>,1>,CAM TO MEMORY THAT SKIPS TAKES

ENTR 482,<<TLNN 3,2>>,TLN NO SKIP TAKES

ENTR 483,<<TLNE 3,2>,1>,TLN SKIP TAKES

ENTR 484,<<TRNN 3,2>>,TRN NO SKIP TAKES

ENTR 485,<<TRNE 3,2>,1>,TRN SKIP TAKES

ENTR 486,<<TDNN 3,TEMP>>,TDN NO SKIP TAKES

ENTR 487,<<TDNE 3,TEMP>,1>,TDN SKIP TAKES

ENTR 488,<<TSNN 3,TEMP>>,TSN NO SKIP TAKES

ENTR 489,<<TSNE 3,TEMP>,1>,TSN SKIP TAKES

ENTR 490,<<SKIPN 3>>,SKIP TO AC THAT DOESN'T TAKES

ENTR 491,<<SKIPE 3>,1>,SKIP TO AC THAT DOES TAKES

ENTR 492,<<SKIPN TEMP>>,SKIP TO MEMORY THAT DOESN'T TAKES

ENTR 493,<<SKIPE TEMP>,1>,SKIP TO MEMORY THAT DOES TAKES

ENTR 49,EQV,EQV AC TO AC TAKES

ENTR 50,EQV TEMP,EQV MEMORY TO AC TAKES

ENTR 53,EXCH,EXCHANGE AN AC WITH AN AC TAKES

ENTR 54,EXCH TEMP,EXCHANGE AN AC WITH MEMORY TAKES

ENTR 55,XCT[JFCL],EXECUTE TAKES,LESS(46)

ENTR 56,<<MOVE [TEMP,,TEMP]>,BLT TEMP>,BLT MEMORY TO MEMORY TAKES,LESS(16)

ENTR 57,<<MOVE [0,,TEMP]>,BLT TEMP>,BLT AC TO MEMORY TAKES,LESS(16)