Trailing-Edge - PDP-10 Archives - tops10and20_integ_tools_v9_3-aug-86 - tools/crc/browse/ichin.mac
There are no other files named ichin.mac in the archive.
	title	ichin - returns value of byte from string
	search	crcsym,monsym,macsym
	entry	ichin
	external gtbypt
;reference from fortran with
;      k=ichin(ierr)
;ierr returns 0 on successful input
;the function returns the ascii value of the character typed in
ichin:	push	p,t2			;save t2
	setz	t1,			;want the first argument
	call	gtbypt			;is it a character variable
	skipg	t2			;length=0 if integer
f66:	 jrst   [setzm	0,@(cx)		;clear error return
	         erjmp	[movei	0,1	;error return
	                move	0,@(cx)
	                seto	0,	;return -1 as well
			jrst	retrn ]
	        move	0,t1		;get byte into ac 0 for func value
	        jrst	retrn	]	;return
chars:	push	p,t3			;save more acc's
	push	p,t4
	push	p,q1
	push	p,q2
	dmove	t4,t1			;save output pointer
	exch	t4,q1			;swap for movslj
	setzm	@1(cx)			;clear error return
	 erjmp	[movei	0,1		;error return
	        move	0,@1(cx)	;1st arg is 2nd in char func !!!!!
		jrst	rest  ]
	move	0,t1			;get i/p byte in 0
	dmove	t1,[  	1 		;length = 1
		    point 7,0,28  ]	;byte pointer to ascii no in acc 0
	movcha	t1, 			;move characters and blank fill
rest:	pop	p,q2			;restore remaining acc's
	pop	p,q1
	pop	p,t4
	pop	p,t3
retrn:	pop	p,t2			;restore t2