KOSfuncs.inc
mxlgv_KolibriDev/build_iso/kolibrios/develop/fasm/KOSfuncs.inc

; KolibriOS system functions:
SF_TERMINATE_PROCESS=-1
SF_CREATE_WINDOW=0      ; define and draw the window
SF_PUT_PIXEL=1          ; draw pixel to the window
SF_GET_KEY=2            ; get code of the pressed key
SF_GET_SYS_TIME=3
SF_DRAW_TEXT=4
SF_SLEEP=5              ; pause process
SF_PUT_IMAGE=7          ; draw image to the window
SF_DEFINE_BUTTON=8      ; define/delete the button
SF_THREAD_INFO=9        ; information on execution thread
SF_WAIT_EVENT=10        ; wait for event
SF_CHECK_EVENT=11       ; check for event and return
SF_REDRAW=12
  SSF_BEGIN_DRAW=1
  SSF_END_DRAW=2
SF_DRAW_RECT=13         ; draw rectangle to the window
SF_GET_SCREEN_SIZE=14   ; get screen resolution
SF_BACKGROUND_SET=15    ; work with desktop background graphics
  SSF_SIZE_BG=1         ; set a size of the background image
  SSF_PIXEL_BG=2        ; put pixel on the background image
  SSF_REDRAW_BG=3       ; redraw background
  SSF_MODE_BG=4         ; set drawing mode for the background
  SSF_IMAGE_BG=5        ; put block of pixels on the background image
  SSF_MAP_BG=6          ; map background image to the address space of the process
  SSF_UNMAP_BG=7        ; close mapped background data
  SSF_LAST_DRAW=8       ; get coordinates of the last draw to the background
  SSF_REDRAW_RECT=9     ; redraws a rectangular part of the background
SF_RD_TO_FLOPPY=16      ; save ramdisk on the floppy
SF_GET_BUTTON=17        ; get ID of the pressed button
SF_SYSTEM=18
  SSF_UNFOCUS_WINDOW=1          ; take focus from the window of the given thread
  SSF_TERMINATE_THREAD=2        ; terminate process/thread by the slot number
  SSF_FOCUS_WINDOW=3            ; give focus to the window of the given thread
  SSF_GET_IDLE_COUNT=4          ; get counter of idle cycles per second
  SSF_GET_CPU_FREQUENCY=5        ; get CPU clock rate
  SSF_RD_TO_HDD=6               ; save ramdisk to the file on hard disk
  SSF_GET_ACTIVE_WINDOW=7       ; get slot number of the active window
  SSF_SPEAKER=8
    SSSF_GET_STATE=1
    SSSF_TOGGLE=2
  SSF_SHUTDOWN=9                ; system shutdown/reboot
  SSF_MINIMIZE_WINDOW=10        ; minimize active window
  SSF_INFO_DISC_SYS=11          ; get disk subsystem information
  SSF_KERNEL_VERSION=13         ; get kernel version
  SSF_WAIT_RETRACE=14           ; wait for screen retrace
  SSF_CURSOR_CENTER=15          ; center mouse cursor on the screen
  SSF_GET_FREE_RAM=16           ; get size of free RAM
  SSF_GET_TOTAL_RAM=17          ; get total amount of RAM
  SSF_TERMINATE_THREAD_ID=18    ; Terminate process/thread by the ID
  SSF_MOUSE_SETTINGS=19
    SSSF_GET_SPEED=0
    SSSF_SET_SPEED=1
    SSSF_GET_SPEEDUP=2
    SSSF_SET_SPEEDUP=3          ; set mouse acceleration
    SSSF_SET_POS=4              ; set mouse pointer position
    SSSF_SET_BUTTON=5           ; simulate state of mouse buttons
    SSSF_GET_DOUBLE_CLICK_DELAY=6
    SSSF_SET_DOUBLE_CLICK_DELAY=7
  SSF_GET_RAM_INFO=20           ; get information on RAM
  SSF_GET_THREAD_SLOT=21        ; get slot number of process/thread by the ID
  SSF_FOREIGN_WINDOW=22         ; operations with window of another thread by slot/ID
    SSSF_MINIMIZE=0
    SSSF_MINIMIZE_ID=1
    SSSF_RESTORE=2
    SSSF_RESTORE_ID=3
  SSF_MINIMIZE_ALL=23
  SSF_SET_SCREEN_LIMITS=24
  SSF_WINDOW_BEHAVIOR=25        ; window focus relation with other windows
    SSSF_GET_WB=1
    SSSF_SET_WB=2
SF_MIDI=20
  SSF_RESET=1
  SSF_OUTPUT=2
SF_SYSTEM_SET=21
  SSF_MPU_MIDI_BASE=1
  SSF_KEYBOARD_LAYOUT=2
  SSF_SYS_LANG=5
  SSF_ACCESS_HD_LBA=11  ; setting of low-level access to HD
  SSF_ACCESS_PCI=12     ; setting of low-level access to PCI
SF_SET_TIME_DATE=22
SF_WAIT_EVENT_TIMEOUT=23; wait for event with timeout
SF_CD=24
  SSF_EJECT_TRAY=4
  SSF_INSERT_TRAY=5
SF_SCREEN_PUT_IMAGE=25  ; put image on the background layer
SF_SYSTEM_GET=26
  ; Same as SF_SYSTEM_SET, plus:
  SSF_TIME_COUNT=9
  SSF_TIME_COUNT_PRO=10 ; get value of the high precision time counter
SF_GET_SYS_DATE=29
SF_CURRENT_FOLDER=30
  SSF_SET_CF=1          ; set current folder for the thread
  SSF_GET_CF=2
  SSF_ADD_SYS_FOLDER=3  ; install the add.system directory for the kernel
SF_GET_PIXEL_OWNER=34   ; get slot number of the screen pixel owner
SF_GET_PIXEL=35         ; read the screen pixel color
SF_GET_IMAGE=36         ; read the screen area
SF_MOUSE_GET=37
  SSF_SCREEN_POSITION=0
  SSF_WINDOW_POSITION=1
  SSF_BUTTON=2          ; states of the mouse buttons
  SSF_BUTTON_EXT=3      ; states and events of the mouse buttons
  SSF_LOAD_CURSOR=4
  SSF_SET_CURSOR=5
  SSF_DEL_CURSOR=6
  SSF_SCROLL_DATA=7
SF_DRAW_LINE=38
SF_BACKGROUND_GET=39
  ;SSF_SIZE_BG=1
  ;SSF_PIXEL_BG=2
  ;SSF_MODE_BG=4
SF_SET_EVENTS_MASK=40   ; turn on/off desired events
SF_PORT_IN_OUT=43       ; input/output to a port
SF_SET_PORTS=46         ; reserve/free a group of input/output ports
SF_DRAW_NUMBER=47       ; draw number to the window
SF_STYLE_SETTINGS=48
  SSF_APPLY=0           ; apply screen settings
  SSF_SET_BUTTON_STYLE=1
  SSF_SET_COLORS=2
  SSF_GET_COLORS=3      ; get standard window colors
  SSF_GET_SKIN_HEIGHT=4
  SSF_GET_SCREEN_AREA=5 ; get screen working area
  SSF_SET_SCREEN_AREA=6
  SSF_GET_SKIN_MARGINS=7
  SSF_SET_SKIN=8
  SSF_GET_FONT_SMOOTH=9
  SSF_SET_FONT_SMOOTH=10
  SSF_GET_FONT_SIZE=11
  SSF_SET_FONT_SIZE=12
SF_APM=49
SF_SET_WINDOW_SHAPE=50
SF_CREATE_THREAD=51
SF_CLIPBOARD=54
  SSF_GET_SLOT_COUNT=0  ; get the number of slots in the clipboard
  SSF_READ_CB=1
  SSF_WRITE_CB=2
  SSF_DEL_SLOT=3        ; delete the last slot in the clipboard
  SSF_UNLOCK_BUFFER=4   ; emergency buffer unlock
SF_SPEAKER_PLAY=55
SF_PCI_BIOS=57
SF_IPC=60               ; Inter Process Communication
  SSF_SET_AREA=1        ; set area for IPC receiving
  SSF_SEND_MESSAGE=2
SF_GET_GRAPHICAL_PARAMS=61
  SSF_SCREEN_SIZE=1
  SSF_BITS_PER_PIXEL=2
  SSF_BYTES_PER_LINE=3
SF_PCI=62
  SSF_GET_VERSION=0     ; get version of PCI-interface
  SSF_GET_LAST_BUS=1    ; get number of the last PCI-bus
  SSF_GET_ADRR_MODE=2   ; get addressing mode of the PCI configuration space
  SSF_READ_BYTE=4
  SSF_READ_WORD=5
  SSF_READ_DWORD=6
  SSF_WRITE_BYTE=8
  SSF_WRITE_WORD=9
  SSF_WRITE_DWORD=10
SF_BOARD=63
  SSF_DEBUG_WRITE=1
  SSF_DEBUG_READ=2
SF_MEMORY_RESIZE=64     ; resize total application memory
SF_PUT_IMAGE_EXT=65     ; draw image with palette to the window
SF_KEYBOARD=66
  SSF_SET_INPUT_MODE=1
  SSF_GET_INPUT_MODE=2
  SSF_GET_CONTROL_KEYS=3; get status of control keys
  SSF_SET_SYS_HOTKEY=4
  SSF_DEL_SYS_HOTKEY=5
  SSF_LOCK_INPUT=6      ; block normal input
  SSF_UNLOCK_INPUT=7    ; restore normal input
SF_CHANGE_WINDOW=67     ; change position/sizes of the window
SF_SYS_MISC=68
  SSF_GET_TASK_SWITCH_COUNT=0
  SSF_SWITCH_TASK=1
  SSF_PERFORMANCE=2
    SSSF_ALLOW_RDPMC=0
    SSSF_CACHE_STATUS=1
    SSSF_CACHE_ON=2
    SSSF_CACHE_OFF=3
  SSF_READ_MSR=3
  SSF_WRITE_MSR=4
  SSF_HEAP_INIT=11
  SSF_MEM_ALLOC=12
  SSF_MEM_FREE=13
  SSF_WAIT_SIGNAL=14    ; wait for signal from another program/driver
  SSF_LOAD_DRIVER=16
  SSF_CONTROL_DRIVER=17
  SSF_LOAD_DLL=19
  SSF_MEM_REALLOC=20
  SSF_LOAD_DRIVER_PE=21
  SSF_MEM_OPEN=22       ; open named memory area
  SSF_MEM_CLOSE=23
  SSF_SET_EXCEPTION_HANDLER=24
  SSF_SET_EXCEPTION_STATE=25
  SSF_MEM_FREE_EXT=26
  SSF_LOAD_FILE=27
SF_DEBUG=69
  SSF_SET_MESSAGE_AREA=0
  SSF_GET_REGISTERS=1
  SSF_SET_REGISTERS=2
  SSF_DETACH=3
  SSF_SUSPEND=4
  SSF_RESUME=5
  SSF_READ_MEMORY=6
  SSF_WRITE_MEMORY=7
  SSF_TERMINATE=8
  SSF_DEFINE_BREAKPOINT=9
SF_FILE=70
  SSF_READ_FILE=0
  SSF_READ_FOLDER=1
  SSF_CREATE_FILE=2
  SSF_WRITE_FILE=3
  SSF_SET_END=4
  SSF_GET_INFO=5
  SSF_SET_INFO=6
  SSF_START_APP=7
  SSF_DELETE=8
  SSF_CREATE_FOLDER=9
SF_SET_CAPTION=71
SF_SEND_MESSAGE=72
SF_BLITTER=73
SF_NETWORK_DEVICE=74
  SSF_DEVICE_COUNT=255  ; get number of active network devices
  SSF_DEVICE_TYPE=0
  SSF_DEVICE_NAME=1
  SSF_RESET_DEVICE=2
  SSF_STOP_DEVICE=3
  SSF_DEVICE_POINTER=4
  SSF_TX_PACKET_COUNT=6
  SSF_RX_PACKET_COUNT=7
  SSF_TX_BYTE_COUNT=8
  SSF_RX_BYTE_COUNT=9
  SSF_LINK_STATUS=10
SF_NETWORK_SOCKET=75
  SSF_OPEN=0
  SSF_CLOSE=1
  SSF_BIND=2
  SSF_LISTEN=3
  SSF_CONNECT=4
  SSF_ACCEPT=5
  SSF_SEND=6
  SSF_RECEIVE=7
  SSF_SET_OPTIONS=8
  SSF_GET_OPTIONS=9
  SSF_SOCKET_PAIR=10
SF_NETWORK_PROTOCOL=76
  SSF_ETHERNET_READ_MAC=0
  SSF_IP4_PACKETS_SENT=10000h
  SSF_IP4_PACKETS_RECEIVED=10001h
  SSF_IP4_READ_IP=10002h
  SSF_IP4_WRITE_IP=10003h
  SSF_IP4_READ_DNS=10004h
  SSF_IP4_WRITE_DNS=10005h
  SSF_IP4_READ_SUBNET=10006h
  SSF_IP4_WRITE_SUBNET=10007h
  SSF_IP4_READ_GATEWAY=10008h
  SSF_IP4_WRITE_GATEWAY=10009h
  SSF_ICMP_PACKETS_SENT=20000h
  SSF_ICMP_PACKETS_RECEIVED=20001h
  SSF_ICMP_ECHO_REPLY=20003h
  SSF_UDP_PACKETS_SENT=30000h
  SSF_UDP_PACKETS_RECEIVED=30001h
  SSF_TCP_PACKETS_SENT=40000h
  SSF_TCP_PACKETS_RECEIVED=40001h
  SSF_ARP_PACKETS_SENT=50000h
  SSF_ARP_PACKETS_RECEIVED=50001h
  SSF_ARP_GET_ENTRY_COUNT=50002h
  SSF_ARP_READ_ENTRY=50003h
  SSF_ARP_ADD_STATIC_ENTRY=50004h
  SSF_ARP_DEL_ENTRY=50005h
  SSF_ARP_SEND_ANNOUNCE=50006h
  SSF_ARP_CONFLICTS_COUNT=50007h
SF_FUTEX=77
  SSF_CREATE=0
  SSF_DESTROY=1
  SSF_WAIT=2
  SSF_WAKE=3

; File system errors:
FSERR_SUCCESS=0
FSERR_UNSUPPORTED=2
FSERR_UNKNOWN=3
FSERR_FILE_NOT_FOUND=5
FSERR_END_OF_FILE=6
FSERR_INVALID_BUFFER=7
FSERR_DISK_FULL=8
FSERR_FAIL=9
FSERR_ACCESS_DENIED=10
FSERR_DEVICE_FAIL=11
FSERR_OUT_OF_MEMORY=12
