BIOSMR12 ======== The accompanying files represent a modification to the excellent job Michael Rubenstein did with his BIOSMMR. I wanted to add some features to speed up the cold boot process as well as incorporate ZRDOS+ from Echelon, Inc. in place of CP/M's BDOS. Since the internal structure of the latter is quite different from BDOS, there were some changes required. the following notes discuss those changes. For the record, these files are working with a Kaypro 10 with an original issue ROM version 1.9E. I am using a SWP Co-processor that can be configured as a RAM disk with 1 MB capacity. Background ---------- For those that are unaware of it, BIOSMMR is a significant improvement to the Kaypro BIOS by the above mentioned author. It supports a number of outstanding features. Full redirection allows saving console output to a disk file printer or combination of both. Fast boot and fast reset greatly speed up operation at the system level. (try hitting Control-C on your standard BIOS - takes about 5-6 seconds to come back. With BIOSMMR and FASTBOOT, comes back in under a second!) The hard disk capacity is increased from the standard 4472K per side to 5016K per side. There are other features, but these are the highlights. The initial distribution consisted of over 250K of source code, utilities and documentation. The reader is assumed to have those files in order to fully understand the following as well as having the utilities to access the enhanced features. After operating with this BIOS for over 6 months, I would never go back to a standard "slow" BIOS. It truly make the Kaypro 10 "fly". However, never one to leave well enough alone, there were two changes I wanted to make. Faster Coldboot --------------- When a Kaypro 10 coldboots, it loads the graphics overlay routines from the B drive as placed on the B drive system tracks by PUTOVLxx. Then, it links to the system tracks of the A drive to load CCP, BDOS and BIOS. Since ZCPR3 requires SYS.ENV be loaded before running any utilities, including a STARTUP alias, BIOSMMR had the following command line hard-coded into the BIOS: LDR SYSxx.ENV;STARTxx In addition to taking up a little extra BIOS space, it also slowed the cold boot process since STARTxx had to load ALL the system segments. Using the procedures outlined below, the PATH, named directory and SYSxx.ENV are all auto-loaded from the B drive. This feature is enabled by setting the equate "fload" to -1 in BIOS.LIB. ZRDOS+ BDOS Replacement ----------------------- After recently acquiring ZRDOS+, I find the features are very nice, the speed is slightly improved and the ZRDOS+ accessories are handy and fast. Unfortunately, BIOSMMR hot-patches BDOS for fast reset and redirection. New equates in BIOSLOC.LIB are conditionally selected by setrting the equate "zsys" to -1 in BIOS.LIB. Installation ------------ The following alias scripts are used to assemble and load the various elements of the ZCPR3 system. To get started the first time, I suggest uou manually type in the appropriate assembly commands. 1. LOADZCPR - assemble and load the ZCPR3 command processor replacement into the PUTSYS file: IF EX $1.ASM MAC $1 $$PZSZ SAK /BP3 CTRL-C TO ABORT MOVHEX 980 $1 MLOAD $2.COM,$1 ERA $1.BAK ELSE ECHO LOADZCPR FI 2. LOADBIOS - assemble and load the new BIOS into the PUTSYS file. This script also runs the resultant PUTSYS and re-boots the machine. This can be avoided by typing CTRL-C at the second prompt. IF EX $1.MAC M80 =$1 SAK /BP3 ^C TO ABORT RELHEX $1 MLOAD $2.COM,ZEROBIOS,$1 ERA $1.REL ERA $1.BAK ERA $1.HEX SAK /BP5 ^C TO ABORT $2 COLDBOOT ELSE ECHO LOADBIOS FI 3. LOADENV - this script assembles and loads the ENV segment into the PUTOVL file at the appropriate load point. IF EX $1.ASM MAC $1 $$PZSZ MOVHEX E80 $1.HEX MLOAD $2.COM,$1 ERA $1.BAK ERA $1.HEX ELSE ECHO LOADENV 4. LOADNDR - this script assembles and loads the named directory file, as created by MKDIR, into the PUTOVL file at the appropriate load point. IF EX $1.NDR CP $1NDR.COM=$1.NDR UNLOAD $1NDR MOVHEX C00 $1NDR MAC PATH $$PZSZ MLOAD $2.COM,$1NDR,PATH ERA $1NDR.HEX ERA $1NDR.COM ELSE ECHO LOADNDR FI 5. LOADXCP - this script is used to assemble and load either the FCP or RCP segments. These segments must be loaded by LDR at STARTUP. IF EX $1$2.ASM MAC $1$2 $$PZSZ MLOAD $1$2 REN $1.$2=$1$2.COM ERA $1$2.BAK ERA $1$2.HEX ELSE ECHO LOADXCP FI Files required on the same drive and user area to execute the above assembly are listed below. Those included in this library are indicated by (*); those included in BIOSMMR.LBR are indicated by (+). Source Files ============ ZCPR3.ASM, Z3BASE.LIB(*), Z3HDR.LIB(*) BIOS.MAC(*), BIOS.LIB(*), BIOSLOC.LIB(*) SYSENV.ASM, SYSENV.LIB PATH.ASM(*) (Sets the default path at cold boot) NAMES.NDR SYSRCP.ASM, SYSRCP.LIB SYSFCP.ASM, SYSFCP.LIB ZEROBIOS.HEX(*) Loads a zeroes in unused BIOS locations. BIOS.HEX(*) My current BIOS with the features indicated in the accompanying BIOS.* files. This is for a 50K system. Programs and Utilities ====================== Program Used in ------- ------- M80 LOADBIOS MAC LOADZCPR, LOADENV, LOADNDR, LOADXCP MLOAD(+) LOADZCPR, LOADBIOS, LOADENV, LOADNDR, LOADXCP MOVHEX(+) LOADZCPR, LOADENV, LOADNDR RELHEX(+) LOADBIOS UNLOAD(*) LOADNDR (Creates a .HEX file from a .COM file) COLDBOOT(*) LOADBIOS (Coldboots the Kaypro 10) PUTSYSxx LOADZCPR, LOADBIOS (Your system loader) PUTOVLxx LOADENV, LOADNDR (Your overlay loader) Sample System Aliases --------------------- 1. START50 - This is my startup alias. SETCUR and SCRNPRNT are from BIOSMMR.LBR. SETCUR gives program control of the cursor style; SCRNPRNT is a screen dump utility. My root: directory is A15:. A15: LDR SYS.RCP,SYS.FCP SETCUR BLOCK STEADY SCRNPRNT 2. RAM - This alias sets up my Co-power plus board as a RAM disk. The RAM disk driver is loaded at location EA00, as provided by BIOSMMR, and defined as drive D. KSTAT, FASTBOOT and FASTSUB are BIOSMMR utilities. AC is a ZRDOS copy utility. KSTAT sets the maximum allowable disk to D:. AC copies the appropriate files to the ramdisk for faster operation. The path is redefined to look at the ramdisk first. Then the named directories are redefined to recognize the ramdisk. Finally FASTBOOT and FASTSUB are enabled. RAMDISK D,,EA00 KSTAT DSK=D: AC D0:=A8:*.* /N PATH D0: A15: A$: A0: LDR RNAMES.NDR FASTBOOT D:BOOT.SYS FASTSUB D: $D$U: Closing Comments ---------------- I realize these notes are somewhat sketchy. I would be glad to answer any specific questions but, before you ask, please get BIOSMMR.LBR and study the original. I check in approximately weekly at Z-Node Central 415-489-9005 and Pro-Comm Data Base 813-937-3608/813-937-6829. BIOSMMR.LBR is available at the latter location. Note that M80, MAC and ZRDOS+ are NOT public domain programs. John Smith Pepperell, MA September 15, 1985