CatSetup: Difference between revisions
No edit summary |
No edit summary |
||
(3 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
[[Image:Program-catsetup.png|thumb|right|300px|CatSetup's [http://en.wikipedia.org/wiki/Splash_screen splash screen]]] CatSetup | [[Image:Program-catsetup.png|thumb|right|300px|CatSetup's [http://en.wikipedia.org/wiki/Splash_screen splash screen]]] CatSetup is a scriptable [http://en.wikipedia.org/wiki/Windows_3.1 16-bit Windows] [http://en.wikipedia.org/wiki/Installation_%28computer_programs%29 installer] and [http://en.wikipedia.org/wiki/Uninstaller uninstaller] primarily used to distribute [[Steven Lawrance#Software that I created|my software programs]]. It supports installation from multiple media types, including [http://en.wikipedia.org/wiki/Cd-rom CD-ROMs], one or more [http://en.wikipedia.org/wiki/Floppy_disk floppy disks], [http://en.wikipedia.org/wiki/Hard_drive hard drives], mounted network drives, and single-file [http://en.wikipedia.org/wiki/New_Executable EXE] downloads over the Internet. | ||
Installer size minimization and multitasking maximization were the primary [http://www.sei.cmu.edu/publications/documents/95.reports/95.tr.021.html quality attributes] considered during CatSetup's construction. By making CatSetup's disk footprint as small as possible, programs distributed using CatSetup could be downloaded more easily through through [http://en.wikipedia.org/wiki/Bulletin_board_system bulletin board systems (BBS)], which were prevalent in the mid-1990s. The disk footprint of CatSetup 1.9 -- the final version -- is 96,946 bytes, which is less than the size of a typical web page when images are considered. My interests in [http://en.wikipedia.org/wiki/Concurrency_%28computer_science%29 concurrency] led me to aggressively yield the [http://en.wikipedia.org/wiki/Cpu CPU] to other programs during the installation process, permitting the user to run background activities such as playing [http://en.wikipedia.org/wiki/Midi MIDI] files for music during the installation. {{Tech:Win16}} implements [http://en.wikipedia.org/wiki/Cooperative_multitasking#Cooperative_multitasking.2Ftime-sharing cooperative multitasking] between programs, so cooperation was necessary to give the illusion of concurrency. | |||
CatSetup's [http://en.wikipedia.org/wiki/Scripting_language scripting language] is named KittyScript, continuing the [http://en.wikipedia.org/wiki/Cat cat] theme of most of my early software. | CatSetup's [http://en.wikipedia.org/wiki/Scripting_language scripting language] is named KittyScript, continuing the [http://en.wikipedia.org/wiki/Cat cat] theme of most of my early software. | ||
Line 6: | Line 8: | ||
*'''[https://www.moonlightdesign.org/steve/programs/catsetupdocs.exe Download the CatSetup distribution]''', which includes the [https://www.moonlightdesign.org/steve/programs/catsetup/default.htm documentation] | *'''[https://www.moonlightdesign.org/steve/programs/catsetupdocs.exe Download the CatSetup distribution]''', which includes the [https://www.moonlightdesign.org/steve/programs/catsetup/default.htm documentation] | ||
*'''[https://www.moonlightdesign.org/steve/programs/catsetup/default.htm View CatSetup's documentation]''' | *'''[https://www.moonlightdesign.org/steve/programs/catsetup/default.htm View CatSetup's documentation]''' | ||
*{{CatSetupFiles}} | |||
==Limitations== | ==Limitations== |
Latest revision as of 15:50, 21 October 2007
CatSetup is a scriptable 16-bit Windows installer and uninstaller primarily used to distribute my software programs. It supports installation from multiple media types, including CD-ROMs, one or more floppy disks, hard drives, mounted network drives, and single-file EXE downloads over the Internet.
Installer size minimization and multitasking maximization were the primary quality attributes considered during CatSetup's construction. By making CatSetup's disk footprint as small as possible, programs distributed using CatSetup could be downloaded more easily through through bulletin board systems (BBS), which were prevalent in the mid-1990s. The disk footprint of CatSetup 1.9 -- the final version -- is 96,946 bytes, which is less than the size of a typical web page when images are considered. My interests in concurrency led me to aggressively yield the CPU to other programs during the installation process, permitting the user to run background activities such as playing MIDI files for music during the installation. Win16 implements cooperative multitasking between programs, so cooperation was necessary to give the illusion of concurrency.
CatSetup's scripting language is named KittyScript, continuing the cat theme of most of my early software.
Download
- Download the CatSetup distribution, which includes the documentation
- View CatSetup's documentation
- Download CatSetup's required DLL files, if needed. Older versions of CatSetup required bwcc.dll, and the latest version requires ctl3dv2.dll. These go into the windows\system folder, not windows\system32. Windows computers typically already have ctl3dv2.dll installed, which is a Microsoft library, and Wine has a built-in implementation
Limitations
As a Win16 program, CatSetup cannot handle long file names without the help of batch files in the install process to rename short file names to long file names. This also means that CatSetup does not give access to any Win32 functionality, such as the registry.
Installing files from a resource inside the installer's EXE file might write out a small amount of unknown memory contents at the end of the file when Wine is used to run CatSetup, and this might also happen in Windows when the resource is not compressed. This bug was never fixed due to me abandoning CatSetup for Win32-based installers.