home *** CD-ROM | disk | FTP | other *** search
- / time -- prints out system times
-
- times = 43.
-
- cmp (sp),$1
- bgt 1f
- sys exit
- 1:
- sys time
- mov r1,ltbuf
- jsr pc,execarg
- sys time
- sub ltbuf,r1
- sys times; ltbuf
- mov r1,r0
- mul $60.,r0
- mov r0,ltbuf
- mov r1,ltbuf+2
- jsr r5,mesg; <\nreal\0>; .even
- mov $ltbuf,r2
- jsr r5,ptime
- jsr r5,mesg; <user\0>; .even
- jsr r5,ptime
- jsr r5,mesg; <sys \0>; .even
- jsr r5,ptime
- sys exit
-
- execarg:
- sys fork
- br newproc
- bec 2f
- jsr r5,mesg; <Try again.\n\0>; .even
- sys exit
- 2:
- mov r0,r2
- sys signal; 2; 1
- 2:
- sys wait
- cmp r0,r2
- bne 2b
- bit $377,r1
- beq 1f
- jsr r5,mesg; <Command terminated abnormally.\n\0>; .even
- clr r0
- sys seek; 0; 2
- 1:
- rts pc
-
- newproc:
- tst (sp)+
- mov (sp)+,r0
- tst (sp)+
- mov $ibuf,r1
- mov $end,r2
- 1:
- mov (sp)+,r3
- mov r2,(r1)+
- 2:
- movb (r3)+,(r2)+
- bne 2b
- dec r0
- cmp r0,$1
- bgt 1b
- clr (r1)+
- mov $end,r1
- sys exec; end; ibuf
- cmp $8,r0
- beq rcom
- mov $end-10.,r0
- mov $"x/,(r0)+
- mov $"us,(r0)+
- mov $"r/,(r0)+
- mov $"bi,(r0)+
- mov $"n/,(r0)+
- mov $end-5,r1
- sys exec; end-5; ibuf
- cmp $8,r0
- beq rcom
- mov $end-9,r1
- sys exec; end-9.; ibuf
- cmp $8,r0
- bne 1f
- rcom:
- mov r1,ibuf
- mov $shname+5,ibuf-2
- sys exec ; shname ; ibuf-2
- 1:
- jsr r5,mesg; <Command not found.\n\0>; .even
- clr r0
- sys seek; 0; 2
- sys exit
-
- printd:
- mov $tbuf+4,r4
- jsr r5,tdiv; 10.
- jsr r5,tdiv; 10.
- jsr r5,tdiv; 10.
- jsr r5,tdiv; 10.
- 1:
- cmpb (r4),$'0
- bne 1f
- movb $' ,(r4)+
- cmp r4,$tbuf+3
- bne 1b
- 1:
- mov $2,r0
- sys write; tbuf; 4
- rts pc
-
- ptime:
- mov (r2)+,r0
- mov (r2)+,r1
- div $3600.,r0
- mov r0,-(sp)
- clr r0
- div $60.,r0
- mov r1,clicks
- mov $tbuf+9.,r4
- jsr r5,tdiv; 10.
- jsr r5,tdiv; 6.
- movb $':,-(r4)
- mov (sp)+,r0
- jsr r5,tdiv; 10.
- jsr r5,tdiv; 6.
- movb $':,-(r4)
- jsr r5,tdiv; 10.
- jsr r5,tdiv; 10.
- jsr r5,tdiv; 10.
- 1:
- cmpb (r4),$'0
- beq 2f
- cmpb (r4),$':
- bne 1f
- 2:
- movb $' ,(r4)+
- cmp r4,$tbuf+8.
- bne 1b
- 1:
- mov $2,r0
- sys write; tbuf; 9.
- jsr r5,mesg; <.\0>; .even
- mov clicks,r1
- clr r0
- div $6,r0
- add $'0,r0
- mov r0,ch
- mov $2,r0
- sys write; ch; 1
- jsr r5,mesg; <\n\0>; .even
- rts r5
-
- tdiv:
- mov r1,-(sp)
- mov r0,r1
- clr r0
- div (r5)+,r0
- add $'0,r1
- movb r1,-(r4)
- mov (sp)+,r1
- rts r5
-
- mesg:
- movb (r5)+,ch
- beq 2f
- mov $2,r0
- sys write; ch; 1
- br mesg
- 2:
- inc r5
- bic $1,r5
- rts r5
-
- ch: .=.+1
- .even
- .bss
-
- clicks: .=.+2
- .=.+2
- ibuf: .=.+50.
- tbuf: .=.+10.
- ltbuf: .=.+16.
- end: .=.+1000.
-
- .data
- shname: </bin/sh\0>
- .even
-