The_Sensible_Solution_1984 The Sensible Solution 1984
The_Sensible_Solution_1984 The_Sensible_Solution_1984
User Manual: The_Sensible_Solution_1984
Open the PDF directly: View PDF
.
Page Count: 374
| Download | |
| Open PDF In Browser | View PDF |
The
SENSIBLE
SOLUTION'"
í^""
$
iSl
e- m
^
3
O'HANLON
COMPUTER
.
SYSTEMgg
COPYRIGHT
© 1984 by
O'Hanlon
Computer
Systems,
All rights reserved.
Inc.
O'Hanlon Computer Systems,
Opportunity Builcíing
8383
158th
Avenue N.E.
Redmond,
Washington
july
Copyright
(C)
1984
Inc.
98052
1984
by O'Hanlon Computer Systems,
Inc.
All rights reserved.
No part of this publication may be reproduced
in any form
without prior written permíssíon from O'Hanlon Computer
The
The
Systems,
Language,
registered
CP/M
SENSIBLE
SOLUTION
SENSIBLE SOLUTION,
SENSIBLE SOLUTION Management
Series are
trademarks of O'Hanlon Computer
Systems,lnc.
Inc.
and
and MP/M
MSDOS
DPC/OS
a
The
all
are registered trademarks of Digital Research
is a registered trademark of Microsoft, Inc.
is MmmoST
registered trademark of Action Computer
Enterprises.
is e registered trademark of Televideo.
TurboDOS
is a registered trademark of Software 2000. n/STAR
is a registered trademark of Molecular Computer.
Corp.
Mai-l
Address:
Customer
O' Hanlon
Supµort
Computer
SÁ: í"n
i
ces
Syst eríis
Buildirig
Opportunity
8383 158t.h Avenue
Redmond,
Wastiingtc):
N.Ew
)
9ü(i'R
SYstems,
Coííiput.er
please
pr(.ql')1elns,
and locate the
dealer cll" ';"Líaíil /j!'Í
prior to calling your
check
review the following
list:, reüieíc yüur
appropriate sections in the i: efeí"'erice mañúR -i.
8.
Bef:
You t;á"Ll
)L'€j
i-or to calling 'yüul" .:itia
there are several things
better support service:
Zeí-"
Pr
1.
You
A
may
C
The spec'i.fii:
numbe r .
.
0
2.
3
.
be
must
You
prior
asked
faííé'íÍ
to contacting
f
t.o transfer
ii
Software
which sections
l-owinq
(ji"ü{.: 'i"cztii"ig}
jjYSt'-tií7tS iii-n:
result-
-Lj"if(")L"íílat:
suyport.,
irí quicker and
j on:
SyStt.: 'inr
t.ke SENSIBLY S-;("}{.,[.7'"í'í{")L.: í$arL[nkac{e
¿-;ens[b],e sQL.íj'Í'k()l.d
Appl icati-om
or
a
!-}!: (}("i|-¿ct.-·"aE)p'Licd,..íK-líz
Lái" Vv' i.t-Íi .E
'.'cut'
Stj.PPl:
CusLoiucu."
es,
loaá di.¿3ks,
a-ncí/or
Versicm
}'}a': \'.jT¿cA]"'p
íL"'¿..
!"OÍ.
re'·'-}".)c)c)t
i
of
EU"
li
U)'l
.t')
Sé±f'7"·
COí1lE'\'lt
O'Hanlon
do t: -hat w.i
yj it: h
fa["L1í.í.j citthe
t is JrftCñ
very
í|í¿i['lÍ.'t,4.l
t-ht.i
i""e1atc' to
bc:
must
Manual(s)%
You
numbers
á.z'úi
If you wece iii
were executing
.
can
thü
ÍJ"üf
í!ardware
Your
¥
B
be asked
or
you
'
Cust"ome:
if
you
serial
system
ana operating
example, you may be
i !.'(}
system, etc.
Ci': :ar)!.1ter
g'Hár: j.{")í;
f
'
)f'íÉ'!
y()\2 can
hei:
':
yc'ií' .pi fí-;](3t[í',[·-not-e
System
identify
the
page
.
s-;'.íL'}r/í-;?'-- susµects
that the
user áíú-i (: í]st'(:\ruer
Y't".jü
be
may
asked to re-install the
c()rreí"i"..
Please t'c-táci yut: ií: im: t" ai LU j..:".;ü nianüal carefiilly and have
software.
i-t available for ref éL"¿: TfCé
If you are
installation i-s
4
5.
The
¿j
.
If
SENSIBLE
you
are
SC'Lü'i'
i\)'ÍYt
ruíw
níA.
(:Á!'gcj"t.ÁL"_l¿É(.3
ni
:i :'.í
á
z,:.Átt.
i-
'íl'.q,
-,'
í..'¶j"{'jÁ
¿"grkrüefEt,
you
should
Ínt-í"oduction
13
know
system status
your operating
users on your system.
6.
If
an
operating
A.
B.
7.
error message
system:
and
is displayed or
the status
it
Note the exact error message; character
along with any drive letter designation or
by
other
to the
character,
file
name.
the immediate sequence of events and conditions just
prior to the error. Note the menu selections, the cursor
location on your screen, and the data last entered.
Note
We
SENSIBLE
abruptly
returns
recommend that you have your telephone,
computer close by so that you can try alternate
we may suggest over the phone.
The
all
of
SOLUTIONtrrl
terminal,
and
procedures that
Introduction
14
The
SENSIBLE
Requírements
Systern
The
operation
( 1 )
( 2 )
RAM
(a)
(b)
(c)
(d)
(free user
) :
requires
exclusiv(s
SOLUTION
area
CP/M, MP/M
CP/M (DEC Rainbow/Pro)
PC-DOS, MS-DOS (IBM,
TI)
MS-DOS (Victor)
48k
96k
12tsk
2 56k
í1,'íñ
RAM
of
níemory
48k
operating
o li
TPA or
system
'l'Pl\\
SENSIBLE SOLUTION requires mass storage capability
Storage:
of at least two floppy Disk Drives, each with at least 30Ok bytes
(after formating).
usable
(floppy disk) storage capacity
drives, disk capacity, and/or hard disks will increase
Additional
Hard disks are recommended for multi-user
system performance.
implementation and/or extensive appl icat.ions.
Mass
Terminal:
of the following
CRT
(
a)
b)
(
c)
( d)
(
( e )
( 5 )
SENSIBLE
Memory:
requirements
( 4 )
software:
of
MP/M,
MS-DOS
SENSIBLE SOLUTION requires a CP/M,
Operating System:
which
hardware
Most
operating
system.
or similar, compatible
SOLUTION.
SENSIBLE
operating
an
system
such
run
supports
will
systems are: CP,/M, MP,/ M , M S -DOS ,
Examples of these operating
MrnmC)ST,
DPC/OS, TurboDOS,
PC-DOS,
N-Star, CP--NET.
greater
( 3 )
and
for the inst.allation
system requirements
following are the basic
SENSIBLE SOLUTION
succcessful
Printer:
following
( a )
(
The
SOLUTION
SENSIBLE
b)
SOLUTTC)Nt:
SENSLBI.E
minimum
requiree
requirement s:
SOLUTION
a
CRT
(Video) terminal
ANSI compatible
(lines) by El(j (columns)
Display:
Direct Cursor Addressing (absolute)
Clear to End of Line
Clear Screen
ASCII
Screen
serial type 24or
SOLUTION
SENSIBLE
miniínum
requirements:
ASCII
type
80 column
or more (e
.m
requites
.g.
255
a
column
t"'Y"inter
with the
compressed
.I
print)
ntroduct.ion
11
O' Hanlon
Systems,
Computer
Customer
Inc.
Policy
Support:
are available only
Although
(Note:
persorincl
they rnay not
are very knowledgable,
specific operating system or your hardware!)
Customer
support serv.ices
Sy"3tems
software
products.
1.
O'Hanlon
for
all
be
Computer
of our
experts
support
your
on
Thc
.
initial support responsibility f or O'Hanlon Computer Systems
Sof tware Products lies with the dealer through wh.ich you purchased your
software.
Please contact your dealer first for resolut: ion of problems
and questioris.
2
O'Ilarílon
3.
Computer
Systems
lira ted to SENSIBLE
customer support
and user
SOL(1TTON software.
User modifications
to O'iianlon applications
help
required
programs are NOT supported.
Systems
for Custom Software Consulting.
area, contact O'Ilanlon Computer
is
application
4.
days
If
O'llanlon Computer
af ter shipment.
Systems
i
is supported for
software
in this
is
a
period
of
90
and
research)
rae (telephone
hours of support
is
90 days after shipment.
As
during
the
cost
available without
first
up to two
long as the software maintenance contract is maintained,
(non-cumulative).
Af ter
hours of support is available per quarter
O'Hanlon
the
time
at
Customer
Support
billable
current
is
that,
Computer
Systems
rate.
5
.
6.
with
7.
Up
ti
two
to
Those
the current version of the software is supported.
older software are required to obtain a current version.
Only
The
O'llanlon
Computer
Please
206-$385-2502
Hours
are
Morning:
Af ternoon:
(No
The
SENSIBLE
SOLUTIQNttñ
Support telephone
Customer
Systems
ask
8: (10
1: 00
for
to
to
Customer
12: ()0
4: 00
users
number
is:
Support.
Pacific
Monday
Time
thru Friday
collect calls accepted)
Introduction
12
logical screen being displayed
The
Software
The
(programs)
instructions
hardware.
code
Source
The program you
on
your monitor.
that direct the operation
of the computer
The source code
with the SENSIBLE SOLUTION Language.
and
code, a set of
pseudo
turned into
the computer
is then compiled
understand.
readily
more
can
that the computer
instructions
Stríng
contiguous
A
write
series
by
of alphanumeric
Syntax
The
rules that decide
constructed.
In other
characters.
a
one
can
A
values
can take different
the word variable has the same
unit that
SOLUTION
The
SENSIBLE
SOLUTIONtm
at
be
must
to the other every time
'logical' item (could be a
every time some condition is
position
be a
Value
A
given to a field.
number or a name (string of characters)
have
'Name'
'Smith'
value
the
can
or 'Brown'; the
the field
'234.56'.
can have
the value
Variable
strímg.
programming language statements
words, the grammar of the language.
itforth
satisfied.
,
j-s
how
Toggle
A
two position switch that changes from
is operated. In computer language
bit) that changes its status back and
it
'Ac%!L+'
different times.
as field.
meaning
For example,
field 'amount'
In
Introduction
SENSIBLE
9
The
SENSIBLE
System
SOLUTION
Specíficatíons
O./S Limited
Size
O/S Limited
Size
File
of Data Files
Unlimited
.
of Records per tjata File
16,777,216
1,Ó(J(J
of Data Fields per Record
Data
Record
Memory Limited
File
Bytes per
16
Number of Open Files in a Program
10
Number of Indexes (Keys)
per Data File Record
Number
Record
One
[This includes
Pre-Defined
Index]
Maximum Number of Keys per Screen
100
or Program
Maximum Length
72
of Key Field
Maximum Length of a Single Field
255
Stored Number Range:
Maximum
+99,999,999,999.9999
Mnirrium
- 9,999,999,999.9999 4
Decimal Place Precision
[Computations are done to 5 decimal place precision,
then rounded to the precision of the target field.]
Maximum Number of Accessed
255
fields per Program
Maximum Number of Command Lines per program
2,000
Maximum Number of Command Line Labels
300
per Program
Maximum Number of Nested
20
Subroutines (GOSUB)
Maximum Length of Reporter Print Line
Printer Limited
Maximum Number of Report Format
60
Lines.........
Maximum Fields
255
on a Screen/Report Format
(fields)
15
Maximum Length of Field (Variable)
Name
Maximum Number of Unique
255
Field Names per Program
Maxi-mum
Maximum
Maxi-mum
Maxi-mum
Maxi-mum
Maxi-mum
Maxi-mum
Maximum
Program
Data
Number
Number
Number
NOTES:
O/S
The
Limited:
SENSIBLE
Limited
SoLUTIONtm
by
the disk capacity
and
operating
system.
Introduction
10
File
name
The
SENSIBLE.COM.
first part
of the
file specifier.
SENSIBLE
is the
name
file
of the
Fije specífíer
The
characters
used to fully identify a file, the file name and the file
extension separated by a period. SENSIBLE.COM is the file specifier
of the
file whose name is SENSIBLE and whose extension is COM.
Format
The
logical organization
Hardware
The mechanical,
Key,
See
control
control
Key,
índex
A
of data within
electronic
the computer
memory
electrical devices that
and
logical
attribute given to one or more fields in a
and retrieval of a record given the value of the
of keyboard
you press to generate
Label
descriptive
identifier.
to identify a parameter
line to which program
a
satisfied.
Lístíng,
a
disk.
the computer.
character
on
file
key.
to permit
fast
the screen of your computer.
a label
Typically,
is a group of characters used
the screen. In a program, labels identify the
control is to pass when certain conditions are
on
program
the instructions
list oflisting),
(printer
or on the
a
up
on
key.
access
Key,
What
make
or
contained in the program.
screen (CRT listing).
It
can
be
on
paper
logged onto
a physical disk drive to a logical location in the
of assigning
by
disk drives
Usually
computer's operating
system.
are represented
alphabetic values from A to P. To gain access to a physical disk drive (to
logon to a disk drive) you would normally enter the disk drive location
followed by a colon. For example, typíng C: and the carriage return key
will log you onto drive C.
Logon or
The act
Machíne
code
series
without
any
translation.
SENSIBLE
SOLUTI()Ntiñ
A
The
of
instructionq in
a
form the computer
can
understand
Introduction
directly
7
Memory
The place
access.
where the computer stores information for immediate
It is often called RAM -- Random Access Memory.
Monítor
The physical
fast
screen of your computer.
Number
Numeric character
characters
only.
Operatíng system
software that
allows
The
with your
your computer to communicate
the operating
system allows
with these physical devices.
etc.. In our case,
drives, printer,
communicate
SOI,IJ'1'£ON
and
to
CRT, disk
SENSIBLE
Parameter
i-tern
of information
that can be changed in accordance with your wishes.
you might have a parameter
For instance,
called 'Payment amount', which
would give different values during execution of your prograI!!·
An
Program
An ordered
list of instructions
sequence of operations.
directing
computer to carry out
a
pseudo
code
The code,
meaningless to humans, which the computer
SENSIBLE
SOLUTION.
pseudo code
not
computer can understand immediately),
but is
written in
generates frorn
a
desired
a
program
machine code (which the
is
fairly close to it.
Recc>rd
A
by
series of related data that is created
a
Many records form a file.
program.
Record, physical
space allocated
The
on
fixed.
disk or
in
memory
by
a
and
program
to store
can
records.
be
interpreted
Its length is
Screen
The
physical device that is used by the computer to display information.
ís often referred to a'" monitor or CRT.
reen can also be
It
interpreted
to mean the template of information that defines the position of
and comments
when
labels, field windows
as they will be displayed on the
A
sc:
CRT
a
program is run.
Screen, currently
The
SENSIBLE
actíve
SOLUTIONtm
Introduction
8
Byte
A
group
bits,
of adjacent
generally
nowadays
Compile
The coding
operations the computer performs
(something that you can read and understand)
understand.
Constant or
parameter
A
Literal
whose
value is fixed
throughtout
accepted
as
8
bits.
to convert your program lines
into something the computer can
the execution
of
a
program.
Control character
special one-character code that is generalíy not displayed on the screen
by a program to initiate
some e,ction.
that can interpreted
is generated
It the
by holding down the control
key while another chara.: .""ter key on
keyboard
is depressed.
A
Control code
specíal code
which sets certain functions within the computer.
blank your computer screen for instance.
control
generated from the keyboard or from the software.
A
code
Control
key
A special
keyboard key to be used
key to send special commands
to the
CTRL or ALT. Control
keys are used
cotrol key is depressed in
control character.
CRT
The
physical
in conjunction
On
It
errors
be
it
CRT
stands
for
It
correct
can
it
Cathode
Ray
fijLe
contains the 'data', the information that
file of data.
into the computer that you want to manipulate or simply store
a
list of names and addresses for instance.
and
certain
with an ordinary character
some keyboards
computer.
is marked
for screen handling functions. When the
conjunction
generates a
with another key,
screen of your computer.
Data
A
Debug
To isolate
A
can
in
a
computer
Tube.
you
and
have put
retrieve.
p]rogram-
Default dríve
The disk drive that is automatically
accessed
by the operating
system when
no other drive is specified;
normally indicated on your screen with a letter
from A to P followed by an angle bracket or a dot. The disk drive you have
logged onto and are running programs from
The
SENSIBLE
SOLUTIONtm
Introduction
5
Default value
value that
The
is automatically
assigned to
a
field
by
a
program.
Dísk
Plastic or metal disk, coated with magnetic material on which data can be
stored and retrieved by the computer. The disk is divided into concentric
rings called tracks, each of which is in turn subdivided into sectors. The
common
varieties
are floppies and hard. Floppies are flexible plastic disks
contained in an envelope. Their data storage capacity is fairly limited and
by the continuous
theír life head
is affected
with the disk drive
friction operations
and atmospheric dust. Read and
read/write
are slow in
write
comparison with hard disks. Hard disks have a much larger capacity than
floppies,
to 30 times, and they operate at a far greater
typically from
speed. They are not affected by dust and dirt as they are contained
in
sealed enclosures.
10
Dísk dri.ve
machine that spins
normally identifed with
colon, i.e. A:
The
Executíve program
program that has been
the ínstructions
given
A
the disk
a
letter
and reads
its contents.
of the alphabet from A to
compiled and is ready to
the programmer.
be
by
run.
A
p
disk drive
followed by
It will
perform
is
a
all
Fíeld
A
subdivision of
is stored
equivalent
a record.
or found as a
to variable.
field is an area where data of a certain type
single entity. In SENSIBLE SOLUTION field is
A
Fíel-d, wíndow
area on the screen, to the
the value of the field.
The
Fije
An organized
composed
of
and structured
records and each
right of
a
field label
designated to display
The
collection
of information.
record is composed of fields..
information
is
Fíle, data
See data file.
Fí1e extensíon
The
second
SENSIBLE.COM.
The
SENSIBLE
part of the
SOLUTIONtm
file specifier.
COM
is the extension
Introduction
of
file
6
data entry
The
and
SENSIBLE
update screen
SOLUTION
is
a
for the user, etc..
procedure oriented language that
SOLUTION,
perform these kinds of tasks.
inexperienced
computer user
programming.
applications
With the SENSIBLE
the
can
perform
arcane
can
easily
the relatively
art of business
Begin your study of SENSIBLE SOLUTION by reading over this manual carefully.
At this stage, pay particular attention to this introductory section and
Before you
section at the back of this manual.
then read the INSTALLATION
SOLUTION
perform a
SENSIBLE
need
to
on
system,
computer
you will
your
run
section of this
short installation procedure descríbed in the INSTALLATION
manual.
By
the
signing
SENSIBLE
Before
you
and returning
the User
SOLUTION warranty and
go one
step
diskettes.
detailed
instructions
manual.
SOLUTION
The
SENSIBLE
SOLUTIONtm
License Agreement
return rights.
you
will
be
entitled to
make back-up copie"
of your new SENSIBLE
how to do this,
know
there should be
don't
Ifon you
disk copying in your computer hardware system
further,
Introduction
3
GLOSSARY
many
businesses that have generated as much
the computer industry. The rapid chances within this
Confusion
industry lead to a constantly changing vocabulary.
may not be easy for
results not only because the new terms
all
participants
to understand, but also because the same term may be
used in more than one way.
There
jargon
aren't too
as
ccmpu.ter
at the non-specialist
user and we
help
such
confusion
by
bringing
that
to dispel
will
together all the jargon words used throughout this manual.
All
words
underlines are referred to elsewhere in this glossary.
This glossary
is
aimed
it
hope
Alphanumeríc, character
Any
character
that can be a number,
punctuation marks and mathematical signs.
Applícation,
A
series
is
system
letter
a
commonly
used
of information
unit
Boot
operation
of
computer memory.
The
a given
SENSIBLE
abbreviation of 'binary
that can be stored in
A hotel booking
requirement.
for instance.
SOLUTION
Memory
storage area
permanent storage.
SENSIBLE
where
SOLUTIONtiñ
information
is
In
and
SENSIBLE
number
the
SOLUTION
of
arrays
fields.
All
digit'.
a
It represents the smallest
computer, either a O or a 1.
transferring the operating
Buffer
The
like
symbols
package
of programs that satisfy
a posisibie ápplication
of
Array
A
set of fields identified by a common name.
have
two dimensions: the length of the fie,ld
fields must have the saíne length.
BÍT
The
or other
system from the disk to the
assembled
before transmission
Introduction
4
to
The
SENSIBLE
SOLUTION
Language
has brought a revolution to the
The powerful,
inexpensive
microcomputer
business office, but all too often
seems the new computer wins the battle
A
and loses the war!
computer without a program is just an overpriced
A computer with a poor program is worse than useless:
paperweight.
you
get the data into the systern, work around the parts the computer
fight toknow
how to do,
and maybe you finally give up in frustration and go
doesn't
back to doing the job by hand.
it
Computers
the rnost
misplaced
the sun.
have
no
imagination.
nit-picking detail,
in
comma
a program
They
must
be
to accomplish
sent the Voyager
how
exactingly
a tasé,.
space
III
dorm to
instructed,
few years ago, one
probe careening into
A
This is why designing business systems
with languages
like BASIC or COBOL is
and expensive
Even
a tedious,
a simple
time-consuming
General
affair.
Ledger can take months to design, code, test and debug; adding one tiny
feature to the finished system can send the whole thing back to the drawing
board.
Of
there are hundreds of "standard"
business packages already
problem is, nobody runs a standard business.
There's always
some billing system the boss wants
to use, a "'pecial arrangement with an old
customer or something the sales staff is used to doing and won't change.
Often the accountant keeps track of the exceptions by hand and the two sets
The computer
of books slowly drift away from any relation to each other.
becomes
more trouble
than it's worth.
course,
available.
Database
The
programs are a recent rage because they let you design
have
systems.
It's a good start, but many of these programs
Designing
limited accounting capability and poorbe facilities for validation.
systems
as difficult
as using BASIC.
with a database program may
Worst
of all, each new system is totally unrelated to earlier ones -- you can't
What you have is a 'Qt of pieces that do
build on what you've already done.
What you nc.ted is a system that
of
the
job
but
can't
work
together.
part them
puts
all together:
your
The
management
own
SENSIBLE
-
a
as
-
a
quick
they
and
will
easy way to create screens and reports
appear
on a terminal
or printed page.
data control system that keeps track of all the
items of information: what they are, what they
SOLUTIONtIn
Introduction
1
contain,
what is valid data
relates to all the others.
and
how
each
iteín
set of standardized
tools so the designer
doesn't have to rebuild the same logic over and
over yet allows the operator to use the same dataentry techniques for each and every application.
-
a
-
a
-
a
program generator that handles the nit-picking
details while leaving the designer totally free to
specify the logic of the system
structure that lets the designer
expand the system without having
everything again frorn the ground up.
change or
to retest
finally, a resulting system that is fast,
efficient, and accurately handles the needs of a
full-size business.
You've probably
O'Hanlon
realized that this isn't just d wish list.
a program
Computer Systems has developed exactly this system:
that
generates the full range of business applications from mailing lists to
accounting
packages to forecasting to cost control or whatever you can
puts the power of the
imagine. We have developed a system that
That's why we call
microcomputer
to work for you today.
it The SENSIBLE
-
SOLUTION.
computer languages like Basic, Fortran, and Pascal are general purpose
provide many
syntax oriented languages. All of these 'high level' languages
diverse
yet primitive functions that allow you to write programs for
scientific, engineering, and business applications.
Most
There is a world of difference, however, between a scientific
'number
running from millions
crunching' program where you might encounter numbers
to millionths and a business application program that keeps track of
The point is,
numbers
high lrvel languages provide
to two decimal places.
the tools for an experienced programmer to write many di'f"ferent kinds of
applícations,
but this diversity is usually paid fo'r at thcc expense of speed
and ease of use.
Since business programs are usually limited in scope,
using the same kinds
of procedures over and over, why use a diverse, high level language to solve
a
specific business problem? There is a better way, aandprocedural language
composed
of the kinds of procedures that you use over
over -- create a
and retrieve data from a
a
update
send
system,
file
file,
file, provide a
The
SENSIBLE
SOLUTIONtm
Introductiorí
2
INSTALLATION
Introduction
.
.
.
.
.
.
.
.
System
Requirements. . . . .
Pre-lnstallation Instructions.
File Extensions. . . . . . .
Files Supplied with SENSIBLE
.
Installation Instructions.
SENSETUP
The
.
SENSIBLE
.
.
.
.
.
.
SOLUTIONtñí
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
SOLUTION
.
MANUAL
.
.
.
.
.
.
.
.
1
2
3
4
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.12
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
iii
5
7
The
SENSIBLE
SOLUTION
Language
Table of Contents
INTRODUCTION
The
SOLUTION
SENSIBLE
(Introduction)
Language
Glossary . . . . . . .
System
Specifications.
System
Requirements. .
Customer
Support Policy.
Update
Procedure . . .
User License Agreement
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
W
.
.
.
Ó
.
.
.
-
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
.
.
4
.10
.11
.12
.15
.16
TUTORIAL
LESSON
LESSON
LESSON
LESSON
LESSON
LESSON
LESSON
LESSON
LESSON
LESSON
LESSON
1
2
3
4
5
6
7
8
9
10
11
Using SENSIBLE SOLUTION for Data Entry and Update.
Using the Program Generator. . . . . . . . . . . .
Creating Applications with the SENSIBLE SOLUTION .
Editing a SENSIBLE SOLUITON program.
.
.
.
.
.
.
.
Payment
Program.
Creating The Customer
.
.
.
.
.
.
Defining Data Files With The Data Dictionary
.
.
.
.
Creating Our Sales-Order Program
.
.
.
.
.
.
.
.
Adding New Fields to a File or Screen. . . . . . .
Creating a Menu. . . . . . . . . . . . . . . . . .
Inquire, the Quick Data Scanning
Facility. . . . .
The Reporter Format. . . . . . . . . . . . . . . .
REFERENCE
File
File
Extensions.
List.
Main
Menu
Main
Menu.
.
.
.
.
The
Compile
SENSIBLF
A
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.10.1
.11.1
MANUAL
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1.1
1.2
1.3
2.1
SELECTIONS
.
.
.
.
.
.
.
.
.
.
.
I) Execute A SENSIBLE SOLUTION Program
2) Data Dictionary
Maintenance. . . .
3) Screen
Painting
.
.
.
.
.
.
.
.
.
4) Source
Code Editor
.
.
.
.
.
.
.
.
A Data
5) Initialize
File . . . . . .
6)
.
.
.
MENU
.
.
.
.
Programs
.
.
.
1.1
2.1
3.1
4.1
5.1
6.1
7.1
8.1
9.1
Source
Code
SOLUTIONtñí
File
.
.
.
.
.
.
.
.
G
b
.
.
.
.
.
.
.
.
.
.
.
.
.
.
#
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
W
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2.2
.2.10
.2.23
.2.29
.2.34
.2.37
i
Rekey A Data File
Restructure A Data
Program
Generator.
Inquire.
.
.
.
.
.
7)
8)
9)
10)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
File.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
LANGUAGE
Enter. . .
= (equals)
.2.39
.2.41
.2.44
.2.46
COMMANDS
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Unlock
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.'3.1
3.4
.
.3.22
.3.31
.3.38
.3.40
.3.42
.3.44
.3.49
.3.59
.3.72
.3.76
.3.78
.3.79
.3.85
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4.3
4.6
4.7
.
.4.10
.
If
Go
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Mount. . .
Save rec .
Delete rec
Clear. . .
Find . . .
Print.
.
.
Trap . . .
Execute. .
!
(remark)
Lock
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
DATA STRUCTURES
Record
Field
Layout.
Types.
.
a Data
Altering
Structure.
Translating
Foreign Data
Multi-ljser
Considerations.
.
4.1
APPENDIX
System
Specifications.
.
.
.
.
.
Complete
File
.
.
.
.
.
.
.
SENSIBLE
SOLUTION File Extensions.
SENSIBLE
SOLUTION Language
Files
Main Menu Selections
(and
System
Error Messages.
.
.
.
.
.
MENU.SCC,
MENU.SRR . . . . . . .
ARRAY.SCC,
ARRAY.SRR . . . . . .
List
files)
The
SENSIBLE
SOLUTIONtíñ
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5.1
5.2
5.3
5.4
.
5.5
.
5.6
.
.5.11
.5.13
.
.
ii
PROGRAM-
IE
IP
woRKLaANs!3
4
.
FURNISHED,
UNDER
TC)
NORMAL
USE
FROM
t)íiFEc!!g
FREE
n' MÉiTERIALs
E)'á· 'r"m t: 't"v
i ?Cj ! ?RY? P"RObi
pETuOLr
li
INITIAL LICENSEE AS EVTDENCED BY É% COPY
BE
FOR
DATE or INITíAL DELIVERY
RECEIPT THEREFORE.
TO
LIMI'X'ATIONS
REMEDY
SHALL
O' HANLON'
A.
THE
O
AUTHOR
AND
REMEDIES:
BE:
S
ENTX
RE
LIABILITY
AND
YOUR
THE
OF
EXCLUSIVE
NOT
OF
ANY
OR
MEETING
CASSETTE
THE
REPLACEMENT
DISKk.TTE
AN
TO
O'HANLON OR
WARRANTY" ,
' HANLON
"LIMITED
WHICH IS RETURNED
AGREEMENT
USER
C)!? YOUR
A COPY
LICENSE
DEALER WITH
I ZED O' E!ANLON
RECE"LF"F
rµ"
O '
B.
OR
DISKETTE
WORKMANSHIP,
AND
OF
AND
YOUR
TFÍEREC)F,
OR
HANLON
MONEY
OR
cAssE!rrE
YOU
MAY
WILL
BE
REPLACEPIENT
DELLVER
A
THE DEALER IS UNABLE TO
OR
WHICH
IS FREE OF DEFECTS IN MATERIALS
BY
RETURNING THE PROGRAM
TERMINATE THIS AGREEMENT
REFUNDED.
DAMAGES
INCLUDING
EVENT WILL O'HANLON BE LIABLE TO YOU FOR ANY
,
CR
OR
OTHER
CONSEQUENTIAL
INCIDENTAL
SAVINGS,
LOST PROFITS,
IÁ)ST
PROGRAM,
DAMAGES
EVEN IF
ART-SING OUT OF THE USE OR TNABTLITY
TI) USE SUCK
OF
C)' HANLON
BEEN
AN
OH
ADVISED
THE
AUTHORIZED O'HANIÁ)N DEALER HAS
FOR
C)F
SUCH
DAMAGES,
OR
ANY CLÉJM BY ÉNY ")THER PARTY WHO MAY
POSSIBLMÍ"Y
ASSEKT 9R L"JRÁ LJY! DAMAGES.
IN
NO
ANY
5
.
GENERAL
programe:
attempt
duties
:
c)l"
You may not súblicense,
assign or transfer
except as expressly provided in this license
otherwise to sublicense,
assígn or t-ransfc-r
obligations
hereunder is void.
O' Han1nvn
Computer'
Systems,
enhancements
as áeveloped.
Inc
.
agrees to supply
You agree
to pay O'Hanlon
which the
the media ítpori
costs and a reasonable
Inc . fcí" the cost of
distribui: ed, s.!íippinq & freight
o' hrnlc'n
computer
systems, níc:
OPPORTUNITY BUILDING
158th
8383
avenue
n .E.
REDMOND,
'At) 12
WASHINGTON
(206)
1385-2502
The
sEr4¿: 1"BI.,?.:
S·;C).L,{.'T LÍ-\Ñ
tm
.
t..he license
agreement
anv of the
s;';íj
wit: h
i Ccnnputer
or the
.
Any
rights,
product
Systems,
enhancements
are
handling
charge.
;í'lz'z'íU""í
C
'iÍíljí'ttE't'
Upda
SENSIBLE
{
tm
)
software
t
y ;.',':
í'!í7.S
,
'i D C
*
'Procedure
te
i.tz:
and
constantl'r . undergu i.rig enhancements
maii)t.erL¿3í"zcre
'i'h.e
sof"tware
This
norma
version
of
©
current
t:
hat we .[:r(3aF.?.F:t" w,a"y be a n'ajor or mir¡¢.-gr re Lease- in terms of its
impact.
on
the user . (")' Hanlon C'c: n!L;uter Systeius will ont-y
give customer
support to those zj.se: í"t2 'Ñ)?c' a.re .runninq t-he cu.rrer!t ma jor software release.
v: .i
The
to áetermine whether or
vers i-on ríumL)er' of your í;()j]"t>"|iií"E!
II allow you version
2 .DC
ma
!"or examp Le,
not the current .re tease i-s maicni" k
a
isSystems
jor
i.cm
1 ?4
:E C) 'Hartlorí
Uc--rs
compared
Thus
i
Computer
release
to
.
*
,
is
currently
shipping 'jersiün 2 .QC and you are using Version 1 .24, you must
t.n
update your software
order U-) !;'w;í ell qi!ile
.for software
support.
SC)íAjTL"")N{
SENSIBLE
':'ri)
&zaíers and end--u,4ers will be made aware
of ma jor
releases tbrougb newsletter's and f,uííezin.s .
revisions
sof tware
SOLI]TI¿]N
S
i. :3
.
Sof
rrtaintenarícc'
C
Cc)F'.pLzte?:
IL
Fees are bill-ed
to the end-user by
The fe2 i.S 13% of the suggested
price
'+7Í?O does
arLn?7.2lly *
An'.'i, "'n.L3.·-t'!Aer
keep
software maintenance
not
í"tírZ
he st: ppot t.ed b'," C)' Hanlon
Cc3nlp'.}ter
Systems
c'u£.: t.'n !.. \t.é Z
contract
'3(1 Cíaj'
F:!}(?-7d3ers
.:
j'":
.'"'"í')'.!.
]'
i-n
t..-Á -' "-'
the
can only receive
a
category
soft'w,zí"e
by E"í'tj!"¿;kíaE;ing
O' Hanlon
new
versir: !I¡ ¿-.'S' Í;¿'!..,': '¿.E.;-F ':1·'."IÁ"!'.!Á)!'-,/Z.!n)
a new
Sy'"'""
F"'t'";
Computer
;"a: 7 t'á'dV'C
í'4ai: -Ú:enancg.
Contract. at 3 ()% of the current
,\3:!:j-c:e.
suggested
tware
'Hanlon
'
directly
'their
contract
Sy .:3 '"er1e
billed
retail
after
this
retail
Software updates are naodlaá
i
.
list:
A
i9.a É.!"¿teKÉan
2
3
.
.
I
SENS
the
c.:c-
Cori '- cact
are
so-ftware
dealers
end-users
SQLU'I'!C'N(tín)
"E3LE
LLc)íl'Árí¿Á}
' " ¥"'
e:ÉpÜ}!se::'
an"i
Tcü.r
Q:": r'
.i.r:
gz,-::iiat-i
ti i-).!
( c: )
The
SENSIBLE
.
Details
are
as
who
have
paid the
siruppli ed
the
to
by C'Hanlon Computer
¿.;C'í-,UZ'!
,: F,
t-: n
Scftware
SENSIBLE
Systems .
c)}"}
lers will usually
require
a
zpdates to def ray
shipping
costs.
(g.q'
g"í': z'."! "" 't"" ::-,'(":L.tjz.' m'it tm}
aler may elect
¿:'f.:
1'[A)
':
L};.;"!a[.es
ct·a
.Lmay inciucie :
.
rges
yí: :í·di-zí
t' Cu: -'új
t.!"íc,.
c:
..'7izkc·t.t-es,
marmals,
etc)
z;7j: p'!)i-r}g ', E'?"C":-i-'í;"t!"Z)
CcjSt: t
!larici i img' cha Lt"e
f
follows:
dea
E-nd--"l,";e""
SCJ'¶t-,ÜY·
(a)
your dealer
of
'N:1.:m)
SCíL,íjTL(:
by
'to
ship
C)'
Han]-on
Cornputer
SYstems,
USER LICENSE
You
and
1
2
.
.
should carefully read the following
acceptíng this diskette package
O' Hanlon
manuals
Inc.
AGREEMENT
terms
and
conditions
before
openíng
.
Computer
Systems
arid
licenses
and
provides the programs
operator
in the generation and execution
of
software applications .
in these programs
are copyrighted
materia'Ls of O'Eanicjn,
licensed by O' Hanlon to you for use
under
this .! icense agreeraerit . You assume responsibility for the
and for
selection of the program to achieve your intended results,
the
installation, use and results obtained from the program.
,
SOFTWARE
C"Hanlon
currently
purchase .
Computer
suggested
If
Inc .
,
use
,;"i.r
t
cluded
i
wM-ch
are
MAINTENAN.CE
CONTRACT
you so elect,
agree
you
to pay
Systems,
Computer
The fee
an annual maintenance fee.
Inc.
9C
and
days
annually,
commences
the date of
by
O' Hanlon
This fee may be adjusted as deemed appropriate
Systems ,
Inc., but in no event shall the fee exceed 15% of the
If
billed
is
after
retail price.
the Soítware
Maintenance
} nc: .
,
O' Hanlon
Contract fee is not paid when due,
no
under
obligation
provide
continued
to
is
inainfénance or product enhancements
support,
desires
.
If a licensee
non-payínerit
be
made
reinstai: extent
reinstatement
upon
,
after
willreasonable terms and conditions agreed between ji censee (or transferee)
and O' Harílol"R computer
Systems ,
Iñc . , taking into account the period of
and the then coí: ·"títions
nc)n-E ayníent,
of enhancements,
status
of the
product .
Computer
3
.
Systems
LIMITED
WARRANTY:
THE PROGRAM
AS
IS PROVIDED WITH A LIMITED WARRANTY
BÉiü)gT
MAKES
NO
OR
WARRANTY
O'HANIÁ)N
DESCRIBED
EXPRESS
IMPLIED
TO
INCLUDING,
BUT NOT LIMITED
THE IMPLIED
WARRANTIES OF MERCHANTABILITY
AND
FITNESS FOR A PARTICULAR PURPOSE UNLESS SPECIFICALLY
STATED.
THE
AG
TO
OF
ENTIRE
RISK
THE CUALITY AND PERFORMANCE
THE PRCJGRÉM
WITH
IS
sHo3.ñ,t9
TlPC
PROGRAM
PROVE
YOU
YOU,
{AND NOT O'HANLON OR ANY
DEFECTIVE.
RSSUME
O' RRNLON
DEALER) ,
AUTHORIZED
THE ENTIRE COST OF ALL
NECESSARY
SERVICING,
REPAIR OR CORRECTION.
DOES
O' HANLON
WILL MEET YOUR
UNINTERRUPTED
HOWEVER,
The
SENSIBLE
NCT WARRANT
THAT THE FUNCTIONS CONTAINED IN
THE
REQUIREMENTS OR THAT THE OPERATION OF THE PROGRAM
OR
ERROR
FREE.
O'HANLCJN
SOLUTION
WARRANTS
tm
THE DISKETTE(
S)
OR
CASSETTES
ON
PROGRAM
WILL
WHICH
BE
THE
The
SENSIBLE
Maín
The
SENSIBLE
SOLUTION
Menu
SOLUTION
Screen
I)
The
SENSIBLE
Display
Version
Language
MAIN
2)
3)
4)
S)
6)
7)
8)
9)
10)
Language
2!!ENU
A SENSIBLE
SOLUTION
Execute
Maintenance
Data Dictionary
Screen
painting
Code Editor
Source
A Data
File
A Source
Code File
Compile
Rekey A mta File
Restructure A Data File
Program
Generator
program
Initialize
Inquire
SOLUTIONtIn
Reference
2.1
2.0
Main
SENSTBLE.COM
Execute
A SENSIBLE
SOLUTION
menu
selection
1
Program
Overview:
This
is the primary SENSIBLE SOLUTION
executive program.
the initial program to call from the operating system level
is SENSIBLE
main
SOLUTION Language
menu and
to execute the
is also the runitSOLUTION
time executive
programs
program used to execute all SENSIBLE
program
SENSTBLE.COM
(tilename.RUN).
Operatíon:
SENSIBLE.COM
can be executed from the operating
system level by typing the
and
[RETURN).
When
SENSCTRL.MS
done, the
word SENSIBLE
ERRFLE.MS/aKS,
SOLUTION
SENSIBLE
immedíately be accessed.
read
device
device and
the SENSCTR'LeMS
to determine the
with the system
communícation control codes that you previously
specified
SENSIBLE
SENSETUP.COM.
then open ERRFLE.MS and
program
SENSIBLE
SOLUTION
MENU.RUN.
This program
execute the compiled
program,
menu shown
on the
immediately display the SENSIBLE SOLUTIOF' Languaqe
next page.
this is
printer
will
file
installation
files,
wíll
terminal
will
--
will
Selection number
program," will also
either the operatíng
The
SENSIBLE
1
on
call
the
language
SENSIBLE.COM.
system level
SOLUTIONtm
or
menu,
"Execute A SENSIBLE
Thus SENSIBLE.COM
may be
frorrt the language menu
SOLUTION
called
from
level.
Reference 2.2
Introductíon
7
Welcome! we'd like to introduce you to The SENSIBLE SOLUTION,
a language
that lets you quickly and interactively design and modify business and
database applications.
to demonstrate the ease with which you can design new applications,
and integrate
old ones,
applícations
into your particular business
Your
environment.
task will be to create a collection of programs which can
form the backbone
of a customer order/entry/payment
control system and could
be integrated
into a complete accounting system.
'Ne
'want
enhance
You
willa
create
become
program.
familiar with the logical progression
Main
Using the selections
on
the
Menu,
of steps
you
will:
taken to
create files and fields in the Data Dictionary
paint program screens using the Screen Painter
create the source code file using the Source Code Editor
initialize the data files
'
compile the source code file
execute the program
In addition,
we
will will
teach
you
about:
using arrays
"
data structures
how easy
i.t is to modify an existing program
Inquire -- the data query facility
creating report formats that will print
information
from several different files
reports which
include
If you're a novice, relax! We'll provide you with all the basics you need
to familiarize yourself with SENSIBLE SOLUTION procedures and embark on your
And you pros,
programming endeavor.
here's a quick overview of the entire
SENSIBLE
SOLUTION development system which
will assist your enterprise.
The
SENSIBLE
SOLUTION
tm
Tutorial
After
The
typing
SENSIBLE
SENSIBLE
SOLUTION
[RETURN]
--
Language
version
MAIN
I)
2)
3)
4)
5)
6)
7)
8)
9)
ID)
##
MENU
Execute A SENSIBLE SOLUTION
Data Dictionary
Maintenance
Screen
Painting
Code Editor
Source
Initialize A Data File
Compile
Source
Code
Rekey A Data
Restructure a Data
Program
Generator
File
Program
File
Inquire
Enter
Your
Choice
From
Options
Above
.
The
SENSIBLE
SOLUTION
tm
Tutorial
1.0
2.0
Usíng
LESSON 1
Data
SOLUTION
for
SENSIBLE
We'll
start by showing
Included in your data
demonstrate how SENSIBLE
Entry
and
Update
SOLUTION'S
some
of SENSIBLE
manager
is a
that
SOLUTION applications
work.
you
files
mailina-list
capabilities.
we'll use to
Incidentally,
the mailing-list manager is not just a toy demonstration
system
Once
you can put to good use.
you've
program; it's a functional
become familiar with SENSIBLE SOLUTION,
you can tailor and expand
to
That's one of the most important features of the SENSIBLE
your exact needs.
SOLUTION:
from
you can build on previous work, without having to re-design
scratch.
it
your computer
(that's computerese
the operating system") then type
Boot
A>
for "turn
on
the
power
and
fit
re-start
SENSIBLE
and
marked
the key
press the carriage return key (on some terminals,
[RETURN].
[ENTER]
[RETURN]).
message,
viewing
copyright
After
the
press
or
Your
terminal
display
clear and display the menu shown on the facing
SENSIBLE
SOLUTION
always
you a menu of choices or
page. The
is
will
you exactly
tell
you from
insulates
the ultimate
We're
going
[RETURN].
executive
execute.
user
it
what
typing
(who
rnay
wilt
offer
wants to know.
and syntax errors
not be a prograrrirner)
This very important
feature
makes
unnecessary for
to learn "computerese".
and
so
a SENSIBLE SOLUTION program,
SENSIBLE SOLUTION
clear the screen,
the name of the .RUN
program, and ask you
Press [SPACE BAR] and type MAILLIST.
to execute
The
will
for
it
type 1 and
load the
file
you
press
command
want
to
Using this
terminal now displays the screen shown on the next page.
records,
modify
enter new mailing-list
screen,
or update
you can
remove
existing entries,
obsolete ones, and scan through the entire mailing
by
records
using
several different índexíngkeys:
last name,
list to find
zipcode, city, or state.
Your
brief
is in order here to give you an overview of what a
program can do, and how you can control it. Following
take you step by "tep through the selection and use of
this
will
controls.
your screen
A
discussion
SOLUTION
SENSIBLE
summary,
we
The
SENSIBLE
SOLUTIONtm
Tutorial
1.1
Executing the
program
MAIILIST
--
+
(Last
name
first,
please)
t******************************)
Address: ******************************
******************************
City: I********************]
State I**]
Name:
Date
Interest:
Notes:
entered
zip
I*********]
mm/dd/yy
*************************
*************************
+
The
SENSIBLE
SOLUTION
tui
Tutorial
1.2
at the screen display
Look
on
the opposite
page.
place on a screen display that you see an asterisk (*), a number sign
The
(#), or a date (mrn/dd/yy) is called a"field window".
field windows
a
into
data
you
to enter
particular field
that appear on your screen allow
Each
screen that the
in a file or to view the data that is already there.
of file information.
one
record,
contains
sy"tem displays
or line,
when you are viewing a display
Therefore,
screen, you are actually looking
at the contents of a record within one of the system's disk files.
Every
enter data into the cystern all vou have to do is move the cursor to the
have
When
finished
you
appropriate
field window and type in the data.
choose
save
the
"screen
can
then
to
you
full"
entering data onto the screen,
you decide to save the screen
of data (a record) or to edit the screen.
If
the system will transfer the informat: ion from the screen to
of information,
So how do you control
the appropriate disk file where
all
will be saved.
The SENSIBLE SOLUTION screen menus and the keys on
Easy!
your
of this?
computer
terminal keyboard.
To
it
Screen
Controls:
By
pressing
edge
bQttom
the escape key
of your terminal:
Begín
Clear
Next
fíelds
[ESC]
you
elicit
the following
Previous End Fínd Save record
jump screen
Quít screen Trace
display
Remove
?[Hdíp)
at
the
record
is highlighted. By pressing your [SPACE] bar or {RIGHT
highlight willThemove right, to the next option available
indicates the option you wish
through the displayed rnenu.
híghlight
ARROW]
SPACE]
[LEFT
The word Begín
ARROW] key, the
to choose.
highlight
press your
Pressing the [BACK
the left. When you
key and the choice
back
to
[RETURN]
key will
highlighted
the option
will be activated.
or
have
move
the
you want,
key
Another way to activate a screen control is to press the character
example,
each
For
by
option.
indicated
the upper case character beginning
Throughout this manual
press [R] to select the "Remove record" function.
brackets will be used to indicate that ve are referring to a specific key on
your keyboard.
Pressing
The
[ESC]
SENSIBLE
will
always
SOLUTIONtm
redisplay
your control
options
menu.
Tutorial
This allows
1.3
¡'rcms
[ÉSCi
[B]
L-()
f
bcic.ji
the
incl
nninq record
----
-
l
Name
:
Addrcss:
(Í,asL
nanio
[I)()E, ,J()llÑ
111
AVENUE
jNEIM
Not:.cs:
CI'/M
'I'llE
,
AMERICAS
c!
InyÍ
St-ate
Zip
j10oo1
i
07/04/tS3
ent_ercd
I3[)S;lN!':SS
S()I'TW/\1QE
I
CITY
YORK
Rat
lrít-crcmt-:
()1"
!
1()1
Sljl'l'F)
City:
f irst, plcasc)
SYS'L'EMS
ÍlOIjSE
j
l
m»
'i'lic
: ;|':N!;ll)Í,l':
s:()t.tj'!'l()N
Ílíl
""'
"
.
"
+
'!'ut-uriaj
}
.
cj
a
to make a selection by either entering a single character to activate
and
pressing
moving
selection
appropriate
the
the highlight to
function,
or
example,
[RETURN].
For
the option to "Clear fields" may be selected by
that
[ESC]
(which calls up the menu and indicates to the computer
pressing
[C]
key
the
for
and
(the
pressing
make
then
selection),
a
you are ready to
C
hicrhlight
the
Or,
the
to
move
may
you
keyboard.)
on
your
letter
"Clear fields" and press [RETURN].
anpropriate selection,
you
does not work
usually marked [CTRL],
like the other keys on
When
doesn't.
produce a character
you
terminal.
press it,
your computer
but
Instead,
acts rather like the [SHIFT] key, code
on your display screen.
changes
to a special
instead of changing the letter to upper-case
recognizes as a signal to do sorne particular operation.
the computer
that
We
In the future, any time you
abbreviate the code by simply writing ["D].
[CTRL]
key áown while you
manual,
["D] written in thi'"
hold the
press
see
send a command
would
example,
[D]
to the
action
the
key.
In this
your
system
to delete a space or character from a field.
The
control
key,
it
it
it
it
By
recognized by the system.
screen controls
are 20 different
12
Two
made
[ESC],
these
of
available to you.
menu options are
pressing
[ESC]
assistance
screens.
[?] are program
' [ESC]
[Tj AND
options,
These
involve the
there are 7 commands for editing fields.
Additionally,
keys and the [CTRL]
key. The remaining screen controls
use
of the [ARROW]
used
transferring
in
screens.
are
There
using the control keys, we're goíng to look at. the mailing
Then we will
with your SENSIBLE SOLUTION diskette.
supplied
file
another,
update
of the entries from the mailing list data file,
few new entries.
add
and
a
third,
Now,
list
data
remove
correct
one
a
Yoür
cursor is
We'll
begin by looking for the first name in the listK
by name.
be
to
NAME;
Press [ESC]
searching
the
so
located
at
we'll
list
then press [B] (find BEGINníng record).
display the screen controls menu,
The computer
will respond by finding Doe, john and displaying his record, as
you see on the opposite page.
The entry for JOHNSON, RICHARD replaces
(fínd NEXT record).
again and again, and the computer
Press {N] (fínd NEXT record)
and SMYTHE, WINSTON.
RICHARD,
SMIITH,
ROBERT,
SMITH,
Finally,
steps through
have exhausted
when
end
you
keys"
of
reached
"Search
the computer reports
the entries in the mailing list.
Now
DOE,
press
In)
JOHN.
printed an error message on your screen, the controls
the computer
a menu to the
pressing [ESC]
Noiñnally,
no longer displayed.
[ESC] following
display, you
message
an
However,
you
error
press
screen.
('I'he "Trace" Lists the specific
program
activate the Trace function.
Because
menu
is
will
The
SENSIBLE
if
SOLUTIONtR1
calls
Tutorial
1.5
Usi..ng
[F]
the Iesc]
Find record
keys
--
4
Address:
C
first,
(Last name
RICHARD
SMITH,
8Tll AND MARKET
SUITE 212
[SAN FRANCISCO
f
Name:
íty:
Date
IBM
lnt-ercst:
Notcs
please)
]
State
i
IcaÍ
zip
[78992
l
mm/dd/yy
entered
PC
*************************
:
+
-f
.
i
(]csicjndtQ(í
'í'ht-'
!;L': NS}í3T,F:
as
brackets i-ndi cates that thc
"key f lei-d."
In the abovc uxamplc", "Name"
field whii.c the field "interest-" has not.
sm: rcmrickid
ndow
as a
a kcy
-- /\ f cId
becn dcsignatcd
NOTE
W.l
:;()j",í!'f'Í()N
"í"*%*"&¥&?.
t-m
by
Tutorial
ficld
has
I
.()
has
bcen
tirne of error.)
press
line that the computer was executing at the
Too much work?
Following
again and the controls inenu will appear.
passing through the "Trace" function by
you can eliminate
the error message,
[RETURN]
key
redisplay
the menu.
any
pressing
to
or
command
[ESC]
on
remember,
your
as
long as the screen control ínenu is diplayed
by
pressing
the
wish,
you
option
control
any
exercise
you
may
terminal
keyboard key representing the upper case character lodged in each option or,
by
highlighting
the option of your choice (using the [BACK SPACE] key or
[RETURN].
[SPACE BAR]) and pressing
just
(p] (fínd PREVIOUS record) repeatedly and you can scan the entries in
Search reached beginníng of keys.
reverse alphabetical orderuntil youhave and
jE| (fínd ENDíng record) will
Similarly,
[B] (fínd BEGINníng record)
and
in
the
entries
display the first
last
list.
Press
the [C] (CLEAR fíelds)
name.
First,The press
we'll look for a particular
computer
window.
"name"
indicates that the
blank
the
out
to
field
how
showing
window
by
many
you
empty
asterisks
with
field
isbe
filling
it
the
had
name
the
cleared
out
we
field,
entered.
not
can
characters
If
computer
would have used the name currently displayed as a field index key
and we'd never see a different record.
Now
key
As
you
may have
guessed
by
now,
kevboard keys and there
referred
to as "key fields".
Let's
some patience on your part.
and
you'll begin to see the
there are
sometimes
hardware
keys",
"indexing
are software
Learning all these new terms will require
example
through the MAILLIST
continue
between
relationship
files, records, fields,
and
key
fields.
(FIND
[F]
Instead,
press the [ESC]
but don't press [RETURN)!
The
and
Smith's
record.
Richard
display
record)
the computer 'will
keys,
the indexing key value you typed
search finds the first record that matches
in and displays that information on the screen.
Type
SMITH
[ESC]
[F]
the entire field,
the value you suppLy does not
the
which
key
from
to
as
a
record)
start
partía1
uses the value
of the key.
any data left: over also becomes
search.
part
InciaentalIy,
but had typed "SMITH" over the top
you had not
cleared the nante field,
If
begun to search with "SMITHJOHN".
have
JOHN",
"DOE,
would
the computer
of
fill
When
(FIND
Now,
name
save
menu
ROBERT" (did you clear the
corrie up with "SM"LI'i'!.t,
find "SM". You should
We're
double-l in the name then
the
going
correct
to
field first?).
Press
[ESC], which turns off the screen control
the corrected entry.
and
the cursor to the fíeld window we have been searching.
returns
key tvui.c:
[RIGHT
Press the
over the
The
first
SENSIBLE
ARROWÍ
(Cursor
Now
"I".
press
SOLUTIONtín
Ríght)
[^D]
(Delete
e, to position
CharacterL
the
The
Tutorial
cursor
"I"
first
1.7
Execution
and c>ff.
Begín
Control
Eñd
F'ind
jump
fíelds
CLear'
Menu
Keys
Next
screen
The
'--"
[KSCAPEJ
Previous
Qüit screen
key
tut ns the control
Save record
'Él ace
Remove
inenu
cm
recc).L"d
?(Hélp)
With the menu on, move the highlight to the selection of ycmr choice and
press |RE7'URNj
or, enter the single capitalized charact: er lodged 1r the
option you prefer.
[BJ
Begin
Finds first: record (lowest. value)
the field in which cursor appears.
[E]
End
Fl-rids
last. record (highest- 'value) in the t"i'le
f irld in which cursor
Fínd
[F]
ÍN'Í
Finds
file
Lii
í:
núxrecürd
encountered."
[pj
Prevíous
[S]
Save
fR]
Remove
fcl
Ci-ear
fj
jump
screen
Display
nex"í
'm-teen.
{q}
Quit
sc: reen
Disµ.l-ay
jn: ev'i
CuiS
ITJ
Trace
Invokes the
[?]
(Help)
Display
}
record
record
f.iel&s
{2ont-airí'5
U-Je..
the disp"Liyed screen record
hel!:
cui
sc.:
:
Lates" Trap
Tbe
¿-3ENsr[3ÍÁb:
SÚT.Tji'íON
t-tn
"eííd
f.t"UIA
of'
of
di.sk
the
file.
disk tile.
zipaces.
! ééíi$
de!")\íg':tj.rLg
opt i.i:íñ.
recm
"find Next" and "find previous" rüust. be
Beginning,"
or "find Ending" in the saiue field.
"Re
command.
NOTE
to
ssc"cé.t2i'i
:'
value.
i .j.j.e
"be9'i.nrg ing"
screen rec'ürd in the
program
'.{
eíl."oí
po±sibi.e error':
Era.ses
zñ:
on
field
Possible
t: he
ai! fields
based
"end of
íiound)"
Stores
Clears
on
field value, that
t: he
the di splayed
a key field",
Finds previous record.
file encountered."
displayed
í'>ased
appears.
Finds the record, which
most cLosely matches
Possible
"not
erro"rs:
encounter ed ( reccit"ct RCñÁ
Next:
file
the.
1ñ
pLec¿¿íded
Al
'!.
L)','
a.
s·:
earches
Ttrt..c.>í"
"Find", "t"íríd
ti"!.gger the
j a!
! .¿"$
disappear and the rest
will
deleted character space.
We've
corrected
of the
the entry on-screen,
name
but
slides to the
we
haven't
left
t.o
fill
in the
stored the correction
on
[ESC]
Press
Is) (SAVE screen record) and the computer
disk-file yet.
SAVE thís record?
ask
(Y/N).
This gives you
chance to check your
will
entry and change
the [N] key (No) to not save the
Press
necessary.
if reposition at the name field.
record;
the cursorit will
our
a
[ESC]
[S] (SAVE screen record) again and this time answer
[y] (yes).
The
computer
the
new
store
place
of
the
old.
information
in
will
ROBERT"
and the new "SMITH,
"SMIITH" index key has disappeared,
key
follows "SMITH, RICHARD" in the index. The SENSIBLE SOLUTION always keeps
the indexes
in alphabetical order even when severaZ keys are changed at
Press
The
once.
Information
This mailing
indexed by up to nine different keys for each data file.
is
indexed by four keys: name, city, state, and zipcode.
He indicate list a
that field is a key by putting brackets around the field
window space defined for
on the terminal display (e.g.,
[key field]).
Let's scan through the entries by zipcode.
may
be
it
ARROW]
[DOWN
and (Next. Fíeld)
keys are used
(Prevíous Fíeld) [UP ARROW)
windows
Move through the field
to move from field window to field window.
key until your cursor is positioned
using the (Next Field) [DOWN ARROW]
at
Now
The
the zípcode field.
record).
press [ESC] {B] (fínd BEGINníng
computer
displays
the lowest zipcode on file along with the rest of the
Scanning
information
NEXT
the entry.
the address with (fínd
record)
in
[ESC]
[N]
show
Now look
the mailing list in zipcode orderu
at the
will
names;
they are no longer in alphabetical
order.
The
The
SENSIBLE SOLUTION knows
whether your cursor is positioned in a key field
or not. In a field that is not an indexing key, the execution control menu
selections presented when you press ESC] do not include the Begín, End, and
Fínd options.
There is one other feature concerning record searches that we should talk
[ESC]
Once you have
done a record search tr"irig
about.
[F] in a key field
window, the system program considers that particular key field to be "set"
system
field until you move
will use that key field as the Ciesignated
-- the
the
another search with [ESC] [F].
cursor to another key field and coríduct
Actually, this feature works out rather nicely because once you move the
page through
the
cursor out of the "set" key field window, you can
You don't have to move the
records by simply using [ESC] [p] or [ESC] [N].
cursor back to the "set" key field just to look at t: he next ([ESC] [N]) or
previous ([ESC]
[p]) records.
Experiment with these features on your system
still
The
SENSIBLE
SOL[jTIONtm
Tutorial
1.9
To
the
add
a new record,
windows
on
fíeld
first press
the screen --
{ESC]
{CJ
(CLE1\'R
fields) to clear
ali
of
+
(Last
Name
Address
City
:
:
:
name
Date
Interest:
Notes
:
first,
please)
I******************************]
******************************
******************************
I********************] State I**]
entered
zip
I*********)
mm/dd/yy
*************************
*************************
+
The
SENS3LBLE
SC)í,[jTI(.)N
tin
1'utoti.á,l
1.
1(1
you'll appreciate
and
how
it
easy
is to locate the exact record
you
want.
the address lines, dates, and notes, are not keys.
In this
you
system
you may
decide to modify this mailing
your own use,
later
for
list
The
makes
SENSIBLE
SOLUTION
keys.
want to change or add indexing
rebuilds your data files
easy
to change fields and keys and automatically
to accommodate the changes. It's all explained in the Reference Manual
under Menu Selections 8) Restructure a Data File.
list
If
it
viewing or modifying information already in the list.
keys.
record.
First, press the (CLEAR fields) [ESC] {C] where
leave
the
labels on-screen but fills the field
computer will
fielddenote
.is empty
the cursor is with asterisks to
that
of information.
So
Now
The
far, we've
let's add a
been
new
it
with the cursor located at the name field,
type in the name of one of your
customers (last name first, so the indexing key can fi.nd the surname).
If
jumps
the name fills the entire field,
the cursor automatically
to the next
field window "Address"; otherwise, press [RETURN] to tell the computer that
the field has been completely entered.
Continue
a
down
the screen entering
by
(leave
blank)
field
(Prevíous
Fíeld)
field.
itfUp
You can skip
address, cit.y, state, etc..
using the (Next Fidld) [DOWN ARROW] key.
will let you go back to correct a previous
ARROW]
["D] and
with the (DELETE CHARACTER)
field
(INSERT CHARACTER) [^1) bumps everything
in
under the
field
right to make room for a new character
Characters
at the right end of the field fall off and are lost.
cursor.
["U] will clear the field window where the cursor
Pressing
is positioned.
clears only the entry in that field window, other fields on the screen
It
You
may edit the contents of a
(INSERT
CHARACTER)
[^1] keys.
one space
the
to the
are not disturbed.
You
the record
haven't filled in all the fields.
if andyou the
computer
will ask you to confirm
just
SAVE
Take
(Y/N).
a
record?
look
the
at
entry.
thís
If it's right, press [y}.
The computer
save the new record and insert all the indexíng keys in
will
theír proper order.
can
press
save
[ESC]
[S]
(SAVE
To
delete
(REMOVE
even
record)
an existing
record,
record) [ESC] Ir).
record? (Y/N)c Once a computer
confirmation
insures
against
occasional typing error.
how
We
know
The
SENSIBLE
to
scan
bring the entry up on the screen and press
The computer asks you to confirm
REMOVE
has erased data,
gone forever;
so
due
accidental
loss of information
to an
the information,
SOLUTIONtln
this
this
it's
ejilit
it,
add
new
data,
and
Tutorial
delete old
1.11
Cursor
These
you to
[UP
——
controls operate when the execution control menu is off. They allow
move your cursor from field to field, and to edit your data entry.
ARROW]
[DOWN
Controls
Screen
ARROW]
Move
cursor to
topmost field)
=
Move
=
lowest
[RIGHT
{LEFT
ARROW]
ARROW]
Move
=
cursor
field)
cursor
the
field is
Move
cursor
field is
["D]
=
["I]
=
["U]
=
The
to
beginningof previous
beginning
of next
field.
(Locks at
field.
(Locks
position right within field. Value of
one
unchanged.
one position
unchanged.
left within
field. Value of the
Deletes the character
"under the cursor".
characters
in field field
shift left to
blank appears
at right end of field.
Remaining
fíll,
and
a
Remaining
Inserts a blank "under the cursor".
in field shift right. Rightmost character in
field is lost.
characters
SENSIBLE
at
Clears
SOLUTION
tm
the displayed
value
from the
field
window.
Tutorial
1.12
The
work the same way
keys
in every SENSIBLE
control
data.
(QUIT screen)
There
is one last control to learn,
application.
Press
these keys to finish working on the current screen and you
in this
returned
to the previous screen used by the system,
SENSIBLE
SOLUTION
main
SOLUTION
{ESC]
[q]·
be
The
case,
will
menu.
contt"ols!
Let's say that you just put some
last point concerning screen
You can not simply
and now
time.
data
entry
quitting
into
its
iswhy:imperative that
program
turn off your computer in the middle of Here's
It
how and
the
from
system
you make an orderly
exit
you do not follow an ORDERLY exit sequence prior to turníng
If
off your computer system, you risk seriously corrupting the
íntegrity of your data. Every time that ycm choose to stop
executíng a SENSIBLE SOLUTION program (data entry and,/or data
[q] to exit to the previous screen.
retrieval) you must use [ESC] have
Repeat
exited all the way back to the
thís process untíl youOnce
the operating
system prompt ís
operaitíng system prompt.
dísp1ayed on your screen, you may then turn off your computer
One
longhours
a
system.
In a minute, we're going to create a new SENSIBLE SOLUTION application
SOLUTION.
SENSIBLE
scratch to show you how programming
is done in the
We've
slipped
confusion.
a
up
clear
quietly
let's
little and
first,
t.o explain what
tirne
"computerese" into the discussion,
it's
We're talking about fijes, records and fíelds.
it
from
But
some
weans.
deal in l's and O's, bínary dígíts
people know that computers
(abbreviated as bíts).
Microcomputers handle data in chunks of eight bits
a
quantity,
Each byte can represent an
arithmetic
at a time -- bytes.
how
The
computer
determines
program
of
some
data.
character,
other
type
or
each byte will be interpreted.
Most
to
actual nuts and bolts of binary data representation
are "invisible"
Programmers
usually think in terms of numbers and
programmer.
the computer
being manipulated directly by the program
characters
just as you consider
"$5,000.00"
to be a money amount not a string of alphanumeric characters.
and as
when you look- at' it as "how much?"
you see
as an amount
Actually,
column
Your
program
when
tiiqures.
of
a
characters
you're t-yping
into
lets you switch between the two int.erpretations when appropriate.
The
it
it
Consider a
data.
into groups of related
Information
is usually gathereá The
and
has
name:
a
the
fí1e
a
folder is
folder full of invoices.
file
Each
label on the folder. Inside is a sheaf of pages, one per transaction.
each page consists
of a
page
Finally,
is a record of the t.ransaction.
date,
number
customer
address, invoice number,
name,
of different items:
it
The
SENSIBLE
SOLUTIONtIn
Tutorial
1.13
Files,
records,
fields,
and
key
fields --
FILE
\ /
\/
MAILLIST
fields
<
KEY
KEY
Name
Address
1
RECORD
2
RECORD
3
RECORD
4
RECORD
5
etc.
The
SENSIBLE
City
2
KEY
KEY
State
zip
Notes
Interest
+"———————+"———"+——————+—""—+"————————+———————
———_"+
RECORD
Address
1
>
———_—+———————"—+"_————————+———"_+_———+"———+——————_——+——————
l
l
l
l
l
l
I
I
——_"+——+_——— —+———
SOLUTION
I
tm
I
l
i
—— ———"+————
Tutorial
1.14
part number,
elementary
quantity,
back
order,
and
so
on.
In
computer
lingo,
these
"particles" of data are called fields.
As you continue,
you're going to be using fields a lot. They are the basic
Take some time to look
buílding
blocks of data file management.
at the
and
on
page
the
opposite
picture
you will see what we mean by fíles,
records, fíe1ds, and key fíeíds.
The
SENSIBLE
SOLUTIONtiñ
Tutorial
1.15
After
The
typing
SENSIBLE
SENSIBLE
SOLUTION
[RETURN]
--
Version 2.0
Language
MAIN
I)
2)
3)
4)
5)
6)
7)
8)
9)
10)
##
The
SENSIBLE
SOLUTION
tin
MENU
Execute A SENSIBLE SOLUTION
Data Dictionary
Maintenance
Screen
Painting
Code Editor
Source
Initialize
A
Compile
Source
Rekey A Data
program
File
mta
Code
File
Data File
Restructure A
Program
Generator
Inquire
Enter
Your
Choice
From
Options
Above
Tutorial
2.0
Usíng the
LESSON
Program
2
Generator
that you're
familiar with data entry and update in the SENSIBLE
This
we're going to create anapplication system from scratch.
demonstrate more capabilities
of the SENSIBLE SOLUTION, particularly
will
desigru
the power and ease of ímplementing an applications
Now
SOLUTION,
display should be showing the SENSIBLE SOLUTION main menu.
in the mailing list, press [ESC] [q] now andwait for the
you're at the operating system level, be sure that your SENSIBLE
copy is in the drive. You did make a copy of the distribution
Good!
Now type
didn't you?
If
Your
still
you're
If
menu.
SOLUTION
diskette,
A>SENSIBLE
and
press
screen.
[RETURN}.
The
SOLUTION
SENSIBLE
We'll begin by"painting" a screen
entry and update.
After that, the
generate a simple program from it.
Select "Main
The
3)
Screen
display
will
Menu
followíng
Enter the type of format
appear
you
on
Now you
will
SENSIBLE
will
appear
on
by
pressing
[3]
and
then
your screen:
++
wísh to load |Screen format|
Reporter format
+———"+
[SPACE
BAR)
SOLUTION
name
and
tm
of the screen format:
type
your
{RETURN].
see:
Enter the
Press your
menu
a terminal-display layout
for data
--SENSIBLE
SOLUTION
will automatically
[RETURN].
Press
The
Painting"
main
?:???7???
PHONLIST.
Tutorial
2.1
put in the *'s or #'s.
paint the screen headings on this page. Doñ't
include the brackets after the field label "Name: " -- they will remind
that "'name" is a key field.
Phone
Name
Home
Work
:
[*************************]
###
Phone
******** Ext
###
Phone
******** Ext
4,Km% &,,,m,
,,
:
###
:
###
List
z7¿!='3r'a%:
% ,
Do
you
'"k
,
The
SENSIBLE
SOLUTION
tm
Tutorial
2
.2
The
will create all data and program files on the same
resides on. You can, however, specify a different disk
drive than the one you're on.
you had typed B: PHONLIST all files would
be created on drive B.
You'll find more information about file names in the
operating system User's Guide that came with your computer.
SENSIBLE
disk
SOLUTION
drive that
it
If
The
SENSIBLE
SOLUTION Screen
Painter
The ".SCC"
PHONLIST.SCC
and indicates
extentíon
the type of
will be creating a data file from this
portion of the file-name is called the
file -- in this case, a screen file.
entry:
To
continue,
now
you
wíll
see
the following
New
{RETURN]
Press
and
@:
your screen
PHONLIST.SCC
question
Fí1e? |jtes|
your screen:
No
will display
fíle
on
status
a
col=OO1
opened
line:
row=O1
we want to lay out the "picture frame" for our screen
First,
-- the marks
and labels we want the
what is to be entered for
screen to show indicating
each fíeld.
After this is done, we can define the fields themselves, which
you can think
of as "windows" through which data values will be displayed.
During"screen
painting", you are tellingthe computer how to display and
manipulate
begin,
positions.
To
UP) [UP
(CURSOR
on the
values.
simply type what you want to see
You'll find the cursor-positioning
ARROW],
RIGHT)
(CURSOR DOWN)
[RIGHT
ARROW].
[DOWN
These
ARROW],
keys
let
the display at the desired
(CURSOR
control keys useful:
on
(CURSOR LEFT)
[LEFT ARROW]
and
you move your cursor anywhere
Go ahead
already displayed.
display without disturbing
information
shown
the
as
on the facing
headings
screen"
and"paint
the *'s or #'s.
(INSERT
page.
Don't put ín
{"I] puts a space "under the cursor" and bumps everything
at the
cursor line to the right one position; the character
(DELETE
of the screen falls off the edge and disappears.
right
character)
["d] works just the opposite; the character under the cursor
disappears,
the line moves to the left, and a space appears at the right
edge of the
screen.
else
The
CHARACTER)
on the
edge
SENSIBLE
SOLUTION
tm
Tutorial
2.3
paint: the screen headings on this page. Don't put in the
include the brackets after the fíeld label "Name: " -- they
that "name" is a key field.
. ,, ..,,.,. . .,,,
|||Kg,ék€'Ñ^
Phone
Name
:
:
###
Phone
:
###
·7 ·
.P
List
********
********
Ext
###
Ext
###
"
The
will
remind
I*************************]
Home Phone
Work
*'s or #'s.
SENSIBLE
SOLUTION
tm
. ,,
""'"
'
Tutorial
,<
2
.4
Do
you
Similarly,
(ADD
LINE) [ESC] [L] and (DELETE LINE) [ESC] [D] insert and
horizontal line the cursor is on and bump all lines below
down
line
or up to compensate.
Incidentally, the SENSIBLE SOLUTION
refuse to delete a line on which a field has been placed.
You must
the field first, then delete the line.
delete the entire
that
will
remove
To create
a box drawing
on the screen,
place the cursor at the desired
position for the upper left corner and press [ESC]
Now move the
[B] (BOX).
cursor to the desired position for the lower right corner of the box and
A
box
press the [SPACE BAR].
will appear on your screen. To create Toa
Line
on
horízontal
your screen, simply create a box with no height.
create a vertícal Line on your screen, simply create a box with no width.
[ESC]
[U]
(UNBOX)
Place the cursor
press [ESC] [U].
is used to remove box drawings from the screen format.
at the top, left corner of the box you wish to remove and
becomes
With a little practice
a snap to quickly
generate very impressive
and
move labels back and forth
screens
they
centered and neatly
are
framed. Play with these editing control until
keys
a
while
to get the feel of
for
designinga
You should end up with a display that looks
screen.
like the
screen shown on the facing page. Don't forget to leave roorn for the
it
field
windows!
just
you learned
in executing a SENSIBLE SOLUTION program, there is a
to manipulate
the display. Move your cursor to the right of the
label "Name: ". Place
at the starting point for your field window.
as
menu
it
Now
press
[ESC].
+--—-———+
jAdd
fíd
The
Remove
+------—+
f1d
Quít
When
Screen
Move
Del lne
Painting
f1d
add
menu
Show
Lne
f1d
Box
will
be
Í?íe1d
Unbox
displayed:
chg
file
Chg
Hard
copy
rEdísp scrn
the
menu appears, your cursor will move up to position
itself over "Add
Since we want to add a field, this is the menu function to select.
Simply press [RETURN] and the display
will request:
field".
Enter the
The
SENSIBLE
name
SOLUTION
tm
of the fíe1d
****************
Tutorial
2.5
Screen
Painting Cursor Control
Keys
--
These controls let you move your cursor
already displayed.
disturbing
information
[UP
ARROW]
ARROW]
{DOWN
[RIGHT
[^D]
=
ARROW)
ARROW]
[LEFT
=
=
=
=
Cursor
up
Cursor
down
Cursor
right
Cursor
left
anywhere
on
the screen
Deletes the character
"under the cursor".
characters
in field
shift
left to
appears
at right end of field.
fill,
["I]
The
=
Inserts
characters
field ís
SENSIBLE
SOLUTION
tin
without
Remaining
a blank
and
Remaining
blank "under the cursor".
in field shift right. Rightmost character in
lost.
a
Tutorial
2.6
in
Type
message:
PHON.NAME
The
The
see
As
and
press
fíeld entered
was
[RETURN].
not found.
On
Do you
the screen
you
wísh to create
will
see
the
ít? y
default
Yes is activated
when your press [RETURN].
answer
Now you will
of
specifications
use
in defining the field you are creating.
to
list
you progress down the list, you wíll be prompted to answer questions
about each of the specifications
which apply to the field as you define
a
Here
it.
we go!
Phon.Name
Fíe1d name:
Fí1e name:
Fíe1d descríptíon:
Fíeld type:
(A,N,D,O,R)
Size:
Number of decimal places:
Offset:
Key:
Entry
Upper
(Y/N)
mask:
case
entry only: (Y/N)
Carríage return required: (Y/N)
PHON.NAME
will display
as
the default
entry
for "Field
name:
".
Every
Even
name.
fíeld must have its ownunique
you
be duplicated.
The computer
another data file, the field name cannot
searches the Data Dictionary to see
already knows the name.
does, the field is displayed as previously defined and the rest of the
questions are skipped.
This insures that all programs wíll handle data
consistently.
SENSIBLE
SOLUTION
if
If it
use
if it
Field
names
can be up to 15 characters
long and may contain almost any
character except for [ ] ( ) < > + — & * and /. These characters
are used in calc expressions, which we'll be talking about later. This may
come as a shock
you're used to BASIC-style field names that must start
wíth a letter and contain only letters and numbers.
"1000.00",
For example,
"MEMORY\1",
and"FERD!IS@"
SENSIBLE
SOLUTION
names.
are all valid
field
if
This gives you complete freedom
to create names that are understandable to
Obviously,
things can get out of hand
you.
you don't use a
We recommend you choose word names
like"CUST.PYMT.RCVD" or
discretion!
"CUS.RCVBLSO1"
to help you remember
what the data represents and which file
it's stored in.
if
The
SENSIBLE
SOLUTION
tin
little
Tutorial 2.7
Screen Painting
The
[ESCAPE]
Add
fíd
jump
key
turns the
Remove
Quít
Del Ine
fld
Add
[R]
Remove
[S]
Show
f1d
IfÍ Fíe1d
chg
menu
--
on
f1d
and
off.
Fíe1d
Lne
the highlight
enter the single
move
Place
fld
Keys
Show
add
fld
With the menu on,
press {RETURN] or,
optíon you prefer.
[A]
Control
Menu
Box
chg
Unbox
fííe
Chg
Hard
copy
rEdísp scrn
selection of your choice and
capitalized character lodged in the
to the
field at cursor location.
field at cursor locaticm.
Gives
defined field narne, file, size, location on screen,
and whether field is a key.
Allows redefinition of any element of field
Remove
specificatíons.
(CI
fí1e
Chg
Allows
[H]
Hard
copy
[jj
jump
Send
a format
description to a disk file or to the
printer.
Will shift127your display to the right or left so that you
mayview
columns of a reporter format with your 80
column
CRT.
[DJ
Del Ine
The
move
redefinítion of
file.
line andbelow the cursor is deleted.
a
up
All lines below
blank Line is created at the bottom of the
screen.
[L]
add
blank líne is inserted below the cursor. All lines
below move down and the last line on the screen is lost.
Lne
A
ends
[q] Quit
This
[BJ
Box
Create
a box
[U]
Unbox
Remove
box
[EJ
rEdísp
The
SENSIBLE
scrn
an
editing
drawing
session.
on
the screen.
drawings from the screen format.
redraws any boxes on the screen which may have
altered or disarranged due to you inserting or
deleting spaces.
Correctly
been
SOLUTION
tut
Tutoríal
2.8
you find you have mistyped
If
field narne at this time. Press
field
the
name,
[RETURN]
you
can re-enter
down the
to continue
the correct
list.
Right now, we
Enter Fíle Name
Every field must exist in a data file.
SENSIBLE
SOLUTION
haven't told the -about any data fi1e(s) for this screen.
Type
PHONLIST
(you don't have to press [RETURN] the computer knows that
PHONLIST
ís a full-length B-character file name all by itself).
Later, when
we are defining
more fields, the computer will offer PHONLIST
as a default
file
name.
will
Now you
This fí1e
Press
see:
does
not
exist.
[RETURN]
and
the data
Do you
want to create
file will
be
ít?
y
created.
Field descriptíon: -- You may use this 30 character long space to enter a
description
Enter whatever
or reminder of what purpose your field serves.
remark or description you wish.
This has no effect while executing
Your description will appear in the Data Dictíonary. Press
programs.
[RETURN].
Enter the
F:
íeld type: (A,N,D,O,R)
-- Data fields may be:
letters, digits or punctuation
digíts, decimal point and minus sign only
automatícally
tested on entry for validity.
add days
each
Alphanumeric type:
Numeric
Date
type:
type:
and
Overlay type:
Record
number
Alphanumeric
want
Enter
field.
The
the
Type
SENSIBLE
can
most
You
dates from
can
other,
be
common so
so press
number
of character
press [RETURN].
SOLUTION
subtract
have
a
name"
tobe alphanumeric
and
date,
dates.
a
defined as one--for instance
if
Name"
and a
for
for
"first
field
field
can
an
define
overlay
which
you
field
contains "first and last name" known as "name."
data
this field contains the record number for each
record saved. You may search for records by using
this field.
type:
Síze--The
25
on
fields
"last
two
you
fields are the
PHON.NAME
key
to
tm
A
as the default.
is offered
[RETURN]
We
[A] or
positions
in the "window"
Tutorial
for this
2.9
[ESC]
[AJ
f1d, adding the
Add
field
PHON.NAME
--
n "
4
Field name: PHON.NAME
File name: PHONLIST
Field description:
Field type: (A,N,D,O,R) A
Size: 025
Number of decimal places:
Offset:
(Y/N)
Key:
y
Entry mask:
N
(Y/N)
Upper
case entry only:
Carriage return required: (Y/N)
Save
the
above
record
-Wié,1.,1
W4i,m
I 5
Note:
to any
current
The
?
N
(Y/N)
Y
D Al
¥ wmá
K
and [DOWN ARROW} to position your cursor next
specification you wish to alter. press ["U) to clear the
field
you desire.
definition and re-enter the specification
You can
SENSIBLE
use
[UP
SOLUTION
ARROW]
tm
Tutorial
2.10
Use
you may abort the field definition.
At any point during its creation,
your [UP ARROW] key to position the cursor in the "Fíeld name: " field window
at the top of the list of specifications. Press [ESC] [q] and see the
message.
The
field entered
[N]
(no).
was
no
be
was
not found.
the screen
Do you
wish to create
ít?
Y
find that the cursor is returned
to
will
last located before you chose to add a field. If you choose to
it
escape,
information will have been created, but the file name
field created.
entered will
This escape feature will allow you to stop an
made
Answer
where
entry
if
On
you've
a
you
mistake.
noü.
field
respond
Let's go ahead and create this
Enter the field name: PHON.NAME
Now enter the followino:
Fiñe name:
Field description:
Field type:
Size:
PHONLIST
A
25
will find
Now you
(Y/N)o
and
Press [ESC] [A] (Add field).
"yes" you do want to create it.
press
press
[RETURN]
[RETURN]
press
[RETURN]
that the cursor skips
áown
the
list
of
definitions to Key:
the question
Because you defined the field PHON.NAME as "alphanumeric,"
"number of decímal places?" does not apply. If you had defined your field
as numeric you could specify as many as four places after the decimal point.
only enter information
-- overlay field.
will
You
a type
O
into
Offset
when
you
are defining
a
field
as
(Y/N)
as many as nine different
File records ínay be índex—keyedby
-- don't
down
by
indexing on unnecessary
slow
the
to
computer
want
fields.
keys. In this case, the name ís a key we want touse in searching for data
[RETURN).
records so press
-- no need to press
ENTRY MASK:
an entry mask is the format of a field that is stored in the
Data
(See the section on Masking in the Reference Manual,
Data
Dictionary.-Because
we do not want to define a mask for this field
Dictionary.)
press
[RETURN].
Key
You
Y
,
(Y/N)
answer yes, all data entry to this
-- you
N.
Answer
automatically
converted
to upper case characters.
Y
By
you
(Y/N)
specifying
answering
that
requíred:
are
return
-- will be required to press [RETURN)
user who enters data to this field
Upper case
field
will
Carríage
any
The
SENSIBLE
entry only:
If
be
SOLUTION
tm
Tutorial
2.11
Use the
phone"
arrow keys to
area code --
move
the cursor to the
Phone
Home
t*************************]
Phone:
"I
Ext
Work
Phone:
Name:
The
SENSIBLE
first
space
provided
for
List
Ext
SOLUTION
tin
Tutorial 2.12
"home
after
entry to get tc} the next input fieIcL
answer N, the
If vou you
corrLi,)]-etely
automat.i.caily
jump
the
to
next
input field
will
characters.
not
you
this
field
with
is
will need to
filled,
If
pres" [RETURN] t-o get- to the next input field. Fm our purposes, answer N.
each
system
fill
If you find. that you have
this field definition, you
made an
may use
er.ror at sorne
your Iup ARROW]
cursor to the erront"ons ent-ry and make
to clear the current definition, then
move your
{
Press
"U]
you desire.
At
if
it
this point
you
will
be
in the creation of
point
and fDowN ARROW] keys
to
any necessary corrections.
L"e-ent<': z" the specif
ication
asked:
Save
the
above
record? (YjN)
Y
[y] or [RETURNJ . The SENSIBLE SOLUTION now '" :í- t-- exactly how you want
this file represented and pLaces 25 *'S next to the "Na.tne: " label on your
display to indicate that the screen will accept up to 25 characters in that
The
"window".
return to
field is added to your screen and the cursor will
You have just
the first character of the field window. Corígratulations!
added your
first field. Now let's add the rest of the fields.
Press
Using the arrow keys,
move the cursor t.o the f: i í"st spact" provided f or your
"home phone"
[ESC}
Press
(area code).
to call up the Screen Painting menu.
We
add
want to
[RETURN]
Following
field,
and
the
the procedure described
LABEL
Home
a
Add
f.ield option
above,
QUESTION
Phone:
Field
ANSWER
PHON.ARE7.\HOME
PHONIJI ST
nañít2:
N
so
press
(area
code)
value-default [RETURN]
N
mask:
'\,{
'tkiU,)
Y
it
Because
is not necessary to enter
want to require "Upper case entry
questions were omitted from the above
ARROWJ
accepting the default- answers.
SOLUTION
NOTES
C)
:
Save?
SENSIBLE
information:
pres s
5
Key:
Entry
et the followino
ent
File:
Field type:
Size:
Number of decimal places
The
is híghlighted,
.
tin
a
"Field Description," and we" do not
or "Carriaqe
return, these
[RETURN]
[DOWN
only"
list.
Simply press
or
'í'utorial
2.
13
SOLUTLON
SENSIBLE
File
extensions
* . SCC
* . SRR
* . RUN
* . U)
* .IjS'JJ
* .MS
* . KS
Op(?rating
*
*
The
--
and
with
created
used
SENSIBLE
or Rer)orter
SOLUTION:
files
F'ormat
Code
Source
Command
Inquire Format
Screcn/lQeporter Format or Source
Master Data
Key
the .MS
Screen
Coinmand
Compiled
f lies
files
files
file
System
EXE
SENSIBLE
file
extensions
exccutible
executible
Compilcd
Compiled
SOLUTION
tm
Code
f ilcs
1\SCII
file)
file (for
.COM
.
Fi-ie Extensions
used
with
program
program
SENSTBLE
-
CP/M,
MS
DOS,
SOLUTION:
MP/M
PC
DOS
Tutorial
2
.14
Did you notice that the entry mask that you defired for this field was not
immediately reproduced on your screen. The 5 # signs indicate the number of
'í'he parentheses
spaces reserved for this field.
will show up after we
comrñle t.he program.
Nofj position
your cursor
[RETURN] to add the home
Field
Phone
Heme
the home area
after number
field.
PHON
Nar.1e:
File:
phone
Field
Field type:
Size:
Number of decimal places:
N
Key:
Save
N
Field
Phone
Work
3
Phone"
label and
and [RETURN)
to
PHCíN
name:
File:
Entry
[ESC]
í'dork
your cursor
Field
File:
Field
The
SENSIBLE
mask
(area code)
press [RETURN]
A HEAWORK
N
.5
:
O
\..(#±:e['.,)
:
Y
:
[RETURN].
Phone
the work area
N
Key:
Position
.
below the
directly
add
PHCNL!ST
Field type:
Size:
Number of decimal places
Save
rxtension)
press [RETURN]
Y
next to the "Work
field. Press [Escj
field.
and
O
:
code
{ESC]
(home
EXTHOME
.
PF1ONL,!ST
PHON
name:
your cursor
area
number)
[RETURN]
press
f ield, then press
number
File:
home
code
phone
and
Y
your cursor after the horne phone
to add a home extension field.
Position
(home
NUMHOME
{ESC]
#E'n-¿i¿.!.#¢f
mask:
Save?
Phone
presq
N
Entry
Horne
.
and
E3
Key:
[RETURN]
field
PHONLIST
a
Field type:
Size:
Position
code
phone
appropriately
name:
to
.pIa ce
tj: iO
PHCü.l
F'HONT,j
type:
SOLUTIO!Ñ tm
A
.
t: ....l
NLMWCiF'K
3T
k
phone
(work
number.
phone
press
Tutorial
Press
number)
[RETURN]
2
.
15
After
The
"saving"
SENSIBLE
[ESC]
your work, press
SOLUTION
I)
2)
3)
4)
5)
6)
7)
8)
9)
10)
##
SENSIBLE
SOLUTION
to the
Main
Menu
tin
--
Version 2.0
Language
MAIN
The
to return
MENU
Execute
A SENSIBLE SOLUTION Program
Data Dictionary
Maintenance
Screen
Painting
code Editor
Source
A Data File
Compile
Code
Source
Rekey A Data
Restructure A Data
Program
Generator
Initialize
File
File
Inquire
Enter
Your
Choice
From
Options
Above
Tutorial
2.16
.
Size:
8
Key:
N
Entry
Save
Posit-ion
L'ress
Work
[RETURN].
i"ield
Phone
Y
appropriately to
your cursor
[ESC]
###-####
mask:
:
F'i l.e
the work
add
PHONE
name:
Field type:
j Z(' :
Number of decimal
Our work
[RETURN]
{ESC}
press
3
pl-aces:
()
Y
wit-h
the Screen Painter is complete sc) press
to accept the default "yes" to the quest.ion
aCa
cinsion)
[RETURN]
N
Do you
Then
field.
ext:
press
N
Key:
Save:
job!
then
(work
EXTWORK
PHONLTST
:
S
good
and
.
extension
phone
want
the
t-o save
in to rc't.urn to the
changes?
Main
Yes
that we havc paint-ed a screen and def ined the
it: 's time to create a progrmn.
Select "Main Menu
see displayed:
name
IQJ
No
Menu.
Now
Enter the
{ÉSCi
within
f9)ields
Program
the screen,
Generator" and
of the screen format ?:?????7??
for you to specify the disk drive
first "?" followed by ": " is provided
everything
where your program is located.
from the same
is running
If
arid type PHONLIST.
drive, just press your [SPACE BAR) t-o jurnp past
The
it
The
SENS7BLE
SOLU'I'1(.")N
program
generator
will
go
through five
phases:
-- Checking fields
Data files
Initializing Command
-- Generating
Source
file
-- Chccking
'l'argct.
Labels
-- Checking for
o/Gesubs
for Got
——
...
and
for
This running
it finishes
Briefly,
The
each pha": e
which
commentirídicates that
be returned to
you
tells
will
SENSIBLE
SENSIBLE
S()LU'!'LUN
SOLUTION
t-iii
line of the
the
the
perfL)rmL}(j
is scanning.
file
When
is it
working.
command
program
generator
Main Menu.
three
main steps
here:
Tutorial
data
2.
file
17
Cursor
-—
controls operate when the execution control menu is off. They allow
to move your cursor from field to field, and to edit your data entry.
These
you
[UP
Controls
Screen
ARROW]
[DOWN
ARROW]
Move cursor to beginning
topmost field)
=
=
Move
lowest
[RIGHT
[LEFT
ARROW]
ARROW]
Move
=
cursor
field)
cursor
the
field is
Move
cursor
field is
["D]
=
["I]
=
{^U]
=
of previous
to beginning
of next
(Locks at
field.
field.
(Locks
at
position right within fíeld. Value of
one
unchanged.
one position
unchanged.
left within field. Value of the
Deletes the character
"under the cursor".
characters
in field field
shift left to
blank appears
at right end of field.
Remaining
fill,
and
a
Remaining
Inserts a blank "under the cursor".
in field shift right. Rightmost character in
field is lost.
characters
Clears
the displayed
value
from the
field
window.
.
The
SENSIBLE
SOLUTION
tin
Tutorial
2.18
Data
at i-on.
creates data
reading the field definitions stored in the
file-'s c)ñ the disk.
It: works
't.hose def initions.
and then creating
Data
Dictionary
the f lle that iuatches
The source code necessary to maintain
files is automat i.calZy generated by
SOLUTION.
SENSIBLE
Compilation is the process of creating pseudo code that
can run.
executive progratn
the SEF'SIB'LE SOLTJTION
initialization, source code geríe.raticm,
by
file initi.alizati.on is a process
by
We
our
willMenunow I) take
Execute
"Main
On
for
new SENSIBLE SOLUTION prograrri
SOLUTION Program."
a SENSIBLE
you
will
see:
Enter
name
of
your screen
CUl!lft-L
and source ccde
whic: h SENSIBLE
SC)L.{jTI(jN
File to
.RUN
be
executed:
? :
a
I
quick spin!
Select
********
7·u: YO\"l t:o sµec:
Again, the fi-rst "?" fol. Lowed by ": " is provi(:
ify the disk
ever.yI: Ling i-s running from the sanie
dri.ve where your prograrrt is located.
and enter pHoNLIsgr#
Your
drive, just press your [SPACE BAR) to jump past
PHONLIST screen will be displayed and ready for írípüt.
!¿3,.i
if
it
located at the name fiel-d winduw, type in a fri-end's name
(last
first, so the indexing key can Find the surname). If the name
the entire field, t-he cursor autornatica LLy jumps lo the 'next field
window
Home Phone
area code; otherwise, press [RETURN] to tell the computer
that the field entry is coííiplete.
With the cursor
name
fills
Continue down the screen entering home phone, extension,
work phone, and
You can skíp a
blank)
using the
(leaveLt
work phone extension.
field[RETURNÍ . (PREVIOIJSby FIELD)
(NEXT FIELD) [DOWN ARROW] key or pressing
[UP
ARRDW] will let you go back to correct
a previous Í .ield.
t:'he coritents
of
CHARACTER)
[^1) keys.
one space
to the
edit
the field
You rítay
(INSERT
a
the (DELETE CHARAC'L'ER) f^D] and
(R.NSERT CHARACTER)
Í^j: buní,ps evervthing in
make
foí"
room
a new character under the
to
and are
eííd of the
field with
j
right
Characters at the right
lost.
field fall. off
You can save the rec: ord rven
you haven't filled in ai
the fields. just
if
rei":
[ESC]
(SAVE
and
ornpet
you
vii
ürd)
the
[S]
to conf irm SAVE
press
'g right, press
Take
RECORD? (Y/N)w
lüok at. the ent-t}".
[y]. The
if
A!
keys
and
in their
indexing
insert"
save the new record
computer
cursor.
!.
c:
a
w
proper
ill
i
á±: !á
í-.fjc
order.
Enter several- records
done?
:.-·
'"'l'
.¡'.f
Then
let'sand
you've acquired
can
edit
The
SENSIBLE
w
i-:.h
the
and
[Qj
ÍESC]
create
Sotirce
SOLUTION
t.r:
i
cI
¿ocIé"
All
skills
menu options
to view your records.
Main
t.irne
Menm
t:o take the
ic:
át-t:d
s
suyh
i
which we
more
t
screen arid program
Ed.itcír.
Let's begiru
use the
to the
It's
Í'utorial
2.
19
Paínt
this screen
-—
CUSTOMER
No:
[
Name:
[
Account
MASTER FILE
]
Date
)
Address:
City:
Outstanding
State:
Réceivables:
jan
May
Feb
Mar
Apr
SENSIBLE
jun
jly
Aug
SOLUTION
tm
Zip:
[
]
Sales year-to-date:
Sales
The
Started:
by
Month
Sep
Oct
Nov
Dec
Tutorial
3.0
LESSON
Creating
CUSTFI.LE
information
is
Applications
3
wíth the
SOLUTION
SENSIBLE
a customer
master record program.
about one particular customer.
It
summarizes
as before,
select"Main Menu 3) Screen Painting."
load
want
to
you
is a Screen format so press [RETURN).
{SPACE BAR] and type CUSTFILE.
just
The
The
all
the
type of format
press your
Now
question:
New
fí1e?
I
I
Yes
No
+""""+
will
appear
on
your display
"Yes" i'" the default
answer.
Paint the frame as shown
for the field windows!
on
terminal.
Press
(RETURN]
the opposite
and
continue.
page.
Don't
forget to leave
room
we're going to define and place the field windows, just as we've done
before.
Position your cursor appropriately, [ESC) and"Add" each of the
fields as follows:
Now
QUESTION
LABEL
Account
Date
No.
started
Field
N
Key:
Save:
y
y
Field
Key:
Save:
SENSIBLE
CUS.CUSCODE
CUSTFILE
Field type:
Size:
Number of decimal places:
File:
The
name:
File:
Field
SOLUTION
NOTES
ANSWER
8
default
press
[RETURN]
press
[RETURN]
C)
narne:
CUS.DATE
CUSTFILE
type:
D
N
Y
tm
value--
Tutorial
3.1
While using [ESC] [A] Add f1d, the listed entries represent
[DOWN
ARROW].
answers obtained by pressing [RETURN] or
Field name:
File name:
(no definition
Field description:
A
(A,N,D,O,R)
Fíeld type:
Size:
Number of decimal places:
Offset:
Key:
Entry
(Y/N)
mask:
case
Save
Note:
to any
current
The
You
can
is required)
(no
definition is required)
the
above
use
[UP
record
ARROW]
?
and
(Y/N)
N
Y
[DOWN ARROW]
specification you wish to alter.
field
definition and re-enter the specification
SENSIBLE
SOLUTION
default
N
entry only: (Y/N) N
Carriage return required: (Y/N)
Upper
the
tin
to position your cursor next
Press ["U] to clear the
you desire.
Tutorial
3.2
Field
Name
CUS.NAME
CUSTFILE
name
File:
Address
Field type:
Size:
A
Key:
Upper
Save:
Y
case
Field
name:
entrv only:
Field type:
Size:
Key:
Upper
Save:
N
case
Field
name:
entry only:
A
Key:
Upper
Save:
N
case
Field
name:
entry only:
press
[RETURN]
press
[RETURN]
Y
Y
CUS.STATE
CUSTFILE
A
2
N
Key:
Upper
Save:
case
Field
Name:
entry only:
Y
Y
CUS.ZIP
CUSTFILE
Field type:
Size:
A
Key:
Save:
Y
9
Y
name:
File:
SOLUTION
[RETURNJ
20
File:
Key:
Save:
SENSIBLE
press
Y
CUS.CITY
CUSTFILE
Field type:
Size:
Number of decimal places:
The
[RETURN]
Y
Field type:
Size:
Field
press
20
File:
Receivables
[RETURN]
Y
A
Field type:
Size:
zip
press
Y
CUS.ADDR
CUSTFILE
File:
State
[RETURN]
34
File:
City
press
CUS.RECEIVE
CUSTFILE
N
12
2
(dollars
N
Y
tm
Tutorial
3.3
&
cents)
[ESC]
Use
@:
[H)
CUSTFILE.SCC
(Hard
copy) to obtain
screen format
No:
Name:
Address:
City:
Outstanding
Feb
Mar
Apr
Field
name
CUS.CUSCODE
CUS.DATE
CUS.NANE
CUS.ADDR
CUS.CITY
CUS.STATE
CUS.GlP
CUS.RECEIVE
CUS.SALES
CUS.MONTHO1
CUS.MONTH05
CUS.MONTH09
CUS.MONTH02
CUS.MONTH06
CUS.MONTH1O
CUS.MONTH03
CUS.MONTH07
CUS.MONTH11
CUS.MONTH04
CUS.MONTH08
CUS.MONTH12
The
SENSIBLE
Page
No:
Date
1########]
I**********************************]
********************
State: **
********************
Receivables:
#########.##
CUSTFILE
CUSTFILE
CUSTFILE
CUSTFILE
CUSTFILE
CUSTFILE
CUSTFILE
CUSTFILE
CUSTFILE
CUSTFILE
CUSTFILE
CUSTFILE
CUSTFILE
CUSTFILE
CUSTFILE
CUSTFILE
CUSTFILE
CUSTFILE
CUSTFILE
CUSTFILE
CUSTFILE
tm
Started:
zip:
year-to-date:
mm/dd/yy
*********
#########.##
Month
Sep
Oct
Nov
Dec
jly
File
SOLUTION
by
Sales
May #######.##
jun #######.##
#######.##
Aug #######.##
#######.##
#######.##
#######.##
#######.##
0001
MASTER FILE
Sales
jan
listing like this:
listing
CUSTOMER
Account
a
Size
Col
Row
008
8
034
020
020
002
009
012
012
010
010
010
010
010
010
010
010
010
010
010
010
016
065
016
016
016
051
062
028
064
012
037
062
012
037
062
012
037
062
012
037
062
04
04
06
07
08
08
08
#######.##
#######.##
#######.##
#######.##
Key
Y
N
Y
N
N
N
Y
10
N
10
N
16
N
16
N
16
N
17
N
17
N
17
N
18
N
18
N
18
19
19
19
N
N
N
N
Tutorial
3.4
,
Field name:
File
Field type:
Size:
Number of decimal places:
Sales
Key:
Save
.
MONTHQ
[RETURN]
press
[RETURN]
1
CUSTFILE
Key:
Save
N
10
2
y
:
CUS .MON'M02
CUSTFILE
name:
File:
Field type:
Size:
Number of decimal places:
N
10
í'
—
N
Y
:
Make entries
the Mar
and so on, but otherwise
and two number"
"O".
with the
for
lettert
press
N
N
Key:
Save
ÍRETURN]
12
Field type:
Size:
Number of decimal places:
Field
press
2
CUS
name:
File:
Feb
N
Y
:
Field
jan
. SALES
CUSTFILE
CUS
letter
through
Dec
labels called
CUS.MONTHO3,
CUS.MONTHO4
MONTHO1
CUS.MONTHO1.
consists of
and one number.
Don't confuse zero
five
identical to
not six letters
This completes our field definitions for the CUSTFILE
screen. If you would
a printed copy of your screen as defined,
press [ESC] [H] (Hard copy)
like
and the
shown
be printed on your system
on the facing page
listina
will
a
examine
You
may
the cursor
also
particular f ield by positioning
printer.
{ESC]
[S] (Show
at the beginning of the field window then pressing
fíd).
The field definition
will appear at the top of the display.
can change the definition of a field within Screen Paintíng by using
i-f'-ícation.
Pressing
chg) [ESC] [E] and redefining any field
(Fíeíd
[ESC]
but does not
Ir) (Remove fld) keys will take a fi,eld off 'the screen
remove
the Data Dictionary. If you remove a field and use the same
it from
again, the existiIlC definition will be used automatically.
field name
You
[.5fgE'·3(:
The
SENSIBLE
SOLUTION
tm
Tutorial
3
.5
Executing
In the
the
CUSTFILE
program--
field, enter last
name
name
CUSTOMER
Account
No:
Name:
Address:
City:
Outstanding
[
Feb
Mar
Apr
The
SENSIBLE
MASTER FILE
1111]
Mte
Receivables:
State:
SOLUTION
by
jly
tm
WA
zip:
Sales year-to-date:
#########.##
12/16/84
[98107]
#########.##
Month
May #######.##
jun #######.##
#######.##
Aug #######.##
#######.##
#######.##
#######.##
#######.##
Started:
]
[MARQUARDSON, JOHN
STREET
123 NORTH
SEATTLE
Sales
jan
first.
Sep
oct
Nov
Dec
#######.##
#######.##
#######.##
#######.##
Tutorial
3.6
that the CUSTFILE screen
computer will ask
has
Now
Do you
to
want
defined,
been
the
save
(ÉSCi
press
IQ)
The
.
Y/N
changes?
Press y. The screen definition w-i.íl be saved and you will be asked once
more what type of format you wish to load into the Screen
painter.
you
had more screens to create, you would simply name another and begin to Ifpaint
and define
so press [ESC]
At this time we are finished screen painting,
it.
Main
Menu.
to return to the
let's
Now
our
use
CUSTFILE
The
Program
"Main Menu 9) Program Generator"
screen format.
Generator
[SPACE
name
7:
of the screen forínat:
BAR] CUSTFILE.
The
When the program
reappear. Now
it menu will
works.
create
a
program using
will pronipt
Enter the
Type
as
main
and
********
program generator will report on its progress
generation is complete, the SENSIBLE SOLUTION
we're ready to execute the program.
will give this new program a trial run; then later,
connect with our sales-order and payment-entry screens*
We
we
will' modify it
to
The display
Select "Main Menu I) Execute A Sensible Solution Program."
will
Type CUSTFILE
clear and ask you to Enter name of .RUN file to be executed.
(you don't have to press [RETURN] ).
The screen we just defined
appear
examine, will
on the terminal display and
allow you to enter,
or update
information
in the Customer
Master Fi.le.
and command
keys that you used with the MAILLIST and
to you to aid in entering data to the
proaraíns
are
available
Please
enter records for account numbers 1111, 2222, 3333, 4444,
screen.
and so on.
Specify account number, date started, name, address, city,
last name first. Use
state, and zip code only. andIn the name fíeld, enter make
own
names
up a f ew imaginary
customers'
addresses
data,
your
of
for
customers. We'll need f ive or six customer rec: cu elS Íiot' later when we create
and use the sales—order and payment-entry
screensThe same
PHONLIST
ESC Menu
Again, play with the entries
keys. A few things to try:
and
cíet
t-he
feel
of-"
data entry
and
the control
cursor automatically ícjves to the next- field when you
-- The
window of the current field.
Ireturn] and a (NEXT FIELD)
fill the
í:
A
The
SENSIBLE
SOLUTION
tin
Tutot"íal
3
.
7
[DOWN
Use
the execution control
to experiment with your
menu
No:
Name:
Address:
City:
[
1111]
Date
State:
Sales
Feb
Mar
Apr
The
SENSIBLE
WA
by
jun
jly
Aug
SOLUTION
tin
zip:
[98107J
Month
May
jan
jump
12/16/84
Sales year-to-date:
Outstanding Receivables:
Fínd
Started:
]
[MARQUARDSON, JOHN
123 NORTH
STREET
SEATTLE
End
Begin
Clear fíe1ds
program
MASTER FILE
CUSTOMER
Account
CUSTFILE
Next
screen
Save record
Previous
Quít screen
Trace
Sep
Oct
Nov
Dec
Remove
record
?(N1p)
Tutorial
3.8
--
ARROW]
ARROW]
will
moves
to the next field
one "window".
move you
you back
(PREVIOUS
window.
[UP
FIELD)
(CLEARFIELD) [^U] eraseñ" the data in the field where your cursor is
-- located.
SCREEN)
[ESC] [C] (CLEAR
erases the entire entry and
the
the
cursor in
repositions
first field at the top of the screen.
Remember,
you must clear the screen before enterinq a new record.
Changingthe field values on an existing record will overwrite the old
and
data
--
replace
it
with the
new.
["I]
(DELETE CHARACTER) ["D]
and (INSERT CHARACTER)
along with (CURSOR
LEFT)
[LEFT
[RIGHT
ARROW] are
ARROW] and (CURSOR RIGHT)
Thej,' work on both cí!d,da.t.a
and new
correcting typing mistakes.
useful in
field
entries.
[ESC]
[ESC]
[FIND], [ESC] {B] (fínd BEGINningrecord),
[E]
-- Searches
i.n
indexingan
(findENDíngrecord)
not
is
your
cursor
will
fail
{ESC]
key field.
[Fj begins itsifscan with all the data shown in the
the data was already there before you began
field, even
if part of[CLEAR
Remember
("U)
typing.
FIELD)
to
before searching.
(fínd NEXT record) and [ESC]
-- to[ESC]know[N] what
the "current index-key"
[ESC]
{B], or
[ESC)
[E]
[ESC)
has
Isl (SAVE record) and
-- from anywhere
on a screen,
typed in.
of course,
exists "on the display"
not
been
[p]
is.
done
Ir)
(find
They
first.
PREVIOUS
fail if
record)
need
a [ESC]
[F].
[ESC]
(REMOVE record)
both work
even
have not been
some of the
because
removing a new record
only
and has not yet been saved
disk
the
to
if
fields
will
will fail
itfile.
When you have finished
Don't forg'et t.o save each individual record.
[q] (QUIT),
entering and examining five or six customer records press [ESC]
and you
ínain menu.
the
return
to
will
Now that you have
SENSIBLE SOLUTION,
The
SENSIBLE
painted a screen and entered data into fields created by
let's look at our program and see how we can enhance it.
SOLUTION
trn
Tut.orial
3.9
¢UCUSTFTLE.SRR
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
The
source
file listing
Page
No:
0001
remark
trap
trap
mount
goto SAVE.GRP
goto DELT.GRP
screen CUSTFILE
SAVE
DELETE
CUS.CUSCODE
CUS.DATE
CUS.NAME
CUS.ADDR
CUS.CITY
CUS.STATE
CUS.ZIP
CUS.RECEIVE
CUS.SALES
CUS.MONTHO1
CUS.MONTH05
CUS.MONTH09
CUS.MONTH02
CUS.MONTH06
CUS.MONTH1O
CUS.MONTH03
CUS.MONTH07
CUS.MONTH11
CUS.MONTH04
CUS.MONTH08
CUS.MONTH12
START
enter
enter
enter
enter
enter
enter
enter
enter
enter
enter
enter
enter
enter
enter
enter
enter
enter
enter
enter
enter
enter
SAVE.GRP
save
DELT.GRP
goto
delete rec
goto START
rec in
START
SENSIBLE
SOLUTION
tin
file CUSTFILE confirm /
in file CUSTFILE confirm
clear buffer
Tutorial
4.0
Edíting
Select "Main
Menu
4)
LESSON 4
a SENSIBLE SOLUTION
Code
Source
Editor."
The
will then display:
screen
+
+
I
Program
Load
+
command-file source
The
SENSIBLE
The
You
want
The
computer'
SOLUTION
cursor will
to load
for
Comnand
I
edíting
Quit
+
Editor
Source
be positioned
over
(CUSTFILE)
a program
V2.OC
"Load
command-file
so press fRETURN].
source
for editíng".
will ask:
fíle: ?: ???????7
The
first "?" followed by ": " is provided for you to specify the drive
location of your .SRR file (the CUSTFILE source code file). 'In this case
CUSTFILE.SRR
is located on the same drive a"; the one you are presently
working on, so press your [SPACE BARJ and enter the name of your source file
The Source Code Editor
CUSTFILE.
There is no need to press [RETURN].
When you enter an eight
accepts file names up to eight characters
long.
You
character
name the Editor
automatically
loads the specified file.
[RETURN]
must press file
does
name
space
only
the
provided
not
file
if your
characters
is shorter than eight
you already did
in length).
(if it [RETURN]
If[RETURN]
and
be
Enter
name
of the source
fill
press
you're ready to
The
computer
the file name
ask:
an error
go.
message
will
display the CUSTFILE
will
was misspelled or you are
New
File?
displayed--press
source
opening
Yes
again
screen. If
file ontheyourcomputer
will
file
code
a riew
No
If you wished to open a new file you would respond with [y]. The computer
then would give you a blank space to write source code. If you don't want
(maybe
the file name) respond with {N].
to open a new
you misspelled
and you can
This will bringfile
you back to "Load"
try again.
The
SENSIBLE
SOLUTIONtíü
Tutorial
4.1
@:
CUSTFILE.SRR
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
The
source
file listing
Page
No:
0001
remark
trap
trap
mount
goto SAVE.GRP
goto DELT.GRP
screen CUSTFILE
SAVE
DELETE
START
enter
enter
enter
enter
enter
enter
enter
enter
enter
enter
enter
enter
enter
enter
enter
enter
enter
enter
enter
enter
enter
SAVE.GRP
save
DELT.GRP
goto
delete rec in
goto START
CUS.CUSCODE
CUS.DATE
CUS.NAME
CUS.ADDR
CUS.CITY
CUS.STATE
CUS.ZIP
CUS.RECEIVE
CUS.SALES
CUS.MONTHO1
CUS.MONTH05
CUS.MONTH09
CUS.MONTH02
CUS.MONTH06
CUS.MONTH1O
CUS.MONTH03
CUS.MONTH07
CUS.MONTH11
CUS.MONTH04
CUS.MONTH08
CUS.MONTH12
rec in
START
SENSIBLE
SOLUTION
tm
fíle
CUSTFILE
file
CUSTFILE
confirm
/
clear buffer
confirm
Tutorial
4.2
computer will locate CUSTFILE.SRR and bring
into inerriory for
You will notice that the computer generated source
examination and editing.
code
file reads very much like English.
it
The
Source Code Editor offers 15 different menu options
modifying a program. The editing options are displayed on
The
Change
@
line
prevíous page
Transf er block
: CUSTFILE .SRR
Let'
s
look at
[q]
End source
Begin source
Delete line
Insert Iíne
Read
Mark
page
Write
block
block
block
Next
Hard Copy
Fínd Line
Quilt
delete block
On Line: 0001
Tot limes: 0001
Insert of f
each
=
menu
selection:
Quit the screen you are cur'ten'-íy viewinq and return to
You have the
the previous screen used by the 3ysteIn.
option to leave the Source Code editor completely, or to
leave the current file and begin edit work on a new
program
[p]
=
.
selection you may scroll the source code
the screen you will see the t'op line
lines.
to the middle of the screen, revealing the 8 lines
carne before
right angle bracket character
it.new Aposition
mark
the
of this line.
will
Using this
8
On
down
move
that
">"
[N]
=
Using this selection you inay scroLI- the source code up 8
On
lines.
the screen you will see the bottom line move
to the middle of the screen, revealing the 8 lines that
A right angle bracket
character
">" will
follow
mark the it.
new position
of this line.
[B]
=
This selection finds the beginning command
sets the line prompt ">" at the
file.
in the source
first line of
This select-ion finds the eríííÁícf c:omniand
file. -rt sets the line pr("}í[Ll;t. ">" at the
in the source
last li.ne of
code
[E]
=
code
[I)
=
.
It
.
This selection will insert a curnínand line following
the
command
marked by the line prompt ">". The COMMANDS
Note
menu is displayed
you select
insert mode.
that
the insert will foj,low the line being pointed at, not
precede i.t.
if
The
for entering or
like this:
a menu
SENSIBLE
SOLUTIONtíñ
Tutorial
4.
3
print[H] out like this
You may obtain
a
[ESC]
menu selection
@:
CUSTFILE.SRR
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
The
source
one
by
the Source
using
Code
(Hard copy).
file listing
Page
No:
Editor
0001
remark
SAVE goto SAVE.GRP
DELETE goto DELT.GRP
mount
screen CUSTFILE
enter CUS.CUSCODE
enter CUS.DATE
enter CUS.NAME
enter CUS.ADDR
enter CUS.CITY
enter CUS.STATE
enter CUS.ZIP
enter CUS.RECEIVE
enter CUS.SALES
enter CUS.MONTHO1
enter CUS.MONTH05
enter CUS.MONTH09
enter CUS.MONTH02
enter CUS.MONTH06
enter CUS.MONTH1O
enter CUS.MONTH03
enter CUS.MONTH07
enter CUS.MONTH11
enter CUS.MONTH04
enter CUS.MONTH08
enter CUS.MONTH12
CUSTFILE
confirm
save rec in
goto START
CUSTFILE
confirm
delete rec in
goto START
trap
trap
START
SAVE.GRP
DELT.GRP
SENSIBLE
file
file
SOLUTION
tm
/
clear buffer
Tutorial
4.4
[D]
[C]
=
=
This seLecti.on
position marked
allows
by the
you
line
to delete the
prompt ">".
line at the
This selection will change the command
at the line
marked by the line prompt ">". The COMMANDS menu is
mode.
displayed
you select change
if
[M]
=
Using this selection you may mark the beginning or the
end of a
list of command lines in your progtam. Having
thus defined a block of text, you may perform file/block
editing operations (e.g.,
deleting a block, t.ransferring
a block to a new position
in the L'r'jgraIn).
[W]
=
A
[R]
=
a
[T]
=
Zir,es in your program is
marked block of command
Thí.s act.-ion
to a disk file.
writtenmarks.
will not clear your
block
block of command
holding file will
you are editing.
line marked by the
this selection to transfer a marked block of command
The
lines to a new position within your program.
transferred block will follow the line marked by the
">". After use, the block marks are deleted
line prompthave
and
be
Use
would
again .
[K]
=
Use
lines
[H]
=
Use
file
[F]
=
lines which you have sent to a disk
(inserted) into the program
inserted block will follow the
line prompt ">".
be "read"
The
to
reset
in order
this selection
to delete
from your program.
selection
this
(.SRR).
to
print
a marked
a
This selection
the block
block of
command
code
allows you to search your source file for
specific label, field name, or line number. The
search for a line proceeds only from the position in the
You can not
program at which you issue t-his c'ornmand.
The last criteria
search backwards
through a prugram
that you specified is stored, allowing you to repeat
your search rapidly.
SENSIBLE
move
listing of the source
a
The
to
SOLUTIONtm
Tutori.al
4
.5
Line
numbers
CUSTFILE.SRR
#
LINE
0001
0002
0003
0004
0005
0006
0007
do
not display
source
The
they only
appear
on
hard
copy
COMMAND
LABEL
remark
trap
trap
mount
enter
enter
enter
enter
enter
enter
enter
enter
enter
enter
enter
enter
enter
enter
enter
enter
enter
enter
enter
enter
enter
START
SOLUTION
CUS.CUSCODE
CUS.DATE
CUS.NAME
CUS.ADDR
CUS.CITY
CUS.STATE
CUS.ZIP
CUS.RECEIVE
CUS.SALES
CUS.MONTHO1
CUS.MONTH05
CUS.MONTH09
CUS.MONTH02
CUS.MONTH06
CUS.MONTH1O
CUS.MONTH03
CUS.MONTH07
CUS.MONTH11
CUS.MONTH04
CUS.MONTH08
CUS.MONTH12
save
DELT.GRP
SENSIBLE
goto SAVE.GRP
goto DELT.GRP
screen CUSTFILE
SAVE
DELETE
rec in file CUSTFILE confirm / clear buffer
goto START
delete rec in file CUSTFILE confirm
goto START
SAVE.GRP
OC)27
0028
0029
the terminal;
file listing:
OC)08
0009
ODIO
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
on
tm
Tutorial
4.6
--
When
you
[ESC]
select Insert
and
appropriate keys,
be displayed:
Change
[I] or[RETURN],
[C]
[ESC]
then pressing
triode
the fol.lowino
by pressing
the
COMMAND options
will
Enter
Find
=
If
Print
Go
Mount Save
Trap Execute
!
rec Delete rec Clear
Lock Unlock
remark
buffer
Each
of the options (activated by pressing the bold print Capital character,
Each
[RETURN]
is a command.
or highlighting your choice and pressing
command
has a subset of functions.
be asked
each
You
questions
about
will
how
the
of these functions. Your an=wer will determine the specifics of
command
is to perform during program execution.
The
SOLUTION
SENSIBLE
listino
is quite
different from
a la-nguaqe
like
by
BASIC,
and
the
different,
it
The lime number is
an
you
indicator
to let
just
tell the Source Code Editor
which command line you want to work on.
Í.ine rnirnbers are not referenced
Source Code Editor provides a status line
within the program itself. The
.SRR
you
name
the
the
of
telling
file that is "opened", the line you can
work
with -- "On line: ####", and the total number of lines in the program
lines: ####".
the terminal,
next to
line benumbers do not display
-- "Tot
[H]
[ESC]
(Use
each
command
On
they
hará
out.
copy
line.
printed
will
(Hará
copy)
such
to obtain
listing.)
The label indicates
which line will be the "tarCet" of a control transfer.
and
commands
that transfer the control of the
for instance, are
For example:
program
source
is
too.
Let's
look at
piece
piece.
On
a
GOTO
GOSUB,
to
a
specified
label.
trap
SENSIBLE
will
SOLUTION
one
require
DELETE
goto
DELT.GRP
programs consist of collections
or more parameters.
of
commands.
Each
command
The source
a
logic within
file listing is used to examinelooksthe flowa ofSENSIBLE
SOLUTION
You do not edit a text
program.
like
file thatan executable
and then compile
Instead,
program.
that
into
text
listing
using the Source Code Edítor you specify the line you want to create and the
editor will prompt you for the command and parameters automatically.
is
and important
an essential
difference between
the SENSIBLE SOLUTION
and language's
BASIC or CCBOL.
Because
the editor prompts you
the
command
The
and
necessary parameters, syntax errors can never happen.
The
a reference
hasn't been defined.
to a
SENSIBLE SOLUTION executive controls
details of data representation.
This
editor
The
like
will
SENSIBLE
all
reject
SOLUTIONtm
for
firld that
all
Tutorial
4.7
the program using the
scroll through
and
You can
End,
prevíous
@:
CUSTFILE.SRR
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
(1015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
The
Next
page,
source
[ARROW)
keys,
Find
line,
page.
file listing
page
No:
0001
remark
SAVE goto SAVE.GRP
DELETE goto DELT.GRP
mount
screen CUSTFILE
enter CUS.CUSCODE
enter CUS.DATE
enter CUS.NAME
enter CUS.ADDR
enter CUS.CITY
enter CUS.STATE
enter CUS.ZIP
enter CUS.RECEIVE
enter CUS.SALES
enter CUS.MONTHO1
enter CUS.MONTH05
enter CUS.MONTH09
enter CUS.MONTH02
enter CUS.MONTH06
enter CUS.MONTH1O
enter CUS.MONTH03
enter CUS.MONTH07
enter CUS.MONTH11
enter CUS.MONTH04
enter CUS.MONTH08
enter CUS.MONTH12
CUSTFILE
confirm
save rec in
goto START
CUSTFILE
confirm
delete rec in
goto START
trap
trap
START
SAVE.GRP
DELT.GRP
SENSIBLE
file
file
SOLUTION
tm
/
c--=ar
buffer
Tutorial
4.8
Beg,
SOLUTION
SENSIBLE
these details,
letting the computer deal with
make
debug,
so
hard
of
the errors that
to
while
programs
eliminates
leaving the freedom
to design program logic in the hands of the programmer.
have been suspicious
of this approach
Designers using traditional lanquages
complex
Once
on the first
flawlessly
performs
a
they
program
until
try it.
back!
By
90@
attempt,
they never want to
SENSIBLE
SOLUTION
programs
SENSIBLE SOLUTION command
2000
long!
Most
specif
go
a number of lines containing a
can
appropriate parameters. Programs
of the programs though, are quite short.
lines
is only 29 linee
the automatically-generated
program CUSTFILE
of
consist
and
ic
be up to
For instance,
long.
does.
and examine
CUSTFILE
what
listing step-by-step
commands
and parameters it
this entire program
labels,
-- was
-when
we "painted"
our screen using "Main Menu 3)
automatically created
Menu 9)
and
Let's
go
Remember,
through the
Screen Painting"
Generator. "
then generated
a
program using "Main
Program
program very easily. The [UP ARROW]
through
your program one line at a time
willFind Line option allows
The
you to look for a specific
in either direction.
command,
label, or line number.
mg and End move the line prompt ">" to the
very beginning or ending of the command file.
You
and
Líne
through your
scroll
ARROW] keys
can
[DOWN
2
trap
SAVE
CUSTFILE
move you
goto
is a very important one in the
immediately when a Trap is set up.
tells the computer where to transfer control when
condition or event occurs durinq the execution of the
The
concept of
SENSIBLE SOLUTION.
Instead, the command
a
setting
particular
program.
SAVE.GRP
up
Nothing
a Trap
happens
In thís example, whenever SENSIBLE SOLUTION senses that the program
operator has pressed the (Save record) [ESC] [S] keys it. will exit from
the command it's executing,
usually an Enter coinman.d, and search for
continues
the specified line label. Once
finds that labeZ,
proorain execution from that point. In this case, program control is
diverted to SAVE.GRP (a set of commands tna't saves the current record,
clears the screen and tran'Mers control to START to allow a new record
entry) .
it
it
Line
3
trap
DELETE
goto
DELT .GRP
This command is executed whenever
the (Remove
by
the
the
entered
at
program
is
terminal
The
SENSIBLE
SOLUTIONtm
record)
operator.
[ESC]
Tutoríal
[R]
It
4
option
transfers
.9
the program using the
scroll through
and
You can
End,
Prevíous
@:
CUSTFILE.SRR
0001
0002
0003
0004
0005
The
source
file
[ARROW)
keys,
Page
0001
Find
lime,
page.
list..ing
No:
remark
SAVE goto SAVE.GRP
DELETE goto DELT.GRP
mount
screen CUSTFILE
CUS.CUSCODE
enter
enter CUS.DATE
enter CUS.NAME
enter CUS.ADDR
enter CUS.CITY
enter CUS.STATE
enter CUS.ZIP
enter CUS.RECEIVE
enter CUS.SALES
enter CUS.MONTHO1
enter CUS.MONTH05
enter CUS.MONTH09
enter CUS.MONTH02
enter CUS.MONTH06
enter CUS.MONTH1O
enter CUS.MONTH03
enter CUS.MONTH07
enter CUS.MONTH11
enter CUS.MONTH04
enter CUS.MONTH08
enter CUS.MONTH12
CUSTFILE
confirm
save rec in
goto START
CUSTFILE
confirm
delete rec in
START
goto
trap
trap
START
OOC)6
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
Next
page,
SAVE.GRP
DELT.GRP
SENSIBLE
file
file
SOLUTION
tin
/
cLear
buffer
Tutorial
4.10
Beg,
Líne
line labeled
program control
to the
command
4
screen
CUSTFILE
mount
DELT.GRP.
This command diSplayr the screen CUSTFILE at the terminal,
clears
the field windows to blanks or zeroes, and prepares the computer
enter or display data.
Lime
5
enter
START
all
to
CUS.CUSCODE
Beginning at the label
we reach
START,
a
series of Enter
commands,
each
allowing entry to, or editing of a particular field.
Enter will
display the value of the field within the active record. If there is
no active record,
the field with blanks or a zero.
Enter will
When an Enter command
is executed, the flow of program control "drops
through" to the next command unless a control key is used. If you
(PREVIOUS
[UP ARROW] SENÉIBLE
FIELD)
fill
press
command
you
Line 6-25
are in
enter
and
moves
you
SOLUTION"exits the Enter
to the preceding Enter command.
FIELDNAME
Allows the user to enter the necessary information
as
described
above.
Finally,
there are two groups of commands that save the record and clear the
screen for a new entry (Save Rec) or delete an existing record (Delete rec).
be reached by triggering the Trap
Notice that the "delete" group can only
on Delete with an [ESC)
Ir) (Remove record).
Líne
26
SAVE.GRP
This
save
rec
in
file
CUSTFILE
confírm
command
saves
the current record to
answered
to the Save question.
is
continues with the next line.
if
Lime
This
Líne
goto
command
28 DELT.GRP
This
line.
The
and clears the buffer
Otherwise,
the program
START
sends
SENSIBLE
program control
delete rec
command
Remove
clear buffer
memory
Y
27
/
in
file
to the
CUSTFILE
command
START.
confirm
deletes the reccnd frorrt memory
question.
Otherwise, proCram control
SOLUTIONtm.
line labeled
if
falls
Y
is answered to the
through to the next
Tutorial
4.11
CUSTFILE.SRR
after deleting
CUSTFILE.SRR
source
0001
0002
0003
0004
0005
0006
0007
0008
The
file listing
12
through
25
Page
--
No:
0001
remark
SAVE goto SAVE.GRP
DELETE goto DELT.GRP
mount
screen CUSTFILE
enter CUS.CUSCODE
enter CUS.DATE
enter CUS.NAME
enter CUS.ADDR
enter CUS.CITY
enter CUS.STATE
enter CUS.ZIP
CUSTFILE
confirm
save rec in
goto START
confi-rrri
CUSTFILE
delete rec in
goto START
trap
trap
START
OCl09
0010
0011
0012
0013
0014
0015
lines
SAVE.GRP
DELT.GRP
SENSIBLE
file
file
SOLUTION
tin
/
clear buffer
Tutorial
4.12
Line
29
goto
command
This
START
program control
sends
to the
command
line labeled
START.
final comments on the program: START, SAVE.GRP and DELT.GRP are labels
that the Program Generator creates automatically.
For simple applications,
easiest
generally
find
create
to
programs directly from screens.
you'll
You can
then edit or itcombine the resulting programs to enhance their
Some
operation.
You
need
make
to
some
modifications
CUSTFILE.SRR.
to
through your CUSTFILE program using [UP ARROW] and
scroll
The Fínd line option allows you to look for a specific
label, or line number. Beg and End niove the cursor to the very
beginning or ending of the command file.
Remember,
you
[DOWN ARROW]
command,
can
keys.
that we wish to change in CUSTFILE.SRR is lines 12 through
create two separate programs (CUSTPYMT and CUSTORD) to gather
He
aná relate
information
to the customer master file (CUSTFILE).
this
don't want to be able to enter this data in the customer master file.
Of course you may
Therefore, delete lines CUS.RECEIVE throucsh CUS.MONTH12.
delete each line, one at a time, using [D] (Delete Line), but try usingthe
[M] (Mark block)
and [K] (delete bIocK) function to remüve lines 12 through
These
25.
functions will speed up your work corr'iderably.
The
25.
thing
first
want to
we
it
the program to report any duplicates found in the data and display a
To do this we must
on the screen.
insert a command to check to see
the data already exists. Go into the insert mode by pressing
[I] and
notice on the status line that
now display "insert on".
want
message
We
if
it
There is a line of
screen. This field
label this
*'s displayed
would be
Press [RETURN]
15
window
command.
displayed.
Position
.your
íf
Follow
line
duplicate
prompt
">" at
line
key using fíe1d
this procedure:
of the
left hand corner
you wished to
to enter a label
options is
the menu of command
in the upper
used
and
5
and
insert
CUS.CUSCODE
if
this
got-o
command:
START
[I] for
for
Press
IF.
[D]
Press
Duplicate key check
Type CUS.CUSCODE and press [RETURN].
Type START and press [RETURN].
[RETURN] to save the new
Press
line.
The
SENSIBLE
SOLUTIONtm
Tutorial
4.13
The
completely modified
CUSTFILE.SRR
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
The
source
CUSTFILE
program
file listing
-Page
No:
0001
remark
SAVE goto SAVE.GRP
DELETE goto DELT.GRP
mount
screen CUSTFILE
enter CUS.CUSCODE
CUS.CUSCODE
duplicate key using
enter CUS.DATE
enter CUS.NAME
enter CUS.ADDR
enter CUS.CITY
enter CUS.STATE
enter CUS.ZIP
CUSTFILE
confirm
clear
save rec in
START
goto
CUSTFILE
confirín
delete rec in
goto START
trap
trap
START
field
if
SAVE.GRP
DELT.GRP
SENSIBLE
file
file
SOLUTION
tm
/
goto
START
buffer
'í'utorial
4.14
This is the only
Editor menu.
We
coinniand
wish to i.nsert
we
CUSTFILE.SRR,
are through modifying
"Yes"
IQ) to quit and respond
to
Press
so
exit
so
[Escf
Code
to the Source
let's return to the Main
Menu.
completely.
changes
in our program using the Source Code Editor, each change
made.
code
was
(.SRR) was updated on the disk as
the source
we
the new commands
However, unless we re—compíle our CUSTFILE.RUN
have created
not be executed when we run the CUSTFILE program.
As
made
we
in
file
will
Select
On
"Main
6)
Menu
your screen
[SPACE
your
Your
screen
Compile
Code."
Source
see:
Enter the
Press
it
file,
name
BAR]
of the fí1e to
and
type
be
compiled:
7:
********
CUSTFILE.
will then display:
Checkíng
for target labels
for goto/Gosúbs
Checkíng for Screen/Reporter formats
command
Checkíng
Wrítíng
out compííed
file
Checkíng
When
the compilation
is complete,
The
SENSIBLE
SOLUTION
and translates
program. The compiler
(.RUN
which
file)
file
it
file)
Líne
you
???
will
be
returned to the
Main
Menu.
Language Compiler reads the source code file (.SRR
into a code which the computer can read to execute a
translates the source code file and creates a command
will always be used to execute the CUSTFILE program.
and execute
CUSTFILE
go back
program is compiled
SOLUTICN"
SENSIBLE
Menu
I) Execute a
program and
You
CUSTFILE
discover
the new
as the .RUN
to execute.
refuses to allow entry of a duplicate account number;
program obstinately
allow
however,
nor may you enter data into the monthly sales
you to search
an existing
account number.
Now
it!
let's
that the revised
Select"Main
we're readv
programs.
The
SENSIBLE
to create
SOL[jTIONtrrl
the companion
sales-order
specify
it will
fields;
for
Now
that
will
file
and
Tutorial
payment-entry
4.15
Paint
this
CUSTPYMT
screen
--
T
CUSTOMER
Account
No:
Customer
The
SENSIBLE
]
Date
paid:
Amount:
Name:
Outstanding
Sales
[
PAYMENTS ENTRY
Receivables:
year-to-date:
SOLUTION
tin
Tutorial
5.0
\jc:
design
system.
is
owe"
you money.
'll
It
how
You know
Lcñ-'s bcqin by
a
screen that
LESSON 5
Payment
Customer
The
Creating
the customer payment
used to record receipt
to use "Main Menu
creatinq the (.SCC)
looks like the ono
Program
screen
cntry
payment
of
as the second part of
on account by customers
Scrcen Painti.ng" to define a screon.
screen f lle name, CUSTPYMT, and paintinq
shown on the' opposi te pac;c.
positions
cntcr thc follow incj fi.eld paraneter,c in the ru)íjropriate
[ESC]
(Use
{Aj Add fld.)
screcn.
Computer
Accourit
no:
:
Amount
:
Field
File
Ficjd
:
Rcccivablcs:
Sales:
of decimal places
You
answer:
PYMT
.CUSCODE
N
8
O
:
Y
. DATE
(CIJSTPYMT)
PYMT
D
type:
Kcy:
N
Field name:
File name:
Field type:
Size:
Nurnbcr of dccimal places
PYMT
Name
:
Name
:
Name
:
on
CUSTL'YMT
name:
name:
Key:
Name
:
Field name:
FiLe namc:
Fi.cld type:
Size:
Number
Key:
ñatc paid:
asks
.
PAYMENT
(CUSTPYMT)
N
"
:
10
2
N
CU S
CUS
CUS
.
.
.
NAME
RECEIVE
SALES
Notice that the SENSIBLE SOT,UTJON automatically used the already-defined
types and formats for CUS.N1\ME, CUS.RECEIVE and CUS.SALES.
The
SENSIBLE
SOLUTION
tn-t
who
3)
Now
Label
our
Tutorial
5.
1
t:
hc
Using the
Source
Code
Editor
--
Change
Begín
End source
Line
Delete Line
Insert Line
source
Read block
Mark block
Previous page
Next page
Wríte block
Hard Copy
TKwisfer block
delete bIocK
Fínd line
Quit
@: CUSTPYMT.SRR
On
line: 0001
Tot lines: 0001 Insert off
remark
>
The
SENSIBLE
SOLUTION
tin
Tutorial
5.2
When your
SOLUTION
far,
So
screen
will
we
save
have
Screen Painting
Data Dictionary.
"Main
Menu
press
[5J
Type
.
5)
is correct,
painted
Editor.
Now
Initialize
The
[ESC]
the screen
definition.
a screen
Our
and
and
file
files
Data File."
the data
a
(Q),
and save the screen.
The
[ESC]
to the Main Menu.
SENSIBLE
using the
files and fields
stored
definitions
are
field
in the
must be "initialized."
will use
defined
We
wil appear:
Enter the file name: ********
following
display
CUSTPYMT.
The
drive location and file name will be displayed i-n the upper right hand
and
Two
corner of the screen as the program runs.
files CUSTPYMT.MS
CIJSTI'YMT.KS
The .MS data
be used to
are created at this time.
fileThewill
.KS
store all data records entered to the fi.le CI.JSTPYMT.
file will
store keys which will be used by SENSIBLE SOLUTION to locate the desired
record in the .MS file.
When
At
the
CUSTPYMT
this time press
initialized, you will again
Enter the file name: *******
file
hi:
{ESC]
v" been
and
return
to the
Main
see:
Menu.
We
are going to create a customer payment program to write and store a
Our payment
record of each custorner payment
received.
records will be keyed
by the customer
Each
code
time we write a new payment
(Account No.).
record, we want the prograrn to look up the master customer record by the
and fetch the current
same code,
information
for the customer to display on
screen .
w
i-ll create the CUSTPYMT.SRR file using the Source Code Editor.
Considering the changes that you had to make in CUSTFILE, you can see why
is common practice to create all source code with the Editor instead of
relying Screen Painting and the Program
Generator.
We
it
Select "61ain Menu 4) Source Code Editor" and load CUSTPYMT.
Answer "Y" to
thc question "New file?" The computer will present you with a blank working
area. Between the menu and the working area is the status line. Read the
Ii.ne to find that (IJCUSTPYMT.SRR is opened, we are presently on line one,
total lines equal one, and insert is off.
The
SENSIBLE
SOLUTION
tm
Tutorial
5
.
3
Creating
the
CUSTPYMT.SRR
()00
0008
0009
0010
0011
0012
0013
(l014
()0
---
file listing
AND
FILES:
CUSTFILE
CUSTPYMT
SAVE.GRP
goto
trap
trap DELETE goto DELT.GRP
mount
screen CUSTPYMT
enter PYMT .CUSCODE
PYMT.CUSCODE related
CUS.CUSCODE
rec usi.ng
Üíl úrror goto START
enter PYMT .DATE
enter PYMT .PAYMENT
)
(
)
CUS
= (CUS . RECEIVE - PYMT . PAYMENT
. RECEIVE
CUSTPYMT confirm
save rec in
clear butfei:
CUSTFILE
save rec in
no confirm
clear buffet:
goto START
CUSTPYMT confirm
delete rec
goto START
OPEN
SAVE
START
field
find
SAVE.GRP
L")EL!l'.GR.P
15
The
source
remark
remark
1
OÜ()2
OÜlj3
0004
(JO 05
0006
00 0"7
CUSTPYMT prograir,
SENSIBLE
file
file
field
/
/
in fi.le
SOLUTION
t.íri
Tut,orial
';
.4
the insert on
continue so until
Turn
by
you
pressing [I].
return to this
You are now in
menu and change
insert mode and will
a different mode.
displayed in the upper
the
to
long label prompt (10 *'s) will be
ten character
hand
that the command you are
of your screen. If you anticipate
corner
left
branched
be
about to write will
to from other places in your program, this
the
the
provided
enter
to
"target" label to which control rnay be
space
is
We
do not want a label on this line so press [RETURN].
diverted.
A
SOLUTION
automatically opens files as they are
information purpcwes,
at the beginning of your source
idea to note the files used by your prc'gram
SENSIBLE
for
good
[I]
pres":
OPEN
The
CUSTFILE
will then ask:
computer
[y] or
Press
The
FILES:
line that
However,
fi-le
it's
a
remark
for
You will be presented with a row of
to enter whatever remark you wish.
executing programs.
Type
needed.
code
65
The
[RETURN]
CUSTPYMT
AND
this
Save
This space is provided for you
remark will have no effect while
*'s.
new
line?
Yes
No
[RETURN]
just wrote
you
remark
OPEN
appears
in your
FILES:
CUSTFILE
program
AND
as:
CUSTPYMT
next thing we want to do is to set "traps" for certain conditions (Save
record and Remove record).
If at any point during execution of this program
the program operator presses [ESC) [S] or [ESC] {R] to save or remove a
record, we want program control to jump to another portion of the program
where
the save and delete record commands will be executed.
The
Our
next
command
line will look like this:
trap
SAVE
let's create it.
Again you will be presented with
goto
SAVE.GRP
Now
The
a
label
[RETURN]
no
Press
[T]
for trap
SOLUTION
tin
area.
label
Press
SENSIBLE
input
Tutorial 5.5
Creating
the
CUSTPYMT.SRR
0001
0002
00 03
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
source
--
file listing
remark
START
-
SAVE.GRP
IJELT.GRP
1)() 15
The
CUSTPYMT program
SENSIBLE
CUSTPYÉ4T
AND
CUSTFILE
reinark OPEN FILES:
trap SAVE goto SAVE.GRP
trap DELETE goto DELT.GRP
mount
screen CUSTPYMT
enter PYMT .CUSCODE
find rec using field PYMT.CUSCODE related
enter
enter
PYMT
or:
field
error
CUS.CUSCODE
goto START
.DATE
PYMT
.PAYMENT
)
CUS
= ( CUS . RECEIVE - ( PYMT .PAYMEN'Í' ) ,
. RECEIVE
CUSTPYMT confirm
save rec in
clear bufEer
CUSTFILE
save rec in
clear buffer
no confirm
goto START
delete rec
goto START
SOLUTION
tin
file
file
in file
/
CTJSTPYMT
/
confirm
Tutotial
5
.()
Press
[S]
for
Save
Press
[g]
for
Goto
Type
[RETURN]
Press
Now on
[RETURN]
SAVE.GRP
sub
as
the label
to
to
save
the
DELETE
goto
Press
[RETURN]
no
label
Press
[T]
for
Trap
Press
[D]
Press
[g]
for Delete
for Goto or
Type
[RETURN]
next thing
earlier.
[RETURN]
DELT.GRP
Press
So we
jump
line
as
the label
to
save
the
DELT.GRP
sub
to
jump
mount
screen
[RETURN]
no
Press
[M]
for
Press
[S]
Press
[RETURN]
Mount
for the screen name
to save the line
want to mark the actual beginning of the program data
Our command
allowing data entry.
line will look like this:
START
SENSIBLE
SOLUTION
painted
CUSTPYMT
We
The
we
for screen format
[RETURN]
[CUSTPYMT]
the screen that
label
Press
Type
to
line
the program should do is display
will write the command:
or
to
line:
to the next
trap
The
or
tm
enter
input
and
start
PYMT.CUSCODE
Tutorial
5.7
Creating
the
CUSTPYMT.SRR
0001
0002
0003
0004
0005
0006
0007
CUSTPYMT program
source
--
file listing
remark
remark
OPEN
AND
FILES:
CUSTFILE
CUSTPYMT
SAVE goto SAVE.GRP
DELETE goto DELT.GRP
mount
screen CUSTPYMT
enter PYMT .CUSCODE
PYMT.CUSCODE related
find rec using
trap
trap
START
field
OIl
0008
0009
00 1()
0011
00 12
0013
0014
0015
The
enter
enter
SAVE.GRP
DELT.GRP
SENSIBLE
PYMT
V
field
error
CUS.CUSCODE
goto START
.DATE
.PAYMENT
)
( CUS
( PYMT
)
PAYMENT
CUS
=
. RECEIVE
. RECEIVE
.
,
CUSTPYMT
save rec in
clear bufííer
confirm
CUSTFILE
save rec in
no confirm
clear buffer
got.o START
CIJSTPYMT confirm
delete rec in
goto START
PYMT
file
file
file
SOLUTION
trn
/
/
Tütorial
5
.8
This time we want tolabeZ the conunand
at the upper left corner of the screen.
Type
START
Press
[E]
Type
[RETURN]
corrunar,d
[RETURNJ
PYMT.CUSCODE
line using the label
(10
*'S)
line label
for enter
for field
name
Press
[RETURN]
no mask
Press
[RETURN]
Press
[RETURN]
for
for
no
on
help
Press
[RETURN]
for
no
on
up
Press
[RETURN]
to
The
field
no password
save
the
gosub
arrow goto
line
files
different information
two
are using in our program, CUSTFILE and CUSTPYMT, contain
but they are "related" by the account-number field.
Every master customer record will have a unique account number;
but there
be several
We
probably
payment
records
each
customer.
want
for
will
SENSIBLE SOLUTION to retrieve
the appropriate customer record and to display
and sales-year-to-date when we enter a new customer
name,
receivables,
payment
record.
we
To do
this, we have to find the "related" record.
locate the record "related" to PYMT.CUSCODE.
Our
command
We'll
insert
a command
line
will read:
fínd rec usíng fíe1d PYMT.CUSCODE
START
related fíeldCUS.CUSCODE
on
error got
Enter the following:
[RETURN]
no
[F]
for Find
for Related record
For related
field to use
for related fi.eíd to find
[R]
PYMT.CUSCODE
CUS.CUSCODE
The
SENSIBLE
to
[RETURN]
[RETURNJ
SOLUTION
trn
label
Tutorial
5.9
Creatíng
the
CUSTPYMT.SRR
0001
0002
0003
0004
0005
0006
0007
0003
0009
0010
0011
0012
0013
0014
0015
The
CUSTPYMT program
source
file listing
remark
remark
trap
trap
mount
START
--
OPEN
FILES:
CUSTFILE
AND
CUSTPYMT
goto SAVE.GRP
DELETE goto DELT.GRP
screen CUSTPYMT
SAVE
enter PYMT.CUSCODE
find rec using field
PYMT.CUSCODE
e
related
on
DELT.GRP
SENSIBLE
error
CUS.CUSCODE
goto START
PYMT.DATE
PYNIT.PAYMENT
CUS.RECEÍVE
= (CUS.RECEIVE)-(PYMT.PAYMENT)
,
CUSTPYMT confirm
save rec in
clear buffer
CUSTFILE
no confirm
save rec iri
clear buffer
goto START
CUSTPYMT confirm
delete rec in
START
goto
enter
enter
SAVE.GRP
field
file
file
file
SOLUTION
tm
/
/
Tutorial
5.10
START
[RETURN]
if
an
to
save
(e.g.,
can't
error occurs
field) go to this label
this new line
related
Leturn]
let's The
write two more "enter"
program.
first will say:
allowing data input to our
commands,
Now
enter
find'the
PYMT.DATE
Enter the following:
no
[E)
for enter
field name
for no mask
for no password
PYMT.DATE
[RETURN]
[RETURN]
[RETURN]
for
for
[RETURN}
[RETURN]
{RETURN]
The
label
[RETURN]
to
next "enter"
command
no on
help
no on
up
the
save
gosub
arrow goto
new
line
is:
enter
PYMT.PAYMENT
Enter the following:
no
[E]
for enter
field name
PYMT.PAYMENT
[RETURN)
[RETURN]
no mask
[RETURN]
for
for
{RETURN)
The
label
[RETURN]
SENSIBLE
SOLUTION
tin
no password
no
on
help
gosub
Tutorial
5.11
Creating
the
CUSTPYMT.SRR
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
The
CUSTPYMT proCrarrl
source
file listing
remark
remark
trap
trap
mount
START
--
OPEN
FILES:
CUSTFILE
AND
CUSTPYMT
goto SAVE.GRP
DELETE goto DELT.GRP
screen CUSTPYMT
SAVE
enter PYMT.CUSCODE
find rec using field
PYMT.CUSCODE
related
cu-t
enter
enter
SAVE.GRP
DELT.GRP
SENSIBLE
field
error
CUS.CUSCODE
goto START
PYMT.DATE
PYMT.PAYMENT
CUS.RECEIVE
= (CUS.RECEIVE)-(PYMT.PAYMENT)
,
sáve rec
CUSTPYMT confirm
clear bui"fet'
CUSTFILE
save rec in
no confirm
clear buffer
goto START
CUSTPYMT confirm
delete rec in
goto START
in
SOLUTION
tm
file
file
file
/
/
Tutorial
5.12
[RETURN]
for
Lreturn]
to
no
on up
save
the
arrow goto
line
new
want to reduce
receivables
in the CUSTFILE master-customer record by the
Our
amount of the payment.
program must compute the new amount of
outstanding
receivables.
We'll insert a command
the line
linepayment"
after and
minus
allowing payment
entry to calculate "receivables
store
the result back into "receivables."
We
The
command
line will read:
'
= (CUS.RECEIVE)
CUS.RECEIVE
(PYMT.PAYMENT)
-
Enter the following:
[RETURN]
no
[=}
to designate
CUS.RECEIVE
[RETURN]
The
some
the destination
placed
[E]
In the
current
label
sort of computation
field
where
the
SENSIBLE
SOLUTION, a calc expressíon calculates
a new value using the
values in fields, or constant numeric or constant alphanumeric data.
command
[=] takes this newly-calculated value and places
in the
Complex
SENSIBLE
it
algebraic
SOLUTION
Expressions
number
+
3.50,
may
and
expressions seldom occur in business applications
so the
a very simple systems for expression calculations.
uses
contain the current value of a field,
alphanumeric stri.ngs like ABCGOAT>
standard arithmetic
(addition)
The
operations
- (subtraction)
kind of data is indicated
(CUS.CUSCODE)
<4500.50>
[Account No.]
The
be
for Expression
field.
The
will
answer
SENSIBLE
SOLUTION
tin
(
)
<
>
[
]
*
by
marks
marks
marks
are indicated
(multiplication)
constants
like the
by:
/
the type of brackets
(division)
around
it:
field
name
a
a numeric constant
an alphanumeric
string constant
Tutorial
5.13
Creating
the
CUSTPYMT.SRR
0001
0002
0003
0004
000S
0006
0007
0008
0009
001O
0011
0012
0013
0014
0015
The
CUSTPYMT program
source
--
file listing
remark
remark
OPEN
FILES:
CUSTFILE AND CUSTPYMT
SAVE goto SAVE.GRP
DELETE goto DELT.GRP
mount
screen CUSTPYMT
enter PYMT.CUSCODE
PYMT.CUSCODE related
CUS.CUSCODE
find rec using
on error goto START
enter PYMT.DATE
enter PYMT.PAYMENT
CUS.RECEIVE
= (CUS.RECEIVE)-(PYMT.PAYMENT)
,
CUSTPYMT confirm
save rec in
clear buffer
CUSTFILE
clear buffer
save rec in
no confirm
goto START
CUSTPYMT confirm
delete rec in
goto START
trap
trap
START
field
field
SAVE.GRP
DELT.GRP
SENSIBLE
file
file
file
SOLUTION
tm
/
/
Tutorial
5.14
The appropriate
brackets
and
may be used as
SENSIBLE
SOLUTION,
that the characters "+", "-", "*"
Remember,
string or a field name.
with
may
"+"
stríng
entirely
legal!
also
indicate
it's
which we'll talk about later.
"/"
concatenatíon,
must be
part of a
used
so
Continue entering:
(CUS.RECEIVE)
-(PYMT.PAYMENT)
{RETURN]
[RETURN)
to
The command
that
Customer
Master
the calculated
the
save
expression
line
new
we have
by
in our
just created updates the "receivables" field
Of course,
subtracting the amount of the payment.
the customer file is not actually updated until the customer record is saved
We
back to the disk.
need two commands--a
"save" to the payments
file and a
"save"
to the Customer
Master File.
Our
next
command
File
is
:
save
rec ín
fije
CUSTPYMT
confírm/clear
buffer
Enter the following:
SAVE .GRP
[RETURN]
line label
command
[S]
for
Save
CUSTPYMT
file
[y]
so
[RETURN]
yes
[RETURN]
No
rec
name
the
must
save
be
confirmed before
to clear the buffer
happens
of the record
We
"goto" line label is needed.
want
the
continue
with
program
flow
to
next
command.
sequential
you wished program
command,
you
flow to branch to an alternative
would enter that comrúand line label.
If
[RETURN]
Our
second
"save"
save
The
SENSIBLE
this new line
looks like this
save
command
rec ín
SOLUTION
tin
:
fije
CUSTFILE
no
conf irm/clear
buffer
Tutorial
5.
15
Creating
the
CUSTPYMT.SRR
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
The
CUSTPYMT
source
--
file listing
remark
remark
AND
CUSTPYMT
CUSTFILE
FILES:
SAVE.GRP
DELETE Coto DELT.GRP
mount
screen CUSTPYMT
enter PYMT.CUSCODE
CUS.CUSCODE
PYMT.CUSCODE related
find rec using
on error goto START
enter PYMT.DATE
enter PYMT.PAYMENT
CUS.RECEIVE
= (CUS.RECEIVE)-(PYMT.PAYMENT)
CUSTPYMT confirm
save rec
clear buffer
CUSTFILE
clear buffer
save rec
no confirm
goto START
CUSTPYMT confirm
delete rec
goto START
trap
trap
START
program
OPEN
SAVE
goto
field
field
SAVE.GRP
DELT.GRP
SENSIBLE
in
in
SOLUTION
tm
file
file
in file
/
/
Tutorial
5.16
Enter the following:
Now
label
[RETURNJ
no
[S]
for
CUSTFILE
file
[N}
so the
happens
[RETURN]
yes
[RETURN]
save
create the
command
Save
rec
naine
save
need
to clear
this
the buffer
new
confirmed
be
not.
before
of the record
line
line:
goto
START
Enter the following:
no
[g]
for
for
Go
not
dependent
[T]
[RETURN]
START
next
command
goTo
option
line label to
save new line
[RETURN]
[RETURN]
The
label
Iwturn)
on
field value
branch
to
line is:
delete rec ín
fije
CUSTPYMT cDn.fj-rm
Enter the following:
DELT.GRP
line label
for delete record
[RETURN]
[D]
The
CUSTPYMT
file
[RETURNJ
a
SENSIBLE
SOLUTION
tjn
name
confirm
must.
be answered
before delete
Tutorial
5.17
it
Crcatíng
the
CUSTPYM'I'.SIQR
()()()1
()()()2
0()()3
()()04
()0()5
()()()6 START
()()07
()()()8
()()()9
()()1()
()()11 SAVE.GRP
()0
12
()()13
0()14
()() I')
The
1)EL'I'.GRP
SENSIBLE
CUSTPYMT program
source
--
filc listing
remark
remark
FILES:
CUS'I'FILE
goto SAVE.GRP
trap
trap DELETE goto DEL'I'.GRP
mount
screen CUSTPYMT
OPEN
AND
CUSTPYMT
SAVE
enter PYMT .CUSCODE
find rec using field
cnter
enter
PYMT.CUSCOIJE
related
on
PYM'I'
f i-old
error
CUS.CUSCODE
goto START
.DATE
.PAYMENT
CUS. RECE IVE = (CUS . RECEIVE ) - ( PYMT . PAYMENT)
CIJSTPYMT confirm
save rec in
clear buffer
CUSTFLLE no confirm
clear buffer
save rec in
goto START
CUSTPYMT confirm
delete rec in
goto START
PYMT
file
file
file
SOLUTLON tm
/
/
Tutorial
5
.
18
[RETURN]
no
[RETURN]
save
final
Our
label
needed
this
new
line
line is:
command
goto
START
Enter the following:
[RETURN]
no
(g]
for
for
[T]
[RETURN]
START
label
Go
goTo
no dependent
on
field value
[RETURN]
line label to branch to
[RETURN]
save new line
Your completed
program should look like the one on the opposite page.
Did you make any mistakes?
you find that you want to delete a line of
your source code, pres" [ESC] Ifto call up the Source Code Editor menu.
Use
the [UP ARROW] and [DOWN ARROW] keys to position the line you want deleted
next to the ">" prompt (or use [ESC] {F] Find line). Select "Delete line"
option and answer the question
Do you
simply "Insert"
Now
wísh to delete
thís Line?
Yes
No
the proper
line, using the "Insert line" option.
If you want to change a part of a line in your code, position the
line next
to the ">" pronpt and select the"Change line" option.
Press [RETURN) and
the current command options will be displayed one step at a time.
You can
change
change
of the entries,
any
Take
some
time
and
experiment
you'll begin to appreciate
To exit out of the
insert
back to the Source
Code
asked:
The
SENSIBLE
SOLUTION
tm
the entire
or
how
mode
with
easy
command.
these options.
After a
is to use the SENSIBLE
it
press your [ESC] key. This
menu.
Press [q] for Quit.
Editor
practice
little
SOLUTION!
willYou bring you
will be
Tutorial
5.19
After pressing
The
SENSIBLE
{ESC]
[q] (Quit)
SOLUTION
--
Version 2.0
Language
MAIN
I)
2)
3)
4)
5)
6)
7)
8)
9)
10)
##
The
SENSIBLE
SOLUTION
tin
MENU
Execute A SENSIBLE SOLUTION
Data Dictionary
Maintenance
Screen
Painting
Code Editor
Source
program
File
Initialize
A Data
Code
Compile
Source
Rekey A ijata
Restructure A Data
Program
Generator
File
File
Inquire
Enter
Your
Choice
From
Options
Above
Tutorial
5.20
+_"+
|YesI
Exit completely?
No
+——+
[RETURN].
Press
youmust compile the source code file. Compilation
is the process of
creatinq pseudo code that the SENSIBLE SOLUTION executive program can run.
Select "Main Menu 6) Compile Source Code" and specify CUSTPYMT as the file
to be compiled.
Now
compiler
labels,
scan the source code listing and verify all command
will
and
screens, fields,
files. Finally, the compíler will create the
which is used by the SENSIBLE SOLUTION executive (Main
file CUSTPYMT.RUN When
Menu option
the compiler is finished working,
I).
returns you to
the Main Menu.
The
it
,
let's Program"
our
try out arid
Now
SOLUTION
Select "Main Menu I) Execute
new program.
enter the file name CUSTPYMT.
a SENSIBLE
"2222" was one of the
Enter account number 2222 and press [RETURN).
The customer's name
customer entries you entered with your first screen.
will automatically appear.
for
Now enter a date
the "payment" and then 457.65
the amount of the
Take a look at the outstanding
payment.
receivables" window on your screen.
see
the
balance the
This
-457.65 has appeared
his payment of $457.65 accainst a zero receivables
customer has
Press [y] or [RETURN] to store
payment
record in the CUSTPYMT data
and to save the updatedvalue
Receivables
the Customer Master
data
record (CUSTFILE).
for
You'll
that
for
in
this
for
file
You'll have
Let's
The
create
SENSIBLE
a
a
hard time talking your customer
sales-order screen.
SOLUTION
tin
is
it.
credit
in
total.
file
File
into making payments only!
Tutorial
5.21
The
Data
Dictionary
maintenance screen
k jÑ¿l!úm|hs]|á,=|||
!,,1kk I, I li |'| I N'I ,Q|j
he
SOLUTION
SENSIBLE
--
Data
Dictionary
Maintenance
+
INFORMATION
*
Use:
Location:
Number Of 128 Byte Segments:
FILE
I********]
File Name:
Fíle #: ########
Key
I)
2)
3)
4)
5)
Name
***************
***************
***************
***************
***************
Size
###
###
###
###
###
Offset
####
####
####
####
####
FIELD
Key
6)
7)
8)
9)
*************************
##
Number Of Keys:
#
Name
***************
***************
***************
***************
Size
Offset
###
###
###
###
####
####
####
####
INFORMATION
Field Name: I***************]
File Namé: ********
Fíeld Description:
******************************
####
*
Key (Y/N):
Type:
Size: ###
Decimal: #
Offset:
Default Entry Mask:
***********************************
*
*
'CR'
Upper
Case Only (Y/N):
Required On Entry (Y/N):
*
+
*
The
SENSIBLE
SOLUTIONtíñ
Tutorial 6.0
Defíning
Data
LESSON 6
Wíth The
Files
Díctíonary
Data
Now
that you understand
Program
Generator work,
how the Screen
Code
Source
and
Painter,
Editor,
we are going to take another approach
to creating a
begin the whole' process by setting
up the
Then we'll
Dictionary.
paint the screen with "Main
and create the program with the Source
Code Editor.
This time we'll
in the Data
fields
3) Screen
Painting"
program.
and
Menu
file
Dictionary
Maintenance is a SENSIBLE SOLUTION program used
to update
SOLUTION
FLDFLE.MS,ñKS
and RECFLE.MS/.KS.
data files,
These
When a SENSIBLE
SOLUTION
four files
comprise the Data Dictionary.
program is run,
to determine
accesses the Data Dictionary (RECFLE.MS)
the drive locations of your data files (filename.MS/.KS).
In addition to
this file information, the Data Dictionary contains a cozriplete definition of
Before, we used Screen
every fieldused in a SENSIBLE SOLUTION program.
Painting to create or "define" fields. But don't be confused, the field
definitions that you created while you were painting a screen went into the
Data
Dictionary.
This time, however,
we're going to go directly into the
Data Dictionary
to create some new field definitions.
Data
four
SENSIBLE
it
Select
"Main Menu 2) Data Dictionary Maintenance."
You'll see
display
like the one shown on the opposite page. We'll begin by examining the
field definitions of the master data file we have already created.
Enter the file name, CUSTFILE, in the first field window on the Data
and
[RETURN].
Dictionary
a
screen
press
Each
field window on this screen displays information
fields that comprise the file:
Fí1e
The disk-directory
specified.
Name:
Locatíon:
which disk drive the
Use:
Designer enters
file here.
Fííe
Num:
'
The
SENSIBLE
track
NuInber
of 128
Byte Segments:
Currently
SENSIBLE
SOLUTIONtIn
a
SOLUT"'LON
files in
expressed in
The
about the
use.
defined
128
file
file
file
name,
resides
"comment"
uses
this
and
the
useron.
about
number
the
to
size of data record
byte units.
Tutorial
6.1
The
Data Dictionary
The
SENSIBLE
maintenance screen
SOLUTION
Dictionary
Data
--
Maintenance
FILE
Fiie
File
I********]
Name:
########
#:
Key
I)
2)
3)
4)
5)
Name
***************
***************
***************
***************
***************
INFORMATION
*
Use:
128 Byte Segments:
Location:
Number
Of
Size
Offset
###
###
###
###
###
####
####
####
####
####
FIELD
Key
6)
7)
8)
9)
*************************##
#
Number
Of
Keys:
Size
Name
###
###
###
###
***************
***************
***************
***************
Offset
####
####
####
####
INFORMATION
File Narrie:
Field Name: I***************]
********
F'ield Description:
******************************
####
*
###
Key (Y/N):
Type:
Size:
Decimal: #
Offset:
Default Entry Mask:
***********************************
*
*
'CR'
Case Only (Y/N):
Upper
Required On Entry (Y/N):
+
*
<=
The
SENSIBLE
SOLUTIONtíñ
Tutorial 6.2
*
Number
Key
of
Number
Keys:
Fi.eld
Name:
Size:
Number
of index
name
of
keys
field
of bytes in
used
used
key
Beginning byte position
this file.
in
for
field.
a
key.
in record.
You can change
any of the displayed information
on the screen, call up other
and field definitione,
or create brand new file and field definitions
file
One point we should note
in the Data Dictionary all with this one screen.
here, Data Dict.íonary Maintenance ís itself a SENSIBLE SOLUTION program.
Beca.use
t.he
page
of this,
through
you can
files using any of the
standard program control keys to search for recordc, clear the screen,
Remember,
etc..
remove records,
you change any of the displayed
ifscreen,
on
the
the definition in the Data
Data
information
Dictionary
not actually be changed until you save the screen
Dictionary will {ESC]
information
with
[S]. For detailed inforinaticm on the operation of 2)
on the Data
Data Díctíonary Maintenance,
you at line 4 and [M] (Mark block)
going
file,
option
SENSIBLE
you
and
SOLUTIONtm
Tutorial
7.11
CUSTORD.SRR
0001
0002
0003
0004
0005
0006
0007
0008
0009
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
The
it
BEGIN
trap
trap
trap
mount
START
after appending
appears
remark
remark
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
as
TEMPFILE
CUSTFILE AND
FILES:
RELATES
RELATES gosub
JUMP SCREEN
goto CUSTFILE
DELETE goto DELT.GRP
OPEN
screen
-CUSTORD
CUSTORD
SAVE ignore
ORD.CUSCODE
trap
enter
find rec using
enter
enter
print
field
ORD.DATE
ORD.CUSINV
at col 004
row
ORD.CUSCODE
on
24 verbage
field
related
error
CUS.CUSCODE
CUSTFILE
goto
LANGUAGE,
CHOICES:
MANAGEMENT, APPLICATIONS
PRODUCT
enter
ORD.PROD
]
at col 004 row 24 verbage
ORD.PRICE
enter
enter ORD.QUANT
trap SAVE goto SAVE.GRP
ORD.TOTPURCHASE = (ORD.PRICE)*(ORD.QUANT)
CUS.RECEIVE
= (CUS.RECEIVE)+(ORD.TOTPURCHASE)
CUS.SALES = (CUS.SALES)+(ORD.TOTPURCHASE)
002 chars
N.2.0.1 = portion of ORD.DATE from 001
CUS.MONTHO1 = &(N.2.0.1)(om.ToTpURcHAsE)+(N.2.0.1)&(cUs.MoNTHo1)
CUSTORD
no save
save rec in
clear buffer
confirm
then goto BEGIN
CUSTFILE
clear buffer
save rec
no confirm
goto START
CUSTORD
no delete thengoto BEGIN
delete rec in
confirm
START
goto
print
for
SAVE.GRP
DELT.GRP
RELATES
CUSTFILE
START
find
rec using
/
if
ORD.CUSCODE
return
trap JUMP SCREEN
goto BEGIN
mount
screen CUSTFILE
enter CUS.CUSCODE
dupíícate key usíng fíeíd
enter CUS.DATE
enter CUS.NAME
enter CUS.ADDR
enter CUS.CITY
enter CUS.STATE
enter CUS.ZIP
íf
SENSIBLE
field
SOLUTION
tm
if
/
file
in file
file
related
field
CUS.CUSCODE
on
error
goto
CUS.CUSCODE
goto
START
Tutorial
CUSTFILE
7.12
to
and
mark
mark
Now
select
the Write block
Enter the
name
Let's
[LJ
of the
[W]
file
Enter the
will
TEMPFILE.
be appended
The
name
The
option.
the
We're finished
line prompt
of the
commands
end of
to the
file
be
editor
Code
is to
be
saved:
find line
will
n********
and
and
read: 7:********
CUSTFILE
program
CUSTORD
allows the user to create new master
the CUSTFILE screen.
Every time our
who does not have a record
a
customer
for
master file, the program will immediately display the CUSTFILE
that
message
a
at the bottom of the screen dísplay
Let's print
options and directions
to the program user.
have a program which
usi'ng
as necessary,
records
a
sales
order
enters
user
Now
12
request:
with CUSTFILE so IQ) Quít
at the end of the program
to the disk from your
program.
saved
your
to
>
process,
same
Source
ín whích the block
file
TEMPFILE.
name our
Load CUSTORD.
Position
select Ir) Read block.
Type
Using the
the beginning of the block.
the end of the block.
we
Insert this command line following line 31:
at col 000 row 00 message CUSTOMER NOT
prínt
{ESC}
FOUND {RETURN}
customer
program
ín the
screen.
offers
TO CREATE,{ESC}
JUMP TO REENTER
The program
displays the message at the bottom of the screen.
ís informed that there ís no record for the customer account number
the user presses [RETURN] they can create the master file
just entered.
If
could be found because the user
record
at that time.
If no related record
to the
they may [ESC] [ESC] [JUMP]
entered an incorrect
account number,
CUSTORD screen to re-enter
the number.
This
user
command
our program user decides to create a master file record for a newly
help
entered customer account number,
screen
their CUSTFILE
will
entered
the CUSTORD screen.
which
they
new
account number
displays the
to
Insert the following command line after line 32:
When
if
ít
CUS.CUSCODE
Let's continue
by
examining
screen
CUSTFILE
program.
Líne
The
31 mount
SENSIBLE
SOLUTIONtm
the
=
(ORD.CUSCODE)
command
lines
we
just appended to our
Tutorial 7.13
CUSTORD.SRR
0001
0002
0003
0004
0005
0006
0007
0008
0009
as
0024
0025
0026
0027
0028
0029
0030
0031
0032
BEGIN
trap
trap
trap
mount
START
after altering lines
CUSTFILE AND
FILES:
.RELATES
RELATES gosub
JUMP SCREEN
goto CUSTFILE
DELETE goto DELT.GRP
OPEN
screen
32 and
33
--
CUSTORD
CUSTORD
SAVE ignore
ORD.CUSCODE
trap
enter
find rec using
enter
enter
print
field
ORD.DATE
ORD.CUSINV
at col 004
row
ORD.CUSCODE
on
24 verbage
field
related
error
CUS.CUSCODE
goto
CUSTFILE
LANGUAGE,
CHOICES:
MANAGEMENT, APPLICATIONS
PRODUCT
ORD.PROD
]
at col 004 row 24 verbage
ORD.PRICE
enter
enter ORD.QUANT
trap SAVE goto SAVE.GRP
ORD.TOTPURCHASE = (ORD.PRICE)*(ORD.QUANT)
CUS.RECEIVE
= (CUS.RECEIVE)+(ORD.TOTPURCHASE)
CUS.SALES = (CUS.SALES)+(ORD.TOTPURCHASE)
002 chars
N.2.0.1 = portion of ORD.DATE from 001
CUS.MONTHO1 = &(N.2.0.1)(om.ToTpURcHAsE)+(N.2.0.1)&(cUs.MoNTHo1)
CUSTORD
no save
confirm
clear buffer
save rec in
then goto BEGIN
CUSTFILE
clear buffer
no confirm
save rec in
START
goto
CUSTORD
no delete thengoto BEGIN
delete rec in
confirm
START
goto
enter
print
for
SAVE.GRP
DELT.GRP
RELATES
CUSTFILE
0033
0034
0035
0036
0037
0038
0039
The
appears
remark
remark
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
it
find
rec using
return
trap JUMP SCREEN
goto
mount
screen CUSTFILE
prínt at col 000 row
CUS.CUSCODE =
enter CUS.DATE
enter CUS.NAME
enter CUS.ADDR
enter CUS.CITY
enter CUS.STATE
enter CUS.ZIP
SENSIBLE
field
SOLUTION
tin
if
/
file
file
file
/
if
ORD.CUSCODE
related
on
field
error
CUS.CUSCODE
goto
CUSTFILE
BEGIN
00 verbage CUSTOMER NOT FOUND
{ESC} JUMP
TO CREATE,{ESC}
(ORD.CUSCODE)
TO
{RETURN}
REENTER
Tutorial 7.14
This command
display.
Lime
the screen
mounts
CUSTFILE
prínt{ESC}at JUMP
row 00 message
col 000 REENTER
32
CREATE,{ESC}
33
displays
FOUND
{RETURN}
TO
command
the
message
at the
bottom
of
the
,
=(ORD.CUSCODE)
CUS.CUSCODE
This
CUSTOMERNOT
terminal
'TO
This command
screen.
Line
the
on
specifies that the CUS.CUSCODE field will
which resídes in the ORD.CUSCODE field.
CUS.CUSCODE
will become equal to
display the value
In other words,
ORD.CUSCODE.
The
next
"Delete
command
line was labeled START in the
line option" to eliminate this line.
line:
command
íf
dupíícate
key usíng fíe1d
CUSTFILE
Delete
CUS.CUSCODE
goto
program.
as
Use
the
well the next
START
These
value
can be eliminated because CUS.CUSCODE
has been assigned the
lines
ORD.CUSCODE.
ORD.CUSCODE'S
value has been tested in the earlier
command
line "find related record" (line 9).
Líne
34
enter
This
Líne
35
Líne
36
command
enter
This
CUS.DATE
CUS.NAME
command
enter
37
enter
This
Líne
38
This
The
allows
program user
to
enter the
customer
allows program user to enter the
city.
CUS.STATE
command
SENSIBLE
name.
CUS.CITY
command
enter
allows program user to enter the customer
CUS.ADDR
This command
address.
Líne
allows program user to enter the date.
allows program user to enter the state.
SOLUTIONtm
Tutorial 7.15
A
partíal
end
the
0006
0007
0008
0009
of
listing
editing
of our
mount
START
0024
0025
0026
0027
0028
0029
0030
0031
0032
enter
enter
print
screen
with line
6)
as
--
it
appears at
CUSTORD
SAVE ignore
ORD.CUSCODE
ORD.DATE
ORD.CUSINV
at col 004
row
related
ORD.CUSCODE
on
24
verbage
field
error
CUS.CUSCODE
goto
CUSTFILE
PRODUCT
CHOICES:
LANGUAGE,
MANAGEMENT, APPLICATIONS
enter
ORD.PROD
]
at col 004 row 24 verbage
enter ORD.PRICE
enter ORD.QUANT
trap SAVE goto SAVE.GRP
ORD.TOTPURCHASE = (ORD.PRICE)*(ORD.QUANT)
CUS.RECEIVE
= (CUS.RECEIVE)+(ORD.TOTPURCHASE)
CUS.SALES = (CUS.SALES)+(ORD.TOTPURCHASE)
002 chars
N.2.0.1 = portion of ORD.DATE from 001
CUS.MONTH = &(N.2.0.1)(om.ToTpURcHAsE)+(N.2.0.1)&(cUs.MoNTHo1)
CUSTORD
no save
confirm
clear buffer
save rec in
then goto BEGIN
CUSTFILE
clear buffer
save rec
no confirm
goto START
CUSTORD
no delete thengoto BEGIN
confirm
delete rec in
goto START
ORD.CUSCODE
CUS.CUSCODE
related
rec using
on error
goto CUSTFILE
print
for
SAVE.GRP
DELT.GRP
RELATES
CUSTFILE
/
file
in file
file
find
if
field
return
trap JUMP SCREEN
goto
mount
screen CUSTFILE
print at col 000 row
file
goto
0041
SENSIBLE
SOLUTION
if
/
field
BEGIN
00
verbage
TO
CUS.CUSCODE = (ORD.CUSCODE)
enter CUS.DATE
enter CUS.NAME
enter CUS.ADDR
enter CUS.CITY
enter CUS.STATE
enter CUS.ZIP
CUSTFILE
save
rec in
0033
0034
0035
0036
0037
0038
0039
0040
The
session
(beginning
find rec using field
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
trap
enter
CUSTORD.SRR
CUSTOMER NOT FOUND
CREATE,{ESC}
{ESC} JUMP
confirm/
clear
TO
{RETURN}
REENTER
no save
buffer
then goto BEGIN
if
BEGIN
tm
Tutorial 7.16
Líne
39
enter
CUS.ZIP
k
This
command
allows program user to enter the zipcode*
We
have given our program users the means to create new customer master
records.
they do so, we needa command in the program which saves this
information and stores
in the CUSTFILE program. Insert the following
If
it
commands:
Líne
40
save
then goto
save
This
in filie
rec
CUSTFILE
confírm
BEGIN
/
cLear buffer
command
if
saves
the current record to CUSTFILE
to the Save question and clears the buffer. If
N
to the Save question,
program control
transferred
to the command line labeled BEGIN.
Líne
41
goto
This
command
transfers program
line labeled BEGIN.
the
CodeeEditor,"
Source
with"Main
CUSTORD
you
you
is
BEGIN
command
Now leave
CUSTORD
if
Y
answer
answer
no
the
return to the Main MenuT
5)Initialize Data File. Finally,
"Main Menu 6) Ccmpile Source Code."
Menu
with
program
control back to
Initialize
and
a
compile
the
t
a moment
to look
through 6 present
Take
create
our
CUSTORD
Selection
Selection
Selection
Selection
Selection
at the SENSIBLE SOLUTION
the
logical progression
program.
Main
of steps
2-- Create files and fields in the
Paint the program screen.
4-- Create the source code file.
5-- Initialize the data file.
6-- COmpile the source code file.
3—-
Menu.
Data
Menu selections
we have taken
2
to
Íjictionary.
CUSTORD (Main Menu selection I) and entering
a
few
try executing
You can scan and change
sales orders.
the order file with the usual control
[ESC]
Use
SOLUTION
main menu;
keys.
[q] to get back to the SENSIBLE
then run CUSTPYMT to enter a flew payments.
Whenyou later runCUSTFILE,
you wíll see that
the orders and payments have been posted to the correct
the
Customer
Master File.
fields in
Now
The
SENSIBLE
SOLUTIONtIn
Tutorial 7.17
Use
put
[L) add Lne to insert blank lines into your CUSTFILE screen, then
the'4jate of last payment: " label on the screen and ESC] {A] Add fíd
[ESC]
CUS.LASTPYMT.
CUSTOMER
Account
No:
Name:
Address:
City:
Outstanding
MASTER FILE
Date
[########1
I**********************************]
********************
State: **
********************
Recefvables:
Date
Payment:
Sales
jan
Feb
Mar
Apr
The
SENSIBLE
#######.##
#######.##
#######.##
#######.##
SOLUTION
May
jun
jly
Aug
tm
by
zip:
Sales year-to-date:
#########.##
of Last
Started:
mm/dd/yy
I*********]
#########.##
mm/dd/yy
Month
#######.##
#######.##
#######.##
#######.##
Sep
oct
Nov
Dec
#######.##
#######.##
#######.##
#######.##
Tutorial 8.0
LESSON
Adding
Fíe1ds to
New
8
a
Fije or Screen
of
the strongest features of the SENSIBLE SOLUTION is its ability
to
and
the work we've already done by adding new files, screens,
build
When we call up a customer's master record we'd
fields. Here's an example.
know
when
the
That information
customer made his last payment.
like to
is
We
need
CUSTFILE
entered on the payment
modify
the
to
screen.
screen to show
change
date,
the Data Dictionary entries for the CUSTFILE data file to
this
add
a
hold
field to
this date, and also modífy CUSTPYMT to post the
information over to the CUSTFILE.MS data file.
One
on
Since we're addíng a new field to the file, we must also restructure
the
The SENSIBLE
SOLUTION provides
record layout to make room for the new data.
an option from the main menu to do thís automatically
for us, "Main Menu El)
A Data File."
Once we've modified our two program/screens,
Restructure
we'll be using this program.
From
the
CUSTFILE.
SENSIBLE
Put the "Date of
to the right:
field just
of
Date
Then
SOLUTION
last payment:
[ESCAPE]
IQ)
the
File.
SENSIBLE
The
to
Enter the
Enter the
displayed:
name
main
name
of the
file
Create work
choose
Name:
Name:
Type:
Key:
3)
SCREEN
on
PAINTING
the screen,
D
Painting
editor
select
returns,
appear on your screen:
be
restructured
CUSTFILE.
fí1e
this
N
Screen
fije to
and modify
and add
CUS.LASTPYMT
CUSTFILE
menu
will
prompt
of the data
has to
Thus,
last
payment: " label
exit from the
SOLUTION
following
menu,
Field
Fíle
Field
screen.
When
main
CUSTFILE.M$$
The
8)
and
Restructure
dríve
the
A Data
********
fo1lowingmessage
on
save
will
be
:
the
restructured
file
it
for a time, your disk storage
file.
will have to contain an
amount
of data that is twice the size of the original data file. To provide
RESTRUCTURE
data
The
SENSIBLE
make
SOLUTIONtm
a
work
before
creates
new
Tutorial
8.1
SENSIBLE
File
SOLUTION
extensions
Screen
Command
Compiled
*-IQ
*.LST
*.MS
and
used
with
SENSIBLE
or Reporter
files
files
files
file
*.KS
System
*.COM
*.EXE
The
created
--
SOLUTION:
files
Format
Code
Source
Command
Inquire Format
Screen/Reporter Format or Source
Master Data
Key
the .MS
*.SCC
*.SRR
*.RUN
Operating
Extensions
File
SENSIBLE
file
extensions
Compiled
Compiled
SOLUTION
file
(for
executible
executible
tm
Code
files
ASCII
file)
used
with
program
program
SENSIBLE
-
SOLUTION:
CP/M, MP/M
DOS, PC
MS
DOS
Tutorial 8.2
RESTRUCTURE
for this extra work space,
will allow you to designate a
different drive location to contain the temporary work file.needFor example,
bytes in size, you will
at least
original data file is
if200OKyourbytes
the necessity of
of free space on this same drive to avoid
designating a unique temporary work drive location.
If your present drive
location does not have enough free space,
type in a different drive location
letter than the one displayed.
1OOOK
Press
enough
if
the
drive
with
abort
RESTRUCTURE
location,
name and
drive
back
and watch the program run.
You
will
will
[RETURKÜ
the default
room
on the disk
work
drive has too
drive,
or give the
for the temporary file.
little free space.
for
left
After entering
immediately
a
valid
file
begin execution.
letter of
any
Restructure
will
sitthrough
table,
building
the restructure
and replacing
the
restructuring
the records, re-writing the Data Dictionary,
you
remínd
a message
old file. When the program is finished,
to
appear
will
to REKEY the file and RECOMPILE
all programs that access the data file:
SENSIBLE
see
SOLUTION
go
Please reineñber to
Restructure ís complete.
--REKEY
your filie, and
--RECOMPILE
all programs whích use thís fíle
or deleted a key field, altered a key field's size, or
Any time that a
as a non-key field, within your file.
been defined in an existing data
dífferent set of key fields has must
file, the
be rebuilt and the record counter in the
index-key file, fííename.KS,
be
must
reset to reflect the total number of records
in the file.
file Menu
Main
option 7) Rekey a Data File performs these functions by re-keying
that
the SENSIBLE SOLUTION data file, filename.KS.
In fact, we recommend
you use option 7 any
containing
an
time that
data
"live"
existing
file
been
data has
restructured.
you had
a key
Suppose
redefined
added
field
Go ahead and REKEY now.
"Number
of records to be
To the prompt
Enter the file name CUSTFILE.
that
re-keyed"
respond with [RETURN]
to indicate
REKEY
on
wish
the
the
Then
watch
work
rekey
to
program
you
entire file.
each record in the
file.
The
CUSTFILE,
CUSTFILE
data
recompile
changes
files.
The
these
made
CUSTORD
file.
Recompiling
files.
CUSTFILE.SCC
in the
Recompile
SENSIBLE
andCUSTPYMT
accommodate
To
SOLUTIONtíñ
CUSTFILE
programs
the new
will alert
and
screen format
AND
restructured
all use thenewly
you
must
structure,
file
SENSIBLE
SOLUTION
to the
CUSTORD
now,
update the .SRR
using "Main
and
Menu
Tutorial 8.3
.RUN
6)
'""USTPYNT.SRR
as
it
CÜSTPYMT.SRR
soí:
rce Tile
0001
0002
0003
remark
remark
trap
trap
Cl004
O rj D-5
0006
0007
mount
START
The
-Lrispr'¿j-nq
~
9
'---
listing
OP'".N
CUSTFILE
FILES:
SAVE goto SAVE.GRP
DELETE goto DELT.GR!?
screen
PYMT
line
AND
ZÜST.PY.MT
CIJSTPYMT
.CUSCODE
reZateS
E"Y-MT.CTJSCODE
on
Eieid
error
CUS.CUSCODE
goto START
PYMT
.DATE
-LASTPJMT = ( PYMT .DATE)
enter PYMT .PAYMENT
CljS . RECEIVE = ( C6S . RECEIVE ) - ( PYMT .PAYYENT )
CUSTPYNT confirm
clear buffer
save rec in
C'JSTFILE
clear buffer
no confirm
save rec in
goto START
CUSTPYMT confirm
delete xec in
START
goto
enter
CUS
SAVE.GRP
GO13
0014
0015
0016
enter
after
find rec using field
OOC8
C009
0010
0011
0012
aqgears
DELT.GRP
SENSIBLE
file
file
file
SOLL'TION
tm
/
/
Tutorial
3 ¶·(j
Compile
a Source
Since
Code
the CUSTFILE
Date" field,
to change the
the date over to the
Payment
have
From
The SENSIBLE
rnodifyCUSTPYMT.
File."
program/screen doesn't accept data entry to the "Last
you don't have to modify that program; however, you do
CUSTPYMT command
source code file CUSTPYMT.SRR
to post
CUSTFILE.MS
data file.
SOLUTION
Insert
the
main
menu,
following
CUS.LASTPYMT
This will
place the
previous "last payment"
payment
entry)
=
select "4) Source Code Editor" to
after line 8:
command
(PYMT.DATE)
date in the customer record
(overwriting
every time a payment is made.
Because
the
you have modífied the CUSTPYMT source code
and the
CUSTFILE
file,
screen format file which
CUSTPYMT
accesses,
re-compile
to
is necessary
to update SENSIBLE SOLUTION'S
CUSTPYMT.RUN
file. Do so now, using "Main
6) Compile
Menu
Source
Code."
it
it
¥
The
SENSIBLE
SOLUTIONtñi
Tutorial 8.5
Use
the
CUSMENU
0001
0002
0003
0004
0005
Source
.SRR
source
Editor
START
OPEN
program
--
FILES:
CUSMENU
CUSMENU
screen
enter N.1.O.1
goto line on value of
execute
execute
execute
SENSIBLE
to create the following
file listing
remark
remark
mount
0006
000"7
0008
The
Code
SOLUTION
tm
.Run
.Run
.Run
file
file
file
N.1.O.1
maximum
gotos
03
if
error
CUSTFILE
CUSTPYMT
CUSTORD
Tutorial 9.0
goto
START
LESSON
Creatíng
OUR
9
a Menu
ACCOUNTING
COMPANY
File
I) Maintain
2)
3)
#
SYSTEM
Customer
Payments
Customer
Customer
Orders
Record
Record
is your selection?
What
becoming
menu
tedious to return to the SENSIBLE SOLUTION main
every
and use I) Execute A SENSIBLE SOLUTION Program to run our programs.
Let's create a menu screen that will allow us to execute our programs
directly from the menu.
It's
time
Actually,
program
4) Source
THE MAIN
Create
one
a
field
the
called
Code
MENU,
main
SENSIBLE
SOLUTION
MENU.RUN.
You
Editor" to see how
Field
Number
name:
name:
Field type:
Size:
of decimal places:
.
this screen. Then, since you
must ínítía1íze it. Select "Main
Save
name
In
The
this
LINE
source
ON
SENSIBLE
Key:
SENSIBLE
ít
it
tests
SOLUTIONtm
There
ESC]
is only
[A]:
N.1.O.1
MEMORY
N
1
O
N
field to the file, MEMORY, you
Inítialize a Data File" and enter
Source Code Editor" to create the source code
the facing page and compí1e that listing.
listing there are
VALUE
SOLUTION
Menu
DON'T EDIT
"Main
added
a
Menu 5)
MEMORY.
Now use "Maín Menu 4)
(CUSMENU.SRR) shown on
GOTO
a
up
to match the one shown above .
screen called CUSMENU
to add. Position your cursor over the "#" sígn and
File
file
is ítse1f
and
via
call
list
program is constructed.
for heaven's sake!!!
Selection
the
menu
can
a menu
two
commands
we
the value of the specified
haven't
encountered
field, which should
Tutorial
9.1
file
yet.
be
a
CUSTFILE
after modification
CUSTFILE.SRR
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
The
START
source
--
file listing
remark
trap EXIT goto EXIT
trap SAVE goto SAVE.GRP
trap DELETE goto DELT.GRP
mount
screen CUSTFILE
CUS.CUSCODE
enter
enter CUS.DATE
duplicate key using field CUS.CUSCODE goto START
enter CUS.NAME
enter CUS.ADDR
enter CUS.CITY
enter CUS.STATE
enter CUS.ZIP
confirm / clear buffer
save rec in file CUSTFILE
goto START
delete rec in file CUSTFILE confirm
goto START
execute .Run file CUSMENU
if
SAVE.GRP
DELT.GRP
EXIT
SENSIBLE
SOLUTION
trn
Tutorial
9.2
numeric type.
than the '"""ñ""""1""
If the value is less than one orto greater
value,
control
of the program is transferred
the goto target label
-START.
Otherwise, control "jumps" to one of the statements that follow the
GOTO
LINE ON VALUE depending on the value of the field, N.1.O.1.
If N.1.O.1
one,
the next comnand to be executed is the first command following
the
is
7
GOTO
2,
LINE ON value,
executed.
which is line 6.
N.1.O.1
=
line
is
If
N.1.O.1 = 3 triggers line 8. N.1.O.1 = 4 is greater than the "·p¶·""j1·" so the
would "goto" START instead of to one of the commands following the
program
GOTO
LINE
GOTO
ON
LINE
VALUE.
ON
sometimes
VALUE'S
action
passed
to the nth element of a
used often
of n.
menus
Control
is
the value
to perform several
entry.
"table
jump".
dependíng on
also be used
in
like this. It might
month
on
depending,
the
of a data
tasks
say,
is
It is
different
referred
table of
to as a
commands,
EXECUTE
.RUN
FILE, executes another .RUN file. In this
1
entered
for your selection choice, the CUSTFILE screen
allow you to update master customer records.
if
example,
will
appear
you
and
CUSTPYMT and CUSTORD so
that they can
screens correctly and return to the CUSMENU
screen
Use
on [ESC]
[qj·4) You'll Code
find the command limes to insert listed below.
and
Source
"Main Menu
Editor" to enter the required
modífícations
Menu
make
6)
Code"
a
on each
then
"Main
Compile Source
fíle to
"runab1e" program front the modified command file.
Now
we
transfer
need
to modify
control between
L.gj..á--.jÉ,
this command line at the beginníng
programs, following the "remark" line:
Insert
trap
use the
Insert mode to
Now
EXIT
goto
option to reach the end
insert the following line:
End
of each
one
of your three
EXIT
of your programs
and
then the
k
EXIT
The
new
presses the
TRAP
[ESC]
EXIT command
[q] keys.
execute
.Run
fíle
CUSMENU
is activated whenever
In these fíles,
"exiting" the screen vía [ESC] [q]
the new line labeled EXIT which, in turn, runs our
will
the
program
transfer
CUSMENU.RUN
control
file.
0
The
SENSIBLE
SC)LUTIONtiñ
Tutorial 9.3
user
to
CUSTPYMT
after modification
CUSTPYMT.SRR
0001
0002
0003
0004
0005
0006
0007
0008
0009
0()10
0011
0012
0013
0014
0015
0016
0017
0018
The
source
file listing
remark
remark
START
--
AND
CUSTPYMT
FILES:
CUSTFILE
EXIT
trap EXIT goto
trap SAVE goto SAVE.GRP
trap DELETE goto DELT.GRP
mount
screen CUSTPYMT
PYMT.CUSCODE
enter
CUS.CUSCODE
PYMT.CUSCODE
related
find rec using
on error goto START
enter PYMT.DATE
(PYMT.DATE)
=
CUS.LASTPYMT
enter PYMT.PAYMENT
(CUS.RECEIVE)-(PYMT.PAYMENT)
=
CUS.RECEIVE
cLear buffer
save rec in fil-e CUSTPYMT confirm
CUSTFILE
no confirm
clear buffer
save rec in
goto START
CUSTPYMT confirm
delete rec in
goto START
CUSMENU
execute .Run
OPEN
field
field
SAVE.GRP
DELT.GRP
EXIT
SENSIBLE
file
file
file
SOLUTION
tin
/
/
Tutorial
9.4
The
of a customer orderprograms now completed can form the backbone
and
system
be
entry/payment-control
can
integrated
into a complete
accountíng
of course,
system.
you'll want to make some additions to the
present progrqms.
For instance,
the way our system is currently
designed,
change
you
can
the amount of a payment,
which would also change
the
and
receivables
made.
sales figures,
with no record that a change
was
(Someone
get a bucket of water.
All the accountants just fainted!)
Before
you graduate as a SENSIBLE SOLUTION applications programmer, we'd
like to introduce you to two more features of the SENSIBLE SOLUTION:
"Main Menu 10) Inquire",
a fast and
easy utility for makingquick"adand
hoc" queries of SENSIBLE SOLUTION data files,
"Main Menu 3) Screen
Painting " -- Reporter Format,
and
a
powerful
flexible report-generating
facility.
K
The
SENSIBLE
SOLUTIONtm
Tutorial 9.5
After typing
SENSIBLE
The
SOLUTION
SENSIBLE
[RETURN]
--
Version 2.0
Language
MAIN
I)
2)
3)
4)
5)
6)
7)
8)
9)
10)
##
The
SENSIBLE
SOLUTION
tm
MENU
Execute A SENSIBLE SOLUTION
Data Dictionary
Maintenance
Screen
Painting
Code Editor
Source
Initialize A Data File
Compile
Code
Source
Rekey A Data File
Restructure a Data
Program
Generator
Program
File
Inquire
Enter
Your
Choice
From
Optíons
Above
Tutorial
10.0
LESSON
Inquire,
10
the Quick Data Scanning
Facíliity
you quickly
you use a computer application
every day,
base of information
with
Unfortunately,
a "data base".
no way to get at
there
that information.
If
up
build
most
--
is
valuable
a
languages,
all
with SENSIBLE SOLUTION it's a simple matter to design a
And,
that you ask
for questions
program to answer any question you have.
However,
and
often
should
do.
you
exactly
what
again,
that's
over
over
happens
you need a quick answer
that
For example,
to a simple question.
"What products have we sold to our customers this year?"
As
you
have
learned,
it
sbrt
SOLUTION
of
a facility to answer
provides
just this
SOLUTION
SENSIBLE
data
any single
can scan
Inquire
Inquire.
-the
a report which can then be
sent to the terminal,
file and create
that
of
format
on
decide
the
you
with
Inquire,
a
disk
to
printer, or
file.
what records will be selected from the file and how those records
report:
be displayed
You can then save the format and execute
on the report.
will
The report
the Inquire report any time that you wish.
will always display
most
the
current data from your data base.
The
SENSIBLE
question
a
Inquire will then display
begin using Inquire by selecting a file.
directory
of all the fields in that file and ask which of these fields you
you need not display
wish to see on your Inquire report.
In this way,
all
want
when
example,
símply
you
"sales-by-month"
the
fields,
for
"name"
and "telephone".
"receivables",
You
with the fields you specify in the order you
separated
on the report
is automatically
field
how many spaces
by
you
exactly
specify
but you may,
in fact,
Each record that is printed
each column.
out on your
want to appear between
You can also
of the report.
may be formatted
on from '1 to 4 lines
report
format.
blank
report
your
lines in
insert
Inquire
specify
will
them.
a few spaces
create
Each
a
report
column
in our data file, CUSTORD.
Let's use Inquire to view some of the records
a
We'll
report format that will show account actívity by listing
create
the date of the sales order, the product that was
customer account numbers,
and the total amount
While we're at it,
payable.
ordered,
let's restrict
made during 1984.
with Inquire,
the report to displaying only transactions
this will all be easy!
Select
"Main Menu 10) Inquire",
displayed on your terminal.
be
The
SENSIBLE
SOLUTIONtm
the screen shown on the next page will
Inquire will begin by displaying a directory
and
Tutorial
10.1
"Main
Menu
Inquire"
10)
-: ...¥.".
"
Ríe
SENSIBLE
Choose
the
Inquire
SOLUTION
ERRFLE
CUSTORD
CUSTFILE
file
you
...
want
Program
FLDFLE
MEMORY
RECFLE
to use:
r"
The
SENSIBLE
SOLUTIONtm
Tútorial
10.2
of all data files and then request that you enter a file name froín which you
you have too many data
a quick report.
wish to create
files to be
If
[ESC]
key
that
a menu
display
use
the
to
displayed on your screen at once,
and
down
the
see
the
of
up
to
you
allow
to
rest
scroll your screen
will
Type
directory.
in the file name CUSTORD and you will see the following
prompt:
want Fieldname headings
Do you
report?
(Y
or N):
the
on
the fields that will be printed
you will be selecting
in columnar form. Answering "Y" to this prompt will force Inquire to
column
of the
heading that will appear at the top of every page
a
and,
answer
go ahead
report,
as
For our CUSTORD
is printed out.
In a
report
moment
report
"Y".
it
print
The
on
next prompt,
Do you
wish to substitute
Fieldname headings?
(Y
or N):
using the actual fíeld names as headings
you the option of either
unique
heading that you can specify.
a
report
or substituting
your
If
answer
"Y" to the above prompt, every time that you select a field to be
another prompt will soon follow requesting that you
on the report,
printed
of
specify whatever heading you want to see printed at the top of each page
the report.
Inquíre
will ask for a field then Inquíre will ask for a
Once again, answer
"Y" to this question.
heading.
will give
on
you
Now
the
want
on
cycle will begin
the report:
and
Inquire
w.íll
request the
name
of
a
field
.
Enter Fieldname to
Print:
At this stage you should notice a directory
screen that shows qii of the fields contained
on your screen:
a status line displayed
displayed on the top of your
in CUSTORD. You will also see
+
Total
The
you
SENSIBLE
print-out length:
SOLUTIONtm
line
Tutorial
10.3
selecting
After
the
file
name
CUSTORD
--
.
The
SENSIBLE
ORD.CUSCODE
ORD.PROD
Do you
want
SOLUTION
Inquire
.
.
='
ORD.CUSINV
ORD.QUANT
Fieláname headings
,.
program
ORD.DATE
ORD.TOTPURCHASE
on
the report?
(Y
ORD.PRÍCE
REC.NUM
or N):
.
The
SENSIBLE
SOLUTIONtm
Tutorial
10.4
This line indicates the current position for the start of the next field you
Remember,
you can only
enter (columns) and the line number of your format.
Do not,.however,
maximum
4
lines as an Inquire display format.
of
specify a
A format defines how the
get this confused with the length of your report.
be
and the report
can
each
printed,
that
record
look
out
is
for
will
pUnt
thousands of records in length.
menu that appears at
Try pressing the [ESC] key and notice the high-lighted
Use the space
bar to move the high-light block
the bottom of your screen.
though, turn the high-light menu
For now,
to any of the desired options.
[ESC] again.
from this
by
sorne of the selections
use
pressing
We'll
off
menu a little later on.
we'll begin specifying the field names that we want printed on our
At
report and the headings that we want printed at the top of each column.
the prompt "Enter Fieldname to print," type in our first field name -heading".
substitute
ORD.CUSCODE.
Now
"Enter
a new prompt will appear,
the
Type
you press the [RETURN] key
in the words Account Nuñber and after
In this fashion
"Enter Fieldname to Print" message will be displayed again.
and the
specify the next three fields that we want to see from CUSTORD
we'll
the
column
want
At
printed at the top of the report.
headings that we
inforrnatíom
appropriate prompt enter the following
Now
Enter Fíeldname 'to
field:
3rd. field:
4th. field:
2nd.
ORD.DATE
press [ESC] [S]
ORD.PROD
ORD.TOTPURCHASE
Enter súbstítute
prínt:
(Space
insert)
and
heading:
Order Date
specify 10 spaces.
Product Ordered
Total Amount payable
Everything we have discussed up to now is simply a repeating
allow you to defíne the format of a record as
is printed
and column
column,
spacing.
spacihg,
heading,
line
field
it
cycle that will
oyµ report
--
on
displayed
the directory
Notice that every time that you specifíed a field,
When you are finished
specifying the last
the field in half-íntensity.
Amount
column
payable," you will again see the "Enter
heading,
"Total
the [REI'URN) key
with
Fieldname to Print" prompt. This time just answer
and we'll move on to specifying
that occur in 1984.
only those transactions
it
*
'Enter
The
SENSIBLE
Fieldname to Select by:
SOLUTIONtIn
Tutorial
10.5
InquLre quick report
of
File Name: @: CUSTORD
Order
Account Number
--
page:
Date
1/ 5/84
3/ 3/84
2/ 2/84
1/ 1/84
7/28/84
3/ 3/84
8/12/84
1/ 3/84
9/13/84
5/ 5/84
3/ 1/84
7/ 1/84
1111
1111
2222
3333
3333
4444
4444
5555
5555
6666
7777
7777
12
CUSTORD
records
match
the Selection
1
Sort key: ORD.CUSCODE
Product Ordered
Totaí Amount
LANGUAGE
695.00
MANAGEMENT
695.00
MANAGEMENT
695.00
LANGUAGE
995.00
MANAGEMENT
750.00
APPLICATIONS
APPLICATIONS
250.00
400.00
LANGUAGE
995.00
LANGUAGE
695.00
MANAGEMENT
750.00
LANGUAGE
695.00
MANAGEMENT
750.00
criteria
.
The
SENSIBLE
SOLUTIONtm
Tutorial
10.6
payable
field
The
that
name
to set up.
transactions
We
made
ORD.DATE.
=
(
?
enter here will be used in a test that we are about
contain
that
want to print out only those records
1984,
1,
date
so
the
enter
field,
on or after january
you
Than
is Not Equal to
is Greater Than
is Less Than /
is EqualsThan /
/
Equal
to
Less
greater
or
or Equal to
is
/ is
Entered
Value/String
the
Field
Includes
the
is If
What
!
>
<
)
Operator
do you
wish to use:
how to select
the records you desire.
Inquire
will want to know
now use an operator to test a condition.
entered a field name,
right parentheses symbol, ")".
What
Value
do you
Since we specified
"01/01/84".
a
just
You
the
Enter
wish to use:
date
field,
you
will
see
a
date type of prompt.
Enter
should also note here that you are free to select a field even
is
You can
also select
of the information printed in the report.
not part
multiple
criteria thus making your report more restríctive. and Your report
the second
those records that passed the first test,
contain
will and so only
have
When
selection
you
completed defining your
criteria,
on.
test,
simply press the {RETURN] key after the "Enter Fieldname to Select by"
of
prompt and you will move out of this cycle and into the last phase
'
defining an Inquire format:
if it
We
Enter
Fie1dname
to Sort by:
fields
At the top of your screen you will see a dírectory of all key
SOLUTION can only sort data by a
SENSIBLE
your particular data
file.
report let's sort the data into "Account Number"
For our CUSTORD
field.
key
order.
Enter the
field name ORD.CUSCODE.
The
SENSIBLE
SOLUTIONtm
Tutorial
10.7
for
key
Inquire
of
quick report
File Name: @: CUSTORD
Order
Account Number
--
Page:
Date
1/ 5/84
3/ 3/84
2/ 2/84
1/ 1/84
7/28/84
3/ 3/84
8/12/84
1/ 3/84
9/13/84
5/ 5/84
3/ 1/84
7/ 1/84
1111
1111
2222
3333
3333
4444
4444
5555
5555
6666
7777
7777
12
CUSTORD
records
match
the Selection
1
Sort key: ORD.CUSCODE
Total Amount
product Ordered
LANGUAGE
695.00
MANAGEMENT
695.00
695.00
995.00
MANAGEMENT
LANGUAGE
MANAGEMENT
APPLICATIONS
APPLICATIONS
750.00
250.00
400.00
LANGUAGE
995.00
LANGUAGE
695.00
MANAGEMENT
750.00
LANGUAGE
695.00
MANAGEMENT
750.00
criteria
y
The
SENSIBLE
SC)LUTIONtñi
Tutorial
10.8
Payable
Send
output to Printer,
or Disk
Crt,
file? (press p,
C,
or
D)
Üe'r.e finished specifying our quick report format for CUSTORD.
All
Since
to do now is tell Inquire where we want to send the report.
on
we will be able to see all of
our
our report is less than 80 columns
The
CRT.
[RETURN]
default,
so just press
to accept"the
display screen,
should look like the format
Inquire report will immediately be dísplayed;
and
the second
Did you enter the 10 spaces between
on
the facing page.
columns?
pressing
As
displayed
the menu that is
you recall,
after
third [ESC]
to
the
key at the "Enter Fieldname to Print" prompt will allow you
When we're
and
finished,
format.
spaces
blank
lines
try
your
in
insert
creating some other reports with Inquire and experiment with inserting blank
between
and inserting spaces
lines, displaying some fields on other lines,
columns.
There,
we have
it
it
the report is finished press the [RETURN]
selection
criteria and display format.
our
When
key
and
Inquire
will
show
you
-l
File Selected: CUSTORD
Heading Option: Substítuted
Field(s)
Selected:
ORD.PROD
ORD.DATE
Line 1 ORD.CUSCODE
Selection criteria:
When ORD.DATE is Greater Than or Eqµa1
ORD.CUSCODE
Sort Key Selected:
ORDAXJTPURCHASE
to 01/01/84
you want
to save
At the bottom of your screen a prompt will appear asking
One
to
Inquire
of
nicest
features
of
is its ability and save
this format.
To
then
answer
the question
"Y"
save
to
disk
a
formats
in
it,
file.
Your
report format will be saved
answer
the next prompt with a file name.
in a dísk fíle with the extension ".IQ".
if
K
Enter format Filename (save):
You
will
returned to the original data file directory where
another Inquire quick report,
exit back to the main
Inquire
system, or re-run any previously defined
be
now
begin creating
the operating
S
Now
file
menu.
The
you
menu
or
reports.
back at the
complete
see the
start of Inquire (you should
get another high-lighted
press the [ESC] key and you'll
the high-light block over the "Load Format" option and press
that you're
directory)
Move
SENSIBLE
can
SOLUTIONtm
Tutorial
10.9
"Main
Ádµ
I
10)
Menu
I
I
i i
jl ,
T'he SENSIBLE
CUSTFILE
{
Choose
Inquire"
i L,lhlI
lkil' 1,|i
. ',1
i
file
%n' a" "'
ERRFLE
you
" ' "'
Inquire
SOLUTION
CUSTORD
the
--
want
Program
FLDFLE
MEMORY
RECFLE
to use:
)
The
SENSIBLE
SOLUTIONtm
Tutorial
10.10
Now enter the
you
name where
the [RETURN]
key.
file
and
again.
the
report
Inquire
report format
we'll run
criteria will be displayed on your screen and then you
execute the report again.
saved
First,
can
our
the
go
CUSTORD
ahead
format
and
You
can
of the Inquire program.
a powerful feature
developing really useful report formats and then,
after
you
any time that
the format and run
settlíng on a good formula, save most
SENSIBLE
from
You
report
the
always
current
your
get
want.
will
SOLUTION data base.
As
you
can
experiment
see,
with
this
it
e
"F
e
The
SENSIBLE
SOLUTIONtm
S
4
Tutorial
10.11
After
The
typing
SENSIBLE
SENSIBLE
SOLUTION
[RETURN]
--
Versíon 2.0'
Language
MAIN
I)
2)
3)
4)
5)
6)
7)
8)
9)
IQ)
##
MENU
Execute A SENSIBLE SOLUTION
Data Dictionary
Maintenance
Screen
Painting
Code Editor
Source
Initialize a Data File
Compile
Rekey
A
Source
Data
Code
File
Data
Restructure A
Generator
Inquire
Program
Enter
Your
program
Choice
File
From
Options
Above
.
The
SENSIBLE
SOLUTION
tin
Tutorjai
11.0
LESSON
The
11
Reporter Format
When
called from the Main Menu, selection 3) Screen Painting offers the
The REPORTER format
choice of two different formats.
does for printed
reports what the SCREEN
format does for a terminal display:
allows the
of a report format with headings and footings,
interactive
definition
detail
and summary
lines, calculated totals, and multiple-file sources of data.
it
Once defined,
a reporter
format may be used repeatedly in SENSIBLE SOLUTION
programs in much the same way that screen formats
You create a
are used.
by "screen
The
format
reporter format
painting".
can then be
reporter
utilized by SENSIBLE SOLUTION programs to send formatted reports to your
computer's printer.
Creating reports wíth the reporter format involves the
used in creating
same operations
SOLUTION program:
any SENSIBLE
REPORTER APPLICATIONS
Paint Report Format
Edit Source Code File
Compile Commands
Execute Commands
Reporter formats
differ slightly from screen formats.
reporter format can be much larger than a screen format: a maximum of 255
columns wide and 60 lines in height.
You're probably wondering how we can
a 255-column print-page
We
on an BO-column
terminal dísplay.
Simple!
The screen
don't -- at least not all at once.
a
has
painting
method
for getting around the limitation of your screen size. facility
A
fit
The
Paínting
Screen
option,
[ESC)
shift'back and forth between two views[j] of the reporter will
screen. The
01 through
screen is defined as coLumn
column 79; the right screenleft
is
defíned as column 49 through column 127. Thus, there is a 30 column overlap
area from columns 49 through 79. This overlap area will make
easy for
you to"keep your bearings" as you shift back and forth
between the lefthand and
right-hand
The
SENSIBLE
menu
portíons
SOLUTIONtIn
of the report
(jump screen)
format
allow
it
screen.
Tutorial
11.1
you
to
numbers on the left side of this page are to show you how we
counted the report format lines in screen painting this Reporter Format
The
1
OUR
COMPANY
SALES
PAGE
REPORT
have
--
##
2
3
COMPANY
ACCT.
NAME
DATE STARTED
NUMBER
4
5
SALES
YTD
6
DATE
OUTSTANDING
RECEIVABLES
OF
LAST
PAYMENT
7
8***********************************
#ÉÉ#######.##
9
10
TOTAL
#########.##
TOTAL RECEIVABLES:
SALES:
11
The
SENSIBLE
SOLUTION
tm
mm/dd/yy
mm/dd/yy
#######ÉÉ
#########.##
#########.##
Tutorial
11.?
79
+
01
(left
side)
(line
01)
127
+
49
+
(right
+
side)
(line
01)
+
+
Use
[ESC)
[j]
To
Shift views
second nature to [ESC] [j] (jump screen) back and
You'll find it becomes
128-column
page width as you're defining
the
your format.
across
forth
As we stated earlier, you can create report
formats up to 255 columns wide.
To extend a report format
beyond the 127th. column, simply place
line
The next line down on the format screen becomes
comma in the 127th. column.
columns 127 through 255 and will be attached to that line so that when the
report is sent to the printer, the two different lines on your screen will
be printed
on paper.
on the same line level
a
GQherí
and field placements.
line can contain printed information
SOLUTION
SENSIBLE
program, the program
line is called from wíthin a
collects the appropriate field values and prínts them in the specified
format for that line.
A reporter format
That does not
rnay contain
as many as 60 format
lines.
Each format
mean that you can only print reports 60 lines long!
line in a
reporter format may, and usually will, be used as the "template" for several
lines of data on the actual report.
For example, if you're printing a weekprobably use the same
by-week listing of several data fields, you will
The 60 format-line
means
that you can
simply
format line 52 times.
limit
only have 60 different line formats appearing on a single report íncludinC:
page headers, column headers, footinqs, column entries, totals, etc..
do
Each format
a format
Frankly,
the job.
The
we've
Most
SENSIBLE
never seen a report so complex that
of yciur reports won't go over ten!
SOLUTIONtm
60
format
lines
Tutorial
won't
11.3
Screen
below
patnt this Reporter Format
and
[ESC]
add
fields
as
dLsplayed
—-
OUR
COMPANY
COMPANY
SALES
**********************************
#########.##
TOTAL
SENSIBLE
SALES:
SOLUTION
#########.##
TOTAL RECEIVABLES:
tm
##
PAGE
REPORT
ACCT.
NAME
SALES
YTD
The
[AJ
NUMBER
OUTSTANDING
RECEIVABLES
DATE STARTED
DATE
OF
PAYMENT
mm/dd/yy
írun/dd/yy
########
#########.##
#########.##
Tutorial
11.4
LAST
so we're going
best way to learn to use reporter formats is by example
have
CUSTFILE.
Ne
to create a sample Sales Report for our old friend,
will
to perform five complete steps to produce an executable program to generate
Each step
sales reports.
will involve a separate program from the SENSIBLE
The
SOLUTION
main
menu.
-- Use 3) Screen Paínting
Specify that you are creating a Reporter format.
Enter the name of the
Create the report format lines as you see them on the
format: SALES.
opposite page. Your control keys operate just as they do when creating
boxes
you can not have
in a reporter
screen formats, with this exception:
and type headings and labels.
{ESC]
Move the cursor,
Now use
format.
[A]
(Add fíeld) to place each of the fields to be shown on the report.
Here is a partial list of the field name entries you will need to"Add" to
STEP
ONE
your report.
Do so
now.
#8)
on
= CUS.NAME (place
on
= CUS.CUSCODE (place
DATE STARTED = CUS.DATE
#8)
on
(place
#9)
SALES YTD = CUS.SALES
orí
(place
OUTSTANDING RECEIVABLES
(place
= CUS.RECEIVE
DATE LAST PAID = CUS.LASTPYMT
on
(place
COMPANY
NAME
ACCOUNT
NUMBER
In addition
to provide
(line
field
line
line #8)
field
field
line
field
line
field on
line
line #9)
field
#9)
to the
values
#10),
and
there are three fields we will need
fields from CUSTFILE,
the format línes -- "PAGE" (line #1), "TOTAL SALES"
for
"TOTAL RECEIVABLES"
(line #11).
These fields must be defined in the Data
reference to them on a report format. [ESC]
add the
definitions to the dictionary.
Dictionary
before
[A] (Add
fíe1d)
can
we
will
allow
make
us to
All three beof these fields are "temporary", in that the information they hold
not
retained in a data file after the MEMORY,
report has been printed. So,
will
we will place
them in the "phantom file",
we created
for the
CUSTPYMT
MEMORY
new
expand
accommodate
the
to
temporary
screen.
we'll
storage fields we'll need.
The
names
of these
fields follow the
N.12.2.1
"N"
and
convention
we
discussed
earlier:
N.12.2.2
that the fíeld holds a numeric value.
refers to the actual number of characters
means
"12"
field
The
namíng
(it's
SENSIBLE
length).
SC)LUTIONtIn
that
may
be
entered
Tutorial
4
11.5
to the
Use
@:
ESC]
[H]
SALES
copy)
(Hard
.SCC
format
reporter
OUR
COMPANY
listing
COMPANY
Page
.SCC
Field
name
N.2.0.1
reporter
#########.##
TOTAL RECEIVABLES:
format
File
listing
Size
MEMORY
2
CUS.NAME
CUS.CUSCODE
CUS.DATE
CUS.SALES
CUS.RECEIVE
CUS.LASTPYMT
CUSTFILE
CUSTFILE
CUSTFILE
CUSTFILE
CUSTFILE
CUSTFILE
34
N.12.2.1
N.12.2.2
MEMORY
12
MEMORY
12
The
SENSIBLE
SOLUTION
tm
8
8
12
12
8
PAGE
##
DATE STARTED
OUTSTANDING
RECEIVABLES
DATE OF LAST
PAYMENT
mm/dd/yy
rrun/dd/yy
########
#########.##
**********************************
#######'É#.##
SALES:
0001
NUMBER
ACCT.
SALES
YTD
SALES
No:
REPORT
SALES
NAME
TOTAL
print-out --
to obtain the following
#########.##
page
Col
Row
Key
070
001
046
066
023
046
066
023
046
01
N
08
08
08
Y
No:
0002
Y
N
C)9
N
09
09
N
10
N
11
N
N
Tutorial
11.6
"2" means that there
"1" and"2" (or 3 or
fields that are the
Position
TOTAL
cari
be
5,
decimal places in the number.
allow us to differentiate between
two
etc)
or
sanie size.
4
your cursor appropriately
Fiéld
File
SALES =
Name:
Name:
Type:
=
Field
File
Field
File
#10)
12
N
N.12.2.2
Name:
Name:
Type:
(place
MEMORY
field
on
line
#11)
N
12
2
Key:
=
line
2
Length:
Decimal:
PAGE
on
N
Key:
RECEIVABLES
add
MEMORY
Length:
Decimal:
TOTAL
these
fields:
N.12.2.1 (place field
and
memory
N
N.2.0.1
Name:
Name:
(place
MEMoRy
field
on
line
#1)
(this field was created previously)
When the
out correctly, send a copy of the format to the
is laid
report[ESC]
[H]
{q] and save the
using
(Hard copy), then press [ESC]
printer The
Main
format.
STEP
language
TWO
Use
--
(5.)
Menu
Inítíalíze
will
A
return.
Data
File
added
The SENSIBLE
be
SOLUTION must
two new fields to the fíle memory.
alerted to the change in file structure. Because MEMORY is a temporary
storage file,
"live" data. Consequently, we use "Main Menu
it neverFile"retaíns
5) Initialize
a Data
to perform this function.
You
STEP THREE
We
--
must
now
Code
Source
(4.)
Use
create
Editor
Code
Editor
that
use this report format.
will
Now create
specify SALES.
a program
and
as shown
on
for
file
name
the next page.
You'll want
file
the format at hand for reference
because you'll
which format lines to use when you write SALES.
source
printout
STE?
FOUR
code
Source
cjf
--
Use
Now
sirnply"escape"
The
SENSIBLE
(6.)
Coinpí1e
a Source
back to the Main
SOLUTIONtm
Code
Fí1e
Menu
and
use
selection
Enter the
the program
to keep your
need to know
6
Tutorial
to compile
11.7
Use
the
SALES
Source
.SRR
0002
C)003
OÜC)4
OCC5
CO06
CCC7
OCOF
CO09
to create the
SALES
program
listed below --
file listing
gosub
START
0011
CC12
HEADING
print forrríat-line#
print Forrnat-line#
OS
0014
CC15
0016
0017 HEADI6'G
0018
CC19
0020
C)C21
OC22
QG23
OG24
0¢)25
Ü02€i
C027
0(128 TOTALS
GC29
0030
print format-linet
print Torrnat-line#
print blank lines
06
07
OC31
=
return
print fornat-lineí:
print forrnat-line#
print page eject
execute
SENSIBLE
09
(N.12.2.1)+(CUS.SALES)
=
(N.12.2.2)+(CUS.RECEIVE)
print"blank lines 01
finá next rec in file CUSTFILE
goto START
N.2.0.1 = (N.2.0.1)+<1>
print blank lines 0101
print format-line# 02
print format-line# C3
yrint forrtat-line#
04
print forrriat-linef
print Eorrriat-line# 05
N.12.2.1
N.12.2,2
OG13
The
source
Editor
remark
AND
MEMORY
CUSTFILE
remark OPEN FILES:
PAGE
gosub
HEADING
BREAK
trap
trap FILE ERROR goto TOTALS
mount
report format SALES print on ask at run time
page
printable
lines = 60
yrinc
page
lines
= 66
total
print
finá first rec usino field CUS.CUSCODE
ClOC1
(JÜ1G
Code
SOLUTION
tm
.Run
file
01
10
11
CUSMENU
Tutorial
11.8
code.
your source
STEP FIVE
--
Use
(I.) Execute
SOLUTION
A SENSIBLE
Program
the main menu appears again you have a sales report program ready to
1 and
choose
specify the file name, SALES.
selection
generate your report.
THERE!
You've done it.
When
that you've finished, let's
source code listing.
Now
As
Line
"trap
3
time
trap
the
BREAK gosub
PAGE
the
construction of our
4
reaches the end of a page,
printer
HEADING."
The
and
BREAK"
trap
ERROR
FILE
goto
TRAPS
HEADING
"gosub
command
This
lines labeled"HEADING."
heading at the top of the next page.
PAGE
Line
review
done
certain
Each
and
back
in our other programs, the first thing to do is to set
conditions that way occur during program execution.
we have
for
go
want the program to
jumps to the group of
will print our report
we
"gosub"
subroutine
TOTALS
on each of the
the sales report has gathered all required informatíon
we
an "end of file error"
At
customers in CUSTFILE,
occur.
this time,
will totals
and exit
to. have our final sales and receivables
want
printed
will
So control
branches to the portion of the proqram
from the SALES program.
that does this (beginning with the line labeled TOTALS).
When
Line
5
mount
report
format
SALES
print
on
ask
at run tíme
in other programs we have created, we must "Mount" our SALES report
format screen. At the time of program execution, we want the program to ask
the operator where they want the report to be sent-- to the Disk, the CRT,
or the Printer.
As
Line
Line
The
the
7
print
prínt
page
page
printable
Lines =
total Lines = 66
60
next two lines of our SALES program set the paper length at
amount
space
on that paper at 60 lines.
of printable
Line
Line
Next,
The
6
we
8
9
fínd
gosúb
rec
first
HEADING
have the
SENSIBLE
usíng
computer
SOLUTIONtm
field
find the
66
lines
and
CUS.CUSCODE
first
record
in
CUSTFILE
Tutorial
and
11.9
then
Use
the
SALES
Source
.SRR
0001
0002
0003
0004
0005
0006
O0C7
0008
0009
(1010 START
ÓC11
0012
0013
0014
0015
0016
0017 HEADING
0018
0019
0020
0021
0022
0023
OC24
0025
Q(J26
OC27
OC28 TOTALS
0929
OC30
0031
The
SENSIBLE
Code
source
Editor
to create the
SALES
program
listed below --
file listing
remark
AND
MEMORY
CUSTFILE
remark OPEN FILES:
PAGE
gosub
HEADING
BREAK
trap
trap FILE ERROR goto TOTALS
mount
report format SALES print on ask at run time
print page printable lines 66 = 60
print page total lines =
find first rec using field CUS.CUSCODE
gosub
HEADING
print format-line#
print format-line#
08
09
N.12.2.1 = (N.12.2.1)+(CUS.SALES)
N.12.2.2 = (N.12.2.2)+(CUS.RECEIVE)
print blank lines 01 CUSTFILE
find next rec in file
goto START
N.2.0.1 = (N.2.0.1)+U>
print blank lines 0101
print format-line#
print format-line# 02
print format-lineE 03
print format-line# 04
print format-line# 05
06
print forrnat-line# 07
print format-line# 01
print blank lines
return
print format-line# 1011
prinz format-line#
print page eject CUSMENU
execute .Run file
SOLUTION
tlñ
Tutorial
11ÑO
program
control
Line
Line
Line
Line
Line
Line
Line
Line
Line
Line
Line
17
jumps
HEADING
to the
N.2.0.1
prírrt
prínt
prínt
print
prínt
print
prínt
print
prínt
18
19
20
21
22
23
24
25
26
27
line labeled
HEADING.
= (N.2.0.1)+<1>
blank Lines 01
format-1íne# 01
format-1íne# 02
format-1íne# 03
format-1íne# 04
format-1ine# 05
format-1íne# 06
format-1íne# 07
blank Lines 01
return
"HEADING"
The
paCe$
subroutine
prints the heading at the top of eachnumber
page
N.2.0.1 = (N.2.0.1)+<1> is the cornrriand which specifies
Then we print a blank line, and next, the
incrementation.
first seven lines
of the reporter format which we created with the Screen Painter. This is
followed by another blank line. Finally, program control is returned to the
line following the "gosub HEADING" command.
Line
Line
Line
Line
Line
Line
Line
10
START
11
prínt format-líne#
prínt format-1íne#
08
09
N.12.2.1 = (N.12.2.1)+(CUS.SALES)
N.12.2.2 = (N.12.2.2)+(CUS.RECEIVE)
prínt blank Lines 01 CUSTFILE
fínd next rec ín fí1e
goto START
12
13
14
15
16
Beginning at the label START, the first two command lines (lines 10 and 11)
print the two lines in our reporter format that contain the fields that hold
individual customer information (i.e., companyandnajne, acct. number, date
date of last payment).
outstanding
receivables,
started, sales 12 YTD,
Command
and 13 work as summing
devices to compute TOTAL SALES and
lines
TOTAL RECEIVABLES.
Line 14 prínts a blank line, which will separate the
Now
easier to read our report.
data on each individual customer, making
our program directs the computer to find the next customer record in
and "goto" the line labeled START.
CUSTFILE
This program loop will continue
by command
and
trapped
an"end
of
line 4. The
is
occurs
error
file"
until
send
command
TOTALS.
trap will
program control to the
line labeled
it
Line
Line
Line
Line
The
213
TOTALS
29
30
31
SENSIBLE
SOLUTIONtIn
prínt format-1íne#
print format-1íne#
prínt page.Runeject
execute
fí1e
10
11
CUSMENU
Tutorial
11.11
Use
the
SALES
Source
.SRR
SALES
program
listed below --
file listing
gosub
START
HEADING
OC1l3
OC19
0020
0021
0022
0023
0024
0025
0026
0027
0028 TOTALS
0029
DC30
0031
The
to create the
MEMORY
AND
CUSTFILE
remark OPEN FILES:
PAGE
gosub
HEADING
BREAK
trap
trap FILE ERROR goto TOTALS
mount
report format SALES print on ask at run time
print page printable lines 66 = 60
print page total lines =
find first rec usinq fíeld CUS.CUSCODE
OOñ7
OG17
source
Editor
remark
0001
0002
0003
0004
0005
0006
0008
0009
0010
00'11
0012
0013
0014
0015
0CV3
Code
SENSIBLE
HEADING
print format-line¥
print format-line#
08
09
K.12.2.1 = (N.12.2.1l+(CUS.SALES)
N.12.2.2 = (N.12.2.2)+(CUS.RECEIVE)
print blank lines 01
find next rec in file CUSTFILE
goto START
N.2.0.1 = (Nw2.0.1)-i-<1>
print blank lines 0101
print format-line#
print format-line# 02
03
print format-line# 04
format-line#
print
print format-line# 03
print forrnat-line# 06
print format-line# 0107
print blank lines
return
print format-line# 1011
print format-line#
print page eject CUSMENU
execute .Rur. file
SOLUTION
tin
Tutorial
11.12
prints the
lines
The group of ccmrnand
labeled TOTALS
computed
and stored by command
lines 12 and 13.
"TOTAL
SALES"
and the memory
line label
value.
line
surtís
of what
Format line 10 contains
N.12.2.1 which holds
field
label "TOTAL
was
the
this
RECEIVABLES"
and the
contains the line
holds
value.
Since
which
the
that
report is
field
completed, the page eject command will immediately'
force a printer paqe
advance,
based
on the number
of lines we specified are to be printed on each
page. If the program user sent the report to the screen instead of to the
have the effect of locking the screen display
printer, this command will [RETURN]
key.
the
the
Without this command, the program
presses
user
until
would exit immediately and the user would not have the opportunity
to view
the information
Finally,
in the report.
the program ends bv executing the
.RUN
CUSMENU, and program users are presented the CUSMENU
to allow for
file
menu
selections.
further
Format
11
N.12.2.2
memory
Graduatíon
Day!
Reference Section
of the SENSIBLE SOLUTION manual contains detailed
and commands
information
on all the features,
procedures
in the language.
In addition you will find discussions on file and record locking on multithat can
user systems and converting foreign databases into data structures
be read and manípulated by SENSIBLE
SOLUTION.
The
What
we've
gi.ven
an introduction
is
and
system that lets you quickly,
The
moíÁEylmsines"
database applications.
SENSIBLE
SOLUTION
kpe?s track olí the frustrating
details while you
enhancing old ones, and
on desiCninC
new
concentrate
a?plications,
integrating
applications
into your particular business environment.
interactively
Is
it
any
you
design
wonder
we
call
it
The
to
SOLUTION?
SENSIBLE
*
*
a
and
*
0
The
SENSIBLE
SOLUTIONtm
Tutorial
11.13
The
SENSIBLE
SOLUTION
Language
Table of Contents
REFERENCE
File Extensions.
File List.
Plain Menu
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Programs
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1.1
1.2
1.3
2.1
.
MENU
Main
Menu.
.
.
.
.
.
.
.
.
.
.
.
.
SELECTIONS
.
.
I) Execute A SENSIBLE SOLUTION Program
2) Data Dictionary
Maintenance. . . .
3) Screen
Painting
.
.
.
.
.
.
.
.
.
4) Source
Code Editor
.
.
A
5) Initialize
Data File
.
.
.
.
.
.
Compile
Rekey
Inquire.
.
.
.
.
.
If
Go
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
File.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
COMNANDS
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3.4
.3.22
.3.31
.3.38
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.3.4!0
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Print.
.
.
Trap . . .
Execute. .
!
(remark)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Unlock
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
The
3.1
.
Mount. . .
Save rec .
Delete rec
Clear. . .
Find . . .
Lock
.
.
.
.
LANGUAGE
Enter. . .
= (equals)
.
.
.
File
A
File
.
.
.
2.2
.2.10
.2.23
í'.29
.2.34
.2.37
.2.39
.2.41
.2.44
.2.46
Code
Source
A Data
.
Restructure A Data
Program
Generator. .
6)
7)
8)
9)
10)
MANUAL
SENSIBLE
SOLUTIONtññ
Reference
.
.3.42
.3.44
.3.49
.3.59
.3.72
.3.76
.3.78
.3.79
.3.85
i
DATA STRUCTURES
Record
l?ieKí
Layout0
'Types.
.
a Data
*
3
.
R
*
*
.
·
p
3
·
.
.
3
.
.
0
0
.
.
S
.
.
»
.
.
.
.
.
.
.
.
.
.
.
.
4A
4.6
4.7
.
.4.10
S
?
0
.
*
.
*
p
9
o
0
s
.
.
.
.
.
.
X
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
0
.
.
.
.
.
.
.
.
.
0
.
.
.
.
.
3
.
.
1
7
0
.
Structure.
Altering
Translating' Foreign Data
Multi—User Considerations.
40
e
.
3
0
.
.
.
.
APPENDIX
Specifications.
0
.
.
.
.
Complete File List . . . . . . .
SOLUTION File Extensions.
SENSIBLE
SOLUTION Language
SENSIBLE
Files
(and files)
Main Menu Selections
System
.
.
.
.
.
Error Messages.
System
MENU.SCC,
ARRAY.SCC,
The
MENU.SRR .
ARRAY.SRR
SENSIBLE
.
.
.
.
.
.
.
.
.
.
.
.
.
.
e
a
.
.
P
.
.
.
.
.
.
.
.
S
.
.
.
O
.
.
.
.
q
.
.
.
.
.
.
.
.
.
.
.
S
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5.2
5.3
5.4
.
·
·
.
*
.
.
*
·
*
O
.
.
.
.
.
+
.
.
¥
5»5
.
.
.
.
.
.
.
.
.
.
.
.
.
3
.
0
*
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
0
.
.
.
.
.
.
0
.
.
.
.
.
.
.
0
.
.
.
.
.
.
.
o
.
.
.
.
.
.
0
.
.
.
SOLIjTIONtm
5.1
Reference
5.6
.5.11
.5.13
.
ii
The
SENSIBLE
SOLUTION
FILE
The
Language
EXTENSIONS
filename.COM
Directly executable
filenarae.SCC
Screen
format or report
filename.SRR
Source
code
filenarrie.RUN
Executable
filename.MS
Master data
filename.XS
Key
filenar!le·IQ
Inquire
filer,ame.LST
ASCII
SENSIBLE
SOLUTIONtm
code
file
format source
file
file
SENSIBLE
SOLUTION
oroqram
file
file (for
the
report
text
machine
.MS
format
file)
and
gelection
criteria
file
P.eference
1.1
file
The
SOLUTION
SENSIBLE
FILE
demonstration
mail
MENU
main
menu
!Y1ENU
.RUN
.SCC
.SRR
ERRENT
ERRFLE
ERRFLE
.RUN
.KS
.MS
change
system
error message
key
message
error
error message data
FLDFLE
FLDFLE
RECFLE
RECFLE
.KS
.MS
.KS
.MS
key
!!'IE?·ÍORY
.KS
.MS
..d
YEMORY
list
file
data file
screen format file
source code file
key
program
program
screen format file
source code file
file
file
program
information
file ofof all field
information
field
file of all
key
information
file
file
all
data file of all file information
temporary memory variable key file
temporary memory variable data file
data
SENSETTJP.COM
SENSCTRL.MS
TERMDEFS.MS
installation/configuration program
definition data file
terminal definition data file
SENSFREE.COM
multi-user
SENSIBLE.COI'4
ENTFLE
.RUN
SENSCRN .CON
language executive program
maintenance program
data dictionary
screen paintincc program
source code editor program
inítialization program
file
compiler program
key
file re-key programprogram
data file restructure
automatic program generator program
quick report generator prooram
SENSCMD
.CONt
SENSINIT.COM
SEP'SCOMP.COM
SEHSRKEY.COM
SENSRSTC.COM
SENSGEN .COM
SENSINQRpCOM
The
LIST
MAILLIST.RUN
RIAILLIST.KS
MAILLIST.MS
AAILLIST.SCC
MLAILLIST.SRR
MENU
"
Language
SENSIBLE
SOLU'FIONtm
system
system
utílity
program
Reference
1.2
The
SOLUTION
SENSIBLE
MAIN
Execute
PROGRAMS
MENU
SENSIBLE.COM
2)
ENTFLE
.RUN
Data
3)
SENSCRN
.COM
Screen
Painting
4)
SENSCMD
.COM
Source
Code
5)
SENSINIT.COM
Initialize
6)
SENSCOMP.COM
Compile
7)
SENSRKEY.COM
Rekey
8)
SENSRSTC.COM
Restructure
9)
SENSGEN
Program
10)
The
.COM
SENSINQR.COM
SENSIBLE
SOLUTIONtm
program
Maintenance
Dictionary
A
SOLUTION
A SENSIBLE
I)
A
Language
Editor
File
A Data
Source
Code
File
File
Data
A
ijata
File
Generator
Inquire
Reference
1.3
want a list of
to"90000".
After
prompted with:
you
What
Value
do
all zip
codes
in this
the operator
you
enter
you
wish to use:
Enter the number "90000".
the data file that contain
listed out.
that
file
symbol,
report is
When the
a ZIP.CODE
value
are greater than or equal
be
you will immediately
finally
90000
of
run, all records
or greater will
in
be
Notice that you are free to select a field even
is not part of the
You can also select
information
printed in the report.
multiple criteria
thus making your report more restrictive.
Your report will contain only
those records that passed the first test, and the second test, and sc) on.
When you have
completed defining your selection criteria, simply press the
Ireturn] key after th.e"Enter Fieldname to Select by" prompt and you will
move
out of this cycíe and into the next phase of defining an Inquire
format:
if it
Enter Fíeldname to Sort by:
.
At the top of your screen you will see a directory of all k'ey fields for
Enter one of these field ríames to give Inquire
your partícular data file.
a sorting
criteria for your report.
Inquire
will
Send
now
ask
output to
where
you
want
the report
µrínted
Printer, crt, or Disk fíle? (Press
out:
p,
C,
or
D)
elect to send it to a disk file your report can later be read by a
If youeditor
or word processing
program for inclusion in a document or
text
When the report print out
of
letter.
is finished youchose
will toseehavea summary
you
the
your selection criteria and display format.
report
If
sent to your screen, press the Isl key or [RETURN]
to indicate to the
?roCram
that your work is complete and you will see the criteria and Zormat
information:
File Selected:
"
"
Heading Option:
Field(s) Selected:
The
SENSIBLE
SOLUTIONtm
Reference 2.49
Line 1
Line 2
(up to 4 JAnes)
Se1ectíon crítería:
Sort Key Se1ected:
you want to save
At the bottom of your screen a prompt will appear asking
One of nicest features of Inquire is
this format.
ability"Y" to save
itsanswer
To save
frequentlyandused formats in a disk file.
to the
it,
You-r repcn"t
questi-on
then answer the next prompt with a file name.
format will be saved in a disk file with the extension ".IQ".
if
Eriter format Fííename (save):
wí1l now be returned to the original data file directory where you can
begin the creation of another Inquire quick report, exit back to the main
menu
or the operating system, or re-run any previously áefined Inquire
Remember,
Use your
Inquire reports are all named "filename.IQ'L
reports.
operating system directory
to keep track of all the Inquire report. formats
you develo>
You
,
first data file directory is displayed by Inquire, you
of either choosing one of the displayed file names to create
report or you can press your [ESC] key to load and run a
defined
you choose the latter, use "Load
previously
report format.
menu
name
and then enter the
format" from the high-lighted
The format that you specified
(filename.IQ) of the format you wish to use.
be displayed
You can then examine
on your screen.
the format criteria
will
and,
you are satisfied, run the report.
time that the
Any
have the option
a new
quick
If
file
íf
The
SENSIBLE
SOLUTIONtíñ
Reference
2a50
name from which
file
the following prompt:
you
wish to create
want Fieldname headings
Do you
on
a
quick report.
report?
(Y
Next,
you
will
see
or N):
In a moment you will be selecting the field data that will be printed on the
report in columnar form. Answering "Y" to this prompt will force Inquire to
print a column heading that will appear at the top of every page of the
is printed out.
report as
it
The
next prompt,
Do you
wish to substítute
Fieldname headings?
(Y
or N):
the option of either using the actual field names as headings
IE
a unique heading that you will specify.
or substituting
be
above
"Y"
a
select
you
that
to
time
answer
prompt, every
field
you
to the
printed on the report, another prompt will soon follow requesting that you
specify whatever heading you want to see printed at the top of each page of
the report.
Inquire will ask for a field then Inquire will ask for a
heading.
·
give you
will
on your report
Make your choice and you
on the report:
you want
Enter Fíeldname to
will
then
be
requested to enter the
narne
of
a
field
print:
At this staCe you should notice a directory displayed on the top of your
You
will
screen that shows all of the fields contained in this data file.
also see a status line displayed on your screen:
Total print—out
length:
line
This line indicates the current position for the start of the next field you
Remember,
you can only
enter (columns) and the line number of your format.
4
Do
maximum
however,
format.
not,
display
lines as an Inquire
of
specify a
how the
A
defines
format
length
of
report.
the
with
confused
your
get this
The
SENSIBLE
SOLUTIONtm
Reference
2.47
print out
will look
thousands of records
for each record that is printed,
and
in length.
the
report
can
be
you press the
If
the bottom of
Iesc] key at this stage, a high-lighted
menu
at
will appear
Use the space
bar to move the high-light
your screen.
block
to the desired option and press the [RETURN] key to activate the option.
If
your field name directory is very long, you can use "Next screen" and
"Previ-ous screen" to scroll through
it. "Line change" will shift you to
another format line (from 1 to 4), "Space
insert" will allow you to create
spaces in between your columns (2 are automatically inserted), "Restart
program" will return you to the original data
directory, and "Quit"
abort the Inquire program and return you to file
the operating system or the
will
To turn off this
main menu.
to the prompt,
six option menu and
"Enter Éieldname to print," simply pres.s the {ESC] keyreturn
again.
Everything we have discussed up to now is simply a repeating cycle that
will
allow you to define the format of a record as it. is printed on your
report
-- field column, heading, line spacing, and column spacing.
Every time
that you specify
field in half-intensity.
fields that,you want printed
print" prompt with
Inquire
will
field
to set
(
?
"begín
Fíe1dname
Enter
The
now
narne
carriage
a
that
field,
a new
the
When you are
on the report,
answer
[RETURN]9
return
another
directory will display the
finished specifying all of the
the "Enter Fieldnarne to
--
phase
of the report
format
definition:
to Select by:
you
enter here
will
up:
be
used
in
a
test that
you
are about
<
>
!
ís Equals
ís Less Than
ís Greater Than
ís Not Equal to
)
Than
ís I.ess
or Equal to
ís Greater Than or Equal to
the Fíeld Includes the Value/Stríng
ís
Entered
What
/
/
/
If
Operator
do
you
/
wísh to use:
Inquire will want to know how to select the records you desire.
You just
entered a field name,
now use an operator
to specify some value for all
of the records.
For example,
a zip code
you selected
called
ZIP.CODE,
you could then choose
the operator ")" to indicate to field
Inquire that
if
The
SENSIBLE
SOLUTIONtrñ
Reference 2A8
This running comment alerts the operator
that the program generator is
working.
may pause for several
Note that the generator
seconds when
integrating
command
a screen format
the
compiled
This is
file.
file into
because each field reference
in a screen or report rnust be located and
linked.
an appropriate
are encountered during program generation,
errors
If
complete
is displayed. All erro,r messages are self-explanatory.
of error messages and explanatory
comments will be found in the
list
When
Appendix of this manual.
is finished,
will return you to
it initiated
the system level or the main menu depending upon how you
it.
any
message
A
SENSGEN
when
you enter the file narne, SENSGEN finds that a matching program
If,
source code file (filename.SRR) already exists on the disk,
ask
will
you wish to overwrite
it
that source code file -- "Overwrite?".
you answerif
If
"Y",
the automatically
compiled source code file (filename.SRR) will replace
The older
the older source file bearing the name "filename.SRR."
files will
be
lost.
#
;?
I
C
The
SENSIBLE
SOLUTIONtIn
Reference 2.45
T
Main
SENSINQR.COM
menu
selection
10
Inquíre
Overview:
(SENSINQR.COM)
a quick,
powerful,
data-scanning
allow you to extract data
Inquire
provided with SENSIBLE SOLUTION.
from a
format;
send the formatted
create a unique
and then save
the display format
report to the CRT, disk drive, or
You can use any combination
a dísk
of
to
use.
Each
a
a
record
meets the
selecti-on
that you specify can be printed out on from 1 to 4 lines
The
on the
form the columns of the
you
You can
the spacing between the columns and you can also
blanks lines between the records.
Inquire reports can extend to a.
127
The
maximum width of
columns.
quick
generator also
provides an excellent tool
experimenting with formats that you may
SOLUTION report
a SENSIBLE
wish
incorporate
generating prograrrc
"Inquire"
is
single
file;
file for future
selection criteria for
criteria
fields that
report.
adjust
report.
print
for
into
to
in
define
facility
will
display
printer;
report.
specify
that
fields
will
Inquire
report
later
Operation:
To execute
command
Inquire
line:
from the operating
d>SENSINQR
system level
d:formatname
type
you
can
type out
a
[RETURN]
"d" is the drive location of the format, and formatname is the name of
format which you have previously created and saved using SENSINQRe
Follow.í-ñg execution, the program will return to the operating system leveZ
where
a
level
If you choose to initiate Inquire by typing SENSINQR from the system
by
begin
Inquire
or by choosing selection 10 from the main menu,
will
a
displaying
directory
of all data files and then request that you enter a
The
SENSIBLE
SOLUTIONtñi
Reference 2A6
,
specified in
If the data file thatbeyoudisplayed:
another message
the above
message
can
not
be
found,
will
not found
After entering
a
in
Data
valid
Dictionary
file
name
and
drive location,
RESTRUCTURE
will
messages,
immediately begin execution.
one after the
will display five
other, describing each phase of Itoperation as
reads the old data file and
translates
into the newly created file. When the program is finished, a
message will appear to remind you to REKEY the file and RECOMPILE
all
programs that access the data file.
it
it
The
program
involves a great deal of dísk accessing,
For this reason,
a large data fij± having many keys.
you have
a multi-user
system with large
is time consuming.
If
be done
when
data files, we recommend that a restructure operation
your
computer system is quiet, such as overnight.
RESTRUCTURE
particularly
RESTRUCTURE
with
One other multi-user
can not restructure
a data file
you
consideration:
by another user.
However,
that is currently
being accessed
the corollary
is
also true -- once you have successfully initíated RESTRUCTURE,
any other
user attempting to access the same data file will be "locked out".
%
·J
.
The
SENSIBLE
SOLUTIONtm
'
Reference 2.43
SENSGEN.COM
Main
Program
menu
selection
9
Generator
Overview:
and then
will read a specified screen format (filename.SCC)
automatically create a file maintenance
program source code listing
SENSIBLE
SOLUTION program (filename.RUN).
(filename.SRR)
and an executable
by the screen format have
(filename.MS/.KS)
the
data
referenced
not
files
If
yet been initialized,
also
automatically
the
data
initialize
files
will
SENSGEN.COM
a maximum
of
program.
prior to compiling theit
will accept
The resulting
be used
maintenance
may
sixteen data fileso
program
file
immedíately
to examine, update, or enter new records in a data file.
It
be
and
This program
also
to quíckly
modified
develop a
may
more
extended with
sophisticated
the source
application
editor,
program.
code
o
SENSCMD.COM,
Operatíon:
SENSGEN.COM
may be initiated from either the operating
system level or from
The program
the main menu.
begin by asking you the name of the screen
will
format: file (filename.SCC)
to read.
Enter that name and
you want
SENSGEN
maintenance
program
create source code for a
(filename.SRR), initialize
the appropriate
data files
they do not exist
and compile
(filename.MS/0KS),
the source code into an executable program
The SENSIBLE
SOLUTION program generator
(filename.RUN).
goes
through five
phases:
it
will
file
fields
-- Checking
Data
Initializing
files
-- Generating Command
Source
file
Checking for Target Labels
-- Checkíng for Goto/Gosubs
--
'
——
...
The
and
for
SENSIBLE
each
phase
SOLUTIONtm
tells which line of the
if
command
file it is
scanningQ
Reference
2344
,
Main
SENSRSTC.COM
Restructure
A
Data
menu
selection
8
File
Overview:
It often happens, as an application is put to use, that the structure of the
data file must change. New fields are needed, old fields are seen to be
unnecessary, some fields must stretch to accept more characters or shrink to
SENSRSTC.COM,
the restructure utilíty, provides a
conserve disk space.
convenient
way of converting
existing data files to the new structure
without losíng any of the data.
SENSRSTC.COM
If)
performs
three
operatíons:
reads FLDFLE (the Data Dictionary) to determine what
changes you have rrtade to the current file structure definítion.
That is,
reads the field names, location of fíelds within the
record ("Offset"),
the type of fields (alphabetic,
numeric, date,
etc.) and whether you have added or deleted keys©
Then
compares
this old definition to the new definition.
SENSRSTC
it
it
2.)
in
3.)
calculates the new "Offset" values -- the location of
field within the record -- and embeds the new "Offset" values
SENSRSTC
each
FLDFLE.
containing
It reads the original data file (filename.MS --the onefilerecord
the original data that you wish to preserve),
at a
time, and rewrites the data out to a new filename.MS using the new
file structure definition.
need only restructure
data files that have records in them that you wish
you
retaín.
to
are willing to abandon the data in a fíle, you need merely
If
INITIALIZE the file (using SENSINIT.COM)
after you have made the necessary
changes
Remember,
Data
the
Dictionary.
though, you must never alter the
in and
then INITIALIZE a data fije that contains data that you wísh
structure
a complete discussion
REKEY,
on when to use the INITIALIZE,
preserve.
to
and RESTRUCTURE
programs can be found in the reference
section on Data
You
The
SENSIBLE
SOLUTIONtm
Reference
2.41
Struetures.
Qperatíon:
t:
SENSRSTC.COM,
e%RESTRUCTURE
system level or from the
from the operating system
restructure.
system level.
If it
level,
d>SENSRSTC
where filename
file extension)
run from either the operating
main menu.
is executed
out a command line:
program can be
SOLUTION
SENSIBLE
you can type
###
filename
the name of the data file
is
"###"
and,
optionally,
is the
execution,
program
Following
not need to specify the
of records you want to
you will be returned to the
(you do
number
to initiate RESTRUCTURE by typing SENSRSTC from the system
If you orchoose
A Data File,°' the
by selecting main menu number 8, "Restructure
level
be
on
dísplayed
your screen:
following prompt will
Enter the
Enter
will
name
of the
file
the name of the data
displayed:
be
Create work
(Restructure
file fi1ename.M$$
will abort if
to
be
file
on
********
restructured
(filename.MS),
and
drive
[ENTER]
work drive
:
has
(press
to
little
the
free
following message
or work drive
letter)
space)
creates the new
has to make a temporary work file before
have
Thus,
disk
time,
to
a
storage
data file.
your
f:jr
will
amount
of data that is twice the size of the original data file3
RESTRUCTURE
To provide for this extra work space,
will allow you to
desígnate a different drive location to contain the temporary work file*
you will
For example,
your original data file is 1OOOK bytes in size,
need at least 200OK bytes of free space on this same drive to avoid the
necessity of designating a unique temporary work drive location.
If your
type in a different
present drive location does not have enough free space,
drive location letter than the one displayed.
it
RESTRUCTURE
restructured
contain an
if
The
SENSIBLE
SOLUTIONtm
Reference
2o42
Maín
SENSRKEYeCOM
Rekey
A
Data
menu
selection
7
Fije
Overvíew:
time that a different set of key fields has been defined in an existing
be rebuilt and the record
must
data file, the index-key file, fi1ename.KS,
be
the
of active
counter in the file must
total number
reset to reflect
by re-keying
SENSRKEY.COM
performs these functions
records in the file.
SENSRKEY.COM
should be be
the SENSIBLE SOLUTION data file, filename.KS.
has been
data
used any time that an exísting data file containing "live"
SENSRSTC.COM)
and the number or length of key fields
(see
restructured
specified in the file has been changed.
Any
and wish to
initialized an exísting data file (see SENSINIT.COM)
SENSRKEY.COM.
Once the
records
must
the
data
use
you
in thatSENSIBLE
recover
file,
be
has
SOLUTION
able to use the
data fíle
been re-keyed,
will
filename.kS file to determine the number and locatíon of records stored in
the data records "lost"
the filename.MS
file -- effectively recovering
on
during file initializing or restructuring.
For a complete discussion
when
on Data
see the section
to use Initialize, Rekey, and Restructure,
Structures in thís reference manual.
If
have
you
Qpera'tíon:
SENSRKEY
menu.
command
can
called from the operating system level or from the main
executed from the operating system level, you can type out a.
be
If líne:
it is
.
d>SENSRKEY
where filename
extension) and,
The
SENSIBLE
the
is the name ###of where
optionally,
SOLUTIONtm
filename
data
you
###
(do
filespecify
may
the file
not include
the number of records
Reference 2.39
you want
command
you do not enter a number at the
to re-key.
If
of
the
records
line, all
within the file will be rekeyed.
end
of the
If
you choose to initiate REKEY by selecti»g main menu 7, "Rekey A Data
File",
a promp't
screen requesting the name of the data file
will appear on you
that you wish to rekey.
be asked
enter the file name you
After
to
enter the number of records that you want to rekey will
either
the
to
or
press
[RETURN] key to re-key
the entire file.
you first initialized a file containing "live" data and you want to
recover the data records, you must enter a number equal to or larger than
the number of records in that file or simply press the [RETURN] key to rekey
of the records in the file. Remember that any time that you use
all
SENSINIT.COM
SENSINIT
to initialize a data
will display the actual
number
of records in your file. Thefile,
re-key program will automatically
rebuild the index-key file (filename.KS) while displaying the key values of
does so.
The program
when
all .records as
finíshes rekeyinq
willor stop
the number of records that you specified
comes
to the end of the data
If
it
it
file.
When
SENSRKEY
has
the name of a data
return to the main
completed the re-key operation,
Press the
file to be re-keyed.
again ask
it will
[ESC}
(escape)
menu9
you
for
key to
If you have a large multi-user system you should refrain from using SENSRKEY
while other users have access to the system. This is because
the SENSRKEY
program ínvolves a great deal of disk accessing, particularly with a large
User
data fíle containing many key fields.
For
response time may suffer.
very large data files on multi-user
systems, re-keying ís best left to quiet
periods such as overnight.
other
multi-user
One
.not
be
The
SENSIBLE
consideration
SENSRKEY can
should be mentioned here.
other
same
accessing
the
data
user
is currently
initiated
However, the corollary is also true. Once you have successfully
file.
initíated SENSRKEY, any other user attempting to access the same data file
wí1l be "locked out".
if
some
SOLUTIONtrrl
1
Reference 2.40
Main
SENSCOMP.COM
Compí1e
Code
A Source
menu
selection
6
Fije
Overvíew:
ís
SENSCOMP.COM
the SENSIBLE SOLUTION language compiler program.
executable
used
(program)
to compíle a SENSIBLE SOLUTION command
SENSIBLE
SOLUTION
SENSCOMP.COM
a
search
pseudo code.
by a .SRR extension.
name
the
you
SENSCOMP.COM
the
into pseudo code and
then compile the .SRR
named filename.RUN.
code
You can execute SENSCOMP.COM from
a new
either the operating system level or frorn the main menu.
is
file
specify followed
file
will
file
containing
into
will
file
into
It
for
file
write
Qperatíon:
File".
location
will
letter
"Compile A Source Code
of your screen requesting
that you
wish to compile.
Enter the drive
the file you wish to compile
simply
logged on"to,
are currently
select option
SENSIBLE
SOLUTION
main menu,
A prompt
appear at the top
(program) you
enter the name of the
and then the
name.
(filename.SRR) resides on the drive you
name.
type a space and then the
From
file
file
file
6,
If
search for the command source file
compiler program (SENSCOMP.COM)
willdrive.
An
on the specified disk
(filename.SRR)
error message will be
displayed
the file is not found.
press any key to clear the error
message;
the SENSIBLE SOLUTION main menu will return.
The
if
The
SENSIBLE
----The
SOLUTION
compiler
goes
Checking for Target Labels
Checking for Goto/Gosubs
Checking for Screens/Reporter
Writing out compiledcommand
SENSIBLE
SOLUTIONtm
through four
phases:
formats
file
Reference 2.37
-
and for each phase
tells which line of the command file
...
is scanning.
This running comment alerts the operator that the compiler
Note
is working.
when
that the compiler may pause for several seconds
a
integrating
screen
format file into the compiled command file. This is because each field
reference in a screen or report must be located and linked.
it
duríng the compile,
If any errors are encountered
displayed.
All error messages are self-explanatory.
DUPLICATE
.PROGRAM
of
When
menu.
The
appropriate
(Examples:
is
message
THERE
ARE
SCREEN NAMES IN THIS PROGRAM.
APPEAR ONLY ONCE
IN A
A
and THE FIELD LENGTH WOULD
EXCEED THE RIGHT MARGIN)
complete
and explanatory
be found in the Appendix of
comments
messages
manual.
compile,
modify your command
not
your program
4, "Source Code
and then
main menu
SENSCOMP.COM
completed,
you to the main
error
this
using
an
A
If
selection
compilation is
SENSIBLE
SOLUTIONtm
will
SCREEN
MAY
list
file
will
Editor"
will return
re-compile.
Reference
2Á38
Qperatíon:
SENSINIT
can
be
Ifline:
it is
menu.
command
executed from either the operating system level or the rnaín
executed from the operating system level, you can type out a
d>SENSINIT
where
When
filename
SENSINIT
filename
extension is required).
is the name cjf the data
file (no tofile
be
you
finished
returned
the
system level.
is
will
the file
Dictionary to determine
and
disk
the
current
identification,
structure, field identification,
Cícjes this by looking at the
SENSINIT
drive location of the data file.
information
in the two Data Dictionary files, RECFLE.MS, and FLDFLE.MS.
If
do
the appropriate data files corresponding to the fíle name you specified
SENSINIT
new
not exíst on the disk,
fí1ename.MS
the
create
two
will
files
and
SENSINIT
works
by
checking
the
Data
key
fííename.KS.
If
there are any active data records
will display the méssage:
in the
Thís fije has # data records.
Do you REALLY want 'to ínijtía1íze
file
being
initialized,
SENSINIT
thís fí1e (Y/N)?
Consider
When
a data
your response carefully.
you INITIALIZE
file
containing data, the records stored in filename.MS will not be affected.
However, the record counter, the total number of records in filename.ZtS,
to any SENSIBLE SOLUTION
will be set to zero. Therefore, it willThe appear
record counter can be reset by
program that the data file ís empty.
using the
here.
REKEY
program
and
entering
the
number
of data records
displayed
4
you have
If
INITIALIZE a
changed the structure of the records in a data file, never
data file containing data that you wísh to maintain. The data
stored in filename.MS will become corrupted and the former valid structure
of the data will not be recoverable.
Always use SENSRTC.COM, the data fíle
restructuring utility, to convert existing data files to a new structure
without losing the data.
The
SENSIBLE
SOLUTIONtm
Reference 2.35
The
Dictionary
samesuccessfully
not If
you
SENSIBLE
no
(typeAny
removed.
displayed
extends
theirSENSINIT
If
physical
the
be
time
Data
R),
locations.
data
beyond
have
initiated
will
if
file.
SOLUTIONtm
that
it
Dictionary
a
initiated
'
fieldwill
file
a
multi-user
SENSINIT
fieldthe
if
always
size.
However,
some
file
SENSINIT,
type
other
will
make
being
A
logical
warning
a
which
second
initialized
initializes
create
record
contaíns
message
system,
the
be
alignment
a
user
"locked
any corollary
zero
length.
a
is
you
other
file
offset
contains
will
the
currently
out".
should
containing
beginning pass
be
A
user
is
displayed
warning
any
of
as
also
be
attempting
accessing
this
theseoverlay
aware
of
type
a
true.
record
message
an
if
fields
that
Reference
to
Oncethe
of
overlay
an
field
SENSINIT
overlay
will
number
access
to
same
you
requires
has
also
2Á36
the
haveData
can
fields
field
(type
correct
field
been
be
O),
{ESC]
When
you
This option will change
by the line prompt">".
[C]
select Insert ([ESC]
Enter = If
Find Print
[I])
keys, the following
the appropriate
Go
Trap
Mount
Save
Execute
!
the
or Change ([ESC]
command
options
asked
how
by pressing
displayed:
mode
be
the key
that matches the bold
is
The
line a label.
you anticipate that this
command
if
marked
command
has
Each
a subset
of
each
Your
of these functions.
questions about
during program
the command
to perform
you select
[I] or [C], ten *'s, denoting a
The
the upper left-hand corner of your terminal.
other places in your program,
line
rec Delete rec Clear
Unlock
remark Lock
When
particular
labels and,
at the
[C])
will
Each of the options
pressing
(activated bycommand.
print Capital character)
is a
be
You
functions.
will
determine
answer will
execution.
command
you
command
command
should give
it
field, willusedbe displayed in
to cive this
field is
command
to
file branches
be branched
will
a label.
to from
After each command that you insert or change,
the ten *'s will again appear
in the upper left-hand
corner waiting for you to enter the next command
Again, the decision. is yours as to labeling
or press [RETURN).
label
command
or not. You can always go back to a command and change it.
Pressing
the
the escape key
file,
command
operating system
SOLUTION
and
exit the editor, save the edited SENSIBLE
will
return you to the SENSIBLE SOLUTION main menu or
prompt.
When
you have finished
editing your command
di.sk file with the file name extension
development process by compiling the source
run-time file (filenarne.RUN) by using rnenu
file,
.SRR.
will create a
Continue the program
code
(filename.SRR) into a
file number
6, "Compile A
selection
Remember,
though, before the program can
have initialized
all data files
your program.
SENSCMD.COM
File" {SENSCOMP.COM).
compiled, you must byfirst
Source
be
Code
(filename.MS/.KS)
The
SENSIBLE
a
referenced
SOLUTIONtm
ReEerence
2.33
SENSINIT.COM
Main
Initíalíze
A
Data
menu
selection
5
Fije
Over"víew:
Every data file accessed by a SENSIBLE
SOLUTION
program must
SENSINIT.COM
created (initialized).
the
data file initialization
is
that creates the necessary data files, filename.MS and filename.KS,
data handled by a SENSIBLE SOLUTION program.
After
you have used
may wish to
ever change a
first
be
program
to store
program and built up a data base, there are times when
of the fields with the data file.
alter the definitions
If
key field to a non-key field or vice versa but.
do not
you
change the location of these fields within the record, then you must also
SENSINIT
use
to notify the key file (filename.kS) that the key designation
has been
changed.
After you have used SENSINIT under these circumstances,
also
use
the rekey program, SENSRKEY.COM to recover your data
you rnust
records.
you
If
a
alter the structure of a data
in a way that would affect
location of fields within the record, file
the
you must use SENSRTC.COM,
restructure utility, to convert existing data files to the new structure
See the section
without losing data.
on Data
Structures in this reference
manual for a complete discussion
on when
to use Initialize, Rekey, and
the
you ever
Restructure.
SENSINIT.COM
performs four different operations as
the data
it initializes
SENSINIT.CQM
reads the specified field
First,
files.
definitions
in the
Data
These
Dictionary.
Second,
definitions are stored in FLDFLE.MS/.KS.
calculates the location ("Offset") of each field within the record, andit
back
st.ores that information
into FLDFLE.MS/.KS.
Third,
creates a new
and
filename.MS
one does not exist,
creates a filename.KS to store key
field information.
sets the record counter in filename.kS (a
Finally,
reserved merncmy space containing a value equal to the number of "active"
records in the file) to zero.
if
The
SENSIBLE
SOL[jTIONtm
it
it
it
Reference 2.34
m
simply press the [ESC]
and resume work.
on your screen
This allows
[ESC]
menu.
options
control
reUsplay
Pressing
your
will alwaysby either entering
character to activate a
a single
you to make a selection
and pressing
selection
function or moving the highlight to the appropriate
Dage"
command
[RETURN].
rnay be
"Next
move
the
to
to
For example, the
[ESC]
menu
and
to the
up
the
(which
pressing
indicates
calls
activatedby
lN]
and then pressing
(the
computer that you are ready to make a selection),
N
rnove
the
to
may
keyboard.)
on
Or,
highligP.t
key for the letter
you
your
and press [RETURN].
"Next page",
the appropriate selection,
you find that your selection was
If
(eScape) key to redisplay the options
in error,
the line
line will show you the name of the file beíng edited,
are working on, the total lines in the program and whether the
or OFF.
is
the first 17 lines of code will be
you have opened an existing file,
If
mark the particular
and
a right angle bracket character
displayed
will
keys
and
{UP
code
By
edit.
pressing
you
can
your
line of
you can scroll through the source code file (filename.SRR) a line at a time.
not already exist, you will be asked if you want to
If the file named does
By responding Yes,
the filename.SRR file will be created
create a new file.
SOLUTION
SENSIBLE
and
SENSCMD.COM
The status
number
you
Insert mode
ON
(
>
)
ARROW]
to write
Óptions available
begin using
The editing
source
Editor follow:
you
can
code.
a
to
[DOWN
program in
you through the
ARROW]
Source
Code.
[ESC]
[q]
You
viewing.
Quit the source program you are currently
have the option of leaving the Source Code Editor
completely or of loading another fíle to edit.
[ESC]
jp]
Using this option you may scroll the source code to the
previous 8 lines. On the screen you will see the top8
revealing the
line move to the middle of the screen,
A
angle bracket
before
right
lines that came mark
it.
the new position of this line.
character ">" will
Iesc]
[N]
Using
next
this option you may scroll the source code to the
On the screen you
see the bottom
lines
will
the
the
middle
of
move
the
to
revealing
screen,
line
character
angle
bracket
right
follow
lines
that
it.
">"
will mark the new position of this line.
This option finds the beginning command
in the source
3
.
8
A
[ESC]
The
SENSIBLE
[B]
SOLUTIONtm
Reference
2.31
file.
It
code.
[ESC]
[ESC]
[E]
[D]
sets the
line prompt
">"
at the
first line
This option finds the ending
It sets the line prompt ">"
command
This option
by the
line
line at the position
will
delete
prompt">".
the
at the
of
in the source file.
last line of code.
marked
ÍESC]
[M]
Using this option you may inark the beginning or the end
of a list of command lines in your program. Having thus
defined a block of text, you may perform file/block
editing operations (e.g., deleting a block, transferring
a block to a new position
in the program).
[ESC]
[W]
A
marked block of command
a temporary file.
your block marks.
lines in your program is
written to
[ESC]
[R]
A
[ESC]
[T1
Use
This action
will
not clear
block of command
lines which you have sent to a
holding file will be "read" (inserted)
into the program
The inserted block
you are'editing.
will follow the
line marked by the line prompt ">".
this option to transfer a marked block of command
The
lines to a new position within your program.
inserted block will follow the line marked by the line
prompt">".
[ESC]
[K]
Use
lines
[ESC}
[H]
Use
file
[ESC]
[F]
this option to delete
this
option to print
(.SRR).
The
SENSIBLE
listing
of
command
of the source
code
·
option wí1l position the line prompt ">" at the
line number,
line label, field, or file name which you
The search
specify.
for a line proceeds only from the
position in the program at which you exercise this
option
[I]
a
marked block
This
The
you
[ESC]
a
from your program.
You
not search backwards through a program.
you specified
is stored allowing
to repeat your search rapidly.
can
last criteria that
This option will insert a line
by the line prompt">". Note
the line being pointed at, not
S(jLUTIONtñi
after the position marked
that the insert is after
in front of it.
Reference 2.32
,
SENSCMD.COM
Main
Source
Code
menu
selection
4
Editor
Overvíew:
SENSCMD.COM is the SENSIBLE
SOLUTION Language
You must
source code editor.
a
code
use SENSCMD.COM
program
source
to "write" (create)
The source code
(filename.SRR).
then be compiled into SENSIBLE
file can
SOLUTION
pseudo code (filenarne.RUN)
by using main menu selection 6,
The compiled program can then be run by using the SENSIBLE
SENSCOMP.COM.
SOLUTION
executive
(main menu selection I). The
program, SENSIBLE.COM
following
discussion will describe the operation of the source code editor.
SOLUTION
language command
For a detailed description of each SENSIBLE
by
"Language
Commands"
editor,
the
please
on
refer
the
section
to
utilized
in this reference manual.
file
Operatíon:
SENSCMD.COM
program.
the rnain
type out
provides
SENSCMD
can
15
be
different commands for entering or modifying
executed from either the operating system level
is executed from the operating system level, you
If it
line:
menu.
a command
d>SENSCMD
where filename
required).
When
will
The
SENSCMD.COM
be displayed
SENSIBLE
is the
name
can
filename
of the source
code
is executed from the main
at the top of your screen:
SOLUTIONtm
a
or
menu
file
(no
file
the following
is
extension
prompt
line
Reference 2.29
+
+
Load
command-file source
+
The
SENSIBLE
SOLUTION
Command
for editing
Source
Quit
+
Editor
V2.OC
the space bar to move the highlight block to the desired selectíon and
You
then press [RETURN].
then be asked to enter the drive location and
the name of a source file. will
you wane the source
you will be creating
If
to be stored on the default system drive, simply file
the space bar to
press
advance
the cursor to the file name portion of the prompt.
Enter the name
of the file and press the Ireturn] key.
Use
The
following display
Change
@:
Previous
Transfer
Iíne
page
block
FILENAME.SRR
will
appear
on
your terminal:
Insert Line
End source
Delete Line
Begín source
Read block
Mark block
Next page
Wríte block
Hard Copy
delete bIocK
Fínd Line
Quít
On Line: XXXX
Tot Lines: XXXX Insert off
The words Change
are highlighted with a reverse video block. By
linebar,
pressíng
the highlight will move to the next option
your [SPACE]
available
through the editor. The highlight indicates
the option you wish to
choose. Pressing the [SPACE BAR] will move the highlight to the right and
pressing the [BACK SPACE] key will move the hi.ghlight to the left.
When you
have selected the option you want, press your [RETURN] key and the option
will be activated.
Another
to activate an editing option is to press the character
key
the upper case character
lodged in each option. For example,
to select the "Delete line" function. Throughout this manual,
press
brackets will be used to indicate that we are referring to a specifi.c key on
your keyboard.
way
by
indicated
[D]
The
SENSIBLE
SOLUTIONtm
Reference
2Á30
.
answer "Y", the screen will temporarily clear and
prompts will appear requesting
all of the information
necessary to create a new field definition in the Data
Dictionary.
For a complete discussion on creating a new
definition, read the discussion of ENTFLE.RUN,
field Dictionary
"Data
Maintenance."
11
[ESC]
{R]
from the screen.
This option will remove a field window
Place the cursor over the first character prompt of the
type [ÉSCi IrÁ The field will
field window andfromthen
remains part
the Data Dictionary;
not be removed
You
message
see
an
of the record structure.
error
will
there was not a field where the cursor was
positioned.
it
if
[ESC]
{S]
the cursor to the first character position of the
field window and then use this option to áisplay the
definition of the befield. Field name, File, Size, Col,
Row, and Key
displayed at the top of the screen.
will
You
there was not a field
see an error message
will
where
the cursor was positioned.
Move
if
[ESC]
[F]
a field definition
whilebeyou are
You
asked
this option.
will
whether or not you wish to save the changes.
If you
be
that field will
answer "Y", the definition
for(FLDFLE.MS/.KS).
you
If
screen
wish to change
painting,
updated in the
{ESC]
[C]
use
Data
Dictionary
wish to change a file definition while you are
painting, use this option.You will be asked
or not you wish to save the changes.
If you
"Y",
answer
the definition for that file will be updated
(RECFLE.MS/.KS).
in the Data Dictionary
If
you
screen
whether
may
send a format
description to a disk file
The
(filename.LST) or to the printer with this option.
and
a
layout
description
include
the
screen
list of
will
column
position
all field windows including eachthe row and
of the first character of
field window.
[ESC]
[H]
You
[ESC]
[B]
This option
is used to create a box drawing on the
Place
the cursor at the desired position for
screen.
Now move the
the top, left corner"anki type Iesc] IeÚ.
cursor to the desired position for the lower, rightA
corner of the box and press any key on your terminal.
box
will appear on your screen. To create a horizontal
The
SENSIBLE
SOLUTIONtm
Reference 2.27
your screen, simply create a box with no height.
To create a vertical line on your screen, simply create
a box with no width.
line
on
[ESC]
[U]
This option is used to remove box drawings from the
Place the cursor at the top, left corner
screen format.
of the box you wish to remove and type [ESC] [U] ·
[ESC]
[E]
As
you screen paint, use
screen and redraw boxes
and deletions .
insertions
to redisplay the
this option
been
have
altered due to
that
and placed
you have typed screen messages SENSCRN.COM
[q] to exit Screen Painting.
screen file? (Y/N) Y". Yes is the default answer.
When
[ESC]
you choose
If
screen file?
screen
The
as
it
SENSIBLE
not to
(Y/N)
was
and
fields
will
as desired,
press
ask you "Save this
the screen, SENSCRN.COM will ask: "Abandon
"N" answer (the default)
will re-display
allow you to continue editing.
save
N".
SOLUTIONtw
A
Reference
2
this
the
328
79
+
01
+
(left
{line
side)
01)
127
+
49
·-f
{right side)
(line
01)
+
+
+
+
Use
[ESC]
¿j]
To
Shift
Views
wide.
create report formats up to 255 columns
beyond the 127th. column, simply place a
line
The next line down on the format screen becomes
through 255 and will. be attached to that line so that when the
report is sent to the printer, the two different lines on your screen will
be printed
on paper.
on the same line level
As we stated
To extend a
comma in the
columns
127
earlier, you
format
report
127th.
column.
can
Use the down
also create up to 60 format lines on your screen.
and
advance
the
key
to
next
to
screen
display
your
arrow
line
will scroll
down one line at a time.
You
can
Screen
[[Jp
arrow]
[Down
The
arrow]
SENSIBLE
Painting
Control
Keys
Pressing
this
key
moves
the cursor
up"
Pressing
this
key
moves
the cursor
down
SOLTjTIONtiñ
one
one
line.
line.
Reference
2.25
[Right
arrow]
Pressing
right.
lLeft arrow]
Pressing
left.
[CTRL]
tÍi
A
Ictrl]
[U]
Whatever
Ictrl]
[D]
[ESC]
[ESC]
this key
moves
the
cursor
one
space to the
thís key
moves
the
cursor
one
space to the
blank is inserted under the cursor.
All characters to
the right of the cursor
right and the last
shift
character on the line is lost.
cursor
entry.
is in the field
will
move
window
to the
left
will
side
character
under the cursor will
characters to the right of the cursor
The
deleted and the
to await another
be
be
deleted.
All
shift left.
[j]
you to paint both screen formats
will allow The
formats.
width of a report format is
report
limited to 255 columns. Pressing [ESC] [j] will shift
your display to the right or left so that you may view
127 columns
of a report format with your 80 column CRT.
{D]
The
move
SENSCRIÑ.COM
and
below the cursor is deleted.
All lines below
line and
up
a blank line is created at the bottom of the
screen.
[ESC]
[L]
blank line is
below move down
A
All lines
inserted below the cursor.
the last line on the screen is lost.
and
Iesc]
[q]
SENSCRN.COM
ask: Do
This ends an editing session.
will
a
"Y",
"N",
wish
the
changes?
Answer
with
you
to save
[RETURN].
The
then
proCram
screen
painting
or
willof the
return to the original prompt line at the top wish
to
screen that requests the type of format you
create.
[ESC]
[A]
The
screen painting program will ask for the name of the
The
character
in the field
firscposition.
fieldbeto atbe theplaced.
F:
names may
íeld
current
cursor
will
be up to 15 characters
in
already
long.
the
field is
be Ifplaced automatically.
the Data Dictionary
If
will
the SENSCRN.COM can not find the field in the Data
indicating
that
a message
Dictionary,
will be displayedcontinue
ask
the field can not be found.
to
will
you
you want to create a new field definition.
it
It
The
SENSIBLE
SC)LUTIONtíñ
If
Reference
2.26
if
Main
SENSCRN.COM
Screen
menu
selection
3
Paíntíng
Overview:
This program will allow you to create and define a SENSIBLE SOLUTION screen
format or a printer report format andthen store that format in a file named
filename.SCC.
Screen formats or "templates"
are accessed by SENSIBLE
and
SOLUTION
allow
data
terminal
programs to
entry used retrieval from your the
layout
define
to
formats
display.
Reporter
primarily
are
screen
of a report that will be sent to the printer device.
operation:
it
may
called directly from the operating system mode or
SENSCRN.COM
phases
to
menu.
There
the main
are two
(definition) and field definition and placement.
screen painting
SENSCRN.COM can be
be selected
from
operation,
When SENSCRN.COM
and the following
screen will immeciiately go blank
is executed, your display
prompt line will be displayed at the top of your screen:
Enter the type of format
you
wish to load
+-------—-------+
Format
Screen
Reporter
+---------------+
Format
and
the space bar to move the highlight block to the desired selection
and
be asked
location
You
drive
the
then
enter
to
then press [RETURN].
will
be
creating to
the name of a format.
you want the format file you will
be stored on the default
system
drive, simply press the space bar to advance
Enter the name of the
the cursor to the file name portion of the prompt.
be stored and gress the [RETURN]
key.
you want the format
which
to
in
file
be
The following
of
the
displayed
top
at
your screen:
line will
Use
If
@:
The
SENSIBLE
filename.SCC
SOLUTIONtrrl
file
opened
col
= 001
row
=
01
Reference
2.23
Screen
The
Format
SENSIBLE
Screen
Painting program (SENSCRN.COM) allows you to
a
áefine
SOLUTION
screen format
for use with SENSIBLE
Because
prograns.
screens are often used for simple data entry and update,
the SEKSIBLE SOLUTION also provides a facility to automatically
generate a
file maintenance program. See Main Menu Selection 9 -- "Program Generator."
SOLUTION
interactively
format can be a maximum
of 79 columns in width and 22 lines in
Use the arrow keys on your keyboard to
direct the cursor to any
positi-on
You may then use the various
you want on the screen.
escape
commands
and
keys described on the next page to"paint" messages,
control
box drawings,
horizontal, and vertical lines. You may also place
titles, "windows"
on the screen where data
field
entry and retrieval will take
place.
A
screen
height.
Reporter
Format
The
Screen Painting facility, SENSCRN.COM, will also allow you to create
report formats that can be utilized by SENSIBLE SOLUTION programs to send
formatted reports to your computer's printer.
Reporter formats differ
slightly from screen formats.
For one thing, you can not use the box drawing feature that is available
with screen format.a Another difference is that a reporter format can be
much
a maximum
of 255 columns wide and 60
larger than
screen Format:
Obviously this is considerably
lines in height. l3C
larger than a standard
columns
by 24 lines.
The screen painting
display screen of
facility,
however, has a method for getting around the limitation of your screen size.
The
and
[ESC]
screen painting escape command,
[j], will allow you to shíft back
forth between two views of the reporter screen. The left screen is
defined as column 01 through column 79; the right screen is defined as
127.
Thus,
column 49 through column
there is a 30 column overlap area from
columns 49 through 79.
This overlap area will make
easy for you to
"keep your bearings" as you shift back and forth between the two areas of
the screen.
it
The
SENSIBLE
SOLUTIONtm
Reference 2.24
The
SOLUTION
SENSIBLE
Version 2.0
Language
MAIN
I)
2)
3)
4)
S)
6)
7)
8)
9)
ID)
Éxecuting
execute
level type:
To
d>
a
A
A SENSIBLE
SOLUTION
Execute
Maintenance
Data Dictionary
Screen
painting
Code Editor
Source
A Data
File
A Source
Code File
Compile
Rekey A Data File
program
Initialize
Restructure A Mta File
Generator
Inquire
Program
SENSIBLE
compiled
SENSIBLE
MENU
SOLUTION
SENSIBLE
Program
SOLUTION
From
The
Operating
System
Level
progran from the operatinq
system
d: [RETURNj
(where "d" is the disk drive
carriage return key)
locationletter
and
jRETTjRYj
is the
example,
drive "A: " and you would like to execute
if you are logged ontoSeries
"MGLCHAR.RUN",
which is on
program
the SENSIBLE SOLUTION .Yanagerrient
drive "E: ", simply ty?e the followinC command line from the operating system
level:
Fo.r
The
SENSIBLE
SCLUTIONtrrI
Reference
2.3
A>
If
the
SENSIBLE
SENSIBLE
E: MGLCHAR[RETURN]
SOLUTION
program
you
wish to execute
does
not reside
on
the
default drive (the logged on drive), you will have to specify the drive
location of the compiled program, as shown in the example
above.
Executíng
From the main
SOLUTION
Program."
menu
A SENSIBLE
SOLUTION
Program
From
The
Main
Menu
SENSIBLE
level, selectbe option number 1, "Execute
displayed on your screen asking you for
prompt will
letter and the name of the file (filename.RUN) that you
A
A
the drive location
want to execute.
If the program resides on the currently logged on drive,
press the space bar to advance the cursor into the file name portion of the
and the program
prompt.
Enter the name of the program (filename)
will yoube
executed.
the program name (filename) is shorter than 8 characters,
If
have to press the [RETURN] key to begin execution.
the program
will
SENSIBLE.COM
(filename.RUN) cannot be found on the designated disk drive,
an
will- report
error message.
If
the file (program) is found, control will
If
SENSIBLE
The program
SOLUTION program.
specífied
When
another SENSIBLE SOLUTION program.
main
the
language
menu.
return
to
will
immediately
pass to the
may specify
a transfer
to
the program is finished,
control
Several different key stroke controls are available to control the execution
SOLUTION
of a SENSIBLE
These keys and their actions
program.
are as
follows:
SENSIBLE
The
SOLUTION
Execution Control
Keys
Ictrl]
[I]
[CTRL]
fU]
Clears
[CTRL]
{D]
Deletes the character
"under the cursor".
characters
in field Eield shift left to
blank appears at right end of field.
SENSIBLE
Remaining
Inserts a blank "under the cursor".
in field shift right. Rightmost character in
field is lost.
characters
SOLUTIONtñt
the displayed
value
from the
field
window.
Remaininq
fill,
and
Reference 2.4
a
{LEFT
ARROW]
Move
[RIGHT
ARROW]
Move
the
[UP
cursor
field is
position riqht within field. value of
one
unchanged.
of previous
cursor to beginning
topmost field)
ARROW]
{DOWN
left within field. Value of the
one position
unchanged.
cursor
field is
Move
ARROW]
Move
cursor
field)
lowest
to
beginning
of next
field.
(Locks
(Locks
field.
at-
at
Iesc]
fj]
Display
next screen.
[ESC]
[q]
Display
previous
[esc]
isl
Save
Iesc]
Lrj
Delete record.
[ESC}
[F]
Finds the record, which contains the fieldv'alue, that
most closely matches the dis?layed field value.
Possible errors: "not a key field", "end of
encountered (record not found)"
screen.
record.
ry
file
{ESC]
[B]
Finds first record (lowest value)
the field in which cursor appears.
in the
file
based
on
[ESC]
fE]
Finds
last record (highest value)
in which cursor appears.
in the
file
based
on
field
[N]
Finds next record
encountered."
[ESC]
[p]
Finds previous record.
file encountered."
{ESC]
Iesc]
[C)
[?]
Clears
buffer.
all fields
Display
help screen.
"Find next" and"find previous"
beginning,"
or "find ending" in the
Relates Trap command.
NOTE:
The
SENSIBLE
SOLUTIONtxt
possible
in file.
[ESC}
on
Possible
error":
screen to spaces
file
"beginning
of
arid
clears
the
preceded by a "find", "find
field. All searches trigqer the
must
same
of
"end
error:
be
Reference 2.5
Trace
--
The
SENSIBLE
SOLUTION
program debugger
has a program debugger
mode built into
called "Trace".
This
Trace function will allow you to execute your SENSIBLE SOLUTION programs one
processing, and
line at a time, display values, change values and continue
These
specified
places
the
to
features will
set traps
stop at
program.
in
provide you the programmer with a sophisticated
environment for debugging
your programs.
SER'SIBLE.COM
Before
it
when
it
the Trace program
debugger
can be used,
SOLUTIOF was
section on SEF'SETUP.COM in the
Refer to the
you
first
must
have
enabled
originally installed on your computer system.
Installation Manual.
SENSIBLE
the Trace mode has been enabled on your system, you can invoke
tíme during the execution
of a program.
[T] and
Press {ESC]
be
seven
options
displayed
the
bottom
of
at
following
your screem
will
Once
any
Líne #, [ENTER]
T trap input,
Here
is
an
contínue,
F
explanation
field
of
{SPACE]
ínspect,
each
one
síngle-step,
L stop at
of the Trace
Líne #:
This area at the bot.torn of your screen
line that ís being executed.
[ENTER]
you
If at
this
to contínue:
ÍENTER]
press the
any time.
key,
you
it theat
perform (n) Lines
líne, G goto Line
N
command
options:
wíll display the current program
will exit
the Trace
mode.
You
can
do
[SPACE]
síngle-step:
Press your space bar to execute the current line of the program. After
the line is executed the seven trace options will again be displayed at
the bottom of your screen along with the next program line number.
This may cause you some confusion
the next line in the program
happens
to be an ENTER command.
is the case, you will have to
If this
window
before you can continue
enter a value into the current
field
back into single-line trace mode.
if
The
SENSIBLE
SOLUTIONtm
Reference
2ó6
perform (n) lines:
This Trace option will allow you to execute (n) number of lines from
the currently displayed Line ÉL You can execute a maximum of 255 lines
in N trace mode.
After the system has executed the specified number of
options wIll again be displayed
at the bottom of
lines, the 7 trace
The Line # value
command
the
your screen.
display
line number
will
where
execution stopped.
N
trap inspect:
This option will allow the program to continuously
execute until
When the
encounters one of the Trap options you wrote in the program.
Trap is encountered the program will immediately switch to Trace mode
and the 7 trace options
at the bottom of your screen.
will be displayed command
The displayed
Line # will be the Program
line that encountered
the Trap condition.
T
it
When you select
"T"
for trap inspect,
at the bottom of your screen:
Save
Help
Indicate
Delete
Clear
Page
Lockíng
the
Trap
you
will
appear
Related
jumpscreen
(press one key)
dowNarrow
Uparrow
that
display
want
and
the system
Change
target
will
line?
display:
(Y
or
N)
The area marked
number
###>,
as will display either "default",
means
"default"
that the standard system
or "ignore".
default is set for the Trap. "ignore" means that the Trap has been set
a number
to be ignored.
represents the program line
is displayed
If
number
where
program flow will branch upon encountering the specified
Trap. If you choose to change any one of these three possible
##
Fíe1dname
that
field
displayed:
be
Array entry
#
(blank=done)
you want to inspect
or
alter.
The
([CR]= not array)
array, enter the element number that you wish to
If the field is anis not
The
an array,
value
display.
press the [RETURN] key.
it field will
be displayed.
You may change
value;
currently inIf the
this
however,
you change it, this Trace feature will update the field
if
mode,
To return to single line execution
wi.th the new value.
clear
window
[CTRL]
fU]
[RETURN];
the
will display 'the
7
Before returning
to execution
Trap
on
with
Trace options.
assígnment2
mode
and
you
press
may be
your screen
asked:
Y/N
you respond "Y", any tine a value is moved into this field, 'the
If
system will automatically invoke the Trace triode and stop execution.
This feature
allow you to continuously execute programs in normal
of
will
then automatically
conditions
occur.
mode
and
invoke the Trace
mode
when
the proper
set
L stop at Line number:
This Trace feature will allow you to set a line number or label to
designate where you want to halt program execution and automatically
invoke the Trace mode:
***************
Enter the
line
Íiine# or Label to trap
(0=off)
of the label where you want program execution to
When the specified
Trace
to begin.
halt
line number or label
i-s reached in the proqram, Trace mode will be automatically invoked.
At that point, you can display fields, change values in fields, et.c.3
To turn off this automatic
Trace enable feature, enter a "O" in the
window.
field
and
G
The
goto
SENSIBLE
number
mode
JAne:
SOLUTIONtrrl
Reference
2Á3
Trace option described above lets you automatically turn on the
The "G" option described here
Trace mode.
let you specify where
will
mode
Follow the same
to automatically turn off.
you want Trace
procedure as that outlined above under "L", but instead,
specify the
line number or label where you want the Trace mode turned off and
normal program execution to continue.
The
0
>
The
SENSIBLE
SOLUTICWtrn
Reference 2.9
.
Main
ENTFLE.RUN
Data Dictíonary
menu
selection
2
Maíntenance
Overview:
The
by a SENSIBLE
SOLUTION
structure of every file and field accessed
The Data
Dictionary
contains all
program is defined in a data dictionary.
on file and field names,
of the information
drive location,
data
file disk
a
offsets
position
types, field lengths, field masks,
field
(field
within
and comments on
ENTFLE.RUN
SENSIBLE
record),
a
keys,
usage.
is
file
file the Data Mctionary.
SOLUTION program that creates and maintains
Before
you can compile and execute a SENSIBLE SOLUTION program, you must
define
in the Data Dictionary
all fields and files that are going to
first
be
SOLUTION
accessed by that program.
In fact, every time a SENSIBLE
must
access
the Data .Dictionary to determine the location
program is run
However,
of the proper data files.
the Data Dicticmary does not create or
data
only
defines
the
structure of the data files.
re-buíld
files;
it
it
OperatÁon:
Since
ENTFLE.RUN
is
controls to enter
dictíonary as any
familiar with the
program, refer to
ENTFLE.RUN
about
about
the
maintains
files
fields.
ENTFLE.RUN
command
can
be
SOLUTION
a SENSIBLE
program,
uses the same screen
data into the dictionary and retrieve data from the
SOLUTION
other SENSIBLE
not yet
program.
If you are SOLUTION
screen controls used to execute a SENSIBLE
the section on SENSIBLE.COM.
and
it
4
data
keys,
execated
line:
The
SENSIBLE
SOLUTIONttñ
RECFLE.MS/.KS,
files,
and FLDFLE.MS/.KS,
which contains
which contains
dírectly from the operating
system
information
information
by
typing
Reference
2ND
the
CÍ>SENSIBLE ENTFLElRETURN]
(where
"d>"
the currently
is
or you may
Maintenance."
When
select main
rnenu
logged
selection number
on
2,
disk drive)
"Data
Dictionary
is executed, a template will appear on your screen that will
and delete
modify,
files and fields from the Data
Dictionary.
upper portion of the template will allow you to select and
modify data file definitions and the lower portion of the screen will allow
ENTFLE.RUN
you to select and modi,fy data field definitions.
will also
allow you to print out a report of all field definitions for a particular
data file.
ENTFLE.RUN
allow you to create,
The
When
and
you have
finished using ENTFLE.RUN to define the
that
be accessed
by your new program, you must
by
then INITIALIZE the
S).
When
using the module SENSINIT.COM
(rnain menu
use
you
ENTFLE.RUN to change
the structure
of an existing
data
you must
also
RESTRUCTURE the
and possibly
REKEY
as well.
will
file
it
The
Structure
Of
The
Data
files
selection
file,
fields
file
Díctíonary
SENSIBLE
SOLUTION
data file consists of two disk files, filenaíne.MS and
Filename.l4S
filename.KS.
is the master data file, Thewhich contains the actual
data stored in straight ASCII character
code.
location of each field
the record is determined from field definition information
stored in
within
FLDFLE.M"S.
Fields are not delimited by commas or other field separators.
Records are stored on 128-byte block boundaries.
For example, a SOD-byte
record occupies four 128-byte blocks (total 512 bytes) with 12 bytes ignored
at the end of the fourth block.
This speeds disk access and insures correct
record locking on multi-user
operating systems.
A
Filenarne.KS
is the index-key
a
which maintains
"B*-tree" of record
file,
data
master
(filename.MS).
This method provides
pointers in
file
Although all data files
exceptionally
fast access to data records.
generated by SENSIBLE SOLUTION are in straight ASCII format,
the B*-tree
format is not in straight ASCII.
the
The
SENSIBLE
maintenance:
(SENSRKEY.COM),
utilities
The
SOLUTION
are explained
SENSIBLE
Language also
a data
file
initialize
and
SOLUTIONtñi
includes
restructure
in detail later.
a
utilities for
(SENSINIT.COM),
re-key
(SENSRSTC.COY).
data
file
a
data
data
Reference
file
file
These
2.11
Usíng
Ytju
can
system
execute
level.
the
Data
SENSIBLE
Díctionary
SOLUTION
Maíntenance
program
ENTFLE.RUN
Type:
d>SENSIBLE
ENTFLE[RETURN]
{where
"a" is the operating
system
from the operating
drive location
prompt)
or select option number 2 from the language main rrtenu, "Data Dictionary
The following
Maintenance."
template will appear on your screen:
The
+
SENSIBLE
SOLUTION
íjata Dictionary
Maintenance
FILE
File
File
Key
I)
2)
3)
4)
5)
+
INFORMATION
*
Use:
128 Byte
Segments:
I********] NumberLocation:
Of
Name:
#:
########
Name
***************
***************
***************
***************
***************
Size
###
###
###
###
###
Offset
FIELD
Case
6)
7)
8)
9)
#
of
***************
***************
***************
***************
###
###
###
###
Offset
####
####
####
####
INFORMATION
#
(Y/N):
Keys:
Size
Name
File Name:
I***************]
******************************
###
####
Decimal:
Offset:
***********************************
Only
*
'CR'
Field Name:
Field Description:
*
Type:
Size:
Default Entry Mask:
Upper
Key
####
####
####
####
####
*************************
##
Number
Required
On
********
Key
(Y/N):
Entry (Y/N):
*
*
*
<=
The
=>
SENSIBLE
SOLUTIONtm
Reference
2.12
This screen
definitions) and FLDFLE (the
will update both RECFLE (the
field definitions). You may create a new file
definition or modify an existing
definition by typing the value in the "File Name" field window and then
You can also search for an existing
pressing [RETURN].
value by typing the
[ESC]
key
value,
then
using
[F] to find the closest
(partial or full)
approximation of the value or by using the find beginning/ending/first/last
controls (see SENSIBLE.COM).
new or modified
definition is saved in the
Data Dictionary
by pressing
[ESC]
[S]. You may also delete definitions frorn
by pressing
[ESC]
the Data Dictionary
Ir).
The Data Dictionary
FILE
and
INFORYATION,
screen is divided into two parts:
FIELD
INFORMATION.
The
a brief discussion
of
each
following
is
field
window
on the Data
A
Dictionary
screen:
file
Fije
Name:
file
name
Enter
the
name of the
can be no longer
that
file than
8
information
you wish to create, delete,
characters in length.
or
edit.
The
Do
not change" the "File Name" of an existinC data
you intend to
file unless references
change the name of the actual data
on the disk and
to
file
all
the data file in your programs.
[ESC]
a
name by pressing
[R], the entire file definition
If yoube delete
file
deleted
including
of
that
all
file's field definitions.
will
Fíle
Number:
The
value displayed in this
maintained by ENTFLE.RUN.
field
window
can not
You
represents
directly
the
change
internal
the value.
file
number
Locatíon:
This field
window
will allow you to specify the disk drive location of this
particular data file (filename.MS/.KS).
a new
file
If you toarethecreating
definition, this field will automatically default
currently
logged on
and
a
drive location. If you save file definition
the "Location"
field
window
is left blank, the Data Dictionary
assume
that the new data file
will
located
oró
the currently
logged-on drive.
is
.
Number
This
this
The
Of
128
Byte Segments:
window will display the currently defined size of
The displayed
particular data file (filenarne.YS).
value
field
SENSIBLE
SCLUTIONtm
a record in
is expressed
Reference
2.13
in
byte
128
Use:
You may
Number
This
file.
Key
The
write
units.
a
comment
of Keys:
field window
on
the
use
will display
of
this particular file.
the number of indexing
keys used by
this
Name:
allow you to specify up to 9 different key fields.
Data Dictionary
will
A new data
key field name can not exceed 15 characters
in length. number
file
be INITIALIZED (see SENSINIT.COM,
Main
5) before
must
Menu Selection
be displayed
in
any of the "Key Name",
"Size", or "Offset" information
will
of
the
Dicticmary
Thus,
Data
this portion
screen.
you change a key
field definition or create a new key field in the FIELD INFORMATION portion
of this screen, that change will not appear in any of these three fields
until you have INITIALIZED the data file.
A
if
Síze:
These
display the size of each key field specifíed for
field windows
will
The size of the key field is expressed
in bytes.
this
particular
file.
key fíeld can not exceed
72 characters
length
is an alphabetic type
in
it
type field (type
field (type "A") and
digits in length if it is ifa numeric
A
14
"N").
Offset:
These
field
will
location of the key fields
the offset of the
re?resent
windows
display values (in bytes)
that indicate the
The
displayed
values
within the record.
byte
each
key
field.
in
first
FIELD
INFORMATION
portion of the Data Dictionary
screen you must
into this [ESC]
To return the cursor
to the FILE
[j].
the-- screen use the "quit" command -- [ESC] fQ]·
To move
the cursor
use the "jump" command
INFORMATION
portion of
Fíe1d
This
Name:
you to create,
field bywindow willto allow
the name of the
definition
referring
exceed
here must not
any alphanumeric
of the following
The
SENSIBLE
field.
characters in length.
characters and some punctuation
characters in a field namé:
SOLUTIONtn1
15
or delete a field
edit,
The field name you enter
The field name may contain
marks.
You
can
not
use
any
Reference 2.14
(
)
[
]
<
>
/
+
*
=
-
&
The
brackets surrounding the field window on this screen indicate that this
You can, therefore, conduct a search for any "Field
a key field.
field isvalue
Name"
Dictionary by using the
currently on file in the Data
appropriate SENSIBLE SOLUTION screen controls (see SENSIBLE.COM).
File
Name:
name displayed
in the FILE INFORMATION
any
conduct a search
The
file
for
in this field window is the same file name displayeá
and you can
block on the screen.
is a key field
It
Data
Dictionary.
file name currently on file in the
between
here concerning the relationshi?
As you
a search.
you are conducting
Narrie"
on
the
currently
file, that "File name. Zield
name
always
display
the
File
correct
field
for
will
file
names are arranged in alphabetical
order and there corresponding field names
are arranged in alphabetical order under their respective parental file
important
One
point
should
be made
Name"
when
names
"Fiéld
"File
through the field
scroll
window
Name"
and
names:
Field
This
field
Descríption:
window
30 character
you are defining.
field
Type:
You may
SOLUTION
must
a
will
allow
you
to enter
a
description
specify the type of
file
willbe
Type
A
N
D
O
R
The
field that you are creating. Every
allow you to use 5 different types of fields.
defined as to its "type":
of the
SENSIBLE
field in
Data
alphanumeric characters
numeric data
date entered in Gregorian
form and stored in
form
overlay field, stored as an alphanumeric string
record number
julian
is strictly alphabetic characters and numbers. This
field
type of field is generally used for strings. You can not use numbers
written in type."A" fields as numbers for performing calculations.
Type
"A"
Type
"N"
involved
The
SENSIBLE
field is
of numbers
must
in numeric calculations
SOLUTIONtñí
composed
O
through 9.
designated
be
Any
as
fields that are
type
"N".
Reference
2.15
"D"
SOLUTION
dates.
Dates are
field is strictly
one
of several forms
entered into SENSIBLE
dd/mm/yy,
programs in
-- mrn/dd/yy,
The date format that
mm/dá/ccyy, or dd/mm/ccyy.
your system uses will
depend
upon the date format that was specified
during the initial setup
see SENSETU?.COM.
dates are stored internally
All
in SENSIBLE
-number.
The number
SOLUTION programs as a julían Date
is equal to the
number
of days from january 1st. 0000 A.D. to the specified date.
Type
These
fields are overlay fields.
fields are composed of two
fields. An overlay field wíll always interpret the fields it
is subtenáing as alphanumeric string type fields.
"O"
Type
or
more
Type
"R"
fields are record fields.
temporarily store a value to locate
from
a
file.
There ís a thorough discussion
the section on Data Structures
A
and
record
field is used to
retrieve any desired record
of these five different types of fields in
in thís reference manual.
Síze:
must enter
the size or "width" of the field you are creating or editing
window.
of 255 characters
Most fields can be a maximum
in
in this field
length. andKey fields, however, can only be a maximum of 72 characters be in
14
length
fields that contain numeric type data (type "N") can only
You
characters
in length.
Decimal:
Enter the number of decimal places that will be recognized
definition. You can not exceed 4 decimal places.
Offset:
Most
fíelás that
by
this
field
Consequently
create will not require an offset value.
There is one exceptior-,
the cursor will rarely move into this window.
Overlay type fields (type "O") will require that you specify an
however.
of bytes
offset value in this field window. The offset value is the number
from the start of the record to the beginning of the field. We will discuss
the use of this offset in more detail under the section on overlays.
yc)l3
the field you
If value
displayed
a
by
defininq
are currently
in the "Offset" field
the system at the time the data file
(Y/N):
must enter a "Y" or "N" into
not the field you are áefíníng is
Key
You
The
SENSIBLE
SOLUTIONtñi
is not a type "O" field and there is
window,
that value was calculated
was initialized.
thiskey field window to indicate whether or
a
field.
Reference 2A6
Default Entry Mask:
This 35 character
width field will allow you to enter
"mask" parameters
that will define the type of data that can be entered by the computer
operator. Later on in this discussion we will give a thorough description
of
the mask parameters available to you and show you the real power of this
rnaski.ng
feature.
Upper
This
case
Only (Y/N):
field window will
or lower case) that
Case
the type of characters
allowbe you to define
by
entered
can
(upper
the computer operator.
'CR'
Requíred On Entry (Y/N):
This field window will allow you to define whether or not the computer
operator
must press the [RETURN] key after he or she has filled a field
window. For example,
you have
defined. a 5 character zip cocíe field and
have answered
"Y" to
this question, the computer operator will have to press
[RETURN]
after entering the fifth digit in order for the ?rograrrI to continue
execution.
if
Defining
An
Input
Mask
For
A
Fíe1d
The
An
SENSIBLE
SOLUTION
allow you to define an "input mask" for a field.
input rnask defines will
the manner in which a field will be entereCí frota the
The input masking
keyboard when an ENTER program commaná
is executed.
techniques used will allow left or right justification of fields within the
"forced" character entry, and characterfield width, automatic formatting,
by-character
validation
against "inclusion"
or "exclusion" classes.
As
you
a
that
An
The
recall frorri the previous discussion,
particular field window will handle
you
such
can
as:
*
accepts
any
keyboard character
A
acce?ts
any
alphabetic
#
accepts any
also accept
appropriate)
input
mask
SENSIBLE
digit,
definition essentially
SOLUTICWtm
(for
or
how
or
characters
space
NUMERIC
spaces
controls
the type of data
except control
character
Cl-9
leading
define
a
fields,
minus
"N
sign,
will
when
this particular type of
Reference 2.17
The mask
field can be entered by the computer operator.
itself is string
that is stored in the tiata Dictionary in the field window called"Default
There are
Entry Mask."
different characters that can be used in the
input mask string to define how each operator keystroke will be accepted and
by
a
9
handled
the prográm:
[
J
(
)
<
>
!
?
\
classes of characters that will be either accepted or
may define certain
rejected
ín a field window by using square brackets in
at a given position
[
]
the "Default Entry Mask" field window. Square brackets that face in
be
the
characters
the
brackets
accepted
by
the
indicate that
inside
.]will
[ indicate that the
window.
Square brackets
out
that face
field
characters inside the brackets will not be accepted by the field window:
You
[AEFHX..Z]
accepts any oÍl the characters
a, E, f, H, X, Y, or Z.
"X through
Z" is represented
by X..Z.
the field has
been
marked UPPER CASE in the Data Dictionary, lower
to upper case before
case letters will be converted
testing for acceptance.)
If
]13579[
will
that
accept
is, any
printing character EXCEPT the odd digits
digit, space, letters or punctuation.
any
even
You may also indicate the characters
that will
positi-on and./or adjacentmaskpositions within the
parentheses in the input
string:
(1O)A
accepts ten alpha (or
(2)[YN]
accepts two
left
is
The
arid
displayed
>
"Y"
or
"N"
space)
be
accepted at.
field window
a
by
single
usíng
characters
strokes,
but
can be uSed to indicate
right angle brackets
in the field window after eack- keystroke:
no
other
how
each
characters.
character
indicates that keystrokes accepted into the field will
under the cursor and the cursor will then move to
the right.
a'opear
<
The
SENSIBLE
indicates
SOLUTIONtm
that
keystrokes
accepted
into the field
Reference
will
2s18
right side of the field window and then
leftward as other characters are entered -the sanie way that
pocket calculator display
appear at the
will
much
'
works.
'
move
a
You
can
even mix these last two input
sophisticated
entry display.
For example,
input mask:
mask
if
you
characters
specified
to achieve
the followinC
a
<#######>.###
the operator's screen would first accept up to 7 digits
from right to left.
in the "units" part of a number
When the
units part is full, OR the operator types
a
period, the field window will then accept up to three
decimal digit key strokes and display them from
left to
right.
You
may
absolutely
specify whether
required
!
by
using
or not an entry by the computer
an exclamation
point in the input
is
string:
operator
mask
indicates that characters after the "!" MUST be entered
into the field. The input routine
not permit you
to move the cursor out of the field will
window until these
characters have been filled with keystrokes.
You may
mark within
specify that
the input
?
a
field
rriask
window
string:
entry
be
optional
by
using
a
question
indicates
that the character positions after the "?" may
Under this condition an ENTER
unfilled.
left
program command
automatically
in "empty"
positions with a will
appropriate
space or some other
character.
In the case of numeric type fields, for
example,
the field window would be filled with trailing
The
"?" character
zeros.
in an input mask is the
regular default value of an input mask. That is,
be
character positions
may normally
left unfilled in a
field window.
be
fill
,
The
SENSIBLE
SOLUTIONtw
Reference 2.19
Both
window
of the input
mask
ínput
characters
"!" and"?"
example:
For
definition.
!#==/?#É#-###t
mask
may
be
mixed
within
field
a
The area
accepts a telephone number like 206/555-1212.
code
an
is required but the last 7 digits are optional;
Eb'TER program command
not permit the user to exit
will
the field until the fírst 3 digits have been entered.
use the backslash character
"\" to force the following character in
This option will allow the operator to enter
to be taken literally.
mask
characters
special characters like
that are identical to the input
do not need
parentheses.
Non-maskinq characters
to be forced with a
This lets you format a field without the need for
backslash character.
special parsinq or computation.
For example:
You may
a mask
backslash indicates that the next character in the
is to be taken literally as a "forced" character.
\
\(<###\)
>!###-####
Part \ü-<#####
mask
a mask that allows entry of a telephone number
in the
The parentheses
and dash are
"(123) 456-7890."
form
The area code
and appear automatically.
"forced"
is
7
or
but
the
the
number must be
digits
optional
last
An ENTER statement
entered.
in a program will not let
leave the field window until they are
the operator
typed.
is
The
78".
part numberand such as "Part #AThe
"forced"
appears
automatically.
is
digits portion of the field is right-justified within
the last
positions of the field to sort correctly on
its numeric value.
accepts
"Part #"
a
5
F: íe1d
Lístíng For Fije
the cursor is residing in the lower portion of the Data Díctionary
you can then jump
to another screen by pressing
screen, FIELD INFORMATION,
The second screen of ENTFLE.RUN
out a
Iesc] {jj8
will allow you to print Simply
a report
of all field definitions associated with a specified file.
A
message
enter 'the data-file name andpress the IreturiÜ key.
will appear
Once
The
SENSIBLE
SOLUTIONtññ
Reference
2.20
of the report -- the
at the bottom of your screen requesting the destination
and a 116
Choose
one of the three options
the CRT, or the disk.
The
be
include
of
the
produced.
report will
report will
field
all
information
from the Data Dictionary
screen for the particular f.i.le that you
specify:
printer,
column
Field
Fiéld
Name
Description
Type
Size
Decimal
(Y/N)
Key
Offset
Case Only
Required On Entry (Y/N)
Default Entry Mask
Upper
'CR'
return the cursor to the
screen press [ESC] [q]·
To
Specía1
There are
which.
The
you
FIELD
Consíderatíons
a few special
should always
INFORMATION
When
Using
portion
The
Data
of the
Data
Dictionary
Dictionary
considerations concernin';; the Data Dictionary of
be
aware:
files should
be erased from the
THE DATA DICTIONARY.
disk.
--
Deleted
IF IT IS
--
Location-changed fíles niust be moved to
forget to nove both the FILENAME.MS and
--
Newly-defined
files must be INITIALIZED before a program can be
the data file sets all of the field
compiled.
INITIALIZING
"offsets"
(defines the location of the fields within the record)
for the Data Dictionary.
--
Re-defined files must be RESTRUCTURED to accommodate
the changes
in field definitions. If the fields have not changed in length or
type, but the key-fields have been changed, you must INITIALIZE
and then REKEY the file.
SENSIBLE
STILL
SOLUTICWtm
IN
their
DO
NOT ERASE
new
FILENAME.KS
drive.
files.
Reference
A
Do
FILE
not
2.21
-—
the length
you have modified
If
field, you must use menu selection
or the mask definition of any
3, "Screen Paintíng"
to re-load
the file into SENSCRN.COM (screen painting module) and then resave the screen format.
All SENSIBLE SOLUTION programs that
data files must be re-compiled
since the
access the modified
compiler
stores information about the data structure in the
compiled program.
you have changed the file names, you must
code before compiling.
modify
the
source
first
If
For more information concerning
section of this reference manual,
The
SENSIBLE
SO'LUTIONtxñ
the Data Dictionary refer to the
which covers data structures.
Reference
fourth
2w2?
LANGUAGE
COMMANDS
Table of Contents
Enter
=
.
.
.
.
.
.
(equals). . .
Expression
Location .
Portion. .
Trim . . .
Fill
Actual
.
.
.
If.
Go.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Save
.
rec.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
·
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
O
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
*
.
.
.
.
.
.
.
>
*
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
P
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
¶
.
-
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
records
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3.22
3.24
3.26
3.28
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3.30
3.31
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3.20
3.21
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3.38
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3.40
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
V
.
.
.
.
.
.
.
3.42
group.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
q
.
.
.
.
.
.
.
.
4
a
.
*
0
.
.
.
.
.
Record
number.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3.4
3.5
3.9
3.12
3.15
3.16
3.17
3.18
3.19
.
Buffer
.
3.1
.
Delete rec.
Clear
.
3.32
3.34
3.35
3.37
Return
Mount
.
.
(test condition) goTo. .
(test condition) goSub .
Duplicate key check. . .
Record
not active check.
goTo . .
goSub.
.
Goto save
The
.
.
(active)
Net
.
.
justify.Records.
total
.
.
.
length.
length .
Max
.
.
SENSIBLE
SOLUTIONtm
Reference
3.44
3.45
3.47
3.i
Find.
.
.
.
.
Exact. .
Generic.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3
.
.
.
.
.
.
.
.
.
.
.
.
g
0
.
.
0
.
p
p
p
.
.
.
·
·
·
·
.
.
.
.
.
.
.
.
.
,
.
.
.
.
.
.
.
.
.
Related.
Fírst Last
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Next Previous.
Prínt
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
8
.
3
At · · · · · · 0 * p
.
.
.
.
.
.
.
Error.
Format line #. 3 . .
Wídth =. . . . . . .
Línes =* . . . . . .
Max lines =. . . 3 .
Blank lines. . . O .
vertical Tab to line
Page eject
.
.
.
.
.
print Control chrs .
box. ¢ 3 * * # . 0 .
Tra>
3.49
.
3e52
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3.53
3.54
3.56
3.57
.
.
.
.
.
.
.'.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3
2
.
O
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3.59
·
o
p
*
·
p
q
*
'.
·
3
.
*
·
·
0
3
0
s
·
s
0
0
3e60
.
.
.
.
.
.
*
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
D
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3.62
3.63
3.64
3.65
3.66
3.67
3.68
3.69
3.7'0
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3
8
.
.
.
.
.
.
.
.
.
O
»
.
3
.
.
.
3
h
e
Q
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
0
.
.
.
.
.
.
.
2
.
.
.
.
.
.
.
.
.
.
.
.
.
0
.
0
.
.
.
.
.
.
.
.
9
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
."
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
»
D
.
.
3
»
@
.
.
.
*
.
.
.
e
3
.
.
.
.
.
*
.
.
.
0
.
.
.
.
.
.
.
.
.
.
S
4
S
e
#
$
+
e
.
3J71
3.'72
·
·
Q
·
·
·
o
·
0
3
i
e
.
.
o
.
.
.
g
.
.
.
.
9
.
.
3
0
o
.
s
8
0
Execute
·
*
»
P
*
O
Q
·
O
*
D
3
0
·
·
·
*
3
·
.
*
0
0
a
O
8
>
·
*
s
0
e
0
3
0
3
p
o
*
ó
Cp p
0
0
·
·
·
o
·
0
·
·
b
a
*
0
o
q
&
O
S
eg
g
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
0
.
S
.
.
.
W
.
a
S
o76
J76
3o77
3
0
«
g
O
.
.
S
V
P
S
*
S
.
e
*
a
S
O
.
*
.
O
.
g
G
a
0
.
3.78
s
@
3
0
,
,
,
*
,
0
*
*
*
*
*
0
0
e
#
&
0
%
$
&
*
3
*
w
P
8
3
0
*
3
O
O
.
8
O
D
·
&
·
*
8
a
C
*
0
@
e
0
CP ·
·
0
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
&
.
.
.
.
.
.
.
»
.
.
J79
3»80
3v81
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3.83
file
file
Com
Run
!
(remark)
Lock0
7
$
o
»
Screen
*
o
.
lj
g
fíle by Record
fíle All records
Unlock* ¥ ·
Screen
File
The
7
SENSIBLE
g
·
3
»
3
3
·
8
3
·
·
·
0
·
·
&
·
0
S
e
*
e
0
·
·
>
·
·
·
Q
·
*
9
»
#
*
0
g
·
·
·
0
S
e
·
·
»
e
>
»
.
¥
·
0
b
e
*
·
·
·
P
3
P
P
7
3
r>
a
0
8
O
·
*
G
S
S
&
·
P
»
V
·
·
9
*
P
3
·
O
0
SOLUTICWtm
Reference
3
3
3
*85
3Á35
3 ñ36
3
3.ii
+
Ent-er
+
PURPOSE:
This
has
command
been read
is used to enter data from the terminal
from the disk.
or from
a
record that
USAGE:
[RETURN]
IEJ
cjr pressing
Select ENTER bv pressing
highlighted.
After the selection you will see the word
displayed on your screen.
a prompt of 15 asterisks
is
by
when
the option
"enter" followed
***************
Type
the name of the field that is to receive the dat.a. The EDITOR will
consult the Data Dictionary to verify that the field you named exists.
If
does not, a message
to that af fect will be displayed on your screen, and
ít
the EDITOR will wait for you to enter an existing field name.
After entering the field name, you have the option to define a mask for the
mask defines the manner
in which data will be entered from the
field. This
The masking techniques
command
when
used
executed.
an
keyboard
enter
is
as
as
width,
the
of
data
allow
entry
well
withiri
field
will
left or right
automatic formatt íng, "f orced" character entry, ar.á character-by-character
(Masking i s
classes.
validation against "inclusion" orData"exclusion"
Dictionary
in the section on "Data
explained in the discussion of the
The
Structures.")
default- standards are right to left data entry for
numeric fields and left to right data entry for alphanumeric fields.
A 32 character
on your screen that will
wide prompt will be displayed
contain the default entry mask as defined in the Data Dictionary.
the
prompt line is empty then no entry mask was previously specified in theIf Data
Dictionary definition mask
for that field. In either case, you may elect to
override the default mask. for this one particvla:wi.! user entry by simply
Your new definition
specifying a new entry
apply for this entry
change
the
Data Dictionary definition of this field
not
only; it will
enter
c
i-
throughout
Next the
passwor&
The
your program.
EDITOR
SENSIBLE
If
will ask you ii! you wish to designate
you answer "yes", dat: a entered into this
SOLUTlolgtIn
this
field
field from
Reference
3
.
1
as
a
the
keyboard
will
not
be
displayed
on
the screen.
want the program to branch to a help screen for the field you have
line in your program that
you can give the label of the command
displays the help screen. Subsequently, this help screen will always appear
when the [?} key is pressed.
you have multiple help screens in your
program, you will need to reset the help screen labels appropriately.
If you
named,
If
you elect. to set a branch to a help
override a TRAP command for help screen.
If
screen,
will temporarily
this
This
asked for a label to branch to on an "up arrow."
the
should go
flow
feature will allow you to control where program
if
do
here,
a
enter
an
[up
key.
not
label
arrow]
operator presses
If you
You can also set
program flow wíll branch to the previous "enter" command.
(See TRAP command.)
Now the EDITOR
a separate TRAP for up or clown arrow.
ask you
By responding "yes", the new
you wish to save thís command.
will
command
line if
will be inserted ínto your program.
Recc>rd
number
discussion)
fields (see "R" type fielá in the Data Dictionary
ENTER command
use
an
to
an
you
case.
special
interestíng
provide
If automatically do a search for
reference an "R" type fíeld, your program will
keyB
the specified record immediately after the user presses the [RETURN]
do a search for a
blank,
the
a record number
system
field
is
will
left
If
(zero) record number which has the effect of clearing the screen and memory
buffers for this particular file0
Once created,
the command line in your source code file will look like one
of Ehe following lines:
You
will
also
be
O
(MASK VALUES)
Enter
(FIELD)
mask
Enter
(FIELD)
password type
Enter
(FIELD)
mask
Enter
(FIELD)
mask
(MASK VALUES)
Only those subsets of the
The
SENSIBLE
SOLUTIONtm
(MASK VALUES)
command
that
password type
on
help
on
you
up
gosub
on
help
(LABEL)
LABEL
arrow goto
selected
gosub
will
LABEL
be
displayeCL
Reference
332
"
To
wríte
an ENTER command:
REQUIRED
entry:
OPTIONAL
entries:
FIELD
NAME
LABEL
MASK
PASSWORD
GOSUB
ON
The
SENSIBLE
SOLUTIONtm
UP
TYPE
HELP SCREEN
ARROW
GOTO
Reference 3.3
*
—
—
PURPOSE:
The
"equals"
store
option
in
it might
a
"equals"
allows
you
specified field.
look like this:
this
When
command
Once
and
or calculation
field, value, command
a
using
new
written,
line
a
1=(FIELD2)+(FIELD3)
FIELD
FIELD3.
to define
ís executed,
FIELD1
will
become
equal
'to
plus
FIELD2
USAGE:
This
is activated by pressing {=] or pressing [RETURN] when the
of 15 asterisks.
field is highlighted. The EDITORwill display a prompt results
Enter the name of the field into which the new calculation
are to be
moved.
Next the following subset of options will appear on your terminal:
command
Expression
Location
Portíon Trim
Net (active) records
total
Records
These
options
will
be
explained
in
Fill
detail
Actual length
on
the following
Max
length
justify
pages.
Kk
C
The
SENSIBLE
SOLUTIONtm
Reference 3.4
+
+
Expressíon
+
+
USAGE:
you wish
calculation,
If
to
data from
move
one
field
to another
or perform
math
a
this "Expression" subset.
You should note this one specíal case:
a value into an "R" type
If you move
system
an
immediate
(record number)
the
perform
search to find
field,
will
the record associated with t-he vaíue. This particular feature ís unique to
record number fields.
use
If you wish to move the value stored in FIELD2 into
the expression FIELD1=(FIELD2), perform the following
I)
2)
Select the
FIELD1
moved)
Enter
be
This
=
(equals)
(the
name
option
of the
by
Select the Expression
option
[RETURN])
"Expression" and
4)
Fill
will
appear
in your program
line --
as
indicated
by
steps:
[=j
field into which the
3)
in the Expression
pressing
FIELD1
by pressing
[E)
new
(or
value
is to
highlight
(FIELD2)
as:
FIELD1=(FIELD2)
and then move the results
of that
you want to perform a math calculation
[E)
The
calculation
into FIELD1,
the
key.
press
editor wíll then display
a prompt line wherevou
can enter the expression.
Here is an example of
how an Expressíon type ccnnmaí"íd
line might appear in your program:
If
FIELD1=(F1ELD2)+<1O>*(F1ELD3)
The
SENSIBLE
SOLUTION
performs math caículations by startíng at the left
SENSIBLE
SOLUTION
side of the expression and then workingto the right.
math expressions
frcnn math expressions
found in syntax
differ
slightly
languages such as BASIC or Pascal.
The
SENSIBLE
SOLUTIONtm
Reference 3.5
There are four operators
+
addition
used
in the
- subtraction
SENSIBLE
multiplication
*
The convention used
in the Expression
manípulated are as follows:
(
[
<
)'s
J's
>'s
must
must
must
be
be
be
used
used
used
SOLUTION
/
Language:
divisíon
line to define the type of data to
around field names
around alphanumeric values
around numeric values
--
literal
be
strings
Addíng together two alphanumeric values (strings) provides
a concatenated
+[SKI]
[WEAR]
SKIWEAR.
example,
adding
results
For
result.
in
-The
SENSIBLE
any command
Expression"
inclusion
of
SOLUTION
of one-dimensional arrays in
Both the "If" and "Equal
Arrays are indicatedby the
ín the expression line.
Language
supports
an expression
that has
commands
an
ARRAYS ~~
the
use
line.
have this capability.
ampersand
(
&
)
The
SENSIBLE
SOLUTION
A
utilízes a flexible means of accessing arrays.
value stored in a field ís used as an array counter to indicate which
element of an array of símilarly-defined fields is to be accessed.
array of
in alphabetic
The
length.
An
by
fields is allocated by assigning as many field names as desired
sequence
within the same file, all with the same data type and
SENSIBLE
SOLUTION organizes fields within a
file ín ASCII order
field name. Assigning the names in sequence insures that the elements of
One
the array are contiguous.
important
If the names of
array may not be
access
the fields
conÜguous,
the data correctly.
point:
order,
fall inSOLUTION
do not
and SENSIBLE
the elements of the
will not be able to
the first
particular element of the array is accessed by specifying
The system begins
element of the array followed by an array counter value.
at the first element of the array then steps down through the buffer, by the
length in bytes of the first element, until
reaches the desired element.
A
it
Thís allows the programmer to regard a subsection
of an array as
array in itself simply by specifying the "first" array element as a
the middle of the array.
to
is the programmer's
responsibility hand
The system
happily
arrays are accessed in a valid manner.
will
It
The
SENSIBLE
SOLUTIONtm
a valid
field in
see
you
Reference 3.6
that
the
13th element of a 12-elenient array
of the following field.
-- which is probably
a
meaningless
chunk
a field,
not a numeric
array counter must be a variable stored inaÍ"ways
separated from the
constant.
In the expression Tine, the counter is(
&
).
first array element field name by an ampersand
The
and the field name follows
the
the array counter precedes the ampersand,
then this will indicate that the value of the array element is to
For example,
expression, MONTHLYSALESO1 is the
in the following
The total value of
a 12-element array of sales-by-month.
element
of
first
If
ampersand,
be read.
(Tm: ALsAIjEs)+(mNTH)&(mNTHLYsALEso1)
equal to
The value retrieved
from
correspond to the value stored in the array
"MONTHLYSALESO1".
"TOTALSALES"
plus
MONTHLYSALESnn
the
array
position
specified by "MONTH".
i-s
will
the ampersand is the first character
in the expressi-on line, and the
If
that the array element is to
would
i.ndicate
follows
counter
array
it,Forthis
be assigned
MONTH from
to 12 and
a value.
example, incrementing
1
repeatedly
executing the
command
= &(MONTH)<0>
MONTHLYSALESOI
would clear
Arrays
may
the
also
be
both read
MONTHLY SALESO1
adds
a
by the
constant
counter,
table
MONTHLYSALESnn
to zero.
written to in the
and
same
expression:
=
service
to the sales-by-month
charge
"MONTH".
array value pointed
to
indicates that the FIELD
the ampersand
is to the left of the counter,
sign is the array.
to the left of the =(equals)
'If the ampersand is
to the right of the counter,
indicates that the next FIELD NAME in the
expression line is an array@
For example:
If
it
NAME
it
FIELD1
= &(COUNTER)<0>
ampersand
array
FIELD1
= (COUNTER)&(FIELD2)
SENSIBLE
SOLÜTIONtIn
left
left of
of the counter
the equal sign
--(FIELD1)
rightof the counter -is right of the equal sign (FIELD2)
ampersand
array
The
is
Reference 3.7
To
write
an
EQUALS EXPRESSION
REQUTRED
entries:
OPTIONAL
entry:
ccmmand:
FIELD NAME
EXPRESSION
Fe
The
SENSIBLE
LABEL
SOLUTIONtm
Reference 3.8
+
Locatíon
+
USAGE:
the location of a particular character or
this command to determine
The value can be a constant (literal)
value within
or a variable.
a field.
destination
The location
back
passed
be
specified
a
to
within the field will
examined,
a
being
in
the
found
the
is
value
character
not
field
field. (O)If
or
be
returned to the destination
field.
zero
will
Use
or
With this option you rnay do an in-string search for a single character
comma and pass
partial value. For instance, you could search a field for a You
could also
the location information back to the destination field.
and pass back the beginning
search for the value"1234"
the
string
within
location within the field.
EXAMPLE:
Let's create the following
report its location:
FIELDNAME1
Here
new
=
command
the Iocatíon
of
,
line to search
withín
FIELDNAME2
is the layout of the screen display you
line in your program:
FIELDNAME1
FIELDNAME2
=1ocation of
2)
Select the "equals"
option
your destination
field
Name
will
field for
by
pressing
[FIELDNAME1]
a comma
startíng at chr
see
,
start at chr
wíthín
I)
a
as
and
1
you create
the
001
1=)·
then press
[RETURN].
Usually you will want to specify a temporary memory storage field.
Instead of storing the value on the disk, temporary memory fields
value
are used to retain information within a program; usually thememory
These
temporary
program execution.
is changed during
defined within the Data Dictionary and usually
fields must be "dummy"
coinci-de with a
data file named b4EMOPYeNS/.KS.
The
SENSIBLE
SOLUTIONtm
Reference 3.9
3)
Press [L]
display
for the
command
Locatíon
5)
will
***************
of
Fíeíd
Constant
4)
subset"Location" and the screen
Specify the type of value for which you are searching.
to search for a constant value or press If) to search
stored in another field.
Since we are searching for
will specify "Constant."
Press [C]
for a value
a comma,
Enter the value of the constant to be found
in this case
would be [,] and then press [RETURN]3
"F"
you-- had selected
(Field) on the prior option, you would enter the name of the field
containing the value for which you are searching.
it
If
6)
the prompt
Now
line
will
wíthín
Enter the
I)
we
Next the
field to
EDITOR
be
display:
***************
searched
--
[FIELDNAME2]
andpress
[RETURN).
will request:
start at chr???
Fíe1d
Constant
Specífy
8)
that
this is a constant value by pressing [C].
Enter the position within the fíeld at whích you want the search
Since we want to search the entire string, we
to begin.
will
enter a [I] and press [RETURNÑ
[F] (Field)
you had selected
If
you would enter the FIELD NAME storing the character
position
number
at which
9)
The
Enter
The
[y] or press
completed program
FIELDNAME1
SENSIBLE
you
=
[RETURN]
to
'your
save
the
search.
line
you
have
just written.
line will look like this:
the locatíon
SOLUTIONtm
want to begin
of
,
wíthín
FIELDNAME2
startíng at chr
1
Reference 3.10
To
wríte
REQUIRED
an EQUALS LOCATION
entries:
command:
DESTINATION
FIELD NAME
FOR
CONSTANT OR FIELD
VALUE TO BE SEARCHED
NAME
SEARCHED
TO
BE
FIELD
FIELD
TO
BEGIN SEARCH
POSITION
CHARACTER NUMBER
--
OPTIONAL
The
entry:
SENSIBLE
--
LABEL
SOLUTIONtnl
Reference
3.11
J
+
Portion
+
USAGE:
This command
is used to parse a field and extract a portion of it. The
porti-on extracted will. be loaded into the specified destination
field. The
command
retreives a substring of a field and moves that substring to the
áesti-nation field.
EXAMPLE:
FIELDNAME1
Here
=
portíon
of
FIELDNAME2
from
for FIELDNAME4 chars
create this new line in your
FIELDNAME3
is the layout of the screen display
as
you
portíon
of
FIELDNAME2
num of
program:
FIELDNAME1
start at
=
pos
FIELDNAME3
I)
Select the "equals"
2)
Name
3)
Select the subset option
the destination
option
for
FIELDNAME4
[=]·
pressing
by
chars
field -- [FIELD1].
[p]
(Portion)
and
you
will
then
see
portíon of ***************
on
4)
your screen.
Enter the
name
of the
[FIELDNAME2].
5)
You
need
will now begin.
will
search
The
SENSIBLE
SOLUTIONtm
field
to specify
This can
from which to
extract the substrinc
the character position from which the
a
constant or a field. If a field
be
Reference 3.12
is
control.
name
chosen
the v,í: Z-üo
The EDLTCR w j-
ii
in the field
now display
can
be
altered
under program
start at pos***************
Fíe1d
Constant
requests that you choose whether this is a field value or a
is a field, you rnust
you specify that this location
constant.
If
Make
in this
define the field in your program.
your selection;
[ F]
case,
·
press
and
which i s the becjinming position of the
na me the field
[F1ELDNAME3].
Note that
you want to retrieve.
substring which
number i s the byte position of the
th e start.ing character
The f i.rst
character of any field is
substring.
beginning of the
had chosen [C} (Constant)
name the character
1.
you
position
If
position \7ithin the field at. which you will begin your extraction.
6 )
Xow
7 )
how many characters
to extract. Once again thi"
Next, specify
a
a
be
could
constant
field. If a field narne is chosen, the
or
In our
altered under program control.
value in the field can be
example
we will use a field so the EDITOR will now display:
***************
where you must enter the name of the field containing the value
equal to the number of characters to be extracted.
8 )
If you designate the length
constant, enter the number of
[RETURN]
9 )
of your desired
characters in the
as a
substring
and
press
string
.
Press {y] or
[RETURNJ
to
save
your
new
command
line.
considered as ASCII
usinq the portion command,
all data types may i be
beginning
The "day"
s a substring
portion of a dat: e, for example,
strings.
2
characters long*
at position 4 (rnm/dd/yy) which is
When
'rhe
sensible
SOLUT
í-OíÑt-.rrL
Reference
3.
13
.
To
wíte
REQUIRED
an
EQUALS PORTION
entries:
command:
DESTINATION
FIELD NAME
FIELD TO BE PARSED
TO
POSITION
BEGIN EXTRACTING
NUMBER
OF
CHARACTERS TO EXTRACT
--
OPTIONAL
The
entry:
SENSIBLE
CONSTANT OR FIELD
CONSTANT OR FIELD
--
LABEL
SOLUTIONtm
Reference
3.14
,
+
+
Trim
+
+
USAGE:
This
command
allows
you
to trim the leading
or
trailing blanks from
a
field.
may want to move the field being trimmed to a temporary memory
Trim the spaces from the temporary memory field. This will leave
by the "trim"
commaná.
you do not move the
your original field unchanged
If
a
memory
trimming
blanks
the
from
to
cause any
field,
field
field will This
would
record saved back to the data file to be offset improperly.
.result in garbled field values when the record is viewed on screen.
Note!
You
field.
EXAMPLE:
FIELDNAME
FIELDNAME
= CUS.NAME
spaces
=
traí1íng
trim
you are interested in sending a form letter to each OF your
Obviously
customers addressing thern by their first name.
you will need
{8
CUS.NAME
a
name
hold
characters),
to
Montague
space in your
like
field
but
your customer's name is Chuck {5 characters)
you'll need a way to
trim the last three spaces provided in your name field or you'll have a
salutation
line that looks like this:
Suppose
if
instead
is
"Leading"
There
To
wríte
REQUIRED
OPTIONAL
The
like this:
of
'
Dear
Chuck
Dear
Chuck,
to solve this problem;
or "Trailing" blanks.
a command
an
EQUALS TRIM
entry:
entry:
SENSIBLE
,
it
works
by
allowing
you
to
"
command:
FIELD NAME
SPECIFY LEADING
OR
TRAILING
-'
LABEL
SC)LUTIONtñi
trim
Reference 3.15
+
+
Fí11
+
+
El
USAGE:
this
Use
specified
command
to
character.
fill the
leading
or
trailing
blanks
in
a
field with
a
.
EXAMPLE:
fieldname
This
will aallow
command
traili-nq
blanks
in
field.
=
fíll
you to
leading
specify
a
chrs wíth
fill
character
For leading
or
are printing checks and do not want to leave blanks in front of
the dollar amount. You could use th'e"Fill" option to place any character
you
that you wish as leading characters in your dollar amount
field.
specified an asterisk as the character, the value may be printed out like
Suppose
you
If
this:
*******575.55
To
write
an
EQUALS
FILL
command:
REQUIRED
entries:
FIELD NAME
SPECIFY LEADING OR TRAILING
CHARACTER TO FILL WITH
OPTIONAL
entry:
LABEL
The
SENSIBLE
SOLUTIONtm
Reference 3.16
+
+
length
Actual
+
+
.
USAGE:
command
to check the number of significar.t characters
in a field
destination
to a "pecified
field. You should
to send that information
note, however, that spaces are considered to be sign.ificarit characters.
Consequently,
you may need to trim trailing or leading spaces prior to
length" command line.
an
"Actual
writing
Use
and
this
the fieldbeing checked to a temporary memory
the temporary memory field and then check the
from
field.
leave your original field unchanged by the
"actual command.
will
do not rnove the
you
"trim"
field to a memory field, trimming
If
blanks from the field will cause any record saved back to the data file to
be
This would result in garbled fieldvalues when the
offset improperly.
on
viewed
record is
screen.
rnay want to
Trim the spaces
This
length."
Note!
You
move
EXAMPLE:
FIELDNAME
FIELDNAME
=
=
trim
spaces
actual
traí1íng
CUS.NAME
length of
field with a defined length of 30 characters
in it that is 17 characters long, the integer 17 will
the destination
field.
If you
a name
To
have
write
REQUIRED
an
a name
EQUALS ACTUAL
entries:
MUST
LENGTH command:
FOLLOW
DESTINATION
FIELD TO BE
OPTIONAL
The
entry:
SENSIBLE
and you ha.ve
be passed to
EQUALS TRIM
FIELD NAME
AN
COMMAND
CHECKED
LABEL
SOLUTIONtñi
Reference
3.17
.
+
+
length
Max
+
+
U
USAGE:
This command will pass
length of a specified
a
value to
a
field.
destination
field equal to the
maximum
EXAMPLE:
FIELDNAME
If you have back
will =ss
a
To
wrít:
e an
REQUIRED
OPTIONAL
The
EQUALS
entries:
entry:
SENSIBLE
length
of
f ie1d
CUS
.NAME
field 'that will hold thirty characters, this
30 to your specified
destination
field.
CUS.NAI'4E
the
= maximum
command
number
MAX
LENGTH
command:
DESTINATION
FIELD TO BE
FIELD
NAME
CHECKED
LABEL
SOL[jTION"tm
Reference
®
3.
18
+
justífy
+
USAGE:
Use
You
this
can
command
to
the significant
justifyjustify,
or center
left justify, right
characters
within the field.
the significant characters.
j
EXAMPLE:
justífy
ctjs.name=
A name
field
as
of
30
follows
appear
this example.)
characters,
with the name SMITH,
the
with
different justifications.
left justified
right justified
centered
Within a record, a string
field right justified.
To
wríte
REQUIRED
OPTIONAL
The
an
EQIJALS JUSTIFY
entries:
entry:
SENSIBLE
left
WILLIAM in it, would
(*'s equal blanks in
WILLIAltF***************
smith,
****************smith, william
********SMITH,
field is
normally
WILLIAM********
left justified
and
a
numeric
ccmnand:
FIELD NAME
SPECIFY JUSTIFY
--
LEFT,
RIGHT,
OR
CENTER
LABEL
SOLUTIONtm
Reference 3.19
+
total
Records
+
USAGE:
this
Use
command
a spec.ified
include any
file
will
to assign a value equal to the total number of records in
The number of records
to a destination field.
returned
deleted records in the file.
ExmpLE:
FIELDNAME
To
wríte
an
=
EQUALS
total
nuniber
TC)CLAL
RECORDS
REQUIRED
entries:
DESTINATION
FILE NAME
OPTIONAL
entry:
LABEL
The
SENSIBLE
SOLUTIONtrrl
of records ín
FILENAME
command:
FIELD
NAME
Reference
332C
+
Net (actíve)
records
+
USAGE:
data files, records exist in one of two different
from a file
a record has been deleted
deleted.
states -- active or
simply flagged as deleted or inactive.
is
is not physically erased;
Deleted records are then reused by SENSIBLE SOLUTION as they are needed.
With
SOLUTION
SENSIBLE
it
The
is
command
RECORDS
NET ACTIVE
number of active records in
number of .records returned
records will be excluded.
it
If
to assign a value, equal to the total
The
to a specified destination field.
include
only
active records; deleted
used
file,
will
EXAMPLE:
FIELDNAME
To
wríte
an
=
tot
num
of actíve
EQUALS NET ACTIVE
RECORDS
REQUIRED
entries:
DESTINATION
FILE NAME
OPTIONAL
entry:
LABEL
FIELD
records
in
FILENAME
comnand:
NAME
.
The
SENSIBLE
SOLUTIONtm
Reference
3.21
+
If
+
PURPOSE:
this
Ijse
command
with
arrays
this
to make
command.
a
logical comparison
fields.
of two
You
may
use
USAGE:
When
in
you
a menu
select
like
1
command,
the
the one below:
If
2
<
the conditions
3
<=
=
Record
Dup1ícate key check
first.
The
6
options
are
symbols
4
for which
5
=>
not actíve
representing
you
can
6
<>
>
test appear
check
the Eollowing:
I) less than
less than or equal to
equal to
equal to or greater than
greater than
less than or greater than
2)
3)
4)
5)
6)
After'
enter
you
select
the
name
one
of the
of the options from
field being tested:
if
After entering the field name,
to enter either the field name
1
through
6 you
will
be
prompted to
***************
an expression
you wish to compare
line
will
or
be
a
provided
literal
for
you
value3
(test condítíon)
*****************************************************************
if
The
SENSIBLE
FIELD1
SOLUTIONtm
Reference
"A22
Regarding the expression
(equal) command:
(
[
<
You
can
Once
can
also
you
GOTO
líne,
field to a math calculation
with this command.
have
GOSUB.
entered the expression
Make your selection
will divert.
You
FIELD1
FIELD2
goSub
sample
conventíons
command
apply here
as
in the
will
in the expression line
line,
and
see
(condítíon
and
if
FIELD1
<
specífíed
(FIELD2)
go(to)(sub)
LABEL
gosub
LABEL
\
SENSIBLE
SOLUTIONtIn
you
you are asked
the branch is a
then enter the line label to which
the following prompts on the screen:
line wight be:
íf
The
=
)'s around fíe1d names
J's around alphanumeric Literals
>'s around numeríc Literals
íf
A
same
compare
a
use arrays
or
program flow
goTo
the
Reference 3.23
—+
If
(test condítíon)
goTo
"
-------
If
If
If
If
If
If
+
Less Than Goto
Less Than or Equal Goto
Equal
Goto
Greater Than or Equal Goto
Greater Than Goto
Not Equal Goto
,
PURPOSE:
These
The
commands
compare
the value of a field to the value of an expression.
test is: FIELD (test) EXPRESSION. If the test is true, program control
is transferred unconditionally to the specified line label. Otherwise,
program control "falls through" to the command following the test.
USAGE:
is
Here
layout of the screen display you
a
command:
FIELDNAME1
íf FIELDNAME2
Enter the name
expr"ession.
of
(condítíon
specífíed)
field which is to
be
Enter the argument for the expression
calculation,
or an array element.
Enter
the
GOTO
"target"
test is true.
The
SENSIBLE
SOLUTIONtrrl
line label
will
where
compared
line.
see
goto
with
This
can
the program
you create
as
the
LABEL
the value of the calc
be a
will
literal, field,
branch to
if
Reference 3.24
the
\
To
wríte
REQUIRED
an
IF
entries:
(TEST)
GOTO
command:
TEST CONDITION
FIELD TO BE TESTED
FIELD
EXPRESSION TO TEST AGAINST
BRANCH
GOTO
OPTION
TO
COMMAND
LABEL BRANCHED
--
NAME
--
OPTIONAL
entry:
LABEL
.
The
SENSIBLE
SOLUTIONtm
Reference 3.25
If condítíon)
(test
-------
If
goSub
Than Gosub
Than or Equal Gosub
Equal Gosub
Greater Than or Equal Gosub
Greater Than Gosub
Not Equal Gosub
Less
Less
If
If
If
If
If
PURPOSE:
These
commands
compare
the value of a field to 'the value of an expression.
the
value
the
of
the expression match the specified
field
line Label
If called as a subroutine. and
-is
Otherwise, program control "falls through" to the
command
following the test.
USAGE:
Here
is
command
a Layout
Line:
of 'the screen
FIELDNAME1
íf F1ELDNAME2
(conditíon
dis.play
you
will
specífíed)
see
gosub
as
you create
the
LABEL
Enter the name of the field which ís to be compared with the value of the
calc expression.
,Next, enter the argument for the expression line. This
can be a literal,
field, calculation,
or an array element.
Finally, enter
the GOSUB "target" line label (where the program will branch to
the test
is
A "RETURN"
The
if
truej
SENSIBLE
command
line
SOLUTIONtIn
must
be
placed at the
end
of
a
subroutine.
Reference 3.26
To
write
REQUIRED
an
(TEST)
IF
entries:
command:
GOSUB
TEST CONDITION
FIELD TO BE TESTED
FIELD
EXPRESSION TO TEST AGAINST
BRANCH
GOSUB
OPTION
COMMAND
LABEL BRANCHED TO
--
NAME
--
OPTIONAL
entry:
LABEL
EXAMPLES:
íf
F1ELD1
=
(FIELD2)
gosub
goto
LABEL
or
LABEL
or
íf
FIELD1
=
(FIELD2)+<10>
gosub
goto
LABEL
or
LABEL
or
íf
FIEIJD1
=
(counter)&(FIELD2)
gosub
goto
LABEL
or
LABEL
FIELD2
is an array and the counter isÑset to a value representing
element of the array you want to compare. FIELD1 can also be an array
the command would look like:
where
íf
FIELD1
=
&(counter1)(counter2)&(FIELD2)
gosub
goto
the
and
LABEL
or
LABEL
This command would compare the element of the (FIELD1)
array, as defined
(counter1), to the element of (FIELD2)
array as defined by (counter2).
by
e
íf
FTELD1
=
&(counter1)(counter2)&(FIELD2)+<5>
This command line would compare an element
with the element of the (FIELD1)
array.
The
SENSIBLE
SOLUTIONtm
of the (FIELD2) array,
Reference
plus
3.27
5,
+
+
If
Duplícate
check
key
+
+
g
PURPOSE:
a key field value in an existing
to determíne
will acheck
a field value already
value
entered
by
the
matches
user.
file
existing in the file matches the value entered by the user, then program
Otherwise, control
control will be transferred
to a specified
line label.
the duplicate key check.
"fall-s through" to the command followíng
if
command
This
data
If
E
USAGE:
is
Here
layout of the screen display you
a
command:
íf
dupíícate
key exísts
for
will
see
KEY FIELDNAME
as
goto
write the
you
LABEL
test ís to be made3
Enter"
This is the "target" line label to which control
the Goto label.
be passed
the value already exists .in the key field.
if
First,
If
a
name
the
duplicate
key
A
will
be
presses
This
The
and
A
displayed
[RETURN]
command
operator
therefore
duplicate
The
SENSIBLE
against
key
which the
is found, the
record already
message
exísts
wíth value entered
at the bottom of the operator's screen.
If the operator
label.
specified
the
flow
branch
to
program
will
used
entry
to prevent multiple
message
the
an error
receive
field
will
cannot be checked.
is usually
key
will.
check
will
SOLUTIONtññ
if
never
trigger
a
file
cjf
keys
is not
into
a
a key
file3
field
trap.
Reference
3028
To
wríte
REQUIRED
OPTIONAL
an
IF
entries:
entry:
KEY EXISTS
command:
KEY FIELD NAME
COMMAND
LABEL
BRANCHED
DUPLICATE
TO
LABEL
*
The
SENSIBLE
SOLUTIONtm
Reference 3.29
+
+
If
Record
not actíve
check
+
+·
PURPOSE:
With
SENSIBLE
SOLUTION
data
states -- active or deleted.
is not physically erased;
Del-eted records are then
files,a
it
reused
If
is
by
records exist- in one of two different
record has been deleted from a file it.
simply flagged as deleted or inactive.
SENSIBLE
SOLUTION as they are needed.
This command tests the "current récord" to see
is
the current record number has been cleared (is zero), or a "find active.
.record" is
unsuccessful,
program control will pass to a specified line label.
Otherwise, control "falls through" to the command following the "test.
if it
still
If
USAGE:
Here
is
command
Name
the
a layout of the screen
Line in your program:
file
display you
íf
record not actíve
to
be
fíle
FILENAME
will
see
goto
as
you crea.te
LABEL
tested
for an active current recorcL
Enter the Goto label. This is the"target" line label to which control.
passed
if the "current record" is not active.
To
wríte
REQUIRED
an
IF
RECORD
entries:
NOT ACTIVE
FILE
COMMAND
OPTIONAL
The
entry:
SENSIBLE
the
GOTO
comnand:
NAME
LABEL
TO
BRANCH
TO
LABEL
SOI,UTIONtm
Reference
3Á30
is
+
+
Go
+
+
PURPOSE:
GO
is
used
to
divert
program
control
to
a new
label
in the program.
USAGE:
The
GO
command
is highlighted.
The
GO
command
group is activated
group
by
pressing
[g) or
[RETURN]
when
the
field
is comprised of four options:
goTo
LABEL
goSub
Goto
LABEL
save
group
Return
G
-
The
SENSIBLE
SOLUTIONtm
Reference
3.31
+
Go
goTo
+
.
PURPOSE:
This
command
will
allow
you
to branch.program
control
to
a
specifíed
label.
IJSAGE:
When you seleCt
[RETURN]
you
goTo by
see
pressing
will
[T] or
Enter 'the command line
you will beU asked:
go
label to which you want program control
to Líne depending
on
the value of the
to this question you can
you answer"yes"
control to one of several dífferent
transfers
the value of a field.
If the field value is
maxírnurn,
specified
control wíll be passed to a
When
If
you
answer
"yes" the
on
and
EDITOR
pressing
**********
goto
Now
highlighting the option
will
fíeld?
yes
t.o
divert.
no
create a command
line that
depending on
program lines
a
less than 1, or exceeds
specified "goto" líne label.
ask:
the value of
***************
value wíll be tested.
Enter the name of the field whose
If the field value
is 1, control will be transferred
to the command immediately followíng
the
the value is 2, the second command will be executed, and so orc
goTo.
Be sure that you have a value
in the field before performing the goto
If
command.
the
maximum
number of goto's that you wish to use in this
the
value
of the field exceeds
this maximum value (or
If
be
less
than
passed
the
to
is
I), control will
line label specified as
your target label.
Next,
command
it
This
The
enter
line.
command
SENSIBLE
if
is generally used in
SOLUTIONtm
menu.prc)gramsQ
However,
it
may
be
Reference 3.32
used
within a program to
specified field.
do
The
?rogrammer to selectively
on the value
of a
conditionalof branching based
function
"condítional goTo" is to allow the
branch to another
program
líne.
EXAMPLES:
a sample
rnenu
START
A non-menu
program
--
enter Ne1.O.1
goto line on value of N.1.O.1
execute .RUN FILE 1
execute .RUN FILE 2
execute .RUN FILE 3
program
START
maximum
g'otos
03
if
error
goto
START
--
enter N.1.O.1 inask [I 3 5]
goto line on value of N.1.O.1
1>
(accepts only 1,3, or 5 values)
gotos 05
error goto START
maximum
FIELD
=
goto NEXT STEP
FIELD =
NEXT STEP
(contínue with
if
goto
To
wríte
a
GOTO
the next
command
line in your program)
conunand:
REQUIRED
entry:
LABEL
OPTIONAL
entries:
TRANSFER VALUE
MAXIMUM GOTOS
LABEL
OF
COMMAND
LINE
BRANCHED
TO
FIELD
*
.
The
SENSIBLE
SOLUTIONtm
Reference 3.33
Go
goSub
PURPOSE:
This com mand transfers program control to a specified line label but. " marks
" Return"
Lts place"
control back
can transfer
com mand
so that a subroutine
By using
a gosub áomrnanCi,
you can temporarily branch
to
to the next command.
ín your program and then return to your origínal command path.
a subroutíne
*
USAGE:
W
hen you select the option
pressirg [RETU RN] the screen
goSub
will
[S]
by pressing
show:
it
or highlightíng
and
**********
gosub
DIT O R is askíng for the label of the "target" Line. E EachO Rtíme you
does is
.insert a command line into your program, the first thing the
DIT
lineQ
as a
label
This
line
label
opportunity
acts
the
to
that
offer youWhen
R
asks you to name the
gosub
a
write
command,
the
EDITO
you
target.
target line label for program control to branch to. Enter this label and
?r= [RETURN]»
The
E
return from
goto com mand.
the gosub.
To
a
Y
gosub
(subroutine) you must
ou will be returned to the
use the " Return"
next sequential co
com mand,
not a
mand following
m
of the next sequential
you execute a gosub command, the location
When
the Return
in your program is loaded ínto a stack register.
is
used to poínt to
is executed, the address at the top of the stack
the command to return to.
When
com nand
corrunand
regíster
The
stack
subroutines
To
wrí'te
a
20
GOSTJB
deepo
can hold
entry:
COMMAND
OPTIONAL
entry:
LABEL
SENSIBLE
to
2 O
pointers.
This
allows
for nested
comnand:
REQUIRED
The
up
SOLUTIONtm
LINE
LABEL
TO
BRANCH
'ro
Reference
3
.
34
+
+
Go
Goto
save
group
+·
+
PURPOSE:
This command is commonly used to trigger a "save record" action for a group
without reqiúring the user to press
of data files under program control,
[ S]
This com rnand can al-so be used to request a
[ESC]
(save record).
and updates to
response froin the operator before performíng calculations
has
the
saving.
records
Suppose
all of the
input
operator
prior to
and update the
make
calculations
the
to
information
program
necessary for
to
file-s.
the operator has rnade an entry error, he has the oppórtuníty
If
the
All
of
the
instead,
correct
but,
to
informatíon
save
the
error.
not
calculations
are done after the operator confirms the save, not while the
operator is entering the information.
USAGE:
"SAVE this record? (Y/N)" to be
Using this command will cause the message
displayed on the operator's screen; only a single keystroke will be accepted
to upper-case.
If
for an answer. The keystroke is automatically converted
to the line label specified by the
the answer ís Y, control is transferred
control is passed to the com rriand following the last
command; otherwise,
RECORD?"
This "SAVE
question will bypass
executed " rnount screen" com mand.
C O N FIRM
E
rnand
this corrtmaná line.
WITH
following
SAV
immediately
lines
com
any
·
W
it
hen you write
and pressing
the com mand " G oto save group"
[RETU RN], the screen will show:
goto
save
WWP
Enter the line label to which control
"SAVE
this record? (Y/N)" is Ye
by
pressing
[g
)
or highlíghtirig
**********
will
be
transferred
if
the
answ
er to
CONFIRM commands normally ask the "SAVE?" question for each
command.
you have a group of savesTheinvolving several different files,
If
"Goto save group" command can
the multiple requests can become tedious.
eliminate this problem by asking the " SA V E ? " question once; subsequent
requests for confirmation
will be suppressed until a corrímand other than a
"save" is encountered.
SAVE
The
WITH
SENSIBLE
SOLUTIONtm
Reference
3
.
35
To
wríte
a
GOTO
SAVE
GROUP
REQUIRED
entry:
COMMAND
OPTIONAL
entry:
LABEL
command:
LINE
LABEL
TO
BRANCH
TO
.
.
.
The
SENSIBLE
SOLUTIONtm
Reference
3
.
36
+
Go
Return
+
K
PURPOSE:
This command
is used to mark the end of
control back to the com mand im mediately
subroutine .
subroutine and to transfer program
following the Gosub that called the
a
USAGE:
Return
displayed
A
To
wríte
com mand
if
An error message
must end every Gosub routine.
you encounter a Return without first having executed a
will
be
GosütÁ
a RETURN ccmmand:
REQUIRED
entry:
NONE
OPTIONAL
entry:
LABEL
t
The
SENSIBLE
SOLUTIONtIn
Reference
3
.37
+
+
Mount
+
t
PURPOSE:
This command will display a SENSIBLE SOLUTION screen file (f.ilename.SCCk
Use2 the " Mount" com matad to display both report formats and screen formats&
The number of screens that can be mounted is only limited by the amount of
available memory.
L
7
USAGE:
W
hen you select
pressing [RETURN)
,
the option Mount by pressing
the screen will show:
Screen
format
[
M
or highlíghtíng
]
it
and
Reporter format
format" by pressing [S], the
DIT r will
If you selecthich"Screen
you must enter the name of the screen to be
field in
provide a
displayecL
Mtzltiple screens may be used in a single program and the screens may be
standard "Screen formats" or " Reporter formats'C
This allows you to print
rnií1tip1e
detail lines on the screen or interactively input data through one
or more screens and then print out reports -- all with one programj
E
O
"
w
mount a " Reporter format" screen by pressing [ RJ , you must
The
of the Reporter format.
EDITOR will then ask you to
Select. one of these four
where the prínt out ís to be sent.
you choose to
If
enter the na me
iáentífy
options
:
Ask
at run time
prínter Crt
Dísk
you select "Ask at run time", a message will be displayed
If
operators screen .requesting them to choose where the report output
RT, or the Disk.
sent
-- either to the Printer, the
on
should
the
be
C
'If you select "Dis,k", you will be asked to name the file to which you want
C
arria ge returns will be autom atically
the program to send the output.
You can use this option to send
added to the end of each format line.
data
to the disk that can then be used as input for word processing or spread
command.
sheets.
See the PRI'NT
trñe
senSible
SOLUTIONtiñ
Reference
3
é38
EXAMPLE:
mount
report
format
prínt
FILENAME
on
ask at run time
you must
you are sending control characters to the printer or terminal,
device
is
no
output
certain to have the output device defined.
If
then the operator must determine where the
assigned (Ask at run time),
control characters will be sent by his selection.
If
be
a Reporter format screen is
If
control characters will be sent
estab1isMed
The same
To
wríte
REQUIRED
and re-established
format screen can be
a
MOUNT
entry:
not MO UN TED, the system assumes
that all
DKection of output can be
to the terminal.
format screens.
by mounting and re-mounting
remounted i-n a single program.
command:
SCREEN
OR
REPORTER
REPORTER format
OF
DIRECTION
PRINT
for
OPTIONAL
entry:
FILENAME
LABEL
FORMAT
NAME
only
OUT
--
--ASK
OR
AT RUN
DISK,
TIME,
PRINTER,
CRT,
for "print to disk" option
a
O
The
SENSIBLE
SOLUTIONtm
Reference
3
.39
e
Save
rec
PURPOSE:
Use
this
command
to
save
the record in
a
a
specified
file.
USAGE:
selecting
After
and
the "Save record" option by pressing [sj or highlighting
ít
pressing [RETURN], you will be asked to name the file to which you want.
R
the recorá saved.
Next, the EDITO
will display on the screen:
Confírm
YES
NO
You
have the option of forcing the user to confirm
the record.
you choose "yes", the user will see
If
screen:
SAVE
default answer is "yes."
the program will pass control
" Mount screen" command (the
The
that they want to save
on their
this message
this record? (Y/N)
user
Ifto the
the
shouíd answer the question
"río,"
first " Enter" com mand following 'the
first input field on the screen)*
On the other hand,
you specify that you do not want confirmation from the
if the
T his
record
confirm
),
(no
will be saved without a request.
user
provídes
Now
the
"automatic"
EDITOR
will
data update without
ask
you
operator
intervention.
to specify:
Clear buffer
YES
NO
the memory buffer will be cleared
After a record is saved, all fields
displayed
of this record are cleared to zero or blanks in internal buffers,
fields are cleared, and the record number will be set to zero.
ES, both the screen and
you answer
If
"save"
each
command is executed.
after
Y
option, you can also enter the line label to
to branch if the user does not wish 'to save the
screen you will seé:
you select the "confirm"
If
which you want program' flow
record.
The
On
SENSIBLE
SOLUTIONtñi
Reference
3
.40
íf
no
save
then goto
**********
.
C
ontrol.
goto label will allow you to control program flow.
command
line
command
going
the
instead
of
line,
to
labeled
pass
the
to
will
When
following
the " Mount screen" command.
you execute a search for a
record and update that record, saving it back in the file will overwrite the
old record.
If there was no record in the buffer (you are creating a new
one), by saving it, it will append this new record to the data file.
Specifying
a
Choosing N O means that buffers and screen display are not cleared of data,
The option to not clear
the current record number remains unchanged.
but
buffers would be used when you not only wish to save data in ( a fíle,
D
also want the data available for further processing, such as a FIN
next
[N] ·
record) [ESC]
and
is
system determines what is happening at the time a "save rec" command
a value greater than zero
executed by checking the number of the record.
If
(O) exists in the record
number field, the system recognizes that you are
Otherwise, it
updating an existing record and writes it in that. positíon.
recognizes the record as a new one and eíther overwrites the first deleted
record in the file or appends the new record onto the end of the file.
The
EXAMPLES:
rec ín
rec ín
save
save
To
wríte
a SAVE
REQUIRED
entry:
OPTIONAL
entries
The
SENSIBLE
RECORD
fije
fije
command:
DESTINATION
:
conf írm/clear
no confírm/no
(FILENAME)
(FILENAME)
clear
buffer
"
FILE
NAME
CONFIRM OR NO CONFIRM
CLEAR BUFFER
COMMAND
LINE LABEL TO
LABEL
SOL[jTIONtm
buff er
GOTO
IF
NO
SAVE
Reference
3
.41
+
+
Delete rec
+
+
PURPOSE:
This
com maná
USAGE
:
delete
is
used
to delete
rec ín fí1e
FILENAME
the DELETE
After selecting
want
which
to delete
you
Confírm
a
RECO
a
record
confírm
RD
record.
No
conf írm
from
if
option
The
no
specified
a
delete
enter the
file.
then goto
name
LABEL
of the
editor will ask:
Delete
all
file from
records
he
will generate a message
sub- option " Confirm"
to the operator asking
The
default answer is N O.
"REMOVE this record? (Y/N)".
If the user
to the first " Entry" com maná following
answers N O, control is transferred
the " Mount screen"command.
answers Y ES, the current record
If the user
the record buffer and
will be removed from the data file.
In addition,
The "current
record number" for this data
terminal display will be cleared.
file will be reset to zero.
T
you select the "confirm "
Ifwhich
flow
you want program
this record?
message.
number"
"current record
be
is reset to zero, operator entries
new
entries.
will
considered
the operator w ants to
delete
follo
If
m oáífy
be
existíng records, they wíll
required to perform a " Find" first.
The
an
message
will
get
operator
error
if they attempt to delete a record
when the "current record number" is zero.
Since
the
"
option, you can enter the command line label to
N C)
to a " REMO VE
to branch if the user responds
winC
a
delete
rec ín fijLe
FILENAME
no
confírm
Specifying the sub-option " N o confirm" will delete the record without
the buffers and 'the operator's screen display
th e operat.or;
cleared, and the "current record number" will be reset to zero.
The
SENSIBLE
SOLUTIONtm
Reference
asking
will
3
.42
be
This
by this com rnand.
be
in
avoided
should
data deletion is provided
ote that "automatic"
command is very dangerous, for obvious reasons,
is not absolutely necessary.
programs where
N
and
it
rec ín
delete
" D elete
Thus,
SENSINIT.COM).
Actually, the com mand sets
the ,KS
to zero.
T
he
sub-option
it
fije
all
FILENAME
recs
file (see
initializ e th
all records"
ill
deleted.
been
have
records
all
appear
that
will
the "number of records", a value maintained in
e
w
will
is completed,
this
progra m control
command
rec"
"delete
the
following
the
in
line
the
next
program
return to
as
T
usually be used in uTility programs such
his com mand
line.
will
and
the
month's-end cleanup
like.
file,
To
wríte
a DELETE
REQUIRED
entry:
OPTIONAL
entries
RECORDS
hen
command:
FILENAME
:
W
CONTAINING
CONFIRM
CONFIRM
ALL RECORDS
COMMAND
LINE
LABEL
RECORD
TO
DELETE
NO
The
SENSIBLE
SOLUTIONtm
LABEL
TO
BRANCH
TO
Reference
3
.43
+
CLear
+
\
PURPOSE:
This command is used to either clear the values displayed on the operator's
screen (clear the buffer) or to clear the current record number from memory3
USAGE:
W
hen you select the Clear option by pressing
pressing [RETU RN], the following options
and
[C]
will
the option
or highlighting
appear on your screen:
clear
Buffer
These
The
options
SENSIBLE
will
be
SOLUTIONtIn
explained
Record
i-n
detail
on
the following
pages.
Reference
3
q44
\
+
+
Clear
Buffer
+
+
PURPOSE:
"Clear buffer" is used to clear the screen and memory buffer of records that
T his command
clears the record
active.
buffer for the
are currently
specified data file, sets the "current record number" to zero, and empties
the field windows on the terminal display.
USAGE:
cLear buffer
ín
fíle
FILENAME
After selecting this option, enter the name of the data file you wish to
D
This
clear.
ata on the screen and in the file buffer will be cleared.
command can be used to insure that data will not be left on-display' or in
"save" or " áelete".
of an accidental
against the possibility
buffers,
It
is also used to clear specific files out of a screen where there are
m ultiple
files bein g dísplaye d.
The
all
[C] ) executed by the operator will clear
clear fields" optíon ( {ESC]
used
in the program unless a trap is set to clear only
file buffers
"
specified files.
A
T RAP
be set for an operator
can
initiatíng a "clear screen" from the
in the program
a trap is set, you can branch to a subroutine
keyboard.
If
This would be used
where you have control over which buffers are cleared.
where multiple files are being displayed in a screen and you w ant only
(e.g., You have a header recorá on the screen and are
certain ones cleared.
You might want to
using values from it to find related transaction records.
clear the transactíon records but not the header record.)
information
For
more
The
SENSIBLE
see
SOLUTIONtm
the section
on
TRAP
command
for "clear".
Reference
3
.45
+
Clear
Record
nuniber
+
PURPOSE:
This command will clear the current
the record will remain in memory.
record number from memory.
The
data in
USAGE:
clear
After selecting this
to the record number
record
number
option, enter the
you wish to clear.
in
name
fíle
FILENAME
of the
data
file corresponding
If you are reading records with locks, this corn mand has the function of
unlocking the record.
This allows you to retain the information
in the
record yet make it available to other users in the system.
sually this applies to a shared syste m file that rnany application progra ms
to obtain information.
Fields like date, company name, invoice numbers,
etc., would typically be used by a number of application
programs in an
accounting system; this information
is usually kept in a one record file
called a "syste rri " file.
U
use
Since this record must be available to each application,
record in locked and then clear the record number field
available to other users.
you can read the
-- thus making it
If you are updating information in this record, your program will will need
to reread the record with a lock into memory, update it, save it back to the
disk, and then clear the record number to unlock
it again.
second function performed by clearing the record number affects saving the
When the system saves a record,
record.
the record number field
it checks
does,
to see if a value exists.
one
the
will
rewrite the record to
save
the dísk on top of the old If
record with the same number.
exists
If noto value
in the record number field, the save will append the record
the end of
the data file.
A
The
SENSIBLE
SOLUTIONtm
Reference
3
.47
should be cautious about clearing the .record number
trying to update and save the same record.
Y
ou
To
wrúíte
a CLEAR
RECORD
REQUIRED
entry:
FILE
OPTIONAL
entry:
LABEL
The
SENSIBLE
SOLUTIONtm
NUMBER IN
FILE
C(mi'"1'P·¶4'
field when you are
-
NAME
Reference
3
.48
+
+
Fínd
+
+
PURPOSE:
The
"Find" com mand allows you to specify different techniques by which
With the options available,
records will be retrieved from data files.
you
have very
flexible, powerful, and fast search capabilities .
OPERATION:
All " Finds" ( whether executed as com mands from within a .R U N file, or
triggered from the flash menu during entry to a field) operate in the same
way:
This may be a local
FILETRAP target is marked for possible use.
D
command),
the
the
(specified
ín
current
FIN
global filetrap,
filetrap
disabled.
or none if trapping is currently
I)
The
If the find is a NEXT or PREVIOUS, the "last key accessed" is looked
up. If there is no "last key accessed" SENSIBLE warns "Must SEARCH
before doing NEX T/P REV" and either execution continues with the next
command in the .RUN file (with FIN D commands), or the flash nienu is
redisplayed ( with en TE R corn mands).
2)
If the find is on a key fíe1d (not a record number), the FILE
INFORMATION SECTOR (physical record #0 of the .KS file) is locked in a
multi-user
This prevents anyone else from doing any finds,
syste m.
saves or deletes while you are lookinq up your key.
If another user
bas the FILE INFORMATION
SECTOR
locked already, your prograrr. waits
until it can achíeve a lock. You cannot escape frorn thís wait loop.
3)
4 )
The
"f ind" is performed.
5) The FILE INFORMATION
SECTOR
Typically, the entire
is unlocked.
lock/find/unlock
cycle takes less than a second on a hard-disk system,
contend
so you will seldom
for use of the FILE INFORMATION SECTOR.
System
When
a
Operatíon
find is succesful,
file, and this
for
this
The
SENSIBLE
SOLUTIONtm
Fo11owíng
a
Successful
the found key is marked
as the
file is flagged
as
Fínd
the "last key accesseá"
"last key file accessed".
Reference
3
.49
Subsequent
m
will
enu)
Then
N E X
T/P
for
key
is read from the
the looked-up record
1
from the keyboard (i.e.
the search criteria.
from
searches
R E V
this
use
.MS
file.
Now
an
the
ENTRY
flash
system
Attempts to lock this record. If another user has this
is clisplayed. The user
record locked already, a message
"top-of-screen"
may ESCAPE
to
(first command after the
last-executed M OUNT command),
or w alt until the existing
will
the user waits, the m essage
lock is released.
If
gained.
is
his
lock
as
as
soon
clear
.
number ís
This lock will be held until I) the record
3 )
2 )
unsuccessful
an
deleted,
is
the record
cleared,
N
file.
find is attempted, or 4) the user exits the .RU
2
3
record to see if it is flagged
Inspects the looked-up
This should not happen with a keyfield
as "deleted".
lookup but might happen if the lookup is done by record
A
record clears all fields to spaces
"deleted"
number.
" current record number"
and m arks
as zero.
.
.
Displays on the current screen the
fields in the record that was found.
trap
the RELATE
If
perform a specified
is set
D
G
OSU
B
and a successful
and then return to
of the
contents
"find" occurs, the system will
the next line in the progarm
U N
file (with FIN d
Executíon continues with the next com mand in the .R
When the "find" was initiated through keyboard entry from the
commands).
R
commands).
m
the flash m enu is redisplayed (with EN TE
enu,
flash
Operation
System
When
a
1
2
The
.
O
Followíng
an
Unsuccessful
find is unsuccessful, the system
Clears the "last key accessed" (if the find
PREVIOUS).
NEXT
or
If
T RAP
a
"
F
"
Fínd
was
SOLUTIONtiñ
a
(file error) is set, the system continues
leaving
program execution from the specified line label,
any current record untouched (i.e. a record looked
earlier find) .
an
SENSIBLE
not
up
on
Reference
ÍR50
3
.
If
the fínd failed by encountering a "beginning of keys"
the current record will
or " end of keys" condition,
remain untouched; otherwise, the record CON TENTS are
unchanged but the record N U MBE R is cleared.
This
releases the lock on the record and makes subsequent
saves "new" saves rather than "replace" saves.
Execution continues with the next com mand in the .R U N file ( with FIN d
When the "find"
commands).
was initiated through keyboard entry from the
flash m enu, the flash m enu is redisplayed (with EN TE R com mands).
USAGE:
This
command
can
be
activated
by
pressing
field is highlíghted.
The
following
subset of options
Exact
These
The
options
SENSIBLE
will
Generic
be
SOLUTIONtm
will
Related
explained
[F]
presUng
or
on
First
Last
on
RN]
when
your terminal:
appear
in detaíl
[ RETU
Next
Previous
the following
pages.
Reference
3
.51
the
+
+
Find
Exact
+
+
PURPOSE:
This
com mand
field specifie
and whatever
d.
will search for
The
fielás
a record
exactly matching the value in the
associated record will be read into the memory buffer
are on the screen will be displayed.
USAGE:
fínd exact rec usíng fíeld FIELDNAME on error goto LABEL
value must. be present
Name the field on which the search is to be done.
in the field before this com mand is executed by your program
A
Then, specify
program control
Line
a subroutine
label designating
to which you w ant
An error
diverted in the event of an unsuccessful search@
message
will be displayed ifbe the specified field is not. an index-key field.
An error
message
displayed if an exact match is not found and
will also
The
an "on error goto" label is not 'used in your program.
operator must
[ RETU
]
processing.
key
RN
press
the
to continue
a
The label specified in this com mand will override
is specified, the TRAP would
command.
If no inlabel
on T RAP commands.
(File
Error)
the
section
"F"
To
wríte
a FIND
EXACT
RECORD
REQUIRED
entries:
FIELDNAME
OPTIONAL
entries:
COMMAND
a T RAP "F"
be activateCL
(F'ile Error)
See
T RAP
command:
ON
LABEL
WHICH
TO
TO
BRANCH
SEARCH
TO
LABEL
>
The
SENSIBLE
SOLUTIONtíñ
Reference
3
o52
+
+
Fínd
Generic
"
+
+
PURPOSE:
This command is similar to "find record by exact field" except that if an
exact match is not found, the search returns the next hígher sequential
the file.
For example, a search on "SMI" might return "SMI",
record in"SMOOCH"
"SMITH",
or "ZOOLOGICAL SOCIETY", dependingon which was the "nextThe associated record will be read into the
hígher neighbor" in the index.
memory buffer and the appropriate field windows on the screen will be filled
wíth data.
USAGE:
fínd generic rec using fíe1d
t
F
FIELDNAME
on
error goto
LABEL
N
na me the field on
First,
which to search.
ext, specify a Line label
designating a subroutine where you want program control to branch to in the
An error message
event of an unsuccessful search.
will be displayed if the
specified field is not an index-key field.
no record equal to or higher
If
OF FILE ENCOUNTERED
message
than the specified value is found,
will
an END
be displayed.
"F" (F: üe Error) will be activated only by an
program flow will branch to the goto label set in the
an
"on error goto" label has been specified,
it
See T RAP "F" (Hie Error) in the section on
label.
A TRAP
To
wríte
a FIND
REQUIRED
entries:
OPTIONAL
entries:
GENERIC
If
will
couunand:
RECORD
FIELDNAME
COMMAND
EN D OF FILE condition;
T RAP command Line.
override the T R AP
T RAP com mands.
ON
LABEL
WHICH
TO
TO
BRANCH
SEARCH
TO
LABEL
S-
.
The
SENSIBLE
SC)LUTIONtíñ
Reference
3
.53
+
+
Fínd
Related
+
+
PURPOSE:
This command will locate a "related"
data record -- one for which the value
The
of a specified field exactly matches that of the search field.
associated record will be read into the memory buffer and the appropriate
field windows on the screen will be filled wíth data.
Thís command is most often
entering
data .
used
to locate
data in
A "RELATED RECORD"
find works like
Note!
of any local or global filetrap), except for
files
an "EXACT"
one thing:
when
the operator
is
find (including trigger
"related"
fínd sets the "last key accessed" for the related
This means that the
not change the "last key file accessed".
will work, but "FIND NEXT/PREV"
"FIND NEXT/PREV in related file"
coin
from the keyboard will look up on the PRIMAR Y file, not on the related file.
successful
A
but
file mand
does
USAGE:
fínd rec using fíe1d
FIELDNAME
related
fíe1d
FIELDNAME
on
error
goto
LABEL
The value of this field is the value to
Begin by entering the field name.
searched for in the other file.
not be a key but it must be a
It beneedpresent
A
in thís field before the
a
value
must
not
constant.
field
command
line is executed.
be
ext,
must
N
name
be a
the field on which the search is to be conducted.
key field and must be in the file being searched.
T his
field
a subroutíne
where you want
Finally, specify a Line label designating
An
program control to branch to in the event of an unsuccessful search.
be
a
is
message
displayed
designated
the
not
key-field.
will
field
error
if
An
displayed if a related record is not found. T he
error message
will be
operator must press the [ RET U R N ] key to continue processing.
multiple related data files, you can set up the " R "
you are accessing
G OSU B
to a subroutine which does related record searches
TRAP to trigger a
When
The
SENSIBLE
SOLUTIONtñt
Reference
3a54
whenever
etc.) is
of the "search" functions
initiated by the operator.
one
,
(
find
Find,
N
ext,
find
Beginning
TJe heed!
have set an " R" ( Relates) T RAP, be careful not to have
take you out of the' RELATES subroutine and circumvent
your File
This will finally result in
the "return" command of the RELATES subroutine.
FULL" error.
a "STACK
If you
Error trap
"F" ( File Error) will be activated if set and program flow will
branch to the goto label set in the T RAP command line.
If an "on error
will override the T RAP
goto" label has been specified in the com mand,
it
goto label.
The
T
RAP
" R"
"F"
(File Error)
wríte
a FIND
RELATED
REQUIRED
entries
:
FIELDNAME
FIELDNAME
OPTIONAL
entries
:
COMMAND
See
To
TRAP
and
(
Relates)
in the section
on
T RAP
commands.
command:
RECORD
CONTAINING
VALUE
TO
BE
SEARCHED
LABEL
TO
BRANCH
TO
FIND
TO
LABEL
4
The
SENSIBLE
SOLUTIONtm
Reference 3.55
+
+
Fínd
+
Fírst
Last
+
PURPOSE:
the
These two commands find the lowest and híghest index key values for and
buffer
the
The
into
read
is
record
memory
associated
specified.
field
the field windows on the screen will be filled with the appropriate data.
USAGE:
FIELDNAME
fínd fírst rec usíng fíeld FIELDNAME
usíng
field
fínd last rec
on
on
error goto LABEL
error goto LABEL
by entering
the name of the field on which to search. If the specifíed
to the
message
an error
field,
will be displayed
index-key
an
is
not
field
c1i':
be
played
m
also
An
message
execution.
will
error
operator during progra
past the beginning or end
to the operator when an attempt is made R to Usearch
[ ET
R N ] and then continue.
The operator must press
of the file.
Begin
Line label to branch to in the event of an
subroutine
goto" label is specified in
an "on error
unsuccessful operator search.
If
wi1l
labeled com mand line and
the
transfer to
thís manner, program control
The label specified
be
in this com mand will
m essage
prínted.
no error
will (F:
the
is specified,
label
no
úe Error) command.
override a T RAP "F"
If
See TRAP
"F" (F: ile Error) in the section on TRAP
TR AP would be activated.
N
ext, enter
commands
To
wríte
a
.
a FIND
FIRST
or
LAST
REQUIRED
entries:
FIELDNAME
OPTIONAL
entries:
COMMAND
The
SENSIBLE
command:
RECORD
ON
LABEL
WHICH
TO
TO
BRANCH
SEARCH
TO
LABEL
SOLUTIONtm
Reference
3
..56
+
+
Find
Next
Previous
+
+
PURPOSE:
These
commands wi71 locate the data record following
or preceding the
This associated record will then be read into the
current data record.
memory buffer and the appropriate field windows on the screen will be filled
with data .
USAGE:
"Next"
commands
com rnands
or "Previous"
to provide
"previous"
record.
a
point
must be preceded by any of the other FIN D
of reference for m ove merit to the "next" or
fínd next rec in fíle FILENAME on error goto LABEL
fínd prevíous rec ín fí1e FILENAME on error goto LABEL
Enter the name of the FILE in which the next/previous
record is to be
D
The
located.
command will allow you to search sequentially through a
FIN
file , by the specified key field, in ascending or descendínq order. A
"Previous" search from the beginning record will djqplay an ENCO u nte red
A "Next" search
BEGINNING OF FILE error message.
from the last record gives
ENCOUNTERED
END OF FILE.
N
ext, enter the label of a subroutine to transfer program control to ín the
event of an unsuccessful search.
If an "on error goto" label has been
specified,
progra rrt flow will transfer to the labeled com mand line and no
error message
will be printed. The label specified in this command will
override a T RAP "F" (File Error) corn rnand.
If no label is specified, the
TRAP
See TRAP
would be activated.
"F" (File Error) in the section on TRAP
commands
.
" marks
"Previous" and " N ext" searches
are dependent
on an earlier FIN d which
place" from which the search will be conducted.
There are four conditions
under which a "Previous"
or "N ext" search will fail:
%
a
1 )
"Next"
The
other
2 )
The
FIN
D
or "Previous"
com mands,
so
command was not preceded
place mark has been set.
During program execution you have deleted the record
the original FIND.
This clears the place marker.
SENSIBLE
SOLUTIONtm
by
any
of the
no
called in by
Reference
3
.57
3 )
you clear
If
are about to
arker
executed
m
.
the record number ( which tells the system that you
save this as a new record) you will lose your place
when the save is executed -- but not until the save is
*
4
)
During program execution you have changed the value ín the key
field on whích the search was initiated and then saved the record
back to the file.
This clears the place marker.
of the above conditions occur during program execution,
this error
N
will be displayed: Must SEARCH
before doing NEXT/PREV.
ote that
the "Must SEARCH"
warning does not trigger a TRAP "F" (File Error).
any
If
message
To
wríte
a FIND
REQUIRED
entries:
OPTIONAL
entries:
NEXT
or
PREVIOUS
TO
FILENAME
COMMAND
comnand:
RECORD
SEARCH
LABEL
TO
BRANCH
TO
LABEL
0
The
SENSIBLE
SOLUTIONtñi
Reference
3
o58
+
+
Print
+
+
..
PURPOSE:
Th: Ís
com mand
When
or disk.
At
Error
vertical
These
The
on the terminal
is used to print information
screen, printer,
selected, the following subset of functions is displayed:
Format line
to line
Tab
options
SENSIBLE
will
be
#
W
idth
=
Lines
=
M
ax.
lines
=
Blank lines
print Control chrs
ject
explained in detail on the following pages¢
SOLUTIC)Ntíñ
Page
e
boX
Referenc"e
3
.59
+
Prínt
.
+
At
+
+
PURPOSE:
This command will allow you to print a "format" line or a "message" line on
A
message
line is a constant (usually a stríng of characters)
the terminal.
while a format line is a specified line from a reporter format screen:
in
The
information
other words, a variable or changing line.
in the format
be altered under program control.
líne can, of course,
USAGE:
This
com mand
command .
must
follow
a
" mount
report format"
com mand.
See
the
" Mount"
Specify the row and column location where you want to print the message on
the terminaL These can be constants or field names. If you use field names,
the values can be altered under program control which allows you to change
the print position.
you print at column
If
displayed at the bottom of
will be
zero zero, ro w zero zero, the message
your screen and the operator must press [RETU RN]
and continue.
This allows you to stop processing, to
to clear the message
be sure that your message
Any other column and row values yjj1i
is noticed.
Y
and
on the screen in that location
ou
processing is not stopped.
prínt
m ust
move
blanks ínto the displayed area to clear the message
from the
screen when using a location other than column zero zero, row zero zero.
EXAMPLES:
Message
line -~
THIS
] , may
-right bracket,
Only the positions (including
be printed
to the terminal.
space literal for the end of
The
The
SENSIBLE
SOLUTIONtm
IS
A MESSAGE]
used
to indicate the end of the line>
spaces) placed to the left of the ] wj11
The system also checks for the last nona line if the ] isn't useCL
be
Reference
3
o60
line --
Format
mount
print
report format
at col 01 row
SEEIT
ROWHOLD
print
on
format
crt
line
#02
The
format line " Print at" option allows the progra ni m er to create
multiple output lines on the screen at a specified row/column location.
In the example above, reporter data from line number 2 of the reporter
format screen SEEIT will be printed on the screen at column number 1.
Other lines in the program would be used to increment RO W H OLD so that
the report will print out down the screen, one line after the other.
line number portion of the "Print at" corn rriand line must always
reference the last "mounted" reporter format screen in the program.
The
To
wríte
REQUIRED
a PRINT
entries
AT command:
:
COLUMN
LOCATION
LOCATION
MESSAGE
LINE OR
ROW
OPTIONAL
entries
:
COLUMN
FORMAT
LOCATION--FIELD:
LOCATION--FIELD:
LABEL
ROW
LINE
NUMBER
FIELD NAME
FIELD NAME
(
(for format line
for format line)
e
The
SENSIBLE
SOLUTIONtm
Reference
3
.61
)
+
+
Prírrt
Error
+
+
>
PURPOSE:
The
this com mand to print an error message at the bottom of the screen.
R ET U R N ]
[
program
must
press
with
the
in
order
continue
to
operator
program.
flow will transfer to the labeled com rnand specified.
Use
USAGE:
Standard error messages
are contained in the data file E r RFLE.MS. Enter the
number of the error message
you want to print. A list of the system error
is
províded
In
the
Appendix
The number
of this reference manual.
messages
of the error message is the record number.
Enter the label of the corrimarid
line you want to branch to after the message is printed.
A utility program is provided that allows the system designer to add his own
messages
to this data file. To add messages
RFILE, execute
to the
error
by typing "SENSIBLE
ERRENT.RUN
program
ERRENT"
the operating system
E R
the
level,
or by selecting "Main Menu I) Execute A SENSIBLE
The record number
ER REN T.
specifying the program
using
ER
RENT.
a
new
message
creates
user
and
For occasional errors
to ERRFLE, butinstead
To
wríte
REQUIRED
a PRINT
and
use
warnings, the designer should
PRINT -- at col 00 row 00
SOLUTIO
N
is displayed
add new
(MESSAGE).
not
Program"
when
the
messages
ERROR comnand:
entries:
ERROR
COMMAND
OPTIONAL
at
entry:
MESSAGE
LABEL
NUMBER
TO
BRANCH
TO
LABEL
t
The
SENSIBLE
SOLUTIONtíñ
Reference
.3
s62
+
+
Print
Format
Line
#
+
+
PURPOSE:
This
command
allows
SCREEN PAINTING.
with
NOTE!
down
print
on
a
to
you
print
the 127th column of a
If
the format screen will be
line
255
wide.
columns
a
reporter
format
line
that
created
was
format line contains a "," the next line
This gives you the optíon to
appended.
USAGE:
After
selecting this
format line can
number or the field
you nam e a field,
If
control.
The
option, specify w hích form at líne is to be printed.
field or a constant.
Enter either the format line
where you have loaded the format line you want.
the value in the field can be altered under program
be a
name
N
ote!
, " the
If the 127th position of a format line contains a comma " That
is,
next line down on the format screen will be appended to that line.
the next line becomes characters 127 through 255.
This gives you the option
to print a single line that is 255 characters long.
This corn mand
command .
To
write
must
a PRINT
follow
FORMAT
REQUIRED
entry:
FORMAT
OPTIONAL
entry:
LABEL
The
SENSIBLE
SOLUTIONtñi
a
" mount
report format"
command.
See
" Mount"
the
command:
LINE
NUMBER
OR
FIELD
NAME
Reference
3
.63
1
+
+
Prínt
Width
=
+
+
PURPOSE:
this
Use
command
to specify
the width
in characters
of the
print line.
USAGE:
in a
After choosingThe this option, specifyusedthe number of characters you want
default settíng
by the system is whatever has been
print lin e
See SENSETUP
entered during the installation
in the Installation
procedure.
The maximum
anual.
number of characters that you may print in a line is
255
.
M
.
To
'wríte
a PRINT
WIDTH
= command:
REQUIRED
entry:
NUMBER
OPTIONAL
entry:
LABEL
The
SENSIBLE
SOLUTIONtm
OF
CHARACTERS
WANTED
IN
PRINT
LINE
Reference
3
.64
+
+
Prínt
Lines
=
+
+
PURPOSE:
This
is
command
each
on
page.
used
to specify
the number of lines
that you wish to print
USAGE:
ill
Enter th e number of printable lines. Report
type
progra ms w
automatically page advance when this number of lines has been printed on the
page. The default value used by the system is whatever has been specified
See SENSETUP
Manual.
in the Installation
during the installation
procedure.
You
must
page
If
no
To
write
set a TRAP "P" (PAGE
advance is desired,
a PRINT
LINES
entry:
NUMBER
OPTIONAL
entry:
LABEL
SENSIBLE
SOLUTIONtxi
to
a
enable
the automatic
page
advance.
trap.
= coumand:
REQUIRED
The
BREAK)
do no set
OR
PRINTABLE
LINES
Reference
3
.65
+
+
Prínt
Max
Lines
=
+
+
PURPOSE:
Use
this
com maná
used
to
entered is
breaks @
to specify the total number of lines per page. The number
calculate the amount of paper to advance between page
l
USAGE:
number of lines available on the page. The default value
Enter the maximum
duríng the system
has been entered
used by the system is whatever
.in the Installation
SENSETUP
See
Manual.
procedure.
installation
To
wríte
a PRINT
MAX
LINES
= command:
REQUIRED
entry:
MAXIMUM LINES
OPTIONAL
entry:
LABEL
The
SENSIBLE
SOLUTIONtíñ
DESIRED
PER
PAGE
Reference
3
.66
+
+
Print
Blank Unes
+
+
PURPOSE:
Executing this command
will immediately
specified number of línes.
advance the paper in the printer
the
USAGE:
Enter the number of blank lines you want the paper to advance between
lines .
To
wríte
a PRINT
BLANK LINES
REQUIRED
entry:
NUMBER
OPTIONAL
entry:
LABEL
The
SENSIBLE
SOLUTIONtm
OF
print
command:
LINES
DESIRED
BETWEEN
PRINT
LINES
Reference 3.67
+
+
+
prínt
vertícal
Tab
to
líne
+
PURPOSE:
Executing this com rnand will immediately
the specified line number.
the paper in the
advance
printer to
USAGE:
Enter the
To
wríte
number to whích you want the paper
.Line
a PRINT
VERTICAL
REQUIRED
entry:
LINE
OPTIONAL
entry:
LABEL
The
SENSIBLE
SOLUTIONtrn
TAB TO LINE
NUMBER
TO
.in
the printer
to advancec
comnand:
WHICH PRINTER
MUST
ADVANCE PAPER
Reference
3
.68
+
+
Print
Page
+
e
ject
+
PURPOSE:
when
executed,
this
command
will immediately force
a page
advance.
USAGE:
this command
to force a page advance under program control. The system
will automatically page advance, based on the number of lines the user has
said are to be printed on each page, but the user can also force an advance
wherever necessary.
Use
For reports sent to the terminal, you should add this command
to your "end
This will have the effect of
of file" routine before exitíng the progra m.
locking the screen display until the user presses the [RETU RN] key. Without
would
this com mand, the program
exit im mediately and the user would not have
the opportunity to view the information.
To
write
a PRINT
PAGE EJECT
REQUIRED
entry:
NONE
OPTIONAL
entry:
LABEL
The
SENSIBLE
SOLUTIONtm
comnand
siIupIy select
the optíon:
Reference
3
.69
+
+
'
+
Prínt
prírrt Control chrs
+
PURPOSE:
Many
terminals and prínters are capable of producing unique displays such as
T his
video, half intensity, compressed print, boldface,
etc 0 .
reverse
control characters to the
command will allow you to send the appropriate
printer or termínal to activate such f eatures.
USAGE:
the control character sequence you wish to send to the terminal or
The
control character sequences must be created in SEN SET UP.
See SENSETUP
in the Installation
There are 32 unique sequences available.
Specify
printer.
Manual
.
For example, you might use this com mand to change the font on the printer,
character prínt line, or send a control character
direct it to utilize a 255 O CR
wand or Bar Code reader has been attached
to the terminal where an
The
direction
of the
control
characters
is dependent
upon the
currently
This is set by "MOUN TIN G" a reporter format
output device.
identified
aná
specifying
where
the output is to be directed (termína1, printer,
screen
no format has been mounted,
direction is always to the
or disk.)
If a format is mounted and no direction
terminal.
set (user defines at run
If
be
option.
a
time) the direction
selected
result
theof
You may
user
will
screens as often as you wish to re-identify the output
rein ount reporter
devíce
For
To
»
more
write
REQUIRED
information,
a PRINT
entry:
see
the "Mount"
CONTROL CHARACTERS
SPECIFY
CONTROL
command.
command:
CHARACTER
STRING
TO BE SENT TO TERMINAL
OR
OPTIONAL
The
entry:
SENSIBLE
SCREEN
LABEL
SOLUTIONMñ
Reference
3
.70
+
+
Print
box
+
+
PURPOSE:
This command
depth.
allows
you
to draw boxes
the screen with specified
on
width
and
USAGE:
W hen
you select this option you are asked "AT" w hat location you wish to
These
print the box. Enter the row and column locations.
can be identified
be
passed
as constants,
a
field.
can
values
the
from
user selects a
or
If
field value, the values can be changed under program control.
You
must
also enter:
Depth = This can be
the value in the field
idth = This can be
the value in the field
W
Clear/Draw
display.
a
constant or field name. If a field name
be altered
under program control.
a constant or
can be altered
-- Specify
if
you
with this capabilíty,
the values
then fed to the parameters of this
To
wríte
REQUIRED
a PRINT
entries:
BOX
is
used,
is
used,
can
of
field
want
name.
If
a
field
name
under program control.
a
box printed
or removed
be stored in fields
can
calculations
to draw bar charts on the screen.
command
command:
OR
LOCATION--CONSTANT
FTELDNAME
OR
FIELDNAME
LOCATION--CONSTANT
OR
DEPTH--CONSTANT
FIELDNAME
OR
FIELDNAME
WIDTH--CONSTANT
SPECIFY DRAW OR CLEAR BOX
COLUMN
ROW
OPTIONAL
The
entry:
SENSIBLE
LABEL
SOLUTIONtrn
from
Reference
3
.71
+
+
Trap
+
Goto' s:
+
Save
Delete
Clear
Exit
jump
file
buffer
Screen
File error
Locks
Up arrow
down Arrow
Gosub's:
Help
Relates
Page break
PURPOSE:
command is one of the most important commands in The SENSIBLE
SOLUTION.
It controls program flow when conditions "outside" the program
occur, such as the user pressing a control key or the occurance of an error
N
condition.
othing "happens" when the command is executed; instead, the
command sets up what will happen when the specified condition occurs later
during progra m execution.
The
TRAP
When
This command sets a T RAP for a specified condition.
that conditionbe
m
m,
during
execution
control
of
the
progra
will
occurs
progra
later
A " .R eturn "
transferred
to the line label specified ín the TRAP comhand.
com maná
must follow at the end of the subroutine called by Gosub traps.
USAGE:
and
Three of the T RAP commands, relates, page break, and help are GOSUBS,
command
must execute a " RETU RN"
after completing the commands
the program
Any search triggers
which are triggered.
the " R" (relates) T RAP. W hen the
subroutine is called (usually to retrieve
search is completed, the "relates"
appropriate
records fro in related data files) . Finally,
command execution
Y
m ust
Oíl
continue from the point where the search was done.
return to
The
SENSIBLE
SOLUTIONtm
Reference 3.72
think of these
activities
might
T RAPS
as
"get more information and continue"
.
The
other groups are G O T Os; they transfer control unconditionally
to the
Save,
delete, clear screen, file error, jump screen, exit,
target label.
locks, up arrow, and down arrow, are "finish and go on to something else"
activities.
TRAPS
be
may
the progra
m
turned
on
or off,
or ignored,
and
be
can
changed anywhere in
.
Ifwillindividual
override
labels to branch to on error conditions, they
(
execution time.
e.g., You have set a O " File
2
1.
You have
error" trap branch to LABEL
"Find record" commands.
ríe of
them has an "on error goto LABEL 2." The other has no error label branch.
The first "Find"
will branch to "LABEL 2" on any error. The second "Find"
will branch to "LABEL 1" as identified by the Global TRAP.
W
be
have
com mands
the T RAP at
hen another
used.
program is run,
To create a T RAP
Letter to indicate
command
one of the
all
GOTO
group
[S]
when
[ESC]
f R}
is
pressed.
when
[ ESC}
[C] is
pressed.
when
[ESC]
[q] is
pressed.
jUmp
Fíle
--
Screen
-Error --
Triggered
when
SENSIBLE
is pressed.
[j] is pressed.
Triggered
when any file error (End
f File,
Begixlning Of File, etc.)
during execution of
O
Triggered
occurs
when
a user
has been Locked .
be used
on programs
--
that
to
user computer
The
single
[ESC]
the program.
Locks
a
will
--
Triggered
-Clear file buffer -- Triggered
Exit -Triggered
Delete
L
the defaults
[ESC]
d
F
and
when
Save
j
off
Triggered
S
E
are turned
line in your program begin by enteríng
following T RAP types:
--
C
T RAPS
SOLUTIONtÁi
requests a record or file
This particular
com mand is
that will be run on multiTRAP
systems.
"L" (Locks) m ust
Reference
3
.73
always be used in conjunction
with either
file by Record" or "LOCK file All records."
UP
DOWN
ARROW
-H
H élp Screen
R
Relates
The
options
G
--
OSUB
IG N
O
for the
*
TRAP
(HELP)
{ESC]
[?] is
pressed.
find
don e
Default
t
Goto
or
sub
No action on this
function is non-existent.
Setting to ignore causes the TRAP to be
will drop through to the next sequential
.
DEFAULT
conditions
SENSIBLE
wheri
are:
will
means the
will occur:
File error -The
--
triggered when the counter field equals the
"LIN ES =" and "MAX
specified by the commands
The
=".
default values are set during the
installation process with SENSETUP.
particular
ignored
command
triggered
RAP
means that the
TRAP
occur.
and the program flow
RE
group
G OSUB
values
LIN ES
--
Ignore
*
GOSUEI
G OSU B
triggered when any kind of search ( Find,
Beginning record, find N ext record, etc. ) is
by the operator or under program control.
--
Break
Page
K
Triggered when the [DOWN ARRO W] key is pressetL
Used to keep the operator from jumping ahead on the
You can set a trap for
screen where inappropriate.
down arrow and direct the system to a specified
input field or else force the cursor to stay in the
current input field window.
--
p
O C
Used
Triggered when the [UP AR RO WJ key is pressed.
to keep the operator from backing up the screen
w here
You
can
inappropríate.
set a trap for up
and
direct
a specified
the
input
to
system
arrow
field or else force the cursor to stay in the
current input field window.
--
ARROW
"L
SOLUTIONtm
trap
is
unspecified.
Error message
default
The following
displayed
(
press
user
Reference
3
.
74
[RETURN] to continue)
[ESC]
Quit
[ESC]
Clear Fíe1ds
Screen
ALI others
---
SENSIBLE
Clears all currently
opened
the terminal screen
and
No
--
runs MENU.RUN
file buffers
action
Setting a T RAP to the default value causes the standard system default
to occur. This will print out the standard
messages where
W
appropriate.
here there are no defaults, such error
as up arrow and down
arrow, no action takes place and program flow will drop through to the
next sequential command.
*
GOTO
refers to the label of the command to which program flow
this Trap is activated.
Setting to a label causes
program flow to branch to the specified label when the trap is
activated.
For example, if you wish to branch to a help screen for a
field you have named,
you
can give the label of the com mand in your
Subsequently, this help screen
program that displays the help screen.
will always appear when the I?) key is pressed. If you have multiple
help screens in your
progra m , you must set the help screen labels
You can also disable any previously
appropriately.
set help screens by
inserting a T RAP command for H ELP and setting the option to ignore.
or
GOSUB
when
will branch
To
write
REQUIRED
OPTIONAL
a TRAP command:
entries:
entries:
DEFINE WHAT TO TRAP
SPECIFY OPTION--IGNORE,
COMMAND
LABEL
TO
BRANCH
DEFAULT,
OR
GOTO
OR
SUB
TO
LABEL
The
SENSIBLE
SOLUTIONtm
Reference 3.75
+
Execute
Com fí1e
+
PURPOSE:
Using
the execute
(fílenarne.COM).
.COM
com maná
file.
you
write a com mand line to "execute Corn file"
will allow the user to chain to an executable
'may
This command
USAGE:
This
command
GOSUB
stack,
is not
It
inítiatecL
exits
and
possible
SOLUTIO
N, closes
files, clears the
any open data
then executes a specified program file (filenarne.C O M ).
to pass com mand-line argum ents to the program being
SENSIBLE
Specify the file name but not
Enter the name of the program to be executed.
M.
This
the extension (type) -- fQr example, SEN SIBLE, not SENSTBLE.CO
command
SOL UTION
Menu program
is used within the SENSIBLE
to execute each of
rrtay also be 'used
the different language modulesQ
to invoke "alien"
It
ms,
as
operating-system
uti1itiesD
such
progra
The
SENSIBLE
SOLUTIONtw
Reference 3.76
+
+
Execute
Run fí1e
+
+
PURPOSE:
Using this
(filename.R
SENSIBLE
clears the
program.
command
).
U N
SOLUTION
GOSUB
line to "execute Run file"
you may write a command
command
Thís
will allow you to chaín to an executable
program.
"execute Run file" closes any open data files,
SOLUTION
stack, and then initiates the specified SENSIBLE
USAGE:
Enter the name of the program to
extemíon).
be
U
.R N
The
progra
command
To
wríte
only
--
do
not
use
does
an EXECUTE ccmnand:
REQUIRED
entry:
.COM
OPTIONAL
entry:
LABEL
The
(name
the
That is, one
not "mark its place" in the calling program.
cannot G O S U B to another, then return and follo w íts sequential
line order.
command
m
executed
SENSIBLE
SOLUTIONtm
or
.RUN FILE
NAME
Reference
3
.77
t
+
+
!
(
remark
)
+
+
PURPOSE:
Use the Remark com niand
The Remark
reference.
program.
to add
command.
remarks to the source code file for program
will have no effect orí the execution of the
USAGE:
Enter w hatever rem ark you wish w herever
portions of your source code file.
To
wri.te
w
ant to
identify the various
a REMARK:
REQUIRED
entry:
ENTER WHATEVER
OPTIONAL
entry:
LABEL
The
you
SENSIBLE
SOLUTIONtiá
REMARK
YOU
WISH
'
Reference
3
.78
+
Lock
+
PURPOSE:
The
in
a
Lock
data
will allow you to lock the screen, data
command
file.
file, or records
USAGE:
hen
you
select the option Lock by pressing [ L] or highlíghting
pressing [RETU RN], the following options will appear on your screen:
W
Screen
These
The
options
SENSIBLE
will
be
SOLUTIONtm
fí1e by
explained
fíle All
Record
in detaíl
on
it
records
the following
pages
.
Reference
3
.79
and
+
+
Lock
Screen
+
+
PURPOSE:
This command will lock the screen with the existing data being displayed and
is typically used when
will not refresh with subsequent data retrieval.
It
a
specific
a
is
through
looking
match and the
a program
paging
file
for
records being paged might be confusing to the operator.
USAGE:
This
command should
be
set 'just prior to the "find"
the command "Unlock screen"
record .information.
"find" is accomplished,
with the current
To
write
a LOCK SCREEN
Crv'""m
REQUIRED
entry:
NONE
OPTIONAL
entry:
LABEL
'"Al
simply select
com
wand.
Once
this optíon:
6
G
The
SENSIBLE
SOLUTIONtiñ
the
will refresh the screen
Reference
3
.80
+
+
Lock
fí1e
by
Record
+
+
PURPOSE:
This command
will lock the record being read, making it unavailable for a
read from another program.
"Lock file by Record" was designed to maintain
data integrity on a multi-user computer system.
If you are writing
programs that will be used in a multi-user environment. -·'-- a situation where
more
than one user may be attempting to access the sanie data file at the
same time
use this command
in your programs.
-- always
If the system has
been installed
as a single-user
system (see SEN 3E"i'[jP in Installation
Manual), this com mand will be ignored at run-time.
USAGE:
This command
should be set at the beginning of your source program for every
Frorn
individual file in which you want to lock records.
then on, any time
that your SENSIBLE SOLUTION program reads that file
will test to see
the record is already locked; if not, this "Lock file byit Record" com mandif
wi71 lock out any other
user requesting the record.
lock fí1e
(FILENAME)
by
record
íf
fí1e locked goto
(LABEL)
To create a "lock file by record"
corn mand line, begi-n by entering the name
of the file that will be read.
Next you will have. the option to enter the
command
line label to which program flow will branch if your program tries
to access a file that has been Locked by another user.
If
'
the desired record is locked,
access that record and will be
record has been released.
Ifwill thebe
"lock
the user requesting
stopped from further
will not be
it processing
able to
until the
file
by record"
is not used .in a uíüi.: i -L|ser program, no test
and saves
to check for locked records, arid all rÉ,ia/ pair.
Fields withín
position;
they are not delimited by
is a non-delimited, fixed-length-field
in ASCII form. No nulls or "control
in particular, a record does bynot end
solely
a record are defined
their
commas
or quotes.
All disk I/O is done in blocks of 128 bytes; if nece£: 3ary,128. the physical
Any unused
record size is rounded up to the next larger Inultj?le of
bytes in the Last block are filled wit.h blanks
ASCII decimal 32) and
(
The
SENSIBLE
SOLUTIONtm
Reference
4.1
record-locking problems
This blocking prevents "cross-boundary,"
ignored.
in multi-user
systems.
the Data Dictionary by field name, data
field in a record is defined in(numeric
type only), and index-key status.
places
decimal
width,
field
The
order by field name.
Fields are stored in the record in alphabeticaldetermined
of
the
by
each
width
starting position ("offset") for
field is
the fields preceding it in field-name order.
Example: a data file CUSTOMER.MS has the following fields:
Each
type,
FíeLd
Name
CUST.NAME
CUST.DATE
CUST.PHONE
CUST.BILL
Type
Síze
Alpha
Date
Alpha
Numeric
20
6
12
10
record wídth
Total
= 80
2
1
'
2
Key?
Y
Value
N
y
08/26/83
909/555-1212
N
1024.45
definition
filled):
LUKE
3
specified above would look. like this
4
O...V....O....V....O....V....O....V....O....V....O
1024.45
SKYWALKER,
= 48
using the
blank
data record
(bytds 128-48
A
Decimals
30585SKYWALKER,
LUKE
5
——
909/555-1212
------------CUST.PHONE
CUST.NAME
------CUST.DATE
——————————CUST.BILL
Any time a
concerning deleted records.
fínal point should be made here
pad the entire record
SOLUTION
SENSIBLE
a
from
deleted
is
will
file,
This record of blanks is then automatically re-used by
with blanks.
SOLUTION on a "last deleted,
SENSIBLE
fírst to be re-used basis."
A
record
The
SENSIBLE
SOLUTIONtíñ
Reference 4.2
IITYPES
FIELD
The
a
SENSIBLE
types
will handle(date),different
(numeric),
(overlay),
5
SOLUTION
(alphabetic),
N
O
D
of
and
field definitions
(record).
R
--
alphabetic type field will store printing character ASCII
data from ASCII decimal 32 to ASCII decimal 126.
Entries
shorter than the full field width are blank-filled on the
Alpha:
An
right.
Numeríc:
Numeric ASCII data, including
appropriate.
decímal point
justified with the correct
-123.000, not just -123).
Date:
ASCII
if
will
and
embedded
stored right(e.g.
places
Dates
can be entered in American short
julian number.
mm/dd/yy or mm/dd/yyyy;
form,
or dates may be
entered in European short or long form, dd/mm/yy ora
to
dd/rrtm/yyyy.
All date forms are converted internally
"days
This allows addition ("What is
since base date" form.
the date 10 days after 3/10/83?"),
subtraction ("How many
and sorting by date.
days between 12/31/80 and 3/15/81?"),
or long
To
you
must
the type of date that
use
SENSETUP.COM
An
.
O
specífy
overlay field
other
several
diagram below:
Overlay:
9
——_____"+"__"_"____+
B
A
field
(see
field
field
field
C
SOLUTIONtm
or
all
Let's
D
+"""""""""
field
E
^
F:
use,
of
a portion
look at the
50
35
+
20
T-----Overlay
SENSIBLE
want your system to
Installatíon Manual).
you
the
is a field that combines
fields into one field.
^
The
minus
sign
be
Numbers
number
decimal
of
leading
íeld---Reference 4.3
characters spans two
this example the overlay field of
have to use all of
and
do
D.
You
not
fields -- field
field
Notice that jn our example
the fields to create an overlay.
the overlay begins at location 23 and ends at location
that
and
44 when,
begin at location 20 and
in fact,50. fields
end
17
In
C
C
D
at location
To create
an overlay
field that would match our example,
begin by specifying "O" in the "Type" field window of the
The cursor
Data
move into the next
Dictionary
screen.
willspecify
where
the length of
you
"Size,"
should
window,
field
The
17 characters.
the overlay
case,
in
this
field
-and
wíndow,
"Decimal,"
skip
fi.eld
the next
cursor will then
move to "Offset."
At this field window you must type in the
location of the beginning of the overlay field -- be23.
a
Finally, specify whether or not the overlay field will
field.
other smaller
Overlay fíelds can not only be used to combine
be used
can
also
a
they
to break
fields into larger field,
apart one very large field into two or more smaller and more
manageable overlay type fields.
For example, since your
i.s
80
wide you may have
probably
only
characters
terminal
considerable difficulty creatíng a program that will accept a
255 character
input field -- the maximum allowable size of a
field. However, by using overlay fields you can break the
desired field into four smaller
overlay type fields
consigting of three fields of 80 characters and one field
of
15 characters.
Data can then be' entered into the four
overlay
smaller
fields 255and they will be automatically
combíned
one
large
character field.
into
The
subject of overlay fields brings up an interesting
problem.
Since overlay fields will require that two or more
each other ín a particular order, you may begin
adjoin
fields
of data
control the position SOLUTION
to wonder how you can easily
Remember
that the SENSIBLE
fields withín a record.
code order so that
arranges all fields in alphabetícal/ASCII
precede the location
field names that begin with an "A" would
of field names that begin with a "EL" etc.. With this in
mind, the most obvious solution to the problem is to adapt a
field naming convention that will enable you to arrange the
fíelds within the record as you like.
The Data Dictionary provides
a field window called"Field
recommend
that
Description"
to help identify the field.
key
We
The
SENSIBLE
SOLUTIONtñí
Reference 4.4
use this instead of the field narrte to identify the field.
doing this, you can use more abstract names for fields and
of the fields.
thus concentrate on manipulating the position
Overlay fields are one'of the more powerful features of the
overlay
SOLUTION.
You can go so far as to create
SENSIBLE
ad
overlay
of
infinitum.
fields,
fields of overlay fields,
However,
there are some restrictions to using overlay fields
that you should keep in mind:
you
By
--
is
It
field
--
You
impossible
because
R
to overlay an
type fields have
"R type"
a zero
(record)
offset.
should not overlay a portion of a date field.
the entire
speaking you must overlay
Generally
SOLUTION
The
SENSIBLE
a date.
is
field
maintains the date internally as an 3 digit number
representing
the number of days from january 1st.,
A.D.
0000.
if it
record type field is a field that acts as a record pointer
Any time that a value ís placed in the "R"
within a file.
SOLUTION
SENSIBLE
immediately
find and
type field,
will
matches
whose number
value.
that
In this
the
record
retrieve "R"
type field always behaves like a key field
sense an
because
it forces a search and retrieve operation.
Record:
A
the field does not actually take up physical space on
However,
always has a zero "Offset" value.
the disk,
add
data
an
an"R"
to
type
exísting
you
file, you must
field
INITIALIZE and REKEY the file just as you would with any
field that occupies physical disk space.
Because
if
it
load
If youfield,
type
Before
we
internal
a record
you
will
number that does not
get a SENSIBLE SOLUTION
exist into
an
"R"
disk read error.
the use of
we should discuss
this section on field types, SENSIBLE
SOLUTION
As you know,
views all
variables.
fields -- fields that occupy a physical space in disk memory.
though, programmers need to use temporary variables to store
leave
memory
as
variables
Frequently,
These
kinds of variables
things like accumulators or counters.
will never
With the SENSIBLE SOLUTION you can
requíre permanent storage on the disk.
The
do this by creating a special data
we call MEMORY.MS/.KS.
that
file
actual disk file will consist of only one empty record subdivided into.. all
The
SENSIBLE
SOLUTIONtm
Reference 4.5
of the
field (variable)
definitions that
you
may
require.
must,
never actually wri.te to this file on the disk,
and INITIALIZED
be created
disk
other
any
like
just
file.
-The
anything you
not have to be called MEMORY. You can call
fileThe does
important thing is that you should create a file that .is strictly
like.
And,
use
reserved for holding temporary variables.
just for that one
special
temporary variable file.
purpose -- don't ever save a record in this
it
we
Although
nonetheless,
it
it
ALTERING
III
A DATA STRUCTURE
SOLUTION
program is
structure of fields and records in a SENSIBLE
make
changes in the Data
you
controlled by the Data Dictionary.
If utilized by a SENSIBLE SOLUTION
Dictionary
to a record or field definition
program, you will have to follow several specific procedures to maíntain a
The
usable
data structure.
tíme that you change a fíe1d defínítíon, every SENSIBLE SOLUTION program
that: accesses that fíe1d must be re—compíled by usíng maín menu selectíon 6,
Changing
a field definition
"Compíle A Source Code Fí1e" (SENSCOMP.COM).
on the
would include any change that you make to the following field windows
':
Data
Dictionary
Type," "Size," "Decimal," "Offset,
or "Key".
screen:
Any
the programs that access that field have already been used to generate
data files, you must perform a specific procedure to maintain the validity
of your data files.
not follow the correct procedure, your data
If you docorrupted
and the data essentially
lost. Look
file(s) may become hopelessly
and
applies to
determine
which
of
set
at the logic chart below
conditions
We
make
back-up
recommend
you
that
strongly
your particular situation.
any
of the following
data files and re-name them before performing
procedures.
If
The
SENSIBLE
SOLUTIONtm
Reference 4.6
"Líve"
No Data
In
Data Fííes
Data
Data
Fíles
In
+
+
You
have
Síze,
Offset
changed
Type,
Decimal, or
of a non-key
RESTRUCTURE
COMPILE
INITIALIZE
COMPILE
fíeld
+
have changed
Síze, Key (Y/N),
or added a new
You
RESTRUCTURE
REKEY
COMPILE
INITIALIZE
fíeld
COMPILE
Procedure
INITIALIZE
COMPILE
REKEY
RESTRUCTURE
Menu
5
6
Selection
#
Descríptñon
Fije
Inítía1íze
Compí1e
Rekey A
A Data
Code
A Source
Data Filie
Restructure A Data
7
8
+
+
+
Fije
Fí1e
Program
SENSCOMP.COM
SENSCOMP.COM
SENSRKEY.COM
SENSRSTC.COM
IV
TRANSLATING
FOREIGN
DATA
SOLUTION to manipulate
data from another
use SENSIBLE
If you wouldyoulikemustto insure
database,
that the data is in a format that SENSIBLE
SOLUTION can read.
with the
a database is not compatible
In other words,
be required
SENSIBLE
SOLUTION database, you
translate
the
data
to
into
will
To do this, you
SOLUTION
need
to
record structure.
the SENSIBLE
will
write a program in a language other than SENSIBLE SOLUTION such as BASIC,
Pascal, Assembler, etc..
if
Transformíng
To
The
move
Foreígn
data from
SENSIBLE
an
SC)LUTIONtiñ
Files Into SENSIBLE SOLUTION Format:
SOLUTION,
outside application to SENSIBLE
you rnust
Reference 4.7
enter the appropriate
and REKEY
filenameMS,
procedure:
Step
1
in the Data Dictionary, create
field definitions
Use the following
filename.KS.
to
construct
file
the
fieldenterspecifications
them
in the
Define your
-- Decimal,
Key)
main
and
(Field
Data
name,
Dictionary.
Maintenance,"
Size,
Type,
You
may
use
2, "Data Dictionary
selection
or create a
maintenance
of
of
program
all your target fields with main
file
menu 3, "Screen Painting" and main menu 9, "Program Generator."
The
to inspect the newlyfile maintenance program will allow you
Remember
that the Data
transported data file for accuracy.
Dictionary will automatically
arrange the fields within the record
in alphabetical field-name order. This order cannot be
overridden.
Step
2
Step
3
menu
the.fielá definitions directly through the Data
If you entered
-- Dictionary,
remember
to INITIALIZE the data file.
If you use the
second
method,
Generator," the data
"Screen Painting" and "Program
files will be automatically INITIALIZED. Either method will
create an "empty" pair of files -- filename.MS/.KS.
be replacedby the
file you are about
-- Erase filename.MS, it will
to generate.
Step
4
Do
not erase filename.KS.
BASIC,
Pascal or
an appropriate
a new filename.MS with
-- Generate
The data must
be of the correct
"Size" (width) for
other program.
by the
each field and ín the position
within the byrecord specified
name).
Data
(alphabetical
Dictionary
field
field order
should note that the physical
bytes and no larger than
the"unused"
bytes,
any,
Fill
not end with a / pair.
You
of
128
if
record size must be a multiple
bytes (12 128-byte blocks).
with blanks. The record should
1536
in Gregorian format (mm/dd/yy, dd/mm/yy, etc.) cannot be
directly into a date-type field. To convert a date from
Gregorian format to julían format (the internal form), you must
character
the Gregorian string (mm/dd/yy, etc.) to an
or
alpha field.
Next, write a SENSIBLE SOLUTION program that moves
The SENSIBLE
the alpha field to a new "D" type (date) field".
SOLUTION
the
conversion
perform
to
internal
julian form
will
Dates
moved
8
innove
10
automatically.
Step
5
Step
6
The
--
REKEY
the data
-- Both of the
SENSIBLE
SOLUTIONtm
fíle.
files, filename.MS
and
.KS,
are
now
valid
SENSIBLE
Reference 4.8
data files. You rnay now write SENSIBLE
required.
to perform any further transformations
SOLUTION
SOLUTION
programs
Into Other Formats:
Information
contained in SENSIBLE SOLUTION data files may also be accessible
10, "Inquire," or by writing a
By using main menu
by alien applications.
special report generating SENSIBLE SOLUTION program, you can translate
your
current data structure into a form that is easily accessable.
"Inquire" is an an ad-hoc "quick query" facilíty that generates a listing of
The records
selected
some
for
or all fields from a single data file.
be
by
may
controlled
conditional
testing
of
the
contents.
listing
Transformíng
SENSIBLE
is also an easy
It
control the output
SOLUTION
Fijes
matter to write a SENSIBLE
format to create delimiters,
program that will
headings, footings,
etc. as
SOLUTION
like.
Using either the "Inquire" program or a special report generating program
printer as specified in the
limit you to the maximum width of your line
will
The maximum
allowable width of
system installation program, SENSETUP.COM.
You rriay,
send
however,
any SENSIBLE SOLUTION report is 255 characters.
larger data sets in multiple-line groups. The "Inquire" program andCRTa
of a data file to the
report generating program can send a print out The
disk file is a "printscreen, the line printer, or to a disk file.
/
image"
end of each
that
includes
pairs
the
at
line plus page
file
you
breaks
and
headings.
Whichever
method you choose, fields
blanks.
including leading or trailing
and so on from
with blanks, delimiters,
The
SENSIBLE
SOLUTIONtm
will
It is
within
always be sent full-width,
your responsibility to deal
the alien application.
Reference 4.9
MULTI-USER
Record Locking
and
V
CONSIDERATIONS
Fí1e Lockíng:
version of SENSIBLE SOLUTION supports both file locking and
multi-user
This means that the language, and all programs written in
record lockinC.
The SENSIBLE
SOLUTION
has
com?lete multi-user
íangaage,
the
capabilities.
a
type
single user type system or as a multi-user
can be purchased as either
To Cet multi-user capabilities
from SENSIBLE SOLUTION you must
system.
have purchased the multi-user
version and you must have specified multi-user
setup when the system was installed. with SEFSETUP.COú! (see the Instailtion
Manual).
The
file locking
"owns" the
When
is invoked in
a filename.RUN
program,
one
user essentially
some
other user
particular file that is being accessed. display
If
in use"
a
terminal
that
user's
access
the
to
file,
tries
"file
will
usually
File locking is
access
the file.
can successfully
messaCe
until
employed in a it
program when a global update on a data file is being done.
For example, in an accounting application such as posting to the general
Leáqer,
you
should lock the
file
durinc
programmer will usually employ
to be printed on the screen
This helps eliminate any
out situation.
"hangs
up."
terminal
their
A
thoughtful
a message
cause
operation.
the posting
in the program that will
user encounters a lock
a
anxiety user might feel when
a
trap
when
any
Record locking works much the same as file locking except that only one
program updates a
record is locked at any one time.
your filenarne.RUK
If
record, you must assume that some other user will attempt to access that
Do not risk corru?ting the record.
Lock the
record at the same time.
Since a record cari be updated in such
record that is Coing to be updated.
a short time,
you probably can dispense with a lock out trap aná"file in
use" message.
SENSFREE:
and
are using any of the language main menu selections (SENS*.COM)
code
such
(filename.SRR)
as
a
accessing a file
source
are currently
file be locked out
or a screen format file {filenarrte.SCC), all other users will
The intrudinC
user
of that file until the file is saved back on the disk.
message
on their terminal.
displayed
see a "file in use"
will
If you
you
Sometimes you
The
SE3'SIBLE
will
unavoidably
SOLUTIONtñi
end
up
making
a
"disorderly exit" from
Reference
4.1C
a
SENSCTRL/SENSETUP
may
not
be
the
same
RECFLE
specified
in
RECFLE.MS.
Herein lies the potential for problems.
Is SENSIBLE really looking at the
SENSETUP
Data Dictionary that
you should set the
indicates?
Ideally,
FLDFLE)
(RECFLE
and
as specified in
of
the
Data
locatíon
Dictionary files
SENSCTRL/RECFLE.MS,
That way, when
so that RECFLE always points
to itself.
SENSETUP
Data
Dictionary,
the
you run
again to determine the location of the
specified drive location will in fact contain the Data Dictionary you are
looking for.
data fíles
review, SENSIBLE needs to know the current location of the and
RECFLE.MS
locations
from
those
gets
that will be accessed.
gets
It
Don't risk causínq confusion for
the location
of RECFLE.MS from SENSCTRL.
yourself or other users:
To
it
(RECFLE/FLDFLE),
as
Set the dríve .location of the Data Dictíonary
defíned by SENSETUP, and the drive locatíon specífíed ín RECFLE.MS
for fínding RECFLE and FLDFLE to the same location.
Q
The
SENSIBLE
SOLUTIONtm
Reference 4.12
data
and
a colon,
file,SOLUTION
data
SENSIBLE
filename.KS.
You
do
not
the
files
have
Remember,
that all
file.
in pairs consisting of filename.MS.KS. and
specify the file extensions,
or
name
come
to
of the data
.MS
the specified disk drive for the .MS and .KS files and,
re-prompt
the requested file pair can not be found or accessed,
will
SENSALOC
When the two
located,
you for the
name.
are
will
files
file
of their size
report their current size and then print out a projection
and
300%.
200%,
the file pair is extended by 25%, 50%, 100% (doubled),
Next,
choose
ask
extend
you
wish
you
enlarge
the
to
to
file.
will
If
You can extend the
from 1%
the file, SENSALOC will ask by how much.
file
999%.
to
Simply type in the percentage you want.
Éxtending a file by
999°,
a
by
increase
size
factor
eleven.
of
will
its
SENSALOC
if
will
scan
it
if
it
if
Next,
and
SENSALOC will
you how much free disk space
will be required One
tell Answer
"Y" to pre-allocate the
ask you for approval.
size.
file
caveat is in order here; before you pre—a11oca'te
a fí1e,
you must be certaín
Failure to
that the file ís closed and no users are attemptíng to open it.
take this precaution
could cause the data already
in the file to be
seriously corrupted.
Two
final bepoints.
can
enlarged
is still just
the discussion above,
is obvious that before a
contain some data. A Ok file enlarged by
file
first
200%
a Ok
So
you are creating a brand new file and
file.
be
size,
want to pre-allocate
sure that you first create sorne base data
its
the size increase.
that SENSALOC can use as a foundation for calculating
a
you need, you can run SENSALOC over and over again to create
preIf
be limited by,
You
only
allocated file of whatever size you desire.
will
the available space on your disk drive.
MULTI.SYS
On
it
From
it
must
if
DPC/OS-like O/S'S:
Some
-
and Network O/S)
Mmmost,
operating
systems (specifically DPC/OS,
a
MULTI.SYS.
SENSIBLE
special
system
information file called
utilize
accesses this file to determine the current file status of the operating
system.
For SENSIBLE to run on a DPC/OS-like operating system, MULTI.SYS
be present on the same drive location
must
as SENSIBLE.
The
SENSIBLE
SOLUTIONtm
Reference 4.13
'
data
and
a colon,
file,SOLUTION
data
SENSIBLE
filename.KS.
You
do
not
the
files
have
name
come
that all
file. Remember,
and
filename.MS
of
consisting
pairs
in
.KS.
of the data
to specify
file
the
extensions,
.MS
or
and,
scan
files
the specified disk drive for the MS and
will
re-prompt
the requested file pair can not be found or accessed,
will
it
if
SENSALOC
When the two
located,
name.
the
are
will
you for
files
file
of their size ir
report their current size and then print out a projection
and
200%,
the file pair is extended by 25%, 50%, 100% (doubled),
you choose
to extend
Next, it will ask if you wish to enlarge the file.
If
You can extend the
from
the file, SENSALOC will ask by how much.
file
Extendi-ng a file by
Simply type in the percentage you want.
to 999%.
999%
will increase its size by a factor of' eleven.
Next, SENSALOC will tell you how much free disk space will be required and
One
ask you for approval.
Answer "Y" to pre-allocate the file size.
a fije, you must be certain
caveat is in order here; before you pre-allocate
Failure to
that the file ís closed and no users are attempting to open it.
could cause the áata already
take this precaution
in the file to be
seriously corrupted.
.KS
SENSALOC
'
3C)Ó%.
1%
above,
From the discussion
is obvious tfüít before a
final bepoints.
it
must
enlarged by
some data.
can
contain
enlarged
file
file
first
it
200% is
Ok
So
new
brand
a
file and
if youthatareyoucreating
still just its file.
want
sorne base data
size, be sure
create
to pre-allocate
first
foundation
the size increase.
that SENSALOC can use as
calculating
for
and
SENSALOC
again
can
need,
to create
preover
you
run
over
If you
be lirnit;ed
You
by,
only
allocated file of whatever size you desire.
will
Two
A
Ok
a
a
a
the available
space
on
your disk drive.
A
MULTI.SYS
On DPC/OS-1íke
O/S'S:
\
Xmmost, and Network O/S)
systems {specifically DPC/OS,
a
SE7·'SIBLE
MULTI.SYS.
system
special
information
called
utilize
file
determine
operating
the current file status of the
accesses this file to
For SENSIBLE
system.
to run on a DPC/OS-like operating system, MULTI.SYS
be present on the same drive location
must
as SENSIBLE.
Some
'
operating
i
The
SENSIBLE
SOLUTIONtIn
Reference 4.13
0
The
SENSIBLE
SOLUTION
Language
SYSTEM SPECIFICATIONS
Maximum
Maximum
Maximum
Maximum
Maximum
Maximum
Maximum
Maximum
O/S Limitea:
Size........................
O/S Limited
08U¥g.e.
File Data
Size............
Unlimited
of
Files...........
16,777,216
Records
Data
of
File
per
1,000
of Data Fields per Record.............................
26,496
Data
Record.....
Bytes
Program
Data
Number
Number
Number
.
File
per
16
of Open Files in a Program........
10
P....©...
of Indexes (Keys) per Data File Record......
Number
Record
Index)
(This includes One pre-Defined
160
.
Maximum Number of Keys per Screen
or program
72
Maximum Length of Key Field
255
F:
Maximum Length of a Single
íeld
.CO.....
Stored Number Range:
+99,999,999,999.9999
Maximum
.
.
Minimum...
- 9,999,999,999.9999 4
Decimal place precision....
(Computations are done to 5 decimal place precision,
then rounded to the precision of the target field.)
255 **
Maximum
Nurnber
of Accessed fields per program
2,000
Maximum Number
of Command Lines per program
300
Maximum Number of Command Line Labels per Program..
20
Maximum Number
Subroutines
of Nested
(GOSUB).................
Maximum Length of Reporter Print Lírie
Printer L: üñited
60
Maximum Number
of Report Format Lines....
255
......
Maximum Fields
Screen/Report
on
a
(fields)
ForInat......................
15
Maximum Length of Field
(Variable) Name
Number
Number
..........................
*
**
The
O/S
An
Limited means limited
array is considered as
SENSIBLE
SOLUTIONtm
by
a
the dísk capacity
single field.
and
operating
system.
Appendix
5.1
The
SENSIBLE
SOLUTION
COMPLETE
Language
FILE LIST
.
CP/M
CP/M-86
MS-DOS
.RUN
ENTFLE
.RUN
ERRENT
.KS
ERRFLE
.MS
ERRFLE
.KS
FLDFLE
.MS
FLDFLE
MAILLIST.KS
I4AILL1ST.MS
MAILLIST.RUN
MAILLIST.SCC
MAILLIST.SRR
FLOPMENTJ.RUN
MENU
.RUN
MENU
.SCC
MENU
.SRR
.KS
RECFLE
.MS
RECFLE
SENSCTRL.!YIS
SENSCYD .COM
SENSCOMP.COM
SENSCRN .COM
SENSETUP.COM
SENSGEN .COM
SENSIBLE.COM
SENSIP'IT.COM
SENSINQR.COM
SENSRKEY.COM
SENSRSTC.COM
SENSFREE.COM
TERMDEFS.MS
ENTFLE
.RUN
.RUN
ERRENT
ERRFLE
.KS
.MS
ERRFLE
FLDFLE
.KS
.MS
FLDFLE
MAILLIST.KS
PIAILLIST.MS
MAILLIST.RUN
MAILLIST.SCC
F'ÍAILLIST.SRR
FLOPMENU.RUN
MENU
.RUN
MENU
.SCC
MENU
.SRR
RECFLE
.KS
.NIS
RECFLE
SENSCTRL.MS
SENSCMD
.CMD
SENSCOMP.CMD
SENSCRN
.CMI)
SENSETUP.CMD
SENSGEN
.CMD
SENSIBLE.CMD
SENSINIT.CMD
SENSINQR.CMD
SENSRKEY.CMD
SENSRSTC.CMD
SENSFREE.CMD
TERMDEFS.MS
.RUN
ENTFLE
.RUN
ERRENT
.KS
ERRFLE
.MS
ERRFLE
.KS
FLDFLE
.MS
FLDFLE
MAILLIST.KS
MAILLIST.MS
MAILLIST.RUN
MAILLIST.SCC
The
SENSIBLE
SOLUTIONtm
'
UILLIST.SRR
FLOPMENU.RUN
MENU
.RTJÑ
.SCC
.SRR
.KS
RECFLE
.MS
RECFLE
SENSCTRL.MS
SENSCMD
.EXE
SENSCOMP.EXE
SENSCRN
.EXE
SENSETUP.EXE
SENSGEN
.EXE
SENSIBLE.EXE
SENSINIT.EXE
SENSINQR.EXE
SENSRKEY.EXE
SENSRSTC.EXE
SENSFREE.EXE
SENSMAIN.EXE
TERMDEF'S.MS
MENU
MENU
Appendix
5a2
The
SENSIBLE
SOLUTION
FILE
File extensions created
filename.SCC
filename.LST
filename.SRR
filename.RUN
filename.MS
filename.KS
filename.IQ
Operating
System
text
Command
Compiled
EXTENSIONS
by
The
SENSIBLE
SOLUTION
Language:
layout source file
of screen layout
file
source code file
file
file
Key
file (for the .MS file)
Inquire format file
command
Master data
file
filename.EXE
filename.CMD
SENSIBLE
used
Screen
A
filename.COM
The
and
Language
SOLUTIONtm
extensíons
used
by
Compiled executable
Compiled exec
of the following:
right margin, cannot
Field would overlap right margin
SENSIBLE
spec
for this
been
have
file
31
report
printer width defined in
is not in selected
———
Dictionary
Data
has
exceed
definítion
Dictionary
Data
been updated,
the specifications
Dictionary
Please re-enter
30
42
The
conflicts with
20
move
+
-
*
/
right
Appendix 5.7
Cannot
44
Field
is already
45
Field
would overlay
46
Screen
47
---
48
---
49
_"_
50
---
51
Too
52
More
53
Too
many
branch labels
defined
54
Duplicate
branch label
defined
55
Branch
56
Too
57
--"""
----File
58
59
60
61
The
field at cursor position
43
no
remove,
file
many
than
another
field
on
screen
not found
255
.RUN
fields referenced ín
file
.RUN
file
not defined
screens to compile
has
no
records
has
no
keys
62
File
63
File not found in
64
Field
6.5
Memory
SENSIBLE
the screen elsewhere
files referenced in
label
many
on
Data
Dictionary
not found in tjata Dictionary
exhausted,
SOLUTIONtm
cannot continue
Appendix 5.8
66
End
of
program
without
reached
RETURN
or
GOTO
67
68
69
found
delete
70
Key
71
Must
find
72
Find
reached
beginning of
73
Find
reached
end
74
Exact
match
75
Keyfile
76
Duplicate
77
Related record not
78
Field is not
79
---
80
Invalid
81
Arithmetic
82
Arithmetic
83
Attempt to divide
84
Invalid
85
Mask
86
87
88
The
----not
on
(BEGIN/END/FIND)
record
a
of
before doing
NEXT/PREV
keys
keys
not found
corrupted,
key
please rekey
already exists
found
a key,
cannot
search
array reference
field, data invalid
data invalid
overflow during calculation,
result
too
by
wide
for
zero, data invalid
date
field width
Field is not type 'A', cannot justify
length
exceeds
-----
SENSIBLE
SOLUTIONtIn
Appendix
5.9
89
---
90
More
91
RETURN
92
.RUN
93
.RUN
94
than
file
file
Internal
95
Multi-user
96
MULTI.SYS
97
Demo
98
_"_
99
---
SENSIBLE
nested
GOSUBS
without
O'Hanlon
The
20
GOSUB
invalid
contains
command,
please recompile
not found
error,
Computer
access
please contact your dealer or
Systems
at (206) 885-2502
unsuccessful
not found
version,
SOLUTIONtm
150
record
"
limit
exceeded
Appendix
5.10
MENU.SCC
J)'
'
.
The
SENSIBLE
SOLUTION
Version 2.0
Language
MAIN
I)
2)
3)
4)
5)
6)
7)
8)
9)
10)
.
I II It'"
.
##
MENU
Execute
A SENSIBLE SOLUTION
Maintenance
Data Dictíonary
Screen
Painting
source code Editor
A Data Fíle
Compile
Code
Source
Rekey A Data
Restructure a Data File
Program
Generator
program
Initíalize
File
Inqui-re
Enter
You
Choice
From
Options
Above
ii"
,
Field
name
N.2.0.1
File
MEMORY
e
The
SENSIBLE
SOLUTIONtIn
Size
2
Col
Row
Key
()22
17
N
.
Appendix
5.11
' B
MENU.SRR
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
remark
goto
MENU
START
SENSIBLE
ENTFLE
SENSCRN
SENSCMD
SENSINIT
SENSCOMP
SENSRKEY
SENSRSTC
SENSGEN
SENSINQR
MAIN
MENU
PROGRAM
FOR
SENSIBLE
SOLUTION
LANGUAGE
MENU
remark
remark
remark
mount
PORTIONS COPYRIGHT 1983
H^HANLON VX.XX ######
ABOVE
COPYRIGHT NOTICE
O'HANLON
MAY
NOT
BE
SYSTEMS,
COMPUTER
ALTERED
OR
REMOVED
SMENU
screen
N.2.0.1 = <0>
enter N.2.0.1
goto line on value of N.2»0.1
execute .Com file SENSIBLE
execute .Run file ENTFLE
execute .Com file SENSCRN
execute .Com file SENSCMD
execute .Com file SENSINIT
SENSCOMP
execute .Com file SENSRKEY
.Com
execute
file
execute .Com file SENSRSTC
SENSGEN
.Com
execute
file
.Com
execute
file SENSINQR
maximum
gotos
10
if
error
4
The
SENSIBLE
SOL[jTIONtm
INC.
Appendix
5N2
goto
START
G
ARRAY.SCC
'
áÉY«g#:= zFtÁmK?...
.
-vK '.. g & s.
f¥i
l
+. PR:
.
'
'
" '"
"" " '
*
' " ""'" ' í¿ai';^
I
ARRAY
+"—~~~——~+
automatically create array element entries
you
allow
to
will
Data
Dictionary.
Enter the name of the first
in the
(field definitions) number
elements
you
wish to create, and the first
that
of
the
element,
array
add
elements
number.
element
You can
to an existing array by indicating
element
program
This
with.
will check for duplicate entries.
which
to begin
the data file after adding the new array
You must INITIALIZE or RESTRUCTURE
elements.
This
program
+
Array
Name:
File Name:
Field Type:
Fielci size:
Decimals:
Field
FLD.FILE
FLD.TYPE
FLD.SIZE
FLD.DEC
FLD.FLD.NAME
FLD.FF.NAME
''.'
The
SOLUTIONtm
eWÁlta&4Él&'l)¶¥
Field
nante
S.12.1
N.3.0.1
S.3.1
SENSIBLE
File
-E y
Col
Size
MEMORY
012
MEMORY
3
MEMORY
3
FLDFLE
FLDFLE
FLDFLE
FLDFLE
FLDFLE
FLDFLE
8
1
3
1
15
23
016
052
071
052
052
052
052
016
052
4.\
,
' '
Row
********
*
###
#
File: ***********************
F'ield
***************
Name:
Begin With:
###
of Uements:
Number
************
.
.
-' "
·' ">(5. .t
n "..."
"
¿ IK, ,..g.s-s
Key
13
N
13
N
13
N
15
N
16
N
17
N
18
20
20
N
N
Y
Appendix
5.13
***
ARRAY.SRR
e
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0023
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
The
V
ARRAY
ELEMENTS (FIELD
WILL AUTOMATICALLY CREATE
THIS PROGRAM
INFORMATION (FLDFLE).
DEFINITIONS)
IN THE DATA DICTIONARY--FIELD
TO
THE
RETIJRN
DATA DICTIONARY--FILE
AFTER EXECUTING THIS PROGRAM,
THE
NAME
OF
THE
DATA FILE.
INFORMATION (RECFLE) AND ENTER
ARRAY
screen
NAME
ARRAY
ENTER
USER
{12 CHAR.)
S.12.1
USER
ENTER ÉÉ OF ELEMENTS IN ARRAY
remark
remark
remark
remark
mount
remark
START
enter
remark
enter N.3.0.1
remark
ENTER BEGINNING
<###
mask
S.3.1
FLD.FILE
FLD.TYPE
FLD.SIZE
FLD.DEC
USER
enter
enter
enter
enter
enter
N.3.0.2
remark
S.3.1
=
remark
S.12.1
SAVE.GRP
=
PAD
(S.3»1)
WITH
fill
O'S
FOR
001,
002,
leading chrs with
SIGNIFICANT
= trim spaces
ONLY
#
ELEMENT
CHARACTERS
003,
ETC..
O
IN
FIELD
WILL
BE
MOVED.
trailing
CONCATENATED
CREATE
KEY OF FILENAME PLUS FIELDNAME.
remark
FLD.FF.NAME
(FLD.FILE)+(S.12.1)+(S.3A)
=
NOT
ALREADY EXIST
remark
VERIFY THAT FIELD DOES
FLD.FF.NAME
on error goto CONTINUE
find exact rec using
DUPLICATE
goto
remark
CREATE FIELDNAME
FLD.FLD.NAME
= (S.12.1)+(S.3.1)
FLDFLE no confirm
no clear buffer
save rec in
NUMBER
SQ
WILL APPEND TO END
THAT NEXT SAVE
remark
CLEAR RECORD
FLDFLE
clear record number in
AND
FOR
TOTAL.
NEXT ELEMENT
remark
INCREMENT THE COUNTERS
field
CONTINUE
/
file
file
N.3.0.2
N.3.0.3
=
(N.3.0.2)+<1>
= (N.3.0.3)+<1>
ARE
remark
CREATED?
TEST COUNTER.
ALL ELEMENTS
N.3.0.3 = (N.3.0.1) goto CLEAR
MOVE
COUNTER
TO
remark
STRING FIELD FOR CONCATENATION>
S.3.1 = (N.3.0.2)
KITH ZEROS7
PAD
remark
LEADING CHARACTERS
O
with
chrs
leading
S.3.1 =
goto SAVE.GRP
if
fill
SENSIBLE
SOL[jTIONtm
Appendix
5o14
OF
FILE.
e
t
0041
0042
0043
0044
0045
CLEAR
DUPLICATE
TO
ENTER THE NEXT ARRAY.
remark CLEAR SCREEN
clear buffer in file MEMORY
clear buffer in file FLDFLE
AND
remark IF DUPLICATE ARRAY ENTERED, PRINT MESSAGE
000
00
THIS ARRAY ELEMENT
row
message
print at col
RE-ENTER
0046
0047
0048
NAME
clear buffer
clear buffer
goto START
OR
in
in
BEG.
file
file
CLEAR SCREEN.
ALREAbY EXISTS.
#
MEMORY
FLDFLE
.
The
SENSIBLE
SOLUTIONtm
Appendix 5.15
Introductíon
advanced
The
SOLUTION Language
SENSIBLE
business applications
a highly
programming
makes frequent
access
language;
to disk drives and uses some
of the more sophisticated
of your display terminal.
In order
to perform properly the SENSIBLE SOLUTION must know exactly which "control
codes"
ccjmmunication.
use
your display terminal and
it
E3y
following
erríbed or
have
done
quickly and
to
is
capabilities
for
printer
in this Installation
Manual
able
you will be
the instructions
SOLUTION.
Once you
"install" this information in the SENSIBLE
this, the input/output portion of SENSIBLE SOLUTION will run
fault-free on your computer system.
computer hardware system
is easy.
"Installinq" SENSIBLE SOLUTION on your
the next four sections of this manual carefully and follow all of the
instructions. The actual installation process -- running SENSETUP -- will
Read
only take
Get
to
running"
The
you
about ten minutes.
work and you'll
on your machine!
SENSIBLE
SOLUTIONtm
soon
have
The
SENSIBLE
SOLUTION
Languaqe
"up
Installation
and
1
The
SENSIBLE
Requirements
System
The
are the basic
followingSENSIBLE
SOLUTION
operatíon
(I)
RAM
TurbcjDOS,
Memory:
(a)
CP/M,
(b)
(C)
CP/M-86
MS-DOS
(d)
MP/M-86
rí/STAR,
PC-DOS,
SENSIBLE
(free
greater
requirements):
installation
and
user
SOLUTION
area
requires
exclusive
MP/M
CP/NET.
RAM
of 48k
operating
TPA
or
system
memory
of
48k RAM TPA
(DEC Computer
requires 96k)
128k
128k
(Victor Computer
requires 256k)
128k
(PC-DOS)
SENSIBLE
SOLUTION requires
mass storage capability
Storage:
each with at least
320k bytes
of at least two floppy Disk Drives,
disk)
usable
(floppy
capacity
formatting»
storage
after
increase
Adáitionai
drives,
disk capacity,
or hard disks will
Hará disks are recommended.
system
performance.
Mass
(4)
Termína1:
of the following
CRT
(a)
(b)
(c)
(d)
(e)
The
for the
MP/M, MS-DOS
SENSIBLE
SOLUTION requires
a CP/M,
Operatíng System:
Most
compatible
operating
which
hardware
system.
or similar,
such
system
SOLUTION.
an operating
supports
run SENSIBLE
will
MP/M,
Examples
MS-DOS,
of these operating systems
are: CP/M,
MmmCST,
(3)
(S)
requirements
software:
system
of
DPC/OS,
(2)
SOLUTION
Prínter:
following
(a)
(b)
SENSIBLE
SENSIBLE
minimum
requires
requirements:
SOLUTION
a
CRT
(Video)
terminal
ANSI compatible
by 8C (columns)
24 (lines)
Display:
Direct Cursor Addressing (absolute)
Clear to End of Line
Clear Screen
ASCII
Screen
serial type or
SENSIBLE
SOLUTION
a
requires
minimum
requirements:
ASCII
type
8C)
column
or more (e.g. 255 column
SOLUTIONtm
printer
with
compressed
the
print)
Installation
2
Pre-lnstal1ation
Instructions
1.
and return
Please
out the User License Agreement
to your Dealer
Card must
Systems,
Your
signed Registration
Inc.
or O'Hanlon Computer
be
on file with O'HadLon
in order to preserve your warranty.
2.
Make
3.
The
SENSIBLE
(CP/M,
system
and
either
The
fill
it
diskettes.
copies of your original SENSIBLE SOLUTION
operating
system manual for the correct
your computer's
SOLUTION
Never
use the original SENSIBLE
copying procedure.
as "working"
diskettes.
SOLUTION
CP/M-86,
is
for
SENSIBLE
SOLUTIONtm
a
Language
MP/M,
single
Refer to
diskette
diskettes
a specific operating
is forTurboDOS,
DPC/OS,
as supplied
MP/M-86,
MS-DOS,
or multi-user
operatíng
etc)
system.
Installatiorí
3
SENSIBLE
SOLUTION
Fíle Extensíons
fílename.SCC
Screen
format
files
files
fílename.SRR
Source
code
fílename.RUN
Compiled
fílename.MS
Master data
fílenariie.KS
Key
fi-lename.COM
Compiled executable
SENSIBLE
SOLUTION
program
files
(pseudo
code)
file
file (for
the
.MS
file)
programs
(machine
code)
C
.
The
SENSIBLE
SOLU1'IONtm
Installation
4
Supplied wíth
Fijes
The
SENSIBLE
List Demonstration
(The Mail
F4AILLIST.RUN
MAILLIST.KS
MAILLIST.MS
MAILLIST.SCC
EAILLIST.SRR
(The SENSIBLE
FLQPMENU.RUN
MENU
.RUN
MENU
.SCC
MENU
.SRR
(The System
.KS
ERRFLE
ERRFLE
.MS
Module)
SOLUTION
SENSIBLE
key
file
data file
screen format file
source code file
SOLUTION
(The
Temporary
.MS
MEMORY
.KS
Main
Menu
Language
program
Module)
(for floppy disk systems)
(for hard disk systems)
Error
Module)
Message
(The Data Dictionary
.KS
FLDFLE
.MS
FLDFLE
.KS
RECFLE
.MS
RECFLE
MEMORY
Lanquage
SOLUTION
Module)
Memory
Variable
Files)
(The System
SENSCTRL.MS
TERKIDEFS.MS
Definition Files)
(Ttte System
SENSETUP.COM
Confiquration/lnsta11ation
program)
·
¢
The
SENSIBLE
SOLUTIONtm
Inst.allation
5
(Multi-User
SENSFREE.COM
(Tíie SENSIBLE
SENSIBLE.COM
.RUN
ENTFLE
SENSCRN .COM
SENSCMD
Utility)
SOLTJTION Language
Main
Menu
Programs)
language executive program
maintenance program
data dictionary
screen painting program
source code editor program
file initialization program
compiler program
key
file re-key programprogram
data file restructure
automatic program generator program
quick report generator program
.COM
SENSINIT.COM
SENSCOMP.COM
SENSRKEY.COM
SENSRSTC.COM
SENSGEN .COM
SENSINQR.COM
f
The
SENSIBLE
SOI3UTIONtra
Installation
6
lnstaIIation Instructions
two
involves
Installing the SENSIBLE SOLUTION Language on your system
on
drive
locations
transferring
the
procedures:
the
proper
{I.)
files to
and
and
system
system
(2.)
running
setting
the
appropríate
attributes
your
SENSETUP.CO!4.
the terminal/printer/system
are
installation program,
Iftheyou menu
using a floppy disk system, you will also have to {3.) re-name
programs.
following instructions
reference
we will make frequent
to certain
".COM".
end with the extension
This
that
particular file name
file
extension
unique to the CP/M operating system.
is
If you purchased the
CP/M-86
you should note that those files
version of The SENSIBLE SOLUTION,
you purchased the
Similarly,
will be named with the extension ".CMD".
MS-DOS version of The SENSIBLE
SOLUTION,
those files will be named with the
extension ".EXE".
In
the
names
if
be
coraputer
system
rnust
single-user/floppy-disk
a
or a singleCP/M"86,
be
CP/M,
MS-DOS
must
rnulti-user/harda
user/hard-disk
or
or
for
Each one of these three types
disk for MP/M,
MP/M-like,
of
or MP/M-86.
Use one of
systems
require its own particular installation procedure.
will
the 3 following sets of instructions
that applies to your system.
Your
it
I
SINGLE-USER/FLOPPY-DISKETTE
CP/M and MS-DOS
1.
IE
make
you have not already done so,
SOLUTION
This
diskettes.
copy
of the diskettes using the disk
distribution
hardware manufacturer.
2.
We
'A'
qíí
3.
The
INSTALLATION
working copies of your
can be
copy
utility
that the floppy drives are designated
is the default (logged on) drive, and that
320X
bytes of disk storage.
assume
done
'A'
each
by
making
provided
and
drive
'!3',
has
SENSIBLE
linage
an
by
your
that
drive
a minimum
bootable program diskette with the necessary operating system
(PIP, COPY, STAT, etc.). Test the boot (the computer's coldutilities
See your
computer's
before doing arlythinC else.
start instructions)
Create
SENSIBLE
a
SOLUTIONtm
Installation
7
operating
system
manual.
of the necessary SENSIBLE SOLUTION Language
files
Copy (using
labeled "Íjisk 1" and "Disk 2".
áískettes
cjf the files from Disk 1 onto a diskette that will be
and all of the files from Disk 2 onto a diskette that
drive 'B'.
All
4.
Disk
Disk
1
.RUN
ENTFLE
ERRFLE
.MS
.KS
ERRFLE
.MS
FLDFLE
.KS
FLDFLE
FLOPMENU.RUN
MAILLIST.RUN
MAILLIST.SRR
MAILLIST.SCC
NIAILLIST.MS
MAILLIST.KS
MEMORY
will
PIP
used
will
be
on
COPY)
two
used
in
or
in drive
be
all
'A'
2
ERRENT
.RUN
SENSCMD
.COM
SENSCOMP.COM
SENSCRN
.COM
SENSFREE.COM
SENSGEN
.COM
SENSINIT.COM
SENSRKEY.COM
SENSRSTC.COM
.PIS
MEMORY
'
5.
.KS
.RUN
.SRR
MENU
.SCC
RECFLE
.MS
.KS
RECFLE
SENSCTRL.MS
SENSETUP.COM
SENSIBLE.COM
SENSINQR.COM
TERMDEFS.MS
SENSMAIN.EXE
MENU
MENU
Run
the
terminal
áetails,
Manual.
6.
(used
on
MS-DOS
systems)
SENSETUP.COM to configure
your display
installation program
and to
system parameters.
For
set various
printer
'SENSETUP'
section of this Installation
in the following
and
see
SENSIBLE
SOLUTION is run
immediately
time that
executes a
main menu of the
"MENU.RUN"
language.
up
bring
the
called
to
program
The proper menu program for a floppy-diskette
installationandsuch as this
must be
This program is on drive 'A'
i-s called "FLOPMENU.RUN".
Re-name
re-named.
the following two files with your operatíng system
it
Any
it
The
SENSIBLE
SOLUTIONtm
Installation
8
re-name
command,
Re-name
Re-name
7.
"REN":
MENU.RUN as HARDMENU.RUN
FLOPMENU.RUN as MENU.RUN
SENSIBLE
followed by a carriage return and
SENSIBLE
SOLUTION Language.
At
appear
on your screen indicating
a
that
and
has a 150 record data
imposed
on
SOLUTION
on you SENSIBLE
the 150 record
and we
Systems
O'Hanlon Computer
give you a
remove
the data
This
from your language.
Type
limit
limit
called "serialization."
you're
ready to
begin
this stage a message will
this is demonstration version
using the
it.
limit
will
In order to remove
telephone
software,
special code that will
unlocking process is
Before
Systems
software
to get your
calling O'Hanlon Computer
SOLUTION
of SENSIBLE
serialized, make sure that you have the versionWhen
you want
you
that
O'Hanlon,
single-user
multi-user.
call
or
--with a representative
you
instructions.
will
talk
serialization
for
be
You
rriust
you
while
terminal
at your computer
talk to the
The representative
representative.
will ask you to give your name and
address or your company's
name and address and the number
of operators
that your system will be licensed for.
After the serialization,
this
SENSIBLE
information
appear
on
your screen every time that
will
SOLUTION is run.
II
SINGLE-USER/HARD-DISK
CP/M,
CP/M-86,
1.
and
make
you have not already done so,
SOLUTION
diskettes.
This
copy
of the diskettes using the disk
If
Use
utility
provided
to transfer all of the
utilitys
Disk
system's hard
onto
SENSIBLE
SOLUTION
distribution
files
3.
The
the PIP or
from Disk
the
terminal
Run
SENSIBLE
COPY
1
and
working copies of your
SENSIBLE
image
an
by
your
hardware manufacturer.
2.
INSTALLATION
MS-DOS
2
your
can be
copy
done
by
making
disk.
your display
program SENSETUP.COM to configure
installation
and
For
printer and to set various system parameters.
SOLUTIONtm
Installation
9
details,
'SENSETUP'
see
Manual.
4.
in the following
section
of
this Installation
SENSIBLE
followed by a carriage return and you're ready to begin
SENSIBLE
SOLUTION Language.
using
the
stage a message
At
version
demonstration
on
a
that
appear
your screen
imposed
on
and has a 150 record
In order to remove the
150 record
SOLUTION software,
telephone O'Hanlon
on you SENSIBLE
and we
Computer
Systems
remove
give you a special code that
Type
limit
will
limit from your language.
"serialization."
the
data
will
this
this is
indicating
data-limit
it.
This unlocking
will
is called
process
Systems
software
O'Hanlon Computer
to get your
calling
SOLUTION
make
serialized,
sure that you have the version of SENSIBLE
When
want
OWanlon,
you
you
single-user
multi-user.
call
or
that
-- with a representative
serialization instructions.
talk
for
you will
be
must
You
you
while
at your computer terminal
talk to the
The representative
ask you to give your name and
representative.
wíll
of operators
name and address and the number
aádress or your company's
be
licensed for.
After the serialization,
this
that your system will
SENSIBLE
information
appear on your screen every time that
will
SOLUTION
is run.
Before
III
MULTI-USER/HARD-DISK
INSTALLATION
MP/M-type and DPC/OS-type
MmmOST,
MP/M-86,
CP/NET,
n/STAR,
(TurboDOS,
1.
you
If
SOLUTION
have
not already
copy of the diskettes
haráware manufacturer.
2.
The
so,
make
Thís
using the disk
working copies of your SENSIBLE
image
can be done by making an
by
copy utility provided
your
to transfer all of the SENSIBLE SOLUTION files from
need
You will
to
onto your system's hard disk.
how
manual
system
on
complete instructions
for
refer to your operating
Some
multi-user
ycmr
activity.
files must be set example,
for multi-user
operating
require that you set all of the
systems, for
will
SENSIBLE
SOLUTION main menu files (SENS*.COM,
etc.) to "read/only" and
"system".
Use
the
1
Dísk
3.
done
distribution diskettes.
etc.)
Run
the
SENSIBLE
PIP
and
utility
Disk
2
installation program
SOLUTIONtm
SENSETUP.COM
to configure
your
Installation
display
10
and'
terminal
details,
For
system
parameters.
to set various
section of this Installation
in the following
first inenu option of SENSETUP, "Define systemis
will allow you specify whether or not your system
Specify multi-user.
printer
and
'SENSETUP'
see
The
Manual.
installation"
multi-user.
SENSCTRL.MS,
communication
which
among
codes,
If
other things
contains
your display
terminal's
is created by the installation beprogram
used
types of display terminals are to
different
to move a unique copy of SENSCTRL.MS, for
will need each
SENSETUP.COM.
on your system, you
each type of terminal,
onto
user area.
considerations
Additional
multi-user
are discussed in
under the section "Data Structures".
the
Reference
Manual
4.
SENSIBLE
followed by a carriage return and you're ready to begin
the SENSIBLE SOLUTION Language.
At
stage a message
version
a demonstration
that
appear
on your screen indicating
imposed
and has a 150 record
on
In order to remove the
150 record
SOLUTION software,
telephone O'Hanlon
on you SENSIBLE
and we
Computer
Systems
remove
give you a special code that
Type
using
data-limit
limit
will
the data limit from your language.
"serialization."
will
this
this is
it.
This unlocking
will
is
µrocess
called
Systems
software
O'Hanlon Computer
to get your
SOLUTION
have
SENSIBLE
version
you
the
of
that
sure
When you call O'Hanlon,
want
multi-user.
single-user
or
--with a representative
you
will
for serialization instructions.
talk
be
You
must
while you
at your computer terminal
talk to the
The representatíve
will, ask you to give your name and
representative.
name and address and the number
of operators
address or your company's
After the serialization,
that your system will be licensed for.
this
SENSIBLE
on
information
your screen every time that
will appear
SOLUTION is run.
Before
serialized,
you
that
calling
make
0
The
SENSIBLE
SCjLUTIC)Ntra
Installation
11
SENSETUP
The
Dísp1ay Terminal
and
Prírrter
Installatíon program
Module
the SENSIBLE SOLUTION Run-Tíme
codes
terminal
that your display
uses.
SENSIBLE
SOLUTION must know some of the parameters that
In addition,
your
employs
the wídth of the
the number of lines per printed page,
The
used to embed or
SENSETUP
page,
program
required information in the run-time portion of SENSIBLE SOLUTIQF'.
The
must
SENSIBLE
"know"
printer
etc..
SOLUTION
and
Language
the exact input/output
like
this
"install"
is
loading all of the files that comprise the run-time
you have finished
After
be
you
of the language into
portion
your computer's disk storage,
will type
Fíxm the system
level
ready to perform the installation procedure.
the fíle name SENSETUP:
SENSETUP
A>
The
following
menu
will
SENSIBLE
appear
[RETURN]
on
your display
SOLUTION(tm)
Setup
screen:
Program
——————
I) Define
installation
printer
terminal
definitions
2) Define
3) Define
4) Save
{ESC] to
system
abort without
update
Your choice:
The
SwNSIBLE
SOLUTIONtm
In3taílation
12
DEFINE
THE SYSTEM INSTALLATION:
Choose
selection number
terminal
keyboard
your
pressing "1"
your screen:
on
"any character" template marker
"alphabetic"
template marker
"numeric" template marker
"user-defined"
template marker
"decimal point" character
Short (MM/DD/YY)
date format
or Long (MM/DD/YYYY)
US
(DD/MM/YY)
(MM/DD/YY)
date style
or European
Data Dictionary
drive)
drive ("@" = currently-logged
2=DPC/OS
1=MP/M,
File locking -- 0=none,
*
A
#
?
.
S
U
@
O
Enable
TRACER?
REQUIRE [ENTER]
Y
N
(otherwise,
==>
Press the
portion
definitions
change
list),
by
on
installation,"
list will appear
definitions for this installation --
System
This
"Define system
the following
1,
and
on
"enter
"M"
key
all inputs?
go" when
and
field full)
to modify these,
any
the fielá
the
definition,
key
to accept.
accept the current
You
may
wish.
on this
lines
four
first
file locking and tracer
SENSETUP
allow you to either
them as
SENSIBLE
SOLUTION or to change
window
prompts (represented by the
location
of the Data Dictionary,
and the carriage
return requirement.
of
of
will
other
you
consider
whether
to
a
to
If
the
present
type the letter '9I".
line
program will
first
on
the
of the system
cursor will be positioned
definition list and the
change
want
in
the
character
simply
you
type
to
current definition.
it,
If
Most users will be
want
you
to appear for that kind of prompt.
satisfied
with the current definition displayed in the left column of the list.
If
:
want
you
to accept this definition,
press the RETURN] key and the cursor
will advance to the next line on the list.
When
this
any
definition,
modify
list
first appears
of the system
on
your screen,
definitions
listed.
The
you
want
you
want
chanqe
and nearly all programs
SENSIBLE
SOLUTION
Language
written in the
called
language will make frequent use of preformatted
screen displays
SOLUTION programs
As you run SENSIBLE
"templates."
these templates will be
composed
The templates are usually
of verbiage,
displayed on your screen.
The
The
SENSIBLE
SOLUTIONtIn
.uInstaílatiQtU.1.3?':
-2Á"
lines or graphic character lines, and field windows. Every time the
appears in a blank field window to await an entry by you, a line of
cursor
characters the exact width of the field will be displayed.
This is called
a "prompt."
In addition to the length of the field, the prompt characters
indicate the actual type of data that
displayed in the field window will
from the keyboard,
must be entered into the field window
-- any character
alphabetícal
characters only, numeric characters
only, or any user-defined
The
character.
first four lines of this definition list will allow you to
either accept the current definítion of prompt characters or to redefine the
prompt characters.
dotted
fi-fth line on the list will allow you to specify the character
want to use as a "decimal point". You will probably want to use
"period" or the centered "dot" usually found on a numeric key pad.
The
that
you
a
either
seventh lines on the list, will allow you to specify the type
of date format you want to use.
First specify the long or short format -- a
two dígit year versus a four digit year -- and then specify the common U.S.
format or the European
date style.
The
síxth
and
to specify the disk drive
eíghth line on the
will allow you
of the Data Dictionary, which
locatíon of RECFLE.MS/.KS. listRECFLE is part
maintains the definitions of all files and fields used by the system. One
functíon of RECFLE is tO maintaín the actual disk drive location of all data
Thus,
you specify
the drive location of RECFLE
files used by the system.
and RECFLE specifies
Accepting the current
the locatíon of the data files.
simply instruct SENSIBLE
definítion on this list, the "@" sign,
will
SOLUTION to look for RECFLE on the currently
logged-on drive.
You are given the option
a new drive location
of specifying
for a specific
The files that comprise the Data Dictionary,
RECFLE and FLDFLE,
can
reason.
become very large.
the case with your system, you may need to
this
is
If
conserve space by placing the Data Dictionary on a different disk drive.
Use this
list option to specify that drive location.
The
'
next item on the list will allow you to specify whether or not you want
to use file locking on your system.
you have a single-user system,
you will have
to consult
answer with a "O".
your system is multi-user
If
your system's operating system manual to determine the type of file locking
CP/NET,
TurboDOS,
a.nd n-Star
system your computer uses.
all emulate the
MP,/M operating
DPC/OS.
MmmOST
emulates
system.
The
If
SENSIBLE
SOLUTION has a debugging mode of operation
that will allow you
execute
to
programs one line at a time.
you want this capability on
"enable TRACER?".
accept the current. value for the question:
your s;g't.em,
The
If
The
SENSIBLE
SOLUTIONtrlI
Installation
14
to specify whether or not the
last item on the list will allow you
be required to press the [RETURN] key after
operator
will
filling a field
window
For example,
data into a 5 character
you are entering
with data.
long field window such as zip Code and you have specified "N" on the list,
the program will continue execution imineáiately after the fifth character is
Under
entered.
this condition you would not be required to use [RETURÑ
in
the
typing
after
fifth character.
The
if
these standard definitions as
all youto have toanydo keyto accept
on
your keyboard except the "M" key.
press
this
list is with
have finished
this system definition routine the Setup Program
shown
When
Menu
Remember,
on
you
will reappear
on
your screen.
DEFINE
THE PRINTER:
Choose
appear
on
selection"number
your screen:
Printer
printer,"
and
the following
menu
will
size
I)
Page
List Control
Your
"Define
definitions for this installation--
2)
Any
"2",
other
key
séquences
exíts
printer definition
choice:
"Page
Begin by selecting option "1",
size," 60and either accept the currently132
(66 max.
"lines per page,
printed lines per page,
set parameters
columns
reflect your printer's
per page)
or specify new ones that will
When
you
specifications.
are finished with this procedure the Printer
Definition Menu will appear again.
SOLUTION Language
called "Print Control
a command in The SENSIBLE
With this command you can use the full capabilities of your printer
and
video display by instructing them to print in bold face type,
reverse
video,
special graphic character ínode,
double width print,
"Print
etc..
control
can
recognize any one of 32 different predefined
Control
chrs"
and then relay chis sequence
Option
sequences
to the printer or terminal.
"2" of the. Printer Defini'ti'on Menu wíll allüw you to' define these conttol'
soLuHóÑ,"
you wish to utilize this capability oF"SÉNSTBLE
sequences.There
chrs."
is
if
The
sensible
SoLUTroNtm
Installation
15
-·7
- —:
option
displayed on your screen.
fol-low the instructions
you may
redefine
the List Control
though, that
which involves re-running SENSETUP, any time that you wish.
If
skip
you may wish to
time user of the SENSIBLE SOLUTION,
first
as the need arisem
"2" for now and define control sequences
DEFINE
THE TERMINAL:
select.
option
You
should
Sequences
,
you
are a
The
"2"
and
remember,
Menu is
Program
terminal."
This
"Define
on the Setup
embed
terminal's
display
you
allow
of
to
your
all
will
control codes within the run-time portion of SENSIBLE SOLUTION.
third
option
procedure
input/output
the
terminal
installation procedure varies slightly depending uponMS-DOS
system
an
you are using.
you
operating
that
are
installing
If
SOLUTION,
an
the SENSETTJP
version
of SENSIBLE
program will display
additíonal
are
'iou
screen at the start of the terminal setup rQutir!e0
If
CP/M,
SOLUTION,
CP/M-86,
version of SENSIBLE
using
this
or a multi-user
aáditíonal
screen, which is-discussed below, will not be displayed.
The
The
MS-DOS
Select
screen:
Version
option
"3"
Of
and
I/O style
definition
Current I/O style in
A)
El)
C)
Select
SENSETUP:
t.he
following
message
will
be
displayed
your
on
menu
use
is
A)
Terminal style
IBM PC style
TI PC style
style
by
letter, or
[ENTER]
to
keep
current
style.
procedz: re for the IBM PC computer or a TI PC
insta.llati-on
Select either option "B"
computer is very simpleg
and press the [RETURNJ key.
You will
or "C", whichever is appropriate,
The
(Texas
The
terminal
SENSIBLE
IrLstr\j.merLts)
S()LU?-"IONtzñ
I:ístallat;ion
16
Next, select opt"ionimmediately be returned to the Setup Program Menu.
in
specified
fr'on that menu to save the definitions that you have
options 1, 2, and 3. After you have saved the IB24 or TI definitions,
you
will be completely finished with the installation of SENSIBLE
4
SOLUTION.
selected option "A" frorn the MS-DOS procedure Ciescribed above or you
CP/M-E16,
are using an operating system other than YS-DOS (such as CP/¥,
and
MP/M,
Setup
Menu
Program
with
proceed
option
"3"
from
the
etc.), select
From this point on, the terminal
following terminal installation procedure.
systems:
setup procedure is the same for all operating
If
you
Terminal definition-menu
Current terminal
--
use
in
use
is
TERMINALNAME
(Y
different terminal?
or
N)
you want
name is sF.o'wn on your screen or
to specify a
no terminal
If
if
SOLUTION,
SENSIBLE
answer
"Y" to the question.
terminal
definition for
list of predefined terminal setups will be displayed on your screerc
A)
B)
C)
D)
TeleVideo 925
TeleVideo 950
Hazeltíne Esprit
KayPro
10
new
A
III
etc.
Select terminal by letter, [ENTER] to continue,
or enter "O" to define a new terminal
'Iesc] 'tcj
restart
list
particular terminal is shown on the list, all you have to do to
All of the definitions
letter.
install
is type the appropriate
you
After
displayed iton ycúr screen are Stored in a file named TEEMDEF.MS.
Yenu
Modificat"ior.
Terminal
the
terminal,
desired
indicate
the
definition,
m-ll be di-splayed:
If
your
"
The
sensible
SQLUTIONtm
r ·"
'
'
"
K
.·T'nS!ta/lildÉ'iór:
'
'"GZ
"T
"
Terminal
Current
Modification
terminal
Menu
is
l'
Graphics Mode ON
L) Graphics Mode OFF
M) Cursor ON
N) Cursor OFF
O)
Insert screen line
P) Delete screen line
Q) Box-drawing characters
R) Field-editing characters
S) TEST terminal
DEFINITICN
.
[ESC] to
modification
terminal
exit
K)
Terminal Name
Screen size
Cursor Positioning
Clear Screen
Clear to End of Screen
Clear to End of Line
Background
Foreground
I) Reverse video
J) Normal Video
A)
B)
C)
D)
E)
F)
G)
H)
:
-
-
'
'
"TEST
and proceed
'Í'ERMINAL DEFINITION,"
through the
"S",
SENSETUP
on
displayed
t.w"t
your current
your screen.
instructions
will
does not yield the correct
terminal setup.
the
procedure
results,
test
If
may have either specified
the wrong terminal From the list or the exact
you
I"f you áCt pass the test,
terminal you are using.does not match the list.
Simply type
however, you are nearly finíshed with the installation process.
"Save
A message
"4" from the Setup Program Menu,
definitions."
in option
be
save
thís
you
asking
current
on
displayed
want
to
your screen
will
You are now complptely finished
with the
terminal definition -- answer "Y".
installation procedure.
option
Choose
if
you will have
are not among the norm and your terminal is not listed,
""3"
"Define
a9ain,
some ext.ra work.
First try selecting option
and
make
te'rminal
on
the
selected
you
the
correct
sure
terminal,"
list.to If
go
or a similar terminal is not listed, you will have
your terminal
through the following proceáure to configure your terminal.
If
to
you
do
"Y" to the following
Answer
Terminal
,
Current
-The
use
SENSIBLE
definition
terminal
in
screen
menu
k
'use
is
different terminal?
SOLUTIOMm
me"sagé;
TERMINALNAME
(Y
or
N)
Installatiori
18
'
The
list
of predefined terrn.inals
prompt with a "O" :
following
will
and
appear
should then
you
. .
.,
After the following prompt,
define aná press [ENTER] :
enter the
name
of the
[ESC]
new
to
.
terminal
,
.
V
Select terminal by letter, [ENTER] to continue,
or enter "O" to define a new terminal
the
answer
list
restart
you
wish
to
7 .'
: "l
Terminal
namer
:,
u . . .. .
. ·
'-' .'
P
. ,
and
You
the cursor
will have to specify the screen size of your terminal SENSETUP
positioning
hierarchy (row/column or column/row) .
Next,
will ask
uses
a variety
you
of questions about the control codes that your terminal
,w·ill be up to you to glean the
correct control codes
for communicati-ga..
?
"
The
032
033
034
035
036
037
ÉÜ8
039
040
041
042
043
'
'20'
2
1'
22
23
24
'
b
26
·'
,
,
2c
2d
· 2F
30
,11
'
'
32
33
134.
'
050
051
052
053
054
%5
O$7
060
jj¿j
'
062
063'
'.'LYÁ
'd
'
:
h
f
102
103
g
'
'
h
b
ij
"
'k
:
'
l
' m
OÓ"1'OÚ11
35
36
' '1G1
'.-e
'· ÓO'1Ó11-O1
001.10000
00110001
oó1',1oó1o
oc11oó11
OÓ11ÓlOO
"ü65 '
qo11o-1o1
'0'6g""-'0'0'1'1Ó'1l0
054 061Í · óó1'·1'o1,11
055 "37
1)7'0
'0o111ó'oo
"38
056
'
'.0.5'7
"0Ó'1Í'1'o01
chi
39
' jjÓÍ1'101o
0"72
058 '"3a
ój73ú"-·
00'i11b11
q59 - 3b ·
Qc"i
jj·74"
,0{30
1'1'1qo
3c-·
·3íj-"6'75
'.00111"101
061
6;76"00'111110
062 "
Íj77'-'0011'1111
'0·63--j3f
"Señsíbw
'
o
p
'
'
t
"w
.
·'
x
y
z
{
l
}
"
:
íjel
104
105
106
1 07
108
109
111
112
60'
61
6z
63
64'
65
140
14-i
Éii6
Ú6
i4Z
í43
144
145
14
i
150
G9
i5i
6a
6b
6C
6D
152
153
154
155
157
160
161
162
6-É
'70
7Í
'72
114
rs
u
v
·
hex
67
68
' '1 1 3
·q
".
.
'096
jjcñ
'- 098
-0"99
"' 'loó
a
b
e
'
00101OÍ1
00101100
"
,
.
"'
"00j01001
OO1O1Ú0
'
-. 'DEC
oct
binary
—-»^+b&6&Üum6—4~"T"~w~~~~—
. , -...
00100000
00100001
oo1coo10
00100011
00100100
OQ100Üj1'
00ióQ110
0G10Óy111
00101000
040
041
042
043
ü44'
{)45
046
o,n
27
28
29
2a
Zb
-Cííár
.
.
1ÍÉ3
13
1"63
116
74
15
16
164
165
166
16')
170
1'7Í
1Ú
11 8
u19
'77
'
78
t$j
7a
.120
121.
122
i-23
-1'24
" .125
- 126
'.1"27
7É3
'
"
"
7c
7d
7e
'7f
'SOLUTIONtm
-
Ü2
173.
174'
175
17"6
17)
01100000
01100001
o11cco1o
o11ogo11
01100100
01100101
01100110
0-1100111
o11ó1ooo
01101001
01101010
O1Üj1O11
cii9Uo0
01101101
Q1Í'Ó1111
011í0000
C111goo1
01110010
01110011
01110100
01i10101
ó1í1011o
(]"11'í0111
01111.000
'ol·11'1001
'011-11010
01111011
oÍ1111oo
01i1'i,á01
"oí111"11o
01111.111
-"Ínstallation
—
24
Source Exif Data:
File Type : PDF File Type Extension : pdf MIME Type : application/pdf PDF Version : 1.4 Linearized : No Has XFA : No XMP Toolkit : Adobe XMP Core 4.2.1-c041 52.342996, 2008/05/07-21:37:19 Modify Date : 2016:06:21 10:45:48-07:00 Create Date : 2016:06:21 10:45:48-07:00 Metadata Date : 2016:06:21 10:45:48-07:00 Format : application/pdf Document ID : uuid:8e86910c-55f7-264f-b111-675ed43e2e0f Instance ID : uuid:d5d96c2e-50b1-804b-a262-24d738b99ab8 Page Layout : SinglePage Page Count : 374EXIF Metadata provided by EXIF.tools