CatSetup: Difference between revisions

From Moonlight Design
Jump to navigation Jump to search
(New page: thumb|right|300px|CatSetup's [http://en.wikipedia.org/wiki/Splash_screen splash screen] CatSetup was a scriptable [http://en.wikipedia.org/wiki/Windows_3.1 1...)
 
No edit summary
 
(4 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 was 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] that was 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.
[[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's splash screen

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

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.