Add original unix v6
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
/
|
||||
/
|
||||
|
||||
/ catch runtime errors:
|
||||
/ if (ierror(errno)) goto place
|
||||
/ on call, returns 0
|
||||
/ on occurrence of error, returns non-zero
|
||||
|
||||
.globl ierror.
|
||||
.globl erret
|
||||
|
||||
.globl rerr
|
||||
.globl retrn
|
||||
|
||||
ierror.:zero
|
||||
.+2
|
||||
mov 2(r3),r0
|
||||
mov 2(r0),r1
|
||||
mov $errbuf,r0
|
||||
1:
|
||||
cmp r0,cerrp
|
||||
blo 2f
|
||||
cmp cerrp,$eerbuf
|
||||
blo 3f
|
||||
jsr r5,rerr; 120.
|
||||
3:
|
||||
add $8,cerrp
|
||||
br 1f
|
||||
2:
|
||||
cmp r1,(r0)
|
||||
beq 1f
|
||||
add $8,r0
|
||||
br 1b
|
||||
1:
|
||||
mov r1,(r0)+
|
||||
mov r3,(r0)+
|
||||
mov 2(sp),(r0)+
|
||||
mov 4(sp),(r0)+
|
||||
jmp retrn
|
||||
|
||||
.data
|
||||
erret:
|
||||
jmp 9f
|
||||
.text
|
||||
9:
|
||||
mov $errbuf,r0
|
||||
cmp (r0),r1
|
||||
beq 1f
|
||||
add $8,r0
|
||||
cmp r0,cerrp
|
||||
blo 1b
|
||||
rts pc
|
||||
1:
|
||||
add $8,r0
|
||||
mov -(r0),-(sp)
|
||||
mov -(r0),-(sp)
|
||||
mov $one,-(sp)
|
||||
mov -(r0),r3
|
||||
jmp retrn
|
||||
|
||||
.data
|
||||
one: 77777; 177777
|
||||
zero: 0; 0
|
||||
|
||||
cerrp: errbuf
|
||||
|
||||
.bss
|
||||
errbuf: .=.+50
|
||||
eerbuf:
|
||||
Reference in New Issue
Block a user