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
/
Z4.TXT
< prev
next >
Wrap
Text File
|
2000-06-30
|
14KB
|
659 lines
.op
ZCPR3
and the
EVOLUTION TO ZCPR4
Trenton Computer Festival
April 11, 1987
RICHARD CONN
--------------------------------------
ZCPR3, SYSLIB, Z3LIB, VLIB, TERM III, DISCAT, Z-System, ZOS
are Trademarks of Echelon, Inc.
Turbo Modula-2 is a Trademark of Borland International
(or Echelon -- not sure)
Ada is a Trademark of the US Department of Defense,
Ada Joint Program Office
.he ZCPR3 and the Evolution to ZCPR4
ZCPR4 is a continuation of many years
of work, effort, and giving to the Public Domain
and the "User Community"
ZCPR1
(a group effort in the PD)
|
V
ZCPR2
(an individual effort in the PD)
|
V
ZCPR3
(an individual effort, in the "User Community")
|
V
ZCPR3 Commercial
(an effort by Echelon and myself, commercial)
| |
V V
ZCPR 3.3 et al <- Today -> ZCPR4
(an effort by Echelon, (an individual effort,
commercial and "User") release unknown)
The Magnitude of the Effort
is Increasing Dramatically
Files
-----
1000 or more | * ZCPR4
|
900 |
|
800 |
|
700 |
|
600 | * ZCPR3 3.3
|
500 | * ZCPR3
|
400 |
|
300 | * ZCPR2
|
200 |
|
100 |
|
1 | * ZCPR1
---------------------------------------------
Note: I can't speak for the independent Echelon effort
with ZCPR 3.3 and beyond
Note: The ZCPR3 effort and beyond includes TERM III and beyond
ZCPR 3.3 and beyond
as well as ZCPR4
represent a continued interest in the ZCPR concept
The ZCPR concept continues to meet a part of my (our) needs
so
there is a continued interest in supporting it
ZCPR4 follows in the path of its predecessors
UPWARD COMPATABILITY IS NOT AN ISSUE WITH ZCPR4!
THE ISSUE WITH ZCPR4 IS THE DEVELOPMENT OF NEW
AND REFINED CONCEPTS OVER THOSE OF ITS PREDECESSORS
Hypothesis
----------
RETAINING A REQUIREMENT OF UPWARD COMPATABILITY
RESTRICTS FREEDOM OF GROWTH
Compatability
-------------
CP/M ZCPR1
(a group effort in the PD)
|
V
CP/M ZCPR2
(an individual effort in the PD)
|
V
CP/M ZCPR3
(an individual effort, in the "User Community")
|
V
CP/M & ZCPR3 ZCPR3 Commercial
(an effort by Echelon and myself, commercial)
|
V
CP/M ZCPR4
(an individual effort, release unknown)
A Digression
------------
To understand the philosophy of the
Evolution to ZCPR4, it is necessary to understand
the nature of my computing environment
My computing environment ...
A Sketch of the Ongoing ZCPR4 Effort
------------------------------------
Concept Vaporware?
------- ----------
1 No assembly required N*
2 New basics
ZCPR4 Command Processor Y/N*
BDOS Y
3 New Libraries
SYSLIB-like N*
Z3LIB- and VLIB-like Y
Math Y
Interface Y
Communications Protocol Y
4 Use of PDL N*
Automated Document Generation from PDL Y
5 Use of Both Assembly and Turbo Modula-2 N*
6 New Command Line Interface and User Environment
New Command Line Interface Y/N*
New Process Interface Y/N*
7 Software Configuration Management Procedure Y/N*
8 New Applications Environments Y/N*
THESE CONCEPTS IN SOME DETAIL ...
ZCPR4
Vaporware?
1 No assembly required N*
ZCPR4 Command Processor and BDOS
--------------------------------
MAKEZ4 ZCPR4_image ZCPR4_address EnvDesc_address
|
V
ZCPR4.BIN (Command Processor and BDOS)
ZCPR4 System Segments
---------------------
PRL (Page ReLocatable) Images
NO INSTALLATION
CUSTOMIZATION BY VARIOUS MEANS (incl EnvDesc)
ZCPR4 Tools
-----------
EnvDesc_address et al Passed in Registers from ZCPR4
NO INSTALLATION
CUSTOMIZATION BY VARIOUS MEANS (incl EnvDesc)
All Interfaces Thru Libraries (no direct BDOS calls)
ZCPR4
Vaporware?
2 New basics
ZCPR4 Command Processor Y/N*
BDOS Y
What Exists What is Vaporware
----------- -----------------
Form of Command Processor Final Form of Command Processor
Form of BDOS Final Form of BDOS
Form of EnvDesc Final Form of EnvDesc
MAKEZ4
LDR for System Segments
INIT/LDR for System Segments Final Form of INIT/LDR
ZCPR4
Vaporware?
3 New Libraries
SYSLIB-like N*
Z3LIB- and VLIB-like Y
Math Y
Interface Y
Communications Protocol Y
CHARACTERIZED BY SEPARATION OF PROGRAM AND DATA SPACES
RESULTING CODE IS SMALLER THAN BEFORE
Definitions
-----------
SYSLIB, Z3LIB, and VLIB - as under ZCPR3
Math - integer, long integer (32 bit), floating point
Interface - Command Processor and BDOS Interface
(no BDOS calls by tools)
Communications - data-link level protocols for XMODEM,
YMODEM, Kermit, and Master/Server;
higher-level protocols; finite-state
machines
ZCPR4
Vaporware?
4 Use of PDL N*
Automated Document Generation from PDL Y
USING THE PDL AND PRETTY PRINTER
--------------------------------
Consistent format and structure of code - Pretty Printer
Automatic Document Generation - PDL Toolset
Automatic Online Help Generation - PDL Toolset
Automatic Design Details Generation - PDL Toolset
Automatic Module Interface and Interrelationship - PDL Toolset
What is Vaporware?
------------------
Pretty Printer N*
PDL Definition Y/N*
PDL Toolset Y
PDL SAMPLE
----------
;%BEGIN 0
;%Program: XXXXXX, SCAPSTR
;%Author: Richard Conn
;%Version: 1
;%Date: 1 Sep 86
;%Title: Utilities 2
;%Subtitle: Capitalization
;%Module_Type: DI
;%Revision History:
;1. 1 Sep 86, Richard Conn
; Initial Release
;%Description:
;
; CAPSTR -- Capitalize String Pted to by HL
; This routine simply capitalizes the <NULL>-terminated string
; pointed to by HL. No Registers are affected.
;
;%END
public capstr
ext caps
;%BEGIN 1
;%Label
;%END
CAPSTR:
push af ;save regs
push hl
CAPSLP:
ld a,(hl) ;get char
or a ;done?
jr z,capsdn
call caps ;capitalize it
ld (hl),a ;put it back
inc hl ;pt to next
jr capslp
CAPSDN:
pop hl ;get regs
pop af
ret
end
ZCPR4
Vaporware?
5 Use of Both Assembly and Turbo Modula-2 N*
HIGHER-ORDER LANGUAGE USE IMPROVES
PRODUCTIVITY AND MAINTAINABILITY
WITH SOME SACRIFICE IN SIZE AND EFFICIENCY
THE SACRIFICE CAN BE CONTROLLED AND MINIMIZED!
Decision
--------
I Can't Have Ada for my ZCPR4 System
So
I'll Use Turbo Modula-2
Desired Features of Ada and Turbo Modula-2
------------------------------------------
In Ada? In TM2?
Package/Module Structure Y Y
Definition/Implementation Modules Y
Visible/Hidden Package Parts Y
Separate Compilation Y Y
Exception Handling Y Y
Strong Type Checking Y Y(1)
Good Development Environment Y(2) Y
with Integrated Editor
Tasking Y Y(3)
Generics Y N
DoD Support and Funding Y N
1 - Type Checking is weaker in Turbo Modula-2
2 - My particular Ada development environment is good (EMACS)
3 - Tasking is weaker in Turbo Modula-2
TURBO MODULA-2 SAMPLE
---------------------
definition module CalSupX;
from CalDefs import
MONTH, (* Types *)
DAY,
MDAY,
YEAR,
DATE,
CNPTR;
PROCEDURE SetLeapYear (InYear : YEAR);
PROCEDURE DayOfWeek (InDate : DATE) : DAY;
PROCEDURE FindDate (InDay : MDAY; InMonth : MONTH; Start : CNPTR;
var Found : CNPTR) : boolean;
end CalSupX.
implementation module CalSupX;
PROCEDURE SetLeapYear (InYear : YEAR);
begin
(* ... Detail Left Out ... *)
end SetLeapYear;
(* DayCount determines the number of days since 1 Jan of the current
year *)
PROCEDURE DayCount (InDate : DATE) : INTEGER;
var
ndays : INTEGER;
imonth : MONTH;
prevmonth : MONTH;
begin
(* ... Detail Left Out ... *)
end DayCount;
(* DayOfWeek determines the day of the week by the following
technique: ... Detail Left Out ...
*)
procedure DayOfWeek (InDate : DATE) : DAY;
(* ... Detail Left Out ... *)
end DayOfWeek;
PROCEDURE FindDate (InDay : MDAY; InMonth : MONTH; Start : CNPTR;
var Found : CNPTR) : boolean;
(* ... Detail Left Out ... *)
end FindDate;
end CalSupX.
ZCPR4
Vaporware?
6 New Command Line Interface and User Environment
New Command Line Interface Y/N*
New Process Interface Y/N*
IN DEVELOPMENT
ZCPR4
Vaporware?
7 Software Configuration Management Procedure Y/N*
SOME VERSIONS FROM OTHER APPLICATIONS EXIST AT THIS TIME
ZCPR4
Vaporware?
8 New Applications Environments Y/N*
NUMEROUS ...
ZCPR3 and the Evolution to ZCPR4
CLOSING POINTS
--------------
* ZCPR3 IS REAL
* ZCPR3 3.3 IS REPORTEDLY REAL
* ZCPR3 3.3 et al REPRESENT CONTINUED COMMERCIAL
AND PUBLIC SUPPORT TO THE ZCPR3 USER COMMUNITY
* ZCPR4 IS A MIX OF REALITY AND VAPORWARE
- EXCITING CONCEPTS
- NO RELEASE DECISIONS AT THIS TIME