home *** CD-ROM | disk | FTP | other *** search
- PSAM - a Program for Scoring Athletics Matches - Version 0.06
- -------------------------------------------------------------
-
- PSAM is designed for scoring track-and-field matches where the number of
- scorers in each event is fixed, the number of scorers from each team is also
- fixed, and competitors are declared in advance. It is very configurable and can
- cope with a range of different kinds of match. However, there is no support for
- non-scorers or guests. Handling these is just (in my opinion) a word-processing
- problem, and a word-processor can be run alongside PSAM to deal with them.
-
- PSAM is freely distributable, but the author retains the copyright. See the
- file called LICENCE.
-
- Philip Hazel
- 33 Metcalfe Road
- Cambridge CB4 2DB
- Phone: +44 1223 365518
- Email: ph10@cam.ac.uk
-
-
- Running PSAM
- ------------
-
- The PSAM icon is supposed to be a field with a track running round it. The
- program loads onto the icon bar in the usual way. When first loaded, the icon
- is dark, indicating that no match is in progress. As soon as you enter some
- data, either by loading a file, or via the menus, the icon changes to green and
- yellow. You cannot then load a new file without unloading the old one, and you
- can't unload without explicitly saving or discarding the current data.
-
- It is suggested that you load PSAM at this point and have it available to look
- at as you read through this document. Some sample scored matches are supplied
- so that you can see all the facilities without having to invent data for
- yourself.
-
-
- Saving data in files
- --------------------
-
- PSAM saves its data in ordinary text files. It didn't seem worth inventing a
- special file type for the small number of times that you actually load a file,
- so the only loading method is by dragging such a file to the icon. The files
- are human-readable, though not in a very useful format for human
- interpretation. However, it would be straightforward, for example, to write a
- program to process the results in some special way.
-
- Every 2 minutes, PSAM checks to see if there have been any changes to the data
- it has in RAM, and if there are, it dumps the data to a disc file. Thus if the
- power fails or (heaven forfend) the program crashes, you don't lose very much
- data. The first time it wants to save data, PSAM pops up a standard Save
- dialogue box, to allow you to specify where the data is to be saved. Subsequent
- saves are written to the same file without asking. You can also save manually
- from the menu at any time. If you do this before the first automatic save, PSAM
- will use the same file for subsequent automatic saves, without asking first.
-
-
- Overview of operation
- ---------------------
-
- Scoring a match normally happens in three stages:
-
- (1) First, you define the structure of the match: which age/sex groups there
- are, which events they are doing, how many scorers there are per event
- (strictly, scorers per "string"), and the scoring rules. If you are going to
- score several matches in the same league, this need be done just once, saved,
- and then you can start from there for each match. You can also define a layout
- for a cover sheet containing the final result of the match.
-
- (2) At the start of a match, each team is defined and the team declarations are
- entered into declaration windows. It is possible to have more teams than
- scorers per string, assuming that not all teams are competing in all groups
- (the East Anglian League final is like this). It is also possible to have fewer
- teams than scorers per string if there is more than one scoring athlete from
- each team. However, for many matches the number of teams is the same as the
- number of scorers per string.
-
- (3) As the results come in during the match, they are entered into on-screen
- scoresheets, of which there is one for each age/sex group. All you enter are
- the team letters and times or distances - the competitors' names are obtained
- from the declarations. Scores are automatically allocated and totalled and a
- match summary window shows the running totals for all groups and optionally a
- running grand total. At the end of the match, scoresheets and a summary cover
- sheet can be printed, and it is also possible to print out a page for each
- team showing the times and distances achieved by all its competitors.
-
- The description below assumes this sequence of events, but PSAM does not impose
- any ordering other than what is logically necessary. For example, you can't
- display a scoresheet until you have declared at least one team. However, you
- can change things at any time. You can add or delete events in the middle of a
- match, for example. Much more likely, you can change declarations at any time;
- if a changed competitor already appears on a scoresheet, the name is changed in
- both places.
-
- If you change the scoring rules, PSAM will re-score the entire match. You can
- use it to answer questions such as "what is the result if we change from
- 4-3-2-1 scoring to 7-5-2-1?" for example.
-
-
- The Menu
- --------
-
- PSAM has just one menu, which can be pulled up from the icon and from any
- scoresheet or declaration window and from the title window. Various menu items
- are greyed out when not usable. As well as the usual Info and Quit items, the
- menu contains the following:
-
- Title... brings up a title window which is also displayed if you click
- with Select on the icon, and whenever you load a file. The contents
- of the fields in this window (the name of the league and division,
- the date, venue and host club) are available for use in cover sheets,
- and the date, league, and venue are printed on the bottom of each
- scoresheet. If the date is empty when a file is loaded, it is
- automatically set to the current date. Thus you should save a
- "starter" file with an empty date field. The "Match ID" item is
- useful if you are scoring two matches simultaneously, by running two
- copies of PSAM. Any text you enter in this field is prefixed to the
- normal titles of the group and team windows, thus indicating to which
- match they belong. The text is not used for anything else. The "cover
- template" item at the bottom of the title window is described in the
- section on cover pages below.
-
- Match... brings up the summary window for the match, containing the totals and
- positions for each group and optionally grand totals and league points
- (see description of the scoring rules dialogue box below).
-
- Group When at least one event, one group, and one team are defined, this item
- leads to a submenu of group names. Selecting one of them causes the
- scoresheet window for that group to be displayed, or brought to the
- front if hidden behind other windows.
-
- Team When at least one team is defined, this item leads to a submenu of
- team names. For each team there is a further submenu of the groups it
- is connected to, and selecting in this submenu causes the declaration
- window for that group to be displayed. When the team is not connected
- to any groups, its name is greyed out.
-
- Print opens a printing dialogue box (see Printing below).
-
- Structure leads to submenus for manipulating the structure of the match, as
- described below.
-
- Save is just as you would expect.
-
- Unload unloads the current match data so that a new match can be loaded. If
- the data are not saved, you are prompted as to whether you want to
- save or discard.
-
-
- Scorers and Strings
- -------------------
-
- Many athletics matches are scored in "strings". Each string is scored as if it
- were a separate event, even if the competitors actually compete together,
- though which athelete is in which string is sometimes not determinable until
- the results of a joint event are known. Different events may have different
- numbers of strings, so the number of strings is an attribute of an event rather
- than being an overall setting.
-
- Most of the matches I deal with have two strings (known as A-string and
- B-string) for each event, and in each string there is at most one competitor
- from each team. So, for example, if there are five teams competing there will
- be two 100m races run, one for each string.
-
- Another type of scoring does not use strings, but instead has more than one
- competitor from each team in each event. This scheme is used in some schools
- matches, and may be preferred when the number of competing teams is small. For
- example, two competitors from each of three teams leads to events with six
- competitors.
-
- PSAM can handle each of these types of scoring, and is in fact even more
- general. It can handle more than two strings, and can also handle a
- (hypothetical) match which involves both multiple strings and more than one
- competitor per team.
-
-
- Setting up the match structure
- ------------------------------
-
- The Structure menu item leads to a submenu containing four items: Add, Edit,
- Delete, and Score. The first three all operate in the same way on events,
- groups, and teams. The last one leads to a dialogue box for setting up the
- scoring rules, and is usually set up once and for all as the first thing you do
- when starting from scratch.
-
-
- The scoring rules dialogue box
- ------------------------------
-
- The top two items in this box are labelled "Scorers per team" and "Scorers per
- string", and are adjusted by the adjacent arrow icons. "Scorers per string"
- must be a multiple of "Scorers per team".
-
- "Scorers per team" defines the number of scoring competitors from each team
- that compete in any one event, where "event" means a single string if multiple
- strings are in use.
-
- "Scorers per string" defines the number scoring athletes in each string, which
- is also the number of result columns on the scoresheets. Up to eight fit
- reasonably on a printed page; more than that and the columns will be rather
- narrow.
-
- The number of scoring columns on the right of the scoresheets is computed by
- dividing "Scorers per string" by "Scorers per team". So, for example, if there
- are 2 scorers per team and 6 scorers per string, there will be three scoring
- columns - that is, PSAM assumes that three teams are competing.
-
- The next field down is labelled "Scores". This specifies how to score each string.
- If it is left empty, then the last place gets 1 points, the second-last 2
- points, and so on, so that the winner of each string gets a number of points
- equal to the number of scorers per string.
-
- To change this rule, just give a list of numbers separated by commas, starting
- from the winning value, for example "7,4,2,1". The same scoring will be used
- for all strings by default, but if you want to change this, use a semicolon to
- separate the strings. For example, "8,6,4,2; 7,5,3,1" scores A-strings 8-6-4-2
- and B-strings 7-5-3-1. If you change this field during a match, all scoresheet
- windows are closed, and when you reopen them, they are re-scored.
-
- The "Match score" box encloses several icons concerned with how to calculate an
- overall match score. Radio buttons select one of:
-
- . No overall match score: each group is scored individually, and no totals are
- computed. The match summary window just shows the group totals.
-
- . Totals only: grand totals of all the group scores are computed, and the
- match result is based on them. This is the default.
-
- . Totals and league points: totals are computed as above, but also league
- points are computed by scoring each group by position in the group. (This is
- the way the East Anglian League is scored.) By default, the last team in
- the group gets 1 point, the second-last 2 points, etc., but you can specify
- otherwise in the League points field. The match summary window shows both
- the grand totals and the league points totals, and positions based on each.
-
- The scoring rules are not updated unless you press the "Update" button. To get
- rid of the window without making any changes, press the "Cancel" button.
-
-
- Adding events
- -------------
-
- It is usually best to add all the events first because there are normally more
- events than groups. You can then specify which events apply to each group as
- you add it. It is, however, possible to do it the other way round if you wish.
- The Structure->Add->Event menu item brings up an event dialogue box, with the
- following fields:
-
- Name: Each event must have a unique name. You can use a single event with a
- generic name such as "Hurdles" for an event that is actually a different
- distance in each group, or you can put in separate "70m Hurdles",
- "110m Hurdles", etc. In the first case, all groups would be attached to
- the same event; in the second each would have a separate event. Event
- names should not be too long. Putting in spaces allows them to be split
- for display on the screen (e.g. "4 x 100m") but they are always on a
- single line in the printed scoresheets.
-
- Order: This specifies the order in which the events appear in the onscreen and
- printed scoresheets and in menus. The next free number is set by
- default. For example, if you have defined 3 events, the next one gets
- order number 4, but you can change it to 1, 2, or 3 to insert it
- earlier in the list. The same order applies to all scoresheets; it is
- not possible to have the same events in a different order for different
- groups, though of course events that do not apply to a group are
- omitted from its scoresheet.
-
- Groups: If any groups are defined, this button brings up a menu so that you can
- select which of them compete in this event. By default, all are
- selected.
-
- Strings: Specifies the number of strings for this event. The default is 2, for
- the common 2-string matches that I score. You can set it to 1 for
- relays or other events that have only one string. The program supports
- more than 2 strings, though I haven't used this for real.
-
- Track: The radio buttons specify whether this event is a track or a field
- Field: event. This affects the format of the time or distance that can be
- entered in the scoresheets.
-
- Pressing Add with the Select button adds the event and closes the dialogue box;
- using Adjust adds the event and leaves the dialogue box displayed so that you
- can add another event. The name is cleared and the order is set to the next
- free number, but the other fields remain as they were, so you don't need to
- keep resetting Track/Field or the number of strings when adding several events
- of the same type.
-
-
- Adding groups
- -------------
-
- The Structure->Add->Group menu item brings up a group dialogue box, which
- operates in the same way as the event dialogue box. The fields are:
-
- Name: Each group must have a unique name, for example "Boys U15".
-
- Order: This specifies the order of the group in menus and in the match
- summary window and on the results cover page (see discussion of Order
- under "Adding Events").
-
- Events: If any events are defined (and it is recommended that you define the
- events before the groups) this button brings up a menu so that you can
- specify which events apply to this group. The default is all of them.
-
- Events per page: This box applies to the printed scoresheets only. If there are
- more events than will fit on a single A4 page, printed sideways, then
- PSAM automatically starts a new page (showing carried forward totals)
- when a page is full. However, this may result in a single event
- appearing on the second page, and it might be nicer, for example, to
- have all the track events on one page and the field events on another.
- You can put a list of comma-separated numbers in this box, specifying
- how many events are to appear on each printed page.
-
-
- Adding Teams
- ------------
-
- The Structure->Add->Team menu item brings up a team dialogue box, which
- operates in the same way as the event and group dialogue boxes. The fields are:
-
- Name: The full name of the team, e.g. "Cambridge and Coleridge".
-
- Abbreviation: A short form of the team name for use in menus and in scoresheets
- where no competitor name is decleared, e.g. "C&C".
-
- Order: This specifies the order of the team in menus and the left-to-right
- order on scoresheets (see discussion of Order under "Adding Events").
-
- Letter: Each team must have a unique team letter.
-
- Groups: If any groups are defined, this button brings up a menu so that you
- can set which groups this team has. The default is all groups.
-
-
- Editing events, groups, and teams
- ---------------------------------
-
- Structure->Edit leads to a submenu containing Events, Groups, and Teams. When
- any are defined, there are further submenus giving lists of them. Selecting in
- one of these menus brings up the same dialogue box that was used for adding.
- Change it as required, and then press the Update button to get the changes to
- take effect.
-
-
- Deleting events, groups, and teams
- ----------------------------------
-
- Structure->Delete leads to a submenu containing Events, Groups, and Teams. When
- any of them are defined, there are further submenus giving lists of them.
- Selecting in one of these lists causes deleting. If relevant data exists, a
- confirmation is required first.
-
-
- Declarations
- ------------
-
- The Team menu leads to a list of teams, each of which lead in turn to a list of
- groups for that team. Selecting one of these brings up the declaration window
- for that group. The title of the window is the team name followed by the group
- name, e.g. "Cambridge and Coleridge Girls U13", preceded by the match ID string
- if one has been set. The window consists of a list of events down the lefthand
- side, and icons into which the names of competitors are entered, the number of
- icons for each event being equal to the number of strings for the event,
- multiplied by the number of scorers per team (as set in the scoring rules
- window).
-
- The order for competitor names is: 1st competitor in 1st string, 2nd competitor
- in 1st string, ... last competitor in 1st string; 1st competitor in 2nd string,
- 2nd competitor in 2nd string, ... etc. I have not, however, come across a match
- which had both multiple scorers per team and multiple strings, so in the more
- simple cases one has either:
-
- (a) If only one competitor per team, the competitors appear in string order.
- or
- (b) If only one string, the competitors are in some arbitrary order.
-
- See "Handling strings and multiple competitors" below for a discussion of how
- each competitor is identified when filling in a scoresheet.
-
- Clicking with the Select button in one of the icons in a declaration window
- changes its background colour to white and gives it the input focus. The TAB
- key can be used to move on to the next icon, and CTRL/TAB to move back to the
- previous one. Shift/TAB moves on to the first icon of the next event, and
- Shift/Ctrl/TAB moves back to the first icon of the previous event.
-
- There's no "confirm" button; all changes made in the window are immediately
- "live", and if the competitor already appears in a scoresheet, that is
- automatically updated in line with the declaration. If a competitor's name
- contains accented characters, the RISC OS !Chars application can be used to
- obtain them. Open the !Chars window, and click with Select on the character you
- require.
-
- The same competitor often competes in several events. Clicking with the Adjust
- button on an icon in a declaration window copies the contents of that icon to
- the icon that has the input focus, provided it is in the same declaration
- window. Any previous contents of the icon are discarded.
-
- Sometimes changes are required that simply involve swapping over two names. To
- do this, click on one of the icons with Select, to give it the focus. Then hold
- down the SHIFT key, and click on the other one with Adjust. Again, this works
- only within one declaration window.
-
- If no competitor name is declared for an event, the team's abbreviated name
- appears in the scoresheets. It is therefore usual not to fill in any
- declaration for relays.
-
-
- Onscreen scoresheets
- --------------------
-
- The Group menu item leads to a list of groups, and selecting one of them causes
- the scoresheet for that group to be displayed. If this is the first time it has
- been displayed there is a pause while its layout is computed, and if it
- contains results the pause is a bit longer while the score values are
- recomputed.
-
- A scoresheet contains the names of the events down the lefthand side, and then
- a double row of icons for the results of each string, and on the right, scoring
- columns for each team, headed by the team letter. Initially, all but the event
- names are blank. The window can be opened and closed as often as you like. The
- data it contains is always "live" and does not have to be explicitly
- "accepted".
-
- There are three icons for each result. The longest one, across the top, is for
- the competitor's name. On the screen, this will scroll if the name is very
- long; when printing, a smaller typeface is used for very long names. The second
- row underneath contains a small icon for the team letter, and a larger one for
- the time or distance. When there is more than one string, separate rows of
- result triples are provided for each string.
-
-
- Entering results
- ----------------
-
- To enter a result, click with Select on the team letter icon for the relevant
- competitor - usually starting with the winner. This turns the icon's background
- white and gives it the input focus. Type the team's letter (do *not*
- use the SHIFT key, except as described below). The declared athlete's name
- appears above, with the focus moving on to the time/distance icon.
-
- The score is automatically computed and displayed in the righthand scoring
- column for the team, and the totals at the bottom of the scoresheet and match
- summary window are always completely up-to-date.
-
- In cases where there are multiple strings and/or multiple athletes per team,
- simply typing the team letter may not be enough to identify the correct
- competitor. The next section contains a discussion of how these cases are
- handled.
-
- You should now enter the time or distance in the time/distance icon. See below
- for how to handle special cases such as ties and disqualifications. Times are
- entered as seconds and tenths, with a dot between them (12.1) or as
- minutes, seconds, and tenths, with a colon after the minutes (5:41.2).
- Distances are entered as metres to two decimal places (24.65).
-
- When the focus is moved away from a time/distance icon, PSAM checks for any
- gross typos. For example, it won't let a runner-up be faster or throw further
- than a winner. If PSAM won't let you enter a value that you think you should be
- able to, check that you have correctly set up the event as track or field.
-
- You can always go back and correct any mistakes in the times or distances by
- clicking in the appropriate icon to give it the input focus, and editing in the
- usual way. Holding down SHIFT and pressing DELETE in a time/distance icon
- deletes the entire result and moves the focus back to the team letter icon.
- Clicks in time/distance icons for unset results are ignored.
-
- Pressing TAB in a time/distance or team letter icon moves the focus on to the
- next result; CTRL/TAB moves back to the previous one. The window scrolls
- automatically if necessary so that the new result comes into view. Shift/TAB
- moves to the beginning of the next string or event, and Shift/Ctrl/TAB to the
- beginning of the previous one.
-
-
- Handling strings and multiple competitors
- -----------------------------------------
-
- In the general case of multiple strings with multiple competitors, there may be
- several declared athletes from a single team for a single event. PSAM provides
- a general mechanism for identifying each athlete in a declaration, but it also
- includes some short-cuts that apply when there are only two declarations per
- event - that is, either there are two strings with one scorer per team, or two
- scorers per team and only one string.
-
- When there is more than one scorer per team, a number is displayed before the
- team letter for each result. Using the team letter "R" as an example, the first
- competitor would show "1R", the second "2R" and so on. When there is only one
- scorer per team, the team letter alone is used for the first string and a
- doubled letter for the second string ("R" and "RR") as is conventional. If
- there are more than two strings, numbers are used for the third and subsequent
- strings.
-
- When entering a result, you can always specify a competitor precisely by typing
- a number before the team letter; the number counts across the declaration sheet
- from left to right. For example, if there are two strings with two competitors
- per team, "3R" gets the third competitor listed.
-
- If you just type the team letter without a number, PSAM assumes the reference
- is to the first declared competitor for the current string; if you hold down
- the SHIFT key and type the team letter, PSAM assumes the reference is to the
- second competitor in the current string, or, if there is only one competitor
- per team, to the first competitor in the next string.
-
- If the competitor referenced is already listed in the current event, there is
- an error unless there are exactly two competitors per team in the event (either
- one string and two competitors per team, or two strings and one competitor per
- team), in which case PSAM tries the other competitor.
-
- All that sounds a bit complicated because the description covers the general
- case. When there are only two declared atheletes per event per team, the team
- letter alone gets one of them, and SHIFT with the team letter gets the other.
- When one has already appeared in the result, the team letter alone (with or
- without SHIFT) gets the other.
-
- This means that in an event with two strings and one scorer per team, all you
- normally have to type is the team letter, except in cases where the A-string
- and B-string competitors have to be swapped. If you want to specify that the
- B-string declaration is to be used in the A-string result, use SHIFT with the
- team letter. This then displays a double letter and the B-string competitor.
- Similarly, SHIFT can be used to enter the A-string competitor in a B-string
- result, if you are entering that first. In both cases, when you get to the
- other string, you don't need to use SHIFT, as PSAM will automatically use the
- other competitor.
-
- Similarly, if there is only one string and two scorers per team, the team
- letter is enough if they finish in the declared order. Otherwise you can use
- SHIFT to get the other declaration.
-
- It is also possible to swap over already-entered results when there are only
- two declarations per team. If you press the ! key anywhere in the time/distance
- icon, the two competitor names for the team are exchanged. This can be done
- when either one or both names are on the scoresheet.
-
- This feature is implemented in the time/distance icon because it is common (at
- least in our leagues) for field cards not to be clear about strings, and then
- entering a team letter for the A-string produces a different name to the one on
- the card. By this time the input focus is in the time/distance icon, so it is
- convenient just to be able to type ! to get the other name.
-
-
- Ties
- ----
-
- It two or more competitors are tied in a result, enter the first one as
- described above. Then for the second and subsequent ones, instead of entering a
- time or distance, press the = key. The time or distance is then copied, and =
- characters are added to indicate the tie. The score values are divided equally
- among those that are tied. Note that if you want to change a tied result, the
- only keystrokes that are accepted in a time/distance icon that contains an
- equals sign are DELETE and CTRL/U. The first undoes the tying, leaving the
- result with the same time/distance value as it had; the second undoes the tying
- and clears the field completely. In both cases, the scores are recomputed.
-
-
- Disqualification, did not finish, or failed to jump or throw
- ------------------------------------------------------------
-
- If "d" is typed anywhere in a time/distance icon, the text "disq." is displayed
- and no score is recorded for that result.
-
- If "f" is typed anywhere in a time/distance icon, the text "DNF" is displayed
- for a track event, or "failed" for a field event, and no score is recorded for
- that result.
-
- In either case, the only keystrokes that are subsequently accepted in these
- fields are DELETE and CTRL/U. Both cause the field to be cleared and the score
- to be recomputed. You can then enter some other value.
-
-
- Deleting results
- ----------------
-
- To delete a result entirely, click on the team letter icon and press the DELETE
- key, or hold down SHIFT and press DELETE while the focus is in the
- time/distance icon.
-
-
- Printing
- --------
-
- The Print menu item brings up the printing dialogue box, but only if you have
- loaded a printer driver previously. You can specify the number of copies
- required, whether you want a cover page, and which groups' scoresheets are to
- be printed. You can also specify whether you want result sheets for individual
- teams to be printed. The group and team selections (by menu, when the All
- option is unset in each case) apply only to the current printing operation;
- they does not persist.
-
- Printing is done in landscape mode (sideways paper) and the result columns are
- narrowed if necessary to fit on the page. Long names are printed using a
- narrower typeface, but *very* long names will get truncated.
-
-
- Printing a cover page
- ---------------------
-
- The layout of the cover page is specified in a template file. The directory
- called Covers inside the !PSAM application contains a selection of such files,
- and you can make as many new ones as you want. The choice of which cover
- template to use is set in the match's Title window, where the file name is
- shown, and a menu is provided for selecting from those that exist. The cover
- template name is saved with the match data.
-
- It's a bit fiddly setting up a cover template, but since it's something that
- isn't done very often, I haven't put effort into thinking of how it could be
- improved.
-
- A cover template file is a "picture" of what you want to appear on the cover
- page. Each line (with one exception) in the template represents a line on the
- page. Normal text is just copied to the page, but whenever a $ character is
- encountered, it is interpreted as an instruction either to insert some data
- into the line of text, or to position it at some special position, or to print
- it in some particular font.
-
- For example, $c means that the remaining text on the line is to be centred on
- the page, while $L means "insert the league name here". Have a look at some of
- the templates provided to get an idea of what can be done. The one called
- "Default" is the simplest.
-
- Each code consists of everything between the opening $ and the next space,
- *inclusive*. Subsequent spaces are taken as part of the printing data. The
- available codes are listed below. If anything else follows a $ character, the
- characters between the $ and the next space are copied verbatim to the output.
-
-
- Layout
- ------
-
- $c centre what follows, to end of line or $r
- $r right-justify what follows, to end of line
-
- Leading and trailing spaces are removed from text that is to be centred or
- right-justified. If you want to avoid this, use "hard spaces":
-
- $# hard space, not removed from centring or right-justifying
-
- Some special characters are available as escape sequences:
-
- $- insert an en-dash (longer than a hyphen)
-
- If a line starts with "$tabs", it is not treated as a printing line, but
- instead as a definition of tab settings. You can't have "$tabs" in the middle
- of a line.
-
- $tabs n1 n2 n3 ...
-
- The numbers are cumulative and represent a number of spaces from the previous
- position. Thus if you set
-
- $tabs 10 13 8
-
- the first tab position is 10 spaces in from the left; the next is 13 spaces
- further on, and the last one is 8 spaces after that.
-
- $t move on to the next tab
-
- The appearance of "$t " in a line moves on to the next available tab stop. The
- Default cover template has examples of tab use. Remember that the space after
- "$t" is the terminator for the code and doesn't get printed.
-
-
- Font changes
- ------------
-
- $rm change to roman font at current size
- $it change to italic font at current size
- $bf change to bold font at current size
- $bi change to bold italic font at current size
-
- Alternatively, explicit sizes can be given, as in these examples
-
- $rm12 change to roman font at 12-point size
- $rm12,14 change to roman font at 12-point horizontal, 14-point vertical size
-
- The previous font is stacked:
-
- $pf change back to the previous font
-
- There is room for up to 20 previous fonts on the stack. If more than 20 changes
- of font are made, the bottom 10 "drop off" the stack each time it is filled.
-
-
- Inserts
- -------
-
- $L insert league name
- $N insert league division (couldn't use D!)
- $H insert hosts' name
- $V insert venue name
- $D insert date
-
- Teams in team order (n is a number):
-
- $TnN team n's name
- $TnL team n's letter
- $TnS team n's score
- $TnP team n's position
-
- Teams in result order (n is a number):
-
- $RnN name of team that came nth
- $RnL letter of team that came nth
- $RnS score of team that came nth
- $RnP position of team that came nth
-
- If teams tie for a place, then the position text will be appropriate. For
- example, if two teams tie for 3rd place, then one of their names is given for
- $R3N and the other for $R4N, while both $R3P and $R4P will be "=3rd".
-
- League points for teams in team order (only when league points are being
- computed - see discussion in "The scoring rules dialogue box" above):
-
- $TnLS team n's score (league points)
- $TnLP team n's position
-
- League points for teams in result order:
-
- $RnLS score for the team that came nth by league points
- $RnLP position for the team that came nth by league points
-
- Group data in team order (n and m are numbers):
-
- $GnN the name of group n
- $GnTmS score for team m in group n
- $GnTmP position of team m in goup n
-
- Group data in result order (n and m are numbers):
-
- $GnRmN name of team that came mth in group n
- $GnRmL letter of team that came mth in group n
- $GnRmS score of team that came mth in group n
- $GnRmP position of team that came mth in group n
-
- **** End ****
-