[Index][Class hierarchy] |
program_blind_watchmaker |
|
Monochrome Blind Watchmaker by Richard Dawkins v1.1 Sept 1993 |
|
||
|
||
|
||
|
||
|
Global constants, types, and variables |
|
|
||
|
||
|
||
|
||
|
||
|
This is the API documentation for the Second Edition of Richard Dawkins' Blind Watchmaker program (Monochrome Biomorphs).
The Second Edition makes the minimal changes required to compile Watchmaker under both the original Think Pascal 4.0 used by Dawkins, as well as the newer FreePascal compiler. Compilation under Free Pascal requires the inclusion of a no-op implementation of the the Mac System 7.1 Pascal Interfaces, as well as a unit called "think_pascal", which includes definitions hidden by units that are part of the standard Free Pascal library (Errors), and features of the Think Pascal language (MemAvail) not available in the Free Pascal dialect.
Compilation units have been renamed to prevent namespace collision, as Free Pascal does not allow the use of identifiers with the same name as compilation units. The compilation unit names, and their old names, are as follows. The earliest date is Tuesday, September 28, 1993 19:07, and the latest is Monday, December 12, 1994 06:06, indicating that the bulk of the development of Dawkins' final version took place from late September 1993 to mid-December 1994, a period of approximately 14 months.
Note that file modification dates from 2015 and later represent modifications to the original source files necessary in order to make them compile against Think Pascal 4.0 once the Watchmaker Resucitation Project was underway.
New Unit Name | Old Unit Name | Old Unit File Name | Date |
---|---|---|---|
program_blind_watchmaker (program) | Blind_Watchmaker | Blind_Watchmaker.p | Tuesday, January 13, 2015 20:06 |
unit_album | Album | Album | Sunday, December 11, 1994 09:57 |
unit_biomorphs | Biomorphs | Biomorphs | Monday, December 12, 1994 06:06 |
unit_engineering | Engineering | Engineering | Wednesday, January 19, 1994 13:55 |
unit_error | ErrorUnit | ErrorUnit.p | Tuesday, September 28, 1993 19:07 |
unit_globals | Globals | Globals | Monday, December 12, 1994 05:40 |
unit_initialize | Initialize | Initialize | Monday, December 12, 1994 05:37 |
unit_miscellaneous | Miscellaneous | Miscellaneous | Friday, December 31, 1993 06:15 |
unit_pedigree | Pedigree | Pedigree | Friday, December 31, 1993 06:30 |
unit_standard_get_folder | StandardGetFolder | StandardGetFolder.p | Thursday, October 22, 2015 04:37 |
unit_triangle | Triangle | Triangle | Friday, December 24, 1993 16:12 |
unit_user_interface | User_Interface | User Interface | Sunday, December 11, 1994 21:33 |
The following original source files, present in Dawkins' distribution, are not used in the latest original sources, and they have been omitted from this documentation:
Unit Name | File Name | Date | Notes |
---|---|---|---|
fossils | Fossils | October 17, 1990 13:03 | Supplanted by Album (unit_album in the 2nd Edition) |
Blind_Watchmaker (program) | Main | Tuesday, January 18, 1994 14:53 | Supplanted by Blind_Watchmaker (program_blind_watchmaker in the 2nd Edition) |
Compiling against ThinkPascal 4.0
In order to compile these sources under SheepShaver emulation, it's necessary to change the file attributes to conform with those expected by Think Pascal 4.0. The Type must be changed to TEXT, and the Creator must be changed to PJMM. To facilitate this, an application called FileTyper 5.3.1 (http://dazuma.freeshell.org/filetyper) is used: an AutoTyper is created that will change the attributes of an entire folder at once. The AutoTyper filters on the "*.pas" file name.
The original Think Pascal 4.0 project files specifies Stack size: 32 kilobytes and Zone size: 512 kilobytes. The resource file is BW.rsrc. The project type is APPL with a creator of DAWK, bundle bit set. 'USES' Extensions is checked. Compiler variables are:
THINK_PASCAL=TRUE; Elems881=TRUE; THINK_Pascal_Version_4=TRUE.
Saved Animals
Richard Dawkins' archive of the Blind Watchmaker (Monochrome) program included these files, which represent saved animals, sometimes organized into "Albums" of several biomorphs. The file modification dates range from Thursday, July 26, 1990 05:56, to Sunday, December 11, 1994 09:57, indicating that Dawkins had implemented the "Save Biomorph" feature as early as the summer of 1990, and that he was still saving biomorphs to disk in late 1994. By contrast, the latest date of code development in the Dawkins archive is October 17, 1990 13:03 (for the supplanted Fossils unit). Together these data indicate that Dawkins achieved the saving of Monochrome Biomorphs to disk no later than July, 1990.
File name | Album or Single Biomorph? | Date |
---|---|---|
Alphabet zoo | album | Sunday, December 11, 1994 09:57 |
Chinese character | single | Monday, September 26, 1994 09:28 |
Exhibition zoo | album | Thursday, July 26, 1990 05:56 |
Hankerchief with bows | single | Friday, December 9, 1994 09:32 |
Stunted | single | Friday, December 9, 1994 05:39 |