+2
-2
@@ -95,7 +95,7 @@ dm1: -1
|
|||||||
|
|
||||||
9: .=.+t
|
9: .=.+t
|
||||||
c1: .=.+1
|
c1: .=.+1
|
||||||
q1: q2;q2+90 "** ?? 98 ??
|
q1: q2;q2+98
|
||||||
.=.+14
|
.=.+14
|
||||||
q2:
|
q2:
|
||||||
.+2;0;.+2;0;.+2;0;.+2;0;.+2;0;.+2;0;.+2;0;.+2;0;.+2;0;.+2;0
|
.+2;0;.+2;0;.+2;0;.+2;0;.+2;0;.+2;0;.+2;0;.+2;0;.+2;0;.+2;0
|
||||||
@@ -178,7 +178,7 @@ ulist:
|
|||||||
userdata:
|
userdata:
|
||||||
u.ac: 0
|
u.ac: 0
|
||||||
u.mq: 0
|
u.mq: 0
|
||||||
u.rq: .=.+9
|
u.rg: .=.+9
|
||||||
u.uid: -1
|
u.uid: -1
|
||||||
u.pid: 1
|
u.pid: 1
|
||||||
u.cdir: 3
|
u.cdir: 3
|
||||||
|
|||||||
+9
-9
@@ -30,12 +30,12 @@ orig:
|
|||||||
lacq
|
lacq
|
||||||
dac u.mq " save user MQ in user area
|
dac u.mq " save user MQ in user area
|
||||||
lac 8
|
lac 8
|
||||||
dac u.rq " save user auto-index location 8 in uarea
|
dac u.rg " save user auto-index location 8 in uarea
|
||||||
lac 9
|
lac 9
|
||||||
dac u.rq+1 " save auto-index location 9 in user area
|
dac u.rg+1 " save auto-index location 9 in user area
|
||||||
jms copy; 10; u.rq+2; 6 " save auto-index locations 10-15 (using 8/9!)
|
jms copy; 10; u.rg+2; 6 " save auto-index locations 10-15 (using 8/9!)
|
||||||
lac 1b " load user PC
|
lac 1b " load user PC
|
||||||
dac u.rq+8 " save in user area
|
dac u.rg+8 " save in user area
|
||||||
-1 " load -1
|
-1 " load -1
|
||||||
dac .savblk " set "save" flag (cleared by disk I/O?)
|
dac .savblk " set "save" flag (cleared by disk I/O?)
|
||||||
dac .insys " set "in system" flag
|
dac .insys " set "in system" flag
|
||||||
@@ -44,7 +44,7 @@ orig:
|
|||||||
jms swap " no: quantum expired: swap process out
|
jms swap " no: quantum expired: swap process out
|
||||||
ion " interrupts on
|
ion " interrupts on
|
||||||
-1
|
-1
|
||||||
tad u.rq+8 " get address of system call
|
tad u.rg+8 " get address of system call
|
||||||
jms laci " load system call instruction
|
jms laci " load system call instruction
|
||||||
jms betwen; o20001; swn " range check (expects CAL I!)
|
jms betwen; o20001; swn " range check (expects CAL I!)
|
||||||
jmp badcal " bad system call
|
jmp badcal " bad system call
|
||||||
@@ -71,15 +71,15 @@ sysexit: " common system call exit code
|
|||||||
jms chkint " pending user interrupt?
|
jms chkint " pending user interrupt?
|
||||||
skp " no, return to user
|
skp " no, return to user
|
||||||
jmp .save " yes: dump core
|
jmp .save " yes: dump core
|
||||||
jms copy; u.rq+2; 10; 6 " restore auto-index locations 10-15 (use 8/9)
|
jms copy; u.rg+2; 10; 6 " restore auto-index locations 10-15 (use 8/9)
|
||||||
lac u.rq+1 " restore auto-index location 9
|
lac u.rg+1 " restore auto-index location 9
|
||||||
dac 9
|
dac 9
|
||||||
lac u.rq " restore auto-index location 8
|
lac u.rg " restore auto-index location 8
|
||||||
dac 8
|
dac 8
|
||||||
lac u.mq " restore MQ register
|
lac u.mq " restore MQ register
|
||||||
lmq
|
lmq
|
||||||
lac u.ac " restore AC register
|
lac u.ac " restore AC register
|
||||||
jmp u.rq+8 i " return to user
|
jmp u.rg+8 i " return to user
|
||||||
|
|
||||||
" scheduler / swapper / idle loop
|
" scheduler / swapper / idle loop
|
||||||
swap: 0
|
swap: 0
|
||||||
|
|||||||
+1
-1
@@ -81,7 +81,7 @@ lookfor: 0
|
|||||||
dac u.pid " set child pid
|
dac u.pid " set child pid
|
||||||
isz 9f+t " advance to second word in process table
|
isz 9f+t " advance to second word in process table
|
||||||
dac 9f+t i " set pid in process table
|
dac 9f+t i " set pid in process table
|
||||||
isz u.rq+8 " give skip return
|
isz u.rg+8 " give skip return
|
||||||
dzm u.intflg " clear int flag
|
dzm u.intflg " clear int flag
|
||||||
jmp sysexit " return in child process
|
jmp sysexit " return in child process
|
||||||
t= t+1
|
t= t+1
|
||||||
|
|||||||
+2
-2
@@ -264,8 +264,8 @@ movdsp: 0
|
|||||||
|
|
||||||
" fetch user argument from word after "sys" call, return in AC
|
" fetch user argument from word after "sys" call, return in AC
|
||||||
arg: 0
|
arg: 0
|
||||||
lac u.rq+8 i " fetch word after return PC
|
lac u.rg+8 i " fetch word after return PC
|
||||||
isz u.rq+8 " bump PC
|
isz u.rg+8 " bump PC
|
||||||
jmp arg i
|
jmp arg i
|
||||||
|
|
||||||
" fetch user pathname argument from pointer word after "sys" call
|
" fetch user pathname argument from pointer word after "sys" call
|
||||||
|
|||||||
+1
-1
@@ -209,7 +209,7 @@ ulist:
|
|||||||
userdata: " "ustruct" (swappable)
|
userdata: " "ustruct" (swappable)
|
||||||
u.ac: 0 " user AC
|
u.ac: 0 " user AC
|
||||||
u.mq: 0 " user MQ
|
u.mq: 0 " user MQ
|
||||||
u.rq: .=.+9 " user 010-017, user PC
|
u.rg: .=.+9 " user 010-017, user PC
|
||||||
u.uid: -1 " user id
|
u.uid: -1 " user id
|
||||||
u.pid: 1 " process id
|
u.pid: 1 " process id
|
||||||
u.cdir: 3 " current directory (i-num?)
|
u.cdir: 3 " current directory (i-num?)
|
||||||
|
|||||||
Reference in New Issue
Block a user