Add original unix v6
This commit is contained in:
@@ -0,0 +1,124 @@
|
||||
/
|
||||
/
|
||||
|
||||
/ r7 -- fortran runtime
|
||||
|
||||
achk = 1 / 1 to check array bounds
|
||||
.globl lvalp
|
||||
.globl rval1p
|
||||
.globl rval2p
|
||||
.globl rval4p
|
||||
.globl rval8p
|
||||
.globl alval
|
||||
.globl alvalp
|
||||
.globl arval
|
||||
.globl arvalp
|
||||
|
||||
.globl rerr
|
||||
|
||||
lvalp:
|
||||
mov r3,r0
|
||||
add (r4)+,r0
|
||||
mov (r0)+,-(sp)
|
||||
jmp *(r4)+
|
||||
|
||||
rval1p:
|
||||
mov r3,r0
|
||||
add (r4)+,r0
|
||||
movb *(r0)+,-(sp)
|
||||
jmp *(r4)+
|
||||
|
||||
rval2p:
|
||||
mov r3,r0
|
||||
add (r4)+,r0
|
||||
mov *(r0)+,-(sp)
|
||||
jmp *(r4)+
|
||||
|
||||
rval4p:
|
||||
mov r3,r0
|
||||
add (r4)+,r0
|
||||
mov (r0),r0
|
||||
cmp (r0)+,(r0)+
|
||||
mov -(r0),-(sp)
|
||||
mov -(r0),-(sp)
|
||||
jmp *(r4)+
|
||||
|
||||
rval8p:
|
||||
setd
|
||||
mov r3,r0
|
||||
add (r4)+,r0
|
||||
movf *(r0)+,fr0
|
||||
movf fr0,-(sp)
|
||||
jmp *(r4)+
|
||||
|
||||
alval:
|
||||
jsr r5,getsub; 1
|
||||
mov (r4)+,-(sp)
|
||||
add r1,(sp)
|
||||
jmp *(r4)+
|
||||
|
||||
arvalp:
|
||||
jsr r5,getsub; 0
|
||||
mov r3,r2
|
||||
add (r4)+,r2
|
||||
mov (r2),r2
|
||||
br 1f
|
||||
|
||||
arval:
|
||||
jsr r5,getsub; 1
|
||||
mov (r4)+,r2
|
||||
1:
|
||||
add r2,r1
|
||||
mov -(r0),r2
|
||||
asr r2
|
||||
bcc 1f
|
||||
movb (r1),-(sp)
|
||||
jmp *(r4)+
|
||||
1:
|
||||
add (r0),r1
|
||||
1:
|
||||
mov -(r1),-(sp)
|
||||
sob r2,1b
|
||||
jmp *(r4)+
|
||||
|
||||
getsub:
|
||||
tst (sp)+
|
||||
mov (r4)+,r0
|
||||
mov (r0)+,r2
|
||||
clr r1
|
||||
tst (r0)+
|
||||
1:
|
||||
tst (sp)+
|
||||
dec (sp)
|
||||
add (sp)+,r1
|
||||
mpy (r0)+,r1
|
||||
sob r2,1b
|
||||
|
||||
tst (r5)+
|
||||
beq 2f
|
||||
mov r1,-(sp)
|
||||
mov -2(r4),r0
|
||||
mov (r0)+,r2
|
||||
inc r2
|
||||
mov $1,r1
|
||||
1:
|
||||
mpy (r0)+,r1
|
||||
sob r2,1b
|
||||
.if achk
|
||||
cmp r1,(sp)
|
||||
bhi 1f
|
||||
jsr r5,rerr; 15.
|
||||
.endif
|
||||
1:
|
||||
mov (sp)+,r1
|
||||
|
||||
2:
|
||||
jmp (r5)
|
||||
|
||||
alvalp:
|
||||
jsr r5,getsub; 0
|
||||
mov r3,r0
|
||||
add (r4)+,r0
|
||||
mov (r0),-(sp)
|
||||
add r1,(sp)
|
||||
jmp *(r4)+
|
||||
Reference in New Issue
Block a user