AltMode(ID:8482/)


Formatting lagnuage for the CUP-TEXT text processing system
developed by Marya Goldman at the School of Architecture, University of Cambridge, Cambridge, UK




References:
  • Goldman, MS "Computer-aided typesetting with a CRT" pp357-364 view details Abstract: An experimental program written for a computer-aided typesetting project provides scope editing facilities as well as typesetting functions. The configurations used was a PDP/7 and 340 Display. The program accepts text from paper tape, and arranges the characters into a page of justified lines which is displayed on the CRT. The user is allowed to edit the text on the display with a light pen and commands from an on-line console. The text is always maintained in justified lines and can be punched onto paper tape at any time. The characters on the display can appear in upper and lower case roman and italic in two sizes. The processing of footnotes has been allowed for. Extract: Aim
    Thus, it was the aim of the project to simulate the
    operations with metal type on a CRT and to remove
    certain tedious operations from the craftsman's responsibility.
    A constraint on the project was the equipment
    to be used. A small computer was desired to demonstrate
    that a system of relatively high sophistication
    could be achieved with a low capital expenditure.
    Experience at the University Mathematical Laboratory
    at Cambridge showed that text editing could be successfully
    programmed on the PDP-7 and 340 Display there
    (Wiseman, 1966). The configuration consists of paper
    tape punch and reader, on-line console, and 8K of 18
    bit words. Access to this computer was obtained for
    the development of an experimental program, CUPTEXT,
    which is the subject of this paper. Extract: CUP-TEXT
    CUP-TEXT
    CUP-TEXT reads text from paper tape, justifies the
    text, displays a page on the screen, accepts editing
    instructions or more text from an on-line keyboard and
    rejustifies the text on the screen, and punches out a
    paper tape with a corrected version of the text in a code
    suitable for a typesetting machine.
    The program is designed in a modular fashion and the
    modules may be changed to accommodate differing
    operational requirements. The input/output routines
    are independent of the main data structure; the instructions
    which answer peripheral interrupts and organise
    the 110 housekeeping are not contained in the main
    program; all display information is contained outside
    the main routines; and routines for justifying, editing
    and specifying type faces are self-contained. The
    project made use of this flexibility during development
    when it was necessary to change many of the parts to
    accommodate different pieces of printing equipment
    and try different methods of displaying or correcting
    the text.
    For example, the standard input routine accepts
    either unjustified tape with a modified Flexowriter code
    or justified tape in TTS code, but routines have been
    written to accept unjustified tape produced in ASCII
    and IS0 codes. The output routine also exists in several
    versions for various filmsetting machines.
    At this stage in the programming specific modules
    are built into various programs and are not movable.
    The method of assembling programs in the standard
    software does not permit relocateable addresses in
    routines and no independent assembly system has been
    written. It is envisaged that an extended suite of
    typesetting modules would eventually be implemented
    which could be used in various combinations. Extract: Altmode
    Altmode instructions
    When the on-line operator begins a job, he will first
    load his text tape into the reader and set the switches on
    the computer to indicate which code is on the tape.
    The Altmode instruction M will read in enough lines
    of text to make a page. The lines will be justified and
    the page will appear on the screen with the footnotes
    at the bottom and the reference numbers in order
    (see Fig. 1). When he makes a correction in the text,
    the lines will be rejustified but the page make-up will
    be undone and each footnote will appear immediately
    after the word referencing it (see Fig. 2). There will
    probably be more lines on the screen than are required
    for one page since all the text in the computer that can
    fit on the screen is being displayed. The extra lines
    arise because the text is read into a 128 word buffer area
    in the store and not made up into lines until the buffer is
    filled and because some text may be added during editing.
    When the corrections are completed, the operator will
    indicate with the underline which line is to end the page
    and use the Altmode instruction P to make-up the page
    again with the footnotes at the bottom and the surplus
    text removed from the screen (though not from the store).
    If he then finds another error he can correct it and use the
    make-up instruction again until the page is satisfactory.
    Only when the page is made-up can he use the Altmode
    instruction 0 to punch the text out onto paper tape.
    The Altmode command M to read more text will remove
    the old text down to the end of the page and add the
    new text after the surplus lines at the end of the previous
    page. If there were no end of page marker (i.e. the page
    had not been made-up) the new text would be added to
    whatever text was present. In either case, the computer
    would read enough text to put a complete page on the
    screen.
    Fig. 1. Display screen with a page of text that has been read
    in and made-up. The word 'organization' hanging over the
    right hand margin needs to be hyphenated.
    The restriction on punching out only when there is a
    made-up page is unique in the Altmode commands.
    Otherwise, any of the instructions can be used in any
    order and corrections can be made in any order in the
    text presently on the screen.
    The editing instructions in Altmode include, besides
    instructions to move the underline instructions to create
    a secondary marker in the form of a double underline
    which is used with the movable underline to isolate a
    block of text. Using Altmode commands X, I, E, the
    block of text (anything from one character to several
    lines) can be extracted into an invisible buffer and
    inserted at a later time into another place in the text or
    can be erased. Erased text disappears from the screen
    after the Altmode command E.
    Blocks of text enclosed by the underline and double
    underline can be changed to italic or roman upper and
    lower case with the Altmode commands <-, ^ , -, =.
    The Altmode command T is used to transpose the
    characters over the single underline with the one to its
    right.

    Character widths
    To obtain the variety of characters necessary for
    printing, four fonts are available in any one job. In this
    program, a font is defined as 256 characters usually
    consisting of upper and lower case roman and italic
    letters, numbers, and punctuation. Associated with
    each font is a table of unit widths for all the characters.
    The program assumes that the width of a character is
    the same in roman and italic and contains two widths
    values for each character, one for upper and one for
    lower case (e.g. if A = 13 and a = 9, then italic A = 13
    and a = 9 also). This arrangement is satisfactory for
    most filmsetters but for lead casting machines a different
    version of the width look-up routine exists which obtains
    separate widths for roman and italic.
    The program also assumes that the user might wish
    to mix characters of different type sizes in one line.
    For this reason, there must be a separate width table for
    each type size used, even if the type face, or style, is the
    same. When the user indicates a change of font in
    Altmode, the program adds the widths of characters of
    both the old and new fonts in the line until the width of
    the line equals the preset line measure. The alternate
    method of changing type size is to hold the widths for
    all sizes of the alphabet of one type face as one set of
    numbers and to vary the line measure proportionally to
    the size change, but this does not permit mixing of sizes
    in a single line.
    Each font contains four alphabets, where an alphabet
    is defined as 64 characters. The usual practice is for a
    font to have upper and lower case roman and italic
    alphabets, but the width tables for the alphabets could
    be changed to produce a font with other combinations
    such as bold type instead of italic, or Greek instead of
    roman, or small and large upper case in roman and
    italic without any lower case, etc. The only problem
    with such changes at the moment is that there is only
    one set of characters on the display (see CRT character
    generator for details of the CRT). For the user to
    change alphabets in one font there is a shift key for upper
    and lower case and Altmode instructions for roman
    and italic.
    Format instructions
    The format instructions in the Altmode commands
    are available to the off-line keypunch operator. In this
    experiment, a Friden Flexowriter was used. The keyboard
    layout was modified to include some function
    keys. A format instruction is recognised by the program
    if it is proceeded by an Altmode code, which appears
    on the Flexowriter hardcopy as a', (see Fig. 3). For
    example, a change to font 1 involves the three keystrokes
    Altmode, F, 1, and appears on the hard copy as 'Fl.
    If an error is made in an Altmode instruction, a special
    character appears on the display when the tape is
    processed.
    Beside the Altmode instructions, there is the footnote
    signal, which is represented on the hard copy by -.
    When this is keyed, all the text following it up to the
    next occurrence of the footnote code will be treated in
    the computer as a footnote and set in a smaller type size
    with a reference number inserted in the text and at the
    beginning of the footnote. Each footnote is keyed as it
    occurs in the text, immediately after the word which
    references it.
    Although on the Flexowriter there is a new-line key
    which positions the hard copy at the beginning of the
    next line, this code is ignored by the computer when
    read in on the tape and can be used by the keypunch
    operator to create a legible copy from the Flexowriter
    typewriter. The program inserts new line characters
    in the justification routine as necessary. At the places in
    the text where the line is not justified, as at the end of a
    paragraph, a special new line character which prints as a 6
    on the hard copy is punched on the tape. The tab key
    is used as on a typewriter, the location of the tab having
    been set in the program. The space bar is used for the
    variable space between words.
    Extract: Data structure
    Data structure
    The program, CUP-TEXT, is constructed on simple
    principles which could be translated to another computer
    with a suitable configuration. For a concise description
    of the PDP-7 and 340 display the reader is referred to
    Appendices 1 and 2 of Cross (1967).

          in The Computer Journal 12(4) 1969 view details