ML/I User's Manual --- Appendix J --- Implementation on Cambridge IBM 370


Node:Top, Next:, Up:(dir)

ML/I User's Manual -- Appendix J

Copyright © 1973 P.H.

Permission is granted to copy and/or modify this document for private use only. Machine readable versions must not be placed on public web sites or FTP sites, or otherwise made generally accessible in an electronic form. Instead, please provide a link to the original document on the official ML/I web site.


Node:Introduction, Next:, Previous:Top, Up:Top

J.1 Introduction

This document describes the implementation dependent features of ML/I on the IBM 370/165.

This implementation of ML/I contains all the features described in the ML/I User's Manual, 4th Edition, August 1970, plus New Features 1 and 2 as described in the supplements to that manual (startlines and stop markers).


Node:JCL, Next:, Previous:Introduction, Up:Top

J.2 JCL

ML/I is normally run using the catalogued procedure MLI, as described in the URM. Input is taken from a DD statement name FROM, and output is sent to TO. Messages are sent to SYSPRINT, and an input listing (if requested) to LIST. Options are given in the PARM field, set up as symbolic parameter OPT in the catalogued procedure.


Node:Input, Next:, Previous:JCL, Up:Top

J.3 Input

Input may be in F, FB, V, or VB format. Concatenation of unlike datasets is supported. The input routine truncates trailing spaces from input records unless the TRAIL option is set. There are no illegal input characters. Upper and lower case letters are considered as distinct. However, the logic of ML/I requires that three characters be set aside to represent "newline", "stopcode" and "startline". These have been assigned to X'15' (NL), X'37' (EOT) and X'0D' (CR) respectively. The newline character is appended to every record by the input routine, the stopcode character is generated when the end of input is reached, and the startline character is inserted at the start of each record when in startline mode. The appearance of any of these characters within the input will cause curious effects.


Node:Output, Next:, Previous:Input, Up:Top

J.4 Output

Output may be in F, FB, V, or VB format. The DCB parameters RECFM, LRECL, BLKSIZE are copied from the input if not supplied except in the case of unblocked output, when LRECL is set equal to BLKSIZE or BLKSIZE-4 (as appropriate) if not supplied. A new output record is started when the "newline" character is encountered (the newline character itself is removed) or if the current record becomes full. Incomplete fixed length records are padded with spaces. The "startline" character is ignored when in startline mode.


Node:Listing, Next:, Previous:Output, Up:Top

J.5 Listing

If the option SOURCE is on, a line-numbered listing of the first 123 bytes of each input record, or the whole record (whichever is the shorter) is output to a dataset described by a DD statement named LIST.


Node:Messages, Next:, Previous:Listing, Up:Top

J.6 Messages

Information and error messages are sent to SYSPRINT. If the option PRENV is on, a print-out of the current environment is added at the end of processing.


Node:Region size, Next:, Previous:Messages, Up:Top

J.7 Region size

The procedure specifies a region size of 50K by means of the parameter REG1. The code of ML/I is about 16K bytes long. The rest of the region is used for access methods, I/O buffers, and the ML/I stack. Increasing the region size increases the amount of core available for the stack, and enables more complicated macro structures to be evaluated.


Node:Constants, Next:, Previous:Region size, Up:Top

J.8 Implementation dependent constants

  1. There are 50 permanent variables (P1 to P50).
  2. The number N described in Chapter 6 of the ML/I User's Manual is 40.
  3. All numbers are held in full-words.


Node:S-variables, Next:, Previous:Constants, Up:Top

J.9 System variables

There are fifty system variables (S1 to S50) in the environment. They are used for controlling the action of ML/I as follows:

S1
"startline switch" (see the ML/I User's Manual).
S2
contains the line number of the latest line read.
S3-S50
not used at present.


Node:Alterations, Previous:S-variables, Up:Top

J.10 Alterations to ML/I

The layout keyword TAB is not supported.