ruben@ut-ngp.UUCP (Ruben Ramirez-Mitchell) (02/03/85)
Somebody asked me for an example of microshell scripts, the following includes a few of the commands and does not make use of any of the microtools. What I needed is a script to make the output of 'SD $SDALNP' more readable. I needed to set the printer margins,etc; form feed in between drive listings, I wanted the date, and the option to specify system and library files. I 'FILTER'ed the file to eliminate control chars (like ESC G4, ESC G8, ESC [ 1;96s, etc I use for my Televideo 950 and Qantex printer). The script is in a file called 'hdisk.shl' and it is invoked by the name 'hdisk <parameters>' :-------------------------------------------------------------------- : PROGRAM hdisk : USAGE hdisk [options] : <option>: <all| d1 [d2 [d3 [d4]]]> : DESCRIPTION Print hard disk directories using 'SD' with parameters : '$APN' (all users, print, no pause) : EXAMPLES hdisk all : hdisk b a d :---------------------------------------------------------------------- %B$ = "" %#args %A %if %A LT 1 then goto help %printdir %erase %print %print " G4 ----HARD DISK DIRECTORY-----G0 " %print " G4 ALL USER AREAS G0 " %print ;%print %print " G4 FILE SPECIFICATION G0 " %print " G8 <CR> for '*.*' G0 " %print " G8 (e.g. asm*.?q?) G0 " %print " G8 G0 " %print %print -n " G8 FILES: G0 " %getstr %E$ <con: ; %upcase %E$ %if %E$ NE "" then goto checksys ; %E$ = "*.* " %checksys %print; %print %print -n " G8 SYSTEM FILES (Y/N): G0 " %getstr %8 <con: ; %upcase %8 %if %8 = "Y" then goto setsys %8 = "" %checklib %print; %print %print -n " G8 LIBRARY FILES (Y/N): G0 " %getstr %9 <con: ; %upcase %9 %if %9 = "Y" then goto setlib %9 = "" %checkdate %print; %print %print -n " G8 DATE: G0 " %getstr %B$ <con: ; %upcase %B$ : BUILD PARAMETER LIST FOR SD.COM %D$ = " $ANP" %D$ = %D$ + %8 + %9 %15 = %E$ : CHECK IF ALL DRIVES SPECIFIED %C$ = %1 %upcase %C$ %if %C$ = "ALL" then goto alldisks : MESSAGE BEFORE PRINTING %print; %print %print " G4 Turn Printer ON LINE G0" %print " G4 SET to TOP-OF-FORM G0" %print; %print %print -n " G8 Press any key to continue: G0 " %getchr %A$ <con:; %erase; %print : RESET QUANTEX PRINTER TO DEFAULTS : / LEFT MARGIN 8 / TOP_MARGIN 5 / BOTTOM_MARGIN 6 + PADDING %P$ = " [5;60r [8;96s " %print -n %P$ > lst:; %print >lst: : PRINT HEADING AND DATE %print " ==== Q540 - HARD DISK DIRECTORY ======">lst: %print -n " " >lst: %print %B$ >lst: ; %print > lst: : PRINT DIRECTORY WITH THE SELECTED OPTIONS %loop %15 = %E$ + %D$ SD $1:$15 %print "" > lst: %shift %A = %A - 1 %if %A GT 0 then goto loop %erase %print %print " G4 ---HARD DISK DIRECTORIES PRINTED---- G0" : RESET THE PRINTER TO DEFAULTS %print -n "c" > lst: %exit %alldisks %A = 5 %1=A ; %2=B ; %3=C ; %4=D ; %5=E %goto loop %help %erase %print %print " NAME: hdisk %print %print " DESCRIPTION: Print contents of hard disk, all user" %print " areas. Prompts for a) a file mask, b) " %print " the inclusion of system and library " %print " files and c) for the current date " %print %print " USAGE: Hdisk [<option>]" %print " <option>: 'all' | d1 [d2 [d3 [d4]]]" %print %print " EXAMPLES: hdisk all" %print " hdisk d a c" %print %print " NOTES: Drives scanned under the 'all' option:" %print " A:, B:, C:, D:, and E: " %print %exit %setsys %8 = "S" %goto checklib %setlib %9 = "L" %goto checkdate Hope it helps, Ruben Mitchell ruben@ut-ngp.arpa