home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1995 November / PCWK1195.iso / inne / podstawy / dos / 4dos / 4uzytki / ez-btm11.exe / XC.BTM < prev   
Text File  |  1994-10-26  |  7KB  |  259 lines

  1. : XC.BTM
  2. : A library of sub-programs. Run with the name of any of the sub-programs
  3. : specified below + commands / options / switches. See XC-HLP.BTM (or
  4. : type 'XC H [option]') for more details on each sub-program. All of
  5. : the programs included here can also run from EX.BTM. This frees you
  6. : from remembering which sub-program is stored where. XC.BTM is however
  7. : required by EX.BTM because the programs run by the 'call' command.
  8. : Itamar Even-Zohar
  9. : Porter Chair of Semiotics, Tel Aviv University
  10. : Tel Aviv 69978, Israel
  11. : e-mail: itamarez@plato.tau.ac.il
  12. :
  13. if "%1" == "" goto CONTENTS
  14.  
  15. call settemp.btm
  16. :: (sets temp drive for programs)
  17.  
  18. goto begin
  19.  
  20. :contents
  21. cls
  22. text
  23.  
  24. Usage: XC function [options]
  25.  
  26. where function stands for
  27.  
  28. help or h <command>........ Explanations on each of the following
  29.  
  30. DUP ....................... Find doubles
  31. ALS ....................... Reload aliases file and report
  32. UMBMEM|UMB ................ Report how much free UMB memory left
  33. CHKP <name of pgm> ........ Check and report if a specified pgm is loaded
  34. SEF <string>............... Look for file(s) through list of file
  35.                               descriptions and filenames
  36. SRDX ...................... Resize dynamic ramdisk created by SRDISK
  37.  
  38. endtext
  39.  
  40. screen 19 1
  41. :select
  42. inkey /K"[ESC][Enter]" ==> Type ENTER for more, ESC to quit %%rsp
  43. if %rsp == @28 goto more_text
  44. if %rsp == %@char[27] (unset rsp^quit)
  45.  
  46.  
  47. :more_text
  48. cls
  49. text
  50.  
  51. (nothing here) ............. Vacant for future sub-programs
  52.  
  53.  
  54. endtext
  55. inkey /K"[ESC][Enter]" ==> Type ENTER to return, ESC to quit %%rsp
  56. if %rsp == @28 goto contents
  57. if %rsp == %@char[27] (unset rsp^quit)
  58.  
  59.  
  60. :begin
  61. if %1 == q quit
  62. goto %1
  63. quit
  64.  
  65. :HELP
  66. :H
  67. call XC-HLP %2&
  68. quit
  69.  
  70. :------------------------------------------------------Doubles
  71. :DUP
  72. rem      Finds out if Ledbetter's program is found on your path.
  73. iff "%@search[whereis.exe]" =="" .and. "%@search[SST.exe]" =="" then
  74. echo.
  75. echo You need Ledbetter's SST (formerly WHEREIS) to run this sub-program
  76. quit
  77. endiff
  78. set exceptions=-x*.set -x*.kbd -xnb*.* -x*.ov* -xdes*.* -xfilelist -xstart*.*
  79. REM -- Modify the exclusion list to suit your needs.
  80. echo Scanning disk for duplicates . Wait ...
  81. whereis *.* -dup %exceptions >%temp%doubles.lst
  82. ex ca %temp%doubles.lst
  83. endiff
  84.  
  85. quit
  86. :----------------------------------------------loading aliases
  87. :qic
  88. :als
  89.  
  90. set as_file=c:\qicurim
  91. rem         ^^^^^^^^^^ (change as needed)
  92. if not exist %as_file INPUT Program needs the name of your aliases file (include path): %%as_file
  93. if not exist %as_file (echo %@upper["%as_file"] not found^goto end_als)
  94.  
  95. alias /R %as_file
  96. if %@eval[%_row] ge 22 cls
  97. echo ALIAS file reloaded. Here is current state:
  98. screen %@eval[%_row-1] 0
  99. call xc al
  100.  
  101. :end_als
  102. unset as_file
  103. quit
  104. :-----------------------------------------Reporting alias memory
  105. :aliases
  106. :al
  107. setlocal
  108. rem [writing to ramdisk; if not defined, writing to default disk]
  109. set fn=%@unique[%temp]
  110. find /i "alias" %@search[4dos.ini]>%fn
  111.  
  112. set lines=%@lines[%fn]
  113. set num=1
  114.  
  115. :check_lines
  116. :: (checking line one by one until exact match found)
  117. if %num gt %lines goto analyse
  118. set line=%@line[%fn,%num]
  119. set walias=%@word[0,%line]
  120. iff .%walias==.alias then
  121.    set sn=%line
  122. else
  123.    set num=%@eval[%num+1]
  124.    goto check_lines
  125. endiff
  126.  
  127. :analyse
  128. :: (the number is found out from the line)
  129. set po=%@eval[%@index[%sn,=]+1]
  130. set total=%@substr[%sn,%po]
  131.  
  132. if %@eval[%_row] ge 22 cls
  133. screen %@eval[%_row+1] 0 Total memory allotted to aliases:
  134. iff %@eval[%total] lt 1000 then
  135.     screen %@eval[%_row] 36 %total bytes
  136.     else
  137.     screen %@eval[%_row] 35 %total bytes
  138.  endiff
  139. screen %@eval[%_row+1] 0 Free memory for aliases:
  140. iff %@eval[%_alias] lt 1000 then
  141.     screen %@eval[%_row] 36 %_alias bytes
  142.     else
  143.     screen %@eval[%_row] 35 %_alias bytes
  144. endiff
  145.  
  146. del /q %fn
  147. endlocal
  148. quit
  149. :-------------------------------------Checks if a program loaded
  150. :CHKP
  151. : Checks and reports if a specified pgm is loaded.
  152. : The procedure is based on MS-DOS mem /m, redirected to a unique-
  153. : file (on ramdrive, is accessible). If a program ("module") is
  154. : not loaded MS-DOS creates 1 line; otherwise, it creates a text
  155. : with several lines. This procedure simply counts the number of
  156. : lines for deducing whether a program is loaded or not.
  157.  
  158. shift
  159. if .%1==. goto syntax
  160.  
  161. set umbm=%@unique[%temp]
  162. mem /m %1 > %umbm
  163. iff %@lines[%umbm] lt 2 then
  164.   rem if %_batch ge 2 set loaded=0
  165.   echo ==> Program %@upper["%1"] is not loaded (or error in name)
  166.   goto quit
  167. else
  168.   rem if %_batch ge 2 set loaded=1
  169.   echo ==> Program %@upper["%1"] is loaded
  170.   goto quit
  171. endiff
  172.  
  173. :quit
  174. del /q %umbm
  175. unset umbm
  176. quit
  177.  
  178. :syntax
  179. echo Syntax is:
  180. echo %0 name_of_program
  181. quit
  182. :
  183. : Comment: the idea was to be able to use this procedure for determining,
  184. : also in AUTOEXEC.BAT, whether a certain pgm is loaded. This can be helpful
  185. : in determining the type of computer. No msg is needed therefore if this
  186. : procedure is run as an auxiliary procedure from another batch file.
  187. : ---------------------------------------------REPORTS free UMB
  188. :UMBMEM
  189. :UMB
  190. :: Reports how much free UMB memory left
  191.  
  192. set umbm=%@unique[%temp]
  193. mem > %umbm
  194.  
  195. set umbmem=%@word[3,%@line[%umbm,4]]
  196. rem (gets the 4th word from the 5th line)
  197. set umbmem=%@substr[%umbmem,0,%@eval[%@LEN[%umbmem]-1]]
  198. rem (gets the number without the last letter)
  199. del /q %umbm
  200. echo Upper Memory has %umbmem%K free
  201. unset umbm umbmem
  202. quit
  203. :---------------------------------------------Look for file(s)
  204. :sef
  205. : Looks for files by any segment of their name and description
  206. : in a file called FILELIST created by this batch. If /l switch
  207. : used, creates file on temporary drive, else calls results via LIST /S.
  208.  
  209. if "%1"=="" (echo Syntax: SEF search_item^quit)
  210.  
  211. shift
  212.  
  213. dir > filelist
  214. iff "%2"=="" then
  215.   find /i "%1" filelist | list /s
  216. else
  217.   call settemp
  218.   find /i "%1" filelist > %temp%sef.lst
  219.   echo Results redirected to %temp%sef.lst
  220.   gosub callfile
  221. endiff
  222.  
  223. quit
  224.  
  225. :callfile
  226. inkey /K"YN" Call %@upper[%temp%sef.lst] to screen ( Y/N ) ? %%rep
  227. if %rep == Y (ca %temp%sef.lst)
  228. if %rep == N return
  229. return
  230.  
  231. :-----------------------------------------------Runs SRDISK--
  232. :SRDX
  233. : Helps resizing ramdisk created with SRDISK. SRDISK has more
  234. : parameters. Type SRDISK /? for more help.
  235. : SRDISK is downloadable from simtel20 as srdsk205.zip (msdos/ramdisk)
  236.  
  237. setlocal
  238. set fn=%@unique[%temp]
  239. srdisk >%fn
  240. echo Current ram%@trim[%@line[%fn,5]]
  241. echo (%@trim[%@line[%fn,10]]K)
  242. input Type new desired size (in kbytes): %%newsize
  243.  
  244. iff .%newsize == . then
  245.   echo SRDISK aborted
  246.   goto quitsrd
  247. else
  248.   srdisk %newsize
  249. endiff
  250.  
  251. :quitsrd
  252. del /q %fn
  253. endlocal
  254. quit
  255. :----------------------------------------------...............
  256. :----------------------------------------------...............
  257. :----------------------------------------------...............
  258.