
##############################################################################
##############################################################################
################+--------------------------------------------+################
################|      " "  |################
################+-------------+--------------+-+-------------+################
##############################|  16.08.2006  |#|   #1  |################
##############################+--------------+#+-------------+################
##############################################################################
##############################################################################


==============================================================================
===  =================================================================
==============================================================================


      ,    ,    ,     
               
  .          ,    "",
       .

     ,        ,
   ,    ,     . 
    ,   ,    . 
          .

      , , , ,  
,         ,     
      .       .

                
.              .  ,  
       ,       
      -   ,   -,   ,   ,
.

 ,   . ,       
 ,      . , , 
        -       . 
                  
,   ...

                                                 [KolibriOS`E-zine Team]


==============================================================================
===   =======================================================
==============================================================================

 0.  
 1.    Kolibri OS.  .  1
 2.   checkbox
 3.    ""
 4.   Kolibri OS.  1.     
 5.   Kolibri OS.  2.   
 6.    .  1
 7.   .   Mario79


==============================================================================
===   ==========================================================
==============================================================================

: Veliant


*** Animage ******************************************************************

: andrew_programmer

              .  
    BMP  ,          ,
        ,    
   ,        .      
    -      .   
  ,      Paint  MS. 
   Animage.

*** Screenshooter ************************************************************

: Maxxxx32

       .    
        .      
   :        n    (n    ),
  ,  (  ),   
  ,       ,
          .      
        .

***   *********************************************************

:  rabid rabbit

,     .   -  
    ++    .          , ,
            , 
.   ,        
     .    ,
         .


==============================================================================
===    Kolibri OS.  .  1 ========
==============================================================================

: Johnny_B


***  ***************************************************************

            
   .   ,                 
    ,       
,     ,       
  "" ("").   ,   .
,    ,  ,  ,  -,       
, ,        . 
  ,       ,     
        sysfuncr.txt,      
,            , ,  
        .
,          "Bye  World!".     
          ,  
     .


***   ***********************************************************

      .  -     
3- :
 0.  -   ,    
 1.   -    
 2.   -   ,    

          .com-  ;)     
     .


0.    
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  db 'MENUET01'  ; 1.    (8 )
  dd 0x01        ; 2.     
  dd START       ; 3. ,     
                 ;        
  dd I_END       ; 4.  
  dd 0x100000    ; 5.    
                 ;           0x0
                 ;     ,  
  dd 0x100000    ; 6.     ,  
  dd 0x0         ; 7.     .
                 ;        ,  
                 ;         
  dd 0x0         ; 8.   ,    ,
                 ;      
: 36  (8 )
.        ,     
      .


1.  
~~~~~~~~~~~~~~~~

    ,    (3) - START,   
    .
     3    (  ,  
  ;) ) :
 1 - redraw -   ,   ,  
 2 - keypress  -      ,          
    
 3 - buttonpress  -          ,     
    
,      ,    ,   
,    ,    ,         1.
,            - -   
.  ,              
  .         , 
.         ,  ,
,            .   ?  
        ,        
      ,    ,      
   ,   , ,  .  
         ,   
  .  ,  .  ,    
 .
    2 ( )     ,   
  .   ,       
  ,                
,       .  ,    
,     .    ;)
        3      .   . 
  ,    ,       
        .  ,         
,           ( 
  , ).
-,    , ,  . ,     . 
,  ,    .

  ,            (API)   
     .   
   (, ebx,ecx,edx,esi,edi),    eax 
      -    0x40. ,    ,
      ;)

   :
START:                       ;       
        call    draw_window  ;    
    
;      
event_wait:
        mov     eax,10       ;  10:  
        int     0x40

;     eax,  ,   
        cmp     eax,1        ;   ?
        je      redraw    
        cmp     eax,2        ;  ?
        je      key
        cmp     eax,3        ;     ?
        je      button

        jmp     event_wait   ;      

;  ,   ,   
redraw:                      ;    !
        call    draw_window  ;   draw_window 
        jmp     event_wait   ;     
    
key:                         ;   !
        mov     eax,2        ;    .   ah.
        int     0x40         ;      
                             ;  .
        jmp     event_wait   ;   event_wait
    
button:                      ;     !
        mov     eax,17       ;    
        int     0x40         ;   ah.

; ,        .
        cmp     ah,1         ;   id=1("")?
        jne     noclose
        mov     eax,-1       ;  -1:  
        int     0x40
  noclose:
;     (  )
        jmp     event_wait   ; , ,     :)

.  ,         (ID) = 1,  
 .


2.  
~~~~~~~~~~~~~~~~~

    ,    
    ,      ,  
  .      ,       
   .   , , .
       :)

;   
draw_window:    
        mov     eax,12                ;  12:   
                                      ;   
        mov     ebx,1                 ;  1,  
        int     0x40
                                      ; 
        mov     eax,0                 ;  0:    
        mov     ebx,100*65536+300     ; [x ] *65536 + [x ]
        mov     ecx,100*65536+120     ; [y ] *65536 + [y ]
        mov     edx,0x02ffffff        ;    RRGGBB
                                      ; 0x02000000 =   2 ( 
                                      ; ,     )
        mov     esi,0x808899ff        ;    RRGGBB
                                      ; 0x80000000 =  
        mov     edi,0x008899ff        ;   RRGGBB
        int     0x40
                                      ;   
        mov     eax,4                 ;  4:    
        mov     ebx,8*65536+8         ; [x ] *65536 + [y ]
        mov     ecx,0x00ddeeff        ;   RRGGBB
                                      ;   (0x00) -  
                                      ; ()
        mov     edx,text              ;    
        mov     esi,textend-text      ;    
        int     0x40
                                      ;    
        mov     eax,4                 ;  4:    
        mov     ebx,120*65536+60      ; [x ] *65536 + [y ]
        mov     ecx,0x102222ff        ;   RRGGBB
                                      ;   (0x10) -  
                                      ; ()
        mov     edx,text              ;    
        mov     esi,textend-text      ;    
        int     0x40
                                      ; 
        mov     eax,8                 ;  8:    
        mov     ebx,(300-19)*65536+12 ; [x ] *65536 + [x ]
        mov     ecx,5*65536+12        ; [y ] *65536 + [y ]
        mov     edx,1                 ;  
        mov     esi,0x6677cc          ;   RRGGBB
        int     0x40

        mov     eax,12                ;  12:   
                                      ;   
        mov     ebx,2                 ;  2,  
        int     0x40
  
        ret                           ;  

;  
text db 'Bye World!'
textend: ;       ASCIIZ-,   
         ;     ;-)

I_END:   ; ,      

      "",    .
    ,   ,  
 ,  ,     ;)
    ,     ,    
        fasm'  for  Windows      
(MeOSEmul  by  mike.dld  KlbrInWin by diamond).  ,    
 .


***  ***************************************************************

          ,     
(mistifi(ator,Victor,Lrz,mike.dld),                
  ,     ,  ,     
   ;)
       "  MenuetOS" (, Mario79 ;) 
sysfuncr.txt
   , ,   .   ...

P.S.  ,        .         ,  
,   .


***  ***************************************************************

---  bye.asm ---------------------------------------------------- >8 ---

use32     ; ,  32-  
org   0x0 ;   ,  0x0

  db 'MENUET01'  ; 1.    (8 )
  dd 0x01        ; 2.     
  dd START       ; 3. ,     
                 ;        
  dd I_END       ; 4.  
  dd 0x100000    ; 5.    
                 ;           0x0
                 ;     ,  
  dd 0x100000    ; 6.     ,  
  dd 0x0         ; 7.     .
                 ;        ,  
                 ;         
  dd 0x0         ; 8.   ,    ,
                 ;      

START:                       ;       
        call    draw_window  ;    
    
;      
event_wait:
        mov     eax,10       ;  10:  
        int     0x40

;     eax,  ,   
        cmp     eax,1        ;   ?
        je      redraw    
        cmp     eax,2        ;  ?
        je      key
        cmp     eax,3        ;     ?
        je      button

        jmp     event_wait   ;      

;  ,   ,   
redraw:
        call    draw_window  ;   draw_window 
        jmp     event_wait   ;     
    
key:
        mov     eax,2        ;    .   ah.
        int     0x40         ;      
                             ;  .
        jmp     event_wait   ;   event_wait
    
button:
        mov     eax,17       ;    
        int     0x40         ;  ah.

; ,        .
        cmp     ah,1         ;   id=1("")?
        jne     noclose
        mov     eax,-1       ;  -1:  
        int     0x40
  noclose:
;    
        jmp     event_wait   ; , ,     :)

;   
draw_window:    
        mov     eax,12                ;  12:   
                                      ;   
        mov     ebx,1                 ;  1,  
        int     0x40
                                      ; 
        mov     eax,0                 ;  0:    
        mov     ebx,100*65536+300     ; [x ] *65536 + [x ]
        mov     ecx,100*65536+120     ; [y ] *65536 + [y ]
        mov     edx,0x02ffffff        ;    RRGGBB
                                      ; 0x02000000 =   2
        mov     esi,0x808899ff        ;    RRGGBB
                                      ; 0x80000000 =  
        mov     edi,0x008899ff        ;   RRGGBB
        int     0x40
                                      ;   
        mov     eax,4                 ;  4:    
        mov     ebx,8*65536+8         ; [x ] *65536 + [y ]
        mov     ecx,0x00ddeeff        ;   RRGGBB
                                      ;   (0x00) -  
                                      ; ()
        mov     edx,text              ;    
        mov     esi,textend-text      ;    
        int     0x40
                                      ;    
        mov     eax,4                 ;  4:    
        mov     ebx,120*65536+60      ; [x ] *65536 + [y ]
        mov     ecx,0x102222ff        ;   RRGGBB
                                      ;   (0x10) -  
                                      ; ()
        mov     edx,text              ;    
        mov     esi,textend-text      ;    
        int     0x40
                                      ; 
        mov     eax,8                 ;  8:    
        mov     ebx,(300-19)*65536+12 ; [x ] *65536 + [x ]
        mov     ecx,5*65536+12        ; [y ] *65536 + [y ]
        mov     edx,1                 ;  
        mov     esi,0x6677cc          ;   RRGGBB
        int     0x40

        mov     eax,12                ;  12:   
                                      ;   
        mov     ebx,2                 ;  2,  
        int     0x40
  
        ret                           ;  

;  
text db 'Bye World!'
textend: ;       ASCIIZ-,   
         ;     ;-)
I_END:   ; ,      

---  bye.asm ----------------------------------------------------- >8 ---


==============================================================================
===   checkbox ========================================
==============================================================================

: Lrz ( )


    ,    checkbox,    
    .
,  ,      .   
,    . -   :

    ---------------
      [] Checkbox 
    ---------------

.  checkbox     . ,  
   .
      ,      ,  4 
 38.       4.
,      ,          
 4   .      ,
           ,   
        (        ). ,
 :
 0.    ?    1,     .
 1.             
    .  -  2.     .
 2.               . 
       ,     ,    , 
      .          
              .      ,     
      .

      :

---   #1 ------------------------------------------------- >8 ---

;   KOLIBRI
;  CheckBox (   Maxxxx32)
;  ,   CheckBox'a +    
;    -   
; .
;<Lrz>  -    www.test-kolibri.narod.ru

; 
use32               ; ,  32  
org   0x0           ;   ,  0x0

  db 'MENUET01'     ;  8    
  dd 0x1            ;   
  dd start          ;  ,     
  dd i_end          ;  
  dd i_end+0x100    ;   ,    0100 
  dd i_end+0x100    ;      
  dd 0x0,0x0        ;   ;   
;------------------
include 'check.inc  ;   check.inc
use_check_box       ;       
                    ; 
; 
start:                         ;    
red_win:
        call    draw_window    ;    
still:                         ;   
        mov     eax,23         ;    t  
        xor     ebx,ebx        ;   ebx
        add     ebx,2          ;    ebx  =2
        int     0x40           ;     2 
  
        cmp     eax,0x1        ;    
        jz      red_win
        cmp     eax,0x2        ;     
        jz      key
        cmp     eax,0x3        ;     
        jz      button

mouse_check_boxes check_boxes,check_boxes_end  ;   

        jmp     still          ;        

button:
        mov     eax,17         ;    
        int     0x40
        test    ah,ah          ;   ah 0,     
        jz      still
        or      eax,-1         ; :  eax,-1 - 5 ,     3
        int     0x40           ;     
  
key:                           ;   
        xor     eax,eax        ;  eax
        add     eax,2          ;   eax 2
        int     0x40
        
        jmp     still          ;     still

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
draw_window:                    ;   
        xor     eax,eax         ;     eax
        add     eax,12          ;     eax 12
        xor     ebx,ebx         ;   ebx
        add     ebx,1           ;      1
    
        xor     eax,eax          ;  eax
        mov     ebx,50*65536+180 ; [  x]*65536 + [  x]
        mov     ecx,30*65536+100 ; [  y]*65536 + [  y]
        mov     edx,0x03AABBCC   ; 0xXYRRGGBB
        mov     esi,0x805080DD   ; 0xXYRRGGBB -  
        mov     edi,0x005080DD   ; 0x00RRGGBB -  
        int     0x40             ;   
                                
        shr     eax,1           ;      ..  8
                                ;   2 ( 386 ) 
                                ; 4 -    
    ;   mov     eax,4           ;    
                                ; ,    
                                ;  
        mov     ebx,8*65536+8   ; [  x]*65536 + [  y]
	mov 	ecx,0x10DDEEFF  ; 0xX0RRGGBB,  RR, GG, BB  
				;  
        mov     edx,hed         ;    
        mov     esi,i_end - hed ;  ,     255
        int     0x40            ;  
        
draw_check_boxes check_boxes,check_boxes_end ; 

        xor     eax,eax         ;  12 - / 
        add     eax,12          ; 
        xor     ebx,ebx         ;  
        add     ebx,2           ;  2 -   
        int     0x40
        ret

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;DATA  
;   :
;10 -      
;30 -     
;0xffffff -    
;0 -    
;0 -   
;ch_text.1 -    
;ch_text.e1-ch_text.1 -  
;
check_boxes:
  ch1 check_box 10,30,0xffffff,0,0,ch_text.1,ch_text.e1-ch_text.1
  ch2 check_box 10,45,0xffffff,0,0,ch_text.2,ch_text.e2-ch_text.2
  ch3 check_box 10,60,0xffffff,0,0,ch_text.3,ch_text.e3-ch_text.3
check_boxes_end:

ch_text:                ;    
  .1 db 'Check_Box #1' 
 .e1:
  .2 db 'Check_Box #2'
 .e2:
  .3 db 'Check_Box #3'
 .e3:

hed db 'Checkbox'       ;  
i_end:                  ;  

---   #1 -------------------------------------------------- >8 ---

                 
.
          . 
     (Start).      
     .          ,      
       .

  ,      :

---   #2 ------------------------------------------------- >8 ---

;   KOLIBRI
;  CheckBox (   Maxxxx32)
;     CheckBox'a + ,   
;    -   
;  -      .
;17.07.2006  ,      
;            
;<Lrz>  -    www.test-kolibri.narod.ru

macro use_check_box  ;  
{
  ch_text_margin=4            ;      
                              ;  
  ch_size=10                  ;     
  ch_left equ [edi]           ;     
  ch_top equ [edi+2]          ;     
  ch_color equ [edi+4]        ;   checkbox
  ch_border_color equ [edi+8] ;   checkbox
  ch_text_color equ [edi+12]  ;  
  ch_text_ptr equ [edi+16]    ;     
  ch_text_length equ [edi+20] ;   (2^64    
                              ; )
  ch_flags equ [edi+22]       ;  

check_box:
  .draw:                      ;   
        pusha                 ;   
        mov     eax,38        ;  
        mov     bx,ch_left    ;   
        mov     cx,bx         ;    cx  bx
                              ; 1 
    ;   push    bx            ; 3     
                              ;   ,   - 
                              ; 
        shl     ebx,16        ;   16   ( 
                              ; 65536)
    ;   pop     bx            ; 2    
                              ;  [   x]*65536 +
                              ; [   x]
        mov     bx,cx         ;   bx
        mov     cx,ch_top     ;   cx  y
        mov     si,cx         ;    cx  
                              ;  si
    ;   push    cx
        shl     ecx,16        ;   16   ( 
                              ; 65536)
        mov     cx,si         ;    cx
        mov     cx,si         ;    cx
    ;   pop     cx            ; [   y]*65536 + [
                              ;   y]
    ;   push    cx       
        add     cx,ch_size    ; [   y]*65536 + [
                              ;    y]
        mov     edx,ch_border_color ;  
        int     0x40          ;     
                              ; ()

        mov     bp,bx         ;   bx    
    ;   push    bx            ;   bx [   ]*65536
                              ; + [   x]
        add     bx,ch_size    ; [  +    ]
        ror     ebx,16        ; [  +    ]*65536
        add     bx,ch_size    ; [  +    ]*65536
                              ; + [  +    x]
        int     0x40
        mov     bx,bp         ;    bx
    ;   pop     bx
        mov     cx,si         ;    cx  
                              ; 
    ;   pop     cx
        int     0x40
        add     cx,ch_size    ;    
        mov     si,cx         ;    cx  
                              ;  si
    ;   push    cx
        shl     ecx,16
        mov     cx,si
    ;   pop     cx
        int     0x40          ;  

        mov     eax,13        ;  .  13 - 
                              ; 
        mov     bx,ch_left    ;   bx,   
        add     bx,1          ;   1, ..  1,  
                              ; 
        shl     ebx,16        ;   16    ( 
                              ; 65536)
        mov     bx,ch_size    ;    
        sub     bx,1          ;  1 ..   
        mov     bp,bx         ;   bx    
    ;   push    bx
        mov     cx,ch_top     ;    y
        add     cx,1          ;   1, ..  1, 
                              ;  
        shl     ecx,16        ;   16   ( 
                              ; 65536)
        mov     cx,bp         ;    cx
    ;   pop     cx
        mov     edx,ch_color  ;   
        int     0x40          ;  
        bt      dword ch_flags,1 ;      
                                 ;     CF 
        jnc     @f            ;   CF=1,    
                              ;     @@
        call    .draw_ch      ;    
    @@:
;------------------------------------------
;      
;------------------------------------------
        mov     bx,ch_left        ;      
        add     bx,(ch_size+ch_text_margin) ;    
                                            ;    
                                            ;  
        shl     ebx,16            ;   16    ( 
                                  ; 65536)
        mov     bx,ch_top         ;    y
        add     bx,(ch_size-9+2)  ;     -9+2
        mov     ecx,ch_text_color ;   
        
        mov     edx,ch_text_ptr   ;  ,    
        movzx   esi,word ch_text_length ;     esi
        xor     eax,eax           ;   eax    
                                  ; 
        add     eax,4
        int     0x40              ;  
        popa                      ;     
        ret                       ;   

  .clear_ch:                      ;   
        mov     edx,ch_color      ;    
        jmp     @f                ;      @@

  .draw_ch:                       ;    
        mov     edx,ch_border_color ;  
@@:
        mov     bx,ch_left        ;    
        add     bx,(ch_size/3)    ;  ( /3)
        shl     ebx,16            ;   16    ( 
                                  ; 65536)
        mov     bx,(ch_size/2)    ;  ( /2)
        mov     bp,bx             ;   bx   
                                  ; 
    ;   push    bx
        mov     cx,ch_top         ;    
        add     cx,(ch_size/3)    ;  ( /3)
        shl     ecx,16            ;   16    ( 
                                  ; 65536)
        mov     cx,bp             ;     
                                  ;  cx
    ;   pop    cx
        mov     eax,13            ;  eax -    
                                  ; , ..   ,
                                  ;    
                                  ;  
        int     0x40              ; 
        ret                       ;   

  .mouse:                         ;   
        pusha
        mov     eax,37            ;  - ,    -
                                  ; 
        xor     ebx,ebx           ;   ebx ( )
        add     ebx,2             ;     2
        int     0x40              ; ,     
                                  ; 
        test    eax,eax           ;      eax=0,  
                                  ;   
        jnz     @f                ;     @@
        btr     dword ch_flags,2  ;      
                                  ; cf      . 
        popa                      ;    ,  
                                  ;    
        ret                       ; 
    @@:
        bts     dword ch_flags,2  ;   ..   cf 
                                  ;       
        jc      .mouse_end        ;  CF=1      .. 
                                  ; 
        movzx   esi,word ch_text_length ;  -  
                                        ;  
;   6.  ,     ,
;     (386,486,P1)    Lea
    ;   lea     esi,[eax*2+eax]
    ;   shl     eax,1
        imul    esi,6              ;       6
        add     esi,ch_text_margin ;  3 -     
                                   ; 
        
        mov     eax,37            ;    
        xor     ebx,ebx           ;  
        add     ebx,1             ;  1
        int     0x40              ;    
                                  ;  
        
        mov     bx,ch_top         ;   bx   
        cmp     ax,bx             ;     
        jl      .mouse_end        ; SF <> OF   
        add     bx,ch_size        ;   
        cmp     ax,bx             ; 
        jg      .mouse_end        ; ZF = 0  SF = OF   
        
        shr     eax,16            ;   65536    
                                  ;  16 
        mov     bx,ch_left        ;   
        cmp     ax,bx             ;   
        jl      .mouse_end        ;   
        add     bx,ch_size        ;     
        add     bx,si             ;         
                                  ;   
        cmp     ax,bx             ;   
        jg      .mouse_end        ;    

        bts     dword ch_flags,1  ;      
                                  ; cf      1. 
        jc      @f                ; CF=1     @@
        
        call    .draw_ch          ;    
        mov     dword [esp+24],1  ;     ,
                                  ;    ,   ecx
                                  ;  0 
        jmp     .mouse_end        ;  
    @@:
        btr     dword ch_flags,1  ;      
                                  ; cf      . 
        call    .clear_ch         ;    ..  
                                  ;   
                                  ;  .
  .mouse_end:
        popa                      ;    
        ret                       ; 
}

struc check_box left,top,color,border_color,text_color,text,text_length,flags
{       ;    
  .left:         dw left          ; +0     
  .top:          dw top           ; +2     
  .color:        dd color         ; +4      
  .border_color: dd border_color  ; +8    
  .text_color:   dd text_color    ; +12    
  .text:         dd text          ; +16       
                                  ;      
  .text_length:  dw text_length   ; +20   
  .flags:        dd flags+0       ; +22  
}
ch_struc_size = 26                ;   26 
macro draw_check_boxes start,end  ;   
{
        mov     edi,start                       ;    
                                                ;  , ..  
                                                ;   
        mov     ecx,((end-start)/ch_struc_size) ;   
    @@:
        call    check_box.draw                  ;   
        add     edi,ch_struc_size               ;    
                                                ;   .. +28
        loop    @b                              ;    ecx/cx
                                                :   0   @@
}
macro mouse_check_boxes start,end ;   ,   
                                  ; 
{
        mov     edi,start                       ;    
                                                ;  , ..  
                                                ;   
        mov     ecx,((end-start)/ch_struc_size) ;   
    @@:
        call    check_box.mouse                 ;    
                                                ; 
        add     edi,ch_struc_size               ;    
                                                ; 
        loop    @b                              ;    ecx/cx
                                                ;   0   @@
}

---   #2 -------------------------------------------------- >8 ---


==============================================================================
=== H   "" ========================================
==============================================================================

: Victor


,    ,      .   
    (    ),   .  
 ,    (  )...

...   :

       ,        , 
... ,  ,  ,    ...    
  .     ,        . 
     ()      
  ,             . 
          .     
 .    ,    ...

        ,       .
   - .    -   
     (,      ,
         )      .    
   .      ,
     (int 0x40,  70,   
  Diamond-)          .    
  ,      .  -
      ,      
 (,    alloc, free...).        , 
        ,        .
       ,      .
    ,             
 .     ... , 
   ,     (   ) 
  .   .

org 0 ;         
        A       db 1
        B       dd 0xABCDEF01 ;    ""
        movzx   eax,byte [A]
        mov     [B],eax
        ...

                 ,
     .       
    00000,         00001.      
  :

        db      1
        dd      0xABCDEF01
        movzx   eax,byte [0x0000]
        mov     [0x0001],eax

    ,   ,     .
            ( )
        .        
        ,    . 
            (    
  ...).          
 (    ,     
)       . ..   
       00100,      00100,   - 00101,
  00000 - 00100 = -001000,       
.      -     (, ...).
   -,    ?    :

00100: db      1
        dd      0xABCDEF01
        movzx   eax,byte [0x0000+0x01000]
        mov     [0x0001+0x01000],eax

    .

      , ,  ,  - . 
    . , ,  
  EBX    ,    .  
     (). , mov eax,[EBX+A] 
     . ,     .  
       (   ),   -  
  .
     ,    .   
   :

        E800000000      call    a
        5B83        a:  pop     ebx
        EB05            sub     ebx,5

       .    , 
call        0.        ,     
    .     call. 
      ,    ,  
          .       call  
   0, ..  ,   .   
     ,   "call a", ..   ,
     .        EBX. 
     "call a" -   , ,   
,       ( ,   
).  32-    "call a"  5 , 
    EBX 5.

       , .. .   ,
         ,      
,  ..              .  
,          ...    ""
.
               . 
   PE.      ,  
.    ,   , ..  
  -    -  .           
"  "    . ,  , 
   ,    (   ,  - 
        ,        ""),
      ,         
.

  ""      -.         
      -  .     ( ),
    (  ).       
             . 
            ,     
 .

             .    
        ,         
?             ,      
    ,      .     
        .    
      loadlybrary,   , 
            getProcAddress (
      ...   ... :).

              .  
   (       ),    -      ,
         .  ,      
    ,  ,   ,  
.       ( 
        ,       
    )         (
            ,   
      ,          
     ).        
              ,       
...

   .      ,   
    ,         (,  ... 
,               ;)        
.           (    ,
(r)...(c)...tm...       ;)      ( 
      :/).             
      victor.kolibrios.org .   ,
     :)
  ,   ,    Willow  Serge. 
       :

PS:  ,        
  ...   -      .    100%
  ,          -
.         coff2kdl.  
    ,   ...


==============================================================================
===   Kolibri OS.  1.      ====
==============================================================================

: Hex


***  *******************************************************************

         KolibriOS  ,  
            
.  ,         0x40.  
       syscall.inc .    
0x40 - "servetable",   :

servetable: 

        dd sys_drawwindow        ; 0-DrawWindow
        dd syscall_setpixel      ; 1-SetPixel
        dd sys_getkey            ; 2-GetKey
        . . .

     :

        . . .
        dd sys_internal_services ; 68-Some internal services
        dd sys_debug_services    ; 69-Debug
        dd file_system_lfn       ; 70-Common file system interface, version 2
        dd my_func               ; 71-   

:           
            !

       71,   
 0x40:

        mov     eax,71
        int     0x40

     ,      72.
  ,        .
      ,          : EBX
    EAX,  ECX   EBX, EDX  ECX, ESI  ECX, EDI  ESI.  
:

        mov     eax,71
        mov     ebx,0x00202020
        mov     edi,0x00303030
        int     0x40

         EAX   0x00202020,  
 ESI -  0x00303030.
  ,           
    .       
      :

my_func:
        mov     eax,0x00101010
        mov     [esp+36],eax 
        mov     ebx,0x00202020
        mov     [esp+24],ebx 
        mov     ecx,0x00303030
        mov     [esp+32],ecx 
        mov     edx,0x00404040
        mov     [esp+28],edx 
        ret 

  ,     .       
.   ,  ,    
     EAX   0x00101010.
    (.   " "),   .
    ,   template.asm,  , 
    .  ,          EAX
0x00101010,      ,    ,  
  :

        mov     eax,71          ;  
        int     0x40            ;  

        cmp     eax,0x00101010  ;   EAX  0x00101010? 
        jne     no_text         ;   -    no_text

        mov     eax, 4          ;  
        mov     ebx, 8*65536+30 ; 
        mov     ecx, 0xaba53274 ;  & 
        mov     edx, text       ;  
        mov     esi, text_len   ;  
        int     0x40  

no_text:
        . . .

      :
  ,               
,   :

        mov     esi,[0x3010]    ;   EAX   
        mov     edi,[esi+0x10]  ;   EDI   
                                ;   

    ,           .
         , ,  
  ,       .

***   **********************************************************

   ,         .      FASM.
          kernel.asm,    
kernel.mnt.    .       :
    Kolibri  ,    (home).  
 .  .

***  ***************************************************************

---  template.asm ----------------------------------------------- >8 ---

; include all KoOS stuff
include "lang.inc"
include "macros.inc"

; start of KolibriOS application
MEOS_APP_START

; start of code
CODE

        call    draw_window          ; at first create and draw the window

wait_event:                          ; main cycle
        mov     eax, 10
        int     0x40

        cmp     eax, 1               ; if event == 1
        je      redraw               ;   jump to redraw handler
        cmp     eax, 2               ; else if event == 2
        je      key                  ;   jump to key handler
        cmp     eax, 3               ; else if event == 3
        je      button               ;   jump to button handler

        jmp     wait_event           ; else return to the start of main cycle

redraw:                              ; redraw event handler
        call    draw_window
        jmp     wait_event

key:                                 ; key event handler
        mov     eax, 2               ; get key code
        int     0x40

        jmp     wait_event

button:                              ; button event handler
        mov     eax, 17              ; get button identifier
        int     0x40

        cmp     ah, 1
        jne     wait_event           ; return if button id != 1

        or      eax, -1              ; exit application
        int     0x40

draw_window:
        mov     eax, 12              ; start drawing
        mov     ebx, 1
        int     0x40

        mov     eax, 0               ; create and draw the window
        mov     ebx, 100*65536+300   ; (window_cx)*65536+(window_sx)
        mov     ecx, 100*65536+200   ; (window_cy)*65536+(window_sy)
        mov     edx, 0x03ffffff      ; work area color & window type 3
        int     0x40

        mov     eax, 4               ; window header
        mov     ebx, 8*65536+8       ; coordinates
        mov     ecx, 0xffffffff      ; color & font N1
        mov     edx, header          ; address of text
        mov     esi, header.size     ; length of text
        int     0x40

        mov     eax,71
        int     0x40

        cmp     eax,0x00101010
        jne     no_text

        mov     eax, 4               ; window header
        mov     ebx, 8*65536+30      ; coordinates
        mov     ecx, 0xaba53274      ; color & font N1
        mov     edx, text            ; address of text
        mov     esi, text_len        ; length of text
        int     0x40  

no_text:
        mov     eax, 12              ; finish drawing
        mov     ebx, 2
        int     0x40

        ret

; initialised data
DATA

lsz header,\
  ru, " ",\
  en, "Template program",\
  fr, "La programme poncive"

text db "Function works!"
text_len:

; uninitialised data
UDATA 

; end of KolibriOS application
MEOS_APP_END

---  template.asm ------------------------------------------------ >8 ---


==============================================================================
===   Kolibri OS.  2.    ======
==============================================================================

: Johnny_B


***  ***************************************************************

         ,   , 
        ASCIIZ-,    , 
NULL-(0x00),  ,  "text  db  'Assembler',0".    ,  
  ,    ASCIIZ-    ,    
       (. #4). ,    ,
         , 
    ASCIIZ-.
,    ,  "       ?   
,            ,     
    .           
  ".  - .

      ?        (, Lrz ;) 
,            .     ,
  ,    ,      
.   .

      ()  ?  ASCIIZ?
  ,    ,    ,  ASCIIZ     
        . 
      /    . ,
  .
        ,     (Lrz,    ;),
.  ,  ,      , 
 ,  .     , 
  .

    ,       ,
,        -     .      
.    ,   ,      , 
        .
  -        ,      ,
    ,       -  
,        ,    ,  . ,  
,            ,        
...

    ,       .   
  ?    ,        -
    -  ,    ,        
,            ,    ...
.    . ?       
  ,       .  ,  
         .          (
"").                   
.     .


***   ***********************************************************

  ?     ,  ,     
  .    ,           
(  ,  0581,       
;).  ,  ,       .
,      kernel(  ),    
   , ,    .     :

        kernel.asm -   ,    
        [blkdev]   -    (floppy, cd/dvd-rom)
        [boot]     -  
        [bus]      -    (PCI)
        [core]     -   ;) .,  , 
        [detect]   -   
        [fs]       -    
        [gui]      -  
        [hid]      -    
        [network]  -   
        [skin]     -  
        [sound]    -   
        [video]    -   

            - [core]  [gui].
     :

        [core]/syscall.inc -   #64
                             (0x40 -   )
        [gui]/font.inc     -   

     ,      ASCIIZ.


[core]/syscall.inc
~~~~~~~~~~~~~~~~~~

       0x40.     
        "int  0x40",    ?   .  ,
  ,     syscall.inc.
       (servetable:). 
        .
   #4 ( ).    :

dd syscall_writetext       ; 4-WriteText

.                 
"syscall_writetext:",       .

        : kernel.asm.      
"syscall_writetext:".              
  jmp  dtext.      .      [gui]/font.inc.
...


[gui]/font.inc
~~~~~~~~~~~~~~

   , ..       .
         .  -
  ,     .

        ; eax x & y
        ; ebx font ( 0xX0000000 ) & color ( 0x00RRGGBB )
        ; ecx start of text
        ; edx length
        ; edi 1 force

      ?             -
ecx(   )  edx( ).
    ,   ,       
edx,   -  esi.         
(ecx  edx, ).
   ?    ,    .   
  (),      ,     
  ,        Menuet'    
,                 - 
   . .
      . ,     
ASCIIZ-    ecx,       (  0)   
edx.         "dtext:".

  ,       ASCIIZ-, 
    ?     .   edx()
   -1(0xFFFFFFFF),   ecx-  ASCIIZ,  - 
  .  ( )     
  4294967295(0xFFFFFFFF) ? ;))

    .    ,     , 
  ,   push',   . ..    
,            ,   
 ,    :

;ASCIIZ-string output by Johnny_B
        push    esi
        mov     esi,edx         ; esi=
        inc     esi
        test    esi,esi         ; if (esi = -1) asciiz-string
        jnz     @F              ; else standard string
        cld
        mov     esi,ecx         ; esi=  
        push    eax
  .s_check:
        lodsb                   ; al=byte[esi]
        test    al, al          ;   0?
        jne     .s_check        ; 
        pop     eax
        sub     esi,ecx         ; esi= ASCIIZ-, 0
    @@:
        dec     esi             ;  0
        mov     edx,esi         ; edx= 
        pop     esi
;END

         "dtext:".    
:
 0.    - ecx (  ), edx ( )
 1.  edx ()   -1, ,   .
 2.     ASCIIZ     edx ().
,                    edx 
     ,      . 
     ,     ,   
(  -) ,   .


*** PostScriptum *************************************************************

         , 
      ,     , 
,      -   .


***  ***************************************************************

   ,          :
  Lrz,   ,  ,  
  Poddubny, ,      
 ,      

        .     ,     
  ,     .


***  ***************************************************************

---  font.inc () ---------------------------------------- >8 ---

align 4
dtext:
        ; eax x & y
        ; ebx font ( 0xX0000000 ) & color ( 0x00RRGGBB )
        ; ecx start of text
        ; edx length
        ; edi 1 force

        pushad

        mov     esi,edx
        and     esi,0xff
        test    esi,esi         ; zero length ?
        jnz     @f
        popad
        ret
      @@:

        test    ebx,0x10000000
        jnz     .letnew2

  align 4
  .letnew:
        push    eax ecx edx
        movzx   ebx,ax
        shr     eax,16
        movzx   edx,byte [ecx]
        mov     ecx,[esp+3*4+32-16]
        call    drawletter
        pop     edx ecx eax

        add     eax,6*65536

        inc     ecx
        dec     edx
        jnz     .letnew

        popad
        ret

  .letnew2:
        push    ecx
        push    edx
        movzx   ebx,ax
        shr     eax,16
        movzx   edx,byte [ecx]
        mov     ecx,[esp+2*4+32-16]
        call    drawletter2
        shl     eax,16
        add     eax,ebx
        pop     edx
        pop     ecx

        inc     ecx
        dec     edx
        jnz     .letnew2

        popad
        ret

align 4
drawletter:
        ;eax - x
        ;ebx - y
        ;ecx - color
        ;edx - ascii code

        pushad
        call    [disable_mouse]
        mov     esi,9
        lea     ebp,[0x3F600+8*edx+edx]
  .symloop:
        push    esi
        mov     dl,byte [ebp]
        mov     esi,8
  .pixloop:
        test    dl,1
        jz      .nopix
        call    [putpixel]
  .nopix:
        shr     dl,1    
        inc     eax
        dec     esi
        jnz     .pixloop
        sub     eax,8
        inc     ebx
        inc     ebp
        pop     esi
        dec     esi
        jnz     .symloop
        popad
        ret

align 4
drawletter2:
        ;eax - x
        ;ebx - y
        ;ecx - color
        ;edx - symbol
        ;edi - force?
        ;result - eax=eax+sym_size

        pushad
        call    [disable_mouse]
        shl     edx,1
        mov     esi,9
        lea     ebp,[0x3EC00+4*edx+edx+1]
  .symloop:
        push    esi
        mov     dl,byte [ebp]
        xor     esi,esi
  .pixloop:
        test    dl,1
        jz      .nopix
        call    [putpixel]
  .nopix:
        shr     dl,1
        inc     esi
        inc     eax
        cmp     esi,8
        jl      .pixloop
        sub     eax,8
        inc     ebx
        pop     esi
        inc     ebp
        dec     esi
        jnz     .symloop
        movzx   edx,byte [ebp-10]
        add     [esp+32-4],edx
        popad
        ret
---  font.inc () ----------------------------------------- >8 ---

---  font.inc () -------------------------------------- >8 ---

align 4
dtext:
        ; eax x & y
        ; ebx font ( 0xX0000000 ) & color ( 0x00RRGGBB )
        ; ecx start of text
        ; edx length
        ; edi 1 force

;ASCIIZ-string output - Johnny_B
        push    esi
        mov     esi,edx
        inc     esi
        test    esi,esi         ; if (esi = -1) asciiz-string
        jnz     @F              ; else standard string
        cld
        mov     esi,ecx
        push    eax
  .s_check:
        lodsb
        test    al, al
        jne     .s_check
        pop     eax
        sub     esi,ecx
    @@:
        dec     esi
        mov     edx,esi
        pop     esi
;END

        pushad

        mov     esi, edx
        and     esi, 0xff
        test    esi, esi        ; zero length ?
        jnz     @f
        popad
        ret
    @@:

        test    ebx,0x10000000
        jnz     .letnew2

   align 4
  .letnew:
        push    eax ecx edx
        movzx   ebx,ax
        shr     eax,16
        movzx   edx,byte [ecx]
        mov     ecx,[esp+3*4+32-16]
        call    drawletter
        pop     edx ecx eax

        add     eax,6*65536

        inc     ecx
        dec     edx
        jnz     .letnew

        popad
        ret


  .letnew2:
        push    ecx
        push    edx
        movzx   ebx,ax
        shr     eax,16
        movzx   edx,byte [ecx]
        mov     ecx,[esp+2*4+32-16]
        call    drawletter2
        shl     eax,16
        add     eax,ebx
        pop     edx
        pop     ecx

        inc     ecx
        dec     edx
        jnz     .letnew2

        popad
        ret

align 4
drawletter:
        ;eax - x
        ;ebx - y
        ;ecx - color
        ;edx - ascii code

        pushad
        call    [disable_mouse]
        mov     esi,9
        lea     ebp,[0x3F600+8*edx+edx]
  .symloop:
        push    esi
        mov     dl,byte [ebp]
        mov     esi,8
  .pixloop:
        test    dl,1
        jz      .nopix
        call    [putpixel]
  .nopix:
        shr     dl,1    
        inc     eax
        dec     esi
        jnz     .pixloop
        sub     eax,8
        inc     ebx
        inc     ebp
        pop     esi
        dec     esi
        jnz     .symloop
        popad
        ret

align 4
drawletter2:
        ;eax - x
        ;ebx - y
        ;ecx - color
        ;edx - symbol
        ;edi - force?
        ;result - eax=eax+sym_size

        pushad
        call    [disable_mouse]
        shl     edx,1
        mov     esi,9
        lea     ebp,[0x3EC00+4*edx+edx+1]
  .symloop:
        push    esi
        mov     dl,byte [ebp]
        xor     esi,esi
  .pixloop:
        test    dl,1
        jz      .nopix
        call    [putpixel]
  .nopix:
        shr     dl,1
        inc     esi
        inc     eax
        cmp     esi,8
        jl      .pixloop
        sub     eax,8
        inc     ebx
        pop     esi
        inc     ebp
        dec     esi
        jnz     .symloop
        movzx   edx,byte [ebp-10]
        add     [esp+32-4],edx
        popad
        ret

---  font.inc () --------------------------------------- >8 ---


==============================================================================
===    .   1 =========================
==============================================================================

: Hex


***  *****************************************************************

    !       
              UDP .
     ,      
  .       .

          ,   
             .
             Stack_ru.txt  (  STACK.TXT  
  ),       .  
              
/  .         
,         .


***   **************************************************************

          .     
  (),      -      ()    
.                
  ,     .     
UDP.
UDP  ( . User Datagram Protocol -   ) -
        TCP/IP.    TCP, UDP
        ,          
"Unreliable  Datagram  Protocol" (  ).   
            
 .


***   **********************************************************

      :
 0.  
 1.  
 2.  

    UDP  -        0  53.  
  :

        mov     eax,53                  ;  
        mov     ebx,0                   ;  UDP - 
        mov     ecx,0x1234              ;   ()
        mov     edx,0x4321              ;   ()
        mov     esi,dword [server_ip]   ; IP   
        int     0x40                    ;  -  

        mov     [socknum],eax           ;    socknum
                                        ;   
 
,               ( ,  
Stack_ru.txt),       .   ecx  
,           .  edx 
                  . 
  esi    ip  -  ,    .
   ,            ,      eax  
    .       -  ( 
   socknum),         
  / .   ,     
   -  -   eax   0xFFFFFFFF,
    ,     ,
      .   ,      
,          .       
 4  53. :

        mov     eax,53                  ;  
        mov     ebx,4                   ;    
        mov     ecx,[socknum]           ;  
        mov     edx,4                   ;  
        mov     esi,message             ;  
        int     0x40                    ;  -   

   ecx     ,   
    .  edx     (
          ).  ,
     message(      test ),
   esi.     -   eax 
0,   - 0xFFFFFFFF (    0xFFFF).
      1 - 53. :

        mov     eax,53                  ;  
        mov     ebx,1                   ;  
        mov     ecx,[socknum]           ;  
        int     0x40                    ;  -  

      ,     0,    
  0xFFFFFFFF.  ,      
(       ).
 ,    ,     ...


***   **********************************************************

 ,    :
 0.  
 1.      
 2.   ,   
 3.   
 4.  

        ,        ,      
. :
    
client_ip db 192,168,0,1                ; ip -  
    
    ...

        mov     eax, 53                 ;  
        mov     ebx, 0                  ;  UDP - 
        mov     ecx, 0x4321             ;   ()
        mov     edx, 0x1234             ;   ()
        mov     esi, dword [client_ip]  ; ip -   
        int     0x40                    ;  -  

        mov     [socknum],eax           ;    socknum
                                        ;   

,     UDP,   ip -  , 
          .    
            , ..   ecx
     ,   edx -   ( 
      ,   0xFFFF,    ).   
 .
              .  
  2.  :

        mov     eax,53                  ;  
        mov     ebx,2                   ;     
        mov     ecx,[socknum]           ;      
        int     0x40                    ;  -  
   
        cmp     eax,0                   ;  0?
        jne     data_arrived            ; ,    

    -      .   ,  
 eax     .  eax = 0,  
 .
   ,           .    
  :

get_data:                               ;   
   
        mov     eax,53                  ;  
        mov     ebx,3                   ;    
        mov     ecx,[socknum]           ;  
        int     0x40                    ;  -   
                                        ; 
   
        mov     [edi],bl                ;     
                                        ; edi
        inc     edi                     ;  (  1)
                                        ;  edi
   
        mov     eax,53                  ;  
        mov     ebx,2                   ;     
        mov     ecx,[socknum]           ;  
        int     0x40                    ;  -  
   
        cmp     eax,0                   ;  0?
        jne     get_data                ; ,   
                                        ;  

            3.  
           .  
  (eax  = 0),    .   
      ,           - 4,
       .    ,    
  ,         .


***  ***************************************************************

          .  
    ""      ,  
  ( ,  ).      
          (VMWare, Bochs, VirtualPC and etc.),
..            2- .  ,   
         (        
  /).      - ,   
    : http://www.meos.sysbin.com.    
          !


***  ***************************************************************

---  NetUDPClient.asm ------------------------------------------- >8 ---

use32           ;  32-  
org   0x0       ;   

  db 'MENUET01' ; 8-   /
  dd 0x01       ;  
  dd START      ;   
  dd I_END      ;  
  dd 0x5000     ;  
  dd 0x5000     ;   
  dd 0x0 , 0x0  ; I_Param , I_Icon

START:                 ;   

        mov     eax,53                  ;  
        mov     ebx,0                   ;  UDP - 
        mov     ecx,0x1234              ;   ()
        mov     edx,0x4321              ;   ()
        mov     esi,dword [server_ip]   ; IP   
        int     0x40                    ;  -  

        mov     [socknum],eax           ;    socknum
                                        ;   

        mov     eax,53                  ;  
        mov     ebx,4                   ;    
        mov     ecx,[socknum]           ;  
        mov     edx,4                   ;  
        mov     esi,message             ;  
        int     0x40                    ;  -   

        mov     eax, 53                 ;  
        mov     ebx, 1                  ;  
        mov     ecx, [socknum]          ;  
        int     0x40                    ;  -  

        mov     eax,-1                  ;   
        int     0x40            

; 

socknum dd 0x0

server_ip db 192,168,0,2                ; ip -  

message db 'test'                       ; ,   

I_END:

---  NetUDPClient.asm -------------------------------------------- >8 ---

---  NetUDPServer.asm ------------------------------------------- >8 ---
   
use32           ;  32-  
org   0x0       ;   
   
  db 'MENUET01' ; 8-   /
  dd 0x01       ;  
  dd START      ;   
  dd I_END      ;  
  dd 0x5000     ;  
  dd 0x5000     ;   
  dd 0x0 , 0x0  ; I_Param , I_Icon

client_ip db 192,168,0,1                ; ip -  
   
START:                                  ;   
   
        mov     eax, 53                 ;  
        mov     ebx, 0                  ;  UDP - 
        mov     ecx, 0x4321             ;   ()
        mov     edx, 0x1234             ;   ()
        mov     esi, dword [client_ip]  ; ip -   
        int     0x40                    ;  -  

        mov     [socknum],eax           ;    socknum
                                        ;   
        mov     [0],eax                 ;    
   
        call    draw_window             ;   
   
still:
   
        mov     eax,23                  ;  ...
        mov     ebx,1
        int     0x40
   
        cmp     eax,1                   ;   ?
        jz      red
        cmp     eax,2                   ;  ?
        jz      key
        cmp     eax,3                   ;     ?
        jz      button
   
        mov     eax,53                  ;  
        mov     ebx,2                   ;     
        mov     ecx,[socknum]           ;      
        int     0x40                    ;  -  
   
        cmp     eax,0                   ;  0?
        jne     data_arrived            ; ,    
   
        jmp     still
   
red:
        call    draw_window
        jmp     still
   
key:
        mov     eax,2
        int     0x40
        jmp     still
   
button:
        mov     eax,53                  ;  
        mov     ebx,1                   ;  
        mov     ecx,[socknum]           ;  
        int     0x40                    ;  -  

        mov     eax,-1
        int     0x40
   
   
data_arrived:
   
        mov  eax,5                      ;    ,  
                                        ;  
        mov  ebx,10
        int  0x40
   
        mov  edi,I_END
   
get_data:                               ;   
   
        mov     eax,53                  ;  
        mov     ebx,3                   ;    
        mov     ecx,[socknum]           ;  
        int     0x40                    ;  -   
                                        ; 
   
        mov     [edi],bl                ;     
                                        ; edi
        inc     edi                     ;  (  1)
                                        ;  edi
   
        mov     eax,53                  ;  
        mov     ebx,2                   ;     
        mov     ecx,[socknum]           ;  
        int     0x40                    ;  -  
   
        cmp     eax,0                   ;  0?
        jne     get_data                ; ,   
                                        ;  
        
   
        mov     eax,4                   ;  4:    
        mov     ebx,10*65536+60
        add     ebx,[y]                 ;    
                                        ;  
        mov     ecx,0x000000
        mov     edx,I_END               ;   
        mov     esi,10
        int     0x40

        add     [y],10

        jmp     still
   
draw_window:
   
        mov     eax,12                  ;  12:   
                                        ;   
        mov     ebx,1                   ;  1,  
        int     0x40
   
                                        ; 
        mov     eax,0                   ;  0:   
                                        ; 
        mov     ebx,100*65536+300       ; [x ] *65536 + [x ]
        mov     ecx,100*65536+330       ; [y ] *65536 + [y ]
        mov     edx,0x03ffffff          ;    RRGGBB
        mov     esi,0x80aabbcc          ;    RRGGBB
        mov     edi,0x00aabbcc          ;   RRGGBB
        int     0x40
   
                                        ; 
        mov     eax,8                   ;  8:   
                                        ; 
        mov     ebx,(286-19)*65536+12   ; [x ] *65536 + [x ]
        mov     ecx,4*65536+12          ; [y ] *65536 + [y ]
        mov     edx,1                   ;  
        mov     esi,0xaabbcc            ;   RRGGBB
        int     0x40
                                        ;   
        mov     eax,4                   ;  4:    
        mov     ebx,8*65536+8           ; [x ] *65536 + [y ]
        mov     ecx,0x00ffffff          ;   RRGGBB
        mov     edx,labeltext           ;    
        mov     esi,lte-labeltext       ;    
        int     0x40

                                        ;    
        cld
        mov     ebx,10*65536+30         ;  4:    
        mov     ecx,0x000000
        mov     edx,text
        mov     esi,40
  .newline:
        mov     eax,4
        int     0x40
        add     ebx,16
        add     edx,40
        cmp     [edx],byte 'x'
        jnz     .newline

        mov     eax,12                  ;  12:   
                                        ;   
        mov     ebx,2                   ;  2,  
        int     0x40

        ret


; DATA AREA

text:
  db 'Server IP  : 192.168.0.2       '
  db 'Local port : 0x4321            '
  db 'Data:                          '
  db 'x'; <- END MARKER, DONT DELETE
   
   
labeltext db 'NetUDPServer'
lte:
   
socknum   dd 0x0

y         dd 0x10

I_END:

---  NetUDPServer.asm -------------------------------------------- >8 ---


==============================================================================
===   .   Mario79 ====================================
==============================================================================

:  


   Mario79 (  -  ),     2005
     MenuetOS  -    ,      
.        (http://coolthemes.narod.ru) 
 #1 (/ 2005).

!         .  
    .

1.  -   , ?

   .    . 

2.    ?

,     ,    . :-)

3. Mario79 -  .   ?

     Super Mario,     Super Mario Brothers, 
    Super Mario Brothers.       
  .

4.     ,  , , ,  , , -
   ?

         .  ,  ,    -    
,      .       ,     
,     ,   4-  5- .   :
,         ,    .  
    ,    .

5.    ?

,        ( ). :-)
  .

6.    ?

.       .

7.    ?      ?

      -  ,      ,  -  7-8 
  .         -    
    ,     .

8.         ?        
     ?

      . !
      ,        !   
 ,      .

9.       ?       " 
   "?

      .  Win95osr2, Win98, Win98se, Win2K, Linux (Alt
Linux Junior), Menuet , ,  MS-DOS.

10.         (  ),
        MenuetOS?

           ,  .   
     ,    -    ,
    .      VB6,    
 ,  . :-)

11.           MenuetOS  ?   
      .

    -  ,       . :-)
      -       
      ,  .  , 
     .

         .     
    Fat16,       
,                    
.   ,    ,    .

      1  2.
         ,       
        .   ,   
  ,        
  ,        .  -   
      .
     .

   3.   ,  .  
,       3-    
,           .  ,  ,    
       ,  
 .    :  ICON (
              ),     Panel
(  ,   ,   
   CTRL+SHIFT),    CPU  (        
).                  
                 
  RD ( ).

12.     MenuetOS      ?

              CHIP,   .  
    2003  .           . 
     ,     ,    
    .

13.   MenuetOS  ?

, ,       ,  .
        ,    ,       
.         ,
        .        VRR!  
       .    
   . :-)

14.      ?

         13 . ,    13. Fallout -
foreva!

15.   MenuetOS  ?

    ,    :   ,    
   ,  ,    .

16.     MenuetOS - MenuetOS   ,  
     .      ?

-          -  .      
  ,        . 
  -  "  ",  ,     5-6
.             ,  
 .

17.        MenuetOS?

,        .     ,
     .

18.    /                
    .      ?

  ,            ( 
)  -  3       11      3  .  3
        ,     
. ,     3-4    .  12-16
  .    .

19.    ?

     .  3se. :-)

20.     - "  ,    "?

,     :   97,  , 
      ,      VRR      ,
        MP3  
  NVidia         .    ,
      .

21.      2004- ?      ?

     ,     ,  .   , 
          .    
!  ,          . 
    ,  ,      
.

22.       MenuetOS -     
    , ?

          ,     
.    ,     .

23.        MenuetOS?

 ,           , 
 ,   .

24.     ?

  .  ,     ,   
  .      ,         ,
                 
   . :-)

25. -      ?  
     ?

      !       
  .


==============================================================================
===  =================================================================
==============================================================================

 ,   :

Hex 
<mestack@yandex.ru> 
icq:191489175

mike.dld 
<mike.dld@gmail.com> 
icq:321860711

mistifi(ator 
<bendik@bk.ru>
icq:308718162

Lrz 
<tay-ugur@chel.surnet.ru>
icq:267994076

Victor 
<victor@kolibrios.org> 
icq:203760251

Johnny_B 
<john@kolibrios.org>

Wildwest
http://coolthemes.narod.ru


==============================================================================
===  ==============================================================
==============================================================================

                  .   
    ,            -  ,
       .         ,  
,      .
  ,        ,   -  
   ,        ,      -    
,        ,   - . 
      .
          , ,    .  
        ... :)

                                            16.08.2006 [KolibriOS`E-zine Team]
