I expect that MASH is intended to be an enhanced command line, and it is intended to be written in MUMPS. The David Bolduc's Victory Programming Environment does something like this.
VPE allows a programmer to do many things. This information is from VPE version 10.
1) Command Line History - ability to retrieve previous commands issued and re use them. 2) QWIK Commands - user defined commands either per person or for the entire shop (system) 3) Online help for FileMan and Kernel. 4) Vendor Generic Utilities to manipulate routines, globals, and FileMan Files.
5) Example KWIKs are: 5.1) VShell 5.2) VGL 5.3) VRR 5.4) VEDD
S Y S T E M Q W I K S System QWIKs come with the VShell. To invoke a System QWIK, type two dots followed by the name. For example, to run VGL you would type ..VGL. The following is a list of the available System QWIKs, grouped by category:
1.) QWIK RELATED
QB Assign User QWIKs to a Box. See BOXES help text. QC Copy a QWIK. QD Delete a QWIK. QE Add/Edit a QWIK. Same as <TAB>. QL1 List User QWIKs/Description - Same as <F1>1. QL2 List User QWIKs/Code - Same as <F1>2. QL3 List System QWIKs/Description - Same as <F1>3. QL4 List System QWIKs/Code - Same as <F1>4. QSAVE Saves your User QWIKs to a routine. Use for back-up or to send your QWIKs to another programmer. This option also restores previously saved QWIKs. QV Create QWIKs that will run on different vendors' Mumps systems. See VENDOR SPECIFIC CONFIGURATIONS help text. QVL List Vendor Specific Code for QWIKs set up with QV.
2.) SHELL RELATED
CLH Resequences your Command Line History. The VShell saves your last 20 commands. As new commands are added and old commands dropped, the sequence number of each entry can get large. You may type ..CLH at anytime, to resequence the numbers back to 1-20. DTMVT For DataTree users. If you Control C out of some DataTree utilities, VT100 terminal emulation is no longer in effect and you will see junk on the screen. Use this QWIK to reset your terminal to VT100. PARAM Enter System Parameters. See MISCELLANEOUS help text. PUR The VShell has it's own scratch area: ^%ZVEMS("%"). PUR will purge older nodes left behind by a previous session. PURVGL Purge VGL's Command Line History. PURVRR Purge VRR's Command Line History. PURVEDD Purge VEDD's Command Line History. PURVSHL Purge Command Line History for the VShell. UL List VShell Users, including DUZ and ID numbers. VER Displays VShell version number.
3.) PROGRAMMER TOOLS
ASCII ASCII table display. CAL 6 month calendar display. E VRoutine Editor. KEY Display escape sequence for any key pressed. LBRY Routine Library. Used with ..E to help prevent routines from being accidentily overwritten when there are multiple programmers working on the same routines. NOTES VPE programmer notes. RL Routine Lister RTN Start a new M routine. You may enter your lines of code and it will prompt you for a routine name and save it to disk. VEDD VElectronic Data Dictionary. VGL VGlobal Lister. VRR VRoutine Reader. ZD Kill all local variables that start with %1(parameter). ZP Use to ZPRINT a routine. ZR Use to ZREMOVE from 1 to 9 routines. ZW ZWRITE the symbol table. Writes the variables one page at a time.
4.) FILEMAN/VA KERNEL RELATED
FMC Fileman programmer calls. FMTI Fileman Input Template display. FMTP Fileman Print Template display. FMTS Fileman Sort Template display. LF VA KERNEL Libray Functions. XQRT Help text for VA Kernel menu options.
5.) VENDOR GENERIC QWIKS
Pressing PF1 4 yields this table: S Y S T E M Q W I K S (..QWIK) ID: 51487 BOX: =============================================================================== 1) ASCII 3 D ASCII^%ZVEMST 2) CAL 3 D CALENDAR^%ZVEMST 3) CLH 2 D CLH^%ZVEMSY1 4) DIC 4 D DICCALL^%ZVEMSU1 5) DOS 5 W $C(7),!?2,"Not available for this M Vendor.",! 6) DTMVT 2 Q:VEE("OS")'=9 Q:VEE("IO")'=1 U 1:VT=1 7) E 3 X ^%ZVEMS("E") 8) FMC 4 D ^%ZVEMSF 9) FMTI 4 D DIET^%ZVEMSU1 10) FMTP 4 D DIPT^%ZVEMSU1 11) FMTS 4 D DIBT^%ZVEMSU1 12) G 5 D ^%G 13) GCOPY 5 W $C(7),!?2,"Not available for this M Vendor.",! 14) GD 5 D ^%GD 15) GDE 5 W $C(7),!?2,"Not available for this M Vendor.",! 16) GEDIT 5 D ^%GED 17) GLB 5 D GLB^%ZVEMKT(%1,"SC",%2) 18) GR 5 D ^%GI 19) GS 5 W $C(7),!?2,"Not available for this M Vendor.",! 20) GSE 5 W $C(7),!?2,"Not available for this M Vendor.",! 21) GSEL 5 D ^%GSET 22) KEY 3 D KEY^%ZVEMSU1 23) LBRY 3 D ^%ZVEMRLM 24) LF 4 D ^%ZVEMSL 25) LOCKTAB 5 W $C(7),!?2,"Not available for this M Vendor.",! 26) NOTES 3 D HELP^%ZVEMKT("NOTES") 27) PARAM 2 D ^%ZVEMSP 28) PUR 2 D PURGE^%ZVEMSU 29) PURVEDD 2 KILL ^%ZVEMS("CLH",VEE("ID"),"VEDD") 30) PURVGL 2 KILL ^%ZVEMS("CLH",VEE("ID"),"VGL") 31) PURVRR 2 KILL ^%ZVEMS("CLH",VEE("ID"),"VRR") 32) PURVSHL 2 KILL ^%ZVEMS("CLH",VEE("ID"),"VSHL") 33) QB 1 D BOX^%ZVEMSQU 34) QC 1 D COPY^%ZVEMSQU 35) QD 1 D DELETE^%ZVEMSQU 36) QE 1 S VEESHC="<TAB>" D ^%ZVEMSQ 37) QL1 1 S VEESHC="<F1-1>" D ^%ZVEMSQ 38) QL2 1 S VEESHC="<F1-2>" D ^%ZVEMSQ 39) QL3 1 S VEESHC="<F1-3>" D ^%ZVEMSQ 40) QL4 1 S VEESHC="<F1-4>" D ^%ZVEMSQ 41) QSAVE 1 D SAVE^%ZVEMSS 42) QV 1 D VENDOR^%ZVEMSQV 43) QVL 1 D VENLIST^%ZVEMSQW 44) RCHANGE 5 D ^%RCHANGE 45) RCMP 5 D ^%RCMP 46) RCOPY 5 D ^%RCOPY 47) RD 5 D ^%RD 48) RDEL 5 D ^%RDELETE 49) RL 5 D ^%ZVEMSRL 50) RR 5 D ^%RI 51) RS 5 D ^%RO 52) RSEARCH 5 D ^%RFIND 53) RSEL 5 D ^%RSET 54) RSIZE 5 W $C(7),!?2,"Not available for this M Vendor.",! 55) RTN 5 D ^%ZVEMSNR 56) UCI 5 W $C(7),!?2,"Not available for this M Vendor.",! 57) UL 2 D LIST^%ZVEMSID 58) UTIL 5 W $C(7),!?2,"Not available for this M Vendor.",! 59) VEDD 3 D PARAM^%ZVEMD(%1,%2,%3) 60) VER 2 D VERSION^%ZVEMSU2 61) VGL 3 D PARAM^%ZVEMG(%1) 62) VRR 3 D PARAM^%ZVEMR(%1) 63) XQH 4 D XQH^%ZVEMST 64) ZD 3 D ^%ZVEMSD 65) ZP 3 D ZPRINT^%ZVEMSU2 66) ZR 3 Q:'$$ZREMOVE^%ZVEMSU2() NEW I,X F I=1:1:9 S X=@("%"_I) Q :X']"" ZR ZS @X W !?2,X," Removed..." 67) ZW 3 D WRITE^%ZVEMSPS(%1)
|