PACKEToperatormanagerDEFINESoperatormanager,continue:LETb0="Nur für Systemtasks zugelassen";PROCoperatormanager(DATASPACE VARc0,INT CONSTd0,e0,TASK CONSTf0):enablestop;IFf0=supervisorORf00.w0:ja(l0.k0+s0,"JA/spool control",t0).x0:call(q0,r0,j0,n0);IFn0=b0THENm0:=j0;errorstop(m0);FI;IFt0THEN LEAVEp0FI;END PROCp0;PROCkiller(TASK CONSTq0):p0(q0,d0," loeschen",FALSE)END PROCkiller;PROCfirst(TASK CONSTq0):p0(q0,e0," als erstes",TRUE)END PROCfirst;PROCstart(TASK CONSTq0):call(g0,"",q0);call(f0,"",q0);END PROCstart;PROCstop(TASK CONSTq0):call(g0,"",q0);END PROCstop;PROChalt(TASK CONSTq0):call(h0,"",q0);END PROChalt;PROCwaitforhalt(TASK CONSTq0):call(i0,"",q0);END PROCwaitforhalt;END PACKETspoolcmd; PACKEToperatorDEFINESoperator:LETb0= #2001#"Weitermachen in Bereich:",c0= #2002#"Unter welchem Vater:",d0= #2003#""15"Bereich "14"",e0= #2004#""15"Datum "14"",f0= #2005#"Arbeitsbereich ganz abkoppeln",g0= #2006#"Arbeitsbereich existiert nicht. Neu einrichten",h0= #2007#"Nicht auf Terminal 1. Trotzdem abschalten",i0= #2008#" KB von ",j0= #2009#" KB sind belegt.",k0= #2010#"Name des Arbeitsbereichs:",l0= #2011#" ist kein Name eines Bereiches",m0= #2012#" löschen",n0= #2013#"Speicher:",o0= #2014#" KB CPU-Zeit : ",p0= #2015#"Zustand : ",q0= #2016#" Priorität: ",r0= #2017#" Kanal: ",s0= #2018#"Arbeit",t0= #2019#"EinAus",u0= #2020#"Warten",v0= #2021#"B(Arb)",w0= #2022#"B(E/A)",x0= #2023#"B(Wrt)",y0= #2024#">>TOT<",z0= #2025#"Druckertreiber gestoppt.",a1= #2026#"Druckertreiber gestartet.",b1= #2027#"Druckertreiber angehalten.",c1= #2028#"Auf Anhalten des Treibers warten",d1= #2029#""15"Drucker "14"",e1= #2030#"Welche Druckertask soll eingestellt werden:",f1= #2031#"Bitte warten .. "; FENSTER VARg1,h1;fensterinitialisieren(g1);;fenstergroessesetzen(g1,1,2,16,22);fensterinitialisieren(h1);fenstergroessesetzen(h1,17,2,63,22);dialogfenster(h1);TEXT VARi1:="PRINTER";PROCoperator:TASK VARj1;TEXT VARk1:="";continue(niltask);REPj1:=continuedfrom;page;bildschirmneu;disablestop;l1;m1END REP.l1:menueanbieten(ROW6TEXT:("OPERATOR.Abschalten","OPERATOR.Systemzustand","OPERATOR.Drucker","OPERATOR.Netz","OPERATOR.Konfiguration",""),g1,TRUE,PROC(INT CONST,INT CONST)n1).m1:BOOL VARo1;IFexists(j1)CAND NOT(j1=supervisor)THENo1:=TRUE;continue(j1)ELSEo1:=FALSE END IF;IFiserrorOR NOTo1THEN REP IFiserrorTHENfehlerausgebenEND IF;p1;q1UNTIL NOTiserrorEND REP END IF.p1:REPeditget(b0,k1,"","GET/neuer taskname");UNTILr1END REP.r1:IFk1=""THENs1ELSEexiststask(k1)CORt1END IF.q1:IFk1=""THENcontinue(niltask)ELIFexiststask(k1)THENcontinue(task(k1))ELSE TEXT VARu1:="";editget(c0,u1,"","GET/name vatertask");begin(k1,u1);continue(task(k1))END IF.s1:ja(f0,"JA/ganz").t1:ja(g0,"JA/task einrichten").END PROCoperator;PROCn1(INT CONSTv1,w1):enablestop;SELECTv1OF CASE0:x1CASE1:y1CASE2:z1CASE3:a2CASE4:b2CASE5:c2END SELECT;IFw1=-1THENdialogfensterloeschenEND IF.x1:fusszeile(d0,"",35,e0,64);fussteil(1,name(myself));fussteil(3,date).y1:SELECTw1OF CASE1:d2CASE2:e2CASE3:page;bildschirmneu;setdate;dialogfensterloeschenCASE4:page;bildschirmneu;savesystemEND SELECT.d2:IFchannel=1CORf2THENpage;cursor(20,11);out(f1);cursor(20,13);shutup;fensterveraendert(g1);push(""27"q")END IF.f2:ja(h0,"JA/trotz shutup").z1:SELECTw1OF CASE1:g2CASE2:h2CASE3:i2CASE4:j2CASE5:k2END SELECT.g2:bittewarten;disablestop;DATASPACE VARl2:=nilspace;FILE VARf:=sequentialfile(output,l2);taskinfo(1,f);IF NOTiserrorTHENshow(f);bildschirmneuEND IF;forget(l2);enablestop;dialogfensterloeschen.h2:INT VARm2,n2;storage(m2,n2);m2:=int(real(m2+24)*64.0/63.0);dialog(text(n2)+i0+text(m2)+j0).i2:TEXT VARo2:="";editget(k0,o2,"GET/Taskname","");TASK VARp2:=task(o2);IFexists(p2)THENq2(p2)ELSEerrorstop(""""+o2+""""+l0)END IF.j2:bittewarten; taskinfo(3);bildschirmneu;dialogfensterloeschen.k2:o2:="";editget(k0,o2,"GET/Taskname","");IFja(""""+o2+""""+m0,"JA/Task loeschen",FALSE)THENend(task(o2))END IF.a2:SELECTw1OF CASE0:r2CASE1:start(task(i1));dialog(a1)CASE2:stop(task(i1));dialog(z0)CASE3:s2CASE4:list(task(i1));bildschirmneu;dialogfensterloeschenCASE5:first(task(i1))CASE6:killer(task(i1))CASE7:t2OTHERWISEu2END SELECT.r2:fussteil(2,d1,i1).s2:IFja(c1,"JA/halt warten",FALSE)THENwaitforhalt(task(i1))ELSEhalt(task(i1))END IF;dialog(b1).t2:TEXT VARv2:=i1;editget(e1,v2,"","GET/neuer printer");TASK CONSTdummy:=task(v2);i1:=v2;fussteil(2,i1).u2:IFw1=-1THENfussteil(2,"","")END IF.b2:SELECTw1OF CASE1:e2CASE2:e2CASE3:e2CASE4:e2END SELECT.c2:SELECTw1OF CASE1:w2CASE2:e2CASE3:e2CASE4:e2CASE5:e2END SELECT.w2:THESAURUS VARx2:=ALL/"configurator";page;bildschirmneu;y2(x2);fetch(x2,/"configurator");configurate;line;save("configuration",/"configurator");y2(x2);dialogfensterloeschen.END PROCn1;PROCq2(TASK CONSTp2):dialog(n0+z2+o0+a3);out(p0);b3 ;out(q0);c3;out(r0);d3.z2:text(storage(p2),5).a3:disablestop;TEXT VARe3:=subtext(time(clock(p2),12),1,10);IFiserrorTHENclearerror;e3:="**********"END IF;e3.b3:SELECTstatus(p2)OF CASE0:out(s0)CASE1:out(t0)CASE2:out(u0)CASE4:out(v0)CASE5:out(w0)CASE6:out(x0)OTHERWISEout(y0)END SELECT.c3:out(text(pcb(p2,6))).d3:IFchannel(p2)=0THENout(" -")ELSEout(text(channel(p2),2))END IF.END PROCq2;PROCy2(TEXT CONSTf3):forget(f3,quiet)END PROCy2;PROCy2(THESAURUS CONSTg3):do(PROC(TEXT CONST)y2,g3)END PROCy2;PROCbittewarten:cursor(1,1);out(f1);out(""5"")END PROCbittewarten;PROCe2:dialog("Zur Zeit nicht implementiert.")END PROCe2;END PACKEToperator;PACKEToperatormonitorDEFINESmonitor:PROCmonitor:disablestop;operatorEND PROCmonitor;END PACKEToperatormonitor;