From: Eric S. Raymond Date: Fri, 6 Feb 2004 05:39:28 +0000 (+0000) Subject: One step forward. X-Git-Tag: 1.0~147 X-Git-Url: http://thyrsus.com/gitweb/?a=commitdiff_plain;h=dacf763eaeec240cedca8cf5208b893926b9a5c7;p=mad.git One step forward. --- diff --git a/doc/mad-manual.xml b/doc/mad-manual.xml index 4b476bc..873fd34 100644 --- a/doc/mad-manual.xml +++ b/doc/mad-manual.xml @@ -231,7 +231,7 @@ word. A few typos in the original have been fixed; if you're really curious, comments in the XML source describe them. Variant spellings -such as imbedded have vbeen preserved. +such as imbedded have been preserved. The original was not continuously page-numbered. Instead the pages were numbered within each chapter with the chapter number as @@ -2029,6 +2029,88 @@ executable statement labelled &scriptS; when an end-of-file is encountered. If the statement EXECUTED SETEOF. (0) is executed the read routines will be reset to enter SYSTEM. when an end-of-file is encountered. + +Normally, if an end-of-tape is encountered while executing a +WRITE BCD TAPE or WRITE BINARY TAPE statement, the tape is rewound, a +comment indicating this is printed for the operator, and the computer +is halted so that the operator can replace the tape. The program is +then continued from where the end-of-tape was detected. Thus, no +information is lost and the new tape is a continuation of the old one. +This action can be changed by executing the statement EXECUTE +SETETT. (&scriptS;). The subroutine SETETT. sets the write tape +routines to transfer to the executable statement labelled &scriptS; +when an end-of-tape is encountered. The tape is not rewound nor is +any comment printed for the operator and the computer does not stop +before this transfer occurs. Executing EXECUTE SETETT.(0) will reset +the write tape routines to the normal action. + +The subroutines SETEOF. and SETETT. may be executed as many +times as desired. Only one setting is in effect for end-of-file (that +specified by the latest execution of SETOFF.) and end-of-tape (that +specified by the latest execution of SETETT.), i.e., each setting +cancels the previous one. + + +FORMAT SPECIFICATIONS + +When information is read from (or punched in) a card into (or from) a +computer, it is necessary to know how this information has been +allocated among the available columns of the card. Similarly, +whenever information is to be printed by a printer (either on-line of +off-line), it is necessary to know how this information has been +allocated among the columns available on the printer. A description +of each allocation is called a format specification. Usually, but not +always, such a specification is accompanied by a list of variables +whose values are to be printed or punched or whose values are to be +read. (Occasionally, the information is contined entirely in the +format specification, so the list may be empty.) A format +specification is a string of alphabetic characters (as described +below) terminated by an "*". This string is stored six characters per +computer word in a vector with integer mode. This vector may be +preset (see section 3.7), computed, or read in as data. + +Carriage Control + +Every format specification consists of a description of the allocation +of available columns, and the form in which the particular information +is to appear. Specifications for reading or punching cards and +printing of information are identical, whith the following exceptions: + +(a) A card has only 72 available +columnsActually, 80 columns may be usd, provided the +proper computer hardware configuration is available. The use of 72 +columns is always safe, however, and strongly +recommended. while a line of print has 120 +available columns. Any attempt to allocate more than the available +number of columns will cause an error return (see section +2.14.1). + +(b) The first columnof a card has no special significance. The first +(left-most) character of a line of print is treated differently. This +character governs printer carriage control, much as skipping to a new +page, double spacing, etc. and should not contin information to be +printed. The user has effectively 119 available columns on a line of +print, but he must always include the first character as a code to +control the vertical spacing for that line. + +For example, the specification + + +S16, 6HBETA =I2* + + +will indicate that the line (or card) starts with a skip of 16 columns +and then prints (or reads or punches) the characters "BETA =" followed +by an integer field of two columns. If a card is involved, the letter +"B" in "BETA" will be found in column 17, due to the skip of 16 +columns. However, if a line is to be printed, the "B" will print in +column 16 of the printed page, since the first character of the line +(in this case, the first of the 16 columns to be skipped) is detached, +to be interpreted as carriage control leaving an effective skip of 15 +columns. The effect of a "blank" character on carriage control is to +move to the next line before printing, as will be seen from the +following table. In each case the carriage control character is +effective before the rest of the specification is carried out.