Subversion Repositories Kolibri OS

Rev

Rev 317 | Rev 3527 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 317 Rev 485
1
;
1
;
2
;   à¨¬¥à ¯à®£à ¬¬ë ¤«ï MenuetOS
2
;   à¨¬¥à ¯à®£à ¬¬ë ¤«ï MenuetOS
3
;   ®§¢ã稢 ¥â ª®¤ ­ ¦ â®© ª« ¢¨è¨ ;)
3
;   ®§¢ã稢 ¥â ª®¤ ­ ¦ â®© ª« ¢¨è¨ ;)
4
;
4
;
5
;   Š®¬¯¨«¨à®¢ âì FASM'®¬
5
;   Š®¬¯¨«¨à®¢ âì FASM'®¬
6
;
6
;
7
;   ‘¬. â ª¦¥:
7
;   ‘¬. â ª¦¥:
8
;     template.asm  -  ¯à¨¬¥à ¯à®á⥩襩 ¯à®£à ¬¬ë (­®¢ë©!)
8
;     template.asm  -  ¯à¨¬¥à ¯à®á⥩襩 ¯à®£à ¬¬ë (­®¢ë©!)
9
;     rb.asm        -  ª®­â¥ªáâ­®¥ ¬¥­î à ¡®ç¥£® á⮫ 
9
;     rb.asm        -  ª®­â¥ªáâ­®¥ ¬¥­î à ¡®ç¥£® á⮫ 
10
;     example2.asm  -  ¯à¨¬¥à ¬¥­î ¨ ¤®¯®«­¨â¥«ì­ëå ®ª®­
10
;     example2.asm  -  ¯à¨¬¥à ¬¥­î ¨ ¤®¯®«­¨â¥«ì­ëå ®ª®­
11
;     example3.asm  -  ¯à¨¬¥à ¬¥­î, ॠ«¨§®¢ ­­®£® ¯®-¤à㣮¬ã
11
;     example3.asm  -  ¯à¨¬¥à ¬¥­î, ॠ«¨§®¢ ­­®£® ¯®-¤à㣮¬ã
12
;---------------------------------------------------------------------
12
;---------------------------------------------------------------------
13
 
13
 
14
  use32              ; ¢ª«îç¨âì 32-¡¨â­ë© ०¨¬  áᥬ¡«¥à 
14
  use32              ; ¢ª«îç¨âì 32-¡¨â­ë© ०¨¬  áᥬ¡«¥à 
15
  org    0x0         ;  ¤à¥á æ¨ï á ­ã«ï
15
  org    0x0         ;  ¤à¥á æ¨ï á ­ã«ï
16
 
16
 
17
  db     'MENUET01'  ; 8-¡ ©â­ë© ¨¤¥­â¨ä¨ª â®à MenuetOS
17
  db     'MENUET01'  ; 8-¡ ©â­ë© ¨¤¥­â¨ä¨ª â®à MenuetOS
18
  dd     0x01        ; ¢¥àá¨ï § £®«®¢ª  (¢á¥£¤  1)
18
  dd     0x01        ; ¢¥àá¨ï § £®«®¢ª  (¢á¥£¤  1)
19
  dd     START       ;  ¤à¥á ¯¥à¢®© ª®¬ ­¤ë
19
  dd     START       ;  ¤à¥á ¯¥à¢®© ª®¬ ­¤ë
20
  dd     I_END       ; à §¬¥à ¯à®£à ¬¬ë
20
  dd     I_END       ; à §¬¥à ¯à®£à ¬¬ë
21
  dd     0x1000      ; ª®«¨ç¥á⢮ ¯ ¬ïâ¨
21
  dd     0x1000      ; ª®«¨ç¥á⢮ ¯ ¬ïâ¨
22
  dd     0x1000      ;  ¤à¥á ¢¥à設ë áâíª 
22
  dd     0x1000      ;  ¤à¥á ¢¥à設ë áâíª 
23
  dd     0x0         ;  ¤à¥á ¡ãä¥à  ¤«ï ¯ à ¬¥â஢ (­¥ ¨á¯®«ì§ã¥âáï)
23
  dd     0x0         ;  ¤à¥á ¡ãä¥à  ¤«ï ¯ à ¬¥â஢ (­¥ ¨á¯®«ì§ã¥âáï)
24
  dd     0x0         ; § à¥§¥à¢¨à®¢ ­®
24
  dd     0x0         ; § à¥§¥à¢¨à®¢ ­®
25
 
25
 
26
include 'lang.inc'
26
include 'lang.inc'
27
include 'macros.inc' ; ¬ ªà®áë ®¡«¥£ç îâ ¦¨§­ì  áᥬ¡«¥à騪®¢!
27
include '..\..\..\..\macros.inc' ; ¬ ªà®áë ®¡«¥£ç îâ ¦¨§­ì  áᥬ¡«¥à騪®¢!
28
 
28
 
29
;---------------------------------------------------------------------
29
;---------------------------------------------------------------------
30
;---  €—€‹Ž Žƒ€ŒŒ›  ----------------------------------------------
30
;---  €—€‹Ž Žƒ€ŒŒ›  ----------------------------------------------
31
;---------------------------------------------------------------------
31
;---------------------------------------------------------------------
32
 
32
 
33
START:
33
START:
34
 
34
 
35
red:                    ; ¯¥à¥à¨á®¢ âì ®ª­®
35
red:                    ; ¯¥à¥à¨á®¢ âì ®ª­®
36
 
36
 
37
    call draw_window    ; ¢ë§ë¢ ¥¬ ¯à®æ¥¤ãàã ®âà¨á®¢ª¨ ®ª­ 
37
    call draw_window    ; ¢ë§ë¢ ¥¬ ¯à®æ¥¤ãàã ®âà¨á®¢ª¨ ®ª­ 
38
 
38
 
39
;---------------------------------------------------------------------
39
;---------------------------------------------------------------------
40
;---  –ˆŠ‹ Ž€Ž’Šˆ ‘Ž›’ˆ‰  ----------------------------------------
40
;---  –ˆŠ‹ Ž€Ž’Šˆ ‘Ž›’ˆ‰  ----------------------------------------
41
;---------------------------------------------------------------------
41
;---------------------------------------------------------------------
42
 
42
 
43
still:
43
still:
44
    mcall 10            ; äã­ªæ¨ï 10 - ¦¤ âì ᮡëâ¨ï
44
    mcall 10            ; äã­ªæ¨ï 10 - ¦¤ âì ᮡëâ¨ï
45
 
45
 
46
    cmp  eax,1          ; ¯¥à¥à¨á®¢ âì ®ª­® ?
46
    cmp  eax,1          ; ¯¥à¥à¨á®¢ âì ®ª­® ?
47
    je   red            ; ¥á«¨ ¤  - ­  ¬¥âªã red
47
    je   red            ; ¥á«¨ ¤  - ­  ¬¥âªã red
48
    cmp  eax,2          ; ­ ¦ â  ª« ¢¨è  ?
48
    cmp  eax,2          ; ­ ¦ â  ª« ¢¨è  ?
49
    je   key            ; ¥á«¨ ¤  - ­  key
49
    je   key            ; ¥á«¨ ¤  - ­  key
50
    cmp  eax,3          ; ­ ¦ â  ª­®¯ª  ?
50
    cmp  eax,3          ; ­ ¦ â  ª­®¯ª  ?
51
    je   button         ; ¥á«¨ ¤  - ­  button
51
    je   button         ; ¥á«¨ ¤  - ­  button
52
 
52
 
53
    jmp  still          ; ¥á«¨ ¤à㣮¥ ᮡë⨥ - ¢ ­ ç «® 横« 
53
    jmp  still          ; ¥á«¨ ¤à㣮¥ ᮡë⨥ - ¢ ­ ç «® 横« 
54
 
54
 
55
 
55
 
56
;---------------------------------------------------------------------
56
;---------------------------------------------------------------------
57
 
57
 
58
 
58
 
59
  key:                  ; ­ ¦ â  ª« ¢¨è  ­  ª« ¢¨ âãà¥
59
  key:                  ; ­ ¦ â  ª« ¢¨è  ­  ª« ¢¨ âãà¥
60
    mcall 2             ; äã­ªæ¨ï 2 - áç¨â âì ª®¤ ᨬ¢®«  (¢ ah)
60
    mcall 2             ; äã­ªæ¨ï 2 - áç¨â âì ª®¤ ᨬ¢®«  (¢ ah)
61
 
61
 
62
    mov  [Music+1], ah  ; § ¯¨á âì ª®¤ ᨬ¢®«  ª ª ª®¤ ­®âë
62
    mov  [Music+1], ah  ; § ¯¨á âì ª®¤ ᨬ¢®«  ª ª ª®¤ ­®âë
63
 
63
 
64
    ; äã­ªæ¨ï 55-55: á¨á⥬­ë© ¤¨­ ¬¨ª ("PlayNote")
64
    ; äã­ªæ¨ï 55-55: á¨á⥬­ë© ¤¨­ ¬¨ª ("PlayNote")
65
    ;   esi -  ¤à¥á ¬¥«®¤¨¨
65
    ;   esi -  ¤à¥á ¬¥«®¤¨¨
66
 
66
 
67
    ;   mov  eax,55
67
    ;   mov  eax,55
68
    ;   mov  ebx,eax
68
    ;   mov  ebx,eax
69
    ;   mov  esi,Music
69
    ;   mov  esi,Music
70
    ;   int  0x40
70
    ;   int  0x40
71
 
71
 
72
    ; ¨«¨ ª®à®âª®:
72
    ; ¨«¨ ª®à®âª®:
73
    mcall 55, eax, , , Music
73
    mcall 55, eax, , , Music
74
 
74
 
75
    jmp  still          ; ¢¥à­ãâìáï ª ­ ç «ã 横« 
75
    jmp  still          ; ¢¥à­ãâìáï ª ­ ç «ã 横« 
76
 
76
 
77
;---------------------------------------------------------------------
77
;---------------------------------------------------------------------
78
 
78
 
79
  button:
79
  button:
80
    mcall 17            ; 17 - ¯®«ãç¨âì ¨¤¥­â¨ä¨ª â®à ­ ¦ â®© ª­®¯ª¨
80
    mcall 17            ; 17 - ¯®«ãç¨âì ¨¤¥­â¨ä¨ª â®à ­ ¦ â®© ª­®¯ª¨
81
 
81
 
82
    cmp   ah, 1         ; ¥á«¨ … ­ ¦ â  ª­®¯ª  á ­®¬¥à®¬ 1,
82
    cmp   ah, 1         ; ¥á«¨ … ­ ¦ â  ª­®¯ª  á ­®¬¥à®¬ 1,
83
    jne   still         ;  ¢¥à­ãâìáï
83
    jne   still         ;  ¢¥à­ãâìáï
84
 
84
 
85
  .exit:
85
  .exit:
86
    mcall -1            ; ¨­ ç¥ ª®­¥æ ¯à®£à ¬¬ë
86
    mcall -1            ; ¨­ ç¥ ª®­¥æ ¯à®£à ¬¬ë
87
 
87
 
88
 
88
 
89
 
89
 
90
;---------------------------------------------------------------------
90
;---------------------------------------------------------------------
91
;---  Ž…„…‹…ˆ… ˆ Ž’ˆ‘Ž‚Š€ ŽŠ€  ----------------------------------
91
;---  Ž…„…‹…ˆ… ˆ Ž’ˆ‘Ž‚Š€ ŽŠ€  ----------------------------------
92
;---------------------------------------------------------------------
92
;---------------------------------------------------------------------
93
 
93
 
94
draw_window:
94
draw_window:
95
 
95
 
96
    mcall 12, 1                    ; äã­ªæ¨ï 12: á®®¡é¨âì Ž‘ ®¡ ®âà¨á®¢ª¥ ®ª­ 
96
    mcall 12, 1                    ; äã­ªæ¨ï 12: á®®¡é¨âì Ž‘ ®¡ ®âà¨á®¢ª¥ ®ª­ 
97
                                   ; 1 - ­ ç¨­ ¥¬ à¨á®¢ âì
97
                                   ; 1 - ­ ç¨­ ¥¬ à¨á®¢ âì
98
 
98
 
99
    ; ¤ «¥¥: á­ ç «  ¤«¨­­ë© ¢ à¨ ­â (§ ª®¬¬¥­â¨à®¢ ­­ë©)
99
    ; ¤ «¥¥: á­ ç «  ¤«¨­­ë© ¢ à¨ ­â (§ ª®¬¬¥­â¨à®¢ ­­ë©)
100
    ;        § â¥¬ ª®à®âª¨©  ­ «®£ á ¨á¯®«ì§®¢ ­¨¥¬ ¬ ªà®á®¢
100
    ;        § â¥¬ ª®à®âª¨©  ­ «®£ á ¨á¯®«ì§®¢ ­¨¥¬ ¬ ªà®á®¢
101
 
101
 
102
 
102
 
103
                                   ; ‘Ž‡„€ðŒ ŽŠŽ
103
                                   ; ‘Ž‡„€ðŒ ŽŠŽ
104
;   mov  eax,0                     ; äã­ªæ¨ï 0 : ®¯à¥¤¥«¨âì ¨ ®âà¨á®¢ âì ®ª­®
104
;   mov  eax,0                     ; äã­ªæ¨ï 0 : ®¯à¥¤¥«¨âì ¨ ®âà¨á®¢ âì ®ª­®
105
;   mov  ebx,200*65536+200         ; [x áâ àâ] *65536 + [x à §¬¥à]
105
;   mov  ebx,200*65536+200         ; [x áâ àâ] *65536 + [x à §¬¥à]
106
;   mov  ecx,200*65536+50          ; [y áâ àâ] *65536 + [y à §¬¥à]
106
;   mov  ecx,200*65536+50          ; [y áâ àâ] *65536 + [y à §¬¥à]
107
;   mov  edx,0x33aabbcc            ; 梥â à ¡®ç¥© ®¡« á⨠ RRGGBB,8->color gl
107
;   mov  edx,0x33aabbcc            ; 梥â à ¡®ç¥© ®¡« á⨠ RRGGBB,8->color gl
108
;   mov  edi,header                ; ‡€ƒŽ‹Ž‚ŽŠ ŽŠ€
108
;   mov  edi,header                ; ‡€ƒŽ‹Ž‚ŽŠ ŽŠ€
109
;   int  0x40
109
;   int  0x40
110
 
110
 
111
    mcall 0, <200,200>, <200,50>, 0x33AABBCC,,header
111
    mcall 0, <200,200>, <200,50>, 0x33AABBCC,,title
112
 
112
 
113
                                   
113
                                   
114
 
114
 
115
;   mov  eax,4
115
;   mov  eax,4
116
;   mov  ebx,3 shl 16 + 8
116
;   mov  ebx,3 shl 16 + 8
117
;   mov  ecx,0
117
;   mov  ecx,0
118
;   mov  edx,message
118
;   mov  edx,message
119
;   mov  esi,message.size
119
;   mov  esi,message.size
120
;   int  0x40
120
;   int  0x40
121
 
121
 
122
    mcall 4, <3, 8>, 0, message, message.size
122
    mcall 4, <3, 8>, 0, message, message.size
123
 
123
 
124
    mcall 12, 2                    ; äã­ªæ¨ï 12: á®®¡é¨âì Ž‘ ®¡ ®âà¨á®¢ª¥ ®ª­ 
124
    mcall 12, 2                    ; äã­ªæ¨ï 12: á®®¡é¨âì Ž‘ ®¡ ®âà¨á®¢ª¥ ®ª­ 
125
                                   ; 2, § ª®­ç¨«¨ à¨á®¢ âì
125
                                   ; 2, § ª®­ç¨«¨ à¨á®¢ âì
126
 
126
 
127
    ret                            ; ¢ë室¨¬ ¨§ ¯à®æ¥¤ãàë
127
    ret                            ; ¢ë室¨¬ ¨§ ¯à®æ¥¤ãàë
128
 
128
 
129
 
129
 
130
;---------------------------------------------------------------------
130
;---------------------------------------------------------------------
131
;---  „€›… Žƒ€ŒŒ›  ----------------------------------------------
131
;---  „€›… Žƒ€ŒŒ›  ----------------------------------------------
132
;---------------------------------------------------------------------
132
;---------------------------------------------------------------------
133
 
133
 
134
; ‚®â â ª ï ¢®â ª®à®âª ï "¬¥«®¤¨ï".
134
; ‚®â â ª ï ¢®â ª®à®âª ï "¬¥«®¤¨ï".
135
; ‚â®à®© ¡ ©â ¨§¬¥­ï¥âáï ­ ¦ â¨¥¬ ª« ¢¨èë
135
; ‚â®à®© ¡ ©â ¨§¬¥­ï¥âáï ­ ¦ â¨¥¬ ª« ¢¨èë
136
 
136
 
137
Music:
137
Music:
138
  db  0x90, 0x30, 0
138
  db  0x90, 0x30, 0
139
 
139
 
140
 
140
 
141
;---------------------------------------------------------------------
141
;---------------------------------------------------------------------
142
 
142
 
143
; ¨­â¥àä¥©á ¯à®£à ¬¬ë ¬­®£®ï§ëç­ë©
143
; ¨­â¥àä¥©á ¯à®£à ¬¬ë ¬­®£®ï§ëç­ë©
144
;  ‚ë ¬®¦¥â¥ § ¤ âì ï§ëª ¢ MACROS.INC (lang fix ï§ëª)
144
;  ‚ë ¬®¦¥â¥ § ¤ âì ï§ëª ¢ MACROS.INC (lang fix ï§ëª)
145
 
145
 
146
lsz message,\
146
lsz message,\
147
  ru,' ¦¬¨â¥ «î¡ãî ª« ¢¨èã...',\
147
  ru,' ¦¬¨â¥ «î¡ãî ª« ¢¨èã...',\
148
  en,'Press any key...',\
148
  en,'Press any key...',\
149
  fr,'Pressez une touche...'
149
  fr,'Pressez une touche...'
150
 
150
 
151
lsz header,\
151
lsz title,\
152
  ru,'ˆŒ… Žƒ€ŒŒ›',\
152
  ru,'ˆŒ… Žƒ€ŒŒ›',\
153
  en,'EXAMPLE APPLICATION',\
153
  en,'EXAMPLE APPLICATION',\
154
  fr,"L'exemplaire programme"
154
  fr,"L'exemplaire programme"
155
 
155
 
156
;---------------------------------------------------------------------
156
;---------------------------------------------------------------------
157
 
157
 
158
I_END:                             ; ¬¥âª  ª®­æ  ¯à®£à ¬¬ë
158
I_END:                             ; ¬¥âª  ª®­æ  ¯à®£à ¬¬ë