SSSoooffftttwwwaaarrreee TTToooooolllsss SSSuuubbbsssyyysssttteeemmm VVVeeerrrsssiiiooonnn 777...111 tttooo VVVeeerrrsssiiiooonnn 888 CCCooonnnvvveeerrrsssiiiooonnn GGGuuuiiidddeee Terrell L. Countryman Jeanette T. Myers Peter N. Wan School of Information and Computer Science Georgia Institute of Technology Atlanta, Georgia 30332 April, 1982 Version 8 Conversion Guide IIInnntttrrroooddduuuccctttiiiooonnn Version 8 of the Software Tools Subsystem differs from Version 7.1 in a number of ways, most of which will not impact the average user. Most changes are extensions or internal per- formance improvements, and affect one or two commands rather than the entire Subsystem. This conversion guide is divided into three sections: GGGlllooobbbaaalll CCChhhaaannngggeeesss discusses the alterations that affect large portions of the user interface; SSStttaaatttuuusss ooofff VVV777...111 CCCooommm- mmmaaannndddsss and SSStttaaatttuuusss ooofff VVV777...111 SSSuuubbbrrrooouuutttiiinnneeesss describe additions, deletions, and modifications made to individual commands and subroutines. GGGlllooobbbaaalll CCChhhaaannngggeeesss TTTeeerrrmmmiiinnnaaalll TTTyyypppeee HHHaaannndddllliiinnnggg 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 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. 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. TTTeeemmmppplllaaattteeesss 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. If a template must contain imbedded equals signs, use two consecutive equals signs to pass one through the template expan- der; in an earlier version of the template processor, the "at sign" was used to "escape" the equals sign. SSSpppeeeeeeddd Version 8 of the Subsystem uses considerably less CPU time for I/O than Version 7.1. Unfortunately, if you are moving up to - 1 - Version 8 Conversion Guide Revision 18 of Primos, you may not notice much difference; Revision 18 can be that much slower than Revision 17. MMMeeemmmooorrryyy SSSeeegggmmmeeennntttsss Prime has now used all available private memory segments. At Version 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 Sub- system 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 8 without rebooting your system. Listed below are the segments required for the Subsystem: _V_e_r_s_i_o_n _8 _V_e_r_s_i_o_n _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 PPPrrroooccceeessssss IIIdddsss tttooo TTThhhrrreeeeee DDDiiigggiiitttsss To accomodate the increase in the number of processes in Primos 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. CCCllldddaaatttaaa TTTeeemmmppplllaaattteee The location of "cldata", a Primos command interpreter data structure referenced by the Subsystem shell, is now a template. The Version 8 release has "cldata" defined to be segment 6002, word 6, which applies to you if you are running Primos 18.3 or above. If you are running Primos 18.2 or lower, there is a com- mented template in the "Configuration Options" section of "=tem- plate=" that you need to use. EEExxxccceeeppptttiiiooonnn HHHaaannndddllliiinnnggg 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 - 2 - Version 8 Conversion Guide current program, continue, or call Primos. If Primos is called, the current program may be continued by typing START, or the Sub- system may be re-entered by typing REN. DDDBBBGGG SSSuuuppppppooorrrttt There is now some support for invoking the symbolic debugger from the Subsystem. Please see the Reference Manual entry on 'dbg' for more information. NNNeeewww SSShhheeellllll CCCooonnntttrrrooolll VVVaaarrriiiaaabbbllleeesss 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). Note that when a variable is set using either 'declare' or 'set', the value does not take effect until you exit the Sub- system and re-enter. DDDeeellleeettteeeddd MMMaaacccrrrooo DDDeeefffiiinnniiitttiiiooonnn One macro definition has been removed from the standard macros file. ESCCHAR is no longer defined; use ESCAPE instead. CCChhhaaannngggeee iiinnn VVVaaallluuueee ooofff EEEOOOSSS After Version 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. NNNeeewww RRReeefffeeerrreeennnccceee MMMaaannnuuuaaalll SSSeeeccctttiiiooonnnsss Two new sections have been created to contain low level com- mands (Section 5) and low level subroutines (Section 6). You should not invoke these commands and routines under normal cir- cumstances; they are usually support routines for user-callable - 3 - Version 8 Conversion Guide Subsystem commands and routines. The following commands were moved from sections 1 and 3 to section 5: bbbmmmeeerrrgggeee   bbbnnnaaammmeeesss   bbbsss bbbsss111   bbbuuugggfffmmm   bbbuuugggnnn ggguuueeessssss   mmmkkkccclll The following routines were moved from sections 2 and 4 to section 6: aaattt$$$   bbbpppooonnnuuu$$$   ccc$$$eeennnddd ccc$$$iiinnncccrrr   ccc$$$iiinnniiittt   cccaaallllll$$$$$$ ccchhhuuunnnkkk$$$   cccooofff$$$   cccpppfffiiilll$$$ cccpppssseeeggg$$$   dddgggeeetttlll$$$   dddmmmaaarrrkkk$$$ dddmmmpppcccmmm$$$   dddmmmpppfffddd$$$   dddooopppeeennn$$$ dddpppuuutttlll$$$   dddrrreeeaaaddd$$$   dddsssdddbbbiiiuuu dddssseeeeeekkk$$$   dddwwwrrriiittt$$$   fffiiinnndddfff$$$ fffiiinnnfffooo$$$   fffiiirrrsssttt$$$   fffllluuussshhh$$$ gggcccdddiiirrr$$$   gggccciiifffuuu$$$   gggeeetttfffddd$$$ gggfffnnnaaammm$$$   iiicccooommmnnn$$$   iiioooffflll$$$ iiioooiiinnniiittt   llldddssseeeggg$$$   llldddtttmmmppp$$$ lllooopppeeennn$$$   llluuuttteeemmmppp   mmmkkkdddiiirrr$$$ mmmkkkfffddd$$$   mmmkkkpppaaa$$$   mmmkkktttrrr$$$ rrreeeooonnnuuu$$$   rrrmmmfffiiilll$$$   rrrmmmssseeeggg$$$ rrrtttnnn$$$$$$   sssppprrrooottt$$$   sssttt$$$llluuu ttt$$$cccllluuuppp   ttt$$$eeennntttrrr   ttt$$$eeexxxiiittt ttt$$$tttiiimmmeee   ttt$$$tttrrraaaccc   tttcccooooookkk$$$ tttgggeeetttlll$$$   tttmmmaaarrrkkk$$$   tttpppuuutttlll$$$ tttrrreeeaaaddd$$$   tttssscccaaannn$$$   tttssseeeeeekkk$$$ ttttttyyyppp$$$fff   ttttttyyyppp$$$lll   ttttttyyyppp$$$qqq ttttttyyyppp$$$rrr   ttttttyyyppp$$$vvv   tttwwwrrriiittt$$$ uuupppkkkfffnnn$$$   vvvttt$$$aaalllccc   vvvttt$$$ccclllrrr vvvttt$$$dddbbb   vvvttt$$$dddbbb111   vvvttt$$$dddbbb222 vvvttt$$$dddbbb333   vvvttt$$$dddeeefff   vvvttt$$$dddeeelll vvvttt$$$dddssswww   vvvttt$$$eeerrrrrr   vvvttt$$$gggeeettt vvvttt$$$gggsssqqq   vvvttt$$$iiidddfff   vvvttt$$$iiieeerrr vvvttt$$$nnndddfff   vvvttt$$$ooouuuttt   vvvttt$$$pppooosss vvvttt$$$pppuuuttt   vvvttt$$$rrrdddfff   zzzmmmeeemmm$$$ NNNeeewww SSSuuubbbsssyyysssttteeemmm LLLiiibbbrrraaarrriiieeesss VVVttthhhllliiibbb has been totally rewritten, and is now supported as part of the Subsystem. It is much faster than the earlier ver- sion, 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). - 4 - Version 8 Conversion Guide NNNeeewww SSSuuubbbsssyyysssttteeemmm TTTeeemmmppplllaaattteeesss 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 struc- ture is located. The "=sysname=" template is used to indicate the Primenet node name, if the system is a network system. Obsolete templates have been removed from the Version 8 release template file. SSStttaaatttuuusss ooofff VVVeeerrrsssiiiooonnn 777...111 CCCooommmmmmaaannndddsss This section summarizes the user-visible changes that have been made to Subsystem commands for Version 8. It is divided into several subsections: obsolete commands, superseded com- mands, modified commands, enhanced commands, and unchanged com- mands. The final subsection is a summary of commands that are new for the Version 8 release. OOObbbsssooollleeettteee CCCooommmmmmaaannndddsss The commands in this subsection were part of the Version 7.1 Subsystem, but are not included in the Version 8 release. Most of them were used only by certain shell programs and have out- lived their usefulness. In other cases, the commands were relics of past Subsystems, and either were no longer useful, or no longer worked. NNNooo cccooommmmmmaaannndddsss aaarrreee ooobbbsssooollleeettteeeddd aaattt VVVeeerrrsssiiiooonnn 888... SSSuuupppeeerrrssseeedddeeeddd CCCooommmmmmaaannndddsss The commands in this subsection are not part of the Ver- sion 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. aaarrr 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. ddduuummmppplllsss Use the new command 'dump' instead. The command line would be "dump ls". - 5 - Version 8 Conversion Guide ddduuummmpppsssvvv Use the new command 'dump' instead. The command line would be "dump sv". MMMooodddiiifffiiieeeddd CCCooommmmmmaaannndddsss The commands listed in this subsection have been modified for the Version 8 release and are no longer completely compatible with their Version 7.1 counterparts. Each entry gives a brief description of the changes, but before using any of these com- mands, please check the corresponding Reference Manual entry to be sure of the command's exact behavior. dddppprrriiinnnttt The argument syntax has been changed slightly. The length option is now "-l ", rather than "-". 'Dprint' can now handle the generation of multiple copies. mmmooonnn Accepts four commands while running; three are used to reformat the screen and the fourth command redraws the screen. Now uses VTH to do output, so it will work on terminals besides Beehives (any terminal supported by VTH). pppggg The control-c response causes 'pg' to ignore any remaining file names that were command line arguments and exit to the command interpreter. Default prompt now shows the file being displayed as well as the page number. 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 con- vention of referencing the standard input/output ports with a "-"). rrrtttiiimmmeee 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. - 6 - Version 8 Conversion Guide ssseee 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'). Long input lines are now scrolled horizontally, allow- ing the cursor to remain visible at all times. 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 | f | f77]", to set several programming language related parameters at once ("oss" for PMA, "osf" for FTN, "osf77" for F77). 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'). 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", respec- tively. New terminal types supported by 'se' are the hz1510, ts1, tvi, and z19. '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. - 7 - Version 8 Conversion Guide ssshhh 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 Sub- system, 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. ttteeerrrmmm Support for the Subsystem terminal type management routines has been added. 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'. Removed "-tab" and "-enb". ttteeerrrmmm___tttyyypppeee Now uses the Subsystem terminal type management facilities. Options have been added to query the values of particular terminal attributes, as well. xxx '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.) 'X' can execute Primos commands interactively, regain- ing control when you generate an end-of-file. EEEnnnhhhaaannnccceeeddd CCCooommmmmmaaannndddsss Commands in this subsection have been functionally enhanced for the Version 8 release, but remain compatible with their Ver- sion 7.1 counterparts. ccchhhaaannngggeee Accepts a string as an argument that is to be searched for a pattern. dddeeeccclllaaarrreee Will not modify a shell variable that has already been declared at the current level. dddeeeccclllaaarrreeeddd No longer decides whether a shell variable is "declared" if an illegal lexical level offset is sup- plied. - 8 - Version 8 Conversion Guide dddeeefffiiinnneee Finally does what the documentation says it will do. dddiiiffffff 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.) eee Takes 'se' options as arguments and uses new terminal type handling. fff777777ccc New "-w" option to generate floating round instructions which improves the accuracy of single precision float- ing point calculations. fffccc New "-w" option to generate floating round instructions which improves the accuracy of single precision float- ing point calculations. fffiiillleee 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. fffmmmttt New ".eo" and ".oo" commands to specify different page offsets for even- and odd-numbered pages. Documented the ".dv" (divert stream) command which, when used in conjunction with ".so", can produce an automatic table of contents. ggguuueeessssss Requires an argument that is the command name to be used and optionally accepts a "tolerence" level. ggguuuiiidddeee Version 8 Conversion Guide now available. hhhddd New "-n" and "-u" options to display "normalized" (440 words/record) or "unnormalized" (1024 words per record) record counts, respectively. hhheeelllppp Documented the "-u" option to print usage for com- mand(s). 'Help' now uses 'page' for paging so you can use all the responses acceptable to 'page'. - 9 - Version 8 Conversion Guide lllddd The templates "=cm_loc=" and "=tp_loc=" are checked to allow overriding the default segment numbers for Sub- system 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. lllfff New "-q" option to print nonowner password. mmmaaaiiilll Mail is saved in the file defined by the template "=mailfile=". The Subsystem default is "=varsdir=/.mail". Checks for valid addressee name(s) before reading the letter to be sent. mmmkkkcccllliiisssttt New "-s" argument to create the system defined command list ("=ubin=" is ignored). mmmoooooottt An "index" command has been added to summarize the entries that have been made in the current conference. mmmttt 'Mt' has been heavily modified to fix all known bugs. New "-v" option to cause 'mt' to print the number of blocks read or written. ppplllgggccc New "-w" option to generate floating round instructions which improves the accuracy of single precision float- ing point calculations. ppprrriiinnnttt 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. pppuuubbbllliiissshhh A warning is now issued if you interrupt a 'publish' (interrupting a 'publish' has possible harmful side effects). rrreeetttrrraaacccttt A "-q" option has been added to allow retraction of a news article without printing a retraction notice. - 10 - Version 8 Conversion Guide rrrppp Declarations are now handled as a separate data stream. 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. 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.) New "-x" option and a accompanying translation table can be used for user definable character code translation. A new "-y" option is available that causes 'rp' to not place "call init" and "call swt" statements in the Fortran code. Several internal speed-up improvements have been made. String tables now allow multiple slashes, causing mar- ginal index entries to be duplicated. The maximum string table size has been increased. The standard Ratfor macro definitions file now includes "SET_OF_GRAPHICS" and "SET_OF_SPECIAL_CHAR" for use in "when" clauses in Ratfor. ssseeemmmaaa Now handles named and negative (Primos system) semaphores. ssstttaaacccccc A "null token" construct (epsilon) has been added to cause a match without scanning any input. A "quick select" construct has been added to permit fast selection between a number of alternatives begin- ning with distinct terminal symbols. General processing speed has been improved by eliminat- ing the use of temporary files. '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). tttaaaiiilll 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 - 11 - Version 8 Conversion Guide parameter, get an error in the conversion, and end up reading the default number of lines from standard input). tttllliiittt Running time has been improved drastically. For compatibility with 'take', 'drop', and other com- mand line utility functions, 'tlit' can also accept strings as arguments to be transliterated. tttooo The header line format has been changed, to provide more information. tttrrraaannnssslllaaannnggg Added the "nor" operator, which was inadvertently left out of the lexical analyzer. wwwhhhooo Changed to call the new Primos GMETR$ to access the system data bases. An "r" flag is appended onto the pid if the user is a remote user. - 12 - Version 8 Conversion Guide UUUnnnccchhhaaannngggeeeddd CCCooommmmmmaaannndddsss This subsection lists the commands that have no user-visible changes made for Version 8. aaalllaaarrrmmm   aaarrrggg   aaarrrgggsss aaarrrgggssstttooo   aaasss111111   aaasss666888000000 aaasss888000888000   bbbaaannnnnneeerrr   bbbaaasssyyysss bbbaaatttccchhh   bbbllloooccckkk   bbbsss bbbuuuggg   bbbyyyeee   cccaaalll cccaaassseee   cccaaattt   cccddd ccchhhaaattt   ccchhhooowwwnnn   cccllleeeaaarrr cccllloooccckkk   cccmmmppp   cccnnn cccooolll   cccooommmmmmooonnn   cccooommmooo cccooopppyyy   cccooopppyyyooouuuttt   cccppp cccrrryyypppttt   ccctttiiimmmeee   ccctttooo dddaaattteee   dddaaayyy   dddeeeccclllaaarrreeeddd dddeeelll   dddeeetttaaabbb   dddmmmaaaccchhh dddnnnuuummm   dddrrroooppp   eeeccchhhooo eeekkk   eeelllssseee   eeennntttaaabbb eeerrrrrrooorrr   eeesssaaaccc   eeevvvaaalll eeexxxiiittt   fff777777ccclll   fffccclll fffdddmmmppp   fffiii   fffiiieeelllddd fffiiillleeesss   fffiiinnnddd   fffiiixxxppp fffmmmttt   fffoooccclllddd   fffooorrrgggeeettt fffooosss   fffsssiiizzzeee   gggoootttooo hhhiiissstttooorrryyy   hhhppp   iiifff iiimmmiii   iiinnncccllluuudddeee   iiinnndddeeexxx iiinnnssstttaaallllllaaatttiiiooonnn   iiinnnttteeelll   iiioootttaaa jjjoooiiinnn   kkkiiillllll   kkkwwwiiiccc lllaaammm   lllddd   llleeennngggttthhh llleeexxx   llliiibbb   llliiinnneee llliiinnnkkk   lllkkk   lllooocccaaattteee llloooggg   lllooogggiiinnn___nnnaaammmeee   lllpppsss mmmaaacccrrrooo   mmmeeemmmooo   mmmkkkcccllliiisssttt mmmkkkdddiiirrr   mmmkkkllliiibbb   mmmkkktttrrreeeeee mmmkkkuuusssrrr   mmmooottt   mmmvvv nnnaaarrrgggsss   nnneeewwwsss   ooopppttt666888000000 ooopppttt888000888000   ooosss   ooouuuttt ppp444ccc   ppp444ccclll   pppaaasssssswwwddd pppaaauuussseee   pppccc   pppccclll ppphhh   ppphhhiiisssttt   ppphhhooonnneee ppplllgggccclll   pppmmmaaaccc   pppmmmaaaccclll ppprrr   ppprrriiinnnttt   ppprrrooofffiiillleee pppuuubbbllliiissshhh   pppwwwddd   pppwwwooorrrddd qqquuuooottteee   rrrccclll   rrrfff rrrffflll   rrrmmmuuusssrrr   rrrnnnddd rrrooottt   rrrsssaaa   sssaaavvveee ssscccrrrooollllll   ssseeeppp   ssseeettt ssshhh   ssshhhooowww   ssshhhtttrrraaaccceee sssiiizzzeee   sssllliiiccceee   sssooorrrttt sssooouuurrrccceee   sssppp   ssspppeeellliiinnnggg ssssssppplll   ssssssrrr   sssttt___ppprrrooofffiiillleee ssstttaaatttsss   ssstttoooppp   sssuuubbbssscccrrriiibbbeee sssuuubbbssstttrrr   sssyyymmmbbbooolllsss   sssyyyssstttaaattt tttaaakkkeee   tttccc   ttteeeeee - 13 - Version 8 Conversion Guide ttteeemmmppplllaaattteee   ttthhheeennn   tttiiimmmeee tttsss   uuunnniiiqqq   uuunnnooocccttt uuunnnrrrooottt   uuusss   uuusssaaagggeee vvvaaarrrsss   wwwhhheeennn   wwwhhheeerrreeeiiisss wwwhhhoooiiisss   xxxrrreeefff NNNeeewww CCCooommmmmmaaannndddsss This subsection lists commands that are new for Version 8. bbbaaassseeennnaaammmeee Select various portions of a pathname. bbbmmmeeerrrgggeee Merge object code files into one file for building a library. bbbnnnaaammmeeesss Print entry point names in object files. bbbsss111 Identical to 'bs' except that it reduces search time, with the possible result of having a less intelligent guess. bbbuuugggfffmmm Format a bug report created with the 'bug' command. bbbuuugggnnn Process the highest bug number. cccccc Compiles a C program with the Subsystem C compiler. cccccclll Compiles and loads a C program. cccdddmmmlllccc Compiles a Prime DBMS Cobol Data Manipulation Language program. cccdddmmmlllccclll Compiles and loads a DBMS Cobol Data Manipulation Language program. cccooobbbccc Compiles a Cobol program. cccooobbbccclll Compiles and loads a Cobol program. cccsssuuubbbccc Compiles a Primos DBMS Cobol subschema. - 14 - Version 8 Conversion Guide dddbbbggg Interface to Primos source level debugger. ddddddlllccc Compiles a Prime DBMS schema. dddeeesss An implementation of the National Bureau of Standards Data Encryption System. ddduuummmppp Debugging aid which dumps the shell's various internal data bases in a semi-readable format. This command supersedes the Version 7.1 commands 'dumpls' and 'dumpsv'. fffdddmmmlllccc Compiles a program written in the Prime DBMS Fortran Data Manipulation Language. fffdddmmmlllccclll Compiles and loads a Prime DBMS Fortran Data Manipula- tion Language program. fffsssuuubbbccc Compiles a Primos DBMS Fortran subschema. lllaaasssttt Allows you to look at the last few lines of a file. Can also count the number of lines in a file very quic- kly. mmmkkkccclll Make a command list in compressed binary format for use with the 'guess' command. ooolllddd___aaarrr Subsystem archiver from Version 7.1; included to allow you to retrieve your files and convert to the new archiver, 'ar'. ppplllpppccc Compiles a PL/P program. ppplllpppccclll Compiles and loads a PL/P program. ppprrriiimmmooosss 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. - 15 - Version 8 Conversion Guide rrraaadddiiixxx Convert numbers from one radix representation to another. rrraaaiiiddd Examine bug report submitted with 'bug' command (this is intended for the use of the Subsystem manager). The bug reports can also be optionally be printed so that a hardcopy may be obtained. rrrdddcccaaattt Relational database command which concatenates two identical relations. rrrdddeeexxxtttrrr Relational database command which extracts relation data from a given relation. rrrdddjjjoooiiinnn Relational database command which joins two relations. rrrdddmmmaaakkkeee Relational database command which constructs a relation from a data file. rrrdddppprrriiinnnttt Relational database command to print a relation or a relation descriptor. rrrdddppprrrooojjj Relational database command to project a relation. rrrdddssseeelll Relational database command to select tuples of a relation. rrrdddsssooorrrttt Relational database command to sort a relation. rrrddduuunnniiiqqq Relational database command to remove duplicate tuples from a relation. sssooolll Game of solitaire. A good demonstration of the new Virtual Terminal Handler (VTH) package. ssspppeeellllll Faster than 'speling'. Has a "verbose" output format to aid in locating mis- spelled words. Is more intelligent about not reporting formatter com- mands as misspelled words. - 16 - Version 8 Conversion Guide tttiiippp Check if terminal input is pending. vvvpppsssddd Interface to invoke the Primos V-mode Symbolic Debugger on Subsystem programs. SSStttaaatttuuusss ooofff VVVeeerrrsssiiiooonnn 777...111 SSSuuubbbrrrooouuutttiiinnneeesss This section summarizes the user-visible changes to the Sub- system library routines. It is divided into several subsections: obsolete routines, superseded routines, modified routines, enhanced routines, unchanged routines and new routines. OOObbbsssooollleeettteee RRRooouuutttiiinnneeesss The routines listed here were only used by other library routines. Since their services are no longer required, they have been deleted. cccmmmdddfff$$$$$$ Obsoleted because of a smarter shell. rrrtttrrr666888000000 The SSPL run-time support library for the M6800 microprocessor has been removed. vvvttt$$$bbbccc Obsoleted by the new VTH routines. vvvttt$$$cccccc Obsoleted by the new VTH routines. vvvttt$$$lllddd Obsoleted by the new VTH routines. vvvttt$$$llllll Obsoleted by the new VTH routines. vvvttt$$$mmmvvv Obsoleted by the new VTH routines. vvvttt$$$pppkkk Obsoleted by the new VTH routines. vvvttt$$$rrrccc Obsoleted by the new VTH routines. vvvttt$$$uuupppkkk Obsoleted by the new VTH routines. - 17 - Version 8 Conversion Guide vvvtttccceeeooolll Obsoleted by the new VTH routines. vvvtttccceeeooosss Obsoleted by the new VTH routines. vvvttteeennnccc Obsoleted by the new VTH routines. vvvtttiiinnnlll Obsoleted by the new VTH routines. vvvtttiiinnnsss Obsoleted by the new VTH routines. vvvtttmmmvvvdddnnn Obsoleted by the new VTH routines. vvvtttmmmvvvlllfff Obsoleted by the new VTH routines. vvvtttmmmvvvrrrttt Obsoleted by the new VTH routines. vvvtttmmmvvvuuuppp Obsoleted by the new VTH routines. vvvtttpppooosss Obsoleted by the new VTH routines. SSSuuupppeeerrrssseeedddeeeddd RRRooouuutttiiinnneeesss The following routines have been subsumed by other more powerful routines. Each entry names the Version 8 routine that performs the same function. iiinnnllloooccc$$$ Use 'decode'. iiitttoooccc000 Use 'gitoc' or 'encode'. iiitttoooccc888 Use 'gitoc' or 'encode'. ppprrrooottt$$$ Use 'sprot$'. The name was changed to avoid a conflict with the Primos routine of the same name. MMMooodddiiifffiiieeeddd RRRooouuutttiiinnneeesss The routines listed in this subsection have been modified so that they are no longer compatible with their Version 7.1 counterparts. Although each entry briefly describes the changes - 18 - Version 8 Conversion Guide that have been made, you should examine the corresponding Reference Manual entries to determine the exact behavior of the routines. cccooofff$$$ Requires a "state" argument. eeennnttteeerrr 'Enter' is now a function that returns a pointer to the dynamic storage area containing text of next symbol. eeexxxpppaaannnddd If a template must contain uninterpreted "="s, do not precede it by a "@" but by another "=". iiioooffflll$$$ Requires a "state" argument. sssyyysss$$$$$$ New argument to specify file unit from which the Primos command takes its input. tttssscccaaannn$$$ The 'path' argument is changed by this routine, but was not documented to say so. The documentation has been changed. vvvttt$$$dddbbb Has been rewritten for new VTH library. vvvttt$$$dddeeelll Has been rewritten for new VTH library. vvvttt$$$ooouuuttt Has been rewritten for new VTH library. vvvtttccclllrrr Has been rewritten for new VTH library. vvvtttiiinnniiittt Has been rewritten for new VTH library. vvvtttpppuuutttlll Has been rewritten for new VTH library. vvvtttttteeerrrmmm Has been rewritten for new VTH library. vvvtttuuupppddd Has been rewritten for new VTH library. EEEnnnhhhaaannnccceeeddd RRRooouuutttiiinnneeesss The routines listed in this subsection have additional func- tionality in the Version 8 release, but remain compatible with - 19 - Version 8 Conversion Guide their Version 7.1 counterparts. cccaaallllll$$$$$$ Accepts an optional argument for the creation of an on- unit. dddaaattteee There are now system defines for the request keys (so that actual numbers for the type of request need not be supplied). New values returned are minutes, seconds and mil- liseconds past midnight. dddooopppeeennn$$$ Now takes an argument to determine the number of retries on encountering a "file in use" situation. gggeeettttttooo 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. lllooopppeeennn$$$ Will put in the values for the user's shell variables "_prt_form" and "_prt_dest", if available, in the spooler entry. ooopppeeennn Now takes a fourth argument to determine the number of retries on encountering a "file in use" situation. - 20 - Version 8 Conversion Guide UUUnnnccchhhaaannngggeeeddd RRRooouuutttiiinnneeesss No user-visible changes have been made to the routines listed in this subsection. aaaddddddssseeettt   aaammmaaatttccchhh   aaatttoooccc ccc$$$eeennnddd   ccc$$$iiinnncccrrr   cccaaannnttt cccaaatttsssuuubbb   ccchhhkkkaaarrrggg   ccchhhkkkiiinnnppp ccclllooossseee   cccpppfffiiilll$$$   cccpppssseeeggg$$$ cccrrreeeaaattteee   ccctttoooaaa   ccctttoooccc ccctttoooddd   ccctttoooiii   ccctttooolll ccctttooommmnnn   ccctttoooppp   ccctttooorrr ccctttooovvv   dddeeecccooodddeee   dddeeelllaaarrrggg dddeeellleeettteee   dddgggeeetttlll$$$   dddmmmaaarrrkkk$$$ dddooodddaaassshhh   dddpppuuutttlll$$$   dddrrreeeaaaddd$$$ dddsssdddbbbiiiuuu   dddsssddduuummmppp   dddssseeeeeekkk$$$ dddsssfffrrreeeeee   dddsssgggeeettt   dddsssiiinnniiittt dddtttoooccc   dddwwwrrriiittt$$$   eeedddiiittt eeennncccooodddeee   eeennnttteeerrr   eeeqqquuuaaalll eeerrrrrrooorrr   eeesssccc   eeexxxeeeccc eeexxxeeecccnnn   fffcccooopppyyy   fffiiilllcccpppyyy fffiiilllssseeettt   fffiiillltttsssttt   fffiiinnndddfff$$$ fffiiinnnfffooo$$$   fffllluuussshhh$$$   fffooollllllooowww gggcccddd   gggcccdddiiirrr$$$   gggccctttoooiii gggccctttooolll   gggeeetttaaarrrggg   gggeeetttcccccclll gggeeetttccchhh   gggeeetttkkkwwwddd   gggeeetttllliiinnn gggeeettttttooo   gggeeetttvvvdddnnn   gggfffnnnaaarrrggg gggiiitttoooccc   gggkkklllaaarrrggg   gggllltttoooccc gggttteeemmmppp   gggvvvlllaaarrrggg   iiicccooommmnnn$$$ iiinnndddeeexxx   iiinnniiittt   iiinnnpppuuuttt iiinnnvvvmmmoooddd   iiioooiiinnniiittt   iiisssaaattttttyyy iiitttoooccc   jjjdddaaattteee   llldddssseeeggg$$$ llldddtttmmmppp$$$   llleeennngggttthhh   lllooocccaaattteee lllooooookkkuuuppp   lllsssaaallllllooo   lllssscccmmmpppkkk lllssscccooommmppp   lllssscccooopppyyy   lllssscccuuuttt lllsssdddeeelll   lllsssdddrrroooppp   lllsssddduuummmppp lllssseeexxxtttrrr   lllsssfffrrreeeeee   lllsssgggeeetttccc lllsssgggeeetttfff   lllsssiiinnniiittt   lllsssiiinnnsss lllsssjjjoooiiinnn   lllsssllleeennn   lllsssmmmaaakkkeee lllssspppooosss   lllssspppuuutttccc   lllssspppuuutttfff lllssssssuuubbbsss   lllssstttaaakkkeee   llltttoooccc llluuuttteeemmmppp   mmmaaakkkpppaaattt   mmmaaakkksssuuubbb mmmaaapppdddnnn   mmmaaapppfffddd   mmmaaapppssstttrrr mmmaaapppsssuuu   mmmaaapppuuuppp   mmmaaarrrkkkfff mmmaaatttccchhh   mmmkkkdddiiirrr$$$   mmmkkkfffddd$$$ mmmkkkpppaaa$$$   mmmkkktttaaabbblll   mmmkkkttteeemmmppp mmmkkktttrrr$$$   mmmnnntttoooccc   mmmooovvveee$$$ ooommmaaatttccchhh   ooopppeeennn   pppaaagggeee pppaaarrrsssdddttt   pppaaarrrssstttmmm   pppaaatttsssiiizzz ppprrriiimmmeee   ppprrriiinnnttt   ppptttoooccc pppuuutttccchhh   pppuuutttdddeeeccc   pppuuutttllliiinnn pppuuutttllliiittt   pppwwwrrrmmmoooddd   rrreeeaaadddfff rrreeemmmaaarrrkkk   rrreeemmmooovvveee   rrreeeooonnnuuu$$$ rrreeewwwiiinnnddd   rrrmmmfffiiilll$$$   rrrmmmssseeeggg$$$ rrrmmmtttaaabbblll   rrrmmmttteeemmmppp   rrrtttnnn$$$$$$ rrrtttoooccc   ssscccooopppyyy   sssccctttaaabbblll - 21 - Version 8 Conversion Guide sssdddrrroooppp   ssseeeeeekkkfff   ssseeettt___cccooopppyyy ssseeettt___cccrrreeeaaattteee   ssseeettt___dddeeellleeettteee   ssseeettt___eeellleeemmmeeennnttt ssseeettt___eeeqqquuuaaalll   ssseeettt___iiinnniiittt   ssseeettt___iiinnnssseeerrrttt ssseeettt___iiinnnttteeerrrssseeecccttt   ssseeettt___rrreeemmmooovvveee   ssseeettt___sssuuubbbssseeettt ssseeettt___sssuuubbbtttrrraaacccttt   ssseeettt___uuunnniiiooonnn   ssseeettteeerrrrrr sssttt$$$llluuu   ssstttaaakkkeee   ssstttccclllooosss ssstttrrrbbbsssrrr   ssstttrrrcccmmmppp   ssstttrrriiimmm ssstttrrrlllsssrrr   sssuuubbbssstttrrr   ssswwwttt ttt$$$cccllluuuppp   ttt$$$eeennntttrrr   ttt$$$eeexxxiiittt ttt$$$tttiiimmmeee   ttt$$$tttrrraaaccc   tttgggeeetttlll$$$ tttmmmaaarrrkkk$$$   tttpppuuutttlll$$$   tttqqquuuiiittt$$$ tttrrreeeaaaddd$$$   tttrrruuunnnccc   tttssseeeeeekkk$$$ tttwwwrrriiittt$$$   tttyyypppeee   uuupppkkkfffnnn$$$ vvvfffyyyuuusssrrr   vvvtttoooccc   wwwiiinnnddd wwwkkkdddaaayyy   wwwrrriiittteeefff   zzzmmmeeemmm$$$ NNNeeewww RRRooouuutttiiinnneeesss The routines listed in this section are new for the Ver- sion 8 release. aaattt$$$ Subsystem interlude to Primos ATCH$$. bbbpppooonnnuuu$$$ On-unit handler for "BAD_PASSWORD$" condition. ccc$$$iiinnniiittt Initializes a Ratfor program in preparation for a statement count run. ccchhhkkkssstttrrr Check a string for printable characters. dddmmmpppcccmmm$$$ Dump the contents of Subsystem common blocks in a printable format. dddmmmpppfffddd$$$ Dump information about a file descriptor. fffiiillleee$$$ppp When called from a Pascal program, allows the program to use the I/O redirection and piping features of the Subsystem. fffiiirrrsssttt$$$ This routine sees if it has been called before; it is used by the Subsystem for initialization purposes. gggccciiifffuuu$$$ Get the file unit which is providing command input to the shell. - 22 - Version 8 Conversion Guide gggeeetttaaa$$$fff Allows Fortran programs access to the arguments from the Subsystem command line. gggeeetttaaa$$$ppp Allows Pascal programs to access the arguments from the Subsystem command line. gggeeetttaaa$$$ppplllggg Allows PL/I (subset G) programs to access the arguments from the Subsystem command line. gggeeetttfffddd$$$ Look for an empty file descriptor. gggeeetttwwwrrrddd Retrieve the next word from a buffer. gggfffnnnaaammm$$$ Get pathname of an open file. gggtttaaattttttrrr Returns a user's terminal attributes. gggttttttyyypppeee Returns the user's terminal type name. iiinnniiittt$$$fff Allows the Fortran programmer to take advantage of Sub- system I/O (especially the standard input and output ports). iiinnniiittt$$$ppp Allows the Pascal programmer to take advantage of Sub- system I/O (especially the standard input and output ports). iiinnniiittt$$$ppplllggg Allows the PL/I (subset G) programmer to take advantage of Subsystem I/O (especially the standard input and output ports). iiisssaaadddssskkk Test to see if a file is a disk file. sssppprrrooottt$$$ 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. tttcccooooookkk$$$ Read a line from the terminal and handle operations of processing escape sequences, case and character set mapping, line kills, etc. ("cooking" the line). - 23 - Version 8 Conversion Guide ttttttyyyppp$$$fff Obtain the user's terminal type from the "=termlist=" file, if available. ttttttyyyppp$$$lll List the available terminal types (as defined in the "=ttypes=" file). ttttttyyyppp$$$qqq Query for the terminal type from the user. ttttttyyyppp$$$rrr Return the user's terminal type from the Subsystem com- mon area, if available. ttttttyyyppp$$$vvv Set the terminal's attributes in the Subsystem common areas. vvvttt$$$aaalllccc Allocate another VTH definition table for the keyboard macros. vvvttt$$$ccclllrrr Send the clear screen sequence. vvvttt$$$dddbbb111 VTH debugging routine which prints mnemonics for the unprintable characters to be output. vvvttt$$$dddbbb222 VTH debugging routine to dump the terminal input tables. vvvttt$$$dddbbb333 VTH debugging routine to dump the macro definition table. vvvttt$$$dddeeefff Allows the user to define a keyboard macro. vvvttt$$$dddssswww Perform a garbage collection on the VTH definition tables. vvvttt$$$eeerrrrrr Print a VTH error message. vvvttt$$$gggeeettt VTH input routine. vvvttt$$$gggsssqqq VTH input routine to receive a delimited sequence of characters. - 24 - Version 8 Conversion Guide vvvttt$$$iiidddfff VTH input processor which invokes user-defined keyboard macros. vvvttt$$$iiieeerrr Report an error in a VTH initialization file. vvvttt$$$nnndddfff Remove a VTH macro definition. vvvttt$$$pppooosss VTH positioning routine which moves the terminal cursor by means of absolute positioning sequences. vvvttt$$$pppuuuttt Copy a string into a VTH screen buffer. vvvttt$$$rrrdddfff Remove a VTH keyboard macro from the definition table. vvvttteeennnbbb Enable input on a particular screen line. vvvtttgggeeetttlll Retrieve a line from the VTH screen buffer. vvvtttiiinnnfffooo Return information contained in the VTH common block. vvvtttmmmooovvveee Position the cursor to a given row and column. vvvtttmmmsssggg Display a message in the VTH status line. vvvtttooopppttt Set optional parameters for the VTH screen. vvvtttpppaaaddd Pad the rest of a field with blanks. vvvtttppprrrttt Output formatted information to the screen buffers. vvvtttrrreeeaaaddd Read characters from the terminal into the screen buffers. vvvtttssstttoooppp Reset a terminal's attributes before terminating a program. - 25 - ___TTT___AAA___BBB___LLL___EEE___ ___OOO___FFF___ ___CCC___OOO___NNN___TTT___EEE___NNN___TTT___SSS IIInnntttrrroooddduuuccctttiiiooonnn ............................................. 1 GGGlllooobbbaaalll CCChhhaaannngggeeesss ........................................... 1 Terminal Type Handling ................................ 1 Templates ............................................. 1 Speed ................................................. 1 Memory Segments ....................................... 2 Process Ids to Three Digits ........................... 2 Cldata Template ....................................... 2 Exception Handling .................................... 2 DBG Support ........................................... 3 New Shell Control Variables ........................... 3 Deleted Macro Definition .............................. 3 Change in Value of EOS ................................ 3 New Reference Manual Sections ......................... 3 New Subsystem Libraries ............................... 4 New Subsystem Templates ............................... 5 SSStttaaatttuuusss ooofff VVVeeerrrsssiiiooonnn 777...111 CCCooommmmmmaaannndddsss ........................... 5 Obsolete Commands ..................................... 5 Superseded Commands ................................... 5 Modified Commands ..................................... 6 Enhanced Commands ..................................... 8 Unchanged Commands .................................... 13 New Commands .......................................... 14 SSStttaaatttuuusss ooofff VVVeeerrrsssiiiooonnn 777...111 SSSuuubbbrrrooouuutttiiinnneeesss ........................ 17 Obsolete Routines ..................................... 17 Superseded Routines ................................... 18 Modified Routines ..................................... 18 Enhanced Routines ..................................... 19 Unchanged Routines .................................... 21 New Routines .......................................... 22 - iii -