BSD 1 development
[unix-history] / wow
CommitLineData
33ef36e3
BJ
1
2
3
4
5
6
7 Berkeley UNIX Software Tape
8
9
10
11
12_\bE_\bx_\bt_\br_\ba_\bc_\bt_\bi_\bn_\bg _\bt_\bh_\be _\bd_\ba_\bt_\ba _\bf_\br_\bo_\bm _\bt_\bh_\bi_\bs _\bt_\ba_\bp_\be:
13
14Most of the data on this tape has been archived to reduce
15the number of files so that tp will write this tape. You
16should extract the data from the libraries. This will
17require about 10000 blocks of storage if you don't remove
18each "cont.a" after you extract it.
19
20_\bW_\bh_\ba_\bt _\bi_\bs _\bo_\bn _\bt_\bh_\bi_\bs _\bt_\ba_\bp_\be:
21
22This tape includes sources and binaries for a quantity of UC
23Berkeley software. The major items on this tape are the
24instructional Pascal system and the text editor "ex". Other
25software here includes a modified shell, a new shell, new
26commands, and a "star trek" game. Machine readable documen-
27tation is included for all programs. The "Pascal User's
28Manual" and the "Ex reference manual" need a phototypesetter
29if readable copies are to be produced.
30
31_\bP_\ba_\bs_\bc_\ba_\bl:
32
33The Pascal system has been used for a year for instruction
34here. It has undergone a number of improvements in the last
35six months, but is quite stable. We use it for undergradu-
36ate and graduate instruction.
37
38The Pascal system requires separate I/D space; that is, an
3911/45 or 11/70 host. To run the Pascal stuff right away you
40will also need floating point hardware -- it is possible to
41run Pascal without floating point hardware but it requires
42adding a system call to replace the "mfpi" instruction that
43doesn't work on the 11/45's and 11/70's in user mode.
44
45_\bE_\bx:
46
47The Ex editor has been in use for about the same length of
48time as Pascal, and is used by a majority of our users. It
49has undergone a number of improvements in the last few
50months. We intend to use ex for the text editing classes at
51the Computer Center here (for a general campus audience)
52starting in January. The Pascal documentation uses "ex" in
53its examples.
54
55_\bI_\bn_\bs_\bt_\ba_\bl_\bl_\bi_\bn_\bg _\bt_\bh_\be _\bs_\bo_\bf_\bt_\bw_\ba_\br_\be:
56
57Compiled binaries have been included for most of the
58software here. (A few of the routines in the directory s6
59include system dependent headers and so binaries would be of
60no use and are not included.)
61
62
63
64
65
66
67
68
69
70 - 2 -
71
72
73The major programs "pi", "pxp", "px", and "ex-1.1" have the
74binaries in the directories with the same names. "Pi",
75"pxp" and "px" should run as they stand... if you have a
76non-standard teletype driver "ex" may require some system
77dependent changes. The binaries in "ex" will run directly
78on standard or Berkeley-type version 6 UNIX systems.
79
80Each major directory includes a file "READ_ME" describing
81the software in the directory. There is often a shell
82script "setup" in the directory to perform one time only
83operations. The script "install" in these directories will
84place the software in its standard home.
85
86For recompilation of these programs you can use the scripts
87"make*", and "comp" and "load" in the directories. Most
88directories also have "print" scripts, i.e. "printpi", to
89make a program listing with utility files and programs in a
90reasonable order.
91
92The suggested way to bring up the software on this tape is
93to run the install scripts in "pi", "pxp", and "px", and to
94then install (some or all) of the software from "bin". The
95editor "ex" can also be installed... this requires probably
96as much work as all the others combined as it uses some data
97bases which don't exist on standard UNIX relating to termi-
98nal types and capabilities.
99
100Note that some of the scripts to make new versions of the
101software on this tape use the programs in "bin". You can
102run these scripts easily, without adding all the stuff in
103"bin" to your "/usr/bin", by using the shell in "ashell".
104This shell has a number of nice features and was used in
105making all the software here... the files "errs" in each of
106the major directories are outputs from the "make*" scripts
107so you can see how this was done. Documentation for
108"ashell" is in s6/sh.6.
109
110The trek game in "trek" uses the rewritten portable library
111in "portlib". It (and the program tset) were written by
112Eric Allman whose address is in the trek setup instructions
113in "trek".
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136 - 3 -
137
138
139_\bD_\bi_\br_\be_\bc_\bt_\bo_\br_\by _\bc_\bo_\bn_\bt_\be_\bn_\bt_\bs:
140
141
142
143 pi Pascal translator source
144 px Pascal interpreter
145 pxp Pascal execution profiler
146 eyacc Modified yacc for Pascal
147 assubs Assembly stuff for Pascal
148 tests Test programs for Pascal
149 pcs Wirth's Pascal-S
150 pxref Pascal cross-refence program
151 opcodes Definition files for Pascal
152 fpterp Sep ID floating point interpreter using FETCHI sys call
153 s? Command software source
154 man? Documents for s? stuff
155 ashell A new shell with some nice features
156 ex-1.1 Ex source
157 exrecover Ex recovery routines (after system crashes)
158 trek Source for a "star trek" game
159 portlib Portable library used by trek
160 exrefm Troff source for "Ex 1.1 Reference Manual"
161 puman Troff source for "UNIX Pascal User's Manual"
162 help Sections from our help command
163
164 lib Routines for /lib and /usr/lib
165 bin Routines for /usr/bin
166 etc Stuff for /etc
167
168
169
170_\bI_\bf _\by_\bo_\bu _\bd_\bo_\bn'_\bt _\bh_\ba_\bv_\be _\bf_\bl_\bo_\ba_\bt_\bi_\bn_\bg _\bp_\bo_\bi_\bn_\bt:
171
172If you don't have floating point hardware, and wish to run
173Pascal, you will need to add a system call to fetch an
174instruction word when running separate I/D so that the
175floating point interpreter can work. The system call to be
176added is "fetchi"... if you can make it system call 61.
177(decimal) then the binaries on this tape will work immedi-
178ately. The code for "fetchi" will reside in sys4.c and look
179like
180
181 fetchi()
182 {
183 u.u_ar0[R0] = fuiword(u.u_ar0[R0]);
184 }
185
186It is used as in:
187
188 mov $iaddr,r0
189 sys fetchi
190
191to get the contents of location "iaddr", a word in I-space.
192Look at the floating point interpreter in the directory
193
194
195
196
197
198
199
200
201
202 - 4 -
203
204
205fpterp for a sample. Don't forget that to make the system
206call work you must add an entry to the sysent array in
207sysent.c.
208
209_\bM_\bi_\bs_\bc_\be_\bl_\bl_\ba_\bn_\be_\bo_\bu_\bs _\bn_\bo_\bt_\be_\bs:
210
211A version 7 C compiler and many of the binaries in "bin" are
212required to make a new version of "pascal" or "ex". For
213Pascal the file "nofloat" in this directory should exist...
214it causes the scripts in the source directories to work
215slightly differently.
216
217_\bF_\be_\be_\bd_\bb_\ba_\bc_\bk:
218
219We would like to hear from all users of the Pascal system
220and of ex. Reports of problems in bringing this software
221up, or of bugs in the programs or documentation would be
222appreciated. We would also appreciate hearing of any local
223improvements you make.
224
225_\b1_\b1/_\b3_\b4 _\bo_\br _\b1_\b1/_\b4_\b0 _\bP_\ba_\bs_\bc_\ba_\bl:
226
227It is indeed unfortunate that the Pascal system here won't
228run on an 11/34 or 11/40... the only reason this is true is
229that the translator "pi" is too large. Pi used to be two
230pass but was made one pass about a year ago. It is cer-
231tainly possible to break pi into two passes or two processes
232communicating through a pipe. If you have an 11/34 or 11/40
233and are interested in trying this I will be glad to give you
234more details.
235
236 Bill Joy
237 CS Division
238 Department of EE and CS
239 UC Berkeley
240 Berkeley, California 94704
241
242 (415) 524-4510 [HOME]
243 (415) 642-4948 [SCHOOL]
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267Feb 1 12:44 1978 ashell/READ_ME Page 1
268
269
270Wed Oct 19, 1977
271
272This directory contains the source for a shell.
273It requires floating point to do the time command which is built-in
274so you will have to cc it -f on machines without floating point.
275It also requires a version 7 C compiler.
276
277Accurate documentation is in the file "sh.6" to be nroffed with
278/usr/man/man0/naa and a new "version 7" nroff.
279
280This shell requires the "htmp" data base also used by the editor "ex".
281If you do not set it up so that the "sethome" command is done by "login"
282then you should use the old "osethome" routine in ../s6 rather than "sethome"
283and reenable the execl of this sethome in the file "sh.c" (with the correct
284pathname).
285
286 Bill Joy
287 CS Division
288 Department of EE and CS
289 UC Berkeley
290 Berkeley, California 94704
291
292 (415) 524-4510 [HOME]
293 (415) 642-4948 [SCHOOL]
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333Feb 1 12:44 1978 bin/READ_ME Page 1
334
335
336November 13, 1977
337
338The files in this directory belong in /usr/bin.
339The only ones not documented are "lock" which lets you supply
340a password to lock up your terminal (so you can go to the bathroom...),
341rout which cleans old junk out of /tmp,
342and teco which is of unknown origin (its mentioned in the Pascal
343document so I threw it in.)
344
345The programs "dates" "public" and "procp" all need to be setuid.
346Dates requires the creation of a data file "/usr/lib/dates" and public
347a directory "/usr/public"... procp needs to be able to read the memory.
348Procp depends on your system configuration and will, most likely,
349have to be recompiled.
350
351The programs pi, pxp, px, ex and ashell as well as trek are in their
352own directories.
353The programs cpall/cptree in this directory can help you install all
354this stuff...
355
356 Bill Joy
357 CS Division
358 Department of EE and CS
359 UC Berkeley
360 Berkeley, California 94704
361
362 (415) 524-4510 [HOME]
363 (415) 642-4948 [SCHOOL]
364
365P.S. Note that `l' and `ls' were linked together, and should be
366linked again if you wish to use them...
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399Feb 1 12:44 1978 etc/READ_ME Page 1
400
401
402November 17, 1977
403
404This directory contains prototype data files for /etc.
405Htmp is here simply to indicate that it must exist... it can be created via
406 cp /dev/null /etc/htmp
407 chown bin /etc/htmp
408 chmod 644 /etc/htmp
409
410The file ttytype should be modified to conform to your configuration,
411and new entries should be added to ttycap for the terminals which you
412have. Note that the programs "sethome", "tset" and "ttytype" must be able to
413write on htmp so they must either be setuid or /etc/htmp must be mode 666
414(safe only if you have a completely friendly community of users.)
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465Feb 1 12:56 1978 ex-1.1/READ_ME Page 1
466
467
468January 30, 1977
469
470There is a binary for ex1.1 in this directory (a.out) which can be "installed"
471if you have a full load of user core and an 11/45 or 11/70.
472If you have an 11/34 or 11/40 with 64K bytes of user space, you can
473"mv a.outNOID a.out" and then "install".
474If you prefer an ex without open and visual modes (for whatever reason)
475choose between "a.outNOVISUAL" and "a.outNOVISNOID".
476If you have a Berkeley type system (with full word significant user id's)
477then you should use the "patchd" program in this directory on the binaries
478you wish to use. This is just a db "!" patch, but db doesn't work on
479separate i/d programs.
480
481Thus a typical installation, using just "a.out", on a standard UNIX system
482would be:
483 sh install
484
485or to install the smallest ex here on an 11/34 or 11/40
486 mv a.outNOVISNOID a.out
487 sh install
488
489This process will give you a basic editor (without any of its data bases)
490which you can try.
491
492Other files (other than /usr/bin/ex and /usr/bin/edit):
493
494The editor keeps its error messages in a file. This file is
495"/usr/lib/ex1.1strings", and must be present or all errors will be
496diagnosed as "ERROR".
497
498The data base for the editor "help" command lives in "/usr/lib/how_ex"
499(a directory)... the files in how_ex go there.
500
501The programs "expreserve" and "exrecover" (from ../exrecover) should
502be setuserid root and go in /usr/lib. There should be a directory
503/usr/preserve owned by root, mode 755 for use by these programs.
504
505If you clean out /tmp in /etc/rc there should be a line
506 /usr/lib/expreserve -a
507before you do this.
508
509This editor needs a number of hooks into the rest of the system to get
510information about teletype types. The changes needed in the system at
511large to support this are described in the file SETUP.
512
513The editor uses the data base "/etc/ttycap" to discern capabilities
514of terminals, mapping a two character code it gleaned from the "htmp"
515data base (described below) to the characteristics of that terminal.
516You can add new terminals to /etc/ttycap quite easily... look
517at ../s6/ttycap.5. Adding a cursor addressible terminal requires
518an editor recompilation if you want to use the cursor addressing.
519Only a straightforward change to ex_ca.c is necessary.
520
521There is a system data base "/etc/ttytype" which maps terminals
522to 2 character type codes... see ../s6/ttytype.5.
523Look at ../etc/ttytype for a sample of this data base... you
524
525
526
527
528
529
530
531Feb 1 12:56 1978 ex-1.1/READ_ME Page 2
532
533
534should change this file to correspond to your system.
535You can add new types as necessary to "/etc/ttycap" in this process
536or simply leave some terminals "unknown" for now.
537
538The editor uses a data base "/etc/htmp" to determine a user's
539home directory and his terminal type.
540This is necessary for terminal types to handle dial-ups and for
541home directories to allow them to be changed and to avoid
542password file searches on systems with large password files.
543The best way to implement the maintenance of "/etc/htmp" is to have
544the "login" program maintain it. There is a set of routines
545in ../s7 (libX.a) which make this trivial. The "htmp" routines
546can be used to access htmp, the "typeof" routines to extract types
547from /etc/ttytype. If you don't have "login" do this, you will
548have to do it by hand every time you login, or the editor may
549have the wrong terminal type and will not be able to find your
550start_up file. A login and an su program changed to handle the
551maintenance of "htmp" are given in ../s1.
552
553If you need to recompile:
554
555This directory contains all of the source for "ex" version 1.1.
556To recompile the editor you will need a version 7 C compiler
557as well as the following non-standard programs:
558
559 mkstr create string message file
560 lnall link a number of files to a directory in one blow
561 mvall move all of a number of files
562 rmtree remove a hierarchical subtree
563 cxref a shell script giving a list of routine defn points
564
565All of these programs are on this tape (except the C compiler) and of the
566others, only mkstr is truly essential.
567(Recompilation should not be necessary unless you wish to change the editor
568or have a Version 7 UNIX system.)
569
570System dependencies:
571
572The only major problems here are the format of "/etc/utmp",
573the form of teletype names, and the meaning of user/group id's.
574Several of the programs in ../s6, notably "ttytype" and "sethome",
575assume that "utmp" is accessed as a array indexed by the letter of the
576terminal in use, treated as a number. Other systems have slots
577arranged '0', '1', ... '9', 'A', ... .
578If you have the latter format you'll have to change these programs.
579
580If you treat a user/id as being significant in all 16 bits
581returned from "getuid()" in determining if two people are the
582same person (i.e. if you have "newgrp") then should use the
583program "patchd" to change the initial value of "mask" to be 0177777, i.e.:
584 patchd _mask 177777 a.out
585
586This is trivial, but essential.
587Note that you must also change the source for the ttytype and sethome
588programs to not mask off these bits and recompile (or use patchd)
589
590
591
592
593
594
595
596
597Feb 1 12:56 1978 ex-1.1/READ_ME Page 3
598
599
600Finally the editor (and all other programs here) assume ttynames of the
601form "/dev/ttyx" with x a single letter.
602
603If you are having system related problems or have questions
604please feel free to give me a call.
605
606Other, less serious, dependencies are:
607
6081. This editor assumes that you have a restricted, 512 byte
609argument list. If your system gives larger lists that is no problem,
610but the "next" command will allow at most 512 character lists on
611subsequent matchings.
612
6132. The major and minor device numbers of /dev/null and /dev/tty
614are used and are given in ex_io.h. Also the system error codes are mapped
615from magic numbers to names here. If your system has additional codes
616these numbers will have to be extended and new cases will have to be
617added to the switch on page 6 of ex_io.c.
618
6193. To add a cursor addressible terminal in this version, you must recompile.
620A simple change is required to the routines in "ex_ca.c", with a return
621code of 1 being supplied for the new known type, and a string doing the
622addressing being returned from cgoto. This information should
623be put in /etc/ttycap, but I haven't seen enough terminals to know
624a good encoding.
625
6264. This version of the editor needs a printf which prints through putchar.
627Such a printf exists in printf.s in this directory.
628
6295. The read routine rop in exr.c knows about special binary files.
630Thus if you have any more binary files with different magic numbers
631it makes sense to add them here so the editor will give better diagnostics.
632
633I would like to hear of other dependencies/problems you encounter.
634
635Scripts:
636
637The following scripts are in this directory of general interest
638
639 makeex make a new binary and string file
640 comp recompile and load one or more files
641 install put new ex in /usr/bin... you may want to change
642 the path names
643
644The shell used for these scripts is in the directory ../ashell,
645with documentation in ../s6/sh.6.
646If you comment out the "set" commands or make a dummy set command
647which does nothing then any other shell should do fine.
648
649Note also that the scripts making ex use a "version" shell script
650which uses ex. If you have no ex, the script will fail in a safe way.
651
652In order for the option setting for "edit" to work either the second
653or third character of its name must be a 'd'. Thus "edit" and "nedit"
654are fine. This is naive, but easy to change... look at the first few
655lines of ex.c.
656
657
658
659
660
661
662
663Feb 1 12:56 1978 ex-1.1/READ_ME Page 4
664
665
666
667
668To complete the installation of ex you must also install exrecover and
669expreserve see the directory ../exrecover. I would appreciate hearing of
670any problems you have with the editor or of any improvements you make.
671One thing which would be nice to have is the ability to drive terminals
672with more intelligent operations such as add or delete a line on the screen
673or insert characters pushing them to the right.
674I havent done this because we have only 2 such terminals
675both of which are hard-wired at 9600 baud (and private terminals).
676The changes needed to do this are almost all localized in the routine
677"ex_vadjust.c".
678
679
680 Bill Joy
681 CS Division
682 Department of EE and CS
683 UC Berkeley
684 Berkeley, California 94704
685
686 (415) 524-4510 [HOME]
687 (415) 642-4948 [SCHOOL]
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729Feb 1 12:49 1978 exrecover/READ_ME Page 1
730
731
732November 17, 1977
733
734To have a fully functioning recovery mechanism you should
735place a command of the form
736 /usr/lib/expreserve -a
737in /etc/rc if you clean out the directory /tmp there.
738For full security, exrecover and expreserve should be setuid root
739and the directory /usr/preserve should be mode 700.
740If you don't need or want this, change "install" and "setup".
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795Feb 1 12:49 1978 eyacc/READ_ME Page 1
796
797
798August 28, 1977
799
800This directory contains source for a version of yacc needed by the Pascal
801parser. The differences between this yacc and a stadard version 6 yacc
802are indicated in a comment in y1.c.
803
804Note that the standard yacc parser will not work on the tables produced
805by "eyacc" and also that these changes are really useful only with
806a fairly large set of error recovery routines which are part of both
807"pi" and "pxp". The routines are language independent, but the method
808will only work on languages which have some redundancy in them... it is
809probably ill suited for C, but would work fine in ALGOL-60, ALGOL-W,
810EUCLID, LIS, SP/K, PL/1, ALPHARD, CLU, ...
811
812I am working on a short document describing the internals of the error
813recovery technique used in "pi"... It is a simple modification of the
814Graham/Rhodes technique described in a recent article in the CACM.
815
816
817 Bill Joy
818 Computer Science Division
819 EECS Department
820 University of California, Berkeley
821 Berkeley, California 94704
822
823 Office: (415) 642-4948
824 Home: (415) 524-4510
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861Feb 1 12:49 1978 fpterp/READ_ME Page 1
862
863
864November 13, 1977
865
866This directory contains the source for a floating point interpreter
867modified to work in separate i/d space with a system call "fetchi"
868as described in ../SETUP. The interpreter assumes that the
869system call in number 61.
870
871If you have to add this call because you don't have floating point hardware,
872and you cannot make it call 61. you don't have to remake all the Pascal
873stuff... simply running the "load" scripts in ../pi, ../pxp and ../px
874is sufficient... these don't require that you have a version 7 C compiler.
875
876 Bill Joy
877 CS Division
878 Department of EE and CS
879 UC Berkeley
880 Berkeley, California 94704
881
882 (415) 524-4510 [HOME]
883 (415) 642-4948 [SCHOOL]
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927Feb 1 12:50 1978 lib/READ_ME Page 1
928
929
930The routines in libX.a are from ../s7 and are used by ex and ashell.
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993Feb 1 12:50 1978 opcodes/READ_ME Page 1
994
995
996August 18, 1977
997
998Contents of this directory are as follows:
999
1000opc.d Description of machine opcodes.
1001OPnames.h Opcode data for put.c - comes from opc.d via makeopc.
1002opcode.h Opcode #defines - made from opc.d by makeopc.
1003picture Pretty picture of abstract machine opcodes.
1004trdata Data pertaining to the parse tree.
1005tree.h Tree defines from trdata out of maketrdata.
1006TRdata.c Tree description and printing names of operators.
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059Feb 1 13:00 1978 pcs/READ_ME Page 1
1060
1061
1062November 13, 1977
1063
1064This directory contains the source for the Pascal program pascals.
1065It should be put in /usr/lib/pascals, the C program in in ../s6/pascals.c
1066should be put in /usr/bin/pascals... this C driver hunts up "px"
1067and executes the /usr/lib/pascals.
1068
1069For this program to run at any sort of reasonable speed it should be
1070compiled with the options "-p" and "-t" and preferably "-b", i.e.:
1071
1072 pi -pbt pascals.p
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125Feb 1 13:03 1978 pi/READ_ME Page 1
1126
1127
1128November 9, 1977
1129
1130This directory contains the source necessary to make a new pi.
1131Many of the files in this directory were linked to files with the same
1132name in the directory ../pxp, but the links were broken by tp.
1133There is a binary of pi here that should work immediately.
1134If you have floating point or with the simple system change in
1135../READ_ME. If you have to give a different number to the system
1136call, you can simply reassemble the floating point interpreter and
1137reload pi via
1138 load -i
1139
1140To print a copy of pi: printpi
1141To make a new pi: makepi
1142
1143Read the file ../SETUP before you bother with any of this.
1144
1145The compiler made by makepi is suitable for running on an 11/45 or 11/70
1146which has hardware floating point. If you don't have hardware floating
1147point, it is not possible to run separate I/D using the standard interpreter.
1148Standard version 6 UNIX does not have the needed system call to allow
1149it to fetch the floating point opcode from instruction space, and the
1150mfpi instruction doesn't work on 11/70's. A simple system change to add
1151a "mfpi" system call is explained in ../SETUP; the floating point interpreter
1152which uses this system call is in ../fpterp.
1153
1154This tape does not contain a Pascal system which will run on
115511/34's or 11/40's. Chuck and I were misinformed that
115611/34's would have sep I/D so we went to a one pass compiler scheme.
1157It should be possible to make a smaller "pi" or a two pass "pi" without
1158a great deal of effort. Earlier versions of the translator
1159"pi" were small enough to run without separate I/D, and a still earlier "pc"
1160was two rather much smaller passes.
1161
1162The following non-standard programs are needed to compile pi:
1163
1164 rmtree Remove a subtree of the directory system
1165 mvall Move a named group of files to a specified directory
1166 cc Version 7 C compiler
1167 lnall Make links to a number of files in a specified
1168 target directory
1169 squash reduce object file size for library
1170 not needed, just speeds loading and reduces
1171 library size
1172 mkstr Program to process C source putting error messages
1173 into an error message file
1174 eyacc Modified yacc
1175
1176In addition, the scripts here run with a shell that has a "set" command
1177to enable automatic timing of commands. You can comment out the lines
1178of the form
1179 set ...
1180without any harm, or make a null set shell script.
1181Other local shell features used here are the alias "cd" for chdir and
1182the syntax "$*" expanding to all the arguments, i.e. "$1 $2 $3 ...".
1183
1184
1185
1186
1187
1188
1189
1190
1191Feb 1 13:03 1978 pi/READ_ME Page 2
1192
1193
1194Note: it is normal for the grammar to have a number of shift/reduce
1195conflicts; a message of the form
1196
1197 conflicts: 16 shift/reduce
1198
1199(or worse) from yacc is to be expected.
1200
1201Defining the variable DEBUG on the first line of the file 0.h allows
1202the following debugging options
1203
1204 c print generated code
1205 y dump namelist
1206 E trace basic syntactic error recovery
1207 F full trace syn err rec
1208 A super full trace ...
1209 U prevent unique symbol insertion in error recovery
1210
1211As this option makes a much larger compiler it is not normally recommended.
1212
1213The syntactic error recovery relatively new code.
1214It has not been as thoroughly tested as the rest of the system.
1215
1216Please let me know of any problems with Pascal, especially with the
1217error recovery. I would be glad to hear of any problems, as well as
1218any local modifications which you find necessary or desirable.
1219
1220 Bill Joy
1221 Computer Science Division
1222 EECS Department
1223 University of California, Berkeley
1224 Berkeley, California 94704
1225
1226 Office: (415) 642-4948
1227 Home: (415) 524-4510
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257Feb 1 13:02 1978 px/READ_ME Page 1
1258
1259
1260August 28, 1977
1261
1262This directory contains all the source for the interpreter px.
1263The script "makepx" will make a new "px", the script "printpx"
1264will print a copy of all the stuff here. The binaries here can be installed
1265immediately with "install". If you have no floating point use a.outNOFLOAT
1266rather than a.out; do
1267 mv a.outNOFLOAT a.out
1268before
1269 install
1270
1271In making a px for a system without floating point, the program "flt40"
1272is used to massage the interpreter code to make it run a good deal faster.
1273
1274 Bill Joy
1275 Computer Science Division
1276 EECS Department
1277 University of California, Berkeley
1278 Berkeley, California 94704
1279
1280 Office: (415) 642-4948
1281 Home: (415) 524-4510
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323Feb 1 13:02 1978 pxp/READ_ME Page 1
1324
1325
1326November 16, 1977
1327
1328This directory contains the source for pxp.
1329Many of the files here were linked to the same in the directory ../pi.
1330The links were broken by tp. The a.out binary here can be installed
1331
1332 install
1333
1334This is all that should be necessary.
1335
1336To make a pxp do makepxp
1337To print a listing do printpxp
1338
1339The variable DEBUG can be defined allowing tracing of the error
1340recovery in the parser.
1341Look at the first line of "0.h" to see if DEBUG is defined.
1342A smaller pxp results if it is not.
1343
1344Non-standard programs required to make a pxp
1345
1346 cc Version 7 C compiler, version 6 will not work
1347 eyacc Need modified yacc distributed with pxp
1348 set time=3 Causes commands taking more than 3 seconds of
1349 processor time to be "timed" in a variant shell.
1350 You can comment out this line or do
1351 cp /dev/null set; chmod 755 set
1352 to avoid a "set: Not found" diagnostic.
1353
1354I would like to know of any problems with pxp, or of any
1355local modifications which you find necessary or desirable.
1356
1357 Bill Joy
1358 Computer Science Division
1359 EECS Department
1360 University of California, Berkeley
1361 Berkeley, California 94704
1362
1363 Office: (415) 642-4948
1364 Home: (415) 524-4510
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389Feb 1 13:02 1978 pxref/READ_ME Page 1
1390
1391
1392To make a pxref do
1393 makepxref
1394It can be installed using
1395 install
1396If you have a shell which recognizes Pascal objects it is not necessary
1397to use both the Pascal and C programs... the Pascal object can be put in
1398/usr/bin... but it will have the same status as shell scripts (essentially)
1399thus
1400 time pxref pxref.p
1401would not work then.
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455Feb 1 13:02 1978 s1/READ_ME Page 1
1456
1457
1458Here are a passwd command which asks you for the password twice so
1459you dont screw yourself up, and a shell which has a couple nice features
1460(interruptible waits, redirect unit 2) and which knows about Pascal
1461objects... the glob (../s8/glob2.c) which goes with this shell
1462takes arbitrary path names, i.e.
1463 /*/mbox
1464
1465This shell has been the standard at Berkeley for over a year.
1466
1467The login and su in ../s8 maintain the htmp data base, and also
1468implement ".start_up" files which a shell runs when you log in.
1469Also implemented are the file ".reminder" which you can place
1470in your login directory to have catted on your terminal when you
1471log in.
1472
1473These features of login are superfluous if you have "../ashell"
1474but very useful otherwise. The "su" program also maintains an
1475unused byte in /etc/utmp so that the "who" here can print out
1476who you are "su'd" to ... currently we disable su's to anyone but
1477the root except by the root ... this is easy to take out.
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521Feb 1 13:02 1978 s7/READ_ME Page 1
1522
1523
1524These are the routines for manipulating the editor data bases.
1525They live in ../s7/libX.a
1526The program "Ttyn.c" is actually made by the program "makeTtyn"
1527in ../s6... it produces a hashed version of "ttyn" called "Ttyn"
1528which is useful because it runs much faster... it is however
1529dependent on the structure of your /dev/.
1530If you want the editor and ashell to start faster you can have them
1531call a version of Ttyn which you can make using the program
1532makeTtyn for your system.
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587Feb 1 13:02 1978 s8/READ_ME Page 1
1588
1589
1590The glob2.c goes with the sh.c in s1.
1591The login and su are here so hyou can see the (simple) changes needed
1592to support the editor data base /etc/htmp.
1593They need the routines in ../lib/libX.a
1594
1595See also ../s1/READ_ME
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653Feb 1 13:03 1978 SETUP Page 1
1654
1655
1656October 12, 1977
1657
1658The editor uses the following data bases:
1659
1660 /etc/ttytype gives teletype types of hardwire ports
1661 /etc/ttycap gives capabilities of teletypes
1662 /etc/htmp gives home directories and teletype types
1663
1664The implications of the absence of these are as follows:
1665
1666 /etc/ttycap
1667 Editor will think all terminals are model 33 teletypes,
1668 essentially, as they will be "unknown." You'll have
1669 no way of specifying the capabilities of your terminal.
1670
1671 /etc/ttytype
1672 You will have to tell the editor the type of the terminal
1673 you are on every time you log in, unless you trust
1674 that the way the last user of your port set your terminal
1675 type is correct.
1676
1677 /etc/htmp
1678 Editor start-up files cannot work; you won't be able to
1679 specify your terminal type once per login... you have to
1680 do it each time you enter the editor.
1681
1682These data bases are maintained and used in the following ways:
1683
1684 HTMP data base:
1685 The file /etc/htmp contains a structure described by htmp (V).
1686 It contains, for each user, his "home" directory, normally
1687 the login directory, his user-id, and the type of terminal
1688 he is on. The home directory is here because on large
1689 systems searching the password file is unreasonably slow.
1690 Its presence in this data base also allows it to be changed.
1691 The tty type information is necessary here because users
1692 who dial in on a dialup port need to be able to specify it.
1693
1694 TTYTYPE data base:
1695 The file /etc/ttytype is organized similarly to /etc/ttys
1696 and maps tty names to 2 character codes. This data base is
1697 used both by the editor and by the program "tset", and
1698 can be used by other programs.
1699
1700 TTYCAP data base:
1701 The file /etc/ttycap allows programs to map a terminal's
1702 type code to its characteristics. This allows addition
1703 of new terminals to the system without changing any existing
1704 programs - only the data base needs to be updated. (Note
1705 that currently cursor addressing information is not recorded
1706 here requiring changes to the editor to add new such terminals.)
1707
1708The following utility programs are included with the editor:
1709
1710 SETHOME
1711 Set the home directory entry in /etc/htmp.
1712
1713
1714
1715
1716
1717
1718
1719Feb 1 13:03 1978 SETUP Page 2
1720
1721
1722
1723 TTYTYPE
1724 Set the teletype type entry in /etc/htmp.
1725
1726The following changes to support the editor are suggested:
1727
1728 LOGIN
1729 So that naive users may login on dial up ports and have
1730 their home directory and terminal-type set to reasonable
1731 values at initialization without any action on their part,
1732 the program login should be changed to write the initial
1733 entry in /etc/htmp. The work involved is in getting the
1734 terminal type from the file /etc/ttytype and writing it
1735 into /etc/htmp. The overhead should be negligible,
1736 especially since the operations of reading /etc/passwd
1737 and looking for mail in /usr/mail are typically much more
1738 expensive. This change is simple to make, just calling
1739 some of the routines in the supplied library htmp (V) ..
1740
1741 SU
1742 So that the home directory will be correct after a su
1743 command, the command should be changed to save and restore
1744 this entry in /etc/htmp before and after the su.
1745 This is similar to the saving and restoring of the utmp
1746 user byte entry to allow who to print out the name of
1747 the person one is su'd to. (This latter change has been made
1748 at Berkeley.)
1749
1750For more information on formats and programs see the following documents
1751
1752 Section V: htmp, ttycap, ttytype
1753 Section VI: sethome, ttytype
1754 Section VII: htmp, typeof, ttycap
1755
1756
1757 Bill Joy
1758 CS Division
1759 Department of EE and CS
1760 UC Berkeley
1761 Berkeley, California 94704
1762
1763 (415) 524-4510 [home]
1764 (415) 642-4948 [school]
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785Feb 1 13:03 1978 SYSDEP Page 1
1786
1787
1788November 9, 1977
1789
1790KNOWN SYSTEM DEPENDENCIES / MAGIC NAMES IN EX-1.1
1791
1792Globally:
1793
17941. Needs a printf which prints through putchar.
17952. Wants the data bases described in SETUP.
17963. Needs a large amount of core; separate i/d preferred.
17974. Needs a version 7 C compiler.
17985. Assumes (in the library routines and the way it deals with ttyn
1799 e.g. for the visualmessage option) that teletype names are single
1800 characters, and that /etc/utmp is indexed by this character.
1801 (More on this below.)
1802
1803---------------------------------------------
1804
1805In the HEADERS:
1806
1807ex.h
1808 Defines ECHO and RAW for stty.
1809 Defines TTYNAM which is initialized in ex_tty.c and there
1810 assumes that single char teletype names are used.
1811 Note that ex does not catch the TERMINATE signal of version 7
1812 UNIX... it should be defined here.
1813
1814ex_glob.h
1815 The definitions here limit the argument list size possible with the
1816 next command. This does not limit the size of entry argument
1817 list however... if invoked with a longer list that is ok (although
1818 it has never been tested of course!)
1819
1820ex_io.h
1821 The basic stat buffer structure is assumed here.
1822 Also the error codes for errno from system error returns on i/o
1823 are defined here... if you have more error codes you should
1824 add them... ex does not use "perror" because this way puts
1825 the messages in the string message file saving space.
1826
1827ex_vis.h
1828 The definitions of TUBELINES, TUBECOLS, and TUBESIZE here
1829 limit the kinds of terminals on which open and visual are possible.
1830 The areas are allocated, with fixed size, on the stack at entry to
1831 the routines in exo.c and exv.c. Variable sized screens would be
1832 possible if you added an assembly language intermediary here,
1833 or you can make these numbers larger, at the expense of allocating
1834 these larger buffers on terminals with small screens.
1835
1836---
1837
1838CODE files:
1839
1840ex.c
1841 /erpath =+ 9/
1842 Assumes that the error path contains a prefix like "/usr/lib"
1843 so that adding 9 bytes will give the last portion of the
1844
1845
1846
1847
1848
1849
1850
1851Feb 1 13:03 1978 SYSDEP Page 2
1852
1853
1854 error file name for testing "a.out".
1855 /== 'd'/
1856 Here derive the properties of "edit".
1857 /signal/
1858 New caught signals should be added here, notably
1859 the signal TERMINATE for a version 7 system.
1860
1861ex_ca.c
1862 To add a cursor addressible terminal you must add it to the
1863 routine canCA and change cgoto to return a string.
1864 All terminals which are to be added must have their properties
1865 recorded in /etc/ttycap.
1866
1867ex_glob.c
1868 This glob routine supports constructs in all portions of path names,
1869 e.g. "/*/bill/a.out"; it also interprets trailing slashes as
1870 forcing a directory match - eg "*/" matches all subdirectory names.
1871 This corresponds to the glob which is glob2.c in ../s6
1872 and also the glob built into ../ashell.
1873
1874ex_tty.c
1875 This routine assumes the version 6 structure of teletype names
1876 in its handling of TTYNAM. This can be easily changed
1877 by forming the value of TTYNAM in a slightly different way.
1878
1879ex_io.c
1880 The routine ioerror embodies the strings from "perror" which are
1881 related to input/output. These should be added to or changed
1882 as appropriate to your system. Perror is not used because
1883 it is desired to have the error messages in the string message
1884 file (this saves ~~ 200 bytes per editor user in the swap image.)
1885
1886
1887ex_put.c
1888 Note the routine "setcol" which fixes UNIX's notion of the tab
1889 column position after a cursor addressing sequence on an ADM-3A.
1890 This is hard, in general. If you wish to perform a similar
1891 fix for your terminals this is the place to do it.
1892
1893ex_recover.c
1894 The routines here assume that you have installed the exrecover
1895 and expreserve routines from ../exrecover, and that when
1896 the system crashes you run expreserve in /etc/rc to save the stuff
1897 from /tmp so that people can continue where they left off.
1898 If this is not true, no harm is done... as long as you don't ever
1899 crash!
1900
1901ex_set.c
1902 Note that the default directory and shell are initialized here.
1903
1904ex_tty.c
1905 Here the capabilities of the terminal which interest us are extracted.
1906 These are used by the print routines in ex_put.c, and more exten-
1907 sively by the visual and open mode routines.
1908
1909 Currently, we are running visual on ADM-3A's (its native terminal)
1910
1911
1912
1913
1914
1915
1916
1917Feb 1 13:03 1978 SYSDEP Page 3
1918
1919
1920 and also on HP2645's. For the latter, the editor makes use only
1921 of the clear to end-of-line operation. I have not put in the use
1922 of the add and delete line operations (although they are read
1923 here into AL and DL). If you have a number of intelligent
1924 terminals you may wish to try to add the intelligent terminal
1925 driving to visual... it is not hard. I have not done it since
1926 we have only 2 HP2645's and both are at 9600 baud where it matters
1927 little if it knows about the intelligence.
1928
1929 The routines most likely to be changed in such an addition are
1930 all in the file ex_vadjust.c... they are mentioned below.
1931
1932ex_unix.c
1933 It is here assumed that the shell understands the option "-c",
1934 and also the option "-i" to give a login type shell. Both of
1935 the shells from Berkeley, and also the Version 7 shell from
1936 Bell have this property. Note also that substituted file
1937 names are given high-order bits set so that glob will not
1938 be a nuisance... it is better of course not to edit files
1939 with funny names.
1940
1941ex_vadjust.c
1942 This is where the work is required to add the AL (add line)
1943 and DL (delete line) capabilities of the terminal to open
1944 and visual. Likely candidates for change are the routines
1945 "vopen", "vsync", and "vredraw"... with these capabilities
1946 you may well want to always use "vredraw"... "vsync" is the
1947 routine which leaves the dirty "@" lines on the screen.
1948 If you do any work here I would like to hear of it as I
1949 am not planning to do this but would like to have working
1950 code for it.
1951
1952ex_vcurs.c
1953 Note that the routine "vputchar" assumes that you can simply
1954 overwrite and have no trouble (that overstrking an "a" with
1955 a "b" works leaving a "b"). If you have terminals where this
1956 is not true (i.e. that have OS) you can send a blank to clear
1957 the position first... rumor has it that there are some
1958 ITT beasts of this flavor (at UCLA?).
1959
1960exr.c
1961 Sensibility detection by decoding the flags bit of a stat buffer
1962 an by looking at the magic numbers of PLAIN files should
1963 be changed to reflect the kinds of stuff you have in your
1964 file system.
1965
1966exw.c
1967 Note the explicit checks for /dev/tty and /dev/null by major
1968 and minor device number here.
1969
1970--------------------------------------------------
1971
1972I would be glad to learn of any other problems you have or changes
1973you make to ex.
1974
1975I will be glad to answer questions by mail or phone, and would be glad to know
1976
1977
1978
1979
1980
1981
1982
1983Feb 1 13:03 1978 SYSDEP Page 4
1984
1985
1986of any fixes and changes.
1987
1988 Bill Joy
1989 CS Division
1990 Department of EE and CS
1991 UC Berkeley
1992 Berkeley, California 94704
1993
1994 (415) 524-4510 [home]
1995 (415) 642-4948 [school]
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053 Update to Ex Version 1.1 Documentation
2054
2055
2056
2057This sheet is a quick update to Ex version 1.1 documentation for features
2058which were added after the documentation was prepared.
2059
2060_\bC_\br_\ba_\bs_\bh _\bR_\be_\bc_\bo_\bv_\be_\br_\by
2061
2062 The crash recovery mechanism has been improved to recover mangled
2063buffers and to mail to users that their files were lost after a crash.
2064More information is available in ex "help". It is also possible to recover
2065a buffer which had no current file name; it is saved as though it were
2066named "LOST".
2067
2068_\bS_\bm_\ba_\bl_\bl_\be_\br _\bS_\bc_\br_\be_\be_\bn_\bs _\bi_\bn _\bV_\bi_\bs_\bu_\ba_\bl
2069
2070 A new, partially implemented feature, is smaller visual screens. You
2071can specify a smaller window size for visual by
2072
2073 set window=10
2074
2075or on the "visual" command, similarly to the "z" command, i.e.:
2076
2077 vi.5
2078
2079
2080_\bV_\bi_\bs_\bu_\ba_\bl _\bf_\be_\ba_\bt_\bu_\br_\be_\bs - _\bU_\bn_\bi_\bm_\bp_\bl_\be_\bm_\be_\bn_\bt_\be_\bd, _\b1_\b1/_\b3_\b4'_\bs _\ba_\bn_\bd _\b1_\b1/_\b4_\b0'_\bs
2081
2082 The visual operations ``e'', ``E'', ``<'' and ``>'', which were _\bu_\bn_\bi_\bm_\b-
2083_\bp_\bl_\be_\bm_\be_\bn_\bt_\be_\bd in the documentation are, in fact, available on 11/45's and
208411/70's but not on 11/34's and 11/40's due to space problems. In addition,
2085the sequences ``^CTRL(d)'' and ``0CTRL(d)'' are not available with _\ba_\bu_\bt_\bo_\bi_\bn_\b-
2086_\bd_\be_\bn_\bt in _\bv_\bi_\bs_\bu_\ba_\bl and _\bo_\bp_\be_\bn modes on the smaller machines.
2087
2088_\bF_\bu_\bt_\bu_\br_\be _\bv_\bi_\bs_\bu_\ba_\bl _\bc_\bh_\ba_\bn_\bg_\be_\bs
2089
2090 The following additions to _\bv_\bi_\bs_\bu_\ba_\bl are contemplated:
2091
20921) An operation `V' to dynamically respecify the window size. With no
2093 argument, `V' will set the window size to the maximum possible, this
2094 being rather innocuous.
2095
20962) Operations to deal with LISP S-Expressions.
2097
20983) Handling of intelligent terminals.
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110 February 1, 1978
2111
2112
2113
2114
2115
2116
2117
2118
2119 Ex documentation corrections
2120
2121
2122_\bT_\ba_\bb_\bl_\be _\bo_\bf _\bC_\bo_\bn_\bt_\be_\bn_\bt_\bs
2123
2124 On page ii under _\bS_\bu_\bm_\bm_\ba_\br_\by _\bT_\ba_\bb_\bl_\be_\bs change _\bO_\bp_\be_\bn _\ba_\bn_\bd _\bv_\bi_\bs_\bu_\ba_\bl _\bt_\ba_\br_\bg_\be_\bt_\bs to _\bO_\bp_\be_\bn
2125_\ba_\bn_\bd _\bv_\bi_\bs_\bu_\ba_\bl _\bo_\bp_\be_\br_\ba_\bt_\bi_\bo_\bn_\bs.
2126
2127_\bC_\br_\ba_\bs_\bh _\bR_\be_\bc_\bo_\bv_\be_\br_\by
2128
2129 It is no longer true that you must have had a current file name to
2130recover after a crash; files with no name are arbitrarily named ``LOST''.
2131
2132 Also note that if the system crashes you will receive mail when it
2133comes up telling you of the name of the file saved for you if you were in
2134the editor.
2135
2136_\bF_\bi_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd
2137
2138 The _\bf_\bi_\bl_\be command description should begin ``The current filename'' not
2139``The current file'' as the editor does not have a current file, only a
2140current filename associated with a buffer.
2141
2142_\bV_\bi_\bs_\bu_\ba_\bl _\bC_\bo_\bm_\bm_\ba_\bn_\bd
2143
2144 The _\bv_\bi_\bs_\bu_\ba_\bl command may take a trailing count indicating the number of
2145lines to be used (physical) in the window. The default for this count is
2146the value of the _\bw_\bi_\bn_\bd_\bo_\bw option.
2147
2148_\bV_\bi_\bs_\bu_\ba_\bl _\bO_\bp_\be_\br_\ba_\bt_\bi_\bo_\bn_\bs
2149
2150 The operations ``e'', ``E'', ``<'' and ``>'' are implemented unless
2151you are on a machine without separate I/D space (Evans "D" system) in which
2152case the features ``0CTRL(d)'' and ``^CTRL(d)'' with _\ba_\bu_\bt_\bo_\bi_\bn_\bd_\be_\bn_\bt in _\bo_\bp_\be_\bn and
2153_\bv_\bi_\bs_\bu_\ba_\bl also don't work.
2154
2155_\bE_\bx _\bm_\ba_\bn_\bu_\ba_\bl _\bs_\be_\bc_\bt_\bi_\bo_\bn
2156
2157 Add the following bugs:
2158
2159 Lines which are _\bc_\bh_\ba_\bn_\bg_\be_\bd or _\bj_\bo_\bi_\bn_\be_\bd lose marks; it would be better for
2160 the marks to be attached to the (first) new line.
2161
2162 There should be an option for maintaining a perfectly clean screen in
2163 _\bv_\bi_\bs_\bu_\ba_\bl and open on very fast (or intelligent) terminals.
2164
2165_\bT_\bt_\by_\bc_\ba_\bp _\bd_\ba_\bt_\ba _\bb_\ba_\bs_\be
2166
2167 In the descripton of the ttycap data base, change ``set and cleared''
2168to ``cleared and set'' in the second line of the third paragraph. Refer to
2169stty (II) for more information about the flags described in this paragraph.
2170
2171
2172
2173
2174
2175
2176 February 1, 1978
2177
2178