;
;EGS Standard Installation-Script
;
;$VER: Install-Script 6.5  (19.05.1994) by MvK
;
; © 1994 by VIONA-Development all rights revserved.
;
; Script for single driver Update or EGS-Installtion for a
; special driver !
;
; change: 06 May 1994 mvk
;         13 May 1994 mvk
;
;
;**** Global variables and definitons ****

(set Disk1   "EGS-Install")
(set Disk2   "EGS-Disk1")
(set Disk3   "EGS-Disk2")
(set Disk4   "EGS-Disk3")
(set Disk5   "EGS-RecoverDisk")
(set RECDisk "EGS-RecoverDisk")

(set Disk1:  (cat Disk1 ":"))
(set Disk2:  (cat Disk2 ":"))
(set Disk3:  (cat Disk3 ":"))
(set Disk4:  (cat Disk4 ":"))
(set Disk5:  (cat Disk5 ":"))
(set RECDisk: (cat RECDisk ":"))

;CPUVer     "68000" "68010" "68020" "68030" "68040"
;InstSystem 0= Dont' Install EGS-System  1=Install EGS-System
;EGSSysDir  Path for Installation EGS-System
;Monitor    0=One Monitor 1=Two Monitors
;Direction  TOP LEFT Right Bottom(=3)
;EGSPARTS   EGS-System, EGS-Prefs, EGS-Tools, a.s.o. ....

(@language german)

;*************************

 ;**** Check Amiga for processor
(set CpuVer (database "cpu"))

;*** First thing to do anyway - is this system at least running 2.04 ?
(if
    (< (/ (getversion) 65536) 37)
    (
        (abort "Sie benötigen mindestens AmigaOS 2.04, um die EGS-Software installieren zu können.")
    )
)

(if (exists "EGS:" (noreq))
    (if (exists "EGS:Config" (noreq))
        (set InstallEGS
                (askbool
                  (prompt "\n\n\n"
                          "In auf Ihrer Festplatte ist das EGS-System 6.2 von GVP schon installiert !"
                          "Möchten Sie trotzdem das EGS-System installieren ?")
                    (help "Falls Sie ein EGS-System installiert haben, welches nicht älter als "
                          "April 1994 ist, brauchen Sie das EGS-System nicht mehr installieren !")
                    (default 1)
                )
        )
    )
)

(if (OR (= 0 (exists "EGS:Config" (noreq))) InstallEGS) (
    (message  "\n\n\n"
              "Leider ist noch keine EGS-System 6.2x in Ihrem System vorhanden ! \n"
              "Es wird jetzt mit der Installation des EGS-System 6.2x begonnen !")


;*** Now, let's check for the very old EGS system that resided in libs:
;*** If it exists, it should really be removed - otherwise it might cause lots
;*** of trouble for the user.

(if (= 0 (exists "EGS:" (noreq)))
    (if (exists "libs:egs.library")
    (
        (set InstSystem
            (askbool
                   (prompt "Es wurde die 'egs.library' im 'LIBS:'-Verzeichnis gefunden!\n"
                           "Es scheint, als wäre bereits ein altes EGS-System "
                           "auf Ihrem Rechner installiert.\n\nWARNUNG: Dieses alte EGS-System wird "
                           "jetzt gelöscht, um Versionskonflikten vorzubeugen.")
                    (help  "In Ihrem System wurde eine (alte) 'egs.library' in 'LIBS:' gefunden. "
                           "Dies kann zu Kollisionen der verschiedenen Versionen der Bibliotheken "
                           "führen; es ist darum dringend anzuraten, die alten Bibliotheken zu löschen.")
                       (default 1)
             )
        )
        (if (= 0 InstSystem)
        (
            (message  "Die alte existierende EGS-Software wurde nicht verändert! "
                      "Sie können den Installer neu starten, nachdem Sie "
                      "von Ihrer EGS-Software ein Backup gemacht haben.")
            (exit (quiet))
        )
        )
        (if (= 1 InstSystem)
        (
            (delete "libs:egs.library")
            (delete "libs:egsblit.library")
            (delete "libs:egsintui.library")
            (delete "libs:egsgfx.library")
            (delete "libs:egsrequest.library")
            (delete "libs:gbrequest.library")           ;*** old name for egsrequest
            (delete "libs:egslayers.library")
            (delete "libs:egs_r3d2.library")
            (delete "libs:egsgadbox.library")
            (run "delete libs:egb all")
        )
        )
    )
    )
)

;*** now, check for the newer version of EGS with an EGS: assignment

(if (exists "EGS:" (noreq))
(
    (set oldfound 1)
    (set InstSystem
        (askbool
        (prompt "Es wurde das logische Gerät 'EGS:' in Ihrem System gefunden.\n"
                "Es scheint, als wäre bereits eine (ältere ?) EGS-Version in Ihrem System vorhanden.\n\n"
                "Wollen Sie das neue EGS-System trotzdem installieren?\n\n"
                "WARNUNG: Das bereits existierende EGS-System "
                "(einschließlich Libraries und Voreinstellungen "
                "in Ihrem ENVARC:-Verzeichnis) wird dabei überschrieben!")

        (help "In Ihrem System wurde ein logisches Gerät mit dem Namen 'EGS' entdeckt.\n"
              "Das EGS-System nutzt das selbe Gerät, so daß anzunehmen ist, "
              "daß Sie das EGS-System eventuell bereits installiert hatten.")
        (default 1)
            )
    )
    (if (= 0 InstSystem)
    (
        (message  "Die alte existierende EGS-Software wurde nicht verändert! "
                  "Sie können den Installer neustarten, nachdem Sie "
                  "von Ihrer EGS-Software ein Backup gemacht haben.")
        (exit (quiet))
    )
    )
)
; else...install for sure
    (
        (set InstSystem 1)
        (set oldfound 0)
    )
)


;*** if an EGS: assignment did exist, the user might want to backup his
;*** self-created monitor definitions and prefs first...

(if (= oldfound 1)
    (
        (set backupold
            (askbool
                (prompt "Wollen Sie, daß von den Monitor-Definitionen und "
                        "Voreinstellungen Ihrer alten EGS-Installation eine "
                        "Sicherheitskopie gemacht wird, bevor das neue System "
                        "installiert wird ?")

                (help "Sie haben möglicherweise bei Ihrer alten EGS-Installation "
                      "selber Monitor-Definitionen erzeugt oder die Voreinstellungen "
                      "(Farben, Bildschirmmodus) verändert - da durch die neue "
                      "Installation diese alten Dateien überschrieben werden, können "
                      "Sie sich vor der Neuinstallation eine Sicherheitskopie der "
                      "alten Dateien anlegen lassen.")
                (default 1)
             )
        )
    )
    ; else...
    (set backupold 0)
)

;*** if the user is a novice, we will always make a backup of his prefs..
(if (= oldfound 1)
    (if (= @user-level 0)
        (set backupold 1)
    )
)

;*** Selection of EGS-System-drawer ***

(if (= 1 InstSystem)
(
    (set EGSSysDir
        (askdir
        (prompt "Bitte wählen Sie ein Verzeichnis, in das der "
            "EGS-System-Ordner installiert werden kann. "
            "Bedenken Sie: der Installer erzeugt darin den EGS-Ordner!")

    (help   "Hier wählen Sie das Verzeichnis, in das der EGS-System-"
            "Ordner kopiert wird. "
            "Sie müssen KEINEN neuen Ordner anlegen! Dieser wird "
            "automatisch in dem gewählten Verzeichnis unter dem Namen\n"
            "'EGS' erzeugt.\n\n"
            @askdir-help)

        (default "SYS:")
        )
    )
)
)

(set @default-dest EGSSysDir)

;*** create EGS top level directory
(makedir (tackon EGSSysDir "EGS")
    (prompt  "Erzeuge EGS-System Software-Verzeichnis.")
    (help    "Jetzt wird das Hauptverzeichnis für die EGS-Systemsoftware angelegt. ")
    (infos)
    (confirm "expert")
)

;*** now we can make a backup copy of the old settings, if the user wishes so
;*** (the novice user always wishes it - although he doesn't know :^)

(if (= backupold 1)
    (
        ;*** first, create subdirectories for the old stuff..
        (makedir (tackon EGSSysDir "EGS/Backup")
            (infos)
            (prompt "Erzeuge Verzeichnisse für Backup alter Einstellungen")
            (help "Es werden jetzt unter dem EGS-Hauptverzeichnis die Verzeichnisse "
                  "'Backup/envarc' und 'Backup/monitors' angelegt, in denen Sicherheitskopien "
                  "Ihrer alten Monitordefinitionen und Voreinstellungen abgespeichert "
                  "werden.")
        )
        (makedir (tackon EGSSysDir "EGS/Backup/envarc")
            (prompt "Erzeuge '" (tackon EGSSysDir "EGS/Backup/envarc") "'")
        )
        (makedir (tackon EGSSysDir "EGS/Backup/envarc/egs")
            (prompt "Erzeuge '" (tackon EGSSysDir "EGS/Backup/envarc/egs") "'")
        )
        (makedir (tackon EGSSysDir "EGS/Backup/monitors")
            (prompt "Erzeuge '" (tackon EGSSysDir "EGS/Backup/monitors") "'")
        )
        (makedir (tackon EGSSysDir "EGS/Backup/config")
            (prompt "Erzeuge '" (tackon EGSSysDir "EGS/Backup/config") "'")
        )
        (makedir (tackon EGSSysDir "EGS/Backup/Startup")
            (prompt "Erzeuge '" (tackon EGSSysDir "EGS/Backup/Startup") "'")
        )
        (makedir (tackon EGSSysDir "EGS/Backup/s")
            (prompt "Erzeuge '" (tackon EGSSysDir "EGS/Backup/s") "'")
        )
        (makedir (tackon EGSSysDir "EGS/Backup/Presets")
            (prompt "Erzeuge '" (tackon EGSSysDir "EGS/Backup/Presets") "'")
        )
        (makedir (tackon EGSSysDir "EGS/Backup/Presets/egs")
            (prompt "Erzeuge '" (tackon EGSSysDir "EGS/Backup/Presets/egs") "'")
        )

(if (= 2 (exists "EnvArc:EGS" (noreq)))
        (copyfiles
            (prompt "Kopiere alte ENVARC:-Einstellungen")
            (confirm "expert")
            (source "envarc:egs")
            (dest (tackon EGSSysDir "EGS/Backup/envarc/egs"))
            (all)
            (help "In diesem Schritt wird eine Sicherheitskopie der alten "
                  "ENVARC:-Einstellungen gemacht.")
        )
)
(if (= 2 (exists "SYS:Presets/EGS" (noreq)))
       (copyfiles
            (prompt "Kopiere alte Presets-Einstellungen")
            (confirm "expert")
            (source "Sys:Presets/egs")
            (dest (tackon EGSSysDir "EGS/Backup/Presets/egs"))
            (all)
            (help "In diesem Schritt wird eine Sicherheitskopie der alten "
                  "Presets-Einstellungen gemacht.")
        )
)
(if (= 2 (exists "EGS:monitors" (noreq)))
        (copyfiles
            (prompt "Kopiere alte Monitor-Definitionen")
            (confirm "expert")
            (source "EGS:monitors")
            (dest (tackon EGSSysDir "EGS/Backup/monitors"))
            (all)
            (help "In diesem Schritt wird eine Sicherheitskopie der alten "
                  "Monitor-Definitionen gemacht.")
        )
)
(if (= 2 (exists "EGS:config" (noreq)))
        (copyfiles
            (prompt "Kopiere alte EGS-Config Dateien")
            (confirm "expert")
            (source "EGS:Config")
            (dest (tackon EGSSysDir "EGS/Backup/Config"))
            (all)
            (help "In diesem Schritt wird eine Sicherheitskopie der alten "
                  "EGS-Config Dateien gemacht.")
        )
)

(if (= 2 (exists "EGS:Startup" (noreq)))
        (copyfiles
            (prompt "Kopiere alte EGS-Startup Dateien")
            (confirm "expert")
            (source "EGS:Startup")
            (dest (tackon EGSSysDir "EGS/Backup/Startup"))
            (all)
            (help "In diesem Schritt wird eine Sicherheitskopie der alten "
                  "EGS-Startup Dateien gemacht.")
        )
)

(if (= 2 (exists "EGS:S" (noreq)))
        (copyfiles
            (prompt "Kopiere alte EGS-S Dateien")
            (confirm "expert")
            (source "EGS:s")
            (dest (tackon EGSSysDir "EGS/Backup/s"))
            (all)
            (help "In diesem Schritt wird eine Sicherheitskopie der alten "
                  "EGS-S Dateien gemacht.")
        )
)

    )
)

;*** the following operation should be confirmed by ANY type of user, so we set
;*** him to expert user for a short moment...
;*** This step deinstalls the old EGS system software package

(set olduserlevel @user-level)
(set @user-level 2)

(if (= oldfound 1)
    (
        (set DeleteOldEGS
            (askbool
                (prompt "ACHTUNG: Im nächsten Schritt wird Ihre gesamte alte EGS-Installation "
                        "gelöscht. Dies ist notwendig, da sich der Aufbau von EGS geändert hat."
                        "\nFalls Sie im Verzeichnis EGS: selber weitere Software installiert "
                        "haben (außer der, die bei Ihrem EGS-Grafikkarte beilag), so sollten "
                        "Sie die Installation jetzt abbrechen und diese Software sichern.\n"
                        "Information: Das neue EGS-System ersetzt das alte vollständig.\n"
                        "\nWollen Sie, daß jetzt die GESAMTE alte EGS-Installation gelöscht "
                        "wird ?")
                (help "Wenn Sie wollen, können Sie an dieser Stelle die Installation "
                        "abbrechen, um möglicherweise selbst in EGS: installierte Software "
                        "zu sichern.")
                (choices "Ja" "Nein")
                (default 1)
            )
        )


        (if (= DeleteOldEGS 0)
            (abort ("Die Installation wurde abgebrochen."))

            ; else...
            (
                ; first, remove the EGS:libs assignment
                (run ("c:assign libs: EGS:libs remove"))
                ; next, remove the main EGS: assignment (but copy it first for the delete command)
                (set oldegspath (expandpath "EGS:"))
                ; and now, the really dangerous thing..
                (set retcode (+ retcode (run "c:delete EGS:blanker all force")))
                (set retcode (+ retcode (run "c:delete EGS:defaults all ")))
                (set retcode (+ retcode (run "c:delete EGS:c all force")))
                (set retcode (+ retcode (run "c:delete EGS:Config#? all ")))
                (set retcode (+ retcode (run "c:delete EGS:Startup#? all ")))
                (set retcode (+ retcode (run "c:delete EGS:Storage#? all ")))
                (set retcode (+ retcode (run "c:delete EGS:driver all force")))
                (set retcode (+ retcode (run "c:delete EGS:egsclasses all force")))
                (set retcode (+ retcode (run "c:delete EGS:games all force")))
                (set retcode (+ retcode (run "c:delete EGS:l all force")))
;                (set retcode (+ retcode (run "c:delete EGS:libs all force")))
                (delete "EGS:libs/egs.library")
                (delete "EGS:libs/egsblit.library")
                (delete "EGS:libs/egsintui.library")
                (delete "EGS:libs/egsgfx.library")
                (delete "EGS:libs/egsrequest.library")
                (delete "EGS:libs/gbrequest.library")           ;*** old name for egsrequest
                (delete "EGS:libs/egslayers.library")
                (delete "EGS:libs/egs_r3d2.library")
                (delete "EGS:libs/egsgadbox.library")
                (set retcode (+ retcode (run "c:delete EGS:libs/egb all force")))

                (set retcode (+ retcode (run "c:delete EGS:monitors all force")))
                (set retcode (+ retcode (run "c:delete EGS:s all force")))
                (set retcode (+ retcode (run "c:delete EGS:EGS-Paint#? all ")))
                (set retcode (+ retcode (run "c:delete EGS:EGS-Hooks#? all ")))
                (set retcode (+ retcode (run "c:delete EGS:EGS-Prefs#? all ")))
                (set retcode (+ retcode (run "c:delete EGS:EGS-Extras#? all ")))
                (set retcode (+ retcode (run "c:delete EGS:EGS-Pictures#? all ")))
                (set retcode (+ retcode (run "c:delete EGS:EGS-Tools#? all ")))
                (set retcode (+ retcode (run "c:delete EGS:EGS-Utilities#? all ")))

                ;Delete EGS-WB-Startup-Stuff
                (set retcode (+ retcode (run "c:delete SYS:WBStartup/EGS#?")))
                (set retcode (+ retcode (run "c:delete SYS:WBStartup/#?EGS#?")))
                (makeassign ("EGS") )
                (if (<> retcode 0)
                    (message "Achtung !\nEs konnte nicht das gesamte alte EGS-System "
                             "de-installiert werden. Der Grund dafür können von Ihnen "
                             "selbst erzeugte Suchpfade sein. Bitte entfernen Sie die "
                             "restlichen Dateien (unter '" oldegspath "') von Hand.")
                )
            )
        )
    )
)

;*** Ask choices for application stuff ***
;***

(set BASIC 0)
(set PREFS 1)
(set UTILS 2)
(set EXTRA 3)
(set PICS  4)
(set HOOKS 5)
(set PAINT 6)
(set RDISK 7)

(set EGSPARTS
    (askoptions
        (prompt "Welche Programme sollen installiert werden?")
        (help
        "EGS-Basics      - EGS Treiber für Amiga, EGS, Bitmaps\n"
        "                  interne Tools und Programme \n"
        "                  EGS-Basics > muß< installiert werden !\n"
        "EGS-Prefs       - Preferences nötig für das EGS-System.\n"
        "EGS-Utilities   - Utilities und Tools für EGS.\n"
        "EGS-Pictures    - Zwei 24-Bit Bilder.\n"
        "EGS-Hooks       - Bildschirm -Hintergründe.\n"
        "\n"
        "\n"
        "\n"
        "\n\n\n\n"
        "EGS-Paint       - 24-Bit Paint Programm.\n"
        "                  Das Program is speziell für \n"
        "                  die Spectrum erstellt worden.\n"
        "EGS-RecoverDisk - Erstellt eine EGS Recovery disk.\n"
        "                  Falls ein unbrauchbare Bldschirm\n"
        "                  abgespeichert wurde, kann die Diskette \n"
        "                  für das Wiederherstellen des \n"
        "                  Bildschrimmodi benutzt werden\n"
        "                  Bitte schlagen Sie im Handbuch\n"
        "                  für mehr information nach."
        "\n\n" @askoptions-help)
      (choices
               "EGS-Basics           1200K"
               "EGS-Prefs             532K"
               "EGS-Utilities/Tools   300K"
               "EGS-Extras           1100K"
               "EGS-Pictures          930K"
               "EGS-Hooks             160K"
               "EGS-Paint             250K"
               "EGS-RecoverDisk       1 Disk")
      (default 255)
))


(if (= EGSPARTS 0)
    (
       (abort "Sie haben keine Option zum Installieren der "
              "EGS-Software ausgewählt ! Bei einem Versehen "
              "kann die Installation wiederholen, indem Sie das "
              "Installationsskript nochmals aufrufen !")
    )
)
;**************** Now the installation itself begins ******************


;*** Create directory for NOVICE user ***

(if (= 0 @user-level)
    (
        (set Monitor 0)
        (set EGSPARTS 255)
        (set neededspace 6000000)
        (set EGSSysDir "SYS:")
    )
)

; *** Enough harddisk space left ??

(message "\n\nSoll jetzt mit der eigentlichen Installation begonnen werden ?\n\n"
         "Es sind dafür mindestens 2 MByte für die EGS-Systemsoftware "
         "erforderlich. Für eine komplette Installation der gesamten Software "
         "werden aber bis zu 6 MByte auf dem angegebenen Datenträger benötigt.")

(if (AND (<> target "RAM:") (<> target "Ram:") (<> target "ram:"))(
    (set diskfree (getdiskspace EGSSysDir))
    (set neededspace 0)
    (if (in EGSPARTS BASIC)  (set neededspace (+ neededspace 1200000)))
    (if (in EGSPARTS PREFS)  (set neededspace (+ neededspace 532000)))
    (if (in EGSPARTS UTILS)  (set neededspace (+ neededspace 300000)))
    (if (in EGSPARTS EXTRA)  (set neededspace (+ neededspace 1100000)))
    (if (in EGSPARTS PICS)   (set neededspace (+ neededspace 930000)))
    (if (in EGSPARTS HOOKS)  (set neededspace (+ neededspace 160000)))
    (if (in EGSPARTS PAINT)  (set neededspace (+ neededspace 250000)))

    (if (< diskfree neededspace)(
      (set MSG  (cat "Fehler: Sie benötigen für eine minimale Installation der "
                     "EGS-Software mindestens %ld Bytes freien Plattenplatz. Soviel Platz "
                     "ist auf der angegebenen Festplatte/Partition %s aber anscheinend nicht mehr "
                     "frei. \n" ))
      (abort (MSG neededspace EGSSysDir) )
    ))
))
                                           ;*** Test sys: Space

(if (in EGSPARTS BASIC)(
    (set diskfree (getdiskspace "SYS:"))
    (if (<= diskfree 300000)(
         (set MSG
              (cat "Nicht genug Festplattenspeicher frei !\n"
                   "Es ist ein  Minimum von %d KBytes auf der\n"
                   "Festplatte %s nötig, um alle ausgewählten \n"
                   "Programme zu installieren ! \n" ))
      (abort (MSG diskfree "SYS:") )
    ))
))

;restore old user level
(set @user-level olduserlevel)

;*** That's it ! We have (more or less sucessfully) de-installed the old system,
;*** now let the new one go in...

;*** Ask user to insert disk 1 ***
(askdisk
    (prompt "Bitte legen Sie " Disk1 " in ein beliebiges Laufwerk...")
    (help @askdisk-help)
    (dest Disk1)
)

;*** Copy LHARC to RAM ***
(copyfiles
    (confirm "expert")
    (prompt  "Kopiere Dateien nach T:.")
    (source  Disk1:)
    (choices "bin" "Storage" "Monitors" "driver")
    (dest    "t:")
    (help    "Es werden für die Installation von EGS Programme"
             "für das Entpacken der LHA-Files ins Verzeichnis"
             "T: kopiert !")
)

;*** Finally, remove the old and now obsolete s:startup-Startup

(if (= oldfound 1)(
    (startup "EGS-System"
        (prompt "Alte EGS-spezifische Befehle aus \"S:startup-startup\" wieder austragen. "
                "Achtung: falls Sie die alten EGS-Spezifischen EGS-Befehle NICHT in Ihrer "
                " \"startup-sequence\" haben müssen Sie diese von Hand entfernen !")
        (help "Eventuelle alte Angaben bezüglich EGS in Ihrer Datei \"S:user-startup\" müssen "
              "wieder entfernt werden, da sie jetzt an anderer Stelle ausgeführt werden.\n"
              "Durch diese Operation werden andere Befehle in Ihrer \"S:startup-startup\"-Datei "
              "nicht verändert.")
        (command (""))
    )

    (set hjob "t:bin/DeInstSS")  ;remove EGS-Commands
    (run hjob)
))

;*** check version (where is "monitors" ? SYS: (2.0) or DEVS: (2.1 && >) ?)

(set ver (getversion "libs:version.library") )
(set osver (/ Ver 65536))
; on 2.1 and above systems there is always a DEVS:Monitors directory

(if (exists "DEVS:Monitors" (noreq))(
    (set MonitorDest "DEVS:Monitors" )
    (copyfiles
        (prompt  "Kopiere PAL-Monitor files nach Devs:Monitors! ")
        (source  "T:bin/PAL")
        (dest    "DEVS:Monitors")
        (infos)
        (help    "Es wird jetzt eine Monitordatei nach DEVS:Monitors kopiert.")
    )
    (copyfiles
        (prompt  "Kopiere NTSC-Monitor files nach Devs:Monitors! ")
        (source  "T:bin/NTSC")
        (dest    "DEVS:Monitors")
        (infos)
        (help    "Es wird jetzt eine Monitordatei nach DEVS:Monitors kopiert.")
    )
))

; else, on 2.0, there should be a SYS:Monitors; if there isn't, create one
(if (AND (exists "SYS:Monitors" (noreq)) (NOT (exists "DEVS:Monitors" (noreq))))(
        (set MonitorDest "SYS:Monitors")
        (copyfiles
            (prompt  "Kopiere Mode_Names nach SYS:WBSTartup! ")
            (source  "T:bin/Mode_names.info")
            (dest    "SYS:WBSTartup")
            (help    "Es wird jetzt eine Monitordatei nachSYS:WBSTartup kopiert.")
        )

    )
)

;*** put together the EGS-Monitor file that goes into the monitor directory
(If (in EGSPARTS BASIC)
    (
        (textfile
            (prompt "Es wird das EGS-Skript zum Starten des EGS-System "
                    "aus dem devs:monitors Verzeichnis erstellt.")
            (dest "t:EGS")
            (confirm "expert")
            (append "; \n")
            (append "; $VER: EGS-MonitorScript 2.0 (28.04.1994) by MvK\n")
            (append "; \n")
            (append "IF NOT $EGSEXISTS EQ TRUE \n")
            (append "                  Assign EGS: ")
            (append (tackon EGSSysDir "EGS"))
            (append "\n")
            (append "                  Assign Libs: EGS:Libs ADD")
            (append "\n")
            (append "                  Stack 20000")
        ;    (append (tackon EGSSysDir "EGS"))
        ;    (append "libs add")
            (append "\n")
            (include "t:bin/EGS")
            (help   "Es wird das EGS-Skript zum Starten des EGS-System "
                    "aus dem devs:monitors Verzeichnis erstellt.")
        )

        ;*** copy the EGS-Monitor file to SYS:\DEVS:Monitors
        (copyfiles
            (prompt  "Kopiere Monitordatei T:EGS nach " MonitorDest)
            (source  "T:EGS")
            (dest     MonitorDest)
            (help    "Es wird jetzt eine Monitordatei in SYS:monitors (oder DEVS:monitors) "
                     "kopiert.")
        )

        ;*** protect +s the EGS-Monitor file
;        (message  MonitorDest "EGS")
        (protect (tackon MonitorDest "EGS") "+s")

        ;*** copy the accompanying icon to SYS:/DEVS:Monitors
        (copyfiles
            (prompt   "Kopiere Piktogramm EGS.info nach " MonitorDest)
;            (confirm  "expert")
            (source   "t:bin/EGS.info")
            (dest     MonitorDest)
            (help     "Zu der gerade kopierten Monitordatei wird ein Piktogramm kopiert.")
        )

        ;*** copy 040.library
       (If (= CpuVer "68040")
           (copylib
                (prompt   "Kopiere 68040.library nach 'libs:'. ")
                (confirm  "expert")
                (source   "t:bin/68040.library")
                (dest     "libs:")
                (help     "Es wird die 68040.library mit der Version "
                          "37.30 in das Verzeichnis 'libs:' kopiert !")
           )
       )


       (copylib
            (prompt   "Kopiere Setpatch nach 'c:'. ")
            (confirm  "expert")
            (source   "t:bin/SetPatch")
            (dest     "c:")
            (help     "Es wird das Programm Setpatch mit der Version "
                      "40.15 in das Verzeichnis 'c:' kopiert !")
       )
))

;***
;***  FPU
;***

(If (in EGSPARTS BASIC)
    (set FPU
          (askchoice
            (prompt "Besitzt Ihr Rechner eine FPU (Floating Point Unit)?")
            (help   "Es gibt verschiedene Turbo-Karten sowie AMIGA-Rechner "
                    "mit einer 68000 CPU ohne FPU. Zum Beispiel besitzt "
                    "der AMIGA 4000/030 im Grundausbau keine FPU ! "
                    "In solch einem Fall wählen Sie bitte 'Amiga "
                    "ohne FPU' aus !")

            (choices "Amiga ohne FPU"
                     "Amiga mit FPU")
            (default 0)
              )
    )
)

;***
;***  Unarchive Disk-Files EGSDrLibs
;***

(If (AND (in EGSPARTS BASIC) (<> CpuVer "68000"))
    (
     ;*** Ask user to insert disk 2 ***
     (askdisk
         (prompt "Bitte legen Sie " Disk2 " in ein beliebiges Laufwerk...")
         (help @askdisk-help)
         (dest Disk2)
     )

        (if (= @user-level 2)
            (
                (set ReallyInst
                    (askbool
                        (prompt "Archiv 'EGSDrLibs.lha' nach " EGSSysDir " entpacken ?")
                        (help "Wenn Sie wollen, können Sie an dieser Stelle die "
                            "Installation von 'EGS' überspringen.")
                        (choices "Ja" "Nein")
                    )
                )
            )
            (set ReallyInst 1)
        )

        (if (= ReallyInst 1)
            (
;**** EGSDrLibs
                (set @execute-dir EGSSysDir)
                (working "Installiere EGS-Drivers & EGS-Libs ...")
                (if (= @user-level 2)
                    (set hjob (cat "t:bin/lz >CON:0/0/640/100/CLOSE/EGS_Unarchive -2 -m e " Disk2: "EGSDrLibs"))
                    (set hjob (cat "t:bin/lz -2 -m e " Disk2: "EGSDrLibs"))
                )

                (set lzrc (run hjob
                          (prompt "Entpacke Archiv 'EGSDrLibs.lha' nach" EGSSysDir ".")
                          )
                )

                (if (<> lzrc 0)
                    (message "Fehler beim Dekomprimieren von EGSDrLibs!")
                )
            )
         )
    )
)

;*** Make EGS: Assign

(set DIR (tackon EGSSysDir "EGS"))
(makeassign "EGS" DIR)

;***
;***  Unarchive Blanker for FPU
;***

(If (AND (in EGSPARTS BASIC) (= FPU 1))
    (
     ;*** Ask user to insert disk 2 ***
     (askdisk
         (prompt "Bitte legen Sie " Disk2 " in ein beliebiges Laufwerk...")
         (help @askdisk-help)
         (dest Disk2)
     )
        (if (= @user-level 2)
            (
                (set ReallyInst
                    (askbool
                        (prompt "Archiv 'EGSBlanker.lha' nach " EGSSysDir " entpacken ?")
                        (help   "Wenn Sie wollen, können Sie an dieser Stelle die "
                                "Installation von 'EGS' überspringen.")
                        (choices "Ja" "Nein")
                    )
                )
            )
            (set ReallyInst 1)
        )

        (if (= ReallyInst 1)
            (
;**** EGSBlanker
                (set @execute-dir EGSSysDir)
                (working "Installiere EGS-Blanker (FPU) ...")
                (if (= @user-level 2)
                    (set hjob (cat "t:bin/lz >CON:0/0/640/100/CLOSE/EGS_Unarchive -2 -m e " Disk2: "EGSBlanker"))
                    (set hjob (cat "t:bin/lz -2 -m e " Disk2: "EGSBlanker"))
                )

                (set lzrc (run hjob
                          (prompt "Entpacke Archiv 'EGSBlanker.lha' nach" EGSSysDir ".")
                          )
                )

                (if (<> lzrc 0)
                    (message "Fehler beim Dekomprimieren von EGSBlanker!")
                )
            )
         )
    )
)

;***
;***  Unarchive EGS-Sys
;***

(If (in EGSPARTS BASIC)
    (

     ;*** Ask user to insert disk 2 ***
     (askdisk
         (prompt "Bitte legen Sie " Disk2 " in ein beliebiges Laufwerk...")
         (help @askdisk-help)
         (dest Disk2)
     )

     (makedir (tackon EGSSysDir "EGS/Config")
         (prompt  "Erzeuge EGS-Config Verzeichnis.")
         (help    "Jetzt wird das Konfiguarationsverzeichnis für die EGS-Systemsoftware angelegt. ")
         (infos)
         (confirm "expert")
     )

     (makedir (tackon EGSSysDir "EGS/Storage")
         (prompt  "Erzeuge EGS-Storage Verzeichnis.")
         (help    "Jetzt wird das Storageverzeichnis für die EGS-Systemsoftware angelegt. ")
         (infos)
         (confirm "expert")
     )

     (makedir (tackon EGSSysDir "EGS/Startup")
         (prompt  "Erzeuge EGS-Startup Verzeichnis.")
         (help    "Jetzt wird das Startuperzeichnis für die EGS-Systemsoftware angelegt. "
                  "In diesem Verzeichnis könne Sie Programme legen die vor dem Einbinden "
                  "des EGS-Systems gestartet werden sollen !")
         (infos)
         (confirm "expert")
     )

        (working "Installiere EGS-System (c, monitors, config usw ...)")

        (if (= @user-level 2)
            (
                (set ReallyInst
                    (askbool
                        (prompt "Archiv 'EGSSys.lha' nach " EGSSysDir " entpacken ?")
                        (help "Wenn Sie wollen, können Sie an dieser Stelle die "
                            "Installation von 'EGS' überspringen.")
                        (choices "Ja" "Nein")
                    )
                )
            )
            (set ReallyInst 1)
        )

        (if (= ReallyInst 1)
            (
                (set @execute-dir EGSSysDir)
                    (if (= @user-level 2)
                        (set hjob (cat "t:bin/lz >CON:0/0/640/100/EGS_Unarchive -2 -m e " Disk2: "EGSSys"))
                        (set hjob (cat "t:bin/lz -2 -m e " Disk2: "EGSSys"))
                    )

                (set lzrc (run hjob
                               (prompt "Entpacke Archiv 'EGSSys.lha' nach" EGSSysDir ".")
                          )
                )
                (if (<> lzrc 0)
                    (message "Fehler beim Dekomprimieren von EGSSys!")
                )
            )
        )
   )
)

;****
;**** Unarchive EGSEnv-Archive
;****
(If (in EGSPARTS BASIC)
    (

     ;*** Ask user to insert disk 2 ***
     (askdisk
         (prompt "Bitte legen Sie " Disk2 " in ein beliebiges Laufwerk...")
         (help @askdisk-help)
         (dest Disk2)
     )

        (working "Installiere EGS-ENV-Archive ...")
        (if (= @user-level 2)
            (
                (set ReallyInst
                    (askbool
                        (prompt "Archiv 'EGSENV-Archive.lha' nach Sys:Prefs entpacken ?")
                        (help   "Wenn Sie wollen, können Sie an dieser Stelle die "
                                "Installation von 'EGS' überspringen.")
                        (choices "Ja" "Nein")
                    )
                )
            )
            (set ReallyInst 1)
        )

        (if (= ReallyInst 1)
            (
                (set @execute-dir "Sys:Prefs")
                    (if (= @user-level 2)
                        (set hjob (cat "t:bin/lz >CON:0/0/640/100/EGS_Unarchive -2 -m e " Disk2: "EGSEnv-Archive"))
                        (set hjob (cat "t:bin/lz -2 -m e " Disk2: "EGSEnv-Archive"))
                    )

                (set lzrc (run hjob
                               (prompt "Entpacke Archiv 'EGSENV-Archive.lha' nach" EGSSysDir ".")
                          )
                )
                (if (<> lzrc 0)
                    (message "Fehler beim Dekomprimieren von EGSENV-Archive!")
                )
            )
        )
   )
)
;****
;**** Unarchive EGS-Presets
;****

(If (in EGSPARTS BASIC)
    (

     ;*** Ask user to insert disk 2 ***
     (askdisk
         (prompt "Bitte legen Sie " Disk2 " in ein beliebiges Laufwerk...")
         (help @askdisk-help)
         (dest Disk2)
     )

        (working "Installiere EGS-Presets ...")
        (if (= @user-level 2)
            (
                (set ReallyInst
                    (askbool
                        (prompt "Archiv 'EGSPresets.lha' nach SYS:Prefs entpacken ?")
                        (help "Wenn Sie wollen, können Sie an dieser Stelle die "
                            "Installation von 'EGS' überspringen.")
                        (choices "Ja" "Nein")
                    )
                )
            )
            (set ReallyInst 1)
        )

        (if (= ReallyInst 1)
            (
                (set @execute-dir "Sys:Prefs")
                    (if (= @user-level 2)
                        (set hjob (cat "t:bin/lz >CON:0/0/640/100/EGS_Unarchive -2 -m e " Disk2: "EGSPresets"))
                        (set hjob (cat "t:bin/lz -2 -m e " Disk2: "EGSPresets"))
                    )

                (set lzrc (run hjob
                               (prompt "Entpacke Archiv 'EGSPresets.lha' nach" EGSSysDir ".")
                          )
                )
                (if (<> lzrc 0)
                    (message "Fehler beim Dekomprimieren von EGSPresets!")
                )
            )
        )
   )

)

;***
;***  Unarchive Disk-Files EGSDrLibs
;***

(If (AND (in EGSPARTS BASIC) (= CpuVer "68000"))
    (
     ;*** Ask user to insert disk 3 ***
     (askdisk
         (prompt "Bitte legen Sie " Disk3 " in ein beliebiges Laufwerk...")
         (help @askdisk-help)
         (dest Disk3)
     )

        (if (= @user-level 2)
            (
                (set ReallyInst
                    (askbool
                        (prompt "Archiv 'EGSDrLibs.lha' nach " EGSSysDir " entpacken ?")
                        (help "Wenn Sie wollen, können Sie an dieser Stelle die "
                            "Installation von 'EGS' überspringen.")
                        (choices "Ja" "Nein")
                    )
                )
            )
            (set ReallyInst 1)
        )

        (if (= ReallyInst 1)
            (
;**** EGSDrLibs00
                (set @execute-dir EGSSysDir)
                (working "Installiere EGS-Drivers & EGS-Libs ...")
                (if (= @user-level 2)
                    (set hjob (cat "t:bin/lz >CON:0/0/640/100/CLOSE/EGS_Unarchive -2 -m e " Disk3: "EGSDrLibs00"))
                    (set hjob (cat "t:bin/lz -2 -m e " Disk3: "EGSDrLibs00"))
                )

                (set lzrc (run hjob
                          (prompt "Entpacke Archiv 'EGSDrLibs00.lha' nach" EGSSysDir ".")
                          )
                )

                (if (<> lzrc 0)
                    (message "Fehler beim Dekomprimieren von EGSDrLibs00!")
                )
            )
         )
    )
)

;***
;***  Unarchive Blanker for no FPU
;***

(If (AND (in EGSPARTS BASIC) (= FPU 0))
    (
     ;*** Ask user to insert disk 3 ***
     (askdisk
         (prompt "Bitte legen Sie " Disk3 " in ein beliebiges Laufwerk...")
         (help @askdisk-help)
         (dest Disk3)
     )
        (if (= @user-level 2)
            (
                (set ReallyInst
                    (askbool
                        (prompt "Archiv 'EGSBlanker.lha' nach " EGSSysDir " entpacken ?")
                        (help   "Wenn Sie wollen, können Sie an dieser Stelle die "
                                "Installation von 'EGS' überspringen.")
                        (choices "Ja" "Nein")
                    )
                )
            )
            (set ReallyInst 1)
        )

        (if (= ReallyInst 1)
            (
;**** EGSBlanker
                (set @execute-dir EGSSysDir)
                (working "Installiere EGS-Blanker (ohne FPU) ...")
                (if (= @user-level 2)
                    (set hjob (cat "t:bin/lz >CON:0/0/640/100/CLOSE/EGS_Unarchive -2 -m e " Disk3: "EGSBlanker00"))
                    (set hjob (cat "t:bin/lz -2 -m e " Disk3: "EGSBlanker00"))
                )

                (set lzrc (run hjob
                          (prompt "Entpacke Archiv 'EGSBlanker00.lha' nach" EGSSysDir ".")
                          )
                )

                (if (<> lzrc 0)
                    (message "Fehler beim Dekomprimieren von EGSBlanker00!")
                )
            )
         )
    )
)

;****
;**** Unarchive EGS-Prefs
;****

(If (in EGSPARTS PREFS)
    (

     ;*** Ask user to insert disk 3 ***
     (askdisk
         (prompt "Bitte legen Sie " Disk3 " in ein beliebiges Laufwerk...")
         (help @askdisk-help)
         (dest Disk3)
     )

     (makedir (tackon EGSSysDir "EGS/EGS-Prefs")
         (prompt  "Erzeuge EGS-Prefs Verzeichnis.")
         (help    "Jetzt wird das Preferences-Verzeichnis für die EGS-Systemsoftware angelegt. ")
         (infos)
         (confirm "expert")
     )

        (working "Installiere EGS-Preferences ...")

        (if (= @user-level 2)
            (
                (set ReallyInst
                    (askbool
                        (prompt "Archiv 'EGSPrefs.lha' nach " EGSSysDir " entpacken ?")
                        (help "Wenn Sie wollen, können Sie an dieser Stelle die "
                            "Installation von 'EGS' überspringen.")
                        (choices "Ja" "Nein")
                    )
                )
            )
            (set ReallyInst 1)
        )

        (if (= ReallyInst 1)
            (
                (set @execute-dir EGSSysDir)
                    (if (= @user-level 2)
                        (set hjob (cat "t:bin/lz >CON:0/0/640/100/EGS_Unarchive -2 -m e " Disk3: "EGSPrefs"))
                        (set hjob (cat "t:bin/lz -2 -m e " Disk3: "EGSPrefs"))
                    )

                (set lzrc (run hjob
                               (prompt "Entpacke Archiv 'EGSPrefs.lha' nach" EGSSysDir ".")
                          )
                )
                (if (<> lzrc 0)
                    (message "Fehler beim Dekomprimieren von EGSPrefs!")
                )
            )
        )
   )
)


;****
;**** Unarchive EGS-Tools
;****

(If (in EGSPARTS UTILS)
    (

     ;*** Ask user to insert disk 3 ***
     (askdisk
         (prompt "Bitte legen Sie " Disk3 " in ein beliebiges Laufwerk...")
         (help @askdisk-help)
         (dest Disk3)
     )

     (makedir (tackon EGSSysDir "EGS/EGS-Tools")
         (prompt  "Erzeuge EGS-Tools Verzeichnis.")
         (help    "Jetzt wird das Tools-Verzeichnis für die EGS-Systemsoftware angelegt. ")
         (infos)
         (confirm "expert")
     )

        (working "Installiere EGS-Tools ...")
        (if (= @user-level 2)
            (
                (set ReallyInst
                    (askbool
                        (prompt "Archiv 'EGSTools.lha' nach " EGSSysDir " entpacken ?")
                        (help "Wenn Sie wollen, können Sie an dieser Stelle die "
                            "Installation von 'EGS' überspringen.")
                        (choices "Ja" "Nein")
                    )
                )
            )
            (set ReallyInst 1)
        )

        (if (= ReallyInst 1)
            (
                (set @execute-dir EGSSysDir)
                    (if (= @user-level 2)
                        (set hjob (cat "t:bin/lz >CON:0/0/640/100/EGS_Unarchive -2 -m e " Disk3: "EGSTools"))
                        (set hjob (cat "t:bin/lz -2 -m e " Disk3: "EGSTools"))
                    )

                (set lzrc (run hjob
                               (prompt "Entpacke Archiv 'EGSTools.lha' nach" EGSSysDir ".")
                          )
                )
                (if (<> lzrc 0)
                    (message "Fehler beim Dekomprimieren von EGSTools!")
                )
            )
        )
   )
)

;****
;**** Unarchive EGS-Utilities
;****

(If (in EGSPARTS UTILS)
    (

     ;*** Ask user to insert disk 4 ***
     (askdisk
         (prompt "Bitte legen Sie " Disk4 " in ein beliebiges Laufwerk...")
         (help @askdisk-help)
         (dest Disk4)
     )

     (makedir (tackon EGSSysDir "EGS/EGS-Utilities")
         (prompt  "Erzeuge EGS-Utilities Verzeichnis.")
         (help    "Jetzt wird das Utilities-Verzeichnis für die EGS-Systemsoftware angelegt. ")
         (infos)
         (confirm "expert")
     )

        (working "Installiere EGS-Utilities ...")
        (if (= @user-level 2)
            (
                (set ReallyInst
                    (askbool
                        (prompt "Archiv 'EGSUtilities.lha' nach " EGSSysDir " entpacken ?")
                        (help "Wenn Sie wollen, können Sie an dieser Stelle die "
                            "Installation von 'EGS' überspringen.")
                        (choices "Ja" "Nein")
                    )
                )
            )
            (set ReallyInst 1)
        )

        (if (= ReallyInst 1)
            (
                (set @execute-dir EGSSysDir)
                    (if (= @user-level 2)
                        (set hjob (cat "t:bin/lz >CON:0/0/640/100/EGS_Unarchive -2 -m e " Disk4: "EGSUtilities"))
                        (set hjob (cat "t:bin/lz -2 -m e " Disk4: "EGSUtilities"))
                    )

                (set lzrc (run hjob
                               (prompt "Entpacke Archiv 'EGSUtilities.lha' nach" EGSSysDir ".")
                          )
                )
                (if (<> lzrc 0)
                    (message "Fehler beim Dekomprimieren von EGSUtilities!")
                )
            )
        )
   )
)

;****
;**** Unarchive EGS-Extras
;****

(If (in EGSPARTS EXTRA)
    (

     ;*** Ask user to insert disk 4 ***
     (askdisk
         (prompt "Bitte legen Sie " Disk4 " in ein beliebiges Laufwerk...")
         (help @askdisk-help)
         (dest Disk4)
     )

     (makedir (tackon EGSSysDir "EGS/EGS-Extras")
         (prompt  "Erzeuge EGS-Extras Verzeichnis.")
         (help    "Jetzt wird das Extras-Verzeichnis für die EGS-Systemsoftware angelegt. ")
         (infos)
         (confirm "expert")
     )

        (working "Installiere EGS-Extras ...")
        (if (= @user-level 2)
            (
                (set ReallyInst
                    (askbool
                        (prompt "Archiv 'EGSExtras.lha' nach " EGSSysDir " entpacken ?")
                        (help "Wenn Sie wollen, können Sie an dieser Stelle die "
                            "Installation von 'EGS' überspringen.")
                        (choices "Ja" "Nein")
                    )
                )
            )
            (set ReallyInst 1)
        )

        (if (= ReallyInst 1)
            (
                (set @execute-dir EGSSysDir)
                    (if (= @user-level 2)
                        (set hjob (cat "t:bin/lz >CON:0/0/640/100/EGS_Unarchive -2 -m e " Disk4: " EGSExtras"))
                        (set hjob (cat "t:bin/lz -2 -m e " Disk4: "EGSExtras"))
                    )

                (set lzrc (run hjob
                               (prompt "Entpacke Archiv 'EGSExtras.lha' nach" EGSSysDir ".")
                          )
                )
                (if (<> lzrc 0)
                    (message "Fehler beim Dekomprimieren von EGSExtras!")
                )
            )
        )
   )
)

;****
;**** Unarchive EGS-Games
;****

(If (in EGSPARTS EXTRA)
    (

     ;*** Ask user to insert disk 4 ***
     (askdisk
         (prompt "Bitte legen Sie " Disk4 " in ein beliebiges Laufwerk...")
         (help @askdisk-help)
         (dest Disk4)
     )

        (working "Installiere EGS-Extra (EGS-Game) ...")
        (if (= @user-level 2)
            (
                (set ReallyInst
                    (askbool
                        (prompt "Archiv 'EGSGames.lha' nach " EGSSysDir " entpacken ?")
                        (help "Wenn Sie wollen, können Sie an dieser Stelle die "
                            "Installation von 'EGS' überspringen.")
                        (choices "Ja" "Nein")
                    )
                )
            )
            (set ReallyInst 1)
        )

        (if (= ReallyInst 1)
            (
                (set @execute-dir EGSSysDir)
                    (if (= @user-level 2)
                        (set hjob (cat "t:bin/lz >CON:0/0/640/100/EGS_Unarchive -2 -m e " Disk4: "EGSGames"))
                        (set hjob (cat "t:bin/lz -2 -m e " Disk4: "EGSGames"))
                    )

                (set lzrc (run hjob
                               (prompt "Entpacke Archiv 'EGSGames.lha' nach" EGSSysDir ".")
                          )
                )
                (if (<> lzrc 0)
                    (message "Fehler beim Dekomprimieren von EGSGames!")
                )
            )
        )
   )
)

;****
;**** Unarchive EGS-Paint
;****

(If (in EGSPARTS PAINT)
    (

     ;*** Ask user to insert disk 4 ***
     (askdisk
         (prompt "Bitte legen Sie " Disk4 " in ein beliebiges Laufwerk...")
         (help @askdisk-help)
         (dest Disk4)
     )

     (makedir (tackon EGSSysDir "EGS/EGS-Paint")
         (prompt  "Erzeuge EGS-Paint Verzeichnis.")
         (help    "Jetzt wird das Paint-Verzeichnis für die EGS-Systemsoftware angelegt. ")
         (infos)
         (confirm "expert")
     )

        (working "Installiere EGS-Paint ...")
        (if (= @user-level 2)
            (
                (set ReallyInst
                    (askbool
                        (prompt "Archiv 'EGSPaint.lha' nach " EGSSysDir " entpacken ?")
                        (help "Wenn Sie wollen, können Sie an dieser Stelle die "
                            "Installation von 'EGS' überspringen.")
                        (choices "Ja" "Nein")
                    )
                )
            )
            (set ReallyInst 1)
        )

        (if (= ReallyInst 1)
            (
                (set @execute-dir EGSSysDir)
                    (if (= @user-level 2)
                        (set hjob (cat "t:bin/lz >CON:0/0/640/100/EGS_Unarchive -2 -m e " Disk4: "EGSPaint"))
                        (set hjob (cat "t:bin/lz -2 -m e " Disk4: "EGSPaint"))
                    )

                (set lzrc (run hjob
                               (prompt "Entpacke Archiv 'EGSPaint.lha' nach" EGSSysDir ".")
                          )
                )
                (if (<> lzrc 0)
                    (message "Fehler beim Dekomprimieren von EGSPaint!")
                )
            )
        )
   )
)

;****
;**** Unarchive EGS-PICS
;****

(If (in EGSPARTS PICS)
    (

     ;*** Ask user to insert disk 5 ***
     (askdisk
         (prompt "Bitte legen Sie " Disk5 " in ein beliebiges Laufwerk...")
         (help @askdisk-help)
         (dest Disk5)
     )

     (makedir (tackon EGSSysDir "EGS/EGS-Pictures")
         (prompt  "Erzeuge EGS-Pictures Verzeichnis.")
         (help    "Jetzt wird das Pictures-Verzeichnis für die EGS-Systemsoftware angelegt. ")
         (infos)
         (confirm "expert")
     )

        (working "Installiere EGS-Pictures ...")
        (if (= @user-level 2)
            (
                (set ReallyInst
                    (askbool
                        (prompt "Archiv 'EGSPictures.lha' nach " EGSSysDir " entpacken ?")
                        (help "Wenn Sie wollen, können Sie an dieser Stelle die "
                            "Installation von 'EGS' überspringen.")
                        (choices "Ja" "Nein")
                    )
                )
            )
            (set ReallyInst 1)
        )

        (if (= ReallyInst 1)
            (
                (set @execute-dir EGSSysDir)
                    (if (= @user-level 2)
                        (set hjob (cat "t:bin/lz >CON:0/0/640/100/EGS_Unarchive -2 -m e " DISK5: "EGSPictures"))
                        (set hjob (cat "t:bin/lz -2 -m e " Disk5: "EGSPictures"))
                    )

                (set lzrc (run hjob
                               (prompt "Entpacke Archiv 'EGSPictures.lha' nach" EGSSysDir ".")
                          )
                )
                (if (<> lzrc 0)
                    (message "Fehler beim Dekomprimieren von EGSPictures!")
                )
            )
        )
   )
)
;****
;**** Unarchive EGS-Hooks
;****

(If (in EGSPARTS HOOKS)
    (

     ;*** Ask user to insert disk 5 ***
     (askdisk
         (prompt "Bitte legen Sie " Disk5 " in ein beliebiges Laufwerk...")
         (help @askdisk-help)
         (dest Disk5)
     )
     (makedir (tackon EGSSysDir "EGS/EGS-Hooks")
         (prompt  "Erzeuge EGS-Hooks Verzeichnis.")
         (help    "Jetzt wird das Hooks-Verzeichnis für die EGS-Systemsoftware angelegt. ")
         (infos)
         (confirm "expert")
     )


        (working "Installiere EGS-Hooks ...")
        (if (= @user-level 2)
            (
                (set ReallyInst
                    (askbool
                        (prompt "Archiv 'EGSHooks.lha' nach " EGSSysDir " entpacken ?")
                        (help "Wenn Sie wollen, können Sie an dieser Stelle die "
                            "Installation von 'EGS' überspringen.")
                        (choices "Ja" "Nein")
                    )
                )
            )
            (set ReallyInst 1)
        )

        (if (= ReallyInst 1)
            (
                (set @execute-dir EGSSysDir)
                    (if (= @user-level 2)
                        (set hjob (cat "t:bin/lz >CON:0/0/640/100/EGS_Unarchive -2 -m e " Disk5: "EGSHooks"))
                        (set hjob (cat "t:bin/lz -2 -m e " Disk5: "EGSHooks"))
                    )

                (set lzrc (run hjob
                               (prompt "Entpacke Archiv 'EGSHooks.lha' nach" EGSSysDir ".")
                          )
                )
                (if (<> lzrc 0)
                    (message "Fehler beim Dekomprimieren von EGSHooks!")
                )
            )
        )
   )
)

(if (in EGSPARTS RDISK)(

(working "Installiere EGS-RecoverDisks ...")

(set rd_data   (cat "T:bin/startup-sequence"))
(set sys_disk  (getassign "sys" 'a'))
(set sys_env   (cat sys_disk "prefs/env-archive"))
(set sys_local (cat sys_disk "locale"))
(set sys_fonts (cat sys_disk "fonts"))

(run "c:echo  >"rd_data" stack  20000 ")
(run "c:echo >>"rd_data" ECHO  EGS-Recover Disk   ")
(run "c:echo >>"rd_data" assign t:  ram: ")
(run "c:echo >>"rd_data" assign envarc: "sys_env" ")
(run "c:echo >>"rd_data" assign LOCALE: "sys_local" ")
(run "c:echo >>"rd_data" assign FONTS:  "sys_fonts" ")
(run "c:echo >>"rd_data" ")
(run "c:echo >>"rd_data" ECHO  Reset the WB-Screenmode ? (Y/N)")
(run "c:echo >>"rd_data" ASK -------------------------------:  ")
(run "c:echo >>"rd_data" IF WARN ")
(run "c:echo >>"rd_data" delete  >nil: envarc:sys/Screenmode.prefs")
(run "c:echo >>"rd_data" ENDIF ")
(run "c:echo >>"rd_data" ECHO  Reset the EGS-Screenmode ? (Y/N)  ")
(run "c:echo >>"rd_data" ASK --------------------------------:  ")
(run "c:echo >>"rd_data" IF WARN ")
(run "c:echo >>"rd_data" delete >nil: envarc:egs/Screenmode.Prefs")
(run "c:echo >>"rd_data" ENDIF")
(run "c:echo >>"rd_data" ECHO  Please REMOVE the floppy disk ")
(run "c:echo >>"rd_data" ECHO  and REBOOT your machine !")
(run "c:echo >>"rd_data" ASK --------------------------------:  ")
(run "c:echo >>"rd_data" ECHO  ")

    (askdisk
             (prompt "Bitte legen Sie " RECDisk " in ein beliebiges Laufwerk...")
             (help
             "Die EGS-Recover-Disk wird benutzt, um die ScreenModes \n"
             "wieder in den Normalzustand zusetzen, falls falsche  \n"
             "Screenmodes für die EGS-Workbench oder EGS abgespeichert\n"
             "wurden. Das kann passieren, wenn zum Beispiel ein hoch-\n"
             "auflösender Screen für die Workbench abgespeichert \n"
             "wurde, der Monitor aber nur in der Lage ist Screens \n"
             "mit geringerer Frequenz darzustellen. In so einem Fall\n"
             "kann man auf der Workbench nichts mehr erkennen und muß  \n"
             "von der Recover Disk booten. Diese stellt die AMIGA     \n"
             "ScreenModes dann wieder her.                          \n")
             (dest    RECDisk)
    )
    (copyfiles
        (prompt    "Kopiere T:startup-sequence nach RecoverDisk:s.")
        (source    "T:bin/startup-sequence")
        (dest      "df0:s")
        (help      "Es wird die 'startup-sequence' für die RecoverDisk auf"
                   "die Diskette geschrieben (kopiert)!")
        (delopts   "remove")
    )

(run "c:Install df0: ")

))

;*** Copy WBStartup and E.S.P

(If (in EGSPARTS BASIC)(
    ;*** copy amigadriver to wbstartup
    (copyfiles
        (prompt    "Kopiere EGSAmigaDriver-Script nach WBStartup.")
        (source    "T:bin/EGSAmigaDriver")
        (dest      "SYS:WBStartup")
        (delopts   "remove")
        (infos)
        (help      "Die Datei bindet den Amiga-Treiber in das System ein. "
                   "Sie wird nach SYS:WBStartup kopiert.")
    )

    ;*** copy E.S.P to SYS:WBStartup
    (copyfiles
        (prompt    "Kopiere EGS Screen Promoter nach SYS:WBStartup."
                   "Diese Programm ist der offizielle ScreenPromoter für das "
                   "EGS-System. Das Programm ist ein Commodity-Tool !")
        (source    "T:bin/E.S.P.")
        (dest      "SYS:WBStartup")
        (delopts   "remove")
        (infos)
        (confirm   "expert")
        (help      "E.S.P. ist der offizielle EGS Screen Promoter mit dem man Programm"
                   "ausgaben auf die EGS-Karte unleiten kann.")
    )

    ;*** copy E.S.P to SYS:Tools/Commodities
    (copyfiles
        (prompt    "Kopiere EGS Screen Promoter nach SYS:Tools/Commodities."
                   "Diese Programm ist der offizielle ScreenPromoter für das "
                   "EGS-System. Das Programm ist ein Commodity-Tool !")
        (source    "T:bin/E.S.P.")
        (dest      "SYS:Tools/Commodities")
        (delopts   "remove")
        (infos)
        (help      "E.S.P. ist der offizielle EGS Screen Promoter mit dem man Programm"
                   "ausgaben auf die EGS-Karte unleiten kann.")
    )

   ;*** Delete screenmode preset ***
   (run "c:delete envarc:sys/Screenmode.prefs")

   ;*** copy ECON to DEVS:DOSDrivers

   (if (> osver 37)
       (copyfiles
           (prompt    "Kopiere ECON-File nach DEVS:DosDrivers.")
           (source    "T:bin/ECON")
           (dest      "devs:DosDrivers")
           (help      "Die Datei enthält die Einstellungen über die EGS-Shell "
                      "(Mountlist). Sie wird nach DEVS:DosDrivers kopiert.")
           (infos)
           (delopts   "remove")
       )
          ;else
       (
           (set hjob (cat "c:type >>devs:mountlist T:bin/mountlist.econ"))
           (run hjob)
           (startup "EGS-Spectrum"
           (prompt  "Füge in der s:user-Startup 'mount ECON:' ein.")
           (command  "mount econ:")
           (help     @startup-help))
           (copyfiles
               (prompt    "Kopiere Mode_Names.inf nach SYS:WBStartup.")
               (source    "T:bin/Mode_Names.info")
               (dest      "SYS:WBstartup")
               (help      "Die Datei nethält die Einstellungen über die Monitornamen "
                          "(Mode-Names). Sie wird nach SYS:WBStartup kopiert.")
               (delopts   "remove")
           )
       )
   )

))


)) ; (if (= 0 (exists "EGS:Config" (noreq)))(

;***
;*** Copy Disk1 in to RAM
;***
;*** Ask user to insert disk 1 ***

(if (= 0 (exists "t:driver" (noreq)))(
    (Askdisk
        (prompt "Bitte legen Sie " Disk1 " in ein beliebiges Laufwerk...")
        (help @askdisk-help)
        (dest Disk1)
    )

    ;*** Copy LHARC to RAM ***
    (copyfiles
        (confirm "expert")
        (prompt  "Kopiere Dateien nach T:.")
        (source  Disk1:)
        (choices "bin" "Storage" "Monitors" "driver")
        (dest    "t:")
        (help    "Es werden für die Installation von EGS Programme"
                 "für das Entpacken der LHA-Files ins Verzeichnis"
                 "T: kopiert !")
    )
))

;***
;*** Driver STUFF
;***

(if (exists "t:driver/EGSIV24Driver" (noreq))(
        ; *** IV24 componet files and setup

       (set DRIVER     "EGSIV24Driver")
       (set MOUNT      "MountIV24Driver")
       (set MUX        "IV24a.mux.map2video")
       (set WBSTARTUP  "EGSIV24Driver")
       (set ASKMONITOR 0)
       (set PASSTHRU   0)
       (set WBDRIVER   0)
       (set DRVNAME    "IV24")
))

(if (exists "t:driver/EGSAMIGADriver" (noreq))(
        ; *** AMIGA componet files and setup

       (set DRIVER     "EGSAMIGADriver")
       (set MOUNT      "MountAMIGADriver")
       (set MUX        0)
       (set WBSTARTUP  "EGSAmigaDriver")
       (set ASKMONITOR 0)
       (set PASSTHRU   0)
       (set WBDRIVER   0)
       (set DRVNAME    "AMIGA")
))

(if (exists "t:driver/EGSLegsDriver" (noreq))(
        ; *** AMIGA componet files and setup

       (set DRIVER  "EGSLegsDriver")
       (set MOUNT   "MountLegsaDriver")
       (set MUX     "LEGSa.mux.map2video")
       (set ASKMONITOR 1)
       (set PASSTHRU   1)
       (set WBDRIVER   1)
       (set DRVNAME    "Spectrum")
))

;(message "Es wird der EGS-Treiber für die " DRVNAME " Grafikkarte installiert !")

(if (exists "EGS:Config" (noreq))(
    (message  "\n\n\n"
              "Da das EGS-System 6.2x installiert ist wird jetzt nur "
              "noch die Änderung der EGS-Konfiguartion für den EGS-Treiber "
               "der " DRVNAME " Grafikkarte vorgenommen !" )

    ;*** Copy Driver

    (copyfiles
        (prompt    "Kopiere " DRIVER " nach EGS:Driver.")
        (source    (cat "T:driver/" DRIVER))
        (dest      "EGS:driver")
        (help      "Es wird der EGS-Treiber in das Verzeichnis "
                   "EGS:Drivers kopiert.")
        (infos)
        (delopts   "remove")
    )

    ;*** Copy MUX
    (if (NOT (= 0 MUX))(
    (copyfiles
        (prompt    "Kopiere "MUX" nach EGS:Monitors/Prefs.")
        (source    (cat "T:Monitors/Prefs/" MUX))
        (dest      "EGS:Monitors/Prefs")
        (help      "Die Datei enthält die Einstellungen über die Grafikkarte !"
                   "Sie wird nach EGS:Monitors/prefs kopiert.")
        (infos)
        (delopts   "remove")
    )
    ))
    ;*** Copy MOUNT egs:Config/Driver

    (copyfiles
        (prompt    "Kopiere "MOUNT" nach EGS:Config/Driver.")
        (source    (cat "T:Storage/Driver/" MOUNT))
        (dest      "EGS:Config/Driver")
        (help      "Die Datei enthält die Einstellungen für das Einbinden des "
                   "EGS-Treibers, Sie wird nach EGS:Config/Driver kopiert.")
        (infos)
        (delopts   "remove")
    )

    ;*** Copy Mount egs:Storage/Driver

    (copyfiles
        (prompt    "Kopiere "MOUNT" nach EGS:Storage/Driver.")
        (source    (cat "T:Storage/Driver/" MOUNT))
        (dest      "EGS:Storage/Driver")
        (help      "Die Datei enthält die Einstellungen für das Einbinden des "
                   "EGS-Treibers, Sie wird nach EGS:Config/Driver kopiert.")
        (infos)
        (delopts   "remove")
    )

    ;*** Copy Mount egs:Storage/WBStartup

    (if (NOT (= 0 WBSTARTUP))(
    (copyfiles
        (prompt    "Kopiere "WBSTARTUP" nach SYS:WBstartup.")
        (source    (cat "T:Storage/WBStartup/" WBSTARTUP))
        (dest      "Sys:WBstartup")
        (help      "Die Datei enthält die Einstellungen für das Einbinden des "
                   "EGS-Treibers, Sie wird nach SYS:WBstartup kopiert.")
        (infos)
        (delopts   "remove")
    )
    ))

    (if (= 1 WBDRIVER)(
        (copyfiles
            (prompt    "Kopiere WorkbenchTreiber nach EGS:Config/Special.")
            (source    "T:Storage/Special/EGSWB")
            (dest      "EGS:Storage/Special")
            (help      "Die Datei enthält die Einstellungen für das Einbinden des "
                       "EGS-Treibers für die Workbench, Sie wird nach EGS:Config/Special kopiert.")
            (infos)
            (delopts   "remove")
        )
    ))

))

;*** Ask for One or Two monitor solution ***
(set TOP 0)
(set LEFT 1)
(set RIGHT 2)
(set BOTTOM 3)

(if (= 1 ASKMONITOR)(
(set Monitor
      (askchoice
        (prompt "Wollen Sie Ihr System auf ein oder zwei Monitore "
                "konfigurieren?")

        (help   "EIN Monitor:\nDer Spectrum Monitor-Umschalter wird benutzt, um automatisch "
                        "zwischen Amiga- und Spectrum-Grafikausgabe umzuschalten.\n\n"
                        "ZWEI Monitore:\nEs werden zwei Monitore benutzt, einer "
                        "wird mit dem Amiga-Ausgang verbunden und einer mit dem Spectrum-Ausgang. "
                        "In diesem Fall können Sie mit der Maus zwischen Amiga- und "
                        "Spectrum-Monitor hin- und herfahren.")
        (choices "EIN Monitor"
             "ZWEI Monitore")
        (default 0)
          )
)

(if (= 1 MONITOR)
    (set DIRECTION
        (askchoice
        (prompt "Sie haben 'Zwei Monitore' ausgewählt. \n"
                "Auf welcher Seite, vom Amiga-Monitor aus gesehen,\n"
                "soll der Spectrum-Monitor stehen ?")
        (help   @askchoice-help)
        (choices "Oben"
             "Links"
             "Rechts"
             "Unten")
        (default 1)
        )
    )
)

(set MONITORNUMBER
    (askchoice
    (prompt "Bitte geben Sie den Typ des Monitors an, "
            "den Sie an die Spectrum angeschlossen haben.")

    (help   "Weiteres hierzu finden Sie im Handbuch unter "
            "Anhang A Monitore (Monitor-Äquivalente).\n\n"
            @askchoice-help)

     (choices
               "Commodore 1942"
               "Commodore 1950"
               "Commodore 1960"
               "MultiScan30-38kHz"
               "MultiScan30-48kHz"
               "MultiScan30-57kHz"
               "MultiScan30-64kHz"
               "VGA-Monitor"
               "S-VGA-Monitor"
               "VESA 60Hz Monitor"
               "VESA 72Hz Monitor"
               )
     (default 1)
        )
)

));If AskMonitor

;***
;*** Copy SoftBorder, Special coniguration
;***

;*** Install One-Monitor-System with PassThru***

(if (AND (= 0 Monitor) (= 1 PASSTHRU))(
    (copyfiles
        (prompt   "Kopiere Datei T:Storage/Special/LEGSaPassThruAmiga nach"
                  "EGS:Config/Special. ")
        (source   "T:Storage/Special")
        (choices  "LEGSaPassThruAmiga")
        (dest     "EGS:Config/Special")
        (delopts  "remove" "force")
        (infos)
        (help     "Jetzt wird die Konfig-Datei LEGSaPassThruAmiga nach EGS:Config kopiert. Damit "
                  "wird ein automatisches Starten der EGS-Software bei jedem Neustart "
                  "des Rechners überhaupt erst ermöglicht.")
    )
))

;*** create EGS/Config/Border top level directory

(if (= 0 (exists "EGS:Config/Border" (noreq)))(
    (makedir "EGS:Config/Border"
        (prompt "Erzeuge EGS/Config/BorderSystem Software-Verzeichnis")
        (help "Jetzt wird das Unterverzeichnis für die EGS-Softborder angelegt. ")
    )
))

;*** create EGS/Config/Border top level directory

(if (= 0 (exists "EGS:Startup" (noreq)))(
    (makedir "EGS:Startup"
        (prompt "Erzeuge EGS/Startup Software-Verzeichnis")
        (help "Jetzt wird das Unterverzeichnis für Programme die vor dem "
              "Intialisieren des EGS-Systems gestartet werden sollen angelegt. ")
    )
))
;*** Install Two-Monitor-System ***

(if (AND (= 1 Monitor) (= TOP Direction))
   ((copyfiles
    (prompt   "Kopiere Datei AmigaTopToLEGSa nach EGS:Storage/Border !")
    (choices  "AmigaTopToLEGSa")
    (source   "T:Storage/Border")
    (dest     "EGS:Config/Border")
    (infos)
    (help     "Jetzt wird die AmigaTopToLEGSa nach EGS:Storage/Border kopiert. Damit "
              "wird automatisch beim Starten der EGS-Software ein Softwareborder "
              "für das Bewegen der Maus vom EGS-Bildschirm zum Workbench-Bildschirm "
              "installiert.")
)))

(if (AND (= 1 Monitor) (= LEFT Direction))
   ((copyfiles
    (prompt   "Kopiere Datei AmigaLeftToLEGSa nach EGS:Storage/Border !")
    (choices  "AmigaLeftToLEGSa")
    (source   "T:Storage/Border")
    (dest     "EGS:Config/Border")
    (infos)
    (help     "Jetzt wird die AmigaLeftToLEGSa nach EGS:Storage/Border kopiert. Damit "
              "wird automatisch beim Starten der EGS-Software ein Softwareborder "
              "für das Bewegen der Maus vom EGS-Bildschirm zum Workbench-Bildschirm "
              "installiert.")
)))

(if (AND (= 1 Monitor) (= RIGHT Direction))
   ((copyfiles
    (prompt   "Kopiere Datei AmigaRightToLEGSa nach EGS:Storage/Border !")
    (choices  "AmigaRightToLEGSa")
    (source   "T:Storage/Border")
    (dest     "EGS:Config/Border")
    (infos)
    (help     "Jetzt wird die AmigaRightToLEGSa nach EGS:Storage/Border kopiert. Damit "
              "wird automatisch beim Starten der EGS-Software ein Softwareborder "
              "für das Bewegen der Maus vom EGS-Bildschirm zum Workbench-Bildschirm "
              "installiert.")
)))

(if (AND (= 1 Monitor) (= BOTTOM Direction))
   ((copyfiles
    (prompt   "Kopiere Datei AmigaBottomToLEGSa nach EGS:Storage/Border !")
    (choices  "AmigaBottomToLEGSa")
    (source   "T:Storage/Border")
    (dest     "EGS:Config/Border")
    (infos)
    (help     "Jetzt wird die AmigaBottomToLEGSa nach EGS:Storage/Border kopiert. Damit "
              "wird automatisch beim Starten der EGS-Software ein Softwareborder "
              "für das Bewegen der Maus vom EGS-Bildschirm zum Workbench-Bildschirm "
              "installiert.")
)))


;*** install the correct monitor prefs file for the selected monitor
;*** Copy MUX

(if (<> 0 MONITORNUMBER)
    (
      (set n 0)
      (while (set MONITORNAME
        (select n
             "C1942"
             "C1950"
             "C1960"
             "MultiScan38kHz"
             "MultiScan48kHz"
             "MultiScan57kHz"
             "MultiScan64kHz"
             "VGA"
             "SVGA"
             "VESA60Hz"
             "VESA72Hz"
             ""))
        (if (= MONITORNUMBER n)(
        (set    DDir  "EGS:Monitors/Prefs/")
        (set    SFile (cat "T:monitors/" MONITORNAME))

        (copyfiles
            (prompt   "Kopiere Monitor-File")
            (source   SFile)
            (dest     DDir)
            (newname  MUX)
            (delopts  "remove" "force")
            (help "Die Datei, die Einstellungen über den Monitor enthält, "
                  "wird nach " MoniDir " kopiert.")
        )
        ));if monitor
        (set n (+ n 1))
    );while
))

;*** Delete file from RAM ***
(delete "T:bin"
    (prompt  "Entferne bin aus dem Verzeichnis 'T:'.")
    (help    "Es wird ein Teil der Installation-Datei aus dem Verzeichnis 'T:' gelöscht.")
    (delopts "remove")
)
(delete "T:Storage"
    (prompt  "Entferne Storage aus dem Verzeichnis 'T:'.")
    (help    "Es wird ein Teil der Installation-Datei aus dem Verzeichnis 'T:' gelöscht.")
    (delopts "remove")
)
(delete "T:Monitors"
    (prompt  "Entferne Monitors aus dem Verzeichnis 'T:'.")
    (help    "Es wird ein Teil der Installation-Datei aus dem Verzeichnis 'T:' gelöscht.")
    (delopts "remove")
)

(delete "T:Driver"
    (prompt  "Entferne Driver aus dem Verzeichnis 'T:'.")
    (help    "Es wird ein Teil der Installation-Datei aus dem Verzeichnis 'T:' gelöscht.")
    (delopts "remove")
)
;*** Ask user to reboot ***
(complete 100)
(message "Die System-Software für die "DRVNAME"-Grafikkarte ist nun installiert. \n"
         "Das System führt nun einen RESET durch, damit die neuen Einstellungen "
         "wirksam werden !!!\n\n Viel Spaß mit Ihrer "DRVNAME"-Grafikkarte !!!")

(run "t:bin/Reboot")
(exit)
