Copyright © 1996-2006 William B. Ackerman

Version 34.81 changes

The program has a better understanding of the ability of people to roll after swing and circle and dixie sashay. People can roll depending on the last thing that they did. After a swing and circle, the center 2 people did not participate in the and circle, so they can still roll from the swing. Similar reasoning applies to the ends after dixie sashay.

New concept: Twin phantom I's. This is two “I's” (sometimes called “dogbones”) end-to-end.

The calls catch lock N and catch top N have been added as calls in their own right, so that it is not necessary to use brackets or <anything> when typing them in.

Version 34.8 changes

In accordance with a recent Callerlab vote, “eight chain N” has been moved back to the Mainstream list. You should not use this at Mainstream prior to September, 2003.

A bug causing occasional crashes while resolving has been fixed. We thank Justin Legakis for helping track this down.

The startup dialog screen for Sd now has a lot of context help messages. It is recommended that new users, or users who are confused about how to use sessions or abridgement files, use Sd instead of Sdtty, at least until they have these things working properly. Click on the question mark in the upper right corner and then click on whatever you are curious about.

The program now starts “instantly”. The action that made startup so slow was the creation of the various call menus. Those menus are now stored in “cache” files. These files have names like sd_calls.C1cache. Whenever the database changes, the cache files will be recreated (which takes some time.) If the cache file is up-to-date, it will be used, and startup will be very fast.

The program can now keep abridgement files associated with sessions. For details about using abridge lists with sessions, see new information in the manual. Briefly, if you have been using an abridge list and want to add it to a session, you can check the “Use abridged list” checkbox, and fill in the abridgement file name, when Sd starts, before selecting the session. The abridgement file will now be associated with that session. The association will be permanent—this step will not be required again.

The program now recognizes that all 8 recycle can mean either the C1 call done from a 1/4 tag, or the A2 all 8 concept applied to recycle, which is done from a thar. Similarly for all 8 cross cycle.

The program is now more robust in its error message when a meta-concept (like initially) is used without a following concept.

A bug in the Microsoft Visual C++ compiler, version 5, has been discovered, similar to the bug found in version 6. The version 6 bug had caused that compiler to be disqualified for compiling Sd, and all Sd compilations to be performed on version 5 instead. I have run out of Microsoft compilers. Microsoft quality is simply unacceptable. (Of course, anyone who has dealt with the dozens of recent viruses and worms, and the security patches for them, already knows this.) The current version of Sd is being compiled with version 5, with a software patch to prevent the bug from arising. Non-Microsoft compilers are being investigated. (By the way, very little Microsoft software, other than the operating system itself, is used in the preparation of Sd, for just these reasons.)

The use of the “gcc” compiler, which is free, open-source software, is being investigated. Initial results appear very promising.

The program handles clover and <anything> more robustly.

The bug in parsing cross over circulate has been fixed. We thank the person who pointed it out recently, and apologize to the person who pointed it out many months previously, whom we did not believe.

A bug in reverse cut/flip the 3x1 triangle was fixed. We apologize to the dancers at a C4 weekend in March 2002 in Northern California who were inconvenienced by this.

The program can now do 1/2 squeeze.

The program can now do spin the windmill directing the outsides to circulate N-1/2 positions, as in spin the windmill, outsides left and go 2-1/2 positions.

The resolver now uses the actual clock to determine when to give up while searching. It will give up after 5 seconds. It used to be set to 15000 calls, a number that has crept upward as computers got faster.

The program can now handle the setup consisting of a diamond between 2 lines, as would result from having the center wave switch to a diamond from triple waves.

The program is better at figuring out how to do the call extend in the presence of phantoms.

The calls flip back, to a wave and <ATC> back to a wave, to a wave have had the word “centers” added, as in vertical tag back to a wave, centers to a wave.

The behavior of Sd when "?" or "!" is typed has been improved. It used to ignore these operations when no characters have been typed in the current command. When no characters have been typed, the number of possible commands that need to be listed is huge. It used to take a long time to do this. Modern computers are fast enough that this is no longer a problem. This change does not affect Sdtty—Sdtty has always acted on "?" and "!" even when no characters have been typed.

The program can handle obscure and problematical cases of just the centers stepping to a miniwave on the call fan the top, and it prints an appropriate warning. An example of this would be from a starting DPT with the ends quartered left. The centers would step to right hands (even though they normally step to left hands on fan the top), and then the call would be done in each diamond.

The program can now keep a picture (that is, write it into the transcript file) after every call, as though the “keep picture” command had been given each time. Use the “toggle keep all pictures” command while the program is running, or give the command-line argument “-keep_all_pictures”, when the program is started, or place the item “keep_all_pictures” in the “[options]” section of the initialization file.

New program-level options have been added for use with Sd. The “-maximize” argument will cause the program to set its window to the full screen. The “-window_size” argument, followed by something like “750x450” will set the window size to the indicated number of pixels. These options can be specified in the command line (typically by editing the startup icon) or placed in the “[options]” section of the initialization file. These options do not affect Sdtty. Sdtty runs as a “command prompt” program and cannot set its window size.

New concept: triple staggered boxes. Used in a 2x12 "zipper" setup.

New concepts: triple boxes or lines, triple lines or boxes, triple diamonds or lines, triple lines or diamonds. For mixed boxes/diamonds and 1x4's. The outer two formations must be the same.

New concept: stretched, followed by a triangle concept, as in stretched tandem-based triangles from an hourglass.

New concepts: clockwise jay, counterclockwise jay.

New selector names: center column, center line, center wave. These are essentially synonyms for “center 4”. They sometimes check for legality, but not always. Use with care.

Hundreds of bug fixes and enhancements have been made, relating, among other things, to emulate, tandem, <anyone> truck while the others reverse truck, split square thru with large numbers of phantoms, finish long trip with large numbers of phantoms, jay walk with large numbers of phantoms, turnstyle, common spot, in roll to a diamond, cross to a diamond, 3x3 right and left by by by, right/left anchor, ends sidetrack, heads single rotate 1/4 while the others swing thru, etc, etc, etc. You may recognize your bug in that list.

Version 34.7 changes

The program can write the output file with extension .txt if it is given the command line argument “-new_style_filename”. Such files will have names like sequence_C1.txt or 01sep02_C1.txt. You can also get this behavior by adding the line ”new_style_filename” to the “[options]” section of the sd.ini file, so that it looks like this:


Having a file name of this form should make the output files able to be read and printed by common text editors and word processors, and sent as email attachments.

The command line argument “-old_style_filename” will force the old behavior, in which the file name is sequence.C1 or 01sep02.C1. The default behavior is presently old style, and hence “-old_style_filename” is not needed. The default may change in the future.

New style file names do not operate with the version of Sdtty that runs on DOS or Windows 3.1. These operating systems can't handle names longer than 12 characters. In fact, the version of Sdtty that runs on DOS or Windows 3.1 is not supported after version 34.6.

The program can now recognize “abbreviations”, in addition to “accelerator keys”. An accelerator key is a single function key (or control or meta key) that causes an action to take place. An abbreviation is a made of normal letters. For example, one can make “pth” an abbreviation for “pass thru”.

Abbreviations are defined in the initialization file, in a manner very similar to accelerators. Create an “[Abbreviations]” section in your initialization file, looking something like this:

     utb     U-turn back
     pth     pass thru

The lines of the abbreviations section are very similar to those of the accelerators section, except that the first item on the line is an arbitrary word instead of an encoding for a special key press. Whenever that word is typed in as the only thing on its line, the call or concept will be activated. The word typed in must be by itself on the line, and may not be further abbreviated. That is, the normal action of the parser, to figure out what call or concept is wanted based on the smallest possible initial part of the call or concept, does not operate here. You must type the abbreviation exactly as it appears in the initialization file. You can't type “ut” for “utb” with the above example. But you could have defined

     u     U-turn back
     p     pass thru

to get these calls with a single letter.

You can't type boys u, because the abbreviation must be the only thing on the line that you type. But you could define abbreviations

     bu    boys U-turn back
     gu    girls U-turn back

The transcript file will always show the fully expanded text, not the abbreviation.

We thank Rich Reel for pointing out how useful abbreviations are, and how simple they are to implement.

The ability to display colors has been improved. When a color scheme involving yellow is selected, and the background is white, it uses a dark yellow for better contrast. As a result of this, the standard shortcut icons for Sd were changed to use a white background (normal video) by default. They had previously used a black background (reverse video) whenever yellow was involved.

This changes the default behavior for the startup shortcuts such as “Sd Couple”. If you have been using such a shortcut and prefer the black background, you can edit the shortcut (right-click it, and select “properties”) to add “-reverse_video” to the command line. If there are problems, please let me know.

Typing “undo” when at the start of a sequence (or pressing an appropriate accelerator key, such as <F9>) will erase the “heads start” or whatever startup command had been issued.

New concept: add, which is a synonym for follow it by.

New meta-concepts: first M/N, middle M/N and last M/N. These are followed by a concept, and cause the indicated fraction of the call to be performed with the concept, and the rest to be executed normally. For example, middle 1/3 tandem remake the wave does the first part normally, the second part tandem, and the last part normally. Whether these are precisely the words you should use is up to you.

New meta-concept: initially and finally. This causes the following concept to be applied to both the first and laast parts of the call, as in initially and finally tandem remake the wave.

The syntax of the “anythinger's” mechanism has been reworked. The program now considers the “er's” word to be properly part of the call name. Hence it will print out things like [remake the wave] er's motivate instead of just [remake the wave] motivate. You may type in the “er's” word or not, as you choose. If you type it, the apostrophe is of course optional.

The syntax of the use concept has been reworked. Its name is simply use. Since it takes two calls, you must press <ENTER> after typing it, to separate it from the two calls.

        thirdly use               <ENTER>
        ah so                     <ENTER>
        swing the fractions       <ENTER>

There is also a concept use for the <Nth> part. It is entered thusly:

        use for the 3rd part      <ENTER>
        ah so                     <ENTER>
        swing the fractions       <ENTER>

It will appear in the transcript as “use ah so for the 3rd part: swing the fractions”.

The concepts right wing and left wing have been added. They are at level c3x. These may not be really correct. Use them with care.

The calls eight chain <N>, spin chain thru, and fan the top are now in the Plus program, in accordance with a recent Callerlab vote.

The calls triple scoot and grand follow your neighbor are now in the A1 program, in accordance with a recent Callerlab vote.

The call press has been on Mainstream for quite some time, for purely pragmatic reasons. It is going to stay there, notwithstanding a recent Callerlab vote moving it down from C2 to to C1.

The call relocate, for general setups, and the concept reverse crazy have been moved from C3A to C2, in accordance with a recent Callerlab vote.

The program now recognizes that, at Mainstream, the call extend is restricted.

The call turn and flip was removed from the C4 level and moved to C4X. We apologize to a certain caller.

The call [anything] and circle <N/4> can now take either a 4-person or an 8-person call.

The program now recognizes the extension link up but [anything], analogous to busy [anything]. Its level is c3x.

It can correctly roll after hinge by.

Fractional exchange the boxes in columns handles collisions properly now.

The identities of the dancers are re-evaluated during the call tap the <anyone>. This may have an effect if there are interruptions or other interesting things. There is a call tap the original <anyone> that you may use when you don't want identities to be re-evaluated.

The roll direction after cross chain thru is now set so that, if one rolls, the result is the same as if cross chain and roll had been called. This is dictated by Callerlab. We take no responsibility for the fact that it makes no sense in terms of any plausible turning motion the dancers would have been going through as they did the call.

Users are reminded that the roll direction after spin chain and exchange the gears does not strictly follow the Callerlab definition. This is discussed further in the “call notes” section of the manual.

The program now understands the handedness rules regarding scoot and little, scoot and plenty, and scoot and rally. It is not necessary to say “left” when calling these from a left-handed setup, though you may. On the plain calls little, plenty, and rally, the outsides will always quarter right, regardless of the handeness of the wave behind them, unless you say “left”, or say “go as you are”, or give some other direction.

The program can have people cross fold from a parallelogram. For example, from parallelogram lines back-to-back, you can have the people in the outer triple boxes do a cross fold, creating an 8-chain formation. The designator to use for these people is “outer pairs”, if simpler things like “girls” won't work. We don't recommend actually saying “outer pairs”—it is simply the notation that the program uses.

The program handles triple waves switch to a Z correctly.

New calls: square around, right and left by, and <anything> by. These of course include “by by” and “by by by”.

New concepts: concentric Z's, cross concentric Z's. Of course, you never need to type the apostrophe.

A bug in the listing of possible calls and concepts when “!” or “?” is typed has been fixed. It should now list lots of things.

A compilation of Sd using Microsoft Visual C++ version 6, service pack 5, has failed the regression tests. (Specifically, it crashes on "snag bits and pieces" from parallel waves.)

This bug was reported to Microsoft on 17 December 2001.

C++ Version 6 has been involved in incorrect compilations before. (See the release notes for Sd version 32.65.) The resolve command of Sd behaved incorrectly at one point, using Visual C++ version 6, service pack 2. The bug was reported to Microsoft. Service Pack 3 was subsequently distributed, and appeared to fix the resolver bug. This incident nevertheless resulted in a decision to continue using Visual C++ version 5, even though Microsoft considers it obsolete, apparently because it does not support the “robust component development” of version 6. Why they believe that component development is more robust with a broken compiler is a mystery.

No compilation of Sd or Sdtty with any version of gcc is known to have generated incorrect code.

It is certainly true that Visual C++ version 5 has a number of glaring bugs, such as

but these are just inconveniences to me. The compiled code under version 5 appears to run correctly.

Users may take comfort from the fact that all Windows releases of Sd and Sdtty have been compiled with Visual C++ version 5. No released version has ever been compiled with C++ version 6, and none ever will be.

It took several hours to find the bug. Here it is:

      switch (this_call->the_defn.schema) {
          mov   edi, DWORD PTR [eax+16]
          cmp   edi, 64       ; 00000040H
          ja    $punt$7186
          xor   ecx, ecx    // Using ECX as the switch index.
                            // It should be restored from [ESP+220].
          // Load 0 or 1 from switch table.
          mov   cl, BYTE PTR $L7773[edi]
          // Indirect jump to one of two places.
          jmp   DWORD PTR $L7774[ecx*4]
          // Restore never happened!
          mov   ecx, DWORD PTR _parseptrcopy$[esp+220]
          // Because it jumped here!
      case schema_concentric:
      case schema_concentric_6_2:
      case schema_concentric_2_6:
     // Jump table created for the "switch" statement.
          DD    $L7196     // Wrong place!  Doesn't restore ECX!
          DD    $punt$7186
     // Index table created for the "switch" statement.
          DB    0
          DB    1
          DB    1          // etc.  there are 64 items.

Version 34.6 changes

New concepts: offset 1/4 tag and offset 3/4 tag. These are done from a suitably populated 4x4. The offset amount is presumed to be 50%. The “shear line” of the setup lies between the two single 1/4 tags.

New concept: use (call) for the <Nth> part.

New concept: use (call) in. This is intended to be used in applications like reverse random use acey deucey in swing the fractions.

The preceding two concepts are actually entered that way, with the word “call” in parentheses. Command completion makes the typing easier than it might seem. After entering the concept, follow the prompts. The concept will be printed in the transcript in a more sensible way.

The magic concept is now permitted only for simple magic columns at C1. Other applications of magic (magic lines, magic diamonds, etc.) are legal only at C3B. We thank the dancers at the 2001 National Square Dance Convention C3A hall for pointing this out, and apologize for the bug.

New calls: unwrap the boxes/stars/diamonds to a normal column, follow the <anyone>. These are used from fully offset formations, such as 16-matrix “clumps”.

The program can handle simple cases of setups tilted at a 45 degree angle. For example, it is possible to do a swing the fractions interrupted at the half way point with a 6x2 acey deucey. Please be careful with this; it is not very robust.

Version 34.5 changes

New concepts: twin phantom point-to-point diamonds and twin phantom point-to-point diamond spots.

New concept: offset split phantom boxes.

New concept: parallelogram triple boxes.

As usual, we do not take a position on the tastefulness of various new concepts or their applications.

New concepts: center tidal C/L/W. These may be useful for things like own the <anyone>, center tidal wave grand swing thru by 3x1 triangle circulate.

The program can now do a better job of having people coming to the same spot after fractional exchange the triangles.

The program now does a better job of telling when the outsides can circulate or half circulate.

New calls: flip back, to a wave and <ATC> back to a wave, to a wave. The program will insert commas as shown, to make the meaning clear. We do not take a position on whether flip back to a wave is ambiguous, or what it means.

Version 34.4 changes

New concepts: twin phantom point-to-point diamonds and twin phantom point-to-point diamond spots.

New concept: common spot point-to-point diamonds. This is done from the setup that would be obtained after certain fractional exchanges from point-to-point diamonds. Note that switch to a diamond and diamond circulate never produce this setup—the Callerlab C1 definitions specifically state that the colliding people center themselves.

The program can now handle parallelogram diamonds. That is, from parallelogram waves, you can do switch to a diamond.

New concept: parallelogram diamonds. This is used no matter what the facing directions are.

The program can now handle "nonisotropic triangles". For example, from columns, ignore the last person and have the other 6 1/2 press ahead.

The program can now do counter rotate in triangles correctly. For example, from point-to-point diamonds, outside triangles counter rotate will do the right thing.

The program can now do convert the triangle from tandem-based triangles.

The program has an improved ability to go to arbitrarily occupied stars as the result of phantom calls.

Version 34.31 changes

A serious defect in processing menu clicks in Sd version 34.3 was fixed. It did not affect Sdtty.

Version 34.3 changes

Improved the “crazy offset C/L/W” concept. It can handle shape-changers, under reasonable circumstances, up to a point. The program can also do “crazy diaagonal boxes”.

The program can handle “equalizing” cases of transfer and <anything>, busy <anything>, and open up and <anything>, as per the article by Linda Kendall in the December, 2000 issue of Zip Coder.

New concepts: staggered C/L/W of 3. Use this with “ignore”.

New concepts: bent C/L/W/B (plural), from suitable formations.

New concepts: <anyone> in your double bent C/L/W.

We allow "mini-grand" getouts, if the “toggle minigrand getouts” command has been given, or the command-line switch “-minigrand_getouts” was given, or the command “minigrand_getouts ” appeared in the initialization file. When this has been done, the resolver will include such getouts in its search. A “mini-grand” is “right and left grand, but on the third hand, promenade home.” We do not take a position on the tastefulness of these getouts.

The “funny” concept is handled better internally, giving greater power in the database language.

Fixed a bug in jay walk “around the corner” in C1 phantom setups. For example, after Heads Spin the Top, Extend, Girls Hinge, one can now do Heads Jay Walk in a completely natural way.

Fixed a bug in phantom 1/2 circulate. We thank the contributors to the “challenge-sd” mailing list for raising this issue.

Version 34.21 changes

A serious defect in version 34.2 was fixed.

In the final transcript file, the sequence number no longer has a “#” character in front of it. Some post-processing text formatters are confused by the presence of this character.

Version 34.2 changes

The call and concept lists have been updated to reflect the recent changes to the C3B list.

     Dropped:    shove off
                 kick by
                 in style
     Added:      track <N>
                 cross extend
                 change lanes
                 various split phantom diamonds and 1/4 tags, so all
                      split phantom formations are now legal at C3B
                 chase the <N/4> tag
                 <ATC> (chain thru) (and scatter) (cross) nuclear reaction

The program now recognizes that the legality of some calls in some formations depends on the level. For example, the facing version of recycle is legal only at A2 and above, and split recycle is legal only at C1 and above.

The manner in which concepts like yoyo and twisted are handled was reworked. Things like interlace finally yoyo swing thru with yoyo mix will now work properly.

The usual several dozen other improvements were made in the program's power and flexibility. For example, it now recognizes about 100 formations and about 150 resolves.

Two new Windows shortcuts were created, called “SD plain” and “SDTTY plain”. You can, as usual, copy these to the start menu and/or desktop.

These shortcuts run the respective programs with no color or special graphics of any kind. When “SDTTY plain” is used, it is possible to copy text and diagrams into the Windows clipboard, from which it can be pasted into email messages or other documents. To do this, right-click the icon at the left of the window title bar. This will bring up the system menu. Choose “Edit” and “Mark”.

It is now possible to specify the initial sequence number that is printed at the top of each card. This can even be done when not using a session from the initialization file. In Sdtty, give the command-line argument “-sequence_num” followed by the number. In Sd, it can be done this way, or it can be specified in the startup screen. If a sequence number is specified when using a session, that number permanently overrides the number in the initialization file.

The documentation is now available at all times when running Sd. Typing “help manual”, from either Sdtty or Sd, will bring up the manual under the default Web browser.

We thank a famous C4 caller for providing a wealth of new, creative, and different research material.

Version 34.0 changes

A major redesign of the internal workings has been completed. The database can now provide multiple definitions for a call. As a result, all of the former “(parts)” or “(matrix)” calls, and others like them, have been removed. In particular, the following calls have been removed:

        recycle (parts)
        cross cycle (parts)
        scoot and weave (parts)
        <anyone> tie (parts)
        invert the column (parts)
        couple up (parts)
        hocus pocus (parts)
        countershake (matrix)
        sashay thru (matrix)
        mini busy (matrix)
        walk the plank (matrix)
        recoil (matrix)
        easy does it (matrix)
        beaus advance to a column (matrix)
        belles advance to a column (matrix)
        <anyone> run the wheel (matrix)
        bridge the gap (dpt)
        grand chain 8 (centers and ends)
        cover up (centers and ends)
        percolate (centers and ends)
        perk up (centers and ends)

Wherever you would have used those calls in the past, just use the plain call. For example, the call recycle can do the facing-couples version, or the split version, the fractionalizable wave version, or the 3x3 version.

The calls twist the line and twist and <anything> have been improved to handle the front-to-back “space invader” property. For example, when called from a tidal wave, twist the line goes to Z's. You can also call, from an as-couples 2-faced line, things like twist and [pass and roll your neighbor].

In light of Miscrosoft's inability to make its email software adhere to the most basic common-sense principles of safety, the security on the computer from which versions of Sd are uploaded has been tightened. The computer on which Sd is developed has never had any email or internet connections, nor any Microsoft mail software. The computer from which Sd is uploaded to the web previously had Microsoft Outlook installed, but not used. In light of recent events, Microsoft Outlook and the “Visual Basic Script” mechanism have now been removed completely. (These programs are all Trademarks of Microsoft Corporation, Redmond, Washington.)

Version 33.15 changes

The function key control-F11 has been set to perform the standardize operation.

The Sd Windows menu has been reorganized. (That's the menu across the top of the screen, that you probably don't use.) The various types of search commands are now popups under the Command menu. The actual Sd call menu is not changed.

Some obscure cases of color choice in Sdtty on Windows were improved.

The programs have been tested on a pre-release version of Windows 2000.

The program can now do calls in magic (and magic interlocked) in point and out point triangles. We thank Bill Haynes for bringing this to our attention.

The level for <ATC> chain thru reactivate has been lowered to C3. We thank Neil Heather for bringing this to our attention.

The distorted <CLW> concepts can operate in 2x6, 2x8, and similar matrices. The real people are identified and made into a virtual 2x4.

Calls and concepts were moved on and off the C3A list in accordance with a recent vote of the Callerlab challenge committee. The calls rolling ripple and shove off were moved to C3. The name single checkmate was added. The concepts finally and reverse crazy were added.

The definition of split swap was changed, in accordance with a decision by the Callerlab challenge committee, to allow everyone to roll.

The program recognizes more Dixie Grand getouts.

The call hinge by was improved. It is unforunate that this versatile call is not recognized below C4.

New concepts: as couples in point-to-point diamonds, as couples in a tall 6, as couples in a tidal line, and as couples in a tidal column. These may also be used with tandem, twosome, etc. We thank various C4 callers for bringing these, and many other things, to our attention.

A few extremely embarrassing bugs were fixed. We thank Rob French and Shinichi Mochizuki for pointing these out.

Internal implementation note: The program now uses modern C++ exceptions rather than the archaic setjmp/longjmp mechanism.

Version 33.0 changes

The call previously known as just mixed up has been changed to mixed up square thru.

New concept: offset column/line/wave (singular). This is done in a 2x4 which is occupied as a single offset 1x4. This is typically done in split phantom boxes or split phantom column/line/wave.

New concept: columns/lines/waves of 3. This doesn't work in all setups.

The program can do shapechangers in phantom offset columns/lines/waves, such as phantom offset columns walk out to a wave in a 4x4 occupied as columns far apart.

The program can do nonuniform shapechangers in a greater number of setups, such as centers pass the ocean in a butterfly, or center 1x4 lockit or center 1x4 recycle in offset waves.

And the program recognizes more getouts, of course.

Version 32.95 changes

The program has been tested successfully for year 2000 compliance.

When Sd is installed for Windows 95/98/NT, two new shortcut icons are made available, called “SD nocheckers” and "SD couple”. The first runs Sd in such a way that the display looks like the default color scheme for Sdtty. The second runs Sd with the “color_by_couple” color scheme. You can copy these icons to the desktop or start menu in the usual way.

Sd (but not Sdtty) can now print the sequence file. At the end of a session, it will ask whether you want to print the file. The files are still written to disk in the usual way, and you can print them later. See the manual for further details.

New concept: fast. This applies to <ATC> back to a wave, <ATC> reaction, and similar things. It directs the first people on the tagging call to do the trade, rather than the last people.

New concept: drag the <anyone>. Ths designated people, rather than doing their part of the call, simply stay rigidly attached to their current partner.

New concepts: [fractional] [reverse] crazy offset C/L/W. Use these in a 4x4 matrix occupied as “stairsteps”.

Sd now attempts to adhere to the convention that “but” modifiers refer to whatever is last done by the centers. This is already commonly recognized for calls such as chain reaction and tally ho. Sd now applies it to calls like load the boat and square the bases (replace the final centers' pass thru) and percolate (replace the final centers' hinge and cross).

This convention does not apply universally. There are a number of existing uses in which the “but” call is done by everyone, or is not just the very last thing: spin the pulley, line to line, lift off, cast an anchor, etc. Sd of course preserves those cases.

The “but” ending modifiers can be used in the usual way with calls that also have an “anything” starting modifier. For example, you can type [swap around] the boat but [swap around].

I do not know how widely accepted this usage is, or is likely to become, with dancers and callers.

The program can now do yoyo scoot chain thru to a wave from T-boned boxes (as after split circulate and roll).

The program can now do calls like swing the fractions from more setups, such as 2x1 diamonds.

The interaction between shifty and other concepts was improved. One can now say, for example finally tandem shifty tap the beaus or initially tandem shifty tap the beaus.

Added spin the windmill variants that allow you to change the number of circulates for the ends. That is, you can say things like spin the windmill, outsides left and go 3 positions. You can also do spin the windmill, outsides <anything> or <anything> the windmill, outsides <anything>, in which the final <anything> replaces both the turning direction and the circulates.

The program can handle parallelograms, and parallelogram split phantom setups, when the amount of offset is 25% or 75%.

Fixed bug in fractional eight chain N (centers came to wrong hand.) Fixed bug in triple star thru. I thank Dave Clay for bringing the last two items to my attention.

One can now do, for example, sandwich eight chain 3 with cross concentric zip the top.

Improved the ability to recognize triangles. For example, from a suitable rigger or "dog-bone", you can say things like tandem-based triangles are solid swing thru, in addition to naming the inside or outside triangles.

The usual dozens of other improvements were made.

The database compiler now recognizes C++ style comments.

I thank the organizers of the 1999 National Advanced and Challenge Convention for producing tapes. I thank various C4 callers for pointing out how important 75% offset parallelograms, T-boned yoyo scoot chain thru to a wave, common spot hourglasses, crazy offsets, complex interactions of meta-concepts, and so on, are in modern C4 calling.

Version 32.9 changes

The installation program was improved. If a previous version of Sd is found in the folder C:\Sd, you are asked whether to save that version, and you are allowed to choose the folder in which to place the saved copy.

The program was migrated from C to C++. Not because of any liking for “object-oriented programming”, but because C++ is, in a great many ways, a better language than C.

The programs now use Dynamically Linked Libraries (DLLs) on Windows 95/98/NT.

The little more fractionalization issue was addressed. New calls, little more (nonstandard) and little more, ends face <direction> (nonstandard) were added. The first part of these calls has the ends quarter right (or a specified direction) while the centers step and fold. In the second part, the ends counter rotate while the ends circulate. Callers are reminded that this nonstandard usage is not correct according to the Callerlab C2 definitions, the Big Five, the Ceder Chest, and the Ben Rubright Pocket Reference.

The "everyone disconnected" concept was improved. It is now possible to do "everyone disconnected mini busy" from a suitable 2x6 or 2x8.

The calls finish advance to a column, beaus advance to a column, and belles advance to a column have versions with the suffix (matrix), as in beaus advance to a column (matrix). Use these versions when modifiers such as 3x3 are desired. These versions are not fully fractionalizable. The normal versions are fully fractionalizable, as before. You do not need these versions with the single modifier.

The program can see a few more resolves than before.

A number of rather useless warning messages were removed.

A careless bug in the handling of <anyone> work <meta-concept> <concept> was fixed. It is now possible, for example, to do centers work initially tandem, nice and easy.

The program can see 3x1 triangles in a larger variety of setups than before. In suitably occupied 4x6, 3x8, or 2x12 matrices, it can see a 1x4 or 2x2 virtual setup of 3x1 triangles. Only 2 of those triangles are occupied, of course.

A rather serious bug involving complex interactions of meta-concepts with modifiers like cross or reflected, and calls that use such modifiers in their definitions, was fixed. It is surprising that this bug was never revealed by any of the hundreds of tips at C4 conventions and weekends that the program is routinely “trained” on.

Fixed a bug in roll after certain calls such as remake. I thank Andy Shore for bringing this to my attention.

Fixed a bug in menu operation in the presence of partly typed-in calls to Sd. I thank Uwe Themann for bringing this to my attention.

Fixed a bug in multi-part calls in which an early part is defined as-couples and a later part is a space-invader.

Fixed a difficult problem with concepts like piecewise, twisted, and yoyo. It is now possible to do things like piecewise yoyo swing thru correctly.

Fixed a bug in finally cover up but [chisel thru].

The usual dozens of minor changes and improvements were made.

In Sd, the confirmation popup that appears when you attempt to exit the program while a sequence is in progress no longer has “OK” set as the default button. This will prevent accidental deletion of a sequence through careless typing of <alt-F4> and <ENTER>. You must either explicitly click on “OK” or type <TAB> to select that button and then press <ENTER>.

We thank the callers at a C4 weekend earlier this year for allowing taping.

Version 32.81 changes

A bug was fixed in the definition of little more. This is a two-part call. The first part is just a little, which has the centers step and fold while the ends both 1/4 right and counter rotate. The second part has the centers circulate while the ends do nothing. While people might prefer a different apportioning of the centers' and ends' parts for various reasons, this is the way it is defined in the Callerlab C2 definitions, the Ceder Chest, and the Ben Rubright Pocket Reference.

This release contains Sd as well as Sdtty for Windows. The installation procedure has been radically revised to be more user-friendly, particularly with respect to placing shortcut icons in the appropriate places.

As a consequence of this, the programs are always installed to the folder C:\Sd.

There are many more options to control the appearance of the dancer display in Sdtty or the transcript window of Sd. They are:


See the manual for details.

The resolver was redesigned. It now makes a much more serious attempt to find short resolves, even if they contain concepts. At C2 and above, it also attempts to show resolves with short promenade distances before those with long distances.

Because of this, it silently defers many “low quality” resolves early in the search, saving them for later. It may report failure several times before finding a resolve. Just keep typing “find another” (or pressing function key <F12>). It is simply rejecting the resolves that you would have rejected explicitly. If it can't find what it considers really good resolves, it will go back to the ones that it threw away and show them to you.

Version 32.67 changes

A bug that caused a failure in tip #8 in the C4 hall at the 1999 National Advanced and Challenge Convention was fixed. We apologize for any inconvenience that this may have caused.

A bug that caused certain types of 3x1 and 1x3 calls to fail to “compress” was fixed.

When an unresolved sequence is written out, a final picture is drawn, whether the “keep picture” command had been given or not.

The call "hocus pocus (fractions)" has been changed to "hocus pocus (parts)". Sorry, but it makes it consistent with all other similar calls.

The syntax of the names of “accelerator” keys in the initialization file has been relaxed. You can use either “m” (for meta) or “a” (for alt) to mean the same thing. This modifier key is called meta on some keyboards and alt on others. It's the same thing. Also, you may put hyphens into the key name, and put it in upper or lower case. The command value (the rest of the line) must be in lower case. Also, if a key is both meta/alt and control, you may list them in either order.


        C-M-B     phantom boxes
        C-A-B     phantom boxes
        M-C-B     phantom boxes
        A-C-B     phantom boxes

mean the same thing.

Version 32.65 changes

There were no profound changes in the “dancing” behavior of the program, but there were, as usual, numerous minor changes. Most of the significant changes were in the internal organization, to prepare for the upcoming release of Sd for Windows.

The menus were reordered to put <anything>, <anyone>, and similar things at the end rather than the beginning. The menu (that is, what you see when you type a question mark to Sdtty, or what you see on the screen in Sd) should look a lot more sensible now.

The “deleteword” function has been moved from “cv” to “cw”. Sorry. This was done to make accelerator keys more in line with Windows conventions.

If you have an “[Accelerators]” section in your initialization file, you will need the lines

        cu     deleteline
        cw     deleteword
        f8     quoteanything

to get the default behavior. This file “sample3.ini” has been modified to contain this. When in doubt, refer to that file. You should copy the new bindings from that file if you have your own initialization file with an “[Accelerators]” section. You can, of course, bind keys any way that you want.

I recommend not binding anything to Alt-F4, Alt-F, the up/down arrow keys, or the page up/page down keys. Alt-F4 is generally used to exit from programs, and Alt-F is an accelerator used to bring down the “file” menu without using the mouse. The up/down arrow keys and page up/down keys (“e6”, “e8”, “e1” and “e2” in the sd.ini file) will scroll the menu.

I also recommend not binding anything to the left or right cursor keys, or the “home” or “end” keys when in normal calling operation, since they facilitate editing of the input text. When in startup or resolve (search) mode, binding these keys is not a problem, since input usually does not come from type-in. For example, in resolve mode, right arrow means find another resolve, which is probably more useful than anything one could do in the type-in window.

If you do not have an initialization file, or it does not have an “[Accelerators]” section, you do not need to do anything.

The compiler used for development and manufacture of Sd and Sdtty was upgraded to Microsoft Visual C++ version 6. This proved to be a mistake. Version 6 has an optimizer bug that causes it to fail to generate the exit code for a loop in the resolver. Compilers that generate incorrect code are not acceptable, so Visual C++ version 6 was removed and version 5 was reinstalled. Microsoft has been informed of the bug, as have all of my colleagues in the software development field. Until this bug is fixed, I recommend that software developers refrain from using version 6.

Version 32.6 changes

The last few versions wrote out their transcript files in "Unix" format, with just line-feeds separating lines. This has now been corrected to "Windows" format, with carriage-return line-feed sequences. Most file-handling software is impervious to the difference, but some is not. We apologize for any unprintable cards that may have been generated.

The program can use a different color scheme when displaying the dancers on the computer screen. If the line “color_by_couple” is given in the “[Options]” section of the initialization file, each of the four couples will be displayed in a different color. You can of course turn the colors off completely with the line “no_color”.

The programmable keys have been made more general. The behavior of control-U, to mean “delete the input line”, is now programmable. Also, function key <F8>, meaning to insert the literal text <anything>, is programmable. (Note: You almost never need the latter function.)

The programmable key control-V has been added, meaning to delete the last word.

If you have an “[Accelerators]” section in your initialization file, you will need to add the lines

        cu     deleteline
        cv     deleteword
        f8     quoteanything

to get this behavior. This file “sample3.ini” has been modified to contain these 3 lines. You should copy the new bindings from that file if you have your own initialization file with an “[Accelerators]” section. You can, of course, bind other keys to the deleteline, deleteword, and quoteanything commands.

If you do not have an initialization file, or it does not have an “[Accelerators]” section, you do not need to do anything.

The program recognizes a few more resolves.

New concept: leading triangle. In this concept, the apex of the triangle steps forward to become the lead of a 2x2 box. As with all calls and concepts, we do not take a position for or against the use of this concept.

The spelling of the concepts couples of three, tandems of four, and so on, were changed to use the digits 3 or 4 instead of spelling the numbers out. The only places where numbers continue to be spelled out is in words like twosome or threesome.

There is a fractionalizable version of invert the column, called invert the column (parts). Use this if you want to use concepts like sandwich, random, or interrupt. If you only need to do some fraction (say 3/4) of an invert the column, just use call invert the column 3/4. The latter call is better able to handle concepts like single or 3x3.

The program now expects dancers to work together more closely during snag the <anyone> or <anyone> work <concept>. Specifically, it requires that it would have been legal for everyone to begin the call normally. Previously, the two groups of dancers ignored each other so completely that things like snag the ends, cross and wheel were considered legal in waves—each group of people worked in their own imagined 2-faced lines.

An error in roll after mini chase has been fixed.

An error in the definition of dixie diamond, dixie sashay, dixie derby, and dixie spin was fixed. These calls now have just two parts. The first of those is a dixie style to a wave, which in turn has two parts—belles/centers pull by and left touch 1/4.

The interpretation of things like initially twice or random twice has been changed again. The “emerging consensus” of the preceding version was a figment of my imagination. Initially twice mix has two parts. The first of these is centers cross run, done twice. The philosophical point here is that “parts don't subdivide”. If a concept effectively goes inside a call, to apply just to a certain part or parts, the overall number of parts is not changed. Mix is a two part call, even if a concept is applied to one of its parts. This is true even if that concept is twice.

An obscure bug was fixed in deeply nested (3 or more levels) meta-concepts. It is now possible to call, for example, initially initially echo tandem settle back or finally finally reverse echo busy [hot foot spin].