home *** CD-ROM | disk | FTP | other *** search
- The following is a series of conversations that took place
- on the subject of ZCPR3 Shells, a powerful UNIX-like utility
- that seems much under-utilized. These messages were taken
- from the Ladera Z-Node using the ZCPR3 RECORD function.
-
- Date: 15 Feb 86 18:55:16 PST
- From: JOHN POPLETT
- To: AL HAWLEY
- Re: SHELL GAMES
- Al,
- I recently fooled with a program called LUP.PAS (a Turbo-
- Pascal version of LUX) that seemed to me to have the right idea
- in that it uses existing RCP/M utilities (LDIR, TYPEL, XMODEM/
- KMD) to do its job. It doesn't require it's own versions of
- these programs and that amounts to a considerably saving in cod
- e size. LUP.PAS uses the command line buffer to create its
- "menu" effects. But wouldn't this work more effectively as a
- shell? And in any case, how do I begin writing programs that
- take advantage of these sort of goodies. ZCPR3, I can see,
- presents a ripe opportunity to eliminate a lot of redundancy.
- What files do you recommend that I get to further my efforts?
- I'd like to be able to stick to 'C' and to MAC if possible.
- What do you recommend?
-
- John Poplett (PPR MBBS)
-
-
- Date: 18 Feb 86 12:46:15 PST
- From: FRED HAINES
- To: JOHN POPLETT
- Re: Z3 shells
- John,
- I'm not quite sure what you are loking for from your
- message, but, if you're willing to run your program under
- the ZCPR3 OS, you can designate any *.COM file whatever as
- a shell with the Z utility SHSET. What this does, essentially,
- is, when you leave program A, which you've designated as
- your shell, to run program B, the minute you finish with B,
- A will reload automatically. Beyond this, you can nest shells
- to several levels, and you can pass variables from one shell to
- another with SHVAR. One of the glories of the Z environment is
- a fabulous flexibility to maintain and manipulate shells, and I
- doubt whether any of us have even begun to explore the vast
- range of possibilities of this.
- If you're thinking about doing it in MS-DOS, I don't really
- know how you'd go about it, but you might be able to write a
- program that creates a shell stack, which is the feature of Z
- that makes all this possible. You would want to set it up more
- or less like any normal stack, except - if I'm not mistaken -
- you would want to store not addresses in it, but the actual
- name of the program. I guess that means storing the name
- upside down, pushing the last letter first, so when you popped
- the shell stack it would come out in the right order. It would
- have to be a very complicated program though....
-
-
- Date: 22 Feb 86 18:38:44 PST
- From: SYSOP
- To: JOHN POPLETT
- Re: CHAINING/Z3 CMD BUF
- The documentation and code for chaining to another command on
- exit from BYE is contained in the file BYEMOD.LBR in the
- MODEM directory. It describes the modification to BYE, and
- contains a listing of the alias BYE chains to in my system.
- I'll try to u/l the file to you. The principle used is
- applicable to other programs as well, although the facilities
- of ZCPR3 are usually adequate to accomplish successive
- execution of programs without this kind of modification. The
- factor that makes this technique important with BYE is that
- BYE effectively 'cleans up' ZCPR3 buffers before exit in the
- cause of system integrity. That clean-up interferes with, for
- example, invoking BYE as a shell. If you have any questions,
- I'll try to answer intelligently..
-
-
- Date: 26 Feb 86 23:03:14 PST
- From: JOHN POPLETT
- To: SYSOP
- Re: Z3 SHELLS
- Al,
- I wrote a provisional/experimental Z3shell this evening, a
- very simple matter. The prgm checks the shell stack and if no
- shell is active installs itself and prints a message to that
- effect (i.e. "Shell installed" a la SH.COM). Then, I go to a
- endless loop which prints a command line prompt, gets the
- command line, stuffs it in the Z3 cmd buffer and executes.
- If a control-c is entered from the command line, the shell
- uninstalls itself and returns to CP/M. You're BYEMOD code
- fragment was a big help. I wrote a 'C' function in ASM with
- the fragment as a model. Now here's a question: how do you
- think I could leave the shell to execute the Z3 cmd buffer
- without a warmboot in between? Right now, I'm playing it
- safe and jumping to warmboot at the end of the chain function.
- But I'd like to avoid the warmboot if possible. Is there a plac
- e in Z3 I can jump to simply to "load and go"???
-
- J. Poplett
- P.S.-If you want to see my code, I'll be happy to send it u
-
-