Google
 

Trailing-Edge - PDP-10 Archives - CFS_TSU04_19910205_1of1 - update/cblsrc/cdd.mac
There are 9 other files named cdd.mac in the archive. Click here to see a list.
; UPD ID= 1022 on 4/28/83 at 6:05 PM by NIXON                           
TITLE	CDD FOR LIBOL
SUBTTL	CONVERT FROM DISPLAY TO DISPLAY	/ACK

	SEARCH COPYRT
	SALL

;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
;  OR COPIED IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE.

COPYRIGHT (C) 1974, 1983, 1984 BY DIGITAL EQUIPMENT CORPORATION

;REVISION HISTORY:

;V10 *****

;	15-DEC-74	/ACK	CREATION.

;	5/10/75		/DBT	ADD BIS
;*****

	SEARCH	LBLPRM		;DEFINE PARAMETERS.
	%%LBLP==:%%LBLP

	EXTERN	EASTB.		;FORCE EASTBL TO BE LOADED.

	HISEG
	.COPYRIGHT		;Put standard copyright statement in REL file

COMMENT	\

	THIS ROUTINE CONVERTS A STRING FROM ONE FLAVOR OF DISPLAY TO ANOTHER.

CALL:
	MOVE	16,PARAMETER ADDRESS
	PUSHJ	17,C.D6D7/C.D6D9/C.D7D6/C.D7D9/C.D9D6/C.D9D7

PARAMETERS:
	WORD 1:
		BYTE POINTER FOR THE INPUT STRING.
	WORD 2:
		BITS	0-5	BYTE POINTER RESIDUE FOR THE OUTPUT STRING.
		BIT	6	IGNORED (1 IF THE OUTPUT FIELD IS SIGNED.)
		BITS	7-17	THE SIZE OF BOTH FIELDS.
		BITS	18-35	ADDRESS OF THE FIRST BYTE OF THE OUTPUT FIELD.

RETURNS:
	CALL+1	ALWAYS.

REGISTERS USED:
	CPTR, JAC, CH, IPTR, OPTR, CNT

\
	ENTRY	C.D6D7		;TO CONVERT SIXBIT TO ASCII.
	ENTRY	C.D7D6		;TO CONVERT ASCII TO SIXBIT.
	ENTRY	C.D6D9		;TO CONVERT SIXBIT TO EBCIDC.
	ENTRY	C.D7D9		;TO CONVERT ASCII TO EBCDIC.
	ENTRY	C.D9D6		;TO CONVERT EBCDIC TO SIXBIT.
	ENTRY	C.D9D7		;TO CONVERT EBCDIC TO ASCII.


	EXTERN	BSET2.		;ROUTINE TO PICK UP THE PARAMETERS.
	EXTERN	RET.1		;RETURNS TO CALL+1.

C.D7D6:	JSP	BISCH,	CDD		; HERE TO CONVERT ASCII TO SIXBIT,
C.D9D6:	JSP	BISCH,	CDD		; HERE TO CONVERT EBCDIC TO SIXBIT AND
C.D6D7:	JSP	BISCH,	CDD		;ENTER HERE TO CONVERT SIXBIT TO ASCII,
C.D9D7:	JSP	BISCH,	CDD		; HERE TO CONVERT EBCDIC TO ASCII.
	Z
	Z
C.D6D9:	JSP	BISCH,	CDD		; HERE TO CONVERT SIXBIT TO EBCDIC,
C.D7D9:	JSP	BISCH,	CDD		; HERE TO CONVERT ASCII TO EBCDIC,

CDD:
	SUBI	BISCH,C.D7D6-13	;COMPUTE INDEX
	JSP	JAC,	BSET2.		;GO PICK UP THE PARAMETERS.
	EXP		RET.1		;RETURN TO CALL+1 THROUGH HERE IF
					; THE STRING LENGTH IS 0.
	MOVE	BIST0,	C.DTBL-14(BISCH)	;GET INSTRUCTION
	LSH	BISCH,-1		;GET BYTE SIZE
	DPB	BISCH,BPTOBS##		;STORE IN OUTPUT POINTER
	TLO	B.FLAG,BFLG.S		;TURN SIGNIFICANCE ON
	EXTEND	B.FLAG,BIST0		;GO
	JRST	ERROR
	POPJ	PP,			;DONE

C.DTBL:
	MOVST	ALP.76##		;7 TO 6
	MOVST	ALP.96##		;9 TO 6
	MOVSO	+40			;6 TO 7
	MOVST	ALP.97##		;9 TO 7
	0
	0
	MOVST	ALP.69##		;6 TO 9
	MOVST	ALP.79##		;7 TO 9


ERROR:	OUTSTR	[ASCIZ	'?LIBOL CDD.N error
']
	POPJ	PP,


	END