home services resume portfolio contact us about me


Return To Portfolio Home


boss intro(3)                                       boss intro(3)


NAME
       boss intro - Introduction to the Boss library functions.

SYNOPSIS
       #include <boss.h>


       BOSS DATA *BossParse(filename)
       char *filename;

       int BossGenerate(filename, bdata)
       char *filename;
       BOSS DATA *bdata;

       int BossTransmit(tty, speed, modes, bdata)
       char *tty;
       int speed;
       char *modes;
       BOSS DATA *bdata;

       BOSS DATA *BossReceive(tty, speed, modes)
       char *tty;
       int speed;
       char *modes;

       char *BossDecodeStr(str)
       char *str;

       char *BossEncodeStr(str)
       char *str;

       BOSS DATA *BossUnion(bdata1, bdata2)
       BOSS DATA *bdata1, *bdata2;

       BOSS DATA *BossDiff(bdata1, bdata2)
       BOSS DATA *bdata1, *bdata2;

       BOSS DATA *BossIntersection(bdata1, bdata2)
       BOSS DATA *bdata1, *bdata2;

       void BossSetIOCB(cb)
       void (*cb)(char *, int);

       void BossStop(void)

       void BossFree(bdata)
       BOSS DATA *bdata;

       char *BossError(void)


DESCRIPTION
       This  manual  page  describes the library functions in the
       boss communications library (libboss.a).



                          2 January 1996                        1





boss intro(3)                                       boss intro(3)


       BossParse()
              Parse filename  and  return  the  parse  tree  data
              structure.


       BossGenerate()
              Output  an  ASCII representation for bdata to file-
              name.


       BossTransmit()
              Transmits the BOSS DATA in  bdata  out  the  serial
              line  tty.  Speed  and modes specify the serial I/O
              parameters.


       BossReceive()
              Receive data from the serial line  tty.  Speed  and
              modes  specify the serial I/O parameters. Returns a
              BOSS DATA structure for the received data.


       BossDecodeStr()
              Decodes a string  containing  non-ASCII  characters
              and  returns  the  same  string, but with the Casio
              special characters replaced with escape  sequences.


       BossEncodeStr()
              Encodes   an   ASCII   string,   containing  escape
              sequences, and returns the  same  string  with  the
              escapes  converted  to  the  Casio binary character
              set.


       BossUnion()
              Returns a new BOSS DATA which contains all  records
              from  bdata1  and  bdata2.   Duplicate records from
              both are removed.


       BossDiff()
              Returns a new BOSS DATA  which  contains  only  the
              records  from  bdata2 which do not occur in bdata1.
              Duplicate records from both are removed.


       BossIntersection()
              Returns a new BOSS DATA which contains the  records
              that  are  common between bdata1 and bdata2. Dupli-
              cate records from both are removed.






                          2 January 1996                        2





boss intro(3)                                       boss intro(3)


       BossSetIOCB()
              Registers an Input/Output call back procedure. This
              procedure will be called during I/O operations.


       BossStop()
              Can be called from signal handlers to interrupt any
              I/O operation in progress.


       BossFree()
              Free's a BOSS DATA object.


       BossError()
              Returns a static string, from the most recent error
              to occur in the Boss library.


SEE ALSO
       BossParse(3),  BossGenerate(3),  BossTransmit(3),  BossRe-
       ceive(3),  BossDecodeStr(3),  BossEncodeStr(3),  BossSetI-
       OCB(3), BossStop(3), BossFree(3), BossError(3)

AUTHOR
       Ken Stauffer
       Email: kstauffer@attmail.com


                          2 January 1996                        3




BossDecodeStr(3)                                 BossDecodeStr(3)


NAME
       BossDecodeStr - Convert B.O.S.S. character set to ASCII

SYNOPSIS
         #include <boss.h>

         char *BossDecodeStr(str)
         char *str;

DESCRIPTION
       This  function  is  part  of the Casio Boss communications
       library (libboss.a). This function will return a  copy  of
       str,  but  any character in str which is non-ASCII will be
       represented as an  escape  sequence.  (eg.  the  character
       octal(221) will be converted to "\ae").

       The  purpose  of  this  function  is  to  convert  strings
       received from the B.O.S.S. into an  easy  to  print  ASCII
       style.

ESCAPE SEQUENCES
       This  table  shows  the  special characters that cannot be
       represented in  ASCII.  The  columns  OCTAL/HEX  show  the
       actual  binary value for a B.O.S.S. character.  The column
       ESCAPE show what the ASCII escape seqence would be.

            OCTAL   HEX    ESCAPE    CHARACTER DESCRIPTION
            -----   ---    ------    ------------------------------------------
            0025    16     \S   Two superimposed S's (section number sign)
            0074    3c     \<   less than symbol.
            0134    5c     \\   Backslash

            0200    80     \C,  The letter C with a comma like tail
            0201    81     \u:  Umlaut accents
            0202    82     \e'  Acute accents.
            0203    83     \a^  Circumflex accents
            0204    84     \a:  Umlaut accents
            0205    85     \a`  Grave accents
            0206    86     \a.  The letter 'a' with a small circle on top.
            0207    87     \c,  The letter 'c' with a commal like tail out of bottom.
            0210    88     \e^  Circumflex accents
            0211    89     \e:  Umlaut accents
            0212    8a     \e`  Grave accents
            0213    8b     \i:  Umlaut accents
            0214    8c     \i^  Circumflex accents
            0215    8d     \i`  Grave accents
            0216    8e     \A:  Umlaut accents
            0217    8f     \A.  Angstrom symbol (Letter 'A' with small circle atop)
            0220    90     \E'  Acute accents.
            0221    91     \ae  Two letters 'a' and 'e' next to each other.
            0222    92     \AE  Two letters 'A' and 'E' next to each other
            0223    93     \o^  Circumflex accents
            0224    94     \o:  Umlaut accents
            0225    95     \o`  Grave accents



                          4 January 1996                        1



BossDecodeStr(3)                                 BossDecodeStr(3)


            0226    96     \u^  Circumflex accents
            0227    97     \u`  Grave accents
            0228    98     UN-ASSIGNED
            0231    99     \O:  Umlaut accents
            0232    9a     \U:  Umlaut accents
            0233    9b     \c|  Cents symbol. ('c' with line through it)
            0234    9c     \l   A decorative 'l'-looking character.
            0235    9d     \Y   A Y shaped character with two horizontal bars (upsilon?)
            0237    9f     \f   italics f looking symbol (integration?)
            0240    a0     \a'  Acute accents.
            0241    a1     \i'  Acute accents.
            0242    a2     \o'  Acute accents.
            0243    a3     \u'  Acute accents.
            0244    a4     \N~  Tilde accents
            0245    a5     \n~  Tilde accents
            0246    a6     \a   small 'a' with an underscore under it.
            0247    a7     \o   small 'o' with an underscore under it.
            0250    a8     \?   upside down question mark. (open question)
            0251    a9     UN-ASSIGNED
            0252    aa     UN-ASSIGNED
            0253    ab     \12  1/2 symbol
            0254    ac     \14  1/4 symbol
            0255    ad     \!   upside down exclamation mark '!'. (open exclamation)
            0256    ae     \{-  A left pointing arrow symbol.
            0257    af     \-}  A right pointing arrow symbol.
            0260    b0     UN-ASSIGNED
            0261    b1     UN-ASSIGNED
            0262    b2     UN-ASSIGNED
            0263    b3     \|   Large vertical bar.
            0264    b4     UN-ASSIGNED
            0265    b5     \A'  Acute accents.
            0266    b6     \I'  Acute accents.
            0267    b7     \O'  Acute accents.
            0270    b8     \U'  Acute accents.
            0271    b9     \A`  Grave accents
            0272    ba     \E`  Grave accents
            0273    bb     \I`  Grave accents
            0274    bc     \O`  Grave accents
            0275    bd     \U`  Grave accents
            0276    be     \P   Backward P with two vertical bars. (paragraph sign)
            0277    bf     UN-ASSIGNED
            0300    c0     UN-ASSIGNED
            0301    c1     UN-ASSIGNED
            0302    c2     UN-ASSIGNED
            0303    c3     UN-ASSIGNED
            0304    c4     UN-ASSIGNED
            0305    c5     UN-ASSIGNED
            0306    c6     \A^  Circumflex accents
            0307    c7     \E^  Circumflex accents
            0310    c8     \I^  Circumflex accents
            0311    c9     \O^  Circumflex accents
            0312    ca     \U^  Circumflex accents
            0313    cb     \E:  Umlaut accents
            0314    cc     \I:  Umlaut accents



                          4 January 1996                        2



BossDecodeStr(3)                                 BossDecodeStr(3)


            0315    cd     \A~  Tilde accents
            0316    ce     \a~  Tilde accents
            0317    cf     \O~  Tilde accents
            0320    d0     \o~  Tilde accents
            0321    d1     \IJ  Two letters 'I' and 'J' next to each other
            0322    d2     \ij  The two letters 'i' and 'j' next to each other.
            0323    d3     \^3  Power of 3 symbol
            0324    d4     \34  3/4 symbol
            0325    d5     UN-ASSIGNED
            0326    d6     UN-ASSIGNED
            0327    d7     UN-ASSIGNED
            0330    d8     \Fr  The 'F' letter followed by an 'r'.
            0331    d9     UN-ASSIGNED
            0332    da     UN-ASSIGNED
            0333    db     UN-ASSIGNED
            0334    dc     UN-ASSIGNED
            0335    dd     UN-ASSIGNED
            0336    de     UN-ASSIGNED
            0337    df     UN-ASSIGNED
            0340    e0     UN-ASSIGNED
            0341    e1     \B   Beta symbol.
            0342    e2     UN-ASSIGNED
            0343    e3     UN-ASSIGNED
            0344    e4     UN-ASSIGNED
            0345    e5     UN-ASSIGNED
            0346    e6     \mu  microsecond symbol (mu symbol)
            0347    e7     UN-ASSIGNED
            0350    e8     \O-  Empty set symbol. (narrow 'O' with a slash through it)
            0351    e9     UN-ASSIGNED
            0352    ea     \Om  Omega symbol.
            0353    eb     UN-ASSIGNED
            0354    ec     UN-ASSIGNED
            0355    ed     \o-  A small short 'o' with a slash through it. (phi)
            0356    ee     UN-ASSIGNED
            0357    ef     UN-ASSIGNED
            0360    f0     UN-ASSIGNED
            0361    f1     \+-  a plus minus symbol (A '+' character on top of a '-')
            0365    f5     \x   Times symbol (multiplication)
            0366    f6     \dv  Division symbol
            0370    f8     \^o  Degree symbol. (small raised cirle)
            0373    fb     \sq  Square root symbol.
            0375    fd     \^2  Power of 2 symbol.
            0376    f0     UN-ASSIGNED
            0377    ff     UN-ASSIGNED

RETURN VALUES
              A non-NULL pointer is returned to indicate success.
              The  pointer  will  point to a malloc'd string that
              looks like 'str' except  non-ASCII  characters  are
              expanded to escape sequences.

       NULL:  A  NULL  pointer  indicates  an error. Usually this
              would indicate a bad character was  encountered  or
              an  out  of  memory condition.  Call BossError() to



                          4 January 1996                        3



BossDecodeStr(3)                                 BossDecodeStr(3)


              retrieve the error string.

SEE ALSO
       BossEncodeStr(3),      BossError(3),       boss format(5),
       boss data(3)

AUTHOR
       Ken Stauffer

       Email: kstauffer@attmail.com




                          4 January 1996                        4




BossDiff(3)                                           BossDiff(3)


NAME
       BossDiff - Return differences between two BOSS DATA struc-
       tures.

SYNOPSIS
         #include <boss.h>

         BOSS DATE *BossDiff(bp1, bp2)
         BOSS DATA *bp1, *bp2;

DESCRIPTION
       This function is part of  the  Casio  Boss  communications
       library  (libboss.a).  A  BOSS DATA  structure is returned
       which contains the records that only appear in bp2 and not
       in bp1. Duplicates will be removed.

       Record  equality  takes  into  consideration case distinc-
       tions, spelling, and white space. For any two  records  to
       be  considered the same all their data must be equivalent.

RETURN VALUES
              A non-NULL pointer  is  returned  on  success.  The
              pointer  will  point to a newly allocated BOSS DATE
              structure.

       NULL:  If an allocation error occurs  this  function  will
              return   a   NULL  pointer.   Call  BossError()  to
              retrieve the error message.

SEE ALSO
       BossUnion(3),      BossIntersection(3),       BossFree(3),
       boss data(3)

AUTHOR
       Ken Stauffer

       Email: kstauffer@attmail.com




















                         2 February 1996                        1





BossEncodeStr(3)                                 BossEncodeStr(3)


NAME
       BossEncodeStr - Convert ASCII string to B.O.S.S. character
       set

SYNOPSIS
         #include <boss.h>

         char *BossEncodeStr(str)
         char *str;

DESCRIPTION
       This function is part of  the  Casio  Boss  communications
       library  (libboss.a).  This  function does the opposite of
       BossDecodeStr(3).  A copy of str is returned  except  that
       any  escape  sequences  found in str will be replaced with
       the  B.O.S.S.  binary  equivalent.  (eg.  "\AE"  will   be
       replaced with 0222 or 0x92)

       The purpose of this function is so that strings from other
       data sources can be filtered through this function  before
       being  sent  to  the B.O.S.S.  In this way, other programs
       may make use of the same escape sequences defined by  Boss
       parser.

ESCAPE SEQUENCES
       This  table  shows  the  special characters that cannot be
       represented in  ASCII.  The  columns  OCTAL/HEX  show  the
       actual  binary value for a B.O.S.S. character.  The column
       ESCAPE show what the ASCII escape seqence  would  be.  The
       last column is a common descriptiono of what the character
       looks like.

            OCTAL   HEX    ESCAPE    CHARACTER DESCRIPTION
            -----   ---    ------    ------------------------------------------
            0025    16     \S   Two superimposed S's (section number sign)
            0074    3c     \<   less than symbol.
            0134    5c     \\   Backslash

            0200    80     \C,  The letter C with a comma like tail
            0201    81     \u:  Umlaut accents
            0202    82     \e'  Acute accents.
            0203    83     \a^  Circumflex accents
            0204    84     \a:  Umlaut accents
            0205    85     \a`  Grave accents
            0206    86     \a.  The letter 'a' with a small circle on top.
            0207    87     \c,  The letter 'c' with a commal like tail out of bottom.
            0210    88     \e^  Circumflex accents
            0211    89     \e:  Umlaut accents
            0212    8a     \e`  Grave accents
            0213    8b     \i:  Umlaut accents
            0214    8c     \i^  Circumflex accents
            0215    8d     \i`  Grave accents
            0216    8e     \A:  Umlaut accents
            0217    8f     \A.  Angstrom symbol (Letter 'A' with small circle atop)



                          4 January 1996                        1





BossEncodeStr(3)                                 BossEncodeStr(3)


            0220    90     \E'  Acute accents.
            0221    91     \ae  Two letters 'a' and 'e' next to each other.
            0222    92     \AE  Two letters 'A' and 'E' next to each other
            0223    93     \o^  Circumflex accents
            0224    94     \o:  Umlaut accents
            0225    95     \o`  Grave accents
            0226    96     \u^  Circumflex accents
            0227    97     \u`  Grave accents
            0228    98     UN-ASSIGNED
            0231    99     \O:  Umlaut accents
            0232    9a     \U:  Umlaut accents
            0233    9b     \c|  Cents symbol. ('c' with line through it)
            0234    9c     \l   A decorative 'l'-looking character.
            0235    9d     \Y   A Y shaped character with two horizontal bars (upsilon?)
            0237    9f     \f   italics f looking symbol (integration?)
            0240    a0     \a'  Acute accents.
            0241    a1     \i'  Acute accents.
            0242    a2     \o'  Acute accents.
            0243    a3     \u'  Acute accents.
            0244    a4     \N~  Tilde accents
            0245    a5     \n~  Tilde accents
            0246    a6     \a   small 'a' with an underscore under it.
            0247    a7     \o   small 'o' with an underscore under it.
            0250    a8     \?   upside down question mark. (open question)
            0251    a9     UN-ASSIGNED
            0252    aa     UN-ASSIGNED
            0253    ab     \12  1/2 symbol
            0254    ac     \14  1/4 symbol
            0255    ad     \!   upside down exclamation mark '!'. (open exclamation)
            0256    ae     \{-  A left pointing arrow symbol.
            0257    af     \-}  A right pointing arrow symbol.
            0260    b0     UN-ASSIGNED
            0261    b1     UN-ASSIGNED
            0262    b2     UN-ASSIGNED
            0263    b3     \|   Large vertical bar.
            0264    b4     UN-ASSIGNED
            0265    b5     \A'  Acute accents.
            0266    b6     \I'  Acute accents.
            0267    b7     \O'  Acute accents.
            0270    b8     \U'  Acute accents.
            0271    b9     \A`  Grave accents
            0272    ba     \E`  Grave accents
            0273    bb     \I`  Grave accents
            0274    bc     \O`  Grave accents
            0275    bd     \U`  Grave accents
            0276    be     \P   Backward P with two vertical bars. (paragraph sign)
            0277    bf     UN-ASSIGNED
            0300    c0     UN-ASSIGNED
            0301    c1     UN-ASSIGNED
            0302    c2     UN-ASSIGNED
            0303    c3     UN-ASSIGNED
            0304    c4     UN-ASSIGNED
            0305    c5     UN-ASSIGNED
            0306    c6     \A^  Circumflex accents



                          4 January 1996                        2





BossEncodeStr(3)                                 BossEncodeStr(3)


            0307    c7     \E^  Circumflex accents
            0310    c8     \I^  Circumflex accents
            0311    c9     \O^  Circumflex accents
            0312    ca     \U^  Circumflex accents
            0313    cb     \E:  Umlaut accents
            0314    cc     \I:  Umlaut accents
            0315    cd     \A~  Tilde accents
            0316    ce     \a~  Tilde accents
            0317    cf     \O~  Tilde accents
            0320    d0     \o~  Tilde accents
            0321    d1     \IJ  Two letters 'I' and 'J' next to each other
            0322    d2     \ij  The two letters 'i' and 'j' next to each other.
            0323    d3     \^3  Power of 3 symbol
            0324    d4     \34  3/4 symbol
            0325    d5     UN-ASSIGNED
            0326    d6     UN-ASSIGNED
            0327    d7     UN-ASSIGNED
            0330    d8     \Fr  The 'F' letter followed by an 'r'.
            0331    d9     UN-ASSIGNED
            0332    da     UN-ASSIGNED
            0333    db     UN-ASSIGNED
            0334    dc     UN-ASSIGNED
            0335    dd     UN-ASSIGNED
            0336    de     UN-ASSIGNED
            0337    df     UN-ASSIGNED
            0340    e0     UN-ASSIGNED
            0341    e1     \B   Beta symbol.
            0342    e2     UN-ASSIGNED
            0343    e3     UN-ASSIGNED
            0344    e4     UN-ASSIGNED
            0345    e5     UN-ASSIGNED
            0346    e6     \mu  microsecond symbol (mu symbol)
            0347    e7     UN-ASSIGNED
            0350    e8     \O-  Empty set symbol. (narrow 'O' with a slash through it)
            0351    e9     UN-ASSIGNED
            0352    ea     \Om  Omega symbol.
            0353    eb     UN-ASSIGNED
            0354    ec     UN-ASSIGNED
            0355    ed     \o-  A small short 'o' with a slash through it. (phi)
            0356    ee     UN-ASSIGNED
            0357    ef     UN-ASSIGNED
            0360    f0     UN-ASSIGNED
            0361    f1     \+-  a plus minus symbol (A '+' character on top of a '-')
            0365    f5     \x   Times symbol (multiplication)
            0366    f6     \dv  Division symbol
            0370    f8     \^o  Degree symbol. (small raised cirle)
            0373    fb     \sq  Square root symbol.
            0375    fd     \^2  Power of 2 symbol.
            0376    f0     UN-ASSIGNED
            0377    ff     UN-ASSIGNED

RETURN VALUES
              A non-NULL pointer is returned to indicate success.
              The  pointer  will point to a malloc'd string which



                          4 January 1996                        3





BossEncodeStr(3)                                 BossEncodeStr(3)


              is identical  to  str,  except  that  ASCII  escape
              sequences  have  been  converted  to  the  B.O.S.S.
              binary equivalent.

       NULL:  A NULL pointer is returned to  indicate  an  error.
              Usually a memory error or invalid character.

SEE ALSO
       BossDecodeStr(3),       BossError(3),      boss format(5),
       boss data(3)

AUTHOR
       Ken Stauffer

       Email: kstauffer@attmail.com




                          4 January 1996                        4





BossError(3)                                         BossError(3)


NAME
       BossError  -  Return an error string for the last error to
       occur in the Boss library.

SYNOPSIS
         #include <boss.h>

         char *BossError()

DESCRIPTION
       This function is part of  the  Casio  Boss  communications
       library  (libboss.a).  A pointer to a statically allocated
       string is returned that describes the most recent error to
       have occured in the library.


RETURN VALUES
       The  returned pointer will always points to a string which
       can be printed to the user. The string describes the  lat-
       est error to occur in the Boss communications library.

AUTHOR
       Ken Stauffer

       Email: kstauffer@attmail.com




                          2 January 1996                        1





BossFree(3)                                           BossFree(3)


NAME
       BossFree  -  De-allocate  memory  contained in a BOSS DATA
       structure.

SYNOPSIS
         #include <boss.h>

         void BossFree(bdata)
         BOSS DATA *bdata;

DESCRIPTION
       This function is part of  the  Casio  Boss  communications
       library  (libboss.a).  All  data  referenced  by  bdata is
       free'd. This call assumes the entire  data  structure  was
       allocated using malloc(3).

       Both the functions BossReceive and BossParse use malloc(3)
       to create their BOSS DATA structure.

SEE ALSO
       BossParse(3), BossReceive(3), boss data(3)

AUTHOR
       Ken Stauffer

       Email: kstauffer@attmail.com







                          4 January 1996                        1





BossGenerate(3)                                   BossGenerate(3)


NAME
       BossGenerate  -  Write  a file formatted in the Boss ASCII
       format.

SYNOPSIS
         #include <boss.h>

         int BossGenerate(filename, bdata)
         char *filename;
         BOSS DATA *bdata;

DESCRIPTION
       This function is part of  the  Casio  Boss  communications
       library  (libboss.a).  This routine expects bdata to point
       to a BOSS DATA structure.  The data  referenced  by  bdata
       will  be converted to ASCII and written to the file "file-
       name".

OUTPUT FORMAT
       Date format:
              Dates will be  output  using  the  format  "dd-mon-
              yyyy". (eg. 12-Nov-1995).

       Time format:
              Alarm  values  and time ranges will use the format:
              "hh:mm:a|p".  (eg. 2:55p) 12-hour  format  will  be
              produced  only.  The am/pm indicator used is always
              the single character "a" or "p".

       Tabs:  Currently, the output assumes the user is using  an
              eight  character tab size.  If this is not the case
              the file produced may not format "nicely".

       Strings:
              Any binary B.O.S.S. characters will be  first  con-
              verted  into  escape sequences before being written
              out. (a.k.a BossDecodeStr(3)).

RETURN VALUES
       0      The file was written sucessfully.

       -1     An error occured. Call BossError()  to  obtain  the
              error string.

SEE ALSO
       BossParse(3),   BossReceive(3),  BossTransmit(3),  BossEr-
       ror(3), boss format(5), boss data(3)

AUTHOR
       Ken Stauffer

       Email: kstauffer@attmail.com





                          4 January 1996                        1





BossIntersection(3)                           BossIntersection(3)


NAME
       BossIntersection  -  Return  common  records  between  two
       BOSS DATA structures.

SYNOPSIS
         #include <boss.h>

         BOSS DATE *BossIntersection(bp1, bp2)
         BOSS DATA *bp1, *bp2;

DESCRIPTION
       This function is part of  the  Casio  Boss  communications
       library  (libboss.a).  The  records common to both bp1 and
       bp2 is returned  by  this  function.  Duplicates  will  be
       removed.

       Record  equality  takes  into  consideration case distinc-
       tions, spelling, and white space. For any two  records  to
       be  considered the same all their data must be equivalent.

RETURN VALUES
              A non-NULL pointer  is  returned  on  success.  The
              pointer  will  point to a newly allocated BOSS DATE
              structure.

       NULL:  If an allocation error occurs  this  function  will
              return   a   NULL  pointer.   Call  BossError()  to
              retrieve the error message.

SEE ALSO
       BossUnion(3), BossDiff(3), BossFree(3), boss data(3)

AUTHOR
       Ken Stauffer

       Email: kstauffer@attmail.com





















                         2 February 1996                        1





BossParse(3)                                         BossParse(3)


NAME
       BossParse - Parse Boss ASCII input file format.

SYNOPSIS
         #include <boss.h>

         BOSS DATA *BossParse(filename)
         char *filename;

DESCRIPTION
       This  function  is  part  of the Casio Boss communications
       library (libboss.a). This routine  will  parse  'filename'
       and  return a parse tree in the form of a BOSS DATA struc-
       ture (see the boss data(3) manual page). When parsing  the
       input  file,  an  8 character tab spacing is assumed. This
       will only affect how multi-lined strings are  aligned  and
       spaced out.

       When strings are parsed, any escape sequences will be con-
       verted to the B.O.S.S. character  set  (a.k.a  BossEncode-
       Str(3)).

RETURN VALUES
              A  non-NULL pointer is retured to indicate success.
              The pointer will  point  to  a  complete  BOSS DATA
              structure with all parsed data contained in it.

       NULL:  A  NULL  return  pointer  indicates  an error. This
              could be a memory  allocation  error  or  a  syntax
              error in the file. Call BossError() to retrieve the
              error string.

SEE ALSO
       BossGenerate(3), BossReceive(3), BossTransmit(3),  BossEr-
       ror(3), boss format(5), boss data(3)

AUTHOR
       Ken Stauffer

       Email: kstauffer@attmail.com








                          2 January 1996                        1





BossReceive(3)                                     BossReceive(3)


NAME
       BossReceive  -  Receive  data  by  communicating  with the
       B.O.S.S. organizer

SYNOPSIS
         #include <boss.h>

         BOSS DATA *BossReceive(device, speed, mode)
         char *device;
         int speed;
         char *mode;

DESCRIPTION
       This function is part of  the  Casio  Boss  communications
       library (libboss.a). BossReceive opens the serial port and
       begins a protcol conversation with the B.O.S.S. device. As
       records  are received it stores them in a BOSS DATA struc-
       ture, and may also call a registered I/O call back  proce-
       dure  (See  BossSetIOCB()).  This  function  fully handles
       checksum errors.

       Device specifies the complete unix path name to the serial
       device  which is connected to the B.O.S.S. organizer. (eg.
       "/dev/ttya")

       Speed is an integer  value  specifying  the  desired  baud
       rate.  The  B.O.S.S.   models  I  am aware of only support
       2400, 4800 and 9600. Therefore, these are the only  allow-
       able values.

       Mode  is  a two character string specifying the communica-
       tions parameters.  The first character is  the  number  of
       data  bits, which can be "7" or "8".  The second character
       is the parity setting. This can be "E" (even), "O"  (odd),
       or "N" (none). (eg. "8N", "7E", "7O", "7N")

       The  speed,  databits and parity settings must be the same
       between host computer and B.O.S.S. organizer in order  for
       them to communicate.

       When this function is called, it will open the serial port
       and simply wait until the B.O.S.S. begins sending data.

       Any string fields received will be stored in the BOSS DATA
       data structure as Casio strings, that is non-ASCII charac-
       ter values will NOT be converted to ASCII escapes by  this
       function.

RETURN VALUES
              A  non-NULL pointer is returned to indicate sucess-
              ful communications.  The pointer will  point  to  a
              complete  BOSS DATA  data  structure containing all
              the received data.




                          5 January 1996                        1





BossReceive(3)                                     BossReceive(3)


       NULL:  A NULL return  pointer  indicates  an  error.  This
              could  be  a  protocol error or a memory allocation
              error.  Call  BossError()  to  retrieve  the  error
              string.

SEE ALSO
       BossTransmit(3),       BossError(3),       boss format(5),
       boss data(3)

AUTHOR
       Ken Stauffer

       Email: kstauffer@attmail.com









                          5 January 1996                        2





BossSetIOCB(3)                                     BossSetIOCB(3)


NAME
       BossSetIOCB  -  Registers  a  call  back procedure for I/O
       operations

SYNOPSIS
         #include <boss.h>

         void BossSetIOCB(cb)
         void (*cb)(char *, int);

DESCRIPTION
       This function is part of  the  Casio  Boss  communications
       library  (libboss.a).  During  BossTransmit()  (or BossRe-
       ceive()), after each record  is  sent  (or  received),  or
       whenever  a transmission error occurs, the call back func-
       tion is called. This function is used to register the call
       back  procedure.  Only  one  call  back  procedure  can be
       stored. To un-install the  function,  pass  NULL  to  this
       function.

       The  arguments  to  the call back procedure consitsts of a
       string and an integer.  The string argument describes  the
       type  of event that has just occured. The integer argument
       is the number of records received of  that  type  so  far.
       When  the  "END" call back is called, the integer value is
       the total number of records transmitted (or received).

TRANSMIT OPERATION
       For a typical transmit operation, here  is  how  the  call
       back procedure will be called:


            cb("WAITING", 0);   <- while waiting for B.O.S.S. to send data.
            cb("SCHEDULE", 1);  <- The first schedule record has been sent.
            cb("SCHEDULE", 2);
            ...
            cb("SCHEDULE", 20);
            cb("PHONE", 1);
            cb("PHONE", 2);
            ...
            cb("PHONE", 107);
            ...
            cb("END", 330);



RECEIVE OPERATION
       For a typical receive operation, here is how the call back
       procedure will be called:

            cb("WAITING", 0);   <- while waiting for B.O.S.S. to accept our data.
            cb("SCHEDULE", 1);
            cb("SCHEDULE", 2);
            ...



                          4 January 1996                        1





BossSetIOCB(3)                                     BossSetIOCB(3)


            cb("SCHEDULE", 23);
            cb("PHONE", 1);          <- the first phone record has been received.
            cb("PHONE", 2);
            ...
            cb("PHONE", 107);
            ...
            cb("END", 320);



SPECIAL EVENTS
       Sometimes a special event occurs (an  error),  these  will
       also cause a call back to be called:

       UNKNOWN 0xhh
              An  unknown  record  type  is being sent to us. For
              example, when communicating with a different  Casio
              model  an unknown data type might be received. 0xhh
              will be relaced with the hex value of the data type
              specifier.

       CHECKSUM ERROR
              A received record had a checksum error in it.

       SEQUENCE ERROR
              While  receiving  a  record, the offset was not set
              properly.

       SYNC ERROR
              If we received a record but are not currently in  a
              data section.

       RETRANSMIT
              We   are   re-transmitting  a  record  because  the
              B.O.S.S. has indicated a received checksum error.

       END    No more data to be sent (or  received).  This  will
              always be the last call back message.

STRINGS
       The  strings  for  each  data  type  are: "PHONE", "TODO",
       "MEMO", "SCHEDULE", "REMINDER", "EXPENSE", "CALENDAR". The
       strings  for  the  special  events  are:  "UNKNOWN  0xhh",
       "CHECKSUM ERROR",     "SEQUENCE ERROR",      "SYNC ERROR",
       "RETRANSMIT", "END".

SEE ALSO
       BossReceive(3), BossTransmit(3), BossStop(3)

AUTHOR
       Ken Stauffer

       Email: kstauffer@attmail.com




                          4 January 1996                        2





BossStop(3)                                           BossStop(3)


NAME
       BossStop  -  Cause  the  termination  of I/O operations in
       BossReceive() or BossTransmit()

SYNOPSIS
         #include <boss.h>

         void BossStop()

DESCRIPTION
       This function is part of  the  Casio  Boss  communications
       library  (libboss.a).  This function can be called outside
       the the BossTransmit() (or BossReceive()  functions).  The
       only  way  this  could happen is if the routine was inter-
       rupted by a signal and a signal handler was called.

       After return  to  the  BossTransmit()  (or  BossReceive())
       function  the  I/O  operation  will  be terminated and the
       appropriate shut down signal will be sent to the  B.O.S.S.
       device.  The  BossTransmit()  (or  BossReceive()) function
       will immediately return with the error "I/O operation ter-
       minated by user".

SEE ALSO
       BossReceive(3), BossTransmit(3)

AUTHOR
       Ken Stauffer

       Email: kstauffer@attmail.com







                          2 January 1996                        1





BossTransmit(3)                                   BossTransmit(3)


NAME
       BossTransmit  -  Transmit  data  by communicating with the
       B.O.S.S. organizer

SYNOPSIS
         #include <boss.h>

         int BossTransmit(device, speed, mode, bdata)
         char *device;
         int speed;
         char *mode;
         BOSS DATA *bdata;

DESCRIPTION
       This function is part of  the  Casio  Boss  communications
       library  (libboss.a).  BossTransmit  communicates over the
       serial port and transmits all data records in bdata. If  a
       record  is  sent  with  errors this function will properly
       retransmit the data.

       Device specifies the complete unix path name to the serial
       device  which is connected to the B.O.S.S. organizer. (eg.
       "/dev/ttya")

       Speed is an integer  value  specifying  the  desired  baud
       rate.  The  B.O.S.S.   models  I  am aware of only support
       2400,  4800  and  9600.  Therefore,  these  are  the  only
       accepted values.

       Mode  is  a two character string specifying the communica-
       tions parameters.  The first character is  the  number  of
       data  bits, which can be "7" or "8".  The second character
       is the parity setting. This can be "E" (even), "O"  (odd),
       or "N" (none). (eg. "8N", "7E")

       To  communicate with a B.O.S.S. speed, databits and parity
       must match the settings of the B.O.S.S.

       When this function is called, the B.O.S.S. must already be
       waiting  to receive data. Otherwise after 50 attempts this
       function will return with an error.

RETURN VALUES
       0      Success. All data in bdata was  sucessfully  trans-
              mitted.

       -1     An  error of some kind occured. See BossError(3) to
              retrieve the error message.

SEE ALSO
       BossReceive(3), BossError(3), boss format(5), boss data(3)

AUTHOR
       Ken Stauffer



                          5 January 1996                        1





BossTransmit(3)                                   BossTransmit(3)


       Email: kstauffer@attmail.com








                          5 January 1996                        2





BossUnion(3)                                         BossUnion(3)


NAME
       BossUnion - Join records from two BOSS DATA structures.

SYNOPSIS
         #include <boss.h>

         BOSS DATE *BossUnion(bp1, bp2)
         BOSS DATA *bp1, *bp2;

DESCRIPTION
       This  function  is  part  of the Casio Boss communications
       library (libboss.a). The records contained in bp1 and  bp2
       are  merged  into  a  new  BOSS DATA  structure  which  is
       returned. Duplicates will be removed.

       Record equality takes  into  consideration  case  distinc-
       tions,  spelling,  and white space. For any two records to
       be considered the same all their data must be  equivalent.

RETURN VALUES
              A  non-NULL  pointer  is  returned  on success. The
              pointer will point to a newly  allocated  BOSS DATE
              structure.

       NULL:  If  an  allocation  error occurs this function will
              return  a  NULL  pointer.   Call   BossError()   to
              retrieve the error message.

SEE ALSO
       BossDiff(3),       BossIntersection(3),       BossFree(3),
       boss data(3)

AUTHOR
       Ken Stauffer

       Email: kstauffer@attmail.com





















                         2 February 1996                        1





boss data(3)                                         boss data(3)


NAME
       boss data  -  Internal  C  data  structure  used  by  Boss
       library.

SYNOPSIS
       typedef struct {
               BOSS PHONE      *phone;
               BOSS MEMO       *memo;
               BOSS SCHEDULE   *schedule;
               BOSS REMINDER   *reminder;
               BOSS CALENDAR   *calendar;
               BOSS TODO       *todo;
               BOSS EXPENSE    *expense;
       } BOSS DATA;


DESCRIPTION
       The Boss library functions will accept a BOSS DATA  struc-
       ture  as input, or return a BOSS DATA structure as output.
       This manual page describes this data structure in  detail.

       The  data  structure  that  contains  all  the  other data
       records is the type BOSS DATA. It consists of a pointer to
       a  linked  list of phone records, memo records, and so on.
       If there are no records of a  certain  type,  that  linked
       list pointer will be NULL.

       The  records in each linked list should be allocated using
       malloc().

       All strings have a type of "char *", and should  point  to
       memory  allocated  with  malloc(). Strings should first be
       encoded so that escape sequences are  converted  to  their
       binary equivalent.

       In  all  structures that contain a pointer to a string, to
       specify "no string" or the absense of a  string  an  empty
       string  (string  of  length  0) must be used rather than a
       NULL pointer.  In other words NULL  is  not  allowed,  and
       will cause the library routines to crash.


BOSS PHONE
       typedef struct boss phone {
               char                    *name;
               char                    *number;
               char                    *address;
               char                    *free1;
               char                    *free2;
               char                    *free3;
               char                    *free4;
               char                    *free5;
               char                    *free6;
               struct boss phone       *next;



                          2 January 1996                        1





boss data(3)                                         boss data(3)


       } BOSS PHONE;

       A  PHONE  record  consists  of  several  strings  that the
       B.O.S.S. allows.  There are a total of nine  strings.  The
       first  three are predefined by Casio and the remaining are
       defined by the user. When  building  a  BOSS PHONE  record
       from a C program, make sure that all nine strings point to
       something (NULL will not work). Use  an  empty  string  to
       represent a field that is not present.


BOSS MEMO
       typedef struct boss memo {
               char                    *title;
               char                    *body;
               struct boss memo        *next;
       } BOSS MEMO;

       A  MEMO  record  has  a  title  and a body. The title is a
       string that is displayed in "index display  mode"  on  the
       B.O.S.S.  The  body  of  the  memo is what is displayed in
       "data display mode". Neither string is allowed to be NULL.


BOSS SCHEDULE
       typedef struct boss schedule {
               BOSS DATE               date;
               BOSS TIME               start;
               BOSS TIME               end;
               BOSS TIME               alarm;
               char                    *description;
               struct boss schedule    *next;
       } BOSS SCHEDULE;

       The SCHEDULE record stores the date of an event. The start
       and end times can be included to specify when  during  the
       day  the event is supposed to happen. Set start and end to
       "no time" if they are not being used. The alarm  specifies
       an optional alarm to be set.  If no alarm is needed set it
       to "no time".


BOSS REMINDER
       typedef struct boss reminder {
            BOSS DATE      date;
            BOSS TIME      alarm;
            char           *description;
            struct boss reminder     *next;
       } BOSS REMINDER;

       The  REMINDER  structure  describes  a  B.O.S.S.  reminder
       record.   The  date  field  is  used  to specify a yearly,
       monthly, or daily reminder. The alarm field can be set  to
       "no  time" in which case no alarm will be specified, or it



                          2 January 1996                        2





boss data(3)                                         boss data(3)


       can be set to a valid time. Description is a  string  that
       explains the reminder.


BOSS CALENDAR
       typedef struct boss calendar {
               BOSS DATE               date;
               unsigned long           days;
               struct boss calendar    *next;
       } BOSS CALENDAR;

       A CALENDAR structure specifies which days of a given month
       will be highlighted by the Casio B.O.S.S. The date  should
       be  the  1st  of  a particular month. Days should be a bit
       string with a "1" set in each bit position  to  correspond
       to the day being highlighted.

       To  turn  on  highlighting for the 5th, 20th and 29th of a
       particular month, you would:

            BOSS CALENDAR bc;

            ...

            bc.days = 0;
            bc.days |= 1<<(5-1);
            bc.days |= 1<<(20-1);
            bc.days |= 1<<(29-1);



BOSS TODO
       typedef struct boss todo {
               int                     checked;
               BOSS DATE               date stamp;
               BOSS TIME               time stamp;
               char                    *description;
               struct boss todo        *next;
       } BOSS TODO;

       A TODO structure specifies an item to be done. Checked  is
       a  boolean  field  where  "1" means the TODO item has been
       checked. date stamp is a date field. If it  is  not  being
       used  then  it  can  be set to "no date".  Time stamp is a
       time field to time stamp the item. Description is a string
       that explains what is to be done.


BOSS EXPENSE
       typedef struct boss expense {
               double                  amount;
               BOSS DATE               date;
               char                    *payment;
               char                    *expense;



                          2 January 1996                        3





boss data(3)                                         boss data(3)


               char                    *description;
               struct boss expense     *next;
       } BOSS EXPENSE;

       An  EXPENSE structure defined an expense record. amount is
       the amount stored as a floating point double. None of  the
       fields in this structure are optional.


BOSS DATE
       typedef struct {
               int     year;                   /* 1995, 2010, ... */
               int     month;                  /* 1-12 */
               int     day;                    /* 1-31 */
       } BOSS DATE;

       Many  of  the  record types contain a BOSS DATE. This data
       type can be used to encode a normal calendar date, as well
       as reminder dates.

   Calendar Dates
       When  used  in  this context the year must be the complete
       year (eg. 1995).  Month must be in the range 1 to 12.  Day
       must be in the range 1 to 31.

   Reminder Dates
       In  contexts  where  the  BOSS DATE  is  used to represent
       reminder dates, the following table applies:

                                      year    month   day
            Yearly reminder:             0       mm    dd
            Monthly reminder:            0       0     dd
            Daily reminder (no date):    0       0      0



   No Date
       In some contexts the date is optional, and you  will  want
       to  specify  that there is not data for this BOSS DATE. To
       do this set year, month and day to zero.


BOSS TIME
       typedef struct {
               int     hour;           /* 1 - 12 */
               int     minute;         /* 0 - 59 */
               int     pm;             /* 0 - am, 1 - pm */
       } BOSS TIME;

       Many of the record types include BOSS TIME to represent an
       alarm field, or a schedule time. This data type is used to
       store a time in 12-hour format. The hour must  be  in  the
       range  1  to 12. The minute must range from 0 to 59. Pm is
       the AM/PM indicator flag.



                          2 January 1996                        4





boss data(3)                                         boss data(3)


       In some contexts you will want to indicate "no  time",  to
       do this set hour, minute and pm to -1.


SEE ALSO
       BossGenerate(3),  BossParse(3),  BossTransmit(3),  BossRe-
       ceive(3)

AUTHOR
       Ken Stauffer

       Email: kstauffer@attmail.com





                          2 January 1996                        5





boss format(5)                                     boss format(5)


NAME
       boss format - ASCII file format for boss parser

DESCRIPTION
       The  boss  communications  library has two functions Boss-
       Parse() and BossGenerate() that read and write a free-for-
       mat  ASCII file. This man page describes the format recog-
       nized by the parser and produced by the generator.


SAMPLE FILE
       Here is a very short sample of what the boss ASCII  format
       looks like:
            ; This is a comment.

               ******* PHONE *******
                 >John Smith<        >918-992-1234<
                 -------
                 >Kimberely Wannata< >982-891-1832<
                 ------

               ******* REMINDER *******
               [3/4]           >KJ's birthday<
               -------
               [12/3]          >Yearly dental checkup.
                                (Dr. Clayborne)<
               -------

               ********* MEMO ******
               >CLOTH SIZE<            >Jean: 34w-33l
                                        Shirt: 43
                                        Jacket: 42
                                        Shoe: 9 1/2<
               ------


               ***** TODO *******
               [ ]                             >Build a new porch<
               ------
               [X]                             >Rebuild dog house<
               ------
               [X] [3-dec-1996]                >Buy christmas tree<
               ------
               [X] [3-dec-1996]        [5:45p] >Decorate tree.<
               ------



GRAMMER SUMMARY
       Here  is a summary of the different record types. Optional
       items are labeled with a "*".

       Phone format:
                   >name<  >number<*  >address<*  >free1<*  >free2<*  ... >free6<*



                          2 January 1996                        1





boss format(5)                                     boss format(5)


       Memo format:
                   >title<   >body<*

       Todo format:
                   [ X* ]    [date-stamp]*   [time-stamp]*   >description<

       Reminder format:
                   [date]         >description<

       Schedule format:
                   [date]   [time]*                     >description<   [alarm-time]*
                   [date]   [start-time] - [end-time]   >description<   [alarm-time]*

       Calendar format:
                      month year
                    S  M Tu  W Th  F  S
                             1  2  3  4
                    5  6  7  8  9 10 11
                   12 13 14 ** 16 17 18
                   19 20 21 ** 23 24 25
                   26 27 28 29 30


       Expense format:
                   amount    [date]    >payment<    >expense<      >description<


LEXICAL CONVENTIONS
       The input is broken down into  tokens  which  consists  of
       strings, numbers, keywords, and special syntax tokens.


   Whitespace
       The  space, tab and newline characters are ignored and can
       occur freely in the input. Only  inside  of  strings  will
       these characters be recognized.


   Comments
       All  characters following a semi-colon are ignored until a
       newline is encountered.


   Strings
       A string consists of text enclosed between the ">" and "<"
       characters.  Some examples of string tokens are:

            >Hello, world.<
            >This is a multi-lined
             string.<
            >Pizza order:
                 * Extra cheese.
                 * Onions.
                 * Perperoni.



                          2 January 1996                        2





boss format(5)                                     boss format(5)


             Total: $12.99<

       Spaces  and  newlines are preserved in strings. TAB's will
       be expanded to spaces (because  the  Casio  character  set
       does  not  support TAB's).  Leading whitespace following a
       newline is ignored, up to the column  position  where  the
       beginning ">" character occured.

       There  are  many special characters supported by Casio. To
       encode these characters in ASCII, special escape sequences
       are  used  (see  the next section). Escape sequences start
       with the back slash "\".


   Escape Sequences
       Inside of strings, an escape sequence can be used to indi-
       cate  a special Casio B.O.S.S. character. These characters
       use the range of 8-bit values between 0x7f and 0xff. These
       escape  sequences  are  required,  since  the normal ASCII
       range is 0x00 to 0x7f. Escape  sequences  start  with  the
       backslash ("\") followed by one or two characters.

       The  following  table  shows the octal/hex character value
       followed by the escape sequence defined for  it.  A  short
       description  of what the character looks like is also pro-
       vided.

            OCTAL   HEX    ESCAPE    CHARACTER DESCRIPTION
            -----   ---    ------    ------------------------------------------
            0025    16     \S   Two superimposed S's (section number sign)
            0074    3c     \<   less than symbol. '<'
            0134    5c     \\   Backslash '\'

            0200    80     \C,  The letter C with a comma like tail
            0201    81     \u:  Umlaut accents
            0202    82     \e'  Acute accents.
            0203    83     \a^  Circumflex accents
            0204    84     \a:  Umlaut accents
            0205    85     \a`  Grave accents
            0206    86     \a.  The letter 'a' with a small circle on top.
            0207    87     \c,  The letter 'c' with a commal like tail out of bottom.
            0210    88     \e^  Circumflex accents
            0211    89     \e:  Umlaut accents
            0212    8a     \e`  Grave accents
            0213    8b     \i:  Umlaut accents
            0214    8c     \i^  Circumflex accents
            0215    8d     \i`  Grave accents
            0216    8e     \A:  Umlaut accents
            0217    8f     \A.  Angstrom symbol (Letter 'A' with small circle atop)
            0220    90     \E'  Acute accents.
            0221    91     \ae  Two letters 'a' and 'e' next to each other.
            0222    92     \AE  Two letters 'A' and 'E' next to each other
            0223    93     \o^  Circumflex accents
            0224    94     \o:  Umlaut accents



                          2 January 1996                        3





boss format(5)                                     boss format(5)


            0225    95     \o`  Grave accents
            0226    96     \u^  Circumflex accents
            0227    97     \u`  Grave accents
            0228    98     UN-ASSIGNED
            0231    99     \O:  Umlaut accents
            0232    9a     \U:  Umlaut accents
            0233    9b     \c|  Cents symbol. ('c' with line through it)
            0234    9c     \l   A decorative 'l'-looking character.
            0235    9d     \Y   A Y shaped character with two horizontal bars (upsilon?)
            0237    9f     \f   italics f looking symbol (integration?)
            0240    a0     \a'  Acute accents.
            0241    a1     \i'  Acute accents.
            0242    a2     \o'  Acute accents.
            0243    a3     \u'  Acute accents.
            0244    a4     \N~  Tilde accents
            0245    a5     \n~  Tilde accents
            0246    a6     \a   small 'a' with an underscore under it.
            0247    a7     \o   small 'o' with an underscore under it.
            0250    a8     \?   upside down question mark. (open question)
            0251    a9     UN-ASSIGNED
            0252    aa     UN-ASSIGNED
            0253    ab     \12  1/2 symbol
            0254    ac     \14  1/4 symbol
            0255    ad     \!   upside down exclamation mark '!'. (open exclamation)
            0256    ae     \{-  A left pointing arrow symbol.
            0257    af     \-}  A right pointing arrow symbol.
            0260    b0     UN-ASSIGNED
            0261    b1     UN-ASSIGNED
            0262    b2     UN-ASSIGNED
            0263    b3     \|   Large vertical bar.
            0264    b4     UN-ASSIGNED
            0265    b5     \A'  Acute accents.
            0266    b6     \I'  Acute accents.
            0267    b7     \O'  Acute accents.
            0270    b8     \U'  Acute accents.
            0271    b9     \A`  Grave accents
            0272    ba     \E`  Grave accents
            0273    bb     \I`  Grave accents
            0274    bc     \O`  Grave accents
            0275    bd     \U`  Grave accents
            0276    be     \P   Backward P with two vertical bars. (paragraph sign)
            0277    bf     UN-ASSIGNED
            0300    c0     UN-ASSIGNED
            0301    c1     UN-ASSIGNED
            0302    c2     UN-ASSIGNED
            0303    c3     UN-ASSIGNED
            0304    c4     UN-ASSIGNED
            0305    c5     UN-ASSIGNED
            0306    c6     \A^  Circumflex accents
            0307    c7     \E^  Circumflex accents
            0310    c8     \I^  Circumflex accents
            0311    c9     \O^  Circumflex accents
            0312    ca     \U^  Circumflex accents
            0313    cb     \E:  Umlaut accents



                          2 January 1996                        4





boss format(5)                                     boss format(5)


            0314    cc     \I:  Umlaut accents
            0315    cd     \A~  Tilde accents
            0316    ce     \a~  Tilde accents
            0317    cf     \O~  Tilde accents
            0320    d0     \o~  Tilde accents
            0321    d1     \IJ  Two letters 'I' and 'J' next to each other
            0322    d2     \ij  The two letters 'i' and 'j' next to each other.
            0323    d3     \^3  Power of 3 symbol
            0324    d4     \34  3/4 symbol
            0325    d5     UN-ASSIGNED
            0326    d6     UN-ASSIGNED
            0327    d7     UN-ASSIGNED
            0330    d8     \Fr  The 'F' letter followed by an 'r'.
            0331    d9     UN-ASSIGNED
            0332    da     UN-ASSIGNED
            0333    db     UN-ASSIGNED
            0334    dc     UN-ASSIGNED
            0335    dd     UN-ASSIGNED
            0336    de     UN-ASSIGNED
            0337    df     UN-ASSIGNED
            0340    e0     UN-ASSIGNED
            0341    e1     \B   Beta symbol.
            0342    e2     UN-ASSIGNED
            0343    e3     UN-ASSIGNED
            0344    e4     UN-ASSIGNED
            0345    e5     UN-ASSIGNED
            0346    e6     \mu  microsecond symbol (mu symbol)
            0347    e7     UN-ASSIGNED
            0350    e8     \O-  Empty set symbol. (narrow 'O' with a slash through it)
            0351    e9     UN-ASSIGNED
            0352    ea     \Om  Omega symbol.
            0353    eb     UN-ASSIGNED
            0354    ec     UN-ASSIGNED
            0355    ed     \o-  A small short 'o' with a slash through it. (phi)
            0356    ee     UN-ASSIGNED
            0357    ef     UN-ASSIGNED
            0360    f0     UN-ASSIGNED
            0361    f1     \+-  a plus minus symbol (A '+' character on top of a '-')
            0365    f5     \x   Times symbol (multiplication)
            0366    f6     \dv  Division symbol
            0370    f8     \^o  Degree symbol. (small raised cirle)
            0373    fb     \sq  Square root symbol.
            0375    fd     \^2  Power of 2 symbol.
            0376    f0     UN-ASSIGNED
            0377    ff     UN-ASSIGNED

       Entries in this table that are labeled  UN-ASSIGNED  refer
       to  binary  codes for which no Casio B.O.S.S. character is
       defined.


GRAMMER
       The input format consists of one or  more  data  sections.
       Each  data  section consists of zero or more data records.



                          2 January 1996                        5





boss format(5)                                     boss format(5)


       Here is a simple file consisting  of  PHONE  and  REMINDER
       records.

       ******* PHONE *******
            >John Smith<        >918-992-1234<
            -------
            >Kimberely Wannata< >982-891-1832<
            ------

       ******* REMINDER *******
       [3/4]           >KJ's birthday<
       -------
       [12/3]          >Yearly dental checkup.
                        (Dr. Clayborne)<
       -------


       The  ordering  of  sections is un-important, and a section
       can be absent.  Also, the same section can occur  multiple
       times in a file.


   SECTION HEADING
       To  begin  a  new data section, the section header must be
       used. A section heading consists of the name of  the  data
       type surrounded by the '****' token. For example,

            ****** PHONE ******
            ****** MEMO ***
            * REMINDER *
            * SCHEDULE *****
            *** EXPENSE ***
            ***************** TODO ******************


       The  number of "*"'s is un-important, but at least one "*"
       is required.


   RECORD TERMINATOR
       Each data record must be followed by a  record  terminator
       token.  This token consists of TWO or more "-" characters.
       For example,

               -----
               ------------------
               --




   PHONE RECORD
       The phone record consists of at least one string (for  the
       name  of  the  person)  followed by zero to eight strings.



                          2 January 1996                        6





boss format(5)                                     boss format(5)


       The Casio B.O.S.S. defines the second  string  to  be  the
       persons phone number. The third string is defined by Casio
       as the persons address. The remaining six strings  can  be
       used for whatever purpose you choose. For example,

               *************** PHONE ***********
               >Mike Miller<           >228-9933<
                                       >#12 2nd Ave
                                        Pollymer point.<
                                       >Springfield, AB<
                                       >Owes me $12.00<
               ------


       In  this  example,  the  first three strings are the name,
       number and address.  The fourth string is the  city/state.
       And  the  last  string  is  a brief comment. The remaining
       strings have been ommitted.


   MEMO RECORD
       The memo record consists of at least  one  string  with  a
       second  optional  string. The first string is the title of
       the memo. This should be a string with no new lines in it.
       The  second  string  is optional, and it forms the body of
       the memo.

               ********* MEMO ******
               >MY SIZES<              >Jean:   34w-33l
                                        Shirt:  43
                                        Jacket: 42
                                        Ring:   9
                                        Shoe:   9 1/2<
               ------



   TODO RECORD
       A todo record is the description of a task or activity  to
       be  done.   A  todo  record can be in two possible states:
       checked or un-checked.  A "checked" todo item can also  be
       date  stamped  (third  example).   Or  it can be data/time
       stamped (fourth example). A checked item has an "X" or "x"
       inside the "[ ]" brackets.


               ***** TODO *******
               [ ]                             >Build a new porch<
               ------
               [X]                             >Rebuild dog house<
               ------
               [X] [3-dec-1996]                >Buy christmas tree<
               ------
               [X] [3-dec-1996]        [5:45p] >Decorate tree.<



                          2 January 1996                        7





boss format(5)                                     boss format(5)


               ------



   REMINDER RECORD
       A  reminder  record  can  store  daily, monthly, or yearly
       events.  The format of a reminder record is a date  speci-
       fication followed by an optional alarm time, followed by a
       description string.


               ***** REMINDER ******
               [-/-]   [7:30a]         >Daily squash game.<
               ------
               [-/1]                   >PAY DAY!<
               ------
               [-/15]                  >mid-month PAY DAY!<
               ------
               [3/4]                   >KJ's Birthday<
               ------


       These examples show a daily reminder  (first  example),  a
       monthly reminder (second and third examples), and a yearly
       reminder (last example). The month can be "-" or a  number
       between 1 and 12. The day can be "-" or a number between 1
       and 31.


   SCHEDULE RECORD
       A schedule record describes the date and time of an event.
       The format includes the date (and time) of the event and a
       description of the event.  An alarm time for the  schedule
       record can also be included.

               ***** SCHEDULE *****
               [29-Nov-96]    [11:00a]             >Doctors appointment.<
               --------
               [19-JANUARY-96]                     >Renew auto insurance.<
               --------
               [7-mar-1996]   [2:30pm] - [5:00pm]  >Football game party.<  [2:00pm]
               --------

       These  examples  show  three  schedule  records. The first
       example includes a date, time and description. The  second
       example  only  has  a date (without a time) and a descrip-
       tion. The third example has a date, time  range,  descrip-
       tion and alarm time.


   CALENDAR RECORD
       The  format for a calendar record is intended to match the
       output of the unix utility "cal". Calendar records specify
       which  days  in the calendar are highlighted. On the Casio



                          2 January 1996                        8





boss format(5)                                     boss format(5)


       B.O.S.S. organizer a highlighted day  shows  up  "blacked-
       out" when the calendar is displayed.


               ***** CALENDAR *****

                  March 1995
                S  M Tu  W Th  F  S
                         1  2  *  4
                5  6  7  8  9 10 11
               12 13 14 15 16 17 18
               19 ** 21 22 23 24 25
               26 27 28 29 30 31
               --------------------


       A  highlighted  day  is  shown  with  the day of the month
       replaced with one or more *'s.   The  month  name  can  be
       entered  as  the  full  month  name or the three character
       abbreviation. The year must be in the  four-digit  format.
       Calendar records can appear in any order.


   EXPENSE RECORD
       An  expense  record  includes a dollar amount, the date, a
       payment type, an expense type, and a description. The for-
       mat for an expense record must include all five fields.

            **** EXPENSE ****
            65.00     [1-nov-95]     >Visa<    >Entertainment<          >Dinner with wife.<
            --------

       This  example  shows  an  Visa,  entertainment  expense of
       $65.00 on november 1st.


   DATE SPECIFICATIONS
       A date specification is enclosed in "[" and  "]".  Several
       formats  are accepted. For example March 31st, 1996 can be
       specified in several different ways:

            [96/3/31]
            [Mar/31/1996]
            [31/MARCH/96]
            [31-MARCH-1996]
       The month name can be the full month name, or 3  character
       abbreviation.   Upper/lower case distinctions are ignored.
       The year may be two or four digits.  Only  the  four  date
       formats shown are understood.


   TIME SPECIFICATIONS
       A  time specification is used for alarm times and also for
       schedule time fields. A time value can be  represented  in



                          2 January 1996                        9





boss format(5)                                     boss format(5)


       12-hour format or 24-hour format. For example,


            [5:30pm]
            [17:30]
            [5:30P]
            [6:15am]

       As these examples show a time specification is enclosed in
       "[" and "]".  The ":" separates the hours  from  the  min-
       utes.  The am/pm indicator can be "am", "pm", "a", or "p".
       If omitted 24-hour (military) time is assumed.


SEE ALSO
       boss(1), bossfmt(1)

AUTHOR
       Ken Stauffer

       Email: kstauffer@attmail.com





                          2 January 1996                       10






Return To Portfolio Home

compilers • parsers • translators • C++ • yacc &bull lex • bison • unix • windows • eiffel • grammars