perm filename REPORT.TXT[DOC,CSR]21 blob
sn#484144 filedate 1979-10-21 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00024 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00003 00002
C00005 00003 How to get started
C00008 00004 The dialog begins
C00015 00005 [Example UPDATE session.]
C00036 00006 [Example of an ORDERING session.]
C00048 00007 [Example of a session with RECEIVE.]
C00056 00008 [Example of MAILing reports.]
C00072 00009 [Example of SENDing reports]
C00091 00010 [Finally, the last subsystem: ADJUST]
C00103 00011 [Finishing a session.]
C00109 00012 How to print the mailing labels produced in the MAIL subprogram
C00111 00013 Files used by the system (general information)
C00117 00014 ADDFIL.DSK
C00122 00015 ORDERS.JAN, ORDERS.FEB, etc.
C00124 00016 ONHAND.DSK
C00131 00017 Here is what appeared on LABELS.TMP after the sample dialog:
C00134 00018 And here are the first invoices written onto INVOIC.TMP:
C00142 00019 This is the record which was saved in INVOI$.TMP from the same run.
C00144 00020 File BILLS.TMP after that dialog contains similar but more varied invoices:
C00160 00021 The BILLS$.TMP file from the same run.
C00164 00022 Here is the FORM.DAT used to prepare the above bills:
C00169 00023 Recovering from system crashes
C00174 00024 Appendix: Changes made to the program, and their dates.
C00180 ENDMK
C⊗;
The Computer Science Report Distribution System (wow) is a collection of
computer programs intended to automate many of the tasks associated with
our departmental reports.
The present document explains how to use the system. If any questions
come up that aren't answered here, it would be a good idea to fix this
document right away, so that eventually it will contain all the important
information about the system.
The first draft of the CSR system was written by William T. Colemen III
during the spring and summer of 1976. The second draft, on which the
present system is based, was written by D. E. Knuth during autumn l976.
Modifications and extensions have been done since then by Jim Davidson.
How to get started
First you must log on, under the project/programmername `USE,CSR'.
You need to know the password for this; the files are protected against
the use of people who don't know the password. (Only a few authorized
users should know it at any time.)
Once logged in, type RUN REPORT<cr> to the monitor. (As usual, <cr> means
carriage return; the monitor will have previously typed "." at you.)
It will take about a minute or so for the program to get itself ready;
mainly it is reading the mailing list from the permanent file ADDFIL.DSK,
and this takes some time. As soon as it is ready, the program will say:
CSREPORT system: What can I do for you?
The best way to learn how to use the system is to study an example of
what goes on in a typical session. Therefore most of this instruction
manual is simply a transcript of a dialog that might once have taken place.
However, before we get into the dialog, it will be helpful to learn a few
basic conventions. When you use the program, it asks questions and you
give the answers or instructions about what the machine should do.
If you don't know how to respond, simply type `?<cr>' and the program
will tell you what kinds of responses it is willing to understand at the
moment. In fact, whenever you give an unexpected reply--a question mark
is simply a special case of this general rule--you will be told what
the legal responses are.
Furthermore, you can almost always get further information by typing
HELP<cr> instead of answering the machine's question. Then it will try
to explain what you need to know, before asking the question again.
Now we are ready to look at the sample dialog. The user in this case
will ask for help, so comparatively little more needs to be said by way
of further explanation.
The dialog begins
[As stated on the previous page, we are now going to learn how to use
the system by reading a transcript of a session that might once have
taken place. You will usually be able to tell whether it is the computer
or the user talking, because the user is supposed to speak only in
capital letters, while the computer has a lot more freedom.
Whenever there is something important to say that is not part of the
actual dialog, it will be enclosed in brackets, like this paragraph is.]
[You will recall that the user has typed RUN REPORT and is waiting for
the program to get ready for business. Finally it is ready and it says:]
CSREPORT system: What can I do for you? help
[Whoops, the user forget to set the SHIFT LOCK on his or her typewriter...
possibly because the writer of this manual forgot to tell him or her to
do that on page 3. Therefore the answer was `help' instead of `HELP' --
and computers being what they are, this message was unexpected. So it is
treated just as if it were `?', and the machine responds like this:]
?The responses I can understand at this point are:
UPD...,ORD...,REC...,MAI...,SEN...,ADJ...,
or <cr> (to get out of this loop),
or HELP<cr> (for more information).
CSREPORT system: What can I do for you? HELP
[So, you see, after it tells you the responses it expects, it asks the
same question over and over again. With infinite patience. If the reply
had been (lower case) `help' again, the same cycle would have repeated. Now,
however, the user noticed that capital letters are wanted, and said (upper
case) HELP. Here is what the machine replied then:]
Hello, this is your friendly CSREPORT system.
There are six kinds of things I am programmed to do for you:
UPDATE Look at and perhaps change the mailing list.
ORDER File away any orders that have been received
for a given month's list.
RECEIVE Record payments received, or adjust accounts.
MAIL Prepare mailing labels and/or invoices and
bills of lading for everyone that has ordered
reports from a given month's list.
SEND Prepare invoices for isolated back-order requests,
including orders from people not on the mailing list.
ADJUST Change the contents in file ONHAND.DSK, which is
our current inventory of reports.
When I ask, `What can I do for you?', just type the first three letters
of one of these functions and hit carriage RETURN <cr>. (You can also
type more than three letters if you want to.) The user's manual, which
contains more information, is file REPORT.TXT[DOC,CSR].
CSREPORT system: What can I do for you? UPDATE
[OK, you see how helpful it was? It described the six main divisions
of the system. We will learn these six divisions in that same order,
in future sections of this document. But first, notice that the machine
patiently came back to the same question again. How are we ever going
to get out of the rut? Obviously, one way is to answer the question,
as was done here by typing `UPDATE' (and then <cr>; all messages to this
system end with <cr>). ]
[If you look back at how the computer responded to the first (lower case)
call for `help', you will notice that it is waiting for any reply that
begins with the letters UPD or ORD or REC or MAI or SEN or ADJ; those are the
expected answers, and anything you type after these letters is immaterial.
In this case the user said UPDATE because he or she thought that UPD
didn't sound as nice.]
[That first response to `help' also mentioned another way to reply, namely
to type <cr> alone. This is another important convention of the system:
When it asks you a question, you don't have to answer it, instead you
simply hit <cr>. Then the program will go on to something else, "one level
out" from what it was doing. For example, if the user had just hit <cr> at
this point, the program would simply have stopped everything; this is the way
to tell it you are done. We will see many examples of this <cr> convention
as we read on. But now turn the page and see what happened next.]
[Example UPDATE session.]
[You will recall that the user had just typed `UPDATE'; the machine
now responds by entering its UPDATE function:]
UPDATE: INS, DEL, MOD, or LOOK? HELP
The UPDATE routine should be used to make all changes to the
address file, since editing with E is risky. To insert a new entry,
type INS and follow instructions. To modify an existing entry, type
MOD and see what happens. To delete an entry, type DEL (but don't delete
anybody who has orders outstanding on some ORDERS file -- it's best to
delete only after MAILing all orders). To simply look at an entry,
type LOOK. Type only <cr> when you want to quit updating.
UPDATE: INS, DEL, MOD, or LOOK? MOD
[You see, the user asked for HELP again, and this time another kind of
help was proffered. When the question was re-asked, the user decided
to try doing a MODification of some entry in the mailing list.]
[Pretty soon you're going to be able to read this dialog without me
butting in so often; in fact, I'm going to confine myself mostly
to elaboration of things that aren't obvious, from now on. We can
let the machine and its user run the show as we eavesdrop:]
Type hashcode of entry to be modified: #HELP
I am going to try to identify an addressee for you. Type the
five-character hash code if you know it, or type 99999 if the
addressee is not on our mailing list and not being inserted into it.
If you don't know the hash code, type XXXXX and I will try a name search
of the whole file. If you type just <cr> now, I will go on to something
else. Since hash codes sometimes change, you should doublecheck the
addressee name I find in case it is the wrong person.
Type hashcode of entry to be modified: #IDMNE
Is the name JOHN G. HERRIOT? (Y or N) Y
[Here the user typed the final `Y'. Whenever the program wants you to
identify somebody in the mailing list, it always goes through this ritual,
first asking for the hashcode, then asking you to confirm the name after
it has been found. In this case, the user wishes to modify Prof. Herriot's
address, since he has just gone away on sabbatical; and the first step has
been accomplished successfully, having found him in the old file. At this
point the program will display the entry which is to be modified:]
LINE 1: JOHN G. HERRIOT
LINE 2: POLYA 261
Type number of a line to be changed (1 to 3),
or <cr> if modifications are complete: 2
[The computer typed all this except the final `2', which was given by the
user.]
New line 2: GEERENSTRASSE 23
[Here the computer typed `New line 2: ' and the user typed GEERENSTRASSE 23<cr>.]
Type number of a line to be changed (1 to 3),
or <cr> if modifications are complete: 3
[Note that the machine allows the user to change line 3 even though Herriot's
former entry consisted only of lines 1 and 2; an address can grow up to five
lines long in this way.]
New line 3: CH-8044 GOCKHAUSEN
Type number of a line to be changed (1 to 4),
or <cr> if modifications are complete: 4
New line 4: SWITZERLAND
Type number of a line to be changed (1 to 5),
or <cr> if modifications are complete:
[Here the user typed simply <cr>, indicating that the modification was now
completely specified.]
I deduce that the ZIP code or country is SWITZ;
if not, please reject this and try again.
[Whenever the user modifies the last line of an address, the machine will
"deduce" the new zip code. Its deduction is based on the first five characters
following the final blank space on the last line. The machine is concerned
about zip codes because the first three letters or digits of the hash code
agree with the first three letters or digits of the zip code; then when
it produces mailing labels in order by hash code, the labels are grouped
in a convenient manner. Since Herriot's previous zip code was `IDMAI',
indicating Stanford interdepartmental mail, he will get a new zip code and
a new hash code when he moves to Switzerland.]
Type the classification (C,F,N,M,A or B), or type <cr> to reject this entry: HELP
Type <cr> to reject this entry and flush it; or type C<cr> for
normal entry, F<cr> for the free list, N<cr> for the ONR list, M<cr> for
the ARPA list, A<cr> for the `automatic' list, B<cr> for the `automatic
microfiche' list.
Type the classification (C,F,N,M,A or B), or type <cr> to reject this entry: F
Hashcode changed from #IDMNE to #SWINE.
OK, the modification has been made.
[Hashcodes are conventionally preceded by a # in this system. Notice that some
hashcodes turn out by coincidence to be a pronounceable five-letter combination;
this is not intended to reflect on the character of anybody on the mailing list,
and we hope that no truly embarrassing five-letter words emerge. Herriot's
new one is hopefully as bad as they will get. Anyway he retains his F status
(free reports), naturally, being a faculty member of our department even
though he is on leave. Now that the modification has been made, the computer
comes back with another question:]
UPDATE: INS, DEL, MOD, or LOOK? LOOK
Type hashcode of entry to be displayed: #SWINE
Is the name JOHN G. HERRIOT? (Y or N) Y
LINE 1: JOHN G. HERRIOT
LINE 2: GEERENSTRASSE 23
LINE 3: CH-8044 GOCKHAUSEN
LINE 4: SWITZERLAND
hashcode=#SWINE, category=F, serial=421,
ordering history=NNNNNNNNNNN2, current balance=$ .00
[The modification was indeed made as desired. LOOK is used to look at an
entry without changing it. Although Herriot's hash code has changed, his
`serial number' has not; everybody in the mailing list has a unique serial
number, which stays unchanged during modification.]
UPDATE: INS, DEL, MOD, or LOOK? LOOK
Type hashcode of entry to be displayed: #XXXXX
Sorry, that hashcode isn't in the file. What is the name? HELP
I am trying to identify an addressee for you. Type the name
or any part of the name, and I will show you all name lines in the file
which contain that sequence of characters (including blank spaces in
the middle of the sequence, if you use them). Note that I will search
only the first line of each address on the mailing list.
Sorry, that hashcode isn't in the file. What is the name? YAO
Here are all the entries matching that name:
#207FH: PROF. YAOHAN CHU
#IDMFK: PROF. A. C. YAO
Type hashcode of entry to be displayed: #IDMFK
[Now the user wanted to check whether or not Andy and Frances Yao, who
have just joined our faculty, were already on the list. A search through
all names in the file showed that Andy was in, but not Frances. Sometimes
the machine may find no matching names at all; but sometimes it may find
so many, they don't all fit on your screen at once. In such a case, you
should hold down the CONTROL key on the typewriter and then hit the
BREAK key (upper left corner of the keyboard). This stops the typout of
names until you have a chance to read them and perhaps jot down the hashcode
you want. To start the machine again, hold CONTROL down and hit the CLEAR key.
Once you have seen the list of names, you go back to the hashcode loop
and resume as if no name search had taken place.]
[Note that on a Datamedia terminal (the kind with black keys), things are
slightly different; you can hold the typeout by hitting the HOLD key, in
the lower right. To resume typing, hit HOLD again.]
Is the name PROF. A. C. YAO? (Y or N) Y
LINE 1: PROF. A. C. YAO
LINE 2: POLYA
hashcode=#IDMFK, category=F, serial=1411, IDMAIL,
ordering history=NNNNNNNNNNN0, current balance=$ .00
UPDATE: INS, DEL, MOD, or LOOK? INS
[Now the user wants to insert a new entry, since Frances should be included:]
Type the new address, two to five lines long:
Line 1: PROF. F. FRANCES YAO
Line 2: HER OFFICE IS IN POLYA HALL, NEAR THE XEROX MACHINE
[It seems this user has a peculiar sense of humor, but by
typing such a foolishly long line he or she caused the machine to
display more of its repertoire of responses to unusual circumstances:]
That line was 17 characters too long for our mailing labels.
Please shorten it.
Line 2: HER OFFICE IS IN POLYA HALL, IDMAIL
That line was 1 character too long for our mailing labels.
Please shorten it.
Line 2: POLYA IDMAIL
Line 3:
[OK, that version of Line 2 was short enough. Since Line 3 was blank
(the user just typed <cr> at this point), there is no point in
going on to Line 4).]
I deduce that the ZIP code or country is IDMAI;
if not, please reject this and try again.
Type the classification (C,F,N,M, or A), or type <cr> to reject this entry: F
OK, I've inserted it; hash code is #IDMFS, serial number is 1412
UPDATE: INS, DEL, MOD, or LOOK? LOOK
Type hashcode of entry to be displayed: #FORGOT
Sorry, that hashcode isn't in the file. What is the name? YAO
Here are all the entries matching that name:
#207FH: PROF. YAOHAN CHU
#IDMFK: PROF. A. C. YAO
#IDMFS: PROF. F. FRANCES YAO
Type hashcode of entry to be displayed: #IDMFS
Is the name PROF. FRANCES F. YAO? (Y or N) Y
LINE 1: PROF. F. FRANCES YAO
LINE 2: POLYA
hashcode=#IDMFS, category=F, serial=1412, IDMAIL,
ordering history=NNNNNNNNNNN0, current balance=$ .00
UPDATE: INS, DEL, MOD, or LOOK? DEL
[Now the subject has changed again. One of our customers from Australia
has asked to be removed from the mailing list:]
Type hashcode of entry to be deleted: #AUSKM
Is the name NICK KOMAROFF? (Y or N) Y
LINE 1: NICK KOMAROFF
LINE 2: PROFESSIONAL ENGINEER
LINE 3: 29 KENSAL ST.
LINE 4: MOOROOKA, QUEENSLAND 4105
LINE 5: AUSTRALIA
hashcode=#AUSKM, category=C, serial=34,
ordering history=NNNNNNNNNNN0, current balance=$ .00
Do you really want to delete this? (Y or N) Y
OK, I did it.
UPDATE: INS, DEL, MOD, or LOOK? LOOK
Type hashcode of entry to be displayed: #AUSKM
Sorry, that hashcode isn't in the file. What is the name?
[Here the user simply typed <cr>, so instead of doing a name search the
machine moves out one level:]
UPDATE: INS, DEL, MOD, or LOOK? MOD
Type hashcode of entry to be modified: #WIRTH
Sorry, that hashcode isn't in the file. What is the name? WIRTH
Here are all the entries matching that name:
#SWIFN: PROF. N. WIRTH
#454AC: MICHAEL C. WIRTH
Type hashcode of entry to be modified: #SWIFN
Is the name PROF. N. WIRTH? (Y or N) Y
LINE 1: PROF. N. WIRTH
LINE 2: E.T.H.
LINE 3: CLAUSIUSSTR. 55
LINE 4: CH-8092
LINE 5: ZURICH, SWITZERLAND
hashcode=#SWIFN, category=C, serial=616,
ordering history=NNNNNNNNNNN0, current balance=$ .00
[Wirth and Herriot are exchanging houses this year. We gave Herriot
Wirth's home address, now we give Wirth Herriot's:]
Type number of a line to be changed (1 to 5),
or <cr> if modifications are complete: 2
New line 2: 1302 CHANNING AVE.
Type number of a line to be changed (1 to 5),
or <cr> if modifications are complete: 3
New line 3: PALO ALTO CA 94301
Type number of a line to be changed (1 to 5),
or <cr> if modifications are complete: 4
New line 4:
Type number of a line to be changed (1 to 4),
or <cr> if modifications are complete: 5
Invalid line number.
Type number of a line to be changed (1 to 4),
or <cr> if modifications are complete:
[This is the way addresses shrink to fewer lines. Since line 4 became blank,
it wasn't necessary for the user to try to blank out line 5, and he or she
didn't notice that the computer began to ask specifically for changes to
lines 1 to 4 only.]
I deduce that the ZIP code or country is 94301;
if not, please reject this and try again.
Type the classification (C,F,N,M, or A), or type <cr> to reject this entry: C
Hashcode changed from #SWIFN to #943FW.
OK, the modification has been made.
[The zipcode will be wrong if you hyphenate the country name or put it in
parentheses, etc. For East Germany, don't use DDR (GERMANY) or GERMAN
DEMOCRATIC REPUBLIC, since that leaves zip codes of (GERM and REPUB,
respectively; use GERMANY- DDR (including that space). In CANADA, always
put the word CANADA last, after the Canadian postal code if you know it.
Don't use U.K., use UNITED KINGDOM. And so on. Whenever you make a mistake,
the computer will `deduce' the wrong zip code, and you can recover without
putting the error into the file if you type <cr> without a classification
code.
If the classification code is A, N, or M, the US zip code will remain on
the last address line, and the assumed zip will be taken as AUTOM, ONRXX,
or DARPA, respectively. This causes people on those lists to be grouped
together in the output, as desired.]
UPDATE: INS, DEL, MOD, or LOOK?
[Now the user has typed just <cr> to the UPDATE query. This means he is
done updating, he no longer wants to INS, DEL, MOD, or LOOK. If you
want to see what happened next, go on to the next page. But if you are
tired, why not rest for awhile first.]
[Example of an ORDERING session.]
[Our story so far: After an exciting discourse with the UPDATE subsystem,
our user has decided to stop updating. The next thing that the machine types is:]
CSREPORT system: What can I do for you? ?
?The responses I can understand at this point are:
UPD...,ORD...,REC...,MAI...,SEN...,ADJ...,
or <cr> (to get out of this loop),
or HELP<cr> (for more information).
CSREPORT system: What can I do for you? ORDER
[Yes, it's back to where we were before. But this time the idea is to process
some of the orders that just came in.]
For which month? HELP
The ORDERS subsystem is used to record orders received from a
given month's mailing list. The information you enter is recorded in
the file ORDERS.XXX where XXX is JAN,FEB, ..., or DEC.
For which month? 8
?The responses I can understand at this point are:
JAN...,FEB...,MAR...,APR...,MAY...,JUN...,JUL...,AUG...,SEP...,OCT...,NOV...,DEC...,
or <cr> (to get out of this loop),
or HELP<cr> (for more information).
For which month? AUG
ORDER: ADD or CHANGE? HELP
In ADD mode, you can add new orders to the file. In CHANGE, you
modify a previous entry for a particular customer, adding or deleting
reports from his list. You identify a person by his hashcode,
and then say which reports he has ordered. For example, if he
wants 1,9, A, and G, you can type 19AG or 1AG9, etc.
ORDER: ADD or CHANGE? ADD
No orders on file for AUG, I will create a new file.
[Here, the user has elected to add new orders to the August list.
The machine has looked to see if there is a file called ORDERS.AUG.
Since there was no such file, it assumed that the information to be typed
in next represents the first orders to be recorded for August.]
Type hashcode of person ordering: #021FG
Is the name PROF. PETER KUGEL? (Y or N) Y
Reports ordered: F
Type hashcode of person ordering: #019SE
Is the name CHARLES A. STEELE, JR.? (Y or N) Y
Reports ordered: D2468AEGIK
Type hashcode of person ordering: #209UE
Is the name NAVAL SURFACE WEAPONS CTR.? (Y or N) Y
Reports ordered: 248G
Type hashcode of person ordering: #IREFR
Is the name PROF. C.A.R. HOARE? (Y or N) D
?The responses I can understand at this point are:
Y...,N...,
or <cr> (to get out of this loop),
or HELP<cr> (for more information).
Is the name PROF. C.A.R. HOARE? (Y or N) Y
Reports ordered: D
[Notice that the user was going too fast in the previous example,
wanting to type the report order before confirming the name. It is
important to confirm the name, even though it checks almost always,
since zip codes and hash codes may have changed between the time
the abstract was sent and the order received.]
Type hashcode of person ordering: #JAPOK
Is the name HIROYA KAWAI? (Y or N) Y
Reports ordered: D48XC
[Here the "X" was an error, KAWAI ordered only D, 4, 8, and C. Since
X is not a valid report code for August, this will simply be deleted
later when the reports are mailed, as we shall see. The computer has
no way of knowing how many August reports there are at this time, since
the information from August's abstract list is put in only when mailing
the reports later.
If you make a mistake in the reports ordered, and fail to correct it,
your mistake is dutifully written onto the file ORDERS.XXX where XXX is
the relevant month. It is possible to edit that file using the normal
`E' editor. A better method, however, is to use the CHANGE subprogram,
to make your corrections.]
Type hashcode of person ordering: #934H0
Sorry, that hashcode isn't in the file. What is the name? DOURSON
Here are all the entries matching that name:
#934HO: R. H. DOURSON
Type hashcode of person ordering: #934HO
Is the name R. H. DOURSON? (Y or N) Y
Reports ordered: 3DF68CIP
Type hashcode of person ordering: #
[Again, the user makes a mistake (the `P' shouldn't be there), but this time he
notices it, and decides to correct it. First, we get out of ADD by entering <cr>.]
6 new orders written onto ORDERS.AUG.
ORDER: ADD or CHANGE? CHANGE
6 entries found in ORDERS file.
Enter hash code of customer to be modified: #934HO
Is the name R. H. DOURSON? (Y or N) Y
Current list of reports ordered: 3DF68CIP.
Enter corrected list: 3DF68CI
Enter hashcode of customer to be modified: #019SE
[The user takes care of Dourson's erroneous report, then notices that
one report was accidentally omitted from the list for C. Steele.]
Is the name CHARLES A. STEELE, JR.? (Y or N) Y
Current list of reports ordered: D2468AEGIK.
Enter corrected list: D2468ACEGIK
Enter hash code of customer to be modified: #
2 records changed in ORDERS file.
[Now the user failed to type a hashcode, moving us up one level, and
we return to typing in the list of orders.
In practice, you are encouraged to save your corrections, and do them in bunches,
since switching back and forth between ADD and CHANGE can be time-consuming.]
ORDER: ADD or CHANGE? ADD
I will append to existing orders recorded on file ORDERS.AUG.
[OK, the user decided to go back to more ORDERing. This time the
machine found the file ORDERS.AUG, having just stored 6 orders there.]
Type hashcode of person ordering: #303WM
Is the name PROF. WILLIAM I. GROSKY? (Y or N) Y
Reports ordered: D468
Type hashcode of person ordering: #
1 new orders written onto ORDERS.AUG.
[Here the machine's grammar leaves something to be desired, since the system
programmer didn't expect there would often be only one new order!]
ORDER: ADD or CHANGE?
CSREPORT system: What can I do for you? UPDATE
UPDATE: INS, DEL, MOD, or LOOK? MOD
Type hashcode of entry to be modified: #303WM
Is the name PROF. WILLIAM I. GROSKY? (Y or N) Y
[The same man who was the subject of the previous order also wanted his address
to be changed. Note that it would be possible to go back and forth many times
between ORDER and UPDATE, but it is more efficient to do all the orders first
(before the hash codes change) and then go through again to make all the updates.]
LINE 1: PROF. WILLIAM I. GROSKY
LINE 2: GEORGIA INSTITUTE OF TECHNOLOGY
LINE 3: SCHOOL OF INFORMATION
LINE 4: AND COMPUTER SCIENCE
LINE 5: ATLANTA, GEORGIA 30332
hashcode=#303WM, category=C, serial=967,
ordering history=NNNNNNNNNNN0, current balance=$ .00
Type number of a line to be changed (1 to 5),
or <cr> if modifications are complete: 2
New line 2: MATHEMATICS DEPARTMENT
Type number of a line to be changed (1 to 5),
or <cr> if modifications are complete: 3
New line 3: COMPUTER SCIENCE SECTION
Type number of a line to be changed (1 to 5),
or <cr> if modifications are complete: 4
New line 4: WAYNE STATE UNIVERSITY
Type number of a line to be changed (1 to 5),
or <cr> if modifications are complete: 5
New line 5: DETROIT,MICHIGAN 48202
Type number of a line to be changed (1 to 5),
or <cr> if modifications are complete:
I deduce that the ZIP code or country is 48202;
if not, please reject this and try again.
Type the classification (C,F,N,M, or A), or type <cr> to reject this entry: C
Hashcode changed from #303WM to #482II.
OK, the modification has been made.
UPDATE: INS, DEL, MOD, or LOOK?
CSREPORT system: What can I do for you? REC
[This new move takes us to the next chapter of our story.]
[Example of a session with RECEIVE.]
[At the end of the last chapter, the user typed `REC', which is short
for `RECEIVE'. This is the subsystem that changes account balances.]
Type hashcode of account to credit (or 99999): #CANRO
Is the name DR. R. S. ROSENBERG? (Y or N) Y
Amount rec'd (or amount + or -, if accounting adjustment)? HELP
Type amount followed by <cr>, e.g., 5.20<cr>,
if $5.20 has been received in payment for this account.
Type amount followed by -<cr> if the account balance is to
decrease by this amount but no payment has been received.
Type amount followed by +<cr> if the account balance is to
increase by this amount. Just type <cr> to leave the account
unchanged. People not on the mailing list have hash code #99999.
Amount rec'd (or amount + or -, if accounting adjustment)? $3.50
[That's all there is to it; $3.50 has been subtracted from Rosenberg's balance.
The next example is hypothetical, but it demonstrates another important
kind of thing you can do with RECEIVE. Sometimes you just want to
adjust somebody's account, but no payment has been received. For
example, he might have been mischarged for a report he never got, because
of some slip, or he might have been overcharged or undercharged somehow.
By typing the amount followed by a minus sign, you decrease his balance due;
by typing an amount followed by a plus sign, you increase that balance. Here
is a demonstration of how to decrease DR. F. FIALA's balance due by one penny:]
Type hashcode of account to credit (or 99999): #CANRF
Is the name DR. F. FIALA? (Y or N) Y
Amount rec'd (or amount + or -, if accounting adjustment)? $0.01-
[That did it. Just to make sure, we can now leave the RECEIVE routine and
go back into UPDATE, to LOOK at his account:]
Type hashcode of account to credit (or 99999): #
CSREPORT system: What can I do for you? UPDATE
UPDATE: INS, DEL, MOD, or LOOK? LOOK
Type hashcode of entry to be displayed: #CANRF
Is the name DR. F. FIALA? (Y or N) Y
LINE 1: DR. F. FIALA
LINE 2: DEPT. OF MATHEMATICS
LINE 3: CARLETON UNIVERSITY
LINE 4: OTTAWA, CANADA K1S 5B6
hashcode=#CANRF, category=C, serial=152,
ordering history=NNNNNNNNNNN5, current balance=$ 18.69
[You see, it worked! Now let's put that penny back and check it again:]
UPDATE: INS, DEL, MOD, or LOOK?
CSREPORT system: What can I do for you? REC
Type hashcode of account to credit (or 99999): #CANRF
Is the name DR. F. FIALA? (Y or N) Y
Amount rec'd (or amount + or -, if accounting adjustment)? $0.01+
Type hashcode of account to credit (or 99999): #
CSREPORT system: What can I do for you? UPD
UPDATE: INS, DEL, MOD, or LOOK? LOOK
Type hashcode of entry to be displayed: #CANRF
Is the name DR. F. FIALA? (Y or N) Y
LINE 1: DR. F. FIALA
LINE 2: DEPT. OF MATHEMATICS
LINE 3: CARLETON UNIVERSITY
LINE 4: OTTAWA, CANADA K1S 5B6
hashcode=#CANRF, category=C, serial=152,
ordering history=NNNNNNNNNNN5, current balance=$ 18.70
UPDATE: INS, DEL, MOD, or LOOK?
[Of course one wouldn't really be so mistrustful of the CS Report System
in practice; you don't have to inspect the accounts, since computers
never make mistakes....stakes...stakes...stakes...stakes...stakes...stakes...stakes.
]
CSREPORT system: What can I do for you? RECEIVE
Type hashcode of account to credit (or 99999): #99999
Is the name PEOPLE NOT ON MAILING LIST? (Y or N) Y
Amount rec'd (or amount + or -, if accounting adjustment)? $12.25
California resident? (Y or N) Y
[The above example shows how to receive payment from people not on the
mailing list. They all share a common hash code, #99999, and the balance
due on that account represents an accumulation over all bills sent out to
people not otherwise on the list. In this case you are asked whether or
not the money is received from a California resident, for if it is we
must pay sales tax. The receipts subject to sales tax will be shown later
in the summary of the day's financial transactions (see page 11).
If a customer is already on the mailing list, the computer doesn't ask
whether or not he is a California resident, since that can be figured out
by looking at the zip code.]
[Now we have seen all aspects of RECEIVE, so we shall leave it:]
Type hashcode of account to credit (or 99999): #
[Example of MAILing reports.]
CSREPORT system: What can I do for you? MAIL
MAIL subsystem: AVERY or CHESHIRE labels? HELP
The MAIL subsystem is used to prepare mailing labels and/or
invoices for monthly report distribution. Two kinds of mailing labels
are presently provided for: AVERY (34 characters wide, one printed
at a time) and CHESHIRE (34 characters wide and three printed at once).
When mailing an abstract list, type ABS<cr> and I will prepare the file
LABELS.TMP containing mailing labels for everyone on the mailing list
except codes N, M, or A. When mailing invoices and reports, type
REP<cr> and give the necessary information about the relevant month's
reports. The ORDERS.XXX file for that month will be used to specify
all orders, and the activity records for all customers are shifted
left one position unless you request otherwise.
MAIL subsystem: AVERY or CHESHIRE labels? AVERY
MAIL subsystem: Sending abstracts or reports? REPTS
For which month? AUG
I need to know some things from that abstract list.
[The comment, `I need to know some things...' is the machine's nice way of
telling you that a somewhat tedious question-and-answer session must now
begin, in which you are supposed to feed in a lot of relevant information.
During this session, you have several chances to correct errors (for example,
by typing <cr> to a question, the machine will start over again on the
report it was last interested in); if some terrible error is made, you can
type QUIT at an appropriate time and start over from scratch. A lot of
invoices will be printed based on what you type now, so it is important to
get the detailed facts straight.]
Please enter STAN- or AIM- or HPP- number of reports 1 and 2,
followed by *AUTHOR,TITLE (or <cr> if done, QUIT<cr> to abort):
HELP!
At this point I need to know the names and numbers of the reports,
in order to identify them meaningfully on the invoices to
be written. Here are three examples of the form I want you to type:
STAN-CS-76-562*KNUTH,TRABB PARDO,EARLY DEVEL OF PROG LANGUAGES
AIM-282*TAYLOR,SYNTHESIS OF MANIPULATOR CONTROL PROGRAMS(THESIS)
HPP-77-1*SCOTT ET AL,EXPLAN CPBLTIES OF PRODN-BASED SYSTEMS
Note that there should be an asterisk (and no space) between the report
number and the author name(s). The title has to be abbreviated so that
everything fits on one line, even when I substitute the word `(microfiche) '
for the asterisk. If the report is a thesis, follow the title by `(THESIS)'.
Please enter STAN- or AIM- or HPP- number of reports 1 and 2,
followed by *AUTHOR,TITLE (or <cr> if done, QUIT<cr> to abort):
AIM-280*GROSSMAN,TOLERANCING IN DISCR PARTS MFG & ASSEMBLY
What is the cost of hardcopy? (If unavailable, say anything.) $HELP
?I wanted you to type a dollars-and-cents number like 3.14<cr>----
Please try again, or just type <cr> to get out of this.
What is the cost of hardcopy? (If unavailable, say anything.) $2.40
How many copies of AIM-280(hardcopy)
are available for distribution? 182
How many copies of AIM-280(microfiche)
are available for distribution? 300
Thanks. Can I assume that the information you just gave for this report
is correct and complete? (Y or N) Y
Please enter STAN- or AIM- number of reports 3 and 4,
followed by *AUTHOR,TITLE (or <cr> if done, QUIT<cr> to abort):
STAN-CS-76-556*GUIBAS,ANALYSIS OF HASHING ALGORITHMS(THESIS)
What is the cost of hardcopy? (If unavailable, say anything.) $5.55
How many copies of STAN-CS-76-556(hardcopy)
are available for distribution? 33
How many copies of STAN-CS-76-556(microfiche)
are available for distribution? 75
Thanks. Can I assume that the information you just gave for this report
is correct and complete? (Y or N) Y
Please enter STAN- or AIM- number of reports 5 and 6,
followed by *AUTHOR,TITLE (or <cr> if done, QUIT<cr> to abort):
........
........
and so on, the dialog continues but it is too
boring to reproduce here in full..........
finally come the last reports:
Please enter STAN- or AIM- number of reports H and I, followed by *AUTHOR,TITLE
(or <cr> if done, QUIT<cr> to abort):
AIM283
What is the cost of hardcopy? (If unavailable, say anything.) $ANYTHING
?I wanted you to type a dollars-and-cents number like 3.14<cr>----
Please try again, or just type <cr> to get out of this.
What is the cost of hardcopy? (If unavailable, say anything.) $
[Here the user realized he forgot to give the author and title, so he hits
<cr> to start over on this report.]
Please enter STAN- or AIM- number of reports H and I, followed by *AUTHOR,TITLE
(or <cr> if done, QUIT<cr> to abort):
AIM-283*DAVIS,APPL OF META KNOWLEDGE TO LARGE KNOWLG BASES(THESIS)
What is the cost of hardcopy? (If unavailable, say anything.) $2.83
How many copies of AIM-283(hardcopy)
are available for distribution? 0
[By saying 0 copies are available, you guarantee that no orders for this
report will be shipped. The August abstract list actually said that
hardcopy of this report is not available; if somebody tried to order it
anyway, he gets a "sorry" message printed on his invoice.]
How many copies of AIM-283(microfiche)
are available for distribution? 300
Thanks. Can I assume that the information you just gave for this report
is correct and complete? (Y or N) Y
Please enter STAN- or AIM- or HPP- number of reports J and K,
followed by *AUTHOR,TITLE (or <cr> if done, QUIT<cr> to abort):
HPP-77-5*STEFIK,MARTIN, REVIEW OF KNWLDGE BASED PROBLEM SOLVG
What is the cost of hardcopy? (If unavailable, say anything.) $2.20
How many copies of HPP-77-5(hardcopy)
are available for distribution? 50
How many copies of HPP-77-5(microfiche)
are available for distribution? 50
Thanks. Can I assume that the information you just gave for this report
is correct and complete? (Y or N) Y
Please enter STAN- or AIM- or HPP- number of reports L and M,
followed by *AUTHOR,TITLE (or <cr> if done, QUIT<cr> to abort):
[At this point the user was finally done typing in the information about
August reports, so the response was just <cr>.]
OK, now I'm looking at the orders...
I ignored the invalid report code X which appears in the following order:
#JAPOK, 508:D48XC 9 OCT 1976
[Remember when this bad order was made on page 6? As promised, such an error
is simply ignored by MAIL.]
I have read through all the orders, and here is how things stand:
(hardcopy) To be Unfillable (microfiche) To be Unfillable
Cost On hand sent requests On hand sent requests
AIM-280*GROSSMAN,TOLERANCING IN DISCR PARTS MFG & ASSEMBLY
$ 2.40 182 0 0 300 2 0
STAN-CS-76-556*GUIBAS,ANALYSIS OF HASHING ALGORITHMS(THESIS)
$ 5.55 33 1 0 75 4 0
STAN-CS-76-557*PATERSON,INTRO TO BOOLEAN FUNCTION COMPLEXITY
$ 2.25 84 0 0 97 3 0
AIM-281*MANNA,WALDINGER,IS`SOMETIME'SOMETIMES BETTER?
$ 2.90 45 0 0 300 5 0
STAN-CS-76-559*GOLUB ET AL,RANK DEGENERACY AND LEAST SQUARES
$ 2.75 21 0 0 99 1 0
AIM-282*TAYLOR,SYNTHESIS OF MANIPULATOR CONTROL PROGRAMS(THESIS)
$ .00 0 0 0 300 3 0
STAN-CS-76-561*WOODS,MATH PROG LANGUAGE: USER'S GUIDE
$ .00 4 4 1 40 1 0
STAN-CS-76-562*KNUTH,TRABB PARDO,EARLY DEVEL OF PROG LANGUAGES
$ 3.50 180 2 0 80 2 0
AIM-283*DAVIS,APPL OF META KNOWLEDGE TO LARGE KNOWLG BASES(THESIS)
$ 2.83 0 0 0 300 2 0
HPP-77-5*STEFIK,MARTIN, REVIEW OF KNWLDGE BASED PROBLEM SOLVG
$ 2.20 50 0 0 50 1 0
Please check this carefully. If there has been some error,
type <cr> to exit; but if it's all right to go ahead and print the invoices,
type Y<cr> and I will prepare them: Y
OK, I will begin to work on the invoices.
Do you want the activity codes to be shifted? (Y or N) HELP
Each addressee has activity codes representing the number of orders
he made during the last 12 mailing periods. If you type Y<cr>, the
present mailing is considered a new mailing period. If you type
N<cr> or <cr>, the present mailing is considered to be combined with
the previous mailing period.
Do you want the activity codes to be shifted? (Y or N) N
[By saying not to shift the activity codes, the user is implying that the
present mailing is just an extension of the previous one; the previous
mailing was presumably done prematurely, and a lot of order forms came
in after the first mailing went out. After the previous mailing, file
ORDERS.AUG was deleted, and the new orders sent out today were a new batch.
Usually, of course, there will be only one mailing per abstract list,
so the answer to the above question will usually be Y.]
The invoices, bills of lading, and dunning letters have been written
onto file INVOIC.TMP. To print them, do
XS INVOIC.TMP/NOHEAD
and after successful completion of that do
DEL INVOIC.TMP.
The files ORDERS.AUG and INVOI$.TMP contain shorter records of
the orders requested and the invoices actually sent (for your permanent
records). These should also be XSpooled and then DELeted.
The mailing labels have been written onto file LABELS.TMP.
To print them, see instructions in the user manual; be sure to delete
this file afterwards.
[The instructions for printing mailing labels appear on page 12.]
CSREPORT system: What can I do for you? MAIL
Sorry, but you can't use MAIL again at this session;
you have to spool the output from this session first.
[MAIL can't be used twice in a single session, otherwise it would
clobber mailing labels and/or invoices it has written. So we can't
demonstrate here what happens when MAIL is used for abstracts rather
than reports. But that is extremely simple; when you send out an
abstract list, MAIL simply makes a mailing label for everybody
on the mailing list whose code is C or F.
Incidentally, when MAIL is used for sending reports, and if activity
codes are being shifted, there will be mailing labels made up for
everybody whose code is A, M, or N, but no invoices for those people
will be printed.]
[Example of SENDing reports]
CSREPORT system: What can I do for you? SEND
I have found 43 records about old reports in file ONHAND.DSK.
[When this sample dialog was run, the file ONHAND.DSK contained 43 entries
about early CS reports in stock, covering up to CS105 only. The SEND procedure
uses this file to check inventory, and SEND is easiest to use if ONHAND.DSK
is kept up to date; see page 16 for a description of this file, and see the
ADJUST routine for information on updating the inventory file.
SEND is used for distributing reports AFTER the initial mailing. The MAIL
routine is used once with each batch of reports; after that, they
are entered into the ONHAND.DSK file, and SEND takes care of them.
SEND also makes up labels, the same as MAIL. However, it's too much trouble to
physically mount the label forms on the printer for so few orders. So the
addresses are just spooled on paper, in the normal way, and the paper is cut
and then mounted to serve as a label.]
Type hashcode (or 99999) for person requesting old reports: #HELP
I am going to try to identify an addressee for you. Type the
five-character hash code if you know it, or type 99999 if the
addressee is not on our mailing list and not being inserted into it.
If you don't know the hash code, type XXXXX and I will try a name search
of the whole file. If you type just <cr> now, I will go on to something
else. Since hash codes sometimes change, you should doublecheck the
addressee name I find in case it is the wrong person.
Type hashcode (or 99999) for person requesting old reports: #99999
Is the name PEOPLE NOT ON MAILING LIST? (Y or N) Y
Type the name and address of customer, followed by a blank line:
A. CUSTOMER
Type hashcode (or 99999) for person requesting old reports: #99999
[Here the computer rejected A.CUSTOMER, because it was only a name without an address.]
Is the name PEOPLE NOT ON MAILING LIST? (Y or N) Y
Type the name and address of customer, followed by a blank line:
A. CUSTOMER
UNIVERSITY OF PEKING
CHINA
Should this customer get the reports free of charge? (Y or N) Y
Type short name of report requested: HELP
Give the short name of a report requested, e.g. CS287 or AIM239 or HPP772,
followed by F if it is microfiche, e.g. CS287F. But if no more
reports are requested by this customer, just type <cr>.
Type short name of report requested: AIM40F
Type short name of the next report requested: CS100
Type short name of the next report requested:
Before I make up the invoice, you'd better doublecheck the above.
We will be sending
STAN-CS-66-038(microfiche) MCCARTHY,PAINTER,CORRECTNESS OF A COMPILER
STAN-CS-68-100(hardcopy) BREDT,MODEL OF INFORM. PROC. IN CHILDREN
Is it all right to make up the invoice? (Y or N) Y
OK, I am making an invoice for this customer.
Type hashcode (or 99999) for person requesting old reports: #99999
Is the name PEOPLE NOT ON MAILING LIST? (Y or N) Y
Type the name and address of customer, followed by a blank line:
B. CUSTOMER
US DEPT OF DEFENSE
WASHINGTON DC 00000
Should this customer get the reports free of charge? (Y or N) N
Type short name of report requested: CS100
Type short name of the next report requested: AIM40F
Type short name of the next report requested: HPP771
I couldn't find that one in the file.
Enter its specs in the form STAN- or AIM-number followed by *AUTHOR,TITLE:
HPP-77-1*SCOTT ET AL,EXPLAN CPBLTIES OF PRODN-BASED SYSTEMS
Do you want to enter it into the file? (Y or N) Y
What is the price of hardcopy? $2.20
How many hard copies are on hand? 5
How many microfiche copies are on hand? 0
Does it have an alternate number? HELP
I want to know whether this report can also be referenced by a different
name. For example, most AI Memos also have a CS Report number. If this
report has such an alternate name, type it, otherwise type NO or <cr>.
[By getting all names for a report like this, we ensure that it can be
retrieved by any of its names, in the future.]
Does it have an alternate number? CS593
Type short name of the next report requested: HPP771F
Type short name of the next report requested:
Before I make up the invoice, you'd better doublecheck the above.
We will be sending
STAN-CS-66-038(microfiche) MCCARTHY,PAINTER,CORRECTNESS OF A COMPILER
HPP-77-1(hardcopy) SCOTT ET AL,EXPLAN CPBLTIES OF PRODN-BASED SYSTEMS $ 2.20
We will say that we are unable to send
STAN-CS-68-100(hardcopy) BREDT,MODEL OF INFORM. PROC. IN CHILDREN
HPP-77-1(microfiche) SCOTT ET AL,EXPLAN CPBLTIES OF PRODN-BASED SYSTEMS
Is it all right to make up the invoice? (Y or N) Y
OK, I am making an invoice for this customer.
[Note that there was only one copy of CS100 left, according to the records in file
ONHAND.DSK, so A.CUSTOMER got it and B.CUSTOMER got a `sorry' message. The file
ONHAND.DSK didn't include any information about HPP771 at this time, so the information
specified was recorded and will be appended to the file for the next time SEND is used.]
Type hashcode (or 99999) for person requesting old reports: #CZENZ
Is the name ZDENEK ZDRAHAL? (Y or N) Y
Type short name of report requested: HPP771
Type short name of the next report requested:
Before I make up the invoice, you'd better doublecheck the above.
We will be sending
HPP-77-1(hardcopy) SCOTT ET AL,EXPLAN CPBLTIES OF PRODN-BASED SYSTEMS
Is it all right to make up the invoice? (Y or N) Y
OK, I am making an invoice for this customer.
[Since this customer is on our mailing list with `free' (F) status,
the price $2.20 does not show here as it did with B.CUSTOMER.]
Type hashcode (or 99999) for person requesting old reports: #XXXXX
Sorry, that hashcode isn't in the file. What is the name? MITCHELL
Here are all the entries matching that name:
#SCOFM: PROF. A.R. MITCHELL
#943AI: DR. JAMES MITCHELL
Type hashcode (or 99999) for person requesting old reports: #SCOFM
Is the name PROF. A.R. MITCHELL? (Y or N) Y
Type short name of report requested: CS122
I couldn't find that one in the file.
Enter its specs in the form STAN- or AIM- or HPP-number followed by *AUTHOR,TITLE:
STAN-CS-69-122*MITCHELL,MCCRAITH,VARIANTS OF GRAM-SCHMIDT
Do you want to enter it into the file? (Y or N) N
Do you have a copy on hand? (Y or N) N
Type short name of the next report requested:
Before I make up the invoice, you'd better doublecheck the above.
We will say that we are unable to send
STAN-CS-69-122(hardcopy) MITCHELL,MCCRAITH,VARIANTS OF GRAM-SCHMIDT
Is it all right to make up the invoice? (Y or N) Y
OK, I am making an invoice for this customer.
Type hashcode (or 99999) for person requesting old reports: #943AI
Is the name DR. JAMES MITCHELL? (Y or N) Y
Type short name of report requested: CS123
I couldn't find that one in the file.
Enter its specs in the form STAN- or AIM- or HPP-number followed by *AUTHOR,TITLE:
STAN-CS-69-123*BRENT,DISTR OF SMALL PRIME GAPS
Do you want to enter it into the file? (Y or N) N
Do you have a copy on hand? (Y or N) Y
What does a copy cost? $2.25
Type short name of the next report requested:
Before I make up the invoice, you'd better doublecheck the above.
We will be sending
STAN-CS-69-123(hardcopy) BRENT,DISTR OF SMALL PRIME GAPS $ 2.25
Is it all right to make up the invoice? (Y or N) Y
OK, I am making an invoice for this customer.
Type hashcode (or 99999) for person requesting old reports: #AFRDB
Is the name D. BROWN? (Y or N) Y
Type short name of report requested: CS74*5
[This is the way to request multiple copies of a particular report.]
We are sending 5 copies of CS74.
Do you wish to change the price per copy? (Y or N) N
Do you wish to add a handling charge? (Y or N) Y
What is the handling charge? $1.50
[When we send large quantities of material, the price is sometimes changed.
In this case, the user added on a handling charge.]
Type short name of the next report requested: CS102F*10
I couldn't find that one in the file.
Enter its specs in the form STAN- or AIM- or HPP-number followed by *AUTHOR,TITLE:
STAN-CS-68-102*PNEULI,INTEGER PROGRAMMING OVER A CONE
Do you want to enter it into the file? (Y or N) Y
What is the price of hardcopy? $2.60
How many hard copies are on hand? 5
How many microfiche copies are on hand? 0
[It turns out that we don't have any microfiche copies of the report
requested, so the customer will get the regular `sorry' message.]
Does it have an alternate number? N
Type short name of the next report requested:
Before I make up the invoice, you'd better doublecheck the above.
We will be sending
STAN-CS-67-074(hardcopy) FORSYTHE,WHAT IS SATISFACTORY QUAD-EQ SOLVER?
(5 copies) @ $ 2.00: $ 10.00
Handling $ 1.50
We will say that we are unable to send
STAN-CS-68-102(microfiche) PNUELI,INTEGER PROGRAMMING OVER A CONE
(10 copies)
Is it all right to make up the invoice? (Y or N) Y
OK, I am making an invoice for this customer.
Type hashcode (or 99999) for person requesting old reports: #BELNA
Is the name A.K. WATSON INTERNATIONAL ED. CTR.? (Y or N) Y
Type short name of report requested: CS84*8
The customer has requested 8 copies of this report, but we have only 6
copies on hand.
Should I send the ones we have? (Y or N) HELP
If you type Y, I will send all the copies of this report which we
have on hand, with a note mentioning that we don't have the rest. If you type N
I won't fill any of the order (i.e., as if we were completely out of it),
and I'll send a sorry letter saying so.
Should I send the ones we have? (Y or N) Y
We are sending 6 copies of CS84.
Do you wish to change the price per copy? (Y or N) Y
List price is $ 2.65.
What is the actual price to be charged? $2.10
Do you wish to add a handling charge? (Y or N) N
[We can't completely fill the order, but the user decides to send as much as
we have. This time, the price is adjusted downward, as a volume discount.]
Type short name of the next report requested:
Before I make up the invoice, you'd better doublecheck the above.
We will be sending
STAN-CS-68-084(hardcopy) FRIEDMAN,SYSTEM FOR TRANSFORMATIONAL GRAMMAR
(6 copies) @ $ 2.10: $12.60
We will say that we are unable to send
STAN-CS-68-084(hardcopy) FRIEDMAN,SYSTEM FOR TRANSFORMATIONAL GRAMMAR
(2 copies)
Is it all right to make up the invoice? (Y or N) Y
OK, I am making an invoice for this customer.
Type hashcode (or 99999) for person requesting old reports: #
I wrote the invoices onto file BILLS.TMP.
To print them, do
XS BILLS.TMP/NOHEAD
and after successful completion don't forget to DEL BILLS.TMP.
The file BILLS$.TMP contains a list of the invoices sent (for your
permanent record). You should XSpool it and then DELete it.
The mailing `labels' have been written onto the file SNDLAB.TMP.
You should spool them in the normal way. The paper can then be cut and pasted
onto the envelopes.
CSREPORT system: What can I do for you? SEND
Sorry, but you can't use SEND again at this session;
you have to spool the output from this session first.
CSREPORT system: What can I do for you? UPDATE
UPDATE: INS, DEL, MOD, or LOOK? LOOK
Type hashcode of entry to be displayed: #943AI
Is the name DR. JAMES MITCHELL? (Y or N) Y
LINE 1: DR. JAMES MITCHELL
LINE 2: XEROX
LINE 3: 3333 COYOTE HILL RD.
LINE 4: PALO ALTO, CALIFORNIA 94304
hashcode=#943AI, category=C, serial=1307,
ordering history=NNNNNNNNNNN2, current balance=$ 2.25
[Mitchell had earlier ordered one report from the August list, but his
balance had been zero. Now his balance is $2.25, reflecting this new
order for CS123, and his last activity code has changed from 1 to 2.
The SEND routine writes bills that are essentially the same as invoices
written by MAIL; it also prepare mailing labels, in a similar way.
Time to move onto the next subsystem; first we get out of UPDATE:]
UPDATE: INS, DEL, MOD, or LOOK?
[Finally, the last subsystem: ADJUST]
CSREPORT system: What can I do for you? ADJUST
I have found 45 records about old reports in file ONHAND.DSK.
[During the SEND session just completed, we added two new entries to the
ONHAND.DSK file, bringing the total to 45. The purpose of the ADJUST routine
is to ensure that the file is kept up to date -- i.e., so that it reflects
our actual inventory.]
Type short name of report to be adjusted: HELP
The ADJUST routine should be used to make all changes to the
inventory file, since editing with E is risky. To change the quantity
for a report, just enter its short name, e.g. CS287 or AIM 239F
or HPP772. You will be prompted for the new total of copies on hand.
If no more reports are to be updated, just type <cr>.
Type short name of report to be adjusted: CS31
STAN-CS-65-031*RAVIART,WEAK SOLS LINEAR PARABOLIC EQNS
Number of hard copies on record = 3.
Enter new quantity of hard copies: 2
[The system thought that we had three copies on hand. However, one of these
has evidentally been given out, without going through the SEND program. The
user enters the new total, and everything's fine.]
Type short name of the next report to be adjusted: AIM40F
STAN-CS-66-038*MCCARTHY,PAINTER,CORRECTNESS OF A COMPILER
Number of microfiche copies on record = 298.
Enter new quantity of microfiche copies: 295
Type short name of the next report to be adjusted: HPP772
I couldn't find that one in the file.
Do you want to enter it into the file? (Y or N) Y
Enter its specs in the form STAN- or AIM- or HPP- number
followed by *AUTHOR,TITLE:
HPP-77-6*BUCHANAN,MITCHELL,MODEL-DIR LEARNING OF PRODN RULES
What is the price of the hardcopy? $9.22
How many hard copies are on hand? 2
How many microfiche copies are on hand? 0
Does it have an alternate number? N
[Here, the user is entering a report for the first time. It will be added to
the end of the ONHAND.DSK file, and will be available to future calls to SEND.]
Type short name of the next report to be adjusted:
[Having made sure that all our totals are correct, we exit. We're coming
to the end of the session now.]
[Finishing a session.]
CSREPORT system: What can I do for you?
May I record all of today's transactions permanently on ADDFIL.DSK? (Y or N) Y
[The user typed just <cr>, indicating that this session is terminated. Then
the computer asked if the transactions from today should be recorded permanently.
So far, all the insertions, deletions, modifications, and changes to account
balances have been made only in the computer's mind, not on the file ADDFIL.DSK
which is the main record; so if a bad blunder has occurred, you can simply
answer N to this question, and the next session with CSREPT will go back
to the previous setting of ADDFIL.DSK. This is your last chance to keep
serious errors out of the permanent file.
Note that even if you do make changes to the permanent file, you can always
`undo' the most recent session -- the file ADDFIL.BKP contains the address file
as it was before the start of the last session.
Incidentally, if you haven't actually changed any file entries (e.g., if you
simply recorded ORDERS or made mailing labels for an abstract list), you
don't get this message, since it is unnecessary to re-record ADDFIL.DSK when
it hasn't changed.]
[Usually your answer to the above question will be Y, and then the machine will
take a little while to spew out the file. Finally it will give you some
statistics, like this:]
The address file now contains a total of 1411 entries,
including the following special categories:
F = 198 A = 31 N = 25 M = 12
and the total balance outstanding is $ 1067.10.
[Furthermore if any money has been involved in the session, you get a
financial summary, to wit:]
SUMMARY of today's financial transactions:
$ 15.75 received in payments,
$ 12.25 of which was from residents of California.
$ .00 was subtracted from accounts due to adjustments or
deletions from the mailing list.
$ 41.00 new charges were sent out on invoices.
See you later. Be sure to xspool a copy of DIALOG.TMP,
which records what happened today.
[It is very important to make a copy of the file DIALOG.TMP, which shows
exactly what transpired; what you have been reading is simply an edited
version of the file DIALOG.TMP after a session which took place on
October 9, 1976. Thus, the first thing to do after you get the above message
is `XSPOOL DIALOG.TMP'. (Exception: If no changes were made to ADDFIL.DSK,
and the session was essentially one big mistake, you can throw everything
away and forget that session. But that will hardly ever happen.)
After that you can xspool INVOIC.TMP and/or BILLS.TMP and/or
print mailing labels from LABELS.TMP. Also, the files INVOI$.TMP and BILLS$.TMP
should be XSPooled and deleted, to show what was actually sent.
You might also like to make yourself a copy of ADDFIL.DSK and ONHAND.DSK
and perhaps ORDERS.XXX for some month XXX; it is suggested that you use SPOOL
not XSPOOL for these files.
Finally, before logging off, type `DIR' to the monitor, and it will
show you all the files currently present. You should delete all files
with the suffix TMP after they have been spooled or xspooled, and
you should also delete the ORDERS.XXX file as soon as it has been used
to make invoices for mailing reports. A fast way to delete all files
with suffix TMP is to say `DEL *.TMP<cr>' to the monitor.]
How to print the mailing labels produced in the MAIL subprogram
First type this at the monitor:
ASSIGN LPT<cr>
Then run over to the printer, as soon as it has been assigned to you,
and hit the STOP button. Change the paper, putting the right mailing
labels in (AVERY or CHESHIRE, as you had specified) and lining them
up right, then hit START button.
Then run back to your terminal and type
COPY LPT:←LABELS.TMP/EXTRA=0<cr>
Wait for the labels to be printed. When the printing is done, change
the paper back again, then run back to your terminal and type
DEASSIGN LPT<cr>
so that other people can begin to use the printer again.
Once the labels have been successfully printed, do
DEL LABELS.TMP<cr>
Congratulations, you have successfully gotten the labels printed
(and picked up a bit of exercise too).
Note that the labels generated by the SEND subprogram need only be spooled.
Files used by the system (general information)
The REPORT system deals with the following permanent files:
ADDFIL.DSK The mailing list and account balances
ADDFIL.BKP Backup version of the mailing list -- always one step behind ADDFIL.DSK
ONHAND.DSK List of past reports and how many are on hand
FORM.DAT Canned text used to print invoices
There are also twelve files called ORDERS.JAN, ORDERS.FEB, ..., ORDERS.DEC
which exist when orders for a given month's abstract list have been
recorded but not yet sent.
Then there are temporary files, which should be deleted as soon as they
have been properly spooled:
INVOIC.TMP Invoices, bills of lading, dunning letters
BILLS.TMP Invoices and bills of lading for isolated orders
LABELS.TMP Mailing labels
DIALOG.TMP Transcript of a session
INVOI$.TMP Same info as INVOIC.TMP and BILLS.TMP,
BILLS$.TMP but in a compressed form
The file FORM.DAT is never written on by the computer program; you can
edit it if you wish to change the wording of the invoices. Its format
is self-explanatory; the asterisks it contains must remain in the
same relative positions, as they divide the canned text into twenty
pieces that are used in various appropriate combinations.
The other files are periodically written out by the program. When newly
written, they are not in the format used by the system editor. But you
may edit them; after you type ET <filename> you will be asked if it's
OK to reformat the file, and the answer is Y.
However, you edit ADDFIL.DSK at your peril; it is much better to
use the system UPDATE function to do all updates to that file.
The system checks for a lot of possible mistakes, and (most important)
keeps a record of exactly what happened, in DIALOG.TMP.
Even though you will therefore probably not be editing ADDFIL.DSK
you will probably want to understand its format, since it is helpful
to spool it every so often; page 14 describes its format.
Similarly, all changes to the ONHAND.DSK file should be made through the
ADJUST subprogram; this is used to ensure that the totals in the file
reflect current inventory.
There is always a backup version of ADDFIL.DSK in the file ADDFIL.BKP.
So, if the program screws up for some reason, it's always possible to
get back to the state that you started in. (You should check with the
wizard, currently Jim Davidson, if anything ever goes wrong.)
You may want to edit an ORDERS.XXX file to correct erroneous orders
typed in to the ORDERS subsystem of REPORT. See page 15 for that format.
It is unlikely that you will be editing any of the TMP files; they
are just for spooling. But pages 17, 18, etc. show what the TMP files
looked like after the sample dialog we have been studying, so that you
can get a better idea of what they contain.
The INVOI$.TMP and BILLS$.TMP files contain the same information as the
other versions, except that is is `compressed' (i.e., extraneous text
removed). These provide you with a permanent record of the actual
reports and invoices sent. Like the others, they should be XSPooled
and then DELeted.
Two other files are present: REPORT.DMP and CSREPT.SAI. Please keep
your hands off of them unless you are an experienced programmer;
they are the computer programs.
ADDFIL.DSK
The master address file contains twenty addresses per page, in increasing
order by hash code.
An address entry consists of a mysterious header line followed by two to
five lines of address in straightforward format. The header line has the
following form:
*czzzzz|aaaaaaaaaaaa#hhhhh ssss$bbb.bb
where c is the category code (C, F, N, M, A)
zzzzz is the zip code or country or IDMAI or ONRXX or DARPA or AUTOM
aa...a is the list of 12 activity codes (leftmost is oldest)
hhhhh is the hash code, its first three characters agree with zzzzz
ssss is the serial number, unique for each user
bbb.bb is the balance due, preceded by a minus sign if a credit balance
The file is not in order by serial number, since insertions and deletions
may change zip codes but not serial numbers. The fields stated above all
have a fixed size, except that the bbb.bb field is variable length, as
many digits to the left of the decimal point as necessary.
For example, here is how ADDFIL.DSK looked after the sample dialog terminated:
*CAFRIC|NNNNNNNNNNN4#AFRDB 1$ 22.45
D. BROWN
UNIVERSITY OF WITWATERSRAND
1 JAN SMUTS AVENUE
JOHANNESBURG 2001
SOUTH AFRICA
*CAFRIC|NNNNNNNNNNN0#AFRFL 2$ .00
PROF. G.L. MURRAY
DEPT. OF COMPUTER SCIENCE
UNIVERSITY OF STELLENBOSCH
STELLENBOSCH, SOUTH AFRICA
.... [From here on, we show only important addressees that were named:]
*CBELGI|NNNNNNNN2040#BELNA 1138$ 17.05
A.K. WATSON INTERNATIONAL ED. CTR.
LIBRARY (NICOLE NEYENS)
135 CH. DE BRUXELLES
B-1310 LA HULPE, BELGIUM
*CCANAD|NNNNNNNNNNN5#CANRF 152$ 18.70
DR. F. FIALA
DEPT. OF MATHEMATICS
CARLETON UNIVERSITY
OTTAWA, CANADA K1S 5B6
....
*CCANAD|NNNNNNNNNNN2#CANRO 156$ .00
DR. R. S. ROSENBERG
DEPT. OF COMPUTER SCIENCE
UNIVERSITY OF BRITISH COLUMBIA
VANCOUVER 8, B. C., CANADA
....
*FIDMAI|NNNNNNNNNNN0#IDMFK 1411$ .00
PROF. A. C. YAO
POLYA
....
*FIDMAI|NNNNNNNNNNN0#IDMFS 1412$ .00
PROF. F. FRANCES YAO
POLYA
....
*FSWITZ|NNNNNNNNNNN2#SWINE 421$ .00
JOHN G. HERRIOT
GEERENSTRASSE 23
CH-8044 GOCKHAUSEN
SWITZERLAND
....
*C02167|NNNNNNNNNNN1#021FG 693$ 3.50
PROF. PETER KUGEL
COMPUTER SCIENCE PROGRAM
BOSTON COLLEGE
CHESTNUT HI11, MASSACHUSETTS
....
*C48202|NNNNNNNNNNN4#482II 967$ .00
PROF. WILLIAM I. GROSKY
MATHEMATICS DEPARTMENT
COMPUTER SCIENCE SECTION
WAYNE STATE UNIVERSITY
DETROIT,MICHIGAN
....
*C94304|NNNNNNNNNNN2#943AI 1307$ 2.25
DR. JAMES MITCHELL
XEROX
3333 COYOTE HILL RD.
PALO ALTO, CALIFORNIA
....
*C94301|NNNNNNNNNNN0#943FW 616$ .00
PROF. N. WIRTH
1302 CHANNING AVE.
PALO ALTO CA
....
*C94305|NNNNNNNNNNN0#99999 1409$-10.05
PEOPLE NOT ON MAILING LIST
C/O VICKI L. FAHRENHOLZ
COMPUTER SCIENCE DEPT.
STANFORD UNIVERSITY
STANFORD CA
[End of the file.]
ORDERS.JAN, ORDERS.FEB, etc.
The files ORDERS.XXX consist of one of more lines in the form
#hhhhh,bbbssss:lllll<tab>date
where
hhhhh is the hash code
bbb is three blank spaces
ssss is the serial number(with leading zeroes blank)
lllll is a variable-length list of order codes 1,2,...,9,A,B,etc.
date is the date the order was recorded
For example, after the sample dialog the file ORDERS.AUG looked like this:
#021FG, 693:F 9 OCT 1976
#019SE, 683:D2468ACEGIK 9 OCT 1976
#209UE, 922:248G 9 OCT 1976
#934HO, 1275:3DF68CI 9 OCT 1976
#IREFR, 445:D 9 OCT 1976
#JAPOK, 508:D48CX 9 OCT 1976
#303WM, 967:D468 9 OCT 1976
ONHAND.DSK
Each line in the file ONHAND.DSK must have the form
*a|b*c|d|e|$f<cr> or *a|SAME
where a,b,c,d,e,f are variable-length items with the following meanings:
a is the short name of a report
b is the STAN or AIM or HPP number
c is the author(s) and title
d is the number of hardcopies on hand
e is the number of microfiche copies on hand
f is the price
*a|SAME means that the short name a refers to the same report as the previous line.
For example, after the sample dialog with SEND and ADJ above, ONHAND.DSK became this:
*CS4|STAN-CS-64-004*BERGMAN,HERRIOT,NUMER SOLN BDRY VALUE BY INT OPERS|2|0|$ 2.40
*CS5|STAN-CS-64-005*ROSEN,EQUIL PTS FOR CONCAVE N-PERSON GAMES|2|0|$ 2.55
*CS7|STAN-CS-64-007*ROSEN,SUFF.COND.OPT.CONTROL CONVEX PROC.|1|0|$ 2.60
*CS11|STAN-CS-64-011*NAKAMURA,ROSEN,ELASTIC-PLASTIC ANAL OF TRUSSES|2|0|$ 2.65
*CS13|STAN-CS-64-013*PEREYRA,ROSEN,COMPUT.OF PSEUDOINVERSE|1|0|$ 2.55
*CS14|STAN-CS-64-014*EFIMENKO,EIGENVALUES AND EIGENFUNCTIONS IN PDE|2|0|$ 2.30
*CS15|STAN-CS-65-015*GRACE,NON-ISOMORPHIC CONVEX POLYHEDRA|1|0|$ 5.80
*CS17|STAN-CS-65-017*FORSYTHE,WIRTH,AUTOMATIC GRADING PROGRAMS|1|0|$ 2.20
*CS19|STAN-CS-65-019*AGEEV,MACLAREN,RUSSIAN ALGOL IN ENGLISH|1|0|$ 1.90
*CS23|STAN-CS-65-023*RUDIN,CONVEX POLYNOMIAL APPROXIMATION|3|0|$ 3.00
*CS25|STAN-CS-65-025*HODGE,YIELD-PT LOAD BY NONLINEAR PROGRAMMING|3|0|$ 2.40
*CS27|STAN-CS-65-027*VOLKOV,METHOD OF NETS FOR POISSON EQUATION|1|0|$ 2.60
*CS28|STAN-CS-65-028*MILLER,STRANG,MATRIX THMS FOR PDE'S|1|0|$ 2.70
*CS31|STAN-CS-65-031*RAVIART,WEAK SOLS LINEAR PARABOLIC EQNS|2|0|$ 3.35
*CS32|STAN-CS-65-032*HOCKNEY,MINIMUM MULTIPLICATION FOURIER ANAL|1|0|$ 3.30
*CS37|STAN-CS-66-037*REYNOLDS,COGENT 1.2 OPERATIONS MANUAL|5|0|$ 2.70
*CS38|STAN-CS-66-038*MCCARTHY,PAINTER,CORRECTNESS OF A COMPILER|0|295|$ 2.10
*AIM40|SAME
*CS42|STAN-CS-66-042*KAHAN,WHEN NEGLECT OFF-DIAG ELTS SYMM TRI-DIAG MTX|3|0|$ 2.00
*CS49|STAN-CS-66-049*REDDY,COMPUTER SPEECH RECOGNITION|0|300|$ 6.00
*AIM43|SAME
*CS50|STAN-CS-66-050*PERSSON,SEQUENCE EXTRAPOLATING PROGRAMS|0|300|$ 7.00
*AIM46|SAME
*CS51|STAN-CS-66-051*BERGMAN,HERRIOT,KURTZ,TRANSONIC FLOW PATTERNS|5|0|$ 2.75
*CS55|STAN-CS-67-055*ADAMS,STOPPING CRITERION FOR POLYN.ROOT-FINDING|4|0|$ 2.05
*CS56|STAN-CS-67-056*BAUER,QD-METHOD WITH NEWTON SHIFT|3|0|$ 1.90
*CS62|STAN-CS-67-062*TIENARI,VARYING LENGTH FLOATING-PT ARITH|1|0|$ 2.85
*CS64|STAN-CS-67-064*RICHMAN,FLOATING-PT NUMBER REPRESENTATIONS|2|0|$ 2.65
*CS71|STAN-CS-67-071*JENKINS,TRAUB,AUTOMATIC POLYNOMIAL SOLVER|3|0|$ 2.85
*CS72|STAN-CS-67-072*GOLUB,SMITH,CHEBYSHEV APPROX BY CHEBYSHEV SYSTS|3|0|$ 3.30
*CS74|STAN-CS-67-074*FORSYTHE,WHAT IS SATISFACTORY QUAD-EQ SOLVER?|5|0|$ 2.00
*CS76|STAN-CS-67-076*ANSELONE,COLLECTIVELY COMPACT OPERATOR APPROX.|2|0|$ 3.50
*CS81|STAN-CS-67-081*GOLUB,WELSCH,GAUSS QUADRATURE RULES|5|0|$ 2.55
*CS82|STAN-CS-67-082*TESLER,ENEA,COLBY,DIGRAPH REPR BELIEF SYSTEMS|1|0|$ 2.65
*CS84|STAN-CS-68-084*FRIEDMAN,SYSTEM FOR TRANSFORMATIONAL GRAMMAR|0|0|$ 2.65
*CS94|STAN-CS-68-094*SHAW,FORMAL DESCR & PARSING OF PICTURES|1|0|$ 7.85
*SLACR84|SAME
*CS96|STAN-CS-68-096*SMITH,INTERVAL ARITH DET EVAL AND TESTING CHEB SYST|3|0|$ 2.50
*CS100|STAN-CS-68-100*BREDT,MODEL OF INFORM. PROC. IN CHILDREN|0|0|$ 3.50
*CS101|STAN-CS-68-101*KAPLAN,FORMAL STRONG EQUIV FOR ELEMENTAL PGMS|0|300|$ 9.60
*CS105|STAN-CS-68-105*RICHMAN, EPSILON CALCULUS|2|0|$ 5.85
*CS106|STAN-CS-68-106*HUBERMAN,PROGRAM TO PLAY CHESS END GAMES-THESIS|0|0|$ 9.60
*AIM65|SAME
*HPP771|HPP-77-1*SCOTT ET AL,EXPLAN CPBLTIES OF PRODN-BASED SYSTEMS|3|0|$ 2.20
*CS102|STAN-CS-68-102*PNUELI,INTEGER PROGRAMMING OVER A CONE|5|0|$ 2.60
*HPP776|HPP-77-6*BUCHANAN,MITCHELL,MODEL-DIR LEARNING OF PRODN RULES|2|0|$ 9.22
Note that the number of hardcopies for CS100 and CS84 has dropped to 0,
and HPP771, CS102, and HPP776 have been added.
Here is what appeared on LABELS.TMP after the sample dialog:
PROF. C.A.R. HOARE #IREFR
COMPUTER SCIENCE DEPT.
QUEEN'S UNIVERSITY
BELFAST BT7
NORTHERN IRELAND
HIROYA KAWAI #JAPOK
DATA COMPUTATION CENTER
OSAKA UNIVERSITY
SUITA CITY
OSAKA, JAPAN
CHARLES A. STEELE, JR. #019SE
NORMAN AVE.
MAGNOLIA, MASSACHUSETTS 01930
PROF. PETER KUGEL #021FG
COMPUTER SCIENCE PROGRAM
BOSTON COLLEGE
CHESTNUT HI11, MASSACHUSETTS 02167
NAVAL SURFACE WEAPONS CTR. #209UE
COMPUTER APPLICATIONS BRANCH
CODE WA-53, RM. 3-252
WHITE OAK LABORATORY
SILVER SPRING, MARYLAND 20910
PROF. WILLIAM I. GROSKY #482II
MATHEMATICS DEPARTMENT
COMPUTER SCIENCE SECTION
WAYNE STATE UNIVERSITY
DETROIT,MICHIGAN 48202
R. H. DOURSON #934HO
COMPUTER SCIENCE & STAT. DEPT.
CALIFORNIA STATE POLYTECHNIC
STATE UNIVERSITY
SAN LUIS OBISPO, CALIFORNIA 93407
The file SNDLAB.TMP is similar:
A. CUSTOMER
UNIVERSITY OF PEKING
CHINA
B. CUSTOMER
US DEPT OF DEFENSE
WASHINGTON DC 00000
.....
And here are the first invoices written onto INVOIC.TMP:
SUBJECT: REPORT ORDER 9 OCT 1976
TO: PROF. C.A.R. HOARE
FROM: LIBRARY AND PUBLICATIONS COMMITTEE
COMPUTER SCIENCE DEPARTMENT
STANFORD UNIVERSITY
STANFORD, CA 94305 USA
The following reports that you have ordered are enclosed with this packing slip:
STAN-CS-76-561(hardcopy) WOODS,MATH PROG LANGUAGE: USER'S GUIDE
PROF. C.A.R. HOARE #IREFR
COMPUTER SCIENCE DEPT.
QUEEN'S UNIVERSITY
BELFAST BT7
NORTHERN IRELAND
≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡ new page ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
SUBJECT: REPORT ORDER 9 OCT 1976
TO: HIROYA KAWAI
FROM: LIBRARY AND PUBLICATIONS COMMITTEE
COMPUTER SCIENCE DEPARTMENT
STANFORD UNIVERSITY
STANFORD, CA 94305 USA
The following reports that you have ordered are enclosed with this packing slip:
STAN-CS-76-556(microfiche) GUIBAS,ANALYSIS OF HASHING ALGORITHMS(THESIS)
AIM-281(microfiche) MANNA,WALDINGER,IS`SOMETIME'SOMETIMES BETTER?
AIM-282(microfiche) TAYLOR,SYNTHESIS OF MANIPULATOR CONTROL PROGRAMS(THESIS)
STAN-CS-76-561(hardcopy) WOODS,MATH PROG LANGUAGE: USER'S GUIDE
HIROYA KAWAI #JAPOK
DATA COMPUTATION CENTER
OSAKA UNIVERSITY
SUITA CITY
OSAKA, JAPAN
≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡ new page ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
SUBJECT: REPORT ORDER 9 OCT 1976
TO: CHARLES A. STEELE, JR.
FROM: LIBRARY AND PUBLICATIONS COMMITTEE
COMPUTER SCIENCE DEPARTMENT
STANFORD UNIVERSITY
STANFORD, CA 94305 USA
The following reports that you have ordered are enclosed with this packing slip:
AIM-280(microfiche) GROSSMAN,TOLERANCING IN DICR PARTS MFG & ASSEMBLY
STAN-CS-76-556(microfiche) GUIBAS,ANALYSIS OF HASHING ALGORITHMS(THESIS)
STAN-CS-76-557(microfiche) PATERSON,INTRO TO BOOLEAN FUNCTION COMPLEXITY
AIM-281(microfiche) MANNA,WALDINGER,IS`SOMETIME'SOMETIMES BETTER?
STAN-CS-76-559(microfiche) GOLUB ET AL,RANK DEGENERACY AND LEAST SQUARES
AIM-282(microfiche) TAYLOR,SYNTHESIS OF MANIPULATOR CONTROL PROGRAMS(THESIS)
STAN-CS-76-561(hardcopy) WOODS,MATH PROG LANGUAGE: USER'S GUIDE
STAN-CS-76-561(microfiche) WOODS,MATH PROG LANGUAGE: USER'S GUIDE
STAN-CS-76-562(microfiche) KNUTH,TRABB PARDO,EARLY DEVEL OF PROG LANGUAGES
AIM-283(microfiche) DAVIS,APPL OF META KNOWLEDGE TO LARGE KNOWLG BASES(THESIS)
HPP-77-5(microfiche) STEFIK,MARTIN, REVIEW OF KNWLDGE BASED PROBLEM SOLVG
CHARLES A. STEELE, JR. #019SE
NORMAN AVE.
MAGNOLIA, MASSACHUSETTS 01930
≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡ new page ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
SUBJECT: REPORT ORDER 9 OCT 1976
TO: PROF. PETER KUGEL
FROM: LIBRARY AND PUBLICATIONS COMMITTEE
COMPUTER SCIENCE DEPARTMENT
STANFORD UNIVERSITY
STANFORD, CA 94305 USA
The following reports that you have ordered are enclosed with this invoice:
STAN-CS-76-562(hardcopy) KNUTH,TRABB PARDO,EARLY DEVEL OF PROG LANGUAGES $ 3.50
The cost of these reports is $ 3.50. Please make your check payable to
`CSD Stanford University' and return it with the invoice at the bottom of
this memo.
The Computer Science Department of Stanford University will not exchange or
issue credit for returned publications, and is not responsible for damages
incurred in shipment of publications.
------------------------------- INVOICE -------------------------------------------
DATE: 9 OCT 1976
AMOUNT DUE $ 3.50
PAYMENT ENCLOSED $________
REFERENCE CUSTOMER #: 021FG
PAYMENT FOR ACCOUNT OF
PROF. PETER KUGEL #021FG
COMPUTER SCIENCE PROGRAM
BOSTON COLLEGE
CHESTNUT HI11, MASSACHUSETTS 02167
PLEASE MAKE CHECK PAYABLE TO CSD STANFORD UNIVERSITY.
(Note: Overpayments are welcome. They will be credited to your account and
deducted from the cost of future reports you order.)
FORWARD PAYMENT AND INVOICE TO VICKI L. FAHRENHOLZ
COMPUTER SCIENCE DEPT.
STANFORD UNIVERSITY
STANFORD CA 94305 USA
⊗ → → → IT IS IMPORTANT THAT THIS INVOICE BE RETURNED WITH YOUR PAYMENT ← ← ← ⊗
This is the record which was saved in INVOI$.TMP from the same run.
9 OCT 1976
PROF. C.A.R. HOARE #IREFR
The following reports that you have ordered are enclosed with this invoice:
STAN-CS-76-561(hardcopy)
balance= 6.10
≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
9 OCT 1976
HIROYA KAWAI #JAPOK
The following reports that you have ordered are enclosed with this invoice:
STAN-CS-76-556(microfiche)
AIM-281(microfiche)
AIM-282(microfiche)
STAN-CS-76-561(hardcopy)
balance= .00
≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
9 OCT 1976
CHARLES A. STEELE, JR. #019SE
The following reports that you have ordered are enclosed with this invoice:
AIM-280(microfiche)
STAN-CS-76-556(microfiche)
STAN-CS-76-557(microfiche)
AIM-281(microfiche)
STAN-CS-76-559(microfiche)
AIM-282(microfiche)
STAN-CS-76-561(hardcopy)
STAN-CS-76-561(microfiche)
STAN-CS-76-562(microfiche)
AIM-283(microfiche)
HPP-77-5(microfiche)
balance= .00
≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
9 OCT 1976
PROF. PETER KUGEL #021FG
The following reports that you have ordered are enclosed with this invoice:
STAN-CS-76-562(hardcopy)
balance= 3.50
≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
File BILLS.TMP after that dialog contains similar but more varied invoices:
SUBJECT: REPORT ORDER 9 OCT 1976
TO: A. CUSTOMER
FROM: LIBRARY AND PUBLICATIONS COMMITTEE
COMPUTER SCIENCE DEPARTMENT
STANFORD UNIVERSITY
STANFORD, CA 94305 USA
The following reports that you have ordered are enclosed with this invoice:
STAN-CS-66-038(microfiche) MCCARTHY,PAINTER,CORRECTNESS OF A COMPILER
STAN-CS-68-100(hardcopy) BREDT,MODEL OF INFORM. PROC. IN CHILDREN
A. CUSTOMER
UNIVERSITY OF PEKING
CHINA
SUBJECT: REPORT ORDER 9 OCT 1976
≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡ new page ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
SUBJECT: REPORT ORDER 9 OCT 1976
TO: B. CUSTOMER
FROM: LIBRARY AND PUBLICATIONS COMMITTEE
COMPUTER SCIENCE DEPARTMENT
STANFORD UNIVERSITY
STANFORD, CA 94305 USA
We are sorry that the following reports you have ordered are out of stock:
STAN-CS-68-100(hardcopy) BREDT,MODEL OF INFORM. PROC. IN CHILDREN
HPP-77-1(microfiche) SCOTT ET AL,EXPLAN CPBLTIES OF PRODN-BASED SYSTEMS
Stanford Ph.D. theses may be obtained from University Microfilms,
300 North Zeeb Road, Ann Arbor MI 48106; and other reports of our department
are usually obtainable from the National Technical Information Service,
5285 Port Royal Road, Springfield VA 22151. It generally takes a few
months after publication before the reports are available from these sources.
The following reports that you have ordered are enclosed with this invoice:
STAN-CS-66-038(microfiche) MCCARTHY,PAINTER,CORRECTNESS OF A COMPILER
HPP-77-1(hardcopy) SCOTT ET AL,EXPLAN CPBLTIES OF PRODN-BASED SYSTEMS
The cost of these reports is $ 2.20. Please make your check payable to
`CSD Stanford University' and return it with the invoice at the bottom of
this memo.
The Computer Science Department of Stanford University will not exchange or
issue credit for returned publications, and is not responsible for damages
incurred in shipment of publications.
------------------------------- INVOICE -------------------------------------------
AMOUNT DUE $ 2.20
PAYMENT ENCLOSED $________
PAYMENT FOR ACCOUNT OF
B. CUSTOMER
US DEPT OF DEFENSE
WASHINGTON DC 00000
PLEASE MAKE CHECK PAYABLE TO CSD STANFORD UNIVERSITY.
(Note: Overpayments are welcome. They will be credited to your account and
deducted from the cost of future reports you order.)
FORWARD PAYMENT AND INVOICE TO VICKI L. FAHRENHOLZ
COMPUTER SCIENCE DEPT.
STANFORD UNIVERSITY
STANFORD CA 94305 USA
⊗ → → → IT IS IMPORTANT THAT THIS INVOICE BE RETURNED WITH YOUR PAYMENT ← ← ← ⊗
≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡ new page ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
SUBJECT: REPORT ORDER 9 OCT 1976
TO: ZDENEK ZDRAHAL
FROM: LIBRARY AND PUBLICATIONS COMMITTEE
COMPUTER SCIENCE DEPARTMENT
STANFORD UNIVERSITY
STANFORD, CA 94305 USA
The following reports that you have ordered are enclosed with this invoice:
HPP-77-1(hardcopy) SCOTT ET AL,EXPLAN CPBLTIES OF PRODN-BASED SYSTEMS
ZDENEK ZDRAHAL #CZENZ
DEPT. OF CONTROL
TECH. UNIV. OF PRAGUE
KARLOVA NAM. 13
121 35 PRAHA 2, CZECHOSLOVAKIA
≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡ new page ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
SUBJECT: REPORT ORDER 9 OCT 1976
TO: PROF. A.R. MITCHELL
FROM: LIBRARY AND PUBLICATIONS COMMITTEE
COMPUTER SCIENCE DEPARTMENT
STANFORD UNIVERSITY
STANFORD, CA 94305 USA
We are sorry that the following reports you have ordered are out of stock:
STAN-CS-69-123(hardcopy) MITCHELL,MCCRAITH,VARIANTS OF GRAM-SCHMIDT
Stanford Ph.D. theses may be obtained from University Microfilms,
300 North Zeeb Road, Ann Arbor MI 48106; and other reports of our department
are usually obtainable from the National Technical Information Service,
5285 Port Royal Road, Springfield VA 22151. It generally takes a few
months after publication before the reports are available from these sources.
PROF. A.R. MITCHELL #SCOFM
DEPT. OF MATHEMATICS
UNIVERSITY OF DUNDEE
DUNDEE, SCOTLAND
≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡ new page ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
SUBJECT: REPORT ORDER 9 OCT 1976
TO: DR. JAMES MITCHELL
FROM: LIBRARY AND PUBLICATIONS COMMITTEE
COMPUTER SCIENCE DEPARTMENT
STANFORD UNIVERSITY
STANFORD, CA 94305 USA
The following reports that you have ordered are enclosed with this invoice:
STAN-CS-69-123(hardcopy) BRENT,DISTR OF SMALL PRIME GAPS $ 2.25
(California sales tax has been included in the above charges.)
The cost of these reports is $ 2.25. Please make your check payable to
`CSD Stanford University' and return it with the invoice at the bottom of
this memo.
The Computer Science Department of Stanford University will not exchange or
issue credit for returned publications, and is not responsible for damages
incurred in shipment of publications.
------------------------------- INVOICE -------------------------------------------
AMOUNT DUE $ 2.25
PAYMENT ENCLOSED $________
REFERENCE CUSTOMER #: 943AI
PAYMENT FOR ACCOUNT OF
DR. JAMES MITCHELL #943AI
XEROX
3333 COYOTE HILL RD.
PALO ALTO, CALIFORNIA 94304
PLEASE MAKE CHECK PAYABLE TO CSD STANFORD UNIVERSITY.
(Note: Overpayments are welcome. They will be credited to your account and
deducted from the cost of future reports you order.)
FORWARD PAYMENT AND INVOICE TO VICKI L. FAHRENHOLZ
COMPUTER SCIENCE DEPT.
STANFORD UNIVERSITY
STANFORD CA 94305 USA
⊗ → → → IT IS IMPORTANT THAT THIS INVOICE BE RETURNED WITH YOUR PAYMENT ← ← ← ⊗
≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡ new page ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
SUBJECT: REPORT ORDER 9 OCT 1976
TO: D. BROWN
FROM: LIBRARY AND PUBLICATIONS COMMITTEE
COMPUTER SCIENCE DEPARTMENT
STANFORD UNIVERSITY
STANFORD, CA 94305 USA
We are sorry that the following reports you have ordered are out of stock:
STAN-CS-68-102(microfiche) PNUELI,INTEGER PROGRAMMING OVER A CONE
(10 copies)
Stanford Ph.D. theses may be obtained from University Microfilms,
300 North Zeeb Road, Ann Arbor MI 48106; and other reports of our department
are usually obtainable from the National Technical Information Service,
5285 Port Royal Road, Springfield VA 22151. It generally takes a few
months after publication before the reports are available from these sources.
The following reports that you have ordered are enclosed with this invoice:
STAN-CS-67-074(hardcopy) FORSYTHE,WHAT IS SATISFACTORY QUAD-EQ SOLVER?
(5 copies) @ $ 2.00: $ 10.00
Handling $ 1.50
The cost of these reports, together with the previous balance in your
account, comes to $ 22.45. Please make your check payable to
`CSD Stanford University' and return it with the invoice at the bottom of
this memo.
The Computer Science Department of Stanford University will not exchange or
issue credit for returned publications, and is not responsible for damages
incurred in shipment of publications.
------------------------------- INVOICE -------------------------------------------
AMOUNT DUE $ 22.45
PAYMENT ENCLOSED $________
REFERENCE CUSTOMER #: AFRDB
PAYMENT FOR ACCOUNT OF
D. BROWN #AFRDB
[normal invoice follows here]
⊗ → → → IT IS IMPORTANT THAT THIS INVOICE BE RETURNED WITH YOUR PAYMENT ← ← ← ⊗
≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡ new page ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
SUBJECT: REPORT ORDER 9 OCT 1976
TO: A.K. WATSON INTERNATIONAL ED. CTR.
FROM: LIBRARY AND PUBLICATIONS COMMITTEE
COMPUTER SCIENCE DEPARTMENT
STANFORD UNIVERSITY
STANFORD, CA 94305 USA
We are sorry that the following reports you have ordered are out of stock:
(Note that one of your orders could only be partially filled)
STAN-CS-68-084(hardcopy) FRIEDMAN,SYSTEM FOR TRANSFORMATIONAL GRAMMAR
(2 copies)
Stanford Ph.D. theses may be obtained from University Microfilms,
300 North Zeeb Road, Ann Arbor MI 48106; and other reports of our department
are usually obtainable from the National Technical Information Service,
5285 Port Royal Road, Springfield VA 22151. It generally takes a few
months after publication before the reports are available from these sources.
The following reports that you have ordered are enclosed with this invoice:
STAN-CS-68-084(hardcopy) FRIEDMAN,SYSTEM FOR TRANSFORMATIONAL GRAMMAR
(6 copies) @ $ 2.10: $ 12.60
The cost of these reports, together with the previous balance in your
account, comes to $ 17.05. Please make your check payable to
`CSD Stanford University' and return it with the invoice at the bottom of
this memo.
The Computer Science Department of Stanford University will not exchange or
issue credit for returned publications, and is not responsible for damages
incurred in shipment of publications.
------------------------------- INVOICE -------------------------------------------
AMOUNT DUE $ 17.05
PAYMENT ENCLOSED $________
REFERENCE CUSTOMER #: BELNA
PAYMENT FOR ACCOUNT OF
A.K. WATSON INTERNATIONAL ED. CTR. #BELNA
[normal invoice follows here]
⊗ → → → IT IS IMPORTANT THAT THIS INVOICE BE RETURNED WITH YOUR PAYMENT ← ← ← ⊗
The BILLS$.TMP file from the same run.
9 OCT 1976
A. CUSTOMER
UNIVERSITY OF PEKING
CHINA
The following reports that you have ordered are enclosed with this invoice:
STAN-CS-66-038(microfiche)
STAN-CS-68-100(hardcopy)
balance= .00
≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
9 OCT 1976
B. CUSTOMER
US DEPT OF DEFENSE
WASHINGTON DC 000
We are sorry that the following reports you have ordered are out of stock:
STAN-CS-68-100(hardcopy)
HPP-77-1(microfiche)
The following reports that you have ordered are enclosed with this invoice:
STAN-CS-66-038(microfiche)
HPP-77-1(hardcopy)
balance= 2.20
≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
9 OCT 1976
ZDENEK ZDRAHAL #CZENZ
The following reports that you have ordered are enclosed with this invoice:
HPP-77-1(hardcopy)
balance= .00
≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
9 OCT 1976
PROF. A.R. MITCHELL #SCOFM
We are sorry that the following reports you have ordered are out of stock:
STAN-CS-69-122(hardcopy)
balance= .00
≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
9 OCT 1976
DR. JAMES MITCHELL #943AI
The following reports that you have ordered are enclosed with this invoice:
STAN-CS-69-123(hardcopy)
balance= 2.25
≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
9 OCT 1976
D. BROWN #AFRDB
We are sorry that the following reports you have ordered are out of stock:
STAN-CS-68-102(microfiche)
(10 copies)
The following reports that you have ordered are enclosed with this invoice:
STAN-CS-67-074(hardcopy)
(5 copies)
balance= 22.45
≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
9 OCT 1976
A.K. WATSON INTERNATIONAL ED. CTR. #BELNA
We are sorry that the following reports you have ordered are out of stock:
STAN-CS-68-084(hardcopy)
(2 copies)
The following reports that you have ordered are enclosed with this invoice:
STAN-CS-68-084(hardcopy)
(6 copies)
balance= 17.05
≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
Here is the FORM.DAT used to prepare the above bills:
INVOICE (Canned texts)
SUBJECT: REPORT ORDER *
TO: *
FROM: LIBRARY AND PUBLICATIONS COMMITTEE
COMPUTER SCIENCE DEPARTMENT
STANFORD UNIVERSITY
STANFORD, CA 94305 USA
*The following reports that you have ordered are enclosed with this invoice:
*We are sorry that the following reports you have ordered are out of stock:
*Stanford Ph.D. theses may be obtained from University Microfilms,
300 North Zeeb Road, Ann Arbor MI 48106; and other reports of our department
are usually obtainable from the National Technical Information Service,
5285 Port Royal Road, Springfield VA 22151. It generally takes a few
months after publication before the reports are available from these sources.
*According to our records you have a balance due of $* from orders previously
shipped. Please make your check payable, in American dollars, to `CSD Stanford
University' and return it with the invoice at the bottom of this memo.
*The cost of these reports is $*. Please make your check payable, in American
dollars, to `CSD Stanford University' and return it with the invoice at the
bottom of this memo.
*The cost of these reports, together with the previous balance in your
account, comes to $*. Please make your check payable, in American dollars, to
`CSD Stanford University' and return it with the invoice at the bottom of
this memo.
*You currently have a credit balance of $*. Thank you!
*The cost of these reports was exactly canceled by your previous credit
balance, so there is no further charge.
*(California sales tax has been included in the above charges.)
*------------------------------- INVOICE -------------------------------------------
AMOUNT DUE $* U.S.
PAYMENT ENCLOSED $________ U.S.*
REFERENCE CUSTOMER #: *
PAYMENT FOR ACCOUNT OF
*
PLEASE MAKE CHECK PAYABLE TO `CSD STANFORD UNIVERSITY'.
(Note: Overpayments are welcome. They will be credited to your account and
deducted from the cost of future reports you order.)
FORWARD PAYMENT AND INVOICE TO STANFORD UNIVERSITY
COMPUTER SCIENCE DEPT.
POLYA HALL, ROOM 202
STANFORD, CA 94305 USA
⊗ → → → IT IS IMPORTANT THAT THIS INVOICE BE RETURNED WITH YOUR PAYMENT ← ← ← ⊗
[Page mark here]
*
(Note that one of your orders could only be partially filled)*
The Computer Science Department of Stanford University will not exchange or
issue credit for returned publications, and is not responsible for damages
incurred in shipment of publications.
*
[This is the end of the data.]
Recovering from system crashes
The computer system will occasionally `crash'; under these conditions,
you will usually lose all the work you have done in the current session,
since the files aren't actually updated until the end of the run.
However, there is a mechanism which makes recovery from such situations
somewhat easier. In the normal course of operation, whenever you type
something into the program, it is saved on a disk file (subject to a small
restriction, explained below). Thus, in the event of a crash, the disk
file contains all the commands you gave, in the same order that you originally
typed them. So, to recover from a crash, you need only to submit this
file as input to the system, and it will repeat (identically, we hope!)
all the actions it took earlier.
To do this, just restart the system, in a slightly different way. Type
RUN REPORT; BACKUP<cr>
to the monitor. The extra parameter tells the system that you wish
the initial input to come from the log of commands that it has saved.
The system will move through the log, executing the same commands, and
displaying the same results on the terminal as previously. Thus, if
you watch your screen, you'll see a lot of things flashing by (you can
also stop this temporarily, by pressing the HOLD key on your keyboard).
When the end of the file has been reached, the system will print
SWITCHING BACK TO TERMINAL INPUT.
and wait. That's your cue; you can carry on normally, as if the system
crash had never happened.
There's one minor caveat. When you are typing things to the system, the log
file cannot be written out every time you type a line (that would be too
slow, and take too much space), so there is a possibility that it will
have lost the last few lines you typed in (as many as 15). So, before
rerunning the system, you might want to edit the file LOG.TMP, just to see
what the last command it recorded was (it's okay to let the editor
reformat the file, when it asks). Incidentally, you should also be able to
tell this by watching your screen when you rerun the system.
Whenever you finish a run, and exit the system in the normal way, the
file LOG.TMP is automatically deleted (since, if you exited from the
system correctly, you don't need the log). However, if you began in
BACKUP mode (i.e., using a previously written version of the LOG
file), the LOG file will be kept around afterward (as REPORT.LOG) in
case you want to verify what was really in there. You should delete
this version whenever you're through with it.
Appendix: Changes made to the program, and their dates.
This page contains a record of all modifications made to the program, and
should be consulted anytime you suspect something has been changed.
April 1977
The use of HPP numbers as abbreviations was added to the documentation
(no change necessary to the code).
April 1977
ADJUST subsystem added, for maintaining the inventory list.
April 1977
SEND and MAIL extended, so that they write out compressed versions
of transactions (in INVOI$.TMP and BILLS$.TMP).
April 1977
SEND extended to handle orders for multiple copies.
April 1977
ORDER extended to with another subsystem: CHANGE.
June 1977 SEND modified so that it also writes a label file (SNDLAB.TMP).
July 1977 ONHAND.DSK file sorted.
December 1977
File handling modified, so that the previous state of the address file
is always available in ADDFIL.BKP. This protects against glitches in the
program (combined with glitches in the SAIL tape facilities).
February 1978
Actual file protection (backup and shuffling) implemented.
June 1978
Minor changes made to FORM.DAT, to reflect a) Connie replacing Vicki,
b) stress payment in U.S.$ c) stress payment to Stanford.
August 1978
Warning message put in so that when ONHAND.DSK fills up, user is
told (limit is kept in `bsize').
October 1978
A simple form of protection against system crashes was implemented.
A dribble file, LOG.TMP, now records all commands typed in from the terminal.
It can be submitted as input to recreate any actions lost in a system crash.
November 1978
A new message added to FORM.DAT, mentioning that we won't give
exchanges or refunds on reports.
March 1979
The invoice format was extended slightly, to include a message
`REFERENCE CUSTOMER #', with hashcode, on appropriate invoices. This is
because cretins out there ignore the message to return the invoice w/ payment.
A new class was set up, for automatic microfiche people, as suggested
at the committee meeting last month. These will have category B; there
currently aren't any.
July 26, 1979
A minor change made, so that the list of reports on an invoice will
be clustered according to hardcopy or fiche, and ordered numerically
within each cluster.
September 1979
Two minor hacks added: the date is now printed on the invoice (this
entailed a change to FORM.DAT, as well as to the program), and the invoice
will refer to itself as a 'packing slip' if there's no actual bill.
Also a quick fix so that the short form (INVOI$, BILLS$) will print
the balance properly. Previously, it printed absolute value.
October 1979
A (disastrous) bug fixed. When the user tries to CHANGE a set
of ORDERs which is larger than the maximum the program will accept
(currently set at 1000), the program tells him/her this, and suggests
using E. Previously, though, it would also wipe out the ORDERS file,
because of an open channel. This was solved by putting off the
opening until we're sure the file in small enough.
Also, the size limit was raised from 700 to 1000, and a couple of
messages were added to the ADD phase, telling how many entries there were.