[SetupMessage]
    set Status     = STATUS_FAILED
    set UserAction = "CANCEL"
    set LanguageList = ^(LanguageID, 1)
    Ifcontains(i) $($0) in $(LanguageList)
        goto displaymessage
    else
        set Status = STATUS_NOLANGUAGE
        goto finish_SetupMessage
    endif
displaymessage = +
    set DlgText = $($2)
    ifstr(i) $($1) == "WARNING"
        read-syms WarningDlg$($0)
    else-ifstr(i) $($1) == "FATAL"
        read-syms FatalDlg$($0)
    else-ifstr(i) $($1) == "NONFATAL"
        read-syms NonfatalDlg$($0)
    else-ifstr(i) $($1) == "STATUS"
        read-syms StatusDlg$($0)
    else
        goto finish_SetupMessage
    endif
    ui start "SetupMessage"
    ifstr(i) $(DLGEVENT) == "OK"
        set Status     = STATUS_SUCCESSFUL
        set UserAction = $(DLGEVENT)
    else-ifstr(i) $(DLGEVENT) == "CANCEL"
        set Status     = STATUS_SUCCESSFUL
        set UserAction = $(DLGEVENT)
    else
    endif
finish_SetupMessage = +
    Return $(Status) $(UserAction)
    end
[QueryUserQuit]
    set Status     = STATUS_FAILED
    set UserAction = CANCEL
    set LanguageList = ^(LanguageID, 1)
    Ifcontains(i) $($0) in $(LanguageList)
    else
        set Status = STATUS_NOLANGUAGE
        goto fin_QueryUserQuit
    endif
    read-syms ExitWarningDlg$($0)
    ui start "ExitWarning"
    ifstr(i) $(DLGEVENT) == "YES"
        set Status     = STATUS_SUCCESSFUL
        set UserAction = "OK"
    else-ifstr(i) $(DLGEVENT) == "NO"
        set Status     = STATUS_SUCCESSFUL
        set UserAction = "CANCEL"
    else
    endif
fin_QueryUserQuit = +
    Return $(Status) $(UserAction)
[PushBillboard]
    ifstr(i) $(!NTN_NOTIFY_HWND) == ""
        read-syms BillboardDlg$(!STF_LANGUAGE)
        ui start "Billboard"
    endif
    Return
[PopBillboard]
    ifstr(i) $(!NTN_NOTIFY_HWND) == ""
        ui pop 1
    endif
    Return
[AllocateUnusedDrive]
    set Status = STATUS_FAILED
    set Drive  = ""
    ifstr(i) $(!STF_UNUSEDDRIVES) == {}
        goto finish_allocate
    else-ifstr(i) $(!STF_UNUSEDDRIVES) == ""
        goto finish_allocate
    else
        set NewDriveList = {}
        ForListDo $(!STF_UNUSEDDRIVES)
            ifstr(i) $(#) != 1
                set NewDriveList = >($(NewDriveList), $($))
            else
                set Drive  = $($)
                set Status = STATUS_SUCCESSFUL
            endif
        EndForListDo
        set !STF_UNUSEDDRIVES = $(NewDriveList)
    endif
finish_allocate = +
    Return $(Status) $(Drive)
[FreeUnusedDrive]
    set !STF_UNUSEDDRIVES = >($(!STF_UNUSEDDRIVES), $($0))
    Return
[DriversExist]
    set Status = STATUS_FAILED
    set LanguageList = ^(LanguageID, 1)
    Ifcontains(i) $($0) in $(LanguageList)
    else
        set Status = STATUS_NOLANGUAGE
        goto finish_DriversExist
    endif
    read-syms DriversExistDlg$($0)
    ui start "DriversExist"
    ifstr(i) $(DLGEVENT) == "DLGBUTTON0"
        set Status = STATUS_CURRENT
    else-ifstr(i) $(DLGEVENT) == "DLGBUTTON1"
        set Status = STATUS_NEW
    else-ifstr(i) $(DLGEVENT) == "BACK"
        set Status = STATUS_USERCANCEL
    endif
    ui pop 1
finish_DriversExist = +
    Return $(Status)
[DoAskSource]
    read-syms DoAskSourceDlgText$(!STF_LANGUAGE)
    shell "" DoAskSourceEx $($0) $(DlgText)
    Return $($R0) $($R1) $($R2) $($R3)
[DoAskSourceEx]
    set Status      = STATUS_FAILED
    set Src         = $($0)
    set DriveToFree = ""
    read-syms  AskSourceStrings$(!STF_LANGUAGE)
asksource = +
    read-syms DisketteDlg$(!STF_LANGUAGE)
    ui start "Diskette"
    ifstr(i) $(DLGEVENT) == "CONTINUE"
        LibraryProcedure IsFullPath, $(!LIBHANDLE), CheckPathFullPathSpec $(EditTextOut)
        ifstr(i) $(IsFullPath) == "NO"
            StartWait
            LibraryProcedure STATUS, $(!LIBHANDLE), ProcessForUNC $(EditTextOut)
            EndWait
            ifstr(i) $(STATUS) == "ERROR"
                shell "" SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(String1)
                goto asksource
            else-ifstr(i) $(STATUS) == "NOT-UNC"
                shell "" SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(String2)
                goto asksource
            else-ifstr(i) $(STATUS) == "UNC-FAILCONNECT"
                shell "" SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(String4)
                goto asksource
            else
                set Src = $(STATUS)
            endif
        else
            set Src = $(EditTextOut)
        endif
        ui pop 1
        LibraryProcedure STATUS, $(!LIBHANDLE), AppendBackSlash $(Src)
        ifstr(i) $(STATUS) == "ERROR"
            goto finish_DoAskSource
        else
            set Src = $(STATUS)
            set Status = STATUS_SUCCESSFUL
            goto finish_DoAskSource
        endif
    else-ifstr(i) $(DLGEVENT) == "BACK"
        ui pop 1
        set Status = STATUS_USERCANCEL
        goto finish_DoAskSource
    else
        ui pop 1
        goto finish_DoAskSource
    endif
finish_DoAskSource = +
    Return $(Status) $(Src) $(DriveToFree) $(EditTextOut)
[SetupHelpIds]
    !MinimumID                 =    0
    !MaximumID                 = 5000
    !InitialContentsID         = 5
    !IDH_DB_COMPUTERNAMEQ_INS  =   10
    !IDH_DB_COMPUTERNAMEV_INS  =   11
    !IDH_DB_FULLNAMEQ_INS      =   30
    !IDH_DB_FULLNAMEV_INS      =   31
    !IDH_DB_ORGNAMEQ_INS       =   32
    !IDH_DB_ORGNAMEV_INS       =   33
    !IDH_DB_PRODUCTIDQ_INS     =   40
    !IDH_DB_PRODUCTIDV_INS     =   41
    !IDH_DB_INSTALLMODE_INS    =   50
    !IDH_DB_OPTIONS_INS        =   60
    !IDH_DB_SYSTEM_INS         =   70
    !IDH_DB_VIRTUAL_INS        =   80
    !IDH_DB_REPAIR_INS         =   90
    !IDH_DB_PRNSETUP_INS       =  100
    !IDH_DB_OPTIONAL_INS       =  110
    !IDH_DB_CUSTOMISE_INS      =  111
    !IDH_DB_OEMSINGLESEL_INS   =  120
    !IDH_DB_OEMMULTISEL_INS    =  121
    !IDH_DB_ACCOUNTSETUP_INS   =  130
    !IDH_DB_ACCOUNTADMN_INS    =  131
    !IDH_DB_SEARCHDRIVE_INS    =  150
    !IDH_DB_APPCONFLICT_INS    =  151
    !IDH_DB_ASTYPE_INS      =  160
    !IDH_DB_MAINTAIN_INS            = 1000
    !IDH_DB_MOPTIONAL_INS           = 1010
    !IDH_DB_MCUSTOMISE_INS          = 1011
    !IDH_DB_MSYSTEM_INS             = 1020
    !IDH_DB_MPROFILE_INS            = 1030
    !IDH_DB_SCSI_DRIVER_INS         = 1040
    !IDH_DB_SCSI_SELECTDRIVER_INS   = 1041
    !IDH_DB_DRIVEREXIST_INS         = 1042
    !IDH_DB_TAPE_DRIVER_INS         = 1043
    !IDH_DB_TAPE_SELECTDRIVER_INS   = 1044
    !IDH_DB_CARDSELECTION_INS   = 3000  
    !IDH_DB_SOFTSELECTION_INS   = 3001  
    !IDH_DB_OEMNADD1_INS        = 3500  
    !IDH_DB_OEMNADD2_INS        = 3510  
    !IDH_DB_OEMNADDE_INS        = 3520  
    !IDH_UB_OEMNADDP_INS        = 3521  
    !IDH_DB_OEMNADE1_INS        = 3530  
    !IDH_DB_OEMNADE2_INS        = 3540  
    !IDH_DB_OEMNADE3_INS        = 3545  
    !IDH_DB_OEMNADLB_INS        = 3546  
    !IDH_DB_OEMNADAM_INS        = 3547  
    !IDH_DB_OEMNADEM_INS        = 3550  
    !IDH_DB_OEMNADN2_INS        = 3551  
    !IDH_DB_OEMNADN1_INS        = 3552  
    !IDH_DB_OEMNADNE_INS        = 3560  
    !IDH_DB_OEMNADIN_INS        = 3561  
    !IDH_DB_OEMNADEP_INS        = 3565  
    !IDH_DB_OEMNADP3_INS        = 3570  
    !IDH_DB_OEMNADP9_INS        = 3580  
    !IDH_DB_OEMNADSO_INS        = 3590  
    !IDH_DB_OEMNADTK_INS        = 3600  
    !IDH_DB_OEMNADT2_INS        = 3601  
    !IDH_DB_OEMNADTE_INS        = 3602  
    !IDH_DB_OEMNADTM_INS        = 3605  
    !IDH_DB_OEMNADUB_INS        = 3610  
    !IDH_DB_OEMNADWD_INS        = 3620  
    !IDH_DB_OEMNADWM_INS        = 3630  
    !IDH_DB_OEMNADAR1_INS       = 3631  
    !IDH_DB_OEMNADAR2_INS       = 3632  
    !IDH_DB_OEMNADAR3_INS       = 3633  
    !IDH_DB_OEMNADNF_INS        = 3634  
    !IDH_DB_OEMNSVNB_INS        = 3640  
    !IDH_DB_OEMNSVRD_INS        = 3650  
    !IDH_DB_OEMNSVRE_INS        = 3660  
    !IDH_DB_OEMNSVSV_INS        = 3670  
    !IDH_DB_OEMNSVWK_INS        = 3680  
    !IDH_DB_OEMNXPDL_INS        = 3690  
    !IDH_DB_OEMNXPNB_INS        = 3700  
    !IDH_DB_OEMNXPSN_INS        = 3710  
    !IDH_DB_OEMNXPSN_1          = 3711  
    !IDH_DB_OEMNXPSN_2          = 3712  
    !IDH_DB_OEMNXPTC_INS        = 3720  
    !IDH_DB_OEMNXPTC_1          = 3721  
    !IDH_DB_OEMNXPTC_2          = 3722  
    !IDH_DB_OEMNXPTC_3          = 3723  
    !IDH_DB_LMHOST_INS          = 3730  
    !IDH_DB_RPCLOCATE_INS       = 3740  
    !IDH_DB_OEMNSVRI_INS        = 3745  
    !IDH_DB_RETURN_TO_NCPA      = 3750  
    !IDH_DB_GET_PROTOCOL        = 4000  
    !IDH_DB_VER_EXISTED         = 4010  
    !IDH_DB_DETECT_BYPASS       = 4020  
    !IDH_DB_DETECT_FOUND        = 4030  
    !IDH_DB_DETECT_FAILED       = 4040  
    !IDH_DB_DETECT_CHKRAS       = 4050  
    !IDH_DB_OEMNADLT_INS            = 4060  
[ReadSetupHelpIds]
    read-syms "SetupHelpIds"
    Return
[GetDefaultAnswer]
    ifstr(i) $(!STF_GUI_UNATTENDED) == "YES"
        shell $(!STF_UNATTENDED) ReadDefaultData $($0)
    endif
    Return
[LanguageID]
    ENG
[WarningDlgENG]
    STF_MB_TITLE = "Setup Message"
    DlgType      = "MessageBox"
    STF_MB_TEXT  = $(DlgText)
    STF_MB_TYPE  = 2
    STF_MB_ICON  = 5
    STF_MB_DEF   = 2
[FatalDlgENG]
    STF_MB_TITLE = "Setup Message"
    DlgType      = "MessageBox"
    STF_MB_TEXT  = $(DlgText)
    STF_MB_TYPE  = 1
    STF_MB_ICON  = 3
    STF_MB_DEF   = 1
[NonfatalDlgENG]
    STF_MB_TITLE = "Setup Message"
    DlgType      = "MessageBox"
    STF_MB_TEXT  = $(DlgText)
    STF_MB_TYPE  = 1
    STF_MB_ICON  = 5
    STF_MB_DEF   = 1
[StatusDlgENG]
    STF_MB_TITLE = "Setup Message"
    DlgType      = "MessageBox"
    STF_MB_TEXT  = $(DlgText)
    STF_MB_TYPE  = 1
    STF_MB_ICON  = 2
    STF_MB_DEF   = 1
[ExitWarningDlgENG]
    STF_MB_TITLE = "Exit Windows NT Setup"
    STF_MB_TEXT  = "Windows NT is not correctly installed.  Are you "+
                   "sure you want to exit Setup?"
    DlgType      = "MessageBox"
    STF_MB_TYPE  = 3
    STF_MB_ICON  = 5
    STF_MB_DEF   = 2
[BillboardDlgENG]
    DlgType     = Billboard
    DlgTemplate = $($0)
    TextFields  = {$($1)}
[DriversExistDlgENG]
    Caption      = "Windows NT Setup"
    DlgText      = "The driver(s) for this "$($1)" are already on the system. "+
                   "Do you want to use the currently installed driver(s) or "+
                   "install new one(s)."
    Current      = "Cu&rrent"
    New          = "&New"
    Cancel       = "Cancel"
    Help         = "&Help"
    DlgType      = "Info"
    DlgTemplate  = "DRIVEREXISTS"
    HelpContext  = $(!IDH_DB_DRIVEREXIST_INS)
[DoAskSourceDlgTextENG]
    DlgText = "Setup needs to copy some Windows NT files."$(!LF)$(!LF)+
              "Setup will look for the files in the location specified below. If you want "+
              "Setup to look in a different place, type the new location. When the location "+
              "is correct, click Continue."
[AskSourceStringsENG]
String1 = "Error processing path entered.  Please reenter the path."
String2 = "Setup requires a full path of the Windows NT distribution files.  "+
          "Please reenter the path."
String3 = "Setup failed to find a free drive to use to connect to the "+
          "server specified.  Please free up some drives and try again."
String4 = "Setup failed to connect to the server specified.  Please reenter "+
          "the path."
[DisketteDlgENG]
    Caption        = "Windows NT Setup"
    Continue       = "Continue"
    Cancel         = "Cancel"
    DlgType        = "Edit"
    DlgTemplate    = "DISKETTE"
    DlgText        = $($1)
    Edit1Label     = ""
    EditTextIn     = $(Src)
    EditFocus      = "ALL"
