;-*-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