BASHDK BashDK is an in-memory driver patcher that is designed to patch DKDRIVER in memory so that DKDRIVER will properly control jukebox disks as normal VMS disks. The patches are minimal and do not interfere with normal operation on normal VMS disks on SCSI busses. The BASHDK program is VMS version specific, so that it works correctly only where DKDRIVER does not change. It does some testing to ensure it has the correct DKDRIVER version and will do nothing if it finds out it has the wrong version. The program currently has no licensing code. Since it is VMS version specific, it may be enough to have code that only writes the license owner name to opa0: when it runs. Alternatively the full license key code that Branches uses could be incorporated. The current version of the DK driver patch system is built for VMS 5.5-x and use should not be attempted on other VMS versions. Use: Suppose you have an HP jukebox connected to SCSI unit 0 of bus A. This would normally show up as DKA0: if it were a regular SCSI disk. 1. Boot VMS normally. 2. Run BASHDK from a fully priv'd account (needs and uses $cmkrnl) 3. Issue SYSGEN connect commands like $ sysgen:==$sysgen $ sysgen connect dka0:/driver=dkdriver Now the DKA0: device is connected and can be used as a normal VMS disk. However, optical disks have a fairly low signal level so that it is normal for the electronics to use error correction codes (ECC) to recover errors that appear transiently. This is normal on optical and not significant, but DKdriver is not designed to handle large numbers of ECC errors. To avoid disabling ECC handling on normal SCSI disks, these errors are handled by an intercept system which is turned on for each optical disk and which retries the ECC errors where needed, leaving error handling for normal SCSI disks alone. Do this by loading and turning on JGAn: units for each optical disk you use. $ sysgen:==$sysgen $ sysgen conn JGA0:/noadapter/driver=JGdriver $ set comm sys$system:jgctl $ jgctl/verify JGA0: DKA0: Thus, to use the package: 1. Copy JGCTL.CLD, BASHDK.EXE, and JGDRIVER.EXE into sys$system: 2. On the node where the optical disk is attached perform the following steps. Assume the optical disk is on SCSI bus B, unit 2 here for the example. If on bus A you'd use DKA, not DKB, and if it's on SCSI LUN n you use n00 as the unit number, where here we'll use "200". Note: Do this from the system account. You can insert these commands into systartup_v5.com if you like. $ sysgen:==$sysgen $ run sys$system:bashdk $ sysgen connect dkb200:/driver=dkdriver $ sysgen connect JGA0:/noadapter/driver=jgdriver $ set command sys$system:jgctl $ JGCTL/VERIFY JGA0: DKB200: (connect other JGAn: units and use JGCTL to turn them on in similar fashion. Thus if you have a second optical disk connected at SCSI bus A and SCSI LUN 4 you would add after this: $ sysgen connect dka400:/driver=dkdriver $ sysgen connect jga1:/noada/driver=jgdriver $ jgctl/verify JGA1: DKA400: This will cause the units DKB200: and DKA400: above to behave as normal VMS disks. You will see errors logged for them, owing to our not having disabled ECC handling in DKdriver (as your other disks need it), but the disks will act normally to your applications. They can be used, and error rates of up to a fraction of a percent of I/O operations on the optical disks as seen by SHOW ERRORS can be ignored; your applications will not see them, and the data on the opticals will be recorded correctly.