1
0
mirror of https://github.com/PDP-10/its.git synced 2026-03-04 02:35:00 +00:00
Files
PDP-10.its/src/sysen3/who%.5
Eric Swenson c658ec7862 Added WHO%.
Resolves #294.
Note: this program MPVs when run. Needs to get debugged. See #369.

Source code from AR3: GREN; WHO% 5.
2016-12-21 08:20:05 +01:00

200 lines
2.9 KiB
Groff
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
;-*-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