Research V5 development
authorKen Thompson <ken@research.uucp>
Tue, 26 Nov 1974 23:13:21 +0000 (18:13 -0500)
committerKen Thompson <ken@research.uucp>
Tue, 26 Nov 1974 23:13:21 +0000 (18:13 -0500)
Work on file usr/source/s4/creat.s
Work on file usr/source/s4/mcrt0.s
Work on file usr/source/s4/sin.s
Work on file usr/lib/aign
Work on file usr/source/s4/retrn.s

Co-Authored-By: Dennis Ritchie <dmr@research.uucp>
Synthesized-from: v5

usr/lib/aign [new file with mode: 0644]
usr/source/s4/creat.s [new file with mode: 0644]
usr/source/s4/mcrt0.s [new file with mode: 0644]
usr/source/s4/retrn.s [new file with mode: 0644]
usr/source/s4/sin.s [new file with mode: 0644]

diff --git a/usr/lib/aign b/usr/lib/aign
new file mode 100644 (file)
index 0000000..779cde4
--- /dev/null
@@ -0,0 +1,149 @@
+.
+..
+r0
+r1
+r2
+r3
+r4
+r5
+sp
+pc
+csw
+mov
+movb
+cmp
+cmpb
+bit
+bitb
+bic
+bicb
+bis
+bisb
+add
+sub
+br
+bne
+beq
+bge
+blt
+bgt
+ble
+bpl
+bmi
+bhi
+blos
+bvc
+bvs
+bhis
+bec
+bcc
+blo
+bcs
+bes
+jbr
+jne
+jeq
+jge
+jlt
+jgt
+jle
+jpl
+jmi
+jhi
+jlos
+jvc
+jvs
+jhis
+jec
+jcc
+jlo
+jcs
+jes
+clr
+clrb
+com
+comb
+inc
+incb
+dec
+decb
+neg
+negb
+adc
+adcb
+sbc
+sbcb
+tst
+tstb
+ror
+rorb
+rol
+rolb
+asr
+asrb
+asl
+aslb
+jmp
+swab
+jsr
+rts
+sys
+clc
+clv
+clz
+cln
+sec
+sev
+sez
+sen
+cfcc
+setf
+setd
+seti
+setl
+clrf
+negf
+absf
+tstf
+movf
+movif
+movfi
+movof
+movfo
+addf
+subf
+mulf
+divf
+cmpf
+modf
+movie
+movei
+ldfps
+stfps
+fr0
+fr1
+fr2
+fr3
+fr4
+fr5
+als
+alsc
+mpy
+mul
+div
+ash
+ashc
+dvd
+xor
+sxt
+mark
+sob
+.byte
+.even
+.if
+.endif
+.globl
+.text
+.data
+.bss
+.comm
diff --git a/usr/source/s4/creat.s b/usr/source/s4/creat.s
new file mode 100644 (file)
index 0000000..8b816cf
--- /dev/null
@@ -0,0 +1,21 @@
+/ C library -- creat
+
+/ file = creat(string, mode);
+/
+/ file == -1 if error
+
+.globl _creat, retrn, cerror
+
+_creat:
+       mov     r5,-(sp)
+       mov     sp,r5
+       mov     4(r5),0f
+       mov     6(r5),0f+2
+       sys     0; 9f
+       bec     1f
+       jmp     cerror
+1:
+       jmp     retrn
+.data
+9:
+       sys     creat; 0:..; ..
diff --git a/usr/source/s4/mcrt0.s b/usr/source/s4/mcrt0.s
new file mode 100644 (file)
index 0000000..cfb3170
--- /dev/null
@@ -0,0 +1,98 @@
+/ C runtime startoff including monitoring
+
+cbufs  = 150.
+
+.globl _monitor
+.globl _sbrk
+.globl _main
+.globl _exit
+.globl _etext
+
+.comm  savr5,2
+
+start:
+       setd
+       mov     sp,r0
+       mov     (r0),-(sp)
+       tst     (r0)+
+       mov     r0,2(sp)
+
+       mov     $_etext,r1
+       sub     $eprol,r1
+       add     $7,r1
+       ash     $-3,r1
+       bic     $!17777,r1
+       mov     $cbufs,-(sp)
+       add     $3*[cbufs+1],r1
+       mov     r1,-(sp)
+       asl     r1
+       mov     r1,-(sp)
+       jsr     pc,_sbrk
+       tst     (sp)+
+       cmp     r0,$-1
+       beq     9f
+       mov     r0,-(sp)
+       add     $6,r0
+       mov     r0,countbase
+       mov     $_etext,-(sp)
+       mov     $eprol,-(sp)
+       jsr     pc,_monitor
+       add     $10.,sp
+       jsr     pc,_main
+       cmp     (sp)+,(sp)+
+       jsr     pc,_exit
+
+9:
+       mov     $1,r0
+       sys     write; 8f; 9f-8f
+
+.data; 8: <No space for monitor buffer\n>; 9:.even; .text
+
+_exit:
+       mov     r5,-(sp)
+       mov     sp,r5
+       clr     -(sp)
+       jsr     pc,_monitor
+       tst     (sp)+
+       mov     4(r5),r0
+       sys     exit
+
+.globl mrsave
+.globl rsave
+.globl rretrn
+
+mrsave:
+       mov     *(r5)+,r1
+       bne     1f
+       mov     countbase,r1
+       add     $6,countbase
+       mov     r5,(r1)+
+       mov     r1,*-2(r5)
+1:
+       inc     2(r1)
+       bne     rsave
+       inc     (r1)
+
+rsave:
+       mov     r5,r0
+       mov     sp,r5
+       mov     r4,-(sp)
+       mov     r3,-(sp)
+       mov     r2,-(sp)
+       sub     (r0)+,sp
+       jmp     (r0)
+
+rretrn:
+       sub     $6,r5
+       mov     r5,sp
+       mov     (sp)+,r2
+       mov     (sp)+,r3
+       mov     (sp)+,r4
+       mov     (sp)+,r5
+       rts     pc
+
+.bss
+countbase:     .=.+2
+.text
+
+eprol:
diff --git a/usr/source/s4/retrn.s b/usr/source/s4/retrn.s
new file mode 100644 (file)
index 0000000..a8d0b63
--- /dev/null
@@ -0,0 +1,14 @@
+/ C return sequence
+
+.globl retrn, cerror, _errno
+
+cerror:
+       mov     r0,_errno
+       mov     $-1,r0
+
+retrn:
+       mov     r5,sp
+       mov     (sp)+,r5
+       rts     pc
+.bss
+_errno:        .=.+2
diff --git a/usr/source/s4/sin.s b/usr/source/s4/sin.s
new file mode 100644 (file)
index 0000000..04b5bd0
--- /dev/null
@@ -0,0 +1,9 @@
+.globl _sin,sin,retrn,savr5
+_sin:
+       mov     r5,-(sp)
+       mov     sp,r5
+       mov     r5,savr5
+       movf    4(r5),fr0
+       jsr     r5,sin
+       clr     savr5
+       jmp     retrn