Add original unix v6
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
/ 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
|
||||
Reference in New Issue
Block a user