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: 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 |