+SHVAR HST3SHVAR11 COMwSHVAR11 DOCBSHVAR11 ZZ0-;4 History of SHVAR.COM Author: Richard Conn Current version: 1.1 ---------------- Version: 1.0 Date: 3/5/84 Original release. ---------------- Version: 1.0 Date: 2/15/87 Modifications: 1) Looks in directory named "ROOT" for shell variable file, and at root of memory-based path if no such named directory exists. 2) Prints definitions as well as names of shell variables, one per line. Modified by: Dreas Nielsen 16713 SE 12th St. Bellevue, WA 98008 ----------------  Z3ENV *  1 9 Not Wheel - Aborting ɯ!~<_Ww:]/(?9 SHVAR - Define/Redefine/Delete a Shell Variable Syntax: SHVAR variable text <-- to Define/Redefine SHVAR variable <-- to Delete SHVAR <-- to List Variabless>*ͫ z"I:] (0zͶ(#9 *** File write error *** =*>*M~ *9 --- No shell variables defined --- 9 Shell variables: --Name---+---Definition----- [I}|~ CC\!@ 6[Io(g6~# 9 = 446C ~#( x 4͗ 4~==ݾ69 [more] 9  *M"AAn #!_  Shell Variable !6> , ~J(#~#J +_ (> = q ? !6 ( (added) (redefined)!6D!6 ( wasn't defined.!6x deleted.SHVAR, Version 1.1 G!c~]_#Pxx<>;:,.=-_ ~2~2NF i`^V#ͥx yYP 0++ ##8 ++|8 }8 !++ R0 KBͥi`R0ͥog^#V^#V wz+ w{iSH VARROOT:N("M Cx *M6O *MO(O Kx >*M!se͑ ) ~ P :N =S *M~([  #ɯ =:N =x*M>+~# >:N - ("R >RDM=:N = C7 FM /  (<*M>[MR%($D!M##[MY* x K !&Me͑ ) ~ M 2͝:ʋʹ—$—Ù$—ʹʇ>bʫ#> «  x2y25 G~A 2#bͻ bͻ#bR O ͇  2:G:O=` RRD#9V .OG=~͠ !څ=_.:,<>ȷ;ɯ~bʴ#ͻڸWyڸڸڸڸڸO‹y70 ?7q ä q ~#9 C w* /F##x_* .~* G* ,~* "~#fo* -~* ^#V#~ѷ* (~* )~#fo~*  ^#V | ~ $ʵ G#~#$ʦ Oæ " w , $ > $ $ / $ $ , $ ? ~#ʓ } ͤ j o o s D D D yD D yG>GO> ‰ D > >   >^ @ *.  O*.  Y X OGH5 WV HK WV r# xV ~#l  ` +~#l  p l O ! ʓ #‰ y  a{_* }ʷ $.ɻ +-*/[]<>=!  HOBQD AHLBCDEIR CHANGES MADE TO SHVAR.COM IN VERSION 1.1 1) Changed to look for shell variable file (default: SH.VAR) in the directory named "ROOT", and only if that directory does not exist, to look at the root of the memory-based path. 2) Changed to print the definition of each shell variable as well as its name. Each variable is printed on a new line, and if the number of lines exceeds the number of rows on the screen, the output is halted until any key is struck. Since the program now prints the definitions as well, it doesn't pack the list, deleting definitions, as before. Under these conditions (items of various sizes) I found SYSLIB's shell sort routine to malfunction. I have therefore included a recursive Quicksort routine in the code of this program. This Quicksort is called the same way that SYSLIB's shell sort is (i.e., it is passed a pointer to a "sort specification block"), but must use pointers to the elements rather than swapping the elements themselves. (This is the only reasonable way to sort elements of different sizes, and the best technique to use when elements are more than one or two bytes in size.) The lowest element in the array of pointers is used as the partitioning element. Thus, worst-case behavior is achieved for data that are already sorted (which can only coincidentally be the case for shell variables). The routine will then call itself recursively for every element in the array. It has been designed, however, so that the worst-case stack overhead is only two bytes per call (the return address) for data that are sorted in ascending order. When data are sorted in reverse order an additional four bytes per call is needed. The routine is self-contained and can be easily extracted for inclusion in your own library or directly into other programs. Dreas Nielsen 16713 SE 12th St. Bellevue, WA 98008 vSHVAR11.Z80# AC@o3&ЀH+JPX9t4Qh0n S) Eat2l@8Ei|R 2N,$NgHZ-g3L27X θ-H6M  Q} .i7Me0̵cw SQo2LƓ, :D(91G۠DyPD CI@enO" ćHak|1cP3"z0CPp8,^lpQ"Z "%B,R(ts='??A04Gh0~2=LbD!%p/ 7j )1&P(SIc5@LƢ$Y.5Qd494ERPMK4 :DOI>'t[OfYZQj4U<J:Jr&Uhi94"b̰PVL(YmgT`hxS:ud3*qMZ 5w9S1Yc53nK#v֎zCh'shݙ5 d{|`0pD^L:@Pir#[yi t1В_|hقcId(1GcT(vҠcgDtg&AX"CVp ! @|*eT#d@ߋ̩ 䂣S*RL,6BI 3ݟYEM@w0 PA@tm1<9 EgI6؁ :8&n"9G̻wl-ӪFr:@ b`r4=E22(,1 3V 6J?Eh 9ryPyНgҙHO!"qmt\):hl'EPrs&ql'"y'qu"b--lm?7Ur`,ztat3Hq|.= (&fPNE};SU}waAo" PcClfk}A! y{7|^So#GmE.n$ywt1a&6Tq+{Iw6<8Md1)!*v}If6j~U~20PwYe'ڈR((s7[p2+4"q~rj+R{|a&K|V/k9lR2&cOH'n$qT{g{Li]Zzp;mqztd&J$S#t5JXmoFB qXzkt|Hpa?0p$8ad3408Cv)&˄P nP4cc7[P90c@AzAHqHq2]m!sJrdP4}'[q+rLgFb(6:BWtJe$tt)^#K'1b!v t5H+0A+` &ja9)0X[LZh!Fa|jf"Q`eב&7{;R9H}AIyODF;uB}8ę7x$e6 8Jra(p‚s4!'vmb"bH+pzGP+2;i5EuDrEceUFr,`XD7rS A27?BT!Џ.q?RSaAFv ;d)t94C+LByC\bem3haˣș)<3ܜÍ$rpJ6x+81Y+ kN?db(7u6ndR1KJ's"CcA#az{U-W1iZ}%Dge( ;PI4B[,S`pMQtn³+;ToPXU3K :$:6aUc'fDlx!WWdB&9V[ ;TaPFO{;#<3GdVM-4#+6['9Gaă4AEG$ɇqSZX]uFrG~`p^?SAKJGm.Tc|zman+@"?d.Q>#8döfsAb3ò,Dת) ۖv^vL.0b-+ke@pMKlDlicreT]d&O(,FC+211#wXNUtp /A,#ISSt+l[䇵gvN Wƫ3vgĀkĪś\Rp D1܏5&͚)+9Q1G!\VEl PDLUt-0K[#il졠QgVrbppWBn7QkV~՚4+6`X00I -:.-칠rLC˫:$Ƽ :0ŢE0cja1YFDԟ;Pg"aAbhe0+RIƦ=:1 KrG9p6A&.JJRmN1p q5#rl׳#1'GQqQZ%B3@"S!u(VD;/8b,MQ $SH^=q#+"$A>;C$V#@2h4EƧT%|@ y `&tfbLKC3y\4&\/w(),FWO6Pw`s#ERenadU_;;>ؔp;>1@-@!E"cz'8jSsxR(+nbU?;۩x_G^U91IJKTG (3pO7M% nƨ8O88xl[qVE}n1c91A0BEY:r5ָI N\"`LRp=LDACAO|X`?=I3pĀmnDmO3-8~Ow_%&Iшae̫Q뱠mDjio% { rmJc|7y}[d][yeyoQŸ]@ bpjpl$ ;96L+Dh)plBK3ijy&U8M;tgiQVE^#w^˞DYu*T>)4!]衉}abqphqM |Xx  bwԤb/lߔ ѻvpET`U`I{>^[")Xaf}_mpHPE7_q \LY:y 8tꄐOH,y;8CMe[8rEifN[ϩh=ؐس_]۷O$ɥy`+0>.?\bw>8# O\Ew)Z] o7S{30 pA4ՋBA!q v/#0yG&H6vǡp;A8kZx}X,QGNOG4odKӛ^yd3Dԩ>lWIxDa'K R:`ZzJ$#cS$:B!qћYe2,y4)hɌ! +,{HjOԶ8T7#a52oSZ!V04+;ah8$8Δzgl5guR5)iCIQ&CԨʨ W"<9x"&ylqc|}+QRE̡mqR/&8 d.맯)|f6dCAWG\돧 ej4PbѬ0smdXQ}C4WHٵݳqHIyi]iAH4v<]Uh6j3x (%MG\ُRÝ3;#|̀;ߍA[] sWA&O8Q2/~qWReُ1r9AMĬӎc !AIPM 3 fpR;Ϟ:2s!$(G06DM'\C2nȩYhmL5H*F+b#5H6#]%UHH>*tUhx/X9GϫSK(7f᳙pq35?39͏TPL6XH\S939F3F@U=6LAu>>|!#QBQ3뺭Q6Q#BmJkPv8p+4yvG>']qAC~W%bZ\Ca+#![