fpc/tests/webtbs/tw28713.pp
pierre f85d7d2591 Fix tw28713 for big endian CPUs
git-svn-id: trunk@48795 -
2021-02-23 22:04:18 +00:00

38 lines
727 B
ObjectPascal

{ %OPT=-O3 }
// Compiled with option -O3 for Win32-I386
type
PWordArray = ^TWordArray;
TWordArray = array [0..1023]of Word;
WordRec = packed record
{$ifdef FPC}
{$ifdef FPC_LITTLE_ENDIAN}
LoByte,HiByte:Byte
{$endif}
{$ifdef FPC_BIG_ENDIAN}
HiByte,LoByte:Byte
{$endif}
{$endif}
end;
var
Buffer:TWordArray;
OldMousePos:LongInt = 0;
ScreenBuffer:Pointer = @Buffer;
procedure Show(ScreenBuffer:Pointer);
begin
WordRec(PWordArray(ScreenBuffer)^[OldMousePos]).HiByte:=(not
WordRec(PWordArray(ScreenBuffer)^[OldMousePos]).HiByte)and $7F
// he forgets to write the result into the array
end;
begin
Buffer[0]:=$0000;
Show(ScreenBuffer);
if Buffer[0]<>$7F00 then
halt(1);
writeln('ok');
end.