                  <<< DOCD$:[NOTES$LIBRARY]SCT-RAVEN.NOTE;1 >>>
                         -< The SCT Raven conference >-
================================================================================
Note 889.0             RAVEN_FT1: fix for EVMS-HFS QAR 98             No replies
EVMS::PERCHENKO "{VDE SCT}"                         120 lines  11-JUL-1997 09:26
--------------------------------------------------------------------------------
	Project:		I/O Maintenance
	Project Leader:		Lenny Szubowicz
	Development Stream:	RAVEN
	Date:			10-July-1997
	Checkin Type:           Bug Fix.

	Description of Change: 
                                Added upcasing functionality to the 
                                load_driver routine within IOGEN. This has 
                                been done to handle the new feature of DCL 
                                to preserve casing in file names. Before 
                                loading into memory driver's file name will 
                                be upcased in order to maintain it's 
                                uniqueness and eliminate possibility to load  
                                same driver twice if file name specified by 
                                the user enters with different casing 
                                combination.
	  
	Platforms affected:	Alpha 
	  
	Modules:                LOAD_DRIVER.BLI

	Affected Images:	[IOGEN.OBJ]IOGEN$SHARE.EXE
                                [SYS.OBJ]EXEC_INIT.EXE

        Impact/Risks:           Very low risk

      	Code reviewed:          Reviewed by Lenny Szubowicz and Walter Blaschuk
	  
	Associated QARs,CLDs,SPRs:

	Diffs:

************
File DSKD$:[IOGEN.SRC]LOAD_DRIVER.BLI;2
    2   MODULE iogen$load_driver (IDENT = 'X-20',
    3   			  ENVIRONMENT(NOFP)) =
******
File DSKD$:[IOGEN.SRC]LOAD_DRIVER.OLD;1
    2   MODULE iogen$load_driver (IDENT = 'X-19',
    3   			  ENVIRONMENT(NOFP)) =
************
************
File DSKD$:[IOGEN.SRC]LOAD_DRIVER.BLI;2
   39   !	X-20			Genady Perchenko		10-July-1997
   40   !               Fix for EVMS-RAVEN QAR 98
   41   !               When accepting drivernam input parameter LOAD_DRIVER routine 
   42   !               trusted upper level (DCL in most case) to upcase the input 
   43   !               file name string. New DCL, however, preserves casing in file 
   44   !               names which potentially might lead to the situation where the 
   45   !               same driver has been loaded twice into the memory if entered 
   46   !               with different casing at DCL prompt. To avoid this situation 
   47   !               I replaced CH$MOVE call which was used to copy driver name
   48   !               from drivernam parameter into lddb buffer with small hand made
   49   !               loop which will upcase the characters while copying them. 
   50   !               NOTE: this upcasing procedure will support only regular ASCII 
   51   !               character upcasing. Also note that the reason why I did not 
   52   !               use str$upcase instead is because this code is also part of
   53   !               exec_init.exe which executes at system startup time when str$ 
   54   !               routines are not available.
   55   !
   56   !	X-19			Anne Mcelearney			12-Mar-1997
******
File DSKD$:[IOGEN.SRC]LOAD_DRIVER.OLD;1
   39   !	X-19			Anne Mcelearney			12-Mar-1997
************
************
File DSKD$:[IOGEN.SRC]LOAD_DRIVER.BLI;2
  384   	nbits,
  385           index,          
  386           source_str      : REF VECTOR[,BYTE],
  387           targ_str        : REF VECTOR[,BYTE],                                                                      
  388   	items 		: REF BLOCK[,BYTE],
******
File DSKD$:[IOGEN.SRC]LOAD_DRIVER.OLD;1
  367   	nbits,                                                              
  368   	items 		: REF BLOCK[,BYTE],
************
************
File DSKD$:[IOGEN.SRC]LOAD_DRIVER.BLI;2
  454               CH$MOVE(.devnam[dsc$w_length], .devnam[dsc$a_pointer], lddb[lddb$t_devnam])
  455   	    END;
******
File DSKD$:[IOGEN.SRC]LOAD_DRIVER.OLD;1
  434   	    CH$MOVE(.devnam[dsc$w_length], .devnam[dsc$a_pointer], lddb[lddb$t_devnam])
  435   	    END;
************
************
File DSKD$:[IOGEN.SRC]LOAD_DRIVER.BLI;2
  477          ! copy driver name from input buffer to the lddb buffer 
  478          ! upcasing it on it's way.
  479   
  480           targ_str     = lddb[lddb$t_drvnamstr];
  481           source_str   = .drivernam[dsc$a_pointer];
  482           index        = 0;
  483   
  484           WHILE .index LSS .drivernam[dsc$w_length] DO        
  485              BEGIN
  486   
  487              IF .source_str[.index] GEQ 'a' AND .source_str[.index] LEQ 'z' THEN
  488                 targ_str[.index] = .source_str[.index] - ('a' - 'A')
  489              ELSE
  490                 targ_str[.index] = .source_str[.index];
  491   
  492              index = .index + 1;
  493              END;
  494   
  495   	END;
******
File DSKD$:[IOGEN.SRC]LOAD_DRIVER.OLD;1
  457   	CH$MOVE(.drivernam[dsc$w_length], .drivernam[dsc$a_pointer], lddb[lddb$t_drvnamstr])
  458   	END;
************

Number of difference sections found: 5
Number of difference records found: 41

DIFFERENCES /IGNORE=()/MERGED=1/OUTPUT=DSKD$:[IOGEN.SRC]LOAD_DRIVER.DIF;1-
    DSKD$:[IOGEN.SRC]LOAD_DRIVER.BLI;2-
    DSKD$:[IOGEN.SRC]LOAD_DRIVER.OLD;1
