|
|
1.1 ! root 1: ;===================================================================== ! 2: ; THIS INF CONTAINS ALL THE SUBROUTINES COMMONLY USED IN THE SETUP INF ! 3: ;===================================================================== ! 4: ; ! 5: ; ! 6: ;======================================== ! 7: ; MESSAGE REPORTING SUBROUTINES: ! 8: ;======================================== ! 9: ; ! 10: ; 1. SetupMessage: To display warnings, fatal errors, non fatal errors and ! 11: ; status messages. ! 12: ; ! 13: ; 2. QueryUserQuit: To ask if the user wants to quit setup. ! 14: ; ! 15: ! 16: ;======================================== ! 17: ; ALLOCATION AND DEALLOCATION OF DRIVES ! 18: ;======================================== ! 19: ; ! 20: ; 1. AllocateUnusedDrive: To allocate a drive letter to use for reassignment ! 21: ; ! 22: ; 2. FreeUnusedDrive: To free a drive to the unused drive list ! 23: ; ! 24: ! 25: ! 26: ! 27: ;======================================== ! 28: ; MESSAGE REPORTING SUBROUTINES: ! 29: ;======================================== ! 30: ! 31: ;----------------------------------------------------------------------- ! 32: ; ROUTINE: SetupMessage ! 33: ; ! 34: ; DESCRIPTION: This routine lets the user ! 35: ; ! 36: ; INPUTS: $0: Language To Use ! 37: ; $1: MessageType: WARNING | FATAL | NONFATAL | STATUS ! 38: ; $2: MessageText. ! 39: ; ! 40: ; OUTPUTS: $R0: STATUS: STATUS_SUCCESSFUL | ! 41: ; STATUS_NOLANGUAGE ! 42: ; STATUS_FAILED ! 43: ; ! 44: ; $R1: DLGEVENT: OK | CANCEL ! 45: ; ! 46: ;------------------------------------------------------------------------ ! 47: ! 48: [SetupMessage] ! 49: ! 50: ; ! 51: ; Initialize ! 52: ; ! 53: ! 54: set Status = STATUS_FAILED ! 55: set UserAction = "CANCEL" ! 56: ! 57: ; ! 58: ; See if the language indicated is supported ! 59: ; ! 60: ; ! 61: ; Check if the language requested is supported ! 62: ; ! 63: set LanguageList = ^(LanguageID, 1) ! 64: Ifcontains(i) $($0) in $(LanguageList) ! 65: goto displaymessage ! 66: else ! 67: set Status = STATUS_NOLANGUAGE ! 68: goto finish_SetupMessage ! 69: endif ! 70: ! 71: ; ! 72: ; examine the message type and accordingly read in the right dialog ! 73: ; parameters ! 74: ; ! 75: ! 76: displaymessage = + ! 77: set DlgText = $($2) ! 78: ! 79: ifstr(i) $($1) == "WARNING" ! 80: read-syms WarningDlg$($0) ! 81: ! 82: else-ifstr(i) $($1) == "FATAL" ! 83: read-syms FatalDlg$($0) ! 84: ! 85: else-ifstr(i) $($1) == "NONFATAL" ! 86: read-syms NonfatalDlg$($0) ! 87: ! 88: else-ifstr(i) $($1) == "STATUS" ! 89: read-syms StatusDlg$($0) ! 90: ! 91: else ! 92: goto finish_SetupMessage ! 93: ! 94: endif ! 95: ! 96: ui start "SetupMessage" ! 97: ifstr(i) $(DLGEVENT) == "OK" ! 98: set Status = STATUS_SUCCESSFUL ! 99: set UserAction = $(DLGEVENT) ! 100: ! 101: else-ifstr(i) $(DLGEVENT) == "CANCEL" ! 102: set Status = STATUS_SUCCESSFUL ! 103: set UserAction = $(DLGEVENT) ! 104: else ! 105: endif ! 106: ! 107: finish_SetupMessage = + ! 108: Return $(Status) $(UserAction) ! 109: end ! 110: ! 111: ! 112: ! 113: ! 114: ;----------------------------------------------------------------------- ! 115: ; ROUTINE: QueryUserQuit ! 116: ; ! 117: ; DESCRIPTION: This routine queries whether the user wants to quit setup ! 118: ; ! 119: ; INPUTS: $0: Language To Use ! 120: ; ! 121: ; OUTPUTS: $R0: Status: STATUS_SUCCESSFUL | ! 122: ; STATUS_NOLANGUAGE | ! 123: ; STATUS_FAILED ! 124: ; ! 125: ; $R1: UserAction: OK | CANCEL ! 126: ; ! 127: ;------------------------------------------------------------------------ ! 128: ! 129: [QueryUserQuit] ! 130: ! 131: set Status = STATUS_FAILED ! 132: set UserAction = CANCEL ! 133: ! 134: ; ! 135: ; See if the language indicated is supported ! 136: ; ! 137: ; ! 138: ; Check if the language requested is supported ! 139: ; ! 140: set LanguageList = ^(LanguageID, 1) ! 141: Ifcontains(i) $($0) in $(LanguageList) ! 142: else ! 143: set Status = STATUS_NOLANGUAGE ! 144: goto fin_QueryUserQuit ! 145: endif ! 146: ! 147: ; ! 148: ; read in quit message ! 149: ; ! 150: read-syms ExitWarningDlg$($0) ! 151: ui start "ExitWarning" ! 152: ifstr(i) $(DLGEVENT) == "YES" ! 153: set Status = STATUS_SUCCESSFUL ! 154: set UserAction = "OK" ! 155: ! 156: else-ifstr(i) $(DLGEVENT) == "NO" ! 157: set Status = STATUS_SUCCESSFUL ! 158: set UserAction = "CANCEL" ! 159: else ! 160: endif ! 161: ! 162: fin_QueryUserQuit = + ! 163: Return $(Status) $(UserAction) ! 164: ! 165: ! 166: ! 167: ;----------------------------------------------------------------------- ! 168: ; ! 169: ; ROUTINE: PushBillboard ! 170: ; ! 171: ; DESCRIPTION: Put up a billboard or update the text in the existing billboard ! 172: ; ! 173: ; INPUTS: $0: Billboard template ! 174: ; $1: Billboard message ! 175: ; ! 176: ; OUTPUTS: None ! 177: ;------------------------------------------------------------------------ ! 178: ! 179: [PushBillboard] ! 180: read-syms BillboardDlg$(!STF_LANGUAGE) ! 181: ui start "Billboard" ! 182: Return ! 183: ! 184: ! 185: ;----------------------------------------------------------------------- ! 186: ; ! 187: ; ROUTINE: PopBillboard ! 188: ; ! 189: ; DESCRIPTION: Pop off a billboard ! 190: ; ! 191: ; INPUTS: None ! 192: ; ! 193: ; OUTPUTS: None ! 194: ;------------------------------------------------------------------------ ! 195: ! 196: [PopBillboard] ! 197: ui pop 1 ! 198: Return ! 199: ! 200: ! 201: ;======================================== ! 202: ; ALLOCATION AND DEALLOCATION OF DRIVES ! 203: ;======================================== ! 204: ! 205: ;----------------------------------------------------------------------- ! 206: ; ROUTINE: AllocateUnusedDrive ! 207: ; ! 208: ; DESCRIPTION: This routine lets the user allocate a drive from the unused ! 209: ; drive pool. ! 210: ; ! 211: ; INPUTS: None ! 212: ; ! 213: ; OUTPUTS: $R0: STATUS: STATUS_SUCCESSFUL | ! 214: ; STATUS_FAILED ! 215: ; $R1: Drive allocated. ! 216: ; ! 217: ;------------------------------------------------------------------------ ! 218: ! 219: [AllocateUnusedDrive] ! 220: ; ! 221: ; ! 222: set Status = STATUS_FAILED ! 223: set Drive = "" ! 224: ; ! 225: ifstr(i) $(!STF_UNUSEDDRIVES) == {} ! 226: goto finish_allocate ! 227: else-ifstr(i) $(!STF_UNUSEDDRIVES) == "" ! 228: goto finish_allocate ! 229: else ! 230: set NewDriveList = {} ! 231: ForListDo $(!STF_UNUSEDDRIVES) ! 232: ifstr(i) $(#) != 1 ! 233: set NewDriveList = >($(NewDriveList), $($)) ! 234: else ! 235: set Drive = $($) ! 236: set Status = STATUS_SUCCESSFUL ! 237: endif ! 238: EndForListDo ! 239: set !STF_UNUSEDDRIVES = $(NewDriveList) ! 240: endif ! 241: ! 242: finish_allocate = + ! 243: Return $(Status) $(Drive) ! 244: ! 245: ! 246: ;----------------------------------------------------------------------- ! 247: ; ROUTINE: FreeUnusedDrive ! 248: ; ! 249: ; DESCRIPTION: This routine lets the user allocate a drive from the unused ! 250: ; drive pool. ! 251: ; ! 252: ; INPUTS: $0: Drive to free ! 253: ; ! 254: ; OUTPUTS: None ! 255: ; ! 256: ; ! 257: ;------------------------------------------------------------------------ ! 258: ! 259: [FreeUnusedDrive] ! 260: ! 261: set !STF_UNUSEDDRIVES = >($(!STF_UNUSEDDRIVES), $($0)) ! 262: Return ! 263: ! 264: ! 265: ;----------------------------------------------------------------------- ! 266: ; ROUTINE: DriversExist ! 267: ; ! 268: ; DESCRIPTION: This routine informs the user that the drivers for the ! 269: ; option he has selected exist on the destination and asks ! 270: ; whether they should be replaced. ! 271: ; ! 272: ; INPUTS: $0: Language To Use ! 273: ; $1: Dialog Text ! 274: ; ! 275: ; OUTPUTS: STATUS_CURRENT if the current files are to be used ! 276: ; STATUS_NEW if new files are to be copied over ! 277: ; STATUS_USERCANCEL if user chose to cancel installation ! 278: ; STATUS_NOLANGUAGE if the language requested is not supported ! 279: ; STATUS_FAILED if any other failure exists ! 280: ; ! 281: ;------------------------------------------------------------------------ ! 282: [DriversExist] ! 283: ! 284: set Status = STATUS_FAILED ! 285: ! 286: ; ! 287: ; See if the language indicated is supported ! 288: ; ! 289: ! 290: set LanguageList = ^(LanguageID, 1) ! 291: Ifcontains(i) $($0) in $(LanguageList) ! 292: else ! 293: set Status = STATUS_NOLANGUAGE ! 294: goto finish_DriversExist ! 295: endif ! 296: ! 297: read-syms DriversExistDlg$($0) ! 298: ui start "DriversExist" ! 299: ifstr(i) $(DLGEVENT) == "DLGBUTTON0" ! 300: set Status = STATUS_CURRENT ! 301: else-ifstr(i) $(DLGEVENT) == "DLGBUTTON1" ! 302: set Status = STATUS_NEW ! 303: else-ifstr(i) $(DLGEVENT) == "BACK" ! 304: set Status = STATUS_USERCANCEL ! 305: endif ! 306: ui pop 1 ! 307: ! 308: finish_DriversExist = + ! 309: Return $(Status) ! 310: ! 311: ;----------------------------------------------------------------------- ! 312: ; ! 313: ; ROUTINE: DoAskSource ! 314: ; ! 315: ; DESCRIPTION: This routine prompts the source of the windows nt files ! 316: ; ! 317: ; INPUTS: $0: Current Src ! 318: ; ! 319: ; OUTPUTS: $R0: STATUS: STATUS_SUCCESSFUL | ! 320: ; STATUS_USERCANCEL | ! 321: ; STATUS_FAILED ! 322: ; ! 323: ; $R1: Diskette Src ! 324: ; ! 325: ; $R2: Drive to Free or "" if none ! 326: ; ! 327: ; $R3: Actual string returned from dialog ! 328: ; ! 329: ;------------------------------------------------------------------------ ! 330: [DoAskSource] ! 331: read-syms DoAskSourceDlgText$(!STF_LANGUAGE) ! 332: shell "" DoAskSourceEx $($0) $(DlgText) ! 333: Return $($R0) $($R1) $($R2) $($R3) ! 334: ! 335: ! 336: ;----------------------------------------------------------------------- ! 337: ; ! 338: ; ROUTINE: DoAskSourceEx ! 339: ; ! 340: ; DESCRIPTION: This routine prompts the source of the windows nt files ! 341: ; ! 342: ; INPUTS: $0: Current Src ! 343: ; $1: Dialog Text To Use ! 344: ; ! 345: ; OUTPUTS: $R0: STATUS: STATUS_SUCCESSFUL | ! 346: ; STATUS_USERCANCEL | ! 347: ; STATUS_FAILED ! 348: ; ! 349: ; $R1: Diskette Src ! 350: ; ! 351: ; $R2: Drive to Free or "" if none ! 352: ; ! 353: ; $R3: Actual string returned from dialog ! 354: ; ! 355: ;------------------------------------------------------------------------ ! 356: ! 357: ! 358: [DoAskSourceEx] ! 359: ; ! 360: ; ! 361: set Status = STATUS_FAILED ! 362: set Src = $($0) ! 363: set DriveToFree = "" ! 364: read-syms AskSourceStrings$(!STF_LANGUAGE) ! 365: ! 366: asksource = + ! 367: read-syms DisketteDlg$(!STF_LANGUAGE) ! 368: ui start "Diskette" ! 369: ifstr(i) $(DLGEVENT) == "CONTINUE" ! 370: LibraryProcedure IsFullPath, $(!LIBHANDLE), CheckPathFullPathSpec $(EditTextOut) ! 371: ifstr(i) $(IsFullPath) == "NO" ! 372: StartWait ! 373: LibraryProcedure STATUS, $(!LIBHANDLE), ProcessForUNC $(EditTextOut) ! 374: EndWait ! 375: ifstr(i) $(STATUS) == "ERROR" ! 376: shell "" SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(String1) ! 377: goto asksource ! 378: else-ifstr(i) $(STATUS) == "NOT-UNC" ! 379: shell "" SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(String2) ! 380: goto asksource ! 381: else-ifstr(i) $(STATUS) == "UNC-FAILCONNECT" ! 382: shell "" SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(String4) ! 383: goto asksource ! 384: else ! 385: set Src = $(STATUS) ! 386: endif ! 387: else ! 388: set Src = $(EditTextOut) ! 389: endif ! 390: ! 391: ui pop 1 ! 392: LibraryProcedure STATUS, $(!LIBHANDLE), AppendBackSlash $(Src) ! 393: ifstr(i) $(STATUS) == "ERROR" ! 394: goto finish_DoAskSource ! 395: else ! 396: set Src = $(STATUS) ! 397: set Status = STATUS_SUCCESSFUL ! 398: goto finish_DoAskSource ! 399: endif ! 400: ! 401: else-ifstr(i) $(DLGEVENT) == "BACK" ! 402: ui pop 1 ! 403: set Status = STATUS_USERCANCEL ! 404: goto finish_DoAskSource ! 405: else ! 406: ui pop 1 ! 407: goto finish_DoAskSource ! 408: endif ! 409: ! 410: finish_DoAskSource = + ! 411: Return $(Status) $(Src) $(DriveToFree) $(EditTextOut) ! 412: ! 413: ! 414: ;-------------------------------------------------------------------------- ! 415: ; Setup.Hlp Context IDs ! 416: ; ===================== ! 417: ; ! 418: ; The following are the help IDs used in the setup inf files. The help IDs ! 419: ; are in the following ranges: ! 420: ; ! 421: ; 0 - 999 : Main Setup ! 422: ; 1000 - 1999 : Network Setup ! 423: ; 2000 - 2999 : MaintenanceModeSetup ! 424: ; ! 425: ;--------------------------------------------------------------------------- ! 426: ! 427: [SetupHelpIds] ! 428: ! 429: ; ! 430: ; NOTE: PLEASE UPDATE THE !MaximumID field whenever you add a new ID ! 431: ; ! 432: ! 433: !MinimumID = 0 ! 434: !MaximumID = 5000 ! 435: !InitialContentsID = 5 ! 436: ! 437: ; ! 438: ; Main Setup IDs ! 439: ; ! 440: ! 441: !IDH_DB_COMPUTERNAMEQ_INS = 10 ! 442: !IDH_DB_COMPUTERNAMEV_INS = 11 ! 443: !IDH_DB_FULLNAMEQ_INS = 30 ! 444: !IDH_DB_FULLNAMEV_INS = 31 ! 445: !IDH_DB_ORGNAMEQ_INS = 32 ! 446: !IDH_DB_ORGNAMEV_INS = 33 ! 447: !IDH_DB_INSTALLMODE_INS = 50 ! 448: !IDH_DB_OPTIONS_INS = 60 ! 449: !IDH_DB_SYSTEM_INS = 70 ! 450: !IDH_DB_VIRTUAL_INS = 80 ! 451: !IDH_DB_REPAIR_INS = 90 ! 452: !IDH_DB_PRNSETUP_INS = 100 ! 453: !IDH_DB_OPTIONAL_INS = 110 ! 454: !IDH_DB_CUSTOMISE_INS = 111 ! 455: !IDH_DB_OEMSINGLESEL_INS = 120 ! 456: !IDH_DB_OEMMULTISEL_INS = 121 ! 457: !IDH_DB_ACCOUNTSETUP_INS = 130 ! 458: !IDH_DB_ACCOUNTADMN_INS = 131 ! 459: !IDH_DB_SEARCHDRIVE_INS = 150 ! 460: !IDH_DB_APPCONFLICT_INS = 151 ! 461: ! 462: ; ! 463: ; Maintenance mode setup IDs ! 464: ; ! 465: ! 466: !IDH_DB_MAINTAIN_INS = 1000 ! 467: !IDH_DB_MOPTIONAL_INS = 1010 ! 468: !IDH_DB_MCUSTOMISE_INS = 1011 ! 469: !IDH_DB_MSYSTEM_INS = 1020 ! 470: !IDH_DB_MPROFILE_INS = 1030 ! 471: !IDH_DB_SCSI_DRIVER_INS = 1040 ! 472: !IDH_DB_SCSI_SELECTDRIVER_INS = 1041 ! 473: !IDH_DB_DRIVEREXIST_INS = 1042 ! 474: !IDH_DB_TAPE_DRIVER_INS = 1043 ! 475: !IDH_DB_TAPE_SELECTDRIVER_INS = 1044 ! 476: ! 477: ! 478: ; ! 479: ; Network card inf Help ID ! 480: ; ! 481: ! 482: !IDH_DB_CARDSELECTION_INS = 3000 ; Net card selection dialog ! 483: !IDH_DB_SOFTSELECTION_INS = 3001 ; Software selection dialog ! 484: !IDH_DB_OEMNADD1_INS = 3500 ; Dec100 ! 485: !IDH_DB_OEMNADD2_INS = 3510 ; Dec201 ! 486: !IDH_DB_OEMNADDE_INS = 3520 ; Decstation ! 487: !IDH_UB_OEMNADDP_INS = 3521 ; DEC PC ! 488: !IDH_DB_OEMNADE1_INS = 3530 ; Elink 16 ! 489: !IDH_DB_OEMNADE2_INS = 3540 ; Elink ii ! 490: !IDH_DB_OEMNADE3_INS = 3545 ; Elink 3 ! 491: !IDH_DB_OEMNADLB_INS = 3546 ; MS Loop Back ! 492: !IDH_DB_OEMNADAM_INS = 3547 ; AMD ! 493: !IDH_DB_OEMNADEM_INS = 3550 ; Elink MC ! 494: !IDH_DB_OEMNADN2_INS = 3551 ; NE2000 ! 495: !IDH_DB_OEMNADN1_INS = 3552 ; NE1000 ! 496: !IDH_DB_OEMNADNE_INS = 3560 ; NE3200 ! 497: !IDH_DB_OEMNADIN_INS = 3561 ; Intel EE16 ! 498: !IDH_DB_OEMNADP3_INS = 3570 ; Proteon 1390 ! 499: !IDH_DB_OEMNADP9_INS = 3580 ; Proteon 1990 ! 500: !IDH_DB_OEMNADSO_INS = 3590 ; Sonic ! 501: !IDH_DB_OEMNADTK_INS = 3600 ; IBM Token ! 502: !IDH_DB_OEMNADTM_INS = 3605 ; IBM Token ! 503: !IDH_DB_OEMNADUB_INS = 3610 ; UB Card ! 504: !IDH_DB_OEMNADWD_INS = 3620 ; Western Digital ! 505: !IDH_DB_OEMNADWM_INS = 3630 ; Western Digital MicroChannel ! 506: !IDH_DB_OEMNSVNB_INS = 3640 ; Netbios ! 507: !IDH_DB_OEMNSVRD_INS = 3650 ; Redriector ! 508: !IDH_DB_OEMNSVRE_INS = 3660 ; Repl ! 509: !IDH_DB_OEMNSVSV_INS = 3670 ; Server ! 510: !IDH_DB_OEMNSVWK_INS = 3680 ; workstation ! 511: !IDH_DB_OEMNXPDL_INS = 3690 ; dlc ! 512: !IDH_DB_OEMNXPNB_INS = 3700 ; netbeui ! 513: !IDH_DB_OEMNXPSN_INS = 3710 ; snmp ! 514: !IDH_DB_OEMNXPSN_1 = 3711 ; snmp - 1st dialog ! 515: !IDH_DB_OEMNXPSN_2 = 3712 ; snmp - security dialog ! 516: !IDH_DB_OEMNXPTC_INS = 3720 ; tcpip ! 517: !IDH_DB_OEMNXPTC_1 = 3721 ; tcpip - 1st dialog ! 518: !IDH_DB_OEMNXPTC_2 = 3722 ; tcpip - 2nd dialog ! 519: !IDH_DB_OEMNXPTC_3 = 3723 ; tcpip - 3nd dialog ! 520: !IDH_DB_LMHOST_INS = 3730 ; LMHOST dialog ! 521: !IDH_DB_RPCLOCATE_INS = 3740 ; RPC Name Service dialog ! 522: ! 523: !IDH_DB_GET_PROTOCOL = 4000 ; Get Primary Protocol dialog ! 524: !IDH_DB_VER_EXISTED = 4010 ; software or netcard already existed ! 525: !IDH_DB_DETECT_BYPASS = 4020 ; Want to bypass netcard detection? ! 526: !IDH_DB_DETECT_FOUND = 4030 ; Detection found a netcard ! 527: !IDH_DB_DETECT_FAILED = 4040 ; Netcard detection failed ! 528: !IDH_DB_DETECT_CHKRAS = 4050 ; Detection failed-- want RAS? ! 529: !IDH_DB_OEMNADLT_INS = 4060 ; LocalTalk Card Config help ! 530: ! 531: ! 532: ;----------------------------------------------------------------------- ! 533: ; ROUTINE: ReadSetupHelpIds ! 534: ; ! 535: ; DESCRIPTION: This routine sets up the help context ids as globals ! 536: ; ! 537: ; ! 538: ; INPUTS: $0: Drive to free ! 539: ; ! 540: ; OUTPUTS: None ! 541: ; ! 542: ; ! 543: ;------------------------------------------------------------------------ ! 544: ! 545: [ReadSetupHelpIds] ! 546: read-syms "SetupHelpIds" ! 547: Return
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.