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
