;$VER: Install 44.5 (8.1.2001)

(effect "center" "radial" $FF0077 $AA8800)

(set #language (getenv "Language"))

(set #wbversion 0)
(set #wbversion (getversion "libs:version.library"))
(set #wbversion (/ #wbversion 65536) )

(set #iconversion 0)
(set #iconversion (getversion "icon.library" (resident)))
(set #iconversion (/ #iconversion 65536) )

(complete 0)

;=============================================================================
; English strings

(set default_lang 4)
(set default_country 1)
(set #languages 1)

(set #askcatlang "Which locale files would you like to have installed?")
(set #no-cat "None")

(set #pretendabort "Pretend mode cannot be used with this installation script.")

(set #mainwelcome "Welcome to the AmigaOS 3.5 2nd Update installation.\n")

(set #bad-3.5
(cat "\n\n\nThis Boing Bag needs AmigaOS 3.5. Please install it first!\n\n"
     "This update is not intended for AmigaOS 3.9!\n"
))

(set #bad-kick
(cat "\n\nYou have to install Kickstart 3.1 ROMs and Workbench before installing Workbench 3.5."
))

(set #notenoughmemory
(cat "\n\nApproximately 20MByte of disk space is needed on your target volume."
                        "\n\nYou only have \"%s\"KByte free.\n\n"
                        "Delete or move some files from the target volume and try again."
))

(set #introduction
(cat "\n\nThis program lets you install the Update Package of the Amiga Operating "
     "System on your hard drive.\n\nIt can only be used to upgrade an 3.5 release."
))

(set #ask-install-help
(cat "\nYou have to choose which operation you would like to "
     "perform.\n\n"
     "Selecting the \"Install Release 3.5\" gadget lets you perform a update "
     "installation of the Release 3.5 Workbench software. This option should "
     "be chosen when upgrading a system from prior releases, or after "
     "installing Release 3.1 on a new hard drive unit.\n\n"
     "Selecting the \"Install CD-ROM driver\" gadget lets you perform "
     "the installation of CachCDFS CD-ROM driver. "
     "This option should only be chosen when Release 3.1 has already "
     "been installed.\n\n"
))


(set #confirm-target
(cat "\n\nVERY IMPORTANT!!!\n\nThis program installs the update 3.5 on your hard disk. "
     "Older files will be overwritten."
     "\n\n"
     "Do you want to install the Boing Bag 2 on partition \"%s\"? "
))

(set #confirm-target-help
(cat "\nThe installation program guesses, that version 3.5 "
     "should probably be installed on partition \"%s\" "
     "In the further installation process "
     "most of the files on this partition will be replaced with newer "
     "files.\n\n"
))

(set #which-disk
(cat "On which partition should version 3.5 be installed?"
))

(set #which-disk-help
(cat "\nThis section lets you choose on which hard drive partition the "
     "Release 3.5 files will be installed. These should normally go "
     "to the same directory you installed AmigaOS 3.1 to."
     @askdir-help
))

(set #old-name
(cat "OLD"
))

(set #deleting-obsolete
(cat "\n\nDeleting obsolete files..."
))

(set #confirm-delete
(cat "\n\nShould the file \"%s\" be deleted?"
))

(set #confirm-delete-help
(cat "\nThe file \"%s\" is no longer "
     "useful under Release 3.5. You can delete the file by selecting "
     "the \"Yes\" gadget, or preserve the file by selecting the \"No\" "
     "gadget."
))

(set #confirm-delete-reason-2
(cat "The functionality of this program has been integrated into other "
     "Workbench programs."
))

(set #confirm-delete-reason-3
(cat "This program was moved to a different location and will be updated "
     "there."
))

(set #confirm-delete-reason-4
(cat "This program is obsolete and should not be used with Release 3.5"
))

(set #confirm-delete-1
(cat "Yes"
))

(set #confirm-delete-2
(cat "No"
))

(set #which-printer
(cat "Which printer drivers should be installed?"
))

(set #which-printer-help
(cat "\nThe Amiga can control many different printers. "
     "Printer drivers are files that let the Amiga adapt to a given "
     "printer. There must be a printer driver copied to your "
     "hard drive for each printer supported.\n\n"
     "To reduce the amount of space consumed by the "
     "printer driver files, you can select only the "
     "drivers that are useful to you.\n\n"
     "Check the boxes of the printers you wish "
     "to have available on your system.\n\n"
     @askoptions-help
))

(set #preparing-icons
(cat "\n\nPreparing icons..."
))

(set #positioning-icons
(cat "\n\nPositioning icons..."
))

(set #installing
(cat "\n\nWorking on installation..."
))

(set #reboot
(cat "\nThe installation of Boing Bag 2 is now complete.\n\n"
     "To enable the updated files, you must reboot your Amiga.\n\n"
     "Remove all the disks from the floppy drive, and "
     "Select the \"Proceed\" gadget to reboot your Amiga."
))

;=============================================================================
; German strings

(if (= #language "deutsch")
(
(set default_lang 2)
(set default_country 16)
(set #languages 16)

(set def-cat 5)

(set #askcatlang "Welche Sprachkataloge sollen installiert werden?")
(set #no-cat "Keine")

(set #pretendabort "Dieses Installationsprogramm unterstützt den Simulationsmodus (Scheinbar installieren) nicht.")

(set #mainwelcome "Willkommen zur Installation des 2. AmigaOS 3.5 Update Paketes.\n")

(set #bad-3.5
(cat "\n\n\nDieses Boing Bag benötigt AmigaOS 3.5. Bitte installieren Sie es zuerst!\n\n"
     "Dieses BoingBag ist nicht für AmigaOS 3.9 gedacht!\n"
))

(set #bad-kick
(cat "\n\nSie müssen Kickstart 3.1 und die Workbench 3.1 zur Nutzung von Workbench 3.5 vorinstallieren."
))

(set #notenoughmemory
(cat "\n\nSie benötigen mindestens 10MByte freien Speicher auf Ihrer Bootpartition!"
                        "\n\nLeider haben Sie nur noch \"%s\" KByte frei.\n\n"
                        "Löschen oder verschieben Sie einige unnötige Dateien oder vergrößern Sie Ihre Partition."
))

(set #introduction
(cat "\n\nHiermit können Sie das OS3.5 Update Paket auf Ihrer "
     "Festplatte installieren.\n\nSie können damit die Version 3.5 von AmigaOS "
     "aktualisieren."
))

(set #confirm-target
(cat "\n\nBITTE BEACHTEN!!!\n\nDieses Programm installiert das 3.5 Update Paket auf Ihrer Festplatte. "
     "Bisherige Dateien werden überschrieben.\n\n"
     "Wollen Sie das Boing Bag 2 auf der Partition \"%s\" installiert "
     "bekommen?"
))

(set #confirm-target-help
(cat "\nDas Installationsprogramm hat herausgefunden, daß die Version 3.5 "
     "wahrscheinlich auf der Partition namens \"%s\" installiert "
     "werden soll. Bei der weiteren Installation "
     "werden die meisten Dateien in dieser Partition durch neuere Dateien "
     "ersetzt.\n\n"
))

(set #which-disk
(cat "Auf welcher Partition soll Version 3.5 installiert werden?"
))

(set #which-disk-help
(cat "\nHier können Sie wählen, auf welcher Festplattenpartition "
     "die Dateien von Version 3.5 installiert werden sollen. "
     "Sie sollten normalerweise an dieselbe Stelle installiert werden "
     "wie die bisherigen Dateien von Version 1.3, 2, 2.1 oder 3.1.\n\n"
     @askdir-help
))

(set #old-name
(cat "ALT"
))

(set #checking-target
(cat "\n\nÜberprüfen von \"%s\" auf überholte Dateien ..."
))

(set #delete-old
(cat "\n\nViele System-Dateien, die unter früheren Versionen "
     "benötigt wurden, werden unter Version 3.5 nicht länger gebraucht. "
     "Diese Dateien sollen nun aus Ihrem System gelöscht werden.\n\n"
     "Wollen Sie bei jeder Datei einzeln um Bestätigung gebeten werden, "
     "oder können sie alle automatisch gelöscht werden?"
))

(set #delete-old-help
(cat "\nÄltere Systemversionen umfassen mehrere Dateien, die "
     "unter Version 3.5 nutzlos sind. Diese Dateien sollten gelöscht "
     "werden, um Unordnung zu vermeiden und Platz auf Ihrer Festplatte "
     "zu sparen.\n\n"
     "Nach Anklicken von \"Automatisch löschen\" werden alle überholten "
     "Systemdateien ohne weitere Nachfrage gelöscht.\n"
     "Nach Anklicken von \"Löschen bestätigen\" bittet das Installationsprogramm "
     "bei jeder Datei vor dem Löschen um Bestätigung. Somit können Sie "
     "bestimmte Dateien erhalten, die Sie nicht löschen wollen.\n\n"
))

(set #delete-old-1
(cat "Automatisch löschen"
))

(set #delete-old-2
(cat "Löschen bestätigen"
))

(set #deleting-obsolete
(cat "\n\nLöschen überholter Dateien"
))

(set #confirm-delete
(cat "\n\nKann die Datei \"%s\" gelöscht werden?"
))

(set #confirm-delete-help
(cat "\nDie Datei "
     "\"%s\" ist unter Version 3.5 überholt. Sie können die Datei "
     "durch Anklicken von \"Ja\" löschen oder durch Anklicken von \"Nein\" "
     "erhalten."
))

(set #confirm-delete-reason-1
(cat "Diese Datei ist in Version 3.5 jetzt in das ROM integriert."
))

(set #confirm-delete-reason-2
(cat "Die Aufgaben dieses Programms werden jetzt von anderen "
     "Workbench-Programmen übernommen."
))

(set #confirm-delete-reason-3
(cat "Dieses Programm wurde auf einen anderen Pfad verlegt und wird "
     "dort aktualisiert."
))

(set #confirm-delete-reason-4
(cat "Dieses Programm ist überholt und sollte nicht unter Version 3.5 "
     "benutzt werden."
))

(set #confirm-delete-1
(cat "Ja"
))

(set #confirm-delete-2
(cat "Nein"
))

(set #which-printer
(cat "Welche Druckertreiber sollen installiert werden?"
))

(set #which-printer-help
(cat "\nDer Amiga kann viele verschiedene Drucker ansteuern. "
     "Druckertreiber sind Dateien, mit denen sich der Amiga an den "
     "jeweiligen Drucker anpassen kann. Für jeden verwendeten Drucker "
     "muß eine Druckertreiberdatei auf die Festplatte kopiert werden.\n\n"
     "Um den Platz in Grenzen zu halten, den die Treiberdateien einnehmen, "
     "können Sie wählen, nur diejenigen Treiber zu installieren, die Sie "
     "überhaupt verwenden können.\n\n"
     "Klicken Sie einfach die Felder derjenigen Drucker an, die Sie in "
     "Ihrem System verfügbar haben wollen, so daß diese Drucker mit "
     "einem Häkchen markiert sind.\n\n"
     @askoptions-help
))

(set #which-keymap
(cat "Welche Tastaturbelegung (Keymap) soll installiert werden?"
))

(set #which-keymap-help
(cat "\nDer Amiga kann mit vielen verschiedenen Tastaturen betrieben "
     "werden. "
     "Eine \"Keymap\"-Datei (Tastaturbelegung) beschreibt dem Amiga "
     "eine Tastatur, so daß sie korrekt benutzt werden kann. Wählen "
     "Sie aus der Liste die Tastatur aus, die Sie haben.\n\n"
     "Klicken Sie einfach die Felder derjenigen Tastaturbelegungen an, "
     "die Sie in Ihrem System verfügbar haben wollen, so daß diese mit "
     "einem Häkchen markiert sind.\n\n"
     @askoptions-help
))

(set #boardsoptstxt "Bitte Boardtyp auswaehlen")
(set #noboards "Kein PPC-Board vorhanden")
(set #cyberstorm "CyberStormPPC A3000/A4000")
(set #developerboard "CyberStorm Developerboard")
(set #blizzard "Blizzard PPC A1200")

(set #boardopts_help (cat "\n"
    "Wählen Sie bitte das entsprechende, in Ihrem Amiga eingebaute PowerPC-Board aus. "
    "Wenn Sie noch ueber kein Board verfuegen, wählen Sie einfach \"Kein PPC-Board vorhanden\". "
    "Sie könenn dann dennoch die beigefuegten Demos ablaufen lassen.\n\n"
    "Die 'warpHW.library' ist der Hardware-Treiber fuer den WarpUp-HAL. Im "
    "Verzeichnis 'hwdrivers' befindet sich eine ausfuehrliche Dokumentation und "
    "Beispiel-Sourcen, welche es jedermann erlauben, WarpUp-Treiber fuer neue "
    "PPC-Hardware zu entwickeln. Fuer jede Hardware gibt es eine warpHW.library. "
    "Es muss natuerlich die korrekte Version installiert sein. Dies kann man "
    "ueberpruefen, indem man das Programm 'GetDriverInfo' (im 'tools'-Verzeichnis) "
    "laufen laesst, welches in der Shell ausgibt, welche Hardware der Treiber "
    "repraesentiert."
    ))


(set #envoptstxt "Bitte wählen Sie Ihre Einstellung!")

(set #envdebug "Debug-Modus")
(set #envmemprot "PPC-Speicherschutz")
(set #envearlyterm "WShell-Kompatibel")
(set #envnoppc "PPC-Board ausgebaut")
(set #envhidewarning "Warnungen ignorieren")
(set #envterminator "PPC.lib Autoterminator")

(set #envopts_help ( cat "\n"
      "Voreinstellungen\n\n"
      "WarpOS kennt einige Env-Variablen, womit gewisse Voreinstellungen gemacht "
      "werden können. Zur Zeit können folgende Variablen über den "
      "Installer konfiguriert werden:\n\n"

      "WShell-Kompatibilität - env:powerpc/earlyterm\n\n"

      "Wenn diese Variable nicht gesetzt ist, kann es im Zusammenhang mit Programmen "
      "wie der WShell zu grossen Problemen kommen, in diesem Fall sollte diese "
      "Variable gesetzt werden. Dann können aber die Tool-Programme 'stackppc' und "
      "'changemmu' nicht mehr benützt werden. Der PPC-Stack kann dann aber mit dem "
      "Stack-Befehl gesetzt werden (Der PPC-Stack ist etwa doppelt so gross wie der "
     "68K-Stack der Shell).\n\n"

      ))

(set #install_powerpclib "Kopiere die Bibliotheken nach Libs:")
(set #install_powerpclib_help "Die Bibliothek wird zwangsläufig zum Betrieb benoetigt.")

(set #gfxoptstxt "Haben Sie eine der beiden Grafikkarten CVisonPPC oder BVisonPPC in Ihrem Amiga installiert?")
(set #cvppctxt "CyberVisionPPC")
(set #bvppctxt "BlizzardVisionPPC")
(set #othergfx "Andere Grafikkarte")
(set #nogfx "Keine Grafikkarte")

(set #old-name
(cat "ALT"
))

(set #preparing-icons
(cat "\n\nVorbereiten der Piktogramme ..."
))

(set #positioning-icons
(cat "\n\nPositioniere Ikons..."
))

(set #installing
(cat "\n\nInstalliere das Update..."
))

(set #reboot
(cat "Die Installation des Update Paketes ist nun abgeschlossen.\n\n"
     "Um die Version 3.5 zu aktivieren, müssen Sie Ihren Amiga neu "
     "starten. "
     "Nehmen Sie die eventuell vorhandene Disketten aus Ihren Diskettenlaufwerken "
     "und klicken Sie dann auf \"Weiter\", um Ihren Amiga neu zu starten.\n\n"
))

))

;=============================================================================
; Portugues strings

(if (= #language "português")
(
(set default_lang 256)
(set default_country 1024)
(set #languages 4096)
(set def-cat 11)

))

;=============================================================================
; Spanish strings

(if (= #language "español")
(
(set default_lang 8)
(set default_country 64)
(set #languages 32)
(set def-cat 6)
))

;=============================================================================
; French strings

(if (= #language "français")
(
(set default_lang 16)
(set default_country 128)
(set #languages 64)
(set def-cat 7)

))

;=============================================================================
; Dutch strings

(if (= #language "nederlands")
(
(set default_lang 64)
(set default_country 2)
(set #languages 512)
(set def-cat 9)
))

;=============================================================================
; Italian strings

(if (= #language "italiano")
(
(set default_lang 32)
(set default_country 256)
(set #languages 256)
(set def-cat 8)
))


;=============================================================================
; Danish strings

(if (= #language "dansk")
(
(set default_lang 1)
(set default_country 8)
(set #languages 8)
(set def-cat 4)
))

;=============================================================================
; Swedish strings

(if (= #language "svenska")
(
(set default_lang 512)
(set default_country 8192)
(set #languages 131072)
(set def-cat 18)
))

;=============================================================================
; Norwegian strings

(if (= #language "norsk")
(
(set default_lang 128)
(set default_country 512)
(set #languages 65536)
(set def-cat 10)
))

(if (= #language "bosanski")
  (set def-cat 1)
)

(if (= #language "català")
  (set def-cat 2)
)

(if (= #language "czech")
  (set def-cat 3)
)

(if (= #language "português-brasil")
  (set def-cat 12)
)
(if (= #language "russian")
  (set def-cat 13)
)
(if (= #language "slovak")
  (set def-cat 14)
)
(if (= #language "slovensko")
  (set def-cat 15)
)
(if (= #language "srpski")
  (set def-cat 16)
)
(if (= #language "suomi")
  (set def-cat 17)
)

;=============================================================================
; procedure to call on exit...

(procedure TERMINATE
        (makeassign "CacheCDFSInst" (safe))
        (makeassign "CacheCDFS" (safe))
)

;=============================================================================
; termination stuff

(onerror (TERMINATE))

;=============================================================================
; do a bit of set up...

(set sourcePath (expandpath (pathonly @icon)))

(set workbenchPath (tackon sourcePath "Workbench"))
(set printerPath (tackon sourcePath "Printers"))
(set romupdatePath (tackon sourcePath "ROM-Update"))
(set internetPath (tackon sourcePath "Internet"))

(run (cat "Resident \"" (tackon sourcePath "Install-Tools/IconPos\" PURE")) (safe))
(run (cat "Resident \"" (tackon sourcePath "Install-Tools/Delete\" PURE")) (safe))

(set #old_wb "SYS:")
(set #old_wb (expandpath #old_wb))

(user 2)
(set #theirlevel @user-level)

;=============================================================================
; what do you want to do?

(if (<> #wbversion 44)
    (
        (message #bad-3.5) ; No OS3.5 installed
        (exit (quiet))
    )
   (
   ;******************************************************************
   ;***************** Boing BAG Installation *************************
   ;******************************************************************
   (complete 1)

   (message #introduction)


      (complete 5)

      (user 0)
      (welcome #mainwelcome)
      (set #theirlevel @user-level)

      (if @pretend
        (abort #pretendabort)
      )

      (trace) ;hierhin zurueck

      (complete 10)

      (message (#confirm-target #old_wb))
      (set target #old_wb)

      (set @default-dest target)
      (set stash_old (tackon target #old-name))

      (complete 15)

      ;=============================================================================
      ; which printer drivers should be installed?
;      (trace)

;      (user 2)
;      (set prt (askoptions (prompt #which-printer)
;                           (help #which-printer-help)
;                           (choices "HP LaserJet (all Models)"
;                                    "HP DeskJet (all Models)"
;
;                           )
;                           (default 0)
;                           (back (retrace))
;                )
;      )
;      (user #theirlevel)
;      (complete 20)

      ;=============================================================================
      ; get the version of what is currently installed

      (set old_version 0)
      (if (exists (tackon target "Libs/version.library"))
      (
          (set old_version (/ (getversion (tackon target "Libs/version.library")) 65536))
      ))

      (complete 30)

      ;=============================================================================
      ; now copy the Workbench disk

      (working #installing)

      (copyfiles (source workbenchPath)
                 (dest target)
                 (all)
                 (optional "nofail" "force" "askuser")
      )

      (complete 50)


      ;=============================================================================
      ; catalogs

      (set locale_path (tackon "Locales"
          (select (askchoice
                    (help @askchoice-help) (prompt #askcatlang) (default def-cat)
                    (choices #no-cat "Bosanski" "Català" "Czech" "Dansk" "Deutsch" "Español" "Français" "Italiano" "Nederlands" "Norsk" "Português" "Português (Brasil)" "Ðóññêèé (Russian)" "Slovak" "Slovensko" "Srpksi" "Suomi" "Svenska")
                  )
                             "" "bosanski" "català" "czech" "dansk" "deutsch" "español" "français" "italiano" "nederlands" "norsk" "português" "português-brasil"   "russian"           "slovak" "slovensko" "srpksi" "suomi" "svenska"
          )
        )
      )
      (if (<> locale_path "")
        (execute (tackon locale_path "Locale_Installation"))
      )

      (complete 60)

      ;=============================================================================
      ; do the printer driver schtick

;      (set n 0)
;      (set printerpat "(%")
;      (while (set printer (select n "HP_Laser#?"
;                                    "HP_Desk#?"
;                                    ""
;                           )
;             )
;      (
;          (if (IN prt n)
;          (
;              (set printerpat (cat printerpat "|" printer))
;          ))
;          (set n (+ n 1))
;      ))

;      (copyfiles (source printerPath)
;                 (dest (tackon target "Devs/Printers"))
;                 (pattern (cat printerpat ")"))
;                 (optional "nofail" "force" "askuser")
;      )

      (complete 70)

      ;=============================================================================
      ; ROM Update!
      ;
      (if (exists (tackon target "Devs/AmigaOS ROM Update"))
          (
              (copyfiles (source romupdatePath)
                         (dest (tackon target "Devs"))
                         (all)
                         (optional "nofail" "force" "askuser")
              )

          )
      )

      (complete 80)

      ;=============================================================================
      ; Internet!
      ;
      (if (exists (tackon target "Internet"))
          (
              (copyfiles (source internetPath)
                         (dest (tackon target "Internet"))
                         (all)
                         (optional "nofail" "force" "askuser")
              )

          )
      )

      (complete 90)

      ;=============================================================================
      ; Clean up!
      ;
      (working #positioning-icons)

      (complete 95)

;      (run (cat "IconPos >NIL: \"" target "Christmas-Look\" 160 150\n"))

      (complete 100)

      ;=============================================================================
      ; "Say goodnight Gracy."

      (user 2)
      (message #reboot)
      (reboot)
   )
)
