home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.barnyard.co.uk
/
2015.02.ftp.barnyard.co.uk.tar
/
ftp.barnyard.co.uk
/
cpm
/
walnut-creek-CDROM
/
CPM
/
ZCPR33
/
S-Z
/
ZF10F.ART
< prev
next >
Wrap
Text File
|
2000-06-30
|
12KB
|
234 lines
TH┼ GROU╨ MACR╧ FACILIT┘ I╬ ZFILE╥ v1.0f
b∙ Ricδ Charnes¼ Junσ 24¼ 198╖¼ Saε Francisco
Ja∙ Sagσ ha≤ releaseΣ ß versioε oµ hi≤ ZFILE╥ whicΦ ha≤ thσ ì
extraordinar∙ abilit∙ t∩ ruε ß macr∩ commanΣ linσ upoε AL╠ taggeΣ ì
files« Thi≤ i≤ thσ firs⌠ timσ thi≤ ha≤ beeε done« ZFILE╥ i≤ ì
baseΣ upoε VFILE╥ anΣ run≤ bes⌠ oε ZCPR3│ o≥ BGii« ╔ _believe▀ -ì
¡ bu⌠ aφ no⌠ surσ ¡¡ tha⌠ excep⌠ fo≥ an∙ ZE╪ file≤ tha⌠ ma∙ bσ iε ì
one'≤ commanΣ scrip⌠ filσ i⌠ wil∞ ruε fairl∙ wel∞ oε ZCPR30.
Thesσ arσ jus⌠ somσ informa∞ comment≤ thσ firs⌠ par⌠ oµ ì
whicΦ ╔ originall∙ intendeΣ fo≥ Ja∙ personally.
¬ ¬ *
It'≤ quitσ amazing« Really¼ reall∙ nicσ t∩ have« Thi≤ i≤ onσ ì
beautifu∞ product« I⌠ i≤ ß qualitativσ advancσ ove≥ an∙ previou≤ ì
version≤ oµ ZFILE╥ anΣ VFILER.
Nicσ aesthetiπ effect║ Thσ tag≤ disappear¼ thσ screeε ì
clears¼ ß fe≈ second≤ oµ anticipatioε anΣ myster∙ whilσ thσ *.ZE╪ ì
filσ i≤ created¼ theε ZE╪ loads...
Yes, it would be nice to have ZFILER generate a group list ì
in a single command. One of the most important uses to which I'd ì
like to put the group macro facility is similar to what you ì
describe in the doc file: inserting with NULU a number of tagged ì
files into a single, already-existing library.
The '$!'=GO feature is wonderful. Very nice.
*** This further reminds me of how I wish that we could ì
eventually create a ZEX (control directive, perhaps) that would ì
suppress display of the system prompt. Really clutters up the ì
displa∙ fo≥ me« Also¼ i⌠ woulΣ g∩ ß lonτ wa∙ herσ toward≤ givinτ ì
thσ use≥ ß feelinτ oµ experiencinτ somethinτ ne≈ anΣ different« ì
Thσ use≥ wouldn'⌠ eveε havσ t∩ kno≈ ZE╪ i≤ runninτ a⌠ all.
Yes, if ZFILER could read from ZFILER.CMD various ì
information such as initial text to include before the macro ì
commands, one thing I'd like would be to put in a ^. directive to ì
turn off display of each individual ZEX command, thereby making ì
"cleaner" displays. But this of course necessitates putting a ì
"|" after each line in ZEX. Wonder if this can be done. Also, ì
we then have our age-old incompatibility between the ^. and ^& ì
ZEX control directives.
[enΣ oµ comment≤ t∩ Jay¼ no≈ fo≥ genera∞ note≤ oε thσ program]
╔ havσ madσ ß changσ t∩ m∙ ZFILER/ZE╪ systeφ tha⌠ feel≤ t∩ ì
mσ ver∙ significan⌠ anΣ greatl∙ add≤ t∩ it≤ aesthetiπ effect« M∙ ì
stronτ sensσ upoε firs⌠ runninτ thσ grou≡ macr∩ facilit∙ wa≤ tha⌠ ì
thi≤ featurσ shoulΣ "feeló t∩ thσ use≥ ver∙ special¼ a≤ iµ s/hσ ìèwerσ usinτ ß ne≈ prograφ tha⌠ haΣ neve≥ beforσ existed¼ tha⌠ ì
relies oε al∞ ne≈ tools« Afte≥ firs⌠ thσ tag≤ oε thσ desireΣ ì
file≤ disappea≥ anΣ theε thσ screeε i≤ cleared¼ theε wheε thσ ì
use≥ see≤ thσ "ZE╪ 3.1aó loadinτ messagσ displayeΣ a⌠ thσ to≡ oµ ì
thσ screen¼ iε m∙ minΣ therσ i≤ somσ letdowε iε thσ leve∞ oµ ì
mystery¼ oµ suspensσ anΣ excitement« ╔ don'⌠ wan⌠ t∩ seσ thσ ì
samσ olΣ ZEX╗ thi≤ i≤ aε extraordinar∙ NE╫ featurσ anΣ ╔ wan⌠ i⌠ ì
t∩ bσ announceΣ a≤ such« ╔ thinδ thσ use≥ shoulΣ havσ thσ ì
feelinτ tha⌠ thi≤ i≤ aε al∞-ne≈ selµ-containeΣ program« Here'≤ ì
wha⌠ ╔ did:
╔ madσ myselµ ß seconΣ cop∙ oµ ZE╪ t∩ usσ onl∙ fo≥ thi≤ ì
purposσ anΣ calleΣ i⌠ ZBX.COM« ╔ theε founΣ wherσ thσ sigε-oε ì
displa∙ messagσ i≤ locateΣ iε ZBX.COM║ it'≤ thσ 1░ byte≤ betweeε ì
0F22Φ anΣ 0F32h« ╔ theε patcheΣ i⌠ (witΦ ZPATCH¼ EDFILE¼ o≥ ì
whateve≥ i≤ you≥ favoritσ patchinτ tool⌐ t∩ reaΣ somethinτ morσ ì
appropriatσ t∩ aε extraordinar∙ prograφ likσ ZF10F.COM« ╔ havσ ì
i⌠ turε oε m∙ terminal'≤ blinδ vide∩ attribute¼ theε thσ tex⌠
¬ StanΣ b∙ *
Yo⌡ havσ teε byte≤ exactly╗ thi≤ shoulΣ fit« Simpl∙ patcΦ ove≥ ì
thσ olΣ "ZEX31.aó tex⌠ ¡¡ yo⌡ shoulΣ seσ i⌠ locateΣ betweeε "$"'≤ ì
tha⌠ ac⌠ a≤ strinτ delimiters.
Theε yo⌡ havσ anothe≥ job« Wσ havσ t∩ convincσ ZFILE╥ t∩ ì
ruε thσ commanΣ linσ "ZB╪ ZFILERó rathe≥ thaε "ZE╪ ZFILER« ì
Otherwisσ i⌠ won'⌠ eveε finΣ ou≥ ne≈ program« (╔ prefe≥ t∩ leavσ ì
onσ cop∙ oµ ZEX.CO═ a≤ i≤ anΣ usσ i⌠ fo≥ mos⌠ applications.⌐ G∩ ì
int∩ ZFILER.CO═ thi≤ timσ t∩ locatioε 1E25Φ (recorΣ #59⌐ anΣ ì
you'l∞ finΣ thσ strinτ "ze° zfileró whicΦ i≤ wha⌠ you'rσ lookinτ ì
for« Simpl∙ changσ "zexó t∩ "zbxó o≥ whateve≥ you'vσ nameΣ you≥ ì
ne≈ prograφ anΣ you'rσ iε business« Froφ theε oε ZFILE╥ wil∞ ì
looδ fo≥ ZB╪.CO═ rathe≥ thaε ZEX.COM.
Tr∙ ou⌠ thσ grou≡ macr∩ facility« Firs⌠ you≥ tag≤ wil∞ ì
clear¼ theε you≥ screeε wil∞ blank« Afte≥ abou⌠ ß seconΣ o≥ tw∩ ì
you≥ ne≈ messagσ wil∞ comσ on¼ lookinτ clean¼ brigh⌠ anΣ fresh« ì
Thσ use≥ (you!?⌐ doesn'⌠ kno≈ thi≤ featurσ ha≤ anythinτ t∩ d∩ ì
witΦ ZE╪ a⌠ all« ┴ rea∞ nicσ toucΦ oµ myster∙ anΣ newness«
¬ ¬ *
Thσ seconΣ bi⌠ oµ enjoymen⌠ ╔ haΣ witΦ ZF10╞ wa≤ iε usinτ ì
thσ residen⌠ G╧ witΦ ß commanΣ linσ usinτ NUL╒ simila≥ t∩ tha⌠ ì
useΣ b∙ Ja∙ a≤ aε examplσ iε ZF10F.DOC« I'φ jus⌠ startinτ t∩ ì
finΣ morσ anΣ morσ use≤ fo≥ GO« ╔ kno≈ Ja∙ anΣ other≤ havσ beeε ì
ravinτ abou⌠ i⌠ fo≥ quitσ ß whilσ bu⌠ unti∞ ╔ stoppeΣ usinτ ì
HSH.CO═ ╔ couldn'⌠ understanΣ wha⌠ al∞ thσ hubbuΓ wa≤ about« (G╧ ì
canno⌠ bσ useΣ whilσ HS╚ i≤ loaded.⌐ Usinτ i⌠ witΦ ZFILER'≤ ì
grou≡ macr∩ featurσ i≤ thσ idea∞ wa∙ t∩ seσ it≤ powe≥ iε action« ì
It'≤ extremel∙ impressivσ herσ anΣ i≤ quitσ awesomσ t∩ watch.
I'φ no⌠ surσ wh∙ Ja∙ didn'⌠ indicatσ iε hi≤ samplσ NUL╒ ì
commanΣ linσ iε thσ documentatioε tha⌠ i⌠ coulΣ bσ useΣ witΦ GO« ìèT∩ allo≈ fo≥ this¼ simpl∙ prefacσ thσ commanΣ linσ witΦ thσ ì
symbo∞ "$!ó immediatel∙ prio≥ t∩ anΣ touchinτ thσ firs⌠ strinτ ì
'NULU'« M∙ particula≥ commanΣ linσ is:
$!nul⌡ -∩ $"Namσ oµ librar∙ ([DIR:]LIBNAME): ó -ß $µ -x;erß $f
A≤ explaineΣ iε thσ documentation¼ thσ "$!ó indicate≤ t∩ ZFILE╥ ì
wheε i⌠ expand≤ thσ commanΣ linσ tha⌠ al∞ bu⌠ thσ firs⌠ ì
invocatioε shoulΣ substitutσ thσ worΣ 'GOº fo≥ thσ worΣ 'NULUº ì
wheε i⌠ i≤ expanded« S∩ thσ commanΣ linσ buil⌠ fo≥ thσ firs⌠ ì
taggeΣ filσ wil∞ ruε witΦ NUL╒ anΣ al∞ successivσ commanΣ line≤ ì
wil∞ substitutσ thσ worΣ 'GO'« Fo≥ thosσ who¼ likσ myselµ unti∞ ì
now¼ havσ alway≤ consigneΣ thσ 'GOº commanΣ t∩ thσ categor∙ ofì
"somethinτ tha⌠ othe≥ peoplσ usσ bu⌠ wha⌠ caε _I▀ d∩ witΦ it?"¼ ì
herσ i≤ you≥ chance« It≤ speeΣ i≤ quitσ impressive.
╔ did¼ however¼ ruε int∩ somσ problem≤ initially« Thσ cop∙ ì
oµ NUL╒ tha⌠ ╔ haΣ beeε usinτ refuseΣ t∩ loaΣ witΦ GO« I⌠ ì
return≤ witΦ thσ infamou≤ 'NUL╒ CR├ erroró message¼ indicatinτ ì
tha⌠ thσ cop∙ i⌠ see≤ oµ itselµ a≤ loadeΣ i≤ no⌠ wha⌠ i⌠ ì
know≤ itselµ as« ╔ wa≤ quitσ disappointed¼ a≤ thi≤ particula≥ ì
usσ oµ grou≡ macro≤ ¡¡ insertinτ ß numbe≥ oµ disparatσ file≤ int∩ ì
ß singlσ alread∙ existinτ librar∙ ¡¡ wa≤ onσ oµ thσ preeminen⌠ ì
use≤ t∩ whicΦ ╔ haΣ beeε wantinτ t∩ pu⌠ it« ╔ haΣ alread∙ ì
deviseΣ severa∞ other¼ les≤ elegant¼ way≤ t∩ d∩ thi≤ frequentl∙-ì
performeΣ tasδ anΣ wa≤ reall∙ lookinτ forwarΣ t∩ this.
╔ didn'⌠ reall∙ understanΣ wh∙ NULU'≤ erro≥-checkinτ woulΣ ì
finΣ somethinτ differen⌠ wheε rσ-loadeΣ witΦ G╧ compareΣ t∩ thσ ì
firs⌠ timσ i⌠ ran« Bu⌠ thσ olde≥ ╔ ge⌠ thσ morσ ╔ realizσ tha⌠ ì
iε thi≤ worlΣ sometime≤ yo⌡ havσ t∩ ac⌠ oε thing≤ yo⌡ don'⌠ ì
understand« Now¼ afte≥ havinτ experimenteΣ ß bi⌠ anΣ seeε somσ ì
puzzlinτ thing≤ ╔ believσ ╔ understanΣ wha⌠ wa≤ goinτ on« Bu⌠ ì
I'l∞ explaiε tha⌠ later.
╔ certainl∙ wasn'⌠ prepareΣ t∩ givσ up« Havinτ seeε G╧ iε ì
operatioε iε ß grou≡ macr∩ commanΣ linσ ╔ createΣ usinτ VTYP┼ ì
(man¼ iµ yo⌡ wan⌠ t∩ seσ µ-ß-≤-t¼ tr∙ this⌐ ╔ remembereΣ C.F« ì
Falcone≥ camσ ou⌠ witΦ ß patcΦ t∩ alte≥ thσ wa∙ NUL╒ doe≤ it≤ ì
interna∞ erro≥ checking« ╔ modifieΣ NUL╒ witΦ hi≤ patch¼ thereb∙ ì
creatinτ NULU152.COM¼ anΣ trieΣ thi≤ witΦ m∙ commanΣ line« Nope« ì
Stil∞ n∩ good« Apparentl∙ an∙ interna∞ erro≥ checkinτ a⌠ al∞ ì
prohibit≤ G╧ froφ beinτ useΣ witΦ NULU« (Actually¼ a≤ ╔ late≥ ì
founΣ ou⌠ thi≤ isn'⌠ entirel∙ true« Bu⌠ a⌠ thσ timσ ╔ though⌠ ì
so.
Iε m∙ searcΦ oε thσ variou≤ BBS's¼ however¼ ╔ camσ acros≤ ß ì
mucΦ morσ simplσ patcΦ t∩ NUL╒ thaε Mr« Falconer's¼ whosσ ì
functioε i≤ t∩ rende≥ interna∞ erro≥ checkinτ completel∙ nul∞ anΣ ì
void« I⌠ i≤ iε ß filσ calleΣ NULU.PA╘ b∙ onσ Joε Saxton« Al∞ ì
onσ neeΣ t∩ i≤ changσ thσ ver∙ firs⌠ instruction¼ "J╨ 0146"¼ t∩ ì
"J╨ 01A2ó anΣ i⌠ wil∞ bypas≤ thσ erro≥ checkinτ completely« ì
Simpl∙ changσ thσ bytσ a⌠ 0101Φ froφ 4╢ t∩ A2« Oµ course¼ thi≤ ì
defeat≤ thσ purpose¼ etc« etc« etc« bu⌠ fo≥ mσ ╔ prefe≥ i⌠ thi≤ ì
way« ╔ don'⌠ reall∙ minΣ thσ loadinτ timσ oµ thσ origina∞ ìèprograφ bu⌠ iµ thσ ne≈ wa∙ work≤ witΦ G╧ tha⌠ doe≤ i⌠ fo≥ me« I⌠ ì
works.
No≈ ╔ thinδ I'φ iε ß positioε t∩ understanΣ wh∙ G╧ didn'⌠ ì
worδ fo≥ mσ oε thσ unpatcheΣ versioε oµ NULU« A⌠ thσ enΣ oµ thσ ì
NUL╒ documentatioε therσ i≤ ß sectioε detailinτ ß numbe≥ oµ ì
area≤ wherσ ß use≥ migh⌠ patcΦ thσ program¼ sucΦ a≤ t∩ instal∞ ì
vide∩ attribute≤ anΣ especiall∙ t∩ inser⌠ ß commanΣ linσ tha⌠ ì
NUL╒ wil∞ ruε wheε firs⌠ invoked« ╔ kno≈ ╔ madσ somσ oµ thesσ ì
patche≤ year≤ ag∩ t∩ m∙ cop∙ oµ NULU« Apparentl∙ wheε NUL╒ i≤ ì
loadeΣ _normally▀ it'≤ smar⌠ enougΦ t∩ tel∞ thσ CR├ erro≥ ì
checkinτ i⌠ _normally▀ perform≤ oε itselµ t∩ NO╘ pa∙ attentioε t∩ ì
thesσ changes¼ t∩ no⌠ seσ theφ a≤ qualitativσ anΣ possibl∙ fata∞ ì
revision≤ t∩ thσ program« Wheε loadeΣ witΦ GO¼ however¼ fo≥ somσ ì
reasoε thi≤ "conditiona∞ checkingó featurσ seem≤ t∩ bσ bypasseΣ ì
anΣ wσ ge⌠ thσ "fulló checking« Thereforσ i⌠ see≤ thesσ ì
innocuou≤ change≤ a≤ dangerou≤ anΣ wσ arσ giveε thσ erro≥ ì
message« ╔ believσ ß completel∙ virgiε cop∙ oµ NUL╒ wil∞ ruε ì
finσ unde≥ GO« Iµ yo⌡ havσ patcheΣ you≥ cop∙ a⌠ all¼ however¼ ì
simpl∙ ruε Joε Saxton'≤ patcΦ oε i⌠ anΣ i⌠ wil∞ worδ fine.
Note¼ b∙ thσ way¼ tha⌠ ╔ havσ aε 'ER┴ $Fº commanΣ a⌠ thσ enΣ ì
oµ thσ NUL╒ commanΣ line« ╔ usσ thi≤ macr∩ t∩ adΣ file≤ t∩ ß ì
librar∙ anΣ theε deletσ theφ a≤ disδ file≤ oncσ they'rσ safel∙ ì
ensconceΣ withiε thσ library« Wheε ╔ firs⌠ wa≤ envisioninτ ì
runninτ thi≤ witΦ G╧ ╔ wa≤ thinking¼ "Nah¼ i⌠ won'⌠ work║ 'GOº ì
wil∞ jus⌠ reloaΣ thσ 'ER┴ $Fº commanΣ sincσ tha⌠ i≤ thσ las⌠ onσ ì
ruε beforσ G╧ i≤ invoked.ó Bu⌠ theε ╔ realized║ nopσ ¡¡ G╧ onl∙ ì
rσ-run≤ thσ las⌠ <╝ *.CO═ filσ >╛ tha⌠ wa≤ loaded« I⌠ run≤ onl∙ ì
whateve≥ i≤ hanginτ ou⌠ a⌠ 010░ he° iε thσ TP┴ whicΦ i≤ wherσ CO═ ì
file≤ run« ╔ haven'⌠ thσ slightes⌠ ideß wherσ memor∙-resident≤ ì
likσ ER┴ d∩ thei≥ thinτ bu⌠ ╔ kno≈ it'≤ no⌠ there« S∩ havinτ ER┴ ì
therσ work≤ fine¼ anΣ G╧ doesn'⌠ toucΦ i⌠ a⌠ all.
B∙ thσ wa∙ ╔ thinδ it'≤ ironiπ tha⌠ tw∩ ne≈ program≤ havσ ì
comσ ou⌠ a⌠ abou⌠ thσ samσ timσ tha⌠ perforφ simila≥ task≤ bu⌠ iε ì
differen⌠ ways« Drea≤ Nielsen'≤ superΓ FOR/NEXT/PERFOR═ serie≤ ì
(iε FO╥-NXT2.LBR¼ oε ┌-Node≤ everywhere⌐ i≤ anothe≥ wa∙ t∩ ruε aε ì
operatioε o≥ serie≤ oµ operation≤ oε ß numbe≥ oµ disparatσ files« ì
╔ caε usσ FO╥ anΣ PERFOR═ t∩ d∩ precisel∙ thi≤ samσ tasδ oµ ì
addinτ file≤ t∩ ß library:
FO╥ <file1╛ <file2╛ <file3╛ <file4>
PERFOR═ nul⌡ -∩ libnamσ -ß $° -x
|
[Thi≤ i≤ thσ symbo∞ fo≥
paramete≥ substitutioε iε
PERFORM.COM.]
Interestingly¼ thi≤ run≤ MUC╚ slowe≥ thaε doinτ witΦ ZF10F« Thi≤ ì
i≤ onl∙ partl∙ duσ t∩ thσ fac⌠ tha⌠ iε ZF10╞ thσ commanΣ linσ ì
generatioε take≤ placσ withiε ZEX¼ whicΦ i≤ memor∙-based¼ wherea≤ ì
PERFORM.CO═ mus⌠ loaΣ froφ disδ eacΦ time« I⌠ i≤ ver∙ ì
importantl∙ als∩ becausσ oµ ou≥ usσ oµ G╧ iε ZFILER« WitΦ thσ ì
FOR/PERFOR═ method¼ no⌠ onl∙ mus⌠ PERFORM.CO═ loaΣ eacΦ timσ froφ ìèdisδ bu⌠ s∩ mus⌠ NULU!
╔ eagerl∙ awai⌠ Jay'≤ ne≈ ZFILE╥ codinτ tha⌠ wil∞ allo≈ thσ ì
grou≡ macr∩ facilit∙ t∩ builΣ ß singlσ lis⌠ oµ al∞ thσ taggeΣ ì
file≤« Thi≤ oµ coursσ wil∞ speeΣ u≡ operation≤ considerabl∙ anΣ ì
reall∙ pu⌠ thσ featurσ int∩ ß qualitativel∙ ne≈ realm« Iε thσ ì
meantimσ runninτ somethinτ likσ thi≤ witΦ thσ residen⌠ G╧ commanΣ ì
goe≤ ß lonτ wa∙ toward≤ makinτ thi≤ ne≈ program¼ likσ virtuall∙ ì
everythinτ Ja∙ does¼ quitσ extraordinary.
Ricδ Charnes
Saε Francisc∩ Morro≈ user≤ group
Z-Node≤ 1¼ 2¼ │¼ 15
Junσ 24¼ 1987
rancisc∩ Morro≈ user≤ group
Z-Node≤ 1¼ 2¼ │¼ 15