home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format 106 / af106sub.adf / ARCLIC.lzx / ArCLIC / ARCLIC.rexx < prev    next >
OS/2 REXX Batch file  |  2003-05-16  |  7KB  |  144 lines

  1. /* ARexx script  ARCLIC.rexx **********************************1*\
  2. **INTRODUCTION                                                   *
  3. * This script provide an ARexx Command-Line Interpreter Console  *
  4. * in a normal shell console. You can run it in every type of     *
  5. * console like NewCon:, KingCon: or any else.                    *
  6. *                                                                *
  7. **INSTALLATION                                                   *
  8. * Simply copy the script to your REXX: drawer.                   *
  9. *                                                                *
  10. **SYNTAX                                                         *
  11. * In normal way you will run it from shell with the following    *
  12. * syntaxe:                                                       *
  13. * RX ARCLIC [PORT]                                               *
  14. *                                                                *
  15. * If the argument PORT is provided, the interpreter will begin   *
  16. * at this ADDRESS.                                               *
  17. * If else, the port 'COMMAND' will be used.                      *
  18. *                                                                *
  19. * Note 1: The server ARexx: 'RexxMast' must be present!          *
  20. * Also make a double-click on the RexxMast's icon in the         *
  21. * "System" drawer of your workbench's disk.                      *
  22. * or add the following line to your 'S:User-Startup'             *
  23. ||SYS:System/RexxMast >NIL:                                     ||
  24. *                                                                *
  25. * Note 2: you must have the path to 'SYS:Rexxc/' present in your *
  26. * path-list. Or else you must add the path to the command:       *
  27. * SYS:Rexxc/RX ARCLIC [PORT].                                    *
  28. *                                                                *
  29. * Or you can simply make a double-click on his icon (see note 1) *
  30. *                                                                *
  31. **FEATURES                                                       *
  32. *     * Error trapping (not developped but trapped)              *
  33. *     * No use of variable (you can use every you want)          *
  34. *     * Prompt with the Return Code and the Result of the last   *
  35. *       command, and the address where you work.                 *
  36. *       Note that if you want to modify the prompt, there is no  *
  37. *       variable! You must modify the script but it's simple!    *
  38. *     * It's an example of AddOn to the promt: the time info.    *
  39. *       Go take a look!                                          *
  40. *     * Way to add special user function (Its two examples       *
  41. *       functions: ARCLIC_Mille() and ARCLIC_Info() )            *
  42. *                                                                *
  43. **DISCLAIMER                                                     *
  44. * This script is provided as is. I am not responsible in any way *
  45. * if somethig wrong, go down or else. I can not be responsible   *
  46. * of any dammage caused to your computer, your datas, your wife  *
  47. * or any else.                                                   *
  48. *                                                                *
  49. * Be care when you use some rexxs librarys! With the ARexx you   *
  50. * can direct access to sensible memory or dangerous library      *
  51. * calls!!!                                                       *
  52. *                                                                *
  53. **COPYRIGHT                                                      *
  54. * This script may be freely distributed without profit! In       *
  55. * in unmodified version!!!                                       *
  56. *                                                                *
  57. **AUTHOR:                                                        *
  58. *      Félix Hauri - Informaticien consultant   |\    /|         *
  59. *      --------------------------------------   | \__/ |         *
  60. *      7, rue Centrale / CH-1450 Sainte-Croix   | .  . |         *
  61. *      tél: (+41/0)24 454 54 04 /fax:...54 00   |  /\  |         *
  62. *      http://www.gkb.com/ch/hauri/home.html    | \__/ |         *
  63. *      mailto:hauri_felix@bluewin.ch             \____/          *
  64. \****************************************************************/
  65. /* \* ARexx script  ARCLIC.rexx **********************************2*/
  66. Say '1b5b481b5b4a'x || 'Welcome to ARCLIC.rexx!' '0a'x || 'Prepare',
  67.     'and test your scripts... Good work!' '0a'x || 'Type ''Exit''',
  68.     'to leave the interpreter!'
  69. Interpret 'ADDRESS' ARG(1)
  70. ERROR:
  71.     IF (RC>0)&(RC~='RC') THEN DO
  72.         Say ERROR RC':' ErrorText(RC)
  73.         RC=
  74.         END
  75. SYNTAX:
  76.     IF (RC>0)&(RC~='RC') THEN DO
  77.         Say SYNTAX RC':' ErrorText(RC)
  78.         RC=
  79.         END
  80. HALT:
  81.     IF (RC>0)&(RC~='RC') THEN DO
  82.         Say 'HALT : Interrupt call!'
  83.         RC=
  84.         END
  85. FAILURE:
  86.     IF (RC>0)&(RC~='RC') THEN DO
  87.         Say 'FAILURE :' RC
  88.         RC=
  89.         END
  90. SIGNAL ON ERROR
  91. SIGNAL ON HALT
  92. SIGNAL ON FAILURE
  93. SIGNAL ON SYNTAX
  94.  
  95. OPTIONS FAILAT 100
  96. OPTIONS RESULTS
  97.  
  98. DO FOREVER
  99. /*  There is the prompt! you can try to keep the comment braket of
  100.     for adding the time to the prompt (dont miss the comma!) */
  101.     CALL WRITECH( STDOUT , '1b5b33326d'x || RC || '|' ||,
  102.          TIME() || '|' ||,
  103.         RESULT || '|' || ADDRESS() || '3a1b5b33316d'x )
  104. INTERPRET READLN(STDIN)   /* The only line to realy do forever... */
  105. END
  106. exit 0
  107.  
  108. /* \* ARexx script  ARCLIC.rexx **********************************3*/
  109. /************************************************************\
  110. *                                                            *
  111. *   From there, comme the user's function's library          *
  112. *                                                            *
  113. \************************************************************/
  114.  
  115. ARCLIC_Mille: PROCEDURE
  116. Nombre=ARG(1)
  117. IF DATATYPE(Nombre,'NUM') THEN DO
  118.     l=TRUNC((LENGTH(Nombre)-1)/3)
  119.     IF l > 0 THEN DO i=1 to l
  120.         Nombre=INSERT('''',Nombre,LENGTH(Nombre)-3-3*(l-i))
  121.         END
  122.     END
  123. Else Nombre='Error!' Nombre 'are not a number'
  124. RETURN Nombre
  125. EXIT 0
  126.  
  127. ARCLIC_Info: PROCEDURE
  128. Say 'Task ID       :' PRAGMA(I)
  129. OStack=Pragma('S',0);Call Pragma('S',OStack)
  130. Say 'Current stack :' ARCLIC_Mille(OStack)
  131. Say 'Current dir   :' PRAGMA(D)
  132. Say 'Current time  :' Time()
  133. Say 'Current date  :' Date()
  134. Say 'You work at   :' Address()
  135. Call Writech(STDOUT,'Memory free   : ')
  136.   ADDRESS COMMAND 'AVAIL TOTAL >T:tmp' || PRAGMA('ID')
  137.   Call OPEN(IN,'T:tmp' || PRAGMA('ID'))
  138.   TotMem=READLN(IN)
  139.   Call CLOSE(IN)
  140.   ADDRESS COMMAND 'Delete >NIL: T:tmp' || PRAGMA('ID')
  141.   Say ARCLIC_Mille(TotMem)
  142. RETURN ''
  143. EXIT 0
  144.