FANDOM


Microsoft ACME Setup is the name of the software installation tool that was used with some of the first versions of Microsoft software, including Microsoft Office (until Office 2000, which uses Windows Installer), Microsoft Visual Studio 6.0, and other similar products. It has been superseded by the Windows Installer platform.

It uses a text-based file format ending in .STF (examples include acmsetup.stf, setup.stf) to store setup commands. It also requires the files "SETUP.TDF" and "SETUP.INF" (help: purpose unknown?) in order to run.

Alongside the ACME setup program, there is usually also a bootstrapper program included. While the ACME setup executable is usually named ACMSETUP.EXE, the bootstrapper program is usually called SETUP.EXE and is featured alongside a plain-text SETUP.LST file which tells the bootstrapper which files to copy to a temporary directory before launching the installation.

Setup table file (STF) formatEdit

The basic file format is simply a series of tab-delimited data; importing it into a spreadsheet program like LibreOffice Calc and specifying the tab character as the delimiter should make the content more readable.

Like the Windows INI format, the STF format can be thought of as having properties (but not groups). Observed properties are described below. If you observe a property not listed here, please add it to the list even if you don't know what it does; someone might see it and figure it out.

HeaderEdit

A series of properties and their respective values comes first.

Property name Description
App Name The name of the application that is being installed.
App Version The version number of the application that is being installed.
Setup Version The version of ACMSETUP.EXE needed to read this file.
Frame Bitmap

"filename, x, y" where filename is the name of a DLL that contains a bitmap resource, x and y are the bitmap's distance from the top and left corner of the screen, respectively. These values are in pixels.

Frame Caption The text displayed in the title bar of the background window, as well as in some messages in dialog boxes.
Suppress Copy Disincentive Dialogs Presumably commands the installation program to suppress dialogs related to copy protection/antipiracy. Had no affect on the sample apps tested.
Suppress Serial Number Dialog Presumably commands the installation program to skip prompting for a license number when installing. Has no affect on the sample apps tested.
Dialog Caption Base The text displayed in the title bar of the foreground window, as well as in most messages in dialog boxes.
Usage String The text to print on the command-line when someone attempts to execute the program in an unsupported way.
About Box String The text displayed in the About dialog (right-click the background window's title bar and click About)
Launch Registration Wizard
Check Modules A comma-separated list of window class names. If a window with one of the given class names is running, the software might not install or might run into problems installing.
MSAPPS Mode Usually "local"
MSAPPS Connect Usually "server"
Inf Parser

Optional. Allows you to specify a custom action DLL that is used to parse your INF file. Only observed in the Office 97 installation disc. It takes a quoted string:

"[DLL file name],[function name],""[app title]"""
Inf Mode Optional.
Inf File Name The file name of the INF file that is associated with this Setup application.
Help File Name The file name of the HLP file that provides more details on installation.
NoShared Determines what action to take on shared files. Observed "Reinstall".
Maximum Object ID The last object ID that is present in the objects table (see below).
Admin Mode Root Object ID The ID of the first command to run when in admin mode.
Floppy Mode Root Object ID The ID of the first command to run when in floppy mode.
Network Mode Root Object ID The ID of the first command to run when in network mode.
Maintenance Mode Root Object ID The ID of the first command to run when in maintenance mode.
Batch Mode Root Object ID The ID of the first command to run when in batch installation mode.
Network Maintenance Mode Root Object ID The ID of the first command to run when in network maintenance mode.
Install Date

The date this application was last installed on the user's computer.

Object listEdit

The object list is actually a rather large text-based list of commands. It starts with a tab-delimited line describing each of the values, and then treats each following line as a command. The list of commands are defined below.

Command Description
ObjID Integer. The numerical value of this object. Usually assigned in the order they are defined in the file.
Install During Batch Mode Boolean. Yes/no value that indicates whether this particular command is executed during batch installation.
Title String. The title of this action.
Descr String. Description of this action.
Data Action-dependent data associated with this command
BMP Id
Vital
Shared
Dir Chang
Dest Dir
Check Dir
Installed By Us

An example object list in a SETUP.STF file might look like this:

ObjID	Install During Batch Mode	Title	Descr	Type	Data	BMP Id	Vital	Shared	Dir Chang	Dest Dir	Check Dir	Installed By Us
1		Microsoft Office Professional	Microsoft Office Professional	AppSearch	"""%p\MSOffice""<%p\Microsoft Office>, , ,176,,yes,4 5"
2				AppSearch	"c:\MSOffice, , ,176,,yes,4 5"
3		Microsoft Office Professional		CustomAction	"setupres.dll, AddAppSrch, ""Not Required, c:\MSOffice, MSOFFICE.EXE, 95.02.03.2, 4"" "
4				SearchReg	"CLASSES, MSToolbar\MSOffice"

Setup bootstrapper (LST) formatEdit

The file format is based off of the Windows INI format, so that will not be re-documented here. Instead, the groups and properties specific to the LST format will be listed. There are two main groups: the Params group and the Files group.

Params groupEdit

This group has been observed as "Windows 95 Params" and "NT3.51 Intel Params", although more variations likely exist. The properties in this group are the same no matter what the group name is, as long as it ends in "Params".

Property name Description
WndTitle The title of the "please wait" dialog that displays while the program prepares installation. This is usually the name of the application being installed.
WndMess The message displayed in the dialog. This is usually something like "Starting [app name] Setup, please wait..."
TmpDirSize The amount of memory, in bytes, to allocate for the temporary directory.
TmpDirName The name of the temporary directory where the files will be placed.
CmdLine The command line to execute. This is usually "acmsetup"; in cases where the STF file name isn't the same as the setup EXE file name use "acmsetup /T [STF file name]"
DrvModName Should be "ACMSETUP"
DrvWinClass Should be "Stuff-Shell"
CabinetFile Presumably the name of the cabinet file from which the installation files are unpacked, but this property has also been observed on a CD-ROM in which the installation files were placed directly on the disc.
Require31 The message to display when the operating system is not supported. Usually something like "This program requires Windows 95 or higher."
InsertCDMsg The message to display when an additional CD-ROM is needed to complete the installation. Usually "Please insert your [app name] CD 1".
InsertDiskMsg The message to display when an additional floppy disk is needed to complete the installation. Usually "Please insert your [app name] Disk 1".

Files groupEdit

This group has been observed as "Windows 95 Files" and "NT3.51 Intel Files", although more variations likely exist. The properties in this group aren't really properties; they are mappings between the source file name and the destination file name. For example, if your source media has a folder called SOURCE and one of the files that would be copied is called COPYME, your SETUP.LST file might look somewhat like this:

[Windows 95 Files]
     SOURCE\COPYME = COPYME

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.