












                                The Learn System, Version 0.6
                                For IBM PC and 100% Compatables
                                Second Draft, 05/01/1985

                                (c)Copyright 1985 Percy Keeley
                                All Rights Reserved.



                                Keeley Information
                                Post Office Box 23388
                                Honolulu, Hawaii 96822

Introduction

The LEARN system is a set of programs design to be aids in the creation 
and use of computer-aided-instruction(CAI) courses. The proper use of 
these programs is based on an assumption that the course author(s) want to 
create text screen images which are linked together by a logical 
relationship and driven by the student understanding of the material 
presented. The design of the LEARN system includes components which allow 
the creation of a viewable screen of text (much like designing the layout 
of a single page for a book), the specification of logic to control the 
display of specific screens, and a component to present the resulting CAI 
course to the student.

Component One is the EDANSI (edit ANSI screens) program. Users are allowed 
to enter a subset of the American National Standards Institute (ANSI) 
control sequences for screen formating and display. These ANSI control 
functions allow the control of the screen cursor positioning, reassignment 
of the meaning of any key on the keyboard, control of screen display 
attributes (like screen width, color, and alphanumeric/graphics mode 
selection). PC-DOS and MS-DOS versions 2.0 and above have device drivers 
which support the ANSI mode (the driver must be "installed" in order to be 
used). The ANSI extended screen and keyboard control functions are 
activated when DOS is booted up and a "CONFIG.SYS" exists in the root 
directory with a "DEVICE=ANSI.SYS" command in it. Please refer to your 
DOS  Manual for details on using the "CONFIG.SYS" file for configure your 
system.

Component Two is the LSCAN (lesson conversion scan) program. LSCAN accepts 
as input a command file created by any word processing program and the 
screen images created by EDANSI to produce a CAI file. LSCAN checks each 
command line for valid syntax, and converts it to a CAI format suitable 
for use by the LEARN program.

Component Three is the LEARN lesson viewer program. LEARN accepts as input 
the CAI file created by LSCAN and executes the commands it contains for 
displaying screens and performing the logic associated with student 
responses.

If an extension-less filename is supplied to any of these three programs 
then certain extensions are assumed. Input filenames supplied to EDANSI 
are given the ".SCR" extension; LSCAN uses ".DAT" for input and ".LKI" for 
output files; while LEARN uses ".LKI" as its default input file extension.


LESSON command descriptions:

A group of related commands are organized in units called "cells". A 
single cell contains commands that control the display of text defined in 
the cell and control the selection of the next cell to be processed based 
on the student's response to the text just displayed. The LSCAN program 
converts the ASCII text cell commands into a format called the "lesson 
file". There is a fixed limit of commands and cells which can be converted 
by LSCAN to the Lesson file format; up to 255 cells (with each cell 
containing up to 127 commands maximum) are acceptable for conversion. The 
lesson file is used by the LEARN program to present a lesson to a student. 
After LSCAN creates a lesson file, only the lesson file and the LEARN 
program are needed to allow a student to work with a lesson.

LESSON command descriptions (continued)

Each LSCAN/LEARN command has the same basic format which consists of...

         - a label field,
         - a command field, and
         - an operand field containing one or more operands

These fields must be separated by at least one blank or tab character and 
must be placed in the order shown. If the label field is used then the 
statement begins on the first character position of the line, otherwise a 
blank or tab character must be the first character. The entire statement 
is ended by the use of a carridge return character (usually inserted 
automatically by most word processing and editor programs, including the 
DOS EDLIN program).

A label field consists of a single or group of alphanumeric (alphabetic or 
number) characters up to 16 characters in length which indicates either 
the student's keyboard response which can cause the command in this 
statement to be executed (a response-label) or indicates the name that a 
group of commands is called by (a cell-label). The author defines the 
label using any combination of alphanumeric characters they desire. 

The command field defines what function a statement is to perform. The 
possible functions which can be performed in version 0.6 of the Learn 
System are:
         -   Define a related set of commands (CELL),
         -   Display text to student (DISPLAY, SCREEN),
         -   Determine next group of commands to process based on
               student's entered response (CORRECT, INCORRECT),
         -   Execute DOS level command based on student's entered
               response (SHELL),
         -   Temporarally execute another LEARN lesson based on student's
               entered response (LEARN),
         -   Define the default group of commands to process next (NEXT)

The operand field consists of one or more operands separated from each 
other by commas. An operand can be the name of the group of commands to be 
processed next (the cell label), or a text string which provides 
inforamtion required by a command to perform its function (for example, a 
DOS file name for the LEARN command or text to be put on the screen by the 
DISPLAY command).

Special Label Names:

There are several label names available which can cause special actions to 
be performed like:

         1) Endding the current lesson (/EXIT)
         2) Restarting the current lesson (/START)
         3) Causing the cell which was active prior to the current one to
              be activated next (/PREVIOUS).

These special label names all start with the slash ("/") symbol and may 
only appear in the operand field wherever a cell-label may be placed.


Special Cells:

Currently only one special cell exists, the /START cell. The /START cell 
is the first cell processed by the LSCAN program as well as the first to 
be activated when the LEARN program begins. This cell is different from 
other cells in the same file in that:

         -   this cell can be refered to by two different cell-label 
               names, the name given in the first cell statement in the
               lesson source file or by using the cell-label "/START",

         -   any statement which define a response-label in the /START
               cell will also be active as a default response for all
               cells in the same lesson file


Statement Description:

  A cell is defined in the LSCAN input file by the use of the CELL 
command. A cell is terminated by the appearence of another CELL command or 
the end-of-file condition. The format for a CELL command is...

label-name (space/tab) CELL (space/tab) option(1),option(2)...,option(n)

A label-name followed by a blank or tab character, followed by the word 
"CELL", followed by a blank, tab, or return character. The CELL command 
must have a label and the command word "CELL". Operands may be present but 
are not used in the Learn System version 0.6. It is highly recommended, 
but not required, that the option "ASCII" or "ANSI" be coded as an operand 
in every CELL statement. In future versions of the Learn System this 
operand will be used to indicate the display format the DISPLAY and SCREEN 
commands use in a cell.


The NEXT command provides the default next cell selection for a single 
cell. If no other commands in the cell cause another cell to be activated, 
then the NEXT command indicates which cell will be activated next. Like 
the CELL command, one NEXT command must exist in each cell. If more than 
one NEXT command exists in a single cell, only the first one is valid, the 
others are ignored. The CELL and NEXT commands are the only commands 
required in each cell, all others valid commands are optional (may appear 
at the discretion of the lesson author). In version 0.6, if the NEXT 
statement is not present in a CELL, the /START cell-label will be used as 
the default NEXT cell. In later versions of the Learn System the situation 
of a cell without a NEXT command might not be allowed.

The DISPLAY and SCREEN commands display text on the computer screen. The 
DISPLAY command can display up to one line per command. Its format has one 
text operand and no label. The text string must be enclosed using single 
quote mark, double quote mark, or the vertical bar symbol. If the first 
character of the string is the left bracket symbol, the characters 
following the bracket will be processed as enhanced display control 
characters instead of just displaying these characters as text. Enhanced 
display control characters are defined and explained in the DOS Technical 
Reference manual available from IBM PC dealers everywhere.

The SCREEN command specifies the display of an entire screen of text. This 
screen is stored on a disk file prior to the use of LSCAN program. LSCAN 
will read this file and store the screen contents in the lesson file. A 
screen file can be created by any word processing program capable of 
producing an ASCII text file. The EDANSI program supplied with the Learn 
System was designed just to produce screen text files suitable for LSCAN 
processing. The format for the SCREEN command has one operand which is the 
screen file name surrounded by single or double quote marks and no label 
field.

The CORRECT and INCORRECT commands both use the same format for marking 
the currently active cell as correct or incorrect based on the student's 
response to the displayed information. A label and a single operand field 
are required for both commands. The label represents the text the user 
must enter to execute this command, while the operand is the name of the 
cell to be activated next when a user response match is made. The label 
contains the minimum alphanumeric characters which must be exactly typed 
by the student to cause a match. The student may type additional 
characters after those which match the label and the match will still 
occur. For example if the cell contains the following commands:

DOSFUNC  CELL
CAT      CORRECT   DIRLIST
COPY     INCORRECT TRYAGAIN1
DEL      INCORRECT TRYAGAIN1
CATALOG  INCORRECT TRYAGAIN2
         NEXT      MOREDOSFUNC

if the student types "delete" (with the enter key at the end of the line), 
then the LEARN program would determine that "delete" matches "DEL"; the 
cell would be marked as "incorrect" and a cell with the label "tryagain1" 
would be immediately activated. In the case of two words in which one has 
the entire spelling of the other in its begining spelling (such as 
"catalog" and "cat" in the previous example), the ordering of each label 
is important for the LEARN program to properly match a student's response. 
Using the previous example again, if the student enters "catalog", the 
LEARN program will match this response with the "CAT" label and not the 
"CATALOG" label this response was clearly meant for. The same results 
would occur if the student had entered "cat" or even "catal". In this 
example it is not possible for the command with the label "CATALOG" to be 
executed. If the cell contains:

DOSFUNC  CELL
COPY     INCORRECT TRYAGAIN1
DEL      INCORRECT TRYAGAIN1
CATALOG  INCORRECT TRYAGAIN2
CAT      CORRECT   DIRLIST
         NEXT      MOREDOSFUNC

then the student response of "catalog" would correctly cause the cell 
TRYAGAIN2 to be activated while the response "cat" or "catal" would cause 
the DIRLIST cell to executed.


The SHELL command is used to temporary execute a DOS command, DOS batch 
file, or disk resident program (COM or EXE file) while the LEARN program 
is loaded in memory. In general, any command executable from DOS command 
level (i.e. "A>") is executable as a subcommand to the LEARN program using 
the SHELL command. The SHELL command uses the label field and has one 
operand which is the DOS command, batch command file, or program name with 
their respective parameters and operands all surrounded by either single 
or double quotes. Any student response which matches a SHELL command label 
field will cause the execution of the text in the operand field as if the 
text had been entered on a DOS command line. After the SHELL command has 
completed its DOS subcommand execution, the NEXT command is immediately 
used to activate the next cell.

The LEARN command is used to temporary suspend the current lesson file and 
activate another. This action could be done using the SHELL command, but 
there is a great possibility that later versions of the LEARN program will 
not function properly when executed by the SHELL command. The Learn 
command provides a more reliable and safe method of "nesting" lesson files 
("nesting" refers to a lesson file temporarily activating another lesson 
file). Nesting can occur up to 10 levels in succession. By using the LEARN 
command the lesson file limitation of 255 cells is overcome by allowing 
the LEARN program to access virtually an unlimited number of cells. The 
format of the Learn command has a label which must match the student's 
response and a single operand which is the lesson name (no quotes 
required).


The EDANSI Program:

The Edit ANSI.SYS screen (EDANSI) program was designed to create or modify 
files which represent screen images for display by the Learn System SCREEN 
command. This program can produce screen text in the two types of display 
formats which are supported by PC-DOS/MS-DOS versions 2.0 and above. Those 
formats are ...

    Standard ASCII:
              This format includes all printable ASCII characters plus a
              few (but not all) of the ASCII screen format control
              functions. Using this mode allows the creation of screens
              suitable for all display devices including printers, and
              most ASCII terminals connected to a PC by modems or RS-232
              connectors. This format does not support the use of color or
              the use of some PC characters (which overlap the ASCII
              control code characters).
 
    Extended Screen and Keyboard Control:
              This format is fully explained in the DOS Technical
              Reference manual. In summary, this format supports the use
              of color, direct cursor positioning, and keyboard key code
              reassignment (redefining of keyboard keys to produce codes
              other than those codes it normally produces). This format is
              a subset of the ANSI format used in popular ANSI terminals
              such as the DEC VT-100 and VT-220 family.

Please note that both of these formats are quite different from the BASIC 
language display format (which supports all ASCII screen control 
characters, unlike DOS which supports only a few ASCII screen control 
characters).

The EDANSI program offers a simple method of creating display screens 
without requiring a lesson author to understand either display format. By 
using various option screens, the author can define foreground and 
background colors, screen size, and screen attributes. Some special IBM-PC 
display characters are made available for inclusion into screens, like the 
currency characters, line graphics characters, and assorted 
engineering/math/foreign language characters.

Once a screen has been created using EDANSI, its file name can be used in 
the LSCAN/LEARN SCREEN command to process the screen as a part of a lesson 
file.

Getting Started:

1)  Use the EDANSI program to create or edit screen files which will
    present the information and desired responses to be a student. To
    start EDANSI simply enter its name to the DOS prompt, no operands are
    used. For example:
                         A>cls
                         A>edansi
 
    will clear the screen and start EDANSI. The first thing EDANSI will
    request is a file name for an existing file to be edited or a new file
    to be created. If no file name extension (or qualifier) is specified
    then the extension ".SCR" is added to the file name supplied.

	When the initial setup is complete, EDANSI is placed in text screen
    edit mode. You can use the cursor keys move around the screen, and
    enter text at any position except on the last character of each line
    or on the last line of the screen, these are used by EDANSI for line
    position control characters (yielding a 39x24 or 79x24 usable screen
    depending on the screen width selected). This mode has several
    function key submodes which are selectable at this point. The SAVE and
    END submode can cause the end of EDANSI execution with or without
    saving the currently editted screen. The OPT submode allows the
    selection of various screen display options and special character
    select.

    The DRAW submode allows a user to draw horizonal or vertical character
    graphics symbols into desired patterns and shapes. Two submodes within
    the DRAW submode can act as toggle switches to indicate:

              a)    DRAW line by following the path of the screen cursor,

              b)    MOVE cursor without drawing or erasing any line
                      currently on the screen,

              c)    ERASE line by following the path of the screen cursor,

              d)    Draw SINGLE line when following the cursor,

              e)    Draw DOUBLE line when following the cursor.

    Of special note is that under EDANSI, the (esc) key is used to place
    selected special IBM-PC characters on the screen in the text screen
    editing mode. Characters are selected or unselected (but not erased)
    using the OPT submode called "Assign Chars to (esc) key". In the text
    screen editing mode the (esc) key acts as a toggle switch which
    displays one of the selected special characters per each press of the
    (esc) key.

    Please also note that EDANSI does not support all Extended Screen and
    Keyboard Control features, just those that are most useful to most
    users. Other features can be specified using the LSCAN/LEARN DISPLAY
    command.


Getting Started (continued):

	2) Using the Lesson conversion program (LSCAN) involves four main 
	steps:

              a)    Create an ASCII text file containing Learn System
                    LSCAN/LEARN commands. The PC-DOS/MS-DOS EDLIN program
                    produces files that are just perfect for LSCAN,
                    however you can use word processors or line editors
                    such as WordStar, Multimate, Volkswriter provided that
                    the word processing files are converted to normal
                    ASCII format files in the same format as EDLIN
                    processed files

              b)    Execute the LSCAN with or without the source lesson
                    file name as an operand. For example:

                         A> lscan
                         A> lscan lesson1
                         A> lscan lesson1.dat

                    are all valid for converting a source lesson file
                    called "LESSON1.DAT" to ".LKI" presentation format.
                    The first will cause LSCAN to prompt the user for a
                    file name since none was supplied. The second assumes
                    that the file name has the file name extension ".DAT"
                    (thus making the file name to be access "LESSON1.DAT")
                    since none was supplied; a file name that has no
                    extension can only be specified by having a single
                    period at its end (i.e. "LESSON1."). The third example
                    has the entire file name stated which does not allow
                    LSCAN to assume anything (the disk drive and path
                    portions is also supported by all Learn System
                    commands and could have been made a part of second and
                    third examples above).

               c)   If any source lesson statements are in error, a
                    message is print along with the line number indicating
                    the statement's location in the file. These line
                    numbers corresponse to EDLIN line numbers. Please note
                    that under LSCAN version 0.6 many errors involving
                    cell-labels which refer to non-existent cell names and
                    response-labels which refer to non-existent response
                    statements are not caught as LSCAN errors.

               d)   When the DOS prompt reappears, processing is done and
                    a lesson file usable by the LEARN program is produced.
                    This file is only a valid one if no errors were
                    reported by LSCAN.

Getting Started (continued):

    3) To use the Learn System Lesson Presentation program only one action
        is needed, execute the LEARN program with a lesson file name. For
        example:

                    C> learn
                    C> learn examples
                    C> learn examples.lki
                    C> learn a:\examples

         are all valid ways to execute the LEARN program with the lesson
         presentation file "EXAMPLES.LKI". The first will cause the LEARN
         program to prompt the user for a lesson file name. The second
         will cause the LEARN to assume that file name extension ".LKI" is
         to be added to the supplied file name (resulting in the LEARN
         program access file "EXAMPLES.LKI"). The third causes the LEARN
         program to assume nothing since the file name and extension are
         both supplied. The fourth example is equivalent to second example
         since no file name extension was supplied. For all Learn System
         programs, the disk drive and path portions of a file name may be
         specified if desired, the rules affecting file names with and
         without file name extensions remain the same. The same rules also
         apply to the file name entered as a result of a prompt given by
         the LEARN program as in the first example.


Lesson Creation Example:

To be successful with this example you must first use the EDANSI program
to create three screen:

    "TITLE.SCR"     This will be your first screen displayed when the
                    LEARN program starts. Please place your name and
                    business address as a part of the screen. This screen
                    will introduce the student to what's coming later. The
                    following menu should be displayed on the screen:

                         1 - This screen
                         2 - Color screen test
                         3 - My Artwork
                         9 - Exit back to DOS
                      Please select a number above

    "COLORTST.SCR"  This will be a screen which will display your favorite
                    color as the forground color and a nice contrasting as
                    the background color if you have a color monitor. If
                    your monitor is monochomatic (single color) then use
                    black as the foreground color and white as the
                    background color. Display a message like the one
                    below:

                         Color Test Screen
                         Blue foreground color with White background

                         Enter one of the following numbers:
                             1 - Go to next cell
                             2 - Display this screen
                             3 - Display my Artwork(TM)
                             9 - Exit back to DOS

     "ARTWORK.SCR"  This screen allows you to show off your creativity
                    with drawing boxes, my only request of you is that you
                    include the words "My Artwork" at the very top of the
                    screen and you use the default colors for this frame
                    (which are black background and white foreground).

Next you'll need to use either EDLIN or your favorite word processor
program to create a lesson source file for the following Learn System
statements. Save this file as file name "Example3.dat".

Example three contents:

 column: 1        9          19                
         +--------+----------+---------------------------   

         First    cell       Ascii
                  screen     "Title.scr"
         2        correct    colortst
         3        correct    MYartwork
         9        incorrect  /exit
         1        correct    first
                  next       nocell
         Nocell   cell       Ansi
                  display    "[0m"
                  display    "[10;5H"
                  display    "    Invalid Entry Choice"
                  next       /previous
         colortst cell       ansi
                  screen     "colortst.scr"
         1        correct    myartwork
                  next       nocell
         myartwork cell      ansi
                  screen     "artwork.scr"
         9        incorrect  /start
         2        incorrect  /start
         3        incorrect  /start
         1        incorrect  /start
                  next       /start

Next, review the steps needed to install ANSI.SYS to your version of DOS, 
and create any files necessary to support the ANSI.SYS enhanced screen and 
keyboard control support. All the information you need is in the DOS 
Manual.

Last (but not least), you must process your ".dat" file with LSCAN to 
create a ".LKI" file. This lesson presentation file when run with the 
LEARN is your first lesson. Try it out and think about your next lesson.

Final Note:

The Learn System was designed with growth in mind, so please tell me about 
your experiences with this program, good or bad, so that I can know what 
things to change and which to just leave the same. Feel free to make 
suggestions by mail for future changes or enhancement you'd like to see in 
new versions of the Learn System. If you develop an exceptional lesson you 
want to share (for profit or not) with the world let me know, I'll send 
you information on selling your lesson with a special commercial license 
version of the LEARN program. 
Lesson Design Using the Learn System:

1) The Lesson Author creates a lesson plan which includes a written copy 
of the information to be presented in a paragraph form.

2) The Lesson Plan is segmented into computer display screen sized 
sections and is entered onto a computer disk using a word processor, line 
editor, or EDANSI program. 

3) Test questions are formulated and added as screens where apropriate.

4) The Lesson flow and logic is flowcharted and entered into a LSCAN ASCII 
lesson file using a word processor or DOS line editor (EDLIN).

5)  The LSCAN input file and screen images are processed by LSCAN to 
produce a .LKI lesson file.

6) The Author practices being a student using his lesson file and the 
LEARN program. If lesson usage problems occur then the LSCAN input file 
and/or screen images files are edited to correct those problems.


DISCLAIMER:

Programs and related materials created by Keeley Information are provided 
"as is" without warranty of any kind, either expressed or implied, 
including, but limited to the implied warranties of merchantability and 
fitness for a particular purpose. The entire risk as to the quality and 
performance of this program is with you. You assume the responsibility for 
the selection of the programs to achieve the results you desire and for 
the installation, use, and results from these programs.

In no event will Keeley Information be liable to you for any damages, 
including any lost profits, lost savings or other incidental or 
consequential damages arising out of the use of or inability to use these 
programs, even if Keeley Information has been advised of the possibility 
of such damages, or for any claim by any other party.


RESTRICTED PERMISSION TO COPY:

The Learn System is NOT a public domain program. Individuals are granted 
permission to freely copy the Learn System diskette for their own use or 
for others to evaluate, so long as no price or other consideration is 
charged. 

Non-profit computer clubs, schools and universities are granted permission 
by the author to copy the Learn System diskette and share it with their 
members provided:

  - the organization has officially paid for its master copy of the Learn
    System,

  - the program and documentation are not modified in any way,

  - those who receive the program are encouraged (in writing) to support
    the further development of the Learn System by sending a $40
    registration fee the author.

  - the programs may not be distributed via computerized "bulletin boards"
    or through any other telecommunications link.

Others may be granted permission by the author to distribute the Learn 
System (including software developers wishing to include Learn System 
programs with software which they may be selling or distributing) so long 
as:

  - permission is obtained in writing from Keeley Information specifically
    authorizing the distribution of the Learn System. This permission must
    be obtained before distribution is commensed.



ADDITIONAL INFORMATION:

The sample '*.lki' files supplied are designed to be used with ANSI.SYS 
device driver supplied with PCDOS 2.10 and above. Proper installation of 
ANSI.SYS involve the following steps:

  - create or add to an existing CONFIG.SYS the command "DEVICE=ANSI.SYS",

  - insure that both a copy of the ANSI.SYS file (copied from the PCDOS
    system diskette) and a copy of CONFIG.SYS file (mentioned above) is in
    the directory of the disk which will be used to initially boot up
    PCDOS.

  - the computer is booted using the disk or diskette mentioned above.


DISPLAY COMMAND CONTROL SEQUENCES SUMMARY:

The Learn System DISPLAY command can be used to control screen display by 
using ANSI.SYS screen control sequences provided the first character used 
in the DISPLAY command's text field is "[". The "escape" character which 
must prefix all ANSI.SYS control sequences will be automatically generated 
by the LSCAN program when the lesson file is being converted to "*.LKI" 
format. The following summary describes some ANSI.SYS functions which may 
be used with the DISPLAY command.


    ..Text..  .............Description............................
    [#;#H     Used to move the cursor. '#' is a single or double digit
              number, the first '#' specifies screen row, the second
              specifies column.

    [s        Save current cursor position.

    [u        Restore cursor position to that which had been saved using
              function "[s".

    [2J       Erase entire display, and set cursor at home position.


All other ANSI.SYS functions are also usable, please refer to the DOS 
Technical Reference for a complete list of functions.

