V6/usr/source/fort/rt2/getarg.s

Compare this file to the similar file:
Show the results in this format:

/ call getarg(n, array [, nword] )
/
/ fill in the array with the n-th argument to the routine.
/ array is integer.
/ n counts from 1 for the file name (first) arg
/ if nword is specifies it gives the max number
/ of words to fill in
/ If no nword is given the array ends with at least one blank.
/ if nword is given the array is blank-padded to that length.

/ iargc(dummy) returns the number of arguments
/ (1-origin)

.globl	getarg., iargc.
.globl	retrn, temp
.comm	argp,2

getarg.:
	temp
	.+2
	mov	$512.,r2
	cmp	*2(sp),$3
	blt	1f
	mov	6(r3),r2
	mov	2(r2),r2
	asl	r2
	asl	r2
1:
	mov	4(r3),r4
	mov	2(r3),r1
	mov	2(r1),r1
	mov	argp,r0
	cmp	r1,(r0)
	bgt	1f
	asl	r1
	add	r0,r1
	mov	(r1),r1
2:
	tst	r2
	ble	1f
	movb	(r1)+,(r4)+
	beq	2f
	dec	r2
	br	2b
2:
	dec	r4
1:
	movb	$' ,(r4)+
	dec	r2
	bit	$3,r2
	bne	1b
	cmp	r2,$256.
	bge	1f
	tst	r2
	bgt	1b
1:
	jmp	retrn

iargc.:
	temp
	.+2
	clr	temp
	mov	*argp,temp+2
	jmp	retrn