From f77ebd28fc5702437df77d66938ef51b4c298315 Mon Sep 17 00:00:00 2001 From: Freeman Date: Sat, 23 May 2020 16:32:30 +0300 Subject: [PATCH] KolibriOS unit formatted to the Borland/Embarcadero style, migrated to native Delphi types --- Examples/ColorButtons/ColorButtons.dpr | 2 +- Examples/DrawImage/DrawImage.dpr | 2 +- Examples/DrawImageEx/DrawImageEx.dpr | 14 +- Examples/DrawText/DrawText.dpr | 2 +- Examples/GetPixel/GetPixel.dpr | 2 +- Examples/GetPointOwner/GetPointOwner.dpr | 6 +- Examples/Hello/Hello.dpr | 2 +- Examples/ReadFolder/ReadFolder.dpr | 25 +- Examples/Screenshot/Screenshot.dpr | 2 +- Examples/SetCursor/SetCursor.dpr | 12 +- Examples/SetPixel/SetPixel.dpr | 2 +- Examples/SetWindowPos/SetWindowPos.dpr | 6 +- Lib/KolibriOS.pas | 6975 +++++++++++----------- 13 files changed, 3502 insertions(+), 3550 deletions(-) diff --git a/Examples/ColorButtons/ColorButtons.dpr b/Examples/ColorButtons/ColorButtons.dpr index d1ac35a..f8c342f 100644 --- a/Examples/ColorButtons/ColorButtons.dpr +++ b/Examples/ColorButtons/ColorButtons.dpr @@ -32,7 +32,7 @@ begin begin BeginDraw; DrawWindow(Left, Top, Right, Bottom, 'Color Buttons', $00FFFFFF, - WS_SKINNED_FIXED + WS_COORD_CLIENT + WS_CAPTION, CAPTION_MOVABLE); + WS_SKINNED_FIXED + WS_CLIENT_COORDS + WS_CAPTION, CAPTION_MOVABLE); DrawButton(10, 20, 50, 30, COLOR_RED, 0, RED_BUTTON); DrawButton(70, 20, 50, 30, COLOR_GREEN, 0, GREEN_BUTTON); DrawButton(10, 60, 50, 30, COLOR_BLUE, 0, BLUE_BUTTON); diff --git a/Examples/DrawImage/DrawImage.dpr b/Examples/DrawImage/DrawImage.dpr index 078ffe2..2ae615d 100644 --- a/Examples/DrawImage/DrawImage.dpr +++ b/Examples/DrawImage/DrawImage.dpr @@ -81,7 +81,7 @@ begin begin BeginDraw; DrawWindow(Left, Top, Right, Bottom, 'Draw Image', $00FFFFFF, - WS_SKINNED_FIXED + WS_COORD_CLIENT + WS_CAPTION, CAPTION_MOVABLE); + WS_SKINNED_FIXED + WS_CLIENT_COORDS + WS_CAPTION, CAPTION_MOVABLE); with TargaFile.Header do DrawImage(Image^, 30, 20, Width, Height); EndDraw; diff --git a/Examples/DrawImageEx/DrawImageEx.dpr b/Examples/DrawImageEx/DrawImageEx.dpr index 9ee08fa..ab232c2 100644 --- a/Examples/DrawImageEx/DrawImageEx.dpr +++ b/Examples/DrawImageEx/DrawImageEx.dpr @@ -85,8 +85,8 @@ begin SetCurrentDirectory(AppPath^); GetFileAttributes(Picture1, FileAttributes); - BitmapFile1 := HeapAllocate(FileAttributes.SizeLo); - ReadFile(Picture1, BitmapFile1^, FileAttributes.SizeLo, 0, 0, BytesRead); + BitmapFile1 := HeapAllocate(FileAttributes.Size); + ReadFile(Picture1, BitmapFile1^, FileAttributes.Size, 0, BytesRead); with BitmapFile1^, BitmapFileHeader, BitmapInfoHeader do begin @@ -95,8 +95,8 @@ begin end; GetFileAttributes(Picture2, FileAttributes); - BitmapFile2 := HeapAllocate(FileAttributes.SizeLo); - ReadFile(Picture2, BitmapFile2^, FileAttributes.SizeLo, 0, 0, BytesRead); + BitmapFile2 := HeapAllocate(FileAttributes.Size); + ReadFile(Picture2, BitmapFile2^, FileAttributes.Size, 0, BytesRead); with BitmapFile2^, BitmapFileHeader, BitmapInfoHeader do begin @@ -105,8 +105,8 @@ begin end; GetFileAttributes(Picture3, FileAttributes); - BitmapFile3 := HeapAllocate(FileAttributes.SizeLo); - ReadFile(Picture3, BitmapFile3^, FileAttributes.SizeLo, 0, 0, BytesRead); + BitmapFile3 := HeapAllocate(FileAttributes.Size); + ReadFile(Picture3, BitmapFile3^, FileAttributes.Size, 0, BytesRead); with BitmapFile3^, BitmapFileHeader, BitmapInfoHeader do begin @@ -129,7 +129,7 @@ begin BeginDraw; DrawWindow(Left, Top, Right, Bottom, 'Draw Image Extended', $00FFFFFF, - WS_SKINNED_FIXED + WS_COORD_CLIENT + WS_CAPTION, CAPTION_MOVABLE); + WS_SKINNED_FIXED + WS_CLIENT_COORDS + WS_CAPTION, CAPTION_MOVABLE); (* these image files was saved with 'flip row order' parameter *) (* therefore they have negative biHeight field *) diff --git a/Examples/DrawText/DrawText.dpr b/Examples/DrawText/DrawText.dpr index c1f154c..0dd0a18 100644 --- a/Examples/DrawText/DrawText.dpr +++ b/Examples/DrawText/DrawText.dpr @@ -27,7 +27,7 @@ begin CurY := 0; BeginDraw; DrawWindow(Left, Top, Right, Bottom, 'Get Key', $00FFFFFF, - WS_SKINNED_FIXED + WS_COORD_CLIENT + WS_CAPTION, CAPTION_MOVABLE); + WS_SKINNED_FIXED + WS_CLIENT_COORDS + WS_CAPTION, CAPTION_MOVABLE); EndDraw; end; KEY_EVENT: diff --git a/Examples/GetPixel/GetPixel.dpr b/Examples/GetPixel/GetPixel.dpr index 938ffcf..2bc21ab 100644 --- a/Examples/GetPixel/GetPixel.dpr +++ b/Examples/GetPixel/GetPixel.dpr @@ -33,7 +33,7 @@ begin with Window do DrawWindow(Left, Top, Right, Bottom, 'Get Pixel', $00FFFFFF, - WS_SKINNED_FIXED + WS_COORD_CLIENT + WS_CAPTION, CAPTION_MOVABLE); + WS_SKINNED_FIXED + WS_CLIENT_COORDS + WS_CAPTION, CAPTION_MOVABLE); with Rectangle do begin diff --git a/Examples/GetPointOwner/GetPointOwner.dpr b/Examples/GetPointOwner/GetPointOwner.dpr index d79647d..a152e0e 100644 --- a/Examples/GetPointOwner/GetPointOwner.dpr +++ b/Examples/GetPointOwner/GetPointOwner.dpr @@ -26,7 +26,7 @@ begin (* clear unnecessary part of possible previous name by white rectangle *) DrawRectangle(64 + I * CHAR_WIDTH, 16, (SizeOf(ThreadInfo.Name) - I) * CHAR_WIDTH, CHAR_HEIGHT, $00FFFFFF); (* draw current name *) - DrawText(64, 16, ThreadInfo.Name, $00000000, $00FFFFFF, DT_CP866_8X16 + DT_FILL_OPAQUE + DT_ZSTRING, 0); + DrawText(64, 16, ThreadInfo.Name, $00000000, $00FFFFFF, DT_CP866_8x16 + DT_FILL_OPAQUE + DT_ZSTRING, 0); end; const @@ -51,8 +51,8 @@ begin begin BeginDraw; DrawWindow(Left, Top, Width, Height, 'Get Point Owner', $00FFFFFF, - WS_SKINNED_FIXED + WS_COORD_CLIENT + WS_CAPTION, CAPTION_MOVABLE); - DrawText(16, 16, 'Name:', $00000000, $00FFFFFF, DT_CP866_8X16 + DT_ZSTRING, 0); + WS_SKINNED_FIXED + WS_CLIENT_COORDS + WS_CAPTION, CAPTION_MOVABLE); + DrawText(16, 16, 'Name:', $00000000, $00FFFFFF, DT_CP866_8x16 + DT_ZSTRING, 0); EndDraw; end; BUTTON_EVENT: diff --git a/Examples/Hello/Hello.dpr b/Examples/Hello/Hello.dpr index 32c11ba..95c2b50 100644 --- a/Examples/Hello/Hello.dpr +++ b/Examples/Hello/Hello.dpr @@ -21,7 +21,7 @@ begin begin BeginDraw; DrawWindow(Left, Top, Right, Bottom, 'Hello!', $00FFFFFF, - WS_SKINNED_FIXED + WS_COORD_CLIENT + WS_CAPTION, CAPTION_MOVABLE); + WS_SKINNED_FIXED + WS_CLIENT_COORDS + WS_CAPTION, CAPTION_MOVABLE); EndDraw; end; KEY_EVENT: diff --git a/Examples/ReadFolder/ReadFolder.dpr b/Examples/ReadFolder/ReadFolder.dpr index b49dafb..7d54d34 100644 --- a/Examples/ReadFolder/ReadFolder.dpr +++ b/Examples/ReadFolder/ReadFolder.dpr @@ -3,6 +3,11 @@ program ReadFolderApp; uses KolibriOS; +type + TInt64Rec = packed record + Lo, Hi: LongWord; + end; + var hConsole: Pointer; ConsoleInit: procedure(WndWidth, WndHeight, ScrWidth, ScrHeight: LongWord; Caption: PKolibriChar); stdcall; @@ -41,17 +46,17 @@ begin begin with FolderInformation, FileInformation[0] do begin - printf('FileName = %s'#10, FileName); - with FileAttributes do + printf('FileName = %s'#10, Name); + with Attributes do begin - printf('SizeHi = %u'#10, SizeHi); - printf('SizeLo = %u'#10, SizeLo); - with modifyDate do printf('modifyDate = %02d.%02d.%02d'#10, Day, Month, Year); - with modifyTime do printf('modifyTime = %02d:%02d:%02d'#10, Hours, Minutes, Seconds); - with AccessDate do printf('AccessDate = %02d.%02d.%02d'#10, Day, Month, Year); - with AccessTime do printf('AccessTime = %02d:%02d:%02d'#10, Hours, Minutes, Seconds); - with CreationDate do printf('CreationDate = %02d.%02d.%02d'#10, Day, Month, Year); - with CreationTime do printf('CreationTime = %02d:%02d:%02d'#10, Hours, Minutes, Seconds); + printf('SizeLo = %u'#10, TInt64Rec(Size).Lo); + printf('SizeHi = %u'#10, TInt64Rec(Size).Hi); + with Modify.Date do printf('modifyDate = %02d.%02d.%02d'#10, Day, Month, Year); + with Modify.Time do printf('modifyTime = %02d:%02d:%02d'#10, Hours, Minutes, Seconds); + with Access.Date do printf('AccessDate = %02d.%02d.%02d'#10, Day, Month, Year); + with Access.Time do printf('AccessTime = %02d:%02d:%02d'#10, Hours, Minutes, Seconds); + with Creation.Date do printf('CreationDate = %02d.%02d.%02d'#10, Day, Month, Year); + with Creation.Time do printf('CreationTime = %02d:%02d:%02d'#10, Hours, Minutes, Seconds); printf('Attributes = 0x%08x'#10, Attributes); end; end; diff --git a/Examples/Screenshot/Screenshot.dpr b/Examples/Screenshot/Screenshot.dpr index 896373a..9bb3acb 100644 --- a/Examples/Screenshot/Screenshot.dpr +++ b/Examples/Screenshot/Screenshot.dpr @@ -81,7 +81,7 @@ begin begin BeginDraw; DrawWindow(Left, Top, Right, Bottom, 'Screenshot', $00FFFFFF, - WS_SKINNED_FIXED + WS_COORD_CLIENT + WS_CAPTION + WS_FILL_TRANSPARENT, CAPTION_MOVABLE); + WS_SKINNED_FIXED + WS_CLIENT_COORDS + WS_CAPTION + WS_TRANSPARENT_FILL, CAPTION_MOVABLE); with Screen do DrawImage(Preview^, 0, 0, Width div 2, Height div 2); EndDraw; diff --git a/Examples/SetCursor/SetCursor.dpr b/Examples/SetCursor/SetCursor.dpr index 3a271fa..1de3d04 100644 --- a/Examples/SetCursor/SetCursor.dpr +++ b/Examples/SetCursor/SetCursor.dpr @@ -104,14 +104,14 @@ begin BeginDraw; DrawWindow(Left, Top, Right, Bottom, 'Set Cursor', $00FFFFFF, - WS_SKINNED_FIXED + WS_COORD_CLIENT + WS_CAPTION, CAPTION_MOVABLE); + WS_SKINNED_FIXED + WS_CLIENT_COORDS + WS_CAPTION, CAPTION_MOVABLE); - DrawText( 8, 8, 'Click on picture buttons', 0, $00FFFFFF, DT_CP866_8X16 + DT_FILL_OPAQUE + DT_ZSTRING, 0); - DrawText( 8, 25, 'below to select cursor:', 0, $00FFFFFF, DT_CP866_8X16 + DT_FILL_OPAQUE + DT_ZSTRING, 0); + DrawText( 8, 8, 'Click on picture buttons', 0, $00FFFFFF, DT_CP866_8x16 + DT_FILL_OPAQUE + DT_ZSTRING, 0); + DrawText( 8, 25, 'below to select cursor:', 0, $00FFFFFF, DT_CP866_8x16 + DT_FILL_OPAQUE + DT_ZSTRING, 0); - DrawButton(8, 40, 32, 32, 0, BS_FILL_TRANSPARENT, ARROW_BUTTON); - DrawButton(52, 40, 32, 32, 0, BS_FILL_TRANSPARENT, POINT_BUTTON); - DrawButton(96, 40, 32, 32, 0, BS_FILL_TRANSPARENT, WAIT_BUTTON ); + DrawButton(8, 40, 32, 32, 0, BS_TRANSPARENT_FILL, ARROW_BUTTON); + DrawButton(52, 40, 32, 32, 0, BS_TRANSPARENT_FILL, POINT_BUTTON); + DrawButton(96, 40, 32, 32, 0, BS_TRANSPARENT_FILL, WAIT_BUTTON ); Blit(ArrowBitmap^, 0, 0, 32, 32, 8, 40, 32, 32, 32*4, BLIT_CLIENT_RELATIVE); Blit(PointBitmap^, 0, 0, 32, 32, 52, 40, 32, 32, 32*4, BLIT_CLIENT_RELATIVE); diff --git a/Examples/SetPixel/SetPixel.dpr b/Examples/SetPixel/SetPixel.dpr index 7fe07b6..83f67e4 100644 --- a/Examples/SetPixel/SetPixel.dpr +++ b/Examples/SetPixel/SetPixel.dpr @@ -23,7 +23,7 @@ begin BeginDraw; DrawWindow(Left, Top, Right, Bottom, 'Set Pixel', $00FFFFFF, - WS_SKINNED_FIXED + WS_COORD_CLIENT + WS_CAPTION, CAPTION_MOVABLE); + WS_SKINNED_FIXED + WS_CLIENT_COORDS + WS_CAPTION, CAPTION_MOVABLE); for Y := 0 to 50 do for X := 0 to 50 do diff --git a/Examples/SetWindowPos/SetWindowPos.dpr b/Examples/SetWindowPos/SetWindowPos.dpr index 0f4bc12..13af222 100644 --- a/Examples/SetWindowPos/SetWindowPos.dpr +++ b/Examples/SetWindowPos/SetWindowPos.dpr @@ -26,7 +26,7 @@ begin with ThreadInfo.Window do begin if Boolean(ControlKeyState and (RIGHT_CTRL_PRESSED or LEFT_CTRL_PRESSED)) then - case Key.Scan of + case Key.ScanCode of KS_UP: Dec(Bottom, MOVE_STEP); KS_DOWN: @@ -37,7 +37,7 @@ begin Inc(Right, MOVE_STEP); end else - case Key.Scan of + case Key.ScanCode of KS_UP: Dec(Top, MOVE_STEP); KS_DOWN: @@ -69,7 +69,7 @@ begin begin BeginDraw; DrawWindow(Left, Top, Right, Bottom, 'Set Window Position', $00FFFFFF, - WS_SKINNED_SIZABLE + WS_COORD_CLIENT + WS_CAPTION, CAPTION_MOVABLE); + WS_SKINNED_SIZABLE + WS_CLIENT_COORDS + WS_CAPTION, CAPTION_MOVABLE); DrawText(24, 26, 'Use arrow keys(Left, Right, Up, Down)', $00000000, $00FFFFFF, DT_ZSTRING, 0); DrawText(24, 35, 'to move the window.', $00000000, $00FFFFFF, DT_ZSTRING, 0); DrawText(24, 44, 'Use Ctrl+arrow keys to resize window.', $00000000, $00FFFFFF, DT_ZSTRING, 0); diff --git a/Lib/KolibriOS.pas b/Lib/KolibriOS.pas index 93ea209..c6aca6b 100644 --- a/Lib/KolibriOS.pas +++ b/Lib/KolibriOS.pas @@ -3,108 +3,109 @@ KolibriOS system functions and definitions ************************************************************) -Unit KolibriOS; -(* -------------------------------------------------------- *) -Interface -(* -------------------------------------------------------- *) -Type +unit KolibriOS; + +interface + +type KolibriChar = AnsiChar; PKolibriChar = PAnsiChar; PPKolibriChar = PPAnsiChar; {$IF CompilerVersion < 15} - QuadWord = Int64; -{$ELSE} - QuadWord = UInt64; + UInt64 = Int64; {$IFEND} - TSize = Packed Record + TSize = packed record Height: Word; Width: Word; - End; + end; - TPoint = Packed Record + TPoint = packed record Y: SmallInt; X: SmallInt; - End; + end; - TRect = Packed Record + TRect = packed record Left: LongInt; Top: LongInt; Right: LongInt; Bottom: LongInt; - End; + end; - TBox = Packed Record + TBox = packed record Left: LongInt; Top: LongInt; Width: LongWord; Height: LongWord; - End; + end; - TSystemDate = Packed Record + TSystemDate = packed record Year: Byte; Month: Byte; Day: Byte; Zero: Byte; - End; + end; - TSystemTime = Packed Record + TSystemTime = packed record Hours: Byte; Minutes: Byte; Seconds: Byte; Zero: Byte; - End; + end; - TThreadInfo = Packed Record + TThreadInfo = packed record CpuUsage: LongWord; WinStackPos: Word; - reserved0: Word; - reserved1: Word; - Name: Packed Array[0..10] Of KolibriChar; - reserved2: Byte; + Reserved0: Word; + Reserved1: Word; + Name: array[0..10] of KolibriChar; + Reserved2: Byte; MemAddress: LongWord; MemUsage: LongWord; Identifier: LongWord; Window: TRect; ThreadState: Word; - reserved3: Word; + Reserved3: Word; Client: TRect; WindowState: Byte; EventMask: LongWord; KeyboardMode: Byte; - reserved4: Packed Array[0..947] Of Byte; - End; + Reserved4: array[0..947] of Byte; + end; + + TKeyboardInputMode = (kmChar, kmScan); - TKeyboardInputMode = (kmASCII, kmSCAN); - TKeyboardInputFlag = (kfCode, kfEmpty, kfHotKey); - TKeyboardInput = Packed Record + TKeyboardInput = packed record Flag: TKeyboardInputFlag; Code: KolibriChar; - Case TKeyboardInputMode Of - kmASCII: (Scan: KolibriChar); - kmSCAN: ( - Case TKeyboardInputFlag Of - kfCode: (); - kfHotKey: (Control: Word); - ); - End; - - TButtonInput = Packed Record + case TKeyboardInputMode of + kmChar: + (ScanCode: KolibriChar); + kmScan: + (case TKeyboardInputFlag of + kfCode: + (); + kfHotKey: + (Control: Word); + ); + end; + + TButtonInput = packed record MouseButton: Byte; ID: Word; HiID: Byte; - End; - - TKernelVersion = Packed Record - A, B, C, D: Byte; - reserved: Byte; - Revision: LongWord; - End; + end; - TRAMInfo = Packed Record + TKernelVersion = packed record + A, B, C, D: Byte; + Reserved: Byte; + Revision: LongWord; + end; + + TRAMInfo = packed record AvailablePages: LongWord; FreePages: LongWord; PageFaults: LongWord; @@ -114,74 +115,75 @@ Type FreeBlocks: LongWord; MaxFreeBlock: LongWord; MaxAllocatedBlock: LongWord; - End; + end; - TKeyboardLayout = Packed Array[0..127] Of KolibriChar; + TKeyboardLayout = array[0..127] of KolibriChar; - TCtrlDriver = Packed Record + TCtrlDriver = packed record Handle: LongWord; Func: LongWord; InputData: Pointer; InputDataSize: LongWord; OutputData: Pointer; OutputDataSize: LongWord; - End; + end; - TFileDate = Packed Record + TFileDate = packed record Day: Byte; Month: Byte; Year: Word; - End; + end; - TFileTime = Packed Record + TFileTime = packed record Seconds: Byte; Minutes: Byte; Hours: Byte; Zero: Byte; - End; + end; - TFileAttributes = Packed Record + TFileDateTime = packed record + Time: TFileTime; + Date: TFileDate; + end; + + TFileAttributes = packed record Attributes: LongWord; Flags: LongWord; - CreationTime: TFileTime; - CreationDate: TFileDate; - AccessTime: TFileTime; - AccessDate: TFileDate; - ModifyTime: TFileTime; - ModifyDate: TFileDate; - SizeLo: LongWord; - SizeHi: LongWord; - End; + Creation: TFileDateTime; + Access: TFileDateTime; + Modify: TFileDateTime; + Size: UInt64; + end; - TFileInformation = Packed Record - FileAttributes: TFileAttributes; - FileName: Array[0..255] Of KolibriChar; - reserved: Array[0..7] Of Byte; - End; - - TFileInformationW = Packed Record - FileAttributes: TFileAttributes; - FileName: Array[0..255] Of WideChar; - reserved: Array[0..7] Of Byte; - End; - - TFolderInformation = Packed Record + TFileInformation = packed record + Attributes: TFileAttributes; + Name: array[0..255] of KolibriChar; + Reserved: array[0..7] of Byte; + end; + + TFileInformationW = packed record + Attributes: TFileAttributes; + Name: array[0..255] of WideChar; + Reserved: array[0..7] of Byte; + end; + + TFolderInformation = packed record Version: LongWord; BlockCount: LongWord; FileCount: LongWord; - reserved: Array[0..19] Of Byte; - FileInformation: Array[0..0] Of TFileInformation; - End; - - TFolderInformationW = Packed Record + Reserved: array[0..19] of Byte; + FileInformation: array[0..0] of TFileInformation; + end; + + TFolderInformationW = packed record Version: LongWord; BlockCount: LongWord; FileCount: LongWord; - reserved: Array[0..19] Of Byte; - FileInformation: Array[0..0] Of TFileInformationW; - End; - - TStandardColors = Packed Record + Reserved: array[0..19] of Byte; + FileInformation: array[0..0] of TFileInformationW; + end; + + TStandardColors = packed record Frames: LongWord; Grab: LongWord; Work3DDark: LongWord; @@ -192,21 +194,21 @@ Type WorkButtonText: LongWord; WorkText: LongWord; WorkGraph: LongWord; - End; + end; - TSockAddr = Packed Record + TSockAddr = packed record Family: Word; - Data: Packed Array[0..13] Of Byte; - End; + Data: array[0..13] of Byte; + end; - TOptStruct = Packed Record + TOptStruct = packed record Level: LongWord; OptName: LongWord; OptLength: LongWord; - Options: Packed Array[0..0] Of Byte - End; + Options: array[0..0] of Byte + end; - TThreadContext = Packed Record + TThreadContext = packed record EIP: LongWord; EFlags: LongWord; EAX: LongWord; @@ -217,55 +219,53 @@ Type EBP: LongWord; ESI: LongWord; EDI: LongWord; - End; + end; - TSignalBuffer = Packed Record + TSignalBuffer = packed record ID: LongWord; - Data: Packed Array[0..19] Of Byte; - End; + Data: array[0..19] of Byte; + end; - TIPCMessage = Packed Record + TIPCMessage = packed record ID: LongWord; Length: LongWord; - Data: Packed Array[0..0] Of Byte; - End; + Data: array[0..0] of Byte; + end; - TIPCBuffer = Packed Record + TIPCBuffer = packed record Lock: LongWord; CurrentSize: LongWord; - Data: Packed Array[0..0] Of TIPCMessage; - End; + Data: array[0..0] of TIPCMessage; + end; - TDebugMessage = Packed Record + TDebugMessage = packed record Code: LongWord; ID: LongWord; Data: LongWord; - End; + end; - TDebugBuffer = Packed Record + TDebugBuffer = packed record TotalSize: LongWord; CurrentSize: LongWord; - Buffer: Packed Array[0..0] Of TDebugMessage; - End; + Buffer: array[0..0] of TDebugMessage; + end; -(* -------------------------------------------------------- *) -Const - - (* Window styles *) +const + // Window styles WS_SKINNED_FIXED = $4000000; WS_SKINNED_SIZABLE = $3000000; WS_FIXED = $0000000; WS_SIZABLE = $2000000; - WS_FILL_TRANSPARENT = $40000000; - WS_FILL_GRADIENT = $80000000; - WS_COORD_CLIENT = $20000000; + WS_TRANSPARENT_FILL = $40000000; + WS_GRADIENT_FILL = $80000000; + WS_CLIENT_COORDS = $20000000; WS_CAPTION = $10000000; - (* Caption styles *) + // Caption styles CAPTION_MOVABLE = $00000000; CAPTION_NONMOVABLE = $01000000; - (* Events *) + // Events REDRAW_EVENT = 1; KEY_EVENT = 2; BUTTON_EVENT = 3; @@ -275,7 +275,7 @@ Const NETWORK_EVENT = 8; DEBUG_EVENT = 9; - (* Event Mask Constants *) + // Event Mask constants EM_REDRAW = $001; EM_KEY = $002; EM_BUTTON = $004; @@ -285,256 +285,255 @@ Const EM_NETWORK = $080; EM_DEBUG = $100; - (* Size multipliers for DrawText *) - DT_X1 = $0000000; - DT_X2 = $1000000; - DT_X3 = $2000000; - DT_X4 = $3000000; - DT_X5 = $4000000; - DT_X6 = $5000000; - DT_X7 = $6000000; - DT_X8 = $7000000; + // Size multipliers for DrawText + DT_x1 = $0000000; + DT_x2 = $1000000; + DT_x3 = $2000000; + DT_x4 = $3000000; + DT_x5 = $4000000; + DT_x6 = $5000000; + DT_x7 = $6000000; + DT_x8 = $7000000; - (* Charset specifiers for DrawText *) - DT_CP866_6X9 = $00000000; - DT_CP866_8X16 = $10000000; - DT_UTF_16LE_8X16 = $20000000; - DT_UTF_8_8X16 = $30000000; + // Charset specifiers for DrawText + DT_CP866_6x9 = $00000000; + DT_CP866_8x16 = $10000000; + DT_UTF16LE_8x16 = $20000000; + DT_UTF8_8x16 = $30000000; - (* Fill styles for DrawText *) - DT_FILL_TRANSPARENT = $00000000; + // Fill styles for DrawText + DT_TRANSPARENT_FILL = $00000000; DT_FILL_OPAQUE = $40000000; - (* Draw zero terminated string for DrawText *) + // Draw zero terminated string for DrawText DT_ZSTRING = $80000000; - (* Button styles *) - BS_FILL_TRANSPARENT = $40000000; + // Button styles + BS_TRANSPARENT_FILL = $40000000; BS_NO_FRAME = $20000000; - (* SharedMemoryOpen open\access flags *) + // OpenSharedMemory open\access flags SHM_OPEN = $00; SHM_OPEN_ALWAYS = $04; SHM_CREATE = $08; SHM_READ = $00; SHM_WRITE = $01; - (* KeyboardLayout flags *) + // KeyboardLayout flags KBL_NORMAL = 1; KBL_SHIFT = 2; KBL_ALT = 3; - (* SystemShutdown parameters *) + // SystemShutdown parameters SHUTDOWN_TURNOFF = 2; SHUTDOWN_REBOOT = 3; SHUTDOWN_RESTART = 4; - (* Blit flags *) + // Blit flags BLIT_CLIENT_RELATIVE = $20000000; -(* -------------------------------------------------------- *) -{-1} Procedure TerminateThread; StdCall; -{0} Procedure DrawWindow(Left, Top, Right, Bottom: Integer; Caption: PKolibriChar; BackColor, Style, CapStyle: LongWord); StdCall; -{1} Procedure SetPixel(X, Y: Integer; Color: LongWord); StdCall; -{2} Function GetKey: TKeyboardInput; StdCall; -{3} Function GetSystemTime: TSystemTime; StdCall; -{4} Procedure DrawText(X, Y: Integer; Text: PKolibriChar; ForeColor, BackColor, Flags, Count: LongWord); StdCall; -{5} Procedure Sleep(Time: LongWord); StdCall; +{-1} procedure TerminateThread; stdcall; +{0} procedure DrawWindow(Left, Top, Right, Bottom: LongInt; Caption: PKolibriChar; BackColor, Style, CapStyle: LongWord); stdcall; +{1} procedure SetPixel(X, Y: LongInt; Color: LongWord); stdcall; +{2} function GetKey: TKeyboardInput; stdcall; +{3} function GetSystemTime: TSystemTime; stdcall; +{4} procedure DrawText(X, Y: LongInt; Text: PKolibriChar; ForeColor, BackColor, Flags, Count: LongWord); stdcall; +{5} procedure Sleep(Time: LongWord); stdcall; {6} {UNDEFINED} -{7} Procedure DrawImage(Const Image; X, Y: Integer; Width, Height: LongWord); StdCall; -{8} Procedure DrawButton(Left, Top, Right, Bottom: Integer; BackColor, Style, ID: LongWord); StdCall; -{8} Procedure DeleteButton(ID: LongWord); StdCall; -{9} Function GetThreadInfo(Slot: LongWord; Var Buffer: TThreadInfo): LongWord; StdCall; -{10} Function WaitEvent: LongWord; StdCall; -{11} Function CheckEvent: LongWord; StdCall; -{12.1} Procedure BeginDraw; StdCall; -{12.2} Procedure EndDraw; StdCall; -{13} Procedure DrawRectangle(X, Y: Integer; Width, Height: LongWord; Color: LongWord); StdCall; -{14} Function GetScreenMax: TPoint; StdCall; -{15.1} Procedure SetBackgroundSize(Width, Height: LongWord); StdCall; -{15.2} Procedure SetBackgroundPixel(X, Y: Integer; Color: LongWord); StdCall; -{15.3} Procedure DrawBackground; StdCall; -{15.4} Procedure SetBackgroundDrawMode(DrawMode: LongWord); StdCall; -{15.5} Procedure DrawBackgroundImage(Const Image; X, Y: Integer; Width, Height: LongWord); StdCall; -{15.6} Function MapBackground: Pointer; StdCall; -{15.7} Function UnMapBackground(Background: Pointer): Integer; StdCall; -{15.8} Function GetLastDrawnBackgroundRect: TRect; StdCall; -{15.9} Procedure UpdateBackgroundRect(Left, Top, Right, Bottom: Integer); StdCall; -{16} Function FlushFloppyCache(FloppyNumber: LongWord): LongWord; StdCall; -{17} Function GetButton: TButtonInput; StdCall; -{18.1} Procedure DeactivateWindow(Slot: LongWord); StdCall; -{18.2} Procedure TerminateThreadBySlot(Slot: LongWord); StdCall; -{18.3} Procedure ActivateWindow(Slot: LongWord); StdCall; -{18.4} Function GetIdleTime: LongWord; StdCall; -{18.5} Function GetCPUClock: LongWord; StdCall; -{18.6} Function SaveRamDisk(Path: PKolibriChar): LongWord; StdCall; -{18.7} Function GetActiveWindow: LongWord; StdCall; -{18.8.1} Function GetSpeakerState: Integer; StdCall; -{18.8.2} Procedure SwitchSpeakerState; StdCall; -{18.9} Function SystemShutdown(Param: LongWord): Integer; StdCall; -{18.10} Procedure MinimizeActiveWindow; StdCall; -{18.11} Procedure GetDiskSystemInfo(Var Buffer); StdCall; +{7} procedure DrawImage(const Image; X, Y: LongInt; Width, Height: LongWord); stdcall; +{8} procedure DrawButton(Left, Top, Right, Bottom: LongInt; BackColor, Style, ID: LongWord); stdcall; +{8} procedure DeleteButton(ID: LongWord); stdcall; +{9} function GetThreadInfo(Slot: LongWord; var Buffer: TThreadInfo): LongWord; stdcall; +{10} function WaitEvent: LongWord; stdcall; +{11} function CheckEvent: LongWord; stdcall; +{12.1} procedure BeginDraw; stdcall; +{12.2} procedure EndDraw; stdcall; +{13} procedure DrawRectangle(X, Y: LongInt; Width, Height: LongWord; Color: LongWord); stdcall; +{14} function GetScreenMax: TPoint; stdcall; +{15.1} procedure SetBackgroundSize(Width, Height: LongWord); stdcall; +{15.2} procedure SetBackgroundPixel(X, Y: LongInt; Color: LongWord); stdcall; +{15.3} procedure DrawBackground; stdcall; +{15.4} procedure SetBackgroundDrawMode(DrawMode: LongWord); stdcall; +{15.5} procedure DrawBackgroundImage(const Image; X, Y: LongInt; Width, Height: LongWord); stdcall; +{15.6} function MapBackground: Pointer; stdcall; +{15.7} function UnMapBackground(Background: Pointer): LongInt; stdcall; +{15.8} function GetLastDrawnBackgroundRect: TRect; stdcall; +{15.9} procedure UpdateBackgroundRect(Left, Top, Right, Bottom: LongInt); stdcall; +{16} function FlushFloppyCache(FloppyNumber: LongWord): LongWord; stdcall; +{17} function GetButton: TButtonInput; stdcall; +{18.1} procedure DeactivateWindow(Slot: LongWord); stdcall; +{18.2} procedure TerminateThreadBySlot(Slot: LongWord); stdcall; +{18.3} procedure ActivateWindow(Slot: LongWord); stdcall; +{18.4} function GetIdleTime: LongWord; stdcall; +{18.5} function GetCPUClock: LongWord; stdcall; +{18.6} function SaveRamDisk(Path: PKolibriChar): LongWord; stdcall; +{18.7} function GetActiveWindow: LongWord; stdcall; +{18.8.1} function GetSpeakerState: LongInt; stdcall; +{18.8.2} procedure SwitchSpeakerState; stdcall; +{18.9} function SystemShutdown(Param: LongWord): LongInt; stdcall; +{18.10} procedure MinimizeActiveWindow; stdcall; +{18.11} procedure GetDiskSystemInfo(var Buffer); stdcall; {18.12} {UNDEFINED} -{18.13} Procedure GetKernelVersion(Var Buffer: TKernelVersion); StdCall; -{18.14} Function WaitRetrace: Integer; StdCall; -{18.15} Function CenterMousePointer: Integer; StdCall; -{18.16} Function GetFreeMemory: LongWord; StdCall; -{18.17} Function GetAvailableMemory: LongWord; StdCall; -{18.18} Function TerminateThreadById(ID: LongWord): Integer; StdCall; -{18.19.0} Function GetMouseSpeed: LongWord; StdCall; -{18.19.1} Procedure SetMouseSpeed(Speed: LongWord); StdCall; -{18.19.2} Function GetMouseSensitivity: LongWord; StdCall; -{18.19.3} Procedure SetMouseSensitivity(Sensitivity: LongWord); StdCall; -{18.19.4} Procedure SetMousePos(X, Y: Integer); StdCall; -{18.19.5} Procedure SetMouseButtons(State: LongWord); StdCall; -{18.19.6} Function GetDoubleClickTime: LongWord; StdCall; -{18.19.7} Procedure SetDoubleClickTime(Time: LongWord); StdCall; -{18.20} Function GetRAMInfo(Var Buffer: TRAMInfo): Integer; StdCall; -{18.21} Function GetSlotById(ID: LongWord): LongWord; StdCall; -{18.22.0} Function MinimizeWindowBySlot(Slot: LongWord): Integer; StdCall; -{18.22.1} Function MinimizeWindowByID(ID: LongWord): Integer; StdCall; -{18.22.2} Function RestoreWindowBySlot(Slot: LongWord): Integer; StdCall; -{18.22.3} Function RestoreWindowByID(ID: LongWord): Integer; StdCall; -{18.23} Function MinimizeAllWindows: LongWord; StdCall; -{18.24} Procedure SetScreenLimits(Width, Height: LongWord); StdCall; -{18.25.1} Function GetWindowZOrder(ID: LongWord): LongWord; StdCall; -{18.25.2} Function SetWindowZOrder(ID, ZOrder: LongWord): Integer; StdCall; +{18.13} procedure GetKernelVersion(var Buffer: TKernelVersion); stdcall; +{18.14} function WaitRetrace: LongInt; stdcall; +{18.15} function CenterMousePointer: LongInt; stdcall; +{18.16} function GetFreeMemory: LongWord; stdcall; +{18.17} function GetAvailableMemory: LongWord; stdcall; +{18.18} function TerminateThreadById(ID: LongWord): LongInt; stdcall; +{18.19.0} function GetMouseSpeed: LongWord; stdcall; +{18.19.1} procedure SetMouseSpeed(Speed: LongWord); stdcall; +{18.19.2} function GetMouseSensitivity: LongWord; stdcall; +{18.19.3} procedure SetMouseSensitivity(Sensitivity: LongWord); stdcall; +{18.19.4} procedure SetMousePos(X, Y: LongInt); stdcall; +{18.19.5} procedure SetMouseButtons(State: LongWord); stdcall; +{18.19.6} function GetDoubleClickTime: LongWord; stdcall; +{18.19.7} procedure SetDoubleClickTime(Time: LongWord); stdcall; +{18.20} function GetRAMInfo(var Buffer: TRAMInfo): LongInt; stdcall; +{18.21} function GetSlotById(ID: LongWord): LongWord; stdcall; +{18.22.0} function MinimizeWindowBySlot(Slot: LongWord): LongInt; stdcall; +{18.22.1} function MinimizeWindowByID(ID: LongWord): LongInt; stdcall; +{18.22.2} function RestoreWindowBySlot(Slot: LongWord): LongInt; stdcall; +{18.22.3} function RestoreWindowByID(ID: LongWord): LongInt; stdcall; +{18.23} function MinimizeAllWindows: LongWord; stdcall; +{18.24} procedure SetScreenLimits(Width, Height: LongWord); stdcall; +{18.25.1} function GetWindowZOrder(ID: LongWord): LongWord; stdcall; +{18.25.2} function SetWindowZOrder(ID, ZOrder: LongWord): LongInt; stdcall; {19} {UNDEFINED} -{20.1} Function ResetMidi: Integer; StdCall; -{20.2} Function OutputMidi(Data: Byte): Integer; StdCall; -{21.1} Function SetMidiBase(Port: LongWord): Integer; StdCall; -{21.2} Function SetKeyboardLayout(Flags: LongWord; Var Table: TKeyboardLayout): Integer; StdCall; -{21.2} Function SetKeyboardLayoutCountry(Country: LongWord): Integer; StdCall; +{20.1} function ResetMidi: LongInt; stdcall; +{20.2} function OutputMidi(Data: Byte): LongInt; stdcall; +{21.1} function SetMidiBase(Port: LongWord): LongInt; stdcall; +{21.2} function SetKeyboardLayout(Flags: LongWord; var Table: TKeyboardLayout): LongInt; stdcall; +{21.2} function SetKeyboardLayoutCountry(Country: LongWord): LongInt; stdcall; {21.3} {UNDEFINED} {21.4} {UNDEFINED} -{21.5} Function SetSystemLanguage(SystemLanguage: LongWord): Integer; StdCall; +{21.5} function SetSystemLanguage(SystemLanguage: LongWord): LongInt; stdcall; {21.6} {UNDEFINED} {21.7} {UNDEFINED} {21.8} {UNDEFINED} {21.9} {UNDEFINED} {21.10} {UNDEFINED} -{21.11} Function SetHDAccess(Value: LongWord): Integer; StdCall; -{21.12} Function SetPCIAccess(Value: LongWord): Integer; StdCall; -{22.0} Function SetSystemTime(Time: TSystemTime): Integer; StdCall; -{22.1} Function SetSystemDate(Date: TSystemDate): Integer; StdCall; -{22.2} Function SetDayOfWeek(DayOfWeek: LongWord): Integer; StdCall; -{22.3} Function SetAlarm(Time: TSystemTime): Integer; StdCall; -{23} Function WaitEventByTime(Time: LongWord): LongWord; StdCall; -{24.4} Procedure OpenCDTray(Drive: LongWord); StdCall; -{24.5} Procedure CloseCDTray(Drive: LongWord); StdCall; -{25} Procedure DrawBackgroundLayerImage(Const Image; X, Y: Integer; Width, Height: LongWord); StdCall; -{26.1} Function GetMidiBase: LongWord; StdCall; -{26.2} Procedure GetKeyboardLayout(Flags: LongWord; Var Table: TKeyboardLayout); StdCall; -{26.2} Function GetKeyboardLayoutCountry: LongWord; StdCall; +{21.11} function SetHDAccess(Value: LongWord): LongInt; stdcall; +{21.12} function SetPCIAccess(Value: LongWord): LongInt; stdcall; +{22.0} function SetSystemTime(Time: TSystemTime): LongInt; stdcall; +{22.1} function SetSystemDate(Date: TSystemDate): LongInt; stdcall; +{22.2} function SetDayOfWeek(DayOfWeek: LongWord): LongInt; stdcall; +{22.3} function SetAlarm(Time: TSystemTime): LongInt; stdcall; +{23} function WaitEventByTime(Time: LongWord): LongWord; stdcall; +{24.4} procedure OpenCDTray(Drive: LongWord); stdcall; +{24.5} procedure CloseCDTray(Drive: LongWord); stdcall; +{25} procedure DrawBackgroundLayerImage(const Image; X, Y: LongInt; Width, Height: LongWord); stdcall; +{26.1} function GetMidiBase: LongWord; stdcall; +{26.2} procedure GetKeyboardLayout(Flags: LongWord; var Table: TKeyboardLayout); stdcall; +{26.2} function GetKeyboardLayoutCountry: LongWord; stdcall; {26.3} {UNDEFINED} {26.4} {UNDEFINED} -{26.5} Function GetSystemLanguage: LongWord; StdCall; +{26.5} function GetSystemLanguage: LongWord; stdcall; {26.6} {UNDEFINED} {26.7} {UNDEFINED} {26.8} {UNDEFINED} -{26.9} Function GetTickCount: LongWord; StdCall; -{26.10} Function GetTickCount64: QuadWord; StdCall; -{26.11} Function IsHDAccessAllowed: LongWord; StdCall; -{26.12} Function IsPCIAccessAllowed: LongWord; StdCall; +{26.9} function GetTickCount: LongWord; stdcall; +{26.10} function GetTickCount64: UInt64; stdcall; +{26.11} function IsHDAccessAllowed: LongWord; stdcall; +{26.12} function IsPCIAccessAllowed: LongWord; stdcall; {27} {UNDEFINED} {28} {UNDEFINED} -{29} Function GetSystemDate: TSystemDate; StdCall; -{30.1} Procedure SetCurrentDirectory(Path: PKolibriChar); StdCall; -{30.2} Function GetCurrentDirectory(Buffer: PKolibriChar; Count: LongWord): LongWord; StdCall; +{29} function GetSystemDate: TSystemDate; stdcall; +{30.1} procedure SetCurrentDirectory(Path: PKolibriChar); stdcall; +{30.2} function GetCurrentDirectory(Buffer: PKolibriChar; Count: LongWord): LongWord; stdcall; {31} {UNDEFINED} {32} {UNDEFINED} {33} {UNDEFINED} -{34} Function GetPointOwner(X, Y: Integer): LongWord; StdCall; -{35} Function GetPixel(X, Y: Integer): LongWord; StdCall; -{36} Procedure GetScreenImage(Var Buffer; X, Y: Integer; Width, Height: LongWord); StdCall; -{37.0} Function GetMousePos: TPoint; StdCall; -{37.1} Function GetWindowMousePos: TPoint; StdCall; -{37.2} Function GetMouseButtons: LongWord; StdCall; -{37.3} Function GetMouseEvents: LongWord; StdCall; -{37.4} Function LoadCursorFromFile(Path: PKolibriChar): LongWord; StdCall; -{37.4} Function LoadCursorFromMemory(Const Buffer): LongWord; StdCall; -{37.4} Function LoadCursorIndirect(Const Buffer; HotSpotX, HotSpotY: ShortInt): LongWord; StdCall; -{37.5} Function SetCursor(Handle: LongWord): LongWord; StdCall; -{37.6} Function DeleteCursor(Handle: LongWord): LongWord; StdCall; -{37.7} Function GetMouseScroll: TPoint; StdCall; -{38} Procedure DrawLine(X1, Y1, X2, Y2: Integer; Color: LongWord); StdCall; -{39.1} Function GetBackgroundSize: TSize; StdCall; -{39.2} Function GetBackgroundPixel(X, Y: Integer): LongWord; StdCall; +{34} function GetPointOwner(X, Y: LongInt): LongWord; stdcall; +{35} function GetPixel(X, Y: LongInt): LongWord; stdcall; +{36} procedure GetScreenImage(var Buffer; X, Y: LongInt; Width, Height: LongWord); stdcall; +{37.0} function GetMousePos: TPoint; stdcall; +{37.1} function GetWindowMousePos: TPoint; stdcall; +{37.2} function GetMouseButtons: LongWord; stdcall; +{37.3} function GetMouseEvents: LongWord; stdcall; +{37.4} function LoadCursorFromFile(Path: PKolibriChar): LongWord; stdcall; +{37.4} function LoadCursorFromMemory(const Buffer): LongWord; stdcall; +{37.4} function LoadCursorIndirect(const Buffer; HotSpotX, HotSpotY: ShortInt): LongWord; stdcall; +{37.5} function SetCursor(Handle: LongWord): LongWord; stdcall; +{37.6} function DeleteCursor(Handle: LongWord): LongWord; stdcall; +{37.7} function GetMouseScroll: TPoint; stdcall; +{38} procedure DrawLine(X1, Y1, X2, Y2: LongInt; Color: LongWord); stdcall; +{39.1} function GetBackgroundSize: TSize; stdcall; +{39.2} function GetBackgroundPixel(X, Y: LongInt): LongWord; stdcall; {39.3} {UNDEFINED} -{39.4} Function GetBackgroundDrawMode: LongWord; StdCall; -{40} Function SetEventMask(Mask: LongWord): LongWord; StdCall; +{39.4} function GetBackgroundDrawMode: LongWord; stdcall; +{40} function SetEventMask(Mask: LongWord): LongWord; stdcall; {41} {UNDEFINED} {42} {UNDEFINED} -{43} Function InPort(Port: LongWord; Var Data: Byte): LongWord; StdCall; -{43} Function OutPort(Port: LongWord; Data: Byte): LongWord; StdCall; +{43} function InPort(Port: LongWord; var Data: Byte): LongWord; stdcall; +{43} function OutPort(Port: LongWord; Data: Byte): LongWord; stdcall; {44} {UNDEFINED} {45} {UNDEFINED} -{46} Function ReservePorts(First, Last: LongWord): LongWord; StdCall; -{46} Function FreePorts(First, Last: LongWord): LongWord; StdCall; +{46} function ReservePorts(First, Last: LongWord): LongWord; stdcall; +{46} function FreePorts(First, Last: LongWord): LongWord; stdcall; {47} {DrawNumber} -{48.0} Procedure ApplyStyleSettings; StdCall; -{48.1} Procedure SetButtonStyle(ButtonStyle: LongWord); StdCall; -{48.2} Procedure SetStandardColors(Var ColorTable: TStandardColors; Size: LongWord); StdCall; -{48.3} Procedure GetStandardColors(Var ColorTable: TStandardColors; Size: LongWord); StdCall; -{48.4} Function GetSkinHeight: LongWord; StdCall; -{48.5} Function GetScreenWorkingArea: TRect; StdCall; -{48.6} Procedure SetScreenWorkingArea(Left, Top, Right, Bottom: Integer); StdCall; -{48.7} Function GetSkinMargins: TRect; StdCall; -{48.8} Function SetSkin(Path: PKolibriChar): Integer; StdCall; -{48.9} Function GetFontSmoothing: Integer; StdCall; -{48.10} Procedure SetFontSmoothing(Smoothing: Integer); StdCall; -{48.11} Function GetFontHeight: LongWord; StdCall; -{48.12} Procedure SetFontHeight(Height: LongWord); StdCall; -{49} {Advanced Power Management} -{50.0} Procedure SetWindowShape(Const Data); StdCall; -{50.1} Procedure SetWindowScale(Scale: LongWord); StdCall; -{51.1} Function ThreadCreate(Entry, Stack: Pointer): LongWord; StdCall; +{48.0} procedure ApplyStyleSettings; stdcall; +{48.1} procedure SetButtonStyle(ButtonStyle: LongWord); stdcall; +{48.2} procedure SetStandardColors(var ColorTable: TStandardColors; Size: LongWord); stdcall; +{48.3} procedure GetStandardColors(var ColorTable: TStandardColors; Size: LongWord); stdcall; +{48.4} function GetSkinHeight: LongWord; stdcall; +{48.5} function GetScreenWorkingArea: TRect; stdcall; +{48.6} procedure SetScreenWorkingArea(Left, Top, Right, Bottom: LongInt); stdcall; +{48.7} function GetSkinMargins: TRect; stdcall; +{48.8} function SetSkin(Path: PKolibriChar): LongInt; stdcall; +{48.9} function GetFontSmoothing: LongInt; stdcall; +{48.10} procedure SetFontSmoothing(Smoothing: LongInt); stdcall; +{48.11} function GetFontHeight: LongWord; stdcall; +{48.12} procedure SetFontHeight(Height: LongWord); stdcall; +{49} {Advanced Power Management (APM)} +{50.0} procedure SetWindowShape(const Data); stdcall; +{50.1} procedure SetWindowScale(Scale: LongWord); stdcall; +{51.1} function CreateThread(Entry, Stack: Pointer): LongWord; stdcall; {52} {UNDEFINED} {53} {UNDEFINED} -{54.0} Function GetClipboardSlotCount: Integer; StdCall; -{54.1} Function GetClipboardData(Slot: LongWord): Pointer; StdCall; -{54.2} Function SetClipboardData(Const Src; Count: LongWord): Integer; StdCall; -{54.3} Function DeleteClipboardLastSlot: Integer; StdCall; -{54.4} Function ResetClipboard: Integer; StdCall; -{55} Function SpeakerPlay(Const Data): LongWord; StdCall; +{54.0} function GetClipboardSlotCount: LongInt; stdcall; +{54.1} function GetClipboardData(Slot: LongWord): Pointer; stdcall; +{54.2} function SetClipboardData(const Src; Count: LongWord): LongInt; stdcall; +{54.3} function DeleteClipboardLastSlot: LongInt; stdcall; +{54.4} function ResetClipboard: LongInt; stdcall; +{55} function SpeakerPlay(const Data): LongWord; stdcall; {56} {UNDEFINED} {57} {PCI BIOS} {58} {UNDEFINED} {59} {UNDEFINED} -{60.1} Function IPCSetBuffer(Const Buffer: TIPCBuffer; Size: LongWord): Integer; StdCall; -{60.2} Function IPCSendMessage(ID: LongWord; Var Msg: TIPCMessage; Size: LongWord): Integer; StdCall; -{61.1} Function GetScreenSize: TSize; StdCall; -{61.2} Function GetScreenBitsPerPixel: LongWord; StdCall; -{61.3} Function GetScreenBytesPerScanLine: LongWord; StdCall; -{62.0} Function GetPCIVersion: LongWord; StdCall; -{62.1} Function GetLastPCIBus: LongWord; StdCall; -{62.2} Function GetPCIAddressingMode: LongWord; StdCall; +{60.1} function IPCSetBuffer(const Buffer: TIPCBuffer; Size: LongWord): LongInt; stdcall; +{60.2} function IPCSendMessage(ID: LongWord; var Msg: TIPCMessage; Size: LongWord): LongInt; stdcall; +{61.1} function GetScreenSize: TSize; stdcall; +{61.2} function GetScreenBitsPerPixel: LongWord; stdcall; +{61.3} function GetScreenBytesPerScanLine: LongWord; stdcall; +{62.0} function GetPCIVersion: LongWord; stdcall; +{62.1} function GetLastPCIBus: LongWord; stdcall; +{62.2} function GetPCIAddressingMode: LongWord; stdcall; {62.3} {UNDEFINED} -{62.4} Function ReadPCIByte(Bus, Device, Func, Reg: Byte): Byte; StdCall; -{62.5} Function ReadPCIWord(Bus, Device, Func, Reg: Byte): Word; StdCall; -{62.6} Function ReadPCILongWord(Bus, Device, Func, Reg: Byte): LongWord; StdCall; +{62.4} function ReadPCIByte(Bus, Device, Func, Reg: Byte): Byte; stdcall; +{62.5} function ReadPCIWord(Bus, Device, Func, Reg: Byte): Word; stdcall; +{62.6} function ReadPCILongWord(Bus, Device, Func, Reg: Byte): LongWord; stdcall; {62.7} {UNDEFINED} -{62.8} Function WritePCIByte(Bus, Device, Func, Reg: Byte; Data: Byte): LongWord; StdCall; -{62.9} Function WritePCIWord(Bus, Device, Func, Reg: Byte; Data: Word): LongWord; StdCall; -{62.10} Function WritePCILongWord(Bus, Device, Func, Reg: Byte; Data: LongWord): LongWord; StdCall; -{63.1} Procedure BoardWriteByte(Data: Byte); StdCall; -{63.2} Function BoardReadByte(Var Data: Byte): LongWord; StdCall; -{64} Function ReallocAppMemory(Count: LongWord): Integer; StdCall; -{65} Procedure DrawImageEx(Const Image; Left, Top: Integer; Width, Height: LongWord; BPP: LongWord; Const Palette: Pointer; Padding: LongWord); StdCall; -{66.1} Procedure SetKeyboardInputMode(Mode: LongWord); StdCall; -{66.2} Function GetKeyboardInputMode: LongWord; StdCall; -{66.3} Function GetControlKeyState: LongWord; StdCall; -{66.4} Function SetHotKey(ScanCode, Control: LongWord): Integer; StdCall; -{66.5} Function ResetHotKey(ScanCode, Control: LongWord): Integer; StdCall; -{66.6} Procedure KeyboardLock; StdCall; -{66.7} Procedure KeyboardUnlock; StdCall; -{67} Procedure SetWindowPos(Left, Top, Right, Bottom: Integer); StdCall; -{68.0} Function GetTaskSwitchCount: LongWord; StdCall; -{68.1} Procedure SwitchThread; StdCall; -{68.2.0} Function EnableRDPMC: LongWord; StdCall; -{68.2.1} Function IsCacheEnabled: LongWord; StdCall; -{68.2.2} Procedure EnableCache; StdCall; -{68.2.3} Procedure DisableCache; StdCall; +{62.8} function WritePCIByte(Bus, Device, Func, Reg: Byte; Data: Byte): LongWord; stdcall; +{62.9} function WritePCIWord(Bus, Device, Func, Reg: Byte; Data: Word): LongWord; stdcall; +{62.10} function WritePCILongWord(Bus, Device, Func, Reg: Byte; Data: LongWord): LongWord; stdcall; +{63.1} procedure BoardWriteByte(Data: Byte); stdcall; +{63.2} function BoardReadByte(var Data: Byte): LongWord; stdcall; +{64} function ReallocAppMemory(Count: LongWord): LongInt; stdcall; +{65} procedure DrawImageEx(const Image; Left, Top: LongInt; Width, Height: LongWord; BPP: LongWord; const Palette: Pointer; Padding: LongWord); stdcall; +{66.1} procedure SetKeyboardInputMode(Mode: LongWord); stdcall; +{66.2} function GetKeyboardInputMode: LongWord; stdcall; +{66.3} function GetControlKeyState: LongWord; stdcall; +{66.4} function SetHotKey(ScanCode, Control: LongWord): LongInt; stdcall; +{66.5} function ResetHotKey(ScanCode, Control: LongWord): LongInt; stdcall; +{66.6} procedure KeyboardLock; stdcall; +{66.7} procedure KeyboardUnlock; stdcall; +{67} procedure SetWindowPos(Left, Top, Right, Bottom: LongInt); stdcall; +{68.0} function GetTaskSwitchCount: LongWord; stdcall; +{68.1} procedure SwitchThread; stdcall; +{68.2.0} function EnableRDPMC: LongWord; stdcall; +{68.2.1} function IsCacheEnabled: LongWord; stdcall; +{68.2.2} procedure EnableCache; stdcall; +{68.2.3} procedure DisableCache; stdcall; {68.3} {ReadMSR} {68.4} {WriteMSR} {68.5} {UNDEFINED} @@ -543,3205 +542,3153 @@ Const {68.8} {UNDEFINED} {68.9} {UNDEFINED} {68.10} {UNDEFINED} -{68.11} Function HeapCreate: LongWord; StdCall; -{68.12} Function HeapAllocate(Bytes: LongWord): Pointer; StdCall; -{68.13} Function HeapFree(MemPtr: Pointer): LongWord; StdCall; -{68.14} Procedure WaitSignal(Var Buffer: TSignalBuffer); StdCall; +{68.11} function HeapCreate: LongWord; stdcall; +{68.12} function HeapAllocate(Bytes: LongWord): Pointer; stdcall; +{68.13} function HeapFree(MemPtr: Pointer): LongWord; stdcall; +{68.14} procedure WaitSignal(var Buffer: TSignalBuffer); stdcall; {68.15} {UNDEFINED} -{68.16} Function GetDriver(Name: PKolibriChar): LongWord; StdCall; -{68.17} Function ControlDriver(Var CtrlStructure: TCtrlDriver): LongWord; StdCall; +{68.16} function GetDriver(Name: PKolibriChar): LongWord; stdcall; +{68.17} function ControlDriver(var CtrlStructure: TCtrlDriver): LongWord; stdcall; {68.18} {UNDEFINED} -{68.19} Function LoadLibrary(Path: PKolibriChar): Pointer; StdCall; -{68.20} Function HeapReallocate(MemPtr: Pointer; Bytes: LongWord): Pointer; StdCall; -{68.21} Function LoadDriver(Name, CmdLine: PKolibriChar): LongWord; StdCall; -{68.22} Function SharedMemoryOpen(Name: PKolibriChar; Bytes: LongWord; Flags: LongWord): Pointer; StdCall; -{68.23} Function SharedMemoryClose(Name: PKolibriChar): LongWord; StdCall; -{68.24} Function SetExceptionHandler(Handler: Pointer; Mask: LongWord; Var OldMask: LongWord): Pointer; StdCall; -{68.25} Function SetExceptionActivity(Signal, Activity: LongWord): Integer; StdCall; -{68.26} Procedure ReleaseMemoryPages(MemPtr: Pointer; Offset, Size: LongWord); StdCall; -{68.27} Function LoadFile(Path: PKolibriChar; Var Size: LongWord): Pointer; StdCall; -{69.0} Procedure SetDebugBuffer(Const Buffer: TDebugBuffer); StdCall; -{69.1} Procedure GetThreadContext(ID: LongWord; Var Context: TThreadContext); StdCall; -{69.2} Procedure SetThreadContext(ID: LongWord; Const Context: TThreadContext); StdCall; -{69.3} Procedure DetachThread(ID: LongWord); StdCall; -{69.4} Procedure SuspendThread(ID: LongWord); StdCall; -{69.5} Procedure ResumeThread(ID: LongWord); StdCall; -{69.6} Function ReadProcessMemory(ID, Count: LongWord; Const Src; Var Dst): Integer; StdCall; -{69.7} Function WriteProcessMemory(ID, Count: LongWord; Const Src; Var Dst): Integer; StdCall; -{69.8} Procedure DebugTerminate(ID: LongWord); StdCall; -{69.9} Function SetBreakPoint(ID: LongWord; Index, Flags: Byte; Address: Pointer): Integer; StdCall; -{69.9} Function ResetBreakPoint(ID: LongWord; Index, Flags: Byte; Address: Pointer): Integer; StdCall; -{70.0} Function ReadFile(Path: PKolibriChar; Var Buffer; Count, LoPos, HiPos: Cardinal; Var BytesRead: LongWord): Integer; StdCall; -{70.1} Function ReadFolder(Path: PKolibriChar; Var Buffer; Count, Start, Flags: Cardinal; Var BlocksRead: LongWord): Integer; StdCall; -{70.2} Function CreateFile(Path: PKolibriChar): Integer; StdCall; -{70.3} Function WriteFile(Path: PKolibriChar; Const Buffer; Count, LoPos, HiPos: Cardinal; Var BytesWritten: LongWord): Integer; StdCall; -{70.4} Function ResizeFile(Path: PKolibriChar; LoSize, HiSize: Cardinal): Integer; StdCall; -{70.5} Function GetFileAttributes(Path: PKolibriChar; Var Buffer: TFileAttributes): Integer; StdCall; -{70.6} Function SetFileAttributes(Path: PKolibriChar; Var Buffer: TFileAttributes): Integer; StdCall; -{70.7} Function RunFile(Path, CmdLine: PKolibriChar): Integer; StdCall; -{70.7} Function DebugFile(Path, CmdLine: PKolibriChar): Integer; StdCall; -{70.8} Function DeleteFile(Path: PKolibriChar): Integer; StdCall; -{70.9} Function CreateFolder(Path: PKolibriChar): Integer; StdCall; -{71.1} Procedure SetWindowCaption(Caption: PKolibriChar); StdCall; -{72.1.2} Function SendActiveWindowKey(KeyCode: LongWord): Integer; StdCall; -{72.1.3} Function SendActiveWindowButton(ButtonID: LongWord): Integer; StdCall; -{73} Procedure Blit(Const Src; SrcX, SrcY: Integer; SrcW, SrcH: LongWord; DstX, DstY: Integer; DstW, DstH: LongWord; Stride, Flags: LongWord); StdCall; -{74.-1} Function GetActiveNetworkDevices: LongWord; StdCall; -{74.0} Function GetNetworkDeviceType(Device: Byte): Integer; StdCall; -{74.1} Function GetNetworkDeviceName(Device: Byte; Var Buffer): Integer; StdCall; -{74.2} Function ResetNetworkDevice(Device: Byte): Integer; StdCall; -{74.3} Function StopNetworkDevice(Device: Byte): Integer; StdCall; -{74.4} Function GetNetworkDevicePointer(Device: Byte): Pointer; StdCall; +{68.19} function LoadLibrary(Path: PKolibriChar): Pointer; stdcall; +{68.20} function HeapReallocate(MemPtr: Pointer; Bytes: LongWord): Pointer; stdcall; +{68.21} function LoadDriver(Name, CmdLine: PKolibriChar): LongWord; stdcall; +{68.22} function OpenSharedMemory(Name: PKolibriChar; Bytes: LongWord; Flags: LongWord): Pointer; stdcall; +{68.23} function CloseSharedMemory(Name: PKolibriChar): LongWord; stdcall; +{68.24} function SetExceptionHandler(Handler: Pointer; Mask: LongWord; var OldMask: LongWord): Pointer; stdcall; +{68.25} function SetExceptionActivity(Signal, Activity: LongWord): LongInt; stdcall; +{68.26} procedure ReleaseMemoryPages(MemPtr: Pointer; Offset, Size: LongWord); stdcall; +{68.27} function LoadFile(Path: PKolibriChar; var Size: LongWord): Pointer; stdcall; +{69.0} procedure SetDebugBuffer(const Buffer: TDebugBuffer); stdcall; +{69.1} procedure GetThreadContext(ID: LongWord; var Context: TThreadContext); stdcall; +{69.2} procedure SetThreadContext(ID: LongWord; const Context: TThreadContext); stdcall; +{69.3} procedure DetachThread(ID: LongWord); stdcall; +{69.4} procedure SuspendThread(ID: LongWord); stdcall; +{69.5} procedure ResumeThread(ID: LongWord); stdcall; +{69.6} function ReadProcessMemory(ID, Count: LongWord; const Src; var Dst): LongInt; stdcall; +{69.7} function WriteProcessMemory(ID, Count: LongWord; const Src; var Dst): LongInt; stdcall; +{69.8} procedure DebugTerminate(ID: LongWord); stdcall; +{69.9} function SetBreakPoint(ID: LongWord; Index, Flags: Byte; Address: Pointer): LongInt; stdcall; +{69.9} function ResetBreakPoint(ID: LongWord; Index, Flags: Byte; Address: Pointer): LongInt; stdcall; +{70.0} function ReadFile(Path: PKolibriChar; var Buffer; Count: LongWord; Pos: UInt64; var BytesRead: LongWord): LongInt; stdcall; +{70.1} function ReadFolder(Path: PKolibriChar; var Buffer; Count, Start, Flags: LongWord; var BlocksRead: LongWord): LongInt; stdcall; +{70.2} function CreateFile(Path: PKolibriChar): LongInt; stdcall; +{70.3} function WriteFile(Path: PKolibriChar; const Buffer; Count: LongWord; Pos: UInt64; var BytesWritten: LongWord): LongInt; stdcall; +{70.4} function ResizeFile(Path: PKolibriChar; LoSize, HiSize: LongWord): LongInt; stdcall; +{70.5} function GetFileAttributes(Path: PKolibriChar; var Buffer: TFileAttributes): LongInt; stdcall; +{70.6} function SetFileAttributes(Path: PKolibriChar; var Buffer: TFileAttributes): LongInt; stdcall; +{70.7} function RunFile(Path, CmdLine: PKolibriChar): LongInt; stdcall; +{70.7} function DebugFile(Path, CmdLine: PKolibriChar): LongInt; stdcall; +{70.8} function DeleteFile(Path: PKolibriChar): LongInt; stdcall; +{70.9} function CreateFolder(Path: PKolibriChar): LongInt; stdcall; +{71.1} procedure SetWindowCaption(Caption: PKolibriChar); stdcall; +{72.1.2} function SendActiveWindowKey(KeyCode: LongWord): LongInt; stdcall; +{72.1.3} function SendActiveWindowButton(ButtonID: LongWord): LongInt; stdcall; +{73} procedure Blit(const Src; SrcX, SrcY: LongInt; SrcW, SrcH: LongWord; DstX, DstY: LongInt; DstW, DstH: LongWord; Stride, Flags: LongWord); stdcall; +{74.-1} function GetActiveNetworkDevices: LongWord; stdcall; +{74.0} function GetNetworkDeviceType(Device: Byte): LongInt; stdcall; +{74.1} function GetNetworkDeviceName(Device: Byte; var Buffer): LongInt; stdcall; +{74.2} function ResetNetworkDevice(Device: Byte): LongInt; stdcall; +{74.3} function StopNetworkDevice(Device: Byte): LongInt; stdcall; +{74.4} function GetNetworkDevicePointer(Device: Byte): Pointer; stdcall; {74.5} {UNDEFINED} -{74.6} Function GetSentPackets(Device: Byte): Integer; StdCall; -{74.7} Function GetReceivedPackets(Device: Byte): Integer; StdCall; -{74.8} Function GetSentBytes(Device: Byte): Integer; StdCall; -{74.9} Function GetReceivedBytes(Device: Byte): Integer; StdCall; -{74.10} Function GetLinkStatus(Device: Byte): Integer; StdCall; -{75.0} Function OpenSocket(Domain, Kind, Protocol: LongWord): LongWord; StdCall; -{75.1} Function CloseSocket(Socket: LongWord): Integer; StdCall; -{75.2} Function SocketBind(Socket: LongWord; Var SockAddr: TSockAddr): Integer; StdCall; -{75.3} Function SocketListen(Socket: LongWord; Var BackLog): Integer; StdCall; -{75.4} Function SocketConnect(Socket: LongWord; Var SockAddr: TSockAddr): Integer; StdCall; -{75.5} Function SocketAccept(Socket: LongWord; Var SockAddr: TSockAddr): LongWord; StdCall; -{75.6} Function SocketSend(Socket: LongWord; Const Buffer; Size, Flags: LongWord): Integer; StdCall; -{75.7} Function SocketReceive(Socket: LongWord; Var Buffer; Size, Flags: LongWord): Integer; StdCall; -{75.8} Function SetSocketOptions(Socket: LongWord; Var OptStruct: TOptStruct): Integer; StdCall; -{75.9} Function GetSocketOptions(Socket: LongWord; Var OptStruct: TOptStruct): Integer; StdCall; -{75.10} Function GetSocketPair(Var Socket1, Socket2: LongWord): Integer; StdCall; -{76.0.0} Function GetMAC(Device: Byte): LongWord; StdCall; -{76.1.0} Function GetIPv4SentPackets(Device: Byte): LongWord; StdCall; -{76.1.1} Function GetIPv4ReceivedPackets(Device: Byte): LongWord; StdCall; -{76.1.2} Function GetIPv4IP(Device: Byte): LongWord; StdCall; -{76.1.3} Function SetIPv4IP(Device: Byte; IP: LongWord): LongWord; StdCall; -{76.1.4} Function GetIPv4DNS(Device: Byte): LongWord; StdCall; -{76.1.5} Function SetIPv4DNS(Device: Byte; DNS: LongWord): LongWord; StdCall; -{76.1.6} Function GetIPv4Subnet(Device: Byte): LongWord; StdCall; -{76.1.7} Function SetIPv4Subnet(Device: Byte; Subnet: LongWord): LongWord; StdCall; -{76.1.8} Function GetIPv4Gateway(Device: Byte): LongWord; StdCall; -{76.1.9} Function SetIPv4Gateway(Device: Byte; Gateway: LongWord): LongWord; StdCall; -{76.2.0} Function GetICMPSentPackets(Device: Byte): LongWord; StdCall; -{76.2.1} Function GetICMPReceivedPackets(Device: Byte): LongWord; StdCall; -{76.3.0} Function GetUDPSentPackets(Device: Byte): LongWord; StdCall; -{76.3.1} Function GetUDPReceivedPackets(Device: Byte): LongWord; StdCall; -{76.4.0} Function GetTCPSentPackets(Device: Byte): LongWord; StdCall; -{76.4.1} Function GetTCPReceivedPackets(Device: Byte): LongWord; StdCall; -{76.5.0} Function GetARPSentPackets(Device: Byte): LongWord; StdCall; -{76.5.1} Function GetARPReceivedPackets(Device: Byte): LongWord; StdCall; -{76.5.2} Function GetARPEntrys(Device: Byte): LongWord; StdCall; -{76.5.3} Function GetARPEntry(Device: Byte; Entry: LongWord; Var Buffer): LongWord; StdCall; -{76.5.4} Function AddARPEntry(Device: Byte; Const Buffer): LongWord; StdCall; -{76.5.5} Function RemoveARPEntry(Device: Byte; Entry: LongWord): LongWord; StdCall; -{76.5.6} Function SendARPAnnounce(Device: Byte): LongWord; StdCall; -{76.5.7} Function GetARPConflicts(Device: Byte): LongWord; StdCall; -{77.0} Function CreateFutex(Futex: Pointer): LongWord; StdCall; -{77.1} Function DestroyFutex(Handle: LongWord): LongWord; StdCall; -{77.2} Function WaitFutex(Handle, Value, Time: LongWord): LongWord; StdCall; -{77.3} Function WakeFutex(Handle, Waiters: LongWord): LongWord; StdCall; - Function GetProcAddress(hLib: Pointer; ProcName: PKolibriChar): Pointer; StdCall; -(* -------------------------------------------------------- *) -Implementation -(* -------------------------------------------------------- *) -{-1} Procedure TerminateThread; StdCall; - Asm - mov eax, $FFFFFFFF - int 64 - End; -(* -------------------------------------------------------- *) -{0} Procedure DrawWindow(Left, Top, Right, Bottom: Integer; Caption: PKolibriChar; BackColor, Style, CapStyle: LongWord); StdCall; - Asm - push ebx - push edi - push esi - xor eax, eax - mov ebx, Left - mov ecx, Top - shl ebx, 16 - shl ecx, 16 - or ebx, Right - or ecx, Bottom - mov edx, Style - or edx, BackColor - mov edi, Caption - mov esi, CapStyle - int 64 - pop esi - pop edi - pop ebx - End; -(* -------------------------------------------------------- *) -{1} Procedure SetPixel(X, Y: Integer; Color: LongWord); StdCall; - Asm - push ebx - mov eax, 1 - mov ebx, X - mov ecx, Y - mov edx, Color - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{2} Function GetKey: TKeyboardInput; StdCall; - Asm - mov eax, 2 - int 64 - End; -(* -------------------------------------------------------- *) -{3} Function GetSystemTime: TSystemTime; StdCall; - Asm - mov eax, 3 - int 64 - End; -(* -------------------------------------------------------- *) -{4} Procedure DrawText(X, Y: Integer; Text: PKolibriChar; ForeColor, BackColor, Flags, Count: LongWord); StdCall; - Asm - push ebx - push edi - push esi - mov eax, 4 - mov ebx, X - shl ebx, 16 - or ebx, Y - mov ecx, Flags - or ecx, ForeColor - mov edx, Text - mov edi, BackColor - mov esi, Count - int 64 - pop esi - pop edi - pop ebx - End; -(* -------------------------------------------------------- *) -{5} Procedure Sleep(Time: LongWord); StdCall; - Asm - push ebx - mov eax, 5 - mov ebx, Time - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{6} {UNDEFINED} -(* -------------------------------------------------------- *) -{7} Procedure DrawImage(Const Image; X, Y: Integer; Width, Height: LongWord); StdCall; - Asm - push ebx - mov eax, 7 - mov ebx, Image - mov ecx, Width - mov edx, X - shl ecx, 16 - shl edx, 16 - or ecx, Height - or edx, Y - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{8} Procedure DrawButton(Left, Top, Right, Bottom: Integer; BackColor, Style, ID: LongWord); StdCall; - Asm - push ebx - push esi - mov eax, 8 - mov ebx, Left - mov ecx, Top - shl ebx, 16 - shl ecx, 16 - or ebx, Right - or ecx, Bottom - mov edx, ID - or edx, Style - mov esi, BackColor - int 64 - pop esi - pop ebx - End; -(* -------------------------------------------------------- *) -{8} Procedure DeleteButton(ID: LongWord); StdCall; - Asm - mov eax, 8 - mov edx, ID - or edx, $80000000 - int 64 - End; -(* -------------------------------------------------------- *) -{9} Function GetThreadInfo(Slot: LongWord; Var Buffer: TThreadInfo): LongWord; StdCall; - Asm - push ebx - mov eax, 9 - mov ebx, Buffer - mov ecx, Slot - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{10} Function WaitEvent: LongWord; StdCall; - Asm - mov eax, 10 - int 64 - End; -(* -------------------------------------------------------- *) -{11} Function CheckEvent: LongWord; StdCall; - Asm - mov eax, 11 - int 64 - End; -(* -------------------------------------------------------- *) -{12.1} Procedure BeginDraw; StdCall; - Asm - push ebx - mov eax, 12 - mov ebx, 1 - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{12.2} Procedure EndDraw; StdCall; - Asm - push ebx - mov eax, 12 - mov ebx, 2 - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{13} Procedure DrawRectangle(X, Y: Integer; Width, Height: LongWord; Color: LongWord); StdCall; - Asm - push ebx - mov eax, 13 - mov ebx, X - mov ecx, Y - mov edx, Color - shl ebx, 16 - shl ecx, 16 - or ebx, Width - or ecx, Height - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{14} Function GetScreenMax: TPoint; StdCall; - Asm - mov eax, 14 - int 64 - End; -(* -------------------------------------------------------- *) -{15.1} Procedure SetBackgroundSize(Width, Height: LongWord); StdCall; - Asm - push ebx - mov eax, 15 - mov ebx, 1 - mov ecx, Width - mov edx, Height - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{15.2} Procedure SetBackgroundPixel(X, Y: Integer; Color: LongWord); StdCall; - Asm - push ebx - // at first need to know Background.Width - mov eax, 39 - mov ebx, 1 - int 64 - // at now eax = (Width << 16) | Height - // need to make ecx = (X + Y * Background.Width) * 3 - shr eax, 16 - mul Y - add eax, X - mov ecx, eax - add ecx, eax - add ecx, eax - // and now SetBackgroundPixel - mov eax, 15 - mov ebx, 2 - mov edx, Color - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{15.3} Procedure DrawBackground; StdCall; - Asm - push ebx - mov eax, 15 - mov ebx, 3 - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{15.4} Procedure SetBackgroundDrawMode(DrawMode: LongWord); StdCall; - Asm - push ebx - mov eax, 15 - mov ebx, 4 - mov ecx, DrawMode - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{15.5} Procedure DrawBackgroundImage(Const Image; X, Y: Integer; Width, Height: LongWord); StdCall; - Asm - push ebx - push esi - // at first need to know Background.Width - mov eax, 39 - mov ebx, 1 - int 64 - // at now eax = (Width << 16) | Height - // need to make edx = (X + Y * Background.Width) * 3 - shr eax, 16 - mul Y - add eax, X - mov edx, eax - add edx, eax - add edx, eax - // need to make esi = Width * Height * 3 - mov eax, Width - mul Height - mov esi, eax - add esi, eax - add esi, eax - // and now DrawBackgroundImage - mov eax, 15 - mov ebx, 5 - mov ecx, Image - int 64 - pop esi - pop ebx - End; -(* -------------------------------------------------------- *) -{15.6} Function MapBackground: Pointer; StdCall; - Asm - push ebx - mov eax, 15 - mov ebx, 6 - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{15.7} Function UnMapBackground(Background: Pointer): Integer; StdCall; - Asm - push ebx - mov eax, 15 - mov ebx, 7 - mov ecx, Background - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{15.8} Function GetLastDrawnBackgroundRect: TRect; StdCall; - Asm - push ebx - push edi - mov edi, eax - mov eax, 15 - mov ebx, 8 - int 64 - movzx edx, ax - movzx ecx, bx - shr eax, 16 - shr ebx, 16 - mov [edi].TRect.Left, eax - mov [edi].TRect.Right, edx - mov [edi].TRect.Top, ebx - mov [edi].TRect.Bottom, ecx - pop edi - pop ebx - End; -(* -------------------------------------------------------- *) -{15.9} Procedure UpdateBackgroundRect(Left, Top, Right, Bottom: Integer); StdCall; - Asm - push ebx - mov eax, 15 - mov ebx, 9 - mov ecx, Left - mov edx, Top - shl ecx, 16 - shl edx, 16 - or ecx, Right - or edx, Bottom - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{16} Function FlushFloppyCache(FloppyNumber: LongWord): LongWord; StdCall; - Asm - push ebx - mov eax, 15 - mov ebx, FloppyNumber - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{17} Function GetButton: TButtonInput; StdCall; - Asm - mov eax, 17 - int 64 - End; -(* -------------------------------------------------------- *) -{18.1} Procedure DeactivateWindow(Slot: LongWord); StdCall; - Asm - push ebx - mov eax, 18 - mov ebx, 1 - mov ecx, Slot - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{18.2} Procedure TerminateThreadBySlot(Slot: LongWord); StdCall; - Asm - push ebx - mov eax, 18 - mov ebx, 2 - mov ecx, Slot - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{18.3} Procedure ActivateWindow(Slot: LongWord); StdCall; - Asm - push ebx - mov eax, 18 - mov ebx, 3 - mov ecx, Slot - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{18.4} Function GetIdleTime: LongWord; StdCall; - Asm - push ebx - mov eax, 18 - mov ebx, 4 - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{18.5} Function GetCPUClock: LongWord; StdCall; - Asm - push ebx - mov eax, 18 - mov ebx, 5 - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{18.6} Function SaveRamDisk(Path: PKolibriChar): LongWord; StdCall; - Asm - push ebx - mov eax, 18 - mov ebx, 1 - mov ecx, Path - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{18.7} Function GetActiveWindow: LongWord; StdCall; - Asm - push ebx - mov eax, 18 - mov ebx, 7 - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{18.8.1} Function GetSpeakerState: Integer; StdCall; - Asm - push ebx - mov eax, 18 - mov ebx, 8 - mov ecx, 1 - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{18.8.2} Procedure SwitchSpeakerState; StdCall; - Asm - push ebx - mov eax, 18 - mov ebx, 8 - mov ecx, 2 - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{18.9} Function SystemShutdown(Param: LongWord): Integer; StdCall; - Asm - push ebx - mov eax, 18 - mov ebx, 9 - mov ecx, Param - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{18.10} Procedure MinimizeActiveWindow; StdCall; - Asm - push ebx - mov eax, 18 - mov ebx, 10 - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{18.11} Procedure GetDiskSystemInfo(Var Buffer); StdCall; - Asm - push ebx - mov eax, 18 - mov ebx, 11 - mov ecx, Buffer - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{18.12} {UNDEFINED} -(* -------------------------------------------------------- *) -{18.13} Procedure GetKernelVersion(Var Buffer: TKernelVersion); StdCall; - Asm - push ebx - mov eax, 18 - mov ebx, 13 - mov ecx, Buffer - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{18.14} Function WaitRetrace: Integer; StdCall; - Asm - push ebx - mov eax, 18 - mov ebx, 14 - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{18.15} Function CenterMousePointer: Integer; StdCall; - Asm - push ebx - mov eax, 18 - mov ebx, 15 - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{18.16} Function GetFreeMemory: LongWord; StdCall; - Asm - push ebx - mov eax, 18 - mov ebx, 16 - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{18.17} Function GetAvailableMemory: LongWord; StdCall; - Asm - push ebx - mov eax, 18 - mov ebx, 17 - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{18.18} Function TerminateThreadById(ID: LongWord): Integer; StdCall; - Asm - push ebx - mov eax, 18 - mov ebx, 18 - mov ecx, ID - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{18.19.0} Function GetMouseSpeed: LongWord; StdCall; - Asm - push ebx - mov eax, 18 - mov ebx, 19 - mov ecx, 0 - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{18.19.1} Procedure SetMouseSpeed(Speed: LongWord); StdCall; - Asm - push ebx - mov eax, 18 - mov ebx, 19 - mov ecx, 1 - mov edx, Speed - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{18.19.2} Function GetMouseSensitivity: LongWord; StdCall; - Asm - push ebx - mov eax, 18 - mov ebx, 19 - mov ecx, 2 - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{18.19.3} Procedure SetMouseSensitivity(Sensitivity: LongWord); StdCall; - Asm - push ebx - mov eax, 18 - mov ebx, 19 - mov ecx, 3 - mov edx, Sensitivity - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{18.19.4} Procedure SetMousePos(X, Y: Integer); StdCall; - Asm - push ebx - mov eax, 18 - mov ebx, 19 - mov ecx, 4 - mov edx, X - shl edx, 16 - or edx, Y - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{18.19.5} Procedure SetMouseButtons(State: LongWord); StdCall; - Asm - push ebx - mov eax, 18 - mov ebx, 19 - mov ecx, 5 - mov edx, State - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{18.19.6} Function GetDoubleClickTime: LongWord; StdCall; - Asm - push ebx - mov eax, 18 - mov ebx, 19 - mov ecx, 6 - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{18.19.7} Procedure SetDoubleClickTime(Time: LongWord); StdCall; - Asm - push ebx - mov eax, 18 - mov ebx, 19 - mov ecx, 7 - mov edx, Time - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{18.20} Function GetRAMInfo(Var Buffer: TRAMInfo): Integer; StdCall; - Asm - push ebx - mov eax, 18 - mov ebx, 20 - mov ecx, Buffer - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{18.21} Function GetSlotById(ID: LongWord): LongWord; StdCall; - Asm - push ebx - mov eax, 18 - mov ebx, 21 - mov ecx, ID - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{18.22.0} Function MinimizeWindowBySlot(Slot: LongWord): Integer; StdCall; - Asm - push ebx - mov eax, 18 - mov ebx, 22 - mov ecx, 0 - mov edx, Slot - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{18.22.1} Function MinimizeWindowByID(ID: LongWord): Integer; StdCall; - Asm - push ebx - mov eax, 18 - mov ebx, 22 - mov ecx, 1 - mov edx, ID - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{18.22.2} Function RestoreWindowBySlot(Slot: LongWord): Integer; StdCall; - Asm - push ebx - mov eax, 18 - mov ebx, 22 - mov ecx, 2 - mov edx, Slot - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{18.22.3} Function RestoreWindowByID(ID: LongWord): Integer; StdCall; - Asm - push ebx - mov eax, 18 - mov ebx, 22 - mov ecx, 3 - mov edx, ID - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{18.23} Function MinimizeAllWindows: LongWord; StdCall; - Asm - push ebx - mov eax, 18 - mov ebx, 23 - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{18.24} Procedure SetScreenLimits(Width, Height: LongWord); StdCall; - Asm - push ebx - mov eax, 18 - mov ebx, 24 - mov ecx, Width - mov edx, Height - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{18.25.1} Function GetWindowZOrder(ID: LongWord): LongWord; StdCall; - Asm - push ebx - mov eax, 18 - mov ebx, 25 - mov ecx, 1 - mov edx, ID - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{18.25.2} Function SetWindowZOrder(ID, ZOrder: LongWord): Integer; StdCall; - Asm - push ebx - push esi - mov eax, 18 - mov ebx, 25 - mov ecx, 2 - mov edx, ID - mov esi, ZOrder - int 64 - pop esi - pop ebx - End; -(* -------------------------------------------------------- *) -{19} {UNDEFINED} -(* -------------------------------------------------------- *) -{20.1} Function ResetMidi: Integer; StdCall; - Asm - push ebx - mov eax, 20 - mov ebx, 1 - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{20.2} Function OutputMidi(Data: Byte): Integer; StdCall; - Asm - push ebx - mov eax, 20 - mov ebx, 2 - mov cl, Data - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{21.1} Function SetMidiBase(Port: LongWord): Integer; StdCall; - Asm - push ebx - mov eax, 21 - mov ebx, 1 - mov ecx, Port - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{21.2} Function SetKeyboardLayout(Flags: LongWord; Var Table: TKeyboardLayout): Integer; StdCall; - Asm - push ebx - mov eax, 21 - mov ebx, 2 - mov ecx, Flags - mov edx, Table - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{21.2} Function SetKeyboardLayoutCountry(Country: LongWord): Integer; StdCall; - Asm - push ebx - mov eax, 21 - mov ebx, 2 - mov ecx, 9 - mov edx, Country - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{21.3} {UNDEFINED} -(* -------------------------------------------------------- *) -{21.4} {UNDEFINED} -(* -------------------------------------------------------- *) -{21.5} Function SetSystemLanguage(SystemLanguage: LongWord): Integer; StdCall; - Asm - push ebx - mov eax, 21 - mov ebx, 5 - mov ecx, SystemLanguage - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{21.6} {UNDEFINED} -(* -------------------------------------------------------- *) -{21.7} {UNDEFINED} -(* -------------------------------------------------------- *) -{21.8} {UNDEFINED} -(* -------------------------------------------------------- *) -{21.9} {UNDEFINED} -(* -------------------------------------------------------- *) -{21.10} {UNDEFINED} -(* -------------------------------------------------------- *) -{21.11} Function SetHDAccess(Value: LongWord): Integer; StdCall; - Asm - push ebx - mov eax, 21 - mov ebx, 11 - mov ecx, Value - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{21.12} Function SetPCIAccess(Value: LongWord): Integer; StdCall; - Asm - push ebx - mov eax, 21 - mov ebx, 12 - mov ecx, Value - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{22.0} Function SetSystemTime(Time: TSystemTime): Integer; StdCall; - Asm - push ebx - mov eax, 22 - mov ebx, 0 - mov ecx, Time - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{22.1} Function SetSystemDate(Date: TSystemDate): Integer; StdCall; - Asm - push ebx - mov eax, 22 - mov ebx, 1 - mov ecx, Date - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{22.2} Function SetDayOfWeek(DayOfWeek: LongWord): Integer; StdCall; - Asm - push ebx - mov eax, 22 - mov ebx, 2 - mov ecx, DayOfWeek - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{22.3} Function SetAlarm(Time: TSystemTime): Integer; StdCall; - Asm - push ebx - mov eax, 22 - mov ebx, 3 - mov ecx, Time - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{23} Function WaitEventByTime(Time: LongWord): LongWord; StdCall; - Asm - push ebx - mov eax, 23 - mov ebx, Time - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{24.4} Procedure OpenCDTray(Drive: LongWord); StdCall; - Asm - push ebx - mov eax, 24 - mov ebx, 4 - mov ecx, Drive - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{24.5} Procedure CloseCDTray(Drive: LongWord); StdCall; - Asm - push ebx - mov eax, 24 - mov ebx, 5 - mov ecx, Drive - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{25} Procedure DrawBackgroundLayerImage(Const Image; X, Y: Integer; Width, Height: LongWord); StdCall; - Asm - push ebx - mov eax, 25 - mov ebx, Image - mov ecx, Width - mov edx, X - shl ecx, 16 - shl edx, 16 - or ecx, Height - or edx, Y - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{26.1} Function GetMidiBase: LongWord; StdCall; - Asm - push ebx - mov eax, 26 - mov ebx, 1 - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{26.2} Procedure GetKeyboardLayout(Flags: LongWord; Var Table: TKeyboardLayout); StdCall; - Asm - push ebx - mov eax, 26 - mov ebx, 2 - mov ecx, Flags - mov edx, Table - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{26.2} Function GetKeyboardLayoutCountry: LongWord; StdCall; - Asm - push ebx - mov eax, 26 - mov ebx, 2 - mov ecx, 9 - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{26.3} {UNDEFINED} -(* -------------------------------------------------------- *) -{26.4} {UNDEFINED} -(* -------------------------------------------------------- *) -{26.5} Function GetSystemLanguage: LongWord; StdCall; - Asm - push ebx - mov eax, 26 - mov ebx, 5 - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{26.6} {UNDEFINED} -(* -------------------------------------------------------- *) -{26.7} {UNDEFINED} -(* -------------------------------------------------------- *) -{26.8} {UNDEFINED} -(* -------------------------------------------------------- *) -{26.9} Function GetTickCount: LongWord; StdCall; - Asm - push ebx - mov eax, 26 - mov ebx, 9 - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{26.10} Function GetTickCount64: QuadWord; StdCall; - Asm - push ebx - mov eax, 26 - mov ebx, 10 - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{26.11} Function IsHDAccessAllowed: LongWord; StdCall; - Asm - push ebx - mov eax, 26 - mov ebx, 11 - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{26.12} Function IsPCIAccessAllowed: LongWord; StdCall; - Asm - push ebx - mov eax, 26 - mov ebx, 12 - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{27} {UNDEFINED} -(* -------------------------------------------------------- *) -{28} {UNDEFINED} -(* -------------------------------------------------------- *) -{29} Function GetSystemDate: TSystemDate; StdCall; - Asm - mov eax, 29 - int 64 - End; -(* -------------------------------------------------------- *) -{30.1} Procedure SetCurrentDirectory(Path: PKolibriChar); StdCall; - Asm - push ebx - mov eax, 30 - mov ebx, 1 - mov ecx, Path - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{30.2} Function GetCurrentDirectory(Buffer: PKolibriChar; Count: LongWord): LongWord; StdCall; - Asm - push ebx - mov eax, 30 - mov ebx, 2 - mov ecx, Buffer - mov edx, Count - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{31} {UNDEFINED} -(* -------------------------------------------------------- *) -{32} {UNDEFINED} -(* -------------------------------------------------------- *) -{33} {UNDEFINED} -(* -------------------------------------------------------- *) -{34} Function GetPointOwner(X, Y: Integer): LongWord; StdCall; - Asm - push ebx - mov eax, 34 - mov ebx, X - mov ecx, Y - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{35} Function GetPixel(X, Y: Integer): LongWord; StdCall; - Asm - push ebx - // at first need to know Screen.Width - mov eax, 61 - mov ebx, 1 - int 64 - // at now eax = (Width << 16) | Height - // need to make ebx = Y * Screen.Width + X - shr eax, 16 - mul Y - add eax, X - mov ebx, eax - // and now GetPixel - mov eax, 35 - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{36} Procedure GetScreenImage(Var Buffer; X, Y: Integer; Width, Height: LongWord); StdCall; - Asm - push ebx - mov eax, 36 - mov ebx, Buffer - mov ecx, Width - mov edx, X - shl ecx, 16 - shl edx, 16 - or ecx, Height - or edx, Y - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{37.0} Function GetMousePos: TPoint; StdCall; - Asm - push ebx - mov eax, 37 - mov ebx, 0 - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{37.1} Function GetWindowMousePos: TPoint; StdCall; - Asm - push ebx - mov eax, 37 - mov ebx, 1 - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{37.2} Function GetMouseButtons: LongWord; StdCall; - Asm - push ebx - mov eax, 37 - mov ebx, 2 - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{37.3} Function GetMouseEvents: LongWord; StdCall; - Asm - push ebx - mov eax, 37 - mov ebx, 3 - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{37.4} Function LoadCursorFromFile(Path: PKolibriChar): LongWord; StdCall; - Asm - push ebx - mov eax, 37 - mov ebx, 4 - mov ecx, Path - mov edx, 0 - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{37.4} Function LoadCursorFromMemory(Const Buffer): LongWord; StdCall; - Asm - push ebx - mov eax, 37 - mov ebx, 4 - mov ecx, Buffer - mov edx, 1 - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{37.4} Function LoadCursorIndirect(Const Buffer; HotSpotX, HotSpotY: ShortInt): LongWord; StdCall; - Asm - push ebx - mov eax, 37 - mov ebx, 4 - mov ecx, Buffer - mov dl, HotSpotY - mov dh, HotSpotX - shl edx, 16 - or edx, 2 - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{37.5} Function SetCursor(Handle: LongWord): LongWord; StdCall; - Asm - push ebx - mov eax, 37 - mov ebx, 5 - mov ecx, Handle - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{37.6} Function DeleteCursor(Handle: LongWord): LongWord; StdCall; - Asm - push ebx - mov eax, 37 - mov ebx, 6 - mov ecx, Handle - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{37.7} Function GetMouseScroll: TPoint; StdCall; - Asm - push ebx - mov eax, 37 - mov ebx, 7 - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{38} Procedure DrawLine(X1, Y1, X2, Y2: Integer; Color: LongWord); StdCall; - Asm - push ebx - mov eax, 38 - mov ebx, X1 - mov ecx, Y1 - shl ebx, 16 - shl ecx, 16 - or ebx, X2 - or ecx, Y2 - mov edx, Color - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{39.1} Function GetBackgroundSize: TSize; StdCall; - Asm - push ebx - mov eax, 39 - mov ebx, 1 - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{39.2} Function GetBackgroundPixel(X, Y: Integer): LongWord; StdCall; - Asm - push ebx - // at first need to know Background.Width - mov eax, 39 - mov ebx, 1 - int 64 - // at now eax = (Width << 16) | Height - // need to make ecx = (X + Y * Background.Width) * 3 - shr eax, 16 - mul Y - add eax, X - mov ecx, eax - add ecx, eax - add ecx, eax - // and now GetBackgroundPixel - mov eax, 39 - mov ebx, 2 - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{39.3} {UNDEFINED} -(* -------------------------------------------------------- *) -{39.4} Function GetBackgroundDrawMode: LongWord; StdCall; - Asm - push ebx - mov eax, 39 - mov ebx, 4 - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{40} Function SetEventMask(Mask: LongWord): LongWord; StdCall; - Asm - push ebx - mov eax, 40 - mov ebx, Mask - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{41} {UNDEFINED} -(* -------------------------------------------------------- *) -{42} {UNDEFINED} -(* -------------------------------------------------------- *) -{43} Function InPort(Port: LongWord; Var Data: Byte): LongWord; StdCall; - Asm - push ebx - mov eax, 43 - mov ecx, Port - or ecx, $80000000 - int 64 - mov ecx, Data - mov [ecx], bl - pop ebx - End; -(* -------------------------------------------------------- *) -{43} Function OutPort(Port: LongWord; Data: Byte): LongWord; StdCall; - Asm - push ebx - mov eax, 43 - mov bl, Data - mov ecx, Port - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{44} {UNDEFINED} -(* -------------------------------------------------------- *) -{45} {UNDEFINED} -(* -------------------------------------------------------- *) -{46} Function ReservePorts(First, Last: LongWord): LongWord; StdCall; - Asm - push ebx - mov eax, 46 - mov ebx, 0 - mov ecx, First - mov edx, Last - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{46} Function FreePorts(First, Last: LongWord): LongWord; StdCall; - Asm - push ebx - mov eax, 46 - mov ebx, 1 - mov ecx, First - mov edx, Last - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{47} {DrawNumber} -(* -------------------------------------------------------- *) -{48.0} Procedure ApplyStyleSettings; StdCall; - Asm - push ebx - mov eax, 48 - mov ebx, 0 - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{48.1} Procedure SetButtonStyle(ButtonStyle: LongWord); StdCall; - Asm - push ebx - mov eax, 48 - mov ebx, 1 - mov ecx, ButtonStyle - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{48.2} Procedure SetStandardColors(Var ColorTable: TStandardColors; Size: LongWord); StdCall; - Asm - push ebx - mov eax, 48 - mov ebx, 2 - mov ecx, ColorTable - mov edx, Size - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{48.3} Procedure GetStandardColors(Var ColorTable: TStandardColors; Size: LongWord); StdCall; - Asm - push ebx - mov eax, 48 - mov ebx, 3 - mov ecx, ColorTable - mov edx, Size - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{48.4} Function GetSkinHeight: LongWord; StdCall; - Asm - push ebx - mov eax, 48 - mov ebx, 4 - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{48.5} Function GetScreenWorkingArea: TRect; StdCall; - Asm - push ebx - push edi - mov edi, eax - mov eax, 48 - mov ebx, 5 - int 64 - movzx edx, ax - movzx ecx, bx - shr eax, 16 - shr ebx, 16 - mov [edi].TRect.Left, eax - mov [edi].TRect.Right, edx - mov [edi].TRect.Top, ebx - mov [edi].TRect.Bottom, ecx - pop edi - pop ebx - End; -(* -------------------------------------------------------- *) -{48.6} Procedure SetScreenWorkingArea(Left, Top, Right, Bottom: Integer); StdCall; - Asm - push ebx - mov eax, 48 - mov ebx, 6 - mov ecx, Left - mov edx, Top - shl ecx, 16 - shl edx, 16 - or ecx, Right - or edx, Bottom - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{48.7} Function GetSkinMargins: TRect; StdCall; - Asm - push ebx - push edi - mov edi, eax - mov eax, 48 - mov ebx, 7 - int 64 - movzx edx, ax - movzx ecx, bx - shr eax, 16 - shr ebx, 16 - mov [edi].TRect.Left, eax - mov [edi].TRect.Right, edx - mov [edi].TRect.Top, ebx - mov [edi].TRect.Bottom, ecx - pop edi - pop ebx - End; -(* -------------------------------------------------------- *) -{48.8} Function SetSkin(Path: PKolibriChar): Integer; StdCall; - Asm - push ebx - mov eax, 48 - mov ebx, 8 - mov ecx, Path - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{48.9} Function GetFontSmoothing: Integer; StdCall; - Asm - push ebx - mov eax, 48 - mov ebx, 9 - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{48.10} Procedure SetFontSmoothing(Smoothing: Integer); StdCall; - Asm - push ebx - mov eax, 48 - mov ebx, 10 - mov ecx, Smoothing - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{48.11} Function GetFontHeight: LongWord; StdCall; - Asm - push ebx - mov eax, 48 - mov ebx, 11 - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{48.12} Procedure SetFontHeight(Height: LongWord); StdCall; - Asm - push ebx - mov eax, 48 - mov ebx, 12 - mov ecx, Height - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{49} {Advanced Power Management} -(* -------------------------------------------------------- *) -{50.0} Procedure SetWindowShape(Const Data); StdCall; - Asm - push ebx - mov eax, 50 - mov ebx, 0 - mov ecx, Data - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{50.1} Procedure SetWindowScale(Scale: LongWord); StdCall; - Asm - push ebx - mov eax, 50 - mov ebx, 1 - mov ecx, Scale - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{51.1} Function ThreadCreate(Entry, Stack: Pointer): LongWord; StdCall; - Asm - push ebx - mov eax, 51 - mov ebx, 1 - mov ecx, Entry - mov edx, Stack - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{52} {UNDEFINED} -(* -------------------------------------------------------- *) -{53} {UNDEFINED} -(* -------------------------------------------------------- *) -{54.0} Function GetClipboardSlotCount: Integer; StdCall; - Asm - push ebx - mov eax, 54 - mov ebx, 0 - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{54.1} Function GetClipboardData(Slot: LongWord): Pointer; StdCall; - Asm - push ebx - mov eax, 54 - mov ebx, 1 - mov ecx, Slot - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{54.2} Function SetClipboardData(Const Src; Count: LongWord): Integer; StdCall; - Asm - push ebx - mov eax, 54 - mov ebx, 2 - mov ecx, Count - mov edx, Src - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{54.3} Function DeleteClipboardLastSlot: Integer; StdCall; - Asm - push ebx - mov eax, 54 - mov ebx, 3 - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{54.4} Function ResetClipboard: Integer; StdCall; - Asm - push ebx - mov eax, 54 - mov ebx, 4 - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{55} Function SpeakerPlay(Const Data): LongWord; StdCall; - Asm - push ebx - push esi - mov eax, 55 - mov ebx, 55 - mov esi, Data - int 64 - pop esi - pop ebx - End; -(* -------------------------------------------------------- *) -{56} {UNDEFINED} -(* -------------------------------------------------------- *) -{57} {PCI BIOS} -(* -------------------------------------------------------- *) -{58} {UNDEFINED} -(* -------------------------------------------------------- *) -{59} {UNDEFINED} -(* -------------------------------------------------------- *) -{60.1} Function IPCSetBuffer(Const Buffer: TIPCBuffer; Size: LongWord): Integer; StdCall; - Asm - push ebx - mov eax, 60 - mov ebx, 1 - mov ecx, Buffer - mov edx, Size - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{60.2} Function IPCSendMessage(ID: LongWord; Var Msg: TIPCMessage; Size: LongWord): Integer; StdCall; - Asm - push ebx - push esi - mov eax, 60 - mov ebx, 2 - mov ecx, ID - mov edx, Msg - mov esi, Size - int 64 - pop esi - pop ebx - End; -(* -------------------------------------------------------- *) -{61.1} Function GetScreenSize: TSize; StdCall; - Asm - push ebx - mov eax, 61 - mov ebx, 1 - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{61.2} Function GetScreenBitsPerPixel: LongWord; StdCall; - Asm - push ebx - mov eax, 61 - mov ebx, 2 - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{61.3} Function GetScreenBytesPerScanLine: LongWord; StdCall; - Asm - push ebx - mov eax, 61 - mov ebx, 3 - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{62.0} Function GetPCIVersion: LongWord; StdCall; - Asm - push ebx - mov eax, 62 - mov bl, 0 - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{62.1} Function GetLastPCIBus: LongWord; StdCall; - Asm - push ebx - mov eax, 62 - mov bl, 1 - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{62.2} Function GetPCIAddressingMode: LongWord; StdCall; - Asm - push ebx - mov eax, 62 - mov bl, 2 - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{62.3} {UNDEFINED} -(* -------------------------------------------------------- *) -{62.4} Function ReadPCIByte(Bus, Device, Func, Reg: Byte): Byte; StdCall; - Asm - push ebx - mov eax, 62 - mov bl, 4 - mov bh, Bus - mov cl, Reg - mov ch, Device - shl ch, 3 - or ch, Func - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{62.5} Function ReadPCIWord(Bus, Device, Func, Reg: Byte): Word; StdCall; - Asm - push ebx - mov eax, 62 - mov bl, 5 - mov bh, Bus - mov cl, Reg - mov ch, Device - shl ch, 3 - or ch, Func - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{62.6} Function ReadPCILongWord(Bus, Device, Func, Reg: Byte): LongWord; StdCall; - Asm - push ebx - mov eax, 62 - mov bl, 6 - mov bh, Bus - mov cl, Reg - mov ch, Device - shl ch, 3 - or ch, Func - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{62.7} {UNDEFINED} -(* -------------------------------------------------------- *) -{62.8} Function WritePCIByte(Bus, Device, Func, Reg: Byte; Data: Byte): LongWord; StdCall; - Asm - push ebx - mov eax, 62 - mov bl, 8 - mov bh, Bus - mov cl, Reg - mov ch, Device - shl ch, 3 - or ch, Func - mov dl, Data - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{62.9} Function WritePCIWord(Bus, Device, Func, Reg: Byte; Data: Word): LongWord; StdCall; - Asm - push ebx - mov eax, 62 - mov bl, 9 - mov bh, Bus - mov cl, Reg - mov ch, Device - shl ch, 3 - or ch, Func - mov dx, Data - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{62.10} Function WritePCILongWord(Bus, Device, Func, Reg: Byte; Data: LongWord): LongWord; StdCall; - Asm - push ebx - mov eax, 62 - mov bl, 10 - mov bh, Bus - mov cl, Reg - mov ch, Device - shl ch, 3 - or ch, Func - mov edx, Data - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{63.1} Procedure BoardWriteByte(Data: Byte); StdCall; - Asm - push ebx - mov eax, 63 - mov ebx, 1 - mov cl, Data - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{63.2} Function BoardReadByte(Var Data: Byte): LongWord; StdCall; - Asm - push ebx - mov eax, 63 - mov ebx, 2 - int 64 - mov ecx, Data - mov [ecx], al - mov eax, ebx - pop ebx - End; -(* -------------------------------------------------------- *) -{64} Function ReallocAppMemory(Count: LongWord): Integer; StdCall; - Asm - push ebx - mov eax, 64 - mov ebx, 1 - mov ecx, Count - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{65} Procedure DrawImageEx(Const Image; Left, Top: Integer; Width, Height: LongWord; BPP: LongWord; Const Palette: Pointer; Padding: LongWord); StdCall; - Asm - push ebx - mov eax, 65 - mov ebx, Image - mov ecx, Width - mov edx, Left - shl ecx, 16 - shl edx, 16 - or ecx, Height - or edx, Top - mov esi, BPP - mov edi, Palette - mov ebp, Padding - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{66.1} Procedure SetKeyboardInputMode(Mode: LongWord); StdCall; - Asm - push ebx - mov eax, 66 - mov ebx, 1 - mov ecx, Mode - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{66.2} Function GetKeyboardInputMode: LongWord; StdCall; - Asm - push ebx - mov eax, 66 - mov ebx, 2 - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{66.3} Function GetControlKeyState: LongWord; StdCall; - Asm - push ebx - mov eax, 66 - mov ebx, 3 - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{66.4} Function SetHotKey(ScanCode, Control: LongWord): Integer; StdCall; - Asm - push ebx - mov eax, 66 - mov ebx, 4 - mov ecx, ScanCode - mov edx, Control - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{66.5} Function ResetHotKey(ScanCode, Control: LongWord): Integer; StdCall; - Asm - push ebx - mov eax, 66 - mov ebx, 4 - mov ecx, ScanCode - mov edx, Control - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{66.6} Procedure KeyboardLock; StdCall; - Asm - push ebx - mov eax, 66 - mov ebx, 6 - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{66.7} Procedure KeyboardUnlock; StdCall; - Asm - push ebx - mov eax, 66 - mov ebx, 7 - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{67} Procedure SetWindowPos(Left, Top, Right, Bottom: Integer); StdCall; - Asm - push ebx - push esi - mov eax, 67 - mov ebx, Left - mov ecx, Top - mov edx, Right - mov esi, Bottom - int 64 - pop esi - pop ebx - End; -(* -------------------------------------------------------- *) -{68.0} Function GetTaskSwitchCount: LongWord; StdCall; - Asm - push ebx - mov eax, 68 - mov ebx, 0 - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{68.1} Procedure SwitchThread; StdCall; - Asm - push ebx - mov eax, 68 - mov ebx, 1 - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{68.2.0} Function EnableRDPMC: LongWord; StdCall; - Asm - push ebx - mov eax, 68 - mov ebx, 2 - mov ecx, 0 - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{68.2.1} Function IsCacheEnabled: LongWord; StdCall; - Asm - push ebx - mov eax, 68 - mov ebx, 2 - mov ecx, 1 - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{68.2.2} Procedure EnableCache; StdCall; - Asm - push ebx - mov eax, 68 - mov ebx, 2 - mov ecx, 2 - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{68.2.3} Procedure DisableCache; StdCall; - Asm - push ebx - mov eax, 68 - mov ebx, 2 - mov ecx, 3 - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{68.3} {ReadMSR} -(* -------------------------------------------------------- *) -{68.4} {WriteMSR} -(* -------------------------------------------------------- *) -{68.5} {UNDEFINED} -(* -------------------------------------------------------- *) -{68.6} {UNDEFINED} -(* -------------------------------------------------------- *) -{68.7} {UNDEFINED} -(* -------------------------------------------------------- *) -{68.8} {UNDEFINED} -(* -------------------------------------------------------- *) -{68.9} {UNDEFINED} -(* -------------------------------------------------------- *) -{68.10} {UNDEFINED} -(* -------------------------------------------------------- *) -{68.11} Function HeapCreate: LongWord; StdCall; - Asm - push ebx - mov eax, 68 - mov ebx, 11 - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{68.12} Function HeapAllocate(Bytes: LongWord): Pointer; StdCall; - Asm - push ebx - mov eax, 68 - mov ebx, 12 - mov ecx, Bytes - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{68.13} Function HeapFree(MemPtr: Pointer): LongWord; StdCall; - Asm - push ebx - mov eax, 68 - mov ebx, 13 - mov ecx, MemPtr - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{68.14} Procedure WaitSignal(Var Buffer: TSignalBuffer); StdCall; - Asm - push ebx - mov eax, 68 - mov ebx, 14 - mov ecx, Buffer - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{68.15} {UNDEFINED} -(* -------------------------------------------------------- *) -{68.16} Function GetDriver(Name: PKolibriChar): LongWord; StdCall; - Asm - push ebx - mov eax, 68 - mov ebx, 16 - mov ecx, Name - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{68.17} Function ControlDriver(Var CtrlStructure: TCtrlDriver): LongWord; StdCall; - Asm - push ebx - mov eax, 68 - mov ebx, 17 - mov ecx, CtrlStructure - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{68.18} {UNDEFINED} -(* -------------------------------------------------------- *) -{68.19} Function LoadLibrary(Path: PKolibriChar): Pointer; StdCall; - Asm - push ebx - mov eax, 68 - mov ebx, 19 - mov ecx, Path - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{68.20} Function HeapReallocate(MemPtr: Pointer; Bytes: LongWord): Pointer; StdCall; - Asm - push ebx - mov eax, 68 - mov ebx, 20 - mov ecx, Bytes - mov edx, MemPtr - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{68.21} Function LoadDriver(Name, CmdLine: PKolibriChar): LongWord; StdCall; - Asm - push ebx - mov eax, 68 - mov ebx, 21 - mov ecx, Name - mov edx, CmdLine - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{68.22} Function SharedMemoryOpen(Name: PKolibriChar; Bytes: LongWord; Flags: LongWord): Pointer; StdCall; - Asm - push ebx - push esi - mov eax, 68 - mov ebx, 22 - mov ecx, Name - mov edx, Bytes - mov esi, Flags - int 64 - pop esi - pop ebx - End; -(* -------------------------------------------------------- *) -{68.23} Function SharedMemoryClose(Name: PKolibriChar): LongWord; StdCall; - Asm - push ebx - mov eax, 68 - mov ebx, 23 - mov ecx, Name - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{68.24} Function SetExceptionHandler(Handler: Pointer; Mask: LongWord; Var OldMask: LongWord): Pointer; StdCall; - Asm - push ebx - mov eax, 68 - mov ebx, 24 - mov ecx, Handler - mov edx, Mask - int 64 - mov ecx, OldMask - mov [ecx], ebx - pop ebx - End; -(* -------------------------------------------------------- *) -{68.25} Function SetExceptionActivity(Signal, Activity: LongWord): Integer; StdCall; - Asm - push ebx - mov eax, 68 - mov ebx, 25 - mov ecx, Signal - mov edx, Activity - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{68.26} Procedure ReleaseMemoryPages(MemPtr: Pointer; Offset, Size: LongWord); StdCall; - Asm - push ebx - push esi - mov eax, 68 - mov ebx, 26 - mov ecx, MemPtr - mov edx, &Offset - mov esi, Size - int 64 - pop esi - pop ebx - End; -(* -------------------------------------------------------- *) -{68.27} Function LoadFile(Path: PKolibriChar; Var Size: LongWord): Pointer; StdCall; - Asm - push ebx - mov eax, 68 - mov ebx, 27 - mov ecx, Path - int 64 - mov ecx, Size - mov [ecx], edx - pop ebx - End; -(* -------------------------------------------------------- *) -{69.0} Procedure SetDebugBuffer(Const Buffer: TDebugBuffer); StdCall; - Asm - push ebx - mov eax, 69 - mov ebx, 0 - mov ecx, Buffer - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{69.1} Procedure GetThreadContext(ID: LongWord; Var Context: TThreadContext); StdCall; - Const SIZEOF_TTHREADCONTEXT = SizeOf(TThreadContext); - Asm - push ebx - push esi - mov eax, 69 - mov ebx, 1 - mov ecx, ID - mov edx, SIZEOF_TTHREADCONTEXT - mov esi, Context - int 64 - pop esi - pop ebx - End; -(* -------------------------------------------------------- *) -{69.2} Procedure SetThreadContext(ID: LongWord; Const Context: TThreadContext); StdCall; - Const SIZEOF_TTHREADCONTEXT = SizeOf(TThreadContext); - Asm - push ebx - push esi - mov eax, 69 - mov ebx, 2 - mov ecx, ID - mov edx, SIZEOF_TTHREADCONTEXT - mov esi, Context - int 64 - pop esi - pop ebx - End; -(* -------------------------------------------------------- *) -{69.3} Procedure DetachThread(ID: LongWord); StdCall; - Asm - push ebx - mov eax, 69 - mov ebx, 3 - mov ecx, ID - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{69.4} Procedure SuspendThread(ID: LongWord); StdCall; - Asm - push ebx - mov eax, 69 - mov ebx, 4 - mov ecx, ID - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{69.5} Procedure ResumeThread(ID: LongWord); StdCall; - Asm - push ebx - mov eax, 69 - mov ebx, 5 - mov ecx, ID - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{69.6} Function ReadProcessMemory(ID, Count: LongWord; Const Src; Var Dst): Integer; StdCall; - Asm - push ebx - push esi - push edi - mov eax, 69 - mov ebx, 6 - mov ecx, ID - mov edx, Count - mov esi, Src - mov edi, Dst - int 64 - pop edi - pop esi - pop ebx - End; -(* -------------------------------------------------------- *) -{69.7} Function WriteProcessMemory(ID, Count: LongWord; Const Src; Var Dst): Integer; StdCall; - Asm - push ebx - push esi - push edi - mov eax, 69 - mov ebx, 7 - mov ecx, ID - mov edx, Count - mov esi, Dst - mov edi, Src - int 64 - pop edi - pop esi - pop ebx - End; -(* -------------------------------------------------------- *) -{69.8} Procedure DebugTerminate(ID: LongWord); StdCall; - Asm - push ebx - mov eax, 69 - mov ebx, 8 - mov ecx, ID - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{69.9} Function SetBreakPoint(ID: LongWord; Index, Flags: Byte; Address: Pointer): Integer; StdCall; - Asm - push ebx - push esi - mov eax, 69 - mov ebx, 9 - mov ecx, ID - mov dl, Index - mov dh, Flags - mov esi, Address - int 64 - pop esi - pop ebx - End; -(* -------------------------------------------------------- *) -{69.9} Function ResetBreakPoint(ID: LongWord; Index, Flags: Byte; Address: Pointer): Integer; StdCall; - Asm - push ebx - push esi - mov eax, 69 - mov ebx, 9 - mov ecx, ID - mov dl, Index - mov dh, Flags - or dh, $80 - mov esi, Address - int 64 - pop esi - pop ebx - End; -(* -------------------------------------------------------- *) -{70.0} Function ReadFile(Path: PKolibriChar; Var Buffer; Count, LoPos, HiPos: Cardinal; Var BytesRead: LongWord): Integer; StdCall; - Asm - push ebx - push Path - dec esp - mov byte[esp], 0 - push Buffer - push Count - push HiPos - push LoPos - push 0 - mov ebx, esp - mov eax, 70 - int 64 - add esp, 25 - mov ecx, BytesRead - mov [ecx], ebx - pop ebx - End; -(* -------------------------------------------------------- *) -{70.1} Function ReadFolder(Path: PKolibriChar; Var Buffer; Count, Start, Flags: Cardinal; Var BlocksRead: LongWord): Integer; StdCall; - Asm - push ebx - push Path - dec esp - mov byte[esp], 0 - push Buffer - push Count - push Flags - push Start - push 1 - mov ebx, esp - mov eax, 70 - int 64 - add esp, 25 - mov ecx, BlocksRead - mov [ecx], ebx - pop ebx - End; -(* -------------------------------------------------------- *) -{70.2} Function CreateFile(Path: PKolibriChar): Integer; StdCall; - Asm - push ebx - push Path - dec esp - mov byte[esp], 0 - push 0 - push 0 - push 0 - push 0 - push 2 - mov ebx, esp - mov eax, 70 - int 64 - add esp, 25 - pop ebx - End; -(* -------------------------------------------------------- *) -{70.3} Function WriteFile(Path: PKolibriChar; Const Buffer; Count, LoPos, HiPos: Cardinal; Var BytesWritten: LongWord): Integer; StdCall; - Asm - push ebx - push Path - dec esp - mov byte[esp], 0 - push Buffer - push Count - push HiPos - push LoPos - push 3 - mov ebx, esp - mov eax, 70 - int 64 - add esp, 25 - mov ecx, BytesWritten - mov [ecx], ebx - pop ebx - End; -(* -------------------------------------------------------- *) -{70.4} Function ResizeFile(Path: PKolibriChar; LoSize, HiSize: Cardinal): Integer; StdCall; - Asm - push ebx - push Path - dec esp - mov byte[esp], 0 - push 0 - push 0 - push HiSize - push LoSize - push 4 - mov ebx, esp - mov eax, 70 - int 64 - add esp, 25 - pop ebx - End; -(* -------------------------------------------------------- *) -{70.5} Function GetFileAttributes(Path: PKolibriChar; Var Buffer: TFileAttributes): Integer; StdCall; - Asm - push ebx - push Path - dec esp - mov byte[esp], 0 - push Buffer - push 0 - push 0 - push 0 - push 5 - mov ebx, esp - mov eax, 70 - int 64 - add esp, 25 - pop ebx - End; -(* -------------------------------------------------------- *) -{70.6} Function SetFileAttributes(Path: PKolibriChar; Var Buffer: TFileAttributes): Integer; StdCall; - Asm - push ebx - push Path - dec esp - mov byte[esp], 0 - push Buffer - push 0 - push 0 - push 0 - push 6 - mov ebx, esp - mov eax, 70 - int 64 - add esp, 25 - pop ebx - End; -(* -------------------------------------------------------- *) -{70.7} Function RunFile(Path, CmdLine: PKolibriChar): Integer; StdCall; - Asm - push ebx - push Path - dec esp - mov byte[esp], 0 - push 0 - push 0 - push CmdLine - push 0 - push 7 - mov ebx, esp - mov eax, 70 - int 64 - add esp, 25 - pop ebx - End; -(* -------------------------------------------------------- *) -{70.7} Function DebugFile(Path, CmdLine: PKolibriChar): Integer; StdCall; - Asm - push ebx - push Path - dec esp - mov byte[esp], 0 - push 0 - push 0 - push CmdLine - push 1 - push 7 - mov ebx, esp - mov eax, 70 - int 64 - add esp, 25 - pop ebx - End; -(* -------------------------------------------------------- *) -{70.8} Function DeleteFile(Path: PKolibriChar): Integer; StdCall; - Asm - push ebx - push Path - dec esp - mov byte[esp], 0 - push 0 - push 0 - push 0 - push 0 - push 8 - mov ebx, esp - mov eax, 70 - int 64 - add esp, 25 - pop ebx - End; -(* -------------------------------------------------------- *) -{70.9} Function CreateFolder(Path: PKolibriChar): Integer; StdCall; - Asm - push ebx - push Path - dec esp - mov byte[esp], 0 - push 0 - push 0 - push 0 - push 0 - push 9 - mov ebx, esp - mov eax, 70 - int 64 - add esp, 25 - pop ebx - End; -(* -------------------------------------------------------- *) -{71.1} Procedure SetWindowCaption(Caption: PKolibriChar); StdCall; - Asm - push ebx - mov eax, 71 - mov ebx, 1 - mov ecx, Caption - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{72.1.2} Function SendActiveWindowKey(KeyCode: LongWord): Integer; StdCall; - Asm - push ebx - mov eax, 72 - mov ebx, 1 - mov ecx, 2 - mov edx, KeyCode - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{72.1.3} Function SendActiveWindowButton(ButtonID: LongWord): Integer; StdCall; - Asm - push ebx - mov eax, 72 - mov ebx, 1 - mov ecx, 3 - mov edx, ButtonID - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{73} Procedure Blit(Const Src; SrcX, SrcY: Integer; SrcW, SrcH: LongWord; DstX, DstY: Integer; DstW, DstH: LongWord; Stride, Flags: LongWord); StdCall; - Asm - push Stride - push Src - push SrcH - push SrcW - push SrcY - push SrcX - push DstH - push DstW - push DstY - push DstX - mov eax, 73 - mov ebx, Flags - mov ecx, esp - int 64 - add esp, 40 - End; -(* -------------------------------------------------------- *) -{74.-1} Function GetActiveNetworkDevices: LongWord; StdCall; - Asm - push ebx - mov eax, 74 - mov bl, -1 - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{74.0} Function GetNetworkDeviceType(Device: Byte): Integer; StdCall; - Asm - push ebx - mov eax, 74 - mov bl, 0 - mov bh, Device - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{74.1} Function GetNetworkDeviceName(Device: Byte; Var Buffer): Integer; StdCall; - Asm - push ebx - mov eax, 74 - mov bl, 1 - mov bh, Device - mov ecx, Buffer - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{74.2} Function ResetNetworkDevice(Device: Byte): Integer; StdCall; - Asm - push ebx - mov eax, 74 - mov bl, 2 - mov bh, Device - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{74.3} Function StopNetworkDevice(Device: Byte): Integer; StdCall; - Asm - push ebx - mov eax, 74 - mov bl, 3 - mov bh, Device - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{74.4} Function GetNetworkDevicePointer(Device: Byte): Pointer; StdCall; - Asm - push ebx - mov eax, 74 - mov bl, 4 - mov bh, Device - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{74.5} {UNDEFINED} -(* -------------------------------------------------------- *) -{74.6} Function GetSentPackets(Device: Byte): Integer; StdCall; - Asm - push ebx - mov eax, 74 - mov bl, 6 - mov bh, Device - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{74.7} Function GetReceivedPackets(Device: Byte): Integer; StdCall; - Asm - push ebx - mov eax, 74 - mov bl, 7 - mov bh, Device - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{74.8} Function GetSentBytes(Device: Byte): Integer; StdCall; - Asm - push ebx - mov eax, 74 - mov bl, 8 - mov bh, Device - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{74.9} Function GetReceivedBytes(Device: Byte): Integer; StdCall; - Asm - push ebx - mov eax, 74 - mov bl, 9 - mov bh, Device - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{74.10} Function GetLinkStatus(Device: Byte): Integer; StdCall; - Asm - push ebx - mov eax, 74 - mov bl, 10 - mov bh, Device - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{75.0} Function OpenSocket(Domain, Kind, Protocol: LongWord): LongWord; StdCall; - Asm - push ebx - push esi - mov eax, 75 - mov bl, 0 - mov ecx, Domain - mov edx, Kind - mov esi, Protocol - int 64 - pop esi - pop ebx - End; -(* -------------------------------------------------------- *) -{75.1} Function CloseSocket(Socket: LongWord): Integer; StdCall; - Asm - push ebx - mov eax, 75 - mov bl, 1 - mov ecx, Socket - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{75.2} Function SocketBind(Socket: LongWord; Var SockAddr: TSockAddr): Integer; StdCall; - Const SIZEOF_TSOCKADDR = SizeOf(TSockAddr); - Asm - push ebx - push esi - mov eax, 75 - mov bl, 2 - mov ecx, Socket - mov edx, SockAddr - mov esi, SIZEOF_TSOCKADDR - int 64 - pop esi - pop ebx - End; -(* -------------------------------------------------------- *) -{75.3} Function SocketListen(Socket: LongWord; Var BackLog): Integer; StdCall; - Asm - push ebx - mov eax, 75 - mov bl, 3 - mov ecx, Socket - mov edx, BackLog - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{75.4} Function SocketConnect(Socket: LongWord; Var SockAddr: TSockAddr): Integer; StdCall; - Const SIZEOF_TSOCKADDR = SizeOf(TSockAddr); - Asm - push ebx - push esi - mov eax, 75 - mov bl, 4 - mov ecx, Socket - mov edx, SockAddr - mov esi, SIZEOF_TSOCKADDR - int 64 - pop esi - pop ebx - End; -(* -------------------------------------------------------- *) -{75.5} Function SocketAccept(Socket: LongWord; Var SockAddr: TSockAddr): LongWord; StdCall; - Const SIZEOF_TSOCKADDR = SizeOf(TSockAddr); - Asm - push ebx - push esi - mov eax, 75 - mov bl, 5 - mov ecx, Socket - mov edx, SockAddr - mov esi, SIZEOF_TSOCKADDR - int 64 - pop esi - pop ebx - End; -(* -------------------------------------------------------- *) -{75.6} Function SocketSend(Socket: LongWord; Const Buffer; Size, Flags: LongWord): Integer; StdCall; - Asm - push ebx - push esi - push edi - mov eax, 75 - mov bl, 6 - mov ecx, Socket - mov edx, Buffer - mov esi, Size - mov edi, Flags - int 64 - pop edi - pop esi - pop ebx - End; -(* -------------------------------------------------------- *) -{75.7} Function SocketReceive(Socket: LongWord; Var Buffer; Size, Flags: LongWord): Integer; StdCall; - Asm - push ebx - push esi - push edi - mov eax, 75 - mov bl, 7 - mov ecx, Socket - mov edx, Buffer - mov esi, Size - mov edi, Flags - int 64 - pop edi - pop esi - pop ebx - End; -(* -------------------------------------------------------- *) -{75.8} Function SetSocketOptions(Socket: LongWord; Var OptStruct: TOptStruct): Integer; StdCall; - Asm - push ebx - mov eax, 75 - mov bl, 8 - mov ecx, Socket - mov edx, OptStruct - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{75.9} Function GetSocketOptions(Socket: LongWord; Var OptStruct: TOptStruct): Integer; StdCall; - Asm - push ebx - mov eax, 75 - mov bl, 9 - mov ecx, Socket - mov edx, OptStruct - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{75.10} Function GetSocketPair(Var Socket1, Socket2: LongWord): Integer; StdCall; - Asm - push ebx - mov eax, 75 - mov bl, 10 - int 64 - mov ecx, Socket1 - mov edx, Socket2 - mov [ecx], eax - mov [edx], ebx - pop ebx - End; -(* -------------------------------------------------------- *) -{76.0.0} Function GetMAC(Device: Byte): LongWord; StdCall; - Asm - push ebx - mov eax, 76 - mov ebx, $00000000 - mov bl, 0 - mov bh, Device - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{76.1.0} Function GetIPv4SentPackets(Device: Byte): LongWord; StdCall; - Asm - push ebx - mov eax, 76 - mov ebx, $00010000 - mov bl, 0 - mov bh, Device - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{76.1.1} Function GetIPv4ReceivedPackets(Device: Byte): LongWord; StdCall; - Asm - push ebx - mov eax, 76 - mov ebx, $00010000 - mov bl, 1 - mov bh, Device - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{76.1.2} Function GetIPv4IP(Device: Byte): LongWord; StdCall; - Asm - push ebx - mov eax, 76 - mov ebx, $00010000 - mov bl, 2 - mov bh, Device - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{76.1.3} Function SetIPv4IP(Device: Byte; IP: LongWord): LongWord; StdCall; - Asm - push ebx - mov eax, 76 - mov ebx, $00010000 - mov bl, 3 - mov bh, Device - mov ecx, IP - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{76.1.4} Function GetIPv4DNS(Device: Byte): LongWord; StdCall; - Asm - push ebx - mov eax, 76 - mov ebx, $00010000 - mov bl, 4 - mov bh, Device - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{76.1.5} Function SetIPv4DNS(Device: Byte; DNS: LongWord): LongWord; StdCall; - Asm - push ebx - mov eax, 76 - mov ebx, $00010000 - mov bl, 5 - mov bh, Device - mov ecx, DNS - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{76.1.6} Function GetIPv4Subnet(Device: Byte): LongWord; StdCall; - Asm - push ebx - mov eax, 76 - mov ebx, $00010000 - mov bl, 6 - mov bh, Device - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{76.1.7} Function SetIPv4Subnet(Device: Byte; Subnet: LongWord): LongWord; StdCall; - Asm - push ebx - mov eax, 76 - mov ebx, $00010000 - mov bl, 7 - mov bh, Device - mov ecx, Subnet - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{76.1.8} Function GetIPv4Gateway(Device: Byte): LongWord; StdCall; - Asm - push ebx - mov eax, 76 - mov ebx, $00010000 - mov bl, 8 - mov bh, Device - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{76.1.9} Function SetIPv4Gateway(Device: Byte; Gateway: LongWord): LongWord; StdCall; - Asm - push ebx - mov eax, 76 - mov ebx, $00010000 - mov bl, 9 - mov bh, Device - mov ecx, Gateway - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{76.2.0} Function GetICMPSentPackets(Device: Byte): LongWord; StdCall; - Asm - push ebx - mov eax, 76 - mov ebx, $00020000 - mov bl, 0 - mov bh, Device - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{76.2.1} Function GetICMPReceivedPackets(Device: Byte): LongWord; StdCall; - Asm - push ebx - mov eax, 76 - mov ebx, $00020000 - mov bl, 1 - mov bh, Device - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{76.3.0} Function GetUDPSentPackets(Device: Byte): LongWord; StdCall; - Asm - push ebx - mov eax, 76 - mov ebx, $00030000 - mov bl, 0 - mov bh, Device - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{76.3.1} Function GetUDPReceivedPackets(Device: Byte): LongWord; StdCall; - Asm - push ebx - mov eax, 76 - mov ebx, $00030000 - mov bl, 1 - mov bh, Device - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{76.4.0} Function GetTCPSentPackets(Device: Byte): LongWord; StdCall; - Asm - push ebx - mov eax, 76 - mov ebx, $00040000 - mov bl, 0 - mov bh, Device - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{76.4.1} Function GetTCPReceivedPackets(Device: Byte): LongWord; StdCall; - Asm - push ebx - mov eax, 76 - mov ebx, $00040000 - mov bl, 1 - mov bh, Device - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{76.5.0} Function GetARPSentPackets(Device: Byte): LongWord; StdCall; - Asm - push ebx - mov eax, 76 - mov ebx, $00050000 - mov bl, 0 - mov bh, Device - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{76.5.1} Function GetARPReceivedPackets(Device: Byte): LongWord; StdCall; - Asm - push ebx - mov eax, 76 - mov ebx, $00050000 - mov bl, 1 - mov bh, Device - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{76.5.2} Function GetARPEntrys(Device: Byte): LongWord; StdCall; - Asm - push ebx - mov eax, 76 - mov ebx, $00050000 - mov bl, 2 - mov bh, Device - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{76.5.3} Function GetARPEntry(Device: Byte; Entry: LongWord; Var Buffer): LongWord; StdCall; - Asm - push ebx - push edi - mov eax, 76 - mov ebx, $00050000 - mov bl, 3 - mov bh, Device - mov ecx, Entry - mov edi, Buffer - int 64 - pop edi - pop ebx - End; -(* -------------------------------------------------------- *) -{76.5.4} Function AddARPEntry(Device: Byte; Const Buffer): LongWord; StdCall; - Asm - push ebx - push esi - mov eax, 76 - mov ebx, $00050000 - mov bl, 4 - mov bh, Device - mov esi, Buffer - int 64 - pop esi - pop ebx - End; -(* -------------------------------------------------------- *) -{76.5.5} Function RemoveARPEntry(Device: Byte; Entry: LongWord): LongWord; StdCall; - Asm - push ebx - mov eax, 76 - mov ebx, $00050000 - mov bl, 5 - mov bh, Device - mov ecx, Entry - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{76.5.6} Function SendARPAnnounce(Device: Byte): LongWord; StdCall; - Asm - push ebx - mov eax, 76 - mov ebx, $00050000 - mov bl, 6 - mov bh, Device - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{76.5.7} Function GetARPConflicts(Device: Byte): LongWord; StdCall; - Asm - push ebx - mov eax, 76 - mov ebx, $00050000 - mov bl, 7 - mov bh, Device - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{77.0} Function CreateFutex(Futex: Pointer): LongWord; StdCall; - Asm - push ebx - mov eax, 77 - mov ebx, 0 - mov ecx, Futex - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{77.1} Function DestroyFutex(Handle: LongWord): LongWord; StdCall; - Asm - push ebx - mov eax, 77 - mov ebx, 1 - mov ecx, Handle - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) -{77.2} Function WaitFutex(Handle, Value, Time: LongWord): LongWord; StdCall; - Asm - push ebx - push esi - mov eax, 77 - mov ebx, 2 - mov ecx, Handle - mov edx, Value - mov esi, Time - int 64 - pop esi - pop ebx - End; -(* -------------------------------------------------------- *) -{77.3} Function WakeFutex(Handle, Waiters: LongWord): LongWord; StdCall; - Asm - push ebx - mov eax, 77 - mov ebx, 3 - mov ecx, Handle - mov edx, Waiters - int 64 - pop ebx - End; -(* -------------------------------------------------------- *) - Function GetProcAddress(hLib: Pointer; ProcName: PKolibriChar): Pointer; StdCall; - Asm - push esi - push edi - push ebx - mov edx, hLib - xor eax, eax - test edx, edx - jz @end - mov edi, ProcName - mov ecx, $FFFFFFFF - repne scasb - mov ebx, ecx - not ebx - @next: - mov esi, [edx] - test esi, esi - jz @end - mov ecx, ebx - mov edi, ProcName - add edx, 8 - repe cmpsb - jne @next - mov eax, [edx - 4] - @end: - pop ebx - pop edi - pop esi - End; -(* -------------------------------------------------------- *) -End. +{74.6} function GetSentPackets(Device: Byte): LongInt; stdcall; +{74.7} function GetReceivedPackets(Device: Byte): LongInt; stdcall; +{74.8} function GetSentBytes(Device: Byte): LongInt; stdcall; +{74.9} function GetReceivedBytes(Device: Byte): LongInt; stdcall; +{74.10} function GetLinkStatus(Device: Byte): LongInt; stdcall; +{75.0} function OpenSocket(Domain, Kind, Protocol: LongWord): LongWord; stdcall; +{75.1} function CloseSocket(Socket: LongWord): LongInt; stdcall; +{75.2} function SocketBind(Socket: LongWord; var SockAddr: TSockAddr): LongInt; stdcall; +{75.3} function SocketListen(Socket: LongWord; var BackLog): LongInt; stdcall; +{75.4} function SocketConnect(Socket: LongWord; var SockAddr: TSockAddr): LongInt; stdcall; +{75.5} function SocketAccept(Socket: LongWord; var SockAddr: TSockAddr): LongWord; stdcall; +{75.6} function SocketSend(Socket: LongWord; const Buffer; Size, Flags: LongWord): LongInt; stdcall; +{75.7} function SocketReceive(Socket: LongWord; var Buffer; Size, Flags: LongWord): LongInt; stdcall; +{75.8} function SetSocketOptions(Socket: LongWord; var OptStruct: TOptStruct): LongInt; stdcall; +{75.9} function GetSocketOptions(Socket: LongWord; var OptStruct: TOptStruct): LongInt; stdcall; +{75.10} function GetSocketPair(var Socket1, Socket2: LongWord): LongInt; stdcall; +{76.0.0} function GetMAC(Device: Byte): LongWord; stdcall; +{76.1.0} function GetIPv4SentPackets(Device: Byte): LongWord; stdcall; +{76.1.1} function GetIPv4ReceivedPackets(Device: Byte): LongWord; stdcall; +{76.1.2} function GetIPv4IP(Device: Byte): LongWord; stdcall; +{76.1.3} function SetIPv4IP(Device: Byte; IP: LongWord): LongWord; stdcall; +{76.1.4} function GetIPv4DNS(Device: Byte): LongWord; stdcall; +{76.1.5} function SetIPv4DNS(Device: Byte; DNS: LongWord): LongWord; stdcall; +{76.1.6} function GetIPv4Subnet(Device: Byte): LongWord; stdcall; +{76.1.7} function SetIPv4Subnet(Device: Byte; Subnet: LongWord): LongWord; stdcall; +{76.1.8} function GetIPv4Gateway(Device: Byte): LongWord; stdcall; +{76.1.9} function SetIPv4Gateway(Device: Byte; Gateway: LongWord): LongWord; stdcall; +{76.2.0} function GetICMPSentPackets(Device: Byte): LongWord; stdcall; +{76.2.1} function GetICMPReceivedPackets(Device: Byte): LongWord; stdcall; +{76.3.0} function GetUDPSentPackets(Device: Byte): LongWord; stdcall; +{76.3.1} function GetUDPReceivedPackets(Device: Byte): LongWord; stdcall; +{76.4.0} function GetTCPSentPackets(Device: Byte): LongWord; stdcall; +{76.4.1} function GetTCPReceivedPackets(Device: Byte): LongWord; stdcall; +{76.5.0} function GetARPSentPackets(Device: Byte): LongWord; stdcall; +{76.5.1} function GetARPReceivedPackets(Device: Byte): LongWord; stdcall; +{76.5.2} function GetARPEntrys(Device: Byte): LongWord; stdcall; +{76.5.3} function GetARPEntry(Device: Byte; Entry: LongWord; var Buffer): LongWord; stdcall; +{76.5.4} function AddARPEntry(Device: Byte; const Buffer): LongWord; stdcall; +{76.5.5} function RemoveARPEntry(Device: Byte; Entry: LongWord): LongWord; stdcall; +{76.5.6} function SendARPAnnounce(Device: Byte): LongWord; stdcall; +{76.5.7} function GetARPConflicts(Device: Byte): LongWord; stdcall; +{77.0} function CreateFutex(Futex: Pointer): LongWord; stdcall; +{77.1} function DestroyFutex(Handle: LongWord): LongWord; stdcall; +{77.2} function WaitFutex(Handle, Value, Time: LongWord): LongWord; stdcall; +{77.3} function WakeFutex(Handle, Waiters: LongWord): LongWord; stdcall; + function GetProcAddress(hLib: Pointer; ProcName: PKolibriChar): Pointer; stdcall; + +implementation + +procedure TerminateThread; stdcall; +asm + mov eax, $FFFFFFFF + int $40 +end; + +procedure DrawWindow(Left, Top, Right, Bottom: LongInt; Caption: PKolibriChar; BackColor, Style, CapStyle: LongWord); stdcall; +asm + push ebx + push edi + push esi + xor eax, eax + mov ebx, Left + mov ecx, Top + shl ebx, 16 + shl ecx, 16 + or ebx, Right + or ecx, Bottom + mov edx, Style + or edx, BackColor + mov edi, Caption + mov esi, CapStyle + int $40 + pop esi + pop edi + pop ebx +end; + +procedure SetPixel(X, Y: LongInt; Color: LongWord); stdcall; +asm + push ebx + mov eax, 1 + mov ebx, X + mov ecx, Y + mov edx, Color + int $40 + pop ebx +end; + +function GetKey: TKeyboardInput; stdcall; +asm + mov eax, 2 + int $40 +end; + +function GetSystemTime: TSystemTime; stdcall; +asm + mov eax, 3 + int $40 +end; + +procedure DrawText(X, Y: LongInt; Text: PKolibriChar; ForeColor, BackColor, Flags, Count: LongWord); stdcall; +asm + push ebx + push edi + push esi + mov eax, 4 + mov ebx, X + shl ebx, 16 + or ebx, Y + mov ecx, Flags + or ecx, ForeColor + mov edx, Text + mov edi, BackColor + mov esi, Count + int $40 + pop esi + pop edi + pop ebx +end; + +procedure Sleep(Time: LongWord); stdcall; +asm + push ebx + mov eax, 5 + mov ebx, Time + int $40 + pop ebx +end; + +procedure DrawImage(const Image; X, Y: LongInt; Width, Height: LongWord); stdcall; +asm + push ebx + mov eax, 7 + mov ebx, Image + mov ecx, Width + mov edx, X + shl ecx, 16 + shl edx, 16 + or ecx, Height + or edx, Y + int $40 + pop ebx +end; + +procedure DrawButton(Left, Top, Right, Bottom: LongInt; BackColor, Style, ID: LongWord); stdcall; +asm + push ebx + push esi + mov eax, 8 + mov ebx, Left + mov ecx, Top + shl ebx, 16 + shl ecx, 16 + or ebx, Right + or ecx, Bottom + mov edx, ID + or edx, Style + mov esi, BackColor + int $40 + pop esi + pop ebx +end; + +procedure DeleteButton(ID: LongWord); stdcall; +asm + mov eax, 8 + mov edx, ID + or edx, $80000000 + int $40 +end; + +function GetThreadInfo(Slot: LongWord; var Buffer: TThreadInfo): LongWord; stdcall; +asm + push ebx + mov eax, 9 + mov ebx, Buffer + mov ecx, Slot + int $40 + pop ebx +end; + +function WaitEvent: LongWord; stdcall; +asm + mov eax, 10 + int $40 +end; + +function CheckEvent: LongWord; stdcall; +asm + mov eax, 11 + int $40 +end; + +procedure BeginDraw; stdcall; +asm + push ebx + mov eax, 12 + mov ebx, 1 + int $40 + pop ebx +end; + +procedure EndDraw; stdcall; +asm + push ebx + mov eax, 12 + mov ebx, 2 + int $40 + pop ebx +end; + +procedure DrawRectangle(X, Y: LongInt; Width, Height: LongWord; Color: LongWord); stdcall; +asm + push ebx + mov eax, 13 + mov ebx, X + mov ecx, Y + mov edx, Color + shl ebx, 16 + shl ecx, 16 + or ebx, Width + or ecx, Height + int $40 + pop ebx +end; + +function GetScreenMax: TPoint; stdcall; +asm + mov eax, 14 + int $40 +end; + +procedure SetBackgroundSize(Width, Height: LongWord); stdcall; +asm + push ebx + mov eax, 15 + mov ebx, 1 + mov ecx, Width + mov edx, Height + int $40 + pop ebx +end; + +procedure SetBackgroundPixel(X, Y: LongInt; Color: LongWord); stdcall; +asm + push ebx +// at first need to know Background.Width + mov eax, 39 + mov ebx, 1 + int $40 +// at now eax = (Width << 16) | Height +// need to make ecx = (X + Y * Background.Width) * 3 + shr eax, 16 + mul Y + add eax, X + mov ecx, eax + add ecx, eax + add ecx, eax +// and now SetBackgroundPixel + mov eax, 15 + mov ebx, 2 + mov edx, Color + int $40 + pop ebx +end; + +procedure DrawBackground; stdcall; +asm + push ebx + mov eax, 15 + mov ebx, 3 + int $40 + pop ebx +end; + +procedure SetBackgroundDrawMode(DrawMode: LongWord); stdcall; +asm + push ebx + mov eax, 15 + mov ebx, 4 + mov ecx, DrawMode + int $40 + pop ebx +end; + +procedure DrawBackgroundImage(const Image; X, Y: LongInt; Width, Height: LongWord); stdcall; +asm + push ebx + push esi +// at first need to know Background.Width + mov eax, 39 + mov ebx, 1 + int $40 +// at now eax = (Width << 16) | Height +// need to make edx = (X + Y * Background.Width) * 3 + shr eax, 16 + mul Y + add eax, X + mov edx, eax + add edx, eax + add edx, eax +// need to make esi = Width * Height * 3 + mov eax, Width + mul Height + mov esi, eax + add esi, eax + add esi, eax +// and now DrawBackgroundImage + mov eax, 15 + mov ebx, 5 + mov ecx, Image + int $40 + pop esi + pop ebx +end; + +function MapBackground: Pointer; stdcall; +asm + push ebx + mov eax, 15 + mov ebx, 6 + int $40 + pop ebx +end; + +function UnMapBackground(Background: Pointer): LongInt; stdcall; +asm + push ebx + mov eax, 15 + mov ebx, 7 + mov ecx, Background + int $40 + pop ebx +end; + +function GetLastDrawnBackgroundRect: TRect; stdcall; +asm + push ebx + push edi + mov edi, eax + mov eax, 15 + mov ebx, 8 + int $40 + movzx edx, ax + movzx ecx, bx + shr eax, 16 + shr ebx, 16 + mov [edi].TRect.Left, eax + mov [edi].TRect.Right, edx + mov [edi].TRect.Top, ebx + mov [edi].TRect.Bottom, ecx + pop edi + pop ebx +end; + +procedure UpdateBackgroundRect(Left, Top, Right, Bottom: LongInt); stdcall; +asm + push ebx + mov eax, 15 + mov ebx, 9 + mov ecx, Left + mov edx, Top + shl ecx, 16 + shl edx, 16 + or ecx, Right + or edx, Bottom + int $40 + pop ebx +end; + +function FlushFloppyCache(FloppyNumber: LongWord): LongWord; stdcall; +asm + push ebx + mov eax, 15 + mov ebx, FloppyNumber + int $40 + pop ebx +end; + +function GetButton: TButtonInput; stdcall; +asm + mov eax, 17 + int $40 +end; + +procedure DeactivateWindow(Slot: LongWord); stdcall; +asm + push ebx + mov eax, 18 + mov ebx, 1 + mov ecx, Slot + int $40 + pop ebx +end; + +procedure TerminateThreadBySlot(Slot: LongWord); stdcall; +asm + push ebx + mov eax, 18 + mov ebx, 2 + mov ecx, Slot + int $40 + pop ebx +end; + +procedure ActivateWindow(Slot: LongWord); stdcall; +asm + push ebx + mov eax, 18 + mov ebx, 3 + mov ecx, Slot + int $40 + pop ebx +end; + +function GetIdleTime: LongWord; stdcall; +asm + push ebx + mov eax, 18 + mov ebx, 4 + int $40 + pop ebx +end; + +function GetCPUClock: LongWord; stdcall; +asm + push ebx + mov eax, 18 + mov ebx, 5 + int $40 + pop ebx +end; + +function SaveRamDisk(Path: PKolibriChar): LongWord; stdcall; +asm + push ebx + mov eax, 18 + mov ebx, 1 + mov ecx, Path + int $40 + pop ebx +end; + +function GetActiveWindow: LongWord; stdcall; +asm + push ebx + mov eax, 18 + mov ebx, 7 + int $40 + pop ebx +end; + +function GetSpeakerState: LongInt; stdcall; +asm + push ebx + mov eax, 18 + mov ebx, 8 + mov ecx, 1 + int $40 + pop ebx +end; + +procedure SwitchSpeakerState; stdcall; +asm + push ebx + mov eax, 18 + mov ebx, 8 + mov ecx, 2 + int $40 + pop ebx +end; + +function SystemShutdown(Param: LongWord): LongInt; stdcall; +asm + push ebx + mov eax, 18 + mov ebx, 9 + mov ecx, Param + int $40 + pop ebx +end; + +procedure MinimizeActiveWindow; stdcall; +asm + push ebx + mov eax, 18 + mov ebx, 10 + int $40 + pop ebx +end; + +procedure GetDiskSystemInfo(var Buffer); stdcall; +asm + push ebx + mov eax, 18 + mov ebx, 11 + mov ecx, Buffer + int $40 + pop ebx +end; + +procedure GetKernelVersion(var Buffer: TKernelVersion); stdcall; +asm + push ebx + mov eax, 18 + mov ebx, 13 + mov ecx, Buffer + int $40 + pop ebx +end; + +function WaitRetrace: LongInt; stdcall; +asm + push ebx + mov eax, 18 + mov ebx, 14 + int $40 + pop ebx +end; + +function CenterMousePointer: LongInt; stdcall; +asm + push ebx + mov eax, 18 + mov ebx, 15 + int $40 + pop ebx +end; + +function GetFreeMemory: LongWord; stdcall; +asm + push ebx + mov eax, 18 + mov ebx, 16 + int $40 + pop ebx +end; + +function GetAvailableMemory: LongWord; stdcall; +asm + push ebx + mov eax, 18 + mov ebx, 17 + int $40 + pop ebx +end; + +function TerminateThreadById(ID: LongWord): LongInt; stdcall; +asm + push ebx + mov eax, 18 + mov ebx, 18 + mov ecx, ID + int $40 + pop ebx +end; + +function GetMouseSpeed: LongWord; stdcall; +asm + push ebx + mov eax, 18 + mov ebx, 19 + mov ecx, 0 + int $40 + pop ebx +end; + +procedure SetMouseSpeed(Speed: LongWord); stdcall; +asm + push ebx + mov eax, 18 + mov ebx, 19 + mov ecx, 1 + mov edx, Speed + int $40 + pop ebx +end; + +function GetMouseSensitivity: LongWord; stdcall; +asm + push ebx + mov eax, 18 + mov ebx, 19 + mov ecx, 2 + int $40 + pop ebx +end; + +procedure SetMouseSensitivity(Sensitivity: LongWord); stdcall; +asm + push ebx + mov eax, 18 + mov ebx, 19 + mov ecx, 3 + mov edx, Sensitivity + int $40 + pop ebx +end; + +procedure SetMousePos(X, Y: LongInt); stdcall; +asm + push ebx + mov eax, 18 + mov ebx, 19 + mov ecx, 4 + mov edx, X + shl edx, 16 + or edx, Y + int $40 + pop ebx +end; + +procedure SetMouseButtons(State: LongWord); stdcall; +asm + push ebx + mov eax, 18 + mov ebx, 19 + mov ecx, 5 + mov edx, State + int $40 + pop ebx +end; + +function GetDoubleClickTime: LongWord; stdcall; +asm + push ebx + mov eax, 18 + mov ebx, 19 + mov ecx, 6 + int $40 + pop ebx +end; + +procedure SetDoubleClickTime(Time: LongWord); stdcall; +asm + push ebx + mov eax, 18 + mov ebx, 19 + mov ecx, 7 + mov edx, Time + int $40 + pop ebx +end; + +function GetRAMInfo(var Buffer: TRAMInfo): LongInt; stdcall; +asm + push ebx + mov eax, 18 + mov ebx, 20 + mov ecx, Buffer + int $40 + pop ebx +end; + +function GetSlotById(ID: LongWord): LongWord; stdcall; +asm + push ebx + mov eax, 18 + mov ebx, 21 + mov ecx, ID + int $40 + pop ebx +end; + +function MinimizeWindowBySlot(Slot: LongWord): LongInt; stdcall; +asm + push ebx + mov eax, 18 + mov ebx, 22 + mov ecx, 0 + mov edx, Slot + int $40 + pop ebx +end; + +function MinimizeWindowByID(ID: LongWord): LongInt; stdcall; +asm + push ebx + mov eax, 18 + mov ebx, 22 + mov ecx, 1 + mov edx, ID + int $40 + pop ebx +end; + +function RestoreWindowBySlot(Slot: LongWord): LongInt; stdcall; +asm + push ebx + mov eax, 18 + mov ebx, 22 + mov ecx, 2 + mov edx, Slot + int $40 + pop ebx +end; + +function RestoreWindowByID(ID: LongWord): LongInt; stdcall; +asm + push ebx + mov eax, 18 + mov ebx, 22 + mov ecx, 3 + mov edx, ID + int $40 + pop ebx +end; + +function MinimizeAllWindows: LongWord; stdcall; +asm + push ebx + mov eax, 18 + mov ebx, 23 + int $40 + pop ebx +end; + +procedure SetScreenLimits(Width, Height: LongWord); stdcall; +asm + push ebx + mov eax, 18 + mov ebx, 24 + mov ecx, Width + mov edx, Height + int $40 + pop ebx +end; + +function GetWindowZOrder(ID: LongWord): LongWord; stdcall; +asm + push ebx + mov eax, 18 + mov ebx, 25 + mov ecx, 1 + mov edx, ID + int $40 + pop ebx +end; + +function SetWindowZOrder(ID, ZOrder: LongWord): LongInt; stdcall; +asm + push ebx + push esi + mov eax, 18 + mov ebx, 25 + mov ecx, 2 + mov edx, ID + mov esi, ZOrder + int $40 + pop esi + pop ebx +end; + +{UNDEFINED} + +function ResetMidi: LongInt; stdcall; +asm + push ebx + mov eax, 20 + mov ebx, 1 + int $40 + pop ebx +end; + +function OutputMidi(Data: Byte): LongInt; stdcall; +asm + push ebx + mov eax, 20 + mov ebx, 2 + mov cl, Data + int $40 + pop ebx +end; + +function SetMidiBase(Port: LongWord): LongInt; stdcall; +asm + push ebx + mov eax, 21 + mov ebx, 1 + mov ecx, Port + int $40 + pop ebx +end; + +function SetKeyboardLayout(Flags: LongWord; var Table: TKeyboardLayout): LongInt; stdcall; +asm + push ebx + mov eax, 21 + mov ebx, 2 + mov ecx, Flags + mov edx, Table + int $40 + pop ebx +end; + +function SetKeyboardLayoutCountry(Country: LongWord): LongInt; stdcall; +asm + push ebx + mov eax, 21 + mov ebx, 2 + mov ecx, 9 + mov edx, Country + int $40 + pop ebx +end; + +function SetSystemLanguage(SystemLanguage: LongWord): LongInt; stdcall; +asm + push ebx + mov eax, 21 + mov ebx, 5 + mov ecx, SystemLanguage + int $40 + pop ebx +end; + +function SetHDAccess(Value: LongWord): LongInt; stdcall; +asm + push ebx + mov eax, 21 + mov ebx, 11 + mov ecx, Value + int $40 + pop ebx +end; + +function SetPCIAccess(Value: LongWord): LongInt; stdcall; +asm + push ebx + mov eax, 21 + mov ebx, 12 + mov ecx, Value + int $40 + pop ebx +end; + +function SetSystemTime(Time: TSystemTime): LongInt; stdcall; +asm + push ebx + mov eax, 22 + mov ebx, 0 + mov ecx, Time + int $40 + pop ebx +end; + +function SetSystemDate(Date: TSystemDate): LongInt; stdcall; +asm + push ebx + mov eax, 22 + mov ebx, 1 + mov ecx, Date + int $40 + pop ebx +end; + +function SetDayOfWeek(DayOfWeek: LongWord): LongInt; stdcall; +asm + push ebx + mov eax, 22 + mov ebx, 2 + mov ecx, DayOfWeek + int $40 + pop ebx +end; + +function SetAlarm(Time: TSystemTime): LongInt; stdcall; +asm + push ebx + mov eax, 22 + mov ebx, 3 + mov ecx, Time + int $40 + pop ebx +end; + +function WaitEventByTime(Time: LongWord): LongWord; stdcall; +asm + push ebx + mov eax, 23 + mov ebx, Time + int $40 + pop ebx +end; + +procedure OpenCDTray(Drive: LongWord); stdcall; +asm + push ebx + mov eax, 24 + mov ebx, 4 + mov ecx, Drive + int $40 + pop ebx +end; + +procedure CloseCDTray(Drive: LongWord); stdcall; +asm + push ebx + mov eax, 24 + mov ebx, 5 + mov ecx, Drive + int $40 + pop ebx +end; + +procedure DrawBackgroundLayerImage(const Image; X, Y: LongInt; Width, Height: LongWord); stdcall; +asm + push ebx + mov eax, 25 + mov ebx, Image + mov ecx, Width + mov edx, X + shl ecx, 16 + shl edx, 16 + or ecx, Height + or edx, Y + int $40 + pop ebx +end; + +function GetMidiBase: LongWord; stdcall; +asm + push ebx + mov eax, 26 + mov ebx, 1 + int $40 + pop ebx +end; + +procedure GetKeyboardLayout(Flags: LongWord; var Table: TKeyboardLayout); stdcall; +asm + push ebx + mov eax, 26 + mov ebx, 2 + mov ecx, Flags + mov edx, Table + int $40 + pop ebx +end; + +function GetKeyboardLayoutCountry: LongWord; stdcall; +asm + push ebx + mov eax, 26 + mov ebx, 2 + mov ecx, 9 + int $40 + pop ebx +end; + +function GetSystemLanguage: LongWord; stdcall; +asm + push ebx + mov eax, 26 + mov ebx, 5 + int $40 + pop ebx +end; + +function GetTickCount: LongWord; stdcall; +asm + push ebx + mov eax, 26 + mov ebx, 9 + int $40 + pop ebx +end; + +function GetTickCount64: UInt64; stdcall; +asm + push ebx + mov eax, 26 + mov ebx, 10 + int $40 + pop ebx +end; + +function IsHDAccessAllowed: LongWord; stdcall; +asm + push ebx + mov eax, 26 + mov ebx, 11 + int $40 + pop ebx +end; + +function IsPCIAccessAllowed: LongWord; stdcall; +asm + push ebx + mov eax, 26 + mov ebx, 12 + int $40 + pop ebx +end; + +{UNDEFINED} + +{UNDEFINED} + +function GetSystemDate: TSystemDate; stdcall; +asm + mov eax, 29 + int $40 +end; + +procedure SetCurrentDirectory(Path: PKolibriChar); stdcall; +asm + push ebx + mov eax, 30 + mov ebx, 1 + mov ecx, Path + int $40 + pop ebx +end; + +function GetCurrentDirectory(Buffer: PKolibriChar; Count: LongWord): LongWord; stdcall; +asm + push ebx + mov eax, 30 + mov ebx, 2 + mov ecx, Buffer + mov edx, Count + int $40 + pop ebx +end; + +{UNDEFINED} + +{UNDEFINED} + +{UNDEFINED} + +function GetPointOwner(X, Y: LongInt): LongWord; stdcall; +asm + push ebx + mov eax, 34 + mov ebx, X + mov ecx, Y + int $40 + pop ebx +end; + +function GetPixel(X, Y: LongInt): LongWord; stdcall; +asm + push ebx +// at first need to know Screen.Width + mov eax, 61 + mov ebx, 1 + int $40 +// at now eax = (Width << 16) | Height +// need to make ebx = Y * Screen.Width + X + shr eax, 16 + mul Y + add eax, X + mov ebx, eax +// and now GetPixel + mov eax, 35 + int $40 + pop ebx +end; + +procedure GetScreenImage(var Buffer; X, Y: LongInt; Width, Height: LongWord); stdcall; +asm + push ebx + mov eax, 36 + mov ebx, Buffer + mov ecx, Width + mov edx, X + shl ecx, 16 + shl edx, 16 + or ecx, Height + or edx, Y + int $40 + pop ebx +end; + +function GetMousePos: TPoint; stdcall; +asm + push ebx + mov eax, 37 + mov ebx, 0 + int $40 + pop ebx +end; + +function GetWindowMousePos: TPoint; stdcall; +asm + push ebx + mov eax, 37 + mov ebx, 1 + int $40 + pop ebx +end; + +function GetMouseButtons: LongWord; stdcall; +asm + push ebx + mov eax, 37 + mov ebx, 2 + int $40 + pop ebx +end; + +function GetMouseEvents: LongWord; stdcall; +asm + push ebx + mov eax, 37 + mov ebx, 3 + int $40 + pop ebx +end; + +function LoadCursorFromFile(Path: PKolibriChar): LongWord; stdcall; +asm + push ebx + mov eax, 37 + mov ebx, 4 + mov ecx, Path + mov edx, 0 + int $40 + pop ebx +end; + +function LoadCursorFromMemory(const Buffer): LongWord; stdcall; +asm + push ebx + mov eax, 37 + mov ebx, 4 + mov ecx, Buffer + mov edx, 1 + int $40 + pop ebx +end; + +function LoadCursorIndirect(const Buffer; HotSpotX, HotSpotY: ShortInt): LongWord; stdcall; +asm + push ebx + mov eax, 37 + mov ebx, 4 + mov ecx, Buffer + mov dl, HotSpotY + mov dh, HotSpotX + shl edx, 16 + or edx, 2 + int $40 + pop ebx +end; + +function SetCursor(Handle: LongWord): LongWord; stdcall; +asm + push ebx + mov eax, 37 + mov ebx, 5 + mov ecx, Handle + int $40 + pop ebx +end; + +function DeleteCursor(Handle: LongWord): LongWord; stdcall; +asm + push ebx + mov eax, 37 + mov ebx, 6 + mov ecx, Handle + int $40 + pop ebx +end; + +function GetMouseScroll: TPoint; stdcall; +asm + push ebx + mov eax, 37 + mov ebx, 7 + int $40 + pop ebx +end; + +procedure DrawLine(X1, Y1, X2, Y2: LongInt; Color: LongWord); stdcall; +asm + push ebx + mov eax, 38 + mov ebx, X1 + mov ecx, Y1 + shl ebx, 16 + shl ecx, 16 + or ebx, X2 + or ecx, Y2 + mov edx, Color + int $40 + pop ebx +end; + +function GetBackgroundSize: TSize; stdcall; +asm + push ebx + mov eax, 39 + mov ebx, 1 + int $40 + pop ebx +end; + +function GetBackgroundPixel(X, Y: LongInt): LongWord; stdcall; +asm + push ebx +// at first need to know Background.Width + mov eax, 39 + mov ebx, 1 + int $40 +// at now eax = (Width << 16) | Height +// need to make ecx = (X + Y * Background.Width) * 3 + shr eax, 16 + mul Y + add eax, X + mov ecx, eax + add ecx, eax + add ecx, eax +// and now GetBackgroundPixel + mov eax, 39 + mov ebx, 2 + int $40 + pop ebx +end; + +function GetBackgroundDrawMode: LongWord; stdcall; +asm + push ebx + mov eax, 39 + mov ebx, 4 + int $40 + pop ebx +end; + +function SetEventMask(Mask: LongWord): LongWord; stdcall; +asm + push ebx + mov eax, 40 + mov ebx, Mask + int $40 + pop ebx +end; + +{UNDEFINED} + +{UNDEFINED} + +function InPort(Port: LongWord; var Data: Byte): LongWord; stdcall; +asm + push ebx + mov eax, 43 + mov ecx, Port + or ecx, $80000000 + int $40 + mov ecx, Data + mov [ecx], bl + pop ebx +end; + +function OutPort(Port: LongWord; Data: Byte): LongWord; stdcall; +asm + push ebx + mov eax, 43 + mov bl, Data + mov ecx, Port + int $40 + pop ebx +end; + +{UNDEFINED} + +{UNDEFINED} + +function ReservePorts(First, Last: LongWord): LongWord; stdcall; +asm + push ebx + mov eax, 46 + mov ebx, 0 + mov ecx, First + mov edx, Last + int $40 + pop ebx +end; + +function FreePorts(First, Last: LongWord): LongWord; stdcall; +asm + push ebx + mov eax, 46 + mov ebx, 1 + mov ecx, First + mov edx, Last + int $40 + pop ebx +end; + +{DrawNumber} + +procedure ApplyStyleSettings; stdcall; +asm + push ebx + mov eax, 48 + mov ebx, 0 + int $40 + pop ebx +end; + +procedure SetButtonStyle(ButtonStyle: LongWord); stdcall; +asm + push ebx + mov eax, 48 + mov ebx, 1 + mov ecx, ButtonStyle + int $40 + pop ebx +end; + +procedure SetStandardColors(var ColorTable: TStandardColors; Size: LongWord); stdcall; +asm + push ebx + mov eax, 48 + mov ebx, 2 + mov ecx, ColorTable + mov edx, Size + int $40 + pop ebx +end; + +procedure GetStandardColors(var ColorTable: TStandardColors; Size: LongWord); stdcall; +asm + push ebx + mov eax, 48 + mov ebx, 3 + mov ecx, ColorTable + mov edx, Size + int $40 + pop ebx +end; + +function GetSkinHeight: LongWord; stdcall; +asm + push ebx + mov eax, 48 + mov ebx, 4 + int $40 + pop ebx +end; + +function GetScreenWorkingArea: TRect; stdcall; +asm + push ebx + push edi + mov edi, eax + mov eax, 48 + mov ebx, 5 + int $40 + movzx edx, ax + movzx ecx, bx + shr eax, 16 + shr ebx, 16 + mov [edi].TRect.Left, eax + mov [edi].TRect.Right, edx + mov [edi].TRect.Top, ebx + mov [edi].TRect.Bottom, ecx + pop edi + pop ebx +end; + +procedure SetScreenWorkingArea(Left, Top, Right, Bottom: LongInt); stdcall; +asm + push ebx + mov eax, 48 + mov ebx, 6 + mov ecx, Left + mov edx, Top + shl ecx, 16 + shl edx, 16 + or ecx, Right + or edx, Bottom + int $40 + pop ebx +end; + +function GetSkinMargins: TRect; stdcall; +asm + push ebx + push edi + mov edi, eax + mov eax, 48 + mov ebx, 7 + int $40 + movzx edx, ax + movzx ecx, bx + shr eax, 16 + shr ebx, 16 + mov [edi].TRect.Left, eax + mov [edi].TRect.Right, edx + mov [edi].TRect.Top, ebx + mov [edi].TRect.Bottom, ecx + pop edi + pop ebx +end; + +function SetSkin(Path: PKolibriChar): LongInt; stdcall; +asm + push ebx + mov eax, 48 + mov ebx, 8 + mov ecx, Path + int $40 + pop ebx +end; + +function GetFontSmoothing: LongInt; stdcall; +asm + push ebx + mov eax, 48 + mov ebx, 9 + int $40 + pop ebx +end; + +procedure SetFontSmoothing(Smoothing: LongInt); stdcall; +asm + push ebx + mov eax, 48 + mov ebx, 10 + mov ecx, Smoothing + int $40 + pop ebx +end; + +function GetFontHeight: LongWord; stdcall; +asm + push ebx + mov eax, 48 + mov ebx, 11 + int $40 + pop ebx +end; + +procedure SetFontHeight(Height: LongWord); stdcall; +asm + push ebx + mov eax, 48 + mov ebx, 12 + mov ecx, Height + int $40 + pop ebx +end; + +{Advanced Power Management} + +procedure SetWindowShape(const Data); stdcall; +asm + push ebx + mov eax, 50 + mov ebx, 0 + mov ecx, Data + int $40 + pop ebx +end; + +procedure SetWindowScale(Scale: LongWord); stdcall; +asm + push ebx + mov eax, 50 + mov ebx, 1 + mov ecx, Scale + int $40 + pop ebx +end; + +function CreateThread(Entry, Stack: Pointer): LongWord; stdcall; +asm + push ebx + mov eax, 51 + mov ebx, 1 + mov ecx, Entry + mov edx, Stack + int $40 + pop ebx +end; + +{UNDEFINED} + +{UNDEFINED} + +function GetClipboardSlotCount: LongInt; stdcall; +asm + push ebx + mov eax, 54 + mov ebx, 0 + int $40 + pop ebx +end; + +function GetClipboardData(Slot: LongWord): Pointer; stdcall; +asm + push ebx + mov eax, 54 + mov ebx, 1 + mov ecx, Slot + int $40 + pop ebx +end; + +function SetClipboardData(const Src; Count: LongWord): LongInt; stdcall; +asm + push ebx + mov eax, 54 + mov ebx, 2 + mov ecx, Count + mov edx, Src + int $40 + pop ebx +end; + +function DeleteClipboardLastSlot: LongInt; stdcall; +asm + push ebx + mov eax, 54 + mov ebx, 3 + int $40 + pop ebx +end; + +function ResetClipboard: LongInt; stdcall; +asm + push ebx + mov eax, 54 + mov ebx, 4 + int $40 + pop ebx +end; + +function SpeakerPlay(const Data): LongWord; stdcall; +asm + push ebx + push esi + mov eax, 55 + mov ebx, 55 + mov esi, Data + int $40 + pop esi + pop ebx +end; + +{UNDEFINED} + +{PCI BIOS} + +{UNDEFINED} + +{UNDEFINED} + +function IPCSetBuffer(const Buffer: TIPCBuffer; Size: LongWord): LongInt; stdcall; +asm + push ebx + mov eax, 60 + mov ebx, 1 + mov ecx, Buffer + mov edx, Size + int $40 + pop ebx +end; + +function IPCSendMessage(ID: LongWord; var Msg: TIPCMessage; Size: LongWord): LongInt; stdcall; +asm + push ebx + push esi + mov eax, 60 + mov ebx, 2 + mov ecx, ID + mov edx, Msg + mov esi, Size + int $40 + pop esi + pop ebx +end; + +function GetScreenSize: TSize; stdcall; +asm + push ebx + mov eax, 61 + mov ebx, 1 + int $40 + pop ebx +end; + +function GetScreenBitsPerPixel: LongWord; stdcall; +asm + push ebx + mov eax, 61 + mov ebx, 2 + int $40 + pop ebx +end; + +function GetScreenBytesPerScanLine: LongWord; stdcall; +asm + push ebx + mov eax, 61 + mov ebx, 3 + int $40 + pop ebx +end; + +function GetPCIVersion: LongWord; stdcall; +asm + push ebx + mov eax, 62 + mov bl, 0 + int $40 + pop ebx +end; + +function GetLastPCIBus: LongWord; stdcall; +asm + push ebx + mov eax, 62 + mov bl, 1 + int $40 + pop ebx +end; + +function GetPCIAddressingMode: LongWord; stdcall; +asm + push ebx + mov eax, 62 + mov bl, 2 + int $40 + pop ebx +end; + +function ReadPCIByte(Bus, Device, Func, Reg: Byte): Byte; stdcall; +asm + push ebx + mov eax, 62 + mov bl, 4 + mov bh, Bus + mov cl, Reg + mov ch, Device + shl ch, 3 + or ch, Func + int $40 + pop ebx +end; + +function ReadPCIWord(Bus, Device, Func, Reg: Byte): Word; stdcall; +asm + push ebx + mov eax, 62 + mov bl, 5 + mov bh, Bus + mov cl, Reg + mov ch, Device + shl ch, 3 + or ch, Func + int $40 + pop ebx +end; + +function ReadPCILongWord(Bus, Device, Func, Reg: Byte): LongWord; stdcall; +asm + push ebx + mov eax, 62 + mov bl, 6 + mov bh, Bus + mov cl, Reg + mov ch, Device + shl ch, 3 + or ch, Func + int $40 + pop ebx +end; + +function WritePCIByte(Bus, Device, Func, Reg: Byte; Data: Byte): LongWord; stdcall; +asm + push ebx + mov eax, 62 + mov bl, 8 + mov bh, Bus + mov cl, Reg + mov ch, Device + shl ch, 3 + or ch, Func + mov dl, Data + int $40 + pop ebx +end; + +function WritePCIWord(Bus, Device, Func, Reg: Byte; Data: Word): LongWord; stdcall; +asm + push ebx + mov eax, 62 + mov bl, 9 + mov bh, Bus + mov cl, Reg + mov ch, Device + shl ch, 3 + or ch, Func + mov dx, Data + int $40 + pop ebx +end; + +function WritePCILongWord(Bus, Device, Func, Reg: Byte; Data: LongWord): LongWord; stdcall; +asm + push ebx + mov eax, 62 + mov bl, 10 + mov bh, Bus + mov cl, Reg + mov ch, Device + shl ch, 3 + or ch, Func + mov edx, Data + int $40 + pop ebx +end; + +procedure BoardWriteByte(Data: Byte); stdcall; +asm + push ebx + mov eax, 63 + mov ebx, 1 + mov cl, Data + int $40 + pop ebx +end; + +function BoardReadByte(var Data: Byte): LongWord; stdcall; +asm + push ebx + mov eax, 63 + mov ebx, 2 + int $40 + mov ecx, Data + mov [ecx], al + mov eax, ebx + pop ebx +end; + +function ReallocAppMemory(Count: LongWord): LongInt; stdcall; +asm + push ebx + mov eax, 64 + mov ebx, 1 + mov ecx, Count + int $40 + pop ebx +end; + +procedure DrawImageEx(const Image; Left, Top: LongInt; Width, Height: LongWord; BPP: LongWord; const Palette: Pointer; Padding: LongWord); stdcall; +asm + push ebx + mov eax, 65 + mov ebx, Image + mov ecx, Width + mov edx, Left + shl ecx, 16 + shl edx, 16 + or ecx, Height + or edx, Top + mov esi, BPP + mov edi, Palette + mov ebp, Padding + int $40 + pop ebx +end; + +procedure SetKeyboardInputMode(Mode: LongWord); stdcall; +asm + push ebx + mov eax, 66 + mov ebx, 1 + mov ecx, Mode + int $40 + pop ebx +end; + +function GetKeyboardInputMode: LongWord; stdcall; +asm + push ebx + mov eax, 66 + mov ebx, 2 + int $40 + pop ebx +end; + +function GetControlKeyState: LongWord; stdcall; +asm + push ebx + mov eax, 66 + mov ebx, 3 + int $40 + pop ebx +end; + +function SetHotKey(ScanCode, Control: LongWord): LongInt; stdcall; +asm + push ebx + mov eax, 66 + mov ebx, 4 + mov ecx, ScanCode + mov edx, Control + int $40 + pop ebx +end; + +function ResetHotKey(ScanCode, Control: LongWord): LongInt; stdcall; +asm + push ebx + mov eax, 66 + mov ebx, 4 + mov ecx, ScanCode + mov edx, Control + int $40 + pop ebx +end; + +procedure KeyboardLock; stdcall; +asm + push ebx + mov eax, 66 + mov ebx, 6 + int $40 + pop ebx +end; + +procedure KeyboardUnlock; stdcall; +asm + push ebx + mov eax, 66 + mov ebx, 7 + int $40 + pop ebx +end; + +procedure SetWindowPos(Left, Top, Right, Bottom: LongInt); stdcall; +asm + push ebx + push esi + mov eax, 67 + mov ebx, Left + mov ecx, Top + mov edx, Right + mov esi, Bottom + int $40 + pop esi + pop ebx +end; + +function GetTaskSwitchCount: LongWord; stdcall; +asm + push ebx + mov eax, 68 + mov ebx, 0 + int $40 + pop ebx +end; + +procedure SwitchThread; stdcall; +asm + push ebx + mov eax, 68 + mov ebx, 1 + int $40 + pop ebx +end; + +function EnableRDPMC: LongWord; stdcall; +asm + push ebx + mov eax, 68 + mov ebx, 2 + mov ecx, 0 + int $40 + pop ebx +end; + +function IsCacheEnabled: LongWord; stdcall; +asm + push ebx + mov eax, 68 + mov ebx, 2 + mov ecx, 1 + int $40 + pop ebx +end; + +procedure EnableCache; stdcall; +asm + push ebx + mov eax, 68 + mov ebx, 2 + mov ecx, 2 + int $40 + pop ebx +end; + +procedure DisableCache; stdcall; +asm + push ebx + mov eax, 68 + mov ebx, 2 + mov ecx, 3 + int $40 + pop ebx +end; + +function HeapCreate: LongWord; stdcall; +asm + push ebx + mov eax, 68 + mov ebx, 11 + int $40 + pop ebx +end; + +function HeapAllocate(Bytes: LongWord): Pointer; stdcall; +asm + push ebx + mov eax, 68 + mov ebx, 12 + mov ecx, Bytes + int $40 + pop ebx +end; + +function HeapFree(MemPtr: Pointer): LongWord; stdcall; +asm + push ebx + mov eax, 68 + mov ebx, 13 + mov ecx, MemPtr + int $40 + pop ebx +end; + +procedure WaitSignal(var Buffer: TSignalBuffer); stdcall; +asm + push ebx + mov eax, 68 + mov ebx, 14 + mov ecx, Buffer + int $40 + pop ebx +end; + +function GetDriver(Name: PKolibriChar): LongWord; stdcall; +asm + push ebx + mov eax, 68 + mov ebx, 16 + mov ecx, Name + int $40 + pop ebx +end; + +function ControlDriver(var CtrlStructure: TCtrlDriver): LongWord; stdcall; +asm + push ebx + mov eax, 68 + mov ebx, 17 + mov ecx, CtrlStructure + int $40 + pop ebx +end; + +function LoadLibrary(Path: PKolibriChar): Pointer; stdcall; +asm + push ebx + mov eax, 68 + mov ebx, 19 + mov ecx, Path + int $40 + pop ebx +end; + +function HeapReallocate(MemPtr: Pointer; Bytes: LongWord): Pointer; stdcall; +asm + push ebx + mov eax, 68 + mov ebx, 20 + mov ecx, Bytes + mov edx, MemPtr + int $40 + pop ebx +end; + +function LoadDriver(Name, CmdLine: PKolibriChar): LongWord; stdcall; +asm + push ebx + mov eax, 68 + mov ebx, 21 + mov ecx, Name + mov edx, CmdLine + int $40 + pop ebx +end; + +function OpenSharedMemory(Name: PKolibriChar; Bytes: LongWord; Flags: LongWord): Pointer; stdcall; +asm + push ebx + push esi + mov eax, 68 + mov ebx, 22 + mov ecx, Name + mov edx, Bytes + mov esi, Flags + int $40 + pop esi + pop ebx +end; + +function CloseSharedMemory(Name: PKolibriChar): LongWord; stdcall; +asm + push ebx + mov eax, 68 + mov ebx, 23 + mov ecx, Name + int $40 + pop ebx +end; + +function SetExceptionHandler(Handler: Pointer; Mask: LongWord; var OldMask: LongWord): Pointer; stdcall; +asm + push ebx + mov eax, 68 + mov ebx, 24 + mov ecx, Handler + mov edx, Mask + int $40 + mov ecx, OldMask + mov [ecx], ebx + pop ebx +end; + +function SetExceptionActivity(Signal, Activity: LongWord): LongInt; stdcall; +asm + push ebx + mov eax, 68 + mov ebx, 25 + mov ecx, Signal + mov edx, Activity + int $40 + pop ebx +end; + +procedure ReleaseMemoryPages(MemPtr: Pointer; Offset, Size: LongWord); stdcall; +asm + push ebx + push esi + mov eax, 68 + mov ebx, 26 + mov ecx, MemPtr + mov edx, &Offset + mov esi, Size + int $40 + pop esi + pop ebx +end; + +function LoadFile(Path: PKolibriChar; var Size: LongWord): Pointer; stdcall; +asm + push ebx + mov eax, 68 + mov ebx, 27 + mov ecx, Path + int $40 + mov ecx, Size + mov [ecx], edx + pop ebx +end; + +procedure SetDebugBuffer(const Buffer: TDebugBuffer); stdcall; +asm + push ebx + mov eax, 69 + mov ebx, 0 + mov ecx, Buffer + int $40 + pop ebx +end; + +procedure GetThreadContext(ID: LongWord; var Context: TThreadContext); stdcall; +const + SIZEOF_TTHREADCONTEXT = SizeOf(TThreadContext); +asm + push ebx + push esi + mov eax, 69 + mov ebx, 1 + mov ecx, ID + mov edx, SIZEOF_TTHREADCONTEXT + mov esi, Context + int $40 + pop esi + pop ebx +end; + +procedure SetThreadContext(ID: LongWord; const Context: TThreadContext); stdcall; +const + SIZEOF_TTHREADCONTEXT = SizeOf(TThreadContext); +asm + push ebx + push esi + mov eax, 69 + mov ebx, 2 + mov ecx, ID + mov edx, SIZEOF_TTHREADCONTEXT + mov esi, Context + int $40 + pop esi + pop ebx +end; + +procedure DetachThread(ID: LongWord); stdcall; +asm + push ebx + mov eax, 69 + mov ebx, 3 + mov ecx, ID + int $40 + pop ebx +end; + +procedure SuspendThread(ID: LongWord); stdcall; +asm + push ebx + mov eax, 69 + mov ebx, 4 + mov ecx, ID + int $40 + pop ebx +end; + +procedure ResumeThread(ID: LongWord); stdcall; +asm + push ebx + mov eax, 69 + mov ebx, 5 + mov ecx, ID + int $40 + pop ebx +end; + +function ReadProcessMemory(ID, Count: LongWord; const Src; var Dst): LongInt; stdcall; +asm + push ebx + push esi + push edi + mov eax, 69 + mov ebx, 6 + mov ecx, ID + mov edx, Count + mov esi, Src + mov edi, Dst + int $40 + pop edi + pop esi + pop ebx +end; + +function WriteProcessMemory(ID, Count: LongWord; const Src; var Dst): LongInt; stdcall; +asm + push ebx + push esi + push edi + mov eax, 69 + mov ebx, 7 + mov ecx, ID + mov edx, Count + mov esi, Dst + mov edi, Src + int $40 + pop edi + pop esi + pop ebx +end; + +procedure DebugTerminate(ID: LongWord); stdcall; +asm + push ebx + mov eax, 69 + mov ebx, 8 + mov ecx, ID + int $40 + pop ebx +end; + +function SetBreakPoint(ID: LongWord; Index, Flags: Byte; Address: Pointer): LongInt; stdcall; +asm + push ebx + push esi + mov eax, 69 + mov ebx, 9 + mov ecx, ID + mov dl, Index + mov dh, Flags + mov esi, Address + int $40 + pop esi + pop ebx +end; + +function ResetBreakPoint(ID: LongWord; Index, Flags: Byte; Address: Pointer): LongInt; stdcall; +asm + push ebx + push esi + mov eax, 69 + mov ebx, 9 + mov ecx, ID + mov dl, Index + mov dh, Flags + or dh, $80 + mov esi, Address + int $40 + pop esi + pop ebx +end; + +function ReadFile(Path: PKolibriChar; var Buffer; Count: LongWord; Pos: UInt64; var BytesRead: LongWord): LongInt; stdcall; +asm + push ebx + push Path + dec esp + mov byte[esp], 0 + push Buffer + push Count + push dword[Pos+4] + push dword[Pos] + push 0 + mov ebx, esp + mov eax, 70 + int $40 + add esp, 25 + mov ecx, BytesRead + mov [ecx], ebx + pop ebx +end; + +function ReadFolder(Path: PKolibriChar; var Buffer; Count, Start, Flags: LongWord; var BlocksRead: LongWord): LongInt; stdcall; +asm + push ebx + push Path + dec esp + mov byte[esp], 0 + push Buffer + push Count + push Flags + push Start + push 1 + mov ebx, esp + mov eax, 70 + int $40 + add esp, 25 + mov ecx, BlocksRead + mov [ecx], ebx + pop ebx +end; + +function CreateFile(Path: PKolibriChar): LongInt; stdcall; +asm + push ebx + push Path + dec esp + mov byte[esp], 0 + push 0 + push 0 + push 0 + push 0 + push 2 + mov ebx, esp + mov eax, 70 + int $40 + add esp, 25 + pop ebx +end; + +function WriteFile(Path: PKolibriChar; const Buffer; Count: LongWord; Pos: UInt64; var BytesWritten: LongWord): LongInt; stdcall; +asm + push ebx + push Path + dec esp + mov byte[esp], 0 + push Buffer + push Count + push dword[Pos+4] + push dword[Pos] + push 3 + mov ebx, esp + mov eax, 70 + int $40 + add esp, 25 + mov ecx, BytesWritten + mov [ecx], ebx + pop ebx +end; + +function ResizeFile(Path: PKolibriChar; LoSize, HiSize: LongWord): LongInt; stdcall; +asm + push ebx + push Path + dec esp + mov byte[esp], 0 + push 0 + push 0 + push HiSize + push LoSize + push 4 + mov ebx, esp + mov eax, 70 + int $40 + add esp, 25 + pop ebx +end; + +function GetFileAttributes(Path: PKolibriChar; var Buffer: TFileAttributes): LongInt; stdcall; +asm + push ebx + push Path + dec esp + mov byte[esp], 0 + push Buffer + push 0 + push 0 + push 0 + push 5 + mov ebx, esp + mov eax, 70 + int $40 + add esp, 25 + pop ebx +end; + +function SetFileAttributes(Path: PKolibriChar; var Buffer: TFileAttributes): LongInt; stdcall; +asm + push ebx + push Path + dec esp + mov byte[esp], 0 + push Buffer + push 0 + push 0 + push 0 + push 6 + mov ebx, esp + mov eax, 70 + int $40 + add esp, 25 + pop ebx +end; + +function RunFile(Path, CmdLine: PKolibriChar): LongInt; stdcall; +asm + push ebx + push Path + dec esp + mov byte[esp], 0 + push 0 + push 0 + push CmdLine + push 0 + push 7 + mov ebx, esp + mov eax, 70 + int $40 + add esp, 25 + pop ebx +end; + +function DebugFile(Path, CmdLine: PKolibriChar): LongInt; stdcall; +asm + push ebx + push Path + dec esp + mov byte[esp], 0 + push 0 + push 0 + push CmdLine + push 1 + push 7 + mov ebx, esp + mov eax, 70 + int $40 + add esp, 25 + pop ebx +end; + +function DeleteFile(Path: PKolibriChar): LongInt; stdcall; +asm + push ebx + push Path + dec esp + mov byte[esp], 0 + push 0 + push 0 + push 0 + push 0 + push 8 + mov ebx, esp + mov eax, 70 + int $40 + add esp, 25 + pop ebx +end; + +function CreateFolder(Path: PKolibriChar): LongInt; stdcall; +asm + push ebx + push Path + dec esp + mov byte[esp], 0 + push 0 + push 0 + push 0 + push 0 + push 9 + mov ebx, esp + mov eax, 70 + int $40 + add esp, 25 + pop ebx +end; + +procedure SetWindowCaption(Caption: PKolibriChar); stdcall; +asm + push ebx + mov eax, 71 + mov ebx, 1 + mov ecx, Caption + int $40 + pop ebx +end; + +function SendActiveWindowKey(KeyCode: LongWord): LongInt; stdcall; +asm + push ebx + mov eax, 72 + mov ebx, 1 + mov ecx, 2 + mov edx, KeyCode + int $40 + pop ebx +end; + +function SendActiveWindowButton(ButtonID: LongWord): LongInt; stdcall; +asm + push ebx + mov eax, 72 + mov ebx, 1 + mov ecx, 3 + mov edx, ButtonID + int $40 + pop ebx +end; + +procedure Blit(const Src; SrcX, SrcY: LongInt; SrcW, SrcH: LongWord; DstX, DstY: LongInt; DstW, DstH: LongWord; Stride, Flags: LongWord); stdcall; +asm + push Stride + push Src + push SrcH + push SrcW + push SrcY + push SrcX + push DstH + push DstW + push DstY + push DstX + mov eax, 73 + mov ebx, Flags + mov ecx, esp + int $40 + add esp, 40 +end; + +function GetActiveNetworkDevices: LongWord; stdcall; +asm + push ebx + mov eax, 74 + mov bl, -1 + int $40 + pop ebx +end; + +function GetNetworkDeviceType(Device: Byte): LongInt; stdcall; +asm + push ebx + mov eax, 74 + mov bl, 0 + mov bh, Device + int $40 + pop ebx +end; + +function GetNetworkDeviceName(Device: Byte; var Buffer): LongInt; stdcall; +asm + push ebx + mov eax, 74 + mov bl, 1 + mov bh, Device + mov ecx, Buffer + int $40 + pop ebx +end; + +function ResetNetworkDevice(Device: Byte): LongInt; stdcall; +asm + push ebx + mov eax, 74 + mov bl, 2 + mov bh, Device + int $40 + pop ebx +end; + +function StopNetworkDevice(Device: Byte): LongInt; stdcall; +asm + push ebx + mov eax, 74 + mov bl, 3 + mov bh, Device + int $40 + pop ebx +end; + +function GetNetworkDevicePointer(Device: Byte): Pointer; stdcall; +asm + push ebx + mov eax, 74 + mov bl, 4 + mov bh, Device + int $40 + pop ebx +end; + +function GetSentPackets(Device: Byte): LongInt; stdcall; +asm + push ebx + mov eax, 74 + mov bl, 6 + mov bh, Device + int $40 + pop ebx +end; + +function GetReceivedPackets(Device: Byte): LongInt; stdcall; +asm + push ebx + mov eax, 74 + mov bl, 7 + mov bh, Device + int $40 + pop ebx +end; + +function GetSentBytes(Device: Byte): LongInt; stdcall; +asm + push ebx + mov eax, 74 + mov bl, 8 + mov bh, Device + int $40 + pop ebx +end; + +function GetReceivedBytes(Device: Byte): LongInt; stdcall; +asm + push ebx + mov eax, 74 + mov bl, 9 + mov bh, Device + int $40 + pop ebx +end; + +function GetLinkStatus(Device: Byte): LongInt; stdcall; +asm + push ebx + mov eax, 74 + mov bl, 10 + mov bh, Device + int $40 + pop ebx +end; + +function OpenSocket(Domain, Kind, Protocol: LongWord): LongWord; stdcall; +asm + push ebx + push esi + mov eax, 75 + mov bl, 0 + mov ecx, Domain + mov edx, Kind + mov esi, Protocol + int $40 + pop esi + pop ebx +end; + +function CloseSocket(Socket: LongWord): LongInt; stdcall; +asm + push ebx + mov eax, 75 + mov bl, 1 + mov ecx, Socket + int $40 + pop ebx +end; + +function SocketBind(Socket: LongWord; var SockAddr: TSockAddr): LongInt; stdcall; +const + SIZEOF_TSOCKADDR = SizeOf(TSockAddr); +asm + push ebx + push esi + mov eax, 75 + mov bl, 2 + mov ecx, Socket + mov edx, SockAddr + mov esi, SIZEOF_TSOCKADDR + int $40 + pop esi + pop ebx +end; + +function SocketListen(Socket: LongWord; var BackLog): LongInt; stdcall; +asm + push ebx + mov eax, 75 + mov bl, 3 + mov ecx, Socket + mov edx, BackLog + int $40 + pop ebx +end; + +function SocketConnect(Socket: LongWord; var SockAddr: TSockAddr): LongInt; stdcall; +const + SIZEOF_TSOCKADDR = SizeOf(TSockAddr); +asm + push ebx + push esi + mov eax, 75 + mov bl, 4 + mov ecx, Socket + mov edx, SockAddr + mov esi, SIZEOF_TSOCKADDR + int $40 + pop esi + pop ebx +end; + +function SocketAccept(Socket: LongWord; var SockAddr: TSockAddr): LongWord; stdcall; +const SIZEOF_TSOCKADDR = SizeOf(TSockAddr); +asm + push ebx + push esi + mov eax, 75 + mov bl, 5 + mov ecx, Socket + mov edx, SockAddr + mov esi, SIZEOF_TSOCKADDR + int $40 + pop esi + pop ebx +end; + +function SocketSend(Socket: LongWord; const Buffer; Size, Flags: LongWord): LongInt; stdcall; +asm + push ebx + push esi + push edi + mov eax, 75 + mov bl, 6 + mov ecx, Socket + mov edx, Buffer + mov esi, Size + mov edi, Flags + int $40 + pop edi + pop esi + pop ebx +end; + +function SocketReceive(Socket: LongWord; var Buffer; Size, Flags: LongWord): LongInt; stdcall; +asm + push ebx + push esi + push edi + mov eax, 75 + mov bl, 7 + mov ecx, Socket + mov edx, Buffer + mov esi, Size + mov edi, Flags + int $40 + pop edi + pop esi + pop ebx +end; + +function SetSocketOptions(Socket: LongWord; var OptStruct: TOptStruct): LongInt; stdcall; +asm + push ebx + mov eax, 75 + mov bl, 8 + mov ecx, Socket + mov edx, OptStruct + int $40 + pop ebx +end; + +function GetSocketOptions(Socket: LongWord; var OptStruct: TOptStruct): LongInt; stdcall; +asm + push ebx + mov eax, 75 + mov bl, 9 + mov ecx, Socket + mov edx, OptStruct + int $40 + pop ebx +end; + +function GetSocketPair(var Socket1, Socket2: LongWord): LongInt; stdcall; +asm + push ebx + mov eax, 75 + mov bl, 10 + int $40 + mov ecx, Socket1 + mov edx, Socket2 + mov [ecx], eax + mov [edx], ebx + pop ebx +end; + +function GetMAC(Device: Byte): LongWord; stdcall; +asm + push ebx + mov eax, 76 + mov ebx, $00000000 + mov bl, 0 + mov bh, Device + int $40 + pop ebx +end; + +function GetIPv4SentPackets(Device: Byte): LongWord; stdcall; +asm + push ebx + mov eax, 76 + mov ebx, $00010000 + mov bl, 0 + mov bh, Device + int $40 + pop ebx +end; + +function GetIPv4ReceivedPackets(Device: Byte): LongWord; stdcall; +asm + push ebx + mov eax, 76 + mov ebx, $00010000 + mov bl, 1 + mov bh, Device + int $40 + pop ebx +end; + +function GetIPv4IP(Device: Byte): LongWord; stdcall; +asm + push ebx + mov eax, 76 + mov ebx, $00010000 + mov bl, 2 + mov bh, Device + int $40 + pop ebx +end; + +function SetIPv4IP(Device: Byte; IP: LongWord): LongWord; stdcall; +asm + push ebx + mov eax, 76 + mov ebx, $00010000 + mov bl, 3 + mov bh, Device + mov ecx, IP + int $40 + pop ebx +end; + +function GetIPv4DNS(Device: Byte): LongWord; stdcall; +asm + push ebx + mov eax, 76 + mov ebx, $00010000 + mov bl, 4 + mov bh, Device + int $40 + pop ebx +end; + +function SetIPv4DNS(Device: Byte; DNS: LongWord): LongWord; stdcall; +asm + push ebx + mov eax, 76 + mov ebx, $00010000 + mov bl, 5 + mov bh, Device + mov ecx, DNS + int $40 + pop ebx +end; + +function GetIPv4Subnet(Device: Byte): LongWord; stdcall; +asm + push ebx + mov eax, 76 + mov ebx, $00010000 + mov bl, 6 + mov bh, Device + int $40 + pop ebx +end; + +function SetIPv4Subnet(Device: Byte; Subnet: LongWord): LongWord; stdcall; +asm + push ebx + mov eax, 76 + mov ebx, $00010000 + mov bl, 7 + mov bh, Device + mov ecx, Subnet + int $40 + pop ebx +end; + +function GetIPv4Gateway(Device: Byte): LongWord; stdcall; +asm + push ebx + mov eax, 76 + mov ebx, $00010000 + mov bl, 8 + mov bh, Device + int $40 + pop ebx +end; + +function SetIPv4Gateway(Device: Byte; Gateway: LongWord): LongWord; stdcall; +asm + push ebx + mov eax, 76 + mov ebx, $00010000 + mov bl, 9 + mov bh, Device + mov ecx, Gateway + int $40 + pop ebx +end; + +function GetICMPSentPackets(Device: Byte): LongWord; stdcall; +asm + push ebx + mov eax, 76 + mov ebx, $00020000 + mov bl, 0 + mov bh, Device + int $40 + pop ebx +end; + +function GetICMPReceivedPackets(Device: Byte): LongWord; stdcall; +asm + push ebx + mov eax, 76 + mov ebx, $00020000 + mov bl, 1 + mov bh, Device + int $40 + pop ebx +end; + +function GetUDPSentPackets(Device: Byte): LongWord; stdcall; +asm + push ebx + mov eax, 76 + mov ebx, $00030000 + mov bl, 0 + mov bh, Device + int $40 + pop ebx +end; + +function GetUDPReceivedPackets(Device: Byte): LongWord; stdcall; +asm + push ebx + mov eax, 76 + mov ebx, $00030000 + mov bl, 1 + mov bh, Device + int $40 + pop ebx +end; + +function GetTCPSentPackets(Device: Byte): LongWord; stdcall; +asm + push ebx + mov eax, 76 + mov ebx, $00040000 + mov bl, 0 + mov bh, Device + int $40 + pop ebx +end; + +function GetTCPReceivedPackets(Device: Byte): LongWord; stdcall; +asm + push ebx + mov eax, 76 + mov ebx, $00040000 + mov bl, 1 + mov bh, Device + int $40 + pop ebx +end; + +function GetARPSentPackets(Device: Byte): LongWord; stdcall; +asm + push ebx + mov eax, 76 + mov ebx, $00050000 + mov bl, 0 + mov bh, Device + int $40 + pop ebx +end; + +function GetARPReceivedPackets(Device: Byte): LongWord; stdcall; +asm + push ebx + mov eax, 76 + mov ebx, $00050000 + mov bl, 1 + mov bh, Device + int $40 + pop ebx +end; + +function GetARPEntrys(Device: Byte): LongWord; stdcall; +asm + push ebx + mov eax, 76 + mov ebx, $00050000 + mov bl, 2 + mov bh, Device + int $40 + pop ebx +end; + +function GetARPEntry(Device: Byte; Entry: LongWord; var Buffer): LongWord; stdcall; +asm + push ebx + push edi + mov eax, 76 + mov ebx, $00050000 + mov bl, 3 + mov bh, Device + mov ecx, Entry + mov edi, Buffer + int $40 + pop edi + pop ebx +end; + +function AddARPEntry(Device: Byte; const Buffer): LongWord; stdcall; +asm + push ebx + push esi + mov eax, 76 + mov ebx, $00050000 + mov bl, 4 + mov bh, Device + mov esi, Buffer + int $40 + pop esi + pop ebx +end; + +function RemoveARPEntry(Device: Byte; Entry: LongWord): LongWord; stdcall; +asm + push ebx + mov eax, 76 + mov ebx, $00050000 + mov bl, 5 + mov bh, Device + mov ecx, Entry + int $40 + pop ebx +end; + +function SendARPAnnounce(Device: Byte): LongWord; stdcall; +asm + push ebx + mov eax, 76 + mov ebx, $00050000 + mov bl, 6 + mov bh, Device + int $40 + pop ebx +end; + +function GetARPConflicts(Device: Byte): LongWord; stdcall; +asm + push ebx + mov eax, 76 + mov ebx, $00050000 + mov bl, 7 + mov bh, Device + int $40 + pop ebx +end; + +function CreateFutex(Futex: Pointer): LongWord; stdcall; +asm + push ebx + mov eax, 77 + mov ebx, 0 + mov ecx, Futex + int $40 + pop ebx +end; + +function DestroyFutex(Handle: LongWord): LongWord; stdcall; +asm + push ebx + mov eax, 77 + mov ebx, 1 + mov ecx, Handle + int $40 + pop ebx +end; + +function WaitFutex(Handle, Value, Time: LongWord): LongWord; stdcall; +asm + push ebx + push esi + mov eax, 77 + mov ebx, 2 + mov ecx, Handle + mov edx, Value + mov esi, Time + int $40 + pop esi + pop ebx +end; + +function WakeFutex(Handle, Waiters: LongWord): LongWord; stdcall; +asm + push ebx + mov eax, 77 + mov ebx, 3 + mov ecx, Handle + mov edx, Waiters + int $40 + pop ebx +end; + +function GetProcAddress(hLib: Pointer; ProcName: PKolibriChar): Pointer; stdcall; +asm + push esi + push edi + push ebx + mov edx, hLib + xor eax, eax + test edx, edx + jz @end + mov edi, ProcName + mov ecx, $FFFFFFFF + repne scasb + mov ebx, ecx + not ebx +@next: + mov esi, [edx] + test esi, esi + jz @end + mov ecx, ebx + mov edi, ProcName + add edx, 8 + repe cmpsb + jne @next + mov eax, [edx - 4] +@end: + pop ebx + pop edi + pop esi +end; + +end.