******************************************************************** this part of the program should be unyanked to a file NEWCMD.DO do this to everything between the ******* lines then delete that part of the file ; NEWCMD RUNS NEWCMD PROGRAM USING DIRECT.* AS DEFAULT ; THIS DO FILE IS USED ONLY ON DIRECT.LST AS THE DEFAULT FILE ; CREATED BY JAMES A. JARBOE IV ; EDUCATIONAL FILMSTRIPS 1401 19TH STREET, HUNTSVILLE TX 77340 :S XY=0 XY 1 1 : XY 11 20 : XY 13 20 : LOOKUP DIRECT.LST/ GOTO OUT LOOKUP DIRECT.CMD/ GOTO PASS XY 2 1 : ERASE DIRECT.CMD ;PASS XY 2 1 : XY 3 1 : RUN NEWCMD.RUN DIRECT $0 ERASE DIRECT.LST XY 4 1 :R VUE DIRECT.CMD :S : EXIT ;OUT XY 2 1 :R DING 2 : XY 3 1 EXIT PROGRAM ABORTED ******************************************************************** ==================================================================== this part of the program should be unyanked to a file NEWCMD.HLP do this to everything between the ======= lines then delete that part of the file Locate the following files in the following accounts FIND DO 1 DSK0:[2,2] NEWCMD DO 2 NEWCMD HLP 18 DSK0:[7,1] NEWCMD BAS 6 DSK0:[50,45] NEWCMD RUN 3 DSK0:[7,6] Grand total of 5 files in 30 disk blocks FROM: JAMES A. JARBOE IV EDUCATIONAL FILMSTRIPS 1401 19TH STREET HUNTSVILLE, TX 77340 OCT 5, 1982 Dear AMUS AIDS A few months ago in the AMUS NEWSLETTER someone mentioned the use of a directory file (EX DIR DIRECT.LST=*.BAK) as a command file do an operation of some sort. I used this technique quite often. The only drawback was that it was slow after the directory was made. The file had to be VUE'ed, the unnecessary information (DISK LOCATION, BLOCK NUMBERS, ETC.) had to be deleted. The spaces between the filename and the extension had to be taken out and the "." had to be inserted between the filename and the extension. Then the action you wanted to take place (EX: VUE, PRINT, TYPE, ERASE ) had to be inserted in front of the filename. That either meant typing the word infront of all the entries or using some easy symbol then using REPLACE or (carefully) GLOBAL to replace the symbol with the action word you wanted. Still all of this was easier than typing in everything. Well I figured the ole ALPHA MICRO could do this chore with ease. So I wrote NEWCMD.BAS. This program (which can be run on its own), looks at the directory listing (any filename you chose or defaults to DIRECT.LST), and creates a command file from the directory listing using the directory listings filename. It places a :T at the beginning of the file, takes the DISK LOCATION from the listing and makes it a LOG, puts an action word( VUE, PRINT, TYPE, ETC) places it in front of the filename, takes the spaces between filename and extension out and puts the "." back in place. Then at the end of the file it puts a DING 2 and a notice that :< COMMAND FILE IS FINISHED >. All for a $1.95. Contents of DIRECT.LST before NEWCMD.BAS AA CMD 1 DSK0:[2,2] APCOMP CMD 2 AR CMD 1 BAKUP0 CMD 2 BATCH CMD 1 CHAIN CMD 1 TYPE CMD 1 UMAIL CMD 1 WORD CMD 1 Total of 9 files in 11 blocks Contents of DIRECT.CMD after NEWCMD.BAS :T LOG DSK0:[2,2] TYPE AA.CMD TYPE APCOMP.CMD TYPE AR.CMD TYPE BAKUP0.CMD TYPE BATCH.CMD TYPE CHAIN.CMD TYPE TYPE.CMD TYPE UMAIL.CMD TYPE WORD.CMD DING 2 :< COMMAND FILE DIRECT.CMD FINISHED > Results: a command file ready to run in under 1 minute That was easy, but not easy enough. You still had to check for an old directory listing, erase it if there was one, make a new directory listing, input the directory file name into NEWCMD.RUN, then enter the action word into the program and then after the program was complete, VUE the command file and enter any comments or other oddities, then finish and run. That inspired NEWCMD.DO. Let the ALPHA MICRO do the work particularly if you use the directory default for a listing. NEWCMD.DO is invoked by typing NEWCMD action-word. Example NEWCMD TYPE This DO file looks up to see if there is a directory listing (default only) and aborts if ther isn't. If there is then it looks up a DIRECT.CMD and erases it if there is. Then it automatically fills in the blanks for the NEWCMD.RUN program using the DO files ARGUEMENT for the action-word. Then it erases the Directory listing so you're ready for the next time. Then it VUE's the new command file (DIRECT.CMD), so you can make any addtions (SLEEP 3, LUED COMMENTS, ETC). Then exits after you exit VUE. Easy now ? No you still have to make the Directory listing. Well here comes FIND.DO. FIND.DO is the ultimate (maybe) in automation at this time. It is invoked by typing FIND filename THEN action-word. Example: FIND *.CMD THEN TYPE This command file deletes the current memory then loads the memory with necessary command file modules, looks up an old directory listing, erases it if it is there, makes a new one using the filename argument in the DO file, then runs the NEWCMD.DO file using the action-word given in FIND.DO. So now you can create a usable command file in order to do any type of large operation by typing FIND *.CMD THEN TYPE That will do almost everything for you. You still have to put comments in the command file or other necessary commands. The different DO. files allow you to start the operation at any point. FIND filename THEN action-word for COMPLETE EVERYTHING TAKEN CARE OF NEWCMD action-word for ALREADY HAVING A DIRECTORY LISTING NEWCMD.RUN for ALREADY HAVING A DIRECTORY LISTING AND INPUTING DATA AS NEEDED THEN ENVOKING VUE YOURSELF This only took a couple of three hours programming time, and a couple of three hours time troubleshooting and bug getting out. I am sure that any or all of this can and will be modified for your own personal custom use and should be if you want to use it. These programs are on the AMUS NETWORK or you can use the listing here. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ; FIND.DO : IT'S USE IS "FIND filename THEN action-word" ; USED WITH THE NEWCMD.DO TO MAKE THINGS EVEN EASIER ; CREATED BY JAMES A. JARBOE IV ; EDUCATIONAL FILMSTRIPS, 1401 19TH STREET,HUNTSVILLE TX 77340 :S XY=0 DEL *.* XY 1 1 : XY 11 20 : XY 13 20 : XY 2 1 : DSK0:BATCH.CMD[2,2] :S LOOKUP DIRECT.LST/ GOTO ON XY 2 1 : ERASE DIRECT.LST ;ON XY 2 1 : DIR=$0 NEWCMD $2 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ; NEWCMD RUNS NEWCMD PROGRAM USING DIRECT.* AS DEFAULT ; THIS DO FILE IS USED ONLY ON DIRECT.LST AS THE DEFAULT FILE ; CREATED BY JAMES A. JARBOE IV ; EDUCATIONAL FILMSTRIPS 1401 19TH STREET, HUNTSVILLE TX 77340 :S XY=0 XY 1 1 : XY 11 20 : XY 13 20 : LOOKUP DIRECT.LST/ GOTO OUT LOOKUP DIRECT.CMD/ GOTO PASS XY 2 1 : ERASE DIRECT.CMD ;PASS XY 2 1 : XY 3 1 : RUN DSK0:NEWCMD.RUN[7,6] DIRECT $0 ERASE DIRECT.LST XY 4 1 :R VUE DIRECT.CMD :S : EXIT ;OUT XY 2 1 :R DING 2 : XY 3 1 EXIT PROGRAM ABORTED ===================================================================== 10 ! 20 ! 30 ! NEWCMD.BAS TAKES OUT BLANKS BETWEEN FILENAME & EXTENSION & ADDS "." 40 ! BY JAMES A. JARBOE IV 50 ! EDUCATIONAL FILMSTRIPS 1401 19TH STREET, HUNTSVILLE TX 77340 60 ! THIS PROGRAM TAKES A DIRECTORY FILE, OPENS IT, READS IT 70 ! THEN TAKES THAT FILE ADDS THE '.' BETWEEN FILENAME AND THE 80 ! EXTENSION. IT ALSO ADDS AN ACTION WORD IN FRONT OF THE 90 ! FILENAME (EXAMPLE: TYPE, ERASE, COPY, PRINT, ETC. 100 ! THEN PUTS IT IN A FILE WITH THE EXTENSION OF ."CMD" 110 ! MAKING IT READY FOR YOU TO PROCESS AS A COMMAND 120 ! 130 STRSIZ 80 140 MAP1 WORKSPACE 150 MAP2 SORCE,S,80 ! Main file input line 160 MAP2 NAME$,S,10 ! Name of main file 170 MAP2 SNAME$,S,10 ! Name of work file 180 MAP2 EXT$,S,3 ! File extensions to work on 190 MAP2 A$,S,4,".LST" ! Default Main File 200 MAP2 B$,S,4,".CMD" ! Default Work File 210 ! 220 ?TAB(-1,0);"UTILITY TO CREATE A .CMD FILE FROM A DIRECTORY LISTING" 230 ! 240 PROGRAM: 250 ?:INPUT "ENTER NAME OF FILE TO PROCESS ? ";NAME$ 260 IF NAME$[1,6]=" " THEN NAME$="DIRECT" 270 CALL DEFAULT 280 LOOKUP NAME$,CHECK 290 LOOKUP SNAME$,CHECK'2 300 IF CHECK=0 THEN ? CHR(7);NAME$;" NOT FOUND!": GOTO PROGRAM 310 IF CHECK<0 THEN ? CHR(7);NAME$;"IS A RANDOM FILE" : GOTO OUT 320 IF CHECK'2>0 THEN ? CHR(7);SNAME$;" ALREADY EXISTS" : CALL DO'YOU 330 IF CHECK'2<0 THEN ? CHR(7);SNAME$; "IS A RANDOM FILE" : GOTO OUT 340 ?:INPUT "ENTER THE ACTION TO TAKE PLACE ",ACT$ 350 OPEN #1, NAME$,INPUT 360 OPEN #2, SNAME$,OUTPUT 370 ?:?:? "PROCESSING .... PLEASE WAIT" 380 ? #2,":T" 390 LOOP: INPUT LINE #1, SORCE 400 IF EOF(1)=1 GOTO FINISH 410 IF SORCE=" " THEN GOTO LOOP 420 IF SORCE[18,20]="DSK" THEN ?#2,"LOG "+SORCE[18,LEN(SORCE)] 430 IF SORCE[1,8]="Total of" THEN GOTO LOOP 440 IF SORCE[1,8]="Grand to" THEN GOTO LOOP 450 EXT$=SORCE[8,10] 460 ST=1 470 REPARE: A=INSTR(ST,SORCE,EXT$) 480 IF A=0 GOTO DO'IT 490 IF SORCE[A-1,A-1]>" " THEN ST=A+3 : GOTO REPARE 500 AGAIN: 510 IF SORCE[A-1,A-1]=" " THEN A=A-1 : GOTO AGAIN 520 SORCE[A,A]="." 530 SORCE[A+1,A+3]=EXT$ 540 SORCE[A+4,LEN(SORCE)]=SPACE$(80) 550 IF ACT$=" " THEN GOTO DO'IT 560 SORCE=ACT$+" "+SORCE 570 DO'IT: 580 ? "."; 590 ?#2, SORCE 600 GOTO LOOP 610 620 FINISH: 630 ?#2,"DING 2":?#2,":< COMMAND FILE "+SNAME$+" FINISHED ":?#2,">" 640 ?:? "LAST LINE COMPLETED ":?: CLOSE #1: CLOSE #2 650 ?"YOUR FIXED FILE EXISTS ON DISK AS ( ";SNAME$;" )" 660 END 670 DO'YOU: 680 INPUT "DO YOU WISH TO DELETE IT ?",ANS$ 690 IF ANS$[1,1]="Y" THEN RETURN 700 OUT: 710 ?"PROGRAM ABORTED" 720 END 730 DEFAULT: 740 SNAME$=NAME$ 750 G=INSTR(1,NAME$,"."):IF G>0 THEN SNAME$[G,G+4]=B$ : RETURN 760 NAME$=NAME$+A$ 770 SNAME$=SNAME$+B$ 780 RETURN 790 !