[comp.os.cpm] ZCPR 3.3

pguhatha@phoenix.UUCP (06/03/87)

	ZCPR3.3 : some first comments

				Peter Teuben,
				June 2, 1987

This concerns ZCPR3.3, the latest update in the line of 
command processors for CP/M, and my first experiences.

We have all watched ZCPR grow over the past years to a fairly
grown up module of what we now call the Z-system. None of
the original modules from Digital Research are still used,
the CCP being replaced by ZCPR and BDOS replaced by ZRDOS
(often we write our own BIOS's).

ZRDOS can be only be obtained commercially (Echelon), but 
ZCPR(3.3) can in principle be obtained for free (although at
Echelon you have to pay $4x, but I guess they will accompany
my order with a nice installation manual).

However, I was impatient, and got the 100k of initial startup
sources from SIMTEL20. (That's for free, as most BBS's are, I
presume)

For me this kind of installation is just an evening of work,
and very amusing to do so. I installed ZCPR3 last summer in just
an evening, including all modifications to the BIOS (thanks to the 
excellent documentation by Richard Conn).

Last september I witnessed a rough discussion between Richard Conn
and Jay Sage, on their use of the appropriate assembler for the
'Z-Libraries', i.e. ZAS (Echelon) versus Z80ASM (SLR).

I also listened to Richard Conn's story on his building of ZCPR33, 
on last years Trenton Computer Festival (april '86), and now it is 
there!

To my great surprise the author of ZCPR3.3 turened out to be .... 
Jay Sage!

What ever happened to Richard? (are you listening Richard?) Or his code.

But, and this is now perhaps not a big suprise, I completely
failed in installing ZCPR3.3 (I thought it was advertised as having
an even easier installment as with V3.0, which I thought was already
pretty simple), because all of my 'reliable' compilers failed:
ASM, MAC, RMAC, M80, Z80MR. (ASM, MAC, RMAC couldn't help it, the 
new code is now written in Z80 opcode, which I can perhaps
agree with; what will happen to the poor old 8080 users, or did
they all die?)

Apart from a few trivial problems (who EVER came up with the idea
of replacing brackets (yes: ()'s) with square bracket's []????),
the author used a compiler where one needs now at least an 8 character-
length variable name detector. We all now that M80 exports only
6! I phoned SLR, the experts there told me that M80 V3.44 exports
6 yes (because of the .REL format), but can internally use 16
character lenght!!
I tried mine (V3.4 from 1980!!), and even a little test, but no way. 
Does anyone know of that (newer) 3.44 version, and is it true what SLR
told me. Other than that, M80 would probably have done the job (apart 
from two extra needed .PRINTX's and having MACLIB filenames in full and
uppercase). Even compilers with 7 character length variable names
will fail, as a quick glance over the code learned.

The end of the story you can probably guess: I dialed into Jay's
machine last nigh and found an order option for the SLR compiler (and Linker,
but one could live without this one). After reading the description
of the compiler, I'm really impressed. Like 5-10 faster than M80,
and so many more possibilities. It will be quite an improvement for
assembler programming, but I keep thinking of the funny stories I
read in these rebuttals last september.

I am looking forward to receiving my SLR compiler from Jay,
(Btw Jay, I have a Kaypro 4, DS DD)  and
will perhaps let you netreaders know what happened. After all, ZCPR 
is really a fantastic piece of software, and moreover, allows YOU to 
write and modify part of the operating system (&utilities), which is
not possible on many machines for a price like we pay for this

Let me know what your experiences are, do all of you know have these
fancy new compilers, like ZAS and Z80ASM? I am just old fashioned?
Afer all, at some stage we have to make use of the Z80 itself. Of
course if we extrapolate this, soon the Z80 users will find themselves
deserted, because ZCPR4.0 will be written for Z280 or HD64810 only.

Peter Teuben
Institute for Advanced Study
School of Natural Sciences
Princeton, NJ 08540
TEUBEN@IASSNS.BITNET or pjt@astrovax.uucp

(PS: I have no regular means of up/down loading to BBS's, in particular
the Z-nodes. I would appreciate if someone could distribute this)
----
    

RCONN@SIMTEL20.ARPA.UUCP (06/03/87)

Hello, Peter,

	Thanks for your message on ZCPR 3.3.  The basic story is that I'm
not involved with Echelon wrt ZCPR any more, and I've handed over ZCPR 3.x,
TERM3, DISCAT, etc to them so they can continue to support the Z System
users.  Jay sage and others are merrily hacking away at the Z System, building
upon the ideas in my original ZCPR3, mutating it as they desire.
	In the meantime, I'm working on two main thrusts: Ada and a
new ZCPR 4.0 (at least, that's what it is called at this time).  I talked
about both at the last Trenton Computer Festival and can probably make
the ZCPR 4.0 information available if anyone is interested.
	In the Ada arena, I manage the Ada Software Repository on SIMTEL20.
The introduction of Ada technology is also a big part of my main job.
	In the ZCPR 4.0 arena, I'm back in the original environment
that spawned ZCPR 3.0.  There is no time pressure, no delivery dates, and
complete freedom to create.  There is also no requirement to deliver at all,
so I really don't know if what I am working on will materialize in the
user community.  At one point I was working on ZCPR 3.3, moving in the
direction of my current ZCPR 4.0; the effort was quite large, leading to
something larger than the original ZCPR 3.0 and TERM3 combined.  The ZCPR 3.3
that Echelon is supporting is not the original ZCPR 3.3 at all, but a completely
different effort headed by Jay Sage that is a fraction of the original
ZCPR 3.3 effort.  That original ZCPR 3.3 is now the ZCPR 4.0 I'm working
on.
	The bottom line is that the Echelon effort is available to the
users now (i.e., the ZCPR 3.3 of Jay Sage).  Continue to follow it
and enjoy the work of Jay and the others involved.  The work I'm
doing may or may not be released some day, and you can see then if you
want to continue with them, move to mine, do both, or whatever.  To the
user community, this should be a win-win proposition.

		Rick Conn
-------

mdapoz@watdragon.UUCP (06/05/87)

I just finished getting zcpr3.3 to assemble with M80 version 3.44 (dated Dec 9,
1981).  The following is a summary of the changes that are needed to get the
CCP portion to assemble (I still haven't recieved the RCP & FCP portions
from SIMTEL so I don't know what changes need to be made to those files).

1. In all files the square brackets "[" & "]" need to be changed to "(" & ")"
   respectively on all conditional assembly statements (ie if's).  DON'T do a
   global change with a text editor since some square brackets don't need to
   be changed!

in the file ZCPR33.Z80:

2. The maclib command must be converted to upper case along with it's arguments

3. The commands .Z80 and ASEG should be added.

in the file Z33HDR.LIB:

4. The extmpath, extmpathadr and whldir equate statements should have the EQU
   changed to a DEFL (this should be changed anyways, I think).

in the file Z33MAC.LIB

5. M80 can only handle 6 chars for a macro argument (even in version 3.44) so
   the 'command' macro needs to be changed.  Following is an updated version:

; Command table entry definition macro

; Macro to form an entry for one command in the table.  The first parameter is
; the name to be used for the command (no quotes); the second parameter is the
; flag that indicates whether or not the command is to be enabled; the third
; parameter is the wheel control flag; and the last parameter is the jump
; address to the code that carries out the command.  The command names are
; automatically padded out to the correct length (they will be truncated and
; an error message will result if a command name is too long).  The characters
; in the command name are automatically converted to upper case.

command	macro cmdnam,enaflg,whlflg,addr

	 if	enaflg		;; Generate command only if enabled

whlmask	defl	whlflg		;; Initialize variables
count	defl	cmdsize		;; Initialize to size of each command name

	irpc	char,cmdnam	;; Repeat over letters in command name

count	defl	count - 1	;; Count down characters in name

	 if	( count lt cmdsize )

		;; If character is lower case, convert to upper case

	 if	( '&char' ge 'a' ) and ( '&char' le 'z' )

	 if	whlmask
	defb	( '&char' and 5fh ) + 80h
	 else	;;not whlmask
	defb	( '&char' and 5fh )
	 endif	;;whlmask

	 else	;;not lower case

	 if	whlmask
	defb	'&char' + 80h	;; If controlled by wheel, set high bit
	 else	;;not whlmask
	defb	'&char'		;; If not restricted, leave high bit clear
	 endif	;;whlmask

	 endif	;;lower case

	 endif	;;( count lt cmdsize )

whlmask	defl	false		;; Turn off high-bit setting after first char

	endm	;irpc

		;; Pad command name with blanks

	 if	( count gt cmdsize )	;; If we underflowed
	*** Command name "&cmdname" is too long / truncated ***
	 else
	rept	count
	defb	' '
	endm
	 endif	;( count gt cmdsize )

	dw	addr		;; Dispatch address for command

	 endif	;enable

	endm	;command


After successful assembly, the resultant .REL file was converted to a HEX file
using RELHEX.COM and then merged with the BIOS in the standard manner.  Even
though M80 only outputs 6 char labels in the REL file, it still keeps larger
labels during assembly, so the use of large labels in zcpr3.3 doesn't affect 
M80 in the least.  Hope this helps in getting people stared with assembling
zcpr3.3 with M80.

A side note: zcpr3.3 came up the first time I tried booting it!  It did take
me 2 hours to figure out all the changes that needed to be made to the
source files for M80, but after that first successful assemble, it booted 
with no problems.
  
Regarding zcpr 4.0, I'd love to hear what you're doing with it Richard, how
about posting a summary of what's going on with it, either that, or send it
directly to me.
	-Mark

"If a hardware problem causes system software to crash, the customer engineer
 will blame the system programmer."

	    Mark Dapoz 
	 mdapoz@watdragon.UUCP

kenw@noah.arc.CDN (Ken Wallewein) (06/06/87)

I run CPM for two or three reasons: it's cheap; it has a history which makes
it interesting; there's a large and public-spirited user community; there's 
lots of PD software around. I guess that's more than 3. Anyway, none of those
things jive very well with the way Z-system appears to be going, if I have to 
buy their assembler to use it. When I can afford to buy it, I don't have time
to use it enough to justify it, and vice versa (huh?). Besides, I've heard that
ZCPR3 chews up too much TPA for what it gives people who don't run hard drives.

 As far as hardware goes, I run and S-100 bus system. Anybody know how I can 
upgrade that to a super-Z80 without spending hundreds of bucks or hundreds of
hours? I know, there are lots of different processors for S100. Did you ever
price one?
 Enough flame, I guess.
/kenw

simon@ms.uky.edu (George Simon) (06/09/88)

I have a simple z80 cp/m 2.2 box, and would like to upgrade to a better
world.  The new world must be compatible with vanilla cp/m, and I would 
really have to have sources.  Zcpr seems to be just a command processor,
is there more to it?  How involved is the installation procedure?  Are
there any usefull books on any of this?
							Thanks in advance,
									Simon

<-------------------------------------------------------------------------->
<---   Simon Gales@University of Ky 	            254-9387/257-3597 	--->
<---   			[ simon@ms.uky.edu ]  |  [ simon@UKMA.BITNET ]   		--->
<-------------------------------------------------------------------------->

dbraun@cadavr.intel.com (Doug Braun ~) (06/10/88)

In article <9600@e.ms.uky.edu> simon@ms.uky.edu (Simon Gales) writes:
>I have a simple z80 cp/m 2.2 box, and would like to upgrade to a better
>world.  The new world must be compatible with vanilla cp/m, and I would 
>really have to have sources.  Zcpr seems to be just a command processor,
>is there more to it?  How involved is the installation procedure?  Are
>there any usefull books on any of this?

Me too.  I have heard of several CP/M BDOS and BIOS replacements,
both commercial and public domain.  Could someone post a brief list
describing what's what?

x
x
x
x



Doug Braun				Intel Corp CAD
					408 765-4279

 / decwrl \
 | hplabs |
-| oliveb |- !intelca!mipos3!cadev4!dbraun
 | amd    |
 \ qantel /

rat@madnix.UUCP (David Douthitt) (04/18/89)

I just got ZCPR 3.3 installed on my Apple II+ with a PCPI Applicard.  Works
beautifully!

However, I don't have any instructions for the unique abilities of ZCPR 3.3.
I still have the articles on ZCPR 2 from the interview by Computer Langauge
with Richard Conn.

Does any one know where I can get an in-depth description of ZCPR 3's
capabilities?  Thanks!

         [david]

-- 
!======= David Douthitt :::: Madison, WI =======!== The Stainless Steel Rat ==!
!  ArpaNet: madnix!rat@cs.wisc.edu              !                             !
!  UseNet: ...uwvax!astroatc!nicmad!madnix!rat  !  Mad Apple Forth:           !
!               {decvax!att}!                   !  The Madness starts here.   !