.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 -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