[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference helix::vaxeln

Title:VAXELN
Notice:Support - 2.*; Kits - 3.*
Moderator:HELIX::MIANOLO
Created:Fri Feb 08 1991
Last Modified:Wed Jun 04 1997
Last Successful Update:Fri Jun 06 1997
Number of topics:770
Total number of notes:2721

763.0. "FYI : patch to apply to ADA$ELNRTL.EXE" by SOS6::VOUTERS (Philippe VOUTERS, Evry (France)) Mon Feb 10 1997 08:51

Dear Sir,

I have definitely found the error that caused a DAP protocol error in your
ADA program. The error comes from the VAXELN-ADA RTL thaqt opened the file
without specifying a DAP buffer size at DAP$OPEN time. Therefore DAP was
taking, without the DAP header, a default buffersize of 4096 bytes which
was not enough for case 1 and 2 of your program below. Finally, as the
buffer used by the FILSERVER was 5120 bytes (case 2) and the user DAP buffer
was 4096 bytes, DAP on the user side raised the error.

In order to enable you to run, please find a patch to the ADA$ELNRTL.EXE.
Please note that this is NO LONGER supported and is provided as is.

Yours sincerely,
Philippe Vouters
-----------------------------------------------------------------------------
$ PATCH eln$:ADA$ELNRTL.EXE
replace/inst
75EE
' CLRL    -(SP)'
' PUSHL   B^10(R6)'
' MOVZWL  B^14(R6),-(SP)'
exit
' JMP L^12140'
' NOP'
' NOP'
' NOP'
exit
replace/inst
12140
'HALT'
'HALT'
'HALT'
'HALT'
'HALT'
'HALT'
'HALT'
'HALT'
'HALT'
'HALT'
'HALT'
'HALT'
'HALT'
'HALT'
'HALT'
'HALT'
'HALT'
'HALT'
'HALT'
'HALT'
'HALT'
'HALT'
'HALT'
'HALT'
'HALT'
'HALT'
exit
' PUSHL   B^3C(SP)'
' PUSHL   B^10(R6)'
' MOVZWL  B^14(R6),-(SP)'
' JMP l^75F7'
exit
update
exit
-------------------------------------------------------------------------------
---

with text_io;
with direct_io;

procedure record_test is

--(2)  Tested OK with ADA$ELNRTL.EXE patch
--(2)    type type_5_type is array ( 1 .. 5119 ) of character;
--(1)  Tested OK with ADA$ELNRTL.EXE patch
--(1)    type type_5_type is array ( 1 .. 5120 ) of character;
--(3)  Tested OK with ADA$ELNRTL.EXE patch
    type type_5_type is array ( 1 .. 256 ) of character;
  
    package type_5_io is new direct_io ( type_5_type  ) ;


    file_5 : type_5_io.file_type;

    type_5 : type_5_type;

    location : CONSTANT string := "dua0:[000000]";

begin

    text_io.put_line ("RECORD_TEST : START");

    type_5_io.CREATE (
           FILE => file_5,
           NAME => location & "file_5.dat",
--(1 or 2)	   FORM => "FILE; ORGANIZATION SEQUENTIAL;");
--(3)
	   FORM => "FILE; ORGANIZATION SEQUENTIAL;" &
--(3)
			"RECORD; SIZE 256;FORMAT FIXED;");
    for i in 1 .. 3 loop
     type_5_io.WRITE ( FILE => file_5, ITEM => type_5);
    end loop;
--(3)
    type_5_io.SET_INDEX (FILE=> file_5,TO => 1);
--(3)
    type_5_io.read ( FILE => file_5, ITEM => type_5,FROM => 1);
    type_5_io.CLOSE (FILE => file_5);

    -- read test 

    text_io.put_line ( "RECORD_TEST : READ TEST");

    type_5_io.OPEN (
           FILE => FILE_5,
           MODE => type_5_io.inout_file,
           NAME => location & "file_5.dat",
	   FORM => "FILE; ORGANIZATION SEQUENTIAL;" &
--(1)			"RECORD; SIZE 5120;FORMAT FIXED;");
--(2)			"RECORD; SIZE 5119;FORMAT FIXED;");
--(3)
			"RECORD; SIZE 256;FORMAT FIXED;");

    for i in 1 .. 3 loop
     type_5_io.read ( FILE => file_5, ITEM => type_5);
    end loop;

    type_5_io.CLOSE (FILE => file_5);

    text_io.put_line ("RECORD_TEST : NORMAL END");

end record_test;

---

T.RTitleUserPersonal
Name
DateLines