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 PDF.
Page Count: 374

DownloadThe_Sensible_Solution_1984 The Sensible Solution 1984
Open PDF In BrowserView 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                      : 374
EXIF Metadata provided by EXIF.tools

Navigation menu