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
/
Z280
/
ZEDUX280.LBR
/
TOUR.TZT
/
TOUR.TXT
Wrap
Text File
|
2000-06-30
|
36KB
|
859 lines
ááááL----!----!----!----!----!----!----!----!----!----!----!----!----!----R
ááááContent≤ oµ filσ e4:REMOTE:TOUR.TXT:
┴ cook'≤ tou≥ oµ thσ RP/═ O/S
ááááNote║á thi≤á documen⌠ i≤ no⌠ intendeΣ t∩ replacσ thσ ful∞ R╨ operation≤ ì
áááámanual.
ááááThσ fundamenta∞ concep⌠ oµ R╨ i≤ it≤ managemen⌠ oµ "remotσá partitionsó ì
áááát∩ ruε applicatioε programs«á T∩ understanΣ this¼á we'l∞ takσ ß looδ a⌠ ì
ááááthσá standarΣ CP/═ ruε concept«á Al∞ operatinτ system≤ (O/S⌐ owσ t∩ thσ ì
ááááconcep⌠á oµá ßá prograφ tha⌠ i≤ continuall∙á residen⌠á iεá thσá system¼ ì
ááááprovidinτá botΦá aεá interactivσ prograφ t∩ allo≈ use≥ contro∞á oµá thσ ì
áááárunninτá oµá applicatioεá programs¼á anΣ ßá se⌠á oµá "systeφá servicesó ì
áááádesigneΣ t∩ simplf∙ prograφ construction«á Iε CP/M¼ thσ systeφ occupie≤ ì
ááááthσ to≡ portioε oµ memory¼á anΣ thσ applicatioε prograφ thσ lowe≥ half« ì
ááááThi≤ schemσ ha≤ thσ characteristics:
1.á áThσá O/╙ anΣ thσ application≤ prograφ arσ mutuall∙ exclusive╗ ì
ááááááááááááááthσá spacσá occupieΣá b∙ thσ systeφá i≤á unavailablσá t∩á thσ ì
ááááááááááááááapplication≤ program¼ anΣ vicσ - versa.
áááá 2. ááThσá application≤ prograφ i≤ no⌠ preventeΣ froφ direc⌠ acces≤ ì
áááááááááááááát∩á O/Sá code¼á anΣá thereforσá ma∙á "crashóá thσá systeφá b∙ ì
áááááááááááááácorruptinτ thσ O/S code.
3. ááThσá systeφá relie≤á oε "gooΣ conductóá oµá thσá application≤ ì
ááááááááááááááprograφ iε callinτ systeφ services.
ááááIεá an∙ system¼á thσ realit∙ i≤ tha⌠ thσ O/S anΣ applicatioε mus⌠á makσ ì
ááááusσá oµ thσ samσ memory¼á anΣ thσ samσ processor«á However¼á tw∩á basiπ ì
ááááhardwarσá aid≤ caε advancσ thσ leve∞ oµ thσ systeφ considerably«á Thesσ ì
ááááarσá ßá gooΣ systeφ memor∙ managemen⌠ schemσ anΣ thσá usσá oµá hardwarσ ì
áááátimer≤ witΦ interrupts.
ááááMemor∙á managemen⌠á allow≤ thσ O/S and/o≥ thσ applicatioε t∩ seσá thei≥ ì
ááááowε "virtua∞ space"¼ whicΦ allow≤ thσ prograφ t∩ forge⌠ abou⌠ thσ othe≥ ì
ááááprogram≤á runninτá iεá thσá samσá processor¼áá anΣá make≤á "relocationó ì
ááááunessessary«á Thσá program≤á caε bσ protecteΣ froφá eacΦá othe≥á eithe≥ ì
ááááimplicitly¼ sucΦ a≤ ß tra≡ generateΣ b∙ thσ memor∙ managemen⌠ systeφ iµ ì
ááááß prograφ trie≤ t∩ access.
ááááProtectioεá caε als∩ bσ inherent╗á iµ thσ memor∙ managemen⌠ define≤ al∞ ì
ááááavailablσá prograφá memor∙á withou⌠ includinτ thσá othe≥á program¼á thσ ì
ááááapplicatioε simpl∙ doe≤ no⌠ havσ ß mean≤ t∩ damagσ thσ O/S.
ááááFinally¼á ßá hardwarσá time≥ allow≤ thσ systeφ t∩ se⌠ ßá maximuφá "timσ ì
áááálimitóá fo≥ thσ executioε oµ ß program╗á iµ thσ prograφ i≤á crasheΣá o≥ ì
áááásimpl∙ uncooperative¼ i⌠ canno⌠ permanently holΣ thσ CPU.
áááá┴ sidσ benifi⌠ oµ thσ memor∙ managemen⌠ fo≥ aε addres≤ limiteΣ CP╒ sucΦ ì
ááááa≤á thσá Z8░ i≤ tha⌠ thσ prograφ ma∙ havσ ß ful∞á (64kb⌐á partitioεá o≥ ì
áááá"virtua∞á addres≤ spaceó t∩ itself«á BotΦ thσ operatinτ systeφ anΣá thσ ì
ááááapplicatioε prograφ caε makσ usσ oµ thσ ful∞ addres≤ spacσ avalible.
è
ááááThσ Z28░ provide≤ advanceΣ abilitie≤ t∩ se⌠ u≡ partitions« Als∩ presen⌠ ì
ááááarσá tool≤ fo≥ thσ systeφ t∩ transfe≥ byte≤ iε anΣ ou⌠ oµ thσ partitioε ì
áááá(bu⌠á no⌠ allo≈ prograφ acces≤ t∩ thσ O/S!)¼á anΣ fo≥ aε organizeΣ exi⌠ ì
áááábacδ t∩ thσ systeφ froφ ß partition.
ááááBeside≤á thσ variou≤ trap≤ anΣ erro≥ conditions¼á thσá prograφá obtain≤ ì
áááásysteφ service≤ b∙ thσ systeφ cal∞ (SC⌐ instruction«á ┴ tota∞ oµá 6553╢ ì
áááásysteφ call≤ arσ possible«á Iε reality¼á however¼ ß systeφ cal∞ i≤ onσ ì
áááácall¼á t∩ onσ location¼ iε thσ O/S« Thi≤ simplifie≤ thσ worδ oµ keepinτ ì
áááátracδ oµ thσ applicatioε considerably.
ááááThσá existencσ oµ ß systeφ cal∞ allow≤ thσ prograφ t∩ makσ ful∞ usσá oµ ì
ááááit'≤ memor∙ space¼á withou⌠ thσ problem≤ associateΣ witΦ CP/M«á I⌠á ma∙ ì
áááástar⌠ a⌠ addres≤ ░ (vs« $100)¼ anΣ usσ al∞ thσ memor∙ spacσ i⌠ require≤ ì
ááááu≡ to thσ enΣ oµ memor∙ a⌠ $ffff.
ááááThi≤ i≤ indeeΣ ho≈ thσ "nativeó servicσ systeφ fo≥ RP works«á Thi≤ wil∞ ì
áááábe discussed at the end of this tour.
O/S emulation:
ááááWitΦá enougΦá effort¼á therσá probaball∙á isn'⌠ an∙á previou≤á Z8░á O/S ì
ááááenvironmen⌠á tha⌠ can'⌠ bσ emulated«á Thσ Z28░ caε simulatσ an∙á memor∙ ì
ááááarrangement¼á eveε tra≡ anΣ emulatσ I/╧ instructions«á Ho≈ mucΦ troublσ ì
áááái⌠á is¼á however¼á i≤ anothe≥ story«á Fortunetly¼á CP/═ wa≤ constructeΣ ì
ááááaccordinτá t∩á ß fe≈ basiπ rule≤ whicΦ makσ thing≤ simple≥ (anΣá iεá m∙ ì
ááááopinion haΣ ß lo⌠ t∩ d∩ witΦ CP/M'≤ portability):
ááááá1.á áSysteφá call≤ al∞ occu≥ througΦ ß singlσ "vectoróá (thσá BDO╙ ì
áááááááááááááájump).
2. áN∩ direc⌠ acces≤ t∩ systeφ datß i≤ allowed.
3. áN∩ specifiπ locatioε oµ thσ O/S wa≤ eve≥ set.
ááááOµá course¼á that'≤á thσ wa∙ CP/═ starteΣ outíá Sincσ then¼á tw∩á basiπ ì
ááááviolation≤á oµá thesσ rule≤ havσá becomσá standarΣá practice«á Program≤ ì
áááádirectl∙á acces≤ thσ se⌠ oµ BIO╙ vectors¼á anΣ directl∙ setting thσ I/╧ ì
ááááconnectioεá bytσ (IOBYTE⌐ beforσ makinτ ß systeφ cal∞ i≤ donσá eveεá b∙ ì
ááááthσ origina∞ CP/═ utilit∙ "PIP"«á B∙ anΣ large¼ however¼ CP/═ i≤ ß ver∙ ì
ááááreasonablσá targe⌠ fo≥ emulation«á Thσ commoε examplσ oµ runninτá unde≥ ì
áááácoprocessor≤ oε an Applσ o≥ IB═ P├ i≤ prooµ oµ that.
.paè
ááááAl∞ right¼á s∩ ho≈ d∩ wσ emulatσ CP/═ unde≥ RP/M┐á Lookinτ a⌠ thσ basiπ ì
áááálayou⌠ oµ ß CP/═ partition:
+---------------+
| System page | --> WBOOT vector
| | --> BDOS vector
+---------------+
| TPA |
| |
| |
| |
| |
+---------------+
| System |
| |
+---------------+
ááááSevera∞á assumption≤ arσ standard«á Thσ BDO╙ vecto≥ botΦ point≤ t∩á thσ ì
ááááentrancσá t∩á thσ systeφ service≤ package¼á anΣ als∩ define≤á thσá las⌠ ì
ááááusablσá TP┴ bytσ plu≤ one«á Thσ WBOO╘ vecto≥ point≤ t∩ thσ entrancσá t∩ ì
ááááthσá warφá boo⌠á routine¼á anΣ incidentall∙á indexe≤á thσá BIO╙á vecto≥ ì
áááátable+3«á Severa∞á standarΣá peice≤ oµ datß arσ defineΣ iε thσá systeφ ì
áááápage¼á includinτ curren⌠ drive¼á user¼á I/╧ connection¼ anΣ thσ commanΣ ì
áááálinσ anΣ parameter≤ passeΣ t∩ thσ application program.
ááááThσ layou⌠ fo≥ RP look≤ likσ this:
+-------------+ +----------------+
| RP | | System page |
| | +----------------+
| | | TPA |
| | | |
| | | |
| | | |
| | | |
| | +----------------+
| | <<------------->> | System |
| | | Communications |
| | | Area (SCA) |
+-------------+ +----------------+
ááááFirs⌠á oµ all¼á thσ application≤ prograφ run≤ iε aε entirel∙á differen⌠ ì
áááápartitioεá froφá thσ system«á It≤ onl∙ methoΣ oµ gettinτá bacδá t∩á thσ ì
áááásysteφá partitioεá i≤á b∙á ß systeφ call¼á o≥ b∙á trippinτá somσá erro≥ ì
áááácondition¼á sucΦ a≤ executioε oµ aε illega∞ instruction¼ invaliΣ memor∙ ì
ááááacces≤ o≥ othe≥ violation.
.paè
ááááThσ systeφ pagσ i≤ simpl∙ aε emulatioε oµ thσ norma∞ CP/M systeφá page« ì
ááááThσ curren⌠ drive¼á user¼ IOBYTE anΣ commanΣ parameter≤ arσ al∞ updateΣ ì
ááááb∙á thσá O/S«á Thσá WBOO╘á anΣ BDO╙ jump≤ inde° area≤ iεá thσá SC┴á fo≥ ì
ááááemulation.
ááááThσ SC┴ totall∙ replace≤ thσ BDO╙ anΣ BIO╙ section≤ iε ß CP/M system.
ááááBasically¼á al∞á BDO╙á anΣ BIO╙ functioε call≤ arσ turneΣá int∩á systeφ ì
áááácall≤ here«á Therσ is¼ then¼ onl∙ thσ onσ entr∙ bacδ t∩ thσ system║ thσ ì
ááááS├ instruction«á Wheε RP receive≤ ß systeφ call¼á i⌠ emulate≤ thσá CP/M ì
ááááactioε oµ thσ associateΣ function.
ááááMULTIPL┼ TASK:
ááááGoinτ froφ thi≤ t∩ ß multiplσ tasδ situatioε onl∙ require≤ tha⌠ insteaΣ ì
ááááoµá jus⌠ onσ prograφ partition¼á wσ implemen⌠ ╬ partitions¼á eacΦá witΦ ì
ááááthei≥á owε CP/═ compatiblσ enviornment«á R╨ mus⌠ "trafficóá thσá systeφ ì
áááárequest≤á t∩á anΣá froφá eacΦá partition¼áá simultaneousl∙á witΦá othe≥ ì
áááápartitioε calls.
ááááInterrnal t∩ RP¼á therσ arσ onl∙ "tasks"¼ thσ numbe≥ oµ whicΦ i≤ onl∙ ì
áááálimiteΣ b∙ thσ amount of available systeφ memor∙:
+------------------+
| RP |
| |
| +------------+ |
| | Task | |
| | Control | |
| | Block | |
| +------------+ |
| |
| +------------+ | +---------------+
| | TCB |----------->| Partition |
| +------------+ | +---------------+
| |
| +------------+ | +---------------+
| | TCB |----------->| Partition |
| +------------+ | +---------------+
| |
+------------------+
ááááTask≤á executeΣ iε paralle∞ b∙ RP ma∙ executσ entirel∙ withiεá thσá O/S ì
áááápartition¼á o≥á the∙á ma∙ bσ allocateΣ aε application≤á partition¼á anΣ ì
ááááthereforσ ruε ß CP/M application.
.paè
ááááTH┼ RP MONITOR:
ááááThσá user≤á vie≈ oµ thσ systeφ i≤ usuall∙ viß thσ R╨ built-iεá monitor« ì
ááááAl∞ thσ command≤ founΣ iε CP/M¼ plu≤ ß fe≈ more¼ arσ implemented.
ááááThσ basiπ commanΣ linσ fo≥ RP appear≤ as:
<command> <parameters> {[;/&] <command> <parameters>}
ááááThi≤ i≤ simila≥ t∩ ß standarΣ CP/═ commanΣ line¼ excep⌠ tha⌠ an∙ numbe≥ ì
ááááoµ command≤ ma∙ bσ entereΣ oε ß line¼á separateΣ b∙ eithe≥ ";ó o≥á "&"« ì
ááááSeparatioεá oµ command≤ b∙ ";ó cause≤ eacΦ commanΣ t∩ bσá executed¼á iε ì
ááááturn¼á witΦ R╨ waitinτ fo≥ thσ las⌠ onσ t∩ completσ beforσ startinτ thσ ì
áááánext.
ááááSeparatioε oµ command≤ b∙ "&ó mean≤ tha⌠ RP wil∞ no⌠ wai⌠ fo≥ thσá las⌠ ì
áááácommanΣ t∩ complete¼ bu⌠ g∩ oε t∩ star⌠ thσ nex⌠ onσ (iε parallel).
ááááCommand≤ arσ onσ oµ thσ following:
1.á áAliases« Iµ thσ commanΣ giveε matche≤ aε alia≤ name¼ tha⌠ alia≤ i≤ ì
áááááááááexecuted.
2.á áBuil⌠ - in« Iµ thσ commanΣ giveε matche≤ aε interna∞ command¼ tha⌠ ì
ááááááááácommand i≤ executed.
3. ááSubmit«á Iµá ß filσ b∙ thσ namσ command.suΓ exists¼á tha⌠ filσá i≤ ì
áááááááááinterpreteΣ unde≥ thσ rule≤ fo≥ aε exeπ file.
4.á áApplicatioεá program«á Iµá ßá filσ b∙ thσ namσ oµá command.coφá o≥ ì
ááááááááácommand.pgφ exists¼ it i≤ giveε it'≤ owε partitioε anΣ executed.
ááááNotσá tha⌠ thesσ commanΣ type≤ arσ executeΣ iε thσ orde≥ given«á Iµá aε ì
ááááalia≤ i≤ defineΣ witΦ thσ samσ namσ a≤ ß applicatioε program¼ thσ alia≤ ì
áááái≤á executeΣá first«á Thσá searcΦá mechanisiφ caεá bσá curcumventeΣá b∙ ì
áááádirectl∙áá specifyinτá wha⌠á typσá oµá commanΣá i≤áá meant«áá Thereforσ ì
áááácommand.coφá caεá onl∙ bσ ß CP/M command¼á command.suΓ caεá onl∙á bσá ß ì
áááásubmit¼ d0:commanΣ caε onl∙ bσ aε applicatioε o≥ submit¼ etc.
ááááALIASE╙ AN─ SUBMITS:
ááááAε alia≤ i≤ defineΣ b∙ thσ alia≤ command:
alias command <line of text for the alias>
ááááAl∞á thσá tex⌠á followinτá thσ alia≤ namσ i≤á entereΣá int∩á thσá alia≤ ì
áááádefinition«á Wheεá thσ alia≤ i≤ envoked¼á thσ content≤ oµ thσ alia≤ arσ ì
ááááexecuted«á Notσá tha⌠ AL╠ thσ remaininτ linσ pas⌠ thσ alia≤ commanΣá i≤ ì
ááááentereΣ int∩ thσ alia≤ definition¼á includinτ an∙ ";ó o≥ "&ó character≤ ì
áááá(thereforσ nothinτ furthe≥ i≤ executeΣ afte≥ thσ alia≤ definition)« Thσ ì
áááácurren⌠ aliase≤ defined may be listed out via the lalias command.
è
ááááIε thσ casσ oµ ß submit¼ thσ submi⌠ filσ i≤ executed.
ááááBotΦá thσ content≤ oµ aε alia≤ anΣ ß submi⌠ arσ thσ samσ commanΣá line≤ ì
ááááa≤ caε bσ executeΣ directly.
ááááWheε ß submi⌠ o≥ alia≤ i≤ executed¼á eacΦ linσ wil∞ bσ displayeΣ beforσ ì
áááái⌠ i≤ executed¼ alonτ witΦ thσ namσ oµ thσ alias/submit¼ anΣ thσ numbe≥ ì
ááááoµ thσ linσ beinτ executed.
ááááIµ displa∙ i≤ no⌠ desired¼á thσ command≤ noshowsubmit¼á o≥á noshowalia≤ ì
ááááwil∞ turε thi≤ off« thσ command≤ showsubmit¼ o≥ showalia≤ wil∞ turε thσ ì
áááádispla∙ bacδ oε again.
ááááAliase≤á anΣá submit≤ caε bσ executeΣ withiε othe≥ aliase≤ o≥á submits¼ ì
ááááwitΦ ou⌠ an∙ limi⌠ oε thσ nestinτ level.
ááááSTANDAR─ ALIASES:
ááááYo⌡ havσ probabl∙ noticeΣ tha⌠ thσ built-command≤ arσ somewha⌠ verbose« ì
ááááThi≤á i≤á intentional«á Thσá lonτ forφ commanΣá name≤á arσá bette≥á fo≥ ì
ááááinsertioε iε ß alia≤ o≥ submit¼ t∩ makσ theφ self-documenting¼ anΣ the∙ ì
ááááarσá les≤á likel∙ t∩ conflic⌠ witΦ thσ name≤ oµ application≤á programs« ì
ááááFinally¼ ne≈ name≤ fo≥ built-iε command≤ caε bσ createΣ t∩ you≥ heart'≤ ì
ááááconten⌠ usinτ thσ alia≤ mechanism«á Fo≥ thσ res⌠ oµ thi≤ tour¼á wσ wil∞ ì
ááááplacσá thσ aliase≤ wσ usσ fo≥ command≤ afte≥ thσ prope≥ namσ a≤ commanΣ ì
áááá(alias).
ááááSomσá oµá thσá command≤á alread∙á discusseΣá are║á showsubmi⌠á (shows)¼ ì
áááánoshowsubmi⌠ (noshows)¼ showalia≤ (showa)¼ noshowalia≤ (noshowa).
ááááFIL┼ SPECIFICATION:
ááááFile≤ unde≥ RP consis⌠ oµ ß filσ name¼á witΦ optiona∞ extention«á Wherσ ì
ááááallowed¼á thσá character≤á "*óá anΣ "?ó caε bσ useΣ t∩á matcΦá multiplσ ì
ááááfilenames«á Otherwise¼á thσ character≤ "aó - "z"¼á thσ digits¼á anΣ thσ ì
áááácharacte≥ "_"« Notσ tha⌠ RP doe≤ no⌠ allo≈ AN┘ characte≥ t∩ appea≥ iε ß ì
ááááfilenamσ a≤ wa≤ thσ casσ iε CP/M.
ááááThi≤á i≤ enforceΣ iε exchangσ fo≥ thσ advanceΣ commanΣá processor«á Fo≥ ì
ááááthσ disδ areß prefix¼ al∞ oµ thσ followinτ arσ valid:
d: - Drive.
d0: - Drive/user.
name: - Directory name.
.paè
ááááPATHS:
ááááThreσ path≤ ma∙ bσ se⌠ b∙ command«á commandpatΦ (cpath⌐ set≤ thσ searcΦ ì
áááápatΦ fo≥ commands¼ submitpatΦ (spath⌐ set≤ thσ searcΦ patΦ fo≥ submits¼ ì
ááááanΣ helppatΦ (hpath⌐ set≤ thσ patΦ fo≥ hel≡ files« Thσ forφ is:
cpath a0: b: command:
ááááAn∙ numbe≥ oµ valiΣ areß name≤ ma∙ bσ specified.
ááááMACR╧ SUBSITUTION:
ááááMacro≤á arσ characte≥ sequence≤ tha⌠ arσ expandeΣ iε eacΦá linσá beforσ ì
ááááexecution«á The∙á arσá introduceΣá b∙ thσá "!óá character«á Thσá macro≤ ì
ááááavaliblσ are:
!! - The character "!".
!<digit> - A word from the calling line, from the 1st to the ninth.
!<name> - A string variable.
!(<expression>) - A string expresion.
!$ - The current time/date.
!# - The current drive, in lower case.
!% - The current drive, in upper case.
!^ - The current drive/user, in lower case.
!& - The current drive/user, in upper case.
!* - The current directory label.
!~ - The entire calling command line.
ááááThσá typica∞á usσ oµ macro≤ i≤ t∩ ge⌠ parameter≤ froφ thσ callinτá linσ ì
ááááfo≥á aεá alia≤ o≥ submit«á Thσ usua∞ "0ó - "9ó i≤á available¼á bu⌠á thσ ì
ááááentirσ linσ caε bσ processeΣ t∩ recove≥ parameter≤ pas⌠ thσ ninth.
.paè
ááááEXPRESSIONS:
áááá┴ ful∞ expressioε processo≥ i≤ buil⌠ int∩ RP«á Thσ ke∙ t∩ understandinτ ì
ááááR╨á expression≤á i≤ t∩ realizσ tha⌠ thσ onl∙ "typeó operateΣ oε i≤á thσ ì
áááástring.
ááááWheεá ß numbe≥ i≤ given¼á i⌠ i≤ checkeΣ fo≥ prope≥ numeriπ format¼á bu⌠ ì
ááááactuall∙á entereΣá a≤ ß string«á Wheε ß matΦá operato≥á i≤á given¼á thσ ì
áááástring≤á giveεá a≤á operand≤ arσ converteΣ t∩ ßá value¼á thσá operatioε ì
ááááperformed¼á theεá thσ resul⌠ converteΣ bacδ t∩ ß string«á Thσ poin⌠á oµ ì
ááááthi≤ i≤ t∩ dispensσ witΦ thσ neeΣ fo≥ strinτ convertioε operators« Thi≤ ì
áááágive≤á thσá expressioεá processo≥á thσ typσ freedoφá a≤á founΣá iεá thσ ì
áááá"snoboló language« Thσ basiπ object≤ tha⌠ caε bσ operateΣ oε are:
1.á á'constantº - An∙ quoteΣ sequencσ oµ character≤ i≤ ß string«á Thσ ó ì
ááááááááácharacte≥ i≤ thσ samσ a≤ an∙ othe≥ character« Tw∩ quote≤ back-t∩ -ì
ááááááááábacδ arσ interpreteΣ a≤ ß singlσ quote.
áááááááááThσ characte≥ "\ó i≤ useΣ t∩ "forceó thσ nex⌠ character¼ includinτ ì
áááááááááßá quotσ o≥ "\"«á Additionally¼á ß standarΣ asciΘ contro∞ mnemoniπ ì
ááááááááásucΦ "\eot"¼á o≥ "\cró ma∙ appear¼ o≥ iµ followeΣ b∙ ß number¼ thσ ì
áááááááááasciΘ equivalen⌠ wil∞ bσ entered.
2. áá<number╛ - Numbers¼á iε thσ rangσ ░ - 6553╡ ma∙ bσ entered«á Thesσ ì
áááááááááma∙ bσ precedeΣ b∙ "$ó (hex)¼ "@ó (octal)¼ "%ó (binary).
3.á á<variable╛ - ┴ characte≥ sequencσ beginninτ witΦ ß lette≥ o≥á "_"¼ ì
áááááááááanΣ followeΣ b∙ an∙ sequencσ oµ letters¼ digit≤ o≥ "_ó i≤ ß strinτ ì
ááááááááávariable.
ááááNotσ tha⌠ macro≤ caε bσ useΣ iε expressions¼ as║ '!1º woulΣ bσ ß strinτ ì
áááácontaininτ thσ firs⌠ calle≥ parameter.
ááááThσ operators¼ iε precedencσ orde≥ are:
<a> = <b> - Numeric equality.
<a> == <b> - String equality.
<a> # <b> - Numeric inequality.
<a> ## <b> - String inequality.
<a> < <b> - Numeric less than.
áááá<a╛ <╝ <b╛ - Strinτ les≤ than.
<a> > <b> - Numeric greater than.
<a> >> <b> - String greater than.
<a> <= <b> - Numeric less than or equal.
è <a> <<= <b> - String less than or equal.
<a> => <b> - Numeric greater than or equal.
<a> =>> <b> - String greater than or equal.
áááá<a> + <b> - Addition.
<a> ++ <b> - Concatenation.
<a> - <b> - Subtraction
<a> or <b> - Logical "or".
<a> * <b> - multiplication.
<a> ** <b> - String a replicated b times.
<a> / <b> - Division.
<a> mod <b> - Modulo.
<a> xor <b> - Logical "xor".
<a> shl <b> - Value a shifted left b times.
<a> shr <b> - Value a shifted right b times.
<a>[<b>] - The bth character of string a.
<a>[<b>,<c>▌á - Thσ character≤ iε strinτ ß froφ positioε Γ t∩ positioε ì
áááá c.
<a>[~<b>] - The bth word of string a.
<a>[~<b>,<c>] - The words in string a from position b to position c.
+<a> - The positive value of a.
-<a> - The negative value of a.
not <a> - The logical "not" of a.
$$<a> - The hexadecimal convertion of a.
@@<a> - The octal convertion of a.
%%<a> - The binary convertion of a.
^<a> - The number of characters in string a.
~<a> - The number of words in string a.
?<a> - A string containing the files matching the file
áááá specification a.è
ááááTypica∞ expressions:
2+2 - The single character string '4'.
2++2 - The string '22'.
2+'4' - The string '6'.
2++'4' - The string '24'.
~'the rain in spain' - The string '4'.
'hi'**5 - The string 'hihihihihi'.
'special'[5] - The string 'i'.
'the rain in spain'[~3] - The string 'in'.
$$10 - The string '$a'.
5 < 10 - The string '65535'.
10 < 5 - The string '0'.
?'test.*' - A string containing all files 'test' of any
áááá extention.
ááááCOMMO╬ COMMANDS:
ááááThσ director∙ (dir⌐ (ls⌐ (files⌐ (cat⌐ commanΣ wil∞ lis⌠ thσá director∙ ì
ááááoµ thσ curren⌠ disδ area¼á o≥ an∙ giveε area(s)«
áááThσá typσá commanΣ type≤ ou⌠ thσ content≤ oµ thσá giveεá files(s)«
á ááThσ directorie≤ (pwd⌐ (map⌐ commanΣ wil∞ prin⌠ al∞ disδ area≤ (tha⌠ arσ ì
áááánamed⌐ availablσ fo≥ use«
ááááerasσ (era⌐ (scratch⌐ wil∞ erasσ thσ giveε files«
áááácop∙á wil∞á cop∙á file(s⌐á froφ anywherσ t∩á anywhere¼á anΣá wil∞á als∩ ì
ááááconcatenatσ ß grou≡ oµ file≤ int∩ one¼á o≥ movσ multiplσ files¼ o≥ eveε ì
áááámovσ file≤ anΣ changσ thσ name≤ oµ thσ file≤ a⌠ thσ samσ time«á
áááámovσ i≤ simila≥ t∩ copy¼á excep⌠ thσ sourcσ wil∞ bσ deleteΣ iµ thσ movσ ì
áááái≤á succesful«
ááááThσ hel≡ commanΣ withou⌠ parameter≤ give≤ ß lis⌠ oµ help≤ available¼ anΣ ì
áááágiveε ß subject¼ wil∞ typσ ou⌠ thσ the appropriate help subject.
ááááech∩á type≤ ß linσ oµ text.
áááácalculatσ (calc⌐ type≤ thσ resul⌠ oµ ß strinτ expression«è
ááááThσá commen⌠ (c⌐ commanΣ cause≤ thσ res⌠ oµ thσ linσ afte≥ thσ commanΣ ì
áááát∩ bσ ignored«
áááápromp⌠ set≤ thσ curren⌠ commanΣ prompt.
ááááassigεá assign≤á thσ valuσ oµ ß strinτ variable.
ááááinpu⌠á input≤á ß strinτ froφ thσ consolσ t∩á ßá strinτá variable«á
áááátimσá print≤ o≥ set≤ thσ curren⌠ systeφ time«á
ááááclocδá print≤á thσá systeφá CP╒á clocδá speed.
ááááticδ print≤ thσ multiprocesso≥ ticδ time.
ááááMoun⌠á anΣ unmoun⌠ causσ ß disδ t∩ bσ eithe≥ placeΣ oε line¼á o≥á takeε ì
ááááofµ line.
ááááRP i≤ strictl∙ a moun⌠ orienteΣ system╗á al∞ disks¼á eveε floppys¼ mus⌠ ì
áááábσ specificall∙ mounteΣ anΣ unmounteΣ t∩ preven⌠ malfunction«á AlthougΦ ì
ááááthi≤ ma∙ seeφ ß rathe≥ painful∞ restriction¼á i⌠ speed≤ O/S operations¼ ì
áááábecausσ thσ disδ doe≤ no⌠ havσ t∩ bσ continuall∙ "checksumedó t∩ seσ iµ ì
áááái⌠ ha≤ beeε changed¼á anΣ disδ sector≤ ma∙ bσ buffereΣ t∩ anΣ froφá thσ ì
áááádisk.
ááááThσá connec⌠á statemen⌠ allow≤ thσ connectioε oµá logica∞á t∩á physica∞ ì
áááádevices¼ as:
connect lst:=lpt: - Connect logical list to lpt:
connect con:=crt: - Connect logical console to crt:
ááááFo≥ morσ informatioε oε thesσ commands¼ usσ thσ hel≡ functioε unde≥ RP.
ááááRUNNING APPLICATIONS PROGRAMS:
ááááBeside≤á jus⌠á runninτá aε applicatioε program¼á severa∞á control≤á arσ ì
ááááavailable« Normally¼ CP/═ translate≤ thσ commanΣ linσ giveε thσ prograφ ì
áááát∩ uppe≥ case«á Thi≤ cause≤ man∙ program≤ problems¼ sucΦ a≤ find¼ whicΦ ì
áááácan'⌠á bσá useΣá iεá ß straightforwarΣ wa∙á t∩á looδá fo≥á lowe≥á case« ì
áááánouppercasσá wil∞á allo≈ lowe≥ casσ commanΣ line≤ t∩ bσ passeΣá t∩á thσ ì
ááááprogram¼ anΣ uppercasσ reverse≤ this«
ááááWhethe≥á o≥ no⌠ aε applicatioε caε perforφ direc⌠ I/╧ (executσ aεá "inó ì
ááááo≥á "outóá instructioεá i≤ controlleΣ b∙ thσá directi∩á anΣá nodirecti∩ ì
áááácommands.
.paè
ááááIµá i⌠ i≤ no⌠ desireΣ t∩ allo≈ thσ prograφ t∩ acces≤ thσ disδá directl∙ ì
áááávißáá BIO╙á secto≥á calls¼áá thσá command≤á readdirect¼áá noreaddirect¼ ì
ááááwritedirect¼ anΣ nowritedirec⌠ wil∞ allow/disallo≈ this«
ááááWhethe≥ o≥ no⌠ thσ prograφ caε se⌠ thσ attribute≤ oµ ß filσ (anΣá thus¼ ì
áááásay¼á se⌠á ßá reaΣ onl∙ filσ bacδ t∩ read/write⌐ i≤ controlleΣ vißá thσ ì
áááásetattributσ anΣ nosetattributσ commands.
ááááPROTECTIONS:
ááááIεá ßá multi-use≥ enviorment¼á i⌠ i≤ necessar∙ t∩ providσá ßá mean≤á t∩ ì
áááádisallo≈á acces≤á t∩á giveεá disδá areas/privledges/devices«á Al∞á sucΦ ì
áááápermission≤á havσ onl∙ aε excludσ commanΣ t∩ disallo≈ them«á Thi≤ i≤ aε ì
ááááextrß protectioε feature╗ oncσ lost¼ therσ i≤ nothinτ ß prograφ o≥ use≥ ì
áááácaε d∩ t∩ ge⌠ theφ back«á Thσ excludσ commanΣ i≤ useΣ t∩ excludσ acces≤ ì
áááát∩ ß giveε drive¼ drive/user¼ o≥ device:
exclude d: - Disallows access to drive d:.
exclude command: - Disallows access to the command directory.
exclude d1: - Disallows access to drive d:, user 1.
exclude lpt: - Disallows access to the lpt: device.
ááááexcludedirec⌠á exclude≤á thσ abilit∙ t∩ perforφ direc⌠ disδá read≤á anΣ ì
ááááwrites¼ anΣ als∩ exclude≤ thσ permissioε t∩ changσ tha⌠ mode«
ááááexcludei∩á eliminate≤ thσ abilit∙ t∩ perforφ direc⌠á I/O«
ááááexcludemoun⌠ take≤ awa∙ thσ abilit∙ t∩ moun⌠ anΣ unmoun⌠ disks.
ááááexcludeattributσá eliminate≤á attributσá se⌠á ability«
ááááexcludetimese⌠ disallow≤ settinτ oµ thσ systeφ time.
ááááFLO╫ O╞ CONTROL:
áááá┴á ful∞ se⌠ oµ flow-of-contro∞ command≤ arσ residen⌠á iεá RP«á Togethe≥ ì
ááááwitΦá thσ ful∞ expressioε ability¼á thσ exeπ "languageó oµ R╨ i≤á quitσ ì
áááácapable¼ anΣ iε fact¼ quitσ reasonablσ program≤ caε bσ writteε iε it.
ááááThσ primσ limitatioε i≤ simpl∙ speed«á Runninτ ß prograφ ofµ disδá wil∞ ì
ááááb∙ definitioε no⌠ bσ fast«
ááááThσá statement≤á if¼áá else¼á elseif¼á anΣá endiµá providσá conditiona∞ ì
ááááexecution«
.paè
ááááThσ repeat¼ until¼ whilσ anΣ endwhilσ command≤ providσ loopinτ control¼ ì
ááááanΣ thσ commanΣ breaδ wil∞ abor⌠ an∙ loop.
ááááFinally¼ thσ labe∞ anΣ got∩ command≤ allo≈ completel∙ arbitrar∙ flo≈ oµ ì
áááácontrol¼á t∩á an∙á poin⌠ iε thσ program¼á usinτá standarΣá alphanumeriπ ì
áááálabels.
ááááTherσ i≤ n∩ limi⌠ whatsoeve≥ oε wherσ thσ flow-of-contro∞ command≤á ma∙ ì
áááábσá executed«á The∙á ma∙ bσ useΣ equall∙ wel∞ froφ thσ console¼á iεá aε ì
ááááalias¼á o≥ iε ß submit« N∩ limi⌠ exist≤ oε ho≈ fa≥ ß got∩ wil∞ jump¼ o≥ ì
ááááho≈ man∙ repea⌠ o≥ whilσ loop≤ ma∙ bσ nested.
áááá┴ gooΣ examplσ oµ genera∞ prograφ constructioε i≤ giveε b∙ bbs.sub¼ thσ ì
ááááexeπ filσ tha⌠ run≤ thσ bb≤ (temporarily¼á unti∞ wσ ge⌠ ß hardcodeΣ bb≤ ì
ááááimplemented).
ááááMULTITASKING/MULTIUSER:
ááááA≤ stated¼á an∙ numbe≥ oµ task≤ ma∙ bσ ruε unde≥ RP¼á anΣ an∙ numbe≥ oµ ì
ááááusers« Thσ onl∙ limi⌠ i≤ thσ availablσ systeφ memor∙ useΣ t∩ kee≡ tracδ ì
ááááoµá thesσá tasks«á Thσ curren⌠ lis⌠ oµ task≤ runninτ i≤á giveεá b∙á thσ ì
áááátaskstatu≤á (tstat⌐ (ts⌐ command«á Severa∞ statistic≤ wil∞ bσ giveεá oε ì
ááááeacΦá task¼á includinτ thσ numbe≥ oµ tasδ (numbereΣ froφ 0¼á thσá firs⌠ ì
áááátasδ t∩ bσ starteΣ iε RP¼á t∩ whateve≥ tasδ wa≤ starteΣ last)¼ thσ namσ ì
ááááoµ thσ prograφ running¼á whethe≥ thσ tasδ i≤ runninτ o≥ stopped¼á iµ i⌠ ì
áááái≤ attacheΣ t∩ thσ console¼á wha⌠ consolσ i⌠ i≤ attacheΣ to¼ thσ numbe≥ ì
ááááoµ opeε files¼ thσ homσ disδ directory¼ thσ timσ i⌠ wa≤ starteΣ anΣ ho≈ ì
áááálonτ i⌠ ha≤ beeε running« Task≤ ma∙ bσ killeΣ witΦ thσ kil∞ command¼ o≥ ì
áááástoppeΣ witΦ stop¼ o≥ resumeΣ witΦ resume.
áááá┴ tasδ ma∙ bσ detacheΣ froφ thσ consolσ witΦ detach¼ o≥ reattacheΣ witΦ ì
ááááattach« Thi≤ i≤ donσ if¼ say¼ yo⌡ arσ goinτ t∩ usσ ß ful∞ screeε edito≥ ì
ááááanΣ d∩ no⌠ wan⌠ thσ display froφ thσ tasδ t∩ disturΓ you≥ work.
ááááThσá commanΣá excludeglobaltasδá (yes¼á tha⌠ i≤á thσá longes⌠á built-iε ì
áááácommanΣá name⌐á wil∞á eliminatσ acces≤ t∩ task≤ no⌠á connecteΣá t∩á thσ ì
áááápresen⌠ terminal«á The∙ wil∞ no⌠ appea≥ iε thσ tasδ status¼á no≥ i≤ an∙ ì
áááácontro∞á ove≥á theφ allowed«
ááááA≤ wσ havσ said¼ AN┘ built-iε command¼ alias¼ submi⌠ o≥ applicatioε caε ì
áááábσ ruε eithe≥ a≤ ß "foregroundó o≥ "backgroundó task« Additionally¼ thσ ì
ááááexecutioε processo≥ tha⌠ receive≤ anΣ execute≤ use≥ command≤ i≤á itselµ ì
ááááß tasδ unde≥ RP.
ááááThσá executσ (exec⌐ commanΣ cause≤ ß ne≈ executivσ t∩ bσá brancheΣá ofµ ì
áááá(aεá exeπá alway≤á run≤ iε parallel)«á Thσ exeπ commanΣ i≤ thσá ke∙á t∩ ì
áááámultiplσ use≥ work:
exec connect con:=crt:
.paè
ááááIµ thσ maiε systeφ i≤ runninτ under¼á say¼á tty:¼á anΣ anothe≥ termina∞ ì
áááá(user⌐ i≤ availablσ unde≥ crt:¼ thσ abovσ statemen⌠ woulΣ "star⌠ upó aε ì
ááááexecutivσ fo≥ tha⌠ terminal« Thσ command:
exec startup
ááááWoulΣ d∩ thσ same¼ bu⌠ causσ thσ submi⌠ filσ startup.suΓ t∩ bσ executeΣ ì
ááááfirst¼á beforσá allowinτá thσ use≥ oε tha⌠ termina∞ t∩á executσá direc⌠ ì
ááááline≤á froφá thσá console«á Typically¼á thσá startu≡á filσá woulΣá havσ ì
áááástatement≤ settinτ thσ consolσ tha⌠ i≤ t∩ bσ used¼á thσ homσ disδ area¼ ì
ááááanΣá thσá standarΣ aliase≤ used«á Also¼á excludσá statement≤á woulΣá bσ ì
ááááexecuteΣá disallowinτ acces≤ t∩ direc⌠ I/O¼á systeφ disδ areas¼á systeφ ì
ááááperiherals¼á etc«á ┴ gooΣ examplσ oµ thi≤ i≤ thσ bbstart.suΓ filσá tha⌠ ì
áááástart≤ thσ bb≤ termina∞ oε thi≤ system.
ááááIµá multiplσ task≤ arσ alloweΣ t∩ ruε oε ß singlσ terminal¼á thσ resul⌠ ì
áááátypicall∙á i≤ chaos╗á task≤ figh⌠ ove≥ thσ character≤ cominτá froφá thσ ì
áááákeyboard¼á anΣá thσ output≤ oµ thσ tw∩ task≤ mi° oε output«á T∩ providσ ì
áááácontro∞ fo≥ thi≤ situation¼ yo⌡ caε enablσ ß multiplσ tasδ "contentionó ì
ááááhandle≥ fo≥ thσ console«á Thσ buffe≥ anΣ nobuffe≥ statement≤ enablσ anΣ ì
áááádisablσ thi≤ mode.
ááááIε buffereΣ mode¼á eacΦ tasδ ha≤ it≤ owε inpu⌠ anΣ outpu⌠ linσá buffer¼ ì
ááááanΣá caεá outpu⌠ character≤ eveε wheε no⌠ currentl∙ beinτ displayeΣá oε ì
ááááthσ console.
ááááIµ an∙ tasδ complete≤ it≤ linσ (witΦ cr/lf)¼á thσ wholσ linσ i≤ printeΣ ì
ááááoεá thσá console¼á anΣá whateve≥á tasδ wa≤á "interruptedóá b∙á thi≤á i≤ ì
ááááreprinted« Iε othe≥ words¼ line≤ arσ alloweΣ t∩ mi° oε thσ console¼ bu⌠ ì
ááááno⌠ characters.
áááá
ááááAl∞ thσ task≤ currentl∙ runninτ unde≥ thσ consolσ ac⌠ a≤ iµ arrangeΣ iε ì
ááááßá circle«á Iµ consolσ control≤ arσ enableΣ (discusseΣ iε ßá bit)¼á thσ ì
ááááCTL-╥ characte≥ wil∞ causσ thσ nex⌠ tasδ iε thσ circlσ t∩ bσá displayeΣ ì
ááááoε thσ console« Thσ tasδ beinτ displayeΣ i≤ thσ onσ tha⌠ get≤ thσ inpu⌠ ì
ááááfroφ thσ console¼ anΣ caε bσ controlleΣ b∙ consolσ characters.
ááááThσá control≤á anΣá nocontrol≤ command≤ enablσ o≥ disablσá thσá consolσ ì
áááácontro∞ characters« Thesσ are:
CTL-R - Rotate to next console task.
CTL-W - Stop presently displayed task (whether it wants to or not).
CTL-E - Resume a task stopped by CTL-W.
CTL-T - Terminate a task (whether it likes it or not).
CTL-Y - Flush input queue (dispose of all waiting characters).
.paè
ááááThesσá character≤ werσ deliberatel∙ pickeΣ t∩ avoiΣ thσ usua∞á control≤ ì
ááááfo≥ ß program¼á sucΦ a≤ CTL-╙ (stop)¼á CTL-╤ (resume)¼á CTL-├ (cancel)« ì
ááááThσá consolσá contro∞á character≤ arσ processeΣá withou⌠á knowledgσá o≥ ì
áááápermissioεá froφ thσ applicatioε running╗á CTL-╘ wil∞ terminatσ eveεá ß ì
áááácrasheΣ program.
áááá┴á 25╢ bytσ inpu⌠ queuσ ma∙ bσ enableΣ fo≥ eacΦ consolσ oε thσá system« ì
ááááThσ queuσ anΣ noqueuσ command≤ enablσ o≥ disablσ thσ queue«á Character≤ ì
ááááwil∞á bσ saveΣ iε thσ inpu⌠ queuσ whethe≥ o≥ no⌠ thσ prograφ runninτ i≤ ì
ááááacceptinτ them.
ááááThi≤á provide≤á thσá "typσá aheadóá functioεá usuall∙á implementeΣáá iε ì
áááámultitasδ systems« Thσ CTL-┘ characte≥ wil∞ causσ an∙ character≤ iε thσ ì
ááááqueuσ t∩ bσ disposeΣ of.
ááááIµá ßá tasδ no⌠ beinτ displayeΣ require≤ inpu⌠ froφá thσá console¼á thσ ì
áááácommanΣá demanΣá wil∞á allo≈ thσ consolσ displa∙á t∩á bσá automaticall∙ ì
ááááshifteΣ t∩ tha⌠ task« Thσ nodemanΣ commanΣ disable≤ thi≤ mode.
ááááExperiencσá witΦá thσ multiplσ displa∙ systeφ i≤ bes⌠ gaineΣ b∙á actua∞ ì
ááááuse.
THIS WAY OUT:
ááááWitΦ sucΦ ß diversσ environmen⌠ a≤ tha⌠ oµ thσ Z80¼á RP wa≤ buil⌠á witΦ ì
ááááthσá intentioε oµ suppor⌠ fo≥ fo≥ multiplσ operatinτ system≤ interface≤ ì
ááááanΣ filσ formats«á Thu≤ iε thσ future¼á suppor⌠ fo≥ system≤ oε thσá Z8░ ì
ááááwil∞ bσ expanded.
ááááThσ system≤ oε Z8░ includσ CP/M 2.2¼á CP/M 3.0¼á ZCPR¼ MP/M¼ Concurren⌠ ì
ááááCP/M¼á anΣ OASI╙ beinτ thσ mos⌠ popular«á WitΦ thσ notablσ exceptioε oµ ì
ááááZCPR¼á thesσá system≤á al∞ sharσ onσ rathe≥ depressinτá characteristic╗ ì
áááásuppor⌠á b∙á thσá origina∞ programmer≤ ha≤á beeεá suspended¼á anΣá tha⌠ ì
áááásuppor⌠ ha≤ no⌠ beeε carrieΣ oε b∙ others«á I⌠ strike≤ thi≤á programme≥ ì
áááátha⌠á thσ attitudσ oµ botΦ terminatinτ suppor⌠ oε ß largσ piecσ oµ codσ ì
ááááAN─ refusinτ t∩ properl∙ pas≤ oε thσ sourcσ t∩ other≤ smack≤ oµ ß "takσ ì
ááááyou≥á ba⌠á anΣá bal∞ anΣ g∩ homeó attitude«
ááááIε designinτ ß ne≈ O/╙ interface¼ ╔ thinδ i⌠ help≤ t∩ conside≥ tha⌠ thσ ì
ááááprogramme≥á i≤ creatinτ ß virtua∞ standard«á ┴ lis⌠ oµ call≤ shoulΣ no⌠ ì
áááásimpl∙ be ß randoφ lis⌠ oµ features¼á witΦ morσ feature≤ dumpeΣ a⌠á thσ ì
ááááenΣ oµ thσ lis⌠ t∩ adΣ function¼ o≥ ofteε t∩ correc⌠ defecincie≤ oµ thσ ì
ááááprecedinτ calls«á Creatinτ ß systeφ interfacσ tha⌠ i≤ regula≥ enougΦ t∩ ì
áááábσá easil∙á porteΣá t∩á othe≥á system≤ i≤ thσá greates⌠á favo≥á aεá O/╙ ì
ááááprogramme≥á caε d∩ fo≥ application≤ writters¼á anΣá aεá acknowledgemen⌠ ì
áááátha⌠ thσ application≤ arσ fa≥ morσ importan⌠ thaε thσ O/╙ itself.
.paè
ááááWh∙á desigεá ß custoφ interfacσ fo≥ RP a⌠ al∞ ┐á Startinτ witΦ ßá cleaε ì
ááááslatσá enable≤á u≤ t∩ cleanl∙ anΣ clearl∙ suppor⌠ thσ ne≈á feature≤á oµ ì
áááábotΦ RP anΣ thσ Z280« ╔ als∩ belivσ tha⌠ n∩ microprocesso≥ interfacσ t∩ ì
áááádatσá witΦá thσá exceptioεá oµá UNI╪ (whicΦ diΣá no⌠á star⌠á ou⌠á oεá ß ì
áááámicroprocessor⌐ display≤ gooΣ qualit∙ anΣ careful∞á design«á Obviously¼ ì
ááááhowever¼á eacΦ ne≈ O/S designe≥ ha≤ comσ t∩ tha⌠ conclusion¼ accountinτ ì
ááááfo≥ thσ interfacσ t∩ eacΦ ne≈ O/S beinτ incompatiblσ witΦ others.
ááááR╨ compensate≤ (bu⌠ doe≤ no⌠ ultimatel∙ correct!⌐ fo≥ thi≤ situatioε b∙ ì
ááááprovidinτá aε organizeΣ solutioε fo≥ foreigε interfacσá support«á Thesσ ì
áááámodule≤á interna∞á t∩á R╨ arσ cal∞ Foreigε Operatinτá Systems¼á o≥á FO╙ ì
áááámodules«á ┴ FO╙ unde≥ R╨ intercept≤ al∞ systeφ calls¼á trap≤ anΣá othe≥ ì
ááááexception≤á froφá ß targe⌠ program«á Fo≥ thσ presen⌠ version¼á tw∩á FO╙ ì
áááámodule≤ arσ buil⌠ iε t∩ RP: thσ CP/═ FOS anΣ thσ R╨ FOS.
ááááRP NATIV┼ INTERFACE:
ááááCall≤ t∩ R╨ arσ performeΣ directl∙ b∙ thσ Z28░ "SCóá instruction«á EacΦ ì
áááásysteφá cal∞á numbe≥á correspond≤ t∩ ßá differen⌠á systeφá function«á ┴ ì
áááástandarΣá se⌠ oµ systeφ erro≥ code≤ i≤ returneΣ iε A (witΦ ░ meaninτ n∩ ì
ááááerror)¼á anΣ al∞ parameter≤ beinτ passeΣ iε registers« Iµ aε invaliΣ o≥ ì
ááááunsupporteΣ systeφ cal∞ i≤ used¼ anΣ erro≥ fo≥ tha⌠ wil∞ bσ returned.
ááááThσá systeφá call≤ useΣ arσ quitσ simplσ anΣ logical«á Filσá name≤á arσ ì
áááápasseΣá a≤ strings¼á anΣ thσ requireΣ parsinτ oµ filσ name≤ i≤á carrieΣ ì
ááááou⌠ b∙ thσ O/S.
ááááThσá prograφá i≤ no⌠ requireΣ t∩ kee≡ o≥ maintaiε "FCBsó iεá it'≤á owε ì
áááámemory.
ááááFile≤ arσ kep⌠ tracδ oµ usinτ smal∞ logica∞ filσ numbers.
ááááFile≤ unde≥ RP arσ universal╗ thσ filσ strinτ specifieΣ fo≥ openinτ caε ì
áááábe the name of a file, an I/O device, or even a logical file/device name.
ááááDevice≤ caε bσ reaΣ o≥ writteε thσ samσ wa∙ a≤ ordinar∙ files.
ááááFile≤á unde≥ RP arσ blockless╗á thσ prograφ caε specif∙ an∙á numbe≥á oµ ì
áááábyte≤á t∩á bσ reaΣ o≥ written¼á froφ ▒ t∩ 65535¼á withou⌠ an∙á neeΣá t∩ ì
ááááperforφ blockinτ o≥ deblocking.
.paè
ááááSYSTEM CALLS:
ááááThσ systeφ call≤ currentl∙ availablσ unde≥ the RP FOS are:
terminateá - ááTerminate≤á thσ prograφ run«á Wil∞ als∩ accep⌠ aεá erro≥ ì
ááááááááááááááááááácode¼áá anΣá prin⌠á thσá messagσá correspondinτá t∩á thσ ì
ááááááááááááááááááástandarΣ error.
open - ááAccept≤ ß filσ namσ string¼á anΣ modσ flags«á Thσá giveε ì
áááááááááááááááááááfilσ o≥ devicσ i≤ opened¼ anΣ ß logica∞ filσ numbe≥ froφ ì
ááááááááááááááááááá▒ t∩ 25╡ i≤ returned.
close - ááClose≤ ß filσ b∙ thσ logica∞ filσ number.
readá - áFroφá ▒á t∩ 6553╡ byte≤ arσ reaΣ froφ thσ giveε filσá t∩ ì
áááááááááááááááááááprograφ memory.
write - ááFroφá ▒á t∩á 6553╡ byte≤ arσ writteε t∩á thσá filσá froφ ì
áááááááááááááááááááprograφ memory.
location - ááThσ curren⌠ bytσ locatioε iε thσ filσ i≤ returned.
position - ááThσ filσ positioε i≤ moveΣ t∩ thσ giveε location.
length - ááThσ numbe≥ oµ byte≤ iε ß filσ arσ returned.
sizeá - áThσá numbe≥á oµá byte≤ iε ß filσ arσ se⌠á (thσá filσá i≤ ì
ááááááááááááááááááátruncated).
copyá - á┴ filσ b∙ ß giveε strinτ i≤ copieΣ t∩ thσ filσ giveεá iε ì
áááááááááááááááááááß destinatioε string.
moveá - á┴ filσ b∙ ß giveε strinτ i≤ moveΣ t∩ thσ filσ giveε iε ß ì
ááááááááááááááááááádestinatioε string.
time - ááReturn≤ thσ curren⌠ timσ anΣ date.
schedule - ááAccept≤á ßá timσ anΣ date¼á anΣ stop≤ thσ prograφá unti∞ ì
áááááááááááááááááááPAS╘á tha⌠ timσ anΣ datσ (iµ thσ datσ giveε ha≤á alread∙ ì
ááááááááááááááááááápast¼ returε i≤ immediate).
ááááz280info>╛ CommanΣ (B/F/R/S/W/E/C/G/H/?)║
ááááe4:REMOTE:17╛