home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
minnie.tuhs.org
/
2014.11.minnie.tuhs.org.tar
/
minnie.tuhs.org
/
UnixArchive
/
PDP-11
/
Trees
/
V6
/
usr
/
source
/
s5
/
nargs.s
< prev
next >
Wrap
Text File
|
1975-05-14
|
780b
|
63 lines
/ C library -- nargs
/ WARNING: this routine does not work
/ with user I&D space separate.
/ Moreover, due to a design botch in
/ the 11/45, it cannot be made to work
/ by adding mfpi instructions.
.globl _nargs
_nargs:
mov r5,-(sp)
mov 2(r5),r1 / pc of caller of caller
mov sp,r5
clr r0
cmp -4(r1),jsrsd
bne 8f
mov $2,r0
8:
cmp (r1),tsti
bne 1f
add $2,r0
br 2f
1:
cmp (r1),cmpi
bne 1f
add $4,r0
br 2f
1:
cmp (r1),addi
bne 1f
add 2(r1),r0
br 2f
1:
cmp (r1),jmpi
bne 1f
add 2(r1),r1
add $4,r1
br 8b
1:
cmpb 1(r1),bri+1
bne 2f
mov r0,-(sp)
mov (r1),r0
swab r0
ash $-7,r0
add r0,r1
add $2,r1
mov (sp)+,r0
br 8b
2:
asr r0
mov (sp)+,r5
rts pc
.data
jsrsd: jsr pc,*$0
tsti: tst (sp)+
cmpi: cmp (sp)+,(sp)+
addi: add $0,sp
jmpi: jmp 0
bri: br .