Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Last modification | View Log | Download | RSS feed

  1. ;
  2. ;   Mad Mouse
  3. ;   €¢â®à í⮣® 㦠᭮ áâ६­®£® ª®¤ : Sourcerer, 23.04.2010
  4. ;   popovpa (29.05.2012)
  5. ;   1. ˆ§¬¥­¥­¨¥ «®£¨ª¨ à ¡®âë ¯à®£à ¬¬ë.
  6. ;   2. „®¡ ¢«¥­® "¯¥à¥áª ª¨¢ ­¨¥" ᢥàåã ¨ ­¨§ã :)
  7. ;   3. Ž¯â¨¬¨§ æ¨ï ª®¤ .
  8. ;
  9.  
  10. use32          ; âà ­á«ïâ®à, ¨á¯®«ì§ãî騩 32-å à §àï¤­ë¥ ª®¬ ­¤ë
  11. org   0x0 ; ¡ §®¢ë©  ¤à¥á ª®¤ , ¢á¥£¤  0x0
  12.  
  13.   db 'MENUET01'         ; 1. ¨¤¥­â¨ä¨ª â®à ¨á¯®«­ï¥¬®£® ä ©«  (8 ¡ ©â)
  14.   dd 0x01               ; 2. ¢¥àá¨ï ä®à¬ â  § £®«®¢ª  ¨á¯®«­ï¥¬®£® ä ©« 
  15.   dd START              ; 3.  ¤à¥á, ­  ª®â®àë© á¨á⥬  ¯¥à¥¤ ñâ ã¯à ¢«¥­¨¥
  16.                         ; ¯®á«¥ § £à㧪¨ ¯à¨«®¦¥­¨ï ¢ ¯ ¬ïâì
  17.   dd I_END              ; 4. à §¬¥à ¯à¨«®¦¥­¨ï
  18.   dd 0x100000           ; 5. ®¡êñ¬ ­¥®¡å®¤¨¬®© ¯à¨«®¦¥­¨î ¯ ¬ïâ¨
  19.                         ; ¬®¦­® ®¡à é âìáï ª ¯ ¬ï⨠¢ ¤¨ ¯ §®­¥ ®â 0x0
  20.                         ; ¤® §­ ç¥­¨ï, ®¯à¥¤¥«ñ­­®£® §¤¥áì
  21.   dd 0x100000           ; 6. ¢¥à設  á⥪  ¢ ¤¨ ¯ §®­¥ ¯ ¬ïâ¨, 㪠§ ­­®¬ ¢ëè¥
  22.   dd 0x0                ; 7. 㪠§ â¥«ì ­  áâபã á ¯ à ¬¥âà ¬¨.
  23.                         ; ¥á«¨ ¯®á«¥ § ¯ã᪠ ­¥à ¢­® ­ã«î, ¯à¨«®¦¥­¨¥ ¡ë«®
  24.                         ; § ¯ã饭® á ¯ à ¬¥âà ¬¨ ¨§ ª®¬ ­¤­®© áâப¨
  25.   dd 0x0                ; 8. 㪠§ â¥«ì ­  áâபã, ¢ ª®â®àãî § ¯¨á ­ ¯ãâì,
  26.                         ; ®âªã¤  § ¯ã饭® ¯à¨«®¦¥­¨¥
  27.  
  28.  
  29. ;---------------------------------------------------------------------
  30. ;---  €—€‹Ž Žƒ€ŒŒ›  ----------------------------------------------
  31. ;---------------------------------------------------------------------
  32.  
  33. START:                                          ; ¤à¥á ­ ç «  ¯à®£à ¬¬ë
  34.  
  35.         mov        eax,14                       ;äã­ªæ¨ï 14 - ¯®«ãç¨âì à §¬¥à íªà ­ 
  36.         int        0x40
  37.  
  38.         mov        ebx,eax
  39.         shl        ebx,16
  40.         shr        ebx,16
  41.         mov        edi,ebx                      ;á®åà ­¨¬ ã
  42.         shr        eax,16                       ;ᤢ¨£ ¥¬ eax ¢¯à ¢® ­  16 - ¯®«ãç ¥¬ x
  43.         mov        esi,eax                      ;á®åà ­¨¬ x
  44.  
  45. ;---------------------------------------------------------------------
  46. ;---  –ˆŠ‹ Ž€Ž’Šˆ ‘Ž›’ˆ‰  ----------------------------------------
  47. ;---------------------------------------------------------------------
  48.  
  49. still:
  50. ;®à£ ­¨§ã¥¬ ¯ ã§ã ¢ 100 ¬á
  51.         mov        eax,5                        ;äã­ªæ¨ï 5 - ¯ ã§ , ¢ ebx ¢à¥¬ï ¢ ¬á
  52.         mov        ebx,1                        ;§ ¤¥à¦ª  100 ¬á
  53.         int        0x40
  54. ;¯®«ãç ¥¬ ª®®à¤¨­ âë ªãàá®à 
  55.         mov        eax,37                       ;äã­ªæ¨ï 37 - à ¡®â  á ¬ëèìî
  56.         xor        ebx,ebx                      ;¯®¤äãªæ¨ï 0 - ª®®à¤¨­ âë ¬ëè¨
  57.                                                 ;®â­®á¨â¥«ì­® íªà ­ 
  58.         int        0x40
  59.  
  60.         mov        ebx,eax                      ;§ ¯®¬¨­ ¥¬ ª®®à¤¨­ âë
  61.         shr        eax,16                       ;⥯¥àì ã ­ á ⮫쪮 x. ­ã¦¥­ ¨ y
  62.         mov        ecx,eax                      ;§ ¯®¬¨­ ¥¬ x
  63.         shl        ebx,16                       ;ᤢ¨­¥¬ ¢«¥® ­  16
  64.         shr        ebx,16                       ;ᤢ¨­¥¬¢ ¯à ¢® ­  16, ã ­ á ¥áâì ã
  65.  
  66. ;------------------------------------------------------------------------------
  67. ;¢ esi ¨ edi ª®®à¤¨­ âë à §¬¥à  íªà ­  X ¨ Y ᮮ⢥âᢥ­­®
  68. ;¢ ecx ¨ ebx ª®®à¤¨­ âë ªãàá®à  X ¨ Y ᮮ⢥⢥­­®
  69. ;------------------------------------------------------------------------------
  70.  
  71. ;áà ¢­¥­¨¥ ª®®à¤¨­ â x
  72.         test       ecx,ecx                      ;à ¢­  0?
  73.         jz         left_border                  ;¯¥à¥å®¤ ª ®¡à ¡®âª¥ ã «¥¢®£® ªà ï
  74.  
  75.         cmp        ecx,esi                      ;à ¢­  è¨à¨­¥ íªà ­ ?
  76.         jz         right_border                 ;¯¥à¥å®¤¨¬ ª ®¡à ¡®âª¥ 㠯ࠢ®£® ªà ï
  77. ;áà ¢­¥­¨¥ ª®®à¤¨­ â y
  78.         test       ebx,ebx                      ;à ¢­  0?
  79.         jz         top_border                   ;¥á«¨ ¤  §­ ç¨â ªãàá®à ¢¢¥àåã
  80.  
  81.         cmp        ebx,edi                      ;à ¢­  ¢ëá®â¥ íªà ­ ?
  82.         jz         bottom_border                ;¯¥à¥å®¤ ª ®¡à ¡®âª¥ ã ­¨¦­¥£® ªà ï
  83.  
  84.         jmp        still                        ;¨­ ç¥ ­¨ç¥£® ¤¥« âì ­¥ ­ã¦­®
  85.  
  86. left_border:
  87.         mov        edx,esi                      ;¢ edx ¨¬¥¥¬ è¨à¨­ã íªà ­ 
  88.         dec        edx                          ;㬥­ì訬 ­  1
  89.         shl        edx,16                       ;⥯¥àì edx=(x-1)*65536
  90.         add        edx,ebx                      ;  ⥯¥àì edx=(x-1)*65536+y
  91.  
  92.         mov        eax,18                       ;äã­ªæ¨ï 18: ãáâ ­®¢¨âì ­ áâனª¨ ¬ëè¨
  93.         mov        ebx,19                       ;¯®¤äã­ªæ¨ï 19
  94.         mov        ecx,4                        ;¯®¤¯®¤äã­ªæ¨ï 4: ãáâ ­®¢¨âì ¯®«®¦¥­¨¥
  95.                                                 ;ªãàá®à 
  96.         int        0x40
  97. jmp still                                       ;®â¤ëå ¥¬
  98.  
  99. right_border:                                   ;ªãàá®à 㠯ࠢ®£® ªà ï
  100.  
  101.         xor        edx,edx
  102.         inc        edx                          ;edx=1
  103.         shl        edx,16                       ;edx = 1*65536
  104.         add        edx,ebx                      ;edx=1*65536+y
  105.  
  106.         mov        eax,18                       ;äã­ªæ¨ï 18: ãáâ ­®¢¨âì ­ áâனª¨ ¬ëè¨
  107.         mov        ebx,19                       ;¯®¤äã­ªæ¨ï 19
  108.         mov        ecx,4                        ;¯®¤¯®¤äã­ªæ¨ï 4: ãáâ ­®¢¨âì ¯®«®¦¥­¨¥
  109.                                                 ;ªãàá®à 
  110.         int        0x40
  111. jmp still                                       ;®â¤ëå ¥¬
  112.  
  113. top_border:                                     ;ªãàá®à ã ¢¥àå­¥£® ªà ï
  114.  
  115.         mov        edx,ecx                      ;• ª®®à¤¨­ â  ªãàá®à 
  116.         shl        edx,16                       ;⥯¥àì edx=(x)*65536
  117.         add        edx,edi                      ;  ⥯¥àì edx=(x)*65536+y
  118.         dec        edx                          ;  ⥯¥àì edx=(x)*65536+(ã-1)
  119.  
  120.         mov        eax,18                       ;äã­ªæ¨ï 18: ãáâ ­®¢¨âì ­ áâனª¨ ¬ëè¨
  121.         mov        ebx,19                       ;¯®¤äã­ªæ¨ï 19
  122.         mov        ecx,4                        ;¯®¤¯®¤äã­ªæ¨ï 4: ãáâ ­®¢¨âì ¯®«®¦¥­¨¥
  123.                                                 ;ªãàá®à 
  124.         int        0x40
  125. jmp still                                       ;¨ ®â¤ëå ¥¬
  126.  
  127. bottom_border:                                  ;ªãàá®à ã ­¨¦­¥£® ªà ï
  128.  
  129.         mov        edx,ecx                      ;edx=ecx x ª®®à¤¨­ â  ªãàá®à 
  130.         shl        edx,16                       ;edx = å*65536
  131.                                                 ;ã ª®®à¤¨­ â  à ¢­  0
  132.         mov        eax,18                       ;äã­ªæ¨ï 18: ãáâ ­®¢¨âì ­ áâனª¨ ¬ëè¨
  133.         mov        ebx,19                       ;¯®¤äã­ªæ¨ï 19
  134.         mov        ecx,4                        ;¯®¤¯®¤äã­ªæ¨ï 4: ãáâ ­®¢¨âì ¯®«®¦¥­¨¥
  135.                                                 ;ªãàá®à 
  136.         int        0x40
  137. jmp still                                       ;¨ ®â¤ëå ¥¬
  138.  
  139.  
  140. I_END:                                          ; ¬¥âª  ª®­æ  ¯à®£à ¬¬ë