7ARUNZ09GREL~ARUNZ09GSLRARUNZ09GCIM*ARUNZ09GCOMIARUNZ09GFORhDgARUNZ09GUPDk8I[ TS d4 5A96CMPNAMTS`d41UM"GETCHAU`dtUD4BPU@ C2)8?R" P)@LA'ʥ'%L$JbM"KU@T$;Ny cuDp4\Gf Q eٷCIevmWH2 eA@uC@T8@ȋPȊ3n36o#63jh36:ٵPNA@]^A0ùUY NL0f@VU;P(@;X`ʥ c03ox1!la0F#?˄\_Q`1m"P "&#X"u*Z"#S!uLZ=$ڐmw)U066?-#X î ,ʸ@dvmn A ͪw`jm! 4XW @?a3H&W8$|; U+PP\ L0piB : lx$djy & qubH&`1$djy @ ;: ;ͪL˄@ ;ͪB(xPͯ Lmj@pfFD|[@ k e6mf\ 6C63n\ 63.!s@wp p@ ͹CB|g ;ͪa6h<#Y P,h`@`@$̐0(0H`/ဠ A6K6k2 , ~[B0a>H$U@H&# =&m?-+4#n(4Y @ff !VH|DXn(nSP.{%*Y: q@lhOؠðL (B0P=#`0x Du]g1~ kq^=dja9&8Z-g#I 6MQr6N)o9A@JeX(K@ã @   P9fՠ:P5?CQ?7B686@E d?,[zf@VC@YFU_P0@P&f02)e7 A m6MA@o1Ng3y@E9 h(xsE1sme) `n;fnNG#y &hëlP~fFpDp0))E.| ͽlm=wuE⁨-h(0V#Ь2eI1fHT0Rp88#8kF3@U$dj+!.` @aҐhd?ic,dP6^ q@I/Dg帠:` ʃ2YTey7 'ЀR*BqEE*JE24 )M1i03p: i@f9͢t&(L$Jb4 u| P?#`$uCUTfPR a9@mqf0ao: uPuCFUTfb 0A)d i6Dy@F7M@h(ê2u7&8l4Nb\APD "ͮ! d?,bFv=Gmx mj%"8 +NG3I  $ph(ҐmY_@ dHE`inʻ@*?L+  b5f C3$xG`mu?-VAnaI)ȱHi )ߐ</i )PLHi )<iꪑp Ɋi@lHB $@\j誈i1Ԁ\F誈i1 誈q 誈QLs誊H:誋H\<ꨑd&)ȑ`j jj0j H`jijj fiH)ARUNZ09GJCMPNAMECMPNAME1CMPNAME2/CMPNAME3ECMPNAME4HFLUSH GETCHARTGETCHAR1jGETCHARDOTHÁUZ3ENVREGPATHROOTSCANCURDU/2 ALIAS CMDU* Z3INITsH1H́: 0GGETREG!Ǵ!Ó!$Ẃ2 >2GETCST2(: 2CODEND" "/́́ĺ́́M͏́Tʁ; $(^(́T́ʁ;́Tʁ;!CAPSG0ʁ)8 0 ́~!###~#́ ȸ ~#fo$^*-DU&FNTZ#:?.L"'IMwRŚTʁ͏AځkGҁkÁq́}ʁG͏ !́Tʁ w#6!́}MA2HC ~#~ɯ2>;2CRLF́T(( COUT!;!6}GETZEX :PUTZEX BLINE ͏ >2:OSKSP ~ȹ# >$>^́U y0(Á:\ :<@:ÁU y0( Á:iÁ:Á́Ú!]Á́U!eÁ́TÓýGETUD \ZFNAME!F#NLOGUD>088 د́́́́>.Á́́́Á́́́>o|gÁ́T 18دGETFN26́ ~#>2 * ͏ ~!.#͏~(GETCL1 G|(x(́g PRINTOvfl͏ *H"( G~(#*^#V: &(6~;( (>;( ~#(6*s#r~# =͏)warning -- script line format error ɯ2* ͏ :~#W(0 (, ((́H(9͏G(5=(?(ܺ(́T ( !8=(́H =( :(=́T :Gʁ_:(&͏(Extended Command Processor Error x(#: (͏Shell Invocation Error xPUTCSTÁ_~͏#08 8 80 ))))_z#{́́(Á:(5:(GETPATH(*~(&++##~ +~2(+~=2'1INITFCB:$PFINDʁ$:'G:(O!p#q͏)FXI$OPENʁ$́T.2)FX$GET . 2* ͏ ~(/ #~(/ #~( :ā́͏X Syntax: ARUNZ NAME [PARAMETERS] Runs alias script NAME from text file ALIAS.CMD Á_(66:ʁT͏Alias "́q͏" Not Found ÁT:ʁT͏ALIAS.CMD File Not Found ÁT:͏Running Alias "́q͏" * ͏ ~ ܁͏#>^͏@͏ ARUNZ Version 0.9G )͏( ( =* ʁ ʁ: w# PUTUDRETUD!p#q2h҉2g(: 2Q"k"/ÆlMQT;$(^(Tƒ;T;ŀ!FG0)8 0 ~!###~#ƒȸ ~#fo$^*-DU&FNTZ#:?.L"'IMwRSTƒFAkGkq}ƒG  !Tƒw#6!ͻ}ƒͪ~#~ɯ2h>;2ߍT(( !;!6}݉:hD>2h:O~ȹ#>$>^U y0(ƒ:\ :a<@:aAU y0( ƒ:i:bUƒ!]܂U!eTOyF\!cF#Nc>088 دƒ͂܂>.ƒ͂܂ƒ͂>o|gT18دK~#>2j*k~!.#Q~(*G|(x(g ́OvflF*"e( G~(#*e^#V:j(6~;( (>;( ~#(6*es#r~# =́warning -- script line format error ɯ2i*k:~#W(0 (, ((H(9FG(5=(?(ܺ(T( !8=(H=( :i(=T :gG_:(&́Extended Command Processor Error x(#: (́Shell Invocation Error x_~F08 8 80 ))))_z#{Ͱ(:(5:(͓(*~(&++##~ +~2(+~=2'1:$$:'G:(O!cp#qc)w$T.2i)͸ . 2i*k~(/ #~(/ #~( :ĕ͕́ Syntax: ARUNZ NAME [PARAMETERS] Runs alias script NAME from text file ALIAS.CMD _(66:T́Alias "q́" Not Found T:T́ALIAS.CMD File Not Found T:́Running Alias "q́" *k~ ܋#>^@́ ARUNZ Version 0.9G )͸( ( =*kچ Ɇ:چw# -z!ap#q?;ò#?̾˜e#ö!4͇=V#WG~A@2#~ ͻ~ ͻ#~ tO ͇2=*͂V#VH#=Y 2=22~!څ=_.:,<>ȷ;ɯ~eʴ#ͻڸWyڸڸڸڸڸO‹y70 ň?7ɯ҈҈ > 刯zy~#2ʉ22 ʉ22͓:4ʉ<_~dͱ̈́##4x2_ʉy2_ ʉ+=e:_:_ :G:O}2͓:ʫͱ##xŽyŽ=~$»:<=G#~+$ȉ:Oe###~e~>ewe0xo|g~e###w*^#V*.~*R*,~*"~#fo*-~*^#V#~ѷ* ^#V#~ѷ"ͫͺͺ Ɗ7Ȋ0w#:䌷*:G*׊>2*":㌐g."|"*:㌔G*xW*3*"猯2:g."͘2*šˊŌ͘W*šÑ##^#V+zs#r#^#V2r+s:͘ˊš*~2#"*+"Ō:2##^#V+z5s#r#^#V:r+s:͘%š*:w#"*+"͘*4šÑ͘*}ʈ+"*6#"o%*4šÑ"~2#~2#^#V"#^#V"#^#V"#"*#:w*#s#r*#s#rw Ͱ͑>͑͑͑A2"~ *~#~#o|g6:x~wFw#j+~#͇~#ۍ ō ʲ ʷʷʻÌÌ Ìyʌ ÌyG>GO> эÌ> >    >^@O*. (2a 2b\:a_:b_ Y X OG~ʨFw#ÛH͹WڎHώWڎr# xڎ}o|g7|g}o7~#%+~#%O !=9#/y  a{_*_}]$.ɫUZ3ENVREGPATHROOTSCANCURDUALIAS CMD* ͤ s1: 0G !G!O!$W2j>2h 2g(: 2Q"k"/lMQT;$(^(T;T;!FG0)8 0 ~!###~#ȸ ~#fo$^*-DU&FNTZ#:?.L"'IMwRSTFAkGkq}G  !Tw#6!ͻ}ͪ ~#~ɯ2h>;2T(( !;!6} :h D >2h:O~ȹ#>$>^U y0(:\ :a<@:aAU y0( :i:bU!]U!eTOyF\!cF#Nc>088 د>.>o|gT18دK ~#>2j*k~!.#Q~(* G|(x(g ́OvflF*"e( G~(#*e^#V:j(6~;( (>;( ~#(6*es#r~# =́warning -- script line format error ɯ2i*k:~#W(0 (, ((H(9FG(5=(?(ܺ(T( !8=(H=( :i(=T :gG_:(&́Extended Command Processor Error x(#: (́Shell Invocation Error x _~F08 8 80 ))))_z#{Ͱ(:(5:(͓ (*~(&++##~ +~2(+~=2'1 :$ $:'G:(O!cp#qc)w $T.2i)͸ . 2i*k~(/ #~(/ #~( :ĕ͕́ Syntax: ARUNZ NAME [PARAMETERS] Runs alias script NAME from text file ALIAS.CMD _(66:T́Alias "q́" Not Found T:T́ALIAS.CMD File Not Found T:́Running Alias "q́" *k~ ܋#>^@́ ARUNZ Version 0.9G )͸ ( ( =*k :w# -z!ap#q?;ò#?̾˜e #ö! 4= V #W G~A@ 2 #~ ͻ ~ ͻ  #~  t O ͇  2 =* ͂ V #V H #= Y  2 =2 2 ~!څ =_.:,<>ȷ;ɯ~e ʴ #ͻ ڸ Wyڸ ڸ ڸ ڸ ڸ O‹ y70 ?7ɯ  > zy ~# 2  2 2   2 2 ͓ : 4  <_ ~d ͱ ̈́ ##4 x2 _ y2 _ + =e : _: _ : G: O}2 ͓ : ʫ ͱ ##xŽ yŽ =~$» : <=G#~+$ : Oe ###~e ~> e we 0xo|g~e ###w* ^#V* .~* R* ,~* "~#fo* -~* ^#V#~ѷ*  ^#V#~ѷ" ͫͺ ͺ  7 0w#: * : G*   >2 * " : g." |" * : G* xW * 3 * " 2 : g." ͘ 2 * š ͘ W * š Ñ ##^#V+z s#r#^#V2 r+s: ͘ š * ~2 #" * +" : 2 ##^#V+z5 s#r#^#V: r+s: ͘ % š * : w#" * +" ͘ * 4š Ñ ͘ * }ʈ +" * 6#" o % * 4š Ñ " ~2 #~2 #^#V" #^#V" #^#V" #" * #: w* #s#r* #s#rw Ͱ͑>͑͑͑A2"~ *~#~#o|g6:x~wFw#j+~#͇~#   ʲ ʷʷʻÌÌ Ìyʌ ÌyG>GO> Ì> >    >^@O*. (2a 2b\:a_:b_ Y X OG~ʨFw#ÛH͹WHWr# x}o|g7|g}o7~#%+~#%O !=9#/y  a{_*_}]$.ɫVersion 0.9G corrects two bugs in 0.9F. Alias names can once again be entered in lower case. Prompted input terminated by the end of the script line instead of a matching quote will now work correctly instead of reading the next script line. Jay Sage, 10/19/87  Notes on ARUNZ Versions 0.9F and 0.9G Jay Sage October 19, 1987 Version 0.9G ------------ This version corrects two bugs reported to me. One was definitely introduced with version 0.9F; the other would appear (from the problem with the code) to go back to the beginning of ARUNZ. In version 0.9F I dropped the automatic conversion of all characters read from ALIAS.CMD to upper case. This allowed prompt messages to appear in mixed case, but, since I forgot to convert the characters in the alias names to upper case, they had to be entered that way in the file in order to be recognized. That has been fixed, and the alias names can now be entered in whatever way the user prefers. According to the ARUNZ documentation, prompted input using the parameters $" and $' were supposed to automatically terminate at the end of the alias script if a matching double or singe quote was not encountered sooner. The prompt was, indeed, being terminated in this case, but after the user's response was incorporated into the command line, ARUNZ would continue reading the next line of script, forgetting that it had already encountered the end of line. This has been fixed. Version 0.9F ------------ The following new features have been implemented in version 'F'. ZEX input redirection is now automatically turned off when the $" and $' parameters prompt for input. If you do want to allow ZEX to provide answers to such a prompt, then place the parameter $I somewhere before that prompt. After each input prompt, the default is set back to no ZEX redirection. While testing out the various forms of input processing, I noticed that the prompts put out by ARUNZ were always in upper case. Now that ECHO and "IF INPUT" can handle lower case output and prompting, I thought it was high time ARUNZ was brought into line. It has been. There are actually 32 data registers in the ZCPR3 message buffer. The first ten (0..9) have generally been considered to be general purpose registers, to be used freely by programs. The next 6 registers were marked as reserved, and the last 16 were referred to by Richard Conn as 'user definable'. However, these registers have been appropriated by various programs such as TermIII and Z-Msg. I have extended the code in ARUNZ to allow access to the entire first row of registers, including the reserved ones. The $R parameter can be followed by '0'..'9' or 'A'..'F'. The register used to configure ARUNZ (see below) can actually be patched in the range 00..1FH. The user, of course, assumes all risk with the use of any of these registers. The file ARUNZ09F.CIM has been linked to run at 8000H while ARUNZ09F.COM has been linked to run at the standard 100H address. Assembled versions of ARUNZ09F have been provided in SLR-format (ARUNZ09F.SLR) and Microsoft format (ARUNZ09F.REL) for anyone who wants to link the code to a different address. Below are notes from the version 0.9E release. The source code excerpt has been updated to reflect the change in the values of REGF that will be recognized as a register reference. NOTES FROM VERSION 0.9E Two new features have been added at the urging of Steve Dirickson. There is now a flag that determines whether or not the current directory will be searched as the first path element when full path searching is called for. In addition, I added the capability to make the entire configuration (except for the specification of the fixed DU to be used when path searching is disabled) programmable by a user register. For example, if the byte after the marker string 'REG' is patched to 7, then the contents of user register 7 will be used to determine the configuration. Bit 0 gives the path flag, bit 1 gives the rootonly flag, and bit 2 gives the scancur flag. Thus the command REG S7 5 will turn on full path searching that includes the current directory. The command REG S7 7 will turn on searching of the root directory. Setting register 7 to any even number will set ARUNZ to look in the explicitly designated DU value. The distribution library contains two versions. Both have type-3 environments, with ARUNZ09E.COM set to run at 100H and ARUNZ09E.CIM set to run at 8000H. Rename the latter to a COM file to use it. ;============================================================================= ; U S E R M A C R O S ; This macro places configuration flags in the code. CONFIG MACRO ; These two flags, which appear just before the marker string 'REG' determine ; which messages will be displayed by ARUNZ. The QUIETECP flag applies when ; ARUNZ has been invoked as an extended command processor. If invoked by the ; user, QUIETF applies. Contrary to what the symbol name would imply, setting ; bits in the flag turns on the display of that message. QUIETECP: DEFB 00000100B ; Quiet flag for ECP invocation QUIETF: DEFB 00001110B ; Flag to control display of messages ; |||||||| ;set bit to display msg ; |||||||*---- signon message ; ||||||*----- running alias "x" message ; |||||*------ alias.cmd file not found ; ||||*------- alias "x" not found ; |||*-------- ECP error ; ||*--------- shell invocation error ; **---------- bits not assigned ; If the value of REGF is in the range 0..1F, then that user register will be ; used to set the values for the three path-related flags to follow. Bit 0 ; is used to select path searching of some kind. If it is not set, then the ; fixed DU is used. Bit 1 determines whether only the root will be searched. ; If it is not set, then the entire path will be searched. Bit 2 determines ; whether full path searches will include the current directory first. DEFB 'REG' REGF: DEFB 0FFH ; PATHF determines whether path searching will be used to locate ALIAS.CMD. ; If the flag is 0, then the fixed DU area below will be used. If it is 0FFH, ; then the other path-related flags will be used to determine how the search ; is performed. DEFB 'PATH' PATHF: DEFB YES ; Path search flag (NO = use DU given below) ; ROOTF determines whether only the root of the path will be searched. If it ; is 0FFH, then only the root will be used; if it is 0, then the entire path ; will be searched. DEFB 'ROOT' ROOTF: DEFB NO ; NO = use entire path / YES = root only ; If full path searching is selected, then SCANCUR determines whether or not ; to include the current directory first. DEFB 'SCANCUR' SCANCUR: DEFB YES ; YES = search current DU first ; If path searching is disabled, then the explicit directory specified here ; will be searched for ALIAS.CMD. DEFB 'DU' CMDDRV: DEFB 0 ; Drive to use if not path (drive A = 0) CMDUSR: DEFB 0 ; User to use if not path ENDM ;=============================================================================