Subversion Repositories Kolibri OS

Rev

Rev 3529 | Rev 6890 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. ;   à®á⮩ ¯à¨¬¥à ¯à®£à ¬¬ë ¤«ï KolibriOS
  2. ;   ®§¢ã稢 ¥â ª®¤ ­ ¦ â®© ª« ¢¨è¨
  3. ;
  4. ;   Š®¬¯¨«¨à®¢ âì FASM'®¬
  5. ;        Œ®¦­® ®âªàëâì example.asm ç¥à¥§ ¯à®£à ¬¬ã FASM (¥ñ ïà«ëª ¥áâì
  6. ;        ­  à ¡®ç¥¬ á⮫¥)
  7. ;        € ¬®¦­® ¯à®áâ® ­ ¦ âì F9 ¢ Tinypad'¥. ‹®£ ª®¬¯¨«ï樨
  8. ;        ®â®¡à ¦ ¥âáï ­  ¤®áª¥ ®â« ¤ª¨ (¯à®£à ¬¬  BOARD)
  9. ;
  10. ;   —â® ¢ ¦­® §­ âì ¯à¨ ¯à®£à ¬¬¨à®¢ ­¨¨ ¯®¤ Š®«¨¡à¨:
  11. ;        ®¬¥à ä㭪樨 ¯®¬¥é ¥âáï ¢ ॣ¨áâà eax.
  12. ;        ‚맮¢ á¨á⥬­®© ä㭪樨 ®áãé¥á⢫ï¥âáï ª®¬ ­¤®© "int 0x40".
  13. ;        ‚ᥠॣ¨áâàë, ªà®¬¥ ® 㪠§ ­­ëå ¢ ¢®§¢à é ¥¬®¬ §­ ç¥­¨¨,
  14. ;        ¢ª«îç ï ॣ¨áâà ä« £®¢ eflags, á®åà ­ïîâáï.
  15. ;
  16. ;    à¨¬¥à:
  17. ;        mov eax, 1    ;”ã­ªæ¨ï 1 - ¯®áâ ¢¨âì â®çªã ¢ ®ª­¥
  18. ;                      ;ᯨ᮪ á¨áä㭪権 á¬. ¢ DOCPACK - sysfuncr.txt
  19. ;        mov ebx, 10   ; ª®®à¤¨­ â  x=10
  20. ;        mov ecx, 20   ; ª®®à¤¨­ â  y=10
  21. ;        mov edx, 0xFFFfff ;梥â â®çª¨
  22. ;        int 0x40      ;¢ë§¢ âì äã­ªæ¨î
  23. ;
  24. ;    ’®¦¥ á ¬®¥ á ¨á¯®«ì§®¢ ­¨¥¬ ¬ ªà®á :
  25. ;        mcall 1, 10, 20, 0xFFFfff
  26. ;---------------------------------------------------------------------
  27.  
  28.   use32              ; ¢ª«îç¨âì 32-¡¨â­ë© ०¨¬  áᥬ¡«¥à 
  29.   org    0x0         ;  ¤à¥á æ¨ï á ­ã«ï
  30.  
  31.   db     'MENUET01'  ; 8-¡ ©â­ë© ¨¤¥­â¨ä¨ª â®à MenuetOS
  32.   dd     0x01        ; ¢¥àá¨ï § £®«®¢ª  (¢á¥£¤  1)
  33.   dd     START       ;  ¤à¥á ¯¥à¢®© ª®¬ ­¤ë
  34.   dd     I_END       ; à §¬¥à ¯à®£à ¬¬ë
  35.   dd     0x1000      ; ª®«¨ç¥á⢮ ¯ ¬ïâ¨
  36.   dd     0x1000      ;  ¤à¥á ¢¥à設ë áâíª 
  37.   dd     0x0         ;  ¤à¥á ¡ãä¥à  ¤«ï ¯ à ¬¥â஢
  38.   dd     0x0         ; § à¥§¥à¢¨à®¢ ­®
  39.  
  40. include "macros.inc" ; ¬ ªà®áë ®¡«¥£ç îâ ¦¨§­ì  áᥬ¡«¥à騪®¢!
  41.  
  42. ;---------------------------------------------------------------------
  43. ;---  €—€‹Ž Žƒ€ŒŒ›  ----------------------------------------------
  44. ;---------------------------------------------------------------------
  45.  
  46. START:
  47.  
  48. red:                    ; ¯¥à¥à¨á®¢ âì ®ª­®
  49.  
  50.     call draw_window    ; ¢ë§ë¢ ¥¬ ¯à®æ¥¤ãàã ®âà¨á®¢ª¨ ®ª­ 
  51.  
  52. ;---------------------------------------------------------------------
  53. ;---  –ˆŠ‹ Ž€Ž’Šˆ ‘Ž›’ˆ‰  ----------------------------------------
  54. ;---------------------------------------------------------------------
  55.  
  56. still:
  57.     mcall 10            ; äã­ªæ¨ï 10 - ¦¤ âì ᮡëâ¨ï
  58.  
  59.     cmp  eax,1          ; ¯¥à¥à¨á®¢ âì ®ª­® ?
  60.     je   red            ; ¥á«¨ ¤  - ­  ¬¥âªã red
  61.     cmp  eax,2          ; ­ ¦ â  ª« ¢¨è  ?
  62.     je   key            ; ¥á«¨ ¤  - ­  key
  63.     cmp  eax,3          ; ­ ¦ â  ª­®¯ª  ?
  64.     je   button         ; ¥á«¨ ¤  - ­  button
  65.  
  66.     jmp  still          ; ¥á«¨ ¤à㣮¥ ᮡë⨥ - ¢ ­ ç «® 横« 
  67.  
  68.  
  69. ;---------------------------------------------------------------------
  70.  
  71.  
  72.   key:                  ; ­ ¦ â  ª« ¢¨è  ­  ª« ¢¨ âãà¥
  73.     mcall 2             ; äã­ªæ¨ï 2 - áç¨â âì ª®¤ ᨬ¢®«  (¢ ah)
  74.  
  75.     mov  [Music+1], ah  ; § ¯¨á âì ª®¤ ᨬ¢®«  ª ª ª®¤ ­®âë
  76.  
  77.     ; äã­ªæ¨ï 55-55: á¨á⥬­ë© ¤¨­ ¬¨ª ("PlayNote")
  78.     ;   esi -  ¤à¥á ¬¥«®¤¨¨
  79.  
  80.     ;   mov  eax,55
  81.     ;   mov  ebx,eax
  82.     ;   mov  esi,Music
  83.     ;   int  0x40
  84.  
  85.     ; ¨«¨ ª®à®âª®:
  86.     mcall 55, eax, , , Music
  87.  
  88.     jmp  still          ; ¢¥à­ãâìáï ª ­ ç «ã 横« 
  89.  
  90. ;---------------------------------------------------------------------
  91.  
  92.   button:
  93.     mcall 17            ; 17 - ¯®«ãç¨âì ¨¤¥­â¨ä¨ª â®à ­ ¦ â®© ª­®¯ª¨
  94.  
  95.     cmp   ah, 1         ; ¥á«¨ … ­ ¦ â  ª­®¯ª  á ­®¬¥à®¬ 1,
  96.     jne   still         ;  ¢¥à­ãâìáï
  97.  
  98.   .exit:
  99.     mcall -1            ; ¨­ ç¥ ª®­¥æ ¯à®£à ¬¬ë
  100.  
  101.  
  102. ;---------------------------------------------------------------------
  103. ;---  Ž…„…‹…ˆ… ˆ Ž’ˆ‘Ž‚Š€ ŽŠ€  ----------------------------------
  104. ;---------------------------------------------------------------------
  105.  
  106. draw_window:
  107.  
  108.     mcall 12, 1       ; äã­ªæ¨ï 12: á®®¡é¨âì Ž‘ ® ­ ç «¥ ®âà¨á®¢ª¨
  109.        
  110.     mcall 48, 3, sc,sizeof.system_colors
  111.        
  112.     ; ¤ «¥¥: á­ ç «  ¤«¨­­ë© ¢ à¨ ­â (§ ª®¬¬¥­â¨à®¢ ­­ë©)
  113.     ; § â¥¬ ª®à®âª¨©  ­ «®£ á ¨á¯®«ì§®¢ ­¨¥¬ ¬ ªà®á®¢
  114.  
  115. ;   mov  eax,0                   ; äã­ªæ¨ï 0: ®¯à¥¤¥«¨âì ®ª­®
  116. ;   mov  ebx,200*65536+300       ; [x áâ àâ] *65536 + [x à §¬¥à]
  117. ;   mov  ecx,200*65536+150       ; [y áâ àâ] *65536 + [y à §¬¥à]
  118. ;   mov  edx, [sc.work]          ; 梥â ä®­ 
  119. ;   or   edx, 0x33000000         ; ¨ ⨯ ®ª­  3
  120. ;   mov  edi,header              ; ‡€ƒŽ‹Ž‚ŽŠ ŽŠ€
  121. ;   int  0x40
  122.  
  123.     mov   edx, [sc.work]         ; 梥â ä®­ 
  124.     or    edx, 0x33000000        ; ¨ ⨯ ®ª­  3
  125.     mcall 0, <200,300>, <200,150>, , ,title
  126.  
  127.     ; ¢ë¢®¤ ⥪á⮢®© áâப¨
  128.     mov   ecx, [sc.work_text]    ; 梥â ä®­ 
  129.     or    ecx, 0x90000000        ; ¨ ⨯ áâப¨
  130.     mcall 4, <10, 20>, 0x90000000, message
  131.  
  132.        
  133.     mcall 12, 2                  ; äã­ªæ¨ï 12.2, § ª®­ç¨«¨ à¨á®¢ âì
  134.  
  135.     ret                          ; ¢ë室¨¬ ¨§ ¯à®æ¥¤ãàë
  136.  
  137.  
  138. ;---------------------------------------------------------------------
  139. ;---  „€›… Žƒ€ŒŒ›  ----------------------------------------------
  140. ;---------------------------------------------------------------------
  141.  
  142. ; ‚®â â ª ï ¢®â ª®à®âª ï "¬¥«®¤¨ï".
  143. ; ‚â®à®© ¡ ©â ¨§¬¥­ï¥âáï ­ ¦ â¨¥¬ ª« ¢¨èë
  144.  
  145. Music:
  146.   db  0x90, 0x30, 0
  147.  
  148. sc system_colors
  149.  
  150. message db ' ¦¬¨â¥ «î¡ãî ª« ¢¨èã...',0
  151. title db 'à¨¬¥à ¯à®£à ¬¬ë',0
  152.  
  153. ;---------------------------------------------------------------------
  154.  
  155. I_END:                           ; ¬¥âª  ª®­æ  ¯à®£à ¬¬ë
  156.