home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / robot-pd / 12400.ZIP / 12400B.DSK / manual03.txt < prev    next >
Text File  |  1998-04-30  |  17KB  |  540 lines

  1.  
  2.                 C H A P T E R   T H R E E
  3.  
  4.  
  5. 3.1 External Commands
  6.  
  7. External commands are commands that were not  included  in
  8. the operating system code due to memory  restrictions,  or
  9. because their  use  is  somewhat  limited.  Such  commands
  10. aren't   restricted by memory  and  frequently  allow  for
  11. more flexible operation.
  12.  
  13. Note, however, that none of these commands (or their  type
  14. selectors) may be abbreviated.
  15.  
  16.  
  17. 3.2 External Command Dictionary
  18.  
  19. 3.2.1 The COPY Command
  20.  
  21. Format :COPY ++[<selector>] <source file path>
  22.  ++<++[<selector>] <destination file path>>
  23.  
  24. If the selector "A" is used, ASCII files  can  be  copied.
  25. Place the selector in front of the file that is  (or  will
  26. be)ASCII. Thisoption MUST be used to COPY COMP  object
  27. files-ie the &A selector should appear in  front  of  both
  28. file paths.
  29.  
  30. The selectors W & C can also be used to count and  display
  31. the number of words and characters respectively.
  32.  
  33. By placing the "A" selector in  front  of  either  the
  34. source or destination files but not both, the format of  a
  35. file can be changed in the process-say from ASCII to text.
  36.  
  37. If a list of destinations (and their selectors) are  given
  38. then multiple copies of the source file can be made.
  39.  
  40. AMSDOS can't keep track of  two  disks  sharing  the  same
  41. drive. As a result, special buffered copying routines have
  42. to be usedwith singledrive machines. This may lead  to
  43. some copying problems, particularly when the files contain
  44. numeric data. This problem  will  not  bother  dual  drive
  45. owners.
  46.  
  47. Example:1>COPY login.usr login.old
  48. This makes  a  copy  of  the  login  file,  and  calls  it
  49. "login.old".
  50.           2>COPY &A myprog.bas &A ../myprog.bas
  51. This makes a copy of the ASCII file "myprog.bas" and  puts
  52. it-still in ASCII format-into the parent directory.
  53.  
  54.  
  55. 3.2.2 The REMOVE Command
  56.  
  57. Description :REMOVE
  58.  
  59. Format :REMOVE <object name> [++<operand>]
  60.  
  61. The REMOVE command  removes  objects  from  their  current
  62. environment, eg the disk. The types of objects  which  can
  63. be removed are given below, along with the related  object
  64. name.
  65.  
  66.  
  67. "DDIR" - Data DIRectory.
  68.  
  69. This is followed by a <directory path> which must point to
  70. a data directory. This directory will then be removed from
  71. the disk. Note that any files will  be  removed,  but  the
  72. presence of subdirectories will  cause  the  operation  to
  73. abort.
  74.  
  75.  
  76. "SDIR" - System DIRectory.
  77.  
  78. This is followed by a <directory path> which must point to
  79. a system directory. This directory will  then  be  removed
  80. from  the  disk.  Note  that  files  will   removed,   but
  81. subdirectories will cause abortion of the operation.  Note
  82. that the main system directories can't be removed.
  83.  
  84.  
  85. "FILE"
  86.  
  87. This is followed by a <file path>.  The  given  file  will
  88. then  be  removed  from  the  disk,  unless  it  is  write
  89. protected. Never remove any of the system files (which may
  90. be write protected anyway). If a star follows a file  name
  91. when the contents of a directory are listed on screen,  it
  92. indicates that it is write protected.
  93.  
  94. In this instance, AMSDOS wild cards can be used eg;
  95. 1>REMOVE *.BAK
  96.  
  97. Several operands can be given to each  directive  allowing
  98. multiple examples of the SAME type to be  removed  in  one
  99. go.
  100.  
  101. Example:1>REMOVE FILE ../myprog.bas /COM/oops.dat
  102. This removes two files, one  is  called  "myprog.bas"  and
  103. exists in the parent directory. The other is called "oops.
  104. dat" and exists in the COMmand directory.
  105.  
  106.  
  107. Error Messages
  108.  
  109. "Can't REMOVE <item>"-REMOVE doesn't recognise  the  given
  110. item directive.
  111.  
  112. "Not a data directory path"-You have attempted to remove a
  113. system directory using the DDIR directive.
  114.  
  115. "DATA directory(s) removed"-Operation complete.
  116.  
  117. "<directory.name> is a parent directory-ReMove  subdirect-
  118. ories first"-Use REMOVE to erase subdirectories first eg;
  119.  
  120.                 RM DDIR sub1 sub2 parent
  121.  
  122. "Not a system directory path"-You have attempted to remove
  123. a data directory using the SDIR directive.
  124.  
  125. "SYS directory(s) removed"-Operation complete.
  126.  
  127. "Attempted to  remove  a  reserved  system  directory"-You
  128. can't remove the main system directories.
  129.  
  130.  
  131. 3.2.3 The MAKE Command
  132.  
  133. Format :MAKE <object name> ++<operand>
  134.  
  135. This command creates various objects, as indicated by  the
  136. object name:-
  137.  
  138.  
  139. "DDIR" - Data DIRectory
  140.  
  141. Format:MAKE DDIR <file path> <disk number>
  142.  
  143. This command allows the user to create a  directory  whose
  144. files will be held on a data disk. Such a  directory  can,
  145. however, belong to a system directory. Also, with  version
  146. 11, Centrox allows disks to  hold  both  system  and  data
  147. directories. In practice  this  likely  to  be  of  little
  148. advantage!
  149.  
  150. The "file name" given with the file path is treated  as  a
  151. directory name eg;
  152. 1>MAKE DDIR ../example 2
  153. This will create a "brother" or "sister" directory on  the
  154. second disk (which is usually a data disk).
  155.  
  156.  
  157. "SDIR" - System DIRectory
  158.  
  159. Format:MAKE SDIR <file path> <disk number>
  160.  
  161. This command allows the user to create a  directory  whose
  162. files will be held on a system disk. Such a directory can,
  163. however, belong to a data directory.
  164.  
  165.  
  166. Error Messages
  167.  
  168. "Can't  make  <item>"-MAKE  doesn't  recognise  the   item
  169. directive given.
  170.  
  171. "Can't hold any more data directories"-There  is  no  more
  172. room to define data directories.
  173.  
  174. "Data directory made"-Completion message.
  175.  
  176. "Illegal disk number"-only ten disks can be defined,  with
  177. numbers between 1 & 10.
  178.  
  179.  
  180. 3.2.4 The PCAT Command
  181.  
  182. Description :Print ConCATenated
  183.  
  184. Format :PCAT ++<[&<selectors>] <file path>>
  185.  
  186. Works in the same way as the CAT command, except that  the
  187. text is sent to the printer. This  means  that  PCAT  will
  188. "join together" the given files and send the result to the
  189. printer.
  190.  
  191. PCAT uses the standard printer variables  to  control  the
  192. printer  but  these  can  be  set  using   the   following
  193. selectors:-
  194.  
  195. A-Select print out of true ASCII. This allows the user  to
  196. print out listings of compiler object code.
  197.  
  198. L<length>-Set page length.
  199.  
  200. S-Skip perforations.
  201.  
  202. W-Wait at perforations.
  203.  
  204. I-Ignore perforations.
  205.  
  206. PCAT automatically switches the  printer  to  the  English
  207. character set  when  printing  pound  signs,  and  to  the
  208. American character set when printing hash signs.  For  all
  209. other characters the printer is set  to  the  default  set
  210. (either American or English).
  211.  
  212. The following selectors control this function:-
  213.  
  214. E-Select English character set to be the default character
  215. set.
  216.  
  217. U-Select USA character set to be the default.
  218.  
  219. e++<Hex ASCII  codes>.<space>-Define  sequence  to  change
  220. printer to English character set.
  221.  
  222. u-As above, but defines codes for USA character set.
  223.  
  224. PCAT defaults to standard EPSON codes, these are:-
  225.  
  226. ESC R 0 - USA set
  227. ESC R 3 - English set.
  228.  
  229. These could be defined as:-
  230.  
  231. &u1B5200.  - USA {1B, 52, 00}
  232. &e1B5203.  - UK  {1B, 52, 03}
  233.  
  234. If the switch is not required,  simply  define  both  code
  235. sequences to be NULL:-
  236.  
  237.                           &u. e.
  238.  
  239. Note that the dot MUST be followed  by  a  space  if  more
  240. selectors follow.
  241.  
  242. PCAT is ideal for a draft output  of  text  but  the  more
  243. flexible FORMAT  should  be  used  to  produce  the  final
  244. document. Note also that  PCCs  will  be  indicated  by  a
  245. double strike type face instead of the VDU inverse colours
  246. system.
  247.  
  248. Note that unlike CAT, PCAT does  correctly  translate  the
  249. backward "straight" quote into a double  quote  (").  This
  250. conforms with the Centrox text standard.
  251.  
  252. Error Messages
  253.  
  254. "Can't open <file name>"-The given file  can't  be  opened
  255. for reading.
  256.  
  257. "<value>lines  and  <value>  characters  printed"-standard
  258. report.
  259.  
  260.  
  261. 3.2.5 The MAIL Command
  262.  
  263. Format :MAIL [<user name>]
  264.  
  265. The MAIL command allows users to  exchange  messages  with
  266. each other. Since such messages are stored on  the  system
  267. disk, users must share the same system disk. MAIL does not
  268. check that the user specified  actually  exists-it  simply
  269. saves the message onto the disk.
  270.  
  271. If no user name is given, the contents of  your  mail  box
  272. will be displayed on screen.
  273.  
  274. When entering the message the DEL and RETURN keys  act  as
  275. normal. Press [CONTROL+D]  to  exit  and  send  the  mail.
  276. Pressing  [CONTROL+C]  will  exit  to  the  Shell  without
  277. sending any mail.
  278.  
  279. Error Messages
  280.  
  281. "Mail box full"-There is no more room in  the  recipient's
  282. mail box for new messages or any more lines of the message
  283. being sent.
  284.  
  285. "Mail read"-You have seen all the mail sent to you.
  286.  
  287. "No mail"-You haven't received any mail.
  288.  
  289.  
  290. 3.2.6 The Hook Command
  291.  
  292. Format :HOOK [<file path> [[++<<selectors>]
  293.  ++<arguments>]
  294.  
  295. Hook is used to  extend  the  power  of  the  login  file.
  296. Without using Hook, only one external or transient program
  297. can be invoked  by  the  login  mechanism.  Such  external
  298. invocations  operate  correctly,   but   cause   automatic
  299. termination of the login process. This means that  further
  300. commands in the login file will be ignored.
  301.  
  302. Note:Use of external or transient programs in ANY  way  in
  303. the login file will disable the MAIL detection facility.
  304.  
  305.  
  306. 3.2.6.1 Shell Script
  307.  
  308. HOOK provides a simple but useful extension to the  normal
  309. range of Centrox  Commands.  By  invoking  HOOK  from  the
  310. command line, and supplying it with a file path. This file
  311. should contain a program  written  in  a  language  called
  312. "Shell Script". The details of  this  language  are  given
  313. below:-
  314.  
  315.  
  316. 3.2.6.2 Shell Speak (Commands)
  317.  
  318. All commands are prefixed by a single dot (".").
  319.  
  320. Syntax :.writes <string>
  321.  
  322. Write the given string to the VDU.
  323.  
  324. Syntax :.written <Numeric Expression>
  325.  
  326. Write the given number to the VDU.
  327.  
  328. Syntax :.writec <Numeric Expression>
  329.  
  330. Write the given character to the VDU.
  331.  
  332. Syntax :.repeat
  333.  
  334. Causes HOOK to store the current line number on  the  loop
  335. stack. For further details see UNTIL and WHILE.
  336.  
  337. Syntax :.until <Numeric Expression>
  338.  
  339. The numeric value is evaluated and if the result is  false
  340. (zero), then the top loop address is retrieved and a  jump
  341. made to that line.
  342.  
  343. Syntax :.while <Numeric Expression>
  344.  
  345. Works  in  the  same  way  as  UNTIL,  but  jumps  if  the
  346. expression yields a TRUE value.
  347.  
  348. Syntax :.set <0..9> <Numeric Expression>
  349.  
  350. Sets the indicated variable (number 0 to 9) to  the  given
  351. value.
  352.  
  353. Syntax :.dec <0..9> <Numeric Expression>
  354.  
  355. Subtract the given value from the given variable.
  356.  
  357. Syntax :.inc <0..9> <Numeric Expression>
  358.  
  359. INCrement variable.
  360.  
  361. Syntax :.end
  362.  
  363. Finish program.
  364.  
  365. Syntax :.onlyif <Numeric Expression>
  366.  
  367. If the <Numeric Expression> yields FALSE,  then  skip  the
  368. next line in the program.
  369.  
  370. Syntax :.oldloop
  371.  
  372. After a WHILE or UNTIL command, the loop address is  lost.
  373. This command restores the last  loop  address.  Successive
  374. OLDLOOP commands can restore successive (ie; nested)  loop
  375. addresses provided they have not  been  overwritten.  This
  376. can be used to simulate logic AND.
  377.  
  378. Syntax :<Shell command line>
  379.  
  380. Invokes the specified Shell command-internal or  external.
  381. Note  that  execution  will   be   slower   than   normal,
  382. particularly when executing external commands.
  383.  
  384. Note the omission of the leading dot.
  385.  
  386. WARNING:Hook pulls a couple of dirty tricks  in  order  to
  387. retain control of the computer when the  external  command
  388. has  finished.  It  is  possible  that  this  could  cause
  389. problems. In particular, the ^C abort  function  may  only
  390. work temporarily.
  391.  
  392.  
  393. Syntax :.goto <Numeric Expression>
  394.  
  395. Jump to the given TEXTUAL line number. Jumps past the  end
  396. of the program will simply cause the program to end.
  397.  
  398. Syntax :.exec <string expression> [<Shell command tail>]
  399.  
  400. Evaluates the given string, then passes it-followed by the
  401. command tail-to the Shell for interpreting.
  402.  
  403.  
  404. 3.2.6.3 Numeric Expressions
  405.  
  406. ERR - Return last error number.
  407. #<number> - Return number.
  408. v<0..9> - Return value of variable.
  409. =<0..9> <0..9>  -  Return  result  of  comparing  the  two
  410. variables for equality.
  411. k<char> - Returns true if the given character is  returned
  412. by the keyboard. Note that HOOK waits for a new  character
  413. to be typed, rather than just looking in the buffer.
  414.  
  415. 3.2.6.4 String Expressions
  416.  
  417. a<0..9> - Returnargument#n,as passed  along  with  the
  418. HOOK invocation. The arguments are terminated by spaces.
  419.  
  420. $<string>  - Return string. The string is terminated by  a
  421. space, but the underscore character `_' is converted  into
  422. a space by the routine.
  423.  
  424. ERR - Return last error message.
  425.  
  426.  
  427. 3.2.7 SYMBOL
  428.  
  429. Format :SYMBOL [<file name>]
  430.  
  431. Redefines the character set. The optional <file.name>  can
  432. be specified to cause a different set to  be  loaded  from
  433. disk. The file should be the "slice" of memory relating to
  434. characters  32  to  127  inclusive.  Always  ensure   that
  435. character 127 is defined as in the manual.
  436.  
  437. If the file path is given  as  "AMSDOS"  then  the  normal
  438. characters will be adopted. If no file path is given, then
  439. the Centrox characters will be loaded.  Note  that  FORMAT
  440. and LOGON  will  ALWAYS  restore  the  system  to  Centrox
  441. characters, unless the file "0:CENTROX.CHR" is changed.
  442.  
  443. There are several ways of generating a data file:-
  444.  
  445.          1.Use "Art  Studio"  or  some  other  package  to
  446. redefine characters. Follow the program's instructions  on
  447. loading the data back into the computer  from  BASIC.  Now
  448. enter:-
  449.               h=HIMEM+1:SAVE"<file.name>",b,h,97*8
  450.  
  451. Note thatthe fileMUST be saved into USER area#0 of the
  452. SYSTEM disk.
  453.  
  454.  
  455.          2.Enter the following:-
  456.  
  457.          SYMBOL AFTER 32
  458.          ++<<SYMBOL <code>,n0,..n7>
  459.          h=HIMEM+1:SAVE"<file.name>",b,h,97*8
  460.  
  461. Where the second  line  indicates  a  sequence  of  SYMBOL
  462. commands. See your manual for details on using the  SYMBOL
  463. command.  Try  to  ensure  that  all  vertical  lines   of
  464. characters are two pixels thick.  Vertical  lines  of  one
  465. pixel will appear faint, or may even disappear completely.
  466.  
  467. Please note that codes above 127 are used by the operating
  468. system, in particular, the "Wall" graphics  (&83  to  &8F)
  469. and the "Bar" graphics (&90 to  &9F)  are  used  "as  they
  470. stand". While the graphics &A4 to  &D8  are  redefined  as
  471. inverse video characters for CTX.
  472.  
  473. If the file name is given as  DEFN,  followed  by  a  file
  474. path, then SYMBOL will read the file and define characters
  475. from the following data:-
  476.  
  477. <character>
  478. ++<bit.pattern>
  479.  
  480. Eg:-
  481. A             NB:SYMBOL can't  be  used  to  redefine  the
  482. 00111000      double quote character. This  limitation  is
  483. 01111100      due to CTX  (in  common  with  most  Centrox
  484. 11000110      programs) translating the double quote  into
  485. 11000110      character 161.
  486. 11111110
  487. 11000110      In practice, this translation means that the
  488. 11000110      double quote will appear as a single  quote.
  489. 00000000      From my own experience I have found that  it
  490.               is easy to get  confused  between  a  double
  491. quote and a single quote. SYMBOL can be  used  to  rectify
  492. this problem.
  493.  
  494. The result will only be visible when  running     01100110
  495. programs such as CTX. This  should  cause  no     01100110
  496. problems as at the  other  times  the  double     01100110
  497. quote character is easily distinguishable.        01100110
  498.                                                   00100100
  499. Given opposite are the codes to redefine  the     00000000
  500. character. Note that the double  quotes  will     00000000
  501. not appear as such from within CTX.               00000000
  502.  
  503.  
  504. 3.2.8 DMAP
  505.  
  506. Format :Directory MAPper
  507.  
  508. Syntax :DMAP
  509.  
  510. This program simply examines the directory  structure  and
  511. reports the numberof disks in use.It shows Graphically
  512. how the directories inter relate.
  513.  
  514. 3.2.9 TWITCHER
  515.  
  516. Syntax :TWITCHER <file path> <exec line> <Tick rate>
  517.  
  518. Adds an  event  to  the  event  schedule.  The  file  path
  519. indicates what file  to  load  before  adding  the  event.
  520. Typically, this file will contain the event  handler.  The
  521. exec line is the line to  be  called  when  the  event  is
  522. kicked. The tick rate (in fiftieths of a second) indicates
  523. how often to kick the routine. Since  only  one  timer  is
  524. used, the highest requested  tick  rate  is  always  used.
  525. Events should check the  value  in  E.TICK%  to  determine
  526. whether they should respond on every tick, or skip  a  few
  527. ticks.
  528.  
  529. 3.2.10 PATH
  530.  
  531. Syntax :PATH ++<Directory path>
  532.  
  533. Lists the directories in which the Shell is to  look  when
  534. an external command is issued if the external  command  is
  535. not found in one of  these  directories,  then  the  error
  536. message "<name> ?" is issued. Note the the path "/COM"  is
  537. always searched, and  that  the  Shell  defaults  to  also
  538. searching "." (the current directory).
  539.  
  540. t  inc