Académique Documents
Professionnel Documents
Culture Documents
,
Design Guidelines
Contents
About This
Design 1
1 I ntroduction
1 Software
1 N ew R ESET Features
1 N ew Apple 80 - Column Text Cards
2 Hand Controls and the APPLE Keys
2 New Apple l i e Firmware
3 Peripheral Card Firmware
4 BASIC Protocol
4 Pascal 1.0 Protocol
4 Pascal 1 .1 Protocol
7 Hardware
9
9 I ntroduction
10 Good H u man I nterfaces: So Often Elusive
10 A Planning and Testing M ethodology
10 Planning : the User Profile
14 Testing
19 Goals
19 Simplicity
19 Consistency
20 Efficiency
20 Self-teaching
20 Speediness
21 Minimum Strain on the User's M e mory
21 Honesty
21 G eneral Pr ogram Str u ctur e
22 Keep It Simple
22 Make It Fam iliar And Intuitive
24 I nput
25 The (Apple I I BASIC) Blinking- b ox Cursor
25 The ( Pascal) Solid-box Cur sor
26 The New I nser t/Delete Cursor
30 Cursor Movement with No Action Taken
30 Keyword Matching Dur i n g I n put: the Disam b i g uator
34 " Pr ess R ETU RN to continue"
35 Displays with Several I n put Statements
35 Err ors
37 Defaults
38 Displays
38 I nverse, Flash , Focus
38 Vocab ulary
39 Title Pages
39 Help
40 Menus
42 Keywor d Displays
43 Keep Them I nfor m ed When You Ar e Away
iii
About This Guide
This guide is divided into two parts . Part I contains reco m m e ndations to
software, firmware and hardware designers who want their products to
work smoothly with the Apple l i e, as well as the Apple I I and I I Plus.
These recommendations pertain to the i nterface between Apple II
Series computers and the products that are to work with the m .
v
Part I
Product Design Guidelines
Introduction
This section contains guidelines for designers of software , peripheral
card firmware , and hardware i ntended for use with the Apple l i e . Also
refer to the sections of the Apple lie Reference Manual (Apple Product
N u m b e r A2 L2005 ) pert inent to t he product you are desi g n i n g .
Software
Most of the software guidelines pertain to four new features of the
Apple l i e :
2. The Apple l i e 80- column text cards and the need to check for the
presence of such a card and turn it on and off at appropriate times .
The Apple l i e has all 6 4 K of it s m emory in RAM . A reset now affects the
cont ents of what used t o b e the " language card" area of main memory.
1
2. Make sure that an 80 -col u m n card i s i nstalled before attem pting to
turn it on ; otherwise , unpredicta ble system conditions may result.
6. Before sending output to devices other than the video display , issue
a c o N T R o L - L ( Form Feed ch aracter , deci mal code 1 2) to clear
the scree n , then a c o N T R o L - u to turn off the 80 -colu m n firmware .
2
handling routines have been changed to accomodate the requirements
of 80 -column display.
5. If a program uses Mon itor input/output routin e s , it should not use the
80 -column software switch at location 49 1 65 ($ COO D) .
7. Any program that uses 80 -column firmware can not also display
flashing characters . F lashing characters are not available in the
alternate character set, which is the set the 80 -col u m n firmware
uses .
Any peripheral card that is to work on the Apple l i e should have firmware
that takes into account the protocols of BAS I C , Pascal 1 .0 , and Pascal
1 . 1 . Pascal 1 . 1 protocols were purposely made flexible enough to meet
the req uirements of future versions of Pascal , extending the useful life of
peripheral card firmware .
These protocols are not unique to the Apple l i e , but rathe r are published
here to make it easier for peripheral firmware designers to find all
requirements in one place .
3
BASIC Protocol
T h e BASIC protocol is very simple ; it requires that three entry points be
found at fixed locations for a card i n slot s:
Address Contains
Address Contains
The 1/0 routine entry point branch table is located n ear the b e g i n n i n g of
the $ c 50 o address space ( s being the slot n u m be r where the p e ri p h e ral
card is i n stalled ) . This space was chosen i nstead of the$ c 8 o o spac e ,
since u n d e r BASIC protocol the$ c 5o o space i s required , w h i l e the
$ c 8 o o space is optional.
4
The branch table locations that Pascal 1 . 1 uses are:
Address Contains
$ C s0 D Initialization
On entry .$ c s $ sO
On exit error code (unchanged) (unchanged)
$ C s0 E Read
On entry $ Cs $ sO
On exit error code (unchanged) character read
$ C s0 F Write
On entry $ Cs $ sO char. to write
On exit error code (unchanged) (unchanged)
Status $ c s1 0
On entry $ Cs $ sO request ( 0 or 1 )
On exit error code (changed) (unchanged)
Notes: Request code 0 means, "Are you ready to accept output?" Request
code 1 means, "Do you have input ready?" On exit, the reply to the status
request is in the carry bit: carry clear means "No"; carry set means "Yes."
5
Pascal 1 . 1 uses four firmware bytes to identify the peripheral card. Both
the identifying bytes and the branch table are n ear the b e g i n n i n g of the
$ c s o o ROM space . The identifiers are listed in the follow i n g tab l e .
Address Value
The first digit, c, of the device signature byte identifies the device class.
Digit Class
$0 reserved
$1 printer
$4 modem
$6 clock
$8 80-column card
The second digit, i, of the device sig nature byte is a u n i q u e identifier for
the card, assigned by Apple Techn ical Support. For example, the
Apple lie 80 -Column Text Card has a device sig nature of $88.
6
Hardware
The Apple l i e Reference Manual specifies the overall physical and
electrical characteristics of peripheral cards disigned for use with the
Apple lie compute r . I n addition to these requirements, some d etailed
guidelines apply:
4. Cards should not dissipate more than the amount of power specified
i n Chapter 7 of the Apple lie Reference Man ual .
5. Cables should use 9-pin or 25 -pin " DB" style connectors . The four
1 9-pin openings ( 1 through 4 ) on the back panel are reserved for
use with disk drives.
7
Part II
User Interface Guidelines
Introduction
The following gu idelines and comments have been written for a diverse
audience .
As a novice program mer, you will find not only specific information on
how to implement certain guidel i nes, but a fair amount of philosophy of
design that should be of help i n areas of design not covered.
The expert program designer may skim past what has become the
obvious-don ' t just g ive error n u m bers i nstead of m ean ingful error
messages-to find standard layouts and key-function definitions for
i n puts, men us, command structures, and instruction page s .
You can explore additional BASIC basics o f h uman inte rface design for
the Apple in
There are two primary functions o f a good h uman i nterface design : make
the product easy to learn, and make it easy to use . We all know that our
customers can learn to use our programs faste r if they look and act l i ke
other prog rams with which the customer is already fam iliar.
When the Apple I I and Apple Ill series com puters first came on the
market, software developers experim ented with a wide variety of
interface designs. Some were good, some were bad. All were
somewhat hard to learn, because all were u n i q u e . As time went on,
though, the natural personalities of the keyboards, displays, and
computers led to a remarkable similarity of approach to certai n basic
problems of ease of use.
This document is drawn from applications prog rams written both within
and without Appl e . It further relies on human inte rface research projects
inside Apple and standards developed by independent software
developers .
9
We are not i n any sense trying to dictate what program designers shall
and shall not do within their own programs . Each prog ram has its own
n eeds; each guideline will have its own exception s . Programs should not
be judged by whether they adhere to each specific g u i d e l i n e presented
i n this man ual ; they should be judged by whether they are reasonable to
learn , functional to use , and whether they get the job done .
H u man interface design should come into play from the very beg i n n i n g.
A good design is no mean task: expect to expend a g reat deal of design
and programming effort toward a smooth interface . F o r most prog rams
with a good human interfac e , the design of that interface consumes
more design time, is more prone to bugs , and is harder to test than any
other part.
10
1. Select the target audience . Begin your h uman i nterface design by
identifying your target audience . Are you writing for businesspeople
or children? Will your audience consist of people relaxin g at home or
accountants under severe time constraints?
F ig u res 1 and 2 are mythical exam ples of two possible user- profiles for
prog rams that fill the exact same function : tax plan n i n g . Even thoug h the
task performed , the formulas used, the raw data required are identical ,
the programs that would result from the two user-profiles might bear little
external resem blance .
The " research " quoted in the exam ples is ficticious-do not start
writing a tax planner based on it. (The "case histories" in this document
are real ; the samples of display and document designs are fictitious . )
I n a data- base program recently developed for a com puter with larg e
mass storage, no effort was spared in making every section of the
prog ram as "friendly" as possible . When a particular task proved
somewhat difficult to learn or use, the task was reduced by picking up
bits and pieces of it within o ther tasks . The program slowly drifted
toward being consistently somewhat difficult to learn and use .
11
Figure 1 Big, Big B usiness Software Development Corporation
H ouston, Texas
"Get the Big, Big Solution to y our Little Old Problems"
N eeds :
12
F igure 2 Aunt Treig' s Software a nd Snowshoe Company
Petersberg, Alaska
"We'll never leave you out in the cold"
Needs:
4. User will probably use the program only a few times per
_
year. T here must be a minimum learning curve, eve n at
the expense of reduced power and fac.ility. A
menu-driven format should ce rt a inly be considered as a
first cut.
13
The designers had never considered w ho their audience was beyond
their being "office workers, " but when problems showed u p d u r i n g
testin g, they sat down a n d did a u s e r profile. What t h e y fou n d was that
there would be three separate users of the system :
3. The key operators . These people are the ones who, i n real life, read
the manuals. They can be expected to spend some tim e with the
system initially and can be expected to learn how to perform the
more technical operation and maintenance tasks of the syste m .
Once the users of the system were i dentified, once their i n d ividual
n eeds were identified, the designers were able to " u n balance" their
equally-difficult interface, so that each user had a level of difficulty
consistent with their skills and the amount of tim e they could spend
learni n g the syste m .
H u man i nterfaces are not mad e ; they evolve . Software designers are
sim ply too close to their product, their computer, and have put u p with
the most abysmal i nterfaces themselves for too many years to be able to
outguess the naive user . Pr oducts m ust be repeatedly tested on "real
people " . (" Real people" means the target a udience : as soon as you find
yourself sitting in a meeting with other com puterists, all announcing what
users will or will not feel/thi n k/do, you are in trouble. Build the prototype
and find out. )
The job of the designer is to do her best to predict the response of the
user; the job of the user is to do just the opposite.
14
H u man interface testing is q uite different from the kin d of exhaustive
" boundary condition" testing used to uncover bugs . You should begin
testing as early as possible , using drafted friends, relatives , and new
em ployees , to uncover the really big holes i n your design . As you get
closer to a finished product, try it out on large r g roups d rawn from the
target population .
15
The True Anecdote :
Herein follows a true anecdote that illustrates how d ifficult the most
simple human i nterface issue can be , and why thoro u g h testin g on real
people is so i m portant. (If you dislike true anecdote s , please skip ahead
to "Goals . " )
16
Second attempt: A smaller g raphic with large-letter words in their
own vivid colors was substituted :
G R E E N BLUE ORANG E M AG ENTA
Prompt: "Are the words above in color?"
Failure rate: color TV users : none
black and white mon itor users: none
green-screen monitor users : 1 00%
17
I n case it appears the authors were simply dull fellows, b e i t known that
this was a fully-interactive train i n g program i n excess of 1 OO K, and this
was the only i nterface issue that required more than one correctio n . It
clearly exemplifies how even the most careful designers can totally m iss
when g uessing at how users are going to respond .
Had the designers not tested the program, it is probable that dealers
would not have used the prog ram in their showrooms, as they would
have wearied of telling potential customers that they were/were not
using a color TV and that the APPLE PRESENTS . . . APPLE program was
being very stupid to ask the question like that. ( Potential custo m ers, of
course, wouldn't have fallen for such an explanation : they would have
known it was the computer that asked the question, and everyon e
knows that o n e should always b u y t h e computer that asks good
questions . )
I t is vital that programs and manuals b e tested early and often with users
from the target audience ; this testin g should be an inte gral part of any
testing plan . This testing seems like a lot of extra effort, but i n practice, it
really isn't, beyond the mechanical difficulties of getti n g you r equipment
and test group together. (Computer stores, colleges, and shopping
cent ers are often good random-testin g locations . ) The above testin g
cycles took only four days : t h e first two days were on-site, u s i n g n e w
Apple em ployees . Only two days of testing required a n y set- u p work at
all, and the overall improvement to the product was clearly worth the
effort .
Even if the interface had not changed at all, it would have been worth it
just to be able to ward off all the self- proclaimed experts with their ( day
after-going-to-production) comments of " Boy, I sure wou l d n ' t have done
it that way. A lot of people out there are gonna have trouble . ' ' What joy to
turn to such people and announce with a clear conscience, "Well, we
tried it out on 1 09 people, and they all sailed throug h with flyin g colors. "
18
Goals
Simplicity
User interaction should be simple and easy to remember. Spend the
necessary tim e to design a user interface that presents the best tradeoff
between alternate design issues.
Once the user has become basically fam iliar with the h u m an interface, if
she guesses at an un known response, she should be correct 95% of
the time .
Consistency
All programs written for a g iven computer should have as g reat a
commonality as is practical. The purpose of these g uidelines and
standards is to achieve a level of consistency across all products
designed to run on the Apple, a level that will make learning your product
easier, but not be so rigid as to stifle your ability to create the specific
h uman interface best suited to your particular application.
19
should delete characters in all parts of the program . If you are workin g on
a large project, be sure to spend enough time i n team meeti n g s being
sure that everyone is on the same track-all too often the three or four
sections Qf a program end up with an entirely different "feel . " At the
same tim e . avoid rigidity : hu man interfaces m ust be tested on real
peopl e . The agreed-upon interface at the beg i n n i n g will undoubtedly
need chang i n g . once you try it out on real people .
Self-teaching
Often there is a trade-off between ease of learning and ease of use .
Carefully balance your decisions: if the program is too difficult to learn,
salespeople will not learn it and . thus. not sell it. If endless instructions
and volum inous menus make it slow and cum bersome to use . people will
get frustrated and tell their friends not to buy it.
Speedinec:;s
Actual speed of operations is im portant. but perceived speed is even
more im portant. It may seem im portant to conserve keystrokes . but it is
more im portant to conserve "brain strokes" and design the interface so
that there is a natural flow . A more i m portant goal is to reduce the amount
of unproductive tim e . which is time spent deciding how to perform the
desired task rather than time spent performing the task . This concern
should permeate the entire design process .
React to user's in put immediately. A user will interpret any d elay of more
than a few tenths of a second after he has pressed R ETU R N to m ean
20
that either the program or the user has made an error. If you need to
make a computation , first acknowledge that you have accepted the
input.
Prog rams that are not used literally ev ery single day will be forgotten .
Users will not remember command words , the names of their files , nor
the fact that you are acceptin g data not with R ETU R N, b ut with CTRL-V.
(Violet was the name of your very first computer science teacher. )
1-lonsty
Do not lie to your users . Do not say , " File loaded" when the file is not
loaded , only the name of the file has been " loaded , " whatever that
m eans.
21
natural human interface. The program m ust, in the s i m plest way
possible , anticipate the user's questions and needs and be prepared to
answer and fill them the moment they arise.
There are two important principles being followed in the m ost successful
h u man interfaces designs.
Keep It Simple
The external appearance of the program is as simple as possible. The
user does not get lost within a maze of branches. (You may safely
assume that the first-time user has not read the man ual . )
Displays are kept clean and simple . Q uestions posed are clear and free
of am biguity .
Tools: The user is provided with the necessary tools to work with the
program . For exam ple, in a personal finance program, an input
requesting ann ual rent should allow an answer such as 435.00 * 12 or
435.00 X 12, and not expect the user to work out the answer i n his or
her head . If a file name must be selected from the disk, those file names
are either displayed or available for display .
22
Anticipation
The program antici pates as m u c h as poss i b l e the n e e d s
a n d questions o f the u s e r a n d is prepared t o han d l e them a s they arise.
Intelligence
The program does not ask for u n n ecessary data, data
which can be derived from information already at hand, o r data already
asked for and received before .
Confirmation
The program tries to prevent catastrophic errors . If the user commands
that a 1 OO K text file be deleted, the program should require cogn i zant
confirmation :
Are you sure you want to destroy 5 days' work? Type DESTROY 5
DAYS' WOR K to confirm .
If the user commands that a new file be saved under a name already
being used for a 1 OO K text file, the program will announce that saving
the file under this name will result in the destruction of the original file,
and then present a confirmation question similar to the one above if the
user says to save the file under the duplicate name anyway .
Tree Structures
The tree structure of a program is designed to feel natural to a user, not
the program mer. For exampl e, one could design a prog ram which will
both create and play music. Saving created music and load i n g that m usic
for later playing are hig hly sim ilar programm i n g tasks and can q u ite
possibly be done using the same basic subrouti n e s . But w h i l e it is
structurally logical to share code between them, it is intu itively wrong to
dump the two options adjacent to each other on a m en u . Savi n g should
be grouped with other m usic-creation options ; load i n g with both creation
(for editing), and playing.
Novice/Expert Modes
The first time a user runs a prog ram he has qu ite different needs from the
tenth time he uses it. I n the begi n n i n g, he needs as much information
presented as possible so that he can use the program with a m i n i m u m of
learning . Later on, with a program used habitually, he wants speed and
sim plicity . H e wants only i nformation pertinent to the specific task being
carried out, not a lot of instructions on how to d elete an incorrect
response.
Most large programs now have some sort of utility/confi g u ration section .
The config u ration sections often enable the user to select date and time
formats, color vs . black and white, and whether or not to have sou n d . I n that
23
section , you can also enable the user to select a skill leve l . The rest of
the program can then use the resulting flag , when set to expert, to
simplify verbiage and perhaps enable more flexible bran c h i n g with i n the
prog ram-branching that would serve to get the novice into trouble but
g ives the expert the added flexibility she needs .
The skill level selection could be more sophisticated , perhaps with more
than two le vels, perhaps based on the type of user. For exam ple , a
single tax planner program might better bridge the gap between
accountant and Apple owner if the accountant could select, " Expert at
taxes , Novice at Apple" and the Apple owner could select " N ovice at
taxes, Expert at Apple " . (The possible combinations and perm utations
are truly boggling . )
Ending
BASIC programs should also reset and clear H i res screens and revert
to normal text condition upon a normal exit i n order to prevent
interference with other unrelated programs .
Input
Two major languages native to the Apple I I and Apple Ill series
computers are BASIC and Pascal . Each has an input routin e as part of
the languag e . These in put routines are used i n many program s , and you r
customers have become fam iliar with the m . However , they are not
particularly well suited to most professional applications. As a result, in
the past, each software engineer has created her own routi n e , usually a
variation of one or the other "standard " i n put routi n e . The direction of
this creative technology has been toward more sophisticated i n put
schemes which allow insertion and deletion of characters . This
proliferation of in puts , each with its attendant cursor and special keys ,
has left the poor user rather bewildered .
24
Enter The Three Cursors : New Apple owners are being trained to
recognize and use three different in puts : BASIC's, Pascal's, and the
n ew insert/delete i nput. They are being trained that they can tell what
i n put they are faced with by the kind of cursor presented .
BASIC uses the blinking box cursor which overlays a character . Pascal
uses the solid box cursor which overlays a character . The new input
uses a blinking underline cursor which lies between c haracters .
Of all the standards being presented, this is the most important : The user
should be able to tell the rules of the i nput from the kind of cursor being
displaye d . If everyone conforms to the use of the proper cursor for each
personality of i n put (defined further below), Apple users will be relieved
of a major source of frustration . It is really hard to concentrate on learn ing
to do ellipsoid analysis of pork belly futures when you can 't figure out
what key to press to correct a typo .
If you need additional features, then keep the original cursor and enable
the original features : make your input scheme a superset of the origi nal .
If you need to use an entirely different kin d of i n put scheme, please
select a different cursor and train your users to recognize it as yet
another entity .
*A user can both insert and delete within a BASIC input line using E s c A P E -cursor keys. As a practical matter, however, few other than
experienced BASIC programmers can actually do so with any facility, as the screen ceases to reflect what the character-input buffer
is actually holding.
25
The
Apple II Series
Necessary :
CTRL-Y deletes all chars from present cursor position to end of line.
Optional
CTR L-P Prints the contents of the display on the default printer.
Notes
R I GHT-ARROW will signal that you wish to append material to the response.
26
DE LETE (Apple l ie) will delete a single character from the end of the
response and signal that you wish to edit the response.
Pressing any other key will clear the d efault response and begin a new
response in its place .
Necessary:
Either:
C T R L- S P A C E ,
C T R L- LE F T-
A R R 0 W , or D E L E T E will delete the character to the left of the cursor.
Either:
C T R L- R I G HT
A R R O W or
C T R L- D E LETE will delete the character to the right of the cursor.
C T R L-K deletes all chars from present cursor position to end of line .
Optional:
CTR L-P Prints the contents of tl<le display on the default printer.
Notes
Typing any printing character will automatically i nsert that character into
the input line at the current cursor position .
27
Default responses are displayed with the c u rsor at the e n d of the
response.
LE FT-ARROW will move cursor back into the default response, enabling the
user to edit it .
R I GHT-ARROW will signal that you wish to append material to the response.
C T R L- S P A C E
or D E L E T E will delete a single character from the end of a response and
signal that you wish to edit the response.
The program input statement asks the user for information by d isplay i n g
a verbal prompt. Prom pts s h o u l d terminate i n a colon ( : ) or g reater-than
sign ( ) ) if a statement, a question-mark (?) if a q uestion . The prompt is
followed by 2 spaces on an 80 -column display, 1 space on a 40 -col u m n
d isplay .
The specification of the n u m ber of spaces between the pro m pt and the
i n put field is quite im portant : users can become confused as to w h e re
their answer begins. If all programs adhere to one space with 40 col u m n
displays , 2 spaces with 80 col u m n displays , t h e users w i l l know whether
they have i nadvertently typed a leading space or not. ( As a separate
issue , leading and trailing spaces should be routinely stripped off , u nless
they are specifically needed . )
28
(Consider the underline to be blinking - the printer was not able to q u ite
capture the effect. ) The problem presented is to chan g e the answer to
read :
) A h e rd of c a t t l e
To edit the response, the user first moves back to the e n d of the word
"lot, " using the L E F T A R R o w . It looks l i ke this :
) A w h o l e l o t o f c a -t t l e
The user is next instructed to press the D E L E T E key several times , until
the words "whole lot" have been d e l eted :
) A - of catt le
) A h- of catt le
) A he_ of catt le
) A her_ of catt le
) A he rd- of catt le
29
Finally, the user can press R E T u R N to accept the entire response :
) A herd of catt l e
l = up
J = left K = right
M = down
U = up , left l = up O = up , right
J = left K = right
N = down , left M = down , = down, right
Apple Ill:
In the olden days of com puters, one typed a command to a com p uter
onto a punched card . One then walked down the hall to the computer
room, left said card, and returned some hours later to find that the
command was syntactically incorrect. Later , time-sharin g changed all
that. Now one could type i n the command, then press a single key called
30
R E T u R N which would send the command down the hal l . Soon ( 1 5
seconds or so later) the computer would announce the command was
syntactically incorrect.
Many microcom puter programs sti ll wait aro u n d until the user has made
a thorough fool of h i mself and pressed R E T u R N before s e n d i n g the
resu lts "down the hall " to the prog ram unit w h i c h does keyword
matc h i n g. This u n necessary waste of process i n g ti m e and power is
i n herent i n the built-in i n put routi nes of the languages which have been
ported over to m i c ros from time-share systems. Since w e are g e n e rally
su pplanti ng those old routi nes with the new b l i n ki n g - u nd e r l i n e routi n e ,
which is accessible and can be taken apart , this waste n e e d n o t go o n.
Command Word? _ . . . . . . . . . . .
File Name? _ . . . . . . . . . . . . . . .
Command-d riven programs offer a speed and flexibil ity not g e n e rally
attainable i n a m e n u - driven prog ram . They also typically offer a m u c h
steeper learn i n g cu rve-so debilitating a l earn i n g c u rve that
salespeople will often avoid selling a comman d - d riven prog ram
because of the time and practice required for them to g ive even a
r u d i m entary demonstration. Resu lt? Lost sales .
31
Com modity Analyzer Bel l y Processes Pork Bel l i es
buy
sell
eat
delete
Type your instruction and press RETU R N : _
The algorithm for figuring out at what point the user has typed e n o u g h so
that an answer is unique ( not ambiguous) is really q u ite s i m p l e : on each
keystroke , the list of possible words is scann e d for a matc h - u p of as
many letters have been typed so far. As soon as only one match can be
fou n d , the word has been found and can be completed by the program .
I n the above exam p l e , the sequence would look l i ke this :
No unique match is found ( both delete and display matc h ) so the input
only echos the user's character .
32
Type your instruction and press R E T u R N .
DI-sp lay
The user has not noticed that the computer has made a match, which
happens often with a touch-typist. There is no penalty : the new
character is echoed and the prog ram now supplies j ust that portion of
the command word still remai n i n g .
The user has noticed that the answer has been fou n d and has pressed
the terminating character, i n this case a space. The prog ram completes
the word, using the case that the user has been typi n g and adds the
space to the end .
As soon as the " D " in "dancing bellies" has been typed, the remain d e r of
the phrase becomes clear.
33
Pascal programs han d l i n g l ists of u p to thirty words i n any o n e context
have been i m plem ented with this routi n e in Pascal . Pascal programs
with very long l i sts or any BASIC prog rams need the routi n e to be
i m plemented i n native cod e .
The user can control the movement from one display to the n ext by
pressing the R E T u R N key (or, optionally but consiste n tly , s P A c E bar ) .
H e is i nformed by a m essage such as , " Press the R E T u R N key to go o n
t o the m e n u . " on t h e bottom l i n e o f the screen . ( De lay l o o p s a r e diff ic u l t
t o j u d g e a s t o the p r o p e r d u ration , and b e c o m e somewhat i n s u l t i n g to
the i ntelligence of the user . ) The actual prompt m essag e s h o u l d give
some indication as to what w i l l happen n ext , rather than s i m p l y say i n g
" Press R E T u R N t o conti n ue . "
34
Displays with several i nput statements:
Movement from in put to i nput is sequential : the user may m ove back
and forth but not randomly skip around .
Pressing the R E T u R N key automatically positions the user at the
n ext i n put statement.
Pressing c T R L - B automatically positions the user at the previous
i n put statement. The prior response to the previous i n p u t will be
displayed as that i n put's default.
The last i nput on the display will normally ask if the user has
completed all responses to her satisfaction .
No i nput will be accepted without the user explicitly termi nati n g it,
usually with R E T u R N or c T R L - B . The fact that the user has used u p
a l l t h e spaces avai lable i n t h e field should n o t automaticall y m ove
the user to the n ext question .
Errors
Error Trapping
35
transform characters : many of those obscure punctuation marks are
often-used special characters on foreign keyboards . )
Enable only those keys you have informed the user you are enabl i n g .
Do not prompt: " P ress E s c A P E to e n d , R E T u R N to contin u e . . . " and fail
to announce that s P A c E bar will e l i m i nate this afternoo n ' s files . The
classic n egative exam ple of this is an early Apple text e d itor with a
verified replace option . Accord i n g to the man ual ( n o i n structions were
d isplayed) , R meant replace this occurre n c e , s P A c E bar s i g n ified d o
not replace this occurrence . The actual code w a s s u c h t h a t any
c haracter with an ASC I I valu e of 82 ( R ) o r above caused a
replacement, and any character with an ASC I I val u e less than 82
caused a ski p . Therefore , " [ " would replace , " 8 " would n o t , " /\ " w o u l d
replace , " , " w o u l d not. Confusion y e t reigns o v e r t h a t o n e .
36
Error Messages
E rror messages should alert the user, identify the problem, and direct
the user toward solutions. They should do so with a m i n i m u m of
d isruption : ring the bell once-the whole room does n ' t need to know the
user has yet again made a fool of himself.
Remove the error m essag e as soon as the user takes proper action
to correct the condition . Users will believe you : as long as the
m essage is there , they will conti n u e to correct the probl e m . I t has
been shown that attempting to correct a problem that has already
been corrected will usually result i n a brand new prob l e m .
Application error # 1 4 63
Error m essages should not only provide i nformation ( i n the user's native
tongue, not computerese) as to what the e rror was, but should offer
solutions as to what the user can do to correct the situation . A better
m essage might be:
You have not yet selected the name of the file you want to work
from . Please type the name of one of the above files .
Please do not ever use the word default i n a program designed for
h umans . Default is something the mortgage went into right before the
evil banker stole the Widow Parson ' s house. There is an exhaustive list
of substitutes ( previous, automatic , standard , etc . ) i n the Appendix to
How to Write a Man ual .
37
Defaults should be declared, not assumed . U n d eclared ( not d isplayed)
d efaults such as pressing R E T u R N for Yes (or for No?) will cause
confusion and anger.
Displays
I nverse . There are many recent model home color TVs and older black
and white TV's that display inverse mode very poorly . I nverse mode can
be used effectively to accent screen material, particularly on the l i m ited
40 column screen of the Apple I I and II Plus . It should be used creatively
i n business software where it is expected the user will have a q uality
mon itor. However, for software aimed for the home market, avoi d
i nverse m o d e unless t h e entire screen or several adjacent l i n es are
simultaneously inversed .
Jargon
38
Keycap Names
Whenever possible . call keys by the names printed on them . written out
i n full . Three of the keys do have a standard abbreviation :
(gJ OPEN-APPLE OA
Abbreviation s
The user should not be faced with page after page of i nstructions :
experience has proven that people simply will not read the m . Rathe r,
supply help as it is needed . One way of doing that is described in the
section on menus .
When you try your program out on new users, be sensitive to the times
they need fundamental help in using the features of the program s . For
exam ple, while you may have a program portion with d etailed
explanations on why ellipsoid analysis is so effective i n figuring hog belly
futures . your user may never get there : you may not have provided
necessary help in how to enter preliminary data.
The standard help key on the Apple l i e and Apple Ill series computers is
either O P E N - A P P L E - ? or S O L I D - A P P L E - ? (The S H I F T should not b e
39
r e q u i red : therefore, also accept o P E N - A P P L E - I and s o L r o
A P P L E -/. )
A menu should display all choices legibly, using n u m bers for menu
selection . Research has shown that people will learn a n u m be r on an
often used menu as quickly as a letter, even though letters on the
surface appear more friendly. ( " Was that E for Edit or E for E rase?" )
M nemonic letter schemes are a nig htmare t o translate, a n d well over half
of computer users are not touch-typists . For these reason s and others,
the vast majority of developers have settled on n u m be rs .
40
The following is an exam ple of a m e n u using the stan dard m e n u format :
2 . Corn Futures
3 . Present Futures
The exact n u m ber of lines devoted to the three regions is not g raven i n
sto n e : t h e real standard being striven for is that there be three regions
with solid lines separating them, that these be devoted to titles, choices
presented, and instructions. (The Apple I I and Apple I I Plus can not
produce a solid line in text mode ; use either their hyphens o r their short
underline characters.
The title region can have up to three titles ( usually two i n forty-col u m n
mode) . T h e middle title ( o r lett title, if o n l y 2 ) should be t h e n a m e of the
menu, and it should contain the word, " m e n u . " Other displays you will
use, such as data entry and information, may have a s i m i lar format: make
sure your user is clearly aware of what he is being asked to d o . S i m ilarly,
on information screens, do not n u m be r itemized lists, asterisk them :
otherwise, about 25% of your users will try to type i n a "selection " .
You may use o r not use the other titles as you see fit, but they should
have a consistent meaning throug hout a given application .
Note that a field length longer than one has been allowed for the n u m ber
input. A field length of only one character will not give the user enough
feedback as to how the in put works . Users who have typed the wrong
n u m ber will often panic, assuming the computer has somehow locked
up. By giving them a few extra spaces, they can see from the action on
the screen what is going on and deduce what to do about it. Since you
will be stripping leading and trailing spaces ( wo n ' t you?), this extra
freedom afforded the user will not affect the program .
41
One method you can use to enable the user to get descriptions of any
option is to have them type the n u m be r of the option , followed by the
help key ( o P E N - A P P L E - ? on the Apple lie and Apple 1// , ? o n the
Apple I I and I I Plus). The user is able to get extensive i nformation o n ly
on those items of interest, without havin g to wade thro u g h masses of
i n formation that are not needed.
buy
sell
eat
delete
43
-------- --
20525 M ar i a n i Avenue
Cu pert i no, C al i forn i a 95014
(408) 996-1 01 0
TLX 1 7 1 - 576
1 982 Apple Com puter Inc . A2F21 1 6 1 1 /82 030-062 1 A