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
/
A-R
/
FASTARNZ
< prev
next >
Wrap
Text File
|
2000-06-30
|
9KB
|
189 lines
Thi≤áfilσádescribe≤áß simplσ mean≤ oµ optimizinτ ß fai≥áportioεáoµáthσ
automatiπádisδ accesse≤ ß ┌ baseΣ systeφ does«áThσ basiπ idea≤ werσ takeε
froφ thσ Sagσ advicσ (puε intended¼ bu⌠ n∩ disrespect⌐ iε thσ TCJ26.MZ╟ filσ
oε thσ ZSI╟ director∙ oµ LILLIPUT┼ #▒ anΣ Ricδ Charne'≤ nea⌠ tricδ iε
ARUNZNDR.AR╘ (o≥ .AZT¼ maybe...)
Whilσ thσ maiε poin⌠ herσ i≤ t∩ presen⌠ thσ alia≤ UPDINPL├ (anΣ it≤ relateΣ
alia≤ CPYINPLC⌐ somσ backgrounΣ regardinτ thσ point≤ madσ b∙ Ja∙ Sagσ migh⌠
indicatσ t∩ yo⌡ wh∙ you'Σ wan⌠ theφ.
Ja∙ Sage¼ iε thσ forme≥ article¼ talk≤ abou⌠ squeezinτ extrß performancσ
froφ ß disδ systeφ b∙ thσ strateg∙ oµ placinτ thσ mos⌠ ofteε accesseΣ file≤
a⌠ thσ lowe≥ track≤ immediatel∙ followinτ thσ directory« Believσ me..« thi≤
make≤ ß morσ thaε appreciablσ difference« Hσ note≤ tha⌠ thσ matte≥ oµ wha⌠
i≤ accesseΣ mos⌠ ofteε caε bσ subtle¼ sincσ betweeε paths¼ shells¼ erro≥
handler≤ anΣ aliase≤ yo⌡ enΣ u≡ readinτ ß lo⌠ morσ files thaε yo⌡ explicitl∙
specify« Hσ ha≤ ß shor⌠ bu⌠ gooΣ discussioε oµ file≤ t∩ conside≥ fo≥ specia∞
placement¼ anΣ ho≈ t∩ g∩ abou⌠ puttinτ theφ therσ witΦ ß ze° filσ wheε
makinτ ß fresΦ systeφ disδ (nothinτ oε thσ destinatioε disk)« Ge⌠ thσ
articlσ iµ yo⌡ don'⌠ havσ i⌠ already«
I'vσ includeΣ m∙ initia∞ versioε oµ sucΦ ß ze° file¼ jus⌠ t∩ offe≥ somσ
idea≤ fo≥ ß possiblσ configuration« Thσ onl∙ unusua∞ poin⌠ iε thσ ze° filσ
regard≤ thσ
"savσ ▒ b:reserved.alió anΣ thσ
"sfß b:reserved.¬ /r/oó
lines.
Thesσ arσ jus⌠ intendeΣ t∩ creatσ placσ holder≤ iε thosσ lo≈ track≤ t∩ allo≈
fo≥ late≥ expansioε oµ thσ file≤ tha⌠ arσ copieΣ directl∙ beforσ them« Thσ
SF┴ ..« /R/O jus⌠ keep≤ theφ around unti∞ yo⌡ actuall∙ neeΣ them.
Thσ Ricδ Charne≤ articlσ mentioneΣ give≤ ß nicσ tricδ fo≥ makinτ softwarσ
tha⌠ doesn'⌠ kno≈ anythinτ abou⌠ use≥ area≤ o≥ nameΣ directorie≤ respec⌠
theφ usinτ ARUNZ« Ver∙ nea⌠ trick¼ anΣ thσ EDI╘ alia≤ i≤ takeε virtuall∙
verbatiφ froφ there.
THE ONLY NEW THING HERE.
Thσ onl∙ thinτ tha⌠ i≤ reall∙ ne≈ herσ (a⌠ leas⌠ s∩ fa≥ a≤ ╔ know...⌐ i≤ thσ
additioε oµ thσ UPDINPL├ alia≤ (whicΦ use≤ UPDAT┼ t∩ preven⌠ commanΣ linσ
overflow.⌐ Thσ ideß fo≥ thi≤ camσ abou⌠ becausσ ╔ aφ aε alia≤ addict¼ beinτ
a≤ laz∙ a≤ ╔ am« ╔ aφ ofteε amazeΣ a⌠ thσ amoun⌠ oµ timσ I'φ willinτ t∩
spenΣ writinτ stufµ t∩ savσ ß fe≈ keystrokes.
Anyhow¼ havinτ you≥ ALIAS.CM─ anΣ VFILER.CM─ file≤ dowε iε thσ lo≈ track≤ oµ
you≥ disδ i≤ onl∙ oµ benefi⌠ iµ the∙ sta∙ there¼ anΣ iµ yo⌡ usσ aliase≤
anywherσ nea≥ a≤ mucΦ a≤ ╔ do¼ tha⌠ mean≤ ß lo⌠ oµ messinτ arounΣ eacΦ timσ
yo⌡ edi⌠ ALIAS.CM─ t∩ ge⌠ i⌠ bacδ wherσ i⌠ belongs, and the same goes for
VFILER.CMD, which changes every other time I use my system.
Thσ UPDINPL├ (UPD╔ i≤ enough..« thσ res⌠ follow≤ tha⌠ wonderfu∞ littlσ ARUN┌
period⌐ wil∞ le⌠ yo⌡ edi⌠ ß filσ withou⌠ movinτ i⌠ froφ it≤ relativσ
positioε oε thσ disk« I⌠ doe≤ thi≤ b∙ copyinτ thσ filσ yo⌡ specif∙ t∩
anothe≥ witΦ thσ samσ namσ anΣ qualifie≥ .UPD¼ anΣ lettinτ yo⌡ edi⌠ that«
Then¼ oncσ yo⌡ leavσ thσ editor¼ i⌠ erase≤ thσ sourcσ file¼ freeinτ u≡ it≤
spacσ oε thσ disk¼ copie≤ thσ .UP─ filσ yo⌡ modifieΣ bacδ dowε there¼ anΣ
delete≤ thσ *.UP─ filσ. Yo⌡ can kee≡ the *.BAK file (just in case) or add
an erase command to get rid of it.
Thi≤ allow≤ yo⌡ t∩ painlessl∙ changσ you≥ variou≤ *.CM─ file≤ withou⌠ losinτ
thei≥ placemen⌠ oε thσ disk¼ anΣ tha⌠ placemen⌠ make≤ enougΦ differencσ tha⌠
yo⌡ enΣ u≡ no⌠ mindinτ thσ extrß copyinτ timσ anΣ s∩ fortΦ involveΣ iε thσ
process«
B∙ thσ way¼ iµ yo⌡ expanΣ onσ oµ thesσ file≤ int∩ ß ne≈ exten⌠ whilσ editinτ
it¼ iµ yo⌡ havσ ß RESERVED.¬ file¼ ß littlσ judiciou≤ copyinτ anΣ erasinτ
wil∞ ge⌠ tha⌠ seconΣ extent dowε therσ too« Yo⌡ caε checδ thi≤ witΦ DU3'≤ M
command, and it is worth doing occasionally. Alternately, there is somthing
called DMAP.COM that came out on SUS 8 or 9 that is essentially the DU3 M
command and nothing else. That's what I use.
CPYINPL├ i≤ ß simila≥ concept¼ whicΦ allow≤ yo⌡ t∩ cop∙ sucΦ ß filσ froφ onσ
disδ t∩ another¼ anΣ iµ i⌠ exist≤ oε thσ destinatioε disk¼ i⌠ wil∞ bσ copieΣ
t∩ thσ samσ spo⌠ oε thσ destinatioε disk« Oncσ again¼ comment≤ regardinτ it≤
sizσ relativσ t∩ wha⌠ wa≤ therσ apply¼ anΣ hopefull∙ you'l∞ stil∞ havσ ß
RESERVED.* file available if you need it.
I⌠ woulΣ bσ nicσ t∩ havσ ß ┌ utilit∙ t∩ comparσ tw∩ file≤ iε term≤ of bytes¼
record≤ anΣ extents¼ dependinτ oε thσ optioε specified¼ anΣ theε eithe≥ se⌠
thσ erro≥ flaτ and/o≥ ß registe≥ baseΣ oε thσ comparison« Iµ somethinτ likσ
tha⌠ wa≤ available¼ thσ recover∙ oµ thσ RESERVED.¬ spacσ coulΣ bσ automateΣ
too... Any takers out there?
P.S. If these are too primitive for ya... Gimme a couple months.
-------------------------------
File: MAKESYS.ZEX
Notes: I use this to generate new 'system' floppies. The only *.COM files
in user area 0 are STRT.COM and Z.COM (this system uses the
auto-install version overlayed with 3.3 and ZRDOS 1.7). These are
made invisible, run once and are forgotten. STRT.COM simply sets
the path to A15: and executes the COLDSTRT alias in ALIAS.CMD
(which follows).
The files created with names of the form RESERVED.* simply hold
an extra allocation block in the low tracks for expansion of the
*.CMD files immediately preceding them.
You can do any variation on this that you like...
sysgen
A
B
|
a15:
mcopy b:=a:zc.cp
go b:=a:cmdrun.com
go b:=a:alias.cmd
save 1 b:reserved.ali
go b:=a:vfiler.cmd
save 1 b:reserved.vfi
go b:=a:zfiler.cmd
save 1 b:reserved.zfi
go b:=a:z33verr.com
go b:=a:vfiler.com
go b:=a:vmenu.com
go b:=a:zfiler.com
go b:=a:vtype.com
go b:=a:vde.com
go b:=a:xdir.com
go b:=a:*.* n
sfa b:reserved.* /r/o
a0:
mcopy b:=a:*.* n
sfa b:*.com /sys,r/o
-------------------------------
File: ALIAS.CMD
Notes: This is a stripped down version of the ALIAS.CMD file I'm using.
Lines that begin with blanks are continuations of the previous line.
You would want to hang them back together...
Commands that begin with '/' are taking advantage of a 3.3 feature
that bypasses the path search and goes straight to the ECP.
Remove the slashes if you're not using 3.3.
EDIT is the aforementioned borrowing from Rick Charnes.
UPDINPLC allows editing a *.CMD file and returning the updated
copy back to its original home on the disk. This uses
the aliases UPDATE, UPDIGET and UPDIPUT to avoid command
line overflow. I'm sure they could be pared down to save
bytes, but I haven't had a chance.
CPYINPLC allows a quick transfer into a disk from another. It could
(will) be used to construct another alias (REWRITE?) that
will automatically remove a RESERVED.* file and replace
the specified *.CMD file back in the space when it outgrows
its current space.
MAKESYS just runs the above ZEX script.
These next two are unrelated, but handy...
VFLBR defines a *.LBR file as a virtual disk and gets you into
VFILER on it. (I use this with a VFILER macro so I can just
point at the library and I'm in...) This is a quickie and
will mature into something nicer one of these days.
FLBR just removes that library definition. Both this and VFLBR
need a lot more work, but are better than nothing for now.
Leave VFILER on the virtual disk before 'undefining' it...
(I would be interested in any variations on this theme.)
COLDSTRT allows me to keep STRT.COM minimal, so I don't need to
use up valuable floppy space for alias editors when a
normal editor will do.
E.DIT=VDE $d1$u1:;vde $:1.$.1;$d0$u0:
UPDI.NPLC if ex $d1$u1:$:1.$.1;/update $d1$u1:$:1.$.1;else;
echo $d1$u1:$:1.$.1 not found;fi
UPDATE echo updating $d1$u1:$:1.$.1 in place;/updiget $d1$u1:$:1.$.1;
/edit $d1$u1:$:1.upd;/updiput $d1$u1:$:1.$.1
UPDIGET cp $d1$u1:$:1.upd=$d1$u1:$:1.$.1
UPDIPUT era $d1$u1:$:1.$.1;cp $d1$u1:$:1.$.1=$d1$u1:$:1.upd;era $d1$u1:$:1.upd;
echo $d1$u1:$:1.$.1 updated
CPYI.NPLC if ex $d1$u1:$:1.$.1;echo copying $d1$u1:$:1.$.1 to $d2$u2: in place;
era $d2$u2:$:1.$.1;cp $d2$u2:=$d1$u1:$:1.$.1;else;
echo $d1$u1:$:1.$.1 not found;fi
MAKESYS a0:;zex makesys;$d0$u0:
VFLBR 0:;setrsx;lbrdsk c:=$d1:$:1.$.1;vfiler
FLBR setrsx
COLDSTRT 15:;public /da,db,u1,u2;ldr base.rcp;go base.ndr;z33verr q;0: