	.TITLE	SNAP
/
/  26 JUN 78 (023; PDH) CHANGE OUTPUT LUN TO 16 FROM 6
/  23 MAY 78 (022; PDH) SAVE X10 WHEN DOING I/O, IN CASE 'SNAP' CALLED
/			BY EXEC MODE TASK; '.BLOCK N' IN .ASCII STATEMENT
/			MUST BE INITIALIZED BECAUSE THE SYSTEM INITIALIZES
/			ALL '.BLOCK' AREAS TO 400000 (UNDEFINED VARIABLE)
/  26 JAN 77 (021; PDH) CHANGE ORDER OF SAVING FP REGS FOR GUARD BIT
/   6 JAN 77 (020; PDH) OUTPUT ADDRESS WITH VARIABLES
/  14 NOV 76 (019; PDH) CORRECT OUTPUT OF FMQ WHEN FMA IS NEGATIVE
/   5 OCT 76 (018; PDH) STEP PAST ARGUMENTS WHEN NO VARIABLE OUTPUT
/  23 AUG 76 (017; PDH) CHANGE MACRO DEFINITION
/  16 AUG 76 (015; PDH) TIDY UP HEADING A LITTLE.
/  13 AUG 76 (010; PDH) OMIT VARIABLE OUTPUT ON DEMAND
/  12 AUG 76 (005; PDH) CONVERT DATE & TIME TO DECIMAL
/  30 JUL 76 - PAUL HENDERSON
/
/  SUBROUTINE TO PERFORM THE ACTUAL OUTPUT SPECIFIED BY THE
/  'SNAP' MACRO.
/  THE 'SNAP' MACRO HAS THE FOLLOWING INVOCATION:
/
/	SNAP	ID,CODE,BEGIN,END
/
/  WHERE:	ID    IS A DECIMAL NUMBER NOT GREATER THAN 511
/		CODE  SPECIFIES WHICH REGISTERS TO DUMP
/		BEGIN IS THE ADDRESS TO START DISPLAYING CORE LOCATIONS
/		END   IS THE LAST ADDRESS TO DISPLAY
/
/  PRESENTLY IMPLEMENTED VALUES FOR CODE ARE:
/
/    0 DISPLAY SPECIFIED VARIABLES ONLY
/    1 DISPLAY  L AC MQ XR LR  IN ADDITION TO VARIABLES
/    2 DISPLAY FLOATING POINT REGISTERS
/    4 DISPLAY CONTENTS OF AUTO-INDEX REGISTERS.
/  400 OMIT DISPLAY OF SPECIFIED VARIABLES
/
/  THE BITS ARE TESTED INDIVIDUALLY, SO THE NUMBERS MAY BE MICRO-CODED.
/
	.DEC
LP=16		/ LUN TO WHICH THE SNAP IS OUTPUT		/(023)
	.OCT
/
X10=10
X11=11
IDX=ISZ		/ INDEX POINTER, SKIP NEVER EXPECTED
SET=ISZ		/ SET A FLAG NON-ZERO
LJE=715400
SJE=715600
UNDLD=713170
UNDST=713770
UNDLQ=715170
UNSWQ=715270
/
	.GLOBL	.SNAP,PACK
/
	.EJECT
/  IMMEDIATELY ON ENTRY, SAVE ALL REGISTERS, AS THEY ARE NOT SAVED
/  BY THE SYSTEM ON AN I/O CALL
/
.SNAP	XX
	DZM	VFLAG		/ CLEAR 'VARIABLES BEING PRINTED' FLAG
	DAC	AC		/ SAVE AC
	CLA!RAL
	DAC	LINK
	PXA
	DAC	XR
	PLA
	DAC	LR
	LACQ
	DAC	MQ
	LACS
	TCA
	AND	(77
	XOR	(640400		/ PREPARE FOR STEP COUNTER RESTORATION
	DAC	SC		/ (THIS IS THE WAY THE SYSTEM DOES IT)
	SJE;	JEA		/ STORE JEA TO SAVE GUARD BIT
	UNDST;	EPA		/ SAVE EPA, FMA1, FMA2
	UNSWQ; 0
	UNDST;	FMQ		/ SAVE FMQ1, FMQ2
	LAC	FMQ+1
	AND	(377777
	DAC	FMQ1		/ MOVE FMQ VALUES TO PROPER PLACE
	LAC	FMQ+2		/ FOR OUTPUTTING
	DAC	FMQ2
	LAC	(X10
	DAC	GETP
	LAC	(X10SAV
	DAC	PUTP
	LAW	-10
	DAC	COUNT
SAVEL1	LAC*	GETP
	DAC*	PUTP		/ SAVE AUTO-INDEX REGISTERS
	IDX	GETP
	IDX	PUTP
	ISZ	COUNT
	JMP	SAVEL1
/
	.EJECT
/  THE REGISTERS HAVE NOW BEEN SAVED.  BEGIN TO PERFORM THE
/  EXPECTED OUTPUT.
/  GET THE NAME OF THE CALLING TASK CONVERT TO ASCII, AND
/  STORE IN THE HEADER LINE.  THE COMMENTS HAVE ASSUMED THAT
/  THE NAME OF THE TASK IS 'ABCDEF'.  FOR PURPOSES OF FORMATTING,
/  THE ASCII GENERATED WILL BE: ' ABCD' 'EF, '
/
ONCE	CAL	TSKNAM		/ GET THE NAME
/
/  THERE MUST BE AT LEAST 100 (OCTAL) WORDS IN THE IMAGE BUFFER WHICH
/  EXTENDS TO 'GDATE-1'.
/
IMAGE	LAC	(TSKNAM+2	/ THE IMAGE BUFFER LIVES HERE IN
	DAC	GETP		/ ONCE-ONLY CODE TO GET THE NAME
	LAW	-2		/ OF THE CALLING TASK AND TO
	DAC	LCOUNT		/ BUILD THE HEADER.
IM1	LAW	-3
	DAC	DCOUNT		/ 3 CHARACTERS PER .SIXBT WORD
	LAC*	GETP		/ GET FIRST WORD
	LMQ			/ AND STASH IT IN MQ
IM2	LLSS	1006		/ SHIFT OUT A CHARACTER
	SNA
	JMP	OKLONG		/ HAVE DISCOVERED NULL CHAR.  END OF NAME
	IDX	COUNT		/ COUNT NUMBER OF NON-ZERO CHARACTERS
	ISZ	DCOUNT
	JMP	IM2		/ TEST NEXT CHARACTER THIS WORD
	IDX	GETP		/ POINT TO NEXT WORD
	ISZ	LCOUNT		/ END OF NAME?
	JMP	IM1		/ NOT YET.
	JMP	OKLONG		/ YES.  (HAVE COUNTED 6 CHARACTERS)
/
CKNAME	XX
	ISZ	COUNT		/ SUBROUTINE TO CHECK IF WE HAVE
	JMP*	CKNAME		/ PACKED UP ENOUGH CHARACTERS FOR
	JMP	NAMEND		/ THE TASK NAME.
/
OKLONG	LAC	COUNT		/ FORM 2'S COMPLEMENT OF CHARACTER COUNT
	TCA
	DAC	COUNT
	LAC	TSKNAM+2
	SPA!STL			/ THIS OPERATION SETS THE LINK CORRECTLY
	CLL			/ TO CONVERT FROM .SIXBT TO 7-BIT
	LRS	10		/ SHIFT TO CORRECT CHARACTER PLACE
	AND	(003760		/ SAVE ONLY DESIRED CHARACTER
	XOR	(200000		/ LEADING SPACE
	DAC	TKNM		/ HAVE NOW GENERATED ' A'
	JMS	CKNAME
/
	.EJECT
	LAC	TSKNAM+2
	LLS	6		/ EXTRACT 2ND CHARACTER
	SPA!STL
	CLL
	LRS	17
	AND	(17
	XOR	TKNM
	DAC	TKNM
	LACQ
	AND	(700000
	DAC	TKNM+1		/ ' AB'
	JMS	CKNAME
	LAC	TSKNAM+2	/ 3RD CHARACTER
	LLS	14
	SPA!STL
	CLL
	LRS	4
	AND	(077400
	XOR	TKNM+1
	DAC	TKNM+1		/ ' ABC'
	JMS	CKNAME
	LAC	TSKNAM+3	/ 4TH CHARACTER
	SPA!STL
	CLL
	LRS	13
	AND	(000376
	XOR	TKNM+1
	DAC	TKNM+1		/ ' ABCD'
	JMS	CKNAME
	LAC	TSKNAM+3	/ 5TH CHARACTER
	LLS	6
	SPA!STL
	CLL
	RAR
	AND	(774000
	DAC	TKNM+2		/ ' ABCD' 'E'
	JMS	CKNAME
	LAC	TSKNAM+3	/ LAST CHARACTER
	LLS	14
	SPA!STL
	CLL
	LRS	10
	AND	(003760
	XOR	TKNM+2
	DAC	TKNM+2		/ ' ABCD' 'EF, '
NAMEND	LAC	.+2		/ HAVE NOW PACKED UP COMPLETE TASK NAME.
	DAC	ONCE		/ BYPASS AFTER 1ST TIME
	JMP	GDATE
/
	.EJECT
/  GET DATE AND TIME FROM SYSTEM
/
GDATE	CAL	DATE
	LAC	DATE+3		/ DAY
	JMS	TWOC		/ CONVERT TO TWO ASCII CHARACTERS (PACKED)
	DAC	DD
	LAC	DATE+2		/ MONTH
	AAC	-1
	RCL
	TAD	(MONTHS		/ POINT TO CORRECT MONTH
	DAC	GETP
	LAC*	GETP
	IDX	GETP
	DAC	MONTH		/ MOVE ASCII MONTH TO HEADER BUFFER
	LAC*	GETP
	DAC	MONTH+1
	LAC	DATE+4		/ YEAR
	JMS	TWOC
	DAC	YY
	LAC	DATE+5		/ HOUR
	JMS	TWOC
	DAC	HH
	LAC	DATE+6		/ MINUTE
	JMS	TWOC
	DAC	MM
	LAC	DATE+7		/ SECOND
	JMS	TWOC
	DAC	SS
/
	.EJECT
/  GET CALLER SPECIFIED ID AND PUT IN HEADER
/
	LAC*	.SNAP
	AND	(777		/ TRIM OFF CODE BITS
	JMS	THREEC		/ PACK FIRST TWO DIGITS
	DAC	ID
	LAC	CODEID
	CLQ!LRSS 12		/ MOVE 3RD DIGIT TO CORRECT PLACE IN MQ
	LAC	(030032		/ DIGIT IN 4TH, CR IN 5TH CHAR POSITION
	OMQ			/ ADD IN DIGIT PART
	DAC	ID+1		/ HEADER IS NOW READY FOR OUTPUT
	CAL	ATTACH		/ ATTACH OUTPUT DEVICE
	JMS	WAIT
	LAC	(BLANK
	JMS	WRITEH		/ OUTPUT 3 BLANK LINES AT BEGINNING
	JMS	WAIT
	LAC	(HEADER
	JMS	WRITEH
/
	.EJECT
/  WE HAVE OUTPUT THE HEADER.  DISPLAY THE SPECIFIED REGISTERS.
/
	LAC*	.SNAP		/ GET CODE
	IDX	.SNAP		/ POINT TO FIRST VARIABLE ADDRESS
	DAC	CODE		/ SAVE TO TEST FOR CODE = 400+N
	SWHA
	RAR
	DAC	CODEID		/ SAVE UNTESTED PART OF CODE
	SNL			/ TEST FOR L, AC, MQ, XR, LR OUTPUT
	JMP	FPP
	JMS	WAIT
	LAC	(HEAD1		/ HEADER FOR CODE=1
	JMS	WRITEH
	LAC	(LINK-1
	DAC*	(X10
	LAW	-5
	JMS	SHOW		/ OUTPUT 5 WORDS, BEGINNING AT 'LINK'
/
FPP	LAC	CODEID
	RAR
	DAC	CODEID
	SNL
	JMP	AUINDX
	JMS	WAIT
	LAC	(HEAD2		/ HEADER FOR CODE=2
	JMS	WRITEH
	LAC	(EPA-1
	DAC*	(X10
	LAW	-6
	JMS	SHOW		/ DISPLAY FLOATING POINT REGISTERS
/
AUINDX	LAC	CODEID
	RAR
/
/  ANY NEW CODES MAY BE IMPLEMENTED BY SAVING UNTESTED CODE IN 'CODEID',
/  AND PERFORMING THE NEW TEST BEFORE OUTPUTTING SPECIFIED VARIABLES.
/
	SNL
	JMP	VAROUT
	JMS	WAIT
	LAC	(HEAD4		/ HEADER FOR CODE=4
	JMS	WRITEH
	LAC	(X10SAV-1
	DAC*	(X10
	LAW	-10
	JMS	SHOW
/
	.EJECT
/  REGISTERS HAVE NOW BEEN DISPLAYED.  OUTPUT THE VARIABLES
/  SPECIFIED IN THE CALLING SEQUENCE.
/
VAROUT	JMS	WAIT
	LAC	CODE		/ ARE WE TO OMIT VARIABLE OUTPUT?
	SMA
	JMP	VO2
	IDX	.SNAP		/ YES.  STEP PAST ARGUMENTS
	IDX	.SNAP
	JMP	DTACH		/ THEN DETACH AND EXIT
/
VO2	SET	VFLAG		/ SET 'VARIABLES BEING PRINTED' FLAG
	LAC	(HEADV		/ HEADER FOR USER VARIABLES
	JMS	WRITEH
	LAC*	.SNAP		/ GET START ADDRESS
	IDX	.SNAP
	DAC*	(X10
	LAC*	.SNAP		/ GET COUNT
	IDX	.SNAP
	JMS	SHOW
	JMS	WAIT
/
	.EJECT
/  THE SPECIFIED OUTPUT IS NOW FINISHED.  DETACH THE OUTPUT DEVICE, THEN
/  RESTORE ALL REGISTERS AND RETURN TO THE CALLING PROGRAM.
/
DTACH	CAL	DETACH
	JMS	WAIT
	LAC	(X10SAV
	DAC	GETP
	LAC	(X10
	DAC	PUTP
	LAW	-10
	DAC	COUNT
RESL1	LAC*	GETP
	DAC*	PUTP		/ RESTORE AUTO-INDEX REGISTERS
	IDX	GETP
	IDX	PUTP
	ISZ	COUNT
	JMP	RESL1
	UNDLQ;	FMQ		/ RESTORE FLOATING POINT REGISTERS
	UNDLD;	EPA
	LJE;	JEA
	LAC	(400000
	XCT	SC		/ RESTORE STEP COUNTER
	LAC	MQ
	LMQ
	LAC	LR
	PAL
	LAC	XR
	PAX
	LAC	LINK
	RAR
	LAC	AC
	JMP*	.SNAP		/ RETURN TO CALLING PROGRAM
/
	.EJECT
/  SUBROUTINE TO CONVERT 2 OCTAL DIGITS TO DECIMAL IN PACKED ASCII.  THE
/  DIGITS ARE IN AC 12-17 ON ENTRY, AND ARE CONVERTED FIRST TO DECIMAL,
/  THEN TO 7-BIT, LEFT JUSTIFIED ASCII IN THE ACCUMULATOR ON EXIT.
/  THERE IS ALSO AN ENTRY TO CONVERT 3 DIGITS TO ASCII.  THE FIRST 
/  TWO DIGITS ARE CONVERTED AS ABOVE, AND THE NUMERICAL VALUE OF THE
/  THIRD DIGIT IS IN 'CODEID' ON EXIT.
/
THREEC	XX
	DAC	CODEID		/ 3 DIGIT ENTRY.  SAVE VALUE
	LAC	THREEC		/ MOVE RETURN ADDRESS
	DAC	TWOC
	LAW	-3
	JMP	TWOC2		/ JUMP INTO TWO CHARACTER ROUTINE
/
TWOC	XX
	DAC	CODEID		/ STORE DIGITS TO BE CONVERTED
	LAW	-2
TWOC2	DAC	OFFSET		/ NUMBER OF DIGITS CALLED FOR
	LAW	-3
	DAC	DCOUNT		/ ALWAYS CONVERT 3 DIGITS
	LAC	(THREE		/ CONVERTED DIGITS
	DAC	GETP
	LAC	(DECDIG		/ POINTERS FOR THE CONVERSION
	DAC	PUTP
CVRT	LAC*	GETP		/ GET NEXT DIVISOR
	DAC	DIVSR
	LAC	CODEID		/ GET NUMBER TO BE CONVERTED
	CLL
	IDIV
DIVSR	XX
	DAC	CODEID		/ SAVE NEW REMAINDER
	LACQ			/ GET DIVIDEND
	DAC*	PUTP		/ PUT IN BUFFER
	IDX	GETP		/ POINT TO NEXT DIVISOR
	IDX	PUTP		/ POINT TO NEXT PLACE IN 'DECDIG'
	ISZ	DCOUNT		/ FINISHED WITH CONVERSION?
	JMP	CVRT		/ NO.  DO ANOTHER DIGIT
OFFSET	XX			/ 'LAW -2' OR 'LAW -3'
	TAD	PUTP
	DAC	PUTP		/ BACK UP POINTER
	LAC*	PUTP		/ GET 1ST CONVERTED VALUE
	IDX	PUTP
	ALSS	7		/ SHIFT FOR NEXT ASCII CHARACTER
	XOR*	PUTP		/ GET 2ND CONVERTED VALUE
	XOR	(014060		/ INCLUDE THE ASCII CONVERSION
	ALS	4		/ LEFT JUSTIFY THE 2 CHARACTERS
	JMP*	TWOC		/ LEAVE WITH ASCII IN AC
/
	.EJECT
/  SUBROUTINE TO OUTPUT HEADER.  ENTER WITH ADDRESS OF HEADER IN AC.
/
WRITEH	XX
	DAC	LBUF		/ INSERT INTO WRITE CPB
	CAL	WRITEB		/ BLANK LINE
	JMS	WAIT
	CAL	WRITEL	/ SPECIFIED LINE
	JMP*	WRITEH
/
/  SUBROUTINE TO WAIT FOR EVENT VARIABLE TO BE SET.  IF EVENT VARIABLE
/  IS SET NEGATIVE, SHOW IT IN A TERMINAL I/O ERROR ON THE MCR TERMINAL.
/
WAIT	XX
	CAL	WAITF
	LAC	EV		/ CHECK FOR GOOD EVENT VARIABLE
	SMA!TCA
	JMP*	WAIT
	DAC	CODEID		/ SAVE COMPLEMENTED EV
	LRSS	3		/ SHIFT OUT LOW ORDER DIGIT
	CLQ!LRS	6		/ TWO DIGITS NOW IN MQ
	LAC	(6		/ THIS CONVERTS TO ASCII
	LLSS	3		/ FIRST CHARACTER NOW IN IMAGE POSITION
	ALSS	4		/ MAKE ROOM FOR SECOND ASCII CONVERSION
	XOR	(6		/ INSERT THE CONVERSION
	LLSS	7		/ LEFT JUSTIFY THE TWO CHARACTERS
	XOR	(6		/ CONVERSION FOR 3RD DIGIT
	DAC	ERRNUM		/ INSERT IN ERROR BUFFER
	LAC	CODEID
	CLQ!LLS	17		/ PLACE 3RD DIGIT
	DAC	ERRNUM+1
	CAL	WRTERR		/ ANNOUNCE ERROR ON MCR TERMINAL
	CAL	(10		/ AND EXIT.
/
	.EJECT
/  SUBROUTINE TO OUTPUT THE DATA.  LEADING ZEROS ARE CONVERTED TO SPACES,
/  AND ONLY 8 NUMBERS ARE OUTPUT PER LINE.
/  ON ENTRY, X10 IS POINTING AT THE DATA, AND THE AC CONTAINS THE
/  2'S COMPLEMENT OF THE NUMBER OF DATA WORDS TO PROCESS.
/
SHOW	XX
	DAC	COUNT		/ STORE WORD COUNT
SHOW1	LAW	-10
	DAC	LCOUNT		/ 8 NUMBERS PER LINE
	LAC	(IMAGE-1
	DAC*	(X11
	LAC	VFLAG		/ ARE WE PRINTING THE USER VARIABLES?
	SNA
	JMP	SHOW2		/ NO.  NO ADDRESS NEEDED
	LAC*	(X10
	IAC			/ GET ADDRESS OF DATA
	JMS	SHOWS		/ DISPLAY IT AS FIRST ITEM ON LINE
	LAW	57		/ '/' SEPARATES ADDRESS FROM DATA
	DAC*	X11
	LAW	11		/ TAB SEPARATES ADDRESS FROM DATA
	DAC*	X11
/
SHOW2	LAC*	X10		/ GET DATA ITEM
	JMS	SHOWS
	LAW	11
	DAC*	X11		/ TAB FOLLOWS THE NUMBER
	ISZ	COUNT		/ HAVE WE PROCESSED THE REQUIRED DATA?
	SKP
	JMP	LINEND		/ YES.  TERMINATE OUTPUT
	ISZ	LCOUNT		/ NO.   HAVE WE FILLED THE LINE?
	JMP	SHOW2		/ NO.   GO FOR MORE DATA
/
	.EJECT
LINEND	LAW	15		/ APPEND CARRIAGE RETURN TO LINE
	DAC*	X11
	LAC	(IMAGE
	DAC	PCK+1
	LAC	(LINE+2
	DAC	PCK+2		/ POINTERS FOR PACK
	LAC*	(X10		/ SAVE X10 IN CASE EXEC MODE	/(022)
	DAC	X10KEP						/(022)
	JMS	WAIT		/ WAIT FOR PREVIOUS OUTPUT
PCK	JMS*	PACK
	0; 0
	SMA
	JMP	PCK
	LAC	(LINE
	DAC	LBUF		/ PUT HEADER POINTER IN CPB
	CAL	WRITEL		/ WRITE OUT THE DATA
	LAC	X10KEP		/ RESTORE X10			/(022)
	DAC*	(X10						/(022)
	LAC	COUNT		/ HAS THE TOTAL COUNT EXPIRED?
	SPA
	JMP	SHOW1		/ NO.  PROCESS SOME MORE DATA
	JMP*	SHOW		/ YES.  RETURN
/
/  SUBROUTINE TO OUTPUT EACH DATA WORD
/
SHOWS	XX
	LMQ			/ SAVE DATA WORD IN MQ
	LAW	-5
	DAC	DCOUNT		/ 5 DIGITS IN LOOP AND 1 AT END
	DAC	LEAD0		/ SET LEADING ZEROS FLAG
SHOWS1	LLSS	1003		/ SHIFT OUT A DIGIT
	SZA
	JMP	STORE		/ CONVERT NON-ZERO VALUES TO ASCII
	LAC	LEAD0
	SNA			/ CHECK FOR LEADING ZERO
	JMP	STORE
	LAW	40		/ CONVERT LEADING ZERO TO SPACE
	JMP	PUT
STORE	DZM	LEAD0		/ CLEAR LEADING ZERO FLAG
	AAC	60
PUT	DAC*	X11		/ CONVERT TO ASCII AND STORE
	ISZ	DCOUNT
	JMP	SHOWS1
	LLSS	1003		/ SHIFT OUT FINAL DIGIT
	AAC	60		/ FINAL DIGIT IS NEVER LEADING ZERO
	DAC*	X11
	JMP*	SHOWS
/
	.EJECT
ATTACH	2400;	EV;	LP
DETACH	2500;	EV;	LP
DATE	24;	EV;	.BLOCK 6
TSKNAM	25;	EV;	.BLOCK 2
WAITF	20;	EV
WRTERR	2700;	EV;	 3; 2; IOERR
WRITEL	2700;	EV;	LP; 2;LBUF
WRITEB	2700;	EV;	LP; 2; BLANK
MONTHS	.ASCII	' JAN '
	.ASCII	' FEB '
	.ASCII	' MAR '
	.ASCII	' APR '
	.ASCII	' MAY '
	.ASCII	' JUN '
	.ASCII	' JUL '
	.ASCII	' AUG '
	.ASCII	' SEP '
	.ASCII	' OCT '
	.ASCII	' NOV '
	.ASCII	' DEC '
BLANK	2002; 0; .ASCII ' '<15>
HEADER	16002;VFLAG
	.ASCII	'**** SNAP **** '
TKNM	.ASCII	' A'<0><0><0><0><0><0>', '
DD	0; 0	/ USE 0'S BECAUSE DD+1 NOT SET			/(022)
MONTH	.BLOCK	2
YY	.ASCII	'YY'<0>'  '
HH	.ASCII	'HH'<0>':'
MM	.ASCII	'MM'<0>':'
SS	.ASCII	'SS'<0>'  ID='
ID	.BLOCK	2
/
HEAD1	7002;X10KEP
	.ASCII	'     L'<11>'  AC'<11>'  MQ'<11>'  XR'<11>'  LR'<15>
HEAD2	11002; 0
	.ASCII	'  EPA'<11>' FMA1'<11>' FMA2'<11>' FMQ1'<11>' FMQ2'<11>
	.ASCII	'  JEA'<15>
HEAD4	7002; 0
	.ASCII	<11>'AUTO-INDEX REGISTERS 10-17'<15>
HEADV	4002; 0; .ASCII 'USER VARIABLES'<15>
IOERR	7002;EV
	.ASCII	'SNAP I/O ERR -'
ERRNUM	.BLOCK	2
	.ASCII	'  LUN 6'<15>
	.EJECT
LINE	22002; 0
	.BLOCK	40
GETP;PUTP;COUNT;LCOUNT;DCOUNT;LEAD0
DECDIG;CODE			/ IMAGE BUFFER FOR OCTAL-DECIMAL CONVERSION
CODEID				/ THIRD CONVERTED DIGIT LEFT HERE
THREE	144;	12;	1	/ TABLE OF CONVERSION VALUES
FMQ	.BLOCK	3		/ ACTUAL STORAGE OF (EXP AND) FMQ
/  *** NOTE *** THE VARIABLES IN THE FOLLOWING LINES MUST NOT BE CHANGED
/		UNLESS YOU KNOW WHAT YOU ARE DOING.
/
LINK;AC;MQ;XR;LR;SC
EPA;FMA1;FMA2;FMQ1;FMQ2;JEA
X10SAV	.BLOCK	10
	.END
