PACKETsimselverwaltungDEFINESsimsel,installieresimselsystem:LETsystemname="s c h u l i s - Simulationssystem Version 3.0",titel1="Systemverwaltung",titel2="Installation",titel3="Installation: Drucker",meldung1="Das Simulationssystem ist noch nicht installiert.",meldung2="Kein Druckertreiber für Graphiken installiert.",meldung3="1 ... Simulationssystem",meldung5="2 ... Zeichnungen drucken",meldung6="---------------------------------------",meldung7="3 ... Neuinstallation: Simulationssystem",meldung8="4 ... Neuinstallation: Graphikdrucker",meldung9="q ... Simulationssystem verlassen",meldung10="Gewünschte Funktion:",meldung11="Bitte wählen Sie unter folgenden Anpassungen eine",meldung12="für Ihr Terminal und die zugehörige Grafikkarte",meldung13="angemessene heraus:",meldung14=" hercules-Anpassung",meldung15=" cga-Anpassung",meldung16=" ega-Anpassung",meldung17=" vga-Anpassung",meldung18="Solange vorgeschlagene Anpassung verneinen ",meldung19="bis passende genannt wird.",meldung20="Diese bejahen .",meldung21="Installation korrekt beendet",meldung22="Installation wegen Systemfehler gestoppt",meldung23="Verfügt das Terminal über den IBM-Zeichensatz",meldung24="Soll das vorhandene Simulationssystem gelöscht werden",meldung25="Soll der vorhandene Druckertreiber gelöscht werden",meldung26="Weiter mit beliebiger Taste",meldung27="Geladen wird Datei Nr. ",meldung28="Die benötigten Dateien sind vollständig geladen.",meldung29="Sie können die Diskette aus dem Laufwerk nehmen.",meldung30="Bitte warten - das Simulationssystem wird installiert.",meldung31="Installiert wird Datei von ",meldung32="Fehler bei der Übersetzung der Programme.",meldung33=" richtige Anpassung",meldung34="für Ihren Drucker geeigenete aus:",meldung35=" DRUCKER PLOTTER",meldung36=" xerox 4045 hp 72xx",meldung37=" epson sq hp 74xx",meldung38=" epson fx",meldung39=" binder 8600",meldung40=" kyocera",meldung41=" hp laserjet",meldung42="Bitte warten - der Druckertreiber wird installiert",meldung43="Bitte zunächst das Simulationssystem installieren.",meldung44="Zunächst müssen die erforderlichen Dateien geladen werden.",meldung45="Passwort: ",meldung46="Soll das System mit einem Passwort geschützt werden",meldung47="Fehler: Die Diskette ist ungültig oder nicht korrekt eingelegt!",meldung49="Installation vorzeitig abgebrochen",meldung50="Bitte legen sie eine Diskette der Anwendung",meldung51="in das Laufwerk und schließen es.",meldung52="Installation fortsetzen: ",meldung53="Installation abbrechen : ",meldung54="Bitte legen Sie eine weitere Diskette der Anwendung",menutasten="1234q",zeilenmenu1=9,zeilenmenu2=12,zeilenmenu3=14,menuankoppeln="installmenu(""ls-MENUKARTE:Simsel"",FALSE)",startschleifeaufrufen="managerschleife",ebenembvhandle="handlemenu(""Modellbankverwaltung"")",druckmenuhandle="handlemenu(""Drucken"")",ibmzeichensatz="ibmgraphicchar",stdsatzzeichen="stdgraphicchar",plotterein="plotter eingestellt (TRUE)",plotteraus="plotter eingestellt (FALSE)",depottaskname="simsel depot",lsmktaskname="ls-MENUKARTEN",lstaskname="LS-ANWENDUNG",simulationstaskname="ARBEITSPLATZ",mbverwtaskname="MODELLBANKVERWALTUNG",printertaskname="SIMSEL-PRINTER",pridepottaskname="SIMSEL-PRINTERDEPOT",umstelltaskname="DRUCKERANPASSUNGEN",archivname="simsel",menukarte="ls-MENUKARTE:Simsel",maskenname="simsel formulare",textdsname="TEXTE deutsch",mathekuerzel="simsel ",plotkuerzel=" plot",anzahlgesamt=39,anzahlsimprocs=18,anzahllsprocs=5,anzahlmbverwprocs=16,anzahlpriprocs=8,anzahldruckerds=18,ok=1111,fehler=9999,insertieren=2525,druckererzeugen=3260,drucker1erzeugen=3261,drucker8erzeugen=3268,systemstarten=4444,ebenembvbehandeln=4445,arbeitskanal=1,del="�",delpage="�",bell="�",left="�",beginmark="",endmark="",weiter="w",abbruch="�",niltext="";TASK VARdepottask,lsmktask,simulationstask,mbverwtask,lstask,pridepottask,printertask,ordertask,umstelltask;THESAURUS VAR archivinhalt;TEXT VARgraphicart,installationspassword:=niltext;INT VARdruckerindex;BOOL VARibmsatz;INT VARinstallationszaehler,antwort,ordercode;DATASPACE VARmessageds;BOOL VARsimselsysteminstalliert:=FALSE,graphikdruckerinstalliert:=FALSE;ROWanzahllsprocsTEXT CONSTvorlaufdatei:=ROWanzahllsprocsTEXT:("ls-DIALOG 1.korrektur","ls-DIALOG 2.simsel","ls-DIALOG 3.korrektur","ls-DIALOG 4.wd","ls zustaende parameter kurve");ROWanzahldruckerdsTEXT CONSTdruckerdatei:=ROWanzahldruckerdsTEXT:("ZEICHEN 8*8","ZEICHEN 6*10","ZEICHEN 8*16","spool cmd","mat.xerox4045 plot","mat.epson-sq plot","mat.epson-fx plot","mat.binder plot","mat.kyocera plot","mat.laserjet plot","mat.hp72xx plot","mat.hp74xx plot","simsel basis plot","simsel picture","ls dialoghilfen","output test","ls-DIALOG 5.korrektur","simsel.druckermenu");ROWzeilenmenu1TEXT CONSTmenu1:=ROWzeilenmenu1TEXT:(meldung3,meldung5,meldung6,meldung7,meldung8,niltext,meldung9,niltext,meldung10);ROWzeilenmenu2TEXT CONSTmenu2:=ROWzeilenmenu2TEXT:(meldung11,meldung12,meldung13,niltext,meldung14,meldung15,meldung16,meldung17,niltext,meldung18,meldung19,meldung20);ROWzeilenmenu3TEXT CONSTmenu3:=ROWzeilenmenu3TEXT:(meldung11,meldung34,niltext,meldung35,meldung36,meldung37,meldung38,meldung39,meldung40,meldung41,niltext,meldung18,meldung19,meldung20);PROCsimsel:disablestop;zeigekopierhinweis;startsystem;IFiserrorTHENclearerror;commanddialogue(FALSE);forget(all);commanddialogue(TRUE);zeigetitelzeile(titel1);gibmeldung(errormessage);startsystemEND IF END PROCsimsel;PROCzeigekopierhinweis:LETz1="schulis - Simulationssystem (SIMSEL)",z2="Lizenzfreie Software der",z3="Gesellschaft für Mathematik und Datenverarbeitung mbH",z4="Die Nutzung der Software ist nur im Schul- und Hochschulbereich",z5="für nichtkommerzielle Zwecke gestattet.",z6="Gewährleistung und Haftung werden ausgeschlossen.",z7="Weiter mit beliebiger Taste";page;cursor(26,3);out(z1);cursor(27,8);out(z2);cursor(13,10);out(z3);cursor(8,14);out(z4);cursor(20,15);out(z5);cursor(16,17);out(z6);cursor(26,23);out(z7);pause(100)END PROCzeigekopierhinweis;PROCstartsystem:TEXT VARch;INT VARrang,zeile,xpos,ypos;grundeinstellungen;REPzeigeverwaltungsmenu;warteaufkorrekteeingabe;werteeingabeausEND REP.grundeinstellungen:enablestop;checkoff;warningsoff.zeigeverwaltungsmenu:zeigetitelzeile(titel1);FORzeileFROM7UPTO15REPcursor(24,zeile);out(menu1(zeile-6))END REP;clearbuffer.warteaufkorrekteeingabe:getcursor(xpos,ypos);REPinchar(ch);rang:=pos(menutasten,ch);IFrang=0THENout(bell)ELSEcursor(xpos+1,ypos);out(ch);END IF UNTILrang<>0END REP.werteeingabeaus:SELECTrangOF CASE1:fuehresimselsystemausCASE2:fuehredruckermenuausCASE3:installieresimselsystemCASE4:installieredruckeranpassungOTHERWISE LEAVEstartsystemEND SELECT.fuehresimselsystemaus:IF NOTsimselsysteminstalliertTHENout(bell);gibmeldung(meldung1);LEAVEfuehresimselsystemausEND IF;uebergibbildschirm(mbverwtask,ebenembvbehandeln).fuehredruckermenuaus:IF NOTgraphikdruckerinstalliertTHENout(bell);gibmeldung(meldung2);LEAVEfuehredruckermenuausEND IF;uebergibbildschirm(/printertaskname,systemstarten).installieredruckeranpassung:IF NOTsimselsysteminstalliertTHENout(bell);gibmeldung(meldung43);LEAVEinstallieredruckeranpassungEND IF;IFgraphikdruckerinstalliertCAND NOTja(meldung25)THEN LEAVEinstallieredruckeranpassungEND IF;startprinterinstallation;IFiserrorTHENclearerror;gibmeldung(errormessage);ELSEzeigeinstallationsergebnis(titel3,graphikdruckerinstalliert)END IF END PROCstartsystem;PROCinstallieresimselsystem:IF NOTkorrektespasswordTHEN LEAVEinstallieresimselsystemEND IF;IFsimselsysteminstalliertCAND NOTja(meldung24)THEN LEAVEinstallieresimselsystemEND IF;startsimselinstallation;zeigeinstallationsergebnis(titel2,simselsysteminstalliert);IFsimselsysteminstalliertTHENdefinierepasswordEND IF;graphikdruckerinstalliert:=FALSE.END PROCinstallieresimselsystem;PROCstartsimselinstallation:INT VARi;bestimmegraphicundhalbgraphic;IF NOTerforderlichesystemdateieneingelesenTHENerrorstop(meldung49)END IF; loescheggfvorhandenetasks;stellebeziehungzulsmenukartenher;richtesicherungstasksein;sicheredateien;meldeinstallationsbeginn;richtelstaskein;richtesimulationstaskein;richtembverwtaskein;loeschedepottask.bestimmegraphicundhalbgraphic:graphicart:=graphikkarte;ibmsatz:=ja(meldung23).loescheggfvorhandenetasks:IFexiststask(depottaskname)THENend(/depottaskname)END IF;IFexiststask(lstaskname)THENend(/lstaskname)END IF.stellebeziehungzulsmenukartenher:IF NOTexiststask(lsmktaskname)THENerrorstop(meldung49)ELSElsmktask:=/lsmktasknameEND IF.richtesicherungstasksein:begin(depottaskname,PROCfreeglobalmanager,depottask);IF NOTexiststask(umstelltaskname)THENerrorstop(meldung49)ELSEumstelltask:=/umstelltasknameEND IF.sicheredateien:commanddialogue(FALSE);save(menukarte,lsmktask);save(maskenname,lsmktask);save(textdsname,lsmktask);save(archivinhalt,depottask);FORiFROM1UPTOanzahldruckerdsREP IF NOTexists(druckerdatei(i),umstelltask)THENsave(druckerdatei(i),umstelltask)END IF END REP;forget(archivinhalt).meldeinstallationsbeginn:zeigetitelzeile(titel2);cursor(15,10);out(meldung30);cursor(15,12);out(meldung31+text(anzahlgesamt)+" Dateien");installationszaehler:=0.richtelstaskein:begin(lstaskname,PROCinstallls,lstask);FORiFROM1UPTOanzahllsprocsREPinsertiereprogramme(lstask)END REP.richtesimulationstaskein:REP UNTILexiststask(simulationstaskname)CANDstatus(/simulationstaskname)=2END REP;simulationstask:=/simulationstaskname;FORiFROM1UPTOanzahlsimprocsREPinsertiereprogramme(simulationstask)END REP.richtembverwtaskein:REP UNTILexiststask(mbverwtaskname)CANDstatus(/mbverwtaskname)=2END REP;mbverwtask:=/mbverwtaskname;FORiFROM1UPTOanzahlmbverwprocsREPinsertiereprogramme(mbverwtask)END REP.loeschedepottask:end(depottask)END PROCstartsimselinstallation;BOOL PROCerforderlichesystemdateieneingelesen:LETdateien=60,nichtgeladen="0",geladen="1";ROWdateienTEXT CONSTsystemdatei:=ROWdateienTEXT:("simsel cga plot","simsel ega plot","simsel vga plot","simsel hercules plot","ZEICHEN 8*8","ZEICHEN 9*14","ZEICHEN 8*19","ZEICHEN 8*14","ZEICHEN 6*10","ZEICHEN 8*16","simsel formulare","TEXTE deutsch","ls-MENUKARTE:Simsel","ls-DIALOG 1.korrektur","ls-DIALOG 2.simsel","ls-DIALOG 3.korrektur","ls-DIALOG 4.wd","ls-DIALOG 5.korrektur","ls-DIALOG 5.simsel","spool cmd","mat.xerox4045 plot","mat.epson-sq plot","mat.epson-fx plot","mat.binder plot","mat.kyocera plot","mat.laserjet plot","mat.hp72xx plot","mat.hp74xx plot","simsel.druckermenu","ls zustaende parameter kurve","ls dateiscroll","modellbasis geraet","modellwerte","ls bildschirmeingaben","simsel basis plot","simsel picture","ls dialoghilfen","output","output test","ls co routinen und co","steuerung","ls demonstration","ls kombination","ls simulation","ltbearb","neue startschl","ls starte bearbeitung","simsel.text als row","ls simsel.masken","e","g","bs","o","m","op1","op2","modellbasis dialog","ls dp1","dp2","ls simselstarter");TEXT VARanweisung:=meldung50,pruefleiste:=dateien*nichtgeladen;TEXT CONSTziel:=dateien*geladen,anpassung:=mathekuerzel+graphicart+plotkuerzel;INT VARi,zaehler:=1;THESAURUS VARdiskinhalt;zeigetitelzeile(titel2);archivinhalt:=emptythesaurus;FORiFROM1UPTO4REP IFsystemdatei(i)<>anpassungTHENreplace(pruefleiste,i,geladen)END IF END REP;REPwarteaufeingabe;FORiFROM1UPTOdateienREP IF(pruefleisteSUBi)=nichtgeladenCAND(diskinhaltCONTAINSsystemdatei(i))THENladediedateiEND IF END REP;anweisung:=meldung54UNTILpruefleiste=zielEND REP;abschlussaktivitaeten;TRUE.zeigetexte:cursor(8,8);out(meldung44);cursor(8,9);out(anweisung);cursor(8,10);out(meldung51);cursor(8,12);out(meldung52);cursor(8,13);out(meldung53).warteaufeingabe:TEXT VARch;REPzeigetexte;inchar(ch);IFch=abbruchTHENrelease(archive);LEAVEerforderlichesystemdateieneingelesenWITH FALSE ELIFch=weiterTHENdisablestop;cursor(8,9);out(del);cursor(8,10);out(del);cursor(8,12);out(del);cursor(8,13);out(del);cursor(8,15);out(del);archive(archivname);diskinhalt:=ALLtestarchive;IFiserrorTHENclearerror;cursor(8,15);out(meldung47);enablestop;ELSEenablestop;LEAVE warteaufeingabeEND IF ELSEout(bell)END IF END REP.ladediedatei:cursor(8,9);out(meldung27+text(zaehler)+" von "+text(dateien-3)+" Dateien");fetch(systemdatei(i),testarchive);replace(pruefleiste,i,geladen);insert(archivinhalt,systemdatei(i));zaehlerINCR1.abschlussaktivitaeten:release(archive);cursor(8,8);out(meldung28+del);cursor(8,9);out(meldung29+del);pause(50).testarchive:archive.END PROCerforderlichesystemdateieneingelesen;PROCinstallls:INT VARi;FORiFROM1UPTOanzahllsprocsREPinsertiere(vorlaufdatei(i),depottask)END REP;IFibmsatzTHENdo(ibmzeichensatz)ELSEdo(stdsatzzeichen)END IF;begin(simulationstaskname,PROCinstallsimulationstask,simulationstask);begin(mbverwtaskname,PROCinstallmodellbankverwaltung,mbverwtask);disablestop;REP REPwarteaufauftragUNTILordercode>=drucker1erzeugenCANDordercode<=drucker8erzeugenEND REP;druckerindex:=ordercode-druckererzeugen;begin(printertaskname,PROCinstallprinter,printertask);gibantwort(ok)END REP END PROCinstallls;PROCinstallsimulationstask:ROWanzahlsimprocsTEXT CONSTsimproc:=ROWanzahlsimprocsTEXT:("ls dateiscroll",mathekuerzel+graphicart+plotkuerzel,"ls dialoghilfen","modellbasis geraet","modellwerte","ls bildschirmeingaben","simsel basis plot","simsel picture","output","ls co routinen und co","steuerung","ls demonstration","ls kombination","ls simulation","ltbearb","ls-DIALOG 5.simsel","neue startschl","ls starte bearbeitung");TEXT CONSTzugehoerendezeichen:=passenderzeichensatz;holenotfalls(zugehoerendezeichen,depottask);INT VARi;FORiFROM1UPTOanzahlsimprocsREPinsertiere(simproc(i),depottask)END REP;forget(zugehoerendezeichen,quiet);do(startschleifeaufrufen);.passenderzeichensatz:IFgraphicart="vga"THEN"ZEICHEN 8*19"ELIFgraphicart="ega"THEN"ZEICHEN 8*14"ELIFgraphicart="cga"THEN"ZEICHEN 8*8"ELSE"ZEICHEN 9*14"END IF.END PROCinstallsimulationstask;PROCinstallmodellbankverwaltung:ROWanzahlmbverwprocsTEXT CONSTdname:=ROWanzahlmbverwprocsTEXT:("ls dateiscroll","ls-DIALOG 5.korrektur","ls dialoghilfen","simsel.text als row","ls simsel.masken","e","g","bs","o","m","op1","op2","modellbasis dialog","ls dp1","dp2","ls simselstarter");INT VARi;insertierembverwsystem;beendeinstallation.insertierembverwsystem:FORiFROM1UPTOanzahlmbverwprocsREPinsertiere(dname(i),depottask)PER;do(menuankoppeln);.beendeinstallation:commanddialogue(FALSE);forget(all-textdsname-maskenname);commanddialogue(TRUE);disablestop;REP REPwarteaufauftragUNTILordercode=ebenembvbehandelnEND REP;continue(arbeitskanal);do(ebenembvhandle);gibbildschirmfrei(ok)END REP;END PROCinstallmodellbankverwaltung;PROCstartprinterinstallation:loescheggfvorhandenetask;bestimmedruckeranpassung;meldeinstallationsbeginn;richtedruckertasksein.loescheggfvorhandenetask:IFexiststask(printertaskname)THENend(/printertaskname)END IF.bestimmedruckeranpassung:druckerindex:=druckertreiber.meldeinstallationsbeginn:INT VARende:=anzahlpriprocs;IFdruckerindex>6THENendeDECR1END IF;zeigetitelzeile(titel2);cursor(15,10);out(meldung42);cursor(15,12);out(meldung31+text(ende)+" Dateien");installationszaehler:=0.richtedruckertasksein:INT VARi;IF NOTexiststask(pridepottaskname)THENbegin(pridepottaskname,PROCfreeglobalmanager,pridepottask)END IF;lstask:=/lstaskname;rufe(lstask,druckererzeugen+druckerindex);REP UNTILexiststask(printertaskname)CANDstatus(/printertaskname)=2END REP;printertask:=/printertaskname;FORiFROM1UPTOendeREPinsertiereprogramme(printertask)END REP END PROCstartprinterinstallation;PROCinstallprinter:LETanzahlzeichensaetze=3;ROWanzahlpriprocsTEXT CONSTprogramm:=ROWanzahlpriprocsTEXT:(druckerdatei(4),druckerdatei(4+druckerindex),druckerdatei(13),druckerdatei(14),druckerdatei(15),druckerdatei(16),druckerdatei(17),druckerdatei(18));INT VARi;BOOL VARplotterwirdinstalliert:=druckerindex>6;IF NOTplotterwirdinstalliertTHENholezeichensaetzeEND IF;insertieredieeinzelnenprogramme;do(menuankoppeln);abschlussaktivitaet.holezeichensaetze:FORiFROM1UPTOanzahlzeichensaetzeREPholenotfalls(druckerdatei(i),/umstelltaskname)PER.insertieredieeinzelnenprogramme:INT VARanfang:=1;IF plotterwirdinstalliertTHENanfang:=2END IF;FORiFROManfangUPTOanzahlpriprocsREPinsertiere(programm(i),/umstelltaskname)END REP.abschlussaktivitaet:IF NOTplotterwirdinstalliertTHEN FORiFROM1UPTOanzahlzeichensaetzeREPforget(druckerdatei(i),quiet)END REP END IF;IFplotterwirdinstalliertTHENdo(plotterein)ELSEdo(plotteraus)END IF;disablestop;REP REPwarteaufauftragUNTILordercode=systemstartenEND REP;continue(arbeitskanal);do(druckmenuhandle);gibbildschirmfrei(ok)END REP END PROCinstallprinter;PROCinsertiereprogramme(TASK VARzieltask):installationszaehlerINCR1;cursor(40,12);out(text(installationszaehler));rufe(zieltask,insertieren);IFantwort<>okTHENerrorstop(meldung32)END IF END PROCinsertiereprogramme;PROCinsertiere(TEXT CONSTname,TASK CONSTherkunft):REPwarteaufauftragUNTILordercode=insertierenEND REP;disablestop;holenotfalls(name,herkunft);insert(name);forget(name,quiet);IFiserrorTHENclearerror;gibantwort(fehler)ELSEgibantwort(ok)END IF;enablestopEND PROCinsertiere;PROCholenotfalls(TEXT CONSTname,TASK CONSTherkunft):IF NOTexists(name)THENfetch(name,herkunft)END IF END PROCholenotfalls;PROCrufe(TASK CONSTzieltask,INT CONSTauftrag):messageds:=nilspace;call(zieltask,auftrag,messageds,antwort);forget(messageds)END PROCrufe;PROCwarteaufauftrag:wait(messageds,ordercode,ordertask);forget(messageds)END PROCwarteaufauftrag;PROCgibantwort(INT CONSTantwortcode):messageds:=nilspace;send(ordertask,antwortcode,messageds);END PROCgibantwort;PROCuebergibbildschirm(TASK CONSTt,INT CONSTauftrag):break(quiet);rufe(t,auftrag);continue(arbeitskanal)END PROCuebergibbildschirm;PROCgibbildschirmfrei(INT CONSTantwortcode):break(quiet);gibantwort(antwortcode)END PROCgibbildschirmfrei;TEXT PROCgraphikkarte:LETanzahlplotprocs=4;ROWanzahlplotprocsTEXT CONSTplotname:=ROWanzahlplotprocsTEXT:("hercules","cga","ega","vga");INT VARi:=1,zeile;commanddialogue(TRUE);zeigetitelzeile(titel2);FORzeileFROM6UPTO17REPcursor(16,zeile);out(menu2(zeile-5))END REP;REPcursor(16,20);out(invers(text(plotname(i),11)));IFyes(meldung33)THENcommanddialogue(FALSE);LEAVEgraphikkarteWITHplotname(i)END IF;i:=iMODanzahlplotprocs+1END REP;plotname(i)END PROCgraphikkarte;INT PROCdruckertreiber:LETanzahlplotterprocs=8;ROWanzahlplotterprocsTEXT CONSTplotname:=ROWanzahlplotterprocsTEXT:("xerox4045","epson-sq","epson-fx","binder","kyocera","laserjet","hp72xx","hp74xx");INT VARi,zeile;commanddialogue(TRUE);zeigetitelzeile(titel3);FORzeileFROM3UPTO16REPcursor(16,zeile);out(menu3(zeile-2))END REP;i:=1;REPcursor(16,20);out(invers(text(plotname(i),11)));IFyes(meldung33)THENcommanddialogue(FALSE);LEAVEdruckertreiberWITHiEND IF;i:=iMODanzahlplotterprocs+1END REP;iEND PROCdruckertreiber;PROCzeigetitelzeile(TEXT CONSTfktbezeichner):TEXT CONSTzeile:=text(systemname,78-length(fktbezeichner))+fktbezeichner;page;cursor(1,1);out(invers(text(zeile,79)))END PROCzeigetitelzeile;PROCzeigeinstallationsergebnis(TEXT CONSTziel,BOOL VARerfolg):zeigetitelzeile(ziel);IFiserrorTHENclearerror;gibmeldung(meldung22);erfolg:=FALSE ELSEgibmeldung(meldung21);erfolg:=TRUE END IF END PROCzeigeinstallationsergebnis;PROCgibmeldung(TEXT CONSTmeldungstext):cursor(1,23);out(meldungstext);cursor(1,24);out(invers(text(meldung26,77)));clearbuffer;pauseEND PROCgibmeldung;PROCclearbuffer:REP UNTILincharety=niltextPER END PROCclearbuffer;BOOL PROCja(TEXT CONSTfrage):BOOL VARantwort;commanddialogue(TRUE);cursor(1,22);antwort:=yes(frage);cursor(1,22);out(del);commanddialogue(FALSE);antwortEND PROCja;TEXT PROCinvers(TEXT CONSTt):beginmark+t+endmarkEND PROCinvers;BOOL PROCkorrektespassword:installationspassword=niltextCORpasswordgetroffen.passwordgetroffen:TEXT VAReingabe;cursor(24,18);out(meldung45+del);getsecretline(eingabe);IFeingabe=installationspasswordTHENcursor(24,18);out(del);LEAVEpasswordgetroffenWITH TRUE END IF;out(bell);FALSE END PROCkorrektespassword;PROCdefinierepassword:installationspassword:=niltext;cursor(1,23);out(delpage);IFja(meldung46)THENcursor(1,23);out(meldung45+beginmark+left);editget(installationspassword,40,20);out( endmark)END IF END PROCdefinierepassword;END PACKETsimselverwaltung;