Reply to note from Harry Binswanger <hb@xxxxxxxxxxxx> Sun, 27 Sep 2009 13:15:54 -0400 > A year ago, Carl developed a frame, $X, that allows activating > U2 frames with the Enter key, rather than needing a separate, > assigned <helpkey>. I modified tinkered with, and customized > Carl's code. In accordance with HBPPP (Holmgren Best Practices > Programming Protocol) I left Carl's frame ($X) alone and named > my version $H. (Note there is already a frame named $H, so make > needed adjustments > ... > I'm including both Carl's original and my tinkered-with > version. Ahem, that is NOT my original! You've renamed it from $X to "$X-10/10/08", with the result that it will NOT work for anyone who follows my instructions. For this to work as advertised, the framename has GOT to be $X. In any event, I've made some tweaks to $X since posting the last public version. Here is the current code (dated 1/24/09), and the help screen (for XYWWWEB.INF). I have some further comments in reply to you, which I'll post in a separate message. Code (for U2 file): XPLeNCODE v2.0 b-gin [UNTITLED] {{;5$X}} Issue COMMAND[ arg(s)]<cr|XC> or U2_FRAMENAME[ arg(s )]<Helpkey> with the same key [CLD rev.1/24/09][cr|lf]{002}{< }IF{<}VA|50{>}<1{>}{<}SU01,{<}SX50,{<}IS00{>}{>}{>}{<}GT01{>} {<}EI{>}{<}IF{<}VA$KC{>}==28!{<}VA$KC{>}==104{>}{<}IF{<}VA$SM {>}>0{>}[JM_]2.null[Q2_]{<}EI{>}{<}IF{<}VA$TX{>}>0&{<}VA$WS{> }<2{>}[255+048+068]{<}EX{>}{<}EI{>}{<}EI{>}{<}IF{<}VA!620{>}< 1&{<}VA|50{>}>0{>}[JM_]2.$S[Q2_]{<}EI{>}{<}IF""{238}{<}IS50{> }<>0&{<}IS50{>}=="?"!{<}VA|50{>}<>1&"HELP"{238}@upr({<}IS50{> })<>0{>}{<}SX01,{<}VA$EB{>}{>}{<}SX02,{<}VAWA{>}{>}[BX_]d wa= 0[Q2_]{<}SX01,"[BX_]es 1[Q2_][BX_]d eb="+{<}IS01{>}+"[Q2_]"{> }{<}SX02,"[BX_]d wa="+{<}IS02{>}+"[Q2_]"{>}{<}IF"D EB"{238}@u pr({<}IS50{>})==0!"DEFAULT EB"{238}@upr({<}IS50{>})==0!"D $EB "{238}@upr({<}IS50{>})==0!"DEFAULT $EB"{238}@upr({<}IS50{>})= =0!"VA/NV EB"{238}@upr({<}IS50{>})==0!"VA/NV $EB"{238}@upr({< }IS50{>})==0{>}{<}SV01,[BX_]es 1[Q2_]{>}{<}EI{>}{<}IF"D WA"{2 38}@upr({<}IS50{>})==0!"DEFAULT WA"{238}@upr({<}IS50{>})==0{> }{<}SV02,{>}{<}EI{>}{<}IF{<}VA|01{>}>10{>}[BX_]d eb=0,0[Q2_]{ <}EI{>}{<}IF"VA/NV WA"{238}@upr({<}IS50{>})==0{>}{<}PV02{>}{< }SV02,{>}{<}EI{>}{<}IF{<}VA|50{>}<1!"BEEP"{238}@upr({<}IS50{> })==0!"RUN "{238}@upr({<}IS50{>})==0!@upr({<}IS50{>})=="RUN"{ {062}}{<}PV01{>}{<}PV02{>}[BX_]es[Q2_][BX_]{<}PV50{>}[Q2_]{<}EX{> }{<}EI{>}[BX_]es 1[Q2_][BX_][Q2_][BX_]es[Q2_]{<}IF{<}VA$WS{>} {062}1&{<}VA$TX{>}>0&" "{238}{<}IS50{>}<0&"|CALL|CD|CHDIR|DELETE| EDIT|ERASE|ERNV|READ|RUN"{240}("|"+@upr({<}IS50{>})){>}{<}SX5 0,{<}IS50{>}+" "+{<}VA$DR{>}{>}{<}EI{>}[BX_]{<}PV50{>}[Q2_]{< }IF@not({<}ER{>})!{<}VA$ER{>}<>12{>}{<}PV01{>}{<}PV02{>}{<}EX {>}{<}EI{>}[BX_]wait[Q2_]{<}PV01{>}{<}PV02{>}{<}EI{>}{<}SV01, {>}{<}IF{<}VA$MG{>}<>""{>}{<}SX01,{<}VA$MG{>}{>}{<} EI{>}{<}PR@01{>}[BX_]es[Q2_][JM_]2.PrsSG50[Q2_]{002}[cr|lf][c r|lf] -nd XPLeNCODE XPLeNCODE v2.0 b-gin [UNTITLED] {$Xkey,$X}[cr|lf][cr|lf]Enhanced Func XC (eXeCute command) Su bstitute[cr|lf]C.L.Distefano rev.1/24/09[cr|lf][cr|lf]Purpose [cr|lf]-------[cr|lf]Use a single key of your choosing (refer red to below as "<$Xkey>") to launch both built-in (native) c ommands and user-created commands (U2 framenames) from the CM line.[cr|lf][cr|lf]Critical Prerequisite[cr|lf]-------------- -------[cr|lf]The DiaLoG help file {<}VA$DG{>}) MUST contain{032} the redirection frame {{;5$?}}. If it does not, add it by doi ng the following: Toggle this file into eXPanded view (FUNC X P<cr|XC>). DeFine the following block of code (everything bet ween the horizontal lines, not the lines themselves), and iss ue ADD2DG<Helpkey>.[cr|lf][cr|lf]- - - - -[cr|lf]{{;5$?}} Red irect source for funcs $A-$Z|$0-$9 from .DLG to .U2 [CLD][cr| lf]{002}{<}SX00,{<}VA$FR{>}{>}[JM_]2.{<}PV00{>}[Q2_]{002}[cr| lf][cr|lf]- - - - -[cr|lf][cr|lf]Setup[cr|lf]-----[cr|lf]Assi gn $X to the desired key in the KBD file:[cr|lf]nn=$X[cr|lf][ cr|lf]Note: $X is a complete substitute for both func XC and{032} the Enter key ("[255+048+068]").[cr|lf][cr|lf]When assigning{032} $X to the Enter key, insert an initial func Q8:[cr|lf]28=Q8$X [cr|lf];;28=[255+048+068][cr|lf]or[cr|lf]104=Q8$X[cr|lf];;104 =[255+048+068][cr|lf][cr|lf](Func Q8 allows the modified Ente r key to work with the spell-checker and the Help/Menu system {046})[cr|lf][cr|lf]SAve and re-LOAD the KBD file after editing.[ cr|lf][cr|lf]Use[cr|lf]---[cr|lf]To launch a native command o r U2 framename (referred to here interchangeably as "commands "), type the command and arguments, if any, on the CMline, th en hit <$Xkey> to execute.[cr|lf][cr|lf]Examples:[cr|lf]LM 1. 5IN<$Xkey> issues the native Left Margin command[cr|lf]TABLE{032} VA<$Xkey> issues the U2 framename to display a list of XyWrit e VAriables[cr|lf][cr|lf]Rules[cr|lf]-----[cr|lf]- Native com mands take precedence over U2 framenames: If the command on t he CMline is both a valid native command and a valid U2 frame name, it is{032} eXeCuted as a native command, NOT as a framename. To force ex ecution as a framename, enclose the command (not the argument s) in double quotes:[cr|lf] "command"[ arg(s)]<$Xkey>[cr|lf] [cr|lf]Example:[cr|lf]You have a U2 routine called SAVE that{032} SAves the current file to three different locations. If you i ssue SAVE<$Xkey>, you get a normal, native SAve command. To i nvoke your enhanced SAVE routine, issue:[cr|lf]"SAVE" d:\path \myfile<$Xkey>[cr|lf][cr|lf]Exceptions:[cr|lf]1) When issued{032} as a U2 framename, HELP [framename] displays the U2 Help scre en for the specified framename. Frame $X treats HELP as a U2{032} framename, even though HELP is also a native command. This sa ves the trouble of typing U2 HELP framename<$Xkey> every time {046} (The native HELP command, which displays the XyWrite splash screen, is accessible with ?<$Xkey>.)[cr|lf]2) Commands cons isting of a single character (except "?") are issued as U2 fr amenames.[cr|lf][cr|lf]- If $X is assigned to the Enter key ( key # 28 or 104), normal Enter key behavior obtains: If curso r is on CMline, command is executed; if cursor is in the text area, a carriage-return is put at the cursor position.[cr|lf ][cr|lf]- If (and only if) {<}MDSO{>}{<}LBLink{<}SV50,Stack{> }[JM_]2.help[Q2_]{>}STACK.PM{<}MDNM{>} is in use, commands is sued with <$Xkey> are added to the Stack (command history). D o NOT use "$S" in the KBD-file assignment; $X calls Stack int ernally.[cr|lf][cr|lf]{<}FC{>}Renumber frame $X in PACK mode[ cr|lf]Default Save/Get Range=01-03; 620[cr|lf]OPTIONs(1): FRE EZE 620[cr|lf]{<}FL{>}[cr|lf]-{tab}-{tab}-{tab}-{tab}-{tab}-{ tab}-{tab}-{tab}-{tab}-[cr|lf][cr|lf] -nd XPLeNCODE -- Carl Distefano cld@xxxxxxxxxx