From 07c18c8689c808751af591c068b93d3472eced82 Mon Sep 17 00:00:00 2001 From: nickysn Date: Tue, 28 Nov 2017 00:03:19 +0000 Subject: [PATCH] * fixed snapshot building of win16-i8086 in the medium memory model, via the use of FarAddr() git-svn-id: trunk@37630 - --- packages/rtl-console/src/win16/keyboard.pp | 16 ++++++++-------- packages/rtl-console/src/win16/video.pp | 20 ++++++++++---------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/packages/rtl-console/src/win16/keyboard.pp b/packages/rtl-console/src/win16/keyboard.pp index f20a91138f..61a0248dd7 100644 --- a/packages/rtl-console/src/win16/keyboard.pp +++ b/packages/rtl-console/src/win16/keyboard.pp @@ -80,8 +80,8 @@ begin VK_MENU: KbdShiftState:=KbdShiftState or %1000; end; - GetKeyboardState(@KbdState); - charcount:=ToAscii(wParam,Byte(lParam shr 16),@KbdState,@charbuf,0); + GetKeyboardState(FarAddr(KbdState)); + charcount:=ToAscii(wParam,Byte(lParam shr 16),FarAddr(KbdState),FarAddr(charbuf),0); if charcount>0 then for i:=0 to charcount-1 do KbdBufEnqueue((kbPhys shl 24) or charbuf[i] or (KbdShiftState shl 16)); @@ -118,10 +118,10 @@ function SysGetKeyEvent: TKeyEvent; var m: MSG; begin - while KbdBufEmpty and GetMessage(@m,0,0,0) do + while KbdBufEmpty and GetMessage(FarAddr(m),0,0,0) do begin - TranslateMessage(@m); - DispatchMessage(@m); + TranslateMessage(FarAddr(m)); + DispatchMessage(FarAddr(m)); end; if KbdBufEmpty then SysGetKeyEvent:=0 @@ -134,10 +134,10 @@ function SysPollKeyEvent: TKeyEvent; var m: MSG; begin - while PeekMessage(@m,0,0,0,1) do + while PeekMessage(FarAddr(m),0,0,0,1) do begin - TranslateMessage(@m); - DispatchMessage(@m); + TranslateMessage(FarAddr(m)); + DispatchMessage(FarAddr(m)); end; if KbdBufEmpty then SysPollKeyEvent:=0 diff --git a/packages/rtl-console/src/win16/video.pp b/packages/rtl-console/src/win16/video.pp index 4cb3ab5c9f..2830c3997d 100644 --- a/packages/rtl-console/src/win16/video.pp +++ b/packages/rtl-console/src/win16/video.pp @@ -51,9 +51,9 @@ var ch: TVideoCell; CharWidth,CharHeight: SmallInt; begin - dc:=BeginPaint(hwnd,@ps); + dc:=BeginPaint(hwnd,FarAddr(ps)); oldfont:=SelectObject(dc,GetStockObject(OEM_FIXED_FONT)); - GetTextMetrics(dc,@Metrics); + GetTextMetrics(dc,FarAddr(Metrics)); CharWidth:=Metrics.tmMaxCharWidth; CharHeight:=Metrics.tmHeight+Metrics.tmExternalLeading; x1:=ps.rcPaint.left div CharWidth; @@ -76,12 +76,12 @@ begin ch:=videobuf^[y*ScreenWidth+x]; SetTextColor(dc,ColorRefs[(ch shr 8) and 15]); SetBkColor(dc,ColorRefs[(ch shr 12) and 15]); - TextOut(dc,x*CharWidth,y*CharHeight,@ch,1); + TextOut(dc,x*CharWidth,y*CharHeight,FarAddr(ch),1); end; SetTextColor(dc,oldtextcolor); SetBkColor(dc,oldbkcolor); SelectObject(dc,oldfont); - EndPaint(hwnd,@ps); + EndPaint(hwnd,FarAddr(ps)); end; function MainWndProc(hwnd: HWND; msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; export; @@ -115,7 +115,7 @@ begin wc.hbrBackground:=GetStockObject(BLACK_BRUSH); wc.lpszMenuName:=nil; wc.lpszClassName:='FPCConsoleWndClass'; - if not RegisterClass(wc) then + if not RegisterClass(FarAddr(wc)) then begin MessageBox(0,'Error registering window class',nil,MB_OK or MB_ICONHAND or MB_TASKMODAL); Halt(1); @@ -149,10 +149,10 @@ procedure ProcessMessages; var m: MSG; begin - while PeekMessage(@m,0,0,0,1) do + while PeekMessage(FarAddr(m),0,0,0,1) do begin - TranslateMessage(@m); - DispatchMessage(@m); + TranslateMessage(FarAddr(m)); + DispatchMessage(FarAddr(m)); end; end; @@ -182,7 +182,7 @@ var begin dc:=GetDC(VideoWindow); oldfont:=SelectObject(dc,GetStockObject(OEM_FIXED_FONT)); - GetTextMetrics(dc,@Metrics); + GetTextMetrics(dc,FarAddr(Metrics)); CharWidth:=Metrics.tmMaxCharWidth; CharHeight:=Metrics.tmHeight+Metrics.tmExternalLeading; oldtextcolor:=GetTextColor(dc); @@ -196,7 +196,7 @@ begin oldvideobuf^[y*ScreenWidth+x]:=videobuf^[y*ScreenWidth+x]; SetTextColor(dc,ColorRefs[(ch shr 8) and 15]); SetBkColor(dc,ColorRefs[(ch shr 12) and 15]); - TextOut(dc,x*CharWidth,y*CharHeight,@ch,1); + TextOut(dc,x*CharWidth,y*CharHeight,FarAddr(ch),1); end; end; SetTextColor(dc,oldtextcolor);