From f01ba89c17a39696fbe3b133671f95bb8aeed24c Mon Sep 17 00:00:00 2001 From: "Eric S. Raymond" Date: Tue, 29 Jun 2004 02:57:34 +0000 Subject: [PATCH] Various minor fixes. --- doc/mad-manual.xml | 104 +++++++++++++++++++++++++++++---------------- 1 file changed, 68 insertions(+), 36 deletions(-) diff --git a/doc/mad-manual.xml b/doc/mad-manual.xml index 98015c7..330bfeb 100644 --- a/doc/mad-manual.xml +++ b/doc/mad-manual.xml @@ -651,8 +651,9 @@ on the left." Although this problem does not require it, we frequently ask a question like "Does j = n?" The "=" in this context is a -relation and yields either "YES or NO" when -placed between two arithmetic expressions. +relationRelation +and yields either "YES or NO" when placed between two arithmetic +expressions. We return to the example problems. The algorithm exhibits an important concept, which occurs in a great many procedurs; namely, it @@ -915,18 +916,18 @@ in the actual statements produced for the computer the "=" symbol conventionally has this meaning.Equals Sign -It is important to realize what the "=" means in this context; it is -different from the usual use of the symbol where it indicated a -relation. When the "=" symbol is used as such a -"replacement operator" the item on the left of the "=" is always the -name of a variable. The -variable may have a complicated subscript but nevertheless it is not -an expression, but the name of a variable. The item on the right of -the symbol is an expression involving one or more constants, -variables, etc. The operation implied is simply that the value of the -express on the right becomes the value of the -variable whose name appears on the left. This is referred to as -substitution. +It is important to realize what the "=" means in this context; +it is different from the usual use of the symbol where it indicated a +relation.Relation +When the "=" symbol is used as such a "replacement operator" the item +on the left of the "=" is always the name of a +variable. The variable may have a complicated +subscript but nevertheless it is not an expression, but the name of a +variable. The item on the right of the symbol is an expression +involving one or more constants, variables, etc. The operation +implied is simply that the value of the express on the right becomes +the value of the variable whose name appears on +the left. This is referred to as substitution. For our specific example, then, the evaluation of the iterative formula could be described as @@ -1237,7 +1238,14 @@ appear internally as $ABCD□□$ The Retrocomputing Museum implementation neither enforces the six-character limit nor blank-pads constants. These features were an artifact of packing six-bit characters into the IBM 704's 36-bit -machine word. +machine word. + +The way the original is worded suggests that minus sign and dash +were different characters in the character set that the Michigan 709 +was using. They are rendered with the same glyph in the original, but +this may be a collision enforced by period typewriters (like 0 and O +being indistinguishable). + Boolean Constants @@ -2606,7 +2614,7 @@ effective before the rest of the specification is carried out. -These were the standard control codes for line printers, which +These were the standard control codes for IBM line printers, which assumed they were printing to 132x66 fanfold paper. There isn't a lot of point in simulating them on a modern page printer. The Retrocomputing Museum implementation implements them by prefixing the @@ -3868,20 +3876,20 @@ in Chapter 4). If a block designation -A(i1,...,in)...A(ji,...,jn) +A(i1,...,in)...A(ji,...,jn) is used in an input-output list &scriptL; for reading or writing binary tape or drum , the linear subscript corresponding to -ii,...in may not +ii,...in may not be greater than the linear subscript corresponding to -J1,...,jn. +J1,...,jn. While the list for a binary tape or drum statement is transmitted in the sequence written, a block -A(i1,...,in)...A(j1,...,jn) +A(i1,...,in)...A(j1,...,jn) within the list is actually transmitted in reverse order, i.e., in the sequence -A(j1,...,jn) to -A(i1,...,in). +A(j1,...,jn) to +A(i1,...,in). @@ -4457,7 +4465,7 @@ in this case (f) = 3% of 4800.00 - (d) in this case f = 3% of (c). -The information on the cares to be read will be in the following +The information on the cards to be read will be in the following format: @@ -5082,7 +5090,8 @@ order to allocate variable storage and identify the arithmetic types The combination of the information produced from (1) and (2) to translate the arrays to relocatable binary -programs. +programs.Relocatable Binary +Programs When an error is encountered in one of these sections the @@ -5115,6 +5124,11 @@ possibilities are suggested by the comment. Structure of Subroutines +This section describes the mechanics of writing +MAD-accessible subroutines in IBM 709 assembler. For tolerably +obvious reasons, the Retrocomputing Museum implementation does +not support this. + The information in this and the following sections of Chapter IV are in much greater detail in other Computing Center write-ups. However, the following sections should be sufficient for the general use of @@ -5126,6 +5140,7 @@ MAD. written in MAD as functions or in SAPSAP is the SHARE Assembly Program which permits the writing of actual machine instructions in symbolic form.ⅆmust be relocatable +Relocatable Binary Programs and must operate from the calling sequences the translator produces. Consider, for example the function call - FN. (A,B,C) - which might appear in the body of a statement. Assume that B is an array which has @@ -5181,18 +5196,19 @@ DELTA, Z(10)...Z(20)). The calling sequence would be first, the parametersⅆif executed as instructionsⅆwould produce no operation. -It is beyond the scope of this manual to discuss the structure of -relocatble programs (see IBM FORTRAN II Manual). It is suficient to -say that a relocatable program must containⅆin adidtion to the actual -instructions in the programⅆinformation as to which addresses must be -relocated at the time of loading for execution and which addresses -must not. In addition, the first card (or record) of such programs -must contain information about the size of the program, the number of -subroutines it calls on, the amount of stroage it will share with -other subroutines, the location of the list of subroutines it calls -on, and the names by which the routine itself is referred to. The -symbolic names of the subroutines called on must appear as the first -words after this information. +It is beyond the scope of this manual to discuss the structure +of relocatable programs (see IBM FORTRAN II Manual). It is sufficient +to say that a relocatable program must containⅆin adidtion to the +actual instructions in the programⅆinformation as to which +addresses must be relocated at the time of loading for execution and +which addresses must not.Relocatable Binary +Programs In addition, the first card (or record) +of such programs must contain information about the size of the +program, the number of subroutines it calls on, the amount of stroage +it will share with other subroutines, the location of the list of +subroutines it calls on, and the names by which the routine itself is +referred to. The symbolic names of the subroutines called on must +appear as the first words after this information. The execution of MAD programs requires the use of a loading routine to relocate and store the program and subroutines. A slightly @@ -5205,6 +5221,9 @@ without an explicit reference to them in the source program. Systems Subroutines +The Retrocomputing Museum implementation does +not support these routines or reserve these names. + The use of the following names for functions (subroutines) should be avoided except where the operation is the one indicated here. @@ -5912,6 +5931,9 @@ LBT (a) READ DATA +READ DATA is not supported by the Retrocomputing Museum +implementation, mainly because we have no test programs for it. + This statement causes information to be read from cards; no list of variable names or format specification is necessary. The values to be read and the variable names are punched in the data cards in a @@ -5976,6 +5998,9 @@ statements but handled as ordinary data. (b) PRINT COMMENT &scriptS; +PRINT COMMENT is not supported by the Retrocomputing Museum +implementation, mainly because we have no test programs for it. + Here &scriptS; designates a string of no more than 120 Hollerith characters. These characters may not include dollar signs and here blanks are valid characters. The string, delimited by dollar signs as @@ -6008,6 +6033,9 @@ the carriage control code is reproduced here: (c) PRINT RESULTS &scriptL; +PRINT RESULTS is not supported by the Retrocomputing Museum +implementation, mainly because we have no test programs for it. + Here &scriptL; designates a list of variable names or block designations. Expressions may not appear in the list although subscripts of variables in the list may be expressions. The printed @@ -6030,6 +6058,10 @@ simply preceded by ... . November 15, 1960 +These extended features are not supported by the +Retrocomputing Museum implementation, mainly because we have no test +programs for them. + The notes which appear below describe several new features which have been added to MAD. Existing programs need not be changed in any way. Most programs will be reduced in size and execution time, however, if -- 2.43.0