1,9 → 1,10 |
unit LRLRoutines; |
|
{$codepage utf8} |
{$mode objfpc} |
{$asmmode intel} |
|
unit LRLRoutines; |
|
|
interface |
|
|
86,6 → 87,7 |
KEY_LBRACKET = $1A00; |
KEY_RBRACKET = $1B00; |
KEY_ENTER = $1C00; |
KEY_CTRL = $1D00; |
|
KEY_A = $1E00; |
KEY_S = $1F00; |
200,7 → 202,7 |
LastKeyEvent: Word = $FFFF; |
LastKeyUp : Boolean = True; |
LastKeyDown: Boolean = False; |
AltDown : Boolean = False; |
CtrlDown : Boolean = False; |
ShiftDown : Boolean = False; |
LShiftDown : Boolean = False; |
RShiftDown : Boolean = False; |
272,7 → 274,7 |
begin |
if (ScreenWidth = BUFFER_WIDTH) and (ScreenHeight = BUFFER_HEIGHT) then |
begin |
{¯¥à¥®á ®¤¨ ¢ ®¤¨} |
{перенос один в один} |
B := @ScreenPalBuffer; |
C := ScreenRGBBuffer; |
for I := 0 to BUFFER_HEIGHT - 1 do |
284,7 → 286,7 |
end; |
end else |
begin |
{¬ áèâ ¡¨à®¢ ¨¥} |
{масштабирование} |
XStep := (BUFFER_WIDTH shl 16) div ScreenWidth; |
YStep := (BUFFER_HEIGHT shl 16) div ScreenHeight; |
Horizontal; |
390,7 → 392,7 |
Height := PWord(@FontData + 2)^; |
Table := PWord(@FontData + 4); |
|
{ à áç¥â ¤«¨ë áâப¨ } |
{ расчет длины строки } |
Width := 0; |
for I := 1 to Length(Source) do |
begin |
401,7 → 403,7 |
PWord(@Buffer)^ := Width; |
PWord(@Buffer + 2)^ := Height; |
|
{ ¢ë¢®¤ áâப¨ } |
{ вывод строки } |
X := 0; |
for I := 1 to Length(Source) do |
begin |
534,9 → 536,9 |
LastKeyUp := not LastKeyDown; |
if LastKeyUp then Dec(Result, KEY_UP_BASE); |
|
if Result = KEY_ALT then |
if Result = KEY_CTRL then |
begin |
AltDown := LastKeyDown; |
CtrlDown := LastKeyDown; |
Result := $FFFF; |
end else |
|
554,7 → 556,7 |
Result := $FFFF; |
end else |
|
if AltDown then |
if CtrlDown then |
case Result of |
KEY_1: begin Result := $FFFF; if LastKeyDown then ScreenMode(1); end; |
KEY_2: begin Result := $FFFF; if LastKeyDown then ScreenMode(2); end; |