;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;                                                              ;;
;; Copyright (C) KolibriOS team 2004-2016. All rights reserved. ;;
;; Distributed under terms of the GNU General Public License    ;;
;;                                                              ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    Kolibri 0.7.7.0

     eax.
     "int 0x40".
 ,      ,
       eflags, .


======================================================================
==============  0 -    . =============
======================================================================
  .   ,   
.         
.
:
  * eax = 0 -  
  * ebx = [   x]*65536 + [   x]
  * ecx = [   y]*65536 + [   y]
  * edx = 0xXYRRGGBB, :
    * Y =  :
      * Y=1 -    ,   
      * Y=3 -   
      * Y=4 -     
      * Y=0,2         
                   
      *    ( 5  15) ,
            Y 
    * RR, GG, BB =  , , 
          
      (   Y=1)
    * X = DCBA ()
      * A = 1 -    
      * B = 1 -     
                   
      * C = 1 -       
      * D = 0 -    , 1 - 
          I  II 
       Y=1,3:
  * esi = 0xXYRRGGBB -  
    * RR, GG, BB   
    * Y = 0 -  
      Y = 1 -   (    )
    * X   : 
      X = 0 -  ,
      X = 8 -  ,
         II X=4 -  
    *   X  Y 
  * edi =      Y=3,4 (.  71.1)
 :
  *    
:
  *        
         ;  
     /     
    67- .
  *    Y=3,4   (A=1)  
            
     ( ,   
     2  12 -  );
           
     1  71.
  *     ,  
    /     .
             9.
  *     .   
         ,  
     (, , )  ,    
     ,    (, , )
       .

      xpos,ypos,xsize,ysize - , 
     ebx,ecx.     
     , ,  ,   (0,0), 
        (xsize,ysize).
  *         .
           .
     ,     1  .
  *    Y=1:
    *   
  *     Y=3,4:
    *     1 
       'outer'  
    *     3 
       'frame'  
    *     1 
       'inner'  
    *   (   )  
      (0,0) - (xsize,_skinh-1)
    *  ysize>=26,      -
           (5,_skinh)   
      (xsize-5,ysize-5) - ,   edx (  )
    *    :   
      (  8)
    *  A=1   edi ()    ,
            ,  
    *   _skinh    
       4  48

----------------------   : ----------------------
  eax - SF_CREATE_WINDOW (0)
======================================================================
=================  1 -    . ================
======================================================================
:
  * eax = 1 -  
  * ebx = x- ( )
  * ecx = y- ( )
  * edx = 0x00RRGGBB -  
    edx = 0x01xxxxxx -   
          ( 24  )
 :
  *    

----------------------   : ----------------------
  eax - SF_PUT_PIXEL (1)
======================================================================
==============  2 -    . =============
======================================================================
     .
:
  * eax = 2 -  
 :
  *   ,  eax=1
  *   ,   al=0, ah=  ,
     16-23       ASCII,
                   .
     23-31 
  *   " ",  
    al=2, ah=   (0   ),
       eax    
        
:
  *       120 ,
      .
  *       120 " ".
  *        
    ,     .
  *      ASCII-;  
      ( )     66.
    ,      .
  * ,      , ,
      keyascii  scancode.
  *      ;
    ASCII-     ,
        2  21  
     2  26.
  *  , ASCII-    
    (rus/en)    .
  *       ,  
        4  66.

----------------------   : ----------------------
  eax - SF_GET_KEY (2)
======================================================================
================  3 -   . ===============
======================================================================
:
  * eax = 3 -  
 :
  * eax = 0x00SSMMHH,  HH:MM:SS = ::
  *     BCD-, ,
      23:59:59   0x00595923
:
  *    9  26 -  
       ;     ,
       DWORD-  .
  *      22.

----------------------   : ----------------------
  eax - SF_GET_SYS_TIME (3)
======================================================================
================  4 -   . ===============
======================================================================
:
  * eax = 4 -  
  * ebx = X*65536+Y,     
  * ecx = 0xXXRRGGBB, 
    * RR, GG, BB   
    * XX=ABFFCSSS ():
      * A=1 -    
      * B=1 -   ( = edi)
      * FF    :
        0 = 6x9  cp866
        1 = 8x16 cp866
        2 = 8x16 UTF-16LE
        3 = 8x16 UTF-8
      * C=0 -   ,
        =1 -    (edi)
      * SSS = ( )-1, - 0 = x1, 7 = x8
  * edx =    
  * esi =  A=0  ,  A=1 
  * edi =  B=1 -    ,
           C=1 -   

 :
  *    
:
  *    B=1  C=1,
          edi.
  *  SSS=0,   ,
        .
  *  :
Xsize       dd
Ysize       dd
picture     rb  Xsize*Ysize*4  ; 32 

----------------------   : ----------------------
  eax - SF_DRAW_TEXT (4)
======================================================================
=========================  5 - . =========================
======================================================================
     .
:
  * eax = 5 -  
  * ebx =     
 :
  *    
:
  *  ebx=0      
        .  
        
    (   ),   1
     68.

----------------------   : ----------------------
  eax - SF_SLEEP (5)
======================================================================
===============  7 -    . ==============
======================================================================
:
  * eax = 7 -  
  * ebx =      BBGGRRBBGGRR...
  * ecx = [   x]*65536 + [   y]
  * edx = [   x]*65536 + [   y]
 :
  *    
:
  *   -     
      .
  *      3*xsize*ysize.

----------------------   : ----------------------
  eax - SF_PUT_IMAGE (7)
======================================================================
===============  8 - / . ===============
======================================================================
   :
  * eax = 8 -  
  * ebx = [   x]*65536 + [   x]
  * ecx = [   y]*65536 + [   y]
  * edx = 0xXYnnnnnn, :
    * nnnnnn =  
    *  (31-)  edx 
    *  30-  edx  -   
    *  29-  edx  -   
         
  * esi = 0x00RRGGBB -  
   :
  * eax = 8 -  
  * edx = 0x80nnnnnn,  nnnnnn -  
 :
  *    
:
  *      0   0x8000.
  *        ( 0- )
        -  
      1      0xffff.
  *      
     .
  *    0xffff   
       ,   
     ,    .
        .
  *       
     4095.

----------------------   : ----------------------
  eax - SF_DEFINE_BUTTON (8)
======================================================================
=============  9 -    . ============
======================================================================
:
  * eax = 9 -  
  * ebx =     1 
  * ecx =   
    ecx = -1 -     
 :
  * eax =    
    ,    ebx , ,
     [ebx, ebx + 0x4C)    ,
        -1
  * ,    ebx,   :
    * +0: dword:   (   
           )
    * +4: word:      
    * +6: word: (     )
        ,      
        ecx
    * +8: word: 
    * +10 = +0xA: 11 :  
      (   -    )
    * +21 = +0x15: byte: ,    
    * +22 = +0x16: dword:    
    * +26 = +0x1A: dword:    - 1
    * +30 = +0x1E: dword:  (PID/TID)
    * +34 = +0x22: dword:      x
    * +38 = +0x26: dword:      y
    * +42 = +0x2A: dword:      x
    * +46 = +0x2E: dword:      y
    * +50 = +0x32: word:   :
      * 0 =  
      * 1 =  
      * 2 =      
      * 3 =       -1 
             2  18
           
      * 4 =     
      * 5 =   
      * 9 =   ,    
           
    * +52 = +0x34: word: ,    
    * +54 = +0x36: dword:    
                            x
    * +58 = +0x3A: dword:    
                            y
    * +62 = +0x3E: dword:   
    * +66 = +0x42: dword:   
    * +70 = +0x46: byte:   -  
      *  0 ( 1):  
      *  1 ( 2):     
      *  2 ( 4):    
    * +71 = +0x47: dword:  
    * +75 = +0x4B: byte:    (ASCII = 0; SCAN = 1)
:
  *    1.
  *       , 
      .
  *       .
  *     .   
       .      ,
           ,  
    +10, +22, +26    .
          ,
         .
  *   - ,     ,
          .    
         .
  *  1     ,
     :
    *     ,  +4  +6 
       1
    *   - "IDLE" ( )
    *      0,   
      16 Mb (0x1000000)
    * PID=1
    *    ,     ,
         0
    *   -  0 ()
    *     ,  
       ,      
      (     4  18).
  *  2 (  )   
     ,  :
    *   - "OS" ( )
  *        0
    (  std_application_base_address).
      ,     
     .
  *          
     (Process/Thread IDentifier = PID/TID),  
         .
            
      .      
         .
         .
  *          0, 
          .
  *       .
  *        
    76 = 0x4C .      
     1    ,    
      .

----------------------   : ----------------------
  eax - SF_THREAD_INFO (9)
======================================================================
====================  10 -  . ===================
======================================================================
   ,      .
       .
    .

:
  * eax = 10 -  
 :
  * eax =  (  )
:
  *    ,    ,
      40.    
    ,      .
  *  ,     ,   11.
         , 
     23.

----------------------   : ----------------------
  eax - SF_WAIT_EVENT (10)
======================================================================
=======  11 - ,   ,  . =======
======================================================================
     - ,   
 .   ,  .
:
  * eax = 11 -  
 :
  * eax = 0 -   
  *  eax =  (  )
:
  *    ,    ,
      40.    
    ,      .
  *      ,   10.
         , 
     23.

----------------------   : ----------------------
  eax - SF_CHECK_EVENT (11)
======================================================================
===========  12 - /  . ==========
======================================================================

--------------  1 -   . ---------------
:
  * eax = 12 -  
  * ebx = 1 -  
 :
  *    

-------------  2 -   . -------------
:
  * eax = 12 -  
  * ebx = 2 -  
 :
  *    
:
  *      
     8 ,    .

----------------------   : ----------------------
  eax - SF_REDRAW (12)
  ebx - SSF_BEGIN_DRAW (1), SSF_END_DRAW (2)
======================================================================
============  13 -    . ===========
======================================================================
:
  * eax = 13 -  
  * ebx = [   x]*65536 + [   x]
  * ecx = [   y]*65536 + [   y]
  * edx =  0xRRGGBB  0x80RRGGBB   
 :
  *    
:
  *       
      .

----------------------   : ----------------------
  eax - SF_DRAW_RECT (13)
======================================================================
================  14 -   . ===============
======================================================================
:
  * eax = 14 -  
 :
  * eax = [xsize]*65536 + [ysize], 
  * xsize = x-     =
               - 1
  * ysize = y-     =
               - 1
:
  *    5  48 -   
     .

----------------------   : ----------------------
  eax - SF_GET_SCREEN_SIZE (14)
======================================================================
=  15,  1 -    . =
======================================================================
:
  * eax = 15 -  
  * ebx = 1 -  
  * ecx =  
  * edx =  
 :
  *    
:
  *       2  5.
  *    (   ,  
    )   3  .
  *        -
     1  39.

----------------------   : ----------------------
  eax - SF_BACKGROUND_SET (15)
  ebx - SSF_SIZE_BG (1)
======================================================================
=  15,  2 -     . =
======================================================================
:
  * eax = 15 -  
  * ebx = 2 -  
  * ecx = 
  * edx =   0xRRGGBB
 :
  *    
:
  *      (x,y)  
    (x+y*xsize)*3.
  *       1
    ,  .
  *    (   ,  
    )   3  .
  *         -
     2  39.

----------------------   : ----------------------
  eax - SF_BACKGROUND_SET (15)
  ebx - SSF_PIXEL_BG (2)
======================================================================
============  15,  3 -  . ============
======================================================================
:
  * eax = 15 -  
  * ebx = 3 -  
 :
  *    

----------------------   : ----------------------
  eax - SF_BACKGROUND_SET (15)
  ebx - SSF_REDRAW_BG (3)
======================================================================
=====  15,  4 -    . ====
======================================================================
:
  * eax = 15 -  
  * ebx = 4 -  
  * ecx =  :
    * 1 = 
    * 2 = 
 :
  *    
:
  *    (   ,  
    )   3  .
  *        -
     4  39.

----------------------   : ----------------------
  eax - SF_BACKGROUND_SET (15)
  ebx - SSF_MODE_BG (4)
======================================================================
=====  15,  5 -     . =====
======================================================================
:
  * eax = 15 -  
  * ebx = 5 -  
  * ecx =      BBGGRRBBGGRR...
  * edx =     
  * esi =     = 3 *  
 :
  *    
:
  *       .
  *      3-  BBGGRR.
  *     
     ,  .
  *     (x,y)  (x+y*xsize)*3.
  *    (   ,  
    )   3  .

----------------------   : ----------------------
  eax - SF_BACKGROUND_SET (15)
  ebx - SSF_IMAGE_BG (5)
======================================================================
======================  15,  6 ======================
====       . ====
======================================================================
:
  * eax = 15 -  
  * ebx = 6 -  
 :
  * eax =    , 0  
:
  *       .
  *     3*xsize*ysize.   
          .
  *      3-  BBGGRR.
  *     
     ,  .

----------------------   : ----------------------
  eax - SF_BACKGROUND_SET (15)
  ebx - SSF_MAP_BG (6)
======================================================================
======================  15,  7 ======================
===        . ==
======================================================================
:
  * eax = 15 -  
  * ebx = 7 -  
  * ecx =    
 :
  * eax = 1  , 0  

----------------------   : ----------------------
  eax - SF_BACKGROUND_SET (15)
  ebx - SSF_UNMAP_BG (7)
======================================================================
======================  15,  8 ======================
===========     . ============
======================================================================
:
  * eax = 15 -  
  * ebx = 8 -  
 :
  * eax = [left]*65536 + [right]
  * ebx = [top]*65536 + [bottom]
:
  * (left,top) -    ,
    (right,bottom) -   .
  *     ,  
        :
             5 =     

----------------------   : ----------------------
  eax - SF_BACKGROUND_SET (15)
  ebx - SSF_LAST_DRAW (8)
======================================================================
======================  15,  9 ======================
===============    . ===============
======================================================================
:
  * eax = 15 -  
  * ebx = 9 -  
  * ecx = [left]*65536 + [right]
  * edx = [top]*65536 + [bottom]
 :
  *    
:
  * (left,top) -    ,
    (right,bottom) -   .
  *     -   .

----------------------   : ----------------------
  eax - SF_BACKGROUND_SET (15)
  ebx - SSF_REDRAW_RECT (9)
======================================================================
=============  16 -    . =============
======================================================================
:
  * eax = 16 -  
  * ebx = 1  ebx = 2 -    
 :
  * eax = 0 - 
  * eax = 1 - 

----------------------   : ----------------------
  eax - SF_RD_TO_FLOPPY (16)
======================================================================
==============  17 -    . =============
======================================================================
     .
:
  * eax = 17 -  
 :
  *   ,  eax=1
  *   :
    *  24  eax   
      ( ,  ah    ;
          ,  256,
          ah)
    * al = 0 -      
    * al = ,    ,   
:
  * ""    ,    
       .
  *        
      " ".
  *   al    
       2  37    
     ,     ( 
     ),  .

----------------------   : ----------------------
  eax - SF_GET_BUTTON (17)
======================================================================
=  18,  1 -     . =======
======================================================================
:
  * eax = 18 -  
  * ebx = 1 -  
  * ecx =   
 :
  *    

----------------------   : ----------------------
  eax - SF_SYSTEM (18)
  ebx - SSF_UNFOCUS_WINDOW (1)
======================================================================
====  18,  2 -  /  . ====
======================================================================
:
  * eax = 18 -  
  * ebx = 2 -  
  * ecx =   /
 :
  *    
:
  *      OS/IDLE ( 
    1),     /.
  *    18 - 
    /   .

----------------------   : ----------------------
  eax - SF_SYSTEM (18)
  ebx - SSF_TERMINATE_THREAD (2)
======================================================================
=  18,  3 -     . =
======================================================================
:
  * eax = 18 -  
  * ebx = 3 -  
  * ecx =   
 :
  *    
:
  *   ,    
    - .
  * ,    ,    7.

----------------------   : ----------------------
  eax - SF_SYSTEM (18)
  ebx - SSF_FOCUS_WINDOW (3)
======================================================================
  18,  4 -      .
======================================================================
    ,    
   (  hlt).

:
  * eax = 18 -  
  * ebx = 4 -  
 :
  * eax =      

----------------------   : ----------------------
  eax - SF_SYSTEM (18)
  ebx - SSF_GET_IDLE_COUNT (4)
======================================================================
========  18,  5 -   . =======
======================================================================
:
  * eax = 18 -  
  * ebx = 5 -  
 :
  * eax =   (  2^32  = 4)

----------------------   : ----------------------
  eax - SF_SYSTEM (18)
  ebx - SSF_GET_CPU_FREQUENCY (5)
======================================================================
  18,  6 -       .
======================================================================
:
  * eax = 18 -  
  * ebx = 6 -  
  * ecx =       
    (, "/hd0/1/kolibri/kolibri.img")
 :
  * eax = 0 - 
  *  eax =    
:
  *       ,  
     5, "  ".

----------------------   : ----------------------
  eax - SF_SYSTEM (18)
  ebx - SSF_RD_TO_HDD (6)
======================================================================
======  18,  7 -    . =====
======================================================================
:
  * eax = 18 -  
  * ebx = 7 -  
 :
  * eax =    (  ,  
    )
:
  *        
         .
  *       3.

----------------------   : ----------------------
  eax - SF_SYSTEM (18)
  ebx - SSF_GET_ACTIVE_WINDOW (7)
======================================================================
====  18,  8 - /  . ====
======================================================================
     55  55 .
  -    .

---------------  1 -  . ----------------
:
  * eax = 18 -  
  * ebx = 8 -  
  * ecx = 1 -  
 :
  * eax = 0 -   ; 1 - 

--------------  2 -  . --------------
  /.
:
  * eax = 18 -  
  * ebx = 8 -  
  * ecx = 2 -  
 :
  *    

----------------------   : ----------------------
  eax - SF_SYSTEM (18)
  ebx - SSF_SPEAKER (8)
  ecx - SSSF_GET_STATE (1), SSSF_TOGGLE (2)
======================================================================
=  18,  9 -     . =
======================================================================
:
  * eax = 18 -  
  * ebx = 9 -  
  * ecx = :
    * 2 =  
    * 3 =  
    * 4 =     kernel.mnt  
 :
  *   ecx    (.. eax=18)
  *        eax=0
:
  *        
    ,       .

----------------------   : ----------------------
  eax - SF_SYSTEM (18)
  ebx - SSF_SHUTDOWN (9)
======================================================================
=========  18,  10 -   . ========
======================================================================
  .
:
  * eax = 18 -  
  * ebx = 10 -  
 :
  *    
:
  *       9  
     .
  *      
     3.
  *     /  :
           
     (      
     0,         8),
     -  @taskbar.

----------------------   : ----------------------
  eax - SF_SYSTEM (18)
  ebx - SSF_MINIMIZE_WINDOW (10)
======================================================================
======================  18,  11 =====================
=============     . =============
======================================================================

 !!! .        !!!

:
  * eax = 18 -  
  * ebx = 11 -  
  * ecx =  :
    * 1 =  , 16 
  * edx =    ( )  
 :
  *    
 :  :
  * +0: byte:    (  ), AAAABBBB,
     AAAA    , BBBB -  
     :
    * 0 =  
    * 1 = 360Kb, 5.25''
    * 2 = 1.2Mb, 5.25''
    * 3 = 720Kb, 3.5''
    * 4 = 1.44Mb, 3.5''
    * 5 = 2.88Mb, 3.5'' (     )
    ,      1.44-
      40h,    1.2Mb  A:  1.44Mb  B:
      24h.

    IDE:
  * +1: byte:      CD-, AABBCCDD,
     AA   IDE0, ..., DD - IDE3:
    * 0 =  
    * 1 =  
    * 2 = CD-
    ,   HD  IDE0  CD  IDE2   48h.
  * +2: 4 db:       
     IDE0,...,IDE3.

    IDE:
  * +6: byte:      CD-, AABBCCDD
     AA   IDE4, ..., DD - IDE7:
    * 0 =  
    * 1 =  
    * 2 = CD-
    ,   HD  IDE4  CD  IDE6   48h.
  * +7: 4 db:       
     IDE4,...,IDE7.

    IDE:
  * +11: byte:      CD-, AABBCCDD
     AA   IDE8, ..., DD - IDE11:
    * 0 =  
    * 1 =  
    * 2 = CD-
    ,   HD  IDE8  CD  IDE10   48h.
  * +12: 4 db:       
     IDE8,...,IDE11.

         IDEx  
    ,      ,
         (    
        ).    
         FAT12/16/32, NTFS,
    ext2/3/4  XFS.

:
  *       
      .

----------------------   : ----------------------
  eax - SF_SYSTEM (18)
  ebx - SSF_INFO_DISC_SYS (11)
======================================================================
==========  18,  13 -   . =========
======================================================================
:
  * eax = 18 -  
  * ebx = 13 -  
  * ecx =    (  16 ),   
    
 :
  *    
    ,    ecx , ,
     [ecx, ecx + 9)    ,
        -1
:
  *        
    9 .      
     16    ,    
      .
 :
db a,b,c,d    a.b.c.d
db  ,    0,    ASCII
db   ABI 
dw   ABI 
dd  ,   git-   
dw 
dw      
    Kolibri 0.7.7.0+:
db 0,7,7,0
db 0
db 0
dw 40
dd 0xf26d5b28
dw 0
dw 1675

----------------------   : ----------------------
  eax - SF_SYSTEM (18)
  ebx - SSF_KERNEL_VERSION (13)
======================================================================
======================  18,  14 =====================
=======       . =======
======================================================================
:
  * eax = 18 -  
  * ebx = 14 -  
 :
  * eax = 0   
:
  *     
      ;  
      .

----------------------   : ----------------------
  eax - SF_SYSTEM (18)
  ebx - SSF_WAIT_RETRACE (14)
======================================================================
==  18,  15 -      . =
======================================================================
:
  * eax = 18 -  
  * ebx = 15 -  
 :
  * eax = 0   

----------------------   : ----------------------
  eax - SF_SYSTEM (18)
  ebx - SSF_CURSOR_CENTER (15)
======================================================================
======================  18,  16 =====================
============     . ===========
======================================================================
:
  * eax = 18 -  
  * ebx = 16 -  
 :
  * eax =     

----------------------   : ----------------------
  eax - SF_SYSTEM (18)
  ebx - SSF_GET_FREE_RAM (16)
======================================================================
======================  18,  17 =====================
============     . ===========
======================================================================
:
  * eax = 18 -  
  * ebx = 17 -  
 :
  * eax =      

----------------------   : ----------------------
  eax - SF_SYSTEM (18)
  ebx - SSF_GET_TOTAL_RAM (17)
======================================================================
======================  18,  18 =====================
=============  /  . =============
======================================================================
:
  * eax = 18 -  
  * ebx = 18 -  
  * ecx =  / (PID/TID)
 :
  * eax = 0 - 
  * eax = -1 -  (     )
:
  *      OS/IDLE ( 
    1),     /.
  *    2 - 
    /   .

----------------------   : ----------------------
  eax - SF_SYSTEM (18)
  ebx - SSF_TERMINATE_THREAD_ID (18)
======================================================================
===  18,  19 - /  . ==
======================================================================

-------------  0 -   . --------------
:
  * eax = 18 -  
  * ebx = 19 -  
  * ecx = 0 -  
 :
  * eax =   

------------  1 -   . -------------
:
  * eax = 18 -  
  * ebx = 19 -  
  * ecx = 1 -  
  * edx =    
 :
  *    

:    = 4

----------  2 -    ----------
:
  * eax = 18 -  
  * ebx = 19 -  
  * ecx = 2 -  
 :
  * eax =   

---------  3 -    ---------
:
  * eax = 18 -  
  * ebx = 19 -  
  * ecx = 3 -  
  * edx =    
 :
  *    

:    = 3

--------  4 -    . --------
:
  * eax = 18 -  
  * ebx = 19 -  
  * ecx = 4 -  
  * edx = [   x]*65536 + [   y]
 :
  *    

-------  5 -    . --------
:
  * eax = 18 -  
  * ebx = 19 -  
  * ecx = 5 -  
  * edx =      :
    (    2  37)
    *  0  =   
    *  1  =   
    *  2  =   
    *  3  = 4-  
    *  4  = 5-  
 :
  *    

--------  6 -    . --------
:
  * eax = 18 -  
  * ebx = 19 -  
  * ecx = 6 -  
 :
  * eax =     (100 = )

-------  7 -    . -------
:
  * eax = 18 -  
  * ebx = 19 -  
  * ecx = 7 -  
  * dl  =      (100 = )
 :
  *    

:       mouse_cfg.

----------------------   : ----------------------
  eax - SF_SYSTEM (18)
  ebx - SSF_MOUSE_SETTINGS (19)
  ecx - SSSF_GET_SPEED (0), SSSF_SET_SPEED (1), SSSF_GET_SPEEDUP (2),
    SSSF_SET_SPEEDUP (3), SSSF_SET_POS (4), SSSF_SET_BUTTON (5),
    SSSF_GET_DOUBLE_CLICK_DELAY (6), SSSF_SET_DOUBLE_CLICK_DELAY (7)
======================================================================
======================  18,  20 =====================
=============     . =============
======================================================================
:
  * eax = 18 -  
  * ebx = 20 -  
  * ecx =      (36 )
 :
  * eax =       
     -1   
  * ,    ecx,   :
    * +0: dword:       
    * +4:  dword:      
    * +8:  dword:    ( #PF)
                  
    * +12: dword:     
    * +16: dword:        
    * +20: dword:       
    * +24: dword:       
    * +28: dword:       
                 ()
    * +32: dword:       
                 ()

----------------------   : ----------------------
  eax - SF_SYSTEM (18)
  ebx - SSF_GET_RAM_INFO (20)
======================================================================
======================  18,  21 =====================
=======    /  . ======
======================================================================
:
  * eax = 18 -  
  * ebx = 21 -  
  * ecx =  / (PID/TID)
 :
  * eax = 0 -  ( )
  *  eax =  

----------------------   : ----------------------
  eax - SF_SYSTEM (18)
  ebx - SSF_GET_THREAD_SLOT (21)
======================================================================
  18,  22 -     /.
======================================================================
:
  * eax = 18 -  
  * ebx = 22 -  
  * ecx =  :
    * 0 =  ,    
    * 1 =  ,   
    * 2 =  ,    
    * 3 =  ,   
  * edx =   (   PID/TID)
 :
  * eax = 0 - 
  * eax = -1 -  ( )
:
  *        10.
  *      
     3 (  ).

----------------------   : ----------------------
  eax - SF_SYSTEM (18)
  ebx - SSF_FOREIGN_WINDOW (22)
  ecx - SSSF_MINIMIZE (0), SSSF_MINIMIZE_ID (1), SSSF_RESTORE (2),
    SSSF_RESTORE_ID (3)
======================================================================
=======  18,  23 -   . =========
======================================================================
:
  * eax = 18 -  
  * ebx = 23 -  
 :
  * eax = 0 -       
  * eax = N -    
:
  *  .  (    @)  .

----------------------   : ----------------------
  eax - SF_SYSTEM (18)
  ebx - SSF_MINIMIZE_ALL (23)
======================================================================
=====  18,  24 -   . ======
======================================================================
:
  * eax = 18 -  
  * ebx = 24 -  
  * ecx =    X
  * edx =    Y
 :
  *    
:
  *      .  
      ,   .
  *         
    ,     .

----------------------   : ----------------------
  eax - SF_SYSTEM (18)
  ebx - SSF_SET_SCREEN_LIMITS (24)
======================================================================
=====================  18,  25 ======================
========      . ========
======================================================================

-------------  1 -    ------------------
:
  * eax = 18 -  
  * ebx = 25 -  
  * ecx = 1  -  
  * edx = -1 (  )  PID 
 :
  * eax =     

-------------  2 -    ----------------
:
  * eax = 18 -  
  * ebx = 25 -  
  * ecx = 2  -  
  * edx = -1 (  )  PID 
  * esi =    (   )
 :
  * eax = 0 - 
  * eax = 1 - 

     :
 ZPOS_DESKTOP     = -2 -    
 ZPOS_ALWAYS_BACK = -1 -   
 ZPOS_NORMAL      = 0  - 
 ZPOS_ALWAYS_TOP  = 1  -   

----------------------   : ----------------------
  eax - SF_SYSTEM (18)
  ebx - SSF_WINDOW_BEHAVIOR (25)
  ecx - SSSF_GET_WB (1), SSSF_SET_WB (2)
======================================================================
=====  21,  2 -   . ====
======================================================================
     ,
  ,  ASCII-,   2.
:
  * eax = 21 -  
  * ebx = 2 -  
  * ecx =   :
    * 1 = 
    * 2 =    Shift
    * 3 =    Alt
  * edx =    -   128 
:
  * ecx = 9
  * dx =   (1=eng, 2=fi, 3=ger, 4=rus)
 :
  * eax = 0 - 
  * eax = 1 -   
:
  *   Alt,     Alt;
       Alt,   Shift, 
       Shift;
       Alt  Shift,   Ctrl,  
     ,      0x60;
           ,  
     .
  *        
     2  26.
  *   -   , 
       ;   @taskbar 
       .
  *  @taskbar     .

----------------------   : ----------------------
  eax - SF_SYSTEM_SET (21)
  ebx - SSF_KEYBOARD_LAYOUT (2)
======================================================================
=========  21,  5 -   . ========
======================================================================
:
  * eax = 21 -  
  * ebx = 5 -  
  * ecx =   (1=eng, 2=fi, 3=ger, 4=rus)
 :
  * eax = 0
:
  *   -   , 
       ,   @taskbar 
     .
  *     ,   
      .
  *       5  26.

----------------------   : ----------------------
  eax - SF_SYSTEM_SET (21)
  ebx - SSF_SYS_LANG (5)
======================================================================
======================  21,  11 =====================
=========== /    HD. ==========
======================================================================
:
  * eax = 21 -  
  * ebx = 11 -  
  * ecx = 0/1 - /
 :
  * eax = 0
:
  *   LBA- ( 8  58).
  *       ecx.
  *       11  26.

----------------------   : ----------------------
  eax - SF_SYSTEM_SET (21)
  ebx - SSF_ACCESS_HD_LBA (11)
======================================================================
======================  21,  12 =====================
========== /    PCI. ==========
======================================================================
:
  * eax = 21 -  
  * ebx = 12 -  
  * ecx = 0/1 - /
 :
  * eax = 0
:
  *      PCI ( 62).
  *       ecx.
  *       12  26.

----------------------   : ----------------------
  eax - SF_SYSTEM_SET (21)
  ebx - SSF_ACCESS_PCI (12)
======================================================================
============  22 -   /. ===========
======================================================================
:
  * eax = 22 -  
  * ebx = 0 -  
    * ecx = 0x00SSMMHH -   -  (BCD):
    * HH= 00..23
    * MM= 00..59
    * SS= 00..59
  * ebx = 1 -  
    * ecx = 0x00DDMMYY -   -  (BCD):
    * DD= 01..31
    * MM= 01..12
    * YY= 00..99
  * ebx = 2 -   
    * ecx = 1  , ..., 7  
  * ebx = 3 -  
    * ecx = 0x00SSMMHH
 :
  * eax = 0 - 
  * eax = 1 -   
  * eax = 2 - CMOS- 
:
  *      ,
        
    (     ).
  *        
     .      
     .
  *      IRQ8.
  * - CMOS     
    0xFF        , 
      .    
       (  1).
  *  -   ;  
       . ,  
          .

----------------------   : ----------------------
  eax - SF_SET_TIME_DATE (22)
======================================================================
==============  23 -    . =============
======================================================================
   ,     ,
    .     .

:
  * eax = 23 -  
  * ebx =  (   )
 :
  * eax = 0 -   
  *  eax =  (  )
:
  *    ,    ,
      40.    
    ,      .
  *  ,     ,   11.
        ,   10.
  *  ebx=0     eax=0.
  *        
     eax=0,   ebx     
     32- .

----------------------   : ----------------------
  eax - SF_WAIT_EVENT_TIMEOUT (23)
======================================================================
=======  24,  4 -    . ======
======================================================================

 !!! .        !!!

:
  * eax = 24 -  
  * ebx = 4 -  
  * ecx =  CD/DVD-
     0=Primary Master  3=Secondary Slave   IDE .
     4=Primary Master  7=Secondary Slave   IDE .
     8=Primary Master  11=Secondary Slave   IDE .
 :
  *    
:
  *     ATAPI- (CD  DVD).
  *       
     .
  *        
    .
  *      CD_tray.

----------------------   : ----------------------
  eax - SF_CD (24)
  ebx - SSF_EJECT_TRAY (4), SSF_INSERT_TRAY (5)
======================================================================
======  24,  5 -    . =====
======================================================================

 !!! .        !!!

:
  * eax = 24 -  
  * ebx = 5 -  
  * ecx =  CD/DVD-
     0=Primary Master  3=Secondary Slave   IDE .
     4=Primary Master  7=Secondary Slave   IDE .
     8=Primary Master  11=Secondary Slave   IDE .
 :
  *    
:
  *     ATAPI- (CD  DVD).
  *      CD_tray.

----------------------   : ----------------------
  eax - SF_CD (24)
  ebx - SSF_EJECT_TRAY (4), SSF_INSERT_TRAY (5)
======================================================================
==========  25 -     . ===============
======================================================================
:
  * eax = 25 -  
  * ebx =      ,
            BBGGRRTTBBGGRRTT...
  * ecx = [   x]*65536 + [   y]
  * edx = [   x]*65536 + [   y]
 :
  *    
:
  *   -     
      .
  *      4*xsize*ysize.
  * TT -   ,   :
          1  FF - ,  0 - .
  *        (.15),
       LFB.  .15  . 25   .

----------------------   : ----------------------
  eax - SF_SCREEN_PUT_IMAGE (25)
======================================================================
======  26,  2 -   . =====
======================================================================
     ,
  ,  ASCII-,   2.
:
  * eax = 26 -  
  * ebx = 2 -  
  * ecx =   :
    * 1 = 
    * 2 =    Shift
    * 3 =    Alt
  * edx =     128 ,   
    
 :
  *    ,
    ,    edx , ,
     [edx, edx + 128)    ,
        -1
:
  * eax = 26 -  
  * ebx = 2 -  
  * ecx = 9
 :
  * eax =   (1=eng, 2=fi, 3=ger, 4=rus)
:
  *   Alt,     Alt;
       Alt,   Shift,  
      Shift;
       Alt  Shift,   Ctrl,  
     ,      0x60;
           ,  
     .
  *        
     2  21.
  *   -   , 
       ;   @taskbar 
       
    (  ).
  *  @taskbar     .

----------------------   : ----------------------
  eax - SF_SYSTEM_GET (26)
  ebx - SSF_KEYBOARD_LAYOUT (2)
======================================================================
==========  26,  5 -   . =========
======================================================================
:
  * eax = 26 -  
  * ebx = 5 -  
 :
  * eax =   (1=eng, 2=fi, 3=ger, 4=rus)
:
  *   -   , 
       ,   @taskbar 
      (  ).
  *       5  21.

----------------------   : ----------------------
  eax - SF_SYSTEM_GET (26)
  ebx - SSF_SYS_LANG (5)
======================================================================
===  26,  9 -    . ===
======================================================================
:
  * eax = 26 -  
  * ebx = 9 -  
 :
  * eax =    ,   
     
:
  *     2^32,    
    497 .
  *      3.

----------------------   : ----------------------
  eax - SF_SYSTEM_GET (26)
  ebx - SSF_TIME_COUNT (9)
======================================================================
=====================  26,  10 ======================
==========     . =========
======================================================================
Parameters:
  * eax = 26 -  
  * ebx = 10 -  
Returned value:
  * edx:eax =      
  * eax =   
  * edx =   
Remarks:
  *    HPET,  HPET   
     PIT.        10 000 000
    .

----------------------   : ----------------------
  eax - SF_SYSTEM_GET (26)
  ebx - SSF_TIME_COUNT_PRO (10)
======================================================================
======================  26,  11 =====================
=========== ,      HD. ==========
======================================================================
:
  * eax = 26 -  
  * ebx = 11 -  
 :
  * eax = 0/1 - /
:
  *   LBA- ( 8  58).
  *     
     11  21.

----------------------   : ----------------------
  eax - SF_SYSTEM_GET (26)
  ebx - SSF_ACCESS_HD_LBA (11)
======================================================================
======================  26,  12 =====================
========== ,      PCI. ==========
======================================================================
:
  * eax = 26 -  
  * ebx = 12 -  
 :
  * eax = 0/1 - /
:
  *      PCI ( 62).
  *       ecx.
  *     
     12  21.

----------------------   : ----------------------
  eax - SF_SYSTEM_GET (26)
  ebx - SSF_ACCESS_PCI (12)
======================================================================
================  29 -   . ===============
======================================================================
:
  * eax = 29 -  
 :
  * eax = 0x00DDMMYY, 
    ( - , BCD)
  * YY =     (00..99)
  * MM =  (01..12)
  * DD =  (01..31)
:
  *      22.

----------------------   : ----------------------
  eax - SF_GET_SYS_DATE (29)
======================================================================
================  30 -    . ===============
======================================================================
--------  1 -     . ---------
:
  * eax = 30 -  
  * ebx = 1 -  
  * ecx =         ,
           70.
 :
  *    
----------------------------------------------------------------------
---------  2 -     . ----------
:
  * eax = 30 -  
  * ebx = 2 -  
  * ecx =   
  * edx =  
 :
  * eax =   (  0)
:
  *        ,
             0.
  *  ,     - "/rd/1".
  *   /    
    .
----------------------------------------------------------------------
----  3 -  .     ----
:
  * eax = 30 -  
  * ebx = 3 -  
  * ecx =    :
key     rb  64
path    rb  64
    :
align 64
key     db  'kolibrios',0   ;      
align 64
path    db  'HD0/1',0

 :
  *    
:
  *      1   1   .
  *         .
----------------------------------------------------------------------
---  4 -      . ---
:
  * eax = 30 -  
  * ebx = 4 -  
  * ecx =         
  * edx =  ,      80.
 :
  *    
----------------------------------------------------------------------
----  5 -      . ----
:
  * eax = 30 -  
  * ebx = 5 -  
  * ecx =   
  * edx =  
  * esi =  
 :
  * eax =     (  0)
:
  *        ,
             0.
  *  ,     - "/rd/1".
  *   /    
    .

----------------------   : ----------------------
  eax - SF_CURRENT_FOLDER (30)
  ebx - SSF_SET_CF (1), SSF_GET_CF (2), SSF_ADD_SYS_FOLDER (3)
======================================================================
=========  34 -     . =========
======================================================================
:
  * eax = 34 -  
  * ebx = x- ( )
  * ecx = y- ( )

 :
  * eax = 0x000000XX -     N
       ebx  ecx   0
  *      [_WinMapAddress]

----------------------   : ----------------------
  eax - SF_GET_PIXEL_OWNER (34)
======================================================================
============  35 -     . ============
======================================================================
:
  * eax = 35
  * ebx = y*xsize+x, 
  * (x,y) =   (  0)
  * xsize =    
 :
  * eax =  0x00RRGGBB
:
  *       14.  ,
       1   .
  *       (  
    )   gs.   
       61.

----------------------   : ----------------------
  eax - SF_GET_PIXEL (35)
======================================================================
===============  36 -   . ===============
======================================================================
:
  * eax = 36 -  
  * ebx =      ,
                  BBGGRRBBGGRR...
  * ecx = [   x]*65536 + [   y]
  * edx = [   x]*65536 + [   y]
 :
  *    
:
  *   -     
      .
  *      3*xsize*ysize.

----------------------   : ----------------------
  eax - SF_GET_IMAGE (36)
======================================================================
====================  37 -   . ====================
======================================================================

--------------  0 -    ---------------
:
  * eax = 37 -  
  * ebx = 0 -  
 :
  * eax = x*65536 + y, (x,y)=   (  0)

----------  1 -     ----------
:
  * eax = 37 -  
  * ebx = 1 -  
 :
  * eax = x*65536 + y, (x,y)=   
      (  0)
:
  *     (x-xwnd)*65536 + (y-ywnd).
     y>=ywnd,      
     y-,   -  x-
    ( ).      
         y-,
          1.

----------------  2 -    ----------------
:
  * eax = 37 -  
  * ebx = 2 -  
 :
  * eax =  0-4   3

-----------  3 -      -----------
:
  * eax = 37 -  
  * ebx = 3 -  
 :
  * eax   :

:
  *  0  =   
  *  1  =   
  *  2  =   
  *  3  =  4- 
  *  4  =  5- 

:
  *  8   =   
  *  9   =   
  *  10  =   

  *  15  =   

  *  16  =   
  *  17  =   
  *  18  =   

  *  23  =   

  *  24  =    

------------------  4 -   -------------------
:
  * eax = 37 -  
  * ebx = 4 -  
  * dx =  :
  * dx = LOAD_FROM_FILE = 0 -   
    * ecx =       
    *       .cur,  
      MS Windows,   32*32 
  * dx = LOAD_FROM_MEM = 1 -      
    * ecx =     
    *    ,     
  * dx = LOAD_INDIRECT = 2 -   
    * ecx =       ARGB 32*32 
    * edx = 0xXXYY0002, 
      * XX = x- " " 
      * YY = y-
      * 0 <= XX, YY <= 31
 :
  * eax = 0 - 
  *  eax =  

------------------  5 -   ------------------
      .
:
  * eax = 37 -  
  * ebx = 5 -  
  * ecx =  
 :
  * eax =    
:
  *    ,    
      ( ).  ,  
         ecx=0.

-------------------  6 -   --------------------
:
  * eax = 37 -  
  * ebx = 6 -  
  * ecx =  
 :
  * eax 
:
  *        
    (  4).      
    ,   .
  *    (  5) , 
        ( ).

------------------  7 -   -------------------
:
  * eax = 37 -  
  * ebx = 7 -  
 :
  * eax = [horizontal offset]*65536 + [vertical offset]
:
  *     .
  *    .
  *    .

-------  8 -     . -------
:
  * eax = 37 -  
  * ebx = 8 -  
  * ecx =        
  * edx =  ,      80.
 :
  * eax =  , 0 - 

----------------------   : ----------------------
  eax - SF_MOUSE_GET (37)
  ebx - SSF_SCREEN_POSITION (0), SSF_WINDOW_POSITION (1),
    SSF_BUTTON (2), SSF_BUTTON_EXT (3), SSF_LOAD_CURSOR (4),
    SSF_SET_CURSOR (5), SSF_DEL_CURSOR (6), SSF_SCROLL_DATA (7)
======================================================================
==================  38 -  . ==================
======================================================================
:
  * eax = 38 -  
  * ebx = [    x]*65536 +
              [    x]
  * ecx = [    y]*65536 +
              [    y]
  * edx = 0x00RRGGBB - 
    edx = 0x01xxxxxx -   
          ( 24  )
 :
  *    
:
  *    .
  *    .

----------------------   : ----------------------
  eax - SF_DRAW_LINE (38)
======================================================================
==  39,  1 -    . ==
======================================================================
:
  * eax = 39 -  
  * ebx = 1 -  
 :
  * eax = []*65536 + []
:
  *        -
     1  15.  , , 
       .

----------------------   : ----------------------
  eax - SF_BACKGROUND_GET (39)
======================================================================
=  39,  2 -     . =
======================================================================
:
  * eax = 39 -  
  * ebx = 2 -  
  * ecx = 
 :
  * eax = 0x00RRGGBB -  ,   
    ( 0x160000-16)
  * eax = 2 - 
:
  *         
    ,       .
  *     (x,y)   (x+y*xsize)*3.
  *         -
     2  15.

----------------------   : ----------------------
  eax - SF_BACKGROUND_GET_RECT (39)
======================================================================
==  39,  3 -        =
======================================================================
:
  * eax = 39 -  
  * ebx = 3 -  
  * ecx = [x]*65536 + [y]
  * edx = [width]*65536 + [height]
  * esi =  
 :
  * eax = 0 - 
  * eax = -1 - 
:
  *         
    0x00RRGGBB

----------------------   : ----------------------
  eax - SF_BACKGROUND_GET (39)
======================================================================
======  39,  4 -    . =====
======================================================================
:
  * eax = 39 -  
  * ebx = 4 -  
 :
  * eax = 1 - 
  * eax = 2 - 
:
  *        -
     4  15.

----------------------   : ----------------------
  eax - SF_BACKGROUND_GET (39)
======================================================================
========  40 -     . ========
======================================================================
          10,
11, 23 -     ,   .
:
  * eax = 40 -  
  * ebx = :  i   i+1 (.  )
    (     )
    bit 31:    
    bit 31 = 0 -       
    bit 31 = 1 -       
    bit 30:   
    bit 30 = 0 -    ,  
                   
    bit 30 = 1 -     ,  
                   
 :
  * eax =   
:
  *    (7=111b)    
        .
        .
  * ,   ,   , 
    ;         .
  *        
     ,      .

----------------------   : ----------------------
  eax - SF_SET_EVENTS_MASK (40)
======================================================================
=  46 - /   /.
======================================================================
       
 in/out .
:
  * eax = 46 -  
  * ebx = 0 - , 1 - 
  * ecx =    
  * edx =     ()
 :
  * eax = 0 - 
  * eax = 1 - 
:
  *       
      :
    *    ;
    *      
      ( -  0  0xFFFF);
    *       
      -   255;
    *      
       
  *       
     ,     
        (    ecx,edx).
  *    (  )  
     .
  *       
    0..0x2d, 0x30..0x4d, 0x50..0xdf, 0xe5..0xff ().
  *      
      .

----------------------   : ----------------------
  eax - SF_SET_PORTS (46)
======================================================================
=================  47 -    . =================
======================================================================
:
  * eax = 47 -  
  * ebx =     :
    * bl = 0 - ecx  
    * bl = 1 - ecx    dword/qword-
    * bh = 0 -     
    * bh = 1 -    
    * bh = 2 -    
    *  16-21 =   
    *  22-29       0
    *  30  =  qword (64- );
                                  bl = 1
    *  31  =     
  * ecx =  ( bl=0)   ( bl=1)
  * edx = [   x]*65536 + [   y]
  * esi = 0xXXRRGGBB, 
    * RR, GG, BB   
    * XX=0B0FCSSS ():
      * B=1 -   ( = edi)
      * F  :
        0 = 6x9
        1 = 8x16
      * C=0 -   ,
        =1 -    (edi)
      * SSS = ( )-1, - 0 = x1, 7 = x8
 :
  *    
:
  *      60.
  *     .    
         ,  
     ;        
      , ""   .

----------------------   : ----------------------
  eax - SF_DRAW_NUMBER (47)
======================================================================
=======  48,  0 -   . =======
======================================================================
:
  * eax = 48 -  
  * ebx = 0 -  
  * ecx = 0 - 
 :
  *    
:
  *      
     1  2.
  *       
    .
  *     ecx .

----------------------   : ----------------------
  eax - SF_STYLE_SETTINGS (48)
  ebx - SSF_APPLY (0)
======================================================================
=========  48,  1 -   . ========
======================================================================
:
  * eax = 48 -  
  * ebx = 1 -  
  * ecx =  :
    * 0 = 
    * 1 = 
 :
  *    
:
  *       
     0.
  *         8.

----------------------   : ----------------------
  eax - SF_STYLE_SETTINGS (48)
  ebx - SSF_SET_BUTTON_STYLE (1)
======================================================================
====  48,  2 -    . ===
======================================================================
:
  * eax = 48 -  
  * ebx = 2 -  
  * ecx =    
  * edx =   
    (  40    )
       3.
 :
  *    
:
  *       
     0.
  *       ,
          ( 3) 
     (       ).
  *         
       ( 8).
  *    /   
     desktop.

----------------------   : ----------------------
  eax - SF_STYLE_SETTINGS (48)
  ebx - SSF_SET_COLORS (2)
======================================================================
=====  48,  3 -    . ====
======================================================================
:
  * eax = 48 -  
  * ebx = 3 -  
  * ecx =     edx ,
       
  * edx =   
    (  40    )
 :
  *    
  :   -
dword-  0x00RRGGBB
  * +0: dword: none - 
  * +4: dword: none - 
  * +8: dword: work_dark -      
      
  * +12 = +0xC: dword: work_light -     
       
  * +16 = +0x10: dword: grab_text -    
  * +20 = +0x14: dword: work -   
  * +24 = +0x18: dword: button -     
  * +28 = +0x1C: dword: button_text -    
      
  * +32 = +0x20: dword: work_text -     
  * +36 = +0x24: dword: graph -     
:
  *        
    macros.inc   system_colors; ,  :
    	sc	system_colors		;  
    	...				; -  
    					;    ecx=sc
    	mov	ecx, [sc.button_text]	;   
    					;     
  * /   -  
     .       
      ,    .
  *      ( 2 
        0 
        8)    
       (   1).
  *    / 
       desktop.

----------------------   : ----------------------
  eax - SF_STYLE_SETTINGS (48)
  ebx - SSF_GET_COLORS (3)
======================================================================
==========  48,  4 -   . =========
======================================================================
:
  * eax = 48 -  
  * ebx = 4 -  
 :
  * eax =  
:
  *        ,
     .
  *         0.

----------------------   : ----------------------
  eax - SF_STYLE_SETTINGS (48)
  ebx - SSF_GET_SKIN_HEIGHT (4)
======================================================================
=====  48,  5 -    . ====
======================================================================
:
  * eax = 48 -  
  * ebx = 5 -  
 :
  * eax = [left]*65536 + [right]
  * ebx = [top]*65536 + [bottom]
:
  *       
     .
  *         
       (@taskbar).
  * (left,top) -    ,
    (right,bottom) -   .
     ,      x 
     right-left+1,   y -  bottom-top+1.
  *    14,
        .
  *       -  6.

----------------------   : ----------------------
  eax - SF_STYLE_SETTINGS (48)
  ebx - SSF_GET_SCREEN_AREA (5)
======================================================================
====  48,  6 -    . ===
======================================================================
:
  * eax = 48 -  
  * ebx = 6 -  
  * ecx = [left]*65536 + [right]
  * edx = [top]*65536 + [bottom]
 :
  *    
:
  *       
     .
  *      @taskbar,
           .
  * (left,top) -    ,
    (right,bottom) -   .
     ,      x 
     right-left+1,   y -  bottom-right+1.
  *  left>=right,  x-    .
     left<0,  left  .  right 
       ,  right  .
       y.
  *    14,
        .
  *       -
     5.
  *     ,   
         .
          ( 1).

----------------------   : ----------------------
  eax - SF_STYLE_SETTINGS (48)
  ebx - SSF_SET_SCREEN_AREA (6)
======================================================================
======================  48,  7 ======================
============      . ============
======================================================================
     , 
   .
:
  * eax = 48 -  
  * ebx = 7 -  
 :
  * eax = [left]*65536 + [right]
  * ebx = [top]*65536 + [bottom]
:
  * /   -
      .
  *   ,   ,
           ( 4) 
    -   
    (  ).

----------------------   : ----------------------
  eax - SF_STYLE_SETTINGS (48)
  ebx - SSF_GET_SKIN_MARGINS (7)
======================================================================
====  48,  8 -    . ===
======================================================================
:
  * eax = 48 -  
  * ebx = 8 -  
  * ecx =     
 :
  * eax = 0 - 
  * eax = 1 -    
  * eax = 2 -     
:
  *         
     ( 1).
  *        default.skn
     .
  *     ,  
    default.skn,      desktop.

----------------------   : ----------------------
  eax - SF_STYLE_SETTINGS (48)
  ebx - SSF_SET_SKIN (8)
======================================================================
=  48,  9 -    . =
======================================================================
:
  * eax = 48 -  
  * ebx = 9 -  
 :
  * eax = 2 - , 1 - , 0 - 

----------------------   : ----------------------
  eax - SF_STYLE_SETTINGS (48)
  ebx - SSF_GET_FONT_SMOOTH (9)
======================================================================
=====  48,  10 -   . =====
======================================================================
:
  * eax = 48 -  
  * ebx = 10 -  
  * cl  = 2 - , 1 - , 0 - 

----------------------   : ----------------------
  eax - SF_STYLE_SETTINGS (48)
  ebx - SSF_SET_FONT_SMOOTH (10)
======================================================================
========  48,  11 -   . ========
======================================================================
:
  * eax = 48 -  
  * ebx = 11 -  
 :
  * eax =     

----------------------   : ----------------------
  eax - SF_STYLE_SETTINGS (48)
  ebx - SSF_GET_FONT_SIZE (11)
======================================================================
=======  48,  12 -   . =======
======================================================================
:
  * eax = 48 -  
  * ebx = 12 -  
  * cl  =     

----------------------   : ----------------------
  eax - SF_STYLE_SETTINGS (48)
  ebx - SSF_SET_FONT_SIZE (12)
======================================================================
=  48,  13 -     . =
======================================================================
:
  * eax = 48 -  
  * ebx = 13 -  
  * ecx =        
  * edx =  ,      80.
 :
  * eax = 0 - 
  * eax = 1 -    
  * eax = 2 -     
:
  *         
     ( 1).
  *        default.skn
     .
  *     ,  
    default.skn,      desktop.

======================================================================
============  49 - Advanced Power Management (APM). ===========
======================================================================
:
  * eax = 49 -  
  * dx =   APM ( ax  )
  * bx, cx =   APM
 :
  * 16-  ax, bx, cx, dx, si, di   CF
         APM
  *   32-  eax, ebx, ecx,
    edx, esi, edi 
:
  *  APM 1.2   
    "Advanced Power Management (APM) BIOS Specification"
    (Revision 1.2),  
    http://www.microsoft.com/whdc/archive/amp_12.mspx;
     ,     Interrupt List by Ralf Brown
    (http://www.pobox.com/~ralf/files.html,
    ftp://ftp.cs.cmu.edu/afs/cs/user/ralf/pub/).

----------------------   : ----------------------
  eax - SF_APM (49)
======================================================================
=================  50 -   . =================
======================================================================
    .    
    .    
  ,  .  
     0  
 67.

---------------       ---------------
:
  * eax = 50 -  
  * ebx = 0 -  
  * ecx =     (  0/1)
 :
  *    

------------------     -------------------
:
  * eax = 50 -  
  * ebx = 1 -  
  * ecx  :    
    (2^scale)*(2^scale) 
 :
  *    
:
  *     0 (  1).  
          ,  
      .
  *  xsize =   ( ), ysize = ;
     ,     ,  
     0, 67.
  *    xsize  ysize    2^scale.
  *     a   0/1 
          2^scale
    ( scale=0  )     
    (a mod (xsize shr scale), a div (xsize shr scale))
  *  : (xsize shr scale)*(ysize shr scale).
  *        
      .
  *         
     0.
  *   0      
      .

----------------------   : ----------------------
  eax - SF_SET_WINDOW_SHAPE (50)
======================================================================
=====================  51,  1 =======================
==========================   =============================
======================================================================
:
  * eax = 51 -  
  * ebx = 1 -  
  * ecx =     ( eip)
  * edx =    ( esp)
 :
  * eax = -1 -  (    )
  *  eax = TID -  

----------------------   : ----------------------
  eax - SF_CREATE_THREAD (51)
======================================================================
=====================  51,  2 =======================
===================     ======================
======================================================================
:
  * eax = 51 -  
  * ebx = 2 -  
 :
  * eax =   

======================================================================
=====================  51,  3 =======================
====================    =======================
======================================================================
:
  * eax = 51 -  
  * ebx = 3 -  
  * ecx =     -1 ( )
 :
  * eax = -1 -  (      )
  *  eax =   
:
  *       0  255. 
   0 -   ,    
    .
  
======================================================================
=====================  51,  4 =======================
===================    ======================
====================================================================== 
:
  * eax = 51 -  
  * ebx = 4 -  
  * ecx =     -1 ( )
  * edx =  
 :
  * eax = -1 -  (      )
  *  eax =    
:
  *       0  255. 
   0 -   ,   
    .
  
======================================================================
======================  54,  0 ======================
==============      . =============
======================================================================
:
  * eax = 54 -  
  * ebx = 0 -  
 :
  * eax =    
  * eax = -1 -    

----------------------   : ----------------------
  eax - SF_CLIPBOARD (54)
  ebx - SSF_GET_SLOT_COUNT (0)
======================================================================
======================  54,  1 ======================
==================     . ==================
======================================================================
:
  * eax = 54 -  
  * ebx = 1 -  
  * ecx =  
 :
  * eax =   -      
  * eax = 1 - 
  * eax = -1 -    
:
  * ,    eax,   :
    * +0: dword:   
    * +4: dword:   x:
      * 0 = 
      * 1 =    
      * 2 = 
      * 3 = RAW
      * 4   
    * +8:     clipboard_container_rus.txt
  *      68.11.  
         68.11.
        
----------------------   : ----------------------
  eax - SF_CLIPBOARD (54)
  ebx - SSF_READ_CB (1)
======================================================================
======================  54,  2 ======================
==================     . ===================
======================================================================
:
  * eax = 54 -  
  * ebx = 2 -  
  * ecx =   
  * edx =      
 :
  * eax = 0 - 
  * eax = 1 - 
  * eax = -1 -    

----------------------   : ----------------------
  eax - SF_CLIPBOARD (54)
  ebx - SSF_WRITE_CB (2)
======================================================================
======================  54,  3 ======================
=========         ===========
======================================================================
:
  * eax = 54 -  
  * ebx = 3 -  
 :
  * eax = 0 - 
  * eax = 1 - 
  * eax = -1 -    

----------------------   : ----------------------
  eax - SF_CLIPBOARD (54)
  ebx - SSF_DEL_SLOT (3)
======================================================================
======================  54,  4 ======================
===================     ================
======================================================================
:
  * eax = 54 -  
  * ebx = 4 -  
 :
  * eax = 0 - 
  * eax = -1 -       
:
  *    ,    
         .

----------------------   : ----------------------
  eax - SF_CLIPBOARD (54)
  ebx - SSF_UNLOCK_BUFFER (4)
======================================================================
======================  55,  55 =====================
==========      . ==========
======================================================================
:
  * eax = 55 -  
  * ebx = 55 -  
  * esi =   
 :
  * eax = 0 - 
  * eax = 55 -  (   )
 -     .
     :
  * 0 =  
  * 1..0x80 =       
    ,    
    *   (2 )   ;
         1193180/divider
  * 0x81 = invalid
  * 0x82..0xFF = ,    :
    *      = ( )-0x81
    *    ;
    * ( )=0xFF - 
    *     a*0x10+b,  b=     1
       12, a=  (  0)
:
  *     /  8
     18.
  *   ,    
     .      .
  *        
      .

----------------------   : ----------------------
  eax - SF_SPEAKER_PLAY (55)
======================================================================
=======================  57 - PCI BIOS. =======================
======================================================================
:
  * eax = 57 -  
  * ebp   al   PCI BIOS
  *   -   PCI BIOS
 :
  * CF  
  *   -   PCI BIOS
:
  *        
       62.
  *    PCI32 BIOS, ,
    ,  http://alpha1.dyns.net/files/PCI/bios21.pdf.
  *  BIOS    ,  
     (    62  ).

----------------------   : ----------------------
  eax - SF_PCI_BIOS (57)
======================================================================
===========  60 - Inter Process Communication (IPC). ==========
======================================================================
IPC       /
.       , 
  .

--------  1 -     IPC ---------
 -.
:
  * eax = 60 -  
  * ebx = 1 -  
  * ecx =   
  * edx =  
 :
  * eax = 0 -  
 IPC-:
  * +0: dword:    0,    ;
    / ,      
      ,      
    (   )
  * +4: dword:     ( )
  * +8:  
  * +8+n:  
  * ...
 :
  * +0: dword: PID /,  
  * +4: dword:   (   )
  * +8: n*byte:  

---------------  2 -   IPC. ----------------
 -.
:
  * eax = 60 -  
  * ebx = 2 -  
  * ecx = PID 
  * edx =    
  * esi =   ( )
 :
  * eax = 0 - 
  * eax = 1 -      IPC-
    ( ,   ,   ,    ,
     )
  * eax = 2 -   IPC-;
      
  * eax = 3 -  IPC- 
  * eax = 4 - /   PID  
:
  *     IPC-   
    -    7 (.  ).

----------------------   : ----------------------
  eax - SF_IPC (60)
  ebx - SSF_SET_AREA (1), SSF_SEND_MESSAGE (2)
======================================================================
===  61 -       . ===
======================================================================
     ( , 
    )   
    gs:
	mov	eax, [gs:0]
  eax  dword ,    
   (, ,   ).
	mov	[gs:0], eax
    VESA c LFB
    
( ,   ).
      
 ,    .
:
  *        .
  *       
    (   1)    ( 5).
           ,
       ,   .
  *      LFB  gs  
     LFB,   /  gs 
        .   
      LFB gs     
    ,        
             
      .       
       
    (,  ,   ),
      .
       320*200,     
          
       .

-------------------------   --------------------------
:
  * eax = 61 -  
  * ebx = 1 -  
 :
  * eax = [   x]*65536 + [   y]
:
  *    14   ,   
      1 .    .

------------------------     ------------------------
:
  * eax = 61 -  
  * ebx = 2 -  
 :
  * eax =     (24  32)

------------------------     ------------------------
:
  * eax = 61 -  
  * ebx = 3 -  
 :
  * eax =  ,     
    (   )

----------------------   : ----------------------
  eax - SF_GET_GRAPHICAL_PARAMS (61)
  ebx - SSF_SCREEN_SIZE (1), SSF_BITS_PER_PIXEL (2),
    SSF_BYTES_PER_LINE (3)
======================================================================
=====  62,  0 -   PCI-. =====
======================================================================
:
  * eax = 62 -  
  * bl = 0 -  
 :
  * eax = -1 -   PCI ; 
  * ah.al =  PCI- (ah=, al=)
  *   eax 
:
  *        PCI
       12  21.
  *  PCI BIOS  ,   ax .

----------------------   : ----------------------
  eax - SF_PCI (62)
  ebx - SSF_GET_VERSION (0)
======================================================================
====  62,  1 -    PCI-. ===
======================================================================
:
  * eax = 62 -  
  * bl = 1 -  
 :
  * eax = -1 -   PCI ; 
  * al =   PCI-;   eax 
:
  *        PCI
       12  21.
  *  PCI BIOS  ,   al .

----------------------   : ----------------------
  eax - SF_PCI (62)
  ebx - SSF_GET_LAST_BUS (1)
======================================================================
======================  62,  2 ======================
==       PCI. =
======================================================================
:
  * eax = 62 -  
  * bl = 2 -  
 :
  * eax = -1 -   PCI ; 
  * al =  (1  2);   eax 
:
  *        PCI
       12  21.
  *     
      .
  *      
      .

----------------------   : ----------------------
  eax - SF_PCI (62)
  ebx - SSF_GET_ADRR_MODE (2)
======================================================================
========  62,  4,5,6 -  PCI-. =======
======================================================================
:
  * eax = 62 -  
  * bl = 4 -  
  * bl = 5 -  
  * bl = 6 -   
  * bh =  PCI-
  * ch = dddddfff,  ddddd =    ,
    fff =   
  * cl =   (    bl=5,
      4  bl=6)
 :
  * eax = -1 -  (   PCI 
     ); 
  * al/ax/eax (    )  ;
       eax 
:
  *        PCI
       12  21.
  *   2   16    
      .     
     2.
  *        ,
       .  
    , ,   Interrupt List by Ralf Brown
    (http://www.pobox.com/~ralf/files.html,
    ftp://ftp.cs.cmu.edu/afs/cs/user/ralf/pub/);
            .

----------------------   : ----------------------
  eax - SF_PCI (62)
  ebx - SSF_READ_BYTE (4), SSF_READ_WORD (5), SSF_READ_DWORD (6)
======================================================================
=======  62,  8,9,10 -   PCI-. ======
======================================================================
:
  * eax = 62 -  
  * bl = 8 -  
  * bl = 9 -  
  * bl = 10 -   
  * bh =  PCI-
  * ch = dddddfff,  ddddd =    ,
    fff =   
  * cl =   (    bl=9,
      4  bl=10)
  * dl/dx/edx (    ) 
      
 :
  * eax = -1 -  (   PCI 
     )
  * eax = 0 - 
:
  *        PCI
       12  21.
  *   2   16    
      .     
     2.
  *        ,
       .  
    , ,   Interrupt List by Ralf Brown;
            .

----------------------   : ----------------------
  eax - SF_PCI (62)
  ebx - SSF_WRITE_BYTE (8), SSF_WRITE_WORD (9), SSF_WRITE_DWORD (10)
======================================================================
================  63 -    . ===============
======================================================================
      ( 4096 ),
      ( , )
         .
 ,       -
 ,      
 .      
       ;
       "K : ".
      board,
          . board
   13,10     .
        ,    .
        
,      
 ,       
   .      
    .

----------------------------   ----------------------------
:
  * eax = 63 -  
  * ebx = 1 -  
  * cl =  
 :
  *    
:
  *    .   - 512 .
          
         .
  *         (, )
      ,   .   
      ,    debug.inc,
      .

----------------------------   ----------------------------
   .
:
  * eax = 63 -  
  * ebx = 2 -  
 :
  * eax = ebx = 0 -  
  * eax = , ebx = 1 -   

----------------------   : ----------------------
  eax - SF_BOARD (63)
  ebx - SSF_DEBUG_WRITE (1), SSF_DEBUG_READ (2)
======================================================================
==========  64 -   . ==========
======================================================================

 !!! .        !!!

:
  * eax = 64 -  
  * ebx = 1 -  
  * ecx =   
 :
  * eax = 0 - 
  * eax = 1 -  
:
  *    /   -
     11, 12, 13  68.
  *       68.11, 68.12, 68.13.
       ,   
       68.11.

----------------------   : ----------------------
  eax - SF_MEMORY_RESIZE (64)
======================================================================
=========  65 -      . ========
======================================================================
:
  * eax = 65 -  
  * ebx =   
  * ecx = [   x]*65536 + [   y]
  * edx = [   x]*65536 + [   y]
  * esi =    ,   1,2,4,8,9,15,16,24  32
  * edi =    (2   esi  0x00RRGGBB);
            esi > 8
  * ebp =      
           
 :
  *    
:
  *   -     
      .
  *    1   :   ,
     ,  ,   , 
       8 ,    
    .
  *    2   :   ,
     ,  ,   , 
       4 ,    
     .
  *    4   :   ,
         (  
    ),     2 ,  
      .
  *    8   :   
        .
  *    9   :   
    (8 )      , ..
        8     .
  *    15   :   
      (  ) 0RRRRRGGGGGBBBBB -
     5    .
  *    16   :   
      RRRRRGGGGGGBBBBB ( 5+6+5).
  *    24   :   
       -  , , 
     .
  *    32   :  24, 
        .
  *   7      
    esi=24, ebp=0.

----------------------   : ----------------------
  eax - SF_PUT_IMAGE_EXT (65)
======================================================================
=================  66 -   . =================
======================================================================
        2.
      ASCII- .

--------  1 -     . ---------
:
  * eax = 66 -  
  * ebx = 1 -  
  * ecx = :
    * 0 =  (ASCII-)
    * 1 = 
 :
  *    

---------  2 -     . ----------
:
  * eax = 66 -  
  * ebx = 2 -  
 :
  * eax =  

-------  3 -    . --------
:
  * eax = 66 -  
  * ebx = 3 -  
 :
  * eax =  :
  *  0  ( 1):  Shift 
  *  1  ( 2):  Shift 
  *  2  ( 4):  Ctrl 
  *  3  ( 8):  Ctrl 
  *  4  ( 0x10):  Alt 
  *  5  ( 0x20):  Alt 
  *  6  ( 0x40): CapsLock 
  *  7  ( 0x80): NumLock 
  *  8  ( 0x100): ScrollLock 
  *  9  ( 0x200):  Win 
  *  10 ( 0x400):  Win 
  *   

-----  4 -   " ". -----
  " "   ,
 ;   (  
  )    .
       2.
 " "   ,   , -
 2.
:
  * eax = 66 -  
  * ebx = 4 -  
  * cl   ;
     cl=0     Ctrl+Shift
  * edx = 0xXYZ     :
    * Z ( 4 )    LShift  RShift:
      * 0 =        ;
      * 1 =       ;
      * 2 =     ;
      * 3 =    LShift,   RShift;
      * 4 =    RShift,   LShift
    * Y -   LCtrl  RCtrl;
    * X -   LAlt  RAlt
 :
  * eax=0 - 
  * eax=1 -   " " (  256)
:
  *       ,
      .     128 ,
       (..   ).
  *         ;
            .

------  5 -   " ". -------
:
  * eax = 66 -  
  * ebx = 5 -  
  * cl =    edx = 0xXYZ  ,     4
 :
  * eax = 0 - 
  * eax = 1 -    
:
  *   /    
     .
  *       .
          ,
     -   .

-------------  6 -   . -------------
:
  * eax = 66 -  
  * ebx = 6 -  
 :
  *    
:
  *        
    "" 
  *     ,  MOUSEMUL

---------  7 -   . ----------------
:
  * eax = 66 -  
  * ebx = 7 -  
 :
  *    
:
  *   . 66.6
  *     ,  MOUSEMUL

----------------------   : ----------------------
  eax - SF_KEYBOARD (66)
  ebx - SSF_SET_INPUT_MODE (1), SSF_GET_INPUT_MODE (2),
    SSF_GET_CONTROL_KEYS (3), SSF_SET_SYS_HOTKEY (4),
    SSF_DEL_SYS_HOTKEY (5),  SSF_LOCK_INPUT (6), SSF_UNLOCK_INPUT (7)
======================================================================
============  67 -  / . ===========
======================================================================
:
  * eax = 67 -  
  * ebx =  x- 
  * ecx =  y- 
  * edx =  x- 
  * esi =  y- 
 :
  *    
:
  *  -1    " "; , 
           edx=esi=-1.
  *       0.
           .
  *       0, ..
       ,   .
  *       .
  *      /   
     ;      
       9.
  *      (  1).

----------------------   : ----------------------
  eax - SF_CHANGE_WINDOW (67)
======================================================================
===  68,  0 -    . ==
======================================================================
:
  * eax = 68 -  
  * ebx = 0 -  
 :
  * eax =       
    (  2^32)

----------------------   : ----------------------
  eax - SF_SYS_MISC (68)
  ebx - SSF_GET_TASK_SWITCH_COUNT (0)
======================================================================
======================  68,  1 ======================
============     . ============
======================================================================
    ,  ,
   .
(     ,  ).
,      ,
 .
:
  * eax = 68 -  
  * ebx = 1 -  
 :
  *    

----------------------   : ----------------------
  eax - SF_SYS_MISC (68)
  ebx - SSF_SWITCH_TASK (1)
======================================================================
===============  68,  2 -  + rdpmc. ==============
======================================================================
:
  * eax = 68 -  
  * ebx = 2 -  
  * ecx =  :
    * ecx = 0 -    rdpmc
      (ReaD Performance-Monitoring Counters)
    * ecx = 1 - , / 
    * ecx = 2 -  
    * ecx = 3 -  
 :
  *  ecx=0:
    * eax =  cr4
  *  ecx=1:
    * eax = (cr0 and 0x60000000):
    * eax = 0 -  
    * eax <> 0 -  
  *  ecx=2  ecx=3:
    *    

----------------------   : ----------------------
  eax - SF_SYS_MISC (68)
  ebx - SSF_PERFORMANCE (2)
  ecx - SSSF_ALLOW_RDPMC (0), SSSF_CACHE_STATUS (1),
    SSSF_CACHE_ON (2), SSSF_CACHE_OFF (3)
======================================================================
==========  68,  3 -  MSR-. =========
======================================================================
MSR = Model Specific Register;   MSR- 
     (, IA-32 Intel
Architecture Software Developer's Manual, Volume 3, Appendix B);
      MSR-.
:
  * eax = 68 -  
  * ebx = 3 -  
  * ecx 
  * edx =  MSR
 :
  * ebx:eax = : dword 
:
  *   ecx     
     MSR    ,   .
  *   ,   MSR  ,
     cpuid.       ,
        .

----------------------   : ----------------------
  eax - SF_SYS_MISC (68)
  ebx - SSF_READ_MSR (3)
======================================================================
=========  68,  4 -   MSR-. =========
======================================================================
MSR = Model Specific Register;   MSR- 
     (, IA-32 Intel
Architecture Software Developer's Manual, Volume 3, Appendix B);
      MSR-.
:
  * eax = 68 -  
  * ebx = 4 -  
  * ecx 
  * edx =  MSR
  * esi:edi = : dword
 :
  *    
:
  *   ecx     
     MSR    ,   .
  *   ,   MSR  ,
     cpuid.       ,
        .

----------------------   : ----------------------
  eax - SF_SYS_MISC (68)
  ebx - SSF_WRITE_MSR (4)
======================================================================
=====  68,  11 -   . ====
======================================================================
:
  * eax = 68 -  
  * ebx = 11 -  
 :
  * eax = 0 - 
  *    
:
  *    ,    
          12, 13  20.
  *    ,     .
           .
  *      64 .

----------------------   : ----------------------
  eax - SF_SYS_MISC (68)
  ebx - SSF_HEAP_INIT (11)
======================================================================
==========  68,  12 -   . =========
======================================================================
:
  * eax = 68 -  
  * ebx = 12 -  
  * ecx =    
 :
  * eax =    
:
  *      (4 ) ,  
          .

----------------------   : ----------------------
  eax - SF_SYS_MISC (68)
  ebx - SSF_MEM_ALLOC (12)
======================================================================
=========  68,  13 -   . ========
======================================================================
:
  * eax = 68 -  
  * ebx = 13 -  
  * ecx =    
 :
  * eax = 1 - 
  * eax = 0 - 
:
  *        12
      20.

----------------------   : ----------------------
  eax - SF_SYS_MISC (68)
  ebx - SSF_MEM_FREE (13)
======================================================================
======================  68,  14 =====================
======      /. =====
======================================================================
:
  * eax = 68 -  
  * ebx = 14 -  
  * ecx =      (24 )
 :
  * eax 
  * ,    ecx,   :
    * +0: dword:    
    * +4:    (20 ),  
            dword-

----------------------   : ----------------------
  eax - SF_SYS_MISC (68)
  ebx - SSF_WAIT_SIGNAL (14)
======================================================================
===========  68,  16 -  . ===========
======================================================================
:
  * eax = 68 -  
  * ebx = 16 -  
  * ecx =   ASCIIZ-   
 :
  * eax = 0 - 
  *  eax =  
:
  *     ,  ;
       ,   .
  *      .
       - 16 ,  
     ,   .
  *    ABC    /sys/drivers/ABC.sys.

----------------------   : ----------------------
  eax - SF_SYS_MISC (68)
  ebx - SSF_LOAD_DRIVER (16)
======================================================================
==========  68,  17 -  . =========
======================================================================
:
  * eax = 68 -  
  * ebx = 17 -  
  * ecx =    :
    * +0: dword:  
    * +4: dword:   
    * +8: dword:    
    * +12 = +0xC: dword:   
    * +16 = +0x10: dword:    
    * +20 = +0x14: dword:   
 :
  * eax =  
:
  *     / 
     .
  *        16.

----------------------   : ----------------------
  eax - SF_SYS_MISC (68)
  ebx - SSF_CONTROL_DRIVER (17)
======================================================================
==  68,  18 -  DLL   . ==
======================================================================
:
  * eax = 68 -  
  * ebx = 18 -  
  * ecx =       DLL
  * edx =  ,      80.
 :
  * eax = 0 - 
  *  eax =     DLL
:
  *        2 dword',
     .  dword   
       ,    .

======================================================================
=============  68,  19 -  DLL. =============
======================================================================
:
  * eax = 68 -  
  * ebx = 19 -  
  * ecx =       DLL,
           70.
 :
  * eax = 0 - 
  *  eax =     DLL

----------------------   : ----------------------
  eax - SF_SYS_MISC (68)
  ebx - SSF_LOAD_DLL (19)
======================================================================
======  68,  20 -   . =====
======================================================================
:
  * eax = 68 -  
  * ebx = 20 -  
  * ecx =    
  * edx =      
 :
  * eax =    , 0  
:
  *      
     11.
  *      (4 ) ,  
          .
  *  edx=0,      
     12.        edx
         12 
     .
  *  ecx=0,        edx 
     0.
  *         
     .

----------------------   : ----------------------
  eax - SF_SYS_MISC (68)
  ebx - SSF_MEM_REALLOC (20)
======================================================================
=========  68,  21 -   PE. ==========
======================================================================
:
  * eax = 68 -  
  * ebx = 21 -  
  * ecx =   ASCIIZ-   
  * edx =    
 :
  * eax = 0 - 
  *  eax =  
:
  *     ,  ;
       ,   .

----------------------   : ----------------------
  eax - SF_SYS_MISC (68)
  ebx - SSF_LOAD_DRIVER_PE (21)
======================================================================
===  68,  22 -    . ==
======================================================================
:
  * eax = 68 -  
  * ebx = 22 -  
  * ecx =  .  31 ,   
  * edx =      SHM_CREATE  SHM_OPEN_ALWAYS
  * esi =    :
    * SHM_OPEN        = 0x00 -    .
                                ,
                              5.
    * SHM_OPEN_ALWAYS = 0x04 -     
                           .
    * SHM_CREATE      = 0x08 -    .
                                ,
                              10.
    * SHM_READ        = 0x00 -    
    * SHM_WRITE       = 0x01 -     
 :
  * eax =    , 0  
  *     (SHM_CREATE  SHM_OPEN_ALWAYS):
    edx = 0 - ,  -  
  *     (SHM_OPEN  SHM_OPEN_ALWAYS):
    edx =   ( eax=0)     
 :
  * E_NOTFOUND = 5
  * E_ACCESS = 10
  * E_NOMEM = 30
  * E_PARAM = 33
:
  *      
     11.
  *    ,    
         . 
          
       E_ACCESS.
  * ,  ,     .

----------------------   : ----------------------
  eax - SF_SYS_MISC (68)
  ebx - SSF_MEM_OPEN (22)
======================================================================
===  68,  23 -    . ==
======================================================================
:
  * eax = 68 -  
  * ebx = 23 -  
  * ecx =  .  31 ,   
 :
  * eax 
:
  *     (   
       ),   
      .
  *       
     .

----------------------   : ----------------------
  eax - SF_SYS_MISC (68)
  ebx - SSF_MEM_CLOSE (23)
======================================================================
====  68,  24 -   . ===
======================================================================
:
  * eax = 68 -  
  * ebx = 24 -  
  * ecx =    
  * edx =   
 :
  * eax =     (0,   )
  * ebx =    
:
  *         
       (Intel-PC). , , 
    FPU   16 (#MF),  SSE - 19 (#XF).
  *         7
    -   #NM .
  *      
     .     : RET 4. 
        ,  .
  *      
        .   
          .
     :       ,
         .
  *       
          
     25.      FPU  XMM 
       .

:
  1)      
       (#SS),      
          ESI.
        (#SS),      
        (.  EXCEPT_STACK  sys32.inc).
         ,  
          (  0)  
        LockAccess  EXCEPT_STACK.

  2)     " "  
           \ . 
      :
     -   ESI  ,     
         .
     -   EDI   -  'EXPT'.

----------------------   : ----------------------
  eax - SF_SYS_MISC (68)
  ebx - SSF_SET_EXCEPTION_HANDLER (24)
======================================================================
=  68,  25 -    . =
======================================================================
:
  * eax = 68 -  
  * ebx = 25 -  
  * ecx =  
  * edx =    (0/1)
 :
  * eax = -1 -    
  *  eax =     (0/1)
:
  *       
     ,   24.  
        .

----------------------   : ----------------------
  eax - SF_SYS_MISC (68)
  ebx - SSF_SET_EXCEPTION_STATE (25)
======================================================================
=======  68,  26 -    =======
======================================================================
:
  * eax = 68 -  
  * ebx = 26 -  
  * ecx =       12
  * edx =    
  * esi =    ,  
:
  *     ecx+edx  ecx+edx+esi
          .

----------------------   : ----------------------
  eax - SF_SYS_MISC (68)
  ebx - SSF_MEM_FREE_EXT (26)
======================================================================
=============  68,  27 -   =============
======================================================================
:
  * eax = 68 -  
  * ebx = 27 -  
  * ecx =       ,
           70.
 :
  * eax =      0
  * edx =     0
:
  *   ,  ,   (kunpack)
  *      
     11.  

----------------------   : ----------------------
  eax - SF_SYS_MISC (68)
  ebx - SSF_LOAD_FILE (27)
======================================================================
==  68,  28 -      ==
======================================================================
:
  * eax = 68 -  
  * ebx = 28 -  
  * ecx =       
  * edx =  ,      80.
 :
  * eax =      0
  * edx =     0
:
  *   ,  ,   (kunpack)

======================================================================
========  68,  29 - allocate ring memory. =========
======================================================================
Parameters:
  * eax = 68 - function number
  * ebx = 29 - subfunction number
  * ecx = required size in bytes
Returned value:
  * eax = 0 - failed
  * eax = pointer to the allocated ring
Remarks:
  * The requested size must be an exact multiple of pagesize (4 Kb)
  * The function allocates memory in such a way that you can read and
    write beyond the size of the allocated memory and will reach the 
    beginning of the buffer again.


======================================================================
========  68,  31 -   . =======
======================================================================
:
  * eax = 68 -  
  * ebx = 31 -  
  * ecx =  (1 -    ,
                   2 -   )
  * edx =  ecx=2   .
  * edi =  ecx=2     
 :
  *  ecx = 1,  ebx = fd 
                     ecx = bk
  *  ecx = 2,  eax = 0    
                     eax = -1 
:
  *  
   data_service:
     .name:         rb 16
     .fd:           rd 1
     .bk:           rd 1
     .base:         rd 1
     .entry:        rd 1
     .srv_proc:     rd 1

======================================================================
========================  69 - . =======================
======================================================================
       
     7  70.
      ;   
  .     ,
   .    ,
  0.
 :
  * +0: dword:  
  * +4: dword: PID  
  * +8:    ,
      
 :
  * 1 = 
    *   dword- 
    *  
  * 2 =  
    *    :     -1,
         ""   
      (    )
  * 3 =   int 1 = #DB
    *   dword-  DR6:
      *  0-3:     
        (  9)
      *  14:   - 
          (  TF)
    *  
      .
    ,    
 3.

     /, 
   70    .
     .
  :
  *  0 -      
  *  1 -     
  *  2 -     
  *  3 -    
  *  4 -   
  *  5 -    
  *  6 -     
  *  7 -     
  *  8 -   
  *  9 - /   

----------------------   : ----------------------
  eax - SF_DEBUG (69)
  ebx - 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)
======================================================================
======================  69,  0 ======================
=========      . ========
======================================================================
:
  * eax = 69 -  
  * ebx = 0 -  
  * ecx = 
  :
  * +0: dword: N =   (   )
  * +4: dword:   
  * +8: N*byte: 
 :
  *    
:
  *    ,   
           .
           
    /
    	neg	[bufsize]
  *          -
    .      .

----------------------   : ----------------------
  eax - SF_DEBUG (69)
  ebx - SSF_SET_MESSAGE_AREA (0)
======================================================================
======================  69,  1 ======================
=========     . =========
======================================================================
:
  * eax = 69 -  
  * ebx = 1 -  
  * ecx =  
  * edx =   ,   0x28=40 
  * esi =    
 :
  *    
  : (FPU   )
  * +0: dword: eip
  * +4: dword: eflags
  * +8: dword: eax
  * +12 = +0xC: dword: ecx
  * +16 = +0x10: dword: edx
  * +20 = +0x14: dword: ebx
  * +24 = +0x18: dword: esp
  * +28 = +0x1C: dword: ebp
  * +32 = +0x20: dword: esi
  * +36 = +0x24: dword: edi
:
  *     0-, 
      3-.
  *       (  
     ).

----------------------   : ----------------------
  eax - SF_DEBUG (69)
  ebx - SSF_GET_REGISTERS (1)
======================================================================
======================  69,  2 ======================
========     . ========
======================================================================
:
  * eax = 69 -  
  * ebx = 2 -  
  * ecx =  
  * edx =   ,   0x28=40 
  * esi =    
 :
  *    
       1.
:
  *     0-, 
      3-.
  *       (  
     ).

----------------------   : ----------------------
  eax - SF_DEBUG (69)
  ebx - SSF_SET_REGISTERS (2)
======================================================================
==  69,  3 -    . =
======================================================================
:
  * eax = 69 -  
  * ebx = 3 -  
  * ecx = 
 :
  *    
:
  *    ,   .

----------------------   : ----------------------
  eax - SF_DEBUG (69)
  ebx - SSF_DETACH (3)
======================================================================
====  69,  4 -   . ====
======================================================================
:
  * eax = 69 -  
  * ebx = 4 -  
  * ecx = 
 :
  *    
:
  *       (  
     ).

----------------------   : ----------------------
  eax - SF_DEBUG (69)
  ebx - SSF_SUSPEND (4)
======================================================================
======================  69,  5 ======================
============    . ============
======================================================================
:
  * eax = 69 -  
  * ebx = 5 -  
  * ecx = 
 :
  *    
:
  *       (  
     ).

----------------------   : ----------------------
  eax - SF_DEBUG (69)
  ebx - SSF_RESUME (5)
======================================================================
======================  69,  6 ======================
=============     . ============
======================================================================
:
  * eax = 69 -  
  * ebx = 6 -  
  * ecx = 
  * edx =   
  * esi =    
  * edi =     
 :
  * eax = -1   ( PID  )
  *  eax =    (, 0,
      esi   )
:
  *       (  
     ).

----------------------   : ----------------------
  eax - SF_DEBUG (69)
  ebx - SSF_READ_MEMORY (6)
======================================================================
  69,  7 -     .
======================================================================
:
  * eax = 69 -  
  * ebx = 7 -  
  * ecx = 
  * edx =   
  * esi =     
  * edi =   
 :
  * eax = -1   ( PID  )
  *  eax =    (, 0,
      esi   )
:
  *       (  
     ).

----------------------   : ----------------------
  eax - SF_DEBUG (69)
  ebx - SSF_WRITE_MEMORY (7)
======================================================================
======  69,  8 -   . ======
======================================================================
:
  * eax = 69 -  
  * ebx = 8 -  
  * ecx = 
 :
  *    
:
  *       (  
     ).
  *    2  18   :
          PID,
       .

----------------------   : ----------------------
  eax - SF_DEBUG (69)
  ebx - SSF_TERMINATE (8)
======================================================================
======================  69,  9 ======================
============= /   . ============
======================================================================
:
  * eax = 69 -  
  * ebx = 9 -  
  * ecx =  
  * dl =   ,  0  3 
  * dh = :
    *     -   :
      *  0-1 - :
        * 00 =    
        * 01 =    
        * 11 =    /
      *  2-3 - ;       
        00,     
        * 00 = 
        * 01 = 
        * 11 =  
      * esi =   ;   
          (..    
           ,  4   )
    *     -   
 :
  * eax = 0 - 
  * eax = 1 -    
  * eax = 2 - (,   
      )     
      
:
  *       (  
     ).
  *      DRx-
    ,   .
  *       
      (    ).
          .
  *      
      #DB,     .
  *      /  
       .

----------------------   : ----------------------
  eax - SF_DEBUG (69)
  ebx - SSF_DEFINE_BREAKPOINT (9)
======================================================================
=  70 -        . =
======================================================================
:
  * eax = 70
  * ebx =    
 :
  * eax = 0 - ;     
  *        
      
   :
  * +0: dword:  
  * +4: dword:     
  * +8: dword:      
  * +12 = +0xC: dword:  
  * +16 = +0x10: dword:   
  * +20 = +0x14: ?:   -   ,  
  
  * +20 = +0x14: byte: 0
  * +21 = +0x15: dword:   
       .
     '/',    .
         30.
'../'         .
   ,       :
  * 1 = cp866
  * 2 = UTF-16LE
  * 3 = UTF-8
    cp866.    
    '/'    '/'  .
,    80.
  :
  /base/number/dir1/dir2/.../dirn/file,
 base/number  ,    :
  * RD/1 = 
  * FD/1 =  -,
    FD/2 =  -
  * HD0/x, HD1/x, HD2/x, HD3/x =    
    IDE0 (Primary Master), IDE1 (Primary Slave),
    IDE2 (Secondary Master), IDE3 (Secondary Slave);
    x -     ,   1
  * CD0/1, CD1/1, CD2/1, CD3/1 =   cd
  * SYS -   ( ,    ),
          30.3.
:
  * '/sys/example.asm',0
  * '/rd/1/example.asm',0
  * '/HD0/1/folder/file.txt',0
  * '/hd2/2/pics/tanzania.bmp',0
  * 2,'/',0,'sys','/',0,'F',0,'I',0,'L',0,'E',0,0,0

 :
  *  0 -  
  *  1 -  
  *  2 - / 
  *  3 -    
  *  4 -   
  *  5 -   /
  *  6 -   /
  *  7 -  
  *  8 -  /
  *  9 -  
 CD-      
  0,1,5  7,    
   2.
    0,1,5,7   ATAPI
(CD  DVD)     
.     ,   .
     4  24
  .

----------------------   : ----------------------
  eax - SF_FILE (70)
 [ebx] - 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)
======================================================================
=  70,  0 -      . =
======================================================================
:
  * eax = 70 -  
  * ebx =    
  :
  * +0: dword: 0 =  
  * +4: dword:    ( )
  * +8: dword: 0 (   dword )
  * +12 = +0xC: dword:   
  * +16 = +0x10: dword:   ,    
  * +20 = +0x14: ,       
 :
  * eax = 0 - ,     
  * ebx =   
:
  *    ,     
    ,   ,  ,   
    eax=6 (EOF).
  *     
    ( eax=10, access denied).

----------------------   : ----------------------
  eax - SF_FILE (70)
 [ebx] - SSF_READ_FILE (0)
======================================================================
=  70,  1 -      . =
======================================================================
:
  * eax = 70 -  
  * ebx =    
  :
  * +0: dword: 1 =  
  * +4: dword:    (  0)
  * +8: dword:     :
    0 =  
    1 = cp866
    2 = UTF-16LE
    3 = UTF-8
  * +12 = +0xC: dword:   
  * +16 = +0x10: dword:   ,    .
  * +20 = +0x14: ,       
 :
  * eax = 0 - ,     
  * ebx =  ,       
 :
  *  (32 )
  *      1
  *      2
  * ...
 :
  * +0: dword:   (  = 1)
  * +4: dword:   ;  ,  
      +12  ;   ,
         (  ,    ebx)
  * +8: dword:     
  * +12 = +0xC: 20*byte:  ()
     ():
  * +0: dword:  :
    *  0 ( 1):    
    *  1 ( 2):   
    *  2 ( 4):   
    *  3 ( 8):    (  5)
    *  4 ( 0x10):  
    *  5 ( 0x20):    -  
        ,     
         ,      -
            
      backup-,      
      (  Kolibri, )
  * +4: dword:  ,   +8  
  * +8: 4*byte:   
  * +12 = +0xC: 4*byte:   
  * +16 = +0x10: 4*byte:    (  )
  * +20 = +0x14: 4*byte:   
  * +24 = +0x18: 4*byte:   
  * +28 = +0x1C: 4*byte:   
  * +32 = +0x20: qword:     ( 16777216 )
  * +40 = +0x28: ,   cp866  264 ,  - 520 .
 :
  * +0: byte: 
  * +1: byte: 
  * +2: byte: 
  * +3: byte:  (0)
  * , 23.59.59   ( hex) 3B 3B 17 00
 :
  * +0: byte: 
  * +1: byte: 
  * +2: word: 
  * , 25.11.1979   ( hex) 19 0B BB 07
          01.01.1980,
    : FAT12/16/32  exFAT
:
  *      cp866,    
    304 ,  - 560 .
  *    ,    .
  *      ,   
     ,   ,  ,
       eax=6 (EOF).
  *    ,  ,   
     "."  "..",     
     .
  *       "/", "/rd",
    "/fd", "/hd[n]",      
    0x10,     .

----------------------   : ----------------------
  eax - SF_FILE (70)
 [ebx] - SSF_READ_FOLDER (1)
======================================================================
======================  70,  2 ======================
======== /     . ========
======================================================================
:
  * eax = 70 -  
  * ebx =    
  :
  * +0: dword: 2 =  
  * +4: dword: 0 ()
  * +8: dword: 0 ()
  * +12 = +0xC: dword:   
  * +16 = +0x10: dword:   
  * +20 = +0x14: ,       
 :
  * eax = 0 - ,     
  * ebx =    (, 0)
:
  *       ,  ; 
    ,  .
  *      ,   ,
     ,      8.
  *     CD (   2).

----------------------   : ----------------------
  eax - SF_FILE (70)
 [ebx] - SSF_CREATE_FILE (2)
======================================================================
======================  70,  3 ======================
========        . =======
======================================================================
:
  * eax = 70 -  
  * ebx =    
  :
  * +0: dword: 3 =  
  * +4: dword:    ( )
  * +8: dword:  dword  (  0  FAT)
  * +12 = +0xC: dword:   
  * +16 = +0x10: dword:   
  * +20 = +0x14: ,       
 :
  * eax = 0 - ,     
  * ebx =    (, 0)
:
  *    ,   eax=5.
  *    0    
      /     .
  *   /      
    (   ),   
       .
  *     CD (   2).

----------------------   : ----------------------
  eax - SF_FILE (70)
 [ebx] - SSF_WRITE_FILE (3)
======================================================================
=========  70,  4 -   . ========
======================================================================
:
  * eax = 70 -  
  * ebx =    
  :
  * +0: dword: 4 =  
  * +4: dword:  dword   
  * +8: dword:  dword   
  * +12 = +0xC: dword: 0 ()
  * +16 = +0x10: dword: 0 ()
  * +20 = +0x14: ,       
 :
  * eax = 0 - ,     
  * ebx 
:
  *      ,  .
        ,  ,  
         16 ,    .
  *         ,
        ,   
      8.
  *     CD (   2).

----------------------   : ----------------------
  eax - SF_FILE (70)
 [ebx] - SSF_SET_END (4)
======================================================================
===  70,  5 -    /. ===
======================================================================
:
  * eax = 70 -  
  * ebx =    
  :
  * +0: dword: 5 =  
  * +4: dword: 0 ()
  * +8: dword: 0   (  )
  * +12 = +0xC: dword: 0 ()
  * +16 = +0x10: dword:   ,    
                        (40 )
  * +20 = +0x14: ,       
 :
  * eax = 0 - ,     
  * ebx 
      
(   ),     1,
   ,    .
:
  *      ,
        ( ),   .
  *     .

----------------------   : ----------------------
  eax - SF_FILE (70)
 [ebx] - SSF_GET_INFO (5)
======================================================================
=====  70,  6 -   /. ====
======================================================================
:
  * eax = 70 -  
  * ebx =    
  :
  * +0: dword: 6 =  
  * +4: dword: 0 ()
  * +8: dword: 0 ()
  * +12 = +0xC: dword: 0 ()
  * +16 = +0x10: dword:      (32 )
  * +20 = +0x14: ,       
 :
  * eax = 0 - ,     
  * ebx 
  -  32    (   ),
      1
(      ).  // 
( 3,4  dword' +0)  .
 +4 ( ) .
:
  *       /, /rd 
       /rd/1.
  *     CD (   2).

----------------------   : ----------------------
  eax - SF_FILE (70)
 [ebx] - SSF_SET_INFO (6)
======================================================================
============  70,  7 -  . ============
======================================================================
:
  * eax = 70 -  
  * ebx =    
  :
  * +0: dword: 7 =  
  * +4: dword:  :
    *  0:    
    *         0
  * +8: dword: 0    ASCIIZ-  
  * +12 = +0xC: dword: 0 ()
  * +16 = +0x10: dword: 0 ()
  * +20 = +0x14: ,       
 :
  * eax > 0 -  , eax  PID
  * eax < 0 -  , -eax 
       
  * ebx 
:
  *        0
    (ASCIIZ-);       
    ,   256 ,    ,
     .
  *     ,  
      ;   
     5  69.

----------------------   : ----------------------
  eax - SF_FILE (70)
 [ebx] - SSF_START_APP (7)
======================================================================
==========  70,  8 -  /. ==========
======================================================================
:
  * eax = 70 -  
  * ebx =    
  :
  * +0: dword: 8 =  
  * +4: dword: 0 ()
  * +8: dword: 0 ()
  * +12 = +0xC: dword: 0 ()
  * +16 = +0x10: dword: 0 ()
  * +20 = +0x14: ,       
 :
  * eax = 0 - ,     
  * ebx 
:
  *     CD (   2).
  *      (   
         10, " ").

----------------------   : ----------------------
  eax - SF_FILE (70)
 [ebx] - SSF_DELETE (8)
======================================================================
=============  70,  9 -  . =============
======================================================================
:
  * eax = 70 -  
  * ebx =    
  :
  * +0: dword: 9 =  
  * +4: dword: 0 ()
  * +8: dword: 0 ()
  * +12 = +0xC: dword: 0 ()
  * +16 = +0x10: dword: 0 ()
  * +20 = +0x14: ,       
 :
  * eax = 0 - ,     
  * ebx 
:
  *     CD (   2).
  *     .
  *    ,    (eax=0).

----------------------   : ----------------------
  eax - SF_FILE (70)
 [ebx] - SSF_CREATE_FOLDER (9)
======================================================================
=======  70,  10 - / =======
======================================================================
:
  * eax = 70 -  
  * ebx =    
  :
  * +0: dword: 10 =  
  * +4: dword: 0 ()
  * +8: dword: 0 ()
  * +12 = +0xC: dword: 0 ()
  * +16 = +0x10: dword:      /
  * +20 = +0x14: ,       
 :
  * eax = 0 - ,     
  * ebx 
:
  *       :
           ( ),
         .
======================================================================
==========  71 -     ==========
======================================================================
:
  * eax = 71 -  
  * ebx = 1
  * ecx =   ,
         :
    1 = cp866
    2 = UTF-16LE
    3 = UTF-8
  :
  * ebx = 2
  * ecx =   
  * dl  =  
 :
  *    
:
  *     .
  *   ,  NULL  ecx.

----------------------   : ----------------------
  eax - SF_SET_CAPTION (71)
======================================================================
================  72 -   . ================
======================================================================

---  1 -      . ----
:
  * eax = 72 -  
  * ebx = 1 -  
  * ecx =  : 2  3
  * edx =    ecx=2,    ecx=3
 :
  * eax = 0 - 
  * eax = 1 -  

----------------------   : ----------------------
  eax - SF_SEND_MESSAGE (72)
======================================================================
=====================  73 - blit bitmap  =====================
======================================================================
 -   

:
  * eax = 73 -  

  * ebx = ROP   
     31      30 29 28       6 5  4 3   0
     [reserved][CR][reserved][T][B][ROP]
     ROP -   
        0: 
     1-15: 
     B   -    
     T   -   
     CR  -    

  * ecx =    
          
     +0 signed dword:   X ,   
                        
     +4 signed dword:   Y ,   
                        
     +8 dword:          
    +12 dword:          

          
    +16 signed dword:   X bitmap,   
                        
    +20 signed dword:   Y bitmap,   
                        
    +24 dword:          
    +28 dword:          

    +32: dword:  bitmap -   32bpp
    +36: dword:   bitmap  

 :
  *    

----------------------   : ----------------------
  eax - SF_BLITTER (73)
======================================================================
===================  74,  -1 ========================
===========     . ==========
======================================================================
:
  * eax = 74 -  
  * bl = -1 -  
 :
  * eax =    

----------------------   : ----------------------
  eax - SF_NETWORK_GET (74)
   bl - SSF_DEVICE_COUNT (255)
======================================================================
====  74,  0,    . =====
======================================================================
:
  * eax = 74 -  
  * bl = 0 -  
  * bh =  
 :
  * eax =  

----------------------   : ----------------------
  eax - SF_NETWORK_GET (74)
   bl - SSF_DEVICE_TYPE (0)
======================================================================
====  74,  1,    . =====
======================================================================
:
  * eax = 74 -  
  * bl = 1 -  
  * bh =  
  * ecx =    - 64 
 :
  * eax = -1  
  *         

----------------------   : ----------------------
  eax - SF_NETWORK_GET (74)
   bl - SSF_DEVICE_NAME (1)
======================================================================
=======  74,  2,   . =========
======================================================================
:
  * eax = 74 -  
  * bl = 2 -  
  * bh =  
 :
  * eax = -1  

----------------------   : ----------------------
  eax - SF_NETWORK_GET (74)
   bl - SSF_RESET_DEVICE (2)
======================================================================
======  74,  3,   . ======
======================================================================
:
  * eax = 74 -  
  * bl = 3 -  
  * bh =  
 :
  * eax = -1  

----------------------   : ----------------------
  eax - SF_NETWORK_GET (74)
   bl - SSF_STOP_DEVICE (3)
======================================================================
=====  74,  4,     =====
======================================================================
:
  * eax = 74 -  
  * bl = 4 -  
  * bh =  
 :
  * eax = , -1  

----------------------   : ----------------------
  eax - SF_NETWORK_GET (74)
   bl - SSF_DEVICE_POINTER (4)
======================================================================
===  74,  6,     ===
======================================================================
:
  * eax = 74 -  
  * bl = 6 -  
  * bh =  
 :
  * eax =     , -1  

----------------------   : ----------------------
  eax - SF_NETWORK_GET (74)
   bl - SSF_TX_PACKET_COUNT (6)
======================================================================
===  74,  7,     ===
======================================================================
:
  * eax = 74 -  
  * bl = 7 -  
  * bh =  
 :
  * eax =     , -1  

----------------------   : ----------------------
  eax - SF_NETWORK_GET (74)
   bl - SSF_RX_PACKET_COUNT (7)
======================================================================
====  74,  8,    . ====
======================================================================
:
  * eax = 74 -  
  * bl = 8 -  
  * bh =  
 :
  * eax =     , -1  
  * ebx =  

----------------------   : ----------------------
  eax - SF_NETWORK_GET (74)
   bl - SSF_TX_BYTE_COUNT (8)
======================================================================
====  74,  9,    . ====
======================================================================
:
  * eax = 74 -  
  * bl = 9 -  
  * bh =  
 :
  * eax =     , -1  
  * ebx =  

----------------------   : ----------------------
  eax - SF_NETWORK_GET (74)
   bl - SSF_RX_BYTE_COUNT (9)
======================================================================
=======  74,  10,   . =======
======================================================================
:
  * eax = 74 -  
  * bl = 10 -  
  * bh =  
 :
  * eax =  , -1  

:
  0 =  
  1 =  
  4 = 10 
  8 = 100 
  12 = 1 
  10b =   

----------------------   : ----------------------
  eax - SF_NETWORK_GET (74)
   bl - SSF_LINK_STATUS (10)
======================================================================
==  74.11,      . ==
======================================================================
:
  * eax = 74 -  
  * bl = 11 -  
  * bh =  
 :
  * eax =   ,     
          , -1  

----------------------   : ----------------------
  eax - SF_NETWORK_GET (74)
   bl - SSF_TX_PACKET_ERROR_COUNT (11)
======================================================================
===  74.12,      . ==
======================================================================
:
  * eax = 74 -  
  * bl = 12 -  
  * bh =  
 :
  * eax =       ,
    -1  

----------------------   : ----------------------
  eax - SF_NETWORK_GET (74)
   bl - SSF_TX_PACKET_DROP_COUNT (12)
======================================================================
===  74.13,      . ====
======================================================================
:
  * eax = 74 -  
  * bl = 13 -  
  * bh =  
 :
  * eax =       ,
    -1  

----------------------   : ----------------------
  eax - SF_NETWORK_GET (74)
   bl - SSF_TX_PACKET_MISS_COUNT (13)

======================================================================
====  74.14,      . =====
======================================================================
:
  * eax = 74 -  
  * bl = 14 -  
  * bh =  
 :
  * eax =  ,       
    , -1  
	
----------------------   : ----------------------
  eax - SF_NETWORK_GET (74)
   bl - SSF_RX_PACKET_ERROR_COUNT (14)
======================================================================
==  74.15,      . ==
======================================================================
:
  * eax = 74 -  
  * bl = 15 -  
  * bh =  
 :
  * eax =       , 
    -1  

----------------------   : ----------------------
  eax - SF_NETWORK_GET (74)
   bl - SSF_RX_PACKET_DROP_COUNT (12)
======================================================================
===  74.16,      . ===
======================================================================
:
  * eax = 74 -  
  * bl = 16 -  
  * bh =  
 :
  * eax =       ,
    -1  

----------------------   : ----------------------
  eax - SF_NETWORK_GET (74)
   bl - SSF_RX_PACKET_MISS_COUNT (16)
======================================================================
==============  75,  0,  . ==============
======================================================================
:
  * eax = 75 -  
  * bl = 0 -  
  * ecx = 
  * edx = 
  * esi = 
 :
  * eax =  , -1  
  * ebx =  

----------------------   : ----------------------
  eax - SF_NETWORK_SOCKET (75)
   bl - SSF_OPEN (0)
======================================================================
==============  75,  1,  . ==============
======================================================================
:
  * eax = 75 -  
  * bl = 1 -  
  * ecx =  
 :
  * eax = -1  
  * ebx =  

----------------------   : ----------------------
  eax - SF_NETWORK_SOCKET (75)
   bl - SSF_CLOSE (1)
======================================================================
=============  75,  2, Bind (). =============
======================================================================
:
  * eax = 75 -  
  * bl = 2 -  
  * ecx =  
  * edx =    sockaddr
  * esi =   sockaddr
  SockAddr:
  * +0: Word: Family
  * +2: 14*Byte: Data
 :
  * eax = -1  
  * ebx =  

----------------------   : ----------------------
  eax - SF_NETWORK_SOCKET (75)
   bl - SSF_BIND (2)
======================================================================
============  75,  3, Listen (). =============
======================================================================
:
  * eax = 75 -  
  * bl = 3 -  
  * ecx =  
  * edx = backlog ( )
 :
  * eax = -1  
  * ebx =  

----------------------   : ----------------------
  eax - SF_NETWORK_SOCKET (75)
   bl - SSF_LISTEN (3)
======================================================================
==========  75,  4, Connect (). ===========
======================================================================
:
  * eax = 75 -  
  * bl = 4 -  
  * ecx =  
  * edx =    sockaddr
  * esi =   sockaddr
  SockAddr:
  * +0: Word: Family
  * +2: 14*Byte: Data
 :
  * eax = -1  
  * ebx =  

----------------------   : ----------------------
  eax - SF_NETWORK_SOCKET (75)
   bl - SSF_CONNECT (4)
======================================================================
===========  75,  5, Accept (). ===========
======================================================================
:
  * eax = 75 -  
  * bl = 5 -  
  * ecx =  
  * edx =    sockaddr
  * esi =   sockaddr
  SockAddr:
  * +0: Word: Family
  * +2: 14*Byte: Data
 :
  * eax =     , -1  
  * ebx =  

----------------------   : ----------------------
  eax - SF_NETWORK_SOCKET (75)
   bl - SSF_ACCEPT (5)
======================================================================
=============  75,  6, Send (). ==============
======================================================================
:
  * eax = 75 -  
  * bl = 6 -  
  * ecx =  
  * edx =   
  * esi =  
  * edi = 
 :
  * eax =   , -1  
  * ebx =  

----------------------   : ----------------------
  eax - SF_NETWORK_SOCKET (75)
   bl - SSF_SEND (6)
======================================================================
============  75,  7, Receive (). ===========
======================================================================
:
  * eax = 75 -  
  * bl = 7 -  
  * ecx =  
  * edx =   
  * esi =  
  * edi = 
 :
  * eax =   , -1  
  * ebx =  

----------------------   : ----------------------
  eax - SF_NETWORK_SOCKET (75)
   bl - SSF_RECEIVE (7)
======================================================================
===========  75,  8,   . ===========
======================================================================
:
  * eax = 75 -  
  * bl = 8 -  
  * ecx =  
  * edx =   optstruct
 :
  * eax = -1  
  * ebx =  
:

  Optstruct: dd level
             dd optionname
             dd optlength
             db options...

----------------------   : ----------------------
  eax - SF_NETWORK_SOCKET (75)
   bl - SSF_SET_OPTIONS (8)
======================================================================
==========  75,  9,   . ==========
======================================================================
:
  * eax = 75 -  
  * bl = 9 -  
  * ecx =  
  * edx =   optstruct
 :
  * eax = -1  
  * ebx =  
:

  Optstruct: dd level
             dd optionname
             dd optlength
             db options...

----------------------   : ----------------------
  eax - SF_NETWORK_SOCKET (75)
   bl - SSF_GET_OPTIONS (9)
======================================================================
==========  75,  10,    ==========
======================================================================
:
  * eax = 75 -  
  * bl = 10 -  
 :
  * eax =    / -1  
  * ebx =    /  

----------------------   : ----------------------
  eax - SF_NETWORK_SOCKET (75)
   bl - SSF_GET_PAIR (10)
======================================================================
===============  76,    . ==============
======================================================================
:
  * eax = 76 -  
  *   ebx =  
  * bh =  
  * bl =  

  :

0 - Ethernet:
        0 - Read MAC

     :
        0 -  
        1 -  

1 - IPv4:
        2 - Read IP
        3 - Write IP
        4 - Read DNS
        5 - Write DNS
        6 - Read subnet
        7 - Write subnet
        8 - Read gateway
        9 - Write gateway

2 - ICMP:
        3 - enable/disable ICMP echo reply

3 - UDP
4 - TCP

5 - ARP:
        2 - Read # ARP entry's
        3 - Read ARP entry
        4 - Add static ARP entry
        5 - Remove ARP entry (-1 = remove all)
        6 - Send ARP announce on specified interface
        7 - Read # ARP conflicts (IP address conflicts)

----------------------   : ----------------------
  eax - SF_NETWORK_PROTOCOL (76)
======================================================================
=============  77,  0,  . =============
======================================================================
:
  * eax = 77 -  
  * ebx = 0 -  
  * ecx =      (dword)
 :
  * eax =  , 0  

----------------------   : ----------------------
  eax - SF_FUTEX (77)
  ebx - SSF_CREATE (0)
======================================================================
=============  77,  1,  . =============
======================================================================
:
  * eax = 77 -  
  * ebx = 1 -  
  * ecx =  
 :
  * eax = 0 - , -1  
:
  *       .

----------------------   : ----------------------
  eax - SF_FUTEX (77)
  ebx - SSF_DESTROY (1)
======================================================================
=================  77,  2, . =================
======================================================================
:
  * eax = 77 -  
  * ebx = 2 -  
  * ecx =  
  * edx =  
  * esi =    , 0 -  
 :
  * eax = 0 - , -1 - ,
        -2 -    

----------------------   : ----------------------
  eax - SF_FUTEX (77)
  ebx - SSF_WAIT (2)
======================================================================
================  77,  3, . ================
======================================================================
:
  * eax = 77 -  
  * ebx = 3 -  
  * ecx =  
  * edx =    ()
 :
  * eax =  

----------------------   : ----------------------
  eax - SF_FUTEX (77)
  ebx - SSF_WAKE (3)
======================================================================
=======  77,  10,     . =======
======================================================================
:
  * eax = 77 -  
  * ebx = 10 -  
  * ecx =  
  * edx =   ,  
  * esi =   
 :
  * eax =   

----------------------   : ----------------------
  eax - SF_FUTEX (77)
  ebx - ...
======================================================================
========  77,  11,     . =======
======================================================================
:
  * eax = 77 -  
  * ebx = 11 -  
  * ecx =  
  * edx =    ,     
  * esi =   
 :
  * eax =   

----------------------   : ----------------------
  eax - SF_FUTEX (77)
  ebx - ...
======================================================================
===========  77,  13,   pipe. ===========
======================================================================
  pipe.  4    pipefd  
    .
 4    pipefd + 4      
.
:
  * eax = 77 -  
  * ebx = 13 -  
  * ecx =  pipefd
  * edx = .      O_CLOEXEC (0x40000), 
       .     
      0.
 :
  * eax = 0  ,  .

----------------------   : ----------------------
  eax - SF_FUTEX (77)
  ebx - ...
======================================================================
==========  -1 -   / =========
======================================================================
:
  * eax = -1 -  
 :
  *     ,  
:
  *      ,     
     ,      .
  *    -   ,   
        .
  *     .    
      2  18.

----------------------   : ----------------------
  eax - SF_TERMINATE_PROCESS (-1)
======================================================================
===  80 -       . ===
======================================================================
:
  * eax = 80
  * ebx =    
 :
  * eax = 0 - ;     
  *        
      
   :
  * +0: dword:  
  * +4: dword:     
  * +8: dword:      
  * +12 = +0xC: dword:  
  * +16 = +0x10: dword:   
  * +20 = +0x14: dword:  :
    1 = cp866
    2 = UTF-16LE
    3 = UTF-8
    0 =   (     )
  * +24 = +0x18: dword:     ( )

     70.

======================================================================
===========================   ===========================
======================================================================
        10
( ), 11 (  ), 23
(    ).
     ,    ,
  40.     , 
    .
 :
  * 1 =    (    0)
  * 2 =     (,   
    )   " ";
    ,        2
  * 3 =  ,    8 ( 
    ,    0;  
           ;
    ,    ; ,  
         17)
  * 4 =  (      
       40)
  * 5 =     
  * 6 =    (-  -    
     ;   )
  * 7 =   IPC (  60 - Inter Process
    Communication;   )
  * 8 =    (  ;
       )
  * 9 =    (  ;
      )
  * 16..31 =     IRQ
    (16=IRQ0, 31=IRQ15) (     IRQ)

======================================================================
====================     ====================
======================================================================
  * 0 = 
  * 2 =       
  * 3 =   
  * 5 =   
  * 6 =  
  * 7 =    
  * 8 =  
  * 9 =   
  * 10 =  
  * 11 =  
  * 12 =     

       :
  * 30 = 0x1E =  
  * 31 = 0x1F =    
  * 32 = 0x20 =   
