All:
Does anyone know what the bounds violation is and how to correct it?
run pastest.nmprg
**** Bound violation or range error (TRAPS 12).
ABORT: PASTEST.NMPRG.E3K
NM PROG 348.000058f0 sendfuncmsg+$104
Program terminated in an error state. (CIERR 976)
Here's the Pascal source code:
$SET 'X9=TRUE'$
$IF 'NOT X9'$
$SUBPROGRAM
$ENDIF$
PROGRAM TEST;
type
pa = packed array [1..256] of char;
$IF 'X9'$
var
medev, ilen : shortint;
mmsg : pa;
smsg : string [256];
PROCEDURE WHO; intrinsic;
$ENDIF$
{-------------------------------------------------------------------}
PROCEDURE SENDFUNCMSG ( var ldev: shortint;
var msg: pa;
var len: shortint);
const
imp = 2;
maxmsg = 256;
var
ilen : shortint;
bbuf : string [maxmsg+8];
PROCEDURE GENMSG (setno, error, mask, parm1, parm2, parm3, parm4,
parm5: shortint;
destdev, q1, q2, q3, flags: shortint );
external spl variable;
PROCEDURE GETPRIVMODE; intrinsic;
FUNCTION ASCII:shortint; intrinsic;
begin
if ( len <= maxmsg ) then
begin
bbuf := ' &j000L';
bbuf [1] := chr(27);
ilen := ASCII ( len, -10, bbuf [6]);
strmove ( len, msg, 1, bbuf, 8 );
GETPRIVMODE;
GENMSG ( -1, baddress(bbuf[1]),0,,,,,,ldev,,,,imp);
end;
end;
BEGIN
{---Testcode--------------------------------------------------------}
$IF 'X9'$
WHO (,,,,,,,medev);
smsg := 'Testing #&dBMessages#&d@ over '+
'the bottom function keys!##with CR,LF in message!';
smsg [ 9] := chr(27);
smsg [21] := chr(27);
smsg [56] := chr(13);
smsg [57] := chr(10);
ilen := strlen (smsg);
strmove ( ilen, smsg, 1, mmsg, 1 );
SENDFUNCMSG (medev, mmsg, ilen);
$ENDIF$
END.
TIA Again,
Brian Donaldson.
* To join/leave the list, search archives, change list settings, *
* etc., please visit http://raven.utc.edu/archives/hp3000-l.html *
|