From ab5004fc2dfe8b739a910299bfefa4f268b685e9 Mon Sep 17 00:00:00 2001 From: "Eric S. Raymond" Date: Thu, 24 Jun 2004 18:15:18 +0000 Subject: [PATCH] More notes on unimplemented features. --- doc/mad-manual.xml | 34 +++++++++++++++++++++++++++------- 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/doc/mad-manual.xml b/doc/mad-manual.xml index 0beccf5..f3c675b 100644 --- a/doc/mad-manual.xml +++ b/doc/mad-manual.xml @@ -266,9 +266,7 @@ not supported. The 704 had 36-bit words; MAD floats are translated to C doubles, which on modern machines have 32 or 64 bits. Precision and -overflow of numeric results may therefore differ. The original MAD -limit of 6 characters on variable names, labels, and string constants -is not enforced. +overflow of numeric results may therefore differ. Character READ FORMATs into arrays cause their equivalents in the generated C code to be declared with a base char type as would @@ -286,9 +284,15 @@ difficult to imagine code that would. computed-transfer statement are not implemented (mainly because the manual did not include programs with which they could be tested). Neither are multiple ENTRY points, EQUIVALENCE, ERASABLE, COMMON, -TAPE, or DRUM statements. More seriously, though array references -and assignments are implemented, array I/O is not (except for the -special case of character arrays which are handled as strings). +TAPE, or DRUM statements. + +More seriously, though array references and assignments are +implemented, array I/O is not (except for the special case of +character arrays which are handled as strings). The fact that the +size of arrays is dynamic appears to make this feature impossible +to compile; I conjecture that in the original MAD format strings +were actually interpreted at runtime by a service routine compiled +into the code. Only the no-argument case of ERROR RETURN is supported. The language describing the more general case of this feature is deeply @@ -1815,7 +1819,7 @@ WHENEVER A .LE. D(I, J), TRANSFER TO ST1 K = I L = J ST1 CONTINUE - . + . . . @@ -3994,6 +3998,10 @@ function. argument in a function definition program. The function would be called with a statement of the form EXECUTE TRANS.(A, N). + +The Retrocomputing Museum implementation cannot yet +compile this example. The problem is the array I/O. + Example 6<emphasis role='note'>: Matrix multiplication</emphasis> @@ -4041,6 +4049,9 @@ there is no general way to implement this in generated C. 7. 8. 9. 10. 11. 12. 13. 14. 15. + +The Retrocomputing Museum implementation cannot yet +compile this example. The problem is the array I/O. Example 7<emphasis role='note'>: Solve simultaneous linear equations</emphasis> @@ -4139,6 +4150,9 @@ only as an example problem. 0. -1. -1. -2. -9. -32. +The Retrocomputing Museum implementation cannot yet +compile this example. The problem is the array I/O. + @@ -4396,6 +4410,9 @@ again. &payrolltape; +The Retrocomputing Museum implementation cannot yet +compile this example. The problem is the TAPE statement. + Example 3<emphasis role='note'>: Mortgage Payment Processing</emphasis> @@ -4569,6 +4586,9 @@ round-off, but they should differ by very little. +The Retrocomputing Museum implementation cannot yet +compile this example. The problem is the array I/O. + -- 2.43.0