	.TITLE	PACK BYTES

;	FORTRAN-CALLABLE BYTE-PACKING SUBROUTINE

;	CALLING CONVENTION:

;		CALL BPACK (BUFFER, IWDCNT)

;	IN WHICH:

;	BUFFER = START OF WORD BUFFER FROM WHICH WORDS
;		WILL BE EXTRACTED AND TO WHICH LOWER-ORDER BYTES
;		WILL BE SUCCESSIVELY PACKED INTO WORDS
;	IWDCNT = THE NUMBER OF RESULTANT PACKED WORDS DESIRED ( 1/2 THE 
;	NUMBER OF BYTES TO BE PACKED )

;	ALL NEW CODE: 17 MAY 77

;	PROGRAMMER: KEN DINWIDDIE
	.PAGE
	.MCALL	..V2..,.REGDEF

	..V2..

	.REGDEF

	.GLOBL	BPACK

BPACK:	TST	(R5)+		; ADVANCE POINTER TO FIRST ARGUMENT
	MOV	(R5)+,R0	; PICK UP BUFFER POINTER
	MOV	R0,R1		; AND PLACE IN R1 ALSO
	MOV	@(R5)+,R4	; PICK UP WORD COUNT
BPACK1:	MOV	(R0)+,R2	; PICK UP LEAST-SIGNIFICANT BYTE WORD 
	MOV	(R0)+,R3	; PICK UP MOST-SIGNIFICANT BYTE WORD
	MOVB	R2,(R1)+	; STORE LEAST-SIGNIFICANT BYTE
	MOVB	R3,(R1)+	; STORE MOST-SIGNIFICANT BYTE
	DEC	R4		; ACCOUNT FOR THIS WORD PROCESSED
	BNE	BPACK1		; DO MORE IF REQUIRED
	RTS	PC
	.END
                              