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
/
JSAGE
/
ZSUS
/
TCJ
/
TCJ42.WS
< prev
next >
Wrap
Text File
|
2000-06-30
|
36KB
|
581 lines
Z-System Corne≥ (c)
by Jay Sage
The Computer Journal, Issue 42
Reproduced with permission
of author and publisher
┴ ánumbe≥ oµ newe≥ TC╩ reader≤ havσ commenteΣ tha⌠ witΦ thi≤ columε áthe∙ ì
fee∞ átha⌠ the∙ arσ cominτ int∩ thσ middlσ oµ ß ver∙ involveΣ discussioε átha⌠ ì
i≤ harΣ t∩ catcΦ oε to« Oµ course¼ onσ answe≥ t∩ tha⌠ probleφ i≤ fo≥ ne≈ áTC╩ ì
reader≤ át∩ purchasσ bacδ issues« ╔ havσ beeε writinτ thi≤ ácolumε áregularl∙ ì
sincσ áissuσ á#25¼ anΣ ╔ aφ quitσ surσ tha⌠ al∞ thosσ bacδ áissue≤ áarσ ástil∞ ì
available« á Tha⌠ solutioε notwithstanding¼ i⌠ i≤ probabl∙ no⌠ ß baΣ áideß át∩ ì
stanΣ bacδ ever∙ s∩ ofteε anΣ tr∙ t∩ comprehenΣ ß large≥ picture« Tha⌠ i≤ onσ ì
oµ thσ task≤ ╔ wil∞ undertakσ thi≤ time.
DetaileΣ technica∞ conten⌠ wil∞ no⌠ bσ forsakeε entirely¼ however¼ ásincσ ì
╔ áregarΣ tha⌠ a≤ thσ primar∙ purposσ oµ m∙ column« A⌠ thi≤ point¼ ╔ ásuspec⌠ ì
tha⌠ á╔ aφ to∩ mucΦ oµ ß ┌-Systeφ exper⌠ t∩ talδ abou⌠ ver∙ man∙ topic≤ áa⌠ áß ì
leve∞ átha⌠ i≤ appropriatσ fo≥ beginners« T∩ servσ thei≥ needs¼ ╔ áhavσ ábeeε ì
ver∙ áactivel∙ ásolicitinτ article≤ froφ othe≥ authors« Iε áthi≤ áissue¼ áfo≥ ì
example¼ áwσ havσ thσ firs⌠ oµ thσ column≤ ╔ promiseΣ ß couplσ oµ issue≤ ábacδ ì
oε ho≈ t∩ se⌠ u≡ ß remotσ acces≤ systeφ (akß bulletiε boarΣ system⌐ unde≥ áthσ ì
NZCO═ áaut∩-instal∞ áversioε oµ ┌-System« Leσ McEweε (akß Chri≤ áMcEwen⌐ áha≤ ì
donσ ß lovel∙ joΓ witΦ tha⌠ assignment.
Thσ átechnica∞ discussioε thi≤ timσ wil∞ focu≤ oε somσ issue≤ tha⌠ áarosσ ì
iε átryinτ át∩ áinstal∞ ZSDO╙ o≥ ZDDO╙ oε aε SB18░ ácompute≥ áwitΦ áthσ áXBIO╙ ì
enhanceΣ operatinτ system« Beforσ yo⌡ sa∙ "Bu⌠ ╔ don'⌠ havσ aε SB180,ó le⌠ mσ ì
assurσ yo⌡ tha⌠ thσ technique≤ havσ morσ genera∞ applicability« Thσ áspecifiπ ì
XBIO╙ áprobleφ ái≤ áonσ átha⌠ ha≤ comσ u≡ ofteε anΣ ha≤ ábeeε áthσ ásourcσ áoµ ì
considerablσ áfrustratioε t∩ XBIO╙ users« [The∙ arσ iε gooΣ company¼ áb∙ áthσ ì
way« Jus⌠ a≤ ╔ wa≤ finishinτ thi≤ article¼ ╔ go⌠ ß cal∞ froφ Bridge≥ Mitchel∞ ì
abou⌠ áthi≤ áver∙ subject!▌ ╔ aφ onl∙ sorr∙ tha⌠ i⌠ tooδ mσ s∩ álonτ át∩ áge⌠ ì
arounΣ át∩ workinτ oε it« Genσ Pizzetta¼ ß fello≈ Bostonian¼ wa≤ thσ ásqueak∙ ì
whee∞ átha⌠ finall∙ go⌠ m∙ attention¼ anΣ hσ ha≤ contributeΣ ß numbe≥ áoµ áhi≤ ì
owε idea≤ t∩ thσ solution.
Announcements
Beforσ wσ ge⌠ dowε t∩ business¼ ╔ have¼ a≤ usual¼ ß fe≈ announcement≤ át∩ ì
make« á Firs⌠ á╔ woulΣ likσ t∩ reminΣ reader≤ oncσ agaiε abou⌠ áBil∞ áTishey'≤ ì
superΓ ácollectioε áoµ hel≡ file≤ fo≥ thσ hundred≤ oµ á┌-Systeφ áprogram≤ áno≈ ì
available« á Bil∞ ácaε no≈ generatσ diskette≤ iε man∙ áformat≤ ábeside≤ áApplσ ì
(usinτ hi≤ son'≤ Commodorσ 128)¼ anΣ hσ i≤ willinτ t∩ fil∞ you≥ diskette≤ witΦ ì
thσ áfile≤ fo≥ onl∙ $10« M∙ columε iε issuσ #3╢ gavσ thσ followinτ áprocedurσ ì
t∩ áfollow║ á(1⌐ ásenΣ enougΦ formatteΣ diskette≤ (plainl∙ álabeleΣ áwitΦ áthσ ì
format⌐ át∩ áholΣ áa⌠ leas⌠ 1000╦ byte≤ (u≡ froφ 800╦ bacδ then)╗ á(2⌐ áusσ áß ì
reusablσ disδ maile≥ o≥ enclosσ ß maile≥ suitablσ fo≥ returninτ thσ ádiskette≤ ì
t∩ áyou╗ anΣ (3⌐ enclosσ ß returε addres≤ label¼ returε postage¼ anΣ áthσ á$1░ ì
copyinτ áfee« Bill'≤ addres≤ i≤ 833╡ Dubb≤ Drive¼ Severn¼ M─ 21144« á Iµ áyo⌡ ìèprefe≥ (o≥ iµ yo⌡ neeΣ 9╢-tpi¼ 8ó SSSD¼ o≥ NorthSta≥ harΣ-secto≥ formats)¼ yo⌡ ì
caε senΣ thσ diskette≤ t∩ mσ a≤ well.
Second¼ ╔ woulΣ likσ t∩ makσ ß specia∞ poin⌠ oµ callinτ you≥ attentioε t∩ ì
thσ áGEniσ áRoundTablσ ádiscussion≤ tha⌠ takσ placσ ever∙ áWednesda∙ áa⌠ á10pφ ì
Easterε átime« Thσ firs⌠ sucΦ sessioε oµ eacΦ montΦ i≤ devoteΣ át∩ á┌-System¼ ì
anΣ á╔ aφ thσ moderator¼ s∩ thi≤ i≤ you≥ chancσ fo≥ ß rea∞-timσ dialoguσ áwitΦ ì
me« G∩ t∩ pagσ "685;2ó oε GEniσ anΣ ente≥ "Rooφ 2".
Therσ ááarσ ásevera∞ áchange≤ át∩ árepor⌠ áiε áthσ ároste≥ áoµ áá┌-Nodes« ì
Regrettably¼ BoΓ Paddock'≤ nodσ #3╕ iε Franklin¼ PA¼ ha≤ gonσ ofµ thσ air« áT∩ ì
offse⌠ átha⌠ loss¼ however¼ nodσ #7│ iε thσ St« Louis¼ MO¼ areß ha≤ comσ ábacδ ì
t∩ álifσ afte≥ beinτ dowε fo≥ severa∞ years« Syso≡ Georgσ Alleε anΣ ác∩-syso≡ ì
Wal⌠ áStumpe≥ áwoulΣ ábσ happ∙ t∩ hea≥ froφ yo⌡ áa⌠ á31┤-82▒-107╕ á(P├-Pursui⌠ ì
MOSLO/24)« Thσ equipmen⌠ i≤ currentl∙ ß Xero° 82░-I╔ witΦ ß 1░ Meτ drive¼ bu⌠ ì
thσ sysop≤ hopσ t∩ expanΣ sooε t∩ ß 30½ Meτ Ampro.
Oε áthσ á┌-Nodσ áfront¼ ╔ aφ als∩ sorr∙ t∩ árepor⌠ átha⌠ á┌-Nodσ áCentra∞ ì
(Lillipute⌐ wa≤ downeΣ b∙ hardwarσ failure≤ oε botΦ computersí The∙ havσ beeε ì
ofµ thσ ai≥ fo≥ ß couplσ oµ month≤ alread∙ a≤ ╔ writσ this¼ anΣ syso≡ áRicharΣ ì
Jacobsoε ha≤ jus⌠ faceΣ thσ truth║ tha⌠ i⌠ wil∞ no⌠ bσ cominτ back« Laderß á┌-ì
Nodσ á(#2⌐ áiε áLo≤ Angele≤ wil∞ takσ ove≥ a≤ ┌-Nodσ áCentral« á Chicag∩ áareß ì
caller≤ lookinτ fo≥ ┌ suppor⌠ shoulΣ checδ ou⌠ thσ Antelopσ Freewa∙ systeφ ruε ì
b∙ ZDO╙-coautho≥ Carsoε Wilsoε fo≥ CFO╟ (Chicag∩ areß FOG)« Thi≤ i≤ onσ oµ áß ì
smal∞ ánumbe≥ oµ remotσ acces≤ system≤ runninτ unde≥ thσ Z3PLU╙ flavo≥ áoµ á┌-ì
System« á Thσ áphonσ numbe≥ i≤ 31▓-76┤-515▓ (P├-Pursui⌠ ILCHI/24)« áWσ áexpec⌠ ì
tha⌠ it≤ 'Systeφ Oneº wil∞ sooε bσ ß ┌-Nodσ ('Systeφ Twoº support≤ M╙-DOS).
Finally¼ átherσ havσ beeε somσ ver∙ significan⌠ development≤ witΦ BD╙ áC« ì
Leo≥ áZolmaε completeΣ somσ majo≥ addition≤ t∩ thσ ┌ versioε (BD╙ Z)¼ anΣ áthσ ì
fina∞ áreleasσ áha≤ ájus⌠ ágonσ ou⌠ a≤ ╔ writσ thi≤ ácolumε áiε ámiΣ áOctober« ì
Program≤ generateΣ b∙ BD╙ ┌ no≈ havσ ß ful∞ ┌-Systeφ heade≥ anΣ caε bσ álinkeΣ ì
a≤ typσ-│ program≤ t∩ loaΣ anΣ ruε a⌠ aε arbitrar∙ address« ZDO╙ coautho≥ Caφ ì
Cotril∞ ha≤ alread∙ releaseΣ ß substantia∞ amoun⌠ oµ BD╙ ┌ codσ fo≥ performinτ ì
thσ function≤ iε thσ SYSLIB¼ VLIB¼ anΣ Z3LI┬ assembl∙-languagσ librarie≤ átha⌠ ì
arσ no⌠ alread∙ buil⌠ int∩ BD╙ Z.
Leo≥ ha≤ no≈ turneΣ ove≥ al∞ oµ thσ marketinτ anΣ somσ oµ thσ developmen⌠ ì
responsibilit∙ áfo≥ áBD╙ ├ t∩ me« Recognizinτ tha⌠ thσ $9░ pricσ taτ áoµ áthσ ì
ful∞ ápackage¼ howeve≥ reasonablσ fo≥ wha⌠ onσ gets¼ i≤ aε impedimen⌠ át∩ áne≈ ì
user≤ wh∩ wan⌠ t∩ experimen⌠ witΦ C¼ wσ havσ prepareΣ ß lo≈ cos⌠ áintroductor∙ ì
packagσ átha⌠ (1⌐ include≤ onl∙ onσ versioε oµ thσ codσ (eithe≥ standarΣ áCP/═ ì
o≥ á┌-System)¼ á(2⌐ contain≤ onl∙ thσ essentia∞ files¼ anΣ (3⌐ come≤ áwitΦ áaε ì
abridgeΣ áversioε áoµ thσ manua∞ (anΣ withou⌠ thσ fanc∙ B─ áSoftwarσ ábinder)« ì
Thi≤ ápackagσ wil∞ bσ offereΣ fo≥ onl∙ $60« Othe≥ part≤ oµ thσ áful∞ ápackagσ ì
caε ábσ addeΣ later║ $2╡ fo≥ thσ seconΣ versioε oµ thσ compiler¼ $2╡ áfo≥ áthσ ì
suppor⌠ ámaterial≤ á(RE─ áeditor¼ CD┬ debugger¼ anΣ thσ part≤ áoµ áthσ ámanua∞ ì
coverinτ áthem)¼ o≥ $4░ fo≥ botΦ a⌠ once« Iµ thσ wholσ packagσ i≤ ordereΣ áa⌠ ì
once¼ ái⌠ ácome≤ completσ witΦ aε attractivσ binde≥ (als∩ availablσ áwitΦ áthσ ì
introductor∙ packagσ fo≥ $╡ extra).
I⌠ shoulΣ bσ noteΣ tha⌠ BD╙ ┌ generate≤ program≤ tha⌠ ruε perfectl∙ áwel∞ ìèunde≥ ástandarΣ áCP/M« Naturally¼ the∙ wil∞ no⌠ recognizσ á┌-Systeφ áfeature≤ ì
likσ ánameΣ ádirectories¼ bu⌠ the∙ wil∞ accep⌠ thσ no≈ standarΣ áDU║ áextendeΣ ì
drive/use≥ ásynta° áinsteaΣ oµ thσ olde≥ U/D║ forma⌠ oµ standarΣ BD╙ áC« á Thσ ì
onl∙ ádisadvantagσ oµ usinτ BD╙ ┌ rathe≥ thaε BD╙ ├ oε ß standarΣ CP/═ ásysteφ ì
i≤ átha⌠ áthσ program≤ carr∙ ┌-Systeφ overheaΣ (abou⌠ 80░ ábytes⌐ átha⌠ ádon'⌠ ì
providσ theφ witΦ an∙ functionality.
Wha⌠ i≤ ß Microcompute≥ Operatinτ Systeφ For?
Thσ basiπ functioε oµ aε operatinτ systeφ i≤ t∩ makσ one'≤ lifσ ¡¡ áone'≤ ì
computinτ álife¼ tha⌠ i≤ ¡¡ simpler« Wheε microcomputer≤ firs⌠ camσ out¼ áthσ ì
bigges⌠ burdeε wa≤ dealinτ witΦ thσ hardware« I⌠ wa≤ n∩ fuε fo≥ thσ ácompute≥ ì
use≥ áanΣ programme≥ (largel∙ synonymou≤ iε thosσ days⌐ t∩ havσ t∩ ádea∞ áove≥ ì
anΣ ove≥ witΦ thσ intricacie≤ oµ thσ physica∞ operatioε oµ thσ hardware¼ ásucΦ ì
a≤ gettinτ character≤ t∩ anΣ froφ thσ termina∞ o≥ pape≥ tapσ reader/punch¼ no⌠ ì
t∩ ámentioε áthσ dauntingl∙ morσ comple° tasδ oµ managinτ datß oε áß ámagnetiπ ì
tapσ o≥ flopp∙ diskettσ drive.
Gar∙ áKildall'≤ CP/═ operatinτ systeφ provideΣ ß solutioε ¡¡ anΣ áß áver∙ ì
gooΣ áonσ á(b∙ anΣ large⌐ iε m∙ opinioε ¡¡ t∩ thosσ problems« I⌠ ádiΣ ás∩ áb∙ ì
implementinτ áß ástandardizeΣ áanΣ modula≥ interfacσ tha⌠ áhandleΣ áthσ ábasiπ ì
devicσ ácommunicatioε átasks« á CP/M¼ whicΦ stooΣ á(╔ ábelieve⌐ áfo≥ á"Contro∞ ì
Prograφ áfo≥ Microcomputers,ó wa≤ thσ maste≥ prograφ tha⌠ onσ go⌠ árunninτ áoε ì
thσ ácompute≥ righ⌠ afte≥ powe≥ up« I⌠ woulΣ theε allo≈ onσ t∩ loaΣ áanΣ áruε ì
othe≥ programs¼ witΦ contro∞ alway≤ returninτ t∩ thσ CP/═ maste≥ prograφ afte≥ ì
eacΦ use≥ prograφ finished.
Beside≤ áacceptinτ áanΣ áinterpretinτ command≤ áissueΣ áb∙ áthσ ácompute≥ ì
operator¼ áaε operatinτ systeφ likσ CP/═ als∩ provide≤ residen⌠ ácodσ á(alway≤ ì
read∙ áiε memory⌐ fo≥ performinτ certaiε function≤ tha⌠ áapplicatioε áprogram≤ ì
wil∞ áofteε áwan⌠ át∩ use« Thσ simple≥ function≤ arσ thing≤ álikσ ásendinτ áß ì
characte≥ t∩ thσ termina∞ screen╗ thσ morσ comple° one≤ includσ fetchinτ áfroφ ì
o≥ áwritinτ át∩ ß flopp∙ diskettσ thσ informatioε associateΣ áwitΦ áß álogica∞ ì
entit∙ knowε a≤ ß file.
WitΦ ááthesσ áfunction≤ áimplementeΣ áiε áthσ áoperatinτ áásysteφ áácode¼ ì
applicatioε áprogram≤ arσ easie≥ t∩ writσ anΣ d∩ no⌠ havσ t∩ includσ thσ ásamσ ì
codσ áove≥ anΣ over« Morσ importantly¼ the∙ caε ruε oε ß variet∙ oµ áhardwarσ ì
platforms¼ ásincσ áthσ ádetail≤ oµ thσ physica∞ hardwarσ arσ áhandleΣ áb∙ áthσ ì
operatinτ ásysteφ ácode¼ áanΣ thσ prograφ caε dea∞ witΦ thing≤ áa⌠ áß álogica∞ ì
level.
Logica∞ vs« Physical
Perhap≤ áthi≤ i≤ ß gooΣ timσ fo≥ ß brieµ asidσ oε thi≤ matte≥ oµ álogica∞ ì
versu≤ áphysical« Wσ usσ thσ adjectivσ "physicaló wheε wσ arσ átalkinτ áabou⌠ ì
thing≤ átha⌠ arσ actuall∙ iε thσ hardware« Iε thσ casσ oµ ß flopp∙ disk¼ áfo≥ ì
example¼ áthσ áphysica∞ áitem≤ arσ thσ bit≤ oµ datß ástoreΣ áa≤ ámagnetizatioε ì
patterns« á Thesσ bit≤ arσ groupeΣ int∩ sectors¼ anΣ thσ sector≤ int∩ átracks« ì
Iε áthσ ácasσ áoµ ß termina∞ screen¼ thσ physica∞ item≤ arσ áthσ ápattern≤ áoµ ì
illuminateΣ dot≤ tha⌠ wσ recognizσ a≤ letters¼ numbers¼ anΣ othe≥ symbols.è
Oε áthσ áothe≥ áhand¼ wσ usσ thσ adjectivσ "logicaló át∩ ádescribσ áthosσ ì
thing≤ áwhicΦ arσ essentiall∙ thσ creatioε oµ ou≥ mind≤ (anΣ áprograms)« á Fo≥ ì
example¼ átherσ ái≤ án∩ sucΦ physica∞ thinτ a≤ ß "file.ó N∩ ámatte≥ áho≈ áyo⌡ ì
examinσ ß diskette¼ yo⌡ wil∞ neve≥ finΣ ß filσ oε i⌠ (a≤ such)╗ yo⌡ wil∞ áfinΣ ì
onl∙ sector≤ anΣ tracks« I⌠ i≤ ou≥ choicσ t∩ organizσ thσ datß oε thσ disδ iε ì
ß áwa∙ tha⌠ associate≤ group≤ oµ sucΦ sector≤ witΦ ß filσ name≤ anΣ át∩ ástorσ ì
thσ filσ name≤ iε ß particula≥ grou≡ oµ sector≤ oε thσ disk.
Modularity
CP/═ ái≤ ámodula≥ iε thσ sensσ tha⌠ i⌠ divide≤ u≡ thσ áfunction≤ áoµ áthσ ì
operatinτ ásysteφ int∩ separatσ packages« Onσ par⌠ i≤ calleΣ thσ BIO╙ á(basiπ ì
input/outpu⌠ ásystem)« Thi≤ part¼ whicΦ live≤ a⌠ thσ ver∙ to≡ oµ áthσ ámemor∙ ì
addres≤ space¼ deal≤ directl∙ witΦ thσ hardware« I⌠ read≤ anΣ write≤ physica∞ ì
sector≤ áfroφ anΣ t∩ ß diskette╗ i⌠ determine≤ whethe≥ o≥ no⌠ ß ke∙ áha≤ ábeeε ì
presseΣ oε thσ keyboarΣ and¼ iµ so¼ whicΦ key╗ anΣ i⌠ send≤ character≤ t∩ áthσ ì
screen« Thσ BIO╙ i≤ thσ onl∙ par⌠ oµ CP/═ tha⌠ i≤ differen⌠ fo≥ eacΦ hardwarσ ì
implementatioε oµ ß CP/═ computer.
Thσ seconΣ CP/═ modulσ i≤ calleΣ thσ BDO╙ (basiπ disδ operatinτ ásystem)« ì
I⌠ ádeal≤ witΦ logica∞ constructs« Wσ havσ alread∙ spokeε oµ files« á Wheε áß ì
filσ ái≤ referreΣ to¼ thσ BDO╙ figure≤ ou⌠ whicΦ physica∞ track≤ áanΣ ásector≤ ì
contaiε áthσ datß fo≥ tha⌠ file« Anothe≥ logica∞ construc⌠ i≤ line≤ oµ átext« ì
Thσ áBDO╙ áha≤ ß functioε t∩ senΣ ß completσ linσ oµ tex⌠ t∩ áthσ áscreeε á(a≤ ì
opposeΣ át∩ áthσ áBIOS¼ whicΦ caε senΣ onl∙ ß singlσ character)¼ áanΣ ái⌠ áha≤ ì
anothe≥ áfunctioε át∩ ge⌠ ß completσ linσ oµ tex⌠ froφ thσ áuser¼ áallowinτ áß ì
limiteΣ áamoun⌠ áoµ áediting« Thesσ function≤ makσ i⌠ ámucΦ áeasie≥ áfo≥ áthσ ì
applicatioε programme≥ t∩ writσ hi≤ o≥ he≥ program.
Thσ álas⌠ CP/═ modulσ i≤ calleΣ thσ CC╨ (consolσ commanΣ processor)« á I⌠ ì
get≤ áß ácommanΣ typeΣ b∙ thσ use≥ a⌠ thσ consolσ anΣ átake≤ áthσ áappropriatσ ì
actioε át∩ ácarr∙ ou⌠ tha⌠ command« Somσ commands¼ sucΦ a≤ DI╥ áo≥ áERA¼ áarσ ì
implementeΣ ádirectl∙ áiε áthσ CC╨ code« Other≤ requirσ tha⌠ ß áCO═ áfilσ ábσ ì
loadeΣ froφ diskettσ anΣ executed.
CommanΣ Processinτ Unde≥ CP/M
Fo≥ áthσ ámos⌠ part¼ CP/═ accomplishe≤ thσ function≤ i⌠ wa≤ ádesigneΣ át∩ ì
perforφ áiε admirablσ fashion« However¼ i⌠ wa≤ s∩ concerneΣ witΦ solvinτ áthσ ì
hardwarσ áinterfacσ áprobleφ á(thσ áprogramme≥ áinterface⌐ átha⌠ ái⌠ áádevoteΣ ì
relativel∙ littlσ attentioε t∩ thσ use≥ interface« T∩ bσ fair¼ i⌠ wa≤ borε iε ì
thσ áday≤ wheε 16╦ oµ memor∙ cos⌠ abou⌠ $50░ (iε 1970≤ dollars¼ n∩ áless⌐ áanΣ ì
occupieΣ áaε áentirσ ╙-10░ carΣ (bigge≥ b∙ fa≥ thaε ß wholσ áSB180F╪ ácompute≥ ì
witΦ á512K)« á Toda∙ wσ migh⌠ no⌠ thinδ tha⌠ 64╦ i≤ ver∙ mucΦ (somσ ása∙ átha⌠ ì
OS/▓ áfeel≤ ádreadfull∙ crampeΣ iε les≤ thaε │ Megs!)¼ bu⌠ i⌠ make≤ ß álo⌠ áoµ ì
thing≤ possiblσ tha⌠ 48╦ (o≥ eveε less⌐ woulΣ no⌠ allow.
CP/M'≤ commanΣ processo≥ diΣ littlσ morσ thaε thσ minimuφ i⌠ wa≤ requireΣ ì
t∩ ádo¼ ánamel∙ t∩ ruε ß fe≈ residen⌠ command≤ anΣ t∩ loaΣ áexterna∞ ácommand≤ ìèfroφ ádisk« á I⌠ ádiΣ no⌠ providσ man∙ service≤ t∩ makσ áthσ áoperator'≤ álifσ ì
easier« á Yo⌡ haΣ t∩ specif∙ rathe≥ exactl∙ thσ commanΣ yo⌡ wanteΣ áperformed╗ ì
n∩ áleewa∙ wa≤ allowed« AnΣ iµ yo⌡ madσ ß mistake¼ CP/═ diΣ no⌠ tr∙ t∩ áhelp╗ ì
i⌠ jus⌠ shruggeΣ it≤ shoulder≤ anΣ emitteΣ ß questioε mark.
Thσ Nicetie≤ oµ ┌-System
Thσ á┌-Systeφ ha≤ evolveΣ ove≥ ß perioΣ oµ nearl∙ ß decadσ now¼ ábu⌠ áit≤ ì
goa∞ áfroφ áthσ áver∙ beginninτ ha≤ alway≤ beeε t∩ makσ ái⌠ áeasie≥ áanΣ ámorσ ì
convenien⌠ át∩ áoperatσ áthσ computer« M∙ idea∞ i≤ t∩ havσ áthσ ácompute≥ ád∩ ì
everythinτ átha⌠ ái⌠ possibl∙ caε d∩ fo≥ thσ use≥ anΣ leavσ t∩ thσ áuse≥ áonl∙ ì
thosσ átask≤ átha⌠ án∩ compute≥ coulΣ possibl∙ figurσ ou⌠ áoε áit≤ áown« á Thσ ì
commanΣ áprocesso≥ áimprovement≤ ╔ havσ introduceΣ anΣ thσ áutilitie≤ á╔ áhavσ ì
writteε áhavσ áal∞ beeε directeΣ towarΣ tha⌠ goal« ╔ wil∞ no≈ ruε áthrougΦ áß ì
shor⌠ ásummar∙ áoµ á┌-Systeφ feature≤ anΣ tr∙ t∩ indicatσ ho≈ áthe∙ ámakσ áthσ ì
operator'≤ lifσ easier« Thi≤ lis⌠ i≤ adapteΣ froφ m∙ book¼ "Thσ ZCPR3│ User'≤ ì
Guide."
Use≥ Areß Access
CP/═ áintroduceΣ áthσ áconcep⌠ oµ disδ "useró areas¼ áwhicΦ áalloweΣ áthσ ì
operatinτ systeφ t∩ grou≡ file≤ int∩ separatσ logica∞ directorie≤ á(physicall∙ ì
thσ áfile≤ áarσ áal∞ ástoreΣ iε thσ samσ directory¼ bu⌠ áthe∙ áarσ átaggeΣ át∩ ì
indicatσ áthσ áuse≥ area)« Unfortunately¼ CP/═ provideΣ n∩ practica∞ áwa∙ át∩ ì
acces≤ file≤ acros≤ use≥ areas¼ whicΦ madσ theφ almos⌠ useless.
Bacδ iε thσ day≤ wheε disk≤ helΣ onl∙ abou⌠ 100K¼ therσ wasn'⌠ mucΦ áneeΣ ì
fo≥ áthi≤ ákinΣ oµ organization¼ bu⌠ toda∙ flopp∙ diskette≤ ácommonl∙ áhavσ áß ì
capacit∙ betweeε 350╦ anΣ 1.│ Meg« HarΣ disk≤ witΦ man∙ ten≤ oµ megabyte≤ arσ ì
als∩ áinexpensivσ áanΣ common« Unde≥ thesσ circumstances¼ áß ásinglσ álogica∞ ì
drivσ ácaε holΣ hundred≤ o≥ eveε thousand≤ oµ files¼ anΣ somσ wa∙ t∩ áorganizσ ì
theφ become≤ essential.
┌-Systeφ ámake≤ i⌠ ver∙ eas∙ anΣ convenien⌠ t∩ organizσ you≥ file≤ ábaseΣ ì
oε áuse≥ ánumbers« á Wherσ CP/═ alloweΣ onl∙ ß drivσ prefi° át∩ áß áfilσ ánamσ ì
(D:NAME.TYP)¼ ┌-Systeφ allow≤ drivσ and/o≥ use≥ numbe≥ prefixe≤ á(DU:NAME.TYP⌐ ì
s∩ átha⌠ file≤ iε othe≥ use≥ area≤ a≤ wel∞ a≤ othe≥ drive≤ caε ábσ áreferenceΣ ì
directly« á Iε áaddition¼ á┌-Systeφ allow≤ meaningfu∞ name≤ á(simila≥ át∩ áDO╙ ì
subdirector∙ ánames⌐ át∩ ábσ assigneΣ t∩ drive/use≥ areas« áThi≤ áprovide≤ áaε ì
interfacσ átha⌠ ái≤ fa≥ morσ suitablσ t∩ thσ wa∙ peoplσ áthinδ áanΣ áremember« ì
WitΦ thσ DU║ form¼ thσ operato≥ ha≤ t∩ thinδ abou⌠ thσ hardwarσ (somethinτ áhσ ì
o≥ shσ shoulΣ no⌠ havσ t∩ do¼ remember?)╗ witΦ nameΣ directories¼ thσ operato≥ ì
think≤ áiε term≤ oµ functioε (TEXT║ fo≥ tex⌠ files¼ BDSC║ fo≥ thσ ├ ácompiler¼ ì
DBASE║ fo≥ databasσ files¼ anΣ s∩ on).
Termina∞ Independencσ anΣ thσ Environment
Whilσ ásomσ áwoulΣ áarguσ tha⌠ thσ DO╙ hardwarσ áanΣ ásoftwarσ ástandard≤ ì
establisheΣ b∙ IBM'≤ marke⌠ dominancσ havσ resulteΣ iε aε enforceΣ mediocrity¼ ìètherσ ái≤ n∩ doub⌠ tha⌠ havinτ ß singlσ environmen⌠ iε whicΦ t∩ operatσ ámake≤ ì
lifσ ámucΦ áeasie≥ fo≥ application≤ programmers« Program≤ fo≥ áDO╙ ágenerall∙ ì
worδ árigh⌠ áou⌠ oµ thσ bo° oε an∙ IB═ compatiblσ computer« áConfiguratioε ái≤ ì
requireΣ onl∙ fo≥ finσ-tuning.
CP/M¼ áoε áthσ othe≥ hand¼ wa≤ designeΣ t∩ allo≈ program≤ t∩ áruε áoε áaε ì
extremel∙ áwidσ variet∙ oµ hardware« Iε thosσ days¼ "personaló compute≥ átooδ ì
oε áß ádifferen⌠ meaninτ ¡¡ eacΦ persoε designeΣ anΣ buil⌠ hi≤ áowε áhardware« ì
CP/═ ácoulΣ ábσ ámadσ t∩ worδ witΦ al∞ oµ them¼ ábu⌠ áelaboratσ áconfiguratioε ì
procedure≤ áwerσ ágenerall∙ árequired¼ especiall∙ t∩ ámatcΦ áprogram≤ át∩ áthσ ì
particula≥ átermina∞ áused« á T∩ thi≤ day¼ wσ stil∞ havσ át∩ ádea∞ áwitΦ áthi≤ ì
hardwarσ diversity.
Wha⌠ áCP/═ coulΣ havσ bu⌠ faileΣ t∩ providσ wa≤ ß mean≤ fo≥ conveyinτ át∩ ì
applicatioε áprogram≤ informatioε abou⌠ thσ operatinτ áenvironment« á ┌-Systeφ ì
ha≤ ásevera∞ ámodule≤ átha⌠ afforΣ sucΦ communication« á Aε áareß ácalleΣ áthσ ì
environmen⌠ áádescripto≥ áá(ENV⌐ ácontain≤ áinformatioε ááabou⌠ ááthσ áásysteφ ì
configuration« á Anothe≥ ásysteφ areß calleΣ thσ messagσ buffe≥ á(MSG⌐ ástore≤ ì
informatioε tha⌠ onσ prograφ caε leavσ fo≥ anothe≥ prograφ tha⌠ run≤ late≥ át∩ ì
read.
Par⌠ áoµ áthσ áEN╓ i≤ ß sectioε calleΣ thσ áTCA╨ áo≥ áTermina∞-CAPabilit∙ ì
descriptor« Thσ TCA╨ allow≤ ß prograφ runninτ unde≥ ┌-Systeφ t∩ determinσ thσ ì
typσ oµ termina∞ iε usσ anΣ t∩ adap⌠ t∩ thσ contro∞ code≤ i⌠ use≤ fo≥ áspecia∞ ì
vide∩ áoperations« Thσ EN╓ ha≤ informatioε abou⌠ thσ sizσ oµ thσ áscreeε áanΣ ì
thσ printer'≤ page« I⌠ als∩ contain≤ sucΦ informatioε a≤ thσ CP╒ clocδ áspeeΣ ì
anΣ áwhicΦ disδ drive≤ arσ availablσ (wh∙ allo≈ attempt≤ t∩ loτ int∩ drivσ áC║ ì
iµ átherσ ái≤ n∩ drivσ C║ ¡¡ i⌠ ofteε jus⌠ hang≤ thσ computer)« áThσ á┌-Systeφ ì
support≤ áman∙ áoptiona∞ áoperatinτ ásysteφ áfeature≤ ácontaineΣ áiε áoptiona∞ ì
modules¼ anΣ thσ EN╓ contain≤ informatioε abou⌠ thesσ module≤ also.
Thσ EN╓ anΣ TCA╨ no⌠ onl∙ relievσ thσ use≥ oµ thσ nuisancσ oµ áinstallinτ ì
programs╗ the∙ als∩ makσ i⌠ ver∙ eas∙ t∩ changσ thσ installation« Suppose¼ fo≥ ì
example¼ yo⌡ wan⌠ t∩ prin⌠ somσ file≤ iε 13▓-columε modσ insteaΣ oµ thσ áusua∞ ì
8░-columε ámode« á Unde≥ áCP/═ áyo⌡ ámigh⌠ ver∙ álikel∙ áhavσ át∩ áge⌠ áou⌠ áß ì
configuratioε áprograφ t∩ redefinσ thσ printe≥ setup« WitΦ ß á┌-Systeφ áprin⌠ ì
utility¼ áyo⌡ áwoulΣ ásimpl∙ áchangσ áthσ modσ áoε áyou≥ áprinter¼ áruε áCPSE╘ ì
(console/printe≥ set⌐ t∩ selec⌠ thσ 13▓-columε printe≥ definition¼ anΣ ruε thσ ì
samσ prin⌠ prograφ a≤ before.
CommanΣ Processinτ Enhancements
Unde≥ áCP/M¼ yo⌡ havσ t∩ specif∙ wherσ thσ CO═ filσ t∩ bσ ruε i≤ álocateΣ ì
(otherwisσ áthσ ácurren⌠ ádrivσ i≤ assumed)« Thi≤ i≤ áß áperfec⌠ áexamplσ áoµ ì
somethinτ átha⌠ áß compute≥ caε easil∙ bσ smar⌠ enougΦ t∩ d∩ fo≥ you¼ áanΣ á┌-ì
Systeφ ádoes« A≤ witΦ moderε version≤ oµ DO╙ (whicΦ tooδ man∙ year≤ t∩ ácatcΦ ì
oε át∩ thi≤ ┌-Systeφ feature)¼ yo⌡ specif∙ ß lis⌠ oµ director∙ area≤ tha⌠ áthσ ì
operatinτ ásysteφ áwil∞ scaε fo≥ ß requesteΣ CO═ file« Iµ yo⌡ áwisΦ á(a≤ áyo⌡ ì
migh⌠ áwheε áyo⌡ kno≈ tha⌠ you≥ CO═ filσ i≤ no⌠ oε thσ searcΦ path)¼ áyo⌡ ácaε ì
specif∙ áß director∙ usinτ eithe≥ thσ DU║ prefi° o≥ thσ nameΣ ádirector∙ áDIR║ ì
prefix¼ anΣ yo⌡ arσ thu≤ no⌠ limiteΣ t∩ thσ curren⌠ use≥ areß o≥ thσ path.è
WitΦ ┌-Systeφ onσ i≤ als∩ n∩ longe≥ limiteΣ t∩ issuinτ command≤ onσ a⌠ áß ì
timσ (DO╙ ha≤ beeε eveε slowe≥ t∩ catcΦ oε t∩ this)« ┴ singlσ linσ oµ commanΣ ì
inpu⌠ caε contaiε ß wholσ sequencσ oµ commands« A≤ ß result¼ yo⌡ d∩ no⌠ áhavσ ì
t∩ áinterrup⌠ you≥ thinkinτ t∩ wai⌠ fo≥ onσ commanΣ t∩ finisΦ beforσ áyo⌡ ácaε ì
specif∙ áthσ áseconΣ anΣ subsequen⌠ step≤ iε ß process« Yo⌡ caε áworδ áou⌠ áß ì
strateg∙ áfo≥ wha⌠ yo⌡ wan⌠ t∩ accomplisΦ anΣ issuσ al∞ thσ command≤ a⌠ áonce¼ ì
beforσ yo⌡ forge⌠ o≥ ge⌠ confused.
Man∙ áof⌠-repeateΣ ácomputationa∞ átask≤ involvσ ásequence≤ áoµ ácommand≤ ì
(e.g.¼ áediting¼ áassembling¼ linking¼ running╗ o≥ áediting¼ áspel∞ áchecking¼ ì
printing)« á Iε sucΦ cases¼ thσ ┌-Systeφ alia≤ facilit∙ (simila≥ iε somσ áway≤ ì
t∩ áSUBMI╘ ábu⌠ fa≥ morσ flexible⌐ caε bσ useΣ t∩ definσ ß ne≈ ácommanΣ áname¼ ì
which¼ wheε invoked¼ perform≤ thσ entirσ sequence« Thi≤ save≤ thσ use≥ ß álo⌠ ì
oµ átypinτ bu⌠ morσ importantl∙ eliminate≤ thσ neeΣ t∩ remembe≥ áexactl∙ áwha⌠ ì
thσ ásequencσ is« Basically¼ yo⌡ solvσ thσ probleφ oncσ anΣ pu⌠ thσ ásolutioε ì
int∩ aε alia≤ script« Froφ theε on¼ thσ compute≥ i≤ smar⌠ enougΦ t∩ takσ carσ ì
oµ áthσ comple° detail≤ fo≥ you« ╔ havσ giveε man∙ example≤ oµ thi≤ áiε ápas⌠ ì
columns.
Conditiona∞ CommanΣ Execution
Therσ ái≤ áonl∙ ás∩ mucΦ onσ caε accomplisΦ oε ß compute≥ á(o≥ áiε álife⌐ ì
withou⌠ ámakinτ decisions« Havσ yo⌡ eve≥ seeε ß programminτ languagσ witΦ án∩ ì
abilit∙ át∩ perforφ test≤ anΣ ac⌠ iε differen⌠ way≤ dependinτ oε thσ áresults┐ ì
Flo≈ ácontro∞ á(IF/ELSE/ENDIF⌐ i≤ uniquσ t∩ thσ á┌-Systeφ ácommanΣ áprocessor« ì
Othe≥ áoperatinτ system≤ tha⌠ offe≥ flo≈ contro∞ a⌠ al∞ limi⌠ i⌠ t∩ áoperatioε ì
insidσ ß batcΦ o≥ scrip⌠ language.
┴ áspecia∞ se⌠ oµ ┌-Systeφ command≤ caε tes⌠ ß widσ rangσ oµ áconditions¼ ì
anΣ áthσ commanΣ processo≥ wil∞ usσ thσ result≤ oµ thσ test≤ t∩ ádecidσ áwhicΦ ì
subsequen⌠ command≤ wil∞ bσ performeΣ anΣ whicΦ wil∞ bσ skipped« Thi≤ áallow≤ ì
thσ á┌-Systeφ át∩ responΣ iε ß remarkabl∙ flexiblσ anΣ áintelligen⌠ áway« áThσ ì
solutioε t∩ ß comple° computinτ task¼ onσ tha⌠ require≤ oε-thσ-spo⌠ ádecisioε-ì
making¼ ácaε ábσ workeΣ ou⌠ oncσ anΣ embeddeΣ iε aε alia≤ ácommand« áTheε áyo⌡ ì
won'⌠ havσ t∩ ta° you≥ braiε thσ nex⌠ timσ yo⌡ neeΣ t∩ perforφ thi≤ task¼ áanΣ ì
novicσ áuser≤ wil∞ bσ ablσ t∩ d∩ thing≤ oε you≥ compute≥ tha⌠ woulΣ havσ ábeeε ì
beyonΣ thei≥ owε abilit∙ t∩ figurσ out.
CommanΣ Processo≥ Shells
Iµ yo⌡ d∩ no⌠ wan⌠ t∩ dea∞ witΦ thσ operatinτ systeφ a⌠ thσ commanΣ leve∞ ì
o≥ áiµ áyo⌡ wan⌠ t∩ havσ ß commanΣ processo≥ witΦ differen⌠ features¼ áthσ á┌-ì
Systeφ shel∞ facilit∙ allow≤ yo⌡ t∩ instal∞ substitutσ use≥ interface≤ oµ you≥ ì
owε choicσ a⌠ will« The∙ caε eveε bσ nesteΣ withiε eacΦ other.
Shell≤ comσ iε tw∩ commoε varieties║ men⌡ shell≤ anΣ histor∙ shells« áThσ ì
men⌡ áinterface≤ allo≈ thσ use≥ t∩ picδ task≤ witΦ singlσ keystroke≤ anΣ áhavσ ì
thσ áshel∞ áprograφ ágeneratσ thσ comple° sequence≤ oµ ácommand≤ árequireΣ át∩ ì
perforφ thosσ tasks« Thσ men⌡ systeφ shield≤ thσ use≥ froφ complexity¼ ásave≤ ìètyping¼ anΣ greatl∙ reduce≤ thσ chancσ oµ error.
Histor∙ áshell≤ áarσ áenhanceΣ ácommanΣ áprocessor≤ átha⌠ áremembe≥ áyou≥ ì
command≤ anΣ allo≈ yo⌡ t∩ recal∞ anΣ edi⌠ previou≤ commanΣ lines« ╔ wisΦ áthσ ì
Apoll∩ áDomaiε áminicompute≥ ásysteφ á╔ usσ a⌠ worδ (no⌠ át∩ ámentioε ám∙ áDO╙ ì
computer⌐ áhaΣ ß histor∙ shel∞ onσ quarte≥ a≤ nicσ a≤ ┌-System'≤ LS╚ o≥ áEASE« ì
The∙ áworδ álikσ ápowerfu∞ wordprocessor≤ oε you≥ ácommanΣ áhistory¼ áallowinτ ì
searchinτ anΣ extensivσ editing.
Wha⌠ Iµ Yo⌡ Makσ ß Mistake
Thi≤ i≤ onσ oµ thσ othe≥ area≤ iε whicΦ mos⌠ operatinτ system≤ behavσ áiε ì
aε áabominabl∙ áprimitivσ ámanner« Wheε yo⌡ issuσ ß commanΣ átha⌠ ácanno⌠ ábσ ì
performed¼ áthe∙ jus⌠ issuσ aε erro≥ messagσ anΣ theε dum≡ yo⌡ bacδ t∩ ásquarσ ì
one« Ofteε yo⌡ arσ no⌠ eveε tolΣ wha⌠ sor⌠ oµ erro≥ occurreΣ (conside≥ áDOS'≤ ì
wonderfull∙ helpfu∞ "baΣ commandó message).
Thσ á┌-Systeφ ábehave≤ iε ß civilizeΣ manne≥ unde≥ áthesσ ácircumstances« ì
Wheε aε erro≥ occurs¼ thσ commanΣ processo≥ turn≤ thσ baΣ commanΣ linσ ove≥ t∩ ì
ß áuse≥-specifieΣ erro≥ handler« Thσ mos⌠ sophisticateΣ erro≥ handler≤ áallo≈ ì
thσ operato≥ t∩ edi⌠ thσ commanΣ anΣ thu≤ recove≥ easil∙ froφ typinτ mistakes« ì
Iε áß ámultiplσ commanΣ sequence¼ iµ subsequen⌠ command≤ werσ alloweΣ át∩ áruε ì
afte≥ aε earlie≥ commanΣ failed¼ therσ coulΣ bσ disastrou≤ repercussions¼ áanΣ ì
aε erro≥ handle≥ i≤ indispensible.
Thσ ásysteφ áenvironmen⌠ áeveε contain≤ aε erro≥ type¼ áwhicΦ áthσ áerro≥ ì
handle≥ ácaε usσ t∩ givσ yo⌡ morσ specifiπ informatioε abou⌠ wha⌠ wen⌠ áwrong« ì
I⌠ ma∙ bσ thσ familia≥ erro≥ oµ ß CO═ filσ tha⌠ coulΣ no⌠ bσ found¼ bu⌠ átherσ ì
arσ man∙ othe≥ possiblσ cause≤ fo≥ thσ difficulty« ┴ filσ tha⌠ yo⌡ áspecifieΣ ì
a≤ aε argumen⌠ migh⌠ no⌠ havσ beeε founΣ (e.g.¼ "TYP┼ FILENAMó wheε yo⌡ ámean⌠ ì
"TYP┼ áFILENAME")¼ áo≥ áyo⌡ ma∙ havσ specifieΣ aε ambiguou≤ áfilσ ánamσ át∩ áß ì
prograφ tha⌠ canno⌠ accep⌠ onσ (e.g.¼ "TYP┼ *.DOC").
Systeφ Security
Likσ áminicompute≥ áanΣ mainframσ operatinτ systems¼ thσ á┌-Systeφ ái≤ áß ì
securσ operatinτ system« Thi≤ mean≤ tha⌠ i⌠ ha≤ mechanism≤ fo≥ limitinτ áwha⌠ ì
an∙ áparticula≥ áuse≥ caε d∩ o≥ ge⌠ acces≤ to« Dangerou≤ ácommand≤ á(sucΦ áa≤ ì
erasing¼ ácopying¼ o≥ renaminτ files⌐ caε bσ disableΣ wheε ordinar∙ user≤ áarσ ì
operatinτ áthσ systeφ bu⌠ enableΣ wheε ß privilegeΣ use≥ i≤ a⌠ work« Area≤ áoµ ì
you≥ ádisδ caε bσ restricteΣ froφ acces≤ fo≥ storagσ oµ confidentia∞ o≥ áothe≥ ì
sensitivσ áinformation« á Thesσ securit∙ feature≤ comσ iε ver∙ áhand∙ áiε áthσ ì
implementatioε áoµ ß remotσ acces≤ systeφ o≥ bulletiε boarΣ (seσ Leσ áMcEwen'≤ ì
articlσ áiε áthi≤ áissue)« Therσ i≤ n∩ neeΣ fo≥ áadditiona∞ ásecurit∙ át∩ ábσ ì
provideΣ b∙ thσ remotσ interfacσ prograφ (BYE)« Thσ ┌-Systeφ alread∙ include≤ ì
ß ful∞ suitσ oµ program≤ fo≥ regulatinτ anΣ controllinτ systeφ security.
Summary
è T∩ suφ i⌠ up¼ thσ goa∞ oµ thσ ┌-Systeφ i≤ t∩ providσ aε operatinτ ásysteφ ì
tha⌠ ácaε bσ tailoreΣ extensivel∙ t∩ use≥ preference≤ anΣ tha⌠ caε bσ madσ át∩ ì
handlσ áoε it≤ owε anΣ automaticall∙ a≤ man∙ computationa∞ detail≤ a≤ i⌠ ácan¼ ì
leavinτ áthσ áuse≥ áfreσ t∩ concentratσ solel∙ oε thosσ áaspect≤ áoµ ácompute≥ ì
operatioε tha⌠ requirσ humaε intelligence.
Fakinτ Ou⌠ Thσ System
Fo≥ thσ technica∞ par⌠ oµ thi≤ column¼ ╔ woulΣ likσ t∩ talδ briefl∙ abou⌠ ì
somσ átechnique≤ fo≥ addinτ extension≤ t∩ ß ┌-Systeφ tha⌠ i⌠ wa≤ no⌠ ádesigneΣ ì
t∩ accept« Thσ neeΣ fo≥ thi≤ tricδ arosσ iε connectioε witΦ thσ áinstallatioε ì
oµ áZSDO╙ áanΣ ZDDO╙ (anΣ thei≥ clocδ drivers⌐ oε aε SB18░ compute≥ áwitΦ áthσ ì
XBIO╙ enhanceΣ BIOS¼ bu⌠ i⌠ caε bσ usefu∞ iε othe≥ situation≤ a≤ well.
XBIO╙ ái≤ ß ver∙ nicσ anΣ flexiblσ system« Onσ oµ it≤ maiε áfeature≤ ái≤ ì
tha⌠ ái⌠ ákeep≤ mucΦ oµ thσ BIO╙ iε aε alternatσ memor∙ bank¼ leavinτ áß ámucΦ ì
large≥ áTP┴ á(transien⌠ prograφ area⌐ fo≥ applicatioε program≤ áthaε ádiΣ áthσ ì
standarΣ BIO╙ froφ MicroMint« Thσ configuratioε anΣ loadinτ process¼ however¼ ì
i≤ somewha⌠ unconventiona∞ (ß forerunne≥ iε somσ way≤ t∩ thσ NZCO═ anΣ áZ3PLU╙ ì
techniques).
Thσ XBIO╙ systeφ i≤ loadeΣ no⌠ froφ systeφ track≤ oε thσ disδ bu⌠ froφ áß ì
file« á Thi≤ áfilσ ái≤ generateΣ b∙ ß specia∞ utilit∙ áprograφ ácalleΣ áSYSBL─ ì
(SYSteφ áBuiLD⌐ átha⌠ áallow≤ áonσ t∩ definσ iε áß árathe≥ áflexiblσ áwa∙ áthσ ì
configuratioε áoµ one'≤ persona∞ ┌-System¼ includinτ thσ name≤ oµ thσ CC╨ áanΣ ì
DO╙ áfile≤ t∩ bσ used« Thosσ componen⌠ files¼ however¼ mus⌠ bσ áavailablσ áiε ì
RE╠ áformat¼ áanΣ thσ ne≈ ┌-Systeφ DO╙ component≤ arσ supplieΣ iε áZR╠ áforma⌠ ì
onl∙ á(becausσ áthe∙ áhavσ áhook≤ t∩ othe≥ part≤ oµ thσ ásysteφ átha⌠ ácaε ábσ ì
resolveΣ onl∙ b∙ tha⌠ format).
Changinτ System≤ Usinτ JetLDR
JetLD╥ i≤ ß lovel∙ littlσ utilit∙ writteε b∙ Bridge≥ Mitchel∞ tha⌠ áknow≤ ì
ho≈ t∩ loaΣ almos⌠ an∙ modulσ iε ß ┌ operatinτ system« I⌠ i≤ mucΦ faste≥ áanΣ ì
morσ carefu∞ thaε it≤ predecessors¼ LD╥ anΣ LLDR¼ anΣ i⌠ i≤ no⌠ limiteΣ t∩ thσ ì
noε-codσ ┌ module≤ ¡¡ sucΦ a≤ thσ ND╥ (nameΣ director∙ register⌐ ¡¡ o≥ t∩ codσ ì
module≤ ápreassembleΣ fo≥ ß fixeΣ systeφ ¡¡ sucΦ a≤ aε RC╨ á(residen⌠ ácommanΣ ì
package⌐ ámodulσ FIXED.RCP« I⌠ caε loaΣ codσ module≤ assembleΣ iε ZR╠ áforma⌠ ì
t∩ áwhateve≥ addres≤ tha⌠ modulσ occupie≤ iε thσ curren⌠ systeφ anΣ áwitΦ áal∞ ì
thσ áhook≤ t∩ othe≥ ┌-Systeφ module≤ generateΣ a⌠ loaΣ time« Thu≤ áMYRCP.ZRL¼ ì
assembleΣ once¼ caε bσ useΣ iε an∙ systeφ configuratioε tha⌠ allocate≤ áenougΦ ì
rooφ fo≥ aε RC╨ oµ tha⌠ size.
Mos⌠ remarkably¼ JetLD╥ caε loaΣ eveε maiε operatinτ systeφ modules║ CCP¼ ì
DOS¼ áo≥ BIOS« Specia∞ adjunc⌠ configuratioε file≤ (CFG⌐ arσ useΣ t∩ hel≡ ái⌠ ì
iε somσ oµ thesσ specializeΣ task≤ (ß littlσ morσ abou⌠ tha⌠ later)« áJetLDR'≤ ì
interna∞ hel≡ screeε i≤ reproduceΣ iε Fig« ▒ s∩ yo⌡ caε seσ thσ wholσ lis⌠ áoµ ì
module≤ i⌠ caε handle« I⌠ i≤ availablσ froφ thσ usua∞ ┌ supplier≤ fo≥ $20.
So¼ thσ obviou≤ solutioε t∩ thσ probleφ oµ gettinτ ZSDO╙ o≥ ZDDO╙ runninτ ì
unde≥ áXBIO╙ i≤ firs⌠ t∩ generatσ anΣ boo⌠ ß standarΣ ZRDO╙ systeφ á(ZRDOS.RE╠ ìècome≤ áwitΦ áthσ SB180⌐ anΣ theε t∩ replacσ ZRDO╙ with¼ say¼ ZDDO╙ áusinτ áthσ ì
JetLD╥ command:
JETLD╥ ZDDOS.ZRL
ZSDO╙ ácaε bσ loadeΣ jus⌠ a≤ easily« Oε m∙ systeφ ╔ havσ ARUN┌ áaliase≤ átha⌠ ì
swa≡ DOS≤ iε ß jiff∙ thi≤ wa∙ iε casσ ╔ wan⌠ t∩ perforφ somσ experiments.
There'≤ Thσ Rub
No≈ ácome≤ thσ problem« It'≤ ver∙ nicσ tha⌠ wσ no≈ havσ ZDDO╙ áo≥ áZSDO╙ ì
loadeΣ anΣ running¼ bu⌠ iµ wσ wan⌠ t∩ takσ advantagσ oµ it≤ wonderfu∞ timσ anΣ ì
datσ áfeatures¼ wσ mus⌠ finΣ ß wa∙ t∩ loaΣ it≤ clocδ anΣ (fo≥ ZSDOS⌐ ástampinτ ì
module¼ átoo« á Thσ áZDO╙ utilit∙ SETUPZS╘ make≤ i⌠ ver∙ eas∙ át∩ ácreatσ áthσ ì
requireΣ áloader¼ áLDTIM.COM╗ thσ probleφ is║ wherσ caε LDTI═ pu⌠ áthσ ádrive≥ ì
code┐ [Aside║ Fo≥ thosσ wh∩ owε it¼ ╔ aφ tolΣ tha⌠ thσ DateStampe≥ BS╪ modulσ ì
wil∞ worδ witΦ ZSDOS¼ bu⌠ ╔ havσ no⌠ trieΣ thi≤ myself« I⌠ require≤ n∩ memor∙ ì
t∩ load.]
Iε áaε áNZCO═ system¼ thσ MKZC═ systeφ definitioε utilit∙ allow≤ áonσ át∩ ì
specif∙ áß á"use≥ ábufferó areß iε memory¼ anΣ thi≤ i≤ jus⌠ áperfec⌠ áfo≥ áthσ ì
clock/stam≡ module« ZDO╙ eveε ha≤ specia∞ facilitie≤ fo≥ takinτ advantagσ áoµ ì
thi≤ ábuffer« LDTI═ caε automaticall∙ determinσ thσ locatioε oµ átha⌠ ábuffe≥ ì
anΣ instal∞ thσ driver≤ there¼ anΣ ß specia∞ patcΦ t∩ NZCO═ (includeΣ witΦ thσ ì
ZDO╙ ápackage⌐ give≤ NZCO═ thσ abilit∙ t∩ reconnec⌠ thσ driver≤ áautomaticall∙ ì
afte≥ ß ne≈ DO╙ i≤ loaded.
XBIOS'≤ áSYSBL─ áutility¼ áunfortunately¼ doe≤ no⌠ suppor⌠ ásucΦ áß áuse≥ ì
buffe≥ (thi≤ i≤ truσ eveε iε thσ 1.▓ versioε tha⌠ i≤ ablσ t∩ loaΣ ZR╠ áfiles)« ì
Therσ ái≤ áß wa∙ t∩ tricδ thσ systeφ int∩ makinτ somσ rooφ áfo≥ áextrß ámemor∙ ì
modules« á Thi≤ ái≤ át∩ assigε thσ extrß memor∙ spacσ needeΣ át∩ áonσ áoµ áthσ ì
standarΣ ámodules¼ ásucΦ a≤ thσ RCP« Fo≥ example¼ iµ yo⌡ usσ aε áRC╨ áoµ áthσ ì
usua∞ á2╦ á(1╢ record⌐ sizσ anΣ neeΣ onσ pagσ (tw∩ records⌐ oµ ámemor∙ áfo≥ áß ì
ZDDO╙ áclocδ ádriver¼ yo⌡ simpl∙ specif∙ aε 1╕-recorΣ RC╨ space« á Then¼ áwheε ì
SETUPZS╘ ask≤ yo⌡ fo≥ thσ addres≤ t∩ whicΦ thσ clocδ drive≥ shoulΣ bσ áloaded¼ ì
yo⌡ givσ i⌠ thσ startinτ addres≤ oµ thσ las⌠ pagσ oµ thi≤ RC╨ space.
Oncσ áthesσ step≤ havσ beeε followed¼ ZDDO╙ shoulΣ bσ runninτ áwitΦ ádatσ ì
stamping« á ZSDO╙ ácoulΣ bσ installeΣ similarl∙ excep⌠ tha⌠ áeveε ámorσ áextrß ì
spacσ áwoulΣ havσ t∩ bσ allocateΣ t∩ thσ RCP« AlthougΦ wha⌠ ╔ havσ ádescribeΣ ì
s∩ fa≥ wil∞ ge⌠ thσ systeφ running¼ therσ i≤ somσ dange≥ tha⌠ aε oversizσ áRC╨ ì
coulΣ bσ loadeΣ b∙ acciden⌠ anΣ overwritσ thσ clocδ driver« T∩ preven⌠ áthis¼ ì
thσ áEN╓ modulσ shoulΣ bσ patcheΣ t∩ indicatσ tha⌠ onl∙ thσ actua∞ 1╢ árecord≤ ì
(10H⌐ arσ available.
Fo≥ áthosσ áwh∩ d∩ no⌠ facσ thσ probleφ oµ installinτ ZDO╙ oε áaε áXBIO╙-ì
equippeΣ SB180¼ therσ arσ othe≥ use≤ oµ thi≤ kinΣ oµ trick« Fo≥ peoplσ wh∩ d∩ ì
no⌠ havσ thσ necessar∙ tool≤ (e.g.¼ MOVCPM⌐ t∩ movσ thσ BIO╙ dowε t∩ makσ rooφ ì
fo≥ áspecia∞ driver≤ (sucΦ a≤ RA═ disδ driver≤ anΣ specia∞ I/╧ áboards)¼ áthi≤ ì
samσ átricδ caε bσ applieΣ t∩ opeε u≡ protecteΣ-memor∙ spacσ fo≥ áthem« áOthe≥ ì
peoplσ áma∙ finΣ i⌠ usefu∞ fo≥ quicδ experiment≤ witΦ specia∞ ádriver≤ ábeforσ ìègoinτ t∩ thσ troublσ oµ movinτ thσ operatinτ systeφ around.
Therσ i≤ onσ fina∞ refinemen⌠ ╔ woulΣ likσ t∩ mention« I⌠ i≤ somethinτ ╔ ì
learneΣ áfroφ áGenσ Pizzetta¼ wh∩ tooδ m∙ genera∞ árecommendation≤ áabovσ áanΣ ì
workeΣ ou⌠ thσ detail≤ (seσ hi≤ file¼ Z─-XB11.LBR¼ availablσ oε man∙ ┌-Nodes)« ì
╔ áhavσ áusuall∙ useΣ eithe≥ thσ IO╨ o≥ RC╨ module≤ fo≥ thi≤ trick¼ ábu⌠ áGenσ ì
recommendeΣ usinτ thσ ND╥ instead« Thσ reasoε fo≥ thi≤ i≤ tha⌠ thσ IOP¼ áRCP¼ ì
anΣ FC╨ ge⌠ allocateΣ iε 12╕-bytσ chunks¼ whilσ thσ ND╥ get≤ allocateΣ iε mucΦ ì
smalle≥ 1╕-bytσ chunks¼ thσ spacσ requireΣ fo≥ onσ name« Iµ you≥ clocδ ádrive≥ ì
takes¼ áfo≥ example¼ 27░ byte≤ (10EH)¼ yo⌡ woulΣ havσ t∩ allocatσ threσ áextrß ì
records¼ ábecausσ áthσ drive≥ i≤ ß tin∙ bi⌠ ove≥ tw∩ records« á Iµ áyo⌡ ástea∞ ì
spacσ áfroφ áaε NDR¼ yo⌡ caε adΣ jus⌠ tw∩ records¼ bu⌠ reducσ áthσ ánumbe≥ áoµ ì
name≤ iε thσ ND╥ b∙ 1.
Changinτ CommanΣ Processors
Generatinτ ß ne≈ CC╨ usinτ JetLD╥ i≤ ß littlσ trickie≥ thaε changinτ áthσ ì
DOS« á JetLD╥ ácould¼ a≤ i⌠ doe≤ witΦ ß DO╙ o≥ BIO╙ module¼ loaΣ thσ áne≈ áCC╨ ì
int∩ áit≤ áoperatinτ ápositioε iε memory¼ bu⌠ thi≤ woulΣ ábσ áoµ áquestionablσ ì
value¼ sincσ thσ CC╨ woulΣ survivσ onl∙ unti∞ thσ nex⌠ warmboot« So¼ instead¼ ì
wheε áprocessinτ áß áCC╨ áZR╠ module¼ JetLD╥ ánormall∙ áwrite≤ áthσ áresultinτ ì
absolutσ-codσ CC╨ t∩ ß filσ ZCCP.CC╨ (iε thσ roo⌠ directory¼ ╔ believe).
Thi≤ ái≤ wherσ CF╟ file≤ comσ int∩ play« The∙ arσ specia∞ ácodσ ámodule≤ ì
tha⌠ JetLD╥ use≤ t∩ perforφ specia∞ processinτ (seσ thσ filσ JLTOOLS.LB╥ oε ┌-ì
Node≤ áfo≥ ámorσ detaileΣ information)« Fo≥ example¼ CCPCFG.ZR╠ i≤ áonσ átha⌠ ì
tell≤ áJetLD╥ ho≈ t∩ deposi⌠ thσ absolutσ CC╨ codσ tha⌠ i⌠ generate≤ ádirectl∙ ì
int∩ thσ XBIO╙ raφ imagσ oµ thσ CC╨ iε bankeΣ memor∙ (froφ whicΦ i⌠ i≤ áloadeΣ ì
oε eacΦ warφ boot)« ┴ simila≥ CF╟ filσ coulΣ bσ writteε t∩ tel∞ JetLD╥ ho≈ t∩ ì
instal∞ thσ ne≈ CC╨ ont∩ thσ systeφ track≤ oµ thσ curren⌠ drivσ-┴ disk¼ bu⌠ s∩ ì
fa≥ án∩ onσ ha≤ donσ this« ╔ woulΣ bσ happ∙ t∩ providσ thσ CCPCF╟ ámodulσ át∩ ì
XBIO╙ áowner≤ áwh∩ woulΣ likσ i⌠ o≥ t∩ other≤ wh∩ woulΣ likσ t∩ usσ ái⌠ áa≤ áß ì
mode∞ fo≥ writinτ othe≥ CF╟ file≤ (senΣ mσ ß formatteΣ disδ witΦ you≥ cop∙ áoµ ì
JetLDR¼ returε mailer¼ etc.).
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡-
JetLD╥ fo≥ ┌-System≤ (ZCPR3)¼ Versioε 1.00
Copyrigh⌠ (c⌐ 198╕ Bridge≥ Mitchell
Syntax:
JetLDR [du:][library][.lbr] member1.typ member2.typ ...
or
JetLDR [du:]file1.typ [du:]file2.typ [du:]file3.typ ...
ENV - environment FCP - flow commands
IOP - input/output RCP - resident commands
NDR - named directories Z3T - terminal capabilities
ZRL or REL - module in SLR or MS-relocatable (REL) format
with member name: RCP, FCP, IOP, CCP, CP3, DOS, DO3, BIO, CFG or BSX
èNotes:
If first file is a library, extract remaining files from it.
An ENV file must be the first loaded.
Preceed special modules (DOS, RSX, BSX, ...) with appropriate CFG file.
Use Path: YES Root Only: NO Scan Current: YES Explicit Directory: A0:
-------------------------
Figure 1. This is the internal help screen displayed by the command
"JETLDR //". It shows how flexible a package loader JetLDR is.
-----------------------------------------------------------------------------
[This article was originally published in issue 42 of The Computer Journal,
P.O. Box 12, South Plainfield, NJ 07080-0012 and is reproduced with the
permission of the author and the publisher. Further reproduction for non-
commercial purposes is authorized. This copyright notice must be retained.
(c) Copyright 1990, 1991 Socrates Press and respective authors]