diff --git a/Doc/ChangeLog.txt b/Doc/ChangeLog.txt index 2bfb7e54..ea428ecb 100644 --- a/Doc/ChangeLog.txt +++ b/Doc/ChangeLog.txt @@ -14,7 +14,7 @@ Version 3.5 - DDW: Added support for Duodyne Media board - WBW: Auto restore TMS video on user reset (CP/M warm boot) - L?B: Added support for NABU w/ RomWBW Option Board -- M?P: Reorganization of Doc directory introducing subfolders +- MAP: Reorganization of Doc directory introducing subfolders - WBW: Upgraded BBCBASIC to v5.00 - W?S: Updated FLASH utility to v1.3.9 - WBW: Support RCBus PS/2 Keyboard (EP/Sally) @@ -30,6 +30,7 @@ Version 3.5 - WBW: Refactor UART driver for more flexible configuration - M?R: Added hour/minute/second display to timer app - WBW: Substantial customization of NZ-COM disk image +- MAP: Improved section Real Time Clock in User Guide document Version 3.4 ----------- @@ -698,4 +699,4 @@ interrupts disabled the BIOS will now start OK even if some vagrant hardware is asserting an interrupt (DISKIO). Seems like this is better anyway -- general idea is that we only enable interupts precisely when desired for very specific controled purposes since there is no -concept of interrupt dispatching available. \ No newline at end of file +concept of interrupt dispatching available. diff --git a/Doc/Contrib/ZSystem.txt b/Doc/Contrib/ZSystem.txt index c4b99b0a..f5166ef9 100644 --- a/Doc/Contrib/ZSystem.txt +++ b/Doc/Contrib/ZSystem.txt @@ -20,7 +20,7 @@ Beyond the construction and integration of the actual DOS itself, the majority o The remainder of this document details the changes I made as I went along. In all cases, my goal was to keep the result as close to the original distribution as possible. I started by copying all of the files from the distribution (contained in zsdos2.zip) into Support\ZSDOS. From there I tested, modified, updated, and customized as documented below. Finally, I cherry picked files that made sense to include on the ZSystem ROM disks. -1. CLOCKS.DAT has been updated to include the RomWBW clock driver, HBCLK. I have also added the SIMHCLOK clock driver. +1. CLOCKS.DAT has been updated to include the RomWBW clock driver, WBWCLK. I have also added the SIMHCLOK clock driver. 2. STAMPS.DAT has been replaced with an updated version. The update was called STAMPS11.DAT and was found on the Walnut Creek CP/M CDROM. The original version has a bug that prevents RSX (resident system extension) mode to load properly. diff --git a/Source/Doc/Catalog.md b/Source/Doc/Catalog.md index 8250a8b8..c878dc49 100644 --- a/Source/Doc/Catalog.md +++ b/Source/Doc/Catalog.md @@ -217,9 +217,9 @@ on using the applications and files listed. | `INITDIR.COM` | ZSDOS | ZSDOS Prepare disks for P2DOS Stamps | | `KERMIT.COM` | -- | Generic CP/M 2.2 Kermit communication application | | `LBREXT.COM` | -- | Extract library files | -| `LDDS.COM` | ZSDOS | Clock driver | -| `LDNZT.COM` | ZSDOS | Clock driver | -| `LDP2D.COM` | ZSDOS | Clock driver | +| `LDDS.COM` | ZSDOS | Load DateStamper date/time stamping resident extension | +| `LDNZT.COM` | ZSDOS | Load NZT date/time stamping resident extension | +| `LDP2D.COM` | ZSDOS | Load P2DOS date/time stamping resident extension | | `LIB.COM` | -- | DRI Library manager | | `LINK.COM` | -- | DRI CPM relocatable linker | | `LOAD.COM` | -- | DRI hex file loader into memory | @@ -229,7 +229,7 @@ on using the applications and files listed. | `PMARC.COM` | -- | LHA file compressor | | `PMEXT.COM` | -- | Extractor for PMARC archives | | `PUTBG.COM` | ZSDOS | ZSDOS Prepare disk for backgrounder | -| `PUTDS.COM` | ZSDOS | ZSDOS Prepare disk for datestamper | +| `PUTDS.COM` | ZSDOS | ZSDOS Prepare disk for datestamper date/time stamping| | `RELOG.COM` | ZSDOS | ZSDOS relog disks after program that bypasses BDOS | | `RMAC.COM` | -- | DRI Relocatable Macro Assembler | | `SETTERM.COM` | ZSDOS | ZSDOS Installs terminal control codes into DateSamper utilities | diff --git a/Source/Doc/UserGuide.md b/Source/Doc/UserGuide.md index 66bd7cda..510d023d 100644 --- a/Source/Doc/UserGuide.md +++ b/Source/Doc/UserGuide.md @@ -2353,28 +2353,12 @@ call "ZSYS.SYS". For example: or MAP, you may need to run “RELOG” to get the drive properly recognized by ZSDOS. -* RomWBW fully supports both DateStamper and P2DOS file date/time - stamping. You must load the desired stamping module (`LDDS` for - DateStamper or `LDP2D` for P2DOS). This could be automated using - a `PROFILE.SUB` file. Follow the ZSDOS documentation to initialize - a disk for stamping. - * ZSVSTAMP expects to be running under the ZCPR 3.X command processor. By default, RomWBW uses ZCPR 1.0 (intentionally, to reduce space usage) and ZSVSTAMP will just abort in this case. It will work fine if you implement NZCOM. ZSVSTAMP is included solely to facilitate usage if/when you install NZCOM. -* FILEDATE only works with DateStamper style date stamping. If you run - it on a drive that is not initialized for DateStamper, it will complain - `FILEDATE, !!!TIME&.DAT missing`. This is normal and just means that - you have not initialized that drive for DateStamper (using PUTDS). - -* ZXD will handle either DateStamper or P2DOS type date stamping. - However, it **must** be configured appropriately. As distributed, it will - look for P2DOS date stamps. Use ZCNFG to reconfigure it for P2DOS if - that is what you are using. - * Many of the tools can be configured (using either ZCNFG or DSCONFIG). The configuration process modifies the actual application file itself. This will fail if you try to modify one that is on the ROM disk because @@ -2385,10 +2369,6 @@ call "ZSYS.SYS". For example: SETTERM. So, run SETTERM on DSCONFIG before using DSCONFIG to configure DATSWEEP! -* After using PUTDS to initialize a directory for ZDS date stamping, I - am finding that it is necessary to run RELOG before the stamping - routines will actually start working. - * Generic CP/M PIP and ZSDOS path searching do not mix well if you use PIP to copy to or from a directory in the ZSDOS search path. Best to use COPY from the ZSDOS distribution. @@ -3087,8 +3067,11 @@ SAMPLE2.TXT ==> 4:/SAMPLE2.TXT ... [OK] RomWBW supports a variety of real time clock hardware. If your system has this hardware, then it will be able to maintain the current date and time even while your system is turned off. + Additionally, depending on the operating system being used, you may be able to utilize date/time stamping of files. +To facilitate this a CP/M clock driver (WBWCLK) has been included +inside `CLOCKS.DAT` that will read the clock via a RomWBW HBIOS call You can determine if your system has a real time clock present (and functioning) by looking at the boot messages. Here is an example of @@ -3114,6 +3097,8 @@ RomwWBW includes two utilities for displaying or setting the date/time stored by the RTC. They are both a bit different and are briefly described below. +A third utility `TESTCLOK` is also included as part of ZSDOS + ### WDATE Utility The `WDATE` utility (contributed by Kevin Boone) is an application @@ -3193,6 +3178,57 @@ Do **not** enable charging unless you are sure that your system supports this. If your RTC is being powered by a normal battery, it would be dangerous to enable charging. +### TESTCLOK Utility + +The `TESTCLOK` utility is used to test a selected CPM clock driver +loaded from the CLOCKS.DAT file. After selecting the location of CLOCKS.DAT +and the clock driver (45. WBWCLK) it displays the currently configured time +until a key is pressed. + +``` +A>testclok + +TESTCLOK V1.0 Copyright (C) 1988 H.F. Bower / C.W. Cotrill + +Extract Clock from Library ([Y]/N) : Y +Location of CLOCKS.DAT [A0:] : + + 1. ACTRIX 2. ALSPA 3. AMPRO-LB + 4. ANLYTCL-PRD 5. AP2-CDZ180 6. AP2-THND/MT + 7. AP2-TIMASTR 8. AP2E+PCP-TM 9. AP2E+PCPI + 10. AP2E-THUNDR 11. AP2E-TMASTR 12. BIG-BD-II + 13. BP-BIOS 14. CCS-WALLCLK 15. CPUPRO-SSB1 + 16. ELECTR-MFIO 17. EPSON-QX10 18. ETS180IO+ + 19. H19-SUPER19 20. H19-ULTRA 21. H19-WATZMAN + 22. H89-BITZERO 23. H89-PC12 24. H89-WIDGET + 25. H89-WISE 26. H89UTI 27. HEATH-BIOS + 28. HOUSEMASTER 29. K83-HOLMES 30. KAYPRO-84 + 31. KENMOR-ZTIM 32. KPRO-ADVENT 33. KPRO-LEGACY + 34. MD3-MACK 35. MTN100K-DAY 36. ONEAC-ON! + 37. OTRANA-ATCH 38. P&T-HEARTBT 39. QTSYS-S100 + 40. RELATIVE 41. S100-5832 42. SB180-HRTBT + 43. SB180-XBIOS 44. SIMHCLOK 45. WBWCLK + 46. XEROX-820 47. ZSDOS-BIOS + +Enter Clock Driver Selection : 45 + +..Loading : WBWCLK ... +Linking Clock Module... OK +RomWBW HBIOS Clock 1.1 + +RomWBW Series HBIOS Clock + +Press any key to quit... + + 19 Oct 2023 14:24:34 +``` + +Since this runs at the CPM driver level it is useful as an end-to-end test +to prove that date time stamping is able to read the correct time + +The `TESTCLOK` utility is provided by ZSDOS, plese see the ZSDOS Manual +for further information + ## Date/Time File Stamping If an RTC is available in your system, then most operating systems @@ -3201,10 +3237,16 @@ date/time of file creation, update, and or access in the directory. This capability is available in all of the RomWBW operating system except the original DRI CP/M 2.2. -In some cases (such as ZSDOS), you must load an RSX (memory resident -utility) to enable date/time stamping of files. Additionally, you -will need to initialize the directory. The procedure varies in each -operation system, so you must review the associated documentation. +Three types of date/time stamping are supported using realtime clock +supported by RomWBW HBIOS. DateStamper, NZT and P2DOS. + +In some cases (such as ZSDOS), you must load an RSX (memory resident +utility) to enable date/time stamping of files. This could be automated +using a `PROFILE.SUB` file. +Preconfigured loaders are provided, bypassing the need to use SETUPZST. + +Additionally, you will need to initialize the directory. The procedure varies +depending on the date/time stamping mechanism, so you must review the associated documentation. The date/time stamping mechanisms for each operating system are generally not compatible. If you initialize a directory for a type @@ -3215,6 +3257,71 @@ mechanism. Doing so may corrupt the directory. The RomWBW disk images do not have date/time stamping initialized. This is to avoid any chance of directory corruption. +### DateStampter + +DateStamper datestamping follows the standard set by Plu*Perfect Systems. +This method stores stamps in a disk file named `!!!TIME&.DAT`. +Only DateStamper stamping stores full time and date stamps for +file Creation, Last Modification, and Last Access, +and may be used with any CP/M diskette format. In addition, +the DateStamper protocol is supported by a mature set of compatible utilities. + +Key Utilities + +* LDDS.COM - Load DateStamper date/time stamping resident extension. (RomWBW Provided) +* PUTDS.COM - Prepare disk for DateStamper date/time stamping. + +After using PUTDS to initialize a directory for ZDS date stamping, +it may be necessary to run RELOG before the stamping routines +will actually start working. + +### P2DOS (CP/M Plus compatible) + +CP/M Plus-type datestamping is also widely used due to the popularity +of CP/M Plus (also know as CP/M 3). CP/M Plus-type file datestamping uses +directory sectors to store file datestamps which may be accessed more quickly +by programs, but there is no Last File Access stamp. Finally, the range of +utilities for this type of stamps is more limited than for the DateStamper protocol. + +Key Utilities + +* LDP2D.COM - Load P2DOS date/time stamping resident extension. (RomWBW Provided) +* INITDIR.COM - Prepares disks for P2DOS-type file stamping. + +### NZT + +_The use of NZT needs to be further documented_ + +Key Utilities + +* LDNZT.COM - Load NZT date/time stamping resident extension. (RomWBW Provided) + +### Additional Notes + +The following files have been provided, customised and tested for for use in RomWBW + +* `CLOCKS.DAT` - Library of clock drivers, which has been updated to include + the RomWBW clock driver WBWCLK, and also includes the SIMHCLOK clock driver. + The file is just a standard LU type library and is easily updated using NULU. + The members are the relocatable binaries, but with the .REL extension removed. +* `STAMPS.DAT` - Library of available date/time stamping modules for SETUPZST. + The file has been replaced with an updated version from the Walnut Creek CP/M CDROM. + The original version has a bug that prevents RSX (resident system extension) mode + to load properly. + +Additional Notes + +* `SETUPZST` (provided by ZSDOS) Should not normally be needed since the + creation of the appropriate LDTIM loaders has already been performed. +* `FILEDATE` only works with DateStamper style date stamping. If you run + it on a drive that is not initialized for DateStamper, it will complain + `FILEDATE, !!!TIME&.DAT missing`. This is normal and just means that + you have not initialized that drive for DateStamper (using PUTDS). +* `ZXD` will handle either DateStamper or P2DOS type date stamping. + However, it **must** be configured appropriately. As distributed, it will + look for P2DOS date stamps. Use ZCNFG to reconfigure it for P2DOS if + that is what you are using. + ## Timezone None of the operating systems distributed with RomWBW have any concept diff --git a/Source/Images/d_bp/u0/support.txt b/Source/Images/d_bp/u0/support.txt index db70c39d..ad0035ba 100644 --- a/Source/Images/d_bp/u0/support.txt +++ b/Source/Images/d_bp/u0/support.txt @@ -2,16 +2,16 @@ This library contains a number of support files, programs and scripts needed to bring up a fully functioning BPBIOS Zsystem. These programs and files are used and/or loaded by the startup scripts. -Some of the support files are startup ZEX scripts, some are Z3+ segment files, -others are Date and Time stamp drivers, some are command line editors and -history shells others are needed to initialize the RAMDRIVE as well as help files. +Some of the support files are startup ZEX scripts, some are Z3+ segment files, +others are Date and Time stamp drivers, some are command line editors and +history shells others are needed to initialize the RAMDRIVE as well as help files. -The following table shows which files are needed to support each of the ten -BPBIOS variants (BP33, BP33BNK, BP34, BP34BNK & BBP41BNK). +The following table shows which files are needed to support each of the ten +BPBIOS variants (BP33, BP33BNK, BP34, BP34BNK & BBP41BNK). Variant Name BP33 BP33BNK BP34 BP34BNK BP41BNK ================================================================ -bpbio.ndr X X X +bpbio.ndr X X X bpbioz33.ndr X X BPCNFG.COM X X X X X EASE.COM X X @@ -20,18 +20,18 @@ fcp-4.zrl X X fcp-4t.zrl X X X RELOG X X X X X HELPLSH.COM X X X -IF.COM X X X X +IF.COM X X X X jetldr.com X X X X X LDTIMEC.COM X X X LSH.COM X X X LSHF.COM* X X X LSHF.VAR* X X X -myterm.z3t X X X X X -nzdec23d.z3t X X X X X +myterm.z3t X X X X X +nzdec23d.z3t X X X X X PUTDS.COM X X X X X RAMFILES.TXT X X X X X RCOPY.COM X X X X X -rcp-16h.zrl X X X X +rcp-16h.zrl X X X X SAVE.COM X X X X Z33.ZEX X X ZEX.COM X X X X X @@ -43,14 +43,14 @@ ZST.ZEX X X Instructions: The support files are "crunched" and stored in the library file -SUPPORT.LBR. Place SUPPORT.LBR on the RAMDRIVE using for example +SUPPORT.LBR. Place SUPPORT.LBR on the RAMDRIVE using for example XModem. Use LBREXT with the /U option to extract and uncrunch the -files. First extract ZEX.COM while logged onto the A: drive with the +files. First extract ZEX.COM while logged onto the A: drive with the following command: B0:LBREXT SUPPORT C0:ZEX.C?M /U Next place all the .COM files on C15: by typing: B0:LBREXT SUPPORT C15:*.C?M /U -The remaining files should be placed on C0:. +The remaining files should be placed on C0:. B0:LBREXT SUPPORT C0:*.Z?X /U B0:LBREXT SUPPORT C0:*.Z?L /U B0:LBREXT SUPPORT C0:*.N?R /U @@ -59,14 +59,14 @@ The remaining files should be placed on C0:. B0:LBREXT SUPPORT C0:*.H?P /U Note in all BPBIOS variants that A: is the RAMDRIVE, B: is -the ROMDRIVE and C: is the system drive. Hard drive slices occupy C: +the ROMDRIVE and C: is the system drive. Hard drive slices occupy C: through N: and floppy drives are O: & P:. A short desciption of each of the support files follows: bpbioz33.ndr - Named Directory Table for Z33 bpbio.ndr - Named Directory Table for Z34 & Z41 BPCNFG.COM - BPBIOS configuration program -EASE.COM - Command line editor & history shell for Z33* +EASE.COM - Command line editor & history shell for Z33* EASE.HLP - Help file for EASE fcp-4.zrl - Z33 Flow Control Processor (handles IF, ELSE etc) fcp-4t.zrl - Z34 & Z41 Flow Control Processor (IF is transient) @@ -80,7 +80,7 @@ LSHF.COM - LSH with a fixed length History file (runs faster) LSHF.VAR - History file for LSHF myterm.z3t - Terminal Capabilities file (defines ESC sequences etc) NZDEC23D.Z3T - VT100 Terminal Capabilities File. -PUTDS.COM - Installs date stamping for RAM drive. +PUTDS.COM - Prepare disk for DateStamper date/time stamping. RAMFILES.TXT - List of frequently used command (edit to suit) RCOPY.COM - Copies files listed in RAMFILES.TXT to RAMDRIVE rcp-16h.zrl - Zsystem Resident Command Processor @@ -92,4 +92,4 @@ ZSCFG2.COM - Configures ZSDOS 2 ZSTF.ZEX - Automatically executed Startup script for BP41BNK ZST.ZEX - Automatically executed Startup script for BP34* -Note that clock & datestamping drivers are builtin to Z41. \ No newline at end of file +Note that clock & datestamping drivers are builtin to Z41. diff --git a/Source/ZSDOS/Clock/Build.sh b/Source/ZSDOS/Clock/Build.sh new file mode 100755 index 00000000..9eab60e6 --- /dev/null +++ b/Source/ZSDOS/Clock/Build.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +export TOOLS=../../../Tools +export PATH=$TOOLS/tasm32;$TOOLS/zxcc;%PATH% +export TASMTABS=$TOOLS/tasm32 +export CPMDIR80=$TOOLS/cpm + +../../../Tools/Darwin/zxcc ZMAC -WBWCLK -/P || exit /b + diff --git a/Source/ZSDOS/Clock/Makefile b/Source/ZSDOS/Clock/Makefile new file mode 100644 index 00000000..dea801c1 --- /dev/null +++ b/Source/ZSDOS/Clock/Makefile @@ -0,0 +1,32 @@ + +TOOLS = ../../../Tools +PATH = %TOOLS%/tasm32;%TOOLS%/zxcc;%PATH% +TASMTABS = %TOOLS%/tasm32 +CPMDIR80 = %TOOLS%/cpm/ + +# OBJECTS = bbcbasic.com +# DOCS = bbcbasic.txt +# DEST = ../../../Binary/Apps +# DOCDEST = ../../../Binary/Apps +# OTHERS = *.rel + +include $(TOOLS)/Makefile.inc + +WBWCLK: + $(ZXCC) ZMAC -WBWCLK -/P + + +#set TOOLS=../../../Tools +#set PATH=%TOOLS%\tasm32;%TOOLS%\zxcc;%PATH% +#set TASMTABS=%TOOLS%\tasm32 +#set CPMDIR80=%TOOLS%/cpm/ +#zxcc ZMAC -WBWCLK -/P || exit /b + +#OBJECTS = zmd.com +#DEST = ../../../Binary/Apps +#TOOLS = ../../../Tools +#OTHERS = *.hex zmd.rel +#include $(TOOLS)/Makefile.inc +#zmd.com: zmd.rel zmdhb.hex +# $(ZXCC) L80 -zmd,zmd/n/e +# $(ZXCC) MLOAD25 -zmd=zmd.com,zmdhb diff --git a/Source/ZSDOS/Clock/ReadMe.txt b/Source/ZSDOS/Clock/ReadMe.txt index 0fc634f7..0685385c 100644 --- a/Source/ZSDOS/Clock/ReadMe.txt +++ b/Source/ZSDOS/Clock/ReadMe.txt @@ -2,10 +2,10 @@ This directory contains the source and assembled versions of the ZSystem Clock Drivers for RomWBW HBIOS. The wbwclk.z80 source file can be compiled using Build.cmd which will -produce a relocatable binary (hbclk.rel). +produce a relocatable binary (wbwclk.rel). -The relocatable binary should be added/updated in the STAMPS.DAT -library. The STAMPS.DAT file is just a standard LU type library and +The relocatable binary should be added/updated in the CLOCKS.DAT +library. The CLOCKS.DAT file is just a standard LU type library and is easily updated using NULU. The members are the relocatable binaries, but with the .REL extension removed.