Google
 

Trailing-Edge - PDP-10 Archives - decus_20tap2_198111 - decus/20-0059/txtpad.rno
There are 2 other files named txtpad.rno in the archive. Click here to see a list.
.SPACING 1
.NOFILL
^^TTTTTTTTT XXX   XXX TTTTTTTTT PPPPPPPP     AAA     DDDDDDD
   TTT     XXX XXX     TTT    PPP   PPP  AAA AAA   DDD   DDD
   TTT       XXX       TTT    PPPPPPPP  AAA   AAA  DDD   DDD
   TTT     XXX XXX     TTT    PPP       AAAAAAAAA  DDD   DDD
   TTT    XXX   XXX    TTT    PPP       AAA   AAA  DDDDDDD\\
.SKIP
.FILL
^^TXTPAD\\ ALLOWS THE
USER TO  CONSTRUCT ILLUSTRATIONS
FORMED OF PRINTING CHARACTERS
FOR USE IN DOCUMENTATION.
^A STYLUS IS USED TO POSITION AND DUPLICATE AND/OR REMOVE CHARACTERS OR 
GROUPS OF CHARACTERS ON A 60 CHARACTER BY 60 LINE GRID.
^THE RESULTING ILLUSTRATION IS MONITORED ON A STORAGE SCOPE, AND CAN
BE STORED IN AND RETRIEVED FROM AN OUTPUT FILE.
.SKIP
^^TXTPAD\\ DISPLAYS THE MENU SHOWN BELOW ON THE STORAGE SCOPE.
^THE 46 CHARACTERS ALONG THE LEFT, LOWER AND RIGHT MARGINS
ARE AVAILABLE FOR INSERTION INTO THE ILLUSTRATION.
^WHEN ^^TXTPAD\\ IS STARTED, IT WILL ASK THE USER IF HE WISHES
TO READ THIS PORTION OF THE MENU FROM HIS OWN FILE ^^TXTPA.DAT\\.
^UP TO 84 CHARACTERS FORMING THE FIRST LINE OF THIS FILE
WILL BE SUBSTITUTED FOR THOSE SHOWN
IF THE ANSWER TO THIS QUESTION IS A CARRIAGE RETURN, BLANK
OR UPPER CASE ^Y.
.SKIP
.NOFILL
^^TTY LIN COPY MOV TRIM KIL WIP READ SWAP SAV HIH LOW ALL EXIT
------------------------------------------------------------
   I                                                    I
A  I                                                    I
B  I                                                    I
C  I                                                    I
D  I                                                    I
E  I                                                    I
F  I                                                    I
G  I                                                    I
H  I                                                    I
I  I                                                    I
J  I                                                    I
K  I                                                    I
L  I                                                    I
M  I                                                    I
N  I                                                    I
O  I                                                    I
P  I                                                    I
Q  I                                                    I
R  I                                                    I
S  I                                                    I
T  I                                                    I
U  I                                                    I
V  I                                                    I
W  I                                                    I
X  I                                                    I
Y  I                                                    I
Z\\  ------------------------------------------------------
0
1 2 3 4 5 6 7 8 9 ( ) * / + - . , ' =
.FILL
.SPACING 1
.CENTER
^LENGTH OF ^DISPLAYED ^TEXT
.CENTER
------ -- --------- ----
.SKIP
^ILLUSTRATIONS CREATED OR READ BY ^^TXTPAD\\ ARE 60
COLUMNS WIDE BY 60 LINES DEEP.
^EITHER THE UPPER OR LOWER 36 LINES CAN BE DISPLAYED IN
THE SAME PROPORTIONS AS WOULD BE PRINTED BY A PRINTER
OR TELETYPE,  OR ALL
60 LINES CAN BE DISPLAYED ON A SQUARE GRID.
^INITIALLY, THE DISPLAY IS OF THE UPPER 36 LINES,
AND THIS CAN BE RESELECTED BY RAISING
 THE STYLUS WHILE POINTING AT THE
 ^^HIGH\\ SWITCH .
^THE LOWER 36 LINES CAN BE SELECTED BY POINTING TO THE
^^LOW\\ SWITCH AS CAN BE ALL 60 LINES BY POINTING TO
THE ^^ALL\\ SWITCH.
.SKIP
.CENTER
^GROUPS OF ^CHARACTERS
.CENTER
------ -- ----------
.SKIP
^A GROUP OF CHARACTERS IS DEFINED AS A COLLECTION
OF NON-BLANK CHARACTERS CONNECTED EITHER HORIZONTALLY,
VERTICALLY OR DIAGONALLY.
^FOR EXAMPLE, THE CHARACTERS IN THE FIGURE AT THE LEFT BELOW FORM A
SINGLE GROUP, WHILE THOSE AT THE RIGHT BELOW FORM 2 GROUPS
WHICH CAN BE KILLED, MOVED OR COPIED INDEPENDENTLY OF EACH OTHER.
^A GROUP CAN EXTEND BEYOND THE BOTTOM OF THE
DISPLAYED PORTION OF THE ILLUSTRATION IF ONLY THE UPPER
36 LINES ARE DISPLAYED, OR BEYOND THE TOP IF THE LOWER
36 LINES ARE DISPLAYED.
^EVEN IF NOT ENTIRELY DISPLAYED, THE ENTIRE GROUP CAN BE
KILLED, MOVED OR COPIED (IT MUST BE PARTIALLY DISPLAYED THOUGH
IN ORDER TO BE SELECTED).
.SKIP
.NOFILL
^^               XXXXXXX              XXXXXXX
              X       X            X       X
             X   X X   X          X   X X   X
            X   X X X   X        X   X X X   X
             X   X X   X          X   X X   X
              X X     X            X       X
               XXXXXXX              XXXXXXX\\
.FILL
.SKIP
^THE MAXIMUM SIZE OF A GROUP OF CHARACTERS IS DICTATED
BY THE VARIABLE ^^MOST\\ IN THE PROGRAM, WHICH IS THE DIMENSION
OF THE ^^LINE\\ ARRAY.
^THIS IS SET TO 1800 WHICH ALLOWS STRUCTURES OF UP TO
1800 NON-BLANK CHARACTERS (HALF OF THE PAGE BUFFER),
 BUT IS EASILY CHANGED IF NECESSARY.
^THE STRUCTURE IS GROWN IN A SQUARE SEARCH PATTERN AROUND
THE CHARACTER POINTED TO, SO IT IS POSSIBLE
TO KILL, MOVE OR COPY THE CENTER OF A GROUP
LARGER THAN 1800 CHARACTERS LEAVING THE EXCESS INTACT.
^EVEN THOUGH NOT ALL THE STRUCTURE CAN BE PROCESSED AS INDICATED,
THE OUTLINE OF SUCH LARGE STRUCTURES WILL SOMETIMES BE DRAWN CORRECTLY
SINCE OUTLINING OF THE GROUP IS BASED
ON A PERIMETER SEARCH MADE IN THE DISPLAY BUFFER
STARTING AT THE UPPER LEFT CHARACTER IN THE ^^LINE\\
ARRAY.
.PAGE
.SPACING 1
.FILL
.CENTER
^BEGINNING THE ^ILLUSTRATION
.CENTER
--------- --- ------------
.SKIP
^THE USER CAN
POINT TO (LOWER AND RAISE THE STYLUS WHILE POINTING AT)
ONE OF THE CHARACTERS ALONG THE LEFT, LOWER OR RIGHT MARGINS,
THEN POSITION ONE OR MORE COPIES OF THE CHARACTER ON THE
ILLUSTRATION BY POINTING TO THE POSITION OR POSITIONS AT WHICH
IT IS TO BE PLACED.
^THE POSITION OF THE STYLUS WILL BE TRACKED USING THE
CHARACTER SELECTED FROM THE MENU.
^THIS TRACKING CHARACTER WILL BE INSERTED INTO THE 
ILLUSTRATION WHEREVER THE STYLUS IS RAISED.
^IF THIS POSITION WAS PREVIOUSLY BLANK, THE CHARACTER
WILL BE WRITTEN ON THE SCREEN.
^IF INSTEAD THIS POSITION ALREADY CONTAINS
SOME CHARACTER OTHER THAN THAT USED FOR TRACKING, A RECTANGLE
IS DRAWN AROUND THE LOCATION AND THE SCREEN WILL BE ERASED AND
THE ILLUSTRATION CORRECTED WHEN THE USER NEXT MAKES A SELECTION
FROM THE MENU.
^IN THE LATTER CASE, THE TRACKING CURSOR TEMPORARILY BECOMES
A RECTANGLE WHILE THE STYLUS POINTS TO THE NON-BLANK POSITION.
.SKIP
^A PREVIOUSLY CREATED ILLUSTRATION CAN BE READ IN FOR
MODIFICATION BY POINTING TO THE ^^READ\\ SWITCH.
^WHEN THIS SWITCH IS SELECTED, THE TRACKING CURSOR CHANGES
TO ^R, THE FIRST CHARACTER OF THE NAME OF THE SWITCH, AND
THE  FIRST (OR NEXT IF THE ^^READ\\ SWITCH HAS PREVIOUSLY
BEEN SELECTED) 60 LINES OF THE FILE NAMED ^^INPUT.DAT\\
ON DEVICE NUMBER 1 WILL BE READ AND ADDED TO THE NON-BLANK
PORTIONS OF THE CURRENTLY DISPLAYED ILLUSTRATION.
.SKIP
^THE TABULATION CHARACTER IS HANDLED PROPERLY WHEN
READ FROM THE INPUT FILE, AND IS CONVERTED TO THE APPROPRIATE NUMBER
OF BLANKS.
.SKIP
.CENTER
^DRAWING ^LINES
.CENTER
------- -----
.SKIP
^LINES CAN BE EXTENDED FROM CHARACTERS ALREADY IN THE ILLUSTRATION
BY POINTING TO THE ^^LINE\\ SWITCH, THEN TO THE NON-BLANK CHARACTER
ON THE ILLUSTRATION
WHICH IS TO BE DUPLICATED TO FORM THE LINE AND TO THE LOCATION
TO WHICH THE LINE IS TO BE DRAWN.
^THE TRACKING CURSOR CHANGES TO ^L WHEN THE ^^LINE\\ SWITCH
IS SELECTED, AND THEN TEMPORARILY TO THE CHARACTER TO BE DUPLICATED,
AND  RECTANGLES ARE REPEATEDLY DRAWN AROUND THE ORIGIN,
UNTIL THE END OF THE LINE IS INDICATED.
^TO AID IN THE DRAWING OF STRAIGHT LINES,
A LINE DRAWN FROM THE ORIGIN TO THE CURRENT STYLUS LOCATION
 IS SUBSTITUTED FOR THE CHARACTER
CURSOR WHILE THE STYLUS IS IN THE SAME ROW OR IN THE SAME COLUMN
AS THE ORIGIN.
.SKIP
^THE ILLUSTRATION ON THE NEXT PAGE DEMONSTRATES THE SEQUENCE
OF OPERATIONS BY WHICH A SINGLE ^X IS DUPLICATED TO FORM A BOX
DRAWN FROM ^X'S.
^LINES DRAWN WITH VECTOR INSTRUCTIONS ARE INDICATED BY
MINUS SIGNS, ^I'S AND PLUS SIGNS.
.PAGE
.NOFILL
    LOWER AND RAISE     MOVE RAISED         LOWER AND RAISE
    STYLUS POINTING     STYLUS              STYLUS POINTING
    TO ORIGIN                               TO END OF LINE
 
^^(A)                 (B)                 (C)
   +-+
   IXI                  X--------------     XXXXXXXXXXXXXXX
   +-+
 
 
 
 
 
(D)                 (E)                 (F)
                 +-+
    XXXXXXXXXXXXXIXI    XXXXXXXXXXXXXXX     XXXXXXXXXXXXXXX
                 +-+                  I                   X
                                      I                   X
                                      I                   X
                                      I                   X
                                      I                   X
                                      I                   X
                                      I                   X
                                      I                   X
 
 
 
(G)                 (H)                 (I)
 
    XXXXXXXXXXXXXXX     XXXXXXXXXXXXXXX     XXXXXXXXXXXXXXX
                  X                   X                   X
                  X                   X                   X
                  X                   X                   X
                  X                   X                   X
                  X                   X                   X
                  X                   X                   X
                 +-+                  X                   X
                 IXI    --------------X     XXXXXXXXXXXXXXX
                 +-+
 
 
(J)                 (K)                 (L)
 
    XXXXXXXXXXXXXXX     XXXXXXXXXXXXXXX     XXXXXXXXXXXXXXX
                  X     I             X     X             X
                  X     I             X     X             X
                  X     I             X     X             X
                  X     I             X     X             X
                  X     I             X     X             X
                  X     I             X     X             X
   +-+            X     I             X     X             X
   IXIXXXXXXXXXXXXX     XXXXXXXXXXXXXXX     XXXXXXXXXXXXXXX
   +-+\\
.FILL
.PAGE
.SPACING 1
.CENTER
^ERASING ^CHARACTERS OR ^GROUPS OF ^CHARACTERS
.CENTER
------- ---------- -- ------ -- ----------
.SKIP
^THE ^^TRIM\\ AND ^^KILL\\ SWITCHES ARE USED TO
DELETE PORTIONS OF AN ILLUSTRATION.
^REMOVAL OF INDIVIDUAL CHARACTERS WHILE IN ^^TRIM\\ MODE
IS INDICATED IN THE DISPLAY BY ENCLOSING THESE CHARACTERS
IN RECTANGLES.
^THE DISPLAY WILL BE CORRECTED WHEN THE NEXT ITEM
SELECTED FROM THE MENU IS NEITHER ^^TRIM\\ NOR ^^KILL\\.
.SKIP
^^KILL\\ MODE IS USED TO REMOVE GROUPS OF CHARACTERS
WHICH ARE INDICATED BY POINTING TO MEMBERS OF THE GROUPS.
^THE DELETED GROUPS ARE OUTLINED IN THE DISPLAY UNTIL
THE DISPLAY IS CORRECTED WHEN AN ITEM OTHER THAN
^^TRIM\\ OR ^^KILL\\ IS SELECTED FROM THE MENU.
^^KILL\\ MODE CAN BE USED TO DELETE BRANCHES OF A STRUCTURE IF
THESE ARE FIRST DISCONNECTED FROM THE MAIN STRUCTURE
WHILE IN ^^TRIM\\ MODE.
.SKIP
^SELECTION OF
THE ^^WIPE\\ SWITCH BLANKS OUT THE ENTIRE ILLUSTRATION.
.SKIP
.CENTER
^MOVING AND ^COPYING ^GROUPS OF ^CHARACTERS
.CENTER
------ --- ------- ------ -- ----------
.SKIP
^THE ^^COPY\\ AND ^^MOVE\\ MODES ARE CONTROLLED IN A MANNER
SIMILAR TO THAT USED DURING ^^LINE\\ MODE.
^FOLLOWING SELECTION OF EITHER OF THE ^^COPY\\ OR
^^MOVE\\ SWITCHES, THE USER POINTS TO A CHARACTER IN THE
GROUP TO BE MOVED OR COPIED.
^THIS CHARACTER AT WHICH THE STYLUS IS INITIALLY RAISED
BECOMES THE ORIGIN AND IS INDICATED BY REPEATEDLY
DRAWING A RECTANGLE AROUND IT.
^THE CHARACTER AT THE ORIGIN IS ALSO USED AS
THE TRACKING CURSOR UNTIL THE STYLUS IS LOWERED
AND RAISED AT THE POINT TO WHICH THE GROUP OF CHARACTERS
IS TO BE MOVED OR AT WHICH IT IS TO BE COPIED.
^TO AID IN HORIZONTAL OR VERTICAL MOVES OR COPIES, A LINE
DRAWN FROM THE ORIGIN TO THE CURRENT STYLUS LOCATION IS
SUBSTITUTED FOR THE CHARACTER CURSOR WHILE THE STYLUS IS IN
THE SAME ROW OR IN THE SAME COLUMN AS THE ORIGIN.
.SKIP
^IN ^^READ\\, ^^LINE\\, ^^MOVE\\, AND ^^COPY\\ MODES,
CHARACTERS ALREADY DISPLAYED ON THE SCREEN
ARE NOT DESTROYED BY THE ATTEMPT TO COPY OR
MOVE OTHER CHARACTERS INTO THE POSITIONS WHICH THEY OCCUPY.
.SKIP
^IN A MOVED GROUP OR IN A COPY OF A GROUP,
CHARACTERS ARE LOST BEYOND THE LEFT, RIGHT, UPPER OR LOWER MARGINS
OF THE 60 LINE ILLUSTRATION.
^WHEN ONLY 36 LINES OF THE ILLUSTRATION ARE BEING DISPLAYED,
AT LEAST ONE LINE OF THE MOVED GROUP OR COPY MUST BE DISPLAYED,
BUT NONE OF  THE UNDISPLAYED PORTION IS LOST UNLESS IT IS LONGER
THAN 24 LINES (60 LINES TOTAL MINUS 36 LINES DISPLAYED).
.PAGE
.CENTER
^ENTERING ^TEXT
.CENTER
-------- ----
.SKIP
^THE ^^TTY\\ MODE ALLOWS THE USER TO READ LINES OF TEXT
FROM THE GRAPHICS TERMINAL KEYBOARD AND TO  POSITION
SUCH TEXT IN THE DISPLAY, IN A MANNER ANALOGOUS TO 
THAT USED FOR ^^LINE\\ MODE.
^AFTER SELECTING THE ^^TTY\\ SWITCH, THE TRACKING CURSOR
CHANGES TO ^T.  ^THE USER THEN SPECIFIES THE JUSTIFICATION
OF THE INSERTED TEXT BY POINTING TO THE LOCATION AT WHICH
IT IS TO BE INSERTED.  ^AFTER LIFTING THE STYLUS, THE USER
SELECTS THE SECOND END OF THE LINE
(WHICH NEED NOT BE HORIZONTAL OR VERTICAL) ALONG WHICH THE TEXT IS
TO BE INSERTED.
^IF THE SECOND POINT IS TO THE RIGHT OF THE FIRST, THE
INSERTED TEXT WILL BE PLOTTED WITH THE LEFT
CHARACTER AT THE POINT FIRST INDICATED.
^IF THE SECOND POINT IS TO THE LEFT OF THE FIRST, THE
INSERTED TEXT WILL BE PLOTTED WITH THE RIGHT CHARACTER
 AT THE POINT FIRST INDICATED.
^WHEN THIS SECOND POINT HAS BEEN SELECTED,
THE PROGRAM WILL TERMINATE TRACKING AND WAIT FOR THE
TEXT (FOLLOWED BY A CARRIAGE RETURN) TO BE TYPED.
^INDIVIDUAL CHARACTERS ARE DISCARDED IF THE INDICATED DESTINATION
ALREADY CONTAINS A NON-BLANK CHARACTER OR IF THESE CHARACTERS
ARE EXCESS BEYOND THAT WHICH WOULD FILL THE INDICATED SPACE.
.SKIP
.SPACING 1
.CENTER
^STORAGE AND ^RETRIEVAL OF ^ILLUSTRATIONS
.CENTER
------- --- --------- -- -------------
.SKIP
^THE PRESENTLY DISPLAYED ILLUSTRATION IS WRITTEN INTO A FILE
NAMED ^^OUTPU.DAT\\ (UNLESS THIS DESIGNATION  HAS BEEN MODIFIED BY 
SELECTING THE

^^SWAP\\ SWITCH DESCRIBED BELOW) WHEN THE ^^SAVE\\ SWITCH IS SELECTED.
^STORAGE OF THE ILLUSTRATION DOES NOT ALTER ITS DISPLAY.
^SEVERAL ILLUSTRATIONS CAN BE WRITTEN OUT INTO THE
FILE, BUT MULTIPLE COPIES OF A SINGLE ILLUSTRATION CANNOT BE
CREATED UNLESS IT IS MODIFIED IN SOME WAY.
.SKIP
^SELECTION OF THE ^^SWAP\\ SWITCH CAUSES THE
FOLLOWING OPERATIONS TO BE PERFORMED.
.BREAK
.RIGHT MARGIN 56
.LEFT MARGIN 8
.INDENT -4
(^A)#^THE CURRENTLY
DISPLAYED ILLUSTRATION 
IS WRITTEN INTO THE OUTPUT FILE IF THIS ILLUSTRATION HAS
NOT ALREADY BEEN WRITTEN OUT SINCE IT WAS LAST MODIFIED.
.BREAK
.INDENT -4
(^B)#^THE REMAINDER OF THE INPUT FILE, IF ANY, IS COPIED 
INTO THE OUTPUT FILE.
.BREAK
.INDENT -4
(^C)#^THE INPUT AND OUTPUT DESIGNATIONS
OF THE  FILE  ^^INPUT.DAT\\  ON UNIT 1 (INITIALLY STORED 
IN THE PROGRAM AS ^^INAME\\ AND ^^ITAPE\\) AND OF THE  FILE
^^OUTPU.DAT\\  ON UNIT 21 (^^JNAME\\ AND ^^JTAPE\\) ARE REVERSED.
.BREAK
.INDENT -4
(^D)#^THE PRESENT ILLUSTRATION
IS CLEARED, AND THE FIRST ILLUSTRATION FROM THE FORMER OUTPUT FILE
(NOW THE INPUT FILE) IS READ AND DISPLAYED.
.RIGHT MARGIN 60
.LEFT MARGIN 0
.BREAK
^SELECTION OF THE ^^EXIT\\ SWITCH PERFORMS STEPS ^A AND ^B ABOVE,
THEN TERMINATES EXECUTION OF THE PROGRAM.
.PAGE
.CENTER
^NECESSARY ^HARDWARE AND ITS ^ROUTINES
.CENTER
--------- -------- --- --- --------
.SKIP
^^TXTPAD\\ IS WRITTEN IN ^^FORTRAN\\ AND 
IS DESIGNED TO BE USED WITH A STORAGE SCOPE
HAVING A TEMPORARILY VISIBLE CURSOR FEATURE AND A TABLET
AND STYLUS.
^ROUTINES TO ACCESS THIS EQUIPMENT MUST BE AVAILABLE.
^THE FILE ^^ARDMAC.MAC\\ CONTAINS THE FOLLOWING
ENTRY POINTS FOR USE OF THIS PROGRAM ON A ^^PDP\\-10 COMPUTER WITH
A ^^ARDS\\ GRAPHIC TERMINAL.
.SKIP
.LEFT MARGIN 8
.SKIP
.INDENT -8
^^CRTLTR\\##LETTERS THE STRING GIVEN AS ITS FIRST ARGUMENT
AT THE ^X AND ^Y COORDINATES GIVEN AS ITS 4TH AND 5TH ARGUMENTS.
  ^THE SCOPE COORDINATES
ARE ASSUMED TO EXTEND FROM 0 THROUGH 1023 IN BOTH DIRECTIONS.
^THE 2ND AND 3RD ARGUMENTS ARE THE SEQUENCE NUMBER OF THE FIRST
AND OF THE FINAL CHARACTERS TO BE PLOTTED FROM THE STRING.
^FOR EXAMPLE, THE STATEMENT
.SKIP
.INDENT 4
^^CALL CRTLTR('ABCDEF',2,5,512,512)
.SKIP
\\WOULD PLOT THE LETTERS ^^BCDE\\ WITH THE LOWER LEFT CORNER OF
THE LETTER ^B AT THE CENTER OF THE SCREEN.
.SKIP
.INDENT -8
^^CRTOFF\\##POSITIONS THE BEAM OF THE CRT TUBE AT THE
^X AND ^Y COORDINATES GIVEN AS ARGUMENTS.
.SKIP
.INDENT -8
^^CRTON\\###DRAWS A LINE FROM  THE PRESENT BEAM POSITION
(AS DETERMINED BY THE PREVIOUS CALL TO EITHER ^^CRTOFF\\ OR
^^CRTON\\) TO THE ^X AND ^Y COORDINATES GIVEN AS ARGUMENTS.
.SKIP
.INDENT -8
^^CRTSTR\\##SELECTS WHETHER SUBSEQUENT PLOTTING WILL BE
STORED ON THE SCREEN OR BE TEMPORARY.  ^^CRTSTR\\ IS CALLED
WITH ITS SINGLE ARGUMENT ONE FOR
STORAGE OR ZERO FOR TEMPORARY.
.SKIP
.INDENT -8
^^CRTWIP\\##CLEARS THE SCREEN OF THE TERMINAL.
.SKIP
.INDENT -8
^^CRTXYZ\\##RETURNS AS ITS 3 ARGUMENTS  THE ^X, ^Y AND ^Z
COORDINATES OF THE STYLUS POSITION.  ^THE ^Z COORDINATE
IS ZERO WHILE THE STYLUS IS LOWERED TO THE SURFACE OF THE TABLET, AND
IS NON-ZERO OTHERWISE.
.SKIP 2
.NOFILL
.LEFT MARGIN 33
AUTHOR:##^DONALD ^E.#^BARTH
.LEFT MARGIN 42
^CHEMISTRY ^DEPT.
^HARVARD ^UNIVERISTY
^OCTOBER, 1972