; ********************************************************************** ; ; OEMSETUP.INF ; ; Copyright (c) Madge Networks Ltd. 1997-2000 ; ; VeRsIoN=Madge Smart Ringnode Miniport Driver NT Installation Script@ ; VeRsIoN=VERSION: v6.06 LSS 7.1(0)@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ; VeRsIoN=PRODUCT-ID: MDGNDIS4.SYS 6.06 @ ; VeRsIoN=INFO: WINNT.TXT (Windows NT Installation)@ ; MaDgE=8B65@ ; ; Supports Adapter Mirroring installation (on selected cards). ; Supports Hot Plug PCI installation. ; ; ********************************************************************** ; ---------------------------------------------------------------------- ; Mandatory configuration information. ; ---------------------------------------------------------------------- [Identification] OptionType = NetAdapter [PlatformsSupported] ISA EISA PCI "Jazz-Internal Bus" [LanguagesSupported] ENG [Options] MDGAUTO MDGPCIHS2 MDGPCIHS MDGPCI3 MDGPCIBM2 MDGPRESTO2000 MDGPRESTO2 MDGPRESTO MDGCARDBUS2 MDGCARDBUS MDGPCMCIA OCTX3540 OCTX3139 OCTX3140 OCTX3141 OCTX3137 OCTX3250 OCTX3221 [MirroringOptions] MDGPCIHS MDGPCIHS2 MDGPCI3 MDGPCIBM2 OCTX3137 OCTX3139 OCTX3140 OCTX3141 OCTX3540 ; ; Options supported by LSS 5.02 which are also supported by this driver. ; Note that LSS 5.02 only provided and NDIS3 Miniport. ; [LSS502_Options] MDGMPPCIBM MDGMPPCMCIA ; ; Unsupported options (MDGMP??? = LSS 5 option, MDG??? = LSS 6 option) ; [Unsupported_Options] MDGMPATP MDGMPATPE MDGMPISACP MDGMPEISA MDGMPPNP MDGMPPCI MDGMPISA MDGMPISAC MDGMPPC MDGMPMCA MDGMPMC32 MDGMPSM16 MDGATP MDGATPNP MDGISACP MDGISACPNP MDGBLUEISA MDGBLUEPNP MDGEISA MDGPCI1B MDGPCIBM1 ;----------------------------------------------------------------------- ; Text strings to identify adapter options. ;----------------------------------------------------------------------- [OptionsTextENG] MDGAUTO = "Madge Automated Installation - RECOMMENDED" MDGPCIHS2 = "Madge Smart 100/16/4 PCI Ringnode" MDGPCIHS = "Madge Smart 100/16/4 PCI-HS Ringnode" MDGPCI3 = "Madge Smart 16/4 PCI Ringnode Mk3" MDGPCIBM2 = "Madge Smart 16/4 PCI Ringnode Mk2" MDGPRESTO2000 = "Madge Presto PCI 2000" MDGPRESTO2 = "Madge Presto PCI Plus" MDGPRESTO = "Madge Presto PCI" MDGCARDBUS2 = "Madge 16/4 CardBus Adapter Mk2" MDGCARDBUS = "Madge 16/4 CardBus Adapter" MDGPCMCIA = "Madge Smart 16/4 PCMCIA Ringnode" OCTX3540 = "Olicom RF-3540 HSTR 100/16/4 PCI Adapter" OCTX3139 = "Olicom RF-3139 Token-Ring 16/4 PCI Adapter" OCTX3140 = "Olicom RF-3140 Token-Ring 16/4 PCI Adapter" OCTX3141 = "Olicom RF-3141 Token-Ring 16/4 PCI Fiber Adapter" OCTX3137 = "Olicom PCI/II 16/4 Adapter (OC-3137)" OCTX3250 = "Olicom GC-3250 16/4 CardBus PC Card" OCTX3221 = "Olicom GoCard Token-Ring PC Card (OC-3221)" ;----------------------------------------------------------------------- ; Text strings to identify Madge adapters in a machine. ;----------------------------------------------------------------------- [OptionsChoiceENG] MDGPCIHS2 = "Smart 100/16/4 PCI Ringnode / PCI device ID " MDGPCIHS = "Smart 100/16/4 PCI-HS Ringnode / PCI device ID " MDGPCI3 = "Smart 16/4 PCI Ringnode Mk3 / PCI device ID " MDGPCIBM2 = "Smart 16/4 PCI Ringnode Mk2 / PCI device ID " MDGPRESTO2000 = "Presto PCI 2000 / PCI device ID " MDGPRESTO2 = "Presto PCI Plus / PCI device ID " MDGPRESTO = "Presto PCI / PCI device ID " MDGCARDBUS2 = "16/4 CardBus Adapter Mk2 / PCI device ID " MDGCARDBUS = "16/4 CardBus Adapter / PCI device ID " MDGPCMCIA = "Smart 16/4 PCMCIA Ringnode / IO location " OCTX3540 = "RF-3540 HSTR 100/16/4 PCI Adapter / PCI device ID " OCTX3139 = "RF-3139 16/4 PCI Adapter / PCI device ID " OCTX3140 = "RF-3140 16/4 PCI Adapter / PCI device ID " OCTX3141 = "RF-3141 16/4 PCI Fiber Adapter / PCI device ID " OCTX3137 = "OC-3137 16/4 PCI/II Adapter / PCI device ID " OCTX3250 = "GoCard 3250 16/4 CardBus PC Card / PCI device ID " OCTX3221 = "GoCard 3221 PC Card / IO location " ;----------------------------------------------------------------------- ; Adapter options that require a slot number. ; Others require an IO location. ;----------------------------------------------------------------------- [SlotNumberOnlyOptions] MDGPCIHS MDGPCIHS2 OCTX3540 MDGPCI3 MDGPCIBM2 MDGPRESTO2000 MDGPRESTO2 MDGPRESTO OCTX3139 OCTX3140 OCTX3141 OCTX3137 ;----------------------------------------------------------------------- ; Cardbus adapters. ;----------------------------------------------------------------------- [CardbusOptions] MDGCARDBUS MDGCARDBUS2 OCTX3250 ;----------------------------------------------------------------------- ; PCMCIA adapters. ;----------------------------------------------------------------------- [PcmciaOptions] MDGPCMCIA OCTX3221 [OlicomPcmciaOptions] OCTX3221 [OlicomHebeOptions] OCTX3139 OCTX3140 OCTX3141 OCTX3540 OCTX3250 ; ---------------------------------------------------------------------- ; Lists of user allowable locations. ; ---------------------------------------------------------------------- [MDGPCI3_LocChoices] "00",0 "01",1 "02",2 "03",3 "04",4 "05",5 "06",6 "07",7 "08",8 "09",9 "10",10 "11",11 "12",12 "13",13 "14",14 "15",15 "16",16 "17",17 "18",18 "19",19 "20",20 "21",21 "22",22 "23",23 "24",24 "25",25 "26",26 "27",27 "28",28 "29",29 "30",30 "31",31 [MDGPCIBM2_LocChoices] "00",0 "01",1 "02",2 "03",3 "04",4 "05",5 "06",6 "07",7 "08",8 "09",9 "10",10 "11",11 "12",12 "13",13 "14",14 "15",15 "16",16 "17",17 "18",18 "19",19 "20",20 "21",21 "22",22 "23",23 "24",24 "25",25 "26",26 "27",27 "28",28 "29",29 "30",30 "31",31 [MDGPCMCIA_LocChoices] "0x0300",768 "0x0320",800 "0x0340",832 "0x0360",864 "0x0920",2336 "0x0940",2368 "0x0960",2400 "0x0980",2432 "0x0A20",2592 "0x0A40",2624 "0x0A60",2656 "0x0A80",2688 "0x0AA0",2720 "0x0B20",2848 "0x0B40",2880 "0x0B60",2912 "0x0B80",2944 "0x1A20",6688 "0x2A20",10784 "0x3A20",14880 [MDGPRESTO_LocChoices] "00",0 "01",1 "02",2 "03",3 "04",4 "05",5 "06",6 "07",7 "08",8 "09",9 "10",10 "11",11 "12",12 "13",13 "14",14 "15",15 "16",16 "17",17 "18",18 "19",19 "20",20 "21",21 "22",22 "23",23 "24",24 "25",25 "26",26 "27",27 "28",28 "29",29 "30",30 "31",31 [MDGPRESTO2_LocChoices] "00",0 "01",1 "02",2 "03",3 "04",4 "05",5 "06",6 "07",7 "08",8 "09",9 "10",10 "11",11 "12",12 "13",13 "14",14 "15",15 "16",16 "17",17 "18",18 "19",19 "20",20 "21",21 "22",22 "23",23 "24",24 "25",25 "26",26 "27",27 "28",28 "29",29 "30",30 "31",31 [MDGPRESTO2000_LocChoices] "00",0 "01",1 "02",2 "03",3 "04",4 "05",5 "06",6 "07",7 "08",8 "09",9 "10",10 "11",11 "12",12 "13",13 "14",14 "15",15 "16",16 "17",17 "18",18 "19",19 "20",20 "21",21 "22",22 "23",23 "24",24 "25",25 "26",26 "27",27 "28",28 "29",29 "30",30 "31",31 [MDGCARDBUS_LocChoices] "Automatic",0 "0x0100",256 "0x0200",512 "0x0300",768 "0x0400",1024 "0x0500",1280 "0x0600",1536 "0x0700",1792 "0x0800",2048 "0x0900",2304 "0x0a00",2560 "0x0b00",2816 "0x0c00",3072 "0x0d00",3328 "0x0e00",3584 "0x0f00",3840 "0x1000",4096 "0x1100",4352 "0x1200",4608 "0x1300",4864 "0x1400",5120 "0x1500",5376 "0x1600",5632 "0x1700",5888 "0x1800",6144 "0x1900",6400 "0x1a00",6656 "0x1b00",6912 "0x1c00",7168 "0x1d00",7424 "0x1e00",7680 "0x1f00",7936 "0x2000",8192 "0x2100",8448 "0x2200",8704 "0x2300",8960 "0x2400",9216 "0x2500",9472 "0x2600",9728 "0x2700",9984 "0x2800",10240 "0x2900",10496 "0x2a00",10752 "0x2b00",11008 "0x2c00",11264 "0x2d00",11520 "0x2e00",11776 "0x2f00",12032 "0x3000",12288 "0x3100",12544 "0x3200",12800 "0x3300",13056 "0x3400",13312 "0x3500",13568 "0x3600",13824 "0x3700",14080 "0x3800",14336 "0x3900",14592 "0x3a00",14848 "0x3b00",15104 "0x3c00",15360 "0x3d00",15616 "0x3e00",15872 "0x3f00",16128 "0x4000",16384 "0x4100",16640 "0x4200",16896 "0x4300",17152 "0x4400",17408 "0x4500",17664 "0x4600",17920 "0x4700",18176 "0x4800",18432 "0x4900",18688 "0x4a00",18944 "0x4b00",19200 "0x4c00",19456 "0x4d00",19712 "0x4e00",19968 "0x4f00",20224 "0x5000",20480 "0x5100",20736 "0x5200",20992 "0x5300",21248 "0x5400",21504 "0x5500",21760 "0x5600",22016 "0x5700",22272 "0x5800",22528 "0x5900",22784 "0x5a00",23040 "0x5b00",23296 "0x5c00",23552 "0x5d00",23808 "0x5e00",24064 "0x5f00",24320 "0x6000",24576 "0x6100",24832 "0x6200",25088 "0x6300",25344 "0x6400",25600 "0x6500",25856 "0x6600",26112 "0x6700",26368 "0x6800",26624 "0x6900",26880 "0x6a00",27136 "0x6b00",27392 "0x6c00",27648 "0x6d00",27904 "0x6e00",28160 "0x6f00",28416 "0x7000",28672 "0x7100",28928 "0x7200",29184 "0x7300",29440 "0x7400",29696 "0x7500",29952 "0x7600",30208 "0x7700",30464 "0x7800",30720 "0x7900",30976 "0x7a00",31232 "0x7b00",31488 "0x7c00",31744 "0x7d00",32000 "0x7e00",32256 "0x7f00",32512 "0x8000",32768 "0x8100",33024 "0x8200",33280 "0x8300",33536 "0x8400",33792 "0x8500",34048 "0x8600",34304 "0x8700",34560 "0x8800",34816 "0x8900",35072 "0x8a00",35328 "0x8b00",35584 "0x8c00",35840 "0x8d00",36096 "0x8e00",36352 "0x8f00",36608 "0x9000",36864 "0x9100",37120 "0x9200",37376 "0x9300",37632 "0x9400",37888 "0x9500",38144 "0x9600",38400 "0x9700",38656 "0x9800",38912 "0x9900",39168 "0x9a00",39424 "0x9b00",39680 "0x9c00",39936 "0x9d00",40192 "0x9e00",40448 "0x9f00",40704 "0xa000",40960 "0xa100",41216 "0xa200",41472 "0xa300",41728 "0xa400",41984 "0xa500",42240 "0xa600",42496 "0xa700",42752 "0xa800",43008 "0xa900",43264 "0xaa00",43520 "0xab00",43776 "0xac00",44032 "0xad00",44288 "0xae00",44544 "0xaf00",44800 "0xb000",45056 "0xb100",45312 "0xb200",45568 "0xb300",45824 "0xb400",46080 "0xb500",46336 "0xb600",46592 "0xb700",46848 "0xb800",47104 "0xb900",47360 "0xba00",47616 "0xbb00",47872 "0xbc00",48128 "0xbd00",48384 "0xbe00",48640 "0xbf00",48896 "0xc000",49152 "0xc100",49408 "0xc200",49664 "0xc300",49920 "0xc400",50176 "0xc500",50432 "0xc600",50688 "0xc700",50944 "0xc800",51200 "0xc900",51456 "0xca00",51712 "0xcb00",51968 "0xcc00",52224 "0xcd00",52480 "0xce00",52736 "0xcf00",52992 "0xd000",53248 "0xd100",53504 "0xd200",53760 "0xd300",54016 "0xd400",54272 "0xd500",54528 "0xd600",54784 "0xd700",55040 "0xd800",55296 "0xd900",55552 "0xda00",55808 "0xdb00",56064 "0xdc00",56320 "0xdd00",56576 "0xde00",56832 "0xdf00",57088 "0xe000",57344 "0xe100",57600 "0xe200",57856 "0xe300",58112 "0xe400",58368 "0xe500",58624 "0xe600",58880 "0xe700",59136 "0xe800",59392 "0xe900",59648 "0xea00",59904 "0xeb00",60160 "0xec00",60416 "0xed00",60672 "0xee00",60928 "0xef00",61184 "0xf000",61440 "0xf100",61696 "0xf200",61952 "0xf300",62208 "0xf400",62464 "0xf500",62720 "0xf600",62976 "0xf700",63232 "0xf800",63488 "0xf900",63744 "0xfa00",64000 "0xfb00",64256 "0xfc00",64512 "0xfd00",64768 "0xfe00",65024 "0xff00",65280 [MDGCARDBUS2_LocChoices] "Automatic",0 "100",256 "180",384 "200",512 "280",640 "300",768 "380",896 "400",1024 "480",1152 "500",1280 "580",1408 "600",1536 "680",1664 "700",1792 "780",1920 "800",2048 "880",2176 "900",2304 "980",2432 "a00",2560 "a80",2688 "b00",2816 "b80",2944 "c00",3072 "c80",3200 "d00",3328 "d80",3456 "e00",3584 "e80",3712 "f00",3840 "f80",3968 "1000",4096 "1080",4224 "1100",4352 "1180",4480 "1200",4608 "1280",4736 "1300",4864 "1380",4992 "1400",5120 "1480",5248 "1500",5376 "1580",5504 "1600",5632 "1680",5760 "1700",5888 "1780",6016 "1800",6144 "1880",6272 "1900",6400 "1980",6528 "1a00",6656 "1a80",6784 "1b00",6912 "1b80",7040 "1c00",7168 "1c80",7296 "1d00",7424 "1d80",7552 "1e00",7680 "1e80",7808 "1f00",7936 "1f80",8064 "2000",8192 "2080",8320 "2100",8448 "2180",8576 "2200",8704 "2280",8832 "2300",8960 "2380",9088 "2400",9216 "2480",9344 "2500",9472 "2580",9600 "2600",9728 "2680",9856 "2700",9984 "2780",10112 "2800",10240 "2880",10368 "2900",10496 "2980",10624 "2a00",10752 "2a80",10880 "2b00",11008 "2b80",11136 "2c00",11264 "2c80",11392 "2d00",11520 "2d80",11648 "2e00",11776 "2e80",11904 "2f00",12032 "2f80",12160 "3000",12288 "3080",12416 "3100",12544 "3180",12672 "3200",12800 "3280",12928 "3300",13056 "3380",13184 "3400",13312 "3480",13440 "3500",13568 "3580",13696 "3600",13824 "3680",13952 "3700",14080 "3780",14208 "3800",14336 "3880",14464 "3900",14592 "3980",14720 "3a00",14848 "3a80",14976 "3b00",15104 "3b80",15232 "3c00",15360 "3c80",15488 "3d00",15616 "3d80",15744 "3e00",15872 "3e80",16000 "3f00",16128 "3f80",16256 "4000",16384 "4080",16512 "4100",16640 "4180",16768 "4200",16896 "4280",17024 "4300",17152 "4380",17280 "4400",17408 "4480",17536 "4500",17664 "4580",17792 "4600",17920 "4680",18048 "4700",18176 "4780",18304 "4800",18432 "4880",18560 "4900",18688 "4980",18816 "4a00",18944 "4a80",19072 "4b00",19200 "4b80",19328 "4c00",19456 "4c80",19584 "4d00",19712 "4d80",19840 "4e00",19968 "4e80",20096 "4f00",20224 "4f80",20352 "5000",20480 "5080",20608 "5100",20736 "5180",20864 "5200",20992 "5280",21120 "5300",21248 "5380",21376 "5400",21504 "5480",21632 "5500",21760 "5580",21888 "5600",22016 "5680",22144 "5700",22272 "5780",22400 "5800",22528 "5880",22656 "5900",22784 "5980",22912 "5a00",23040 "5a80",23168 "5b00",23296 "5b80",23424 "5c00",23552 "5c80",23680 "5d00",23808 "5d80",23936 "5e00",24064 "5e80",24192 "5f00",24320 "5f80",24448 "6000",24576 "6080",24704 "6100",24832 "6180",24960 "6200",25088 "6280",25216 "6300",25344 "6380",25472 "6400",25600 "6480",25728 "6500",25856 "6580",25984 "6600",26112 "6680",26240 "6700",26368 "6780",26496 "6800",26624 "6880",26752 "6900",26880 "6980",27008 "6a00",27136 "6a80",27264 "6b00",27392 "6b80",27520 "6c00",27648 "6c80",27776 "6d00",27904 "6d80",28032 "6e00",28160 "6e80",28288 "6f00",28416 "6f80",28544 "7000",28672 "7080",28800 "7100",28928 "7180",29056 "7200",29184 "7280",29312 "7300",29440 "7380",29568 "7400",29696 "7480",29824 "7500",29952 "7580",30080 "7600",30208 "7680",30336 "7700",30464 "7780",30592 "7800",30720 "7880",30848 "7900",30976 "7980",31104 "7a00",31232 "7a80",31360 "7b00",31488 "7b80",31616 "7c00",31744 "7c80",31872 "7d00",32000 "7d80",32128 "7e00",32256 "7e80",32384 "7f00",32512 "7f80",32640 "8000",32768 "8080",32896 "8100",33024 "8180",33152 "8200",33280 "8280",33408 "8300",33536 "8380",33664 "8400",33792 "8480",33920 "8500",34048 "8580",34176 "8600",34304 "8680",34432 "8700",34560 "8780",34688 "8800",34816 "8880",34944 "8900",35072 "8980",35200 "8a00",35328 "8a80",35456 "8b00",35584 "8b80",35712 "8c00",35840 "8c80",35968 "8d00",36096 "8d80",36224 "8e00",36352 "8e80",36480 "8f00",36608 "8f80",36736 "9000",36864 "9080",36992 "9100",37120 "9180",37248 "9200",37376 "9280",37504 "9300",37632 "9380",37760 "9400",37888 "9480",38016 "9500",38144 "9580",38272 "9600",38400 "9680",38528 "9700",38656 "9780",38784 "9800",38912 "9880",39040 "9900",39168 "9980",39296 "9a00",39424 "9a80",39552 "9b00",39680 "9b80",39808 "9c00",39936 "9c80",40064 "9d00",40192 "9d80",40320 "9e00",40448 "9e80",40576 "9f00",40704 "9f80",40832 "a000",40960 "a080",41088 "a100",41216 "a180",41344 "a200",41472 "a280",41600 "a300",41728 "a380",41856 "a400",41984 "a480",42112 "a500",42240 "a580",42368 "a600",42496 "a680",42624 "a700",42752 "a780",42880 "a800",43008 "a880",43136 "a900",43264 "a980",43392 "aa00",43520 "aa80",43648 "ab00",43776 "ab80",43904 "ac00",44032 "ac80",44160 "ad00",44288 "ad80",44416 "ae00",44544 "ae80",44672 "af00",44800 "af80",44928 "b000",45056 "b080",45184 "b100",45312 "b180",45440 "b200",45568 "b280",45696 "b300",45824 "b380",45952 "b400",46080 "b480",46208 "b500",46336 "b580",46464 "b600",46592 "b680",46720 "b700",46848 "b780",46976 "b800",47104 "b880",47232 "b900",47360 "b980",47488 "ba00",47616 "ba80",47744 "bb00",47872 "bb80",48000 "bc00",48128 "bc80",48256 "bd00",48384 "bd80",48512 "be00",48640 "be80",48768 "bf00",48896 "bf80",49024 "c000",49152 "c080",49280 "c100",49408 "c180",49536 "c200",49664 "c280",49792 "c300",49920 "c380",50048 "c400",50176 "c480",50304 "c500",50432 "c580",50560 "c600",50688 "c680",50816 "c700",50944 "c780",51072 "c800",51200 "c880",51328 "c900",51456 "c980",51584 "ca00",51712 "ca80",51840 "cb00",51968 "cb80",52096 "cc00",52224 "cc80",52352 "cd00",52480 "cd80",52608 "ce00",52736 "ce80",52864 "cf00",52992 "cf80",53120 "d000",53248 "d080",53376 "d100",53504 "d180",53632 "d200",53760 "d280",53888 "d300",54016 "d380",54144 "d400",54272 "d480",54400 "d500",54528 "d580",54656 "d600",54784 "d680",54912 "d700",55040 "d780",55168 "d800",55296 "d880",55424 "d900",55552 "d980",55680 "da00",55808 "da80",55936 "db00",56064 "db80",56192 "dc00",56320 "dc80",56448 "dd00",56576 "dd80",56704 "de00",56832 "de80",56960 "df00",57088 "df80",57216 "e000",57344 "e080",57472 "e100",57600 "e180",57728 "e200",57856 "e280",57984 "e300",58112 "e380",58240 "e400",58368 "e480",58496 "e500",58624 "e580",58752 "e600",58880 "e680",59008 "e700",59136 "e780",59264 "e800",59392 "e880",59520 "e900",59648 "e980",59776 "ea00",59904 "ea80",60032 "eb00",60160 "eb80",60288 "ec00",60416 "ec80",60544 "ed00",60672 "ed80",60800 "ee00",60928 "ee80",61056 "ef00",61184 "ef80",61312 "f000",61440 "f080",61568 "f100",61696 "f180",61824 "f200",61952 "f280",62080 "f300",62208 "f380",62336 "f400",62464 "f480",62592 "f500",62720 "f580",62848 "f600",62976 "f680",63104 "f700",63232 "f780",63360 "f800",63488 "f880",63616 "f900",63744 "f980",63872 "fa00",64000 "fa80",64128 "fb00",64256 "fb80",64384 "fc00",64512 "fc80",64640 "fd00",64768 "fd80",64896 "fe00",65024 "fe80",65152 "ff00",65280 "ff80",65408 [MDGPCIHS_LocChoices] "00",0 "01",1 "02",2 "03",3 "04",4 "05",5 "06",6 "07",7 "08",8 "09",9 "10",10 "11",11 "12",12 "13",13 "14",14 "15",15 "16",16 "17",17 "18",18 "19",19 "20",20 "21",21 "22",22 "23",23 "24",24 "25",25 "26",26 "27",27 "28",28 "29",29 "30",30 "31",31 [MDGPCIHS2_LocChoices] "00",0 "01",1 "02",2 "03",3 "04",4 "05",5 "06",6 "07",7 "08",8 "09",9 "10",10 "11",11 "12",12 "13",13 "14",14 "15",15 "16",16 "17",17 "18",18 "19",19 "20",20 "21",21 "22",22 "23",23 "24",24 "25",25 "26",26 "27",27 "28",28 "29",29 "30",30 "31",31 [OCTX3540_LocChoices] "00",0 "01",1 "02",2 "03",3 "04",4 "05",5 "06",6 "07",7 "08",8 "09",9 "10",10 "11",11 "12",12 "13",13 "14",14 "15",15 "16",16 "17",17 "18",18 "19",19 "20",20 "21",21 "22",22 "23",23 "24",24 "25",25 "26",26 "27",27 "28",28 "29",29 "30",30 "31",31 [OCTX3139_LocChoices] "00",0 "01",1 "02",2 "03",3 "04",4 "05",5 "06",6 "07",7 "08",8 "09",9 "10",10 "11",11 "12",12 "13",13 "14",14 "15",15 "16",16 "17",17 "18",18 "19",19 "20",20 "21",21 "22",22 "23",23 "24",24 "25",25 "26",26 "27",27 "28",28 "29",29 "30",30 "31",31 [OCTX3140_LocChoices] "00",0 "01",1 "02",2 "03",3 "04",4 "05",5 "06",6 "07",7 "08",8 "09",9 "10",10 "11",11 "12",12 "13",13 "14",14 "15",15 "16",16 "17",17 "18",18 "19",19 "20",20 "21",21 "22",22 "23",23 "24",24 "25",25 "26",26 "27",27 "28",28 "29",29 "30",30 "31",31 [OCTX3141_LocChoices] "00",0 "01",1 "02",2 "03",3 "04",4 "05",5 "06",6 "07",7 "08",8 "09",9 "10",10 "11",11 "12",12 "13",13 "14",14 "15",15 "16",16 "17",17 "18",18 "19",19 "20",20 "21",21 "22",22 "23",23 "24",24 "25",25 "26",26 "27",27 "28",28 "29",29 "30",30 "31",31 [OCTX3137_LocChoices] "00",0 "01",1 "02",2 "03",3 "04",4 "05",5 "06",6 "07",7 "08",8 "09",9 "10",10 "11",11 "12",12 "13",13 "14",14 "15",15 "16",16 "17",17 "18",18 "19",19 "20",20 "21",21 "22",22 "23",23 "24",24 "25",25 "26",26 "27",27 "28",28 "29",29 "30",30 "31",31 [OCTX3221_LocChoices] "0x0200",512 "0x0220",544 "0x0240",576 "0x0260",608 "0x0300",768 "0x0320",800 "0x0340",832 "0x0360",864 "0x0A00",2560 "0x0A20",2592 "0x0A40",2624 "0x0A60",2656 "0x0A80",2688 "0x0AC0",2752 "0x0B00",2816 "0x0B40",2880 "0x0B80",2944 [OCTX3250_LocChoices] "Automatic",0 "100",256 "180",384 "200",512 "280",640 "300",768 "380",896 "400",1024 "480",1152 "500",1280 "580",1408 "600",1536 "680",1664 "700",1792 "780",1920 "800",2048 "880",2176 "900",2304 "980",2432 "a00",2560 "a80",2688 "b00",2816 "b80",2944 "c00",3072 "c80",3200 "d00",3328 "d80",3456 "e00",3584 "e80",3712 "f00",3840 "f80",3968 "1000",4096 "1080",4224 "1100",4352 "1180",4480 "1200",4608 "1280",4736 "1300",4864 "1380",4992 "1400",5120 "1480",5248 "1500",5376 "1580",5504 "1600",5632 "1680",5760 "1700",5888 "1780",6016 "1800",6144 "1880",6272 "1900",6400 "1980",6528 "1a00",6656 "1a80",6784 "1b00",6912 "1b80",7040 "1c00",7168 "1c80",7296 "1d00",7424 "1d80",7552 "1e00",7680 "1e80",7808 "1f00",7936 "1f80",8064 "2000",8192 "2080",8320 "2100",8448 "2180",8576 "2200",8704 "2280",8832 "2300",8960 "2380",9088 "2400",9216 "2480",9344 "2500",9472 "2580",9600 "2600",9728 "2680",9856 "2700",9984 "2780",10112 "2800",10240 "2880",10368 "2900",10496 "2980",10624 "2a00",10752 "2a80",10880 "2b00",11008 "2b80",11136 "2c00",11264 "2c80",11392 "2d00",11520 "2d80",11648 "2e00",11776 "2e80",11904 "2f00",12032 "2f80",12160 "3000",12288 "3080",12416 "3100",12544 "3180",12672 "3200",12800 "3280",12928 "3300",13056 "3380",13184 "3400",13312 "3480",13440 "3500",13568 "3580",13696 "3600",13824 "3680",13952 "3700",14080 "3780",14208 "3800",14336 "3880",14464 "3900",14592 "3980",14720 "3a00",14848 "3a80",14976 "3b00",15104 "3b80",15232 "3c00",15360 "3c80",15488 "3d00",15616 "3d80",15744 "3e00",15872 "3e80",16000 "3f00",16128 "3f80",16256 "4000",16384 "4080",16512 "4100",16640 "4180",16768 "4200",16896 "4280",17024 "4300",17152 "4380",17280 "4400",17408 "4480",17536 "4500",17664 "4580",17792 "4600",17920 "4680",18048 "4700",18176 "4780",18304 "4800",18432 "4880",18560 "4900",18688 "4980",18816 "4a00",18944 "4a80",19072 "4b00",19200 "4b80",19328 "4c00",19456 "4c80",19584 "4d00",19712 "4d80",19840 "4e00",19968 "4e80",20096 "4f00",20224 "4f80",20352 "5000",20480 "5080",20608 "5100",20736 "5180",20864 "5200",20992 "5280",21120 "5300",21248 "5380",21376 "5400",21504 "5480",21632 "5500",21760 "5580",21888 "5600",22016 "5680",22144 "5700",22272 "5780",22400 "5800",22528 "5880",22656 "5900",22784 "5980",22912 "5a00",23040 "5a80",23168 "5b00",23296 "5b80",23424 "5c00",23552 "5c80",23680 "5d00",23808 "5d80",23936 "5e00",24064 "5e80",24192 "5f00",24320 "5f80",24448 "6000",24576 "6080",24704 "6100",24832 "6180",24960 "6200",25088 "6280",25216 "6300",25344 "6380",25472 "6400",25600 "6480",25728 "6500",25856 "6580",25984 "6600",26112 "6680",26240 "6700",26368 "6780",26496 "6800",26624 "6880",26752 "6900",26880 "6980",27008 "6a00",27136 "6a80",27264 "6b00",27392 "6b80",27520 "6c00",27648 "6c80",27776 "6d00",27904 "6d80",28032 "6e00",28160 "6e80",28288 "6f00",28416 "6f80",28544 "7000",28672 "7080",28800 "7100",28928 "7180",29056 "7200",29184 "7280",29312 "7300",29440 "7380",29568 "7400",29696 "7480",29824 "7500",29952 "7580",30080 "7600",30208 "7680",30336 "7700",30464 "7780",30592 "7800",30720 "7880",30848 "7900",30976 "7980",31104 "7a00",31232 "7a80",31360 "7b00",31488 "7b80",31616 "7c00",31744 "7c80",31872 "7d00",32000 "7d80",32128 "7e00",32256 "7e80",32384 "7f00",32512 "7f80",32640 "8000",32768 "8080",32896 "8100",33024 "8180",33152 "8200",33280 "8280",33408 "8300",33536 "8380",33664 "8400",33792 "8480",33920 "8500",34048 "8580",34176 "8600",34304 "8680",34432 "8700",34560 "8780",34688 "8800",34816 "8880",34944 "8900",35072 "8980",35200 "8a00",35328 "8a80",35456 "8b00",35584 "8b80",35712 "8c00",35840 "8c80",35968 "8d00",36096 "8d80",36224 "8e00",36352 "8e80",36480 "8f00",36608 "8f80",36736 "9000",36864 "9080",36992 "9100",37120 "9180",37248 "9200",37376 "9280",37504 "9300",37632 "9380",37760 "9400",37888 "9480",38016 "9500",38144 "9580",38272 "9600",38400 "9680",38528 "9700",38656 "9780",38784 "9800",38912 "9880",39040 "9900",39168 "9980",39296 "9a00",39424 "9a80",39552 "9b00",39680 "9b80",39808 "9c00",39936 "9c80",40064 "9d00",40192 "9d80",40320 "9e00",40448 "9e80",40576 "9f00",40704 "9f80",40832 "a000",40960 "a080",41088 "a100",41216 "a180",41344 "a200",41472 "a280",41600 "a300",41728 "a380",41856 "a400",41984 "a480",42112 "a500",42240 "a580",42368 "a600",42496 "a680",42624 "a700",42752 "a780",42880 "a800",43008 "a880",43136 "a900",43264 "a980",43392 "aa00",43520 "aa80",43648 "ab00",43776 "ab80",43904 "ac00",44032 "ac80",44160 "ad00",44288 "ad80",44416 "ae00",44544 "ae80",44672 "af00",44800 "af80",44928 "b000",45056 "b080",45184 "b100",45312 "b180",45440 "b200",45568 "b280",45696 "b300",45824 "b380",45952 "b400",46080 "b480",46208 "b500",46336 "b580",46464 "b600",46592 "b680",46720 "b700",46848 "b780",46976 "b800",47104 "b880",47232 "b900",47360 "b980",47488 "ba00",47616 "ba80",47744 "bb00",47872 "bb80",48000 "bc00",48128 "bc80",48256 "bd00",48384 "bd80",48512 "be00",48640 "be80",48768 "bf00",48896 "bf80",49024 "c000",49152 "c080",49280 "c100",49408 "c180",49536 "c200",49664 "c280",49792 "c300",49920 "c380",50048 "c400",50176 "c480",50304 "c500",50432 "c580",50560 "c600",50688 "c680",50816 "c700",50944 "c780",51072 "c800",51200 "c880",51328 "c900",51456 "c980",51584 "ca00",51712 "ca80",51840 "cb00",51968 "cb80",52096 "cc00",52224 "cc80",52352 "cd00",52480 "cd80",52608 "ce00",52736 "ce80",52864 "cf00",52992 "cf80",53120 "d000",53248 "d080",53376 "d100",53504 "d180",53632 "d200",53760 "d280",53888 "d300",54016 "d380",54144 "d400",54272 "d480",54400 "d500",54528 "d580",54656 "d600",54784 "d680",54912 "d700",55040 "d780",55168 "d800",55296 "d880",55424 "d900",55552 "d980",55680 "da00",55808 "da80",55936 "db00",56064 "db80",56192 "dc00",56320 "dc80",56448 "dd00",56576 "dd80",56704 "de00",56832 "de80",56960 "df00",57088 "df80",57216 "e000",57344 "e080",57472 "e100",57600 "e180",57728 "e200",57856 "e280",57984 "e300",58112 "e380",58240 "e400",58368 "e480",58496 "e500",58624 "e580",58752 "e600",58880 "e680",59008 "e700",59136 "e780",59264 "e800",59392 "e880",59520 "e900",59648 "e980",59776 "ea00",59904 "ea80",60032 "eb00",60160 "eb80",60288 "ec00",60416 "ec80",60544 "ed00",60672 "ed80",60800 "ee00",60928 "ee80",61056 "ef00",61184 "ef80",61312 "f000",61440 "f080",61568 "f100",61696 "f180",61824 "f200",61952 "f280",62080 "f300",62208 "f380",62336 "f400",62464 "f480",62592 "f500",62720 "f580",62848 "f600",62976 "f680",63104 "f700",63232 "f780",63360 "f800",63488 "f880",63616 "f900",63744 "f980",63872 "fa00",64000 "fa80",64128 "fb00",64256 "fb80",64384 "fc00",64512 "fc80",64640 "fd00",64768 "fd80",64896 "fe00",65024 "fe80",65152 "ff00",65280 "ff80",65408 ; ---------------------------------------------------------------------- ; Lists of user selectable interrupts. ; ---------------------------------------------------------------------- [MDGPCIBM2_IrqChoices] "Automatic",0 [MDGPCI3_IrqChoices] "Automatic",0 [MDGPRESTO_IrqChoices] "Automatic",0 [MDGPRESTO2_IrqChoices] "Automatic",0 [MDGPRESTO2000_IrqChoices] "Automatic",0 [MDGPCMCIA_IrqChoices] "1",1 "2",2 "3",3 "4",4 "5",5 "6",6 "7",7 "8",8 "9",9 "10",10 "11",11 "12",12 "13",13 "14",14 "15",15 [MDGCARDBUS_IrqChoices] "Automatic",0 "1",1 "2",2 "3",3 "4",4 "5",5 "6",6 "7",7 "8",8 "9",9 "10",10 "11",11 "12",12 "13",13 "14",14 "15",15 [MDGCARDBUS2_IrqChoices] "Automatic",0 "1",1 "2",2 "3",3 "4",4 "5",5 "6",6 "7",7 "8",8 "9",9 "10",10 "11",11 "12",12 "13",13 "14",14 "15",15 [MDGPCIHS_IrqChoices] "Automatic",0 [MDGPCIHS2_IrqChoices] "Automatic",0 [OCTX3540_IrqChoices] "Automatic",0 [OCTX3139_IrqChoices] "Automatic",0 [OCTX3140_IrqChoices] "Automatic",0 [OCTX3141_IrqChoices] "Automatic",0 [OCTX3137_IrqChoices] "Automatic",0 [OCTX3221_IrqChoices] "1",1 "2",2 "3",3 "4",4 "5",5 "6",6 "7",7 "8",8 "9",9 "10",10 "11",11 "12",12 "13",13 "14",14 "15",15 [OCTX3250_IrqChoices] "Automatic",0 "1",1 "2",2 "3",3 "4",4 "5",5 "6",6 "7",7 "8",8 "9",9 "10",10 "11",11 "12",12 "13",13 "14",14 "15",15 ; ---------------------------------------------------------------------- ; Lists of user selectable DMA channels. ; ---------------------------------------------------------------------- [MDGPCI3_DmaChoices] "Unused",0 [MDGPCIBM2_DmaChoices] "Unused",0 [MDGPRESTO_DmaChoices] "Unused",0 [MDGPRESTO2_DmaChoices] "Unused",0 [MDGPRESTO2000_DmaChoices] "Unused",0 [MDGPCMCIA_DmaChoices] "Unused",0 [MDGCARDBUS_DmaChoices] "Unused",0 [MDGCARDBUS2_DmaChoices] "Unused",0 [MDGPCIHS_DmaChoices] "Unused",0 [MDGPCIHS2_DmaChoices] "Unused",0 [OCTX3540_DmaChoices] "Unused",0 [OCTX3139_DmaChoices] "Unused",0 [OCTX3140_DmaChoices] "Unused",0 [OCTX3141_DmaChoices] "Unused",0 [OCTX3137_DmaChoices] "Unused",0 [OCTX3221_DmaChoices] "Unused",0 [OCTX3250_DmaChoices] "Unused",0 ; ---------------------------------------------------------------------- ; Lists of user selectable transfer modes. ; ---------------------------------------------------------------------- [MDGPCIBM2_TransferChoices] "Default",0 "16Bit PIO",1 [MDGPCI3_TransferChoices] "Default",0 [MDGPRESTO_TransferChoices] "Default",0 [MDGPRESTO2_TransferChoices] "Default",0 [MDGPRESTO2000_TransferChoices] "Default",0 [MDGPCMCIA_TransferChoices] "Default",0 "16Bit PIO",1 [MDGCARDBUS_TransferChoices] "Default",0 "16Bit PIO",1 [MDGCARDBUS2_TransferChoices] "Default",0 [MDGPCIHS_TransferChoices] "Default",0 [MDGPCIHS2_TransferChoices] "Default",0 [OCTX3540_TransferChoices] "Default",0 [OCTX3139_TransferChoices] "Default",0 [OCTX3140_TransferChoices] "Default",0 [OCTX3141_TransferChoices] "Default",0 [OCTX3137_TransferChoices] "Default",0 "16Bit PIO",1 [OCTX3221_TransferChoices] "Default",0 [OCTX3250_TransferChoices] "Default",0 ; ---------------------------------------------------------------------- ; Lists of user selectable transfer ring speeds. ; ---------------------------------------------------------------------- [MDGPCIBM2_SpeedChoices] "Set at adapter",1 "Force 4 MBit/s",2 "Force 16 MBit/s",3 [MDGPCI3_SpeedChoices] "Set at adapter",1 "Force 4 MBit/s",2 "Force 16 MBit/s",3 [MDGPRESTO_SpeedChoices] "Set at adapter",1 "Force 4 MBit/s",2 "Force 16 MBit/s",3 [MDGPRESTO2_SpeedChoices] "Set at adapter",1 "Force 4 MBit/s",2 "Force 16 MBit/s",3 [MDGPRESTO2000_SpeedChoices] "Set at adapter",1 "Force 4 MBit/s",2 "Force 16 MBit/s",3 [MDGCARDBUS_SpeedChoices] "Set at adapter",1 "Force 4 MBit/s",2 "Force 16 MBit/s",3 [MDGCARDBUS2_SpeedChoices] "Set at adapter",1 "Force 4 MBit/s",2 "Force 16 MBit/s",3 [MDGPCMCIA_SpeedChoices] "Set at adapter",1 "Force 4 MBit/s",2 "Force 16 MBit/s",3 [MDGPCIHS_SpeedChoices] "Set at adapter",1 "Force 4 MBit/s",2 "Force 16 MBit/s",3 "Force 100 MBit/s",4 [MDGPCIHS2_SpeedChoices] "Set at adapter",1 "Force 4 MBit/s",2 "Force 16 MBit/s",3 "Force 100 MBit/s",4 [OCTX3540_SpeedChoices] "Set at adapter",1 "Force 4 MBit/s",2 "Force 16 MBit/s",3 "Force 100 MBit/s",4 [OCTX3139_SpeedChoices] "Set at adapter",1 "Force 4 MBit/s",2 "Force 16 MBit/s",3 [OCTX3140_SpeedChoices] "Set at adapter",1 "Force 4 MBit/s",2 "Force 16 MBit/s",3 [OCTX3141_SpeedChoices] "Set at adapter",1 "Force 4 MBit/s",2 "Force 16 MBit/s",3 [OCTX3137_SpeedChoices] "Set at adapter",1 "Force 4 MBit/s",2 "Force 16 MBit/s",3 [OCTX3221_SpeedChoices] "Set at adapter",1 "Force 4 MBit/s",2 "Force 16 MBit/s",3 [OCTX3250_SpeedChoices] "Set at adapter",1 "Force 4 MBit/s",2 "Force 16 MBit/s",3 ; ---------------------------------------------------------------------- ; Lists of user selectable stats gathering modes. ; ---------------------------------------------------------------------- [MDGPCIBM2_StatsChoices] "Disabled",0 "Enabled",1 [MDGPCI3_StatsChoices] "Disabled",0 "Enabled",1 [MDGPRESTO_StatsChoices] "Not supported",0 [MDGPRESTO2_StatsChoices] "Not supported",0 [MDGPRESTO2000_StatsChoices] "Disabled",0 "Enabled",1 [MDGPCMCIA_StatsChoices] "Disabled",0 "Enabled",1 [MDGCARDBUS_StatsChoices] "Disabled",0 "Enabled",1 [MDGCARDBUS2_StatsChoices] "Disabled",0 "Enabled",1 [MDGPCIHS_StatsChoices] "Disabled",0 "Enabled",1 [MDGPCIHS2_StatsChoices] "Disabled",0 "Enabled",1 [OCTX3540_StatsChoices] "Disabled",0 "Enabled",1 [OCTX3139_StatsChoices] "Disabled",0 "Enabled",1 [OCTX3140_StatsChoices] "Disabled",0 "Enabled",1 [OCTX3141_StatsChoices] "Disabled",0 "Enabled",1 [OCTX3137_StatsChoices] "Disabled",0 "Enabled",1 [OCTX3221_StatsChoices] "Disabled",0 "Enabled",1 [OCTX3250_StatsChoices] "Disabled",0 "Enabled",1 ; ---------------------------------------------------------------------- ; Lists of user selectable Wake-On-LAN modes. ; ---------------------------------------------------------------------- [MDGPCIBM2_WolChoices] "Not supported",0 [MDGPCI3_WolChoices] "Disabled",0 "Enabled",1 "Enabled/PME",2 [MDGPRESTO_WolChoices] "Not supported",0 [MDGPRESTO2_WolChoices] "Not supported",0 [MDGPRESTO2000_WolChoices] "Disabled",0 "Enabled",1 "Enabled/PME",2 [MDGPCMCIA_WolChoices] "Not supported",0 [MDGCARDBUS_WolChoices] "Not supported",0 [MDGCARDBUS2_WolChoices] "Not supported",0 [MDGPCIHS_WolChoices] "Disabled",0 "Enabled",1 "Enabled/PME",2 [MDGPCIHS2_WolChoices] "Disabled",0 "Enabled",1 "Enabled/PME",2 [OCTX3540_WolChoices] "Disabled",0 "Enabled",1 "Enabled/PME",2 [OCTX3139_WolChoices] "Disabled",0 "Enabled",1 "Enabled/PME",2 [OCTX3140_WolChoices] "Disabled",0 "Enabled",1 "Enabled/PME",2 [OCTX3141_WolChoices] "Disabled",0 "Enabled",1 "Enabled/PME",2 [OCTX3137_WolChoices] "Not supported",0 [OCTX3221_WolChoices] "Not supported",0 [OCTX3250_WolChoices] "Not supported",0 ; --------------------------------------------------------------------- ; Lists for parameters that are not adapter type dependant. ; --------------------------------------------------------------------- [SlotsChoices] "Default",0 "01",1 "02",2 "03",3 "04",4 "06",6 "08",8 "10",10 "12",12 "14",14 "16",16 "18",18 "20",20 "22",22 "24",24 "26",26 "28",28 "30",30 "32",32 "48",48 "64",64 [SwitchChoices] "Disabled",0 "Enabled",1 [QuietChoices] "Disabled",0 "Enabled",1 "Enabled (reconnect)",2 [MacOpenChoices] "Force Classic",1 "Force Full Duplex",2 "Default",3 [WatchdogChoices] "Disabled",0 "05 seconds",5 "10 seconds",10 "15 seconds",15 "20 seconds",20 "30 seconds",30 "45 seconds",45 "60 seconds",60 [DisabledOnlyChoices] "Disabled",0 [SlaveSlotNumberChoices] "Mirroring Disabled",0 "1",1 "2",2 "3",3 "4",4 "5",5 "6",6 "7",7 "8",8 "9",9 "10",10 "11",11 "12",12 "13",13 "14",14 "15",15 "16",16 "17",17 "18",18 "19",19 "20",20 "21",21 "22",22 "23",23 "24",24 "25",25 "26",26 "27",27 "28",28 "29",29 "30",30 "31",31 [BeaconTimeoutChoices] "Disabled",0 "2 seconds",2 "3 seconds",3 "4 seconds",4 "5 seconds",5 "6 seconds",6 "7 seconds",7 "8 seconds",8 "9 seconds",9 "10 seconds",10 [SingleStationTimeoutChoices] "Disabled",0 "2 seconds",2 "3 seconds",3 "4 seconds",4 "5 seconds",5 "6 seconds",6 "7 seconds",7 "8 seconds",8 "9 seconds",9 "10 seconds",10 "15 seconds",15 "20 seconds",20 "30 seconds",30 "45 seconds",45 "60 seconds",60 [PcmciaMemWinChoices] "0xD0000", 851968 "0xD2000", 860160 "0xD4000", 868352 "0xD6000", 876544 "0xD8000", 884736 "0xDA000", 892928 "0xDC000", 901120 "0xDE000", 909312 "0xC0000", 786432 "0xC2000", 794624 "0xC4000", 802816 "0xC6000", 811008 "0xC8000", 819200 "0xCA000", 827392 "0xCC000", 835584 "0xCE000", 843776 ; ---------------------------------------------------------------------- ; Constants used in the mapping of LSS5 drivers to LSS6 drivers ; ---------------------------------------------------------------------- [MappingConstants] ; ; Adapter Name Map. ; MAP_MDGMPATP = "MDGATP" MAP_MDGMPATPE = "MDGATPNP" MAP_MDGMPISACP = "MDGISACP" MAP_MDGMPEISA = "MDGEISA" MAP_MDGMPPNP = "MDGISACPNP" MAP_MDGMPPCI = "MDGPCI1B" MAP_MDGMPPCIBM = "MDGPCIBM2" MAP_MDGMPPCMCIA = "MDGPCMCIA" ; ; UDT Constants - refer to the UDT defs.h for more details. ; UDT_TX_MODE_DEFAULT = "0" UDT_TX_MODE_PIO_16 = "1" UDT_TX_MODE_PIO_32 = "2" ; Not supported UDT_TX_MODE_MMIO = "3" ; Not supported UDT_TX_MODE_MASTER = "4" ; Not supported UDT_TX_MODE_SRAM = "5" ; Not supported UDT_RS_UNKNOWN = "0" UDT_RS_ADAPTER = "1" UDT_RS_4M = "2" UDT_RS_16M = "3" UDT_MAC_OPEN_CLASSIC = "1" UDT_MAC_OPEN_DTR = "2" UDT_MAC_OPEN_DEF = "3" ; ; Transfer Method Map ; ; ; The fields relate to Default ;-------------------------------------------------------------------------------------------------------------------------- ; AdapterType | PIO | DMA | MMIO | Force 16-bit PIO | ;-------------------------------------------------------------------------------------------------------------------------- ; MapXferMethod_MDGATP = {$(UDT_TX_MODE_DEFAULT), $(UDT_TX_MODE_DEFAULT), $(UDT_TX_MODE_DEFAULT), $(UDT_TX_MODE_PIO_16)} MapXferMethod_MDGATPNP = {$(UDT_TX_MODE_DEFAULT), $(UDT_TX_MODE_DEFAULT), $(UDT_TX_MODE_DEFAULT), $(UDT_TX_MODE_PIO_16)} MapXferMethod_MDGISACP = {$(UDT_TX_MODE_DEFAULT), $(UDT_TX_MODE_DEFAULT), $(UDT_TX_MODE_DEFAULT), $(UDT_TX_MODE_DEFAULT)} MapXferMethod_MDGEISA = {$(UDT_TX_MODE_DEFAULT), $(UDT_TX_MODE_DEFAULT), $(UDT_TX_MODE_DEFAULT), $(UDT_TX_MODE_DEFAULT)} MapXferMethod_MDGISACPNP= {$(UDT_TX_MODE_DEFAULT), $(UDT_TX_MODE_DEFAULT), $(UDT_TX_MODE_DEFAULT), $(UDT_TX_MODE_PIO_16)} MapXferMethod_MDGPCI1B = {$(UDT_TX_MODE_DEFAULT), $(UDT_TX_MODE_DEFAULT), $(UDT_TX_MODE_DEFAULT), $(UDT_TX_MODE_DEFAULT)} MapXferMethod_MDGPCIBM1 = {$(UDT_TX_MODE_DEFAULT), $(UDT_TX_MODE_DEFAULT), $(UDT_TX_MODE_DEFAULT), $(UDT_TX_MODE_DEFAULT)} MapXferMethod_MDGPCIBM2 = {$(UDT_TX_MODE_DEFAULT), $(UDT_TX_MODE_DEFAULT), $(UDT_TX_MODE_DEFAULT), $(UDT_TX_MODE_PIO_16)} MapXferMethod_MDGPCMCIA = {$(UDT_TX_MODE_DEFAULT), $(UDT_TX_MODE_DEFAULT), $(UDT_TX_MODE_DEFAULT), $(UDT_TX_MODE_PIO_16)} ; ---------------------------------------------------------------------- ; Constants specific to the driver. ; ---------------------------------------------------------------------- [FileConstants] ; ; File names, etc. ; DialogDllName = "MDRVWIN.DLL" DetectDllName = "MDGNCDET.DLL" SoftwareType = "driver" Exit_Code = 0 ; ; Product Information. ; Manufacturer = "Madge" ProductMajorVersion = "6" ProductMinorVersion = "06" ProductVersion = $(ProductMajorVersion)"."$(ProductMinorVersion) VersionString = "6.06 LSS 7.1(0)" ; ; Software information. ; ProductSoftwareName = "MDGNDIS4" ProductSoftwareImagePath = "%SystemRoot%\system32\drivers\"$(ProductSoftwareName)".sys" NetRuleSoftwareType = "mdgtrSys ndisDriver mdgtrDriver" NetRuleSoftwareUse = $(SoftwareType) NetRuleSoftwareBindForm = """mdgtrSys"" yes no container" NetRuleSoftwareClass = {"mdgtrDriver basic"} NetRuleSoftwareBindable = {"mdgtrDriver mdgtrAdapter non exclusive 100"} ; ; Hardware information. ; ProductHardwareName = "MDGNDIS4" NetRuleHardwareType = "mdgtr mdgtrAdapter" NetRuleHardwareBindForm = " yes yes container" NetRuleHardwareClass = {"mdgtrAdapter basic"} ; ; Registry Key. ; ProductKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductSoftwareName)"\CurrentVersion" ParamKeyName = $(!NTN_ServiceBase)"\"$(ProductHardwareName)"\Parameters" CardbusDatabase = "System\CurrentControlSet\Services\PCMCIA\Database\MADGE" PcmciaDatabase = "System\CurrentControlSet\Services\PCMCIA\Database\MADGE\Smart 16/4 PCMCIA Ringnode" CBDatabase = "System\CurrentControlSet\Services\PCMCIA\Database\MADGE\16/4 CARDBUS ADAPTER" CB2Database = "System\CurrentControlSet\Services\PCMCIA\Database\MADGE\CARDBUS ADAPTER MK 2" FixedDatabase = "System\ControlSet001\Services\PCMCIA\Database\MADGE\Smart 16/4 PCMCIA Ringnode" OlicomPcmciaDatabase = "System\CurrentControlSet\Services\PCMCIA\Database\OLICOM" OCTX3221Database = "System\CurrentControlSet\Services\PCMCIA\Database\OLICOM\TR 16/4 II" OCTX3221DatabaseLast = "TR 16/4 II" OCTX3250Database = "System\CurrentControlSet\Services\PCMCIA\Database\OLICOM\GoCard 3250 Token-Ring CardBus PC Card" OCTX3250DatabaseLast = "GoCard 3250 Token-Ring CardBus PC Card" CompaqHotPlugKey= $(!NTN_SoftwareBase)"\Compaq\Cpqrcmc\ClassDLLs\NicMiniPort" AwardKey = $(!NTN_SoftwareBase)"\Award Software\CardWare" SystemSoftKey = $(!NTN_SoftwareBase)"\SystemSoft\CardWizard for Windows NT" SoftexKey1 = $(!NTN_ServiceBase)"\CardS" SoftexKey2 = $(!NTN_ServiceBase)"\Enabler" ; ; EventLog Message File. ; MadgeEventLogFile = $(ProductSoftwareImagePath) ; ; Hot Plug PCI constants. ; These values must correspond to those defined within the driver. ; BaseOIDAddress = 4278322176 ; 0xff020400 SetOIDAddress = 4278321933 ; 0xff02030d ; ; Default values for some registry parameters. ; DEF_MAX_FRAME_SIZE = 4216 DEF_TX_SLOTS = 0 DEF_RX_SLOTS = 0 DEF_DMA_CHANNEL = 0 DEF_IRQ_NUMBER = 0 DEF_TRANSFER_TYPE = 0 DEF_INTERRUPT_NUMBER = 0 DEF_MAC_OPEN_MODE = 3 DEF_TEST_XID = 1 DEF_STATS_GATHERING = 0 DEF_QUIET_MODE = 0 DEF_RING_STATUS_MASK = 7520 ; 0x1d60 DEF_EVENT_LOG_MASK = 28 ; 0x001c DEF_WATCHDOG = 20 DEF_SPEED = 1 DEF_WOL = 0 DEF_SLAVE_SLOT_NUMBER = 0 DEF_BEACON_TIMEOUT = 0 DEF_SINGLE_TIMEOUT = 0 DEF_CARDBUS_IO_LOCATION = 33024 ; 0x8100 DEF_PCMCIAMEMWIN = 0 DEF_PCMCIAMEMWINLEN = 0 ; ; Adapter types. ; AdapterTypeFlagMDGPCI3 = 11 AdapterTypeFlagMDGPCIBM2 = 10 AdapterTypeFlagMDGPRESTO = 11 AdapterTypeFlagMDGPRESTO2 = 11 AdapterTypeFlagMDGPRESTO2000 = 11 AdapterTypeFlagMDGPCMCIA = 7 AdapterTypeFlagMDGCARDBUS = 12 AdapterTypeFlagMDGCARDBUS2 = 17 AdapterTypeFlagMDGPCIHS = 11 AdapterTypeFlagMDGPCIHS2 = 11 AdapterTypeFlagOCTX3540 = 212 AdapterTypeFlagOCTX3139 = 211 AdapterTypeFlagOCTX3140 = 211 AdapterTypeFlagOCTX3141 = 211 AdapterTypeFlagOCTX3137 = 210 AdapterTypeFlagOCTX3221 = 217 AdapterTypeFlagOCTX3250 = 218 ; ; Adapter classification lists. ; MadgeAdapterOptions = ^(Options,1) SlotNumberAdapters = ^(SlotNumberOnlyOptions,1) CardbusAdapters = ^(CardbusOptions,1) OlicomPcmciaAdapters = ^(OlicomPcmciaOptions,1) OlicomHebeAdapters = ^(OlicomHebeOptions,1) PcmciaAdapters = ^(PcmciaOptions,1) MirroringAdapters = ^(MirroringOptions,1) ; --------------------------------------------------------------------- ; General constants. ; --------------------------------------------------------------------- [GeneralConstants] ; ; File names, etc. ; UtilityInf = "UTILITY.INF" SubroutineInf = "SUBROUTN.INF" ParamInf = "NCPARAM.INF" ; ; Program flow control variables. ; From = "" To = "" ; ; Return codes; Exit_Code is set to one of these ; ExitCodeOk = 0 ExitCodeCancel = 1 ExitCodeFatal = 2 ; ; Miscellaneous. ; MAXIMUM_ALLOWED = 33554432 RegistryErrorIndex = NO_ERROR KeyNull = "" KeyProduct = "" KeyParameters = "" TRUE = 1 FALSE = 0 NoTitle = 0 ExitState = "Active" OldVersionExisted = $(FALSE) AwardCB = $(FALSE) SSoftCB = $(FALSE) SoftexCB = $(FALSE) MadgeCB = $(FALSE) DriverPath = $(!STF_NTPATH)\drivers ; ; Resource values returned by the detection DLL, so do not change them. ; VALUE_UNKNOWN = 65535 ; ---------------------------------------------------------------------- ; Language dependent messages for the upgrade section ; ---------------------------------------------------------------------- [UpgradeMessagesENG] UPD_SUCCESS = "The upgrade was successful." UPD_STARTED = "The upgrade processes has been started" UPD_TOO_MANY_UNKNOWN_SLOTS = "The upgrade has been halted because it is not possible to resolve the slot numbers of all the PCI cards in the machine. Go to the cards' properties to resolve this problem and try again." UPD_TOO_MANY_PCIS_WITH_AN_UNKNOWN = "The upgrade has been halted because there is a PCI card in this machine that has an unknown slot number. Go to the card's properties to resolve this problem and try again." UPD_GET_INF_NAME_FAILED = "The upgrade fialed because the install file failed to determine the name of the install file." UPD_INSTALL_FAILED = "This installation failed to update the driver files. Check that all the files are present on the installation disk." UPD_PREP_DETECTION_DLL_FAILED = "The setup failed to initialise the detection library." UPD_OPEN_SOFTWARE_KEY_FAILED = "You can't upgrade to this driver since it has a different name to the installed driver. You must remove the old driver, reboot, then add the new driver." UPD_FAILED_TO_DETERMINE_CARD_TYPE = "The upgrade failed because the card type was not recognised." UPD_OPTION_NOT_SUPPORTED = "This OEMSETUP file does not support this card." UPD_UNSUPPORTED_CARD_FOUND = "It is not possible to upgrade this machine because a network adapter that requires the existing driver was detected in this machine." UPD_DOWNGRADING_ERROR = "It is not possible to downgrade the driver. To achieve this you must manually remove this driver and install the previous one." ; ---------------------------------------------------------------------- ; Language dependent constants specific to the driver. ; ---------------------------------------------------------------------- [FileConstantsENG] ; ; Product Info ; FunctionTitle = "MDGNDIS4 v"$(VersionString)": Madge Token Ring Adapter Setup" ; ; Software. ; ProductSoftwareTitle = "MDGNDIS4" ProductSoftwareDescription = "MDGNDIS4: Madge Token Ring Adapter Miniport Driver" ProductHardwareMDGPCIBM2 = "Madge Smart 16/4 PCI Ringnode Mk2" ProductHardwareMDGPCI3 = "Madge Smart 16/4 PCI Ringnode Mk3" ProductHardwareMDGPCMCIA = "Madge Smart 16/4 PCMCIA Ringnode" ProductHardwareMDGCARDBUS = "Madge 16/4 CardBus Adapter" ProductHardwareMDGCARDBUS2 = "Madge 16/4 CardBus Adapter Mk2" ProductHardwareMDGPRESTO = "Madge Presto PCI" ProductHardwareMDGPRESTO2 = "Madge Presto PCI Plus" ProductHardwareMDGPRESTO2000 = "Madge Presto PCI 2000" ProductHardwareMDGPCIHS = "Madge Smart 100/16/4 PCI-HS Ringnode" ProductHardwareMDGPCIHS2 = "Madge Smart 100/16/4 PCI Ringnode" ProductHardwareOCTX3540 = "Olicom RF-3540 HSTR 100/16/4 PCI Adapter" ProductHardwareOCTX3139 = "Olicom RF-3139 Token-Ring 16/4 PCI Adapter" ProductHardwareOCTX3140 = "Olicom RF-3140 Token-Ring 16/4 PCI Adapter" ProductHardwareOCTX3141 = "Olicom RF-3141 Token-Ring 16/4 PCI Fiber Adapter" ProductHardwareOCTX3137 = "Olicom PCI/II 16/4 Adapter (OC-3137)" ProductHardwareOCTX3221 = "Olicom GoCard Token-Ring PC Card (OC-3221)" ProductHardwareOCTX3250 = "Olicom GC-3250 16/4 CardBus PC Card" ; ; Messages. ; CANNOT_FIND_ANY_CARD = "No Madge adapters were detected that are not already installed. "+ "If you are installing a CardBus adapter, the Madge Automated "+ "Installation will not detect it and should not be used." TRIMMED_MFS = "WARNING: The maximum frame size specified is greater than "+ "the 17839 allowed on a 100/16Mbps ring. The frame size has been "+ "automatically reduced to 17839. On a 4Mbps ring the maximum "+ "frame size is 4472. If a larger maximum frame size is "+ "specified it will be automatically reduced and a message "+ "placed in the event log." INVALID_MFS = "WARNING: The maximum frame size specified is smaller than the "+ "recommended minimum for a token ring card (256 bytes) and has been "+ "increased to that value." INVALID_RING_STAT = "WARNING: An invalid Ring Status Mask has been chosen. The "+ "mask should be in the range 0x0 - 0x3FFF and has been set to "+ "the default value 0x1D60." NON_AUTO_INSTALL = "You have selected a manual installation and must set the "+ "correct IO location/Slot Number/PCI Device ID for the adapter "+ "in the advanced dialog box. If you do not know this information "+ "cancel this install and add the card using the 'Automated Installation'." SET_LAA_FOR_MIRRORING = "A Locally Administered Node Address (LAA) must be specified "+ "when using Mirroring. Please enter an LAA into the dialog box." MASTER_AND_SLAVE_CLASH = "The same value has been selected for both Master and Slave PCI "+ "Device IDs. Please change one of these values in the Advanced "+ "dialog box." MADGE_INTERNAL_SOLN = "The internal Madge CardBus enabler will be used since NT4.0 has "+ "no native support for CardBus adapters and there is no "+ "third-party NT4.0 CardBus solution installed on this system. "+ "The resources assigned to the CardBus adapter can be modified "+ "using the Advanced Properties dialog. If you do not wish to "+ "use the internal enabler select Cancel now." AWARD_SOLN = "Award CardWare has been detected on this system and will be used to "+ "enable the CardBus adapter. No user configuration is required. "+ "If you do not wish to use Award CardWare select Cancel now." SSOFT_SOLN = "SystemSoft CardWizard has been detected on this system and will be used to "+ "enable the CardBus adapter. No user configuration is required. "+ "If you do not wish to use SystemSoft CardWizard select Cancel now." SOFTEX_SOLN = "Softex PC Card Controller has been detected on this system and will be used to "+ "enable the CardBus adapter. No user configuration is required. "+ "If you do not wish to use Softex PC Card Controller select Cancel now." ShellCodeErrorTitle = "Error: "$(FunctionTitle) ShellCodeErrorText = "Shell Code Error" ProCaption = "Windows NT Setup" ProCancel = "Cancel" ProCancelMsg = "Windows NT Networking is not correctly installed. "+ "Are you sure you want to cancel copying files?" ProCancelCap = "Network Setup Message" ProText1 = "Copying:" ProText2 = "To:" ; --------------------------------------------------------------------- ; Adapter specific constants. ; --------------------------------------------------------------------- [AdapterConstants] LocList = ^($(AdapOption)_LocChoices, 1) LocRawList = ^($(AdapOption)_LocChoices, 2) IrqList = ^($(AdapOption)_IrqChoices, 1) IrqRawList = ^($(AdapOption)_IrqChoices, 2) DmaList = ^($(AdapOption)_DmaChoices, 1) DmaRawList = ^($(AdapOption)_DmaChoices, 2) TxList = ^(SlotsChoices, 1) TxRawList = ^(SlotsChoices, 2) RxList = ^(SlotsChoices, 1) RxRawList = ^(SlotsChoices, 2) TransferList = ^($(AdapOption)_TransferChoices, 1) TransferRawList = ^($(AdapOption)_TransferChoices, 2) TestXIDList = ^(SwitchChoices, 1) TestXIDRawList = ^(SwitchChoices, 2) MacOpenList = ^(MacOpenChoices, 1) MacOpenRawList = ^(MacOpenChoices, 2) StatsList = ^($(AdapOption)_StatsChoices, 1) StatsRawList = ^($(AdapOption)_StatsChoices, 2) WolList = ^($(AdapOption)_WolChoices, 1) WolRawList = ^($(AdapOption)_WolChoices, 2) QuietList = ^(QuietChoices, 1) QuietRawList = ^(QuietChoices, 2) SpeedList = ^($(AdapOption)_SpeedChoices, 1) SpeedRawList = ^($(AdapOption)_SpeedChoices, 2) WatchdogList = ^(WatchdogChoices, 1) WatchdogRawList = ^(WatchdogChoices, 2) DisabledOnlyList = ^(DisabledOnlyChoices, 1) DisabledOnlyRawList = ^(DisabledOnlyChoices, 2) SlaveSlotList = ^(SlaveSlotNumberChoices,1) SlaveSlotRawList = ^(SlaveSlotNumberChoices,2) BeaconList = ^(BeaconTimeoutChoices,1) BeaconRawList = ^(BeaconTimeoutChoices,2) SingleStationList = ^(SingleStationTimeoutChoices,1) SingleStationRawList = ^(SingleStationTimeoutChoices,2) PcmciaMemWinList = ^(PcmciaMemWinChoices,1) PcmciaMemWinRawList = ^(PcmciaMemWinChoices,2) ; --------------------------------------------------------------------- ; Language dependant general dialog constants. ; --------------------------------------------------------------------- [DialogConstantsENG] ; ; Common button names, etc. ; Help = "&Help" Exit = "&Cancel" OK = "O&K" Continue = "C&ontinue" Cancel = "C&ancel" Advanced = "Ad&vanced" Configure = "Configure..." HelpContext = "" [date] ; Now is a list which contains { Sec from 1-1-1970, Year, Month, Day, Hour, ; Minute, Second } Now = {} ? $(!LIBHANDLE) GetSystemDate ; ----------------------------------------------------------------------- ; Dialog constants for basic installation. ; ----------------------------------------------------------------------- [FileDependentDlgENGOptionMDG] DlgType = "RadioCombination" Caption = $(FunctionTitle) WarningText = "Consult the help before changing any of these parameters." CurrentValueText = "Current Value" Combo1Label = "I/O Location:" Combo2Label = "Ring Speed:" Combo3Label = "Please choose a Madge adapter to install" Combo4Label = "Interrupt Number:" Combo5Label = "DMA Channel:" Combo6Label = "Tx Slots:" Combo7Label = "Rx Slots:" Combo8Label = "Transfer Type:" Combo9Label = "Respond to TEST/XID:" Combo10Label = "Mac Open Mode:" Combo11Label = "Promiscuous Mode:" Combo12Label = "Quiet Mode:" Combo13Label = "Watchdog Timer:" Combo14Label = "Wake-On-LAN:" Combo18Label = "Priority:" Combo15Label = "Slave PCI Device Number:" Combo16Label = "Ring Beacon Timeout:" Combo17Label = "Single Station Timeout:" SlaveEnabledTitle = "Mirror Slave Adapter (Enabled)" SlaveDisabledTitle = "Mirror Slave Adapter (Disabled)" MirroringDisabledText = "To enable Mirroring, choose a slave adapter from the Slave PCI Device ID list below:" MirroringEnabledText = "To disable Mirroring, choose 'Mirroring Disabled' from the Slave PCI Device ID list below:" NoSuitableSlavesText = "Mirroring cannot be enabled since no suitable slave adapters are available." EisaCombo1Label = "Slot Number:" PciCombo1Label = "PCI Device Number:" OlicomPcmciaCombo14Label = "Memory Window:" Combo1List = $(LocList) Combo1Out = $(IoLocation) Combo2List = $(SpeedList) Combo2Out = $(SpeedFlag) Combo3List = $(AdapterDescList) Combo3Out = $(AdapterType) Combo4List = $(IrqList) Combo4Out = $(IrqNumber) Combo5List = $(DmaList) Combo5Out = $(DmaChannel) Combo6List = $(TxList) Combo6Out = $(TxSlots) Combo7List = $(RxList) Combo7Out = $(RxSlots) Combo8List = $(TransferList) Combo8Out = $(TransferType) Combo9List = $(TestXIDList) Combo9Out = $(TestXID) Combo10List = $(MacOpenList) Combo10Out = $(MacOpenMode) Combo11List = $(StatsList) Combo11Out = $(StatsGathering) Combo12List = $(QuietList) Combo12Out = $(QuietMode) Combo13List = $(WatchdogList) Combo13Out = $(Watchdog) Combo14List = $(WolList) Combo14Out = $(Wol) Combo14OlicomPcmciaList = $(PcmciaMemWinList) Combo14OlicomPcmciaOut = $(PcmciaMemWin) Combo15List = $(AllowedSlaveSlotList) Combo15Out = $(SlaveSlotNumber) Combo16List = $(BeaconList) Combo16Out = $(BeaconTimeout) Combo17List = $(SingleStationList) Combo17Out = $(SingleStationTimeout) ComboListItemsIn = {Combo1List, Combo2List, Combo3List, Combo4List, Combo5List, Combo6List, Combo7List, Combo8List, Combo9List, Combo10List, Combo11List, Combo12List, Combo13List, Combo14List, Combo15List, Combo16List, Combo17List} ComboListItemsOut = {Combo1Out, Combo2Out, Combo3Out, Combo4Out, Combo5Out, Combo6Out, Combo7Out, Combo8Out, Combo9Out, Combo10Out, Combo11Out, Combo12Out, Combo13Out, Combo14Out, Combo15Out, Combo16Out, Combo17Out} Edit1Label = "Maximum Frame Size:" Edit2Label = "Ring Status Mask:" Edit3Label = "Token Ring Event Mask:" LAAPrompt = "LAA :" EditTextIn = {$(L1), $(L2), $(L3), $(L4), $(L5), $(L6), $(MaxFrameSize), $(RingStatus), $(EventLog)} EditTextLim = {2, 2, 2, 2, 2, 2, 5, 5, 5} EditTextOut = {$(L1), $(L2), $(L3), $(L4), $(L5), $(L6), $(MaxFrameSize), $(RingStatus), $(EventLog)} CBOptionsGreyed = {} NotifyFields = {NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO} AdapterTitle = #(OptionsText$(!STF_LANGUAGE),$(Option),1) ;--------------------------------------------------------------------------- ; Identify the INF file to NT. ; ; DESCRIPTION: To verify that this INF deals with the same type of options ; as we are choosing currently. ; ; INPUT: None ; ; OUTPUT: $($R0): STATUS: STATUS_SUCCESSFUL ; $($R1): Option Type (COMPUTER ...) ; $($R2): Diskette description ;--------------------------------------------------------------------------- [Identify] read-syms Identification set Status = STATUS_SUCCESSFUL set Identifier = $(OptionType) set Media = #("Source Media Descriptions", 1, 1) return $(Status) $(Identifier) $(Media) ;------------------------------------------------------------------------ ; Return the options supported by this INF file. ; ; DESCRIPTION: To return the option list supported by this INF and the ; localised text list representing the options. ; ; ; INPUT: $($0): Language used. ( ENG | FRN | ... ) ; ; OUTPUT: $($R0): STATUS: STATUS_SUCCESSFUL | ; STATUS_NOLANGUAGE ; STATUS_FAILED ; STATUS_NOTSUPPORTED ; ; $($R1): Option List ; $($R2): Option Text List ;------------------------------------------------------------------------ [ReturnOptions] set Status = STATUS_FAILED set OptionList = {} set OptionTextList = {} ; ; Check if the language requested is supported. ; set LanguageList = ^(LanguagesSupported, 1) ifcontains(i) $($0) in $(LanguageList) ; ; ; Check if the platforms requested is supported ; ifstr(i) $($1) == "" ; goto Return_Options ; endif set PlatformList = ^(PlatformsSupported, 1) ifcontains(i) $($1) in $(PlatformList) ; goto Return_Options ; else ; set Status = STATUS_NOTSUPPORTED goto Finish_ReturnOptions ; endif ; else ; set Status = STATUS_NOLANGUAGE goto Finish_ReturnOptions ; endif ; ; form a list of all the options and another of the text representing ; Return_Options = + set OptionList = ^(Options, 1) set OptionTextList = ^(OptionsText$($0), 1) set Status = STATUS_SUCCESSFUL Finish_ReturnOptions = + return $(Status) $(OptionList) $(OptionTextList) ;---------------------------------------------------------------------------- ; Prepare an adapter detection DLL for use. ;---------------------------------------------------------------------------- [PrepareDetectionDll] set NewDllName = $($0) set Status = STATUS_FAILED read-syms GeneralConstants set DllValueName = "NetcardDlls" OpenRegKey $(!REG_H_LOCAL) "" "System\Setup" $(MAXIMUM_ALLOWED) KeySetup ifstr(i) $(KeySetup) == $(KeyNull) ; goto PDD_Return ; endif set DllFound = 0 GetRegValue $(KeySetup) $(DllValueName) DllNamesValue ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) ; goto PDD_Return ; endif set DllNames = *($(DllNamesValue),4) ForListDo $(DllNames) ; ifstr(i) $($) == $(NewDllName) ; set DllFound = 1 ; endif ; EndForListDo ifint $(DllFound) == 0 ; set DllNames = >($(DllNames),$(NewDllName)) set ValueInfo = {$(DllValueName), $(NoTitle), $(!REG_VT_MULTI_SZ), $(DllNames)} SetRegValue $(KeySetup) $(ValueInfo) ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) ; Set Status = STATUS_SUCCESSFUL ; endif ; else ; set Status = STATUS_SUCCESSFUL ; endif CloseRegKey $(KeySetup) PDD_Return = + return $(Status) ;------------------------------------------------------------------------ ; InstallOption: ; ; This section is shelled to by main installation processing ; or by NCPASHEL.INF during reconfig, removal, update, etc. ; ; ; FUNCTION: To copy files representing Options ; To configure the installed option ; To update the registry for the installed option ; ; INPUT: $($0): Language to use ; $($1): OptionID to install ; $($2): SourceDirectory ; $($3): AddCopy (YES | NO) ; $($4): DoCopy (YES | NO) ; $($5): DoConfig (YES | NO) ; ; OUTPUT: $($R0): STATUS: STATUS_SUCCESSFUL | ; STATUS_NOLANGUAGE | ; STATUS_USERCANCEL | ; STATUS_FAILED ;------------------------------------------------------------------------ [InstallOption] StartWait ; ; Un-comment for debugging. ; ; set !DebugOutputControl = 1 ; ; Set default values. ; set Status = STATUS_FAILED set NumberFound = 0 ; ; extract parameters ; set Option = $($1) set SrcDir = $($2) set AddCopy = $($3) set DoCopy = $($4) set DoConfig = $($5) Debug-Output "MADGE: STF_CWDIR = "$(!STF_CWDIR) Debug-Output "MADGE: STF_LANGUAGE = "$(!STF_LANGUAGE) Debug-Output "MADGE: Option = "$(Option) Debug-Output "MADGE: SrcDir = "$(SrcDir) Debug-Output "MADGE: AddCopy = "$(AddCopy) Debug-Output "MADGE: DoCopy = "$(DoCopy) Debug-Output "MADGE: DoConfig = "$(DoConfig) ; ; Get the correct source directory for an unattended installation. ; Also if the !MADGE_AdapterType variable is set then override ; $(Option) - which should have been MDGAUTO. ; Also get any preset laa. ; set UnattendLAA = "" ifstr(i) $(!STF_GUI_UNATTENDED) == "YES" ; ifstr(i) $(!MADGE_DriverDir) != "" ; set SrcDir = $(!MADGE_DriverDir) ; endif ifstr(i) $(!MADGE_AdapterType) != "" ; set Option = $(!MADGE_AdapterType) ; endif ifstr(i) $(!MADGE_LAA) != "" ; set UnattendLAA = $(!MADGE_LAA) ; endif ; endif ; ; Check if the language requested is supported ; set LanguageList = ^(LanguagesSupported, 1) ifcontains(i) $($0) NOT-IN $(LanguageList) ; return STATUS_NOLANGUAGE ; endif ; ; Define all the constants ; set-subst LF = "\n" read-syms GeneralConstants read-syms FileConstants read-syms DialogConstants$(!STF_LANGUAGE) ifstr(i) $(!NTN_Origination) == "NCPA" ; set Continue = $(OK) ; endif read-syms FileConstants$(!STF_LANGUAGE) detect date set-title $(FunctionTitle) set To = Begin set From = Begin ; ; Assume all is well. ; set CommonStatus = STATUS_SUCCESSFUL EndWait ; ----------------------------------------------------------------------- ; Set up the operation-mode-based variables and gaily welcome ; the user. If the "install mode" variable is improperly set, ; assume this is a new installation. ; ----------------------------------------------------------------------- Begin = + ; ; Until proven otherwise we assume that the adapter has not been ; detected by our NetDetect DLL. ; set AdapterDetected = FALSE set ManualInstall = FALSE ifstr(i) $(!NTN_InstallMode) == deinstall ; set StartLabel = Remove_Adapter ; else-ifstr(i) $(!NTN_InstallMode) == Update ; set StartLabel = Upgrade_Software ; else-ifstr(i) $(!NTN_InstallMode) == bind ; set StartLabel = Binding_Adapter ; else-ifstr(i) $(!NTN_InstallMode) == configure ; set CommonStatus = STATUS_REBOOT set StartLabel = Configure_Adapter ; ; You cannot config the software component ; ifstr(i) $(ProductKeyName) == $(!NTN_RegBase) ; Shell $(UtilityInf),RegistryErrorString,CANNOT_CONFIGURE_SOFTWARE ifint $($ShellCode) != $(!SHELL_CODE_OK) ; goto Shell_Code_Error ; endif set Error = $($R0) set From = End set To = End goto Non_Fatal_Info ; endif ; else ; set StartLabel = Install_Adapter set OEM_ABANDON_OPTIONS = {} set OEM_ABANDON_SOFTWARE = FALSE set OEM_ABANDON_ON = TRUE ; endif set From = Fatal set To = Fatal goto $(StartLabel) ; ---------------------------------------------------------------------- ; Installation Section ; ---------------------------------------------------------------------- Install_Adapter = + Debug-Output "Install" ; ; First, check whether the same version of the software exists ; OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct Ifstr $(KeyProduct) != $(KeyNull) ; ; ; Same version already existed in the local machine ; Popup the dialog and ask the user whether he wants to continue ; Debug-Output "Same version of software exists" set OldVersionExisted = $(TRUE) CloseRegKey $(KeyProduct) ifstr(i) $(!NTN_RegBase) == $(ProductKeyName) ; ; ; Cannot Install the same software again ; Shell $(UtilityInf), VerExistedDlg, $(ProductSoftwareTitle),+ $(ProductVersion) ifint $($ShellCode) != $(!SHELL_CODE_OK) ; goto Shell_Code_Error ; endif goto End ; else ; ; ; Note that the software already exists - unless we're ; doing an unattended installation. ; ifstr(i) $(!STF_GUI_UNATTENDED) != "YES" ; set OldVersionExisted = $(TRUE) ; endif ; endif ; endif ; ----------------------------------------------------------------------- ; Copy the driver and helper files from the distribution disk. ; ----------------------------------------------------------------------- Install_Files = + ifint $(OldVersionExisted) == $(FALSE) ; ifstr(i) $(!NTN_InstallMode) == "install" ; ; ; Ask the user for the location of the source files unless ; we are doing an unattended installation. ; ifstr(i) $(!STF_GUI_UNATTENDED) != "YES" ; Shell $(UtilityInf), DoAskSource, $(!STF_CWDDIR), $(SrcDir) YES Debug-Output "New SrcDir = "$($R1) ifint $($ShellCode) != $(!SHELL_CODE_OK) ; goto Shell_Code_Error ; else-ifstr(i) $($R0) == STATUS_FAILED ; shell $(UtilityInf) RegistryErrorString "ASK_SOURCE_FAIL" ifint $($ShellCode) != $(!SHELL_CODE_OK) ; goto Shell_Code_Error ; endif set Error = $($R0) goto Fatal ; else-ifstr(i) $($R0) == STATUS_USERCANCEL ; goto Successful ; endif set SrcDir = $($R1) ; Referenced in install sections. ; endif ; ; Install the detection DLL. ; Shell "" PrepareDetectionDll $(DetectDllName) ifstr(i) $($R0) != STATUS_SUCCESSFUL ; goto Fatal ; endif install "Install-Option" ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS ; shell $(UtilityInf) RegistryErrorString "UNABLE_COPY_FILE" ifint $($ShellCode) != $(!SHELL_CODE_OK) ; goto Shell_Code_Error ; endif set Error = $($R0) goto Fatal ; endif ; endif ; endif ; ----------------------------------------------------------------------- ; If the adapter option is MDGAUTO then we need to perform some adapter ; detection. In addition, we may not have been asked to detect the ; adapter but NCPA may have already done it for use. If it has then set ; up the detection variables from the values passed by NCPA. ; ----------------------------------------------------------------------- ifstr(i) $(!STF_NCDETECT) == YES ; ifstr(i) $(!STF_NCOPTION) == $(Option) ; set AdapterDetected = TRUE set DetectOption = $(!STF_NCOPTION) set DetectIndex = $(!STF_NCDETCARD) set DetectBusType = *($(!STF_NCDETINFO),5) set DetectBusNumber = *($(!STF_NCDETINFO),6) goto Set_Installation_Defaults ; endif ; endif ; ; If NCPA has not already detected an adapter then we must ; initialize the detection DLL. We mustn't re-initalise it ; if NCPA has detected an adapter else we will trash the ; adapter information found by NCPA. ; Shell $(ParamInf) Param_ControlDetection DTEND Shell $(ParamInf) Param_ControlDetection DTSTART ifstr(i) $(Option) != "MDGAUTO" ; set ManualInstall = TRUE ifcontains(i) $(Option) not-in $(CardbusAdapters) ; ifstr(i) $(!STF_GUI_UNATTENDED) == "YES" ; set ManualInstall = FALSE ; else ; set Error = $(NON_AUTO_INSTALL) set To = Set_Installation_Defaults set From = End goto Warning ; endif ; else ; ; ; Determine whether Award, SystemSoft or Softex install. If none of ; these Card Services are detected, default to our internal enabler. ; OpenRegKey $(!REG_H_LOCAL) "" $(AwardKey) $(MAXIMUM_ALLOWED) KeyCBProduct ifstr $(KeyCBProduct) != $(KeyNull) ; Debug-Output "Award software installed" set AwardCB = $(TRUE) CloseRegKey $(KeyCBProduct) ; endif OpenRegKey $(!REG_H_LOCAL) "" $(SystemSoftKey) $(MAXIMUM_ALLOWED) KeyCBProduct ifstr $(KeyCBProduct) != $(KeyNull) ; Debug-Output "SystemSoft software installed" set SSoftCB = $(TRUE) CloseRegKey $(KeyCBProduct) ; endif OpenRegKey $(!REG_H_LOCAL) "" $(SoftexKey1) $(MAXIMUM_ALLOWED) KeyCBProduct ifstr $(KeyCBProduct) != $(KeyNull) ; CloseRegKey $(KeyCBProduct) OpenRegKey $(!REG_H_LOCAL) "" $(SoftexKey2) $(MAXIMUM_ALLOWED) KeyCBProduct ifstr $(KeyCBProduct) != $(KeyNull) ; Debug-Output "Softex software installed" set SoftexCB = $(TRUE) CloseRegKey $(KeyCBProduct) ; endif ; endif ; ; Check our findings with user (unless doing unattended install). ; ifstr(i) $(!STF_GUI_UNATTENDED) == "YES" ; set MadgeCB = $(TRUE) goto Set_Installation_Defaults ; endif ifstr $(AwardCB) == $(TRUE) ; set Error = $(AWARD_SOLN) set To = Set_Installation_Defaults set From = End goto Warning ; else-ifstr $(SSoftCB) == $(TRUE) ; set Error = $(SSOFT_SOLN) set To = Set_Installation_Defaults set From = End goto Warning ; else-ifstr $(SoftexCB) == $(TRUE) ; set Error = $(SOFTEX_SOLN) set To = Set_Installation_Defaults set From = End goto Warning ; else ; set MadgeCB = $(TRUE) set Error = $(MADGE_INTERNAL_SOLN) set To = Set_Installation_Defaults set From = End goto Warning ; endif ; endif goto Set_Installation_Defaults ; endif ; ----------------------------------------------------------------------- ; We have been asked to search for adapters. We will call our NetDetect ; DLL via helper functions to build a list of Madge adapters present in ; the machine that have not yet been installed. ; ----------------------------------------------------------------------- Detect_Adapters = + StartWait ; ; Initialise the adapter description and detection index lists. ; set AdapterOptionList = {} set AdapterDescList = {} set AdapterIndexList = {} set AdapterBusTypeList = {} set AdapterBusNumberList = {} DA_Loop = + ; ; Call the detection DLL via a helper function to find the ; next adapter. ; Shell $(ParamInf) Param_DetectCard set DetectResult = $($R0) set Status = *($(DetectResult),1) ifstr(i) $(Status) != 0 ; goto DA_Loop_End ; endif set DetectOption = *($(DetectResult),2) set DetectIndex = *($(DetectResult),3) set DetectBusType = *($(DetectResult),6) set DetectBusNumber = *($(DetectResult),7) ; ; If the adapter is not a Madge adapter then start the ; loop again to skip the adapter. ; ifcontains(i) $(DetectOption) not-in $(MadgeAdapterOptions) ; goto DA_Loop ; endif ; ; Found a Madge adapter so increment NumberFound ; set-add NumberFound = $(NumberFound), 1 ; ; Now find out the slot number or IO location to show to the user. ; ifcontains(i) $(DetectOption) in $(SlotNumberAdapters) ; set TypeList = {{SLOTNUMBER,DummyList1,SlotNumber}} ; else-ifstr(i) $(DetectOption) in $(OlicomPcmciaAdapters) ; set TypeList = {{IOLOCATION,DummyList1,IoLocation},+ {INTERRUPTNUMBER,DummyList2,IrqNumber},+ {MEMADDR,DummyList3,PcmciaMemWin},+ {MEMADDRLENGTH,DummyList4,PcmciaMemWinLen}} ; else-ifcontains(i) $(DetectOption) in $(PcmciaAdapters) ; set TypeList = {{IOLOCATION,DummyList1,IoLocation},+ {INTERRUPTNUMBER,DummyList2,IrqNumber}} ; else ; set TypeList = {{IOLOCATION,DummyList1,IoLocation}} ; endif Shell $(ParamInf) Param_BuildTypeLists $(DetectOption) $(TypeList) set Status = $($R0) ifstr(i) $(Status) != STATUS_SUCCESSFUL ; goto Fatal ; endif Shell $(ParamInf) Param_QueryCard $(DetectIndex) set Status = $($R0) set ParamList = $($R1) ifstr(i) $(Status) != STATUS_SUCCESSFUL ; goto Fatal ; endif Shell $(ParamInf) Param_SetDefaults $(ParamList) ; ; We need to set up the adapter specific constants for the detected ; adapter so that we can generate a user readable description. ; set AdapOption = $(DetectOption) read-syms AdapterConstants ; ; Record the bus type and number so we can recover them later. ; set AdapterBusTypeList = >($(AdapterBusTypeList),$(DetectBusType)) set AdapterBusNumberList = >($(AdapterBusNumberList),$(DetectBusNumber)) ; ; Build a list of adapters to show to the user. ; set AdapterOptionList = >($(AdapterOptionList),$(DetectOption)) set AdapterIndexList = >($(AdapterIndexList),$(DetectIndex)) set AdapterDesc = #(OptionsChoice$(!STF_LANGUAGE),$(DetectOption),1) ifcontains(i) $(DetectOption) in $(SlotNumberAdapters) ; set AdapterDesc = $(AdapterDesc)$(SlotNumber)" bus "$(DetectBusNumber) set AdapterDescList = >($(AdapterDescList),$(AdapterDesc)) ; else-ifstr(i) $(DetectOption) == "MDGEISA" ; set SlotNumber = *($(LocList),~($(LocRawList),$(IoLocation))) set AdapterDesc = $(AdapterDesc)$(SlotNumber)" bus "$(DetectBusNumber) set AdapterDescList = >($(AdapterDescList),$(AdapterDesc)) ; else ; set IoLocation = *($(LocList),~($(LocRawList),$(IoLocation))) set AdapterDesc = $(AdapterDesc)$(IoLocation)" bus "$(DetectBusNumber) set AdapterDescList = >($(AdapterDescList),$(AdapterDesc)) ; endif ; ; And look for another adapter. ; goto DA_Loop DA_Loop_End = + EndWait Debug-Output "MADGE: AdapterOptionList = "$(AdapterOptionList) Debug-Output "MADGE: AdapterDescList = "$(AdapterDescList) Debug-Output "MADGE: AdapterIndexList = "$(AdapterIndexList) Debug-Output "MADGE: AdapterBusTypeList = "$(AdapterBusTypeList) Debug-Output "MADGE: AdapterBusNumberList = "$(AdapterBusNumberList) ; ; Give up if we can't find any adapters. ; ifstr(i) $(AdapterOptionList) == {} ; set Error = $(CANNOT_FIND_ANY_CARD) goto Fatal ; endif ;------------------------------------------------------------------------ ; We now have a list of adapter descriptions and detection indexes. ; Pop up a dialog box from which the user can choose which adapter ; to install. ;------------------------------------------------------------------------ Choose_Adapter = + StartWait ; ; Set the default choice. ; set AdapterType = *($(AdapterDescList),1) ; ; If we are not doing an unattended installation then ; let the user choose an adapter. ; If there is only one adapter found then skip this box. ; ifint $(NumberFound) != 1 ; ifstr(i) $(!STF_GUI_UNATTENDED) != "YES" ; set DlgTemplate = "MDG" Debug-Output "MADGE: DlgTemplate = "$(DlgTemplate) read-syms FileDependentDlg$(!STF_LANGUAGE)Option$(DlgTemplate) set DlgTemplate = "MDGADAPTERS" ; ; Load the DLL. ; LoadLibrary "x" $(DialogDllName) MdgDialog ; ; Display the dialog box. ; EndWait ui start "InputDlg" $(MdgDialog) StartWait ifstr(i) $(DLGEVENT) == "EXIT" ; set CommonStatus = STATUS_USERCANCEL ui pop 1 FreeLibrary $(MdgDialog) goto End ; else-ifstr(i) $(DLGEVENT) != "CONTINUE" ; ui pop 1 FreeLibrary $(MdgDialog) goto End ; endif set AdapterType = $(Combo3Out) ui pop 1 FreeLibrary $(MdgDialog) ; endif ; endif ; ; AdapterType now contains the description of the adapter ; the user wants to install. Find the option and detection index ; value this corresponds to. ; Debug-Output "MADGE: AdapterType = "$(AdapterType) set DetectOption = *($(AdapterOptionList),~($(AdapterDescList),$(AdapterType))) set DetectIndex = *($(AdapterIndexList),~($(AdapterDescList),$(AdapterType))) set DetectBusType = *($(AdapterBusTypeList),~($(AdapterDescList),$(AdapterType))) set DetectBusNumber = *($(AdapterBusNumberList),~($(AdapterDescList),$(AdapterType))) Debug-Output "MADGE: DetectOption = "$(DetectOption) Debug-Output "MADGE: DetectIndex = "$(DetectIndex) Debug-Output "MADGE: DetectBusType = "$(DetectBusType) Debug-Output "MADGE: DetectBusNumber = "$(DetectBusNumber) ; ; Set the flag to say that the adapter was detected and change the ; Option to the detected type. ; set AdapterDetected = TRUE set Option = $(DetectOption) EndWait ; ----------------------------------------------------------------------- ; Set some defaults that apply to all card types ; ----------------------------------------------------------------------- Set_Installation_Defaults = + StartWait Debug-Output "MADGE: Set_Installation_Defaults" ; ; Set up some defaults that are not affected by automatic detection. ; set MaxFrameSize = $(DEF_MAX_FRAME_SIZE) set SpeedFlag = $(DEF_SPEED) set BusType = $(VALUE_UNKNOWN) set BusNumber = $(VALUE_UNKNOWN) set DmaChannel = $(DEF_DMA_CHANNEL) set IrqNumber = $(DEF_IRQ_NUMBER) set TxSlots = $(DEF_TX_SLOTS) set RxSlots = $(DEF_RX_SLOTS) set TransferType = $(DEF_TRANSFER_TYPE) set TestXID = $(DEF_TEST_XID) set MacOpenMode = $(DEF_MAC_OPEN_MODE) set StatsGathering = $(DEF_STATS_GATHERING) set Wol = $(DEF_WOL) set QuietMode = $(DEF_QUIET_MODE) set RingStatus = $(DEF_RING_STATUS_MASK) set EventLog = $(DEF_EVENT_LOG_MASK) set Watchdog = $(DEF_WATCHDOG) set L1 = "" set L2 = "" set L3 = "" set L4 = "" set L5 = "" set L6 = "" set LAA = "" set NetworkAddress = "" set SlaveSlotNumber = $(DEF_SLAVE_SLOT_NUMBER) set BeaconTimeout = $(DEF_BEACON_TIMEOUT) set SingleStationTimeout = $(DEF_SINGLE_TIMEOUT) set PcmciaMemWin = $(DEF_PCMCIAMEMWIN) set PcmciaMemWinLen = $(DEF_PCMCIAMEMWINLEN) ; ; These values will not be changed during an installation but setting ; them here allows the code that writes to the registry to be independent ; of whether we're installing or configuring. ; set OldMaxFrameSize = $(VALUE_UNKNOWN) set OldSpeedFlag = $(VALUE_UNKNOWN) set OldIrq = $(VALUE_UNKNOWN) set OldDma = $(VALUE_UNKNOWN) set OldTxSlots = $(VALUE_UNKNOWN) set OldRxSlots = $(VALUE_UNKNOWN) set OldTransferType = $(VALUE_UNKNOWN) set OldTestXID = $(VALUE_UNKNOWN) set OldMacOpen = $(VALUE_UNKNOWN) set OldStatsGathering = $(VALUE_UNKNOWN) set OldWol = $(VALUE_UNKNOWN) set OldQuiet = $(VALUE_UNKNOWN) set OldRingStatus = $(VALUE_UNKNOWN) set OldEventLog = $(VALUE_UNKNOWN) set OldWatchdog = $(VALUE_UNKNOWN) set OldLAA = $(VALUE_UNKNOWN) set OldNetworkAddress = $(VALUE_UNKNOWN) set OldSlaveSlotNumber = $(VALUE_UNKNOWN) set OldBeaconTimeout = $(VALUE_UNKNOWN) set OldSingleStationTimeout = $(VALUE_UNKNOWN) set OldPcmciaMemWin = $(VALUE_UNKNOWN) set OldPcmciaMemWinLen = $(VALUE_UNKNOWN) ifstr(i) $(Option) == "MDGCARDBUS" ; ; ; Make default transfer type 16bit PIO for CardBus when using ; a third-party Card Services since DMA seems to cause problems. ; Note that CardBus Mk2 only supports DMA. ; ifstr $(MadgeCB) != $(TRUE) ; set TransferType = 1 ; endif ; endif ; ; Now set up the options for adapter options. ; ifcontains(i) $(Option) in $(SlotNumberAdapters) ; set TypeList = {{SLOTNUMBER,DummyList1,SlotNumber}} ; else-ifcontains(i) $(DetectOption) in $(OlicomPcmciaAdapters) ; set TypeList = {{IOLOCATION,DummyList1,IoLocation},+ {INTERRUPTNUMBER,DummyList2,IrqNumber},+ {MEMADDR,DummyList3,PcmciaMemWin},+ {MEMADDRLENGTH,DummyList4,PcmciaMemWinLen}} ; else-ifcontains(i) $(DetectOption) in $(PcmciaAdapters) ; set TypeList = {{IOLOCATION,DummyList1,IoLocation},+ {INTERRUPTNUMBER,DummyList2,IrqNumber}} ; else ; set TypeList = {{IOLOCATION,DummyList1,IoLocation}} ; endif Shell $(ParamInf) Param_BuildTypeLists $(Option) $(TypeList) set Status = $($R0) ifstr(i) $(Status) != STATUS_SUCCESSFUL ; goto Fatal ; endif ; ; If the adapter was automatically detected then call the ; DLL to find out what the parameters are. ; ifstr(i) $(AdapterDetected) == TRUE ; Shell $(ParamInf) Param_QueryCard $(DetectIndex) set Status = $($R0) set ParamList = $($R1) ifstr(i) $(Status) != STATUS_SUCCESSFUL ; goto Fatal ; endif ; endif ; ; And set the defaults. This will be the automatically detected ; value if the adapter was detected or the first allowable choice ; otherwise. ; Shell $(ParamInf) Param_SetDefaults $(ParamList) ifstr(i) $(MadgeCB) == $(TRUE) ; set IoLocation = $(DEF_CARDBUS_IO_LOCATION) ; endif Debug-Output "MADGE: SlotNumber = "$(SlotNumber) Debug-Output "MADGE: IoLocation = "$(IoLocation) Debug-Output "MADGE: IrqNumber = "$(IrqNumber) ifcontains(i) $(DetectOption) in $(OlicomPcmciaAdapters) Debug-Output "MADGE: PcmciaMemWin = "$(PcmciaMemWin) Debug-Output "MADGE: PcmciaMemWinLen = "$(PcmciaMemWinLen) endif EndWait goto Get_Adapter_Options ; ----------------------------------------------------------------------- ; Configuration Section ; ----------------------------------------------------------------------- Configure_Adapter = + ifcontains(i) $(Option) in $(CardbusAdapters) ; ; ; Determine whether Award, SystemSoft or Softex install. If none of ; these Card Services are detected, default to our internal enabler. ; set MadgeCB = $(TRUE) OpenRegKey $(!REG_H_LOCAL) "" $(AwardKey) $(MAXIMUM_ALLOWED) KeyCBProduct ifstr $(KeyCBProduct) != $(KeyNull) ; Debug-Output "Award software installed" set AwardCB = $(TRUE) set MadgeCB = $(FALSE) CloseRegKey $(KeyCBProduct) ; endif OpenRegKey $(!REG_H_LOCAL) "" $(SystemSoftKey) $(MAXIMUM_ALLOWED) KeyCBProduct ifstr $(KeyCBProduct) != $(KeyNull) ; Debug-Output "SystemSoft software installed" set SSoftCB = $(TRUE) set MadgeCB = $(FALSE) CloseRegKey $(KeyCBProduct) ; endif OpenRegKey $(!REG_H_LOCAL) "" $(SoftexKey1) $(MAXIMUM_ALLOWED) KeyCBProduct ifstr $(KeyCBProduct) != $(KeyNull) ; CloseRegKey $(KeyCBProduct) OpenRegKey $(!REG_H_LOCAL) "" $(SoftexKey2) $(MAXIMUM_ALLOWED) KeyCBProduct ifstr $(KeyCBProduct) != $(KeyNull) ; Debug-Output "Softex software installed" set SoftexCB = $(TRUE) set MadgeCB = $(FALSE) CloseRegKey $(KeyCBProduct) ; endif ; endif ; endif StartWait ; ; Set up the defaults not done by the helper interface in the ; detection DLL. ; set MaxFrameSize = $(DEF_MAX_FRAME_SIZE) set SpeedFlag = $(DEF_SPEED) set BusType = $(VALUE_UNKNOWN) set BusNumber = $(VALUE_UNKNOWN) set DmaChannel = $(DEF_DMA_CHANNEL) set IrqNumber = $(DEF_IRQ_NUMBER) set TxSlots = $(DEF_TX_SLOTS) set RxSlots = $(DEF_RX_SLOTS) set TransferType = $(DEF_TRANSFER_TYPE) set TestXID = $(DEF_TEST_XID) set MacOpenMode = $(DEF_MAC_OPEN_MODE) set StatsGathering = $(DEF_STATS_GATHERING) set Wol = $(DEF_WOL) set QuietMode = $(DEF_QUIET_MODE) set RingStatus = $(DEF_RING_STATUS_MASK) set EventLog = $(DEF_EVENT_LOG_MASK) set Watchdog = $(DEF_WATCHDOG) set L1 = "" set L2 = "" set L3 = "" set L4 = "" set L5 = "" set L6 = "" set LAA = "" set NetworkAddress = "" set SlaveSlotNumber = $(DEF_SLAVE_SLOT_NUMBER) set BeaconTimeout = $(DEF_BEACON_TIMEOUT) set SingleStationTimeout = $(DEF_SINGLE_TIMEOUT) ; ; Set the old values up to be unknown - they will only be set if the ; registry parameter is there. ; set OldMaxFrameSize = $(VALUE_UNKNOWN) set OldSpeedFlag = $(VALUE_UNKNOWN) set OldIrq = $(VALUE_UNKNOWN) set OldDma = $(VALUE_UNKNOWN) set OldTxSlots = $(VALUE_UNKNOWN) set OldRxSlots = $(VALUE_UNKNOWN) set OldTransferType = $(VALUE_UNKNOWN) set OldTestXID = $(VALUE_UNKNOWN) set OldMacOpen = $(VALUE_UNKNOWN) set OldStatsGathering = $(VALUE_UNKNOWN) set OldWol = $(VALUE_UNKNOWN) set OldQuiet = $(VALUE_UNKNOWN) set OldRingStatus = $(VALUE_UNKNOWN) set OldEventLog = $(VALUE_UNKNOWN) set OldWatchdog = $(VALUE_UNKNOWN) set OldLAA = $(VALUE_UNKNOWN) set OldNetworkAddress = $(VALUE_UNKNOWN) set OldSlaveSlotNumber = $(VALUE_UNKNOWN) set OldBeaconTimeout = $(VALUE_UNKNOWN) set OldSingleStationTimeout = $(VALUE_UNKNOWN) set OldPcmciaMemWin = $(VALUE_UNKNOWN) set OldPcmciaMemWinLen = $(VALUE_UNKNOWN) ifstr(i) $(Option) == "MDGCARDBUS" ; ; ; Make default transfer type 16bit PIO for CardBus when using ; a third-party Card Services since DMA seems to cause problems. ; Note that CardBus Mk2 only supports DMA. ; ifstr $(MadgeCB) != $(TRUE) ; set TransferType = 1 ; endif ; endif ; ; Initialise the detection DLL. ; Shell $(ParamInf) Param_ControlDetection DTEND Shell $(ParamInf) Param_ControlDetection DTSTART ; ; Now set up the options for adapter options. ; ifcontains(i) $(Option) in $(SlotNumberAdapters) ; set TypeList = {{SLOTNUMBER,DummyList1,SlotNumber}} ; else-ifcontains(i) $(DetectOption) in $(OlicomPcmciaAdapters) ; set TypeList = {{IOLOCATION,DummyList1,IoLocation},+ {INTERRUPTNUMBER,DummyList2,IrqNumber},+ {MEMADDR,DummyList3,PcmciaMemWin},+ {MEMADDRLENGTH,DummyList4,PcmciaMemWinLen}} ; else-ifcontains(i) $(DetectOption) in $(PcmciaAdapters) ; set TypeList = {{IOLOCATION,DummyList1,IoLocation},+ {INTERRUPTNUMBER,DummyList2,IrqNumber}} ; else ; set TypeList = {{IOLOCATION,DummyList1,IoLocation}} ; endif Shell $(ParamInf) Param_BuildTypeLists $(Option) $(TypeList) set Status = $($R0) ifstr(i) $(Status) != STATUS_SUCCESSFUL ; goto Fatal ; endif ; ; And set the defaults. ; Shell $(ParamInf) Param_SetDefaults $(ParamList) ifstr(i) $(MadgeCB) == $(TRUE) ; set IoLocation = $(DEF_CARDBUS_IO_LOCATION) ; endif Debug-Output "MADGE: SlotNumber = "$(SlotNumber) Debug-Output "MADGE: IoLocation = "$(IoLocation) Debug-Output "MADGE: IrqNumber = "$(IrqNumber) ; ; NB !NTN_RegBase, for hardware components, is : ; \SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards\0x ; ; ; This next IF is redundant - it will always be NULL ; ifstr $(KeyProduct) == $(KeyNull) ; OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) $(MAXIMUM_ALLOWED) KeyProduct ifstr $(KeyProduct) == $(KeyNull) ; set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE goto Fatal_Registry ; endif ; endif ; ; Get the other parameters; they're attached to the service ; parameters key ; Shell $(UtilityInf) FindService, $(KeyProduct) ifint $($ShellCode) != $(!SHELL_CODE_OK) ; goto Shell_Code_Error ; endif ifstr(i) $($R0) != NO_ERROR ; goto Fatal_Registry ; endif set KeyParameters = $($R2) ; ; We don't need the services key, so close it. ; CloseRegKey $($R1) ifstr $(KeyParameters) == $(KeyNull) ; set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE goto Fatal_Registry ; endif set OldVersionExisted = $(TRUE) ; ; Get the old values ; set ValueName = "" set ValueData = "" set ValueStr = "" set ValueList = {} EnumRegValue $(KeyParameters) ValueList ForListDo $(ValueList) ; set ValueItem = $($) set ValueName = *($(ValueItem),1) set ValueData = *($(ValueItem),4) ifstr(i) $(ValueName) == "IoBaseAddress" ; set IoLocation = $(ValueData) ; else-ifstr(i) $(ValueName) == "SlotNumber" ; set SlotNumber = $(ValueData) ; else-ifstr(i) $(ValueName) == "NetworkAddress" ; set NetworkAddress = $(ValueData) set OldNetworkAddress = $(ValueData) ; else-ifstr(i) $(ValueName) == "RingSpeed" ; set SpeedFlag = $(ValueData) set OldSpeedFlag = $(ValueData) ; else-ifstr(i) $(ValueName) == "BusType" ; set BusType = $(ValueData) ; else-ifstr(i) $(ValueName) == "BusNumber" ; set BusNumber = $(ValueData) ; else-ifstr(i) $(ValueName) == "InterruptNumber" ; set IrqNumber = $(ValueData) set OldIrq = $(ValueData) ; else-ifstr(i) $(ValueName) == "MaxFrameSize" ; set MaxFrameSize = $(ValueData) set OldMaxFrameSize = $(ValueData) ; else-ifstr(i) $(ValueName) == "DMAChannel" ; set DmaChannel = $(ValueData) set OldDma = $(ValueData) ; else-ifstr(i) $(ValueName) == "TxSlots" ; set TxSlots = $(ValueData) set OldTxSlots = $(ValueData) ; else-ifstr(i) $(ValueName) == "RxSlots" ; set RxSlots = $(ValueData) set OldRxSlots = $(ValueData) ; else-ifstr(i) $(ValueName) == "TransferType" ; set TransferType = $(ValueData) set OldTransferType = $(ValueData) ; else-ifstr(i) $(ValueName) == "TestAndXIDEnabled" ; set TestXID = $(ValueData) set OldTestXID = $(ValueData) ; else-ifstr(i) $(ValueName) == "MacOpen" ; set MacOpenMode = $(ValueData) set OldMacOpen = $(ValueData) ; else-ifstr(i) $(ValueName) == "StatsGathering" ; set StatsGathering = $(ValueData) set OldStatsGathering = $(ValueData) ; else-ifstr(i) $(ValueName) == "WOL" ; set Wol = $(ValueData) set OldWol = $(ValueData) ; else-ifstr(i) $(ValueName) == "Quiet" ; set QuietMode = $(ValueData) set OldQuiet = $(ValueData) ; else-ifstr(i) $(ValueName) == "RingStatusMask" ; set RingStatus = $(ValueData) set OldRingStatus = $(ValueData) ; else-ifstr(i) $(ValueName) == "EventMask" ; set EventLog = $(ValueData) set OldEventLog = $(ValueData) ; else-ifstr(i) $(ValueName) == "Watchdog" ; set Watchdog = $(ValueData) set OldWatchdog = $(ValueData) ; else-ifstr(i) $(ValueName) == "SlaveSlotNumber" ; set SlaveSlotNumber = $(ValueData) set OldSlaveSlotNumber = $(ValueData) ; else-ifstr(i) $(ValueName) == "BeaconTimeout" ; set BeaconTimeout = $(ValueData) set OldBeaconTimeout = $(ValueData) ; else-ifstr(i) $(ValueName) == "SingleStationTimeout" ; set SingleStationTimeout = $(ValueData) set OldSingleStationTimeout = $(ValueData) ; else-ifstr(i) $(ValueName) == "PCCARDAttributeMemoryAddress" ; set PcmciaMemWin = $(ValueData) set OldPcmciaMemWin = $(ValueData) Debug-Output "MADGE: PcmciaMemWin = "$(PcmciaMemWin) ; else-ifstr(i) $(ValueName) == "PCCARDAttributeMemorySize" ; set PcmciaMemWinLen = $(ValueData) set OldPcmciaMemWinLen = $(ValueData) Debug-Output "MADGE: PcmciaMemWinLen = "$(PcmciaMemWinLen) ; endif ; EndForListDo ifstr(i) $(NetworkAddress) != "" ; ; ; Convert 12 digit network address into hyphen seperated LAA ; LoadLibrary "x" $(DialogDllName) MdgDialog set FLibraryErrCtl = 1 LibraryProcedure MdgResult $(MdgDialog) MadgeSplitLAA $(NetworkAddress) set FLibraryErrCtl = 0 FreeLibrary $(MdgDialog) ifstr $(MdgResult) != "LAA Split Failure" ; set LAA = $(MdgResult) Debug-Output "MADGE: LAA = "$(LAA) ; endif Split-String $(LAA) "-" SplitAddress QueryListSize SplitAddressSize $(SplitAddress) ifint $(SplitAddressSize) == 11 ; set L1 = *($(SplitAddress), 1) set L2 = *($(SplitAddress), 3) set L3 = *($(SplitAddress), 5) set L4 = *($(SplitAddress), 7) set L5 = *($(SplitAddress), 9) set L6 = *($(SplitAddress), 11) ; endif ; endif EndWait ; ----------------------------------------------------------------------- ; Let the user set options. ; ----------------------------------------------------------------------- Get_Adapter_Options = + StartWait ; ; Set up the adapter specific constants. ; set AdapOption = $(Option) read-syms AdapterConstants EndWait Get_Adapter_Options_Restart = + ; ; We will start here if parameter validation fails. ; StartWait set From = Get_Adapter_Options_Restart ; ; Map the currently selected values into user from. ; ifcontains(i) $(Option) in $(SlotNumberAdapters) ; set SlotNumber = *($(LocList),~($(LocRawList),$(SlotNumber))) ; else ; set IoLocation = *($(LocList),~($(LocRawList),$(IoLocation))) ; endif set SpeedFlag = *($(SpeedList),~($(SpeedRawList),$(SpeedFlag))) set IrqNumber = *($(IrqList),~($(IrqRawList),$(IrqNumber))) set DmaChannel = *($(DmaList),~($(DmaRawList),$(DmaChannel))) set TxSlots = *($(TxList),~($(TxRawList),$(TxSlots))) set RxSlots = *($(RxList),~($(RxRawList),$(RxSlots))) set TransferType = *($(TransferList),~($(TransferRawList),$(TransferType))) set TestXID = *($(TestXIDList),~($(TestXIDRawList),$(TestXID))) set MacOpenMode = *($(MacOpenList),~($(MacOpenRawList),$(MacOpenMode))) set StatsGathering = *($(StatsList),~($(StatsRawList),$(StatsGathering))) set Wol = *($(WolList),~($(WolRawList),$(Wol))) set QuietMode = *($(QuietList),~($(QuietRawList),$(QuietMode))) set Watchdog = *($(WatchdogList),~($(WatchdogRawList),$(Watchdog))) set SlaveSlotNumber = *($(SlaveSlotList),~($(SlaveSlotRawList),$(SlaveSlotNumber))) set BeaconTimeout = *($(BeaconList),~($(BeaconRawList),$(BeaconTimeout))) set SingleStationTimeout = *($(SingleStationList),~($(SingleStationRawList),$(SingleStationTimeout))) set PcmciaMemWin = *($(PcmciaMemWinList),~($(PcmciaMemWinRawList),$(PcmciaMemWin))) ifstr $(RingStatus) != "" ; set-dectohex RingStatus = $(RingStatus) ; endif ifstr $(EventLog) != "" ; set-dectohex EventLog = $(EventLog) ; endif ; ; Set up the input dialog box text and lists. ; set DlgTemplate = "MDG" Debug-Output "MADGE: DlgTemplate = "$(DlgTemplate) Debug-Output "MADGE: Reading syms FileDependentDlg"$(!STF_LANGUAGE)"Option"$(DlgTemplate) read-syms FileDependentDlg$(!STF_LANGUAGE)Option$(DlgTemplate) ; ; Unless we are doing an unattended installation then let the ; user press some keys. ; Actually we now dont want the user to have to do anything on install ; so bypass config box if during auto-install. Obviously if no adapter ; is found we need user to put in details. ; Debug-Output "MADGE: NumberFound = "$(NumberFound) ifint $(NumberFound) == 0 ; ifstr(i) $(!STF_GUI_UNATTENDED) != "YES" ; LoadLibrary "x" $(DialogDllName) MdgDialog Debug-Output "MADGE: Got library" EndWait ifstr(i) $(ManualInstall) == "TRUE" ; set ManualInstall = FALSE ; ; Non-automated install so go to advanced box first to get ; the IO/slot/DevID. If we are installing a CardBus adapter ; we don't need to display the advanced box. ; ifcontains(i) $(Option) in $(CardbusAdapters) ; goto Dialogs_Done ; endif goto Advanced_Options ; endif Main_Install_Options = + set EditTextIn = {$(L1), $(L2), $(L3), $(L4), $(L5), $(L6)} set EditTextLim = {2, 2, 2, 2, 2, 2} set EditTextOut = {$(L1), $(L2), $(L3), $(L4), $(L5), $(L6)} ui start "InputDlg" $(MdgDialog) StartWait Debug-Output "MADGE: "$(DLGEVENT) ifstr(i) $(DLGEVENT) == "EXIT" ; set CommonStatus = STATUS_USERCANCEL ui pop 1 FreeLibrary $(MdgDialog) goto End ; else-ifstr(i) $(DLGEVENT) == "DLGBUTTON1" ; LoadLibrary "x" $(DialogDllName) MdgDialog set FLibraryErrCtl = 1 LibraryProcedure MdgResult $(MdgDialog) MadgeStartHelp set FLibraryErrCtl = 0 FreeLibrary $(MdgDialog) set L1 = *($(EditTextOut), 1) set L2 = *($(EditTextOut), 2) set L3 = *($(EditTextOut), 3) set L4 = *($(EditTextOut), 4) set L5 = *($(EditTextOut), 5) set L6 = *($(EditTextOut), 6) ui pop 1 goto Main_Install_Options ; else-ifstr(i) $(DLGEVENT) == "DLGBUTTON0" ; set OldCombo2 = $(Combo2Out) set L1 = *($(EditTextOut), 1) set L2 = *($(EditTextOut), 2) set L3 = *($(EditTextOut), 3) set L4 = *($(EditTextOut), 4) set L5 = *($(EditTextOut), 5) set L6 = *($(EditTextOut), 6) ui pop 1 goto Advanced_Options ; else-ifstr(i) $(DLGEVENT) != "CONTINUE" ; set CommonStatus = STATUS_USERCANCEL ui pop 1 FreeLibrary $(MdgDialog) goto End ; endif ; ; Get the values the user selected out of the dialog box. ; set SpeedFlag = $(Combo2Out) set L1 = *($(EditTextOut), 1) set L2 = *($(EditTextOut), 2) set L3 = *($(EditTextOut), 3) set L4 = *($(EditTextOut), 4) set L5 = *($(EditTextOut), 5) set L6 = *($(EditTextOut), 6) ui pop 1 FreeLibrary $(MdgDialog) ; endif ; endif Dialogs_Done = + ; ; Convert the values the user has chosen into internal form. ; ifcontains(i) $(Option) in $(SlotNumberAdapters) ; set SlotNumber = *($(LocRawList),~($(LocList),$(SlotNumber))) ; else ; set IoLocation = *($(LocRawList),~($(LocList),$(IoLocation))) ; endif Debug-Output "IO4="$(IoLocation) Debug-Output "SN4="$(SlotNumber) ifstr $(RingStatus) != "" ; set-hextodec RingStatus = $(RingStatus) ; endif ifstr $(EventLog) != "" ; set-hextodec EventLog = $(EventLog) ; endif set SpeedFlag = *($(SpeedRawList),~($(SpeedList),$(SpeedFlag))) set IrqNumber = *($(IrqRawList),~($(IrqList),$(IrqNumber))) set DmaChannel = *($(DmaRawList),~($(DmaList),$(DmaChannel))) set TxSlots = *($(TxRawList),~($(TxList),$(TxSlots))) set RxSlots = *($(RxRawList),~($(RxList),$(RxSlots))) set TransferType = *($(TransferRawList),~($(TransferList),$(TransferType))) set TestXID = *($(TestXIDRawList),~($(TestXIDList),$(TestXID))) set MacOpenMode = *($(MacOpenRawList),~($(MacOpenList),$(MacOpenMode))) set StatsGathering = *($(StatsRawList),~($(StatsList),$(StatsGathering))) set Wol = *($(WolRawList),~($(WolList),$(Wol))) set QuietMode = *($(QuietRawList),~($(QuietList),$(QuietMode))) set Watchdog = *($(WatchdogRawList),~($(WatchdogList),$(Watchdog))) set SlaveSlotNumber = *($(SlaveSlotRawList),~($(SlaveSlotList),$(SlaveSlotNumber))) set BeaconTimeout = *($(BeaconRawList),~($(BeaconList),$(BeaconTimeout))) set SingleStationTimeout = *($(SingleStationRawList),~($(SingleStationList),$(SingleStationTimeout))) set PcmciaMemWin = *($(PcmciaMemWinRawList),~($(PcmciaMemWinList),$(PcmciaMemWin))) ifstr $(L1)$(L2)$(L3)$(L4)$(L5)$(L6) == "" ; set LAA = "" set NetworkAddress = "" ; else ; set LAA = $(L1)"-"$(L2)"-"$(L3)"-"$(L4)"-"$(L5)"-"$(L6) set NetworkAddress = $(L1)$(L2)$(L3)$(L4)$(L5)$(L6) ; endif Debug-Output "MADGE: SlotNumber = "$(SlotNumber) Debug-Output "MADGE: IoLocation = "$(IoLocation) Debug-Output "MADGE: SpeedFlag = "$(SpeedFlag) ifstr(i) $(UnattendLAA) != "" ; Debug-Output "MADGE: UnattendLAA = "$(UnattendLAA) set NetworkAddress = $(UnattendLAA) ; ; Call dll to split 12 digit laa into hyphen seperated ; byte values ; LoadLibrary "x" $(DialogDllName) MdgDialog set FLibraryErrCtl = 1 LibraryProcedure MdgResult $(MdgDialog) MadgeSplitLAA $(UnattendLAA) set FLibraryErrCtl = 0 FreeLibrary $(MdgDialog) ifstr $(MdgResult) != "LAA Split Failure" ; set LAA = $(MdgResult) Debug-Output "MADGE: LAA = "$(LAA) ; endif ; endif EndWait goto Adapter_Verify ; ----------------------------------------------------------------------- ; Kick off advanced user options dialog box and check that anything ; input is sensible. ; ----------------------------------------------------------------------- Advanced_Options = + Debug-Output "MADGE: Advanced Options" ; ; set title to include ADVANCED so user knows they are in advanced box. ; set FunctionTitle = "MDGNDIS4 v"$(VersionString)": Madge ADVANCED Token Ring Adapter Setup" ; ; Determine whether the current adapter supports mirroring. ; set AllowedSlaveSlotList = {*(^(SlaveSlotNumberChoices, 1), 1)} ifcontains(i) $(Option) in $(MirroringAdapters) ; set AdapterSupportsMirroring = 1 set SlaveBoxTitle = $(SlaveDisabledTitle) ; else ; set AdapterSupportsMirroring = 0 ; endif ; ; Compile a list of suitable Slave adapter's PCI Device IDs. Suitable Slave ; adapters must meet the following criteria: ; ; (a) Must be of same type as the current Master adapter (PCI only). ; (b) Must be on the same PCI bus as the current Master. ; (c) Must not be currently registered as a Master adapter. ; (d) Must not be currently registered as a Slave adapter for any Master ; other than the current one. ; ifint $(AdapterSupportsMirroring) == 1 ; Debug-Output "== Detecting suitable slaves ===========================" ; ; Determine the PCI device ID of the adapter type we're installing. ; Unfortunately the GetPCIInformation utility function only takes ; PCI VendorId and DeviceId as arguments, and not SubvendorID and ; SubdeviceID so we can't distinguish between adapters with the same ; VendorId and DeviceIds, e.g PCI Mk3 and Presto Mk2. ; set PCI_ID_VEN_MDGPCIHS = 4278 set PCI_ID_DEV_MDGPCIHS = 9 set PCI_ID_VEN_MDGPCIHS2 = 4278 set PCI_ID_DEV_MDGPCIHS2 = 10 set PCI_ID_VEN_MDGPCIBM2 = 4278 set PCI_ID_DEV_MDGPCIBM2 = 2 set PCI_ID_VEN_MDGPCI3 = 4278 set PCI_ID_DEV_MDGPCI3 = 3 set PCI_ID_VEN_OCTX3540 = 4237 set PCI_ID_DEV_OCTX3540 = 8 set PCI_ID_VEN_OCTX3140 = 4237 set PCI_ID_DEV_OCTX3140 = 4 set PCI_ID_VEN_OCTX3141 = 4237 set PCI_ID_DEV_OCTX3141 = 7 set PCI_ID_VEN_OCTX3137 = 4237 set PCI_ID_DEV_OCTX3137 = 1 ; ; Get a list of Madge PCI adapters of this type present in the machine. ; GetPCIInformation returns a list of {bus,device,function} triples. ; This is the list of possible slaves. ; set CardVendorID = $(PCI_ID_VEN_$(Option)) set CardID = $(PCI_ID_DEV_$(Option)) Shell $(UtilityInf), GetPCIInformation, $(CardVendorID) $(CardID) set SlaveList = $($R0) Debug-Output "GetPCIInformation="$(SlaveList) ; ; Get a list of all network adapters installed in the machine. ; set NetcardsPath = $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards" OpenRegKey $(!REG_H_LOCAL) "" $(NetcardsPath) $(MAXIMUM_ALLOWED) NetCardsKey EnumRegKey $(NetCardsKey) CardsList CloseRegKey $(NetCardsKey) Debug-Output "CardsList="$(CardsList) ; ; Iterate along the list of network adapters and build a list of the ; serice names of any Madge adapters. ; set ServiceList = {} ForListDo $(CardsList) ; set ThisElement = $($) set ThisKeyName = *($(ThisElement), 1) OpenRegKey $(!REG_H_LOCAL) "" $(NetcardsPath)"\"$(ThisKeyName) $(MAXIMUM_ALLOWED) NetCardsKey GetRegValue $(NetCardsKey) "ProductName" ThisProduct GetRegValue $(NetCardsKey) "ServiceName" ThisService ; ; Lose any entries that don't have a Madge driver. ; set ThisProduct = *($(ThisProduct), 4) set ThisService = *($(ThisService), 4) ifstr(i) $(ThisProduct) == "MDGNDIS4" ; set ServiceList = >($(ServiceList), $(ThisService)) ; endif CloseRegKey $(NetCardsKey) ; EndForListDo Debug-Output "ServiceList="$(ServiceList) ; ; Now look at the service parameters for each of the Madge adapters ; found and determine their PCI bus and device number and the device ; number of their slaves - if any. Remove any matching adapters from ; the list of possible slaves. ; ForListDo $(ServiceList) ; set ThisService = $($) Debug-Output "ThisService="$(ThisService) ; ; Open a key to this service. ; set KeyPath = $(!NTN_ServiceBase)"\"$(ThisService)"\Parameters" OpenRegKey $(!REG_H_LOCAL) "" $(KeyPath) $(MAXIMUM_ALLOWED) ServiceKey ; ; Ignore non-PCI adapters. ; GetRegValue $(ServiceKey) "BusType" BusTypeValue Debug-Output "BusType="$(BusTypeValue) set BusTypeValue = *($(BusTypeValue), 4) ifint $(BusTypeValue) != 5 ; goto GetNextService ; endif ; ; This is a PCI card so continue. ; GetRegValue $(ServiceKey) "BusNumber" BusNumberValue GetRegValue $(ServiceKey) "SlotNumber" SlotNumberValue GetRegValue $(ServiceKey) "SlaveSlotNumber" SlaveSlotNumberValue set BusNumberValue = *($(BusNumberValue), 4) set SlotNumberValue = *($(SlotNumberValue), 4) set SlaveSlotNumberValue = *($(SlaveSlotNumberValue), 4) Debug-Output "BusNumber ="$(BusNumberValue) Debug-Output "SlotNumber ="$(SlotNumberValue) Debug-Output "SlaveSlotNumber ="$(SlaveSlotNumberValue) ; ; Remove any matching adapters from the list of possible slaves. ; set TempList = {} ForListDo $(SlaveList) ; set ThisEntry = $($) ifint $(BusNumberValue) == *($(ThisEntry),1) ; ifint $(SlotNumberValue) == *($(ThisEntry),2) ; goto SlaveInUse ; endif ifint $(SlaveSlotNumberValue) == *($(ThisEntry),2) ; ; ; Check whether this Master adapter is the ; one which we are currently configuring, if so ; don't remove this entry from the list. ; ifint $(SlotNumberValue) != $(SlotNumber) ; goto SlaveInUse ; endif ; endif ; endif set TempList = >($(TempList), $(ThisEntry)) SlaveInUse = + ; EndForListDo set SlaveList = $(TempList) GetNextService = + CloseRegKey $(ServiceKey) ; EndForListDo ; ; Remove: ; (a) the adapter we're currently installing and ; (b) any adapters on a different bus number to the master ; from the list of possible slaves. ; set TempList = {} ifstr(i) $(AdapterDetected) == TRUE ; set MasterBusNumber = $(DetectBusNumber) ; else ; set MasterBusNumber = $(BusNumber) ; endif ForListDo $(SlaveList) ; set ThisEntry = $($) ifint $(MasterBusNumber) == *($(ThisEntry),1) ; ifint $(SlotNumber) == *($(ThisEntry),2) ; goto SlaveInUse2 ; endif set TempList = >($(TempList), $(ThisEntry)) ; endif SlaveInUse2 = + ; EndForListDo set SlaveList = $(TempList) ; ; Check if the list of possible slaves is empty. ; ifstr(i) $(SlaveList) == {} ; set SlaveBoxText = $(NoSuitableSlavesText) ; else ; ifint $(SlaveSlotNumber) == 0 ; set SlaveBoxText = $(MirroringDisabledText) ; else ; set SlaveBoxTitle = $(SlaveEnabledTitle) set SlaveBoxText = $(MirroringEnabledText) ; endif ; endif ; ; Compile a list of slave PCI device IDs. ; ForListDo $(SlaveList) ; set ThisEntry = $($) set BusNumberValue = *($(ThisEntry),1) set SlotNumberValue = *($(ThisEntry),2) set AllowedSlaveSlotList = >($(AllowedSlaveSlotList),$(SlotNumberValue)) ; EndForListDo Debug-Output "AllowedSlaveSlotList="$(AllowedSlaveSlotList) ; endif ; ; Run through the symbols to set up the default combos ; read-syms FileDependentDlg$(!STF_LANGUAGE)Option$(DlgTemplate) set EditTextIn = {$(MaxFrameSize), $(RingStatus), $(EventLog)} set EditTextLim = {5, 6, 6} set EditTextOut = {$(MaxFrameSize), $(RingStatus), $(EventLog)} ; ; To allow us to re-use the dialog box for PCI-EISA we need ; to change Combo1Label and Combo1Out. ; ifcontains(i) $(Option) in $(SlotNumberAdapters) ; set Combo1Out = $(SlotNumber) set Combo1Label = $(PciCombo1Label) ; else-ifstr(i) $(Option) == "MDGEISA" ; set Combo1Out = $(IoLocation) set Combo1Label = $(EisaCombo1Label) ; endif ; ; Similarly, change the Wol combo box to PCMCIA Memory window ; for Olicom PCMCIA cards ; ifcontains(i) $(Option) in $(OlicomPcmciaAdapters) ; set Combo14Out = $(PcmciaMemWin) set Combo14Label = $(OlicomPcmciaCombo14Label) set Combo14List = $(PcmciaMemWinList) ; endif ; ; ... and disable the watchdog on Hawkeye/Bullseye cards ; ifcontains(i) $(Option) in $(OlicomHebeAdapters) ; set Combo13List = $(DisabledOnlyList) ; endif ; ---------------------------------------------------------------------- ; Then display the dialog box ; ---------------------------------------------------------------------- ifint $(AdapterSupportsMirroring) == 1 ; set DlgTemplate = "MDGADVANCEDM" ; else ; set DlgTemplate = "MDGADVANCED" ; endif ; ; Don't need to worry about unattended install here ; EndWait Advanced_Dialog = + ui start "InputDlg" $(MdgDialog) StartWait ; ---------------------------------------------------------------------- ; Extract the values from the dialog box. ; ---------------------------------------------------------------------- ifstr(i) $(DLGEVENT) == "CONTINUE" ; ifcontains(i) $(Option) in $(SlotNumberAdapters) ; set SlotNumber = $(Combo1Out) set IoLocation = "" Debug-Output "MADGE: IO1="$(IoLocation) Debug-Output "MADGE: SN1="$(SlotNumber) ; else ; set IoLocation = $(Combo1Out) set SlotNumber = "" Debug-Output "MADGE: IO2="$(IoLocation) Debug-Output "MADGE: SN2="$(SlotNumber) ; endif set IrqNumber = $(Combo4Out) set DmaChannel = $(Combo5Out) set TxSlots = $(Combo6Out) set RxSlots = $(Combo7Out) set TransferType = $(Combo8Out) set TestXID = $(Combo9Out) set MacOpenMode = $(Combo10Out) set StatsGathering = $(Combo11Out) set QuietMode = $(Combo12Out) set Watchdog = $(Combo13Out) ; ifcontains(i) $(Option) in $(OlicomPcmciaAdapters) ; set PcmciaMemWin = $(Combo14Out) ; If we don't already have a PcmciaMemWinLen then set it ; (i.e. not autodetect install) ifstr(i) $(PcmciaMemWinLen) == "0" ; set PcmciaMemWinLen = 4096 ; endif ; ; else ; set Wol = $(Combo14Out) ; endif ; set MaxFrameSize = *($(EditTextOut), 1) set RingStatus = *($(EditTextOut), 2) set EventLog = *($(EditTextOut), 3) ifint $(AdapterSupportsMirroring) == 1 ; set SlaveSlotNumber = $(Combo15Out) set BeaconTimeout = $(Combo16Out) set SingleStationTimeout = $(Combo17Out) ; endif ; else-ifstr(i) $(DLGEVENT) == "DLGBUTTON1" ; LoadLibrary "x" $(DialogDllName) MdgDialog set FLibraryErrCtl = 1 LibraryProcedure MdgResult $(MdgDialog) MadgeStartHelp set FLibraryErrCtl = 0 FreeLibrary $(MdgDialog) ui pop 1 goto Advanced_Dialog ; endif ; ---------------------------------------------------------------------- ; All the same stuff as above so the main dialog open without reloading ; the dll ; ---------------------------------------------------------------------- ui pop 1 set DlgTemplate = "MDG" set FunctionTitle = "MDGNDIS4 v"$(VersionString)": Madge Token Ring Adapter Setup" read-syms FileDependentDlg$(!STF_LANGUAGE)Option$(DlgTemplate) set Combo2Out = $(OldCombo2) ; ---------------------------------------------------------------------- ; And finally return to main options dialog ; ---------------------------------------------------------------------- goto Main_Install_Options ; ----------------------------------------------------------------------- ; Verify the main install adapter options. ; ----------------------------------------------------------------------- Adapter_Verify = + StartWait ; ; If the user entered an LAA then validate it. ; ifstr $(LAA) != "" ; ; ; NB A line of spaces will come through here, and will fail the ; check - do we want this? ; LoadLibrary "x" $(DialogDllName) MdgDialog set FLibraryErrCtl = 1 LibraryProcedure MdgResult $(MdgDialog) MadgeLAACheck $(LAA) set FLibraryErrCtl = 0 FreeLibrary $(MdgDialog) ifstr $(MdgResult) != "MADGE_STATUS_SUCCESS" ; ; ; Illegal LAA supplied in the install dialog ; Display error message and go around again ; set Error = $(MdgResult) ; ; This will go back to Get_Adapter_Options or to end. ; goto Non_Fatal ; endif ; endif ; ; Ring Status mask should be between 0 and 3fff ; ifstr $(RingStatus) != "" ; ifint $(RingStatus) < 0 ; set RingStatus = 16383 set Error = $(INVALID_RING_STAT) set From = Adapter_Verify goto Non_Fatal_Info ; endif ifint $(RingStatus) > 65535 ; set RingStatus = 16383 set Error = $(INVALID_RING_STAT) set From = Adapter_Verify goto Non_Fatal_Info ; endif ; endif ; ; 17839 is the maximum frame size at 16Mbps, while at 4Mbps it is 4472. ; Unfortunately, we can't tell here what the ring speed is, so guess at ; 16Mbps, which is the most sensible. ; ifint $(MaxFrameSize) > 17839 ; set MaxFrameSize = 17839 set Error = $(TRIMMED_MFS) set From = Adapter_Verify goto Non_Fatal_Info ; endif ifint $(MaxFrameSize) < 256 ; set MaxFrameSize = 256 set Error = $(INVALID_MFS) set From = Adapter_Verify goto Non_Fatal_Info ; endif ; ; If a Mirror slave adapter has been selected, ensure that an LAA ; has been specified and make sure that the Master and Slave PCI ; device IDs are different. ; ifint $(SlaveSlotNumber) != 0 ; ifint $(SlotNumber) == $(SlaveSlotNumber) ; set Error = $(MASTER_AND_SLAVE_CLASH) set From = Get_Adapter_Options_Restart goto Non_Fatal_Info ; endif ifstr $(LAA) == "" ; set Error = $(SET_LAA_FOR_MIRRORING) set From = Get_Adapter_Options_Restart goto Non_Fatal_Info ; endif ; endif EndWait ; ----------------------------------------------------------------------- ; We have checked the options so add the software parameters to the ; registry. ; ----------------------------------------------------------------------- Update_Registry = + ; ; If installing, go create the necessary keys; ; if configuring, they're already open. ; ifint $(OldVersionExisted) == $(TRUE) ; ifstr(i) $(!NTN_InstallMode) == configure ; goto Write_Parameters ; endif ; endif StartWait ; ; Add Software Component. ; ifint $(OldVersionExisted) == $(FALSE) ; Shell $(UtilityInf), AddSoftwareComponent, $(Manufacturer), + $(ProductSoftwareName), + $(ProductSoftwareName), + $(ProductSoftwareTitle), $(STF_CONTEXTINFNAME), + $(ProductSoftwareImagePath), "kernel", "NDIS", {}, "",+ $(MadgeEventLogFile) Set OEM_ABANDON_SOFTWARE = TRUE ifint $($ShellCode) != $(!SHELL_CODE_OK) ; goto Shell_Code_Error ; endif ; ; At this point: ; $R1 contains the product version key handle; ; $R2 contains the NetRules subkey handle; ; $R3 contains the new Services key handle; and ; $R4 contains the Parameters key ; $R5 contains the Linkage Key ; set RegistryErrorIndex = $($R0) set KeyProduct = $($R1) Set SoftNetRulesKey = $($R2) CloseRegKey $($R3) CloseRegKey $($R4) CloseRegKey $($R5) ifstr(i) $(RegistryErrorIndex) != NO_ERROR ; CloseRegKey $(KeyProduct) CloseRegKey $(SoftNetRulesKey) goto Fatal_Registry ; endif set NewValueList = {{SoftwareType,$(NoTitle),$(!REG_VT_SZ),$(SoftwareType)},+ {MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMajorVersion)},+ {MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMinorVersion)},+ {Title,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareTitle)},+ {Description,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareDescription)},+ {PathName,$(NoTitle),$(!REG_VT_SZ),$(!STF_CWDDIR)},+ {ServiceName,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareName)},+ {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}} Shell $(UtilityInf), AddValueList, $(KeyProduct), $(NewValueList) ifint $($ShellCode) != $(!SHELL_CODE_OK) ; goto Shell_Code_Error ; endif set RegistryErrorIndex = $($R0) ifstr(i) $(RegistryErrorIndex) != NO_ERROR ; CloseRegKey $(KeyProduct) CloseRegKey $(SoftNetRulesKey) goto Fatal_Registry ; endif set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareType)},+ {use,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareUse)}, + {bindform,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareBindForm)}, + {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleSoftwareClass)}, + {bindable,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleSoftwareBindable)}, + {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}, + {Infname ,$(NoTitle),$(!REG_VT_SZ),$(STF_CONTEXTINFNAME)} } Shell $(UtilityInf), AddValueList, $(SoftNetRulesKey), $(NewValueList) ifint $($ShellCode) != $(!SHELL_CODE_OK) ; goto Shell_Code_Error ; endif set RegistryErrorIndex = $($R0) CloseRegKey $(KeyProduct) CloseRegKey $(SoftNetRulesKey) ifstr(i) $(RegistryErrorIndex) != NO_ERROR ; goto Fatal_Registry ; endif ; endif ; ; Create the HARDWARE\Netcard region and its corresponding service ; Shell $(UtilityInf), AddHardwareComponent, $(ProductHardwareName),$(STF_CONTEXTINFNAME),$(ProductKeyName) ifint $($R4) != -1 ; Set OEM_ABANDON_OPTIONS = >($(OEM_ABANDON_OPTIONS), $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards\"$($R4)) ; endif ifint $($ShellCode) != $(!SHELL_CODE_OK) ; goto Shell_Code_Error ; endif set RegistryErrorIndex = $($R0) ifstr(i) $(RegistryErrorIndex) != NO_ERROR ; CloseRegKey $($R1) CloseRegKey $($R2) CloseRegKey $($R3) goto Fatal_Registry ; endif ; ; At this point: ; $R1 Registry key variable for HARDWARE\Netcard\(n) ; $R2 Registry key variable for HARDWARE\Netcard\(n)\\NetRules ; $R3 Registry key handle for <service>\Parameters key ; $R4 Adapter number assigned to adapter ; $R5 Service name generated by combining svc name with adapter number ; set KeyParameters = $($R3) set KeyAdapterRules = $($R2) set AdapterNumber = $($R4) set NewValueList = {{Manufacturer,$(NoTitle),$(!REG_VT_SZ),$(Manufacturer)},+ {Title,$(NoTitle),$(!REG_VT_SZ),"["$($R4)"] "$(ProductHardware$(Option))},+ {Description,$(NoTitle),$(!REG_VT_SZ),$(ProductHardware$(Option))},+ {ProductName,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareName)},+ {ServiceName,$(NoTitle),$(!REG_VT_SZ),$($R5)},+ {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}} Shell $(UtilityInf), AddValueList, $($R1), $(NewValueList) ifint $($ShellCode) != $(!SHELL_CODE_OK) ; goto Shell_Code_Error ; endif CloseRegKey $($R1) set TempProdName = """"$(ProductHardwareName)$(AdapterNumber)"""" set TempBindForm = $(TempProdName)$(NetRuleHardwareBindForm) set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleHardwareType)},+ {bindform,$(NoTitle),$(!REG_VT_SZ),$(TempBindForm)}, + {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleHardwareClass)}, + {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}, + {Infname ,$(NoTitle),$(!REG_VT_SZ),$(STF_CONTEXTINFNAME)}} Shell $(UtilityInf), AddValueList, $(KeyAdapterRules), $(NewValueList) ifint $($ShellCode) != $(!SHELL_CODE_OK) ; goto Shell_Code_Error ; endif set RegistryErrorIndex = $($R0) ifstr(i) $(RegistryErrorIndex) != NO_ERROR ; CloseRegKey $(KeyParameters) CloseRegKey $(KeyAdapterRules) goto Fatal_Registry ; endif CloseRegKey $(KeyAdapterRules) EndWait ; ---------------------------------------------------------------------- ; Write the adapter parameters into the registry. ; ---------------------------------------------------------------------- ; ; REQUIRED: $(KeyParameters) contains service Parameters key handle. ; Write_Parameters = + StartWait Debug-Output "IO5="$(IoLocation) Debug-Output "SN5="$(SlotNumber) ; ; If we have done an automatic installation then use the ; detected bus type and bus number values. ; ifstr(i) $(AdapterDetected) == TRUE ; Debug-Output "MADGE: Adapter detected bus no = "$(DetectBusNumber) set BusType = $(DetectBusType) set BusNumber = $(DetectBusNumber) ; endif ; ; If we are doing an unattended installation and bus overrides ; have been specified then us these. ; ifstr(i) $(!STF_GUI_UNATTENDED) == "YES" ; ifstr(i) $(!AutoNetInterfaceType) != "" ; set BusType = $(!AutoNetInterfaceType) ; endif ifstr(i) $(!AutoNetBusNumber) != "" ; set BusNumber = $(!AutoNetBusNumber) ; endif ; endif ; ; If either bus type or bus number is not known then ask the user ; to supply them. ; ifint $(BusType) == $(VALUE_UNKNOWN) ; set BusNumber = $(VALUE_UNKNOWN) ; endif ifcontains(i) $(Option) in $(CardbusAdapters) ; ; ; This is a cardbus manual install and the bus number and type are ; irrelevant to the driver, so just fill in 5 for PCI bus and 0 for no. ; set BusType = 5 set BusNumber = 0 ; endif ifstr(i) $(!STF_GUI_UNATTENDED) != "YES" ; ifint $(BusNumber) == $(VALUE_UNKNOWN) ; Shell $(UtilityInf), GetBusTypeDialog, $(ProductHardware$(Option)Description) ifint $($ShellCode) != $(!SHELL_CODE_OK) ; goto Shell_Code_Error ; endif ifstr(i) $($R0) == ERROR ; Shell $(UtilityInf), GetBusTypeNum ifint $($ShellCode) != $(!SHELL_CODE_OK) ; goto Shell_Code_Error ; endif set BusType = $($R1) set BusNumber = 0 ; else ; set BusType = $($R1) set BusNumber = $($R2) ; endif ; endif ; endif ; ; It would appear that when installing a PCMCIA adapter ; one should give the bus type of the PCMCIA controller ; rather than PCMCIA itself. ; ifcontains(i) $(Option) in $(PcmciaAdapters) ; set BusType = 1 ; endif ; ; Derive the adapter type. ; set AdapterTypeFlag = $(AdapterTypeFlag$(Option)) ; ; If we are doing an unattend install and the user has manually ; selected a PCI adapter we need to make the SlotNumber=0xffffffff ; (rather than the default 0) so the driver will search for the adapter. ; ifstr(i) $(!STF_GUI_UNATTENDED) == "YES" ; ifcontains(i) $(Option) in $(SlotNumberAdapters) ; ifint $(NumberFound) == 0 ; set SlotNumber = 4294967295 ; endif ; endif ; endif ; ; Add the rest of the parameters to the Services adapter area. ; Debug-Output "MADGE: Setting NewValueList" ifcontains(i) $(Option) in $(SlotNumberAdapters) ; set NewValueList = {+ {BusType, $(NoTitle),$(!REG_VT_DWORD),$(BusType)},+ {BusNumber, $(NoTitle),$(!REG_VT_DWORD),$(BusNumber)},+ {MediaType, $(NoTitle),$(!REG_VT_DWORD),2},+ {SlotNumber, $(NoTitle),$(!REG_VT_DWORD),$(SlotNumber)},+ {AdapterType, $(NoTitle),$(!REG_VT_DWORD),$(AdapterTypeFlag)}} ; else ; set NewValueList = {+ {BusType, $(NoTitle),$(!REG_VT_DWORD),$(BusType)},+ {BusNumber, $(NoTitle),$(!REG_VT_DWORD),$(BusNumber)},+ {MediaType, $(NoTitle),$(!REG_VT_DWORD),2},+ {IoBaseAddress, $(NoTitle),$(!REG_VT_DWORD),$(IoLocation)},+ {AdapterType, $(NoTitle),$(!REG_VT_DWORD),$(AdapterTypeFlag)}} ; endif ; ; If Olicom PCMCIA, set memory window and IO length ; ifcontains(i) $(Option) in $(OlicomPcmciaAdapters) ; set NewValueList = >($(NewValueList),+ {PCCARDAttributeMemoryAddress, $(NoTitle),$(!REG_VT_DWORD),$(PcmciaMemWin)}) set NewValueList = >($(NewValueList),+ {PCCARDAttributeMemorySize, $(NoTitle),$(!REG_VT_DWORD),$(PcmciaMemWinLen)}) set NewValueList = >($(NewValueList),+ {PCCARDAttributeMemoryOffset, $(NoTitle),$(!REG_VT_DWORD),0}) set NewValueList = >($(NewValueList),+ {IoLength, $(NoTitle),$(!REG_VT_DWORD),32}) ; endif ; ; If this is a PCMCIA adapter we need to a PCMCIA flag. ; ifcontains(i) $(Option) in $(PcmciaAdapters) ; set NewValueList = >($(NewValueList),+ {Pcmcia, $(NoTitle), $(!REG_VT_DWORD), 1}) ; ; Check for NT 4 stub registry containing madgemport bug. ; OpenRegKey $(!REG_H_LOCAL) "" $(FixedDatabase) $(MAXIMUM_ALLOWED) fffixup ifstr $(fffixup) != $(KeyNull) ; Debug-Output "MADGE: Opened C.S.1 Madge Database key" GetRegValue $(fffixup), "Driver", DrvInfo Debug-Output "MADGE: Extracted DrvInfo: "$(DrvInfo) ifstr(i) *($(DrvInfo),4) != $(ProductSoftwareName) ; Debug-Output "MADGE: Updating the C.C Madge Database Key" ; ; Open the NT4.0 Madge PCMCIA database key and reset values. ; OpenRegKey $(!REG_H_LOCAL) "" $(PcmciaDatabase) $(MAXIMUM_ALLOWED) dbfixup ifstr $(dbfixup) != $(KeyNull) ; Debug-Output "MADGE: Opened C.C Madge Database Key and updating values" SetRegValue $(dbfixup) {driver,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareName)} SetRegValue $(dbfixup) {InfFileName,$(NoTitle),$(!REG_VT_SZ),""} SetRegValue $(dbfixup) {Option,$(NoTitle),$(!REG_VT_SZ),$(Option)} ; endif CloseRegKey $(dbfixup) ; endif ; endif CloseRegKey $(fffixup) ; endif ifcontains(i) $(Option) in $(OlicomPcmciaAdapters) ; ; ; Change Olicom registry key to point to this driver ; Debug-Output "MADGE: Opening Olicom PCMCIA database" OpenRegKey $(!REG_H_LOCAL) "" $(OlicomPcmciaDatabase) $(MAXIMUM_ALLOWED) database Debug-Output "MADGE: Creating Olicom card key" CreateRegKey $(database) {$($(Option)DatabaseLast), 0, GenericClass} "" $(!REG_KEY_SET_VALUE) "" ockey ifstr $(ockey) == $(KeyNull) ; OpenRegKey $(!REG_H_LOCAL) "" $($(Option)Database) $(MAXIMUM_ALLOWED) ockey ; endif ifstr $(ockey) != $(KeyNull) ; Debug-Output "MADGE: Setting general Olicom net values" SetRegValue $(ockey) {Driver, $(NoTitle), $(!REG_VT_SZ), $(ProductSoftwareName)} SetRegValue $(ockey) {DeviceType, $(NoTitle), $(!REG_VT_SZ), "NET"} SetRegValue $(ockey) {Option, $(NoTitle), $(!REG_VT_SZ), $(Option)} ifstr $(Option) == "OCTX3221" ; Debug-Output "MADGE: Setting values for GoCard 3221" SetRegValue $(ockey) {AttributeMemorySize, $(NoTitle), $(!REG_VT_DWORD), 4096} ; endif ; endif CloseRegKey $(ockey) ; endif ifcontains(i) $(Option) in $(CardbusAdapters) ; ifstr $(SSoftCB) == $(TRUE) ; set NewValueList = >($(NewValueList),+ {Pcmcia, $(NoTitle), $(!REG_VT_DWORD), 1}) ; endif ifstr $(SoftexCB) == $(TRUE) ; set NewValueList = >($(NewValueList),+ {Pcmcia, $(NoTitle), $(!REG_VT_DWORD), 1}) ; endif ifstr $(MadgeCB) == $(TRUE) ; set NewValueList = >($(NewValueList),+ {PCCardEnabler, $(NoTitle), $(!REG_VT_DWORD), 1}) ; endif ; ; Add CardBus card information to PCMCIA database. ; Debug-Output "MADGE: Opening PCMCIA database" OpenRegKey $(!REG_H_LOCAL) "" $(CardbusDatabase) $(MAXIMUM_ALLOWED) database Debug-Output "MADGE: Creating 16/4 CARDBUS ADAPTER registry key" CreateRegKey $(database) {"16/4 CARDBUS ADAPTER", 0, GenericClass} "" $(!REG_KEY_SET_VALUE) "" cardbus ifstr $(cardbus) != $(KeyNull) ; Debug-Output "MADGE: Setting values for CardBus Adapter" SetRegValue $(cardbus) {Driver, $(NoTitle), $(!REG_VT_SZ), $(ProductSoftwareName)} SetRegValue $(cardbus) {DeviceType, $(NoTitle), $(!REG_VT_SZ), "NET"} SetRegValue $(cardbus) {Option, $(NoTitle), $(!REG_VT_SZ), $(Option)} CloseRegKey $(cardbus) ; else ; OpenRegKey $(!REG_H_LOCAL) "" $(CBDatabase) $(MAXIMUM_ALLOWED) cardbus ifstr $(cardbus) != $(KeyNull) ; Debug-Output "MADGE: Setting values for CardBus Adapter" SetRegValue $(cardbus) {Driver, $(NoTitle), $(!REG_VT_SZ), $(ProductSoftwareName)} SetRegValue $(cardbus) {DeviceType, $(NoTitle), $(!REG_VT_SZ), "NET"} SetRegValue $(cardbus) {Option, $(NoTitle), $(!REG_VT_SZ), $(Option)} CloseRegKey $(cardbus) ; endif ; endif Debug-Output "MADGE: Creating CARDBUS ADAPTER MK 2 registry key" CreateRegKey $(database) {"CARDBUS ADAPTER MK 2", 0, GenericClass} "" $(!REG_KEY_SET_VALUE) "" cardbus ifstr $(cardbus) != $(KeyNull) ; Debug-Output "MADGE: Setting values for CardBus Adapter Mk2" SetRegValue $(cardbus) {Driver, $(NoTitle), $(!REG_VT_SZ), $(ProductSoftwareName)} SetRegValue $(cardbus) {DeviceType, $(NoTitle), $(!REG_VT_SZ), "NET"} SetRegValue $(cardbus) {Option, $(NoTitle), $(!REG_VT_SZ), $(Option)} CloseRegKey $(cardbus) ; else ; OpenRegKey $(!REG_H_LOCAL) "" $(CB2Database) $(MAXIMUM_ALLOWED) cardbus ifstr $(cardbus) != $(KeyNull) ; Debug-Output "MADGE: Setting values for CardBus Adapter Mk2" SetRegValue $(cardbus) {Driver, $(NoTitle), $(!REG_VT_SZ), $(ProductSoftwareName)} SetRegValue $(cardbus) {DeviceType, $(NoTitle), $(!REG_VT_SZ), "NET"} SetRegValue $(cardbus) {Option, $(NoTitle), $(!REG_VT_SZ), $(Option)} CloseRegKey $(cardbus) ; endif ; endif CloseRegKey $(database) ; ; Add Olicom CardBus card information to PCMCIA database. ; Debug-Output "MADGE: Opening PCMCIA database for Olicom" OpenRegKey $(!REG_H_LOCAL) "" $(OlicomPcmciaDatabase) $(MAXIMUM_ALLOWED) database Debug-Output "MADGE: Creating Olicom GoCard 3250 registry key" CreateRegKey $(database) {$(OCTX3250DatabaseLast), 0, GenericClass} "" $(!REG_KEY_SET_VALUE) "" cardbus ifstr $(cardbus) != $(KeyNull) ; Debug-Output "MADGE: Setting values for CardBus Adapter GoCard 3250" SetRegValue $(cardbus) {Driver, $(NoTitle), $(!REG_VT_SZ), $(ProductSoftwareName)} SetRegValue $(cardbus) {DeviceType, $(NoTitle), $(!REG_VT_SZ), "NET"} SetRegValue $(cardbus) {Option, $(NoTitle), $(!REG_VT_SZ), $(Option)} CloseRegKey $(cardbus) ; else ; OpenRegKey $(!REG_H_LOCAL) "" $(OCTX3250Database) $(MAXIMUM_ALLOWED) cardbus ifstr $(cardbus) != $(KeyNull) ; Debug-Output "MADGE: Setting values for CardBus Adapter GoCard 3250" SetRegValue $(cardbus) {Driver, $(NoTitle), $(!REG_VT_SZ), $(ProductSoftwareName)} SetRegValue $(cardbus) {DeviceType, $(NoTitle), $(!REG_VT_SZ), "NET"} SetRegValue $(cardbus) {Option, $(NoTitle), $(!REG_VT_SZ), $(Option)} CloseRegKey $(cardbus) ; endif ; endif CloseRegKey $(database) ; endif ; ; We only want to set the advanced options if specifically ; asked to do so by the user - as it is better to use the values ; determined by the UDT or OS. These parameters all have 0 = to ; UNKNOWN and we will not set them if so. If the user has set any ; of these parameters to UNKNOWN and there is already an entry in ; the registry we must remove it. ; ifcontains(i) $(Option) in $(PcmciaAdapters) ; ; ; Must set the IRQ ; set NewValueList = >($(NewValueList),+ {InterruptNumber, $(NoTitle), $(!REG_VT_DWORD), $(IrqNumber)}) ; else-ifstr(i) $(IrqNumber) == $(DEF_IRQ_NUMBER) ; ifstr(i) $(OldIrq) != $(VALUE_UNKNOWN) ; DeleteRegValue $(KeyParameters) InterruptNumber ; endif ; else ; set NewValueList = >($(NewValueList),+ {InterruptNumber, $(NoTitle), $(!REG_VT_DWORD), $(IrqNumber)}) ; endif ifstr(i) $(SpeedFlag) == $(DEF_SPEED) ; ifstr(i) $(OldSpeedFlag) != $(VALUE_UNKNOWN) ; DeleteRegValue $(KeyParameters) RingSpeed ; endif ; else ; set NewValueList = >($(NewValueList),+ {RingSpeed, $(NoTitle), $(!REG_VT_DWORD), $(SpeedFlag)}) ; endif ifstr(i) $(DmaChannel) == $(DEF_DMA_CHANNEL) ; ifstr(i) $(OldDma) != $(VALUE_UNKNOWN) ; DeleteRegValue $(KeyParameters) DmaChannel ; endif ; else ; set NewValueList = >($(NewValueList),+ {DmaChannel, $(NoTitle), $(!REG_VT_DWORD), $(DmaChannel)}) ; endif ifstr(i) $(TransferType) == $(DEF_TRANSFER_TYPE) ; ifstr(i) $(OldTransferType) != $(VALUE_UNKNOWN) ; DeleteRegValue $(KeyParameters) TransferType ; endif ; else ; set NewValueList = >($(NewValueList),+ {TransferType, $(NoTitle), $(!REG_VT_DWORD), $(TransferType)}) ; endif ifstr(i) $(TxSlots) == $(DEF_TX_SLOTS) ; ifstr(i) $(OldTxSlots) != $(VALUE_UNKNOWN) ; DeleteRegValue $(KeyParameters) TxSlots ; endif ; else ; set NewValueList = >($(NewValueList),+ {TxSlots, $(NoTitle), $(!REG_VT_DWORD), $(TxSlots)}) ; endif ifstr(i) $(RxSlots) == $(DEF_RX_SLOTS) ; ifstr(i) $(OldRxSlots) != $(VALUE_UNKNOWN) ; DeleteRegValue $(KeyParameters) RxSlots ; endif ; else ; set NewValueList = >($(NewValueList),+ {RxSlots, $(NoTitle), $(!REG_VT_DWORD), $(RxSlots)}) ; endif ifstr(i) $(TestXID) == $(DEF_TEST_XID) ; ifstr(i) $(OldTestXID) != $(VALUE_UNKNOWN) ; DeleteRegValue $(KeyParameters) TestAndXIDEnabled ; endif ; else ; set NewValueList = >($(NewValueList),+ {TestAndXIDEnabled, $(NoTitle), $(!REG_VT_DWORD), $(TestXID)}) ; endif ifstr(i) $(MacOpenMode) == $(DEF_MAC_OPEN_MODE) ; ifstr(i) $(OldMacOpen) != $(VALUE_UNKNOWN) ; DeleteRegValue $(KeyParameters) MacOpen ; endif ; else ; set NewValueList = >($(NewValueList),+ {MacOpen, $(NoTitle), $(!REG_VT_DWORD), $(MacOpenMode)}) ; endif ifstr(i) $(StatsGathering) == $(DEF_STATS_GATHERING) ; ifstr(i) $(OldStatsGathering) != $(VALUE_UNKNOWN) ; DeleteRegValue $(KeyParameters) StatsGathering ; endif ; else ; set NewValueList = >($(NewValueList),+ {StatsGathering, $(NoTitle), $(!REG_VT_DWORD), $(StatsGathering)}) ; endif ifstr(i) $(Wol) == $(DEF_WOL) ; ifstr(i) $(OldWol) != $(VALUE_UNKNOWN) ; DeleteRegValue $(KeyParameters) WOL ; endif ; else ; set NewValueList = >($(NewValueList),+ {WOL, $(NoTitle), $(!REG_VT_DWORD), $(Wol)}) ; endif ifstr(i) $(QuietMode) == $(DEF_QUIET_MODE) ; ifstr(i) $(OldQuietMode) != $(VALUE_UNKNOWN) ; DeleteRegValue $(KeyParameters) Quiet ; endif ; else ; set NewValueList = >($(NewValueList),+ {Quiet, $(NoTitle), $(!REG_VT_DWORD), $(QuietMode)}) ; endif ifstr(i) $(MaxFrameSize) == $(DEF_MAX_FRAME_SIZE) ; ifstr(i) $(OldMaxFrameSize) != $(VALUE_UNKNOWN) ; DeleteRegValue $(KeyParameters) MaxFrameSize ; endif ; else ; set NewValueList = >($(NewValueList),+ {MaxFrameSize, $(NoTitle), $(!REG_VT_DWORD), $(MaxFrameSize)}) ; endif ifint $(RingStatus) == $(DEF_RING_STATUS_MASK) ; ifstr(i) $(OldRingStatus) != $(VALUE_UNKNOWN) ; DeleteRegValue $(KeyParameters) RingStatusMask ; endif ; else ; set NewValueList = >($(NewValueList),+ {RingStatusMask, $(NoTitle), $(!REG_VT_DWORD), $(RingStatus)}) ; endif ifint $(EventLog) == $(DEF_EVENT_LOG_MASK) ; ifstr(i) $(OldEventLog) != $(VALUE_UNKNOWN) ; DeleteRegValue $(KeyParameters) EventMask ; endif ; else ; set NewValueList = >($(NewValueList),+ {EventMask, $(NoTitle), $(!REG_VT_DWORD), $(EventLog)}) ; endif ifstr(i) $(Watchdog) == $(DEF_WATCHDOG) ; ifstr(i) $(OldWatchdog) != $(VALUE_UNKNOWN) ; DeleteRegValue $(KeyParameters) Watchdog ; endif ; else ; set NewValueList = >($(NewValueList),+ {Watchdog, $(NoTitle), $(!REG_VT_DWORD), $(Watchdog)}) ; endif ifstr(i) $(NetworkAddress) == "" ; ifstr(i) $(OldNetworkAddress) != $(VALUE_UNKNOWN) ; DeleteRegValue $(KeyParameters) NetworkAddress ; endif ; else ; set NewValueList = >($(NewValueList),+ {NetworkAddress, $(NoTitle), $(!REG_VT_SZ), $(NetworkAddress)}) ; endif ifstr(i) $(SlaveSlotNumber) == $(DEF_SLAVE_SLOT_NUMBER) ; ifstr(i) $(OldSlaveSlotNumber) != $(VALUE_UNKNOWN) ; DeleteRegValue $(KeyParameters) SlaveSlotNumber ; endif ; else ; set NewValueList = >($(NewValueList),+ {SlaveSlotNumber, $(NoTitle), $(!REG_VT_DWORD), $(SlaveSlotNumber)}) ; endif ifstr(i) $(BeaconTimeout) == $(DEF_BEACON_TIMEOUT) ; ifstr(i) $(OldBeaconTimeout) != $(VALUE_UNKNOWN) ; DeleteRegValue $(KeyParameters) BeaconTimeout ; endif ; else ; set NewValueList = >($(NewValueList),+ {BeaconTimeout, $(NoTitle), $(!REG_VT_DWORD), $(BeaconTimeout)}) ; endif ifstr(i) $(SingleStationTimeout) == $(DEF_SINGLE_TIMEOUT) ; ifstr(i) $(OldSingleStationTimeout) != $(VALUE_UNKNOWN) ; DeleteRegValue $(KeyParameters) SingleStationTimeout ; endif ; else ; set NewValueList = >($(NewValueList),+ {SingleStationTimeout, $(NoTitle), $(!REG_VT_DWORD), $(SingleStationTimeout)}) ; endif ; ; Uncomment the lines between --> and <-- to perminantly disable ; promiscuous mode on a Smart 16/4 PCI Ringnode Mk3. ; ; --> ; set NewValueList = >($(NewValueList),+ ; {Kill_PM, $(NoTitle), $(!REG_VT_SZ), 1)}) ; <-- ; ; And add the parameters to the registry. ; Shell $(UtilityInf), AddValueList, $(KeyParameters), $(NewValueList) ifint $($ShellCode) != $(!SHELL_CODE_OK) ; goto Shell_Code_Error ; endif set RegistryErrorIndex = $($R0) Ifstr(i) $(RegistryErrorIndex) != NO_ERROR ; CloseRegKey $(KeyParameters) goto Fatal_Registry ; endif ifstr(i) $(!STF_GUI_UNATTENDED) == "YES" ; Shell $(UtilityInf), AddDefaultNetCardParameters, $(KeyParameters) ; endif CloseRegKey $(KeyParameters) ; ; To support Hot Plug PCI we must add registry keys to tell the ; Hot Plug service which miniport OIDs to use to talk to us. ; ifint $(BusType) == 5 ; OpenRegKey $(!REG_H_LOCAL) "" $(CompaqHotPlugKey) $(MAXIMUM_ALLOWED) hpp ifstr(i) $(hpp) == $(KeyNull) ; ; ; The Compaq Hot Plug registry key does not exist. We must add it. ; CreateRegKey $(!REG_H_LOCAL) {$(CompaqHotPlugKey), 0, GenericClass} "" $(!REG_KEY_SET_VALUE) "" hpp SetRegValue $(hpp) {ClassID, $(NoTitle), $(!REG_VT_DWORD), 0} SetRegValue $(hpp) {DLLName, $(NoTitle), $(!REG_VT_SZ), "CQRNICMN.DLL"} ; endif CreateRegKey $(hpp) {$(ProductSoftwareName), 0, GenericClass} "" $(!REG_KEY_SET_VALUE) "" hppmdg SetRegValue $(hppmdg) {BaseOIDAddress, $(NoTitle), $(!REG_VT_DWORD), $(BaseOIDAddress)} SetRegValue $(hppmdg) {SetOIDAddress, $(NoTitle), $(!REG_VT_DWORD), $(SetOIDAddress)} CloseRegKey $(hpp) CloseRegKey $(hppmdg) ; endif EndWait Debug-Output "MADGE: Updated registry" goto Successful ; ----------------------------------------------------------------------- ; Binding section ; ----------------------------------------------------------------------- Binding_Adapter =+ set Error = "Binding: Sorry, not yet implemented." goto Fatal ; ----------------------------------------------------------------------- ; Removal section ; ----------------------------------------------------------------------- Remove_Adapter = + StartWait ; ; Remove the software component if required. ; ifstr(i) $(ProductKeyName) == $(!NTN_RegBase) ; Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), + $(ProductSoftwareName) ifint $($ShellCode) != $(!SHELL_CODE_OK) ; goto Shell_Code_Error ; endif set RegistryErrorIndex = $($R0) ifstr(i) $(RegistryErrorIndex) != NO_ERROR ; goto Fatal_Registry ; endif ; ; ; Or, the hardware component. ; else ; Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), + $(ProductSoftwareName), $(!NTN_RegBase) ifint $($ShellCode) != $(!SHELL_CODE_OK) ; goto Shell_Code_Error ; endif set RegistryErrorIndex = $($R0) ifstr(i) $(RegistryErrorIndex) != NO_ERROR ; goto Fatal_Registry ; endif ; endif EndWait goto End ; ----------------------------------------------------------------------- ; Upgrade Software section. ; ----------------------------------------------------------------------- Upgrade_Software = + StartWait read-syms UpgradeMessages$(!STF_LANGUAGE) set UpdateStatusString = "UPD_STARTED" ; ; Upgrade software component. ; set Current_OptionList = ^(Options, 1) set LSS5_OptionList = ^(LSS502_Options, 1) set LSS5_Option = "" ; ; Store some update status information. ; ifstr(i) $(!NTN_QuickREV) == "YES" ; OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) StatusKey SetRegValue $(StatusKey) {"UpdateStatus", $(NoTitle),$(!REG_VT_SZ), $($(UpdateStatusString))} CloseRegKey $(StatusKey) ; endif read-syms MappingConstants Debug-Output "MADGE: In Upgrade software" Debug-Output "MADGE: Option = "$(Option) Debug-Output "MADGE: !NTN_RegBase = "$(!NTN_RegBase) Debug-Output "MADGE: !ProductKeyName = "$(ProductKeyName) Debug-Output "MADGE: !NTN_ServiceBase = "$(!NTN_ServiceBase) ;--------------------------------------------------------------------- ; Before we go any further make sure this isn't down grading the software. ; It isn't possible to do anything about upgradingto the current as this ; will prevent multi adapter upgrades. OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct ifstr $(KeyProduct) != $(KeyNull) ; GetRegValue $(KeyProduct),"MajorVersion", MajorVersionInfo GetRegValue $(KeyProduct),"MinorVersion", MinorVersionInfo set MajorVersion = *($(MajorVersionInfo), 4) set MinorVersion = *($(MinorVersionInfo), 4) CloseRegKey $(KeyProduct) Debug-output "Current Version: "$(MajorVersion)"."$(MinorVersion) Debug-output "This Version : "$(ProductMajorVersion)"."$(ProductMinorVersion) ifint $(ProductMajorVersion) > $(MajorVersion) ; ; Do nothing Major Version is greater ; else-ifint $(ProductMajorVersion) == $(MajorVersion) ; ifint $(ProductMinorVersion) >= $(MinorVersion) ; ; OK do nothing Mjrs are = and Mnr >= ; else ; ; ; Minor is less -> error ; set UpgradeError = UPD_DOWNGRADING_ERROR goto Fatal_Upgrade_Error ; endif ; else ; ; ; Down grading error ; set UpgradeError = UPD_DOWNGRADING_ERROR goto Fatal_Upgrade_Error ; endif ; else ; ; ; Failure to open the product key probably indicates that the user ; is trying to upgrade to a driver with a different name to the ; one currently installed, which is not permitted. ; set UpgradeError = UPD_OPEN_SOFTWARE_KEY_FAILED goto Fatal_Upgrade_Error ; endif ; ; Check that this option is supported by this driver. ; ifcontains(i) $(Option) not-in $(Current_OptionList) ; set UpgradeError = UPD_OPTION_NOT_SUPPORTED goto Fatal_Upgrade_Error ; endif ; ; Open the software key. ; OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct ifstr $(KeyProduct) != $(KeyNull) ; ; ; Get the name of the .INF file for this adapter. ; OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) $(MAXIMUM_ALLOWED) KeyHardware shell $(UtilityInf) GetInfFileNameFromRegistry $(KeyHardware) CloseRegKey $(KeyHardware) ifint $($ShellCode) != $(!SHELL_CODE_OK) ; set UpdateStatusString = "UPD_GET_INF_NAME_FAILED" goto Shell_Code_Error ; endif set !UG_Filename = $($R0) Debug-Output "MADGE: !UG_Filename = "$(!UG_Filename) ; ; Update the binaries. ; ifstr(i) $(!UG_Filename) != "" ; install "Install-Update" ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS ; set UpdateStatusString = "UPD_INSTALL_FAILED" goto Fatal ; endif ; endif ; ; Upgrade the version number ; SetRegValue $(KeyProduct) {MajorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMajorVersion)} SetRegValue $(KeyProduct) {MinorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMinorVersion)} CloseRegKey $(KeyProduct) ; ; Install the detection DLL in case we are upgrading from a ; version that did not use detection. ; Shell "" PrepareDetectionDll $(DetectDllName) ifstr(i) $($R0) != STATUS_SUCCESSFUL ; set UpdateStatusString = "UPD_PREP_DETECTION_DLL_FAILED" goto Fatal ; endif ; else ; ; ; Cannot Open software key, goto ERROR ; set UpgradeError = UPD_OPEN_SOFTWARE_KEY_FAILED goto Fatal_Upgrade_Error ; endif EndWait set UpdateStatusString = "UPD_SUCCESS" goto End ; ----------------------------------------------------------------------- ; Escape hatches ; ----------------------------------------------------------------------- Successful = + goto End ; ----------------------------------------------------------------------- Abandon = + ForListDo $(OEM_ABANDON_OPTIONS) ; Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), + $(ProductSoftwareName), $($) ifint $($ShellCode) != $(!SHELL_CODE_OK) ; goto Shell_Code_Error ; endif set RegistryErrorIndex = $($R0) Ifstr(i) $(RegistryErrorIndex) != NO_ERROR ; goto Fatal_Registry ; endif ; EndForListDo ifstr(i) $(OEM_ABANDON_SOFTWARE) == TRUE ; ; ; Remove Software Component ; Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), + $(ProductSoftwareName), FALSE ifint $($ShellCode) != $(!SHELL_CODE_OK) ; goto Shell_Code_Error ; endif set RegistryErrorIndex = $($R0) ifstr(i) $(RegistryErrorIndex) != NO_ERROR ; goto Fatal_Registry ; endif ; endif goto End ; ----------------------------------------------------------------------- Warning = + EndWait Shell $(SubroutineInf) SetupMessage, $(!STF_LANGUAGE), "WARNING", $(Error) ifint $($ShellCode) != $(!SHELL_CODE_OK) ; goto Shell_Code_Error ; endif ifstr(i) $($R1) == "OK" ; goto $(To) ; else-ifstr(i) $($R1) == "CANCEL" ; goto $(From) ; endif goto End ; ----------------------------------------------------------------------- Non_Fatal_Info = + set Severity = STATUS set CommonStatus = STATUS_USERCANCEL goto Non_Fatal_Msg ; ----------------------------------------------------------------------- Non_Fatal = + set Severity = NONFATAL goto Non_Fatal_Msg ; ----------------------------------------------------------------------- Non_Fatal_Msg = + EndWait ifstr(i) $(Error) == "" ; set Severity = NONFATAL Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL" ifint $($ShellCode) != $(!SHELL_CODE_OK) ; goto Shell_Code_Error ; endif set Error = $($R0) ; endif Shell $(SubroutineInf) SetupMessage, $(!STF_LANGUAGE), "NONFATAL", $(Error) ifint $($ShellCode) != $(!SHELL_CODE_OK) ; goto Shell_Code_Error ; endif ifstr(i) $($R1) == "OK" ; goto $(From) ; endif goto End ; ----------------------------------------------------------------------- Fatal_Upgrade_Error = + read-syms UpgradeMessages$(!STF_LANGUAGE) set CommonStatus = STATUS_FAILED set UpdateStatusString = $(UpgradeError) ifstr(i) $(!NTN_RunMode) != "BATCH" ; Shell "SUBROUTN.INF" SetupMessage, $(!STF_LANGUAGE), "FATAL", $($(UpgradeError)) ; endif goto End ; ----------------------------------------------------------------------- Fatal_Registry = + Shell $(UtilityInf) RegistryErrorString $(RegistryErrorIndex) ifint $($ShellCode) != $(!SHELL_CODE_OK) ; goto Shell_Code_Error ; endif set Error = $($R0) goto Fatal ; ----------------------------------------------------------------------- Fatal = + EndWait ifstr(i) $(Error) == "" ; Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL" ifint $($ShellCode) != $(!SHELL_CODE_OK) ; goto Shell_Code_Error ; endif set Error = $($R0) ; endif Shell $(SubroutineInf) SetupMessage, $(!STF_LANGUAGE), "FATAL", $(Error) ifint $($ShellCode) != $(!SHELL_CODE_OK) ; goto Shell_Code_Error ; endif goto Set_Failed ; ----------------------------------------------------------------------- Not_Supported = + EndWait ifstr(i) $(Error) == "" ; Shell $(UtilityInf) RegistryErrorString "OPERATION_UNIMPLEMENTED" ifint $($ShellCode) != $(!SHELL_CODE_OK) ; goto Shell_Code_Error ; endif set Error = $($R0) ; endif Shell $(SubroutineInf) SetupMessage, $(!STF_LANGUAGE), "FATAL", $(Error) ifint $($ShellCode) != $(!SHELL_CODE_OK) ; goto Shell_Code_Error ; endif goto End ; ----------------------------------------------------------------------- Shell_Code_Error = + EndWait set DlgType = "MessageBox" set STF_MB_TITLE = $(ShellCodeErrorTitle) set STF_MB_TEXT = $(ShellCodeErrorText) set STF_MB_TYPE = 1 set STF_MB_ICON = 3 set STF_MB_DEF = 1 ui start "Error Message" goto Set_Failed ; ----------------------------------------------------------------------- Set_Failed = + set CommonStatus = STATUS_FAILED ; ; if OEM_ABANDON_ON == TRUE, then remove the registry entries ; ifstr(i) $(OEM_ABANDON_ON) == TRUE ; set OEM_ABANDON_ON = FALSE goto Abandon ; endif goto End ; ----------------------------------------------------------------------- End = + goto Term ; ----------------------------------------------------------------------- Term = + Debug-Output "MADGE: Returning"$(CommonStatus) Return $(CommonStatus) ; ----------------------------------------------------------------------- ; Install sections ; ----------------------------------------------------------------------- [Files-Inf] 1, oemsetup.inf, SIZE=100000, RENAME=$(!UG_Filename) [Files-Driver] 1, mdgndis4.sys, SIZE=200000 [Files-Helper] 1, mdrvwin.dll, SIZE=10000 1, mdgndis.hlp, SIZE=12000 [Files-MDGNCDET.DLL] 1, mdgncdet.dll, SIZE=21000 ; ----------------------------------------------------------------------- [Install-Update] set STF_VITAL = "" set STF_OVERWRITE = "VERIFYSOURCEOLDER" AddSectionFilesToCopyList Files-Inf $(SrcDir) $(!STF_WINDOWSSYSPATH) AddSectionFilesToCopyList Files-Helper $(SrcDir) $(!STF_WINDOWSSYSPATH) AddSectionFilesToCopyList Files-Driver $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers AddSectionFilesToCopyList Files-MDGNCDET.DLL $(SrcDir) $(!STF_WINDOWSSYSPATH) set !STF_NCPA_FLUSH_COPYLIST = TRUE CopyFilesInCopyList exit [Install-Option] set STF_VITAL = "" AddSectionFilesToCopyList Files-Helper $(SrcDir) $(!STF_WINDOWSSYSPATH) AddSectionFilesToCopyList Files-Driver $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers AddSectionFilesToCopyList Files-MDGNCDET.DLL $(SrcDir) $(!STF_WINDOWSSYSPATH) set !STF_NCPA_FLUSH_COPYLIST = TRUE CopyFilesInCopyList exit [Source Media Descriptions] 1 = "Madge Driver Disk" 2 = "Windows NT Setup CD-ROM Disk" [ProductType] STF_PRODUCT = Winnt STF_PLATFORM = I386 ; ******** End of file OEMSETUP.INF *****************************************Download Driver Pack
After your driver has been downloaded, follow these simple steps to install it.
Expand the archive file (if the download file is in zip or rar format).
If the expanded file has an .exe extension, double click it and follow the installation instructions.
Otherwise, open Device Manager by right-clicking the Start menu and selecting Device Manager.
Find the device and model you want to update in the device list.
Double-click on it to open the Properties dialog box.
From the Properties dialog box, select the Driver tab.
Click the Update Driver button, then follow the instructions.
Very important: You must reboot your system to ensure that any driver updates have taken effect.
For more help, visit our Driver Support section for step-by-step videos on how to install drivers for every file type.