mirror of
https://github.com/PDP-10/its.git
synced 2026-01-14 07:40:05 +00:00
Added WHO%.
Resolves #294. Note: this program MPVs when run. Needs to get debugged. See #369. Source code from AR3: GREN; WHO% 5.
This commit is contained in:
parent
fad6cbe33a
commit
c658ec7862
@ -217,6 +217,7 @@ A list of [known ITS machines](doc/machines.md).
|
||||
- UNTALK, split-screen comm-link program.
|
||||
- UPTIME, Chaosnet uptime server.
|
||||
- WHAT, humorous quips to various "what" questions.
|
||||
- WHO%, list index/uname/jname/%time in sorted list.
|
||||
|
||||
6. A brand new host table is built from the host table source and
|
||||
installed into SYSBIN; HOSTS3 > using H3MAKE.
|
||||
|
||||
@ -823,6 +823,11 @@ expect ":KILL"
|
||||
respond "*" ":midas decsys;_decbot\r"
|
||||
expect ":KILL"
|
||||
|
||||
# who%
|
||||
respond "*" ":midas sys1;ts who%_sysen3;who%\r"
|
||||
expect ":KILL"
|
||||
respond "*" ":link sys1;ts %,sys1;ts who%\r"
|
||||
|
||||
# palx
|
||||
respond "*" ":midas sys;ts palx_sysen1;palx\r"
|
||||
expect ":KILL"
|
||||
|
||||
200
src/sysen3/who%.5
Normal file
200
src/sysen3/who%.5
Normal file
@ -0,0 +1,200 @@
|
||||
;-*-Midas-*-
|
||||
|
||||
TITLE :WHO% - List Index/Uname/Jname/%Time in sorted list
|
||||
|
||||
A=1
|
||||
B=2
|
||||
C=3
|
||||
D=4
|
||||
E=5
|
||||
T1=6
|
||||
T2=7
|
||||
T3=10
|
||||
T4=11
|
||||
P=17
|
||||
|
||||
Call=Pushj P,
|
||||
Return=Popj P,
|
||||
|
||||
TTYo==1
|
||||
TTYi==2
|
||||
PDLen==15
|
||||
MapLoc==5
|
||||
MapTop=177
|
||||
MapLen==MapTop-MapLoc+1
|
||||
JobMax==150
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
Define SYSCAL op,args
|
||||
.Call [Setz ? Sixbit /op/ ? args ((Setz))]
|
||||
Termin
|
||||
|
||||
Define TYPE &string
|
||||
Movei T1,<.Length string>
|
||||
Move T2,[440700,,[Ascii string]]
|
||||
Syscal SIOT,[%Climm,,TTYo ? T2 ? T1]
|
||||
.Lose %LsSys
|
||||
Termin
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
PDList: -PDLen,,PDList
|
||||
Block PDLen
|
||||
|
||||
Index: Block JobMax
|
||||
Who: Block JobMax
|
||||
What: Block JobMax
|
||||
Time: Block JobMax
|
||||
|
||||
NJobs: 0
|
||||
|
||||
LUBLK: 0
|
||||
USRHI: 0
|
||||
UNAME: 0
|
||||
JNAME: 0
|
||||
JTMU: 0
|
||||
|
||||
Tsint: Loc 42
|
||||
-TsintL,,Tsint
|
||||
Loc Tsint
|
||||
P
|
||||
0 ? 1_TTYi ? -1 ? -1 ? Flush
|
||||
TsintL==.-Tsint
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
Begin: Move P,Pdlist
|
||||
Syscal OPEN,[%Clbit,,.uao
|
||||
%Climm,,TTYo
|
||||
[Sixbit /TTY/]]
|
||||
.Lose %LsSys
|
||||
.Suset [.sOption,,[Optint,,]]
|
||||
.Suset [.sMsk2,,[1_TTYi]]
|
||||
Syscal OPEN,[%Clbit,,.uai
|
||||
%Climm,,TTYi
|
||||
[Sixbit /TTY/]]
|
||||
.Lose %LsSys
|
||||
Move A,[Squoze 0,LUBLK]
|
||||
.Eval A,
|
||||
.Lose
|
||||
Movem A,LUBLK
|
||||
Move B,[Squoze 0,USRHI]
|
||||
.Eval B,
|
||||
.Lose
|
||||
Movem B,USRHI
|
||||
Move C,[Squoze 0,UNAME]
|
||||
.Eval C,
|
||||
.Lose
|
||||
Add C,[(A)]
|
||||
Movem C,UNAME
|
||||
Move D,[Squoze 0,JNAME]
|
||||
.Eval D,
|
||||
.Lose
|
||||
Add D,[(A)]
|
||||
Movem D,JNAME
|
||||
Move E,[Squoze 0,JTMU]
|
||||
.Eval E,
|
||||
.Lose
|
||||
Add E,[(A)]
|
||||
Movem E,JTMU
|
||||
|
||||
MapSys: Syscal CORBLK,[%Climm,,%Cbndr
|
||||
%Climm,,%Jself
|
||||
[-MapLen,,MapLoc]
|
||||
%Climm,,%Jsnum]
|
||||
.Value [Asciz /: System map failed? KILL /]
|
||||
|
||||
Init: Setzb A,B
|
||||
Setz C,
|
||||
TYPE "Idx Uname Jname %Timeî"
|
||||
|
||||
Inhale: Skipn @UNAME
|
||||
Jrst Next
|
||||
Move D,@JTMU
|
||||
Addi D,9830.
|
||||
IDivi D,19661.
|
||||
Jumpe D,Next
|
||||
Movem D,Time(C)
|
||||
Movem B,Index(C)
|
||||
Move T1,@UNAME
|
||||
Movem T1,Who(C)
|
||||
Move T2,@JNAME
|
||||
Movem T2,What(C)
|
||||
Aos C,NJobs
|
||||
|
||||
Next: Add A,LUBLK
|
||||
Aoj B,
|
||||
Camge A,@USRHI
|
||||
Jrst Inhale
|
||||
|
||||
Sorti: Setz A,
|
||||
Move B,NJobs
|
||||
|
||||
Sort: Soj B,
|
||||
Caml A,Time(B)
|
||||
Jrst Too
|
||||
Move C,B
|
||||
Move A,Time(B)
|
||||
Too: Jumpn B,Sort
|
||||
Jumpe A,Done
|
||||
Move T1,Index(C)
|
||||
Movei T4,8.
|
||||
Call BType
|
||||
.Iot TTYo,[" ]
|
||||
Move T1,Who(C)
|
||||
Call 6Type
|
||||
.Iot TTYo,[" ]
|
||||
Move T1,What(C)
|
||||
Call 6Type
|
||||
.Iot TTYo,[" ]
|
||||
Move T1,A
|
||||
Movei T4,10.
|
||||
Call BType
|
||||
.Iot TTYo,["%]
|
||||
.Iot TTYo,[^M]
|
||||
Setzm Time(C)
|
||||
Jrst Sorti
|
||||
|
||||
Done: .Logout 1,
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
Flush: Movei E,TTYi
|
||||
.ITyic E,
|
||||
.Lose
|
||||
Cain E,40
|
||||
Jrst Dismis
|
||||
.Reset TTYo,
|
||||
.Reset TTYi,
|
||||
TYPE "Flushed"
|
||||
Jrst Done
|
||||
|
||||
Dismis: Syscal DISMIS,[P]
|
||||
.Lose
|
||||
|
||||
6Type: Movei T3,6.
|
||||
6TLoop: Setz T2,
|
||||
Rotc T1,6
|
||||
Addi T2,40
|
||||
.Iot TTYo,T2
|
||||
Sojn T3,6TLoop
|
||||
Return
|
||||
|
||||
BType: Setz T3, ;3 digit justify
|
||||
BLoop: IDiv T1,T4
|
||||
Push P,T2
|
||||
Aoj T3,
|
||||
Jumpn T1,BLoop
|
||||
RJust: Movei T2,3
|
||||
Sub T2,T3
|
||||
Jumpe T2,BOut
|
||||
.Iot TTYo,[" ]
|
||||
Sojn T2,.-1
|
||||
BOut: Pop P,T1
|
||||
Addi T1,60
|
||||
.Iot TTYo,T1
|
||||
Sojn T3,BOut
|
||||
Return
|
||||
|
||||
END BEGIN
|
||||
Loading…
x
Reference in New Issue
Block a user