	.TITLE FTPADEVEN ROUTINE WHICH WILL PAD/EVEN AN OUTPUT BLOCK
	.IDENT	/11-MAY-83  V01.A/
;
;		V01.A	11-MAY-83	TWD	INITIAL RELEASE.
;
;	ROUTINE WHICH PADS AND/OR EVENS AN OUTPUT BLOCK.  USED FOR BOTH
;	THE PLAIN COPY ROUTINE AND THE CODE TRANSLATION ROUTINE.
;
;	CALLING SEQUENCE IS:
;		PUSHL	ADDRESS OF OUTPUT CHARACTER STRING.
;		PUSHL	# BYTES TO BE PADDED INTO OUTPUT BLOCK.
;		CALLS	#2,G^FT_PADEVEN
;
;	REGISTERS USED:
;		All registers are maintained as in the FT_PCOPY and FT_TRANS
;		routines except R3 which is used as a pointer into the output
;		routine and R0-R5 which may be modified by the move character
;		routines.  Registers R2-R5 are saved on entry to this routine.
;		The contents of R0-R1 should be saved in the calling program.
;	SPECIFIC REGISTER USAGE:
;		R0 - Not used.
;		R1 - Not used.
;		R2 - Not used.
;		R3 - Used as pointer into the output string.
;		R4-R9 - Not used.
;		R10 - Pointer to the FTCB.
;		R11 - Pointer to the FT I/O block.
;
;
	FTCBDEF
;
	.PAGE
	.SUBTITLE PAD OUTPUT BLOCK AND/OR EVEN THEM.
;
	.ENTRY	FT_PADEVEN,^M<R2,R3,R4,R5>	; SAVE REGISTERS AFFECTED
						; BY MOVE CHARACTER.
;
	MOVL	8(AP),R3	; SET UP THE DESTINATION ADDRESS.
;
P_PAD:	TSTL	4(AP)		; CHECK FOR NUMBER OF CHARACTERS WHICH
				; NEED TO BE PADDED TO FILL THE BLOCK.
	BEQL	10$		; IF NONE, GO EVEN BLOCK.
;
	MOVC5	#0,DUMMY,FTCB_B_PBLK(R10),4(AP),(R3)	; FILL WITH PAD CHAR.
;
10$:	BBC	#FLAG_V_EVEN,FTCB_W_FLAG(R10),20$	; CHECK ON EVENING?
;
	BLBC	FTCB_L_ACT_OUTBLK(R10),20$		; IS BLOCK EVEN?
;
;		EVEN REQUIRED BY CONDITIONS.
;
	MOVB	FTCB_B_EVEN(R10),(R3)		; MOVE THE EVEN CHARACTER TO
					; THE OUTPUT BLOCK USING THE ADDRESS
					; LEFT OVER FROM THE MOVE INSTRUCTIONS.
	INCL	FTCB_L_ACT_OUTBLK(R10)
;
20$:	RET		; RETURN TO CALLING ROUTINE.
;
DUMMY:	.LONG	0	; DUMMY MOVE LOCATION.
	.END
