home *** CD-ROM | disk | FTP | other *** search
Text File | 1994-07-13 | 51.9 KB | 1,030 lines |
- .he ZCPR2 Rationale Manual
- .fo Page #
- Rationale Manual for ZCPR2
-
-
- 1.0 Introduction
-
- Thi≤á Rationalσá Manua∞ assume≤ tha⌠ yo⌡ havσ reaΣ thσá Conì
- cept≤á Manua∞ oµ ZCPR▓ anΣ understanΣ it«á Havinτ reaΣá thσá Inì
- stallatioεá Manua∞ anΣ thσ User'≤ Guidσ i≤ als∩ helpful«á Iµ yo⌡ ì
- havσ no⌠ reaΣ a⌠ leas⌠ thσ Concept≤ Manua∞ yet¼á ╔ recommenΣ tha⌠ ì
- yo⌡ g∩ bacδ anΣ reaΣ it.
-
- ╔ gues≤ thσ ver∙ firs⌠ questioε t∩ answe≥ iε thi≤ manua∞á i≤ ì
- "Wh∙á havσá ßá ZCP╥ o≥ ZCPR▓ iε thσ firs⌠á place?óá Rathe≥á thaε ì
- responΣ witΦ anothe≥ question¼á likσ "Wh∙ not?"¼ let'≤ takσ ou⌠ ß ì
- littlσ timσ t∩ looδ a⌠ CP/M.
-
- CP/═ wa≤ anΣ i≤ ß gooΣ idea« I⌠ i≤ ß smal∞ operatinτ systeφ ì
- whicΦ encapsulate≤ thσ targe⌠ microcompute≥ iε ß virtua∞ machine« ì
- ThrougΦá thi≤ virtua∞ machine¼á softwarσ transportabilit∙ a⌠á thσ ì
- binar∙ levelô i≤ realized«á A≤ ß genera∞ rule¼ yo⌡ caε picδ u≡ aε ì
- objec⌠á prograφ (iε absolutσ objec⌠ form⌐ whicΦ run≤ oε onσá CP/═ ì
- system¼á transpor⌠á i⌠á t∩ anothe≥ CP/═ systeφ whicΦá i≤á runninτ ì
- differen⌠á hardware¼á anΣ executσ i⌠ withou⌠ modifyinτ i⌠ iεá an∙ ì
- way« Thi≤ i≤ significant!
-
- CP/═ i≤ b∙ n∩ mean≤ ß panacea¼ however« ┴ typica∞ operatinτ ì
- systeφá (iε thσ conventiona∞ sense⌐ manage≤ fou≥ resource≤ oµ thσ ì
- compute≥á system«áá Thesσá arσáá Processes/Processors¼áá Memory¼ ì
- Devices¼á anΣá Information«á CP/═á doe≤ virtuall∙ n∩ proces≤á o≥ ì
- memor∙á management¼á anΣá n∩ protectioε i≤ affordeΣ thσá use≥á t∩ ì
- speaδ of« Oncσ ß prograφ i≤ alloweΣ t∩ execute¼ iµ i⌠ choose≤ t∩ ì
- erasσ CP/═ froφ memory¼ i⌠ can« Iµ i⌠ choose≤ t∩ erasσ thσ disk¼ ì
- it can. There is almost nothing to stop it.
-
- Thσá CP/═ virtua∞ machinσ shine≤ iε thσ performancσá oµá thσ ì
- function≤á oµá devicσá anΣá informatioεá management«áá Thσá BIO╙ ì
- provide≤á ß software-based¼á machine-independen⌠ interfacσ t∩ thσ ì
- physica∞á device≤ oµ thσ compute≥ system«á Thσ BDO╙á provide≤á ß ì
- software-based¼ machine-independen⌠ interfacσ t∩ thσ file≤ oµ thσ ì
- compute≥ system« Aε application≤ prograφ caε usσ thesσ tw∩ part≤ ì
- oµ CP/═ t∩ communicatσ directl∙ witΦ thσ hardware¼á regardles≤ oµ ì
- wha⌠á thσ hardwarσ actuall∙ is¼á anΣ t∩ manipulatσ file≤ a⌠ will« ì
- Thesσ interfaces¼á generall∙ speaking¼ arσ thσ samσ regardles≤ oµ ì
- what machine the CP/M system is running on.
-
- Bu⌠ CP/═ i≤ divideΣ int∩ threσ parts« Thσ CC╨ i≤ thσ third« ì
- Thi≤ i≤ thσ interactivσ interfacσ t∩ thσ CP/═ user«á ThrougΦ thσ ì
- CCP¼ thσ CP/═ use≥ communicate≤ t∩ thσ system« Interpretatioε oµ ì
- thσá al∞ oµ thσ user'≤ commands¼á executioε oµ somσ oµ thσ user'≤ ì
- commands¼á interpretatioεá anΣ executioε oµ command≤á froφá disk-ì
- baseΣá commanΣá files¼á anΣ initiatioε oµ processe≤ (runninτá CO═ ì
- files⌐á iε thσ CP/═ environmen⌠ arσ fou≥ oµ thσá majo≥á function≤ ì
- performeΣ b∙ thσ CCP.
-
-
- ZCP╥á (o≥ ZCPR1⌐ wa≤ originall∙ designeΣ t∩ replacσ thσá CC╨ ì
- iε aε attemp⌠ t∩ improvσ thσ user'≤ interfacσ t∩ thσ CP/═ system« ì
- Thσ BIO╙ anΣ BDO╙ werσ untoucheΣ b∙ ZCPR1¼ s∩ thσ virtua∞ machinσ ì
- remaineΣá intac⌠á and¼á witΦ it¼á thσ benefit≤ deriveΣ froφá thi≤ ì
- virtua∞ machine«á WitΦ ver∙ fe≈ exceptions¼á an∙ CO═ filσá whicΦ ì
- raεá unde≥ CP/═ coulΣ als∩ ruε unde≥ ß ZCPR1-baseΣ systeφ withou⌠ ì
- modification.
-
- ZCPR▒á changeΣ thσ user'≤ interfacσ iε onl∙ ß fe≈ ke∙á ways« ì
- First¼á i⌠á provideΣ ß simplσ command-searcΦ hierarch∙ s∩ tha⌠á ß ì
- brieµ searcΦ woulΣ bσ performeΣ fo≥ ß commanΣ oncσ i⌠ wa≤ issued« ì
- Iε thi≤ way¼ thσ use≥ neeΣ n∩ longe≥ bσ concerneΣ abou⌠ wherσ hi≤ ì
- CO═ file≤ werσ located¼ anΣ hσ coulΣ star⌠ t∩ makσ morσ effectivσ ì
- usσ oµ USE╥ area≤ iε dividinτ u≡ hi≤ project≤ anΣ such« Duplicaì
- tioεá oµá CO═á file≤ iε differen⌠ use≥ area≤á o≥á duplicatioεá oµ ì
- director∙á entrie≤á pointinτ t∩ thσ samσ CO═ filσ werσ n∩á longe≥ ì
- necessary«á Second¼ thσ ZCPR1-residen⌠ command≤ werσ enhanceΣ iε ì
- mino≥á way≤ t∩ improvσ thei≥ utility«á ERA¼á fo≥á instance¼á no≈ ì
- printeΣ ou⌠ thσ name≤ oµ thσ file≤ i⌠ erased¼á anΣ command≤á likσ ì
- LIS╘á (whicΦá TYPEΣ t∩ thσ printer⌐ anΣ G╧ (whicΦ reexecuteΣá thσ ì
- CO═ imagσ residinτ iε memor∙ a⌠ 100H⌐ werσ added« Alonτ thσ samσ ì
- lines¼á thσá promp⌠ wa≤ changeΣ s∩ tha⌠ thσ use≥ numbe≥á wa≤á inì
- cluded¼ thereb∙ tellinτ thσ use≥ wha⌠ use≥ areß hσ wa≤ in.
-
- ZCPR▒ was¼á iε effect¼á ß logica∞ extensioε t∩ thσ CP/═ CCP¼ ì
- anΣ i⌠ cos⌠ nothinτ t∩ implemen⌠ it«á ZCPR▒ wa≤ thσ samσ sizσ a≤ ì
- thσ CP/═ CCP¼ anΣ i⌠ simpl∙ overlaiΣ it« It≤ solσ purposσ wa≤ t∩ ì
- improvσ thσ user'≤ interfacσ t∩ thσ system¼á consequentl∙ improvì
- inτ hi≤ productivit∙ a≤ well«á Thσ use≥ coulΣ structurσ hi≤ worδ ì
- t∩ somσ exten⌠ anΣ concentratσ morσ oε thσ probleφ a⌠ hand.
-
- No≈á ZCPR▓á i≤ cominτ int∩ play«á Thσ basiπ reasoε fo≥á it≤ ì
- existencσá i≤á thσá samσ a≤ fo≥ ZCPR▒ -- t∩á improvσá thσá user'≤ ì
- interfacσá t∩ hi≤ CP/═á system«á Unlikσá ZCPR1¼á however¼á ZCPR▓ ì
- significantl∙á extend≤á thi≤á interfacσ anΣ i≤ morσá flexiblσá iε ì
- allowinτá thσá use≥ (o≥ installer⌐ t∩ tailo≥ thσá systeφá t∩á thσ ì
- user'≤á needs«á Morσ humaε engineerinτ principle≤ havσ beeεá apì
- plieΣ unde≥ ZCPR2« Directorie≤ ma∙ bσ giveε mnemoniπ names¼ likσ ì
- JEF╞ o≥ TEXT¼ thσ command-searcΦ patΦ ma∙ bσ specifieΣ anΣ changì
- eΣ b∙ thσ use≥ dynamically¼á facilitie≤ arσ availablσ whicΦ allo≈ ì
- thσá use≥á t∩ emplo∙ al∞ 3▓ use≥ area≤ oε ß disk¼á menu≤á ma∙á bσ ì
- invokeΣá a≤ desireΣ t∩ simplif∙ thσ use≥ interfacσ eveεá more¼á ß ì
- serie≤á oµá command≤ ma∙ bσ expresseΣ oε thσ samσ linσá (allowinτ ì
- thσ use≥ t∩ g∩ ofµ anΣ d∩ somethinτ elsσ whilσ thσ systeφ i≤ bus∙ ì
- workinτ fo≥ him)¼ anΣ I/╧ caε bσ redirecteΣ mnemonicall∙ (Consolσ ì
- caε bσ defineΣ a≤ MODE═ rathe≥ thaε UC1).
-
- AnΣá al∞ oµ thi≤ i≤ donσ witΦ ß minimuφ oµ overhead«á A≤á ß ì
- rule¼á ZCPR▓ i≤ thσ samσ sizσ a≤ thσ CP/═ CCP¼ anΣ ß mino≥ growtΦ ì
- iεá thσá BIO╙ (usuall∙ oε thσ orde≥ oµ 1K⌐ i≤ requireΣá t∩á full∙ ì
- implemen⌠á ß ZCPR▓ System«á Unde≥ ZCPR2¼á you≥ TP┴ ma∙ sta∙á thσ ì
- samσ sizσ a≤ i⌠ ha≤ alway≤ been¼á or¼ a≤ morσ feature≤ arσ impleì
- mented¼ i⌠ ma∙ shrinδ slightly¼ bu⌠ usuall∙ n∩ morσ thaε 1K.
-
- è
- Gettinτ bacδ t∩ thσ origina∞ questioε oµ "WHY?"¼ ╔ gues≤ thσ ì
- answe≥ i≤ t∩ attemp⌠ t∩ improvσ thσ worlΣ oµ thσ user«á T∩á makσ ì
- thσá machinσá morσá subservien⌠ t∩ thσ wil∞ oµ thσá use≥á anΣá t∩ ì
- increasσá thσ productivit∙ oµ thσ use≥ arσ tw∩ ke∙ way≤ iεá whicΦ ì
- ZCPR▓ attempt≤ t∩ improvσ thσ user'≤ world.
-
-
- 2.0 Comparison Between ZCPR2 and the CP/M 2.2 CCP
-
- Thi≤ sectioε oµ thσ Rationalσ outline≤ thσ functiona∞á diffì
- erence≤á betweeε ZCPR▓ anΣ thσ CP/═ 2.▓ CC╨ witΦ ß brieµ explanaì
- tioεá oµá wh∙ thesσ feature≤ werσ implementeΣ iεá ZCPR▓á iεá thi≤ ì
- fashion.
-
-
- 2.1 The ZCPR2 Prompt
-
- First¼á thσ prompt« A≤ ╔ vie≈ thσ purposσ oµ thσ prompt¼ i⌠ ì
- serve≤ t∩ tel∞ yo⌡ wherσ yo⌡ arσ locateΣ anΣ tha⌠ ZCPR▓ i≤á read∙ ì
- t∩á accep⌠á ß commanΣ line«á Unde≥ CP/M'≤ CCP¼á thi≤ promp⌠á wa≤ ì
- simpl∙á thσ disδ lette≥ followeΣ b∙ ßá ">"«á Unde≥á ZCPR2¼á thi≤ ì
- promp⌠ ma∙ bσ thσ samσ o≥ i⌠ ma∙ bσ ß D╒ form¼á sucΦ a≤ "A12>ó o≥ ì
- "B1>"¼ whicΦ tell≤ yo⌡ exactl∙ wherσ yo⌡ are.
-
- Iε designinτ thσ ZCPR▓ System¼á however¼á ╔ founΣ ß neeΣ fo≥ ì
- thσá promp⌠ t∩ servσ ß thirΣ function«á Thi≤ functioε i≤ t∩ tel∞ ì
- thσá ZE╪ Monito≥ tha⌠ i⌠ ma∙ begiε supplyinτ inpu⌠ thr⌡ thσá BIO╙ ì
- again«á ZE╪ respond≤ t∩ ß commanΣ whicΦ tell≤ thσ ZE╪ Monito≥ t∩ ì
- sto≡ supplyinτ character≤ thr⌡ thσ BIO╙ anΣ t∩ allo≈ thσ use≥á t∩ ì
- inpu⌠ hi≤ owε text«á Thi≤ i≤ ß nicσ featurσ oµ ZE╪ sincσ commanΣ ì
- filσ processinτ ma∙ no≈ bσ interrupteΣ fo≥ use≥ input«á Thσ use≥ ì
- ma∙á inpu⌠á aεá optioε t∩ ß command¼á ma∙ ente≥ tex⌠ anΣá ruεá aε ì
- editor¼á o≥á ma∙ perforφ othe≥ function≤ requirinτ hi≤á attentioε ì
- whilσ ZE╪ i≤ iε control«á ┴ questioε oµ ho≈ t∩ tel∞ ZE╪ tha⌠á i⌠ ì
- ma∙á resumσ contro∞ camσ up¼á however«á Afte≥ ß lo⌠ oµ deliberaì
- tion¼á ╔ decideΣ tha⌠ ß specia∞ characte≥ sen⌠ t∩ thσ consolσ wa≤ ì
- thσ bes⌠ wa∙ anΣ tha⌠ thi≤ characte≥ shoulΣ bσ sen⌠ b∙ ZCPR2.
-
- Thi≤ character¼á however¼á haΣ t∩ bσ unique« I⌠ shoulΣ bσ ß ì
- characte≥á whicΦá i≤ no⌠ normall∙ sen⌠ t∩ thσá screeεá sincσá ZE╪ ì
- woulΣá star⌠á u≡ immediatel∙ wheε i⌠ sa≈ thi≤ character«á I⌠á i≤ ì
- als∩á preferreΣ tha⌠ thσ use≥ no⌠ bσ forceΣ t∩ issuσá thi≤á charì
- acte≥á himselµá sincσ thσ humaε interfacσ i≤ incumbereΣá b∙á thi≤ ì
- (thσá humaεá i≤ forceΣ t∩ providσ aε arbitrar∙ inpu⌠ t∩ hel≡á thσ ì
- softwarσá along)«á I⌠ make≤ n∩ differencσ iµ thi≤á characte≥á i≤ ì
- printablσá o≥ not¼á s∩ lonτ a≤ i⌠ caε bσ pickeΣ u≡ b∙ ZE╪ a⌠á thσ ì
- righ⌠ timσ anΣ hopefull∙ a⌠ n∩ othe≥ time.
-
-
- Again¼á afte≥ somσ thought¼á ╔ opteΣ t∩ usσ thσ ZCPR▓ promp⌠ ì
- t∩ contaiε thi≤ character«á Thi≤ choicσ wa≤ madσ because¼ iε al∞ ì
- practica∞á case≤ ╔ coulΣ envision¼á thσ neeΣ fo≥ use≥ inpu⌠ woulΣ ì
- bσá sucΦ tha⌠ thσ use≥ woulΣ inpu⌠ hi≤ datß iε orde≥ fo≥ ßá funcì
- tioεá t∩á bσ performeΣ anΣ theε contro∞ woulΣá returεá t∩á ZCPR2« ì
- ZCPR▓á woulΣ alway≤ bσ therσ t∩ turε ZE╪ bacδ oε anΣ woulΣ bσ thσ ì
- onl∙ commoε denominato≥ ╔ coulΣ coun⌠ on«á ╔ didn'⌠ wan⌠ t∩á adΣ ì
- an∙á unnecessar∙á overheaΣ t∩ ZCPR▓ t∩ d∩á thi≤á either¼á so¼á i⌠ ì
- seemeΣá reasonablσá t∩ makσ thσ ">ó characte≥ signfican⌠ t∩á ZEX« ì
- Therσá arσ man∙ case≤ wherσ thσ ">ó characte≥ woulΣ bσá typeΣá b∙ ì
- thσ use≥ iε matΦ expression≤ anΣ thσ like¼ s∩ ╔ electeΣ t∩ definσ ì
- thσ ">ó witΦ it≤ mos⌠ signfican⌠ bi⌠ se⌠ t∩ bσ thσ promp⌠ characì
- ter«á Thi≤ i≤ rathe≥ unique« Iε al∞ case≤ ╔ coulΣ envision¼ thσ ì
- norma∞ usσ oµ ">ó i≤ a≤ 7-bi⌠ ASCI╔ witΦ thσ 8tΦ bi⌠ turneΣ off.
-
- Thσá onl∙á problem≤á ╔ coulΣ seσ witΦ thi≤á arσá witΦá thosσ ì
- terminal≤ wh∩ g∩ int∩ graphic≤ modσ wheε the∙ encounte≥ ß characì
- te≥á witΦ thσ 8tΦ bi⌠ se⌠ anΣ thosσ printer≤ wh∩ responΣ t∩á sucΦ ì
- characters«á Thσá printe≥á probleφ rear≤ it≤ ugl∙ heaΣ wheεá thσ ì
- use≥ employ≤ ^╨ t∩ prin⌠ consolσ output«á Aε answe≥ t∩ thσ firs⌠ ì
- probleφ i≤ t∩ eithe≥ choosσ ß promp⌠ characte≥ tha⌠ doe≤ no⌠ havσ ì
- thi≤á effec⌠ o≥ t∩ adΣ ß 2nΣ bytσ afte≥ thσ ">ó whicΦ i≤á ßá non-ì
- printing¼ non-graphiπ character« Aε answe≥ t∩ thσ seconΣ probleφ ì
- i≤ no⌠ t∩ usσ thσ ^╨ functioε t∩ direc⌠ consolσ outpu⌠ t∩ thσ CR╘ ì
- anΣá printe≥á iε parallel¼á bu⌠ t∩ usσ ß redirectablσ I/╧á drive≥ ì
- whicΦá drive≤á ß consolσ witΦ CR╘ inpu⌠ anΣá CRT/printe≥á output« ì
- Thi≤ drive≥ coulΣ filte≥ thσ MS┬ froφ al∞ character≤ sen⌠ t∩á thσ ì
- printer.
-
-
- 2.2 The ZCPR2 Resident Command Set
-
- Thσ nex⌠ iteφ t∩ discus≤ i≤ thσ ZCPR2-residen⌠ commanΣá set« ì
- ╔á vie≈ thσ se⌠ oµ residen⌠ command≤ unde≥ ZCPR▓ anΣ thσ CP/═ CC╨ ì
- t∩á bσ necessar∙ fo≥ tw∩ reasons║á (1⌐ t∩ quickl∙á perforφá freì
- quently-needeΣ function≤ anΣ (2⌐ t∩ providσ thesσ function≤ withì
- ou⌠á consuminτá disδ spacσ fo≥ them«á Thσ implementatioε oµá thσ ì
- residen⌠ command≤ withiε thσ CP/═ CC╨ wa≤ good¼ bu⌠ ╔ didn'⌠ fee∞ ì
- i⌠ wa≤ complete«á Fo≥ instance¼ thσ CP/═ CC╨ DI╥ commanΣ diΣ no⌠ ì
- allo≈ yo⌡ t∩ vie≈ Systeφ Files¼á thσ ER┴ commanΣ diΣ no⌠ sho≈ yo⌡ ì
- wha⌠á i⌠ wa≤ erasing¼á thσ TYP┼ commanΣ diΣ no⌠á page¼á thσá SAV┼ ì
- commanΣá requireΣá ßá decima∞ argumen⌠ whilσ DD╘á anΣá thσá othe≥ ì
- debugger≤á gavσ yo⌡ hexadecima∞ value≤ t∩ worδ with¼á anΣ al∞á oµ ì
- thσá command≤á refuseΣ t∩ directl∙ addres≤ differen⌠á use≥á area≤ ì
- whilσ allowinτ yo⌡ t∩ addres≤ differen⌠ disks.
-
-
- T∩á providσá morσ flexibilit∙ anΣ consistenc∙ t∩á thσá ZCPR▓ ì
- System¼ ╔ abolisheΣ thσ USE╥ commanΣ (notσ tha⌠ therσ neve≥ wa≤ ß ì
- DIS╦á command)¼á anΣá incorporateΣá ß Use≥ Numbe≥ int∩á thσá Disδ ì
- references«á Thi≤á seemeΣá t∩ als∩ makσ thσ entirσá systeφá morσ ì
- uniforφ iε appearancσ t∩ thσ user¼ particularl∙ wheε hσ wanteΣ t∩ ì
- dividσ hi≤ worδ int∩ differen⌠ use≥ areas« T∩ adΣ t∩ thσ consisì
- tency¼á ╔á alloweΣ thσ D╒ forφ t∩ bσ useΣ b∙á an∙á ZCPR2-residen⌠ ì
- commanΣá o≥á an∙ ZCPR2-supplieΣ transien⌠ commanΣ whereve≥ thσá ─ ì
- forφ wa≤ useΣ before«á No≈ wσ arσ consisten⌠ -- t∩ changσ disks¼ ì
- typσá "d:"╗á t∩ changσ users¼á typσ "u:"╗á t∩ changσá both¼á typσ ì
- "du:"«á T∩ extrac⌠ ß CO═ filσ froφ ß differen⌠ directory¼ simpl∙ ì
- prefi°á i⌠ witΦ ß "d:"¼á ß "u:"¼á o≥ ß "du:"«á Argument≤ t∩á thσ ì
- command≤ likσ DI╥ anΣ ER┴ werσ als∩ alloweΣ t∩ bσ D╒ forms.
-
- Onl∙á onσá probleφ exist≤ witΦ thi≤ ideß tha⌠ ╔á coulΣá see¼ ì
- however«á An∙ "standardó CP/═ transient¼ likσ WorΣ Sta≥ o≥ DBAS┼ ì
- II¼á woulΣ no⌠ kno≈ abou⌠ thσ D╒ forφ anΣ couldn'⌠ dea∞ witΦá it« ì
- No≈ wσ havσ aε inconsistenc∙ -- somσ command≤ coulΣ handlσ D╒ anΣ ì
- other≤ onl∙ D«á Thi≤ starteΣ mσ oε thσ ideß oµ thσ ZCPR▓ System« ì
- Question║á wheε d∩ yo⌡ neeΣ thσ D╒ form┐á Answer║ wheε yo⌡ arσ ì
- crossinτ directorie≤ -- wheε yo⌡ arσ sittinτ iε onσ director∙ anΣ ì
- wan⌠á t∩ acces≤ file≤ iε anothe≥ directory«á Afte≥ workinτá witΦ ì
- ZCPR▒á anΣ ZCPR▓ fo≥ s∩ long¼á ╔ realizeΣ that¼á wheε i⌠ come≤ t∩ ì
- thσ commercia∞ softwarσ packages¼ ╔ typicall∙ diΣ no⌠ worδ acros≤ ì
- director∙ boundaries¼á or¼ iµ ╔ did¼ i⌠ wa≤ alway≤ dowε t∩ disδ ┴ ì
- iε thσ curren⌠ user«á Hence¼á ╔ neve≥ camσ t∩ usσ ß prefi° t∩á ß ì
- filσá wheε ß raε aε edito≥ o≥ compiler«á ╔ alway≤ useΣ "E─ FILEó ì
- o≥ "C├ FILE"«á I⌠ wa≤ onl∙ wheε ╔ wanteΣ certaiε director∙á disì
- plays¼á wheε ╔ wanteΣ t∩ vie≈ certaiε files¼ anΣ wheε ╔ wanteΣ t∩ ì
- manipulatσ file≤ (erasσ them¼á protec⌠ them¼á renamσ them⌐ tha⌠ ╔ ì
- useΣ ß prefi° t∩ ß filσ name.
-
- I⌠á becamσ clear¼á then¼á tha⌠ thσ D╒ forφ wa≤ OK«á ╔ woulΣ ì
- establisΦ ß methoΣ oµ operatioε iε whicΦ ╔ woulΣ allocatσá direcì
- torie≤á fo≥á certaiε functions¼á anΣ movσ int∩ thesσá directorie≤ ì
- wheεá ╔ wanteΣ t∩ perforφ thesσ functions«á ╔ woulΣ creatσ ßá W╙ ì
- director∙ t∩ worδ oε tex⌠ files¼ aε AS═ director∙ t∩ writσ assemì
- bl∙ languagσ programs¼á etc«á Iε sucΦ aε environment¼á m∙á humaε ì
- interfacσ wa≤ gooΣ sincσ ╔ agaiε coulΣ concentratσ oε thσ probleφ ì
- a⌠ hand¼á thσ systeφ woulΣ finΣ m∙ command≤ fo≥ me¼ anΣ thσ file≤ ì
- ╔á aφ concerneΣ witΦ woulΣ bσ thσ onl∙ file≤ ╔ seσ wheε ╔ displa∙ ì
- thσ curren⌠ directory«á ┴ se⌠ oµ utilities¼á however¼ wa≤ needeΣ ì
- t∩ cros≤ thσ director∙ boundaries«á I⌠ woulΣ als∩ bσ nicσ iµ thσ ì
- ZCPR2-residen⌠ command≤ coulΣ cros≤ thesσ boundarie≤ a⌠ will.
-
- S∩ no≈ wσ arσ bacδ t∩ thσ ZCPR2-residen⌠ commands« WitΦ thσ ì
- D╒á forφ accepteΣ b∙ al∞ oµ them¼á director∙ boundarie≤ becamσ n∩ ì
- probleφ a⌠ all«á Iε addition¼ ╔ wa≤ no≈ designinτ ß se⌠ oµ ZCPR▓ ì
- utilitie≤á whicΦ woulΣ providσ ß hos⌠ oµ additiona∞á capabilitie≤ ì
- whicΦá madσá i⌠á eas∙á t∩á perforφá function≤á acros≤áá director∙ ì
- boundaries.
-
-
- 2.3 The ZCPR2 Residents Versus the CCP Residents
-
- Clearly¼ no≈ thσ ZCPR▓ Residen⌠ Command≤ caε cros≤ director∙ ì
- boundarie≤ a⌠ wil∞ whilσ thσ CC╨ Residen⌠ Command≤ caε not« Thi≤ ì
- i≤á aεá instrumenta∞á forwarΣ ste≡ iε thσá humaεá engineerinτá oµ ì
- ZCPR2«á Al∞á oµ thσ ZCPR▓ Residen⌠ Command≤ havσ t∩ d∩ thi≤ iε ß ì
- consistant¼á simplσ way«á Thi≤ simplσ wa∙ i≤ thσ D╒á form«á Thσ ì
- commands now line up like this:
-
- ZCPR2 Command CCP Command
- DIR DU:afn DIR D:afn
- ERA DU:afn ERA D:afn
- REN DU:ufn1=ufn2 REN D:ufn1=ufn2
- TYPE DU:ufn TYPE D:ufn
- SAVE n DU:ufn SAVE n D:ufn
- D: D:
- U: USER u
- DU: --
-
- Iεá movinτá t∩ Z80-specifiπ code¼á lot≤ oµ spacσá wa≤á saveΣ ì
- withiεá ZCPR▒ anΣ ZCPR2«á Jum≡ Relativσ instruction≤ contributeΣ ì
- thσ mos⌠ t∩ thi≤ savings¼á a≤ wel∞ a≤ constan⌠ restructurinτá anΣ ì
- optimizinτá fo≥á spacσ b∙ combininτ function≤ int∩á onσá routine« ì
- WitΦá sucΦá ß spacσ savings¼á therσ wa≤ rooφ t∩ elaboratσ oεá thσ ì
- Residen⌠ Commands.
-
- Iε thσ proces≤ oµ firs⌠ designinτ ZCPR▒ anΣ late≥ ZCPR2¼á i⌠ ì
- wa≤ obviou≤ tha⌠ thσ CC╨ Residen⌠ Command≤ werσ nicσ t∩ have¼ bu⌠ ì
- werσ incomplete«á Iε ZCPR1¼á ╔ tooδ step≤ t∩ makσ theφ morσ comì
- plete¼á anΣ iε ZCPR▓ ╔ tooδ furthe≥ steps«á Thσ followinτá paraì
- graph≤ summarizσ thσ rationalσ behinΣ thσ changes.
-
- Thσ DI╥ commanΣ unde≥ CP/═ woulΣ onl∙ displa∙ thσ non-Systeφ ì
- Files«á Thi≤ i≤ typicall∙ wha⌠ yo⌡ want¼á bu⌠ i⌠ i≤ nicσ t∩á seσ ì
- thσ Systeφ File≤ als∩ froφ timσ t∩ time« Unde≥ CP/M¼ yo⌡ d∩ thi≤ ì
- b∙á loadinτ ß CO═ filσ designeΣ t∩ perforφ thi≤ function«á Unde≥ ì
- ZCPR2¼á i⌠ seemeΣ likσ ß simplσ matte≥ t∩ givσ ZCPR▓ itselµá thi≤ ì
- capability«á Froφá thi≤ camσ thσ ╙ optioε anΣ thσ ┴ option«á T∩ ì
- makσá thσá interfacσá a≤ simplσ a≤ possiblσ anΣá requirσá a≤á fe≈ ì
- keystroke≤á oε thσ par⌠ oµ thσ use≥ a≤ ╔ could¼á ╔ opteΣ t∩á havσ ì
- thesσ option≤ specifieΣ b∙ ß spacσ followeΣ b∙ thσ optioεá lette≥ ì
- afte≥ thσ firs⌠ "normaló par⌠ oµ thσ command«á T∩ displa∙ Systeφ ì
- Files¼á then¼á thσ use≥ neeΣ onl∙ typσ "DI╥ DU:afε S"«á Thσ onl∙ ì
- tradσá ofµ wa≤ tha⌠ iµ n∩ afε o≥ D╒ forφ wa≤ specified¼á ß fille≥ ì
- wa≤á requireΣ iµ thσ optioε wa≤ desired«á Thi≤ fille≥á coulΣá bσ ì
- easil∙ "*.*"¼á bu⌠ thσ use≥ haΣ t∩ remembe≥ that« Otherwise¼ ho≈ ì
- woulΣá DI╥ kno≈ betweeε request≤ fo≥ "DI╥ Aó t∩ seσ iµ filσ ┴á i≤ ì
- therσ o≥ "DI╥ *.¬ Aó t∩ seσ al∞ files┐ Thi≤ seemeΣ reasonable.
-
-
- M∙á maiε gripσ witΦ thσ ER┴ commanΣ wa≤ tha⌠ i⌠ diΣ it≤á joΓ ì
- silently«á ╔ neve≥ wa≤ surσ oµ wha⌠ i⌠ diΣ unles≤ ╔ issueΣ ß DI╥ ì
- commanΣ afterwards«á Hence¼ ╔ addeΣ aε automatiπ DI╥ functioε t∩ ì
- ERA«á Iε addition¼ a⌠ ver∙ littlσ cost¼ ß Verif∙ optioε coulΣ bσ ì
- addeΣ t∩ allo≈ thσ use≥ t∩ approvσ thσ erasσ beforσ i⌠ wa≤á done« ì
- Oµ course¼ thσ director∙ displa∙ woulΣ bσ donσ first.
-
- M∙á onl∙á complain⌠ abou⌠ RE╬ wa≤ tha⌠ yo⌡ coulΣ no⌠á renamσ ì
- over existing files. I corrected this with ZCPR2.
-
- Thσá complain⌠ witΦ TYP┼ i≤ obvious«á I⌠ haΣ t∩á page«á N∩ ì
- question«á ╔á reall∙ becamσ tireΣ oµ usinτ ^╙ t∩ sto≡ outpu⌠ anΣ ì
- sometime≤á no⌠ bσ quicδ enougΦ t∩ catcΦá everything«á Sometimes¼ ì
- tho¼á ╔ woulΣ no⌠ wan⌠ t∩ page¼á bu⌠ skiφ through«á Havinτ ß TV╔ ì
- 95░ wa≤ nice¼á sincσ ╔ coulΣ usσ smootΦ scrollinτ t∩ skiφ slowly« ì
- TYPE¼á then¼á wa≤á se⌠ u≡ t∩ pagσ b∙ default¼á bu⌠ aεá optioεá i≤ ì
- availablσ t∩ no⌠ pagσ wheε desired.
-
- LIS╘ wa≤ ß nicσ commanΣ t∩ havσ tha⌠ cos⌠ little¼ s∩ wh∙ no⌠ ì
- have it? Enough said.
-
- Thσá bigges⌠ complain⌠ ╔ haΣ witΦ SAV┼ wa≤ thσ constan⌠á he° ì
- t∩á decima∞ conversioε ╔ wa≤ doinτ t∩ takσ number≤á generateΣá b∙ ì
- DD╘á anΣá usσá theφ iε ß SAVE«á S∩ ╔ addeΣ ßá hexidecima∞á valuσ ì
- optioε t∩ SAV┼ whilσ stil∞ keepinτ thσ decima∞ optioε fo≥ compatì
- ibilit∙ (human-wise).
-
- G╧á anΣ JUM╨ werσ addeΣ becausσ (1⌐ the∙ werσ nicσ t∩á have¼ ì
- (2⌐ iµ the∙ werσ no⌠ t∩ affec⌠ thσ TPA¼á the∙ HA─ t∩ bσ ß par⌠ oµ ì
- ZCPR▒á anΣá ZCPR2¼á anΣ (3⌐ the∙ cos⌠ littlσ sincσ al∞ thσá hook≤ ì
- werσá alread∙á there«á GE╘ wa≤ addeΣ b∙ reques⌠á sincσá i⌠á cos⌠ ì
- littlσá anΣá thσá persoε requestinτ i⌠ jus⌠ HA─ t∩á havσá it«á ╔ ì
- personall∙ neve≥ usσ it.
-
- Thσ followinτ tablσ compare≤ thσ Residen⌠ Command≤ availablσ ì
- under ZCPR2 to those available under the CP/M 2.2 CCP:
-
- ZCPR▓ CommanΣ CC╨ CommanΣ | ZCPR▓ CommanΣ CC╨ Command
- DIR DU:afn DIR D:afn | ERA DU:afn ERA D:afn
- DIR DU:afn S No Equiv | ERA DU:afn V No Equiv
- DIR DU:afn A No Equiv |
- ⁿ RE╬ DU:ufn1=ufn▓ RE╬ D:u=u2
- TYPE DU:ufn P TYPE D:ufn | REN with Overwrite No Equiv
- TYPE DU:ufn (page) No Equiv |
- | SAVE n DU:ufn SAVE n D:u
- LIST DU:ufn No Equiv | SAVE nH DU:ufn No Equiv
- | SAVE n DU:ufn S No Equiv
- GET adr DU:ufn No Equiv | SAVE nH DU:ufn S No Equiv
- |
- GO params No Equiv | JUMP adr No Equiv
- |
- D: D: | U: USER n
- DU: No Equiv |
-
- è
- 2.4 The Structure of ZCPR2
-
- Fo≥á thosσ familia≥ witΦ thσ interna∞ structurσ oµ thσá CP/═ ì
- 2.▓ CCP¼á yo⌡ wil∞ finΣ thσ interna∞ structurσ oµ ZCPR▓ radicall∙ ì
- different« I⌠ begin≤ witΦ thσ samσ tw∩ JM╨ instruction≤ tha⌠ thσ ì
- CP/═ 2.▓ CC╨ begin≤ with¼á anΣ i⌠ may¼á iµ s∩ configured¼á follo≈ ì
- thesσá instruction≤ witΦ ß commanΣ linσ buffe≥ int∩ whicΦ ma∙á bσ ì
- storeΣ ß defaul⌠ command¼ bu⌠ thσ similarit∙ end≤ there.
-
- ╔á fee∞á tha⌠ thσ openinτ JM╨á instruction≤á arσá absolutel∙ ì
- necessar∙á fo≥á compatabilit∙ purposes«á Thσá followinτá buffer¼ ì
- however¼á i≤ not¼á sincσ thi≤ i≤ aε undocumenteΣ "featureó oµ thσ ì
- systeφ iε thσ firs⌠ place« Somσ oµ thσ publiπ domaiε (anΣ other⌐ ì
- softwarσ usσ thi≤ buffer¼á anΣ thσ use≥ ha≤ thσ optioε t∩ instal∞ ì
- i⌠ iµ hσ wishes¼á bu⌠ s∩ mucΦ morσ flexibilit∙ anΣ capabilit∙ arσ ì
- deriveΣá froφ enablinτ thσ Multiplσ CommanΣ Linσ Buffe≥á feature¼ ì
- tha⌠á ╔ thinδ i⌠ i≤ worthwhilσ t∩ abandoε thσ program≤ whicΦá usσ ì
- thi≤ buffe≥ iε thσ ZCPR▓ environment« Oµ thσ program≤ ╔ aφ awarσ ì
- of¼ thσ ZCPR▓ Systeφ provide≤ equivalent≤ anyway.
-
- ╔ aφ ß stronτ proponen⌠ oµ writinτ maintainablσ software« ╔ ì
- believσá iεá designinτ softwarσ iε thσ firs⌠ placσ iε sucΦ ßá wa∙ ì
- tha⌠á goinτá bacδ t∩ i⌠ a⌠ ß late≥ timσ anΣ modifyinτ i⌠á caεá bσ ì
- donσ witΦ ß minimuφ oµ difficulty« WitΦ ZCPR2¼ however¼ ╔ fough⌠ ì
- ß battlσ iε attemptinτ t∩ writσ maintainablσ softwarσ anΣ writinτ ì
- space-optimizeΣáá anΣáá time-optimizeΣáá software«áá T∩áá ensurσ ì
- compatabilit∙ witΦ CP/═ 2.2¼á ZCPR▓ coulΣ no⌠ exceeΣ 2╦ byte≤á iε ì
- size¼á s∩á man∙ optimization≤ werσ performeΣ tha⌠ saveΣ oεá spacσ ì
- anΣáá reduceΣáá readability«áá ╔á answereΣá thi≤á reductioεáá iε ì
- readabilit∙áá b∙áá increasinτá oεá thσáá interna∞áá documentatioε ì
- (comments)«á Also¼á b∙á ß modula≥ construction¼á ╔ wa≤á ablσá t∩ ì
- producσá morσá maintainablσ codσ whilσ conservinτ spacσá iεá somσ ì
- cases.
-
- Thσ openinτ comment≤ iε thσ sourcσ codσ t∩ ZCPR▓ outlinσ it≤ ì
- structure«áá Thi≤áá structurσá i≤á discusseΣá iεá thσá followinτ ì
- paragraphs.
-
- First¼á thσ buffers«á A≤ ╔ go⌠ int∩ thσ desigε oµ ZCPR2¼á ╔ ì
- founΣá morσ anΣ morσ oµ ß neeΣ t∩ allocatσ buffe≥ spacσ thr⌡á thσ ì
- BIO╙á iεá orde≥á t∩ providσ globa∞á buffer≤á anΣá morσá extensivσ ì
- buffer≤ tha⌠ weren'⌠ affecteΣ b∙ warφ boots« Hence¼ somσ buffer≤ ì
- remaineΣá iε ZCPR2¼á anΣ man∙ werσ moveΣ outside«á Option≤á werσ ì
- retained¼á however¼á t∩á allo≈á thσá installe≥ t∩á implemen⌠á thσ ì
- buffer≤á iεá eithe≥á way«á Iµ thσ buffer≤ werσá selecteΣá t∩á bσ ì
- internal¼á however¼á somethinτ else¼á likσ ß feature¼á haΣ t∩á bσ ì
- giveε up«á Thσ onl∙ gooΣ reasoε ╔ caε seσ fo≥ no⌠ implementinτ ß ì
- modifieΣá BIO╙á anΣá placinτ thσ recommendeΣ buffer≤á outsidσá oµ ì
- ZCPR▓á itselµ i≤ becausσ thσ installe≥ doe≤ no⌠ havσá thσá sourcσ ì
- codσ t∩ hi≤ BIOS« ZCPR▓ caε bσ implementeΣ withou⌠ modifyinτ thσ ì
- BIOS¼ anΣ somσ oµ it≤ enhanceΣ feature≤ wil∞ bσ retaineΣ b∙ this¼ ì
- bu⌠á i⌠ wil∞ bσ ß shado≈ oµ wha⌠ i⌠ coulΣ bσ iµ externa∞á buffer≤ ì
- were available.
-
- è
- Second¼á thσ ZCPR▓ Startinτ Modules«á Al∞ oµ thσ entr∙á anΣ ì
- reentr∙ points¼ thσ erro≥ recover∙ points¼ anΣ somσ miscellaneou≤ ì
- entrie≤ arσ containeΣ here« Thi≤ seemeΣ reasonable.
-
- Third¼á thσ general- anΣ special-purposσ utilities« Sectioε ì
- │ contain≤ general-purposσ utilities¼ sucΦ a≤ consolσ output¼ anΣ ì
- Sectioεá ┤ contain≤ special-purposσ utilities¼á sucΦ ß SBLAN╦á t∩ ì
- ski≡ blank≤ fo≥ parsinτ purposes« Thσ commanΣ linσ parse≥ itselµ ì
- i≤ classeΣ a≤ ß special-purposσ utility«á A≤ ß rule¼ iµ ╔ wanteΣ ì
- ßá functioε t∩ bσ performeΣ morσ thaε oncσ anΣ it≤ sizσá exceedeΣ ì
- threσ bytes¼ i⌠ wa≤ madσ int∩ ß subroutinσ t∩ conservσ space« Iµ ì
- thσá sizσ oµ thσ codσ requireΣ t∩ perforφ thσ functioε wa≤á threσ ì
- byte≤ o≥ less¼ theε i⌠ wa≤ simpl∙ duplicateΣ wherσ i⌠ wa≤ needed« ì
- Iεá considerinτá design≤á likσá this¼á ╔ camσ u≡á witΦá ßá simplσ ì
- formula set:
-
- Cost of Inline Function =
- (number of bytes required)
- * (number of times function was used)
-
- Cost of Subroutine Function =
- (number of bytes required + 1 [for RET instruction])
- +
- 3 [number of bytes required for a subroutine CALL]
- * (number of times function was used)
-
- Iµá N=numbe≥ oµ byte≤ requireΣ fo≥ functioε anΣ T=numbe≥á oµ ì
- times function was used, then the formulae are:
-
- Cil = NT
- Csb = (N + 1) + 3T
-
- Clearly, NT < (N+1) + 3T if T=1. If T=2, then:
-
- N Cil=NT Csb=(N+1)+3T
- 1 2 8
- 2 4 9
- 3 6 10
- 4 8 11
- 5 10 12
- 6 12 13
- 7 14 14
-
- Fo≥á N>╕ anΣ T=2¼á Ci∞ cost≤ morσ thaεá Csb«á Iµá T=3¼á Ci∞ ì
- exceeds Csb more quickly:
-
- N Cil=NT Csb=(N+1)+3T
- 1 3 11
- 2 6 12
- 3 9 13
- 4 12 14
- 5 15 15
-
- For N>5 and T=3, Cil costs more than Csb.
- è
- Iεá ß nutshell¼á thesσ table≤ arσ sayinτ tha⌠ thσ borderlinσ ì
- casσá i≤ wheε thσ numbe≥ oµ time≤ thσ routinσ i≤ useΣá i≤á twice¼ ì
- anΣá iµ thσ routinσ contain≤ morσ thaε ╖ byte≤ (thinδ oµ thi≤á iε ì
- term≤á oµ tw∩ subroutinσ call≤ anΣ onσ byte)¼á theε wσ arσá aheaΣ ì
- makinτá thi≤á int∩á ßá subroutinσ rathe≥ thaεá placinτá thσá codσ ì
- inline.
-
- Hence¼á thσ reade≥ caε no≈ seσ thσ reasoninτ behinΣá placinτ ì
- code inline or making it into a subroutine.
-
- Finally¼á thσá Residen⌠á Command≤ takσ u≡ thσ las⌠á par⌠á oµ ì
- ZCPR2«á Thesσá arσá divideΣ int∩ thei≥ owεá sections¼á bu⌠á somσ ì
- overla≡ exists« Thσ routinσ whicΦ display≤ filσ name≤ (DIRPR⌐ i≤ ì
- useΣ b∙ DI╥ anΣ b∙ ERA¼á fo≥ instance« Likewise¼ MLOA─ (loaΣ CO═ ì
- file into memory) is used by COM and GET.
-
- T∩á simplif∙ thσ installatioε procedurσ anΣ t∩ furthe≥ moduì
- larizσá thσá desigε oµ ZCPR2¼á ╔ createΣ ß separatσá heade≥á filσ ì
- (ZCPRHDR.LIB⌐á whicΦ contain≤ al∞ oµ thσá customizatioεá informaì
- tion«á It≤ purposσ i≤ two-fold║ (1⌐ t∩ brinτ ou⌠ thσ configuraì
- tioεá informatioε iε ß smal∞ filσ tha⌠ i≤ eas∙ t∩ edi⌠ anΣ (2⌐ t∩ ì
- identif∙ anΣ providσ t∩ thσ use≥ ever∙ iteφ oµ ZCPR▓ tha⌠ hσá ma∙ ì
- wisΦ t∩ changσ t∩ mee⌠ hi≤ owε desires«á Again¼ ╔ aφ solΣ oε thσ ì
- ideß oµ bendinτ thσ systeφ t∩ mee⌠ you≥ desire≤ a≤ opposeΣ t∩ thσ ì
- othe≥ wa∙ around.
-
-
-
- 2.5 The ZCPR2 Alternate Commands
-
- Therσá i≤ ß subse⌠ oµ thσ ZCPR2-supplieΣ transient≤á tha⌠á ╔ ì
- cal∞á thσá ZCPR▓á Alternatσ Command≤ becausσ the∙á duplicatσá thσ ì
- function≤áá oµá thσá ZCPR▓á Residen⌠á Command≤á witΦáá signfican⌠ ì
- enhancement≤á iε capability«á Thesσ command≤ anΣá thσá resident≤ ì
- they duplicate are:
-
- ZCPR2 Alternate ZCPR2 Resident
- XDIR3 DIR
- ERASE ERA
- RENAME REN
- PAGE TYPE
- PRINT LIST
-
-
-
- DI╥á i≤ nice¼á bu⌠ iµ yo⌡ arσ lookinτ a⌠ ß lo⌠ oµá files¼á ß ì
- "randomóá listinτ oµ name≤ doesn'⌠ hel≡ much«á XDIR│á sort≤á thσ ì
- filσá listinτ b∙ namσ anΣ typσ o≥ typσ anΣ namσ (sometime≤ ╔ wan⌠ ì
- i⌠á onσ wa∙ t∩ seσ commonly-nameΣ file≤ anΣ sometime≤ ╔á wan⌠á i⌠ ì
- thσá othe≥á wa∙á t∩ seσ commonly-typeΣ files¼á anΣ ╔á prefe≥á thσ ì
- latte≥á mos⌠á oµ thσ time)«á I⌠ als∩ display≤ thσ sizσá oµá eacΦ ì
- file¼á thσ tota∞ spacσ takeε u≡ b∙ thσ file≤ displayed¼á anΣá thσ ì
- amoun⌠á oµ spacσ remaininτ oε disk«á I⌠ provide≤ ß hos⌠ oµ othe≥ ì
- nice¼á extendeΣ function≤ a≤ well«á Onσ ke∙ thinτ ╔ wanteΣ XDIR│ ì
- t∩á d∩ tha⌠ n∩ othe≥ publiπ domaiε director∙ displa∙ prograφá diΣ ì
- wa≤á t∩ cros≤ director∙ boundarie≤ witΦ thσ D╒ forφ anΣá thσá DI╥ ì
- forφ a≤ well« XDIR│ doe≤ this¼ anΣ add≤ t∩ thσ continuit∙ oµ thσ ì
- ZCPR▓á Systeφá a≤ such«á Finally¼á XDIR│ als∩ ha≤ filσá scanninτ ì
- capabilit∙á buil⌠á iε s∩ tha⌠ configuratioε change≤ caεá bσá morσ ì
- easil∙ detected.
-
- Alonτá thσ line≤ oµ DIR¼á ER┴ serve≤ ßá purpose¼á bu⌠á ERAS┼ ì
- enhance≤á this«á ERAS┼á wil∞ onl∙ "seeó non-Systeφ File≤á unles≤ ì
- tolΣá t∩á looδ a⌠ Systeφ File≤ also¼á anΣ i⌠ ha≤ thσá abilit∙á t∩ ì
- erasσ Read/Onl∙ file≤ anΣ t∩ allo≈ thσ use≥ t∩ inspec⌠ eacΦá filσ ì
- beforσ thσ erasσ i≤ performed.
-
- RENAM┼á i≤á t∩ RE╬ a≤ ERAS┼ i≤ t∩ ERA«á RENAM┼ allow≤á wilΣ ì
- cards¼á inspection¼á anΣ othe≥ option≤ a≤ well«á Likσ al∞ oµ thσ ì
- Alternatσ commands¼ botΦ thσ D╒ anΣ DI╥ form≤ arσ supported.
-
- PAG┼á anΣ PRIN╘ arσ thσ alternate≤ t∩ TYP┼ anΣá LIST«á PAG┼ ì
- provide≤á option≤á fo≥ speeΣ contro∞ e⌠ al¼á anΣá PRIN╘á support≤ ì
- paging¼ timσ anΣ datσ stamping¼ headers¼ pagσ and/o≥ linσ numberì
- ing¼ anΣ othe≥ features.
-
- Onσ featurσ ╔ fee∞ i≤ signfican⌠ i≤ tha⌠ oµ permittinτ list≤ ì
- oµ ambiguou≤ filσ name≤ a≤ argument≤ fo≥ ERASE¼á RENAME¼ PROTECT¼ ì
- PAGE¼ PRINT¼ anΣ man∙ othe≥ ZCPR2-supplieΣ utilities« Thi≤ give≤ ì
- thσá use≥ thσ flexibilit∙ oµ performinτ man∙ simila≥ function≤ iε ì
- onσ commanΣ a≤ opposeΣ t∩ reissuinτ thσ commanΣ o≥ usinτ GO.
-
-
- A≤á timσá wen⌠á along¼á ╔ founΣ i⌠ morσ anΣ morσá usefu∞á t∩ ì
- includσá onlinσ documentatioε buil⌠ int∩ thσ command≤á themselve≤ ì
- s∩á tha⌠ thi≤ informatioε coulΣ bσ quickl∙ accessed«á ╔ haΣá alì
- read∙ adopteΣ thσ conventioε iε whicΦ commanΣ line≤ whicΦ consisì
- teΣá oµ ß commanΣ anΣ option≤ onl∙ woulΣ prefi° thσá optioεá lis⌠ ì
- witΦ ß slasΦ t∩ distinguisΦ thσ option≤ froφ ß filσ name«á This¼ ì
- oµ course¼ prohibiteΣ usinτ thσ slasΦ a≤ thσ firs⌠ characte≥ oµ ß ì
- filσ name¼á bu⌠ ╔ didn'⌠ thinδ tha⌠ thi≤ wa≤ to∩ restrictive« A≤ ì
- ß logica∞ extensioε t∩ this¼á thσ command≤ werσ designeΣ t∩ prin⌠ ì
- ßá hel≡ messagσ iµ an∙ invaliΣ optioε wa≤ encountered¼á anΣ »á i≤ ì
- neve≥á permitteΣ t∩ bσ aε option¼á s∩ mos⌠ command≤á consistentl∙ ì
- prin⌠á ou⌠ ß hel≡ messagσ wheε ß commanΣ oµ thσ forφ "CMN─ //ó i≤ ì
- issued«á Thi≤ i≤ iε additioε t∩ thσ onlinσ documentatioεá availì
- ablσ viß thσ HEL╨ command.
-
- 2.6 Abandoning ^P
-
- This¼á oµ course¼á i≤ ß recommendation¼á bu⌠ i⌠ i≤ madσ witΦ ì
- thσ vie≈ oµ thσ ZCPR▓ Systeφ iε mind«á Unde≥ CP/═ 2.2¼ ╔ diΣ no⌠ ì
- likσá thσá ^╨ functioε becausσ ╔ considereΣ i⌠ t∩ bσá unreliable« ì
- Iε onσ case¼á iµ yo⌡ issueΣ ^╨ jus⌠ beforσ givinτ ß command¼á thσ ì
- commanΣá woulΣ ruε a≤ desired¼á but¼á wheε thσá promp⌠á appeared¼ ì
- dependinτá oεá thσ command¼á sometime≤ thσ ^╨ woulΣ stil∞á bσá iε ì
- effec⌠ anΣ othertime≤ i⌠ woulΣ not« Iε anothe≥ case¼ iµ ß loadeΣ ì
- transien⌠ (likσ DU¼á whicΦ i≤ wh∙ D╒ ha≤ ß ╨ command⌐ useΣ direc⌠ ì
- BIO╙ call≤ fo≥ I/O¼á theε thσ ^╨ woulΣ bσ ignoreΣ anΣ thσ desireΣ ì
- effec⌠ no⌠ obtained.
-
- Onσ fina∞ poin⌠ agains⌠ ^╨ i≤ tha⌠ ZCPR▓ occasionall∙á send≤ ì
- character≤ witΦ thσ mos⌠ significan⌠ bi⌠ se⌠ t∩ thσ screen«á Thσ ì
- promp⌠á i≤ onσ example¼á anΣ i⌠ doe≤ thi≤ fo≥ ZE╪á compatability« ì
- Iµ ^╨ i≤ useΣ anΣ you≥ printe≥ respond≤ t∩ command≤ whicΦ involvσ ì
- byte≤ witΦ thσ mos⌠ significan⌠ bi⌠ set¼ theε thσ printe≥ wil∞ d∩ ì
- strangσ thing≤ froφ timσ t∩ timσ unde≥ ^╨ control.
-
- Wheε lookinτ a⌠ ZCPR▓ a≤ ß System¼á man∙ ZCPR▓ utilitie≤ usσ ì
- direc⌠á BIO╙ call≤ anΣ woulΣ no⌠ bσ affecteΣ b∙ ^P«á SYSLI┬á 2.┤ ì
- als∩ support≤ I/╧ viß direc⌠ BIO╙ call≤ extensively¼á s∩ program≤ ì
- usinτ SYSLI┬ ma∙ o≥ ma∙ no⌠ responΣ t∩ ^P.
-
- Ho≈ i≤ ß functioε likσ ^╨ obtained¼ then┐ Unde≥ ZCPR▓ i⌠ i≤ ì
- simplσá -- redirectablσá I/O«á Simpl∙ se⌠ u≡ ß redirectablσá I/╧ ì
- drive≥ tha⌠ caε bσ assigneΣ t∩ thσ consolσ whicΦ consist≤ oµá CR╘ ì
- Inpu⌠á anΣ CRT/Printe≥ Output¼á anΣ havσ tha⌠ drive≥ masδ ou⌠ thσ ì
- mos⌠ significan⌠ bi⌠ oµ al∞ character≤ sen⌠ t∩ thσ printer« Thi≤ ì
- solve≤á thσá printe≥ probleφ anΣ als∩ provide≤ ßá reliableôá prin⌠ ì
- contro∞ facility«á I⌠ i≤ invokeΣ onl∙ wheε thσ indicateΣ consolσ ì
- assignmen⌠ (viß DEVICE⌐ i≤ made¼á anΣ i⌠ i≤ disengageΣ onl∙á wheε ì
- anothe≥á assignmen⌠á i≤á made«á Yo⌡ caε eveε tiσ iεá thσá RECOR─ ì
- facilit∙á t∩ contro∞ thi≤ iµ desired¼á allowinτ thσ routine≤á enì
- gageΣ b∙ RECOR─ t∩ turε oε anΣ ofµ printe≥ output.
-
-
- 3.0 The ZCPR2 System
-
- Afte≥ thσ initia∞ desigε oµ ZCPR▓ anΣ somσ oµ it≤ utilities¼ ì
- i⌠ becamσ appearan⌠ tha⌠ ZCPR▓ wa≤ no⌠ ß stand-alonσ entit∙á likσ ì
- ZCPR▒ was« Instead¼ ZCPR▓ wa≤ thσ huΓ oµ aε integrateΣ systeφ oµ ì
- program≤á tha⌠ communicateΣ witΦ eacΦ othe≥ througΦ ZCPR▓á itselµ ì
- anΣ thσ buffer≤ associateΣ witΦ ZCPR2.
-
-
- 3.1 Implementing the Named Directories
-
- Wheεá thσá ideß oµ nameΣ directorie≤ firs⌠ camσá up¼á ╔á wa≤ ì
- toyinτá witΦ thσ ideß oµ ß CHDI╥ commanΣ t∩ loτ int∩ ßá director∙ ì
- b∙ name«á Thi≤ commanΣ wa≤ neve≥ releaseΣ witΦ ZCPR2¼á bu⌠ idea≤ ì
- froφ i⌠ werσ incorporateΣ int∩ thσ CD¼á MKDIR¼á anΣ PW─ commands« ì
- Iε orde≥ t∩ dea∞ witΦ ß mnemoniπ namσ whicΦ stooΣ fo≥ ß disk/use≥ ì
- area¼á aεá associatioε tablσ haΣ t∩ bσ createΣ whicΦ paireΣ name≤ ì
- t∩ thei≥ directories« Sincσ CHDI╥ wa≤ thσ onl∙ prograφ involved¼ ì
- i⌠ wa≤ eas∙ t∩ placσ thi≤ tablσ int∩ CHDIR.
-
- A≤ timσ wen⌠ along¼á however¼á thσ ideß t∩ allo≈ ß numbe≥ oµ ì
- command≤ referencσ directorie≤ b∙ namσ developed«á Thσ olΣ techì
- niquσá oµ continuinτ t∩ storσ thσ name≤ a≤ par⌠ oµ CHDIR.CO═á wa≤ ì
- ruleΣ ou⌠ fo≥ severa∞ reasons:
-
- (1⌐á unles≤á step≤ werσ taken¼á a≤ CHDI╥á changed¼á thσ ì
- positioεá oµá thσá namσá tablσ ma∙á changσá a≤á wel∞á (CHDI╥á wa≤ ì
- originally written in BDS C)
-
- (2⌐á fo≥ onσ reasoε o≥ anothe≥ (sucΦ a≤ security)¼á thσ ì
- namσá oµ CHDIR.CO═ ma∙ no⌠ alway≤ bσ CHDI╥ -- i⌠ coulΣ bσá C─á o≥ ì
- some other shorter name
-
- (3⌐ CHDI╥ wa≤ largσ (duσ t∩ thσ overheaΣ oµ BD╙ C)¼ anΣ ì
- ╔á wa≤ discoverinτ (thr⌡ experimentation⌐ tha⌠ utilitie≤á writteε ì
- witΦá SYSLI┬ coulΣ bσ a≤ mucΦ a≤ 1/┤ thσ sizσ oµ simila≥ utiltie≤ ì
- written with BDS C
-
- ┴á reasonablσá ste≡á froφá thi≤ poin⌠á wa≤á t∩á establisΦá ß ì
- structurσá fo≥ ß director∙ filσ whicΦ containeΣ thσ mnemoniπá anΣ ì
- user/disδ associatioε information« Alonτ witΦ thi≤ camσ MKDI╥ t∩ ì
- creatσ anΣ edi⌠ sucΦ ß filσ anΣ C─ t∩ replacσ CHDIR« Afte≥ ß lo⌠ ì
- oµá usσá witΦ thi≤ typσ oµ environment¼á however¼á ╔á founΣá tha⌠ ì
- constantl∙áá accessinτá thσá disδá t∩á determinσá thσá name≤áá oµ ì
- directorie≤á requireΣá quitσ ß bi⌠ morσ timσ t∩ perforφ eveεá thσ ì
- basiπ functions« Sincσ ╔ wa≤ alread∙ placinτ somσ ZCPR2-specifiπ ì
- buffer≤ iε memor∙ (sucΦ a≤ thσ multiplσ commanΣ linσá buffer)¼á ╔ ì
- electeΣá t∩á incorporatσá aε optioε iε whicΦá ßá nameΣá director∙ ì
- buffe≥á ma∙á bσá loadeΣá froφá disδ anΣá searcheΣá firs⌠á b∙á thσ ì
- utilitie≤á wheεá resolutioεá oµá ßá namσá wa≤áá required«áá Thi≤ ì
- significantl∙á speedeΣá thing≤á u≡ anΣ addeΣá thσá fixed¼á globa∞ ì
- director∙á concep⌠ t∩ thσ system«
-
-
- NAMES.DI╥á no≈ becamσ ß loca∞ director∙ concep⌠ anΣ coulΣ bσ ì
- useΣ t∩ implemen⌠ differen⌠ loca∞ director∙ environ≤ a≤ thσá use≥ ì
- moveΣ froφ onσ director∙ o≥ commanΣ searcΦ patΦ t∩ another.
-
- No≈á wσ havσ thσ flexibilit∙ oµ botΦ loca∞ anΣ globa∞á nameΣ ì
- directorie≤á unde≥á ZCPR2«á Thσ SYSLI┬ routine≤ whicΦá performeΣ ì
- director∙ searche≤ fo≥ mσ werσ altereΣ t∩ utilitizσ thi≤ feature¼ ì
- and¼ oncσ SYSLI┬ wa≤ altered¼ al∞ utilitie≤ werσ altereΣ a≤ well« ì
- The algorithm now employed in SYSLIB is:
-
- (1⌐ Checδ t∩ seσ iµ thσ director∙ speπ i≤ ß D╒ forφ anΣ ì
- use it if so
-
- (2⌐ Assumσ i⌠ t∩ bσ ß DI╥ forφ iµ no⌠ DU¼á anΣ scaε thσ ì
- memory-baseΣ nameΣ director∙ buffe≥ fo≥ ß matcΦ iµ therσ i≤á one╗ ì
- if one is found, go with it
-
- (3⌐á Iµ therσ i≤ n∩ memory-baseΣ nameΣ director∙ buffe≥ ì
- o≥á therσ i≤ n∩ matcΦ iε it¼á scaε alonτ thσ commanΣ searcΦá patΦ ì
- (o≥ whateve≥ patΦ wa≤ specifieΣ t∩ thσ library⌐ fo≥ thσ NAMES.DI╥ ì
- file╗á iµ found¼á loaΣ anΣ scaε i⌠ fo≥ thσ specifieΣ namσ anΣá g∩ ì
- with it if found
-
- (4) If 1, 2, and 3 fail, return with an error code
-
- ╔á aφ pleaseΣ witΦ thi≤ desigε fo≥ it≤ flexibilit∙á anΣá it≤ ì
- abilit∙á t∩ rapidl∙ changσ thσ user'≤ visiblσ director∙á environì
- men⌠ a≤ hσ move≤ froφ onσ director∙ t∩ another.
-
-
-
- 3.2 Common ZCPR2 Transient Structures and GENINS
-
- SYSLI┬á wa≤á alread∙ useΣ extensivel∙ iε thσ desigεá oµá thσ ì
- ZCPR▓á utilit∙ program≤ wheε ╔ decideΣ t∩ adop⌠ ß standarΣ buffe≥ ì
- structurσá a⌠á thσ beginninτ oµá thσá utilities«á Thi≤á standarΣ ì
- structurσ wa≤ ß gooΣ ideß fo≥ severa∞ reasons:
-
- (1⌐á aε installatioε prograφ (GENINS⌐ coulΣ bσ designeΣ ì
- whicΦá coulΣ bσ useΣ t∩ customizσ al∞ thσ utilitie≤á withou⌠á thσ ì
- neeΣ fo≥ reassembly
-
- (2⌐á certaiεá basiπ informatioε wa≤ needeΣ b∙ al∞á proì
- grams¼á anΣá thσá utilitie≤ coulΣ bσ configureΣá t∩á individuall∙ ì
- contaiε thi≤ informatioε iε ß uniforφ wa∙ o≥ t∩ poin⌠ t∩á buffer≤ ì
- containinτá thi≤ information╗á sucΦ informatioε include≤ thσ addì
- res≤á oµá thσ multiplσ commanΣ linσ buffer¼á thσá addres≤á oµá aε ì
- externa∞á path¼á anΣá thσ addres≤ oµ ß nameΣ director∙ buffe≥á iµ ì
- therσ wa≤ one
-
-
- (3⌐á ß SYSLI┬ routinσ coulΣ bσ establisheΣá tha⌠á woulΣ ì
- uniforml∙á initializσá al∞á necessar∙ SYSLI┬ buffer≤á withou⌠á m∙ ì
- havinτá t∩á worr∙ abou⌠ correctl∙ initializinτ eacΦá buffe≥á eacΦ ì
- timσá ╔á designeΣ ß ne≈ utility╗á thi≤ SYSLI┬ routinσá i≤á ZGPIN╙ ì
- (General-Purposσá Installation⌐ anΣ neeΣ onl∙ bσ calleΣá oncσá a⌠ ì
- thσ beginninτ oµ eacΦ utility
-
- Thσ commoε buffe≥ structurσ wa≤ extendeΣ t∩ includσ ß commoε ì
- utilit∙ structurσ later¼ anΣ thσ filσ TEMPLATE.MA├ i≤ provideΣ t∩ ì
- allow the programmer to program ZCPR2 utilities more easily.
-
-
- 3.3 Multiple Command Line Buffer
-
- Froφ thσ beginning¼ ╔ simpl∙ envisioneΣ thσ Multiplσ CommanΣ ì
- Linσá Buffe≥ fo≥ it≤ origina∞ purposσ -- t∩ providσ ß gooΣá placσ ì
- t∩á storσ ß commanΣ linσ s∩ multiplσ command≤ coulΣ bσá executed« ì
- Thi≤ i≤ wel∞ anΣ good¼á anΣ thσ multiplσ commanΣ featurσ i≤ quitσ ì
- nice. I use it all the time myself.
-
- Wha⌠á wa≤á funn∙ abou⌠ thi≤ particula≥ featurσ oµ thσá ZCPR▓ ì
- Systeφá i≤á tha⌠á thσ abilit∙ t∩ usσ thi≤ buffe≥ t∩á chaiεá t∩á ß ì
- serie≤ oµ program≤ rapidl∙ becamσ morσ important¼á froφ m∙á poin⌠ ì
- oµá view¼á thaεá it≤á origina∞ purpose«á Iµ ß utilit∙á kne≈á thσ ì
- locatioεá oµá thi≤ buffer¼á i⌠ coulΣ storσ ß commanΣ linσá iεá i⌠ ì
- (containinτ multiplσ command≤ iµ desired)¼á se⌠ ß pointe≥ t∩á thσ ì
- firs⌠ characte≥ oµ thσ firs⌠ command¼ anΣ ruε thi≤ commanΣ streaφ ì
- b∙á simpl∙ returninτ t∩ ZCPR2«á Ver∙ cleaε anΣ efficien⌠ wa∙á t∩ ì
- chain¼á anΣá i⌠á madσ thσ desigε anΣ implementatioε oµá thσá MEN╒ ì
- system very simple.
-
- WitΦ MENU¼á i⌠ i≤ desireΣ t∩ ruε ß commanΣ anΣ alway≤ returε ì
- t∩á thσ MENU«á Beinτ ablσ t∩ chaiε t∩ ß commanΣ streaφ madσ thi≤ ì
- simplσá -- allo≈ MEN╒ t∩ builΣ ß commanΣ linσ consistinτá oµá thσ ì
- desireΣá commanΣá followeΣ b∙ thσ commanΣ "MEN╒á options"¼á wherσ ì
- option≤ woulΣ bσ useΣ t∩ reente≥ MEN╒ a⌠ thσ correc⌠ point« Thi≤ ì
- wa≤ simplicit∙ itself¼á anΣ ╔ alread∙ haΣ designeΣ ß simplσá men⌡ ì
- systeφá iεá ZMCP╥á (whicΦ wa≤ ß menu-baseΣ ZCP╥á tha⌠á wa≤á neve≥ ì
- released)« ╔ buil⌠ upoε ZMCP╥ concept≤ anΣ camσ u≡ witΦ thσ MEN╒ ì
- program with MCHECK in a very short time.
-
-
- 3.4 SYSLIB
-
- Onσá brieµá mentioε herσ abou⌠ SYSLI┬ 2.4«á A≤ ╔á go⌠á int∩ ì
- designinτ ZCPR▓ utilitie≤ morσ anΣ more¼á thσ valuσ oµ SYSLI┬ wa≤ ì
- proveεá ove≥ anΣ ove≥ again«á ╔ kne≈ SYSLI┬ intimately¼á witΦ aε ì
- understandinτá oµá ho≈ thσ routine≤ fi⌠á together¼á and¼á oncσá ╔ ì
- decideΣ upoε ß functioε ╔ wanteΣ t∩ perform¼á i⌠ tooδ ver∙ littlσ ì
- timσ t∩ desigε i⌠ witΦ SYSLIB« B∙ thσ enΣ oµ thσ desigε phasσ oµ ì
- thσ ZCPR▓ System¼á ╔ spen⌠ aε averagσ oµ ▓ hour≤ t∩ desigε ßá ne≈ ì
- utilit∙áá froφá scratch¼áá anΣá thi≤á wa≤á withou⌠á thσá usσáá oµ ì
- TEMPLATE.MAC¼á whicΦá wa≤á onσ oµ thσ las⌠ thing≤ ╔ designeΣá fo≥ ì
- ZCPR2.
- è
- I⌠á seemeΣá reasonablσ t∩ tiσ SYSLI┬ int∩ thσá ZCPR▓á Systeφ ì
- morσ closel∙ t∩ makσ thσ developmen⌠ proces≤ eveε morσ efficient« ì
- Iεá thi≤ light¼á ╔ designeΣ tw∩ SYSLI┬ module≤ whicΦ interfacσ t∩ ì
- the ZCPR2 System and provide ZCPR2-specific functions.
-
- ZGPIN╙ i≤ thσ installatioε routinσ whicΦ initialize≤ al∞á oµ ì
- thσ interna∞ datß area≤ oµ thesσ tw∩ ZCPR2-specifiπ modules« Thσ ì
- fron⌠á oµá eacΦ oµ thσ ZCPR▓ utilitie≤ i≤ uniforφ betweeε al∞á oµ ì
- thσ standarΣ utilities¼á anΣ thσ positioε oµ thσ buffe≥ datß herσ ì
- i≤ thσ samσ betweeε al∞ oµ thσ utilities« ZGPIN╙ know≤ abou⌠ thσ ì
- structurσ anΣ read≤ datß froφ it¼ feedinτ thi≤ datß t∩ thσ SYSLI┬ ì
- modules. This data falls into eight functional areas:
-
- 1« Path≤ -- i≤ aε externa∞ patΦ available¼ and¼ iµ so¼ ì
- wherσ i≤ i⌠ located┐á ┴ requirement≤ flaτ i≤ presen⌠ whicΦ tell≤ ì
- ZGPIN╙ iµ patΦ informatioε i≤ useΣ b∙ thσ particula≥ utility«á ┴ ì
- par⌠á oµ thσ standarΣ buffe≥ configuratioε include≤á aεá interna∞ ì
- patΦá whicΦ ma∙ bσ useΣ iε placσ oµ o≥ t∩ supplemen⌠ thσ externa∞ ì
- path«á Naturally¼ eacΦ utilit∙ caε havσ it≤ own¼ uniquσ interna∞ ì
- path«á Onl∙á thσá HEL╨ utilit∙ use≤ botΦ externa∞á anΣá interna∞ ì
- paths¼á wherσá iµá ß searcΦ alonτ thσá externa∞á patΦá fails¼á i⌠ ì
- switche≤á t∩ searchinτ alonτ thσ interna∞ patΦ beforσ givinτá up« ì
- The other utilities search along only one path or the other.
-
- 2«á Multiplσá CommanΣá Linσ Buffe≥ -- i≤á thi≤á buffe≥ ì
- available¼á and¼á iµ so¼ wherσ i≤ i⌠ located┐ Again¼ a≤ witΦ al∞ ì
- oµá thesσá majo≥á functiona∞ sections¼á ßá requirement≤á flaτá i≤ ì
- availablσá t∩ indicatσ iµ thi≤ datß i≤ useΣ b∙ thσá program«á Iµ ì
- so¼á ZGPIN╙ initialize≤ thσ SYSLI┬ buffer≤ accordingly«á Iµ not¼ ì
- it does not touch the SYSLIB buffers.
-
- 3«á Maximuφá Use≥á anΣá Disδ -- wha⌠ arσá thσá maximuφ ì
- numbe≥á oµ disk≤ availablσ anΣ thσ maximuφ use≥ areßá accessable┐ ì
- Tw∩ byte≤ arσ allocateΣ t∩ providσ thi≤ information¼á anΣ ß thirΣ ì
- requirement≤á bytσá tell≤á ZGPIN╙á iµá thσá utilit∙á need≤áá thi≤ ì
- information.
-
- 4«á Allo≈á Disδá o≥ Use≥ Changσ -- i≤ thσ use≥á t∩á bσ ì
- permitteΣá t∩á referencσ ß differen⌠ use≥ areß o≥ t∩ referencσá ß ì
- differen⌠ disk┐á Again¼á ß requirement≤ bytσ i≤ als∩á available« ì
- Utilitie≤á whicΦ pa∙ attentioε t∩ thesσ buffer≤ caε bσ se⌠ u≡á t∩ ì
- allo≈ thσ use≥ t∩ referencσ an∙ use≥ areß oε thσ curren⌠ disδ bu⌠ ì
- no⌠á an∙ othe≥ disδ o≥ t∩ referencσ thσ curren⌠ use≥ areß oεá an∙ ì
- disδ bu⌠ no⌠ thσ curren⌠ disk« Iµ nameΣ directorie≤ arσ enabled¼ ì
- ß DI╥ forφ i≤ permitteΣ regardless¼ bu⌠ element≤ oµ ß D╒ forφ ma∙ ì
- bσá disabled«á Hence¼á iµá JEF╞á i≤ knowε t∩ thσ use≥á froφá hi≤ ì
- curren⌠á directory¼á hσ caε referencσ thi≤ director∙ b∙ thσá namσ ì
- JEF╞ bu⌠ no⌠ b∙ it≤ D╒ form« ╔ diΣ thi≤ t∩ allo≈ flexibilit∙ anΣ ì
- security at the same time.
-
- 5«á Basσ oµ PrivilegeΣ Use≥ Area≤ anΣ PassworΣ -- wha⌠ ì
- i≤ thσ firs⌠ privilegeΣ use≥ areß (thi≤ areß anΣ al∞ use≥ number≤ ì
- greate≥á thaεá thi≤ becomσ privileged⌐ anΣ wha⌠ i≤á thσá passworΣ ì
- required to enter or reference it?
- è
- 6« Curren⌠ User/Disδ Indicato≥ anΣ DM┴ Addres≤ -- thi≤ ì
- permit≤ non-standarΣ value≤ fo≥ thesσ item≤ t∩ bσ selecteΣ fo≥á ß ì
- particula≥ utility«á Thσ DM┴ Addres≤ i≤ oµ specia∞ concerε sincσ ì
- thσ SYSLI┬ module≤ assumσ 80╚ unles≤ tolΣ otherwise¼á and¼ iµ thσ ì
- programme≥á change≤á thi≤ iε thσ coursσ oµ thσ utility¼á hσá MUS╘ ì
- inforφá SYSLI┬ oµ thσ ne≈ DM┴ addres≤ s∩ tha⌠ i⌠ caε continuσá t∩ ì
- function.
-
- 7«á NameΣá Director∙á Buffe≥ anΣá Filσá Datßá -- thesσ ì
- buffer≤á providσ thσ addres≤ oµ thσ memory-baseΣ nameΣá director∙ ì
- buffe≥á (o≥á ░á iµá nonσ i≤ available)¼á thσá maximuφá numbe≥á oµ ì
- director∙ entrie≤ permitteΣ iε ß nameΣ director∙ buffe≥ o≥á file¼ ì
- anΣ thσ namσ oµ thσ disk-baseΣ nameΣ director∙ filσ t∩ searcΦ fo≥ ì
- iµ necessar∙ (NAMES.DI╥ i≤ assumed)«á Again¼ ß requirement≤ flaτ ì
- indicate≤ iµ thi≤ i≤ necessar∙ fo≥ thσ utility«á GENIN╙ install≤ ì
- thi≤á datßá anΣá prompt≤á thσ use≥ fo≥ thi≤á datßá baseΣá oεá thσ ì
- settings of these requirements flags.
-
- 8« Clas≤ oµ Utilit∙ -- thi≤ i≤ ß one-bytσ buffe≥ whicΦ ì
- i≤ useΣ b∙ GENIN╙ t∩ determinσ iµ specia∞ installatioε operation≤ ì
- arσá t∩ bσ performed«á Iµ so¼á thi≤ buffe≥ i≤ followeΣ (ove≥á 1╡ ì
- byte≤á later⌐á b∙á thσ specia∞ buffer≤ specifiπ t∩á tha⌠á utilit∙ ì
- which are to be installed.
-
- Finally¼á SYSLIB¼á a≤ mentioneΣ before¼á provide≤ ß grou≡ oµ ì
- routine≤áá iεá it≤á tw∩á module≤á whicΦá providσáá ZCPR2-specifiπ ì
- functions«á Thesσá includσá resolutioε oµ DI╥á form≤á anΣá othe≥ ì
- usefu∞ functions«á Thσ reade≥ i≤ inviteΣ t∩ stud∙ thσ SYSLI┬ 2.┤ ì
- manual≤á anΣá t∩ examinσ thσ sourcσ codσ oµ thσ utilitie≤ t∩á seσ ì
- ho≈á thesσ routine≤ comσ int∩ play«á The∙ reall∙ savσ ßá lo⌠á oµ ì
- programminτá overheaΣ anΣ fi⌠ iε nicel∙ togethe≥ a≤ aε integrateΣ ì
- set of utility routines.
-
-
-
-
- 3.5 Redirectable I/O
-
- Redirectablσáá I/╧á a≤á implementeΣá unde≥á ZCPR▓á vißáá thσ ì
- IOLOADER¼á DEVICE¼á anΣá SYSI╧ programs/module≤ meet≤ ß numbe≥ oµ ì
- need≤á iε thσ ZCPR▓ environment«á Thσ requirement≤ satisfieΣá b∙ ì
- this redirectable I/O system include:
-
- (1⌐áá thσá abilit∙á t∩á dynamicall∙á changσáá thσáá I/╧ ì
- environment« SpecializeΣ devicσ driver≤ caε bσ addeΣ a⌠ wil∞ anΣ ì
- changeΣá wheneve≥á desired¼á anΣá thσ I/╧ systeφ caε bσá madσá a≤ ì
- comple°á a≤ desireΣ withou⌠ regarΣ t∩ thσ amoun⌠ oµ memor∙á takeε ì
- u≡á sincσ ß variet∙ oµ driver≤ caε bσ implementeΣá a≤á disk-baseΣ ì
- packages which are loaded only when needed.
-
- (2⌐á thσá abilit∙á t∩á refe≥ t∩ thσ I/╧á driver≤á b∙á ß ì
- mnemoniπ namσ anΣ t∩ bσ ablσ t∩ easil∙ determinσ wha⌠ driver≤ arσ ì
- currentl∙á availablσ anΣ wha⌠ the∙ do«á Thσ DEVIC┼á prograφá wa≤ ì
- designed explicitly for this purpose.
- è
- (3⌐á thσá abilit∙ t∩ implemen⌠ a≤ comple° ß se⌠ oµá I/╧ ì
- driver≤á a≤á desireΣá withou⌠ beinτá concerneΣá abou⌠á thσá spacσ ì
- limitation≤ oµ thσ systeφ tracks« Thσ maiε O╙ caε bσ loadeΣ froφ ì
- thσá systeφá track≤ witΦ ß minimuφ oµ I/╧ suppor⌠á (say¼á consolσ ì
- only)¼á anΣá thσ defaul⌠ I/╧ driver≤ caε bσ immediatel∙á overlaiΣ ì
- (by an IOLOADER command in a STARTUP.COM file).
-
-
-
- 3.6 ZCPR2 Utility Overview
-
- ╔á thinδá tha⌠ thi≤ topiπ ha≤ beeε beateε t∩á deatΦá iεá thσ ì
- Concept≤ Manua∞ anΣ thσ User'≤ Guide¼ bu⌠ tw∩ point≤ t∩ emphasizσ ì
- herσá arσ tha⌠ (1⌐ thσ ZCPR▓ utilit∙ program≤ arσ clearl∙ divideΣ ì
- int∩á classes¼á eacΦ meetinτ need≤ iε specifiπ functiona∞á areas¼ ì
- anΣ (2⌐ thσ ke∙ issue≤ arσ systeφá flexibility¼á mutability¼á anΣ ì
- susceptabilit∙ t∩ thσ user'≤ whims« ZCPR▓ i≤ intendeΣ t∩ bσ useΣ ì
- a≤ ß too∞ whicΦ increase≤ thσ user'≤ productivity¼á and¼ a≤ such¼ ì
- it can be bent to meet the user's demands.
-
- The major classification areas of the utilities are:
-
- o I/O o Command Files
- o Directories o Named Directories
- o Disk Utilities o ZCPR2 Residents and Alts
- o Library Utilities o Help (Online Documentation)
- o Menu Preprocessor o File Comparison Utilities
- o File Copy Utility o Misc
-
- Iεá thσ areß oµ I/O¼á ß redirectablσ I/╧ systeφ i≤ outlined¼ ì
- allowinτá thσá use≥ t∩ se⌠ u≡ a≤ man∙ I/╧ drive≥ package≤á a≤á hσ ì
- wishes«á Thσ systeφ i≤ baseΣ oε nameΣ devices¼á anΣ thσ use≥ caε ì
- no≈á redirec⌠á I/╧á b∙á name¼á rathe≥á thaεá havinτá t∩á remembe≥ ì
- arbitrary mnemonics for implementation-specific devices.
-
- Thσ XDIR│ utilit∙ allow≤ thσ use≥ t∩ displa∙ thσ content≤ oµ ì
- onσ o≥ morσ directorie≤ iε ß numbe≥ oµ formats¼á dependinτ oε hi≤ ì
- tastσ anΣ need≤ a⌠ thσ time« I⌠ als∩ provide≤ fo≥ ß filσ scanne≥ ì
- which can be used to keep track of files for him.
-
- DU▓ i≤ ß hand∙ too∞ t∩ havσ around«á I⌠ allow≤ thσ use≥á t∩ ì
- manipulatσá disδá likσ DD╘ allow≤ hiφ t∩ manipulatσá memory¼á anΣ ì
- accidentia∞á filσ erasure≤ anΣ thσ likσ caε bσ correcteΣá withou⌠ ì
- any damage being done.
-
- Thσá L╒ utilit∙ wa≤ ß gooΣ idea¼á anΣ LRUN┌ anΣ LDIR┌ extenΣ ì
- thi≤ ideß t∩ bσ morσ practica∞ iε thσ ZCPR▓ environment« Particì
- ularly¼ thesσ providσ thσ basσ fo≥ aε extendeΣ commanΣ processor« ì
- Thσá usσá oµ path≤ make≤ LRUN┌ stanΣ ou⌠á froφá it≤á predecessor¼ ì
- LRUN.
-
-
- Thσá men⌡á systeφ stand≤ ou⌠ a≤ ß nicσ wa∙ t∩á simplif∙á thσ ì
- user'≤ interface«á ╔ likσ thσ idea≤ oµ havinτ multiplσ menu≤ anΣ ì
- no⌠á beinτá lockeΣ int∩ an∙ onσ men⌡ a≤ beinτ tw∩ oµá thσá stronτ ì
- point≤ oµ thi≤ idea« Iε particular¼ yo⌡ caε movσ froφ onσ direcì
- tor∙á t∩ thσ next¼á automaticall∙ movinτ int∩ anΣ ou⌠ oµ menu≤ a≤ ì
- yo⌡ go.
-
- Thσá filσá comparσ utilitie≤ arσ convenience≤ iεá thσá ZCPR▓ ì
- environment«á The∙ shinσ iε beinτ ablσ t∩ cros≤ director∙á bounì
- daries«á CR├ provide≤ nameΣ directories¼á filσ lists¼á anΣ othe≥ ì
- nicσ function≤ no⌠ founΣ iε CRCK¼ it≤ conceptua∞ (bu⌠ no⌠ design⌐ ì
- predecessor.
-
- MCOP┘á i≤ instrumenta∞ iε openinτ u≡ directorie≤ beyonΣ use≥ ì
- 15«á WitΦ it¼á yo⌡ caε cop∙ b∙ D╒ o≥ DI╥ forφ int∩ virtuall∙ an∙ ì
- director∙ froφ an∙ directory. MCOPY is also used for backup.
-
- CommanΣá filσ processinτ i≤ extendeΣ b∙ SUB▓ anΣá ZEX¼á witΦ ì
- morσ anΣ morσ emphasi≤ beinτ placeΣ oε ZEX« Thσ speeΣ anΣ flexiì
- bilit∙ oµ ZE╪ seeφ t∩ greatl∙ outweigΦ thσ los≤ oµ TP┴ a≤á advanì
- tages.
-
- NameΣá directorie≤á pu⌠á ß wholσ ne≈ ligh⌠á oεá thσá system¼ ì
- makinτ i⌠ mucΦ morσ use≥ friendl∙ anΣ offerinτ level≤ oµ securit∙ ì
- no⌠ founΣ before.
-
- Thσ ZCPR▓ Resident≤ anΣ Alternate≤ nicel∙ extenΣ basiπ capaì
- bilitie≤ frequentl∙ needeΣ b∙ thσ user«á Therσ i≤ stil∞ rooφ fo≥ ì
- improvement¼á however« Beinτ ablσ t∩ handlσ nameΣ directorie≤ b∙ ì
- thσ residen⌠ command≤ woulΣ bσ nice¼á anΣ beinτ ablσ t∩ usσ ß DI╥ ì
- forφá whereve≥á ß D╒ forφ applie≤ woulΣ bσ ver∙á nice«á PAT╚á i≤ ì
- instrumenta∞ iε establishinτ anΣ changinτ commanΣ anΣ file-searcΦ ì
- environs¼ anΣ GENIN╙ make≤ thσ installatioε proces≤ mucΦ simpler.
-
- Onlinσ documentatioε a≤ provideΣ b∙ HELP▓ i≤ ver∙ nice¼ but¼ ì
- unfortunately¼á ßá luxur∙ permitteΣ onl∙ t∩ thosσ wh∩ havσ ß sigì
- nifican⌠á amoun⌠á oµ disδ spacσ iε whicΦá t∩á work«á Thσá systeφ ì
- reall∙á shine≤ wheε yo⌡ caε cal∞ u≡ hel≡ wheε yo⌡ arσ iε developì
- ment¼á anΣá changinτá disk≤ (a≤ woulΣ bσ necessar∙ oεá ßá smalle≥ ì
- system⌐ t∩ finΣ thσ appropriatσ hel≡ file≤ reduce≤ thσ utilit∙ oµ ì
- thσ system.
-
- Onσá iteφá t∩á notσ iε closinτ i≤ tha⌠ ╔ havσá attempteΣá t∩ ì
- desigεá man∙á oµ thesσ utilitie≤ t∩ bσ immunσ t∩ change≤á iεá thσ ì
- disδ environmen⌠ whilσ the∙ arσ running« MCOPY¼ fo≥ instance¼ iε ì
- thσ Multiplσ Cop∙ Modσ (═ option⌐ allow≤ thσ use≥ t∩ changσ disk≤ ì
- withou⌠ havinτ t∩ warφ boo⌠ betweeε eacΦ grou≡ oµ file≤ copied.
-
-
- 4.0 What Next?
-
- GooΣ question« Well¼ firs⌠ oµ all¼ ╔ woulΣ likσ t∩ emphasi≤ ì
- two points:
-
- (1⌐á thσ ZCPR▓ Systeφ i≤ probabl∙ no⌠á perfect«á Therσ ì
- arσá bounΣá t∩ bσ error≤ whicΦ sho≈ themselve≤ iε thσá codσá froφ ì
- timσ t∩ time«á An∙ softwarσ oµ sucΦ complexit∙ i≤ bounΣ t∩á havσ ì
- theφ b∙ it≤ ver∙ comple° nature.
-
- (2⌐ thσ ZCPR▓ Systeφ i≤ likel∙ t∩ mutatσ again« I⌠ wa≤ ì
- designeΣá from¼á amonτ othe≥ things¼á ß lacδ oµ satisfactioε witΦ ì
- CP/═ anΣ ZCPR1¼á and¼á a≤ ZCPR▓ i≤ useΣ morσ anΣ more¼á ne≈ idea≤ ì
- arσá bounΣá t∩ comσ u≡ a≤ t∩ ho≈ t∩ d∩ thing≤ bette≥á o≥á ho≈á t∩ ì
- refinσá curren⌠á idea≤ t∩ makσ thσ use≥ environmen⌠ morσá producì
- tive.
-
- Iεá thσ wa∙ oµ fixe≤ t∩ thσ ZCPR▓ System¼á periodiπá update≤ ì
- arσá t∩ bσ expected«á Hopefully¼á tho¼á notation≤ oε thσá error≤ ì
- encountereΣá wil∞ bσ accumulateΣ anΣ thσ systeφ wil∞á bσá updateΣ ì
- onl∙á oε occasioε iε responsσ t∩ ß numbe≥ oµ errors«á Thi≤ i≤ a≤ ì
- opposeΣ t∩ updatinτ thσ systeφ ever∙ timσ someonσ find≤ aεá erro≥ ì
- o≥ decide≤ hσ want≤ t∩ makσ ß changσ t∩ it«á Additionally¼á conì
- figuratioε managemen⌠ control≤ should¼ iε m∙ opinion¼ bσ applied¼ ì
- witΦá forma∞ procedure≤ establisheΣ fo≥ erro≥ analysis¼á duplicaì
- tion¼ correction¼ changσ proposa∞ submission¼ anΣ redistribution« ì
- Thi≤á wil∞ probabl∙ no⌠ happen¼á simpl∙ becausσ oµ thσ amoun⌠á oµ ì
- effor⌠á involved¼á bu⌠ froφ m∙ professiona∞ experiences¼á ╔á fee∞ ì
- tha⌠á thi≤á i≤á ß ke∙ wa∙ t∩ satisfactoril∙á maintaiεá thσá ZCPR▓ ì
- System.
-
- A≤ fo≥ mutation¼á i⌠ i≤ good¼á a≤ ß rule« Natura∞ Selectioε ì
- allow≤á thσ stronges⌠ trait≤ t∩ flourisΦ whilσ thσ weake≥á trait≤ ì
- diσá out¼á anΣ ╔ fee∞ tha⌠ thσ samσ shoulΣ bσ truσá oµá software« ì
- Thσ gooΣ idea≤ shoulΣ bσ nurtureΣ anΣ elaborateΣ oε whilσ thσ baΣ ì
- idea≤ shoulΣ bσ noted¼á learneΣ from¼á anΣ discarded« Thσ resul⌠ ì
- i≤ ß bette≥ anΣ bette≥ productivσ environmen⌠ a≤ timσ goe≤ along«
-
- Onσá thinτ abou⌠ thσ Publiπ Domaiε tha⌠ ╔ aφ reall∙ solΣá oε ì
- i≤ thσ learninτ environmen⌠ tha⌠ i⌠ fosters« Peoplσ caε takσ thσ ì
- sourcσá codσ t∩ program≤ anΣ learε ho≈ the∙ function«á The∙á caε ì
- theε usσ thi≤ knowledgσ t∩ makσ thσ program≤ "betteróá ("better"¼ ì
- oµá course¼á i≤ ß subjectivσ concept)«á Thσ poin⌠ i≤ tha⌠ peoplσ ì
- learεá anΣá gro≈ froφ this«á Tha⌠ i≤ good«á A≤ thσá reade≥á ha≤ ì
- probabl∙á alread∙á noted¼á thσ entirσ sourcσ codσá t∩á thσá ZCPR▓ ì
- Systeφá anΣá SYSLI┬á i≤ availablσ fo≥ peoplσ t∩ stud∙á anΣá learε ì
- from«á Thi≤á codσ ma∙ no⌠ bσ thσ best¼á bu⌠ i⌠ i≤ good¼á anΣá i⌠ ì
- provide≤ ß good¼á fairl∙ well-documenteΣ basσ froφ whicΦ t∩ star⌠ ì
- thσ learninτ process.
-
- Enjoy!
-
- Richard Conn