Trailing-Edge
-
PDP-10 Archives
-
BB-H138C-BM
-
5-documentation/scan.doc
There are 16 other files named scan.doc in the archive. Click here to see a list.
SCAN.DOC -- Changes from V7B(572) TO V7D(630)
January, 1982
COPYRIGHT (C) 1972,1974,1977,1981,1982 BY
DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE
INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER
COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY
OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY
TRANSFERRED.
THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE
AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
CORPORATION.
DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL.
SCN7D.DOC Page 2
SCAN.DOC -- Changes from V7B(572) TO V7D(630)
January, 1982
1.0 SUMMARY
This is a maintenance release of SCAN necessary to correct scanning
errors in LINK, DIRECT, LOGIN, BACKUP, and other utility programs.
Corrections were selected based upon the dual requirements of having
high value and low risk. This fixes all SPRs received through
December, 1981.
Note that SCAN version 7C was not shipped. All version 7C edits are
included in version 7D.
SCAN version 7D runs on all supported monitors. It has been tested on
TOPS-10 V7.01 and TOPS-20 V4. SCAN version 7D depends on WILD version
7D. There are no known deficiencies.
SCAN version 7D is documented implicitly in the software notebook
description of DIRECT, LINK, and MAKLIB. Supporting documentation can
be found in the .DOC files for WILD version 7D.
1.1 FUNCTION OF SCAN
SCAN is designed to be used as a subroutine by programs needing a
command scanner. It supports four basic types of commands. One is
the traditional form of output device(s) = input device(s). In this
case, options are controlled by switches preceded by a slash. The
switches are an abbreviated word. Values for the switch are indicated
by following the switch name by a colon and the value. The second
type of command structure is that each line consists of a verb
followed by arguments (values). To indicate this type of command
string, the prompt character has been made a slash. The third type of
command structure is used when the caller issues a prompt, typically a
dialogue question, and then needs to scan a particular construct. The
fourth type of command structure can be used with the above three to
read the user's profile and change the defaults. For convenience,
SCAN includes a moderate error message facility and a comprehensive
set of type-out routines.
2.0 CHANGES FROM SCN7B TO SCN7D
573 SPR #10-18959
Restore .RBPPN after indirect file lookup for SFD's.
574
Make .CNVDT routines round time instead of truncating.
SCN7D.DOC Page 3
575 SPR #10-19065
Since /XYZ:(A , B ) is legal, allow /XYZ:( A , B )
576 SPR #10-19852
When specifying date/times with weekdays,
allow times a full week into the future, and not more
than a full week into the past.
577 SPR #10-21716
Disallow multiple ='s on the same line (cancel edit
515), since they don't work and can't be fixed (local switches).
600 SPR # 10-21465 LCR 21-JAN-77.
Stop SCAN from resetting the starting address stored in .JBSA
when running a program from the CCL entry point. The MONITOR
no longer offsets the address at .JBSA when the offset is 0 or 1.
NOTE: C was changed to MACTEN.
areas affected: RESTRT:, E.IFL.
601 SPR # 10-21869 CLRH 17-MAR-77
Correction to edit 570 to not wipe out /BEFORE switch.
602 SPR # 10-24777
Remove a useless HALT in .QSCAN routine
603 SPR # 10-24773 WCL JUNE-27-78
Fix command scanning for SFD's; avoid use of quoting
Areas affected: FILDR3
604 SPR # 10-26448 WCL AUG-24-78
Rethink Edit 603; it broke error reporting of non-existant
SFD's if * or ? specified
Areas affected: FILDR3, .TISQT
605 GMU 09-Oct-78
If new bit FS.IFI is set in flags word of .ISCAN call,
make indirect file invocations illegal. Used by the
File Daemon.
606 SPR # 10-25056 BBE 12/16/78
Last SFD spec getting dropped with multiple level searches
with cmd line of the form DIR [A,B,C,D] E.F,G.H,I.J
607 GMU 3/3/80
Fix off-by-one bug if .TRDXW was called with a radix
greater than 10.
610 SPR # 10-29905 RKB 8/19/80
Allow null SFD specs to be filled in with PATH. UUO
change "?Null SFD illegal" to "?Null SFD beyond depth of PATH"
currently under an off conditional, not supported.
611
Change version scheme to allow customer edits greater than 3.
SCN7D.DOC Page 4
612 PY 17-Mar-81
Remove the FS.NCM flag from /MESSAGE, /OPTION, and /NOOPTION
613 TARL 30-May-81
Add entry point .TOFEB to perform same function as .TOLEB, but
using a pointer to a FILOP block.
614 SPR # 10-31175 PY 29-Jun-81
Fix problem with [-] if edit 610 is installed.
615 SPR # 10-30948 PY 29-Jul-81
Remove the SCNNFT and SCNNPS errors. If a future date
is requested and the date typed is really in the past
or vice versa, allow the date as there are many cases
where it is useful to do so.
616 SPR # 10-31381 PY 5-Aug-81
Fix TYIIGC to keep B.INDC accurately as the number of
characters. This fixes an off by one bug with TMPCOR
files which lose the last character if they end on a
word boundary.
617 PY 7-Aug-81
Fix sequence numbers and page marks in indirect files to
work even if they span a block.
620 SPR # 10-31399 PY 18-Aug-81
Fix bug in edit 610 which affects five deep SFDs and
/BEFORE or /SINCE.
621 PY 18-Aug-81
Search UUOSYM, MACTEN instead of C. Update compilation
instructions.
622 PY 19-Aug-81
If CCL, check the left half of the name if the right half
is zero. This prevents COMPIL class commands from getting
lost if TMP is assigned or a path.
623 PY 20-Aug-81
When using a byte pointer for a switch, check for
exact match with the value instead of the mask.
624 PY 24-Sep-81
Fix edit 623 so that switches with multi-word byte
pointers are compared properly.
625 PY 19-Oct-81
Once more with multi-word byte pointers. Either zero
or minus one is acceptable to indicate that a switch
has not been seen. Seperate out the multi-word tests
so the code is shorter and less complex.
SCN7D.DOC Page 5
626 PY 24-Nov-81
With edit 622 installed, the TMPCOR file name may be
in the left half of .RBPPN instead of the right half.
Check for this case when deleting the TMPCOR file.
627 PY 27-Dec-81
Add the global symbol .OPTN, same value as local symbol
OPTION.
630 PY 28-Dec-81
Fix bug when printing out numbers in .TRDXW with a radix
greater than ten.
3.0 KNOWN BUGS AND DEFICIENCIES
None.
4.0 INSTALLATION INSTRUCTIONS
To install in any program, relink that program using the new SCAN.REL
All programs which are to use SCAN version 7D should be checked to
insure that they request SCAN, and not a specific version of SCAN,
such as SCN7B.
Note that although there are several programs which use SCAN and WILD,
we will not necessarily rebuild all of them when SCAN is released. If
the customer experiences a problem with a program which is fixed by
the new versions of SCAN and WILD, he may rebuild the product at his
discretion.
5.0 SUGGESTIONS
Allow use of an extended channel to be used instead of time-sharing
channel 0.
Allow long file names on TOPS-20 in a format acceptable to the COMPT.
UUO.
Permit SCAN to run or be called from extended sections.
Add a HELP command, similar to HELP:SWITCHES which will describe the
keywords and/or arguments to the switches.
Support PATH names.
Allow nested indirect files.
[SCN7B.DOC is appended as an integral part of SCN7D.DOC]
SCN7B.DOC Page 6
SCAN.DOC -- CHANGES FROM V7A TO V7B(572)
JUNE 1975
1.0 SUMMARY
This is a maintenance release of SCAN necessary to correct command
scanning errors in LINK-10 and to support BACKUP. Corrections were
selected based upon the dual requirements of having high value and low
risk, however, it is recommended that this version NOT be used to
build other programs. There are no functional changes from version
7A. This fixes all SPRs received through 10-16,159 (June, 1975).
SCAN version 7B runs on all monitors. It has been tested on
5.10/6.02. SCAN version 7B depends on WILD version 7 or later. There
are no known deficiencies. This version fully supports the DATE75
project.
SCAN version 7B is documented implicitly in the software notebook
description of DIRECT and DUMP. Supporting documentation can be found
in the .DOC files for WILD version 7 and DIRECT version 4.
1.1 Function of SCAN
SCAN is designed to be used as a subroutine by programs needing a
command scanner. It supports four basic types of commands. One is
the traditional form of output device(s) = input device(s). In this
case, options are controlled by switches preceded by a slash. The
switches are an abbreviated word. Values for the switch are indicated
by following the switch name by a colon and the value. The second
type of command structure is that each line consists of a verb
followed by arguments (values). To indicate this type of command
string, the prompt character has been made a slash. The third type of
command structure is used when the caller issues a prompt, typically a
dialogue question, and then needs to scan a particular construct. The
fourth type of command structure can be used with the above three to
read the user's profile and change the defaults. For convenience,
SCAN includes a moderate error message facility and a comprehensive
set of type-out routines.
2.0 CHANGES FROM SCN7A TO SCN7B
555 Call FILSTK in .OSCAN to memorize SWITCH.INI defaults.
556 Set verb mode flag FLVERB in .VSCAN before calling SETPR4.
557 Store first value for /LENGTH in P.XXX area.
560 if UFD appears as -1, typeout as [*,*].
SCN7B.DOC Page 7
561 Prevent OSCAN from copying remaining sticky switches to all files
in T-mode.
562 (10-15,267) Edit 515 fails at monitor level.
563 (10,16,159) PSCAN sometimes types too any prompts.
564 Use 6.02 table if available to get login time.
565 (10-15,694) Correct use of .PTMAX.
566 Allow spaces after comma on multiple values for switches
567 Add TENEX feature test code
570 Correct length of BLT transfer in FILSTK so date swithces will
not get clobbered when a directory is typed.
571 Don't defeat ^O before dispatching to user prompt routine. Let
user routine do it itself if needed.
572 Make .TYPRE (preemptive input ) work reasonably. Basically,
ignore /RUN and CCL or command mode if preemptive input. (So
preemptive call to .TSCAN won't exit or do a run.)
3.0 KNOWN BUGS AND DEFICIENCIES
None.
4.0 INSTALLATION INSTRUCTIONS
With version 7, the dummy low-segment file SCANDM has been removed
since LINK-10 version 2 (released on the July, 1974 distribution tape)
has a switch /ONLY:LOW which can achieve the same effect and ensures
the correct low segment is included. Thus, all commands which
reference SCANDM should be changed to SCAN/ONLY:LOW.
Note that although there are several programs which use SCAN and WILD,
we will not necessarily rebuild all of them when SCAN is released.
Typically, the various utilities such as DIRECT and QUEUE and DUMP
will be rebuilt, but major products such as LINK and FORTRAN will not
be rebuilt until their next release. If the customer wishes to
rebuild, he may, but usually the changes to SCAN and WILD do not
warrent the cost of rebuilding and testing. Software products are
supported only with the version of SCAN and WILD with which they have
been released, because they have not been tested with other versions.
SCN7B.DOC Page 8
5.0 SUGGESTIONS
Allow indirect files to nest. This would make their behavior be more
like COMPIL. This would also allow the option file to be used while
using @ files.
Implement iteration loops with ().
Implement the pattern "x 'TO' y" in TSCAN.
Implement 'LIST' and 'OBJECT'.
Make SCAN (and perhaps WILD) be a separate segment which can be
GETSEGged when needed.
Add a routine which can input a SIXBIT symbol name (i.e., allowing % $
and .).
SPR 10S-031) Add a standard switch to specify the number of lines per
page.
Add a routine like .SWMAX which would verify that the result is in a
specified range (.SWMAX only allows the range 0-max).
Add a routine to issue system-wide standard messages, such as FNF FILE
NOT FOUND.
Add an option to .OSCAN to allow the caller to specify a secondary key
(or list of secondary keys) and allow .OSCAN to match these against
ranges in the SWITCH.INI file. This could allow a program such as
LOGIN to select a different line depending upon which terminal the
user was using.
QAR 1975) Add an option to the /MESSAGE switch to suppress the
constant text portions and just output the parameters.
Change .OSCAN so that it will not look for SWITCH.INI on LIB:.
SPR 10-13457) Allow the caller to optionally specify a permanent
channel to use for indirect files so that channel 0 does not have to
be time-shared.
Change the setting of FT$UEQ to remove "_".
Have "?" not match null characters.
Implement some form of dialogue mode.
Remove the current use of space as a separator within a file
specification. Remove the old defaulting mechanism triggered by the
file name.
[End of SCN7B.DOC]
[SCN7A.DOC is appended as an integral part of SCN7B.DOC]
SCN7A.DOC Page 9
SCAN.DOC -- Changes from V7 to V7A
March 1975
1.0 SUMMARY
This is a maintenance release of SCAN necessary to correct command
scanning errors in LINK-10 and to support BACKUP. Corrections were
selected based upon the dual requirements of having high value and low
risk, however, it is recommended that this version NOT be used to
build other programs. There are no functional changes from version 7.
This fixes all SPRs received through 10-15,266 (February, 1975).
SCAN version 7A runs on all monitors. It has been tested on
5.07/6.01. SCAN version 7A depends on WILD version 7 or later. There
are no known deficiencies. This version fully supports the DATE75
project.
SCAN version 7A is documented implicitly in the software notebook
description of DIRECT and DUMP. Supporting documentation can be found
in the .DOC files for WILD version 7 and DIRECT version 4.
1.1 Function of SCAN
SCAN is designed to be used as a subroutine by programs needing a
command scanner. It supports four basic types of commands. One is
the traditional form of output device(s) = input device(s). In this
case, options are controlled by switches preceded by a slash. The
switches are an abbreviated word. Values for the switch are indicated
by following the switch name by a colon and the value. The second
type of command structure is that each line consists of a verb
followed by arguments (values). To indicate this type of command
string, the prompt character has been made a slash. The third type of
command structure is used when the caller issues a prompt, typically a
dialogue question, and then needs to scan a particular construct. The
fourth type of command structure can be used with the above three to
read the user's profile and change the defaults. For convenience,
SCAN includes a moderate error message facility and a comprehensive
set of type-out routines.
2.0 CHANGES
542 (SPR 10-15001) Detect illegal date-time formats before defaults
are filled in. Thus, the phrase "following word" will be more
understandable to the user.
543 (SPR 10-15,266) When handling a parenthesis pair surrounding a
set of file specifications, delay clearing the sticky defaults
until they have been applied to the last file specification
within the parentheses.
SCN7A.DOC Page 10
544 (SPR 10-15135 on LINK) Create a new (internal) facility in SCAN
which allows the caller to preempt the current input source, and
force all characters for editing to come from the user terminal.
545 Clear core at the very start of .ISCAN instead of on the second
page.
546 Define the global symbol "%%%SCN" which is the current major
version number.
547 Correct a bug introduced by edit 357. In verb mode, allow file
switches to appear as verbs whether or not they have values.
550 If the caller of .TSCAN declares both multiple outputs and that
inputs and outputs can be mixed, then do not require a =. This
is needed for proper functioning of LINK.
551 In verb mode, at end of each line, clear any sticky devices, etc.
Only sticky switches are kept across lines.
552 Corect a bug in edit 551. Clear non-switch flags in P.MOD and
P.MODM between lines.
553 Make .CLSNS routine internal.
554 Clear negative flag before reading a UFD.
3.0 KNOWN BUGS AND DEFICIENCIES
None.
4.0 INSTALLATION INSTRUCTIONS
With version 7, the dummy low-segment file SCANDM has been removed
since LINK-10 version 2 (released on the July, 1974 distribution tape)
has a switch /ONLY:LOW which can achieve the same effect and ensures
the correct low segment is included. Thus, all commands which
reference SCANDM should be changed to SCAN/ONLY:LOW.
Note that although there are several programs which use SCAN and WILD,
we will not necessarily rebuild all of them when SCAN is released.
Typically, the various utilities such as DIRECT and QUEUE and DUMP
will be rebuilt, but major products such as LINK and FORTRAN will not
be rebuilt until their next release. If the customer wishes to
rebuild, he may, but usually the changes to SCAN and WILD do not
warrent the cost of rebuilding and testing. Software products are
supported only with the version of SCAN and WILD with which they have
been released, because they have not been tested with other versions.
SCN7A.DOC Page 11
5.0 SUGGESTIONS
Allow indirect files to nest. This would make their behavior be more
like COMPIL. This would also allow the option file to be used while
using @ files.
Implement iteration loops with ().
Implement the pattern "x 'TO' y" in TSCAN.
Implement 'LIST' and 'OBJECT'.
Make SCAN (and perhaps WILD) be a separate segment which can be
GETSEGged when needed.
Add a routine which can input a SIXBIT symbol name (i.e., allowing % $
and .).
SPR 10S-031) Add a standard switch to specify the number of lines per
page.
Add a routine like .SWMAX which would verify that the result is in a
specified range (.SWMAX only allows the range 0-max).
Add a routine to issue system-wide standard messages, such as FNF FILE
NOT FOUND.
Add an option to .OSCAN to allow the caller to specify a secondary key
(or list of secondary keys) and allow .OSCAN to match these against
ranges in the SWITCH.INI file. This could allow a program such as
LOGIN to select a different line depending upon which terminal the
user was using.
QAR 1975) Add an option to the /MESSAGE switch to suppress the
constant text portions and just output the parameters.
Change .OSCAN so that it will not look for SWITCH.INI on LIB:.
SPR 10-13457) Allow the caller to optionally specify a permanent
channel to use for indirect files so that channel 0 does not have to
be time-shared.
Change the setting of FT$UEQ to remove "_".
Have "?" not match null characters.
Implement some form of dialogue mode.
Remove the current use of space as a separator within a file
specification. Remove the old defaulting mechanism triggered by the
file name.
[End of SCN7A.DOC]
[SCN7.DOC is appended as an integral part of SCN7A.DOC]
SCN7.DOC Page 12
SCAN.DOC -- Changes from V6 to V7
September 1974
1.0 SUMMARY
This release adds the concept of guide words which allow the language
to be somewhat more general and mnemonic. Together with changes to
WILD, this release generalizes the wild-card matching so the user can
or and and specifications to match. The user can also exclude certain
patterns of files from the match. This release also lays more
groundwork to evolve SCAN to agree with the proposed DEC standard
command language. This fixes all SPRs received through 10-13,999
(September, 1974).
SCAN version 7 runs on all monitors. It has been tested on 5.07/6.01.
SCAN version 7 depends on WILD version 7 or later. There are no known
deficiencies. This version fully supports the DATE75 project.
SCAN version 7 is documented implicitly in the software notebook
description of DIRECT and DUMP. Supporting documentation can be found
in the .DOC files for WILD version 7 and DIRECT version 4.
1.1 Function of SCAN
SCAN is designed to be used as a subroutine by programs needing a
command scanner. It supports four basic types of commands. One is
the traditional form of output device(s) = input device(s). In this
case, options are controlled by switches preceded by a slash. The
switches are an abbreviated word. Values for the switch are indicated
by following the switch name by a colon and the value. The second
type of command structure is that each line consists of a verb
followed by arguments (values). To indicate this type of command
string, the prompt character has been made a slash. The third type of
command structure is used when the caller issues a prompt, typically a
dialogue question, and then needs to scan a particular construct. The
fourth type of command structure can be used with the above three to
read the user's profile and change the defaults. For convenience,
SCAN includes a moderate error message facility and a comprehensive
set of type-out routines.
2.0 CHANGES
401 (QAR 2424) Fix edit 365 so that the DIRECT and QUEUE commands
with no arguments work correctly.
402 (SPR 10-13,999) Same fix as edit 530.
501 (SPR 10-13597) Make .TSTRG reentrant so it can be used
recursively.
SCN7.DOC Page 13
502 (QAR 2384) Let @ work to DECtapes.
503 Allow the user to specify /MESSAGE:(ALL,NOxx) to mean all except
xx. Similarly, allow the user to specify /MESSAGE:(NONE,xx) to
mean only xx. This syntax works for all bit-valued switches.
504 (QAR 2439) Allow /RUN to be specified on a monitor command line
and have it work correctly.
505 Add :LOGIN as a mnemonic date-time to mean the time this user
last logged in. For example, /SINCE:LOGIN would refer to all
those files since the last LOGIN. Note that if there are several
jobs logged in under a particular ppn, then this will be the last
one to have logged in.
506 Add standard switch /EXIT which works just like /RUN except that
the program will exit to the monitor when all work is done.
507 Add the concept of guide words as defined in the proposed DEC
standard command language. These are standard mnemonic words
which are always enclosed within asingle quotes. Internally,
they are treated as a single meta-character. Edits 510 and 523
start to define actual guide words.
510 Add three file specification separators as guide words. These
may be used to combine several file specifications into one
concatenated file specification. It is the concatenated file
specification which actually is used by WILD to match against a
file. The separator 'AND' means that the conditions on both
sides of the separator must both be met for the file to match.
The separator 'OR' means that either condition may be met in
order to match. The separator 'NOT' means that the condition to
the left must me met and that the condition to the right can not
be met for the file to match. 'AND' and 'NOT' are of the same
precedence and are evaluated before 'OR' is. This follows the
normal Boolean precedence rules. Note that the standard file
constraint switches such as /SINCE are part of the analysis of
whether a file matches a particular specification. Note that in
DIRECT and QUEUE, "+" had the meaning of 'OR'. This is still
true in version 7 of WILD but will be changed in version 10. All
existing files which depend on this should be converted to use
'OR' before that release. Note that most programs will not care
about the difference, nor will most users.
511 Lay the groundwork to remove "_" as a separator which means the
same thing that "=" does. The code to remove it is under the
conditional FT$UEQ. In a future release the conditional will be
changed to remove "_".
512 Allow "*" to be used at the end of a file name, etc.. This means
the same as specifying enough "?" to fill out the field. For
now, the meaning of "?" will be left the same, but in the future
"?" will be changed to not match null. Therefore, all cases
where null should validly be matched should be changed to use "*"
instead (it is also easier to type).
SCN7.DOC Page 14
513 Add routine .OSDFS to apply the SWITCH.INI (.OSCAN) defaults to a
file specification itself. By calling this for each file
specification, calling programs can allow all file specification
switches to be supplied from SWITCH.INI.
514 Allow everything except partial file specifications to appear
before the "@". Anything so specified will be concatenated onto
the first line of the indirect file. Similarly, allow the
indirect file specification to be followed by other commands.
Anything so specified will be processed after the last line of
the indirect file. These changes allow the DIRECT and QUEUE
monitor commands to have a syntax much closer to that of the
COMPILE-class commands.
515 (QAR 1975) Allow several equal signs on the same command line.
When this happens, the treatment is exactly the same as if the
separator before the file specification preceeding all but the
first equal sign on a line was end-of-line.
516 Don't set the default DSK: if only global switches were
specified. This requires that the global switches be flagged
with FS.NFS in the SWTCHS macro.
517 Remove the vestiges of dialogue mode since it violates the proper
use of escape and was never implemented. Leave as a research
project determining the best way to implement a dialogue mode.
520 Add mnemonic date-times of NOON and MIDNIGHT. NOON always refers
to noon of today; MIDNIGHT refers to 00:00 or 24:00 depending on
whether the switch takes past or future values. Thus, for
example, "/SINCE:MIDNIGHT" refers to last midnight and
"/AFTER:MIDNIGHT" refers to midnight tonight.
521 (SPR 10-13,836) Improve the .SAVEn routines to save six locations
and to store the flags on the stack without increasing the
execution time.
522 In order to conform with the proposed DEC standard command
language, accept "%" as a prefix for a component of a file
specification known as an attribute. Since TOPS-10 has no such
concept currently, ignore any such field.
523 Add the additional guide words of 'TO', 'FROM', 'INPUT',
'OUTPUT', 'SOURCE', 'LIST', and 'OBJECT'. These are defined by
the proposed DEC standard command language to preceed the file
specifications of the appropriate meaning. Within the current
algorithms in SCAN only 'FROM', 'INPUT', and 'SOURCE' are
meaningful, and these are only useable as synonyms for "=".
Thus, it is now possible for the user to say ".COPY x 'FROM' y",
but it is not yet possible for him to say ".COPY y 'TO' x".
524 Remove a possible HALT after errors within an indirect file.
525 (SPR 10-13,818) Remove a minor piece of internal confusion on the
prompting logic.
SCN7.DOC Page 15
526 (SPR 10-13,818) Remove an internal flag which was redundant.
527 (SPR 10-13,817) Do not suppress the leading spaces at the start
of a continuation line.
530 (SPR 10-13,999) Fix a bug introduced in version 5 which did not
allow a monitor command to be continued.
531 Allow or-bit value switches to take a default. In particular,
default /MESSAGE occuring without any values to be
:(PREFIX,FIRST,CONTINUATION).
532 Add a new switch, /TMPFIL. This switch takes a pair of values in
the form /TMPFILE:name:string. The string is stored in the
TMPCOR or .TMP file named in the command. The .TMP file name is
prefixed with the job's number to follow the CCL conventions.
This can be used to setup one or more CCL files prior to a /RUN.
This would typically be done in a SWITCH.INI or indirect file.
533 (SPR 10-13,943) In programs which take multiple output
specifications such as FORTRAN-10, detect as an error the absence
of an "=" in the command line. The message is "?SCNESM EQUAL
SIGN MISSING".
534 In order to move closer to the proposed DEC standard command
language, introduce the notation of parentheses to indicate the
scope of user specified defaults. In particular, any components
of a file spec typed just before the left parenthesis become
defaults for those specs within the parentheses. For example,
typeing "X:FOO(.A,.B)" stands for "X:FOO.A,X:FOO.B". In the next
version of SCAN, the old practice of components of a spec typed
before the file name becoming defaults will be removed. Thus,
and .CTL and .CCL files should be modified to the new notation.
This new notation also removes the need to allow spaces within a
file spec; so these should also be removed since a future
version of SCAN may disallow spaces within the spec. Spaces
adjacent to other separators such as "=" and "," will still be
legal.
535 Allow several indirect files to be specified on the same command
line. Thus, for example, ".DIRECT@A,@B" will now work as
expected.
536 Add additional density values of 1600 and 6250 to agree with the
assignments in the 5.07 and 6.02 MTCHR. UUO.
537 In the new routine .OSDFS, do not default anything except
switches.
540 Correct bug in edit 535.
541 Don't recognize quide words within a quoted string.
SCN7.DOC Page 16
2.1 SCNMAC Changes
101 Add guide words as characters 4000-4002.
102 Clarify the meaning of FS.NFS to indicate that the switch has
global reference, rather than being part of a file specification.
Add the flag FS.NCM which is to be used internally within SCAN to
indicate that a particular switch does not constitute a command.
103 Add guide word characters 4003-4011.
104 Remove the ASK macro which was never implemented.
105 Expand FX.DEN to three bits to match the MTCHR. UUO. This
requires moving it left in the word.
3.0 KNOWN BUGS AND DEFICIENCIES
None.
4.0 INSTALLATION INSTRUCTIONS
The dummy low-segment file SCANDM has been removed since LINK-10
version 2 (released on the July, 1974 distribution tape) has a switch
/ONLY:LOW which can achieve the same effect and ensures the correct
low segment is included. Thus, all commands which reference SCANDM
should be changed to SCAN/ONLY:LOW.
Note that although there are several programs which use SCAN and WILD,
we will not necessarily rebuild all of them when SCAN is released.
Typically, the various utilities such as DIRECT and QUEUE and DUMP
will be rebuilt, but major products such as LINK and FORTRAN will not
be rebuilt until their next release. If the customer wishes to
rebuild, he may, but usually the changes to SCAN and WILD do not
warrent the cost of rebuilding and testing.
Do not reload Queue with this version of SCAN as there is an obscure
bug awhich will not let Queue automatically print out a log file at
KJOB Time.
Also, do not reload CREDIR with this version of SCAN, because
reloading gives inconsistent symbol definitions.
Other CUSP's dependent on SCAN have been reloaded and are included on
the October Monitor Tape.
SCN7.DOC Page 17
5.0 SUGGESTIONS
Allow indirect files to nest. This would make their behavior be more
like COMPIL. This would also allow the option file to be used while
using @ files.
Implement iteration loops with ().
Implement the pattern "x 'TO' y" in TSCAN.
Implement 'LIST' and 'OBJECT'.
Make SCAN (and perhaps WILD) be a separate segment which can be
GETSEGged when needed.
Add a routine which can input a SIXBIT symbol name (i.e., allowing % $
and .).
SPR 10S-031) Add a standard switch to specify the number of lines per
page.
Add a routine like .SWMAX which would verify that the result is in a
specified range (.SWMAX only allows the range 0-max).
Add a routine to issue system-wide standard messages, such as FNF FILE
NOT FOUND.
Add an option to .OSCAN to allow the caller to specify a secondary key
(or list of secondary keys) and allow .OSCAN to match these against
ranges in the SWITCH.INI file. This could allow a program such as
LOGIN to select a different line depending upon which terminal the
user was using.
QAR 1975) Add an option to the /MESSAGE switch to suppress the
constant text portions and just output the parameters.
Change .OSCAN so that it will not look for SWITCH.INI on LIB:.
SPR 10-13457) Allow the caller to optionally specify a permanent
channel to use for indirect files so that channel 0 does not have to
be time-shared.
Change the setting of FT$UEQ to remove "_".
Have "?" not match null characters.
Implement some form of dialogue mode.
Remove the current use of space as a separator within a file
specification. Remove the old defaulting mechanism triggered by the
file name.
[End of SCN7.DOC]
[SCN5.DOC is appended as an integral part of SCN7.DOC]
SCN5.DOC Page 18
SCAN.DOC -- Changes from V4 to V5
May 1974
1.0 SUMMARY
This release supports the error message standard and introduces the
/MESSAGE level switch. This release also adds switches to constrain
wild-carding by access date and file size. It also adds switches to
specify output file's estimated size and version number. It adds two
new types of switches, one stores bits in the value, the other takes
the prefix "NO". One CMCO and a number of bugs and deficiencies have
been fixed including all SPRs recieved through April 25, 1974
(10-13045).
SCAN version 5 runs on all monitors. It has been tested on 5.06 and
5.07/6.01. SCAN version 5 depends on WILD version 6 or later. There
are no known deficiencies. This version fully supports the DATE75
project.
SCAN version 5 is documented implicitly in the software notebook
description of DIRECT and DUMP. Supporting documentation can be found
in the .DOC files for WILD version 6 and DIRECT version 4.
1.1 Function of SCAN
SCAN is designed to be used as a subroutine by programs needing a
command scanner. It supports four basic types of commands. One is
the traditional form of output device(s) = input device(s). In this
case, options are controlled by switches preceded by a slash. The
switches are an abbreviated word. Values for the switch are indicated
by following the switch name by a colon and the value. The second
type of command structure is that each line consists of a verb
followed by arguments (values). To indicate this type of command
string, the prompt character has been made a slash. The third type of
command structure is used when the caller issues a prompt, typically a
dialogue question, and then needs to scan a particular construct. The
fourth type of command structure can be used with the above three to
read the user's profile and change the defaults. For convenience,
SCAN includes a moderate error message facility and a comprehensive
set of type-out routines.
2.0 CHANGES
276 Move .PTWRD to SCAN from WILD. Put it and .GTWRD and .MKMSK into
a separate, new module named .GTPUT. These are simple utility
routines which may be useful without all of SCAN.
277 Add a new type of switch value. This type is indicated by the
flag FS.OBV and has the property that the result is OR-ed into
the value word. The left half will end with a mask of what was
SCN5.DOC Page 19
controlled and the right half will have a 1 if the value was set.
If the value is a list of keywords, then also allow "ALL" or
"NONE" to set all bits or clear all bits. These can not be
abbreviated.
300 Add a new switch, /MESSAGE. This takes values which are or-ed
together to control the verbosity of error messages. The values
to /MESSAGE are:
PREFIX include 6-character error mnemonic
FIRST include text from first line of message
CONTIN include continuation lines of message
Each of these can be preceeded by "NO" to complement its effect.
The default setting is obtained from the monitor where it is set
by LOGIN version 55. The default typically is
/MESSAGE:(PREFIX,FIRST). Also add the location .FLVRB which
contains the setting from the /MESSAGE switch. Add routine
.VERBO which returns in AC1 right adjusted the bits from /MESSAGE
after defaults have been applied.
301 Modify the routine .CLRFL to take an argument which suppresses
clearing switches. This solves a problem when scanning a switch
which takes a file as an argument.
302 Add a new option bit to .TSCAN which allows input and output
specifications to be mixed. This is useful for programs which
may need input files on the left of = or output files to the
right.
303 Convert all SCAN error messages to include a standard prefix as
determined by /MESSAGE.
304 Allow a device to preceed the command name on a rescan.
305 Add mnemonic dates of "yesterday", "today", and "tomorrow".
306 Add new type-out routine, .TVERW which types a value in the
.JBVER format.
307 Change .SAVEn routines to be reentrant, interruptable, and
slightly faster.
310 In .GTNOW routine, if the GETTAB is available, use it instead.
311 Include a slightly cleaner form of date conversion.
312 Make the symbol ".MYPPN" internal for the convenience of LOGIN.
313 Correct a number of deficiencies when .PSCANing including the
handling of ^Z and RUN xyz (...).
314 Improve messages which include "following word" to always give
the right format.
SCN5.DOC Page 20
315 Add a new typeout routine, .TDTYM, which types a word in internal
"universal" date/time format.
316 Add a new switch macro, "SN", which takes value one unless the
word is prefixed by "NO", in which case the value is 0. With
this macro, the user can also give the switch name with value 0
or "NO" to indicate "not the switch" (same as /NOswitch) or 1 or
"YES" to indicate the switch (same as /switch). The NO or YES
can be abbreviated.
317 (SPR 10-12400) Don't allow /RUN when not logged in.
320 Fix the handling of the indirect file on non-directory devices to
handle multiple buffers.
321 Add a further option to /MESSAGE, namely :ADDRESS, which will
cause SCAN's error printer to include the address of the error
message routine for debugging convenience.
322 Extend edit 313 to handle multiple .PSCAN calls correctly.
323 Correct edit 312.
324 (SPR 10-12439) Avoid error messages if the CCL file is missing.
If the cause is missing directory, etc., the message will be
suppressed.
325 Allow duplicate switches with the same value without giving an
error message.
326 (SPR 10-12416) Correctly diagnose time values with the hours
greater than or equal to 24 as an error.
327 Add an entry point, .QSCAN, which is to be used when .PSCANing
for all but the main question. It doesn't initialize quite as
strongly.
330 (SPR 10-12,344) Improve the error message when there is junk
after the indirect file spec in an indirect specification.
331 Detect the case that /BEFORE and /SINCE don't overlap with the
result that nothing could ever match. Issue a new message for
this case.
332 Create routine .STOPB which is like .STOPN but has the path block
as an argument. This is in a separate module to allow it to be
loaded in separate segments from SCAN.
333 Add a new routine .ERMSG which will issue the prefix and initial
text of an error message.
334 Change ".SCNDC" to "$SCNDC".
335 More of edit 327.
SCN5.DOC Page 21
336 Add routine to type out a value which is a core size. It
verifies that the value is an exact number of pages or K
(depending upon processor type) and then outputs it with a P or K
suffix. If the number is not exact, it is output as words with a
W suffix. The core-size input routine has been expanded to allow
W as a suffix to mean words. Similarly, it will also allow a
suffix of B to mean blocks (128-words).
337 Add routines .BLOKW/C and .TBLOK to input and output units of
file size. On input, the same suffixes that can be used for core
input are valid (W, B, P, or K), with the value defaulting to
blocks if no suffix is specified. The output routine will type
the number as blocks with a B suffix if exact; otherwise, it
will type it as words with a W suffix.
340 Add routine .TOLEB to type out a file specification in
OPEN/LOOKUP format.
341 More of edit 277.
342 More of edit 316.
343 To aid the users, make a compatible change to invoke switch
processors with a PUSHJ. If the processor wants the value
range-checked, it still must call .SWMAX. Otherwise, it can
non-skip return to store the value (same as calling .SWDPB) or
skip-return to not store (same as .SWDON).
a344 Add option to .OSCAN to supply a list of the primary option file
keys. Thus, for example, QUEUE could specify both QUEUE and
PRINT on a .PRINT command so the user can specify different
defaults for different commands.
345 To correctly support edit 344, read and process all lines of the
SWITCH.INI file. Previously, the first matching line terminated
the processing. Now, every matching line will be processed.
This is consistent with the handling of other .INI files in the
system.
346 Add several new switches and associated error messages. /ABEFORE
and /ASINCE are exactly like /BEFORE and /SINCE except that they
constrain the access date rather than the creation date. /LENGTH
takes two file sizes separated by a colon to constrain the file
size. The first size is the minimum file length which will
match, and the second is the maximum. If the first is omitted, 0
is the lower limit; if the second is omitted together with its
preceeding colon, then +infinity is the upper limit. If the
minimum is greater than the maximum, SCAN will issue the message
SCNLVI to indicate that the lengths are inconsistent.
There are also three new output switches: /ERSUPERSEDE,
/VERSION, and /ESTIMATE. /ESTIMATE specifies the estimated file
size, and /VERSION specifies the file version (contents of
.RBVER). The /VERSION switch uses a new input routine, .VERSW,
which accepts a standard version pattern as input. /ERSUPERSEDE
SCN5.DOC Page 22
works only on 5.07/6.01 and later monitors and will result in an
error if the file already exists (would be superseded).
347 Compute the logged in status dynamically for LOGIN. There is a
new routine, .ISLOG, which does this.
350 Fix a deficiency which did not handle end of file at the end of
an indirect specification correctly.
351 (SPR 10-13,045) Correct a bug which happened if DEBUG=0.
352 (QAR 1975) Fix bug in edit 316.
353 (QAR 1975) Allow .VSCAN to use .OSCAN at startup time.
354 (QAR 1975) Clear ^O on the first fatal error message.
355 (QAR 1975) Define a sub-module, .TNEWL, which is called from the
error message module. It will force the output to the beginning
of the line. The routine supplied in SCAN currently just calls
.TCRLF. If the user has supplied his own routine, then load SCAN
in /SEARCH mode to eliminate this one.
356 Define two error message entry points. E.DSI issues the message
that double switch is illegal. If the option file is being
processed, then it does not issue an error message. E.SVR issues
the message that switch value is required.
357 In verb mode, allow a file specification to include switches
which modify file specs. Thus, for example, the DUMP command
INPUT, which takes one file spec as its value, can include
switches such as /PHYSICAL, but not such as /RUN. The legal
switches are those commands which point to the SCAN or user
file-specific regions as defined in the call to .VSCAN. Also,
when a file-modifying switch is given as a verb, have it become
the sticky default. Remove the old hack of preceeding a verb
with "." to indicate default.
360 In verb mode, allow a command call via the RUN command. If the
program has a monitor command, or if the user invokes it with
(...) on the command, then treat any unquoted / as separating
verbs (i.e., the same as end of line). Thus, for example, DUMP
can be invoked as:
.RUN DUMP (/IN:FOO /DUMP:ALL)
to dump all of file foo.
361 More of edit 352.
2.1 SCNMAC CHANGES
71 Define FS.OBV.
SCN5.DOC Page 23
72 Define symbols of the form JWW.?? which are the values returned
by the routine .VERBO.
73 Define FS.MIO for .TSCAN calls.
74 Fix the test for maximum default to correctly allow -1.
75 Add switch type SN.
76 Add the SCAN words .FXABF, .FXASN, .FXFLI, .FXFLM, .FXEST, and
.FXVER for the switches /ABEFORE, /ASINCE, /LENGTH, /ESTIMATE,
and /VERSION. Add the byte FX.SUP for the switch /ERSUPERSEDE.
3.0 KNOWN BUGS AND DEFICIENCIES
None.
4.0 INSTALLATION INSTRUCTIONS
Note that although there are several programs which use SCAN and WILD,
we will not necessarily rebuild all of them when SCAN is released.
Typically, the various utilities such as DIRECT and QUEUE and DUMP
will be rebuilt, but major products such as LINK and FORTRAN will not
be rebuilt until their next release. If the customer wishes to
rebuild, he may, but usually the changes to SCAN and WILD do not
warrent the cost of rebuilding and testing.
5.0 SUGGESTIONS
Allow indirect files to nest. This would make their behavior be more
like COMPIL. This would also allow the option file to be used while
using @ files.
Allow .OSCAN to handle default file switches as well as general
switches.
Implement iteration loops with ().
Implement verbal separators to allow commands such as "COPY A TO B" or
"COPY B FROM A".
Make SCAN (and perhaps WILD) be a separate segment which can be
GETSEGged when needed.
Add a routine which can input a SIXBIT symbol name (i.e., allowing % $
and .).
Add a switch which causes an exit to the monitor. This would
occasionally be useful in indirect files.
SCN5.DOC Page 24
(SPR 10S-031) Add a standard switch to specify the number of lines per
page.
Add a routine like .SWMAX which would verify that the result is in a
specified range (.SWMAX only allows the range 0-max).
Add a routine to issue system-wide standard messages, such as FNF FILE
NOT FOUND.
Add an option to .OSCAN to allow the caller to specify a secondary key
(or list of secondary keys) and allow .OSCAN to match these against
ranges in the SWITCH.INI file. This could allow a program such as
LOGIN to select a different line depending upon which terminal the
user was using.
(QAR 1975) Add an option to the /MESSAGE switch to suppress the
constant text portions and just output the parameters.
(QAR 1975) Treat the command .XXX A=B, C=D as two separate commands
(lines).
[End of SCN5.DOC]
[SCN4.DOC is appended as an integral part of SCN5.DOC]
SCN4.DOC Page 25
SCAN.DOC -- Changes from V3 to V4
November 1973
1.0 SUMMARY
This release gives the caller more control of the environment when
SCAN is running. It also add support for quoted strings and multiple
switch values. A number of bugs and deficiencies have been fixed
including all SPRs recieved through October 10, 1973 (10-11663). This
version incorporates fixes to problems found during the testing of
FORTRAN-10 and LINK-10.
SCAN version 4 runs on all monitors. It has been tested on 5.06.
SCAN version 4 depends on WILD version 4 or later. There are no known
deficiencies. This version fully supports the DATE75 project.
SCAN version 4 is documented implicitly in the software notebook
description of DIRECT and DUMP. Supporting documentation can be found
in the .DOC files for WILD version 4 and DIRECT version 3. A formal
specification for SCAN is under development.
1.1 Function of SCAN
SCAN is designed to be used as a subroutine by programs needing a
command scanner. It supports four basic types of commands. One is
the traditional form of output device(s) = input device(s). In this
case, options are controlled by switches preceded by a slash. The
switches are an abbreviated word. Values for the switch are indicated
by following the switch name by a colon and the value. The second
type of command structure is that each line consists of a verb
followed by arguments (values). To indicate this type of command
string, the prompt character has been made a slash. The third type of
command structure is used when the caller issues a prompt, typically a
dialogue question, and then needs to scan a particular construct. The
fourth type of command structure can be used with the above three to
read the user's profile and change the defaults. For convenience,
SCAN includes a moderate error message facility and a comprehensive
set of type-out routines.
2.0 CHANGES
174 Add switches /NOSTRS, /NOPHYSICAL, and /ERNONE which are the
defaults and the opposite of /STRS, /PHYSICAL, and /OKNONE.
175 Add /NOOPTION switch to suppress option file logic.
176 Fix a bug in .PSCAN which came up if the program was invoked by a
monitor command and had no arguments.
SCN4.DOC Page 26
177 Add a defensive HALT to ensure that .OSCAN is called only at end
of line.
200 (Many SPRs) Detect the user error of giving "0" as project or
programmer number.
201 Add code to clear sticky defaults on each line of .VSCAN and
.PSCAN.
202 Make two more error messages (E.INCL and E.ILSC) be declared
INTERN.
203 Correct a bug in handling of directories in switches which take a
file specification as their value.
204 Add code to pre-clear the .NMUL area on each switch.
205 Fix /HELP:SWITCHES to give a clean printout if the caller has
supplied no switches. Also, declare .SWHLP to be INTERN for
.PSCAN callers.
206 (SPR 10-9709) Add code to print wild project and programmer
numbers with "*" and "?" instead of "7".
207 (SPR 10-10004) Rework /RUN code for better consistency. In
particular, if commands appear on the same line as the /RUN
switch, process those commands before the switch. This then
allows the /RUN switch to appear in the option file, SWITCH.INI.
Switches which take files as arguments will now go to the
caller's exit routine if specified. N.ZER and N.EZER are now
INTERN for .PSCAN callers.
210 Correct a bug which incorrectly tested multiple word switches for
duplication.
211 Add code and a new error message to distinguish in keyword switch
values the difference between unknown values and ambiguous
values.
212 Remove tests for old style alt-modes. 175 and 176 will now be
legitimate characters. The old behaviour can be restored with
the unsupported feature test FTALT==1.
213 Set FX.NDV even if no file specification is typed.
214 (SPR 10-10123) Remove PURESW since it does not work, is
unsupported, and /H to LOADER is easier.
215 Create a dummy file SCANDM.MAC which can be loaded with other
overlays of multi-segment programs to reserve SCAN's low-seg
area. This will be updated with each release of SCAN.
216 Support FS.NFS (see SCNMAC edit 55).
217 Support FS.LRG (see SCNMAC edit 56).
SCN4.DOC Page 27
220 Change symbol U.MOUT to FS.MOT.
221 Add routines .CKNEG and .SENEG. Declare them INTERN for caller's
special numeric scan routines.
222 Implement a new routine .STOPN to convert file specifications
from SCAN format to OPEN and LOOKUP format. This routine
disallows wild-cards, but fully supports SFDs and the /DENSITY
/PARITY and /PHYSICAL switches. Use this routine for indirect
files and /RUN processing.
223 Add code to handle commands on the same line as the monitor
commands R, RUN, or START. If the program is started with one of
these and the same line has a left parenthesis, then the text
within parentheses will be the command to the program. After
finishing this command, SCAN will return to monitor command
level. Thus, for example, the user can type:
.RUN DIRECT (/F/W)
and get the same effect as running the program and giving it the
command /F/W and then typing ^C.
224 Add code to accept device TMPxxx: for indirect files. If the
device does not exist, try TMPCOR using the first three
characters of the file name. If that fails, try
DSKxxx:nnnaaa.TMP where nnn is the job number in decimal with
leading zeroes and aaa is the first three characters of the file
name.
225 Add new routines for the caller, .PSH4T and .POP4T which push and
pop the four temporary ACs.
226 Add new routines to scan a single core argument with optional K
and P suffixes (.COREW and .COREC). Add switch routine .SWCOR
for a switch which takes a core argument as its value. Add
switch /RUNCORE:core arg which sets the core size to be used in
the next /RUN switch.
227 Support FS.NUE (see SCNMAC edit 61).
230 Add new routines to handle quoted strings. .TICQT and .TISQT
will set quote mode (usually to be on a double quote (")). In
quote mode, all characters are passed literally including
multiple spaces. pairs of the quote character represent the
quote character. End of line will terminate the quote. Thus,
for example, to represent the string -- 2+3"5 -- the user would
type "2+3""5". Allow file names and extensions to be quoted.
Add routines .SIXQW and .ASCQW to read quoted strings. If the
string starts with neither quote, then it can contain only
alphabetics and numerics. Add routines .SWASQ and .SWSXQ to
handle switches with quoted string values.
231 Add routine .KLIND for LINK-10 to call on a /GO switch; it kills
off the indirect file including deleting TMP files. Call this
routine on a /RUN switch.
SCN4.DOC Page 28
232 Add multiple switch values in .TSCAN and .PSCAN modes. These are
exercized by the user typing /switch:(val1,val2,...valn). These
require the calling program to accept the values via the special
switch value exit routine.
233 Handle lower case in .TICAN.
234 Add routine .REEAT to cause the last character to be seen again
(reeaten).
235 Require that switch values end with a non-alphanumeric.
236 Add switches /OKPROTECTION and /ERPROTECTION for WILD.
237 Support FS.VRQ (SCNMAC edit 65).
240 Make all errors during .OSCAN appear as warning messages.
241 Handle .VSCAN sticky values for multiple word values except for
file verbs.
242 Change user's apply sticky routine to be called before allocating
space.
243 Add routine .CLRFL which the caller can call to clear the file
area.
244 Internal change only.
245 In .TSCAN mode, recognize @ only at start of line.
246 Add another argument to .ISCAN to allow the caller to control
(issue) all prompt characters.
247 Cancelled by edit 271.
250 Correct a bug in the date defaulter. This bug had the effect
that if the user typed /AFTER:21 at 21:10, meaning "after 2100
tomorrow", the result was actually "after 2200 today". The
correct meaning is now implemented.
251 Correct a bug in the MONRT. logic which resulted in a bug when
called from QUEUE and not logged in.
252 For the convenience of 2741 users, allow < and > as synonomous to
[ and ].
253 On an indirect file with no extension specified, if the .CCL file
is not found, try the extension .CMD before trying the null
extionsion.
254 Fix bug introduced in edit 200.
SCN4.DOC Page 29
255 (SPRs 10-11399, 10-11423) Correct a bug which kept the values of
the /BEFORE and /SINCE switches from applying to all succeeding
files when typed before the file name.
256 In the type-out routine, correctly type all 5 SFDs.
257 Handle years greater than 2000 in the date typer.
260 Fix bug introduced in edit 224.
261 (SPR 10-11663) Allow Jan-1-1964 in dates.
262 (QAR 1400) Print "." after ".KJOB".
263 Add new routine .MNRET which always returns to the monitor.
264 Change .PSCAN to never handle the /RUN switch automatically. Add
a routine .RUNCM which will handle the /RUN switch if typed and
return otherwise.
265 Modify edit 230.
266 Correct a bug in .PSCAN when called in the middle of a line.
267 (QAR 1396) When in command line mode (from a monitor command such
as ".DIRECT") if the command is continued, issue the prompt.
270 Modify edit 223.
271 Cancel edit 247.
272 Adopt "!" as an alternate comment character to agree with the
standard DEC language commenting character.
273 When scanning an octal value, allow a trailing "." to force
decimal. Ignore a trailing "." on decimal values.
274 Add a new error message when the user omits the value of a
date/time switch: "Value missing in date/time".
275 Correct a bug introduced in edit 207.
2.1 SCNMAC Changes
53 Add comments to the definitions of .FX... area to indicate under
what conditions each field is 0.
54 Add defensive PRINTXs to the SWTCHS macro.
55 Add flags concept to the switch tables. Implement FS.NFS for
switches which do not constitute a command such as /RUN.
56 Add FS.LRG to allow default and maximum values which are greater
than 2**17.
SCN4.DOC Page 30
57 Add FS.MOT definition for flags on call to .TSCAN.
60 Add definition of flags to .TDIRB call.
61 Add FS.NUE to suppress caller exit on this switch.
62 Clean up listing of first page.
63 Allow * construction in keyword values to indicate that a single
letter abbreviation is acceptable.
64 Add FX.PRT for /OKPROTECTION switch.
65 Add FS.VRQ to indicate a switch for which the value is required.
66 Remove the symbol FX.ADD which was obsoleted by edit 50 in
version 3.
67 Test bad arguments to the SWTCHS macro only during pass 2. This
eliminates some pass 1 error messages.
70 More of 67.
3.0 KNOWN BUGS AND DEFICIENCIES
None.
4.0 INSTALLATION INSTRUCTIONS
None.
SCN4.DOC Page 31
5.0 SUGGESTIONS
Add an output-only switch, /VERSION, which would take standard -10
format version numbers as argument. This would then be used to
specify .RBVER when the file is ENTERed.
Allow indirect files to nest. This would make their behavior be more
like COMPIL.
Allow .OSCAN to handle default file switches as well as general
switches.
Implement iteration loops with ().
Implement verbal separators to allow commands such as "COPY A TO B" or
"COPY B FROM A".
Make SCAN (and perhaps WILD) be a separate segment which can be
GETSEGged when needed.
[End of SCN4.DOC]
[SCN3.DOC is appended as an integral part of SCN4.DOC]
SCN3.DOC Page 32
SCN3.DOC -- Changes from V2 to V3
October 1972
1.0 SUMMARY
This release adds two new modes of command scanning. The first is
"PSCAN", which handles partial line scanning, such as dialogue
programs. The second is "OSCAN" which is sed during all SCANs to read
optional user defaults from a user profile file. In addition, the
/BEFORE and /SINCE switches have been added. These allow the user to
subset wild-file selection to cover only those files created before
and/or since a specific date-time. Many internal changes have been
made and all SPR's have been answered. Many internal routines have
been made available to the caller.
SCAN version 3 runs on all monitors. It has been tested on 5.04A, and
5.05. SCAN version 3 depends on WILD version 4. There are no known
deficiencies.
SCAN version 3 is documented implicitly in the software notebook
description of DIRECT and DUMP. Supporting documentation can be found
in the .DOC files for WILD version 4 and DIRECT version 3. A formal
specification for SCAN is under development.
1.1 Function of SCAN
SCAN is designed to be used as a subroutine by programs needing a
fairly complex command scanner. It supports four basic types of
commands. one is the traditional form of OUTPUT DEVICE(s) = INPUT
DEVICE(s). In this case, options are controlled by switches preceded
by a slash. The switches are an abbreviated word. Values for the
switch are indicated by following the switch name by a colon and the
value. The second type of command structure is that each line
consists of a verb followed by arguments (values). To indicate this
type of command string, the prompt character has been made a slash.
The third type of command structure is used when the caller issues a
prompt, typically a dialogue question, and then needs to scan a
particular construct. The fourth type of command structure can be
used with the above three to read the user's profile and change the
defaults. For convenience, SCAN includes a moderate error message
facility and a comprehensive set of type-out routines.
2.0 CHANGES
130 (INTERNAL) All internal statements have been removed. All
routines which seemed at all useful to the caller have been
defined with "::".
131 (SPR 10-7212) When indirect files had continuation lines,
spurious "#" were output. This is fixed.
SCN3.DOC Page 33
132 (SPR 10-7212) "@TTY:" worked for only one line. The test has
been changed to restrict only dectapes to a single block indirect
file.
133 (INTERNAL) Tab equivalence testing is now a separate routine from
the other equivalences (which are all control characters). This
allows specialized handlers, such as quoted string scanners, to
take advantage of the control equivalences. The new entry point
is .TICHT.
134 (INTERNAL) A trivial bug in .CNVDT was fixed.
135 Add the inverse routine to .CNVDT. The new routine, called
.CNTDT converts an internal format date-time word to the system
format date and MSTIME.
136 Create .PSCAN to implement SCAN for callers which need partial or
dialogue scanning. The first program to use this mode will be
LOGIN, which is currently under development. This mode requires
the caller to issue the prompt (which might be a question) and
then call the various routines to SCAN an element of the result,
such as a file spec or a sixbit name.
137 Change ALLDON to .ALDON so that calling programs can handle end
of file. (Useful primarily in PSCAN mode).
140 (INTERNAL) When a CLRBFI is issued, the SCANPC is cleared so that
blank discarding (beginning of line), etc., are reset.
141 (INTERNAL) Range tests were added to .CNVDT and .CNTDT to defend
against junk arguments consistently.
142 Add two more arguments to .ISCAN call. one is the address of a
routine to do TTY input (unless SCAN is reading from an indirect
file). The other is the address of a routine to do a MONRET
(exit if error or ^z).
143 (INTERNAL) Change all references to use .FX symbols in SCNMAC and
change the name of the run argument storage area to N.XXX.
144 Add /BEFORE and /SINCE switches. Both require arguments of
general date-time format, restricted (and defaulting) to the
past. The effect is to constrain wild-card lookups to fail
unless the selected file was created in the range of /SINCE
through /BEFORE. If either is not specified, /BEFORE defaults to
+INFINITY and /SINCE to 1-Jan-64.
SCN3.DOC Page 34
DATE-TIME is of the following general format: An optional sign
(+ or -), an optional date, and an optional time. if a sign is
specified, it indicates past or future. (Both /BEFORE and /SINCE
imply past, so + is illegal and - is ignored but accepted.) If
both date and time are present, a colon separates the two fields.
Spaces are illegal from the start of the switch through the end
of its value (as with all switches). Two basic meanings of the
argument are allowed: RELATIVE and ABSOLUTE. Relative specifies
a distance from now, absolute specifies a specific date and time.
A relative value is of the form: optional number of days
followed by a "D", required hours, optional minutes, and optional
seconds (seconds implies minutes). If days are absent, the time
must be preceeded by a "+" or "-". Subfields are separated by
colons. Thus, "-3D:4:27:21" means three days four hours twenty
seven minutes and twenty one seconds ago. Similarly, "+4" means
four hours from now.
An absolute value is of the form: optional weekday or date, and
optional time of day specification. A time of day is of the form
hour (twenty four hour clock), optional minute, and optional
second. Fields are separated by colons. Weekdays are the days
of the week or any unique abbreviation. Dates are of the form:
day of month, hyphen, mnemonic month; or mnemonic month, hyphen,
day of month; or month of year, hyphen, day of month. The month
can be abbreviated. Each of the three forms of date can be
followed by an optional year specification of the form: hyphen
followed by one, two, or four digits. Given the knowledge that a
date is in the past or future (either implicit from the switch or
specified by "+" or "-"), any unspecified subfields are filled in
so that the result is the "next or last occurance of the
specified date". In this case, if the time is omitted, it means
00:00:00 if past or 23:59:59 if future. Thus, for example:
/AFTER:SAT After 23:59:59 Next Saturday
/DATE:-WED Date of 00:00:00 Last Wednesday
/SINCE:JUL-3-70:12 Since 3-July-1970 at Noon.
/BEFORE:25-FEB Before Last Feb 25th.
145 Cancelled by 153.
146 Null file specifications are no longer flushed. Previously this
resulted in poor results in queue which will be cured when queue
is updated to call SCAN.
147 (INTERNAL) More of 144.
150 Add .OSCAN which handles option files. When called, OSCAN reads
file "DSK:SWITCH.INI[,]/PHYSICAL" (i.e., the user's profile)
(mnemonic for switch initialization) to find user specific
defaults. This file consists of lines of the form program name
followed by an optional colon and option name. The program name
is an argument to .OSCAN (default is from .GTPRG) and the option
name is the value of the /OPTION switch (see 151). No
abbrebviations are allowed to the program name or option name.
SCN3.DOC Page 35
The rest of the line is switches with optional values separated
by "/", ",", or " ". These switches supply defaults for switches
not specified by the user, but are ignored if the user specifies
the switch explicity. The list of switches which the user can
type need not be the same as the list from the profile file, but
usually they should be the same.
For example, if the user decided that he normally prefered /FAST
format directory listings, he could create a line in the file
named SWITCH.INI in his UFD. This line would be:
"DIRECT /fast" and all his directory listings would be in /FAST
format unless he typed /NORMAL or /SLOW (the complements of /FAST
in direct). Similarly, if the user found that the DUMP defaults
were not to his liking, he could create a line
"DUMP/IRADIX:8/ORADIX:8" and DUMP would always start off in octal
mode. He could then add a line
"DUMP:DECIMAL/IRADIX:10/ORADIX:10" and he could use the command
"/OPTION DECIMAL" to DUMP in order to switch it to decimal radix.
151 Add new switch /OPTION:OPTION-NAME to specify the default option
of this program (see 150).
152 Add entry .SWFIL to SCAN a file specification for a file switch.
153 Cancel edit 145.
154 Correct bugs in 150 when option file is missing. The lookup
error can be 0, 1, 23, or 24 to avoid an error message.
155 Add routine .TERRP which types the leading question mark and text
of error messages
156 Split SCAN into four sub-modules--.SCAN, .TOUTS, .CNTDT, and
.SAVE to handle scanning, typing, date conversion, and preserved
AC saving. There is still one source and one .REL file, but a
subset of modules can be selected by library searching SCAN.REL.
157 Create universal SCNDCL to pass parameters to the four
submodules.
160 Handle numbers in the illegal character message.
161 Update LASCHR on string input (.TIGET) to handle EOF in a string
correctly for DUMP.
162 Define .SCANZ, .SCANL, .TOUTZ, .TOUTL as start and length of low
segments for SCAN and TOUTs.
163 Clean up EXTERNs by running GLOB.SNO. All EXTERN statements have
been removed (and INTERNs) and each occurence has been replaced
with ## (and ::).
164 Give the caller exit only on the caller's switches.
165 Add .TTABC routine to type a tab, etc.
SCN3.DOC Page 36
166 Allow for partial word in last word of indirect file buffer. If
this word is incomplete, then bit 35 should not be examined to
look for sequencing.
167 Add .TTIME, .TDATE to type out date and time.
170 Make multi-word area handle worst case (30. WORDS).
171 Correct a bug in .TRDXW to handle an argument of 1B0 in the
general radix output routine.
172 Correct a bug in .NAME to correctly recognize a six-character
input name (SWITCH) when matching "*" entry (e.g., "NORMAL" in
direct).
173 Correct a bug in .FMSGX which would foul up the push-down pointer
under .TSCAN mode. This routine is called on errors and /HELP
switches.
2.1 Changes to SCNMAC.MAC
50 (INTERNAL) Add symbols for all the words and lengths in the SCAN
block. Add FX.TRM and FX.DFX for WILD. Introduce .FXTRA,
.FXTRO, .FXTRN, and .FXTRC. Obsolete FX.ADD.
51 (INTERNAL) Add FX.NDV for the /RUN processing.
52 Make SCNMAC useable as a universal file (the same techniques as
C.MAC). Define %.C==-3 to use as a universal.
3.0 KNOWN BUGS AND DEFICIENCIES
Sub file directories and the /PHYSICAL switch are not supported in run
and indirect processing.
Error routines type 777777 instead of * for WILD directories, etc.
The routine .TDIRB needs to be improved to handle the directory mask
words.
4.0 INSTALLATION INSTRUCTIONS
None.
5.0 SUGGESTIONS
Change "+" to "!" for the inclusive or function. Use "+" only for
file concatenation.
SCN3.DOC Page 37
Allow indirect files to nest. This would make their behavior be more
like COMPIL.
Implement the separator "-" to mean "EXCEPT", the way "+" means
"INCLUSIVE OR". Thus, A.*-A.B would mean all files named a except
A.B.
Implement iteration loops with <> or ().
Implement verbal separators to allow commands such as "COPY A TO B" or
"COPY B FROM A".
Implement the operator service style command SCAN. This is
essentially a verb SCAN except that the job will run when"WAITING" for
a command. This is indicated by the prompt character !.
Make SCAN (and perhaps WILD) be a separate segment which can be
GETSEGGed when needed.
Allow .OSCAN to handle default file switches as well as general
switches.
[End of SCN3.DOC]
[End of SCN7D]