home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / jsage / znode3 / tcj / tcj42.wz / TCJ42.WS
Encoding:
Text File  |  1993-06-07  |  32.9 KB  |  591 lines

  1. TCJ #42
  2.  
  3.                             The Z-System Corner
  4.  
  5.                                   Jay Sage
  6.  
  7.  
  8.      A number of newer TCJ readers have commented that with this column theyì
  9. feel that they are coming into the middle of a very involved discussion thatì
  10. is hard to catch on to.  Of course, one answer to that problem is for newì
  11. TCJ readers to purchase back issues.  I have been writing this columnì
  12. regularly since issue #25, and I am quite sure that all those back issuesì
  13. are still available.  That solution notwithstanding, it is probably not aì
  14. bad idea to stand back every so often and try to comprehend a largerì
  15. picture.  That is one of the tasks I will undertake this time.
  16.  
  17.      Detailed technical content will not be forsaken entirely, however,ì
  18. since I regard that as the primary purpose of my column.  At this point, Iì
  19. suspect that I am too much of a Z-System expert to talk about very manyì
  20. topics at a level that is appropriate for beginners.  To serve their needs,ì
  21. I have been very actively soliciting articles from other authors.  In thisì
  22. issue, for example, we have the first of the columns I promised a couple ofì
  23. issues back on how to set up a remote access system (aka bulletin boardì
  24. system) under the NZCOM auto-install version of Z-System.  Lee McEwen (akaì
  25. Chris McEwen) has done a lovely job with that assignment.
  26.  
  27.      The technical discussion this time will focus on some issues that aroseì
  28. in trying to install ZSDOS or ZDDOS on an SB180 computer with the XBIOSì
  29. enhanced operating system.  Before you say "But I don't have an SB180," letì
  30. me assure you that the techniques have more general applicability.  Theì
  31. specific XBIOS problem is one that has come up often and has been the sourceì
  32. of considerable frustration to XBIOS users.  [They are in good company, byì
  33. the way.  Just as I was finishing this article, I got a call from Bridgerì
  34. Mitchell about this very subject!]  I am only sorry that it took me so longì
  35. to get around to working on it.  Gene Pizzetta, a fellow Bostonian, was theì
  36. squeaky wheel that finally got my attention, and he has contributed a numberì
  37. of his own ideas to the solution.
  38.  
  39.  
  40. Announcements
  41.  
  42.      Before we get down to business, I have, as usual, a few announcementsì
  43. to make.  First I would like to remind readers once again about Billì
  44. Tishey's superb collection of help files for the hundreds of Z-Systemì
  45. programs now available.  Bill can now generate diskettes in many formatsì
  46. besides Apple (using his son's Commodore 128), and he is willing to fillì
  47. your diskettes with the files for only $10.  My column in issue #36 gave theì
  48. following procedure to follow: (1) send enough formatted diskettes (plainlyì
  49. labeled with the format) to hold at least 1000K bytes (up from 800K backì
  50. then); (2) use a reusable disk mailer or enclose a mailer suitable forì
  51. returning the diskettes to you; and (3) enclose a return address label,ì
  52. return postage, and the $10 copying fee.  Bill's address is 8335 Dubbsì
  53. Drive, Severn, MD 21144.  If you prefer (or if you need 96-tpi, 8" SSSD, orì
  54. NorthStar hard-sector formats), you can send the diskettes to me as well.
  55.  
  56.      Second, I would like to make a special point of calling your attentionì
  57. to the GEnie RoundTable discussions that take place every Wednesday at 10pmì
  58. Eastern time.  The first such session of each month is devoted to Z-System,ì
  59. and I am the moderator, so this is your chance for a real-time dialogue withì
  60. me.  Go to page "685;2" on GEnie and enter "Room 2".
  61.  
  62.      There are several changes to report in the roster of Z-Nodes. ì
  63. Regrettably, Bob Paddock's node #38 in Franklin, PA, has gone off the air. ì
  64. To offset that loss, however, node #73 in the St. Louis, MO, area has comeì
  65. back to life after being down for several years.  Sysop George Allen and co-sysop Walt Stumper would be happy to hear from you at 314-821-1078 (PC-Pursuit MOSLO/24).  The equipment is currently a Xerox 820-II with a 10 Megì
  66. drive, but the sysops hope to expand soon to a 30+ Meg Ampro.
  67.  
  68.      On the Z-Node front, I am also sorry to report that Z-Node Centralì
  69. (Lillipute) was downed by hardware failures on both computers!  They haveì
  70. been off the air for a couple of months already as I write this, and sysopì
  71. Richard Jacobson has just faced the truth: that it will not be coming back. ì
  72. Ladera Z-Node (#2) in Los Angeles will take over as Z-Node Central.  Chicagoì
  73. area callers looking for Z support should check out the Antelope Freewayì
  74. system run by ZDOS-coauthor Carson Wilson for CFOG (Chicago area FOG).  Thisì
  75. is one of a small number of remote access systems running under the Z3PLUSì
  76. flavor of Z-System.  The phone number is 312-764-5152 (PC-Pursuit ILCHI/24). ì
  77. We expect that its 'System One' will soon be a Z-Node ('System Two' supportsì
  78. MS-DOS).
  79.  
  80.      Finally, there have been some very significant developments with BDS C. ì
  81. Leor Zolman completed some major additions to the Z version (BDS Z), and theì
  82. final release has just gone out as I write this column in mid October. ì
  83. Programs generated by BDS Z now have a full Z-System header and can beì
  84. linked as type-3 programs to load and run at an arbitrary address.  ZDOSì
  85. coauthor Cam Cotrill has already released a substantial amount of BDS Z codeì
  86. for performing the functions in the SYSLIB, VLIB, and Z3LIB assembly-language libraries that are not already built into BDS Z.
  87.  
  88.      Leor has now turned over all of the marketing and some of theì
  89. development responsibility for BDS C to me.  Recognizing that the $90 priceì
  90. tag of the full package, however reasonable for what one gets, is anì
  91. impediment to new users who want to experiment with C, we have prepared aì
  92. low cost introductory package that (1) includes only one version of the codeì
  93. (either standard CP/M or Z-System), (2) contains only the essential files,ì
  94. and (3) comes with an abridged version of the manual (and without the fancyì
  95. BD Software binder).  This package will be offered for only $60.  Otherì
  96. parts of the full package can be added later: $25 for the second version ofì
  97. the compiler, $25 for the support materials (RED editor, CDB debugger, andì
  98. the parts of the manual covering them), or $40 for both at once.  If theì
  99. whole package is ordered at once, it comes complete with an attractiveì
  100. binder (also available with the introductory package for $5 extra).
  101.  
  102.      It should be noted that BDS Z generates programs that run perfectlyì
  103. well under standard CP/M.  Naturally, they will not recognize Z-Systemì
  104. features like named directories, but they will accept the now standard DU:ì
  105. extended drive/user syntax instead of the older U/D: format of standard BDSì
  106. C.  The only disadvantage of using BDS Z rather than BDS C on a standardì
  107. CP/M system is that the programs carry Z-System overhead (about 800 bytes)ì
  108. that don't provide them with any functionality.
  109.  
  110.  
  111.                What is a Microcomputer Operating System For?
  112.  
  113.      The basic function of an operating system is to make one's life --ì
  114. one's computing life, that is -- simpler.  When microcomputers first cameì
  115. out, the biggest burden was dealing with the hardware.  It was no fun forì
  116. the computer user and programmer (largely synonymous in those days) to haveì
  117. to deal over and over with the intricacies of the physical operation of theì
  118. hardware, such as getting characters to and from the terminal or paper tapeì
  119. reader/punch, not to mention the dauntingly more complex task of managingì
  120. data on a magnetic tape or floppy diskette drive.
  121.  
  122.      Gary Kildall's CP/M operating system provided a solution -- and a veryì
  123. good one (by and large) in my opinion -- to those problems.  It did so byì
  124. implementing a standardized and modular interface that handled the basicì
  125. device communication tasks.  CP/M, which stood (I believe) for "Controlì
  126. Program for Microcomputers," was the master program that one got running onì
  127. the computer right after power up.  It would then allow one to load and runì
  128. other programs, with control always returning to the CP/M master programì
  129. after each user program finished.
  130.  
  131.      Besides accepting and interpreting commands issued by the computerì
  132. operator, an operating system like CP/M also provides resident code (alwaysì
  133. ready in memory) for performing certain functions that application programsì
  134. will often want to use.  The simpler functions are things like sending aì
  135. character to the terminal screen; the more complex ones include fetchingì
  136. from or writing to a floppy diskette the information associated with aì
  137. logical entity known as a file.
  138.  
  139.      With these functions implemented in the operating system code,ì
  140. application programs are easier to write and do not have to include the sameì
  141. code over and over.  More importantly, they can run on a variety of hardwareì
  142. platforms, since the details of the physical hardware are handled by theì
  143. operating system code, and the program can deal with things at a logicalì
  144. level.
  145.  
  146.  
  147. Logical vs. Physical
  148.  
  149.      Perhaps this is a good time for a brief aside on this matter of logicalì
  150. versus physical.  We use the adjective "physical" when we are talking aboutì
  151. things that are actually in the hardware.  In the case of a floppy disk, forì
  152. example, the physical items are the bits of data stored as magnetizationì
  153. patterns.  These bits are grouped into sectors, and the sectors into tracks. ì
  154. In the case of a terminal screen, the physical items are the patterns ofì
  155. illuminated dots that we recognize as letters, numbers, and other symbols.
  156.  
  157.      On the other hand, we use the adjective "logical" to describe thoseì
  158. things which are essentially the creation of our minds (and programs).  Forì
  159. example, there is no such physical thing as a "file."  No matter how youì
  160. examine a diskette, you will never find a file on it (as such); you willì
  161. find only sectors and tracks.  It is our choice to organize the data on theì
  162. disk in a way that associates groups of such sectors with a file names andì
  163. to store the file names in a particular group of sectors on the disk.
  164.  
  165.  
  166. Modularity
  167.  
  168.      CP/M is modular in the sense that it divides up the functions of theì
  169. operating system into separate packages.  One part is called the BIOS (basicì
  170. input/output system).  This part, which lives at the very top of the memoryì
  171. address space, deals directly with the hardware.  It reads and writesì
  172. physical sectors from and to a diskette; it determines whether or not a keyì
  173. has been pressed on the keyboard and, if so, which key; and it sendsì
  174. characters to the screen.  The BIOS is the only part of CP/M that isì
  175. different for each hardware implementation of a CP/M computer.
  176.  
  177.      The second CP/M module is called the BDOS (basic disk operatingì
  178. system).  It deals with logical constructs.  We have already spoken ofì
  179. files.  When a file is referred to, the BDOS figures out which physicalì
  180. tracks and sectors contain the data for that file.  Another logicalì
  181. construct is lines of text.  The BDOS has a function to send a complete lineì
  182. of text to the screen (as opposed to the BIOS, which can send only a singleì
  183. character), and it has another function to get a complete line of text fromì
  184. the user, allowing a limited amount of editing.  These functions make itì
  185. much easier for the application programmer to write his or her program.
  186.  
  187.      The last CP/M module is called the CCP (console command processor).  Itì
  188. gets a command typed by the user at the console and takes the appropriateì
  189. action to carry out that command.  Some commands, such as DIR or ERA, areì
  190. implemented directly in the CCP code.  Others require that a COM file beì
  191. loaded from diskette and executed.
  192.  
  193.  
  194. Command Processing Under CP/M
  195.  
  196.      For the most part, CP/M accomplishes the functions it was designed toì
  197. perform in admirable fashion.  However, it was so concerned with solving theì
  198. hardware interface problem (the programmer interface) that it devotedì
  199. relatively little attention to the user interface.  To be fair, it was bornì
  200. in the days when 16K of memory cost about $500 (in 1970s dollars, no less)ì
  201. and occupied an entire S-100 card (bigger by far than a whole SB180FXì
  202. computer with 512K).  Today we might not think that 64K is very much (someì
  203. say that OS/2 feels dreadfully cramped in less than 3 Megs!), but it makes aì
  204. lot of things possible that 48K (or even less) would not allow.
  205.  
  206.      CP/M's command processor did little more than the minimum it wasì
  207. required to do, namely to run a few resident commands and to load externalì
  208. commands from disk.  It did not provide many services to make the operator'sì
  209. life easier.  You had to specify rather exactly the command you wantedì
  210. performed; no leeway was allowed.  And if you made a mistake, CP/M did notì
  211. try to help; it just shrugged its shoulders and emitted a question mark.
  212.  
  213.  
  214. The Niceties of Z-System
  215.  
  216.      The Z-System has evolved over a period of nearly a decade now, but itsì
  217. goal from the very beginning has always been to make it easier and moreì
  218. convenient to operate the computer.  My ideal is to have the computer doì
  219. everything that it possibly can do for the user and leave to the user onlyì
  220. those tasks that no computer could possibly figure out on its own.  Theì
  221. command processor improvements I have introduced and the utilities I haveì
  222. written have all been directed toward that goal.  I will now run through aì
  223. short summary of Z-System features and try to indicate how they make theì
  224. operator's life easier.  This list is adapted from my book, "The ZCPR33ì
  225. User's Guide."
  226.  
  227.  
  228. User Area Access
  229.  
  230.      CP/M introduced the concept of disk "user" areas, which allowed theì
  231. operating system to group files into separate logical directoriesì
  232. (physically the files are all stored in the same directory, but they areì
  233. tagged to indicate the user area).  Unfortunately, CP/M provided noì
  234. practical way to access files across user areas, which made them almostì
  235. useless.
  236.  
  237.      Back in the days when disks held only about 100K, there wasn't muchì
  238. need for this kind of organization, but today floppy diskettes commonly haveì
  239. a capacity between 350K and 1.3 Meg.  Hard disks with many tens of megabytesì
  240. are also inexpensive and common.  Under these circumstances, a singleì
  241. logical drive can hold hundreds or even thousands of files, and some way toì
  242. organize them becomes essential.
  243.  
  244.      Z-System makes it very easy and convenient to organize your files basedì
  245. on user numbers.  Where CP/M allowed only a drive prefix to a file nameì
  246. (D:NAME.TYP), Z-System allows drive and/or user number prefixesì
  247. (DU:NAME.TYP) so that files in other user areas as well as other drives canì
  248. be referenced directly.  In addition, Z-System allows meaningful namesì
  249. (similar to DOS subdirectory names) to be assigned to drive/user areas. ì
  250. This provides an interface that is far more suitable to the way people thinkì
  251. and remember.  With the DU: form, the operator has to think about theì
  252. hardware (something he or she should not have to do, remember?); with namedì
  253. directories, the operator thinks in terms of function (TEXT: for text files,ì
  254. BDSC: for the C compiler, DBASE: for database files, and so on).
  255.  
  256.  
  257. Terminal Independence and the Environment
  258.  
  259.      While some would argue that the DOS hardware and software standardsì
  260. established by IBM's market dominance have resulted in an enforcedì
  261. mediocrity, there is no doubt that having a single environment in which toì
  262. operate makes life much easier for applications programmers.  Programs forì
  263. DOS generally work right out of the box on any IBM compatible computer. ì
  264. Configuration is required only for fine-tuning.
  265.  
  266.      CP/M, on the other hand, was designed to allow programs to run on anì
  267. extremely wide variety of hardware.  In those days, "personal" computer tookì
  268. on a different meaning -- each person designed and built his own hardware. ì
  269. CP/M could be made to work with all of them, but elaborate configurationì
  270. procedures were generally required, especially to match programs to theì
  271. particular terminal used.  To this day, we still have to deal with thisì
  272. hardware diversity.
  273.  
  274.      What CP/M could have but failed to provide was a means for conveying toì
  275. application programs information about the operating environment.  Z-Systemì
  276. has several modules that afford such communication.  An area called theì
  277. environment descriptor (ENV) contains information about the systemì
  278. configuration.  Another system area called the message buffer (MSG) storesì
  279. information that one program can leave for another program that runs laterì
  280. to read.
  281.  
  282.      Part of the ENV is a section called the TCAP or Terminal-CAPabilityì
  283. descriptor.  The TCAP allows a program running under Z-System to determineì
  284. the type of terminal in use and to adapt to the control codes it uses forì
  285. special video operations.  The ENV has information about the size of theì
  286. screen and the printer's page.  It also contains such information as the CPUì
  287. clock speed and which disk drives are available (why allow attempts to logì
  288. into drive C: if there is no drive C: -- it often just hangs the computer). ì
  289. The Z-System supports many optional operating system features contained inì
  290. optional modules, and the ENV contains information about these modules also.
  291.  
  292.      The ENV and TCAP not only relieve the user of the nuisance ofì
  293. installing programs; they also make it very easy to change the installation. ì
  294. Suppose, for example, you want to print some files in 132-column modeì
  295. instead of the usual 80-column mode.  Under CP/M you might very likely haveì
  296. to get out a configuration program to redefine the printer setup.  With a Z¡
  297. System print utility, you would simply change the mode on your printer, runì
  298. CPSET (console/printer set) to select the 132-column printer definition, andì
  299. run the same print program as before.
  300.  
  301.  
  302. Command Processing Enhancements
  303.  
  304.      Under CP/M, you have to specify where the COM file to be run is locatedì
  305. (otherwise the current drive is assumed).  This is a perfect example ofì
  306. something that a computer can easily be smart enough to do for you, and Z¡
  307. System does.  As with modern versions of DOS (which took many years to catchì
  308. on to this Z-System feature), you specify a list of directory areas that theì
  309. operating system will scan for a requested COM file.  If you wish (as youì
  310. might when you know that your COM file is not on the search path), you canì
  311. specify a directory using either the DU: prefix or the named directory DIR:ì
  312. prefix, and you are thus not limited to the current user area or the path.
  313.  
  314.      With Z-System one is also no longer limited to issuing commands one atì
  315. a time (DOS has been even slower to catch on to this).  A single line ofì
  316. command input can contain a whole sequence of commands.  As a result, you doì
  317. not have to interrupt your thinking to wait for one command to finish beforeì
  318. you can specify the second and subsequent steps in a process.  You can workì
  319. out a strategy for what you want to accomplish and issue all the commands atì
  320. once, before you forget or get confused.
  321.  
  322.      Many oft-repeated computational tasks involve sequences of commandsì
  323. (e.g., editing, assembling, linking, running; or editing, spell checking,ì
  324. printing).  In such cases, the Z-System alias facility (similar in some waysì
  325. to SUBMIT but far more flexible) can be used to define a new command name,ì
  326. which, when invoked, performs the entire sequence.  This saves the user aì
  327. lot of typing but more importantly eliminates the need to remember exactlyì
  328. what the sequence is.  Basically, you solve the problem once and put theì
  329. solution into an alias script.  From then on, the computer is smart enoughì
  330. to take care of the complex details for you.  I have given many examples ofì
  331. this in past columns.
  332.  
  333.  
  334. Conditional Command Execution
  335.  
  336.      There is only so much one can accomplish on a computer (or in life)ì
  337. without making decisions.  Have you ever seen a programming language with noì
  338. ability to perform tests and act in different ways depending on the results? ì
  339. Flow control (IF/ELSE/ENDIF) is unique to the Z-System command processor. ì
  340. Other operating systems that offer flow control at all limit it to operationì
  341. inside a batch or script language.
  342.  
  343.      A special set of Z-System commands can test a wide range of conditions,ì
  344. and the command processor will use the results of the tests to decide whichì
  345. subsequent commands will be performed and which will be skipped.  Thisì
  346. allows the Z-System to respond in a remarkably flexible and intelligent way. ì
  347. The solution to a complex computing task, one that requires on-the-spotì
  348. decision-making, can be worked out once and embedded in an alias command. ì
  349. Then you won't have to tax your brain the next time you need to perform thisì
  350. task, and novice users will be able to do things on your computer that wouldì
  351. have been beyond their own ability to figure out.
  352.  
  353.  
  354. Command Processor Shells
  355.  
  356.      If you do not want to deal with the operating system at the commandì
  357. level or if you want to have a command processor with different features,ì
  358. the Z-System shell facility allows you to install substitute user interfacesì
  359. of your own choice at will.  They can even be nested within each other.
  360.  
  361.      Shells come in two common varieties: menu shells and history shells. ì
  362. The menu interfaces allow the user to pick tasks with single keystrokes andì
  363. have the shell program generate the complex sequences of commands requiredì
  364. to perform those tasks.  The menu system shields the user from complexity,ì
  365. saves typing, and greatly reduces the chance of error.
  366.  
  367.      History shells are enhanced command processors that remember yourì
  368. commands and allow you to recall and edit previous command lines.  I wishì
  369. the Apollo Domain minicomputer system I use at work (not to mention my DOSì
  370. computer) had a history shell one quarter as nice as Z-System's LSH or EASE. ì
  371. They work like powerful wordprocessors on your command history, allowingì
  372. searching and extensive editing.
  373.  
  374.  
  375. What If You Make a Mistake
  376.  
  377.      This is one of the other areas in which most operating systems behaveì
  378. in an abominably primitive manner.  When you issue a command that cannot beì
  379. performed, they just issue an error message and then dump you back to squareì
  380. one.  Often you are not even told what sort of error occurred (considerì
  381. DOS's wonderfully helpful "bad command" message).
  382.  
  383.      The Z-System behaves in a civilized manner under these circumstances. ì
  384. When an error occurs, the command processor turns the bad command line overì
  385. to a user-specified error handler.  The most sophisticated error handlersì
  386. allow the operator to edit the command and thus recover easily from typingì
  387. mistakes.  In a multiple command sequence, if subsequent commands wereì
  388. allowed to run after an earlier command failed, there could be disastrousì
  389. repercussions, and an error handler is indispensible.
  390.  
  391.      The system environment even contains an error type, which the errorì
  392. handler can use to give you more specific information about what went wrong. ì
  393. It may be the familiar error of a COM file that could not be found, butì
  394. there are many other possible causes for the difficulty.  A file that youì
  395. specified as an argument might not have been found (e.g., "TYPE FILENAM"ì
  396. when you meant "TYPE FILENAME"), or you may have specified an ambiguous fileì
  397. name to a program that cannot accept one (e.g., "TYPE *.DOC").
  398.  
  399.  
  400. System Security
  401.  
  402.      Like minicomputer and mainframe operating systems, the Z-System is aì
  403. secure operating system.  This means that it has mechanisms for limitingì
  404. what any particular user can do or get access to.  Dangerous commands (suchì
  405. as erasing, copying, or renaming files) can be disabled when ordinary usersì
  406. are operating the system but enabled when a privileged user is at work. ì
  407. Areas of your disk can be restricted from access for storage of confidentialì
  408. or other sensitive information.  These security features come in very handyì
  409. in the implementation of a remote access system or bulletin board (see Leeì
  410. McEwen's article in this issue).  There is no need for additional securityì
  411. to be provided by the remote interface program (BYE).  The Z-System alreadyì
  412. includes a full suite of programs for regulating and controlling systemì
  413. security.
  414.  
  415.  
  416. Summary
  417.  
  418.      To sum it up, the goal of the Z-System is to provide an operatingì
  419. system that can be tailored extensively to user preferences and that can beì
  420. made to handle on its own and automatically as many computational details asì
  421. it can, leaving the user free to concentrate solely on those aspects ofì
  422. computer operation that require human intelligence.
  423.  
  424.                            Faking Out The System
  425.  
  426.      For the technical part of this column, I would like to talk brieflyì
  427. about some techniques for adding extensions to a Z-System that it was notì
  428. designed to accept.  The need for this trick arose in connection with theì
  429. installation of ZSDOS and ZDDOS (and their clock drivers) on an SB180ì
  430. computer with the XBIOS enhanced BIOS, but it can be useful in otherì
  431. situations as well.
  432.  
  433.      XBIOS is a very nice and flexible system.  One of its main features isì
  434. that it keeps much of the BIOS in an alternate memory bank, leaving a muchì
  435. larger TPA (transient program area) for application programs than did theì
  436. standard BIOS from MicroMint.  The configuration and loading process,ì
  437. however, is somewhat unconventional (a forerunner in some ways to the NZCOMì
  438. and Z3PLUS techniques).
  439.  
  440.      The XBIOS system is loaded not from system tracks on the disk but fromì
  441. a file.  This file is generated by a special utility program called SYSBLDì
  442. (SYStem BuiLD) that allows one to define in a rather flexible way theì
  443. configuration of one's personal Z-System, including the names of the CCP andì
  444. DOS files to be used.  Those component files, however, must be available inì
  445. REL format, and the new Z-System DOS components are supplied in ZRL formatì
  446. only (because they have hooks to other parts of the system that can beì
  447. resolved only by that format).
  448.  
  449.  
  450. Changing Systems Using JetLDR
  451.  
  452.      JetLDR is a lovely little utility written by Bridger Mitchell thatì
  453. knows how to load almost any module in a Z operating system.  It is muchì
  454. faster and more careful than its predecessors, LDR and LLDR, and it is notì
  455. limited to the non-code Z modules -- such as the NDR (named directoryì
  456. register) -- or to code modules preassembled for a fixed system -- such asì
  457. an RCP (resident command package) module FIXED.RCP.  It can load codeì
  458. modules assembled in ZRL format to whatever address that module occupies inì
  459. the current system and with all the hooks to other Z-System modulesì
  460. generated at load time.  Thus MYRCP.ZRL, assembled once, can be used in anyì
  461. system configuration that allocates enough room for an RCP of that size.
  462.  
  463.      Most remarkably, JetLDR can load even main operating system modules:ì
  464. CCP, DOS, or BIOS.  Special adjunct configuration files (CFG) are used toì
  465. help it in some of these specialized tasks (a little more about that later). ì
  466. JetLDR's internal help screen is reproduced in Fig. 1 so you can see theì
  467. whole list of modules it can handle.  It is available from the usual Zì
  468. suppliers for $20.
  469.  
  470.      So, the obvious solution to the problem of getting ZSDOS or ZDDOSì
  471. running under XBIOS is first to generate and boot a standard ZRDOS systemì
  472. (ZRDOS.REL comes with the SB180) and then to replace ZRDOS with, say, ZDDOSì
  473. using the JetLDR command:
  474.  
  475.     JETLDR ZDDOS.ZRL
  476.  
  477. ZSDOS can be loaded just as easily.  On my system I have ARUNZ aliases thatì
  478. swap DOSs in a jiffy this way in case I want to perform some experiments.
  479.  
  480.  
  481. There's The Rub
  482.  
  483.      Now comes the problem.  It's very nice that we now have ZDDOS or ZSDOSì
  484. loaded and running, but if we want to take advantage of its wonderful timeì
  485. and date features, we must find a way to load its clock and (for ZSDOS)ì
  486. stamping module, too.  The ZDOS utility SETUPZST makes it very easy toì
  487. create the required loader, LDTIM.COM; the problem is: where can LDTIM putì
  488. the driver code?  [Aside: For those who own it, I am told that theì
  489. DateStamper BSX module will work with ZSDOS, but I have not tried thisì
  490. myself.  It requires no memory to load.]
  491.  
  492.      In an NZCOM system, the MKZCM system definition utility allows one toì
  493. specify a "user buffer" area in memory, and this is just perfect for theì
  494. clock/stamp module.  ZDOS even has special facilities for taking advantageì
  495. of this buffer.  LDTIM can automatically determine the location of thatì
  496. buffer and install the drivers there, and a special patch to NZCOM (includedì
  497. with the ZDOS package) gives NZCOM the ability to reconnect the driversì
  498. automatically after a new DOS is loaded.
  499.  
  500.      XBIOS's SYSBLD utility, unfortunately, does not support such a userì
  501. buffer (this is true even in the 1.2 version that is able to load ZRLì
  502. files).  There is a way to trick the system into making some room for extraì
  503. memory modules.  This is to assign the extra memory space needed to one ofì
  504. the standard modules, such as the RCP.  For example, if you use an RCP ofì
  505. the usual 2K (16 record) size and need one page (two records) of memory forì
  506. a ZDDOS clock driver, you simply specify an 18-record RCP space.  Then, whenì
  507. SETUPZST asks you for the address to which the clock driver should beì
  508. loaded, you give it the starting address of the last page of this RCP space.
  509.  
  510.      Once these steps have been followed, ZDDOS should be running with dateì
  511. stamping.  ZSDOS could be installed similarly except that even more extraì
  512. space would have to be allocated to the RCP.  Although what I have describedì
  513. so far will get the system running, there is some danger that an oversizeì
  514. RCP could be loaded by accident and overwrite the clock driver.  To preventì
  515. this, the ENV module should be patched to indicate that only the actual 16ì
  516. records (10H) are available.
  517.  
  518.      For those who do not face the problem of installing ZDOS on an XBIOS¡
  519. equipped SB180, there are other uses of this kind of trick.  For people whoì
  520. do not have the necessary tools (e.g., MOVCPM) to move the BIOS down to makeì
  521. room for special drivers (such as RAM disk drivers and special I/O boards),ì
  522. this same trick can be applied to open up protected-memory space for them. ì
  523. Other people may find it useful for quick experiments with special driversì
  524. before going to the trouble of moving the operating system around.
  525.  
  526.      There is one final refinement I would like to mention.  It is somethingì
  527. I learned from Gene Pizzetta, who took my general recommendations above andì
  528. worked out the details (see his file, ZD-XB11.LBR, available on many Z¡
  529. Nodes).  I have usually used either the IOP or RCP modules for this trick,ì
  530. but Gene recommended using the NDR instead.  The reason for this is that theì
  531. IOP, RCP, and FCP get allocated in 128-byte chunks, while the NDR getsì
  532. allocated in much smaller 18-byte chunks, the space required for one name. ì
  533. If your clock driver takes, for example, 270 bytes (10EH), you would have toì
  534. allocate three extra records, because the driver is a tiny bit over twoì
  535. records.  If you steal space from an NDR, you can add just two records, butì
  536. reduce the number of names in the NDR by 1.
  537.  
  538.  
  539. Changing Command Processors
  540.  
  541.      Generating a new CCP using JetLDR is a little trickier than changingì
  542. the DOS.  JetLDR could, as it does with a DOS or BIOS module, load the newì
  543. CCP into its operating position in memory, but this would be of questionableì
  544. value, since the CCP would survive only until the next warmboot.  So,ì
  545. instead, when processing a CCP ZRL module, JetLDR normally writes theì
  546. resulting absolute-code CCP to a file ZCCP.CCP (in the root directory, Iì
  547. believe).
  548.  
  549.      This is where CFG files come into play.  They are special code modulesì
  550. that JetLDR uses to perform special processing (see the file JLTOOLS.LBR onì
  551. Z-Nodes for more detailed information).  For example, CCPCFG.ZRL is one thatì
  552. tells JetLDR how to deposit the absolute CCP code that it generates directlyì
  553. into the XBIOS ram image of the CCP in banked memory (from which it isì
  554. loaded on each warm boot).  A similar CFG file could be written to tellì
  555. JetLDR how to install the new CCP onto the system tracks of the currentì
  556. drive-A disk, but so far no one has done this.  I would be happy to provideì
  557. the CCPCFG module to XBIOS owners who would like it or to others who wouldì
  558. like to use it as a model for writing other CFG files (send me a formattedì
  559. disk with your copy of JetLDR, return mailer, etc.).
  560.  
  561. -----------------------------------------------------------------------------
  562.  
  563. JetLDR for Z-Systems (ZCPR3), Version 1.00
  564. Copyright (c) 1988 Bridger Mitchell
  565.  
  566. Syntax:
  567.    JetLDR  [du:][library][.lbr]  member1.typ  member2.typ  ...
  568.   or
  569.    JetLDR  [du:]file1.typ  [du:]file2.typ  [du:]file3.typ ...
  570.  
  571.   ENV - environment                FCP - flow commands
  572.   IOP - input/output               RCP - resident commands
  573.   NDR - named directories          Z3T - terminal capabilities
  574.   ZRL or REL - module in SLR or MS-relocatable (REL) format
  575.       with member name: RCP, FCP, IOP, CCP, CP3, DOS, DO3, BIO, CFG or BSX
  576.  
  577. Notes:
  578.   If first file is a library, extract remaining files from it.
  579.   An ENV file must be the first loaded.
  580.   Preceed special modules (DOS, RSX, BSX, ...) with appropriate CFG file.
  581.  
  582. Use Path: YES   Root Only: NO   Scan Current: YES   Explicit Directory: A0:
  583.  
  584.                          -------------------------
  585.  
  586. Figure 1.  This is the internal help screen displayed by the command
  587. "JETLDR //".  It shows how flexible a package loader JetLDR is.
  588.  
  589. -----------------------------------------------------------------------------
  590.  
  591.