Add original unix v6
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
/ kill process
|
||||
|
||||
mov (sp)+,r4
|
||||
tst (sp)+
|
||||
|
||||
loop:
|
||||
dec r4
|
||||
ble done
|
||||
mov (sp)+,r5
|
||||
clr r3
|
||||
cmpb (r5),$'-
|
||||
bne 1f
|
||||
inc r5
|
||||
clr signo
|
||||
1:
|
||||
movb (r5)+,r0
|
||||
beq 1f
|
||||
sub $'0,r0
|
||||
cmp r0,$9
|
||||
bhi error
|
||||
mul $10.,r3
|
||||
add r0,r3
|
||||
br 1b
|
||||
1:
|
||||
tst signo
|
||||
bne 1f
|
||||
tst r3
|
||||
ble error
|
||||
cmp r3,$12.
|
||||
bgt error
|
||||
mov r3,signo
|
||||
br loop
|
||||
1:
|
||||
mov r3,r0
|
||||
sys 37.; signo: 9. / kill
|
||||
bec loop
|
||||
mov r3,r0
|
||||
jsr pc,decml
|
||||
mov $1,r0
|
||||
sys write; m1; em1-m1
|
||||
br loop
|
||||
|
||||
error:
|
||||
mov $1,r0
|
||||
sys write; m2; em2-m2
|
||||
br loop
|
||||
|
||||
done:
|
||||
sys exit
|
||||
|
||||
decml:
|
||||
mov r0,r1
|
||||
clr r0
|
||||
div $10.,r0
|
||||
mov r1,-(sp)
|
||||
tst r0
|
||||
beq 1f
|
||||
jsr pc,decml
|
||||
1:
|
||||
mov (sp)+,r0
|
||||
add $'0,r0
|
||||
mov r0,ch
|
||||
mov $1,r0
|
||||
sys write; ch; 1
|
||||
rts pc
|
||||
|
||||
m1:
|
||||
<: not found\n>
|
||||
em1:
|
||||
m2:
|
||||
<non-numeric arg\n>
|
||||
em2:
|
||||
.bss
|
||||
ch: .=.+2
|
||||
Reference in New Issue
Block a user