home *** CD-ROM | disk | FTP | other *** search
/ The Hacker's Encyclopedia 1998 / hackers_encyclopedia.iso / zines / phrack2 / phrack44.014 < prev    next >
Encoding:
Text File  |  2003-06-11  |  45.3 KB  |  1,156 lines

  1.                               ==Phrack Magazine==
  2.  
  3.                  Volume Four, Issue Forty-Four, File 14 of 27
  4.  
  5. ()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()
  6.  
  7.                  A Guide to Data General Corporation's
  8.  
  9.                              AOS/VS System
  10.                                  PART I
  11.  
  12.                              by Herd Beast
  13.  
  14.  
  15. INTRODUCTION
  16. ~~~~~~~~~~~
  17.  
  18. This file is a full (as full as such a file can get) guide to the AOS/VS
  19. system.  The main reason for writing it is that from what I've seen,
  20. there is practically no info (in the form of files or otherwise) about
  21. it.  I won't say I'm the only one who knows anything about it, but I had
  22. a hell of a time getting any sort of help when I started hacking these
  23. systems (I didn't get that help, in case you were wondering, and wrote
  24. this file all by myself 'cause I'm a MAN!  Hahaha! <snort> <snort>).
  25.  
  26. I will explain a little about AOS/VS and then explain some of the
  27. commands and security features in it.  This file is not a buffer of any
  28. help facility, although much information can and will be found in the
  29. help facility.
  30.  
  31. I can be contacted (hopefully) at hbeast@mindvox.phantom.com.  If you
  32. want a nice start, and a front page on Newsweek, some Texaco ("Star of
  33. the American Road") systems run AOS/VS.
  34.  
  35. I cannot, will not, and do not assume liability for ANY of the effects
  36. of the use of this file.  Also, I cannot guarantee that EVERYTHING will
  37. work EVERYWHERE, so treat this file as a reference.  This file by no
  38. means covers everything about AOS/VS.
  39.  
  40. IDENTIFYING THE SYSTEM
  41. ~~~~~~~~~~~~~~~~~~~~~
  42.  
  43. Should you just fall at the system prompt, you might mistake it for a
  44. VMS.  However, blank prompts like that are rare.  An AOS/VS will
  45. identify itself like this: (this and all other buffered info in this
  46. file are from an AOS/VS II with CLI32.  Only the best for Phrack)
  47.  
  48. AOS/VS II 2.20.00.12 / EXEC-32 2.20.00.07       31-May-93 22:51:25      @CON177
  49.  
  50. Username:
  51. Password:
  52.  
  53. Another thing different will be the incorrect login message:
  54.  
  55. Invalid username - password pair
  56.  
  57. The header line lists the system version, current time/date and the console
  58. you are using.
  59.  
  60. When you reach the maximum incorrect logins defined in the system, it
  61. will show the line below and disconnect:
  62.  
  63. Too many attempts, console locking for 10 seconds
  64.  
  65. When you do succeed to log on, the system will display:
  66.  
  67. ------
  68.         Copyright (C) Data General Corporation, 1980 - 1992
  69.         All rights reserved.
  70.         Licensed material -- property of Data General Corporation
  71.         This software is made available solely pursuant to the
  72.         terms of a DGC license agreement which governs its use.
  73.  
  74. ((NOTE: Or something else.  This is the default))
  75. --------
  76. Most recent logon        1-Jan-93       10:10:01
  77.  
  78. Very clear.  Before you do anything, type CHARACTERISTICS.  You will
  79. then get output like this:
  80.  
  81. /605X/LPP=24/CPL=80/BREAK=BMOB/TCC=40000/TCD=5000/TDW=1000/THC=2000/TLT=2000
  82. /ON/ST/EB0/ULC/WRP/CTD
  83. /OFF/SFF/EPI/8BT/SPO/RAF/RAT/RAC/NAS/OTT/EOL/UCO/MRI/FF/EB1/PM/NRM/MOD/TO/TSP/
  84. C/FKT/VAL/HOFC/SHR/OFC/IFC/16B/ACC/SRDS/XLT/AUTOBAUD/CALLOUT/MDUA/HDPX/SMCD/RT
  85. D/HIFC/G1G0/DKHW/NLX
  86.  
  87. Look for "/NAS".  It stands for non ANSI standard, which means that if
  88. you are using ANSI (probably you are), you needs to issue
  89. CHARACTERISTICS/OFF/NAS, should you find "/NAS" listed after "/ON".
  90.  
  91. Upon logging off from the system (BYE), you will see:
  92.  
  93. AOS/VS II  CLI   Terminating     1-JAN-93       11:11:01
  94. Process 180 Terminated
  95. Elapsed Time   0:16:26, CPU Time   0:00:02.447, I/O Blocks  281
  96. (Other console jobs, same USERNAME --  16)
  97. User 'HBT' logged off @CON228   1-Jan-93       11:11:01
  98.  
  99. SYSTEM DEFAULTS
  100. ~~~~~~~~~~~~~~
  101.  
  102. These are accounts I usually found existing.  As usual, they are really
  103. similar to those of any other system.
  104.  
  105. USERNAME
  106. --------
  107. ((Privileged accounts))
  108. OP                                 EXEC default username
  109. SYSMGR                             System manager
  110. CEO_MGR                            If the system is running CEO
  111. OPER
  112. OPERATOR
  113. ((Regular accounts))
  114. CEO.xxxxx                          If the system is running CEO, a CEO
  115.                                    user, xxxxx being his number.
  116.  
  117. As for password guessing, well, it's all been said.  Try the username,
  118. with some modification, you might get in.  As dumb as it sounds, yes,
  119. people do have weak passwords, even today, although not everywhere.
  120.  
  121. SYSTEM STRUCTURE
  122. ~~~~~~~~~~~~~~~
  123.  
  124. In this section I'll try to describe the real basics of AOS/VS.  I will
  125. describe a few commands HERE, and not under "Command List", these
  126. commands will be the basic commands: change directory, list files, etc,
  127. needed to survive in any system.
  128.  
  129. The AOS "shell" is called CLI (Command Line Interpreter).  There are
  130. two versions of CLI, CLI16 and CLI32, with CLI32 being more advanced.
  131. The CLI version affects the system prompt, the way commands are handled
  132. by the system and by the user, and more.  For example, some command
  133. switches do not exist under CLI16 (unless very important, I omitted
  134. switches that work only under CLI32 from this file).
  135.  
  136. Here are the privilege levels available under AOS/VS:
  137.  
  138.           CLI16 PROMPT   CLI32 PROMPT  PRIVILEGES MODES
  139.           -------------+--------------+--------------------------
  140.           )              )             None
  141.                          Sm)           System Manager
  142.           +)             Sp)           Superprocess
  143.           *)             Su)           Superuser
  144.                          SmSp)         System Manager and Superprocess
  145.                          SmSu)         System Manager and Superuser
  146.           #)             SpSu)         Superprocess and Superuser
  147.                          SmSpSu)       System Manager, Superprocess, Superuser
  148.  
  149. AOS/VS doesn't grant privileges upon logon.  A user's profile may state
  150. the user can access privilege level So-And-So, and if the user later
  151. needs that level, he calls upon a SUPER utility to grant him that
  152. level.  This is the place to explain how several different utilities
  153. work.  OPERATOR grants the user the ability to access diskettes in dump
  154. or load sessions (see the section titled "System Commands") in sequential
  155. order, instead of accessing them one by one.  SUPERUSER turns off all
  156. access checking, enabling the user to do anything with any file on the
  157. system.  SUPERPROCESS gives the user the ability to terminate, block,
  158. unblock, or change priorities of any process on the system.  The last
  159. command, PRIVILEGE, which is available only under CLI32, enables the user
  160. to set both SUPERUSER and SUPERPROCESS access.  It also offers the only
  161. way to set SYSTEMMANAGER access, which is required for operations like
  162. changing time or date.
  163.  
  164. Command are executed by calling their names, or any part of their name
  165. that only fits them.  For example, SUPERUSER can be abbreviated as
  166. SUPERU.  It is important to remember that command switches MUST follow
  167. the command without any space, or else the command will try to process
  168. the switches!  For example, CHARACTERISTICS /OFF/NAS will result in an
  169. "Error: Illegal filename character characteristics,/off/nas".
  170.  
  171. The root directory directory is called ':'.  Any other directories are
  172. under it, for example ':OUT' and ':OUT:RALF'.  If, for example, you FTP
  173. into an AOS/VS and use "cd /" you will be moved in ':'.  If you use "cd
  174. /out/ralf" you will be moved into ':OUT:RALF'.  To make this much more
  175. clearer (right):
  176.  
  177.                                    :
  178.                                   HBT
  179.                                    |
  180.                                    |
  181.                                   TEXT
  182.                                   /  \
  183.                              PHRACK  SEX
  184.  
  185. Legal characters in file or directory names are all the alphabet and
  186. numbers, plus '$', '_', '.' and '?'.
  187.  
  188. Moving from directory to directory is done by using the "DIRECTORY"
  189. command.  Without any arguments, DIRECTORY shows the current path.  With
  190. an argument, DIRECTORY changes to that directory.
  191.  
  192. DIRECTORY [directory]
  193. ---------------------
  194.  
  195. /I        Changes to the initial directory
  196. /I path   Changes the initial directory to "path"
  197. /P        Changes to the previous directory
  198.  
  199. To list files in a directory, use "FILESTATUS".  Without arguments,
  200. FILESTATUS lists files in the current directory.  With a path argument,
  201. FILESTATUS lists file in that path.
  202.  
  203. FILESTATUS [directory]
  204. ----------------------
  205.  
  206. /[AFTER|BEFORE]/[TCR|TLA|TLM]=date and/or time
  207.  
  208.           Shows files matching the selection date or time.  The
  209.           selections are: time created (TCR); time last accessed (TLA);
  210.           and time last modified (TLM).  The difference between accessed
  211.           and modified is pretty clear, for example if the file is an
  212.           executable.  The date/time format is: for TIME - hour-minute-sec
  213.           (xx-xx-xx); for DATE - day-month-year (xx-xxx-xx); for BOTH -
  214.           dd-mmm-yy:hh:mm:ss.  Example command lines will be
  215.  
  216.           FILESTATUS/AFTER/TCR=11             Created after 11 AM
  217.           FILESTATUS/BEFORE/TLM=01-JAN-90     Modified before 01/01 1990
  218.           FILESTATUS/AFTER/TLA=01-JAN-90:11   Accessed after 11 AM,
  219.                                               01/01, 1990
  220.  
  221. /ASSORTMENT
  222.  
  223.           Normally, FILESTATUS output is just file name.  With
  224.           /ASSORTMENT, FILESTATUS shows file type, time/date of
  225.           creation, and length in bytes.  Similar to Unix, if the file
  226.           is a link, the file type is set to LNK and FILESTATUS shows
  227.           its path.
  228.  
  229. /COUNT    Tells how many files are in the directory.   [CLI32]
  230.  
  231. /[DCR|DLA|DLM]
  232.  
  233.           Shows date of creation (DCR); date last accessed (DLA); and
  234.           date last modified (DLM).
  235.  
  236. /LENGTH   Displays file length in bytes.
  237.  
  238. /LINKNAME
  239.  
  240.           If the file is a link, FILESTATUS displays the information
  241.           about the file that it's linked too.  For example, if BOB is
  242.           linked to RON, FILESTATUS/LINKNAME BOB would display RON's
  243.           details.  Otherwise, nothing happens.
  244.  
  245. /TYPE=[\]type
  246.  
  247.           Displays files of type, or all files not of that type (if
  248.           \type) was used.  See below for valid file types.
  249.  
  250. /UDA      If the file has a UDA (user data area), its presence is displayed.
  251.  
  252. The CLI's wildcards (sort of), are '=', '^', ':' and '@.  '=' means the
  253. current directory.  '^' means the parent directory.  ':' is (as already
  254. said) the root directory.  '@' means the devices directory (where
  255. consoles, tape drives, modems, etc are.  Similar to /dev on Unix).  Note
  256. that when talking about directories, the ':' is already included.  For
  257. example, if you're in :UDD:HBT:TEXT, and want to move to :UDD:HBT:BIN,
  258. you'd type DIRECTORY ^BIN, and not DIRECTORY ^:BIN.  File wildcards are
  259. '+', which is equivalent to '*' at DOS, and '#' which is equivalent to
  260. '*.*' at DOS.  For example, FILE +.CLI will show all the files whose
  261. names end with ".CLI"; FILE :UDD:# will display all the files in UDD
  262. (which won't happen if you just issue FILE :UDD -- in that case, you'll
  263. see only information about the directory UDD, and not the files within
  264. it).
  265.  
  266. As with Unix, you can enter more than one command on a line if you
  267. separate the commands with a ';' (a semicolon).  If you need more than a
  268. line for your commands, type an '&' before pressing Return, and the CLI
  269. will just keep on reading, instead of processing the command line and
  270. try to run it.  This goes ONLY for a sequence like this: "&<Return>", an
  271. '&' anywhere else acts just like any other character.
  272.  
  273. There are several control characters the CLI takes and uses:
  274.  
  275.                  CONTROL CHAR               WHAT IT DOES
  276.                  ------------------+-------------------------------
  277.                  Ctrl-C              Begins a Ctrl char sequence.
  278.  
  279.                  Ctrl-D              End of file.
  280.  
  281.                  Ctrl-L              Clear screen.
  282.  
  283.                  Ctrl-P              Don't interpret the following
  284.                                      character in any special way.
  285.  
  286.                  Ctrl-S              Stops output to the terminal.
  287.  
  288.                  Ctrl-Q              Resumes output to the terminal.
  289.  
  290.                  Ctrl-U              Cancel (delete) current input line.
  291.  
  292.                  Ctrl-C Ctrl-A       Interrupt current process.
  293.  
  294.                  Ctrl-C Ctrl-B       Terminates current process.
  295.  
  296.                  Ctrl-C Ctrl-C       Empties the input buffer.
  297.  
  298.                  Ctrl-C Ctrl-E       Terminates current process and
  299.                                      create a break file (where
  300.                                      termination message is stored).
  301.  
  302. If the CLI is run with a /NOCA switch, it will ignore Ctrl-C Ctrl-A
  303. sequences, so if put in the start of a macro file, it won't allow you to
  304. break that macro and enter the CLI.
  305.  
  306. AOS/VS had many file types.  File types are three letter acronyms
  307. (although not always) for the file; the same way DOS and VMS have
  308. extensions, the file type controls what the file is (it can have any
  309. extension in its name).  File types have a decimal numbers assigned to
  310. them, as well.  There are 70 file types, although the operating
  311. system reserves space for 128.  The user can define his own file types.
  312. These are some of the he AOS/VS file types:
  313.  
  314.                      TYPE NUMBER     TYPECODE       MEANING
  315.                     -------------+------------+-----------------
  316. All these types  /      11        LDU        Logical disk unit
  317. are directories -|      12        CPD        Control point directory
  318.                  \      10        DIR        Directory
  319.                          0        LNK        Link
  320.                         68        TXT        Text
  321.                          1        SDF        System data file
  322.                          2        MTF        Magnetic tape file
  323.                         13        MTV        Magnetic tape volume
  324.                         22        MTU        Magnetic tape unit
  325.                         49        CON        Console
  326.                         51        RMA        Remote host (RMA)
  327.                         52        HST        Remote host (X.25 SVC)
  328.                         54        PVC        Remote host (X.25 PVC)
  329.                         64        UDF        User data file
  330.                         69        LOG        System log file
  331.                         74        PRV        AOS/VS program file
  332.                         75        WRD        Word processing file
  333.                         87        UNX        Unix file (created on a Unix)
  334.                         95        SPD        Spreadsheet file
  335.                        104        PIP        Pipe
  336.                        105        TTX        Teletex file
  337.  
  338.  
  339. "Generic files" are actually pointers that help using devices and files.
  340. For example, the @NULL generic file functions like /dev/null on Unix.
  341. Here are the generic files:
  342.  
  343.      @CONSOLE       The process' (user's) console.
  344.  
  345.      @DATA          A long file created by the user that will be used as
  346.                     data by a program.  @DATA is set using DATAFILE.
  347.  
  348.      @INPUT         A short file created by the user that will be used
  349.                     as input by a program.  @INPUT is set using
  350.                     PROCESS/INPUT=.
  351.  
  352.      @NULL          Well, null.
  353.  
  354.      @LIST          A long output file that will be used as a program's
  355.                     output.  @LIST is set using LISTFILE.
  356.  
  357.      @OUTPUT        A short output file for a program.  @OUTPUT is set
  358.                     using PROCESS/OUTPUT=.
  359.  
  360. When a program is run, it will sometime try to open one of these generic
  361. files.  If they're not set, it will fail on error 21 (non existent
  362. file).  But if the file is set, it can use it.  So, for example, you can
  363. use PROCESS/OUTPUT=@CONSOLE PROGRAM for output to go to you, or
  364. PROCESS/OUTPUT=OUT_FILE PROGRAM for it to go to OUT_FILE.
  365.  
  366. "Device files" are files the connect to hardware parts, such as modems,
  367. printers, tapes, diskette drives, FAX machines, etc.  In due time, a
  368. program called EXEC makes a connection between processes and devices and
  369. utilizes those devices (see the section titled "The 'EXEC' Program").
  370. Some devices are also used by the backup related programs DUMP and LOAD,
  371. and more.  Some of these are:
  372.  
  373.      @MTB0:x        The magnetic tape unit #0, x being a dumpfile on the
  374.                     tape (x starts from 0).
  375.  
  376.      @DPJ           A diskette device name.
  377.  
  378.      @LFD           A generic labeled diskette file name.
  379.  
  380.  
  381. The equivalent of a PATH (usually environment variable) in other systems
  382. is called SEARCHLIST in AOS/VS.  When you call a command, or ask for
  383. help, the CLI looks through your SEARCHLIST for the files.  So, assuming
  384. you typed HELP MODEM, and somewhere in your searchlist there exists a
  385. file called MODEM.CLI, HELP will show you,
  386. modem           - Macro, File :UTIL:COMM:MODEM.CLI
  387. The same goes for other commands, even TYPE (TYPE MODEM.CLI from
  388. :UDD:HBT, if :UTIL:COMM is in your searchlist and there's no MODEM.CLI
  389. in :UDD:HBT will work).
  390.  
  391. To display your searchlist, just use plain SEARCHLIST.  To change it,
  392. use SEARCHLIST path,path,path ...
  393.  
  394. It's possible to set a password for your current CLI session.  This
  395. password is not the password used upon login!  It's a password the user
  396. sets to protect his session.  He then types LOCK, and from then, anyone
  397. wishing to use the user's CLI (from the user's console), must enter the
  398. password first.  Legal passwords are up to 32 characters long, not
  399. including Ctrl characters.
  400.  
  401. The CLI offers several levels to the user.  It starts on the highest
  402. level, 0, and the user may create other level, and use POP to move up a
  403. level, and PUSH to go down a level.  When a user POPs to a level,
  404. the CLI environment of the older (higher) level remains (the environment
  405. of the level he was in until that time is therefore changed).  When he
  406. PUSHes, the current level's environment is copied to the lower level.
  407. To display the current CLI level, use LEVEL.  To display the level's
  408. environment, use CURRENT.  To display an upper level's environment
  409. (except when at the highest level), use PREVIOUS.
  410.  
  411. When you want to print a file, or run something in the background, you
  412. have to submit it as a job.  The submit a printing job, use the QPRINT
  413. command (will print the file).  To submit a batch job, which is for
  414. executing a command, use QBATCH (for example, QBATCH MASM ASMPROG).
  415.  
  416. AOS/VS had a facility called "queues", managed by the EXEC program (see
  417. "The 'EXEC' Program").  A queue is a place where file transfer, batch,
  418. and printing jobs are stored until the right process can take them and
  419. execute them.  The standard queues are:
  420.  
  421.           QUEUE NAME       JOB TYPE                 CONTENTS
  422.           --------------+------------+----------------------------------
  423.           BATCH_INPUT        Batch       Batch input files.
  424.                                          Submitted by QBATCH or QSUBMIT.
  425.  
  426.           BATCH_OUTPUT       Printing    Output files from finished
  427.                                          batch jobs (usually sent to a
  428.                                          line printer).
  429.  
  430.           BATCH_LIST         Printing    List files from finished batch
  431.                                          jobs (usually sent to a line
  432.                                          printer).
  433.  
  434.               ((Batch jobs are submitted through QBATCH.))
  435.  
  436.           LPT                Printing    Print jobs submitted by QSUBMIT.
  437.  
  438.           MOUNTQ             Mount       Tape mount requests.
  439.                                          Submitted by MOUNT.
  440.  
  441. After a job has been submitted, use QDISPLAY to show its status.  Use
  442. QHOLD to hold jobs and QUNHOLD to release them.  Last, to display the
  443. status of all queues, use QDISPLAY as well.
  444.  
  445. AOS/VS also has an extensive help facility.  For help on broad topics,
  446. use HELP (to list topics) and then HELP *TOPIC.  For help on system
  447. commands, use HELP COMMAND (for a list of switches) or HELP/V COMMAND for
  448. more details.
  449.  
  450. CLI MACRO PROGRAMMING
  451. ~~~~~~~~~~~~~~~~~~~~
  452.  
  453. Macro filenames usually end with ".CLI" are usually text files (filetype
  454. TXT).  A macro is a file that will be executed when called (adding .CLI
  455. to the name when calling isn't necessary), and perform the commands (or
  456. other macros) in it.  If the macro matches the name of a CLI command,
  457. the macro must be called together with the .CLI part of its name.  Macros
  458. expand arguments in the following way:
  459.  
  460. Range Arguments (like filenames):
  461.  
  462. %x%       Argument number x, with its switches.  %0% is the macro's
  463.           name.
  464. %-%       All the arguments, with their switches, except for %0%.
  465. %x-y,i%   Arguments x through y, in jumps of i.  If x or i are missing,
  466.           the CLI assumes 1.  If y is omitted, 32767 is assumed.  For
  467.           example, if the arguments were "1 2 3 4 5 6 7", a %2-6,2% call
  468.           expands to "2 4 6".
  469.  
  470. Switch Arguments:
  471.  
  472. %x/%      All the switches of argument x.
  473. %x\%      Argument x, without its switches.
  474. %x/y%     Argument x, with switch number y.
  475. %x/y=%    The value of argument's x switch number y.
  476. %x\y%     All the switches of argument x, including their values, except
  477.           for switch number y.
  478.  
  479. Conditionals are used in the form of [CONDITIONAL,ARGS].  If a
  480. conditional returns TRUE, the CLI executes everything after it until it
  481. reaches an ELSE or an END.  Otherwise, it skips to an ELSE or an END
  482. (basic programming).
  483.  
  484. !EQUAL    True if both arguments equal alphabetically.
  485. !NEQUAL   True if both arguments don't equal alphabetically.
  486. !UEQ      True if both arguments equal numerically.
  487.  
  488. These are called pseudo macros, and are usually built like conditionals,
  489. although sometimes they just substitute for a part of the environment.
  490. There are about 60 of them, but I'll only list a selected few for
  491. brevity.
  492.  
  493. [!ACL path]         Expands for the ACL of path.
  494. [!ASCII octnum]     Expands to the ASCII character with the octnum octal
  495.                     number.  For example, newline is octal 12.
  496. [!CLI]              Expands to CLI32 or CLI16, according to the CLI.
  497. [!DATE]             Date, like 01-Jan-93.
  498. [!SYSTEM]           Expands to the type of OS.
  499. [!SEARCHLIST]       Expands to the search list.
  500. [!LEVEL]            Expands to the current CLI level.
  501. [!CLI]              Expands to the CLI type.
  502. [!EXPLODE args]     Puts a comma between each pair of character in args.
  503.                     When used with STRING, in converts spaces and tabs
  504.                     too.  When used with WRITE, in converts into space.
  505. [!LISTFILE]         Expands to the path of the listfile.
  506. [!USERNAME]         Expands to the username of the person running the
  507.                     macro.
  508. [!LOGON]            Returns CONSOLE if logged on to a terminal or BATCH
  509.                     if logged in on a batch stream (only works for EXEC
  510.                     logons).
  511. [!DATAFILE]         Expands to the path of the datafile.
  512. [!HID [host]]       Returns the host ID.  With [host] return the host ID
  513.                     of [host].
  514. [!HOST [host]]      Returns the host name.
  515. [!STRING]           Expands to the value of the CLI string.
  516.  
  517. A more complex pseudo macro is !READ:
  518. [!READ[/args] text]
  519.  
  520. !READ prints text to the output and then expands to what was received
  521. from the input (which is considered finished when a newline is
  522. received).  !READ's args are functional only under CLI32 and are:
  523.  
  524. /EOF=str
  525.  
  526.           The string that will be returned if EOF is met.
  527.  
  528. /FILEID=file
  529.  
  530.           Reads from file instead of @OUTPUT.  The file must be already
  531.           opened using OPEN.
  532.  
  533. /LENGTH=x
  534.  
  535.           Read until x characters were typed.
  536.  
  537. /S
  538.  
  539.           Discards all typed after a semicolon (';') or a left bracket
  540.           ('[').  Otherwise, that text must be a valid CLI command or
  541.           macro, or a pseudo macro or macro ending with a right bracket
  542.           if following the left bracket.
  543.  
  544. Note that all pseudo macros, including !READ can be used at the command
  545. line and not just in CLI macro files.
  546.  
  547.  
  548. Here's an example:
  549.  
  550. COMMENT -------------------------------------------------
  551. COMMENT Examples of the use of conditionals and arguments
  552. COMMENT in macros.
  553. COMMENT This macro was invoked like this:
  554. COMMENT HMAC 9 0 000
  555. COMMENT -------------------------------------------------
  556.  
  557. [!EQUAL,%1%,]
  558.      WRITE,,,,Execute with arguments please!
  559. [!ELSE]
  560.      [!EQUAL,%2%,%3%]
  561.           WRITE,,,,%2% and %3% do match ALPHABETICALLY.
  562.      [!ELSE]
  563.           WRITE,,,,%2% and %3% don't match ALPHABETICALLY.
  564.      [!END]
  565.      [!UEQ,%2%,%3]
  566.           WRITE,,,,%2% and %3% do match NUMERICALLY.
  567.      [!ELSE]
  568.           WRITE,,,,%2% and %3% don't match ALPHABETICALLY.
  569.      [!END]
  570.      [!UEQ,%1%,%2%]
  571.           WRITE,,,,%1% and %2% do match NUMERICALLY.
  572.      [!ELSE]
  573.           WRITE,,,,%1% and %2% don't match NUMERICALLY.
  574.      [!END]
  575. [!END]
  576.  
  577. COMMENT -------------------------------------------------
  578. COMMENT The output would be:
  579. COMMENT 0 and 000 don't match ALPHABETICALLY.
  580. COMMENT 0 and 000 do match NUMERICALLY.
  581. COMMENT 9 and 0 don't math NUMERICALLY.
  582. COMMENT -------------------------------------------------
  583.  
  584. [!EQUAL,[!READ What's your name?,,],HBT]
  585.      WRITE,,,,[!ASCII 12]You're HBT.
  586. [!ELSE]
  587.      WRITE,,,,[!ASCII 12]You're not HBT.
  588. [!END]
  589.  
  590. [!EQUAL,[!CLI],CLI16]
  591.      WRITE,,,,[!ASCII 12]I was going to show you something else.
  592.      WRITE,,,,Too bad you're using CLI16 which won't let READ take arguments.
  593. [!ELSE]
  594.      STRING [!READ/LENGTH=1 Continue? (Y/N)]
  595.      [!EQUAL,[!STRING],N]
  596.           WRITE,,,,[!ASCII 12]Good man [!USERNAME].
  597.      [!ELSE]
  598.           [!EQUAL,[!STRING],Y]
  599.                WRITE,,,,[!ASCII 12]Too bad Mister I-Use-[!SYSTEM]
  600.           [!ELSE]
  601.                WRITE,,,,[!ASCII 12]Learn English guy.
  602.           [!END]
  603.      [!END]
  604. [!END]
  605. WRITE,,,,Thank you for using %0%.
  606.  
  607. AOS/VS can also be programmed in 16 bit and 32 bit Assembly (and
  608. compiled using MASM), BASIC, Fortran, C, Pascal and probably others.
  609.  
  610. This second program is actually quite simple.  I do not even read the
  611. UPF type file directly; I just feed text into the PREDITOR (see the next
  612. section).
  613.  
  614. COMMENT -------------------------------------------------
  615. COMMENT Delete the little help screen if you are under
  616. COMMENT CLI16.  Or just run CLI32.
  617. COMMENT -------------------------------------------------
  618.  
  619. [!EQUAL,%1%,]
  620.      WRITE,,,,[!ASCII 12]Format is: %0%/A NAME
  621.      WRITE,,,,,,,,,,,,or      /L NAME
  622. [!ELSE]
  623.      [!EQUAL,%1%,]
  624.                WRITE,,,,,,,Which user exactly?
  625.      [!ELSE]
  626.           [!NEQUAL,%0/L%,]
  627.                WRITE/L=?USER.TMP  L
  628.                WRITE/L=?USER.TMP  %1%
  629.                WRITE/L=?USER.TMP
  630.                WRITE/L=?USER.TMP  b
  631.                PROC/DEF/IOC/IN=?USER.TMP/BLOCK PREDITOR
  632.                DEL ?USER.TMP
  633.           [!ELSE]
  634.                WRITE/L=?USER.TMP  c
  635.                WRITE/L=?USER.TMP  %1%
  636.                WRITE/L=?USER.TMP  y
  637.                WRITE/L=?USER.TMP  %1%
  638.                WRITE/L=?USER.TMP  n
  639.                WRITE/L=?USER.TMP
  640.                WRITE/L=?USER.TMP
  641.                WRITE/L=?USER.TMP
  642.                WRITE/L=?USER.TMP
  643.                WRITE/L=?USER.TMP
  644.                WRITE/L=?USER.TMP
  645.                WRITE/L=?USER.TMP
  646.                WRITE/L=?USER.TMP
  647.                WRITE/L=?USER.TMP
  648.                WRITE/L=?USER.TMP
  649.                WRITE/L=?USER.TMP
  650.                WRITE/L=?USER.TMP
  651.                WRITE/L=?USER.TMP
  652.                WRITE/L=?USER.TMP
  653.                WRITE/L=?USER.TMP
  654.                WRITE/L=?USER.TMP
  655.                WRITE/L=?USER.TMP
  656.                WRITE/L=?USER.TMP
  657.                WRITE/L=?USER.TMP
  658.                WRITE/L=?USER.TMP
  659.                WRITE/L=?USER.TMP
  660.                WRITE/L=?USER.TMP
  661.                WRITE/L=?USER.TMP
  662.                WRITE/L=?USER.TMP
  663.                WRITE/L=?USER.TMP
  664.                WRITE/L=?USER.TMP
  665.                WRITE/L=?USER.TMP
  666.                WRITE/L=?USER.TMP
  667.                WRITE/L=?USER.TMP
  668.                WRITE/L=?USER.TMP
  669.                WRITE/L=?USER.TMP
  670.                WRITE/L=?USER.TMP
  671.                WRITE/L=?USER.TMP
  672.                WRITE/L=?USER.TMP
  673.                WRITE/L=?USER.TMP
  674.                WRITE/L=?USER.TMP  b
  675.                PROC/DEF/IOC/IN=?USER.TMP/BLOCK PREDITOR
  676.                DEL ?USER.TMP
  677.           [!END]
  678.      [!END]
  679. [!END]
  680.  
  681. SYSTEM SECURITY
  682. ~~~~~~~~~~~~~~
  683.  
  684. The AOS/VS login is performed in the following manner.
  685.  
  686. Every username has a file associated with it in the :UPD directory.
  687. That file is its profile, and contains the account profile.  Once the
  688. user has entered a correct username/password pair, the operating system
  689. loads the user's profile (which includes how much memory and disk space
  690. the user is allowed to use and the user's allowed privileges) into its
  691. internal tables.  Several privileges which can be set are the initial
  692. user directory and initial program that will be executed upon completion
  693. of the login (eg, the CLI); how many processes the user may run; what
  694. process priorities the user has; and what SUPER privileges the user has
  695. (eg, SUPERUSER, SUPERPROCESS).
  696.  
  697. As mentioned, if the user has SUPER privileges, he must activate them
  698. himself (using the right command, or PRIVILEGE if using CLI32).
  699.  
  700. An important thing to know about password security is that if the system
  701. is running Data General's XODIAC networking software, user's might not
  702. be able to access remote machines through the network if the passwords
  703. are encrypted.  Therefore, if you are on a XODIAC host, chances are the
  704. passwords won't be encrypted.  The ACL of the :UPD directory doesn't let
  705. every user can access it, though.
  706.  
  707. Passwords are changed by the user by pressing Ctrl-L immediately after
  708. entering the password at login.  This will only work for users that have
  709. the privilege to set their own passwords.  Legal passwords are 6 to 15
  710. characters.
  711.  
  712. This the format (the fields) of the AOS/VS profiles:
  713.  
  714. * Password
  715. * Initial program          To be executed after login
  716. * Initial IPC file         The LOGON file
  717. * Initial directory
  718. * Default user priority    The user's process priority
  719. * Maximum queue priority   The highest queue priority which the user can
  720.                            set for a batch job.  The lower the number, the
  721.                            higher the priority (1-255).
  722. * Unlimited son processes
  723. * Maximum son processes    If the above option if off.
  724. * Disk quota in blocks
  725. * Logical address space    Allows the user to control the size of the
  726. (batch)                    logical address space in which his programs
  727.                            will be executed.  If -1, the system sets.
  728. * Minimum working set      The minimum number of pages a user can have in
  729. (batch)                    their active processes.  If -1, the system
  730.                            determines the value according to the program's
  731.                            demands.
  732. * Maximum working set
  733. (batch)
  734. * Logical address space
  735. (non batch)
  736. * Minimum working set
  737. (non batch)
  738. * Maximum working set
  739. (non batch)
  740. * Encrypt password
  741. * Superuser
  742. * Superprocess
  743. * Use IPC                  Allows the user to make IPC calls.
  744. * Use console
  745. * Use batch
  746. * Use virtual console      Virtual consoles are created by networked
  747.                            logins.
  748. * Use modem                A modem is a console with the characteristic of
  749.                            /MOD on.
  750. * Change password
  751. * Change priority
  752. * Change type
  753. * Change username          Allows user to become another username without
  754.                            actually logging in into that user's profile.
  755. * Access devices           Allows user to directly issue Assembly
  756.                            instructions to devices.
  757. * Create without block     Allows the user to start a son process without
  758.                            blocking the father process.
  759. * System manager privileges
  760. * Access local devices remotely
  761. * Change addr. space type  Allows 32 bit processes to be called from 16
  762.                            bit processes (usually on, since there is a
  763.                            CLI16, but most programs are 32 bit).
  764. * Change working set limit Allows user to change the working set size of
  765.                            programs.
  766. * Comments
  767.  
  768. User profiles can be created, deleted, read, and modified from the
  769. AOS/VS User Profile Editor: PREDITOR.  PREDITOR gives you a prompt
  770. from which you can read any account and the values of its fields.
  771. PREDITOR does not, however, display the password field, whether it's
  772. encrypted or not -- just an indication of what the Encrypt Password
  773. field is set to.  This is easily overcome, since if you can execute the
  774. PREDITOR, you can just as well SED the :UPD:USERNAME file and look at
  775. the password (it's right up there) -- PREDITOR can only be loaded by a
  776. user that can become Superuser.
  777.  
  778. Legal commands for the PREDITOR are Create, Delete, Edit, List,
  779. Question, Rename, and Use.  They can all be abbreviated to their first
  780. letter.  When CREATE is called, it first asks if you want to set the
  781. password, and depending on the answer asks you to enter a password.  It
  782. then queries about the other fields, giving you three options (usually):
  783. YES, NO, and NL, the system's default.  DELETE just asks for a
  784. confirmation on deleting the user, and also his home directory.  EDIT is
  785. just like CREATE, allowing you to modify any field in the user's profile
  786. (including the password).  LIST lists the status of every field in the
  787. profile (by using a template profile, such as '+', one could view every
  788. user on the system).  QUESTION sets the system defaults, which will later
  789. be used by CREATE and EDIT.  RENAME allows you to rename a user to another
  790. name, and USE changes the value in the !DEFAULT variable (your username).
  791.  
  792. Logins are handled by a program called EXEC (that's what the EXEC-32
  793. x.xx.xx.xx part in the login message means).  EXEC just reads the
  794. username/password and if correct, logs the user in.  After EXEC has been
  795. completed, the Initial Program from the profile is run.  The commands for
  796. logins are CONTROL @EXEC DISABLE and ENABLE.  See "The 'EXEC' Program"
  797. for more information about EXEC.
  798.  
  799. When using ENABLE, the console receives login capabilities; apart from
  800. actually logging in, EXEC will also display :UTIL:LOGON.BANNER.SCREEN.
  801.  
  802. ENABLE
  803. ------
  804.  
  805. /ALL      Gives all the consoles the said capabilities.
  806.  
  807. /TRIES=x  Sets maximum login tries to x.
  808.  
  809. /STOP     This will have the same result as if an operator issued
  810.           CONTROL @EXEC DISABLE <console> after the maximum login tries
  811.           was exceeded.
  812.  
  813. /CONTINUE
  814.  
  815.           Lock console for 10 seconds and then continue.
  816.  
  817. /FORCE    Change the other parameters while the console is enabled.
  818.  
  819.  
  820. SYSTEM COMMANDS
  821. ~~~~~~~~~~~~~~
  822.  
  823. Every command has its own switches.  However, all commands accept the
  824. /1, /2, /L and /Q switches (and /STR=string and /ESTR=string under
  825. /CLI32).
  826.  
  827. /1=ERROR|ABORT|IGNORE|WARNING
  828. /2=WARNING|ERROR|ABORT|IGNORE
  829.  
  830.           Controls what the program will do under a class 1 or 2 error.
  831.           The first option listed is the default.  ERROR displays
  832.           "Error: something" and stops command execution.  ABORT aborts
  833.           the command.  IGNORE ignores the error, and WARNING displays
  834.           "Warning: something" and continues with the command.
  835.  
  836. /L=path   The command will store all its output in 'path'.
  837.  
  838. /Q        Display output in columns with on space separating them (an
  839.           exception to this switch is TYPE).
  840.  
  841. /STR=string
  842. /ESTR=string
  843.  
  844.           The command will store its output in the 'string' string
  845.           variable, which can be viewed later using the STRING command.
  846.           If there is no output or the command is TYPE or COPY the string
  847.           is set to null.  /ESTR is for error output, /STR is for
  848.           regular output.
  849.  
  850. Some important AOS/VS commands are listed next.  I included information
  851. about the DUMP and LOAD commands for information purposes only; as they
  852. require diskettes, I don't think you'll use them daily.  However, I
  853. didn't go into diskette handling, etc in detail.
  854.  
  855. Sorted alphabetically:
  856.  
  857.  
  858. ACL <path>
  859. ----------
  860.  
  861. ACL is a utility to control the ACL (Access Control List).  An ACL is
  862. just what is sounds like: it includes a list of usernames and what kind
  863. of access they have to the file.  ACL used one-letter access code, as
  864. follows.
  865.  
  866.          LETTER                 TYPE/FILE                    TYPE/DIR
  867.       -----------+---------------------------------+------------------------
  868.        A(ppend)     Append to a file.                 Create files in the
  869.                                                       directory or move files
  870.                                                       into it.
  871.  
  872.        E(xecute)   Execute the program.               Allows access to
  873.                                                       the directory
  874.                                                       (changing into it,
  875.                                                       reading, etc).
  876.  
  877.        O(wner)      Allows the user to change the ACL or erase the file/dir.
  878.  
  879.        R(ead)       Read a file.                      List the files in
  880.                                                       the directory.
  881.  
  882.        W(rite)      Write to a file.                  Create, delete or
  883.                                                       change ACLs of files
  884.                                                       in the directory.
  885.  
  886. The default ACL for any file is OWARE for the user.
  887.  
  888. ACL <path> shows the ACL.  To modify the ACL:
  889.  
  890. ACL <path> [user,access] [...]
  891.  
  892. Access being one of the OWARE group, for example:
  893.  
  894. ACL PHRACK43 HBT,OWARE       (There is NO space between 'username' and
  895.                              'access'!)
  896.  
  897. ACL PHRACK42 HBT,OWARE +,R   (In this example, the '+' template was
  898. used, '+' standing for all the users.  This means that HBT has full
  899. access to the file, while the rest of the users can only read it.
  900. If templates are used, they should be used last, with specific usernames
  901. before them.)
  902.  
  903. Under CLI32 group access is also available in the format of:
  904.  
  905. ACL <path> [user:group,access] [...]
  906.  
  907. Switches:
  908.  
  909. /[BEFORE|AFTER]/[TCR|TLA|TLM]=date and/or time
  910.  
  911. /TYPE=type
  912.  
  913.           These function just like the same switches in FILESTATUS.
  914.  
  915. /D        Use the default settings (OWARE).  Defaults may be changed
  916.           using DEFCAL.
  917.  
  918. /K        Delete ACL - no one but a superuser will be able to access the
  919.           file.
  920.  
  921. /V        Show each file changed.
  922.  
  923.  
  924. BROWSE
  925. ------
  926.  
  927. BROWSE is a program to browse (view, search, scroll in any direction)
  928. through any number of ASCII or binary files.  While in BROWSE help is
  929. available by using 'H' or '?'.  BROWSE starts at the end of file and
  930. lets you move backward (but you can change this).
  931.  
  932. No further details are included since BROWSE can run only on CRT
  933. terminals (the actual terminals the employees usually sit at), and I
  934. didn't have the pleasure of using one of these (nor do I think will the
  935. information be of any use).
  936.  
  937.  
  938. CHARACTERISTICS
  939. ---------------
  940.  
  941. CHARACTERISTICS displays or sets the characteristics of a device
  942. attached to a terminal (not a printer, for example).  To change
  943. characteristics of a device permanently and not just for the current CLI
  944. level, you must be PID 2 (local console) or have SYSTEMMANAGER privilege
  945. on.  To this, you must use EXEC first to DISABLE the device, use
  946. CHARACTERISTICS, and then use EXEC to ENABLE the device (see the section
  947. titled "The 'EXEC' Program").  The CHARACTERISTICS switch will be
  948. /DEFAULT/[default device characteristics] device.  "device" for example,
  949. is @CON100.
  950.  
  951. CHARACTERISTICS switches look like this:
  952. CHARACTERISTICS /[ON|OFF]/SWITCH.  It's self explanatory.
  953.  
  954. /8BT
  955.  
  956.           Interpret all 8 bits of an ASCII char as data.  (For use with
  957.           8 bit character sets, of course.)
  958.  
  959. /16B      For Asian language translation.
  960.  
  961. /4010I    Device is a DG model 4010I terminal.
  962.  
  963. /6012     Device is a DG model 6012 terminal.
  964.  
  965. /605X     Device is a DG DASHER model 6052, 6053, D210 or D211 terminal.
  966.  
  967. /6130     Device is a DG DASHER model 6130, D410 or D460 terminal.
  968.  
  969. /ACC      Line requires modem access control (only users with the Use
  970.           Modem privilege may login).
  971.  
  972. /AUTOBAUD
  973.  
  974.           The system will automatically determine the terminal's baud
  975.           (it's bps, damnit!) rate.
  976.  
  977. /BAUD=b
  978.  
  979.           Sets a device's bps rate to b.  b can be 45.5, 50, 75, 110,
  980.           134.5, 150, 300, 600, 1200, 1800, 2400, 3600, 4800, 7200,
  981.           9600, 19200, 38400.
  982.  
  983. /BREAK=[BMOB|CAOB|CBOB|CFOB|DCOB]
  984.  
  985.           How the system will respond to a BREAK:
  986.           BMOB (default) Clears binary mode and restore normal character
  987.                          handling
  988.           CAOB           Issues Ctrl-C Ctrl-A
  989.           CBOB           Issues Ctrl-C Ctrl-B
  990.           CFOB           Issues Ctrl-C Ctrl-F
  991.           DCOB           Disconnect user
  992.  
  993. /CALLOUT  Allow host initiated calls (outside calls).
  994.  
  995. /CHARLEN=[5|6|7|8]
  996.  
  997.           Character length in bits, *including* stop bit.
  998.  
  999. /CONTYPE=connection type
  1000.  
  1001.           Connection types are:
  1002.           BITMAPPED      Windowing terminal
  1003.           DIRECT         Standard connection
  1004.           PAD            From PAD hardware
  1005.           PBX            From a PBX controller
  1006.           PCVT           From a DG/PC*i controller
  1007.           TERMSERVER     From terminal server hardware
  1008.           TELNET         Through telnet
  1009.           VIRTUAL        Through a virtual terminal
  1010.  
  1011. /CPL=[8-255]
  1012.  
  1013.           The maximum number of characters per line.
  1014.  
  1015. /CTD      Disconnect line if the user doesn't respond to login after a
  1016.           while.
  1017.  
  1018. /DEFAULT  Displays the default characteristics of the terminal.
  1019.  
  1020. /DKHW     If OFF, and /16B and /8BT are on, enable support for Chinese
  1021.           characters.
  1022.  
  1023. /EB0      Specify the echoing of control characters.
  1024. /EB1      When both off, nothing is echoed.
  1025.           When EB0 is on and EB1 is off, echos ^char.
  1026.           When EB0 is off, and EB1 is on, echos exactly what was entered.
  1027.  
  1028. /EOL      Don't output a newline if the number of characters in input
  1029.           has exceeded the line length.
  1030.  
  1031. /ESC      Interpret an escape as a Ctrl-C Ctrl-A interrupt.
  1032.  
  1033. /FF       Output a formfeed when the device opens.
  1034.  
  1035. /G1G0     Enables the G1G0 character set (Taiwanese characters).  /16B
  1036.           and /8BT must also be ON.
  1037.  
  1038. /HARDCOPY Device is a printing terminal.
  1039.  
  1040. /HDPX     Provide half duplex support for a modem line.
  1041.  
  1042. /HIFC     Use CTS/RTS input flow control, cannot be on if /HDPX or /MOD are
  1043.           on.
  1044.  
  1045. /HOFC     Use CTS/RTS output flow control.
  1046.  
  1047. /IFC      Enables XON/XOFF to control terminal input (the Ctrl-S/Ctrl-Q
  1048.           control characters).
  1049.  
  1050. /LEVEL=x  Sets characteristics to the same as those in CLI level #x.
  1051.  
  1052. /LPP=[4-255]
  1053.  
  1054.           The number of lines per page.
  1055.  
  1056. /MDUA     Allows direct access to the modem on the line (/MOD must also
  1057.           be set).  You can then use ?WRITE to send commands to the
  1058.           modem.  See the section titled "CLI Macro Programming".
  1059.  
  1060. /MOD      Use modem interface on this line.
  1061.  
  1062. /MRI      Monitor line for rings.
  1063.  
  1064. /NAS      Device is non ANSI standard.
  1065.  
  1066. /NLX      Enable Asian natural language translation.  /16B and /8BT must
  1067.           also be ON.
  1068.  
  1069. /NRM      Suppress messages (from SEND) not sent from PID 2 (something
  1070.           like "mesg n" in Unix).
  1071.  
  1072. /OFC      XON/XOFF output flow control.
  1073.  
  1074. /OTT      Convert characters sequence "~}" to an escape (use with VT100
  1075.           emulation, or how will you escape).
  1076.  
  1077. /P        Sets the characteristics to be the same as those used on the
  1078.           previous CLI level.
  1079.  
  1080. /PARITY=[ODD|EVEN|NONE]
  1081.  
  1082.           Default is NONE.
  1083.  
  1084. /PM       Enable page mode, which pauses output every LPP lines (as set
  1085.           with the /LPP switch, default is 24).  Ctrl-Q resumes.
  1086.  
  1087. /RESET    Reset characteristics to the default value.
  1088.  
  1089. /RTSCD    Check carrier detect before processing RTS signals.  /HDPX
  1090.           must be ON.
  1091.  
  1092. /SFF      Simulate formfeeds.
  1093.  
  1094. /SMCD     Ignore carrier detect on modem lines.  /MOD and must be ON,
  1095.           and this must be set if /HPDX is ON.
  1096.  
  1097. /ST       Simulate a tab every 8 columns.
  1098.  
  1099. /STOPBITS=[1|1.5|2]
  1100.  
  1101. /TCC=[time to wait for a carrier detect signal after the modem connect]
  1102.  
  1103.           Default is 40000 ms.
  1104.  
  1105. /TCD=[time to wait for a carrier detect signal to return after it drops]
  1106.  
  1107.           Default is 5000 ms.
  1108.  
  1109. /TDW=[delay between modem connect and the first I/O]
  1110.  
  1111.           Default is 2000 ms.
  1112.  
  1113. /THC=[the amount of time after disconnecting for the modem to settle]
  1114.  
  1115.           Default is 10000 ms.
  1116.  
  1117. /TLT=[time to wait between sending the last char and dropping RTS]
  1118.  
  1119.           Default is 0 ms.  /HPDX must be ON.
  1120.  
  1121. /TO       Enable timeouts.
  1122.  
  1123. /UCO      Convert lowercase input to uppercase when displaying it.
  1124.  
  1125. /ULC      Accept both uppercase and lowercase as input.
  1126.  
  1127. /WRP      Wrap on a long line.
  1128.  
  1129. /XLT      Enable VT100 terminal emulation.
  1130.  
  1131. Knowledge is knowledge, but AT&T is something different.  Here is how
  1132. you'd open a modem line for calling out:  (You must be SYSTEMMANAGER)
  1133.  
  1134. CLEARDEVICE/RXON @CON999
  1135. CONTROL @EXEC DISABLE @CON999
  1136. CHARACTERISTICS/ON/MOD/MDUA/CTD/CALLOUT @CON999
  1137. CONTROL @EXEC ENABLE @CON999
  1138. ((And here's how you put it back))
  1139. CLEARDEVICE/RXON @CON999
  1140. CONTROL @EXEC DISABLE @CON999
  1141. CHARACTERISTICS/DEF @CON999
  1142. CONTROL @EXEC ENABLE @CON999
  1143.  
  1144.  
  1145. CLEARDEVICE <device>
  1146. --------------------
  1147.  
  1148. You must be PID 2 (local console) or have SYSTEMMANAGER privileges
  1149. turned on to use CLEARDEVICE on a terminal that isn't yours.  <device>
  1150. must be a terminal line (eg, @CON100).
  1151.  
  1152. /RXON     Simulates a XON character from the device.
  1153.  
  1154. /SBREAK   Sends a break character to the device.
  1155.  
  1156.