Because there are a variety of devices supported by DKdriver which have odd functions, a table exists within DKdriver which can be modified, if one has the binaries, to allow its response to some nonstandard devices to be tailored. This is not supported by DEC (Compaq) mainly because it can make it impossible to tell what may have been mis-done to a device. Therefore if you want to modify it, be aware you're not supported. The table is defined like this: .SBTTL SCSI_DEV_TYPES - Build SCSI device table ;+ ; SCSI_DEV_TYPES ; ; This macro builds a table of pre-defined SCSI device types. During unit ; initialization, an inquiry command is sent to the target which returns ; 8 bytes of ID string. The table is then scanned for a matching ID. If one ; is found, information for that entry is copied into the UCB, including the ; device type, media ID, disconnect/synchronous flags, and various timeout ; values. If no matching entry is found, the device is assumed to be a ; "generic" SCSI disk, and the entry for generic devices is used. Each entry ; in the device type table has the following format: ; $DEFINI SCSI_DEVICE_ENTRY $DEF DTYP_TYPE .BLKB 1 ; VMS Device type. ; This is the thing you see in the DT$_xxx fields in ; $DTDEF and where new devices are defined is filled ; in with some kind of crude equivalent. $DEF DTYP_FLAGS .BLKB 1 ; Flags. Bit set means: $VIELD DTYP,0,<- ; ,- ; Bit 0 = disconnect support ,- ; Bit 1 = sync mode support ,- ; Bit 2 = disable TCQ support > ; Bit 3 = Mode Sense 10 req'd ; The stuff above is likely to be important with some devices. ; DISC means the device disconnects from the SCSI bus during ; operation and reconnects. Most SCSI devices know how to do this ; but a PC device might perfectly well not. ; ; SYNC support means it knows how to do other than asynch SCSI ; and thus might issue SDTR. Some older SCSI devices, and SCSI-1 ; devices generally, won't handle this. Sometimes the built in ; probes for SYNC support work right but if they don't you may ; have to tweak this. ; ; NO_TCQ means no tagged command queueing support. This support ; is often wrong. Disabling it means VMS will not rely on the ; disk to keep several commands straight inside the drive ; electronics but will feed them one at a time. If you set it ; on a device where TCQ "really" works it will slow it a bit ; but if the device is unknown it can be a really good idea ; (in my personal experience and some others') to set this. ; ; MODE_10 means the device needs 10 byte mode sense commands. ; VMS 7.1 starts with 6 byte commands. If the device won't ; handle them and gets stuck you may have to set this "by hand". ; (Most devices do not get stuck and this gets set automatically.) $DEF <> .BLKW 1 ; Pad for alignment $DEF DTYP_ID_STRING .BLKL 2 ; ID String ; This is up to 8 bytes of the device name found in the ; IDENTIFY SCSI command. This name generally can be seen at ; the >>>SH DEV display before booting. Pad with spaces or ; chop off 8 characters. This field is ASCII and will let ; you find this table by looking for strings like RZ23, ; RRD42 and so on. $DEF DTYP_MINREV .BLKL 1 ; Min. Revision level ; Used to check for firmware levels. $DEF DTYP_MEDIA_ID .BLKL 1 ; Media Id $DEF DTYP_PHASE_TMO .BLKW 1 ; Phase Change Timeout ; If parts of a SCSI command take unusually long to finish ; (as erase on a CD-RW may for example, or scsi format) you ; may want to set this to a larger number of seconds. $DEF DTYP_DISC_TMO .BLKW 1 ; Disconnect Timeout ; Ditto here. An operation that disconnects for 45 minutes ; is subject to this timeout. If disconnect is ; supported this timeout will probably govern how long a ; command can run before timeout. $DEF DTYP_TABLE_ENTRY_SIZE ; Size of SCSI Device Table Entry $DEFINI SCSI_DEVICE_ENTRY ; Each table entry is 24 bytes, which allows successive entries ; to be naturally aligned. ASSUME DTYP_TABLE_ENTRY_SIZE EQ 24 ; The table is terminated with a VMS device code of 0. ; Disk class driver extensions to the UCB. ; Internal tables are called with calls like these: SCSI_DEV_TYPES <- ; ID string Dev type Media ID Min Rev Disc Synch Phas tmo Disc tmo TCQ Mode Sense 10 ; --------- -------- -------- ------- ---- ----- -------- --------- --------- ------------- ; <, RZ22, , <0615>, YES, YES, DEFAULT, DEFAULT, DEFAULT, NO >,- <, RZ23, , <0615>, YES, NO, DEFAULT, DEFAULT, DEFAULT, NO >,- <, RZ23L, RZL23, < >, YES, YES, DEFAULT, DEFAULT, DEFAULT, NO >,- <, RZ24, , < >, YES, YES, DEFAULT, DEFAULT, DEFAULT, NO >,- <, RZ25, , < >, YES, YES, DEFAULT, DEFAULT, DEFAULT, NO >,- <, RZ31, , < >, YES, YES, DEFAULT, DEFAULT, DEFAULT, NO >,- <, RZ55, , <0700>, YES, YES, DEFAULT, DEFAULT, DEFAULT, NO >,- <, RZ56, , < >, YES, YES, DEFAULT, DEFAULT, DEFAULT, NO >,- <, RZ57, , < >, YES, YES, DEFAULT, DEFAULT, DEFAULT, NO >,- <, RZ57I, RZI57, < >, YES, YES, DEFAULT, DEFAULT, DEFAULT, NO >,- <, RZ58, , < >, YES, YES, DEFAULT, DEFAULT, DEFAULT, NO >> SCSI_DEV_TYPES <- <, RRD40S, RRD40, <250D>, YES, NO, DEFAULT, RRD40_DISC_TMO, DEFAULT, NO >,- <, RRD42, , < >, YES, NO, DEFAULT, RRD42_DISC_TMO, DEFAULT, NO >> SCSI_DEV_TYPES <- <, RZ72, , < >, YES, YES, DEFAULT, DEFAULT, DEFAULT, NO >,- <, RZ73, , < >, YES, YES, DEFAULT, DEFAULT, DEFAULT, NO >,- <, RZ35, , < >, YES, YES, DEFAULT, DEFAULT, DEFAULT, NO >,- <, RWZ01, , < >, YES, YES, DEFAULT, DEFAULT, DEFAULT, NO >,- <, RZ24L, RZL24, < >, YES, YES, DEFAULT, DEFAULT, DEFAULT, NO >,- <, RZ25L, RZL25, < >, YES, YES, DEFAULT, DEFAULT, DEFAULT, NO >,- <, RZ26L, RZL26, < >, YES, YES, DEFAULT, DEFAULT, DEFAULT, NO >> There are many more. Searching for the strings in a dkdriver binary will find these. Note this info is for alpha, 7.1... If you have a brand new device that needs some odd characteristics one way to get them would be to build a dkdriver that replaces one or more entries in this table with entries that match what you have (matches the inquiry data that is) and does not replace an entry for any device you have. Caveats: 1. Do this and you're on your own. Support will probably be invalidated. 2. Don't blow away your only copy of dkdriver. 3. Be sure you can boot off something standard. At any rate you can expect to have to redo this stuff for every VMS release. 4. This will help with some, but not all, disk problems. I've seen SCSI devices that implement so little of SCSI that DKDRIVER is helpless with them. 5. Test the heck out of any patch before use. 6. Be paranoid about having backups. 7. Be DARN sure not to clobber an entry for any device you actually have lest you screw up its operation. 8. Be sure not to add any nulls after what you add lest you prematurely terminate the list. 9., 10., 11., and 12. Do NOT call DEC about problems with dkdriver unless you're using the standard dkdriver. Remember 1. above. The foregoing is furnished for the help of those who know what they're doing and can use it, and does not constitute ANY offer to support it. Remember too: I have not furnished any utility to find dkdriver and patch these tables in it online! You're on your own, but the info may be helpful if you have an odd device. I got a request recently about how to use a cd-rw drive with VMS lately which had a 40 minute time to erase. That is the impetus for this.