HalBower's Home Page

(updated 7 Oct 2001)

While the 8-bit CP/M computers may be fading, some of us dinosaurs still keep programming for them. In the process of preparing files for release of the Banked and portable (B/P) Bios, several Y2K and related problems have been uncovered. Fixes for some of the more critical ones (along with some corrected and new Z-System utilities) are here.

****************************************************************

NOTE: Due to some problems with MIME types when using some browser/OS combinations (e.g. Netscape/Windows), .LBR files here will be transferred with a name of ".lbr.bin" to insure that "application/octet-stream" is used. Rename the file as/after you download to ".lbr".

****************************************************************

The utility to extract elements from .LBR libraries with create and modify date preservation improperly displays the year (last two) digits for years > 1999 ('01' shows as 'A1'). A new option was also added so that the default date presentation will be either 'dd.mm.yy' or 'mm/dd/yy'. Since this is the recommended program for accessing the remaining packages, the .COM file alone is provided, defaulting to automatically decompress files when extracting. You might want to rename this simply 'LBREXT.COM'.

    LBREXT.COM - CP/M Library Extractor (default is decompress)
    The .LBR file contains source, docs, history and a Config file for the ZCNFG24 utility. ZSLIB, Z3LIB and SYSLIB are required for linking. LBREXT36.LBR - Complete package.

****************************************************************

Version 1.6 (the last one released) of the Z-System Editor (ZDE) does not retain the creation date for files greater than one extent. Since no source for this program was released, only a patch file is available for correction. A configuration flag was also added to set the default 'Auto-Indent' feature for Non-Documents (it currently is always ON when files are first opened). Before you apply this patch, insure that your source ZDE16.COM matches the 'was:' code to avoid corruption (and other interesting side effects).

    ZDE16A.PAT - Assembly patch to fix/modify ZDE16.COM

****************************************************************

The CP/M 2.2 version (at least) of DosDisk(tm) does not correctly convert Dates to MSDOS format when copying files to 5.25" '360k' formatted disks for transferring to MSDOS machines for years > 1999. 2000 will be converted to '80' and 2001 to '29' with additional corruption to the month value (17 July 2001 appears as 17th day, 15th month, 2029 :^) This Assembly patch corrects the problem and _should_ be good until 31 Dec 2076 when the rest of DateStamper(tm) and ZSDOS stamps will fail. WARNING: This has only been tested for the CP/M 2.2 version of DosDisk in the final 1.0 release version with subdirectory support enabled. Check the 'was:' code in the patch source before applying to avoid problems.

    DOSDISK.PAT - Assembly patch for DOSDISK.COM (CP/M 2.2)

****************************************************************

The COPY.COM utility provided with ZSDOS, B/P Bios and on old RBBS systems has a cosmetic Y2K glitch when copying a file where the file already exists at the destination (1999 is 'newer' than 2001). This package corrects the problem.

    COPY173.LBR - Complete package for Copy utility with date preservation

****************************************************************

It is possible that a buggy version of the ZXD Directory listing program has been released since late 1993 and which would not display dates for certain files. This updated package corrects the problem, and also automatically sizes the screen(s) of data (lines and columns) to values in the ZCPR3 Termcap (if one is detected). It also clears up the printed output then the '/p' toggle is passed. NOTE: I usually rename the executable to 'D.COM', set defaults to desired values, place it with other utilities in A15: and set the 'SYStem' and 'PUBlic' bits for fast and easy access.

    ZXD22.LBR - Complete package for Z-System Directory Lister

****************************************************************

To apply .HEX patches (such as the ZDE16 and DosDisk fixes above), a utility such as the venerable MLOAD is usually used. Unfortunately, that program does not work with odd sizes of BDOS and CCP/CPR which are common with the B/P Bios (which allow banking of much of the code) so I wrote one a number of years ago called MYLOAD. This is a re- release of that package, and as with most other utilities, built-in help is available by entering 'MYLOAD //' at the CP/M prompt.

****************************************************************

Rather than access the CDROMs from 'big' machines and then transfer files to CP/M 2.2 machines, a native utility was needed. Thanks to Duncan Elvin who allowed me to use his C code (after converting to assembly...naturally), the CDZSWP Z-System utility was produced. This updated release corrects a bug which sometimes corrupted the program when copying files from CDs to CP/M, and adds another driver. Drivers are now included for the SB180FX, P112 (with SCSI mod per Dave Brooks' site), and a generic one for B/P Bios with SCSI CDROM which can be re-defined to transfer data in 512-byte blocks instead of the normal 2048-byte chunks. A template is also available to help anyone wanting to write one for CDROM drives using 'hms' addressing. This program is inspired by other 'SWEEP'-style programs and uses the ZCPR3 Termcap definitions for screen attributes and the 'WordStar Diamond' for movement.

===================== ZSDOS/ZDDOS GPL Release =======================

ZSDOS (Z-System DOS) and the Companion ZDDOS (Z-System DOS with Embedded DateStamper) are enhanced replacements for the CP/M 2.2 Basic Disk Operating System. ZSDOS was a commercial product sold from 1988 through 1998 when the complete package (including source code) was released under the GNU General Public License. These four packages comprise the GPL release:

    ZSDOS3.ZIP - Ascii version of Manual (Formfeeds delimit pages)
=============== Banked and Portable (B/P) Bios GPL Release ================

B/P Bios was developed to provide a common interface for CP/M 2.2 compatible systems with provisions to manage more than 64k of physical memory. With permission of Jay Sage, a banked Command Processor Replacement based on ZCPR 3.4 was added with many built-in commands; ZSDOS was banked and extended to include multiple file date/time stamp formats (courtesy of Bridger Mitchell and Joe Wright) and optional directory hashing to speed access. Five hardware platforms were ultimately supported in the commercial release which was sold from 1992 through 1999.

Packages will be added as they are updated, tested and built.

    BP-MAN.ZIP - Ascii version of manual with embedded FormFeeds (500 kB unzipped)

Each platform supported by the B/P Bios system was distributed on a single 800k or two 400k diskettes depending on the hardware in the destination system. For convenience in this GPL release, the common run-time support, configuration, data and some ZCPR3 common utilities are provided in a library of libraries. RUNDISK.LBR contains separate libraries for each user area except that normally holding the Bios Source, which was machine-dependant. LBREXT or equivalent (depending on your system) will be needed to extract the individual members and uncompress them (using the LZH algorithm).

    RUNDISK.LBR - User Areas 0, 2, 10, 14 and 15 of B/P distribution disk (.LBRs)

****************************************************************

D-X DESIGNS PTY LTD Project 112 (P112).

This Platform was designed and produced by Dave Brooks in 1996. B/P Bios supports the hardware as indicated:

Z80182 CPU (Z8S180 core CPU, MMU, DMA)

  • ESCC #1 (COM1 Serial port w/handshake, RS-232)
  • ESCC #2 (available on header, coded as expansion serial)
  • ASCI0,ASCI1 (Serial Async, available on header, expansion)
  • CTC1 (Optional "Heartbeat" clock, General Purpose Timer)

SMC FDC37C665 Multifunction System Support Chip

  • Enhanced 765-derivative Floppy Disk Controller (HD capable)
  • COM2 (16550-compatible Serial port, RS-232)
  • PAR1 (PC-'type' Parallel Printer port)

Dallas DS-1202 Realtime Clock

  • Primary Real Time Clock
  • Non-volatile battery0backed RAM (Configuration data)

28F256 Flash ROM (Boot Code, Device initialization)

32/128/512 kB Static RAM (up to 1MB)

This release also supports add-on Hard Disk interfaces with two subsystems as Bios assembly-time options:

  • SCSI - National DP8490/DP5280 (NCR 5380) Interfaced per plans on Dave Brooks' web page
  • IDE - Tilmann Reh's Generic IDE (GIDE) interface.
  • BPBIO-DX.LBR - Z180 Assembly Source code to P112 version of B/P Bios.

****************************************************************

Yet Another Single Board Eight-bit Computer (YASBEC)

This Platform was designed and produced by Paul Chidley beginning in 1991. B/P Bios was specifically designed for this system and was the primary OS hosted on it. The hardware is supported as indicated:

Z80180/Z8S180 CPU (Z180 core CPU, MMU, DMA)

  • ASCI0 (Serial Async, RS-232 as AUX port)
  • ASCI1 (Serial Async, RS-232 as CON port)
  • CTC1 (Optional "Heartbeat" clock, General Purpose Timer)

WD1771/1772 Double-Density Floppy Disk Controller

National DP8490/NCR5380 SCSI Controller (both Polled and Int/DMA modes)

Dallas DS-1216E Hardware Clock (aka No-Slot-Clock / Smartwatch)

74HC474/74HC74 Minimal Parallel Printer Output, Interrupt ACK

128-1024 kB Static RAM (with appropriate decode PAL)

------------------------

In the mid-1990s, Jim Thale produced an optional accessory board for the YASBEC, the YASMIO, which added additional capabilities which are supported by B/P Bios as:

  • National DP8473 - Enhanced 765-derivative Floppy Disk Controller (integrated as third and fourth floppy drives, High-Density capable)
  • Exar 88C681 - Dual Sync/Async High-Speed Serial Ports, RS-232

------------------------

In the late '90s, I adapted the DP8473 FDC to completely replace the Western Digital controller on the YASBEC and described the design in a TCJ article. This modification is also accomodated as an option in B/P Bios with a separate DP8473-only Floppy Disk driver module.

    BPBIO-YS.LBR - Z180 Assembly Source code to YASBEC version of B/P Bios.

****************************************************************

MicroMint SB180-FX (SB180L02).

This single-board computer was sold by MicroMint from 1986/7 until just a few years ago. It is uses the HD64180/Z (Z180) CPU, and was sold with a few variations over the years in clock rates (6.144 and 9.216 MHz) and on-board memory complement (256/512kB).

With some minor trace cutting and re-jumpering, this system can use some of the newer "high-density" floppy drives in all but the first position (the boot drive) without a ROM modification. Notes in the FDC-FX.Z80 module describe the procedure, and a .NOT file is provided with tested drive models. Since the controller chip used can not read/write to the floppy drive at 300 kbps, only 5.25" drives which can change the spindle speed between 300 and 360 rpm can be used.

B/P Bios supports the SB180-FX hardware as indicated:

HD64180/Z CPU (Z180 core CPU, MMU, DMA)

  • ASCI0 (Serial Async, RS-232 as AUX port)
  • ASCI1 (Serial Async, RS-232 as CON port)
  • CTC1 (Optional "Heartbeat" clock, General Purpose Timer)

SMC 9266 Double-Density 5.25" and 8" Floppy Disk Controller

National NCR5380 SCSI Controller in Polled IO mode

Dallas DS-1216E Hardware Clock (aka No-Slot-Clock / Smartwatch)

74LS273/74LS74 Minimal Parallel Printer Output, Interrupt ACK

256 kB and 512 kB Dynamic RAM (with assembly flag to disable refresh if Static RAM used)

Up to 4MB RAM disk with FX-2MME memory expansion boards (untested)

    BPBIO-FX.LBR - Z180 Assembly Source code to SB180-FX version of B/P Bios.
========================= Z-System Libraries =============================

Many (if not most) programs written for the ZCPR3.x-based systems, ZSDOS, the B/P Bios, and more used pre-assembled libraries of routines originated by Richard Conn. The basic SYSLIB was augmented with Z3LIB for the ZCPR3 Command Processor Replacement, and VLIB which added generic terminal support to applications.

I picked up maintenance for these libraries and their associated Help files in the late 1980s. From that time until the last updates, all routines were optimized for Z80s, and a fourth library, DSLIB, was added to support generic file date stamping. The last updates were made in December 1993 and are available here:

    LIBS45A.LBR - SYSLIB, Z3LIB, VLIB, DSLIB Vers 4.5A in MS REL and SLR REL formats.

****************************************************************

When the Z-System Libraries were being actively developed, I wrote a small demonstration program to use the primative character-based windowing features in Version 4 of VLIB as a shell instead of command line interaction. At that time, two versions were produced; one using the multiple command line of ZCPR3, the other using the shell stack. Both versions were combined in 1997 with an assembly option dictating which mechanism is used. This library contains the source, executable and documentation. It is hereby released into the public domain...

    PDMSHELL.LBR - Pull-Down Menu Shell demo program for Z-Systems

******************************************************************