├── usr ├── sys │ ├── dmr │ │ ├── mem.c │ │ ├── conf.c │ │ ├── dhfdm.c │ │ ├── partab.c │ │ ├── sys.c │ │ ├── vt.c │ │ ├── cat.c │ │ ├── dn.c │ │ ├── dhdm.c │ │ ├── rf.c │ │ └── vs.c │ ├── conf │ │ ├── data.s │ │ └── low.s │ ├── reg.h │ ├── text.h │ ├── file.h │ ├── seg.h │ ├── ino.h │ ├── filesys.h │ ├── conf.h │ ├── run │ ├── proc.h │ ├── inode.h │ ├── systm.h │ └── ken │ │ └── malloc.c ├── source │ ├── s │ │ ├── s1 │ │ │ ├── init.c │ │ │ ├── getty.c │ │ │ ├── login.c │ │ │ ├── cpall.c │ │ │ ├── exit.c │ │ │ ├── echo.c │ │ │ ├── kill.s │ │ │ ├── chmod.c │ │ │ ├── db4.s │ │ │ ├── ln.c │ │ │ ├── cat.s │ │ │ ├── diff2.s │ │ │ ├── clri.s │ │ │ ├── df.c │ │ │ ├── goto.c │ │ │ ├── cp.c │ │ │ └── form2.s │ │ ├── s2 │ │ │ ├── sh.c │ │ │ ├── typo.c │ │ │ ├── tty.s │ │ │ ├── size.c │ │ │ ├── mknod.c │ │ │ ├── sync.c │ │ │ ├── su.c │ │ │ ├── update.s │ │ │ ├── sleep.c │ │ │ ├── opr.c │ │ │ ├── rew.s │ │ │ ├── nohup.c │ │ │ ├── pfe.s │ │ │ ├── mount.c │ │ │ ├── nice.c │ │ │ ├── tp4.s │ │ │ ├── mkdir.s │ │ │ ├── mesg.c │ │ │ ├── tee.c │ │ │ ├── umount.c │ │ │ ├── wall.c │ │ │ ├── who.c │ │ │ ├── sum.s │ │ │ ├── rm.c │ │ │ └── pwd.c │ │ ├── s4 │ │ │ ├── fork.s │ │ │ ├── getcsw.s │ │ │ ├── getpid.s │ │ │ ├── getuid.s │ │ │ ├── exit.s │ │ │ ├── cerror.s │ │ │ ├── getgid.s │ │ │ ├── close.s │ │ │ ├── execl.s │ │ │ ├── dup.s │ │ │ ├── chdir.s │ │ │ ├── kill.s │ │ │ ├── chmod.s │ │ │ ├── chown.s │ │ │ ├── link.s │ │ │ ├── creat.s │ │ │ ├── fstat.s │ │ │ ├── gtty.s │ │ │ ├── getchr.s │ │ │ ├── execv.s │ │ │ ├── hmul.s │ │ │ ├── abort.s │ │ │ ├── ffltpr.s │ │ │ ├── ldfps.s │ │ │ ├── abs.s │ │ │ ├── crt0.s │ │ │ ├── csv.s │ │ │ ├── fcrt0.s │ │ │ ├── atoi.c │ │ │ ├── ltod.s │ │ │ ├── getc.s │ │ │ ├── ladd.s │ │ │ ├── getpw.c │ │ │ ├── locv.s │ │ │ ├── errlst.c │ │ │ ├── run │ │ │ └── fltpr.s │ │ ├── s5 │ │ │ ├── mon.c │ │ │ ├── wait.s │ │ │ ├── signal.s │ │ │ ├── sleep.s │ │ │ ├── sync.s │ │ │ ├── stime.s │ │ │ ├── times.s │ │ │ ├── nice.s │ │ │ ├── prof.s │ │ │ ├── setuid.s │ │ │ ├── setgid.s │ │ │ ├── makdir.s │ │ │ ├── pipe.s │ │ │ ├── time.s │ │ │ ├── unlink.s │ │ │ ├── umount.s │ │ │ ├── seek.s │ │ │ ├── open.s │ │ │ ├── mount.s │ │ │ ├── write.s │ │ │ ├── mknod.s │ │ │ ├── read.s │ │ │ ├── stat.s │ │ │ ├── stty.s │ │ │ ├── ptrace.s │ │ │ ├── reset.s │ │ │ ├── sbrk.s │ │ │ ├── mcount.s │ │ │ ├── mdate.s │ │ │ ├── nargs.s │ │ │ ├── rin.c │ │ │ ├── perror.c │ │ │ ├── putc.s │ │ │ ├── putchr.s │ │ │ ├── mcrt0.s │ │ │ └── run │ │ ├── solloc │ │ │ ├── run │ │ │ ├── getch.s │ │ │ ├── zero.s │ │ │ ├── bsp.s │ │ │ ├── length.s │ │ │ ├── bword.s │ │ │ ├── rewind.s │ │ │ ├── getwd.s │ │ │ └── altch.s │ │ ├── sno │ │ │ ├── run │ │ │ └── sno.h │ │ ├── s3 │ │ │ ├── savr5.s │ │ │ ├── fakfp.s │ │ │ ├── ttyn.s │ │ │ ├── dpadd.s │ │ │ ├── ldiv.s │ │ │ ├── fmod.s │ │ │ ├── rand.s │ │ │ ├── mesg.s │ │ │ ├── fpx.s │ │ │ ├── floor.s │ │ │ ├── switch.s │ │ │ ├── run │ │ │ ├── pow.s │ │ │ └── sqrt.s │ │ └── s7 │ │ │ ├── run │ │ │ ├── ne5.c │ │ │ └── ne.h │ ├── cref │ │ ├── index │ │ │ ├── econs.h │ │ │ ├── ind2.c │ │ │ └── ecmn.h │ │ ├── mcons.h │ │ ├── index.html │ │ ├── run │ │ ├── src │ │ │ └── put.c │ │ └── ccmn.h │ └── c │ │ └── run └── personal │ ├── kernel │ ├── src │ │ ├── m40.s │ │ ├── sig.c │ │ ├── slp.c │ │ ├── Stack.c │ │ ├── Thread.c │ │ ├── clock.c │ │ ├── main.c │ │ ├── sys1.c │ │ ├── communi │ │ │ ├── Msg.c │ │ │ ├── Event.c │ │ │ ├── Mail.c │ │ │ ├── phymem.c │ │ │ ├── Semaphore.c │ │ │ └── SharedMem.c │ │ └── text.c │ └── include │ │ ├── comm.h │ │ ├── proc.h │ │ ├── Thread.h │ │ └── Thread_U.h │ └── user │ ├── src │ ├── CreatThd.s │ ├── ThdEntry.c │ ├── gettid.s │ ├── communi │ │ ├── CreatSharedMbx.s │ │ ├── CloseMbx.s │ │ ├── SetEvt.s │ │ ├── CloseEvt.s │ │ ├── CreatEvt.s │ │ ├── CreatSem.s │ │ ├── CloseSem.s │ │ ├── AcqSem.s │ │ ├── RelSem.s │ │ ├── FreeSharedMem.s │ │ ├── UnmapSharedMem.s │ │ ├── CreatPrivMbx.s │ │ ├── ClosePubMbx.s │ │ ├── WaitEvt.s │ │ ├── CreatePubMbx.s │ │ ├── MapSharedMem.s │ │ ├── RcvMsg.s │ │ ├── Mutex.c │ │ ├── RcvMail.s │ │ ├── SendMail.s │ │ ├── SendMsg.s │ │ ├── RcvPubMail.s │ │ ├── SendSharedMail.s │ │ └── CreatSharedMem.s │ ├── ExitThd.s │ ├── SuspThd.s │ ├── ResumThd.s │ ├── GetThdID.s │ ├── GetThdName.s │ └── TermThd.s │ └── include │ ├── Thread.h │ ├── param.h │ └── comm.h └── README.md /usr/sys/dmr/mem.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JiYou/unix-v6/HEAD/usr/sys/dmr/mem.c -------------------------------------------------------------------------------- /usr/sys/dmr/conf.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JiYou/unix-v6/HEAD/usr/sys/dmr/conf.c -------------------------------------------------------------------------------- /usr/source/s/s1/init.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JiYou/unix-v6/HEAD/usr/source/s/s1/init.c -------------------------------------------------------------------------------- /usr/source/s/s2/sh.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JiYou/unix-v6/HEAD/usr/source/s/s2/sh.c -------------------------------------------------------------------------------- /usr/source/s/s2/typo.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JiYou/unix-v6/HEAD/usr/source/s/s2/typo.c -------------------------------------------------------------------------------- /usr/source/s/s4/fork.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JiYou/unix-v6/HEAD/usr/source/s/s4/fork.s -------------------------------------------------------------------------------- /usr/source/s/s5/mon.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JiYou/unix-v6/HEAD/usr/source/s/s5/mon.c -------------------------------------------------------------------------------- /usr/source/s/s5/wait.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JiYou/unix-v6/HEAD/usr/source/s/s5/wait.s -------------------------------------------------------------------------------- /usr/source/s/s1/getty.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JiYou/unix-v6/HEAD/usr/source/s/s1/getty.c -------------------------------------------------------------------------------- /usr/source/s/s1/login.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JiYou/unix-v6/HEAD/usr/source/s/s1/login.c -------------------------------------------------------------------------------- /usr/source/s/s5/signal.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JiYou/unix-v6/HEAD/usr/source/s/s5/signal.s -------------------------------------------------------------------------------- /usr/personal/kernel/src/m40.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JiYou/unix-v6/HEAD/usr/personal/kernel/src/m40.s -------------------------------------------------------------------------------- /usr/personal/kernel/src/sig.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JiYou/unix-v6/HEAD/usr/personal/kernel/src/sig.c -------------------------------------------------------------------------------- /usr/personal/kernel/src/slp.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JiYou/unix-v6/HEAD/usr/personal/kernel/src/slp.c -------------------------------------------------------------------------------- /usr/sys/conf/data.s: -------------------------------------------------------------------------------- 1 | / l45.o needs to be in data space 2 | / to get l45.o; as data.s l.s 3 | .data 4 | -------------------------------------------------------------------------------- /usr/personal/kernel/src/Stack.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JiYou/unix-v6/HEAD/usr/personal/kernel/src/Stack.c -------------------------------------------------------------------------------- /usr/personal/kernel/src/Thread.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JiYou/unix-v6/HEAD/usr/personal/kernel/src/Thread.c -------------------------------------------------------------------------------- /usr/personal/kernel/src/clock.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JiYou/unix-v6/HEAD/usr/personal/kernel/src/clock.c -------------------------------------------------------------------------------- /usr/personal/kernel/src/main.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JiYou/unix-v6/HEAD/usr/personal/kernel/src/main.c -------------------------------------------------------------------------------- /usr/personal/kernel/src/sys1.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JiYou/unix-v6/HEAD/usr/personal/kernel/src/sys1.c -------------------------------------------------------------------------------- /usr/personal/user/src/CreatThd.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JiYou/unix-v6/HEAD/usr/personal/user/src/CreatThd.s -------------------------------------------------------------------------------- /usr/personal/user/src/ThdEntry.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JiYou/unix-v6/HEAD/usr/personal/user/src/ThdEntry.c -------------------------------------------------------------------------------- /usr/personal/kernel/include/comm.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JiYou/unix-v6/HEAD/usr/personal/kernel/include/comm.h -------------------------------------------------------------------------------- /usr/personal/kernel/include/proc.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JiYou/unix-v6/HEAD/usr/personal/kernel/include/proc.h -------------------------------------------------------------------------------- /usr/personal/user/include/Thread.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JiYou/unix-v6/HEAD/usr/personal/user/include/Thread.h -------------------------------------------------------------------------------- /usr/personal/user/include/param.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JiYou/unix-v6/HEAD/usr/personal/user/include/param.h -------------------------------------------------------------------------------- /usr/personal/kernel/include/Thread.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JiYou/unix-v6/HEAD/usr/personal/kernel/include/Thread.h -------------------------------------------------------------------------------- /usr/personal/kernel/src/communi/Msg.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JiYou/unix-v6/HEAD/usr/personal/kernel/src/communi/Msg.c -------------------------------------------------------------------------------- /usr/personal/kernel/include/Thread_U.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JiYou/unix-v6/HEAD/usr/personal/kernel/include/Thread_U.h -------------------------------------------------------------------------------- /usr/personal/kernel/src/communi/Event.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JiYou/unix-v6/HEAD/usr/personal/kernel/src/communi/Event.c -------------------------------------------------------------------------------- /usr/personal/kernel/src/communi/Mail.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JiYou/unix-v6/HEAD/usr/personal/kernel/src/communi/Mail.c -------------------------------------------------------------------------------- /usr/personal/kernel/src/communi/phymem.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JiYou/unix-v6/HEAD/usr/personal/kernel/src/communi/phymem.c -------------------------------------------------------------------------------- /usr/personal/kernel/src/communi/Semaphore.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JiYou/unix-v6/HEAD/usr/personal/kernel/src/communi/Semaphore.c -------------------------------------------------------------------------------- /usr/personal/kernel/src/communi/SharedMem.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JiYou/unix-v6/HEAD/usr/personal/kernel/src/communi/SharedMem.c -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # unix-v6 2 | 3 | 《返璞归真:UNIX技术内幕》一书配套代码。 4 | 5 | # 联系方式 6 | 7 | 作者博客:http://blog.chinaunix.net/uid/23741326/abstract/1.html 8 | 9 | -------------------------------------------------------------------------------- /usr/source/s/s5/sleep.s: -------------------------------------------------------------------------------- 1 | .globl _sleep 2 | sleep = 35. 3 | 4 | _sleep: 5 | mov r5,-(sp) 6 | mov sp,r5 7 | mov 4(r5),r0 8 | sys sleep 9 | mov (sp)+,r5 10 | rts pc 11 | -------------------------------------------------------------------------------- /usr/source/s/s5/sync.s: -------------------------------------------------------------------------------- 1 | .globl _sync 2 | sync = 36. 3 | 4 | _sync: 5 | mov r5,-(sp) 6 | mov sp,r5 7 | sys sync 8 | mov (sp)+,r5 9 | rts pc 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /usr/source/s/s4/getcsw.s: -------------------------------------------------------------------------------- 1 | / C library - getcsw 2 | 3 | / csw = getcsw(); 4 | 5 | .globl _getcsw 6 | 7 | _getcsw: 8 | mov r5,-(sp) 9 | mov sp,r5 10 | sys 38. 11 | mov (sp)+,r5 12 | rts pc 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /usr/personal/user/src/gettid.s: -------------------------------------------------------------------------------- 1 | #define GETTID 75 2 | #int gettid() 3 | #{ 4 | .globl _gettid 5 | _gettid: 6 | mov r5,-(sp) 7 | mov sp,r5 8 | sys GETTID 9 | bec 1f 10 | jmp cerror 11 | 1: 12 | mov (sp)+,r5 13 | rts pc 14 | #} 15 | 16 | -------------------------------------------------------------------------------- /usr/personal/user/src/communi/CreatSharedMbx.s: -------------------------------------------------------------------------------- 1 | #int CreateSharedMbx() 2 | #{ 3 | .globl _CreateSharedMbx 4 | _CreateSharedMbx: 5 | mov r5,-(sp) 6 | mov sp,r5 7 | sys 64 8 | bec 1f 9 | jmp cerror 10 | 1: 11 | mov (sp)+,r5 12 | rts pc 13 | #} 14 | -------------------------------------------------------------------------------- /usr/source/s/s4/getpid.s: -------------------------------------------------------------------------------- 1 | / getpid -- get process ID 2 | 3 | getpid = 20. 4 | 5 | .globl _getpid 6 | 7 | _getpid: 8 | mov r5,-(sp) 9 | mov sp,r5 10 | sys getpid 11 | mov (sp)+,r5 12 | rts pc 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /usr/source/s/s5/stime.s: -------------------------------------------------------------------------------- 1 | .globl _stime, cerror 2 | 3 | _stime: 4 | mov r5,-(sp) 5 | mov sp,r5 6 | mov 4(sp),r1 7 | mov (r1)+,r0 8 | mov (r1),r1 9 | sys stime 10 | bec 1f //carrir == 0? 11 | jmp cerror 12 | 1: 13 | clr r0 14 | mov (sp)+,r5 15 | rts pc 16 | 17 | -------------------------------------------------------------------------------- /usr/personal/user/src/communi/CloseMbx.s: -------------------------------------------------------------------------------- 1 | #int CloseMbx(int md) 2 | #{ 3 | .globl _CloseMbx 4 | _CloseMbx: 5 | mov r5,-(sp) 6 | mov sp,r5 7 | mov 4(r5),r0 8 | sys 61 9 | bec 1f 10 | jmp cerror 11 | 1: 12 | clr r0 13 | mov (sp)+,r5 14 | rts pc 15 | #} 16 | -------------------------------------------------------------------------------- /usr/personal/user/src/communi/SetEvt.s: -------------------------------------------------------------------------------- 1 | #int SetEvent(int ed) 2 | #{ 3 | .globl _SetEvent 4 | _SetEvent: 5 | mov r5,-(sp) 6 | mov sp,r5 7 | mov 4(r5),r0 8 | sys 57 9 | bec 1f 10 | jmp cerror 11 | 1: 12 | clr r0 13 | mov (sp)+,r5 14 | rts pc 15 | #} 16 | -------------------------------------------------------------------------------- /usr/source/s/s4/getuid.s: -------------------------------------------------------------------------------- 1 | / C library -- getuid 2 | 3 | / uid = getuid(); 4 | / 5 | 6 | .globl _getuid 7 | 8 | _getuid: 9 | mov r5,-(sp) 10 | mov sp,r5 11 | sys getuid 12 | mov (sp)+,r5 13 | rts pc 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /usr/personal/user/src/ExitThd.s: -------------------------------------------------------------------------------- 1 | #define EXITTHD 74 2 | #int ExitThread(int exitCode) 3 | #{ 4 | .globl _ExitThread 5 | _ExitThread: 6 | mov r5,-(sp) 7 | mov sp,r5 8 | mov 4(r5),r0 9 | sys EXITTHD 10 | jmp cerror 11 | mov (sp)+,r5 12 | rts pc 13 | #} 14 | -------------------------------------------------------------------------------- /usr/personal/user/src/communi/CloseEvt.s: -------------------------------------------------------------------------------- 1 | #int CloseEvent(int ed) 2 | #{ 3 | .globl _CloseEvent 4 | _CloseEvent: 5 | mov r5,-(sp) 6 | mov sp,r5 7 | mov 4(r5),r0 8 | sys 55 9 | bec 1f 10 | jmp cerror 11 | 1: 12 | clr r0 13 | mov (sp)+,r5 14 | rts pc 15 | #} 16 | -------------------------------------------------------------------------------- /usr/personal/user/src/communi/CreatEvt.s: -------------------------------------------------------------------------------- 1 | #int CreateEvent(BOOL initStatus) 2 | #{ 3 | .globl _CreateEvent 4 | _CreateEvent: 5 | mov r5,-(sp) 6 | mov sp,r5 7 | mov 4(r5),r0 8 | sys 54 9 | bec 1f 10 | jmp cerror 11 | 1: 12 | mov (sp)+,r5 13 | rts pc 14 | #} 15 | -------------------------------------------------------------------------------- /usr/source/s/s4/exit.s: -------------------------------------------------------------------------------- 1 | / C library -- exit 2 | 3 | / exit(code) 4 | / code is return in r0 to system 5 | 6 | .globl _exit 7 | 8 | _exit: 9 | mov r5,-(sp) 10 | mov sp,r5 11 | mov 4(r5),r0 12 | sys exit 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /usr/personal/user/src/communi/CreatSem.s: -------------------------------------------------------------------------------- 1 | #int CreateSemphore(int initNum) 2 | #{ 3 | .globl _CreateSemphore 4 | _CreateSemphore: 5 | mov r5,-(sp) 6 | mov sp,r5 7 | mov 4(r5),r0 8 | sys 50 9 | bec 1f 10 | jmp cerror 11 | 1: 12 | mov (sp)+,r5 13 | rts pc 14 | #} 15 | -------------------------------------------------------------------------------- /usr/personal/user/src/communi/CloseSem.s: -------------------------------------------------------------------------------- 1 | #int CloseSemphore(int sd) 2 | #{ 3 | .globl _CloseSemphore 4 | _CloseSemphore: 5 | mov r5,-(sp) 6 | mov sp,r5 7 | mov 4(r5),r0 8 | sys 51 9 | bec 1f 10 | jmp cerror 11 | 1: 12 | clr r0 13 | mov (sp)+,r5 14 | rts pc 15 | #} 16 | -------------------------------------------------------------------------------- /usr/source/s/s4/cerror.s: -------------------------------------------------------------------------------- 1 | / C return sequence which 2 | / sets errno, returns -1. 3 | 4 | .globl cerror 5 | .comm _errno,2 6 | 7 | cerror: 8 | mov r0,_errno 9 | mov $-1,r0 10 | mov r5,sp 11 | mov (sp)+,r5 12 | rts pc 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /usr/source/s/s4/getgid.s: -------------------------------------------------------------------------------- 1 | / C library -- getgid 2 | 3 | / gid = getgid(); 4 | / 5 | 6 | getgid = 47. 7 | .globl _getgid 8 | 9 | _getgid: 10 | mov r5,-(sp) 11 | mov sp,r5 12 | sys getgid 13 | mov (sp)+,r5 14 | rts pc 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /usr/personal/user/src/communi/AcqSem.s: -------------------------------------------------------------------------------- 1 | #int AcquireSemphore (int sd) 2 | #{ 3 | .globl _AcquireSemphore 4 | _AcquireSemphore: 5 | mov r5,-(sp) 6 | mov sp,r5 7 | mov 4(r5),r0 8 | sys 52 9 | bec 1f 10 | jmp cerror 11 | 1: 12 | clr r0 13 | mov (sp)+,r5 14 | rts pc 15 | #} 16 | -------------------------------------------------------------------------------- /usr/personal/user/src/communi/RelSem.s: -------------------------------------------------------------------------------- 1 | #int ReleaseSemphore(int sd) 2 | #{ 3 | .globl _ReleaseSemphore 4 | _ReleaseSemphore: 5 | mov r5,-(sp) 6 | mov sp,r5 7 | mov 4(r5),r0 8 | sys 53 9 | bec 1f 10 | jmp cerror 11 | 1: 12 | clr r0 13 | mov (sp)+,r5 14 | rts pc 15 | #} 16 | -------------------------------------------------------------------------------- /usr/personal/user/src/SuspThd.s: -------------------------------------------------------------------------------- 1 | #define SUSPTHREAD 76 2 | #int SuspendThread(int tid) 3 | #{ 4 | .globl _SuspendThread 5 | _SuspendThread: 6 | mov r5,-(sp) 7 | mov sp,r5 8 | mov 4(r5),r0 9 | sys SUSPTHREAD 10 | jmp cerror 11 | clr r0 12 | mov (sp)+,r5 13 | rts pc 14 | #} 15 | -------------------------------------------------------------------------------- /usr/personal/user/src/communi/FreeSharedMem.s: -------------------------------------------------------------------------------- 1 | #int FreeSharedMemory(int shd) 2 | #{ 3 | .globl _FreeSharedMemory 4 | _FreeSharedMemory: 5 | mov r5,-(sp) 6 | mov sp,r5 7 | mov 4(r5),r0 8 | sys 70 9 | bec 1f 10 | jmp cerror 11 | 1: 12 | clr r0 13 | mov (sp)+,r5 14 | rts pc 15 | #} 16 | -------------------------------------------------------------------------------- /usr/personal/user/src/ResumThd.s: -------------------------------------------------------------------------------- 1 | #define RESUMTHREAD 77 2 | 3 | #int ResumeThread(int tid) 4 | #{ 5 | .globl _ResumeThread 6 | _ResumeThread: 7 | mov r5,-(sp) 8 | mov sp,r5 9 | mov 4(r5),r0 10 | sys RESUMTHREAD 11 | jmp cerror 12 | clr r0 13 | mov (sp)+,r5 14 | rts pc 15 | #} 16 | -------------------------------------------------------------------------------- /usr/personal/user/src/communi/UnmapSharedMem.s: -------------------------------------------------------------------------------- 1 | #int UnmapSharedMemory(int shd) 2 | #{ 3 | .globl _UnmapSharedMemory 4 | _UnmapSharedMemory: 5 | mov r5,-(sp) 6 | mov sp,r5 7 | mov 4(r5),r0 8 | sys 72 9 | bec 1f 10 | jmp cerror 11 | 1: 12 | clr r0 13 | mov (sp)+,r5 14 | rts pc 15 | #} 16 | -------------------------------------------------------------------------------- /usr/source/s/s5/times.s: -------------------------------------------------------------------------------- 1 | / C library -- times 2 | 3 | .globl _times 4 | times = 43. 5 | 6 | _times: 7 | mov r5,-(sp) 8 | mov sp,r5 9 | mov 4(r5),0f 10 | sys 0; 9f 11 | mov (sp)+,r5 12 | rts pc 13 | .data 14 | 9: 15 | sys times; 0:.. 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /usr/personal/user/src/communi/CreatPrivMbx.s: -------------------------------------------------------------------------------- 1 | #int CreatePrivMbx(char *name) 2 | #{ 3 | .globl _CreatePrivMbx 4 | _CreatePrivMbx: 5 | mov r5,-(sp) 6 | mov sp,r5 7 | mov 4(r5),0f 8 | sys 0; 9f 9 | bec 1f 10 | jmp cerror 11 | 1: 12 | mov (sp)+,r5 13 | rts pc 14 | 9: 15 | sys 60; 0: .. 16 | #} 17 | -------------------------------------------------------------------------------- /usr/sys/dmr/dhfdm.c: -------------------------------------------------------------------------------- 1 | /* 2 | * DM-BB fake driver 3 | */ 4 | #include "../tty.h" 5 | #include "../conf.h" 6 | 7 | struct tty dh11[]; 8 | 9 | dmopen(dev) 10 | { 11 | register struct tty *tp; 12 | 13 | tp = &dh11[dev.d_minor]; 14 | tp->t_state =| CARR_ON; 15 | } 16 | 17 | dmclose(dev) 18 | { 19 | } -------------------------------------------------------------------------------- /usr/source/s/s2/tty.s: -------------------------------------------------------------------------------- 1 | / tty -- get tty number 2 | 3 | .globl ttyn 4 | 5 | clr r0 6 | jsr pc,ttyn 7 | movb r0,nam 8 | mov $1,r0 9 | sys write; name; 5 10 | sys exit 11 | 12 | .data 13 | name: 14 | <tty> 15 | nam: 16 | <x\n> 17 | .even 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /usr/personal/user/src/communi/ClosePubMbx.s: -------------------------------------------------------------------------------- 1 | #int ClosePublicMbx(char *name) 2 | #{ 3 | .globl _ClosePublicMbx 4 | _ClosePublicMbx: 5 | mov r5,-(sp) 6 | mov sp,r5 7 | mov 4(r5),0f 8 | sys 0; 9f 9 | bec 1f 10 | jmp cerror 11 | 1: 12 | clr r0 13 | mov (sp)+,r5 14 | rts pc 15 | 9: 16 | sys 67; 0: .. 17 | #} 18 | -------------------------------------------------------------------------------- /usr/personal/user/src/communi/WaitEvt.s: -------------------------------------------------------------------------------- 1 | #int WaitEvent(int ed, time) 2 | #{ 3 | .globl _WaitEvent 4 | _WaitEvent: 5 | mov r5,-(sp) 6 | mov sp,r5 7 | mov 4(r5),r0 8 | mov 6(r5),0f 9 | sys 0; 9f 10 | bec 1f 11 | jmp cerror 12 | 1: 13 | mov (sp)+,r5 14 | rts pc 15 | .data 16 | 9: 17 | sys 56; 0: .. 18 | #} 19 | -------------------------------------------------------------------------------- /usr/personal/user/src/communi/CreatePubMbx.s: -------------------------------------------------------------------------------- 1 | #int CreatePublicMbx(char *name) 2 | #{ 3 | .globl _CreatePublicMbx 4 | _CreatePublicMbx: 5 | mov r5,-(sp) 6 | mov sp,r5 7 | mov 4(r5),0f 8 | sys 0; 9f 9 | bec 1f 10 | jmp cerror 11 | 1: 12 | clr r0 13 | mov (sp)+,r5 14 | rts pc 15 | 9: 16 | sys 66; 0: .. 17 | #} 18 | -------------------------------------------------------------------------------- /usr/source/s/s5/nice.s: -------------------------------------------------------------------------------- 1 | / C library-- nice 2 | 3 | / error = nice(hownice) 4 | 5 | .globl _nice, cerror 6 | 7 | _nice: 8 | mov r5,-(sp) 9 | mov sp,r5 10 | mov 4(sp),r0 11 | sys nice 12 | bec 1f 13 | jmp cerror 14 | 1: 15 | clr r0 16 | mov (sp)+,r5 17 | rts pc 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /usr/personal/user/src/GetThdID.s: -------------------------------------------------------------------------------- 1 | #define GETTHDID 79 2 | #int GetThreadID(char *name) 3 | #{ 4 | .globl _GetThreadID 5 | _GetThreadID: 6 | mov r5,-(sp) 7 | mov sp,r5 8 | mov 4(r5), 0f 9 | sys 0; 9f 10 | bec 1f 11 | jmp cerror 12 | 1: 13 | mov (sp)+,r5 14 | rts pc 15 | 9: 16 | sys GETTHDID; 0:..; 17 | #} 18 | -------------------------------------------------------------------------------- /usr/source/s/s4/close.s: -------------------------------------------------------------------------------- 1 | / C library -- close 2 | 3 | / error = close(file); 4 | 5 | .globl _close, cerror 6 | 7 | _close: 8 | mov r5,-(sp) 9 | mov sp,r5 10 | mov 4(r5),r0 11 | sys close 12 | bec 1f 13 | jmp cerror 14 | 1: 15 | clr r0 16 | mov (sp)+,r5 17 | rts pc 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /usr/source/s/s4/execl.s: -------------------------------------------------------------------------------- 1 | / C library -- execl 2 | 3 | / execl(file, arg1, arg2, ... , 0); 4 | / 5 | 6 | .globl _execl, cerror 7 | 8 | _execl: 9 | mov r5,-(sp) 10 | mov sp,r5 11 | mov 4(r5),0f 12 | mov r5,r0 13 | add $6,r0 14 | mov r0,0f+2 15 | sys 0; 9f 16 | jmp cerror 17 | .data 18 | 9: 19 | sys exec; 0:..; .. 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /usr/source/s/s5/prof.s: -------------------------------------------------------------------------------- 1 | / profil 2 | 3 | .globl _profil 4 | _profil: 5 | mov r5,-(sp) 6 | mov sp,r5 7 | mov 4(r5),0f 8 | mov 6(r5),0f+2 9 | mov 10(r5),0f+4 10 | mov 12(r5),0f+6 11 | sys 0; 9f 12 | mov (sp)+,r5 13 | rts pc 14 | .data 15 | 9: 16 | sys 44.; 0:..; ..; ..; .. 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /usr/source/s/s5/setuid.s: -------------------------------------------------------------------------------- 1 | 2 | / C library -- setuid 3 | 4 | / error = setuid(uid); 5 | 6 | .globl _setuid, cerror 7 | 8 | _setuid: 9 | mov r5,-(sp) 10 | mov sp,r5 11 | mov 4(r5),r0 12 | sys setuid 13 | bec 1f 14 | jmp cerror 15 | 1: 16 | clr r0 17 | mov (sp)+,r5 18 | rts pc 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /usr/personal/user/src/communi/MapSharedMem.s: -------------------------------------------------------------------------------- 1 | #int MapSharedMemory(char *name, MapShm *ms) 2 | #{ 3 | .globl _MapSharedMemory 4 | _MapSharedMemory: 5 | mov r5,-(sp) 6 | mov sp,r5 7 | mov 4(r5),0f 8 | mov 6(r5),0f+2 9 | sys 0; 9f 10 | bec 1f 11 | jmp cerror 12 | 1: 13 | mov (sp)+,r5 14 | rts pc 15 | 9: 16 | sys 71; 0: ..;.. 17 | #} 18 | -------------------------------------------------------------------------------- /usr/source/s/s4/dup.s: -------------------------------------------------------------------------------- 1 | / C library -- dup 2 | 3 | / f = dup(of) 4 | / f == -1 for error 5 | 6 | dup = 41. 7 | 8 | .globl _dup, cerror 9 | 10 | _dup: 11 | mov r5,-(sp) 12 | mov sp,r5 13 | mov 4(r5),r0 14 | sys dup 15 | bec 1f 16 | jmp cerror 17 | 1: 18 | mov (sp)+,r5 19 | rts pc 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /usr/source/s/s5/setgid.s: -------------------------------------------------------------------------------- 1 | / C library -- setgid 2 | 3 | / error = setgid(uid); 4 | 5 | setgid = 46. 6 | .globl _setgid, cerror 7 | 8 | _setgid: 9 | mov r5,-(sp) 10 | mov sp,r5 11 | mov 4(r5),r0 12 | sys setgid 13 | bec 1f 14 | jmp cerror 15 | 1: 16 | clr r0 17 | mov (sp)+,r5 18 | rts pc 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /usr/sys/reg.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Location of the users' stored 3 | * registers relative to R0. 4 | * Usage is u.u_ar0[XX]. 5 | */ 6 | #define R0 (0) 7 | #define R1 (-2) 8 | #define R2 (-9) 9 | #define R3 (-8) 10 | #define R4 (-7) 11 | #define R5 (-6) 12 | #define R6 (-3) 13 | #define R7 (1) 14 | #define RPS (2) 15 | 16 | #define TBIT 020 /* PS trace bit */ -------------------------------------------------------------------------------- /usr/source/s/s4/chdir.s: -------------------------------------------------------------------------------- 1 | / C library -- chdir 2 | 3 | / error = chdir(string); 4 | 5 | .globl _chdir, cerror 6 | 7 | _chdir: 8 | mov r5,-(sp) 9 | mov sp,r5 10 | mov 4(r5),0f 11 | sys 0; 9f 12 | bec 1f 13 | jmp cerror 14 | 1: 15 | clr r0 16 | mov (sp)+,r5 17 | rts pc 18 | .data 19 | 9: 20 | sys chdir; 0:.. 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /usr/source/s/solloc/run: -------------------------------------------------------------------------------- 1 | as alloc.s; mv a.out alloc.o 2 | as altch.s; mv a.out altch.o 3 | as bsp.s; mv a.out bsp.o 4 | as bword.s; mv a.out bword.o 5 | as getch.s; mv a.out getch.o 6 | as getwd.s; mv a.out getwd.o 7 | as length.s; mv a.out length.o 8 | as rewind.s; mv a.out rewind.o 9 | as zero.s; mv a.out zero.o 10 | ar r /lib/libs.a *.o 11 | rm *.o 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /usr/personal/user/src/communi/RcvMsg.s: -------------------------------------------------------------------------------- 1 | #int ReceiveMessage(char *msg, int len, int time) 2 | #{ 3 | .globl _ReceiveMessage 4 | _ReceiveMessage: 5 | mov r5,-(sp) 6 | mov sp,r5 7 | mov 4(r5),0f 8 | mov 6(r5),0f+2 9 | mov 8(r5),0f+4 10 | sys 0; 9f 11 | bec 1f 12 | jmp cerror 13 | 1: 14 | mov (sp)+,r5 15 | rts pc 16 | .data 17 | 9: 18 | sys 59; 0: ..;..;.. 19 | #} 20 | -------------------------------------------------------------------------------- /usr/source/s/s5/makdir.s: -------------------------------------------------------------------------------- 1 | / C library -- makdir 2 | 3 | / error = makdir(string); 4 | 5 | .globl _makdir, cerror 6 | 7 | _makdir: 8 | mov r5,-(sp) 9 | mov sp,r5 10 | mov 4(r5),0f 11 | sys 0; 9f 12 | bec 1f 13 | jmp cerror 14 | 1: 15 | clr r0 16 | mov (sp)+,r5 17 | rts pc 18 | .data 19 | 9: 20 | sys makdir; 0:.. 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /usr/source/s/s5/pipe.s: -------------------------------------------------------------------------------- 1 | / pipe -- C library 2 | 3 | / pipe(f) 4 | / int f[2]; 5 | 6 | .globl _pipe, cerror 7 | 8 | pipe = 42. 9 | 10 | _pipe: 11 | mov r5,-(sp) 12 | mov sp,r5 13 | sys pipe 14 | bec 1f 15 | jmp cerror 16 | 1: 17 | mov 4(r5),r2 18 | mov r0,(r2)+ 19 | mov r1,(r2) 20 | clr r0 21 | mov (sp)+,r5 22 | rts pc 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /usr/source/s/s5/time.s: -------------------------------------------------------------------------------- 1 | / C library -- time 2 | 3 | / tvec = time(tvec); 4 | / 5 | / tvec[0], tvec[1] contain the time 6 | 7 | .globl _time 8 | 9 | _time: 10 | mov r5,-(sp) 11 | mov sp,r5 12 | sys time 13 | mov r2,-(sp) 14 | mov 4(r5),r2 15 | mov r0,(r2)+ 16 | mov r1,(r2)+ 17 | mov (sp)+,r2 18 | mov (sp)+,r5 19 | rts pc 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /usr/source/s/s5/unlink.s: -------------------------------------------------------------------------------- 1 | / C library -- unlink 2 | 3 | / error = unlink(string); 4 | / 5 | 6 | .globl _unlink, cerror 7 | 8 | _unlink: 9 | mov r5,-(sp) 10 | mov sp,r5 11 | mov 4(r5),0f 12 | sys 0; 9f 13 | bec 1f 14 | jmp cerror 15 | 1: 16 | clr r0 17 | mov (sp)+,r5 18 | rts pc 19 | .data 20 | 9: 21 | sys unlink; 0:.. 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /usr/source/s/s4/kill.s: -------------------------------------------------------------------------------- 1 | / C library -- kill 2 | 3 | .globl _kill, cerror 4 | kill = 37. 5 | indir = 0 6 | 7 | _kill: 8 | mov r5,-(sp) 9 | mov sp,r5 10 | mov 4(sp),r0 11 | mov 6(sp),8f 12 | sys indir; 9f 13 | bec 1f 14 | jmp cerror 15 | 1: 16 | clr r0 17 | mov (sp)+,r5 18 | rts pc 19 | 20 | .data 21 | 9: 22 | sys kill; 8:.. 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /usr/personal/user/src/GetThdName.s: -------------------------------------------------------------------------------- 1 | #define GETTHDNAME 80 2 | #int GetThreadName(int tid, char name[12]) 3 | #{ 4 | .globl _GetThreadName 5 | _GetThreadName: 6 | mov r5,-(sp) 7 | mov sp,r5 8 | mov 4(r5), 0f 9 | mov 6(r5), 0f+2 10 | sys 0; 9f 11 | bec 1f 12 | jmp cerror 13 | 1: 14 | clr r0 15 | mov (sp)+,r5 16 | rts pc 17 | 9: 18 | sys GETTHDNAME; 0:..;.. 19 | #} 20 | -------------------------------------------------------------------------------- /usr/personal/user/src/communi/Mutex.c: -------------------------------------------------------------------------------- 1 | #include "../../include/comm.h" 2 | int CreateMutex() 3 | { 4 | return CreateSemphore(1); 5 | } 6 | 7 | int CloseMutex(int md) 8 | { 9 | return CloseSemphore(md); 10 | } 11 | 12 | int AcquireMutex(int md) 13 | { 14 | return AcquireSemphore(md); 15 | } 16 | 17 | int ReleaseMutex(int md) 18 | { 19 | return ReleaseSemphore(md); 20 | } 21 | 22 | 23 | -------------------------------------------------------------------------------- /usr/source/s/s5/umount.s: -------------------------------------------------------------------------------- 1 | / C library -- umount/ 2 | 3 | .globl _umount 4 | .globl cerror 5 | indir = 0 6 | .comm _errno,2 7 | 8 | _umount: 9 | mov r5,-(sp) 10 | mov sp,r5 11 | mov 4(sp),0f 12 | sys indir; 9f 13 | bec 1f 14 | jmp cerror 15 | 1: 16 | clr r0 17 | mov (sp)+,r5 18 | rts pc 19 | 20 | .data 21 | 9: 22 | sys umount; 0:.. 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /usr/personal/user/src/communi/RcvMail.s: -------------------------------------------------------------------------------- 1 | #int ReceiveMail(int mbxd, char *mail, int len, int time) 2 | #{ 3 | .globl _ReceiveMail 4 | _ReceiveMail: 5 | mov r5,-(sp) 6 | mov sp,r5 7 | mov 4(r5), r0 8 | mov 6(r5),0f 9 | mov 8(r5),0f+2 10 | mov 10(r5),0f+4 11 | sys 0; 9f 12 | bec 1f 13 | jmp cerror 14 | 1: 15 | mov (sp)+,r5 16 | rts pc 17 | .data 18 | 9: 19 | sys 63; 0: ..;..;.. 20 | #} 21 | -------------------------------------------------------------------------------- /usr/personal/user/src/communi/SendMail.s: -------------------------------------------------------------------------------- 1 | #int SendMail(char *name, char *mail, int len, int time) 2 | #{ 3 | .globl _SendMail 4 | _SendMail: 5 | mov r5,-(sp) 6 | mov sp,r5 7 | mov 4(r5), 0f 8 | mov 6(r5),0f+2 9 | mov 8(r5),0f+4 10 | mov 10(r5),0f+6 11 | sys 0; 9f 12 | bec 1f 13 | jmp cerror 14 | 1: 15 | mov (sp)+,r5 16 | rts pc 17 | .data 18 | 9: 19 | sys 62; 0: ..;..;..;.. 20 | #} 21 | -------------------------------------------------------------------------------- /usr/personal/user/src/communi/SendMsg.s: -------------------------------------------------------------------------------- 1 | #int SendMessage(int pid, char *msg, int len, int time) 2 | #{ 3 | .globl _SendMessage 4 | _SendMessage: 5 | mov r5,-(sp) 6 | mov sp,r5 7 | mov 4(r5), r0 8 | mov 6(r5),0f 9 | mov 8(r5),0f+2 10 | mov 10(r5),0f+4 11 | sys 0; 9f 12 | bec 1f 13 | jmp cerror 14 | 1: 15 | mov (sp)+,r5 16 | rts pc 17 | .data 18 | 9: 19 | sys 58; 0: ..;..;.. 20 | #} 21 | -------------------------------------------------------------------------------- /usr/source/s/s4/chmod.s: -------------------------------------------------------------------------------- 1 | / C library -- chmod 2 | 3 | / error = chmod(string, mode); 4 | 5 | .globl _chmod, cerror 6 | 7 | _chmod: 8 | mov r5,-(sp) 9 | mov sp,r5 10 | mov 4(r5),0f 11 | mov 6(r5),0f+2 12 | sys 0; 9f 13 | bec 1f 14 | jmp cerror 15 | 1: 16 | clr r0 17 | mov (sp)+,r5 18 | rts pc 19 | .data 20 | 9: 21 | sys chmod; 0:..; .. 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /usr/source/s/s4/chown.s: -------------------------------------------------------------------------------- 1 | / C library -- chown 2 | 3 | / error = chown(string, owner); 4 | 5 | .globl _chown, cerror 6 | 7 | _chown: 8 | mov r5,-(sp) 9 | mov sp,r5 10 | mov 4(r5),0f 11 | mov 6(r5),0f+2 12 | sys 0; 9f 13 | bec 1f 14 | jmp cerror 15 | 1: 16 | clr r0 17 | mov (sp)+,r5 18 | rts pc 19 | .data 20 | 9: 21 | sys chown; 0:..; .. 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /usr/source/s/s4/link.s: -------------------------------------------------------------------------------- 1 | / C library -- link 2 | 3 | / error = link(old-file, new-file); 4 | / 5 | 6 | .globl _link, cerror 7 | 8 | _link: 9 | mov r5,-(sp) 10 | mov sp,r5 11 | mov 4(r5),0f 12 | mov 6(r5),0f+2 13 | sys 0; 9f 14 | bec 1f 15 | jmp cerror 16 | 1: 17 | clr r0 18 | mov (sp)+,r5 19 | rts pc 20 | .data 21 | 9: 22 | sys link; 0:..; .. 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /usr/source/s/s5/seek.s: -------------------------------------------------------------------------------- 1 | / C library -- seek 2 | 3 | / error = seek(file, offset, ptr); 4 | 5 | .globl _seek, cerror 6 | 7 | _seek: 8 | mov r5,-(sp) 9 | mov sp,r5 10 | mov 4(r5),r0 11 | mov 6(r5),0f 12 | mov 8(r5),0f+2 13 | sys 0; 9f 14 | bec 1f 15 | jmp cerror 16 | 1: 17 | clr r0 18 | mov (sp)+,r5 19 | rts pc 20 | .data 21 | 9: 22 | sys seek; 0:..; .. 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /usr/personal/user/src/communi/RcvPubMail.s: -------------------------------------------------------------------------------- 1 | #int RecivePublicMail(char *name, char *mail, int len, int time) 2 | #{ 3 | .globl _RecivePublicMail 4 | _RecivePublicMail: 5 | mov r5,-(sp) 6 | mov sp,r5 7 | mov 4(r5), r0 8 | mov 6(r5),0f 9 | mov 8(r5),0f+2 10 | mov 10(r5),0f+4 11 | sys 0; 9f 12 | bec 1f 13 | jmp cerror 14 | 1: 15 | mov (sp)+,r5 16 | rts pc 17 | .data 18 | 9: 19 | sys 68; 0: ..;..;.. 20 | #} 21 | -------------------------------------------------------------------------------- /usr/personal/user/src/communi/SendSharedMail.s: -------------------------------------------------------------------------------- 1 | #int SendSharedMail(int mbxd, char *mail, int len, int time) 2 | #{ 3 | .globl _SendSharedMail 4 | _SendSharedMail: 5 | mov r5,-(sp) 6 | mov sp,r5 7 | mov 4(r5), 0f 8 | mov 6(r5),0f+2 9 | mov 8(r5),0f+4 10 | mov 10(r5),0f+6 11 | sys 0; 9f 12 | bec 1f 13 | jmp cerror 14 | 1: 15 | mov (sp)+,r5 16 | rts pc 17 | .data 18 | 9: 19 | sys 65; 0: ..;..;..;.. 20 | #} 21 | -------------------------------------------------------------------------------- /usr/source/s/s5/open.s: -------------------------------------------------------------------------------- 1 | / C library -- open 2 | 3 | / file = open(string, mode) 4 | / 5 | / file == -1 means error 6 | //uchar 7 | .globl _open, cerror 8 | 9 | _open: 10 | mov r5,-(sp) 11 | mov sp,r5 12 | mov 4(r5),0f 13 | mov 6(r5),0f+2 14 | sys 0; 9f 15 | bec 1f 16 | jmp cerror 17 | 1: 18 | mov (sp)+,r5 19 | rts pc 20 | .data 21 | 9: 22 | sys open; 0:..; .. 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /usr/source/s/s4/creat.s: -------------------------------------------------------------------------------- 1 | 2 | / C library -- creat 3 | 4 | / file = creat(string, mode); 5 | / 6 | / file == -1 if error 7 | 8 | .globl _creat, cerror 9 | 10 | _creat: 11 | mov r5,-(sp) 12 | mov sp,r5 13 | mov 4(r5),0f 14 | mov 6(r5),0f+2 15 | sys 0; 9f 16 | bec 1f 17 | jmp cerror 18 | 1: 19 | mov (sp)+,r5 20 | rts pc 21 | .data 22 | 9: 23 | sys creat; 0:..; .. 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /usr/source/s/s5/mount.s: -------------------------------------------------------------------------------- 1 | / C library -- mount 2 | 3 | / error = mount(dev, file, flag) 4 | 5 | .globl _mount, cerror 6 | 7 | _mount: 8 | mov r5,-(sp) 9 | mov sp,r5 10 | mov 4(sp),0f 11 | mov 6(sp),0f+2 12 | mov 8(sp),0f+4 13 | sys 0; 9f 14 | bec 1f 15 | jmp cerror 16 | 1: 17 | clr r0 18 | mov (sp)+,r5 19 | rts pc 20 | .data 21 | 9: 22 | sys mount; 0:..; ..; .. 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /usr/personal/user/src/communi/CreatSharedMem.s: -------------------------------------------------------------------------------- 1 | #int CreateSharedMemory(char *name, int blocks, int ownpermin, int otherpermin) 2 | #{ 3 | .globl _CreateSharedMemory 4 | _CreateSharedMemory: 5 | mov r5,-(sp) 6 | mov sp,r5 7 | mov 4(r5),0f 8 | mov 6(r5),0f+2 9 | mov 8(r5),0f+4 10 | mov 10(r5),0f+6 11 | sys 0; 9f 12 | bec 1f 13 | jmp cerror 14 | 1: 15 | mov (sp)+,r5 16 | rts pc 17 | 9: 18 | sys 69; 0: ..;..;..;.. 19 | #} 20 | -------------------------------------------------------------------------------- /usr/sys/text.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Text structure. 3 | * One allocated per pure 4 | * procedure on swap device. 5 | * Manipulated by text.c 6 | */ 7 | struct text 8 | { 9 | int x_daddr; /* disk address of segment */ 10 | int x_caddr; /* core address, if loaded */ 11 | int x_size; /* size (*64) */ 12 | int *x_iptr; /* inode of prototype */ 13 | char x_count; /* reference count */ 14 | char x_ccount; /* number of loaded references */ 15 | } text[NTEXT]; -------------------------------------------------------------------------------- /usr/source/s/s5/write.s: -------------------------------------------------------------------------------- 1 | / C library -- write 2 | 3 | / nwritten = write(file, buffer, count); 4 | / 5 | / nwritten == -1 means error 6 | 7 | .globl _write, cerror 8 | 9 | _write: 10 | mov r5,-(sp) 11 | mov sp,r5 12 | mov 4(r5),r0 13 | mov 6(r5),0f 14 | mov 8(r5),0f+2 15 | sys 0; 9f 16 | bec 1f 17 | jmp cerror 18 | 1: 19 | mov (sp)+,r5 20 | rts pc 21 | .data 22 | 9: 23 | sys write; 0:..; .. 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /usr/source/s/solloc/getch.s: -------------------------------------------------------------------------------- 1 | .globl getchar 2 | .globl lookchar 3 | .globl w, r, a, l 4 | / 5 | / 6 | / routine to read next character from string 7 | / pointer to by r1; character returned in r0 8 | / c-bit set if character not availiable (eof) 9 | / 10 | / mov ...,r1 11 | / jsr pc,getchar 12 | / movb r0,... 13 | / 14 | getchar: 15 | jsr pc,lookchar 16 | bes 1f 17 | inc r(r1) 18 | tst r0 19 | 1: rts pc 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /usr/source/s/s5/mknod.s: -------------------------------------------------------------------------------- 1 | 2 | / C library -- mknod 3 | 4 | / error = mknod(string, mode, major.minor); 5 | 6 | .globl _mknod, cerror 7 | 8 | mknod = 14. 9 | _mknod: 10 | mov r5,-(sp) 11 | mov sp,r5 12 | mov 4(r5),0f 13 | mov 6(r5),0f+2 14 | mov 8(r5),0f+4 15 | sys 0; 9f 16 | bec 1f 17 | jmp cerror 18 | 1: 19 | clr r0 20 | mov (sp)+,r5 21 | rts pc 22 | .data 23 | 9: 24 | sys mknod; 0:..; ..; .. 25 | 26 | //read 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /usr/source/s/s5/read.s: -------------------------------------------------------------------------------- 1 | / C library -- read 2 | 3 | / nread = read(file, buffer, count); 4 | / 5 | / nread ==0 means eof; nread == -1 means error 6 | 7 | .globl _read, cerror 8 | 9 | _read: 10 | mov r5,-(sp) 11 | mov sp,r5 12 | mov 4(r5),r0 13 | mov 6(r5),0f 14 | mov 8(r5),0f+2 15 | sys 0; 9f 16 | bec 1f 17 | jmp cerror 18 | 1: 19 | mov (sp)+,r5 20 | rts pc 21 | .data 22 | 9: 23 | sys read; 0:..; .. 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /usr/source/s/s4/fstat.s: -------------------------------------------------------------------------------- 1 | / C library -- fstat 2 | 3 | / error = fstat(file, statbuf); 4 | 5 | / int statbuf[17] or 6 | / char statbuf[34] 7 | / as appropriate 8 | 9 | .globl _fstat, cerror 10 | 11 | _fstat: 12 | mov r5,-(sp) 13 | mov sp,r5 14 | mov 4(r5),r0 15 | mov 6(r5),0f 16 | sys 0; 9f 17 | bec 1f 18 | jmp cerror 19 | 1: 20 | clr r0 21 | mov (sp)+,r5 22 | rts pc 23 | .data 24 | 9: 25 | sys fstat; 0:.. 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /usr/source/s/s5/stat.s: -------------------------------------------------------------------------------- 1 | / C library -- stat 2 | 3 | / error = stat(string, statbuf); 4 | 5 | / int statbuf[18] or 6 | / char statbuf[36] 7 | / as appropriate 8 | 9 | .globl _stat, cerror 10 | 11 | _stat: 12 | mov r5,-(sp) 13 | mov sp,r5 14 | mov 4(r5),0f 15 | mov 6(r5),0f+2 16 | sys 0; 9f 17 | bec 1f 18 | jmp cerror 19 | 1: 20 | clr r0 21 | mov (sp)+,r5 22 | rts pc 23 | .data 24 | 9: 25 | sys stat; 0:..; .. 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /usr/source/s/s4/gtty.s: -------------------------------------------------------------------------------- 1 | / C library -- gtty 2 | 3 | / error = gtty(filep, ttyvec); 4 | 5 | / filep is descriptor of open tty 6 | / ttyvec[0, 1, 2] correspond to args of gtty 7 | 8 | .globl _gtty, cerror 9 | 10 | _gtty: 11 | mov r5,-(sp) 12 | mov sp,r5 13 | mov 4(r5),r0 14 | mov 6(r5),0f 15 | sys 0; 9f 16 | bec 1f 17 | jmp cerror 18 | 1: 19 | clr r0 20 | mov (sp)+,r5 21 | rts pc 22 | .data 23 | 9: 24 | sys gtty; 0:.. 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /usr/source/s/s5/stty.s: -------------------------------------------------------------------------------- 1 | / C library -- stty 2 | 3 | / error = stty(filep, ttyvec); 4 | 5 | / filep is descriptor of open tty 6 | / ttyvec[0, 1, 2] correspond to args of stty 7 | 8 | .globl _stty, cerror 9 | 10 | _stty: 11 | mov r5,-(sp) 12 | mov sp,r5 13 | mov 4(r5),r0 14 | mov 6(r5),0f 15 | sys 0; 9f 16 | bec 1f 17 | jmp cerror 18 | 1: 19 | clr r0 20 | mov (sp)+,r5 21 | rts pc 22 | .data 23 | 9: 24 | sys stty; 0:.. 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /usr/sys/file.h: -------------------------------------------------------------------------------- 1 | /* 2 | * One file structure is allocated 3 | * for each open/creat/pipe call. 4 | * Main use is to hold the read/write 5 | * pointer associated with each open 6 | * file. 7 | */ 8 | struct file 9 | { 10 | char f_flag; 11 | char f_count; /* reference count */ 12 | int f_inode; /* pointer to inode structure */ 13 | char *f_offset[2]; /* read/write character pointer */ 14 | } file[NFILE]; 15 | 16 | /* flags */ 17 | #define FREAD 01 18 | #define FWRITE 02 19 | #define FPIPE 04 -------------------------------------------------------------------------------- /usr/source/s/s5/ptrace.s: -------------------------------------------------------------------------------- 1 | / ptrace -- C library 2 | 3 | / result = ptrace(req, pid, addr, data); 4 | 5 | ptrace = 26. 6 | indir = 0 7 | 8 | .globl _ptrace 9 | .globl cerror, _errno 10 | 11 | _ptrace: 12 | mov r5,-(sp) 13 | mov sp,r5 14 | mov 4.(r5),0f+4 15 | mov 6.(r5),0f+0 16 | mov 8.(r5),0f+2 17 | mov 10.(r5),r0 18 | clr _errno 19 | sys indir; 9f 20 | bec 1f 21 | jmp cerror 22 | 1: 23 | mov (sp)+,r5 24 | rts pc 25 | 26 | .data 27 | 9: 28 | sys ptrace; 0: .=.+6 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /usr/source/cref/index/econs.h: -------------------------------------------------------------------------------- 1 | # define NUMA 14 2 | # define NUMC 128 3 | # define NUMS 3 4 | # define SIZA 8 5 | # define SIZC 2 6 | # define SIZS 8 7 | # define PTRI 509 8 | # define CHARI 4000 9 | # define PTRX 5147 10 | # define CHARX 40000 11 | # define CONT 0 12 | # define COLL 1 13 | # define SAVE 2 14 | # define OUT 3 15 | # define EGOBL 4 16 | # define SHARP 5 17 | # define PNO 6 18 | 19 | # define SKIP 0 20 | # define COLLECT 1 21 | # define SKIP2 2 22 | #define CREATC 0644 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /usr/source/s/s1/cpall.c: -------------------------------------------------------------------------------- 1 | char buf[100]; 2 | 3 | main(argc, argv) 4 | char **argv; 5 | { 6 | register i; 7 | register char *c1, *c2; 8 | 9 | if(argc < 3) { 10 | write(2, "arg count\n", 10); 11 | exit(); 12 | } 13 | argc--; 14 | c1 = buf; 15 | c2 = argv[argc]; 16 | while(*c1++ = *c2++); 17 | c1[-1] = '/'; 18 | *c1++ = '.'; 19 | *c1 = '\0'; 20 | for(i=1; i<argc; i++) { 21 | if(fork()==0) { 22 | execl("/bin/cp", "cp", argv[i], buf); 23 | exit(); 24 | } 25 | wait(); 26 | } 27 | } 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /usr/source/s/s4/getchr.s: -------------------------------------------------------------------------------- 1 | / getchar() -- get a character from input file fin 2 | 3 | .globl _getchar 4 | .comm _errno,2 5 | .comm _fin,518. 6 | 7 | _getchar: 8 | mov r5,-(sp) 9 | mov sp,r5 10 | dec _fin+2 11 | bge 1f 12 | mov $_fin+6,_fin+4 13 | mov _fin,r0 14 | sys read; _fin+6; 512. 15 | bes badret 16 | tst r0 17 | beq badret 18 | dec r0 19 | mov r0,_fin+2 20 | 1: 21 | clr r0 22 | bisb *_fin+4,r0 23 | inc _fin+4 24 | mov (sp)+,r5 25 | rts pc 26 | 27 | badret: 28 | mov r0,_errno 29 | clr r0 30 | clr _fin+2 31 | mov (sp)+,r5 32 | rts pc 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /usr/personal/user/src/TermThd.s: -------------------------------------------------------------------------------- 1 | #define TERMTHD 78 2 | int TerminateThread(int tid) 3 | { 4 | .globl _TerminateThread 5 | _TerminateThread: 6 | mov r5,-(sp) 7 | mov sp,r5 8 | mov r1, -(sp) 9 | mov 4(r5),r1 10 | cmp 0, r1 11 | blt me 12 | beq err 13 | mov r1, -(sp) 14 | jsr gettid 15 | cmp r0, r1 16 | beq me 17 | sys TERMTHD 18 | bec 2f 19 | jmp cerror 20 | 2: 21 | clr r0 22 | br 1f 23 | err: 24 | mov EINVTHDID, _errno 25 | mov -1, r0 26 | br 1f 27 | me: 28 | mov -1, -(sp) 29 | jsr ExitThread 30 | 31 | 1: 32 | mov (sp)+, r1 33 | mov (sp)+,r5 34 | rts pc 35 | #} 36 | -------------------------------------------------------------------------------- /usr/source/s/s5/reset.s: -------------------------------------------------------------------------------- 1 | / C library -- reset, setexit 2 | 3 | / reset() 4 | / will generate a "return" from 5 | / the last call to 6 | / setexit() 7 | / by restoring sp, r5 8 | / and doing a return. 9 | / 10 | / useful for going back to the main loop 11 | / after a horrible error in a lowlevel 12 | / routine. 13 | 14 | .globl _setexit 15 | .globl _reset 16 | .globl csv, cret 17 | 18 | _setexit: 19 | jsr r5,csv 20 | mov r5,sr5 21 | mov 2(r5),spc 22 | jmp cret 23 | 24 | _reset: 25 | mov sr5,r5 26 | mov spc,2(r5) 27 | jmp cret 28 | 29 | .bss 30 | sr5: .=.+2 31 | spc: .=.+2 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /usr/sys/seg.h: -------------------------------------------------------------------------------- 1 | /* 2 | * KT-11 addresses and bits. 3 | */ 4 | 5 | #define UISD 0177600 /* first user I-space descriptor register */ 6 | #define UISA 0177640 /* first user I-space address register */ 7 | #define UDSA 0177660 /* first user D-space address register */ 8 | #define RO 02 /* access abilities */ 9 | #define WO 04 10 | #define RW 06 11 | #define ED 010 /* extend direction */ 12 | 13 | /* 14 | * structure used to address 15 | * a sequence of integers. 16 | */ 17 | struct 18 | { 19 | int r[]; 20 | }; 21 | int *ka6; /* 11/40 KISA6; 11/45 KDSA6 */ 22 | 23 | /* 24 | * address to access 11/70 UNIBUS map 25 | */ 26 | #define UBMAP 0170200 -------------------------------------------------------------------------------- /usr/sys/ino.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Inode structure as it appears on 3 | * the disk. Not used by the system, 4 | * but by things like check, df, dump. 5 | */ 6 | struct inode 7 | { 8 | int i_mode; 9 | char i_nlink; 10 | char i_uid; 11 | char i_gid; 12 | char i_size0; 13 | char *i_size1; 14 | int i_addr[8]; 15 | int i_atime[2]; 16 | int i_mtime[2]; 17 | }; 18 | 19 | /* modes */ 20 | #define IALLOC 0100000 21 | #define IFMT 060000 22 | #define IFDIR 040000 23 | #define IFCHR 020000 24 | #define IFBLK 060000 25 | #define ILARG 010000 26 | #define ISUID 04000 27 | #define ISGID 02000 28 | #define ISVTX 01000 29 | #define IREAD 0400 30 | #define IWRITE 0200 31 | #define IEXEC 0100 -------------------------------------------------------------------------------- /usr/source/cref/mcons.h: -------------------------------------------------------------------------------- 1 | # define NUMA 14 2 | # define NUMC 128 3 | # define NUMS 3 4 | # define SIZA 8 5 | # define SIZC 2 6 | # define SIZS 8 7 | # define PTRI 509 8 | # define CHARI 4000 9 | # define PTRX 509 10 | # define CHARX 4000 11 | # define CONT 1 12 | # define COLL 2 13 | # define SAVE 3 14 | # define OUT 4 15 | # define ASYM 5 16 | # define ASW 6 17 | # define CSYM 7 18 | # define CSW 8 19 | # define INCL 9 20 | # define DECL 10 21 | # define SK2 11 22 | # define SK 12 23 | # define TABS 13 24 | # define SEMI 14 25 | # define SHARP 15 26 | 27 | # define SKIP 0 28 | # define COLLECT 1 29 | # define SKIP2 2 30 | #define CREATC 0644 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /usr/source/cref/index.html: -------------------------------------------------------------------------------- 1 | 2 |
| File | Size | Date |
|---|---|---|
| ecmn.h | 744 | 14 May 1975 |
| econs.h | 362 | 14 May 1975 |
| ind0.c | 5532 | 14 May 1975 |
| ind1.c | 3725 | 14 May 1975 |
| ind2.c | 548 | 14 May 1975 |