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 / ZSYS / SIMTEL20 / DOC / ZSTD.DOC < prev    next >
Text File  |  2000-06-30  |  7KB  |  150 lines

  1.     The New Z System
  2.     by Richard Conn, 6 Sep 1986
  3.  
  4.     I have been working quietly on the development of the new Z System
  5. for quite some time, and I feel that I must speak out now on what I am doing
  6. so that people will know the true story.  This presentation is short and not
  7. complete, but it is enough to answer some basic questions without taking too
  8. much of my time away from the development activities.
  9.  
  10.  
  11. Why create a new Z System?
  12. --------------------------
  13.     First of all, why am I creating a new Z System?  There are many
  14. reasons:
  15.         1) I have studied the old Z System for over two years now,
  16. reviewing it for flaws and weaknesses.  From the beginning, I have stated
  17. that the Z System is evolutionary, and I have enough new ideas now to implement
  18. the next step in this evolution.
  19.         2) I have been learning many new things about other
  20. environments, including Ada Programming Support Environments (APSEs),
  21. UNIX, SUN window-based systems, TOPS-20, VAX/VMS, and Symbolics workstations.
  22. I have seen many good ideas that I would like to incorporate into my
  23. personal computer environment, the Z System.
  24.         3) My next real goal is the development of a banked Z System
  25. followed by a multitasking Z System.  An improvement in the current non-banked
  26. Z System is a logical step along the way, giving me a platform from which to
  27. experiment with some of the new ideas before fully incorporating them into
  28. the new systems.  ZCPR 3.3 is not a goal, but is a milestone along the road
  29. to a goal.
  30.         4) My needs have changed and are continuing to change, and
  31. the old Z System no longer meets my needs.  I have to change the system in
  32. order to continue advancing toward my other goals.
  33.  
  34.     At a recent talk I gave at the Trenton Computer Festival, someone
  35. asked me if I plan to move over to the IBM community.  If I was motivated
  36. by profit to a large extent, my answer would obviously have been yes.  But
  37. my principal motivation is to learn and grow and to have fun doing it.  The
  38. money is a very nice side effect, but it is not the driving side effect.
  39. I definitely intend to keep learning through the Z System.  The Z System,
  40. coupled with the very rich computer environment I am accessing through
  41. my communications system, has enough potential to meet my needs for many
  42. years to come.
  43.  
  44.  
  45. New Standards
  46. -------------
  47.     Good software engineering principles and common sense indicate that
  48. a lot of benefit can be derived through standards.  The evolving ZCPR 3.3
  49. and Z System now have a number of standards going for them:
  50.  
  51.         1) a common language, implemented by the ZAS assembler
  52.         2) a common support library, implemented by SYSLIB, Z3LIB,
  53.             and VLIB
  54.         3) a common format for all assembly language programs,
  55.             implemented by PPAL - the Pretty Printer for
  56.             Assembly Language
  57.         4) a common operating system and support base, implemented
  58.             by ZCPR3 and ZRDOS
  59.         5) a common documentation format which allows easier
  60.             upgrading of the documentation as the programs
  61.             change; this system is for both hardcopy (MAN)
  62.             and online (HELP) mediums
  63.         6) a common configuration management system, CONFIG,
  64.             which allows users to easily identify their
  65.             configuration and determine if all of their
  66.             programs are current
  67.         7) page-relocatable structures for system segments,
  68.             ZCPR 3.3 itself, and ZRDOS, which server to
  69.             further support transportability and make
  70.             installation easier
  71.         8) a very robust communications protocol, supporting
  72.             packet sizes from 1 data byte to 4K data bytes
  73.  
  74.     You will see all of these in the months to come.
  75.  
  76.  
  77. The Libraries
  78. -------------
  79.     One key point to make here is that I purposely did not mention
  80. a common binary structure, like the Environment Descriptor.  The Environment
  81. Descriptor is not a standard, but the interface to it, namely Z3LIB and VLIB,
  82. is.  This was purposely done so that future growth would be supported.
  83. As the Z System evolves, it will probably be necessary to delete old features
  84. which are no longer needed in favor of new features which provide new
  85. capabilities.  If the binary structures, like the Environment Descriptor,
  86. are to preserved, then the growth will be hampered by the lack of availability
  87. of space in which to implement the new features.  By standardizing on the
  88. interface to the Environment Descriptor and not the structure of the
  89. descriptor itself, then the Environment Descriptor can take any desired form
  90. without concern for the impact on other programs.  Specifically,
  91.  
  92.         ld    hl,envadr    ; get base address of env
  93.         ld    de,offflag    ; get offset to a flag
  94.         add    hl,de        ; point to the flag
  95.         ld    a,(hl)        ; get the flag value
  96.  
  97. would be severly impacted if the structure of the Environment Descriptor
  98. changed, but a call like:
  99.  
  100.         ext    getflag        ; reference library routine to get flag
  101.         ...
  102.         call    getflag        ; return flag in A
  103.  
  104. would not be impacted at all by such a change.  The library containing the
  105. GETFLAG routine would be impacted, but it is a lot easier to change one
  106. module in a library and reassemble 100 programs than it is to track the
  107. necessary changes in, edit, and then reassemble 100 programs.
  108.  
  109.     With one exception, the routines in the new Z3LIB for ZCPR 3.3
  110. have the same names and interfaces as the routines in the old Z3LIB.
  111. Conversion is simple - reassembly is all that is required.
  112.  
  113.     Unfortunately, many programmers have not yet learned this lesson.
  114. They continue to write code which does not use the libraries.  Imagine
  115. the work that will be required to go through their programs, modifying the
  116. references in order to be compatable with the banked ZCPR3.  Imagine them
  117. going through the work again for the multitasking ZCPR3, and again and again
  118. as ZCPR3 continues to evolve.  Thanks to Echelon, ZCPR 3.3 is still
  119. compatable at the binary level in terms of the Environment Descriptor.
  120. Certain values have been replaced with others, so changes will still be
  121. necessary, but many of the key values have stayed in the same places with
  122. the same meanings.  My original approach was to free up all of the dead
  123. space left by the removed values, making more room at the end for growth,
  124. but Echelon convinced me that the impact on programs written by those who
  125. didn't understand the basic principle of the libraries would be devastating.
  126. Thanks to the new design, it only took me 3 hours to convert back with no
  127. loss of functionality -- yet another benefit from the new structured design
  128. of the system -- but I can guarantee that the future systems will not be
  129. converted in this manner.
  130.  
  131.     If everyone starts thinking in terms of the libraries, the future
  132. growth of the Z System is assured.  If people cling to the old ideas of not
  133. using the libraries, then it is clear that growth will be curtailed.
  134.  
  135.  
  136. The Bottom Line
  137. ---------------
  138.     I am moving forward with the development of the new ZCPR 3.3 and
  139. the new Z System.  As you can see, there are many changes in it, and I have
  140. barely skimmed the surface.  I will move ahead and release it only when I am
  141. satisfied that it is usable to others.  Documentation must go with the
  142. release, so the release will not take place until the documentation is ready.
  143. My goal is to meet my needs, as outlined above, and this goal will be met.
  144. I thank those of you who have been supportive in the efforts of Echelon and
  145. myself, and I sincerely hope that you will share in my enthusiasm for the
  146. new ZCPR 3.3 when I release it to you.
  147.  
  148.                     Rick Conn
  149.  
  150.