.so =fmac=/ugh .de cm .sp .ne 3 .ti -5 .bf [1] .br .en cm .de bu .sp .ne 2 .ti -3 [bf .]@[tc] .en bu .TP Software Tools Subsystem .sp Version 7.1 to Version 8 Conversion Guide .AU Terrell L. Countryman Jeanette T. Myers Peter N. Wan .PD "April, 1982" .HE "Version 8 Conversion Guide" .fo //- # -// .pn 1 .MH Introduction .nh Version[bl]8 of the Software Tools Subsystem differs from Version[bl]7.1 in a number .hy of ways, most of which will not impact the average user. Most changes are extensions or internal performance improvements, and affect one or two commands rather than the entire Subsystem. This conversion guide is divided into three sections: [bf Global[bl]Changes] discusses the alterations that affect large portions of the user interface; [bf Status[bl]of[bl]V7.1[bl]Commands] and [bf Status[bl]of[bl]V7.1[bl]Subroutines] describe additions, deletions, and modifications made to individual commands and subroutines. .MH "Global Changes" .SH "Terminal Type Handling" Various programs and library routines now support the tailoring of output for specific terminals. This entailed changes in the library, the macro definitions file, the Subsystem common blocks, 'swt', 'se', 'term', and 'term_type'. You will be affected by these changes if you have added terminal types to 'se' or if you have used the preliminary version of the Virtual Terminal Handler (VTH) library on the Version[bl]7.1 release. Since a prompt for terminal type may now occur upon Subsystem entry, you may have to add terminal types to the "=ttypes=" file or educate your users about terminal types. .pp If you want to extend the terminal type knowledge of the Subsystem, you must add new terminal types and information concerning them to the file "=ttypes=", add a new initialization file in the directory "=vth=" for each new terminal type, and modify and recompile 'se' with new code to handle the new terminal. .SH "Templates" Templates are no longer mapped to a single case. Unless you have some single-case terminals or regularly program in upper-case only, this change is unlikely to affect you. .pp If a template must contain imbedded equals signs, use two consecutive equals signs to pass one through the template expander; in an earlier version of the template processor, the "at[bl]sign" was used to "escape" the equals sign. .SH "Speed" Version[bl]8 of the Subsystem uses considerably less CPU time for I/O than Version[bl]7.1. Unfortunately, if you are moving up to Revision[bl]18 of Primos, you may not notice much difference; Revision[bl]18 can be that much slower than Revision[bl]17. .SH "Memory Segments" Prime has now used all available private memory segments. At Version[bl]8 of the Subsystem, it has become necessary to increase the NUSEG parameter in the Primos configuration file to at least 42 (octal), to provide private segments for the Subsystem that do not conflict with standard Prime programs. This implies that programs using secret knowledge of the Subsystem's common blocks must be relinked. It also implies that you cannot bring up Version[bl]8 without rebooting your system. .pp Listed below are the segments required for the Subsystem: .be .in -5 .ul Version 8 Version 7.1 SWT Shell and template area 2030 2030 SWT Screen Editor 2031 2031 SWT Library 2035 2035 SWT Common 4040 4036 SWT Stack 4041 4035 .in +5 .ee .SH "Process Ids to Three Digits" To accomodate the increase in the number of processes in Primos[bl]18, process ids will be three digits instead of two. The "=termlist=" file has changed slightly in format to accomodate the increased id lengths and AMLC numbers. .SH "Cldata Template" The location of "cldata", a Primos command interpreter data structure referenced by the Subsystem shell, is now a template. The Version[bl]8 release has "cldata" defined to be segment 6002, word 6, which applies to you if you are running Primos[bl]18.3 or above. If you are running Primos[bl]18.2 or lower, there is a commented template in the "Configuration Options" section of "=template=" that you need to use. .SH "Exception Handling" The new version of the shell now allows you to intercept exceptional conditions, such as pointer faults, arithmetic value errors, interrupts, etc. Quits (via control-p or "break") abort the current program and return to command level in the shell, rather than leaving the you stranded in Primos, as was the case in previous versions of the shell. If you have a shell variable named "_quit_action" (the value is not important), then when the quit occurs, the shell will prompt you as to whether to abort the current program, continue, or call Primos. If Primos is called, the current program may be continued by typing START, or the Subsystem may be re-entered by typing REN. .SH "DBG Support" There is now some support for invoking the symbolic debugger from the Subsystem. Please see the Reference Manual entry on 'dbg' for more information. .SH "New Shell Control Variables" The variable "_kill_resp" can be used to set the character string that will be printed on your screen whenever you type a "kill" (the default is the string "\\"); "_prt_form" can be used to specify your usual printing form (the default is to use the default installation printer form); "_prt_dest" can be used to specify your favorite line printer (the default is to use the default installation printer); and, "_quit_action" can be used to take advantage of the new quit handling capabilities of the shell (by default, this variable is not declared and you are automatically returned to the command level of the shell, with no choice of error handling for quits). .pp Note that when a variable is set using either 'declare' or 'set', the value does not take effect until you exit the Subsystem and re-enter. .SH "Deleted Macro Definition" One macro definition has been removed from the standard macros file. ESCCHAR is no longer defined; use ESCAPE instead. .SH "Change in Value of EOS" After Version[bl]8 of the Subsystem, the value of the end-of-string character (EOS) will be changed. The current value of EOS, as defined in the Subsystem definition file, is -2. It will be changed to the value 0 to maintain consistency with the way the C library handles the end-of-string. If you have any programs which depend on the value of EOS being of a certain magnitude (i.e., being negative), you should recode them to avoid depending on that assumption. This change will require the recompilation of all local Subsystem programs. .SH "New Reference Manual Sections" Two new sections have been created to contain low level commands (Section 5) and low level subroutines (Section 6). You should not invoke these commands and routines under normal circumstances; they are usually support routines for user-callable Subsystem commands and routines. .ne 10 .pp The following commands were moved from sections 1 and 3 to section 5: .be 5 .nf .bf 1000 .ta 15 30 45 .tc \ bmerge\bnames\bs bs1\bugfm\bugn guess\mkcl .bf 0 .ee .fi .ta .tc .ne 30 .pp The following routines were moved from sections 2 and 4 to section 6: .be 25 .nf .bf 1000 .ta 15 30 45 .tc \ at$\bponu$\c$end c$incr\c$init\call$$ chunk$\cof$\cpfil$ cpseg$\dgetl$\dmark$ dmpcm$\dmpfd$\dopen$ dputl$\dread$\dsdbiu dseek$\dwrit$\findf$ finfo$\first$\flush$ gcdir$\gcifu$\getfd$ gfnam$\icomn$\iofl$ ioinit\ldseg$\ldtmp$ lopen$\lutemp\mkdir$ mkfd$\mkpa$\mktr$ reonu$\rmfil$\rmseg$ rtn$$\sprot$\st$lu t$clup\t$entr\t$exit t$time\t$trac\tcook$ tgetl$\tmark$\tputl$ tread$\tscan$\tseek$ ttyp$f\ttyp$l\ttyp$q ttyp$r\ttyp$v\twrit$ upkfn$\vt$alc\vt$clr vt$db\vt$db1\vt$db2 vt$db3\vt$def\vt$del vt$dsw\vt$err\vt$get vt$gsq\vt$idf\vt$ier vt$ndf\vt$out\vt$pos vt$put\vt$rdf\zmem$ .bf 0 .ee .fi .ta .tc .SH "New Subsystem Libraries" [bf Vthlib] has been totally rewritten, and is now supported as part of the Subsystem. It is much faster than the earlier version, and offers more features. In general, the rewritten routines are not compatible with those of the earlier release of VTH. Programs which used the earlier version of VTH will have to have the VTH calls recoded to use the new routine names (and new calling formats). .SH "New Subsystem Templates" The templates "=newcmdnc0=" and "=newsystem=" specify where newly compiled Subsystem files that belong in "cmdnc0" and "system" are placed during a recompilation of the Subsystem. The "=ttypes=" file contains a list of terminals supported by your Subsystem and their characteristics. The "=cldata=" template, mentioned above, indicates where the Primos "cldata" data structure is located. The "=sysname=" template is used to indicate the Primenet node name, if the system is a network system. .pp Obsolete templates have been removed from the Version[bl]8 release template file. .MH "Status of Version 7.1 Commands" This section summarizes the user-visible changes that have been made to Subsystem commands for Version[bl]8. It is divided into several subsections: obsolete commands, superseded commands, modified commands, enhanced commands, and unchanged commands. The final subsection is a summary of commands that are new for the Version[bl]8 release. .SH "Obsolete Commands" The commands in this subsection were part of the Version[bl]7.1 Subsystem, but are not included in the Version[bl]8 release. Most of them were used only by certain shell programs and have outlived their usefulness. In other cases, the commands were relics of past Subsystems, and either were no longer useful, or no longer worked. .sp .in +10 .bf No commands are obsoleted at Version 8. .in -10 .SH "Superseded Commands" The commands in this subsection are not part of the Version[bl]8 Subsystem; their functionality has been subsumed by other commands. Each entry describes the command and options you can use to get the same results. .in +10 .cm ar Has been completely rewritten. The old 'ar' is now 'old_ar'. All existing archives should be processed with 'old_ar', and then reprocessed with 'ar', since support of 'old_ar' will be dropped in a future release. .cm dumpls Use the new command 'dump' instead. The command line would be "dump[bl]ls". .cm dumpsv Use the new command 'dump' instead. The command line would be "dump[bl]sv". .in -10 .SH "Modified Commands" The commands listed in this subsection have been modified for the Version[bl]8 release and are no longer completely compatible with their Version[bl]7.1 counterparts. Each entry gives a brief description of the changes, but before using any of these commands, please check the corresponding Reference Manual entry to be sure of the command's exact behavior. .in +10 .ne 6 .cm dprint The argument syntax has been changed slightly. The length option is now "-l[bl]", rather than "-". .sp 'Dprint' can now handle the generation of multiple copies. .ne 6 .cm mon Accepts four commands while running; three are used to reformat the screen and the fourth command redraws the screen. .sp Now uses VTH to do output, so it will work on terminals besides Beehives (any terminal supported by VTH). .ne 8 .cm pg The control-c response causes 'pg' to ignore any remaining file names that were command line arguments and exit to the command interpreter. .sp Default prompt now shows the file being displayed as well as the page number. .sp The "-s" option has been added; it allows you to specify the screen size as an argument. The old syntax of "-" was ambiguous if the was 1, 2, or 3 (it was too close to the Subsystem convention of referencing the standard input/output ports with a "-"). .cm rtime By default, the output of the command being measured is diverted to /dev/tty; you can specify diversion to /dev/null if no output is desire. .ne 8 .cm se Your terminal type can now be obtained by a call to the Subsystem. (This usually eliminates the need to know terminal type mnemonics, or at least the need to retype them as long as the Subsystem knows your terminal type --- if the Subsystem does not know your terminal type, it will prompt you for it when you invoke 'se'). .sp Long input lines are now scrolled horizontally, allowing the cursor to remain visible at all times. .sp New options include "oh[]", to tell 'se' your baud rate; "olm[]", to set the left margin of text to be displayed in the window (permitting handling of very wide files); and, "os[s[bl]|[bl]f[bl]|[bl]f77]", to set several programming language related parameters at once ("oss" for PMA, "osf" for FTN, "osf77" for F77). .sp Documented options include "ok", to indicate whether or not the current edit buffer has been saved; and, "om" to display a message (sent via 'to'). .sp New commands include "e!", "w!" and "q!" which can be used to enter, write or quit without having 'se' tell you if you are about to destroy the contents of your edit buffer or the contents of an existing file. These replace the old forms "ea", "wa", and "qa", respectively. .sp New terminal types supported by 'se' are the hz1510, ts1, tvi, and z19. .sp 'Se' now takes advantage of terminal hardware line insert/delete functions (if they are available for the given terminal) to speed up processing over slower transmission lines (i.e., dialups). The "-h" command line option and the "oh" 'se' command set/query the baud rate you are running at; 'se' decides how many nulls to put out, and whether to use the hardware line insert/delete functions or not, based on a combination of the baud rate and terminal type. If you want to add terminal types to 'se' for locally available terminals, the file "=src=/spc/se.u/how_to_add_terminal_types" explains how to do it (it also includes information on where to add the code necessary to handle the hardware line insert/delete functions). We at Georgia Tech would be interested to know about terminals that you add to both 'se' and the VTH package, so that we can include them in future releases of the Subsystem. .ne 8 .cm sh The shell now handles breaks and control-p. If you declare the variable "_quit_action", you receive a prompt after a break and are allowed to continue the program, terminate the program and return to the Subsystem, or terminate the program and drop out to Primos (for debugging). If "_quit_action" is not declared, interrupted programs simply return control to the shell. .ne 7 .cm term Support for the Subsystem terminal type management routines has been added. .sp New "-newline" and "-eof" options to specify newline and end-of-file characters; new "-vth" and "-se" options to specify whether or not the terminal type is supported by the Virtual Terminal Handler (VTH) and 'se'. .sp Removed "-tab" and "-enb". .ne 4 .cm term_type Now uses the Subsystem terminal type management facilities. Options have been added to query the values of particular terminal attributes, as well. .ne 5 .cm x 'X' now calls the Primos command interpreter directly, via the Primos routine CP$. (This reduces execution time and the amount of garbage displayed on your terminal.) .sp 'X' can execute Primos commands interactively, regaining control when you generate an end-of-file. .in -10 .SH "Enhanced Commands" Commands in this subsection have been functionally enhanced for the Version[bl]8 release, but remain compatible with their Version[bl]7.1 counterparts. .in +10 .cm change Accepts a string as an argument that is to be searched for a pattern. .cm declare Will not modify a shell variable that has already been declared at the current level. .cm declared No longer decides whether a shell variable is "declared" if an illegal lexical level offset is supplied. .cm define Finally does what the documentation says it will do. .cm diff A "-b" option has been added to allow direct binary comparison of files. (Note that files that compare "equal" under the usual text comparison may not be equal under the binary comparison, because of blank compression.) .cm e Takes 'se' options as arguments and uses new terminal type handling. .cm f77c New "-w" option to generate floating round instructions which improves the accuracy of single precision floating point calculations. .cm fc New "-w" option to generate floating round instructions which improves the accuracy of single precision floating point calculations. .cm file No longer returns "-1" when it could not perform a test on a file; it returns a zero, which is in accordance to the documentation. An error message is written to ERROUT for this case. .cm fmt New ".eo" and ".oo" commands to specify different page offsets for even- and odd-numbered pages. .sp Documented the ".dv" (divert stream) command which, when used in conjunction with ".so", can produce an automatic table of contents. .cm guess Requires an argument that is the command name to be used and optionally accepts a "tolerence" level. .cm guide Version[bl]8 Conversion Guide now available. .cm hd New "-n" and "-u" options to display "normalized" (440 words/record) or "unnormalized" (1024 words per record) record counts, respectively. .cm help Documented the "-u" option to print usage for command(s). .sp 'Help' now uses 'page' for paging so you can use all the responses acceptable to 'page'. .cm ld The templates "=cm_loc=" and "=tp_loc=" are checked to allow overriding the default segment numbers for Subsystem common blocks and template storage areas. This is useful if you are modifying the Subsystem and must run a production copy and a development copy side-by-side. .cm lf New "-q" option to print nonowner password. .cm mail Mail is saved in the file defined by the template "=mailfile=". The Subsystem default is "=varsdir=/.mail". .sp Checks for valid addressee name(s) before reading the letter to be sent. .cm mkclist New "-s" argument to create the system defined command list ("=ubin=" is ignored). .cm moot An "index" command has been added to summarize the entries that have been made in the current conference. .cm mt 'Mt' has been heavily modified to fix all known bugs. .sp New "-v" option to cause 'mt' to print the number of blocks read or written. .cm plgc New "-w" option to generate floating round instructions which improves the accuracy of single precision floating point calculations. .cm print New "-i" option to indent listing, "-j" option to cause 'print' to put a FORMFEED character at the end of a page instead of generating the number a blank lines required to get to the top of the next page, and a "-l" option to indicate the number of lines per page. .cm publish A warning is now issued if you interrupt a 'publish' (interrupting a 'publish' has possible harmful side effects). .cm retract A "-q" option has been added to allow retraction of a news article without printing a retraction notice. .cm rp Declarations are now handled as a separate data stream. .sp You can now put statements in your Ratfor program that will not be touched by 'rp' and you can indicate if those statements are to be routed to the "declaration", "data", or "code" stream. .sp A "-g" option has been added to invoke an algorithm that tries to eliminate chains of GOTO statements. (When this was applied to the preprocessor itself, a 10% speedup resulted.) .sp New "-x" option and a accompanying translation table can be used for user definable character code translation. .sp A new "-y" option is available that causes 'rp' to not place "call[bl]init" and "call[bl]swt" statements in the Fortran code. .sp Several internal speed-up improvements have been made. .sp String tables now allow multiple slashes, causing marginal index entries to be duplicated. The maximum string table size has been increased. .sp The standard Ratfor macro definitions file now includes "SET_OF_GRAPHICS" and "SET_OF_SPECIAL_CHAR" for use in "when" clauses in Ratfor. .cm sema Now handles named and negative (Primos system) semaphores. .cm stacc A "null token" construct (epsilon) has been added to cause a match without scanning any input. .sp A "quick select" construct has been added to permit fast selection between a number of alternatives beginning with distinct terminal symbols. .sp General processing speed has been improved by eliminating the use of temporary files. .sp 'Stacc' can now generate code in the C programming language, as well as Ratfor. The Reference Manual entry has been corrected so that it no longer indicates that SSPL, Pascal, and PLP are supported (they are not). .cm tail Now correctly accepts a filename as an argument, even if it is the only argument (before, 'tail' would try to convert the lone file name as the number of lines parameter, get an error in the conversion, and end up reading the default number of lines from standard input). .cm tlit Running time has been improved drastically. .sp For compatibility with 'take', 'drop', and other command line utility functions, 'tlit' can also accept strings as arguments to be transliterated. .cm to The header line format has been changed, to provide more information. .cm translang Added the "nor" operator, which was inadvertently left out of the lexical analyzer. .cm who Changed to call the new Primos GMETR$ to access the system data bases. .sp An "r" flag is appended onto the pid if the user is a remote user. .in -10 .ne 40 .SH "Unchanged Commands" This subsection lists the commands that have no user-visible changes made for Version[bl]8. .be 37 .tc \ .ta 15 30 45 .bf 1000 alarm\arg\args argsto\as11\as6800 as8080\banner\basys batch\block\bs bug\bye\cal case\cat\cd chat\chown\clear clock\cmp\cn col\common\como copy\copyout\cp crypt\ctime\cto date\day\declared del\detab\dmach dnum\drop\echo ek\else\entab error\esac\eval exit\f77cl\fcl fdmp\fi\field files\find\fixp fmt\focld\forget fos\fsize\goto history\hp\if imi\include\index installation\intel\iota join\kill\kwic lam\ld\length lex\lib\line link\lk\locate log\login_name\lps macro\memo\mkclist mkdir\mklib\mktree mkusr\mot\mv nargs\news\opt6800 opt8080\os\out p4c\p4cl\passwd pause\pc\pcl ph\phist\phone plgcl\pmac\pmacl pr\print\profile publish\pwd\pword quote\rcl\rf rfl\rmusr\rnd rot\rsa\save scroll\sep\set sh\show\shtrace size\slice\sort source\sp\speling sspl\ssr\st_profile stats\stop\subscribe substr\symbols\systat take\tc\tee template\then\time ts\uniq\unoct unrot\us\usage vars\when\whereis whois\xref .bf 0 .ee .SH "New Commands" This subsection lists commands that are new for Version[bl]8. .in +10 .cm basename Select various portions of a pathname. .cm bmerge Merge object code files into one file for building a library. .cm bnames Print entry point names in object files. .cm bs1 Identical to 'bs' except that it reduces search time, with the possible result of having a less intelligent guess. .cm bugfm Format a bug report created with the 'bug' command. .cm bugn Process the highest bug number. .cm cc Compiles a C program with the Subsystem C compiler. .cm ccl Compiles and loads a C program. .cm cdmlc Compiles a Prime DBMS Cobol Data Manipulation Language program. .cm cdmlcl Compiles and loads a DBMS Cobol Data Manipulation Language program. .cm cobc Compiles a Cobol program. .cm cobcl Compiles and loads a Cobol program. .cm csubc Compiles a Primos DBMS Cobol subschema. .cm dbg Interface to Primos source level debugger. .cm ddlc Compiles a Prime DBMS schema. .cm des An implementation of the National Bureau of Standards Data Encryption System. .cm dump Debugging aid which dumps the shell's various internal data bases in a semi-readable format. This command supersedes the Version[bl]7.1 commands 'dumpls' and 'dumpsv'. .cm fdmlc Compiles a program written in the Prime DBMS Fortran Data Manipulation Language. .cm fdmlcl Compiles and loads a Prime DBMS Fortran Data Manipulation Language program. .cm fsubc Compiles a Primos DBMS Fortran subschema. .cm last Allows you to look at the last few lines of a file. .sp Can also count the number of lines in a file very quickly. .cm mkcl Make a command list in compressed binary format for use with the 'guess' command. .cm old_ar Subsystem archiver from Version[bl]7.1; included to allow you to retrieve your files and convert to the new archiver, 'ar'. .cm plpc Compiles a PL/P program. .cm plpcl Compiles and loads a PL/P program. .cm primos Allows the use of the Primos command interpreter from the Subsystem. This command is somewhat different from the 'x' command, in that 'primos' causes a new level of the Primos command interpreter to be initiated. .cm radix Convert numbers from one radix representation to another. .cm raid Examine bug report submitted with 'bug' command (this is intended for the use of the Subsystem manager). .sp The bug reports can also be optionally be printed so that a hardcopy may be obtained. .cm rdcat Relational database command which concatenates two identical relations. .cm rdextr Relational database command which extracts relation data from a given relation. .cm rdjoin Relational database command which joins two relations. .cm rdmake Relational database command which constructs a relation from a data file. .cm rdprint Relational database command to print a relation or a relation descriptor. .cm rdproj Relational database command to project a relation. .cm rdsel Relational database command to select tuples of a relation. .cm rdsort Relational database command to sort a relation. .cm rduniq Relational database command to remove duplicate tuples from a relation. .cm sol Game of solitaire. A good demonstration of the new Virtual Terminal Handler (VTH) package. .ne 5 .cm spell Faster than 'speling'. .sp Has a "verbose" output format to aid in locating misspelled words. .sp Is more intelligent about not reporting formatter commands as misspelled words. .cm tip Check if terminal input is pending. .cm vpsd Interface to invoke the Primos V-mode Symbolic Debugger on Subsystem programs. .in -10 .MH "Status of Version 7.1 Subroutines" This section summarizes the user-visible changes to the Subsystem library routines. It is divided into several subsections: obsolete routines, superseded routines, modified routines, enhanced routines, unchanged routines and new routines. .SH "Obsolete Routines" The routines listed here were only used by other library routines. Since their services are no longer required, they have been deleted. .in +10 .cm cmdf$$ Obsoleted because of a smarter shell. .cm rtr6800 The SSPL run-time support library for the M6800 microprocessor has been removed. .cm vt$bc Obsoleted by the new VTH routines. .cm vt$cc Obsoleted by the new VTH routines. .cm vt$ld Obsoleted by the new VTH routines. .cm vt$ll Obsoleted by the new VTH routines. .cm vt$mv Obsoleted by the new VTH routines. .cm vt$pk Obsoleted by the new VTH routines. .cm vt$rc Obsoleted by the new VTH routines. .cm vt$upk Obsoleted by the new VTH routines. .cm vtceol Obsoleted by the new VTH routines. .cm vtceos Obsoleted by the new VTH routines. .cm vtenc Obsoleted by the new VTH routines. .cm vtinl Obsoleted by the new VTH routines. .cm vtins Obsoleted by the new VTH routines. .cm vtmvdn Obsoleted by the new VTH routines. .cm vtmvlf Obsoleted by the new VTH routines. .cm vtmvrt Obsoleted by the new VTH routines. .cm vtmvup Obsoleted by the new VTH routines. .cm vtpos Obsoleted by the new VTH routines. .in -10 .SH "Superseded Routines" The following routines have been subsumed by other more powerful routines. Each entry names the Version[bl]8 routine that performs the same function. .in +10 .cm inloc$ Use 'decode'. .cm itoc0 Use 'gitoc' or 'encode'. .cm itoc8 Use 'gitoc' or 'encode'. .cm prot$ Use 'sprot$'. The name was changed to avoid a conflict with the Primos routine of the same name. .in -10 .SH "Modified Routines" The routines listed in this subsection have been modified so that they are no longer compatible with their Version[bl]7.1 counterparts. Although each entry briefly describes the changes that have been made, you should examine the corresponding Reference Manual entries to determine the exact behavior of the routines. .in +10 .cm cof$ Requires a "state" argument. .cm enter 'Enter' is now a function that returns a pointer to the dynamic storage area containing text of next symbol. .cm expand If a template must contain uninterpreted "="s, do not precede it by a "@" but by another "=". .cm iofl$ Requires a "state" argument. .cm sys$$ New argument to specify file unit from which the Primos command takes its input. .cm tscan$ The 'path' argument is changed by this routine, but was not documented to say so. The documentation has been changed. .cm vt$db Has been rewritten for new VTH library. .cm vt$del Has been rewritten for new VTH library. .cm vt$out Has been rewritten for new VTH library. .cm vtclr Has been rewritten for new VTH library. .cm vtinit Has been rewritten for new VTH library. .cm vtputl Has been rewritten for new VTH library. .cm vtterm Has been rewritten for new VTH library. .cm vtupd Has been rewritten for new VTH library. .in -10 .SH "Enhanced Routines" The routines listed in this subsection have additional functionality in the Version[bl]8 release, but remain compatible with their Version[bl]7.1 counterparts. .in +10 .cm call$$ Accepts an optional argument for the creation of an on-unit. .cm date There are now system defines for the request keys (so that actual numbers for the type of request need not be supplied). .sp New values returned are minutes, seconds and milliseconds past midnight. .cm dopen$ Now takes an argument to determine the number of retries on encountering a "file in use" situation. .cm getto MFD passwords are now consistently assumed to be "XXXXXX". Mixed-case passwords have caused several problems; the real source of the difficulty is a change Prime made to TA$ that renders it incompatible with earlier revisions of Primos. .cm lopen$ Will put in the values for the user's shell variables "_prt_form" and "_prt_dest", if available, in the spooler entry. .cm open Now takes a fourth argument to determine the number of retries on encountering a "file in use" situation. .in -10 .ne 50 .SH "Unchanged Routines" No user-visible changes have been made to the routines listed in this subsection. .be 30 .tc \ .ta 15 30 45 .bf 1000 addset\amatch\atoc c$end\c$incr\cant catsub\chkarg\chkinp close\cpfil$\cpseg$ create\ctoa\ctoc ctod\ctoi\ctol ctomn\ctop\ctor ctov\decode\delarg delete\dgetl$\dmark$ dodash\dputl$\dread$ dsdbiu\dsdump\dseek$ dsfree\dsget\dsinit dtoc\dwrit$\edit encode\enter\equal error\esc\exec execn\fcopy\filcpy filset\filtst\findf$ finfo$\flush$\follow gcd\gcdir$\gctoi gctol\getarg\getccl getch\getkwd\getlin getto\getvdn\gfnarg gitoc\gklarg\gltoc gtemp\gvlarg\icomn$ index\init\input invmod\ioinit\isatty itoc\jdate\ldseg$ ldtmp$\length\locate lookup\lsallo\lscmpk lscomp\lscopy\lscut lsdel\lsdrop\lsdump lsextr\lsfree\lsgetc lsgetf\lsinit\lsins lsjoin\lslen\lsmake lspos\lsputc\lsputf lssubs\lstake\ltoc lutemp\makpat\maksub mapdn\mapfd\mapstr mapsu\mapup\markf match\mkdir$\mkfd$ mkpa$\mktabl\mktemp mktr$\mntoc\move$ omatch\open\page parsdt\parstm\patsiz prime\print\ptoc putch\putdec\putlin putlit\pwrmod\readf remark\remove\reonu$ rewind\rmfil$\rmseg$ rmtabl\rmtemp\rtn$$ rtoc\scopy\sctabl sdrop\seekf\set_copy set_create\set_delete\set_element set_equal\set_init\set_insert set_intersect\set_remove\set_subset set_subtract\set_union\seterr st$lu\stake\stclos strbsr\strcmp\strim strlsr\substr\swt t$clup\t$entr\t$exit t$time\t$trac\tgetl$ tmark$\tputl$\tquit$ tread$\trunc\tseek$ twrit$\type\upkfn$ vfyusr\vtoc\wind wkday\writef\zmem$ .bf 0 .ee .ta .tc .SH "New Routines" The routines listed in this section are new for the Version[bl]8 release. .in +10 .cm at$ Subsystem interlude to Primos ATCH$$. .cm bponu$ On-unit handler for "BAD_PASSWORD$" condition. .cm c$init Initializes a Ratfor program in preparation for a statement count run. .cm chkstr Check a string for printable characters. .cm dmpcm$ Dump the contents of Subsystem common blocks in a printable format. .cm dmpfd$ Dump information about a file descriptor. .cm file$p When called from a Pascal program, allows the program to use the I/O redirection and piping features of the Subsystem. .cm first$ This routine sees if it has been called before; it is used by the Subsystem for initialization purposes. .cm gcifu$ Get the file unit which is providing command input to the shell. .cm geta$f Allows Fortran programs access to the arguments from the Subsystem command line. .cm geta$p Allows Pascal programs to access the arguments from the Subsystem command line. .cm geta$plg Allows PL/I (subset G) programs to access the arguments from the Subsystem command line. .cm getfd$ Look for an empty file descriptor. .cm getwrd Retrieve the next word from a buffer. .cm gfnam$ Get pathname of an open file. .cm gtattr Returns a user's terminal attributes. .cm gttype Returns the user's terminal type name. .cm init$f Allows the Fortran programmer to take advantage of Subsystem I/O (especially the standard input and output ports). .cm init$p Allows the Pascal programmer to take advantage of Subsystem I/O (especially the standard input and output ports). .cm init$plg Allows the PL/I (subset G) programmer to take advantage of Subsystem I/O (especially the standard input and output ports). .cm isadsk Test to see if a file is a disk file. .cm sprot$ Set the protection attributes for a file. This routine used to be named 'prot$', but had to be renamed because of a name conflict with a Primos routine. .cm tcook$ Read a line from the terminal and handle operations of processing escape sequences, case and character set mapping, line kills, etc. ("cooking" the line). .cm ttyp$f Obtain the user's terminal type from the "=termlist=" file, if available. .cm ttyp$l List the available terminal types (as defined in the "=ttypes=" file). .cm ttyp$q Query for the terminal type from the user. .cm ttyp$r Return the user's terminal type from the Subsystem common area, if available. .cm ttyp$v Set the terminal's attributes in the Subsystem common areas. .cm vt$alc Allocate another VTH definition table for the keyboard macros. .cm vt$clr Send the clear screen sequence. .cm vt$db1 VTH debugging routine which prints mnemonics for the unprintable characters to be output. .cm vt$db2 VTH debugging routine to dump the terminal input tables. .cm vt$db3 VTH debugging routine to dump the macro definition table. .cm vt$def Allows the user to define a keyboard macro. .cm vt$dsw Perform a garbage collection on the VTH definition tables. .cm vt$err Print a VTH error message. .cm vt$get VTH input routine. .cm vt$gsq VTH input routine to receive a delimited sequence of characters. .cm vt$idf VTH input processor which invokes user-defined keyboard macros. .cm vt$ier Report an error in a VTH initialization file. .cm vt$ndf Remove a VTH macro definition. .cm vt$pos VTH positioning routine which moves the terminal cursor by means of absolute positioning sequences. .cm vt$put Copy a string into a VTH screen buffer. .cm vt$rdf Remove a VTH keyboard macro from the definition table. .cm vtenb Enable input on a particular screen line. .cm vtgetl Retrieve a line from the VTH screen buffer. .cm vtinfo Return information contained in the VTH common block. .cm vtmove Position the cursor to a given row and column. .cm vtmsg Display a message in the VTH status line. .cm vtopt Set optional parameters for the VTH screen. .cm vtpad Pad the rest of a field with blanks. .cm vtprt Output formatted information to the screen buffers. .cm vtread Read characters from the terminal into the screen buffers. .cm vtstop Reset a terminal's attributes before terminating a program. .in -10 .bp .he .fo .op .pn 3 .TC