SSSoooffftttwwwaaarrreee TTToooooolllsss SSSuuubbbsssyyysssttteeemmm VVVeeerrrsssiiiooonnn 888 tttooo VVVeeerrrsssiiiooonnn 888...111 CCCooonnnvvveeerrrsssiiiooonnn GGGuuuiiidddeee Terrell L. Countryman Peter N. Wan School of Information and Computer Science Georgia Institute of Technology Atlanta, Georgia 30332 March, 1983 Version 8.1 Conversion Guide IIInnntttrrroooddduuuccctttiiiooonnn Version 8.1 of the Subsystem represents a big change over Version 8, as well as being the last release of the Subsystem targeted for a Primos 18 system. The next release, Version 9, will be targeted for the new operating system, Primos 19. Although this release will run under Primos 19 (if you have got- ten it already), you will not have access to some of the newer features, such as Access Control Lists (ACLs) and disk quotas. Estimates for the release date of Version 9 are for around the end of the third quarter of 1983 or at the beginning of the last quarter; the reason for this delay is that as of the writing of this paragraph, we have not yet received our release copy of Primos 19.1. We ask your indulgence in this matter; we are endeavoring to obtain a copy as soon as possible. This conversion guide is divided into three sections: GGGlllooobbbaaalll CCChhhaaannngggeeesss discusses the alterations that affect large portions of the user interface; SSStttaaatttuuusss ooofff VVV888 CCCooommmmmmaaannndddsss and SSStttaaatttuuusss ooofff VVV888 SSSuuubbbrrrooouuutttiiinnneeesss describe additions, deletions, and modifications made to individual commands and subroutines. GGGlllooobbbaaalll CCChhhaaannngggeeesss CCChhhaaannngggeee iiinnn VVVaaallluuueee ooofff EEEOOOSSS As described in the _V_7._1 _t_o _V_8 _C_o_n_v_e_r_s_i_o_n _G_u_i_d_e, the value of EOS (end of string) has changed from the value of -2 to 0. This change should not affect the operation of your programs, unless they make (unwise) assumptions as to the value or magnitude of this constant. The purpose of this change is to better support the C language (available as a separate package to Subsystem customers) and to slightly improve run-time performance of the Subsystem in general (it is faster to compare against 0 than -2). Although a change of this magnitude normally requires the recompilation of all code (yours and ours), we have come up with a scheme whereby we build _t_w_o Subsystem libraries: one handles EOS being -2, and the other one handles EOS being 0. The library that will be used for a particular object program is determined by whether the program calls 'init' or not -- programs which contain "call init" are assumed to be "old" and get an EOS value of -2. We can get by with this because 'init' hasn't been needed for years; not calling it has caused no ill effects for several releases, although its call was automatically included by 'rp'. This means as long as existing object programs behave (the only ones in doubt are non-Ratfor programs) by calling 'init', use the shared library, and don't muddle with the Subsystem common blocks, they will work perfectly under Version 8.1. Of course, Ratfor programs compiled under Version 8.1 will no longer call 'init' and will receive EOS as 0. (It is still possible to - 1 - Version 8.1 Conversion Guide recompile EOS=-2 programs under Version 8.1, but it will not be as convenient.) Locally-written routines (that do not access Subsystem common blocks) can be incorporated into both versions of the library automatically by putting them in the proper source directory and rebuilding the libraries. This horrendous kluge will not be in effect for more than a couple of releases; good taste prevents us from allowing such an abomination to live any longer than necessary. We are doing it in the first place only to allow users at both your and our sites time to gradually rebuild programs (and because there were threats against our personal safety if we forced recompilation again). We do expect you to recompile all your local programs in the months following the installation of Version 8.1. In recompiling your code, you should look for several things which could cause problems at execution time with the new library. First, make sure that your code does not depend on the value or magnitude of EOS, except to note that its value is different from the characters returned by 'getlin'. Next, if any of your main programs are introduced by the 'subroutine' keyword, you should recompile them immediately, since they are definitely not going to work with this version of the Subsystem. Third, make sure that none of your code (Ratfor or otherwise) contains an explicit call to the 'init' routine. This routine is no longer needed, and will cause the wrong value of EOS to be used while the compatible library is in use. Finally, if you use the unshared version of the Subsystem library ("nvswtlb") in the loads of your programs, they must be recompiled also. Except for the exceptions noted above, you may recompile your programs at your leisure; but be sure to do it soon, since the compatibility library will disappear eventually. However, if you must recompile a program which has not been purged of its EOS value dependencies (and therefore must run with the value of EOS used at Version 8), you can do so by first mak- ing sure that the program (we are assuming Ratfor here) _c_a_l_l_s _'_i_n_i_t_'. Then, compile and load it via the following: rp =src=/lib/swt/v8def.r.i .r _ -x =src=/lib/swt/v8rptab -o .f fc .f ld .b -l v8vswtlb -o In the 'rp' call, the "v8def.r.i" file changes EOS references in your source and the file "v8rptab" changes the strings generated by 'rp' to have the correct terminator. The library call to the "v8vswtlb" library in the 'ld' line will cause the compatability library to be loaded, which does expect EOS to have the value used in Version 8. MMMaaacccrrrooo DDDeeefffiiinnniiitttiiiooonnn CCChhhaaannngggeeesss The Subsystem definition files have been changed to clean up some old definitions and add some new ones. The old values INH - 2 - Version 8.1 Conversion Guide and ENB, which are used with the Primos 'break$' routine, have been changed to DISABLE and ENABLE, respectively. The values of PRIMOS_KEYS and PRIMOS_ERRD have been changed to contain the current names of those respective files. The names MAXUSERNAME and MAXPACKEDUSERNAME have been added to help interface with the 'date' routine; these values should also be used when dealing with login names (warning: Primos 19 will allow much longer names, so using these constants will ease your transition to the new operating system for programs which process login names). NNNeeewww SSSuuubbbsssyyysssttteeemmm LLLiiibbbrrraaarrriiieeesss There have been many additions to the Subsystem libraries for this release. Two new libraries, "v8vswtlb" and "nv8vswtlb", have been added to provide compatability for programs which were compiled with Version 8 and must have EOS at the old value. There is a new library, "shortlb", which contains short-callable routines to provide Ratfor/Fortran programmers with operations that before this time were available only to assembly language programs. The Subsystem math library, "vswtml", contains new routines which provide double precision functionality. Finally, the support library for the Portable Pascal compiler has been renamed to "p4clib", to lessen confusion with the Prime Pascal library. DDDeeellleeettteeeddd SSSuuubbbsssyyysssttteeemmm LLLiiibbbrrraaarrriiieeesss The pattern-matching library, "vpatlb", has been merged with the standard Subsystem library, and is therefore no longer needed. All programs that used to be loaded with this library can be loaded with the standard Subsystem library (automatically included by 'ld'). The old version of the Portable Pascal com- piler library, "pasclib", has been removed (as noted above); Sub- system managers should make sure that this library is removed from =lib= to avoid having users access an older copy of the routines formerly in this library. NNNeeewww SSSuuubbbsssyyysssttteeemmm TTTeeemmmppplllaaattteee The Subsystem template file has been enhanced by the addi- tion of the template "=phonelist=". The 'phone' program was changed to use this template so that the user may set a private value for this template and use personal phone number lists. CCCooommmmmmaaannnddd IIInnnttteeerrrppprrreeettteeerrr EEEnnnhhhaaannnccceeemmmeeennntttsss Terminal configuration (suppressed output and duplex) are restored properly after a command aborts and between execution of commands on a command line. There are two new variables, "_eof" and "_newline", which have been documented. - 3 - Version 8.1 Conversion Guide There is now documentation in the _U_s_e_r_'_s _G_u_i_d_e _t_o _t_h_e _S_o_f_t_w_a_r_e _T_o_o_l_s _C_o_m_m_a_n_d _I_n_t_e_r_p_r_e_t_e_r about restrictions that the Subsystem administrator can impose on Subsystem users in terms of which commands may be executed. UUUpppdddaaattteee tttooo SSSWWWTTTSSSEEEGGG The Subsystem segmented loader has been updated to Primos version 18.3. This will solve most problems with loading the output of the current compilers; the temporary solution for program loading as described in the newsletter is no longer needed. SSStttaaatttuuusss ooofff VVVeeerrrsssiiiooonnn 888 CCCooommmmmmaaannndddsss This section summarizes the user-visible changes that have been made to Subsystem commands for Version 8.1. 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.1 release. OOObbbsssooollleeettteee CCCooommmmmmaaannndddsss The commands in this subsection were part of the Version 8 Subsystem, but are not included in the Version 8.1 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. llleeexxx The lexical analyzer for the SSPL compiler has been removed because support of the compiler no longer exists. ooopppttt666888000000 The Motorola 6800 code generator for the SSPL compiler has been removed because there is no longer any support for the compiler. ooopppttt888000888000 The Intel 8080 code generator for the SSPL compiler has been removed because there is no longer any support for the compiler. ssssssppplll Support for the Small Systems Programming Language com- piler (SSPL) has been removed from the Subsystem, because it enjoyed very limited use. - 4 - Version 8.1 Conversion Guide SSSuuupppeeerrrssseeedddeeeddd CCCooommmmmmaaannndddsss The commands in this subsection are not part of the Ver- sion 8.1 Subsystem; their functionality has been subsumed by other commands. Each entry describes the command and options you can use to get the same results. NNNooo cccooommmmmmaaannndddsss aaarrreee sssuuupppeeerrrssseeedddeeeddd aaattt VVVeeerrrsssiiiooonnn 888...111... MMMooodddiiifffiiieeeddd CCCooommmmmmaaannndddsss The commands listed in this subsection have been modified for the Version 8.1 release and are no longer completely com- patible with their Version 8 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. NNNooo cccooommmmmmaaannndddsss aaarrreee mmmooodddiiifffiiieeeddd aaattt VVVeeerrrsssiiiooonnn 888...111... EEEnnnhhhaaannnccceeeddd CCCooommmmmmaaannndddsss Commands in this subsection have been functionally enhanced for the Version 8.1 release, but remain compatible with their Version 8 counterparts. bbbmmmeeerrrgggeee Updated to handle new object code format. bbbnnnaaammmeeesss Updated to handle new object code format. cccooopppyyyooouuuttt Updated to use new spooler library. dddeeefffiiinnneee Enhanced to allow dollar signs in identifiers (to be compatible with 'rp'). dddmmmaaaccchhh Installed in the correct location (it is supposed to be in "=lbin="). fff777777ccc Now handles the "-u" option to list undefined variables and routines (its default behavior), and allows new levels of optimization. fffccc Added "-k" option to list compilation statistics. fffsssiiizzzeee Gives the number of records in a file system object as the default, and has "-w" option to list sizes in words - 5 - Version 8.1 Conversion Guide (like 'lf'). hhhddd Gives record size for unnormalized records, searches all possible disks instead of stopping at the first one that it could not size, and has new verbose option "-v". iiinnncccllluuudddeee Continues to process input despite errors in opening included files, and handles more deeply nested include calls. lllddd Added "-b" option to handle the C language library, added "-f" option to provide full map, and updated "-u" option to issue "ma 6" instead of "ma 3" to increase load speed. lllpppsss Updated to use the newer spool library, accepts more than one disk pack specification to indicate spool directories to be searched, prefixes the currently printing spooler entry with an asterisk, modified the "-q" option to provide more verbose information, queue entry lists are now prefixed by a label indicating on which disk partition the queue was found, and the "-c" option no longer allows cancellation of print files on remote spool queues. mmmaaacccrrrooo Now accepts the "-e" option to allow the escaping of characters. mmmooonnn Accepts new commands "?", "x", and "q". ooosss Includes speed enhancements and accepts "-x" option to reverse the order in which it outputs the overstrikes (needed for Printronix printers). pppccc Extended the "-f" option to handle the new map options, meaning of the "-q" option changed so that the meaning of the levels is now reversed. pppggg Calls the extended 'page' subroutine to allow search by pattern, etc. See the Reference Manual entry for both the 'pg' command and the 'page' subroutine for more information. ppphhhooonnneee Changed to use the new template "=phonelist=", to allow private phone lists to be used. - 6 - Version 8.1 Conversion Guide ppplllgggccc Extended the "-f" option in the same manner as 'pc', added the "-p" option to control short-call routine generation, and added the "-s" option to control copy- ing of constant subroutine parameters. ppplllpppccc Added "-q" option to control listing of warning mes- sages. ppprrr Now kicks the spooler after the file has been spooled. rrraaadddiiixxx Prints on standard output instead of the error output, as stated in the Reference Manual entry. rrrppp No longer generates calls to the 'init' routine and transliterates single character constants correctly. New 'b' option to prevent mapping of long identifiers or identifiers which contain upper case letters, and new 'h' option to force the output of Hollerith constants rather than quoted string constants. ssseee Handles more terminal types, handles more and longer lines, and fixed errors caused by an uninitialized variable. Documentation has been added for "oss" and "osf" options, "&" pattern element, ";" and "#" line number elements, and extended message command. sssppp Now kicks the spooler after the file has been spooled. wwwhhhooo Added the "-q" option to suppress printing of header lines. - 7 - Version 8.1 Conversion Guide UUUnnnccchhhaaannngggeeeddd CCCooommmmmmaaannndddsss This subsection lists the commands that have no user-visible changes made for Version 8.1. aaalllaaarrrmmm   aaarrr   aaarrrggg   aaarrrgggsss aaarrrgggssstttooo   aaasss111111   aaasss666888000000   aaasss888000888000 bbbaaannnnnneeerrr   bbbaaassseeennnaaammmeee   bbbaaasssyyysss   bbbaaatttccchhh bbbllloooccckkk   bbbsss   bbbsss111   bbbuuuggg bbbuuugggfffmmm   bbbuuugggnnn   bbbyyyeee   cccaaalll cccaaassseee   cccaaattt   cccddd   cccdddmmmlllccc cccdddmmmlllccclll   ccchhhaaannngggeee   ccchhhaaattt   ccchhhooowwwnnn cccllleeeaaarrr   cccllloooccckkk   cccmmmppp   cccnnn cccooobbbccc   cccooobbbccclll   cccooolll   cccooommmmmmooonnn cccooommmooo   cccooopppyyy   cccppp   cccrrryyypppttt cccsssuuubbbccc   ccctttiiimmmeee   ccctttooo   dddaaattteee dddaaayyy   dddbbbggg   ddddddlllccc   dddeeeccclllaaarrreee dddeeeccclllaaarrreeeddd   dddeeelll   dddeeesss   dddeeetttaaabbb dddiiiffffff   dddmmmaaaccchhh   dddnnnuuummm   dddppprrriiinnnttt dddrrroooppp   ddduuummmppp   eee   eeeccchhhooo eeeddd   eeekkk   eeelllssseee   eeennntttaaabbb eeerrrrrrooorrr   eeesssaaaccc   eeevvvaaalll   eeexxxiiittt fff777777ccclll   fffccclll   fffdddmmmlllccc   fffdddmmmlllccclll fffdddmmmppp   fffiii   fffiiieeelllddd   fffiiillleee fffiiillleeesss   fffiiinnnddd   fffiiixxxppp   fffmmmttt fffoooccclllddd   fffooorrrgggeeettt   fffooosss   fffsssuuubbbccc gggoootttooo   ggguuueeessssss   ggguuuiiidddeee   hhheeelllppp hhhiiissstttooorrryyy   hhhppp   iiifff   iiimmmiii iiinnndddeeexxx   iiinnnssstttaaallllllaaatttiiiooonnn   iiinnnttteeelll   iiioootttaaa jjjoooiiinnn   kkkiiillllll   kkkwwwiiiccc   lllaaammm lllaaasssttt   llleeennngggttthhh   lllfff   llliiibbb llliiinnneee   llliiinnnkkk   lllkkk   lllooocccaaattteee llloooggg   lllooogggiiinnn___nnnaaammmeee   mmmaaaiiilll   mmmeeemmmooo mmmkkkccclll   mmmkkkcccllliiisssttt   mmmkkkdddiiirrr   mmmkkkllliiibbb mmmkkktttrrreeeeee   mmmkkkuuusssrrr   mmmoooooottt   mmmooottt mmmttt   mmmvvv   nnnaaarrrgggsss   nnneeewwwsss ooolllddd___aaarrr   ooouuuttt   ppp444ccc   ppp444ccclll pppaaasssssswwwddd   pppaaauuussseee   pppccclll   ppphhh ppphhhiiisssttt   ppplllgggccclll   ppplllpppccclll   pppmmmaaaccc pppmmmaaaccclll   ppprrriiimmmooosss   ppprrriiinnnttt   ppprrrooofffiiillleee pppuuubbbllliiissshhh   pppwwwddd   pppwwwooorrrddd   qqquuuooottteee rrraaaiiiddd   rrrccclll   rrrdddcccaaattt   rrrdddeeexxxtttrrr rrrdddjjjoooiiinnn   rrrdddmmmaaakkkeee   rrrdddppprrriiinnnttt   rrrdddppprrrooojjj rrrdddssseeelll   rrrdddsssooorrrttt   rrrddduuunnniiiqqq   rrreeetttrrraaacccttt rrrfff   rrrffflll   rrrmmmuuusssrrr   rrrnnnddd rrrooottt   rrrsssaaa   rrrtttiiimmmeee   sssaaavvveee ssscccrrrooollllll   ssseeemmmaaa   ssseeeppp   ssseeettt ssshhh   ssshhhooowww   ssshhhtttrrraaaccceee   sssiiizzzeee sssllliiiccceee   sssooolll   sssooorrrttt   sssooouuurrrccceee ssspppeeellliiinnnggg   ssspppeeellllll   ssssssrrr   sssttt___ppprrrooofffiiillleee ssstttaaacccccc   ssstttaaatttsss   ssstttoooppp   sssuuubbbssscccrrriiibbbeee sssuuubbbssstttrrr   sssyyymmmbbbooolllsss   sssyyyssstttaaattt   tttaaaiiilll tttaaakkkeee   tttccc   ttteeeeee   ttteeemmmppplllaaattteee ttteeerrrmmm - 8 - Version 8.1 Conversion Guide NNNeeewww CCCooommmmmmaaannndddsss This subsection lists commands that are new for Version 8.1. bbbrrreeefffsss Provide a list of caller-callee pairs for an object file. cccccc Compiles a C program with the Subsystem C compiler. TTThhhiiisss ppprrrooogggrrraaammm iiisss ooonnnlllyyy aaavvvaaaiiilllaaabbbllleee tttooo cccuuussstttooommmeeerrrsss wwwhhhooo hhhaaavvveee aaalllsssooo llliiiccceeennnssseeeddd ttthhheee CCC lllaaannnggguuuaaagggeee cccooommmpppiiillleeerrr pppaaaccckkkaaagggeee... cccccclll Compiles and loads a C program. TTThhhiiisss ppprrrooogggrrraaammm iiisss ooonnnlllyyy aaavvvaaaiiilllaaabbbllleee tttooo cccuuussstttooommmeeerrrsss wwwhhhooo hhhaaavvveee aaalllsssooo llliiiccceeennnssseeeddd ttthhheee CCC lllaaannnggguuuaaagggeee cccooommmpppiiillleeerrr pppaaaccckkkaaagggeee... iiisssppphhh Allows shell files to determine whether they are run- ning in a phantom environment. This is useful for scripts which might attempt to write to the terminal unless their output is redirected. lllooorrrdddeeerrr Provides the ordering of a library necessary for a one- pass load. sssppplllccc Compiles an SPL program. sssppplllccclll Compiles and loads an SPL program. sssppprrriiinnnttt Filters formatter output for a NEC Spinwriter and provides similar functionality to 'dprint.' tttsssooorrrttt Performs topological sort of caller-callee pairs for ordering library routines. uuucccccc Compiles and loads a C program, ala Unix(tm). TTThhhiiisss ppprrrooogggrrraaammm iiisss ooonnnlllyyy aaavvvaaaiiilllaaabbbllleee tttooo cccuuussstttooommmeeerrrsss wwwhhhooo hhhaaavvveee aaalllsssooo llliiiccceeennnssseeeddd ttthhheee CCC lllaaannnggguuuaaagggeee cccooommmpppiiillleeerrr pppaaaccckkkaaagggeee... vvvcccggg Generates V-mode object code for Prime 50-Series com- puters. Allows the ambitious installation to write "front-ends" for local implementations of compilers. TTThhhiiisss ppprrrooogggrrraaammm iiisss ooonnnlllyyy aaavvvaaaiiilllaaabbbllleee tttooo cccuuussstttooommmeeerrrsss wwwhhhooo hhhaaavvveee aaalllsssooo llliiiccceeennnssseeeddd ttthhheee CCC lllaaannnggguuuaaagggeee cccooommmpppiiillleeerrr pppaaaccckkkaaagggeee... - 9 - Version 8.1 Conversion Guide vvvcccgggddduuummmppp Displays the input files for 'vcg' in a semi-readable format; useful for debugging compiler "front-ends." TTThhhiiisss ppprrrooogggrrraaammm iiisss ooonnnlllyyy aaavvvaaaiiilllaaabbbllleee tttooo cccuuussstttooommmeeerrrsss wwwhhhooo hhhaaavvveee aaalllsssooo llliiiccceeennnssseeeddd ttthhheee CCC lllaaannnggguuuaaagggeee cccooommmpppiiillleeerrr pppaaaccckkkaaagggeee... yyyeeesssnnnooo Provides selective input filtering. SSStttaaatttuuusss ooofff VVVeeerrrsssiiiooonnn 888 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. NNNooo rrrooouuutttiiinnneeesss wwweeerrreee ooobbbsssooollleeettteeeddd aaattt VVVeeerrrsssiiiooonnn 888...111... SSSuuupppeeerrrssseeedddeeeddd RRRooouuutttiiinnneeesss The following routines have been subsumed by other more powerful routines. Each entry names the Version 8.1 routine that performs the same function. aaattt$$$ Use 'at$swt'. Its name was changed to avoid naming conflicts with a Primos 19 routine. MMMooodddiiifffiiieeeddd RRRooouuutttiiinnneeesss The routines listed in this subsection have been modified so that they are no longer compatible with their Version 8 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. fffiiillleee$$$ppp Updated for Prime Pascal version 18.3/18.4 release, which is incompatible with previous releases. iiinnniiittt Modified to allow use of the compatibility library (funeral notices will soon appear in a Subsystem new- - 10 - Version 8.1 Conversion Guide sletter near you). iiinnniiittt$$$ppp Updated for Prime Pascal version 18.3/18.4 release, which is incompatible with previous releases. EEEnnnhhhaaannnccceeeddd RRRooouuutttiiinnneeesss The routines listed in this subsection have additional func- tionality in the Version 8.1 release, but remain compatible with their Version 8 counterparts. aaaddddddssseeettt Cleaned up code and is now part of the standard Sub- system library. aaammmaaatttccchhh Cleaned up code and is now part of the standard Sub- system library. cccaaallllll$$$$$$ Modified to handle the "output suppressed" bits. cccaaannnttt Changed its error message to the one specified in the Reference Manual. cccaaatttsssuuubbb Cleaned up code and is now part of the standard Sub- system library. dddmmmpppcccmmm$$$ Also prints the current EOS value, which is currently stored in the common block. dddooodddaaassshhh Cleaned up code and is now part of the standard Sub- system library. eeesssccc Cleaned up code and is now part of the standard Sub- system library. fffiiilllssseeettt Cleaned up code and is now part of the standard Sub- system library. gggeeetttcccccclll Cleaned up code and is now part of the standard Sub- system library. lllooocccaaattteee Cleaned up code and is now part of the standard Sub- system library. - 11 - Version 8.1 Conversion Guide mmmaaakkkpppaaattt Cleaned up code and is now part of the standard Sub- system library. mmmaaakkksssuuubbb Cleaned up code and is now part of the standard Sub- system library. mmmaaatttccchhh Cleaned up code and is now part of the standard Sub- system library. ooommmaaatttccchhh Cleaned up code and is now part of the standard Sub- system library. pppaaagggeee Handles the page count correctly, allows pattern sear- ching, and has been modified to provide better per- formance. pppaaatttsssiiizzz Cleaned up code and is now part of the standard Sub- system library. ssstttccclllooosss Cleaned up code and is now part of the standard Sub- system library. vvvfffyyyuuusssrrr Checks the length of its argument, and immediately returns if the argument string is too long to be a legal login name. vvvttt$$$dddeeefff Uses Primos C1IN instead of T1IN for faster response. vvvttt$$$gggeeettt Uses Primos C1IN instead of T1IN for faster response. vvvttt$$$gggsssqqq Uses Primos C1IN instead of T1IN for faster response. vvvttt$$$nnndddfff Uses Primos C1IN instead of T1IN for faster response. vvvttt$$$pppooosss Supports positioning for Hewlett-Packard terminals. - 12 - Version 8.1 Conversion Guide UUUnnnccchhhaaannngggeeeddd RRRooouuutttiiinnneeesss No user-visible changes have been made to the routines listed in this subsection. aaatttoooccc   bbbpppooonnnuuu$$$   ccc$$$eeennnddd   ccc$$$iiinnncccrrr ccc$$$iiinnniiittt   ccchhhkkkaaarrrggg   ccchhhkkkiiinnnppp   ccchhhkkkssstttrrr ccchhhuuunnnkkk$$$   ccclllooossseee   cccooofff$$$   cccpppfffiiilll$$$ cccpppssseeeggg$$$   cccrrreeeaaattteee   ccctttoooaaa   ccctttoooccc ccctttoooddd   ccctttoooiii   ccctttooolll   ccctttooommmnnn ccctttoooppp   ccctttooorrr   ccctttooovvv   dddaaattteee dddeeecccooodddeee   dddeeelllaaarrrggg   dddeeellleeettteee   dddgggeeetttlll$$$ dddmmmaaarrrkkk$$$   dddmmmpppfffddd$$$   dddooopppeeennn$$$   dddpppuuutttlll$$$ dddrrreeeaaaddd$$$   dddsssdddbbbiiiuuu   dddsssddduuummmppp   dddssseeeeeekkk$$$ dddsssfffrrreeeeee   dddsssgggeeettt   dddsssiiinnniiittt   dddtttoooccc dddwwwrrriiittt$$$   eeedddiiittt   eeennncccooodddeee   eeennnttteeerrr eeeqqquuuaaalll   eeerrrrrrooorrr   eeexxxeeeccc   eeexxxeeecccnnn eeexxxpppaaannnddd   fffcccooopppyyy   fffiiilllcccpppyyy   fffiiillltttsssttt fffiiinnndddfff$$$   fffiiinnnfffooo$$$   fffiiirrrsssttt$$$   fffllluuussshhh$$$ fffooollllllooowww   gggcccddd   gggcccdddiiirrr$$$   gggccciiifffuuu$$$ gggccctttoooiii   gggccctttooolll   gggeeetttaaa$$$fff   gggeeetttaaa$$$ppp gggeeetttaaa$$$ppplllggg   gggeeetttaaarrrggg   gggeeetttccchhh   gggeeetttfffddd$$$ gggeeetttkkkwwwddd   gggeeetttllliiinnn   gggeeettttttooo   gggeeetttvvvdddnnn gggeeetttwwwrrrddd   gggfffnnnaaammm$$$   gggfffnnnaaarrrggg   gggiiitttoooccc gggkkklllaaarrrggg   gggllltttoooccc   gggtttaaattttttrrr   gggttteeemmmppp gggttttttyyypppeee   gggvvvlllaaarrrggg   iiicccooommmnnn$$$   iiinnndddeeexxx iiinnniiittt$$$fff   iiinnniiittt$$$ppplllggg   iiinnnpppuuuttt   iiinnnvvvmmmoooddd iiioooffflll$$$   iiioooiiinnniiittt   iiisssaaadddssskkk   iiisssaaattttttyyy iiitttoooccc   jjjdddaaattteee   llldddssseeeggg$$$   llldddtttmmmppp$$$ llleeennngggttthhh   lllooooookkkuuuppp   lllooopppeeennn$$$   lllsssaaallllllooo lllssscccmmmpppkkk   lllssscccooommmppp   lllssscccooopppyyy   lllssscccuuuttt lllsssdddeeelll   lllsssdddrrroooppp   lllsssddduuummmppp   lllssseeexxxtttrrr lllsssfffrrreeeeee   lllsssgggeeetttccc   lllsssgggeeetttfff   lllsssiiinnniiittt lllsssiiinnnsss   lllsssjjjoooiiinnn   lllsssllleeennn   lllsssmmmaaakkkeee lllssspppooosss   lllssspppuuutttccc   lllssspppuuutttfff   lllssssssuuubbbsss lllssstttaaakkkeee   llltttoooccc   llluuuttteeemmmppp   mmmaaapppdddnnn mmmaaapppfffddd   mmmaaapppssstttrrr   mmmaaapppsssuuu   mmmaaapppuuuppp mmmaaarrrkkkfff   mmmkkkdddiiirrr$$$   mmmkkkfffddd$$$   mmmkkkpppaaa$$$ mmmkkktttaaabbblll   mmmkkkttteeemmmppp   mmmkkktttrrr$$$   mmmnnntttoooccc mmmooovvveee$$$   ooopppeeennn   pppaaarrrsssccclll   pppaaarrrsssdddttt pppaaarrrssstttmmm   ppprrriiimmmeee   ppprrriiinnnttt   ppptttoooccc pppuuutttccchhh   pppuuutttdddeeeccc   pppuuutttllliiinnn   pppuuutttllliiittt pppwwwrrrmmmoooddd   rrreeeaaadddfff   rrreeemmmaaarrrkkk   rrreeemmmooovvveee rrreeeooonnnuuu$$$   rrreeewwwiiinnnddd   rrrmmmfffiiilll$$$   rrrmmmssseeeggg$$$ rrrmmmtttaaabbblll   rrrmmmttteeemmmppp   rrrtttnnn$$$$$$   rrrtttoooccc ssscccooopppyyy   sssccctttaaabbblll   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   sssppprrrooottt$$$   sssttt$$$llluuu   ssstttaaakkkeee ssstttrrrbbbsssrrr   ssstttrrrcccmmmppp   ssstttrrriiimmm   ssstttrrrlllsssrrr sssuuubbbssstttrrr   ssswwwttt   sssyyysss$$$$$$   ttt$$$cccllluuuppp ttt$$$eeennntttrrr   ttt$$$eeexxxiiittt   ttt$$$tttiiimmmeee   ttt$$$tttrrraaaccc tttcccooooookkk$$$   tttgggeeetttlll$$$   tttmmmaaarrrkkk$$$   tttpppuuutttlll$$$ tttqqquuuiiittt$$$   tttrrreeeaaaddd$$$   tttrrruuunnnccc   tttssscccaaannn$$$ tttssseeeeeekkk$$$   ttttttyyyppp$$$fff   ttttttyyyppp$$$lll   ttttttyyyppp$$$qqq - 13 - Version 8.1 Conversion Guide ttttttyyyppp$$$rrr   ttttttyyyppp$$$vvv   tttwwwrrriiittt$$$   tttyyypppeee uuupppkkkfffnnn$$$   vvvttt$$$aaalllccc   vvvttt$$$ccclllrrr   vvvttt$$$dddbbb vvvttt$$$dddbbb111   vvvttt$$$dddbbb222   vvvttt$$$dddbbb333   vvvttt$$$dddeeelll vvvttt$$$dddssswww   vvvttt$$$eeerrrrrr   vvvttt$$$iiidddfff   vvvttt$$$iiieeerrr vvvttt$$$ooouuuttt   vvvttt$$$pppuuuttt   vvvttt$$$rrrdddfff   vvvtttccclllrrr vvvttteeennnbbb   vvvtttgggeeetttlll   vvvtttiiinnnfffooo   vvvtttiiinnniiittt vvvtttmmmooovvveee   vvvtttmmmsssggg   vvvtttoooccc   vvvtttooopppttt vvvtttpppaaaddd   vvvtttppprrrttt   vvvtttpppuuutttlll   vvvtttrrreeeaaaddd vvvtttssstttoooppp   vvvtttttteeerrrmmm   vvvtttuuupppddd   wwwiiinnnddd wwwkkkdddaaayyy   wwwrrriiittteeefff   zzzmmmeeemmm$$$ NNNeeewww RRRooouuutttiiinnneeesss The routines listed in this section are new for the Ver- sion 8.1 release. aaabbbqqq$$$xxxsss Adds an entry to the bottom of a queue. aaattt$$$ssswwwttt Provides interlude to Primos ATCH$$ (formerly 'at$'). aaatttqqq$$$xxxsss Adds an entry to the top of a queue. dddaaacccooosss Returns the double precision inverse cosine value of its argument. dddaaasssiiinnn Returns the double precision inverse sine value of its argument. dddbbbeeexxxppp Returns the double precision exponentiation of its argument to the base of the natural logarithms. dddbbbsssqqqrrrttt Returns the double precision square root of its argument. dddffflllooottt Returns the double precision float of its long integer argument. dddrrraaannnddd Returns a double precision random number. gggeeettt$$$xxxsss Returns a character from an array by using efficient indexing and byte-swapping operations. - 14 - Version 8.1 Conversion Guide gggkkkyyy$$$xxxsss Returns the current CPU keys. iiisssnnnuuullllll Test to see if a given file is the null device. mmmkkkqqq$$$xxxsss Initializes a hardware-defined queue. pppeeekkk$$$xxxsss Returns the value in a given memory location (performs a peek operation). pppoookkk$$$xxxsss Changes the value in a given memory location (performs a poke operation). pppuuuttt$$$xxxsss Put a character into an array by using efficient index- ing and byte-swapping operations. rrrbbbqqq$$$xxxsss Returns the value removed from the bottom of a queue. rrrdddyyy$$$xxxsss Returns the character that was typed at a terminal, if any. rrrtttqqq$$$xxxsss Returns the value removed from the top of a queue. sss111ccc$$$xxxsss Implements an atomic set-and-test operation. sss222ccc$$$xxxsss Implements an atomic set-and-test operation on a double-word. ssskkkyyy$$$xxxsss Changes the value of the CPU keys. ssstttkkk$$$xxxsss Sets and reads the value of the stack extension pointer. tttsssqqq$$$xxxsss Returns the number of entries in a queue. - 15 - ___TTT___AAA___BBB___LLL___EEE___ ___OOO___FFF___ ___CCC___OOO___NNN___TTT___EEE___NNN___TTT___SSS IIInnntttrrroooddduuuccctttiiiooonnn ............................................. 1 GGGlllooobbbaaalll CCChhhaaannngggeeesss ........................................... 1 Change in Value of EOS ................................ 1 Macro Definition Changes .............................. 2 New Subsystem Libraries ............................... 3 Deleted Subsystem Libraries ........................... 3 New Subsystem Template ................................ 3 Command Interpreter Enhancements ...................... 3 Update to SWTSEG ...................................... 4 SSStttaaatttuuusss ooofff VVVeeerrrsssiiiooonnn 888 CCCooommmmmmaaannndddsss ............................. 4 Obsolete Commands ..................................... 4 Superseded Commands ................................... 5 Modified Commands ..................................... 5 Enhanced Commands ..................................... 5 Unchanged Commands .................................... 8 New Commands .......................................... 9 SSStttaaatttuuusss ooofff VVVeeerrrsssiiiooonnn 888 SSSuuubbbrrrooouuutttiiinnneeesss .......................... 10 Obsolete Routines ..................................... 10 Superseded Routines ................................... 10 Modified Routines ..................................... 10 Enhanced Routines ..................................... 11 Unchanged Routines .................................... 13 New Routines .......................................... 14 - iii -