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
--- /dev/null
+.
+..
+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
--- /dev/null
+/ 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:..; ..
--- /dev/null
+/ 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:
--- /dev/null
+/ 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
--- /dev/null
+.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