Subversion Repositories Kolibri OS

Rev

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

Rev 7646 Rev 7648
1
;   à®á⮩ ¯à¨¬¥à ¯à®£à ¬¬ë ¤«ï KolibriOS
1
;   à®á⮩ ¯à¨¬¥à ¯à®£à ¬¬ë ¤«ï KolibriOS
2
;   ®§¢ã稢 ¥â ª®¤ ­ ¦ â®© ª« ¢¨è¨
2
;   ®§¢ã稢 ¥â ª®¤ ­ ¦ â®© ª« ¢¨è¨
3
;
3
;
4
;   Š®¬¯¨«¨à®¢ âì FASM'®¬
4
;   Š®¬¯¨«¨à®¢ âì FASM'®¬
5
;        Œ®¦­® ®âªàëâì example.asm ç¥à¥§ ¯à®£à ¬¬ã FASM (¥ñ ïà«ëª ¥áâì
5
;        Œ®¦­® ®âªàëâì example.asm ç¥à¥§ ¯à®£à ¬¬ã FASM (¥ñ ïà«ëª ¥áâì
6
;        ­  à ¡®ç¥¬ á⮫¥)
6
;        ­  à ¡®ç¥¬ á⮫¥)
7
;        € ¬®¦­® ¯à®áâ® ­ ¦ âì F9 ¢ Tinypad'¥. ‹®£ ª®¬¯¨«ï樨
7
;        € ¬®¦­® ¯à®áâ® ­ ¦ âì F9 ¢ Tinypad'¥. ‹®£ ª®¬¯¨«ï樨
8
;        ®â®¡à ¦ ¥âáï ­  ¤®áª¥ ®â« ¤ª¨ (¯à®£à ¬¬  BOARD)
8
;        ®â®¡à ¦ ¥âáï ­  ¤®áª¥ ®â« ¤ª¨ (¯à®£à ¬¬  BOARD)
9
;
9
;
10
;   —â® ¢ ¦­® §­ âì ¯à¨ ¯à®£à ¬¬¨à®¢ ­¨¨ ¯®¤ Š®«¨¡à¨:
10
;   —â® ¢ ¦­® §­ âì ¯à¨ ¯à®£à ¬¬¨à®¢ ­¨¨ ¯®¤ Š®«¨¡à¨:
11
;        ®¬¥à ä㭪樨 ¯®¬¥é ¥âáï ¢ ॣ¨áâà eax.
11
;        ®¬¥à ä㭪樨 ¯®¬¥é ¥âáï ¢ ॣ¨áâà eax.
12
;        ‚맮¢ á¨á⥬­®© ä㭪樨 ®áãé¥á⢫ï¥âáï ª®¬ ­¤®© "int 0x40".
12
;        ‚맮¢ á¨á⥬­®© ä㭪樨 ®áãé¥á⢫ï¥âáï ª®¬ ­¤®© "int 0x40".
13
;        ‚ᥠॣ¨áâàë, ªà®¬¥ ® 㪠§ ­­ëå ¢ ¢®§¢à é ¥¬®¬ §­ ç¥­¨¨,
13
;        ‚ᥠॣ¨áâàë, ªà®¬¥ ® 㪠§ ­­ëå ¢ ¢®§¢à é ¥¬®¬ §­ ç¥­¨¨,
14
;        ¢ª«îç ï ॣ¨áâà ä« £®¢ eflags, á®åà ­ïîâáï.
14
;        ¢ª«îç ï ॣ¨áâà ä« £®¢ eflags, á®åà ­ïîâáï.
15
;
15
;
16
;    à¨¬¥à:
16
;    à¨¬¥à:
17
;        mov eax, 1    ;”ã­ªæ¨ï 1 - ¯®áâ ¢¨âì â®çªã ¢ ®ª­¥
17
;        mov eax, 1    ;”ã­ªæ¨ï 1 - ¯®áâ ¢¨âì â®çªã ¢ ®ª­¥
18
;                      ;ᯨ᮪ á¨áä㭪権 á¬. ¢ DOCPACK - sysfuncr.txt
18
;                      ;ᯨ᮪ á¨áä㭪権 á¬. ¢ DOCPACK - sysfuncr.txt
19
;        mov ebx, 10   ; ª®®à¤¨­ â  x=10
19
;        mov ebx, 10   ; ª®®à¤¨­ â  x=10
20
;        mov ecx, 20   ; ª®®à¤¨­ â  y=10
20
;        mov ecx, 20   ; ª®®à¤¨­ â  y=10
21
;        mov edx, 0xFFFfff ;梥â â®çª¨
21
;        mov edx, 0xFFFfff ;梥â â®çª¨
22
;        int 0x40      ;¢ë§¢ âì äã­ªæ¨î
22
;        int 0x40      ;¢ë§¢ âì äã­ªæ¨î
23
;
23
;
24
;    ’®¦¥ á ¬®¥ á ¨á¯®«ì§®¢ ­¨¥¬ ¬ ªà®á :
24
;    ’®¦¥ á ¬®¥ á ¨á¯®«ì§®¢ ­¨¥¬ ¬ ªà®á :
25
;        mcall 1, 10, 20, 0xFFFfff
25
;        mcall 1, 10, 20, 0xFFFfff
26
;---------------------------------------------------------------------
26
;---------------------------------------------------------------------
27
 
27
 
28
  use32 	     ; ¢ª«îç¨âì 32-¡¨â­ë© ०¨¬  áᥬ¡«¥à 
28
  use32 	     ; ¢ª«îç¨âì 32-¡¨â­ë© ०¨¬  áᥬ¡«¥à 
29
  org	 0	     ;  ¤à¥á æ¨ï á ­ã«ï
29
  org	 0	     ;  ¤à¥á æ¨ï á ­ã«ï
30
 
30
 
31
  db	 'MENUET01'  ; 8-¡ ©â­ë© ¨¤¥­â¨ä¨ª â®à MenuetOS
31
  db	 'MENUET01'  ; 8-¡ ©â­ë© ¨¤¥­â¨ä¨ª â®à MenuetOS
32
  dd	 1	     ; ¢¥àá¨ï § £®«®¢ª  (¢á¥£¤  1)
32
  dd	 1	     ; ¢¥àá¨ï § £®«®¢ª  (¢á¥£¤  1)
33
  dd	 START	     ;  ¤à¥á ¯¥à¢®© ª®¬ ­¤ë
33
  dd	 START	     ;  ¤à¥á ¯¥à¢®© ª®¬ ­¤ë
34
  dd	 I_END	     ; à §¬¥à ¯à®£à ¬¬ë
34
  dd	 I_END	     ; à §¬¥à ¯à®£à ¬¬ë
35
  dd	 MEM	     ; ª®«¨ç¥á⢮ ¯ ¬ïâ¨
35
  dd	 MEM	     ; ª®«¨ç¥á⢮ ¯ ¬ïâ¨
36
  dd	 STACKTOP    ;  ¤à¥á ¢¥à設ë áâíª 
36
  dd	 STACKTOP    ;  ¤à¥á ¢¥à設ë áâíª 
37
  dd	 0	     ;  ¤à¥á ¡ãä¥à  ¤«ï ¯ à ¬¥â஢
37
  dd	 0	     ;  ¤à¥á ¡ãä¥à  ¤«ï ¯ à ¬¥â஢
38
  dd	 0	     ; § à¥§¥à¢¨à®¢ ­®
38
  dd	 0	     ; § à¥§¥à¢¨à®¢ ­®
39
 
39
 
40
include "../../macros.inc" ; ¬ ªà®áë ®¡«¥£ç îâ ¦¨§­ì  áᥬ¡«¥à騪®¢!
40
include "../../macros.inc" ; ¬ ªà®áë ®¡«¥£ç îâ ¦¨§­ì  áᥬ¡«¥à騪®¢!
41
 
41
 
42
;---------------------------------------------------------------------
42
;---------------------------------------------------------------------
43
;---  €—€‹Ž Žƒ€ŒŒ›  ----------------------------------------------
43
;---  €—€‹Ž Žƒ€ŒŒ›  ----------------------------------------------
44
;---------------------------------------------------------------------
44
;---------------------------------------------------------------------
45
 
45
 
46
START:
46
START:
47
 
47
 
48
red:			; ¯¥à¥à¨á®¢ âì ®ª­®
48
red:			; ¯¥à¥à¨á®¢ âì ®ª­®
49
 
49
 
50
    call draw_window	; ¢ë§ë¢ ¥¬ ¯à®æ¥¤ãàã ®âà¨á®¢ª¨ ®ª­ 
50
    call draw_window	; ¢ë§ë¢ ¥¬ ¯à®æ¥¤ãàã ®âà¨á®¢ª¨ ®ª­ 
51
 
51
 
52
;---------------------------------------------------------------------
52
;---------------------------------------------------------------------
53
;---  –ˆŠ‹ Ž€Ž’Šˆ ‘Ž›’ˆ‰  ----------------------------------------
53
;---  –ˆŠ‹ Ž€Ž’Šˆ ‘Ž›’ˆ‰  ----------------------------------------
54
;---------------------------------------------------------------------
54
;---------------------------------------------------------------------
55
 
55
 
56
still:
56
still:
57
    ;mcall 10            ; äã­ªæ¨ï 10 - ¦¤ âì ᮡëâ¨ï
57
    ;mcall 10            ; äã­ªæ¨ï 10 - ¦¤ âì ᮡëâ¨ï
58
    mov eax, 10
58
    mov eax, 10
59
    int 0x40
59
    int 0x40
60
 
60
 
61
    cmp  eax,2		; ­ ¦ â  ª« ¢¨è  ?
61
    cmp  eax,2		; ­ ¦ â  ª« ¢¨è  ?
62
    je	 key		; ¥á«¨ ¤  - ­  key
62
    je	 key		; ¥á«¨ ¤  - ­  key
63
    cmp  eax,3		; ­ ¦ â  ª­®¯ª  ?
63
    cmp  eax,3		; ­ ¦ â  ª­®¯ª  ?
64
    je	 button 	; ¥á«¨ ¤  - ­  button
64
    je	 button 	; ¥á«¨ ¤  - ­  button
65
    cmp  eax,1		; ¯¥à¥à¨á®¢ âì ®ª­® ?
65
    cmp  eax,1		; ¯¥à¥à¨á®¢ âì ®ª­® ?
66
    je	 red		; ¥á«¨ ¤  - ­  ¬¥âªã red
66
    je	 red		; ¥á«¨ ¤  - ­  ¬¥âªã red
67
 
67
 
68
    jmp  still		; ¥á«¨ ¤à㣮¥ ᮡë⨥ - ¢ ­ ç «® 横« 
68
    jmp  still		; ¥á«¨ ¤à㣮¥ ᮡë⨥ - ¢ ­ ç «® 横« 
69
 
69
 
70
 
70
 
71
 
71
 
72
;---------------------------------------------------------------------
72
;---------------------------------------------------------------------
73
 
73
 
74
 
74
 
75
  key:			; ­ ¦ â  ª« ¢¨è  ­  ª« ¢¨ âãà¥
75
  key:			; ­ ¦ â  ª« ¢¨è  ­  ª« ¢¨ âãà¥
76
    mcall 2		; äã­ªæ¨ï 2 - áç¨â âì ª®¤ ᨬ¢®«  (¢ ah)
76
    mcall 2		; äã­ªæ¨ï 2 - áç¨â âì ª®¤ ᨬ¢®«  (¢ ah)
77
 
77
 
78
 
78
 
79
	cmp   ah, 0x41	      ; A - if Caps Lock ON
79
	cmp   ah, 0x41	      ; A - if Caps Lock ON
80
	jnz   @f
80
	jnz   @f
81
	jmp   _07
81
	jmp   _07
82
    @@:
82
    @@:
83
	cmp   ah, 0x5a	      ; Z
83
	cmp   ah, 0x5a	      ; Z
84
	jnz   @f
84
	jnz   @f
85
	jmp   _08
85
	jmp   _08
86
    @@:
86
    @@:
87
	cmp   ah, 0x53	      ; S
87
	cmp   ah, 0x53	      ; S
88
	jnz   @f
88
	jnz   @f
89
	jmp   _09
89
	jmp   _09
90
    @@:
90
    @@:
91
	cmp   ah, 0x58	      ; X
91
	cmp   ah, 0x58	      ; X
92
	jnz   @f
92
	jnz   @f
93
	jmp   _0a
93
	jmp   _0a
94
    @@:
94
    @@:
95
	cmp   ah, 0x44	      ; D
95
	cmp   ah, 0x44	      ; D
96
	jnz   @f
96
	jnz   @f
97
	jmp   _0b
97
	jmp   _0b
98
    @@:
98
    @@:
99
	cmp   ah, 0x43	      ; C
99
	cmp   ah, 0x43	      ; C
100
	jnz   @f
100
	jnz   @f
101
	jmp   _0c
101
	jmp   _0c
102
    @@:
102
    @@:
103
	cmp   ah, 0x56	      ; V
103
	cmp   ah, 0x56	      ; V
104
	jnz   @f
104
	jnz   @f
105
   _01:
105
   _01:
106
	mov   ah, 0x01
106
	mov   ah, 0x01
107
	jmp   p
107
	jmp   p
108
    @@:
108
    @@:
109
	cmp   ah, 0x47	      ; G
109
	cmp   ah, 0x47	      ; G
110
	jnz   @f
110
	jnz   @f
111
   _02:
111
   _02:
112
	mov   ah, 0x02
112
	mov   ah, 0x02
113
	jmp   p
113
	jmp   p
114
    @@:
114
    @@:
115
	cmp   ah, 0x42	      ; B
115
	cmp   ah, 0x42	      ; B
116
	jnz   @f
116
	jnz   @f
117
   _03:
117
   _03:
118
	mov   ah, 0x03
118
	mov   ah, 0x03
119
	jmp   p
119
	jmp   p
120
    @@:
120
    @@:
121
	cmp   ah, 0x48	      ; H
121
	cmp   ah, 0x48	      ; H
122
	jnz   @f
122
	jnz   @f
123
   _04:
123
   _04:
124
	mov   ah, 0x04
124
	mov   ah, 0x04
125
	jmp   p
125
	jmp   p
126
    @@:
126
    @@:
127
	cmp   ah, 0x4e	      ; N
127
	cmp   ah, 0x4e	      ; N
128
	jnz   @f
128
	jnz   @f
129
   _05:
129
   _05:
130
	mov   ah, 0x05
130
	mov   ah, 0x05
131
	jmp   p
131
	jmp   p
132
    @@:
132
    @@:
133
	cmp   ah, 0x4d	      ; M
133
	cmp   ah, 0x4d	      ; M
134
	jnz   @f
134
	jnz   @f
135
   _06:
135
   _06:
136
	mov   ah, 0x06
136
	mov   ah, 0x06
137
	jmp   p
137
	jmp   p
138
    @@:
138
    @@:
139
	cmp   ah, 0x4b	      ; K
139
	cmp   ah, 0x4b	      ; K
140
	jnz   @f
140
	jnz   @f
141
   _07:
141
   _07:
142
	mov   ah, 0x07
142
	mov   ah, 0x07
143
	jmp   p
143
	jmp   p
144
    @@:
144
    @@:
145
	cmp   ah, 0x3c	      ; <
145
	cmp   ah, 0x3c	      ; <
146
	jnz   @f
146
	jnz   @f
147
   _08:
147
   _08:
148
	mov   ah, 0x08
148
	mov   ah, 0x08
149
	jmp   p
149
	jmp   p
150
    @@:
150
    @@:
151
	cmp   ah, 0x4c	      ; L
151
	cmp   ah, 0x4c	      ; L
152
	jnz   @f
152
	jnz   @f
153
   _09:
153
   _09:
154
	mov   ah, 0x09
154
	mov   ah, 0x09
155
	jmp   p
155
	jmp   p
156
    @@:
156
    @@:
157
	cmp   ah, 0x3e	      ; >
157
	cmp   ah, 0x3e	      ; >
158
	jnz   @f
158
	jnz   @f
159
   _0a:
159
   _0a:
160
	mov   ah, 0x0a
160
	mov   ah, 0x0a
161
	jmp   p
161
	jmp   p
162
    @@:
162
    @@:
163
	cmp   ah, 0x3a	      ; :
163
	cmp   ah, 0x3a	      ; :
164
	jnz   @f
164
	jnz   @f
165
   _0b:
165
   _0b:
166
	mov   ah, 0x0b
166
	mov   ah, 0x0b
167
	jmp   p
167
	jmp   p
168
    @@:
168
    @@:
169
	cmp   ah, 0x3f	      ; ?
169
	cmp   ah, 0x3f	      ; ?
170
	jnz   @f
170
	jnz   @f
171
   _0c:
171
   _0c:
172
	mov   ah, 0x0c
172
	mov   ah, 0x0c
173
	jmp   p
173
	jmp   p
174
    @@:
174
    @@:
175
	cmp   ah, 0x22	      ; "
175
	cmp   ah, 0x22	      ; "
176
	jnz   @f
176
	jnz   @f
177
	jmp   _11
177
	jmp   _11
178
    @@:
178
    @@:
179
	cmp   ah, 0x21	      ; key !-------
179
	cmp   ah, 0x21	      ; key !-------
180
	jnz   @f
180
	jnz   @f
181
	jmp   _0c
181
	jmp   _0c
182
    @@:
182
    @@:
183
	cmp   ah, 0x51	      ; key Q
183
	cmp   ah, 0x51	      ; key Q
184
	jnz   @f
184
	jnz   @f
185
   _11:
185
   _11:
186
	mov   ah, 0x11
186
	mov   ah, 0x11
187
	jmp   p
187
	jmp   p
188
    @@:
188
    @@:
189
	cmp   ah, 0x40	      ; key @
189
	cmp   ah, 0x40	      ; key @
190
	jnz   @f
190
	jnz   @f
191
   _12:
191
   _12:
192
	mov   ah, 0x12
192
	mov   ah, 0x12
193
	jmp   p
193
	jmp   p
194
    @@:
194
    @@:
195
	cmp   ah, 0x57	      ; key W
195
	cmp   ah, 0x57	      ; key W
196
	jnz   @f
196
	jnz   @f
197
   _13:
197
   _13:
198
	mov   ah, 0x13
198
	mov   ah, 0x13
199
	jmp   p
199
	jmp   p
200
    @@:
200
    @@:
201
	cmp   ah, 0x23	      ; key #
201
	cmp   ah, 0x23	      ; key #
202
	jnz   @f
202
	jnz   @f
203
   _14:
203
   _14:
204
	mov   ah, 0x14
204
	mov   ah, 0x14
205
	jmp   p
205
	jmp   p
206
    @@:
206
    @@:
207
	cmp   ah, 0x45	      ; key E
207
	cmp   ah, 0x45	      ; key E
208
	jnz   @f
208
	jnz   @f
209
   _15:
209
   _15:
210
	mov   ah, 0x15
210
	mov   ah, 0x15
211
	jmp   p
211
	jmp   p
212
    @@:
212
    @@:
213
	cmp   ah, 0x52	      ; key R
213
	cmp   ah, 0x52	      ; key R
214
	jnz   @f
214
	jnz   @f
215
   _16:
215
   _16:
216
	mov   ah, 0x16
216
	mov   ah, 0x16
217
	jmp   p
217
	jmp   p
218
    @@:
218
    @@:
219
	cmp   ah, 0x25	      ; key %
219
	cmp   ah, 0x25	      ; key %
220
	jnz   @f
220
	jnz   @f
221
	jmp   _17
221
	jmp   _17
222
    @@:
222
    @@:
223
	cmp   ah, 0x54	      ; key T
223
	cmp   ah, 0x54	      ; key T
224
	jnz   @f
224
	jnz   @f
225
	jmp   _18
225
	jmp   _18
226
    @@:
226
    @@:
227
	cmp   ah, 0x5e	      ; key ^
227
	cmp   ah, 0x5e	      ; key ^
228
	jnz   @f
228
	jnz   @f
229
	jmp   _19
229
	jmp   _19
230
    @@:
230
    @@:
231
	cmp   ah, 0x59	      ; key Y
231
	cmp   ah, 0x59	      ; key Y
232
	jnz   @f
232
	jnz   @f
233
	jmp   _1a
233
	jmp   _1a
234
    @@:
234
    @@:
235
	cmp   ah, 0x26	      ; key &
235
	cmp   ah, 0x26	      ; key &
236
	jnz   @f
236
	jnz   @f
237
	jmp   _1b
237
	jmp   _1b
238
    @@:
238
    @@:
239
	cmp   ah, 0x55	      ; key U
239
	cmp   ah, 0x55	      ; key U
240
	jnz   @f
240
	jnz   @f
241
	jmp   _1c
241
	jmp   _1c
242
    @@:
242
    @@:
243
	cmp   ah, 0x49	      ; key I
243
	cmp   ah, 0x49	      ; key I
244
	jnz   @f
244
	jnz   @f
245
	jmp   _21
245
	jmp   _21
246
    @@:
246
    @@:
247
	cmp   ah, 0x28	      ; key (
247
	cmp   ah, 0x28	      ; key (
248
	jnz   @f
248
	jnz   @f
249
	jmp   _22
249
	jmp   _22
250
    @@:
250
    @@:
251
	cmp   ah, 0x4f	      ; key O
251
	cmp   ah, 0x4f	      ; key O
252
	jnz   @f
252
	jnz   @f
253
	jmp   _23
253
	jmp   _23
254
    @@:
254
    @@:
255
	cmp   ah, 0x29	      ; key )
255
	cmp   ah, 0x29	      ; key )
256
	jnz   @f
256
	jnz   @f
257
	jmp   _24
257
	jmp   _24
258
    @@:
258
    @@:
259
	cmp   ah, 0x50	      ; key P
259
	cmp   ah, 0x50	      ; key P
260
	jnz   @f
260
	jnz   @f
261
	jmp   _25
261
	jmp   _25
262
    @@:
262
    @@:
263
	cmp   ah, 0x7b	      ; key {
263
	cmp   ah, 0x7b	      ; key {
264
	jnz   @f
264
	jnz   @f
265
	jmp   _26
265
	jmp   _26
266
    @@:
266
    @@:
267
	cmp   ah, 0x2b	      ; key +
267
	cmp   ah, 0x2b	      ; key +
268
	jnz   @f
268
	jnz   @f
269
	jmp   _27
269
	jmp   _27
270
    @@:
270
    @@:
271
	cmp   ah, 0x7d	      ; key }
271
	cmp   ah, 0x7d	      ; key }
272
	jnz   @f
272
	jnz   @f
273
	jmp   _28
273
	jmp   _28
274
    @@:
274
    @@:
275
	cmp   ah, 0x7c	      ; key |
275
	cmp   ah, 0x7c	      ; key |
276
	jnz   @f
276
	jnz   @f
277
	jmp   _29
277
	jmp   _29
278
    @@:
278
    @@:
279
	cmp   ah, 0x61	      ; a - if Caps Lock OFF
279
	cmp   ah, 0x61	      ; a - if Caps Lock OFF
280
	jnz   @f
280
	jnz   @f
281
   _17:
281
   _17:
282
	mov   ah, 0x17
282
	mov   ah, 0x17
283
	jmp   p
283
	jmp   p
284
    @@:
284
    @@:
285
	cmp   ah, 0x7a	      ; z
285
	cmp   ah, 0x7a	      ; z
286
	jnz   @f
286
	jnz   @f
287
   _18:
287
   _18:
288
	mov   ah, 0x18
288
	mov   ah, 0x18
289
	jmp   p
289
	jmp   p
290
    @@:
290
    @@:
291
	cmp   ah, 0x73	      ; s
291
	cmp   ah, 0x73	      ; s
292
	jnz   @f
292
	jnz   @f
293
   _19:
293
   _19:
294
	mov   ah, 0x19
294
	mov   ah, 0x19
295
	jmp   p
295
	jmp   p
296
    @@:
296
    @@:
297
	cmp   ah, 0x78	      ; x
297
	cmp   ah, 0x78	      ; x
298
	jnz   @f
298
	jnz   @f
299
   _1a:
299
   _1a:
300
	mov   ah, 0x1a
300
	mov   ah, 0x1a
301
	jmp   p
301
	jmp   p
302
    @@:
302
    @@:
303
	cmp   ah, 0x64	      ; d
303
	cmp   ah, 0x64	      ; d
304
	jnz   @f
304
	jnz   @f
305
   _1b:
305
   _1b:
306
	mov   ah, 0x1b
306
	mov   ah, 0x1b
307
	jmp   p
307
	jmp   p
308
    @@:
308
    @@:
309
	cmp   ah, 0x63	      ; c
309
	cmp   ah, 0x63	      ; c
310
	jnz   @f
310
	jnz   @f
311
   _1c:
311
   _1c:
312
	mov   ah, 0x1c
312
	mov   ah, 0x1c
313
	jmp   p
313
	jmp   p
314
    @@:
314
    @@:
315
	cmp   ah, 0x76	      ; v
315
	cmp   ah, 0x76	      ; v
316
	jnz   @f
316
	jnz   @f
317
   _21:
317
   _21:
318
	mov   ah, 0x21
318
	mov   ah, 0x21
319
	jmp   p
319
	jmp   p
320
    @@:
320
    @@:
321
	cmp   ah, 0x67	      ; g
321
	cmp   ah, 0x67	      ; g
322
	jnz   @f
322
	jnz   @f
323
   _22:
323
   _22:
324
	mov   ah, 0x22
324
	mov   ah, 0x22
325
	jmp   p
325
	jmp   p
326
    @@:
326
    @@:
327
	cmp   ah, 0x62	      ; b
327
	cmp   ah, 0x62	      ; b
328
	jnz   @f
328
	jnz   @f
329
   _23:
329
   _23:
330
	mov   ah, 0x23
330
	mov   ah, 0x23
331
	jmp   p
331
	jmp   p
332
    @@:
332
    @@:
333
	cmp   ah, 0x68	      ; h
333
	cmp   ah, 0x68	      ; h
334
	jnz   @f
334
	jnz   @f
335
   _24:
335
   _24:
336
	mov   ah, 0x24
336
	mov   ah, 0x24
337
	jmp   p
337
	jmp   p
338
    @@:
338
    @@:
339
	cmp   ah, 0x6e	      ; n
339
	cmp   ah, 0x6e	      ; n
340
	jnz   @f
340
	jnz   @f
341
   _25:
341
   _25:
342
	mov   ah, 0x25
342
	mov   ah, 0x25
343
	jmp   p
343
	jmp   p
344
    @@:
344
    @@:
345
	cmp   ah, 0x6d	      ; m
345
	cmp   ah, 0x6d	      ; m
346
	jnz   @f
346
	jnz   @f
347
   _26:
347
   _26:
348
	mov   ah, 0x26
348
	mov   ah, 0x26
349
	jmp   p
349
	jmp   p
350
    @@:
350
    @@:
351
	cmp   ah, 0x6b	      ; k
351
	cmp   ah, 0x6b	      ; k
352
	jnz   @f
352
	jnz   @f
353
   _27:
353
   _27:
354
	mov   ah, 0x27
354
	mov   ah, 0x27
355
	jmp   p
355
	jmp   p
356
    @@:
356
    @@:
357
	cmp   ah, 0x2c	      ; ,
357
	cmp   ah, 0x2c	      ; ,
358
	jnz   @f
358
	jnz   @f
359
   _28:
359
   _28:
360
	mov   ah, 0x28
360
	mov   ah, 0x28
361
	jmp   p
361
	jmp   p
362
    @@:
362
    @@:
363
	cmp   ah, 0x6c	      ; l
363
	cmp   ah, 0x6c	      ; l
364
	jnz   @f
364
	jnz   @f
365
   _29:
365
   _29:
366
	mov   ah, 0x29
366
	mov   ah, 0x29
367
	jmp   p
367
	jmp   p
368
    @@:
368
    @@:
369
	cmp   ah, 0x2e	      ; .
369
	cmp   ah, 0x2e	      ; .
370
	jnz   @f
370
	jnz   @f
371
   _2a:
371
   _2a:
372
	mov   ah, 0x2a
372
	mov   ah, 0x2a
373
	jmp   p
373
	jmp   p
374
    @@:
374
    @@:
375
	cmp   ah, 0x3b	      ; ;
375
	cmp   ah, 0x3b	      ; ;
376
	jnz   @f
376
	jnz   @f
377
   _2b:
377
   _2b:
378
	mov   ah, 0x2b
378
	mov   ah, 0x2b
379
	jmp   p
379
	jmp   p
380
    @@:
380
    @@:
381
	cmp   ah, 0x2f	      ; /
381
	cmp   ah, 0x2f	      ; /
382
	jnz   @f
382
	jnz   @f
383
   _2c:
383
   _2c:
384
	mov   ah, 0x2c
384
	mov   ah, 0x2c
385
	jmp   p
385
	jmp   p
386
    @@:
386
    @@:
387
	cmp   ah, 0x27	      ; '
387
	cmp   ah, 0x27	      ; '
388
	jnz   @f
388
	jnz   @f
389
  _31:
389
  _31:
390
	mov   ah, 0x31
390
	mov   ah, 0x31
391
	jmp   p
391
	jmp   p
392
    @@:
392
    @@:
393
	cmp   ah, 0x60	      ; key `
393
	cmp   ah, 0x60	      ; key `
394
	jnz   @f
394
	jnz   @f
395
	jmp   _2c
395
	jmp   _2c
396
    @@:
396
    @@:
397
	cmp   ah, 0x09	      ; key tab
397
	cmp   ah, 0x09	      ; key tab
398
	jnz   @f
398
	jnz   @f
399
	jmp   _31
399
	jmp   _31
400
    @@:
400
    @@:
401
	cmp   ah, 0x31	      ; key 1
401
	cmp   ah, 0x31	      ; key 1
402
	jnz   @f
402
	jnz   @f
403
  _32:
403
  _32:
404
	mov   ah, 0x32
404
	mov   ah, 0x32
405
	jmp   p
405
	jmp   p
406
    @@:
406
    @@:
407
	cmp   ah, 0x71	      ; key q
407
	cmp   ah, 0x71	      ; key q
408
	jnz   @f
408
	jnz   @f
409
  _33:
409
  _33:
410
	mov   ah, 0x33
410
	mov   ah, 0x33
411
	jmp   p
411
	jmp   p
412
    @@:
412
    @@:
413
	cmp   ah, 0x32	      ; key 2
413
	cmp   ah, 0x32	      ; key 2
414
	jnz   @f
414
	jnz   @f
415
  _34:
415
  _34:
416
	mov   ah, 0x34
416
	mov   ah, 0x34
417
	jmp   p
417
	jmp   p
418
    @@:
418
    @@:
419
	cmp   ah, 0x77	      ; key w
419
	cmp   ah, 0x77	      ; key w
420
	jnz   @f
420
	jnz   @f
421
  _35:
421
  _35:
422
	mov   ah, 0x35
422
	mov   ah, 0x35
423
	jmp   p
423
	jmp   p
424
    @@:
424
    @@:
425
	cmp   ah, 0x65	      ; key e
425
	cmp   ah, 0x65	      ; key e
426
	jnz   @f
426
	jnz   @f
427
  _36:
427
  _36:
428
	mov   ah, 0x36
428
	mov   ah, 0x36
429
	jmp   p
429
	jmp   p
430
    @@:
430
    @@:
431
	cmp   ah, 0x34	      ; key 4
431
	cmp   ah, 0x34	      ; key 4
432
	jnz   @f
432
	jnz   @f
433
  _37:
433
  _37:
434
	mov   ah, 0x37
434
	mov   ah, 0x37
435
	jmp   p
435
	jmp   p
436
    @@:
436
    @@:
437
	cmp   ah, 0x72	      ; key r
437
	cmp   ah, 0x72	      ; key r
438
	jnz   @f
438
	jnz   @f
439
  _38:
439
  _38:
440
	mov   ah, 0x38
440
	mov   ah, 0x38
441
	jmp   p
441
	jmp   p
442
    @@:
442
    @@:
443
	cmp   ah, 0x35	      ; key 5
443
	cmp   ah, 0x35	      ; key 5
444
	jnz   @f
444
	jnz   @f
445
  _39:
445
  _39:
446
	mov   ah, 0x39
446
	mov   ah, 0x39
447
	jmp   p
447
	jmp   p
448
    @@:
448
    @@:
449
	cmp   ah, 0x74	      ; key t
449
	cmp   ah, 0x74	      ; key t
450
	jnz   @f
450
	jnz   @f
451
  _3a:
451
  _3a:
452
	mov   ah, 0x3a
452
	mov   ah, 0x3a
453
	jmp   p
453
	jmp   p
454
    @@:
454
    @@:
455
	cmp   ah, 0x36	      ; key 6
455
	cmp   ah, 0x36	      ; key 6
456
	jnz   @f
456
	jnz   @f
457
  _3b:
457
  _3b:
458
	mov   ah, 0x3b
458
	mov   ah, 0x3b
459
	jmp   p
459
	jmp   p
460
    @@:
460
    @@:
461
	cmp   ah, 0x79	      ; key y
461
	cmp   ah, 0x79	      ; key y
462
	jnz   @f
462
	jnz   @f
463
  _3c:
463
  _3c:
464
	mov   ah, 0x3c
464
	mov   ah, 0x3c
465
	jmp   p
465
	jmp   p
466
    @@:
466
    @@:
467
	cmp   ah, 0x75	      ; key u
467
	cmp   ah, 0x75	      ; key u
468
	jnz   @f
468
	jnz   @f
469
  _41:
469
  _41:
470
	mov   ah, 0x41
470
	mov   ah, 0x41
471
	jmp   p
471
	jmp   p
472
    @@:
472
    @@:
473
	cmp   ah, 0x38	      ; key 8
473
	cmp   ah, 0x38	      ; key 8
474
	jnz   @f
474
	jnz   @f
475
	mov   ah, 0x42
475
	mov   ah, 0x42
476
	jmp   p
476
	jmp   p
477
    @@:
477
    @@:
478
	cmp   ah, 0x69	      ; key i
478
	cmp   ah, 0x69	      ; key i
479
	jnz   @f
479
	jnz   @f
480
	mov   ah, 0x43
480
	mov   ah, 0x43
481
	jmp   p
481
	jmp   p
482
    @@:
482
    @@:
483
	cmp   ah, 0x39	      ; key 9
483
	cmp   ah, 0x39	      ; key 9
484
	jnz   @f
484
	jnz   @f
485
	mov   ah, 0x44
485
	mov   ah, 0x44
486
	jmp   p
486
	jmp   p
487
    @@:
487
    @@:
488
	cmp   ah, 0x6f	      ; key o
488
	cmp   ah, 0x6f	      ; key o
489
	jnz   @f
489
	jnz   @f
490
	mov   ah, 0x45
490
	mov   ah, 0x45
491
	jmp   p
491
	jmp   p
492
    @@:
492
    @@:
493
	cmp   ah, 0x70	      ; key p
493
	cmp   ah, 0x70	      ; key p
494
	jnz   @f
494
	jnz   @f
495
	mov   ah, 0x46
495
	mov   ah, 0x46
496
	jmp   p
496
	jmp   p
497
    @@:
497
    @@:
498
	cmp   ah, 0x2d	      ; key -
498
	cmp   ah, 0x2d	      ; key -
499
	jnz   @f
499
	jnz   @f
500
	mov   ah, 0x47
500
	mov   ah, 0x47
501
	jmp   p
501
	jmp   p
502
    @@:
502
    @@:
503
	cmp   ah, 0x5b	      ; key [
503
	cmp   ah, 0x5b	      ; key [
504
	jnz   @f
504
	jnz   @f
505
	mov   ah, 0x48
505
	mov   ah, 0x48
506
	jmp   p
506
	jmp   p
507
    @@:
507
    @@:
508
	cmp   ah, 0x3d	      ; key =
508
	cmp   ah, 0x3d	      ; key =
509
	jnz   @f
509
	jnz   @f
510
	mov   ah, 0x49
510
	mov   ah, 0x49
511
	jmp   p
511
	jmp   p
512
    @@:
512
    @@:
513
	cmp   ah, 0x5d	      ; key ]
513
	cmp   ah, 0x5d	      ; key ]
514
	jnz   @f
514
	jnz   @f
515
	mov   ah, 0x4a
515
	mov   ah, 0x4a
516
	jmp   p
516
	jmp   p
517
    @@:
517
    @@:
518
	cmp   ah, 0x5c	      ; key \
518
	cmp   ah, 0x5c	      ; key \
519
	jnz   @f
519
	jnz   @f
520
	mov   ah, 0x4b
520
	mov   ah, 0x4b
521
	jmp   p
521
	jmp   p
522
    @@:
522
    @@:
523
	cmp   ah, 0x08	      ; key backspace
523
	cmp   ah, 0x08	      ; key backspace
524
	jnz   @f
524
	jnz   @f
525
	mov   ah, 0x4c
525
	mov   ah, 0x4c
526
	jmp   p
526
	jmp   p
527
    @@:
527
    @@:
528
	cmp   ah, 0x0d	      ; key enter
528
	cmp   ah, 0x0d	      ; key enter
529
	jnz   @f
529
	jnz   @f
530
	mov   ah, 0x51
530
	mov   ah, 0x51
531
	jmp   p
531
	jmp   p
532
    @@:
532
    @@:
533
	cmp   ah, 0x66	      ; key f
533
	cmp   ah, 0x66	      ; key f
534
	jnz   @f
534
	jnz   @f
535
	mov   ah, 0x01
535
	mov   ah, 0x01
536
	jmp   p
536
	jmp   p
537
    @@:
537
    @@:
538
	cmp   ah, 0x6a	      ; key j
538
	cmp   ah, 0x6a	      ; key j
539
	jnz   @f
539
	jnz   @f
540
	mov   ah, 0x05
540
	mov   ah, 0x05
541
	jmp   p
541
	jmp   p
542
    @@:
542
    @@:
543
	cmp   ah, 0x33	      ; key 3
543
	cmp   ah, 0x33	      ; key 3
544
	jnz   @f
544
	jnz   @f
545
	mov   ah, 0x08
545
	mov   ah, 0x08
546
	jmp   p
546
	jmp   p
547
    @@:
547
    @@:
548
	cmp   ah, 0x37	      ; key 7
548
	cmp   ah, 0x37	      ; key 7
549
	jnz   @f
549
	jnz   @f
550
	jmp   _11
550
	jmp   _11
551
    @@:
551
    @@:
552
	cmp   ah, 0x30	      ; key 0
552
	cmp   ah, 0x30	      ; key 0
553
	jnz   @f
553
	jnz   @f
554
	jmp   _15
554
	jmp   _15
555
    @@:
555
    @@:
556
	cmp   ah, 0xb4	      ; key home
556
	cmp   ah, 0xb4	      ; key home
557
	jnz   @f
557
	jnz   @f
558
	mov   ah, 0x10
558
	mov   ah, 0x10
559
	jmp   p
559
	jmp   p
560
    @@:
560
    @@:
561
	cmp   ah, 0xb5	      ; key end
561
	cmp   ah, 0xb5	      ; key end
562
	jnz   @f
562
	jnz   @f
563
   _70:
563
   _70:
564
	mov   ah, 0xfc
564
	mov   ah, 0xfc
565
	jmp   p
565
	jmp   p
566
    @@:
566
    @@:
567
	cmp   ah, 0xb8	      ; key Page Up
567
	cmp   ah, 0xb8	      ; key Page Up
568
	jnz   @f
568
	jnz   @f
569
	mov   ah, 0x20
569
	mov   ah, 0x20
570
	jmp   p
570
	jmp   p
571
    @@:
571
    @@:
572
	cmp   ah, 0xb7	      ; key Page Down
572
	cmp   ah, 0xb7	      ; key Page Down
573
	jnz   @f
573
	jnz   @f
574
	jmp   _70
574
	jmp   _70
575
    @@:
575
    @@:
576
	cmp   ah, 0xff	      ; key F12
576
	cmp   ah, 0xff	      ; key F12
577
	jnz   @f
577
	jnz   @f
578
	mov   ah, 0x00
578
	mov   ah, 0x00
579
	jmp   p
579
	jmp   p
580
    @@:
580
    @@:
581
	cmp   ah, 0xb6	      ; key Del
581
	cmp   ah, 0xb6	      ; key Del
582
	jnz   @f
582
	jnz   @f
583
	jmp   _70
583
	jmp   _70
584
    @@:
584
    @@:
585
 
585
 
586
  p:
586
  p:
587
    mov  [M+1], ah  ; § ¯¨á âì ª®¤ ᨬ¢®«  ª ª ª®¤ ­®âë
587
    mov  [M+1], ah  ; § ¯¨á âì ª®¤ ᨬ¢®«  ª ª ª®¤ ­®âë
588
 
588
 
589
    ; äã­ªæ¨ï 55-55: á¨á⥬­ë© ¤¨­ ¬¨ª ("PlayNote")
589
    ; äã­ªæ¨ï 55-55: á¨á⥬­ë© ¤¨­ ¬¨ª ("PlayNote")
590
    ;   esi -  ¤à¥á ¬¥«®¤¨¨
590
    ;   esi -  ¤à¥á ¬¥«®¤¨¨
591
 
591
 
592
       mov  eax,55
592
       mov  eax,55
593
       mov  ebx,eax
593
       mov  ebx,eax
594
       mov  esi,M
594
       mov  esi,M
595
       int  0x40
595
       int  0x40
596
 
596
 
597
    ; ¨«¨ ª®à®âª®:
597
    ; ¨«¨ ª®à®âª®:
598
    ;mcall 55, , , , Music
598
    ;mcall 55, , , , Music
599
 
599
 
600
    jmp  still		; ¢¥à­ãâìáï ª ­ ç «ã 横« 
600
    jmp  still		; ¢¥à­ãâìáï ª ­ ç «ã 横« 
601
 
601
 
602
 
602
 
603
;---------------------------------------------------------------------
603
;---------------------------------------------------------------------
604
 
604
 
605
  button:
605
  button:
606
    mcall 17		; 17 - ¯®«ãç¨âì ¨¤¥­â¨ä¨ª â®à ­ ¦ â®© ª­®¯ª¨
606
    mcall 17		; 17 - ¯®«ãç¨âì ¨¤¥­â¨ä¨ª â®à ­ ¦ â®© ª­®¯ª¨
607
 
607
 
608
	cmp  ah, 0xa1	    ; button 1
608
	cmp  ah, 0xa1	    ; button 1
609
	jnz  @f
609
	jnz  @f
610
	jmp  _01
610
	jmp  _01
611
    @@:
611
    @@:
612
	cmp  ah, 0x02	    ; button 2
612
	cmp  ah, 0x02	    ; button 2
613
	jnz  @f
613
	jnz  @f
614
	jmp  _02
614
	jmp  _02
615
    @@:
615
    @@:
616
	cmp  ah, 0x03	    ; button 3
616
	cmp  ah, 0x03	    ; button 3
617
	jnz  @f
617
	jnz  @f
618
	jmp  _03
618
	jmp  _03
619
    @@:
619
    @@:
620
	cmp  ah, 0x04
620
	cmp  ah, 0x04
621
	jnz  @f
621
	jnz  @f
622
	jmp  _04
622
	jmp  _04
623
    @@:
623
    @@:
624
	cmp  ah, 0x05
624
	cmp  ah, 0x05
625
	jnz  @f
625
	jnz  @f
626
	jmp  _05
626
	jmp  _05
627
    @@:
627
    @@:
628
	cmp  ah, 0x06
628
	cmp  ah, 0x06
629
	jnz  @f
629
	jnz  @f
630
	jmp  _06
630
	jmp  _06
631
    @@:
631
    @@:
632
	cmp  ah, 0x07
632
	cmp  ah, 0x07
633
	jnz  @f
633
	jnz  @f
634
	jmp  _07
634
	jmp  _07
635
    @@:
635
    @@:
636
	cmp  ah, 0x08	    ; button 8
636
	cmp  ah, 0x08	    ; button 8
637
	jnz  @f
637
	jnz  @f
638
	jmp  _08
638
	jmp  _08
639
    @@:
639
    @@:
640
	cmp  ah, 0x09
640
	cmp  ah, 0x09
641
	jnz  @f
641
	jnz  @f
642
	jmp  _09
642
	jmp  _09
643
    @@:
643
    @@:
644
	cmp  ah, 0x0a	    ; button 10
644
	cmp  ah, 0x0a	    ; button 10
645
	jnz  @f
645
	jnz  @f
646
	jmp  _0a
646
	jmp  _0a
647
    @@:
647
    @@:
648
	cmp  ah, 0x0b
648
	cmp  ah, 0x0b
649
	jnz  @f
649
	jnz  @f
650
	jmp  _0b
650
	jmp  _0b
651
    @@:
651
    @@:
652
	cmp  ah, 0x0c	    ; button 12
652
	cmp  ah, 0x0c	    ; button 12
653
	jnz  @f
653
	jnz  @f
654
	jmp  _0c
654
	jmp  _0c
655
    @@:
655
    @@:
656
 
656
 
657
	cmp  ah, 0x11
657
	cmp  ah, 0x11
658
	jnz  @f
658
	jnz  @f
659
	jmp  _11
659
	jmp  _11
660
    @@:
660
    @@:
661
	cmp  ah, 0x12
661
	cmp  ah, 0x12
662
	jnz  @f
662
	jnz  @f
663
	jmp  _12
663
	jmp  _12
664
    @@:
664
    @@:
665
	cmp  ah, 0x13
665
	cmp  ah, 0x13
666
	jnz  @f
666
	jnz  @f
667
	jmp  _13
667
	jmp  _13
668
    @@:
668
    @@:
669
	cmp  ah, 0x14
669
	cmp  ah, 0x14
670
	jnz  @f
670
	jnz  @f
671
	jmp  _14
671
	jmp  _14
672
    @@:
672
    @@:
673
	cmp  ah, 0x15
673
	cmp  ah, 0x15
674
	jnz  @f
674
	jnz  @f
675
	jmp  _15
675
	jmp  _15
676
    @@:
676
    @@:
677
	cmp  ah, 0x16
677
	cmp  ah, 0x16
678
	jnz  @f
678
	jnz  @f
679
	jmp  _16
679
	jmp  _16
680
    @@:
680
    @@:
681
	cmp  ah, 0x17
681
	cmp  ah, 0x17
682
	jnz  @f
682
	jnz  @f
683
	jmp  _17
683
	jmp  _17
684
    @@:
684
    @@:
685
	cmp  ah, 0x18
685
	cmp  ah, 0x18
686
	jnz  @f
686
	jnz  @f
687
	jmp  _18
687
	jmp  _18
688
    @@:
688
    @@:
689
	cmp  ah, 0x19
689
	cmp  ah, 0x19
690
	jnz  @f
690
	jnz  @f
691
	jmp  _19
691
	jmp  _19
692
    @@:
692
    @@:
693
	cmp  ah, 0x1a
693
	cmp  ah, 0x1a
694
	jnz  @f
694
	jnz  @f
695
	jmp  _1a
695
	jmp  _1a
696
    @@:
696
    @@:
697
	cmp  ah, 0x1b
697
	cmp  ah, 0x1b
698
	jnz  @f
698
	jnz  @f
699
	jmp  _1b
699
	jmp  _1b
700
    @@:
700
    @@:
701
	cmp  ah, 0x1c
701
	cmp  ah, 0x1c
702
	jnz  @f
702
	jnz  @f
703
	jmp  _1c
703
	jmp  _1c
704
    @@:
704
    @@:
705
 
705
 
706
	cmp  ah, 0x21	    ; button 1
706
	cmp  ah, 0x21	    ; button 1
707
	jnz  @f
707
	jnz  @f
708
	jmp  _21
708
	jmp  _21
709
    @@:
709
    @@:
710
	cmp  ah, 0x22
710
	cmp  ah, 0x22
711
	jnz  @f
711
	jnz  @f
712
	jmp  _22
712
	jmp  _22
713
    @@:
713
    @@:
714
	cmp  ah, 0x23	    ; button 3
714
	cmp  ah, 0x23	    ; button 3
715
	jnz  @f
715
	jnz  @f
716
	jmp  _23
716
	jmp  _23
717
    @@:
717
    @@:
718
	cmp  ah, 0x24
718
	cmp  ah, 0x24
719
	jnz  @f
719
	jnz  @f
720
	jmp  _24
720
	jmp  _24
721
    @@:
721
    @@:
722
	cmp  ah, 0x25	    ; button 5
722
	cmp  ah, 0x25	    ; button 5
723
	jnz  @f
723
	jnz  @f
724
	jmp  _25
724
	jmp  _25
725
    @@:
725
    @@:
726
	cmp  ah, 0x26
726
	cmp  ah, 0x26
727
	jnz  @f
727
	jnz  @f
728
	jmp  _26
728
	jmp  _26
729
    @@:
729
    @@:
730
	cmp  ah, 0x27	    ; button 7
730
	cmp  ah, 0x27	    ; button 7
731
	jnz  @f
731
	jnz  @f
732
	jmp  _27
732
	jmp  _27
733
    @@:
733
    @@:
734
	cmp  ah, 0x28
734
	cmp  ah, 0x28
735
	jnz  @f
735
	jnz  @f
736
	jmp  _28
736
	jmp  _28
737
    @@:
737
    @@:
738
	cmp  ah, 0x29	    ; button 9
738
	cmp  ah, 0x29	    ; button 9
739
	jnz  @f
739
	jnz  @f
740
	jmp  _29
740
	jmp  _29
741
    @@:
741
    @@:
742
	cmp  ah, 0x2a
742
	cmp  ah, 0x2a
743
	jnz  @f
743
	jnz  @f
744
	jmp  _2a
744
	jmp  _2a
745
    @@:
745
    @@:
746
	cmp  ah, 0x2b	    ; button 11
746
	cmp  ah, 0x2b	    ; button 11
747
	jnz  @f
747
	jnz  @f
748
	jmp  _2b
748
	jmp  _2b
749
    @@:
749
    @@:
750
	cmp  ah, 0x2c
750
	cmp  ah, 0x2c
751
	jnz  @f
751
	jnz  @f
752
	jmp  _2c
752
	jmp  _2c
753
    @@:
753
    @@:
754
	cmp  ah, 0x31
754
	cmp  ah, 0x31
755
	jnz  @f
755
	jnz  @f
756
	jmp  _31
756
	jmp  _31
757
 
757
 
758
    @@:
758
    @@:
759
	cmp  ah, 0x32
759
	cmp  ah, 0x32
760
	jnz  @f
760
	jnz  @f
761
	jmp  _32
761
	jmp  _32
762
    @@:
762
    @@:
763
	cmp  ah, 0x33
763
	cmp  ah, 0x33
764
	jnz  @f
764
	jnz  @f
765
	jmp  _33
765
	jmp  _33
766
    @@:
766
    @@:
767
	cmp  ah, 0x34
767
	cmp  ah, 0x34
768
	jnz  @f
768
	jnz  @f
769
	jmp  _34
769
	jmp  _34
770
    @@:
770
    @@:
771
	cmp  ah, 0x35
771
	cmp  ah, 0x35
772
	jnz  @f
772
	jnz  @f
773
	jmp  _35
773
	jmp  _35
774
    @@:
774
    @@:
775
	cmp  ah, 0x36
775
	cmp  ah, 0x36
776
	jnz  @f
776
	jnz  @f
777
	jmp  _36
777
	jmp  _36
778
    @@:
778
    @@:
779
	cmp  ah, 0x37
779
	cmp  ah, 0x37
780
	jnz  @f
780
	jnz  @f
781
	jmp  _37
781
	jmp  _37
782
    @@:
782
    @@:
783
	cmp  ah, 0x38
783
	cmp  ah, 0x38
784
	jnz  @f
784
	jnz  @f
785
	jmp  _38
785
	jmp  _38
786
    @@:
786
    @@:
787
	cmp  ah, 0x39
787
	cmp  ah, 0x39
788
	jnz  @f
788
	jnz  @f
789
	jmp  _39
789
	jmp  _39
790
    @@:
790
    @@:
791
	cmp  ah, 0x3a
791
	cmp  ah, 0x3a
792
	jnz  @f
792
	jnz  @f
793
	jmp  _3a
793
	jmp  _3a
794
    @@:
794
    @@:
795
	cmp  ah, 0x3b
795
	cmp  ah, 0x3b
796
	jnz  @f
796
	jnz  @f
797
	jmp  _3b
797
	jmp  _3b
798
    @@:
798
    @@:
799
	cmp  ah, 0x3c
799
	cmp  ah, 0x3c
800
	jnz  @f
800
	jnz  @f
801
	jmp  _3c
801
	jmp  _3c
802
    @@:
802
    @@:
803
	cmp  ah, 0x41
803
	cmp  ah, 0x41
804
	jnz  @f
804
	jnz  @f
805
	jmp  _41
805
	jmp  _41
806
    @@:
806
    @@:
807
 
807
 
808
    cmp   ah, 1 	; ¥á«¨ … ­ ¦ â  ª­®¯ª  á ­®¬¥à®¬ 1,
808
    cmp   ah, 1 	; ¥á«¨ … ­ ¦ â  ª­®¯ª  á ­®¬¥à®¬ 1,
809
    jne   still 	;  ¢¥à­ãâìáï
809
    jne   still 	;  ¢¥à­ãâìáï
810
 
810
 
811
  .exit:
811
  .exit:
812
    mcall -1		; ¨­ ç¥ ª®­¥æ ¯à®£à ¬¬ë
812
    mcall -1		; ¨­ ç¥ ª®­¥æ ¯à®£à ¬¬ë
813
 
813
 
814
 
814
 
815
;---------------------------------------------------------------------
815
;---------------------------------------------------------------------
816
;---  Ž…„…‹…ˆ… ˆ Ž’ˆ‘Ž‚Š€ ŽŠ€  ----------------------------------
816
;---  Ž…„…‹…ˆ… ˆ Ž’ˆ‘Ž‚Š€ ŽŠ€  ----------------------------------
817
;---------------------------------------------------------------------
817
;---------------------------------------------------------------------
-
 
818
 
-
 
819
WHITE_W=48   ; While key width
-
 
820
BLACK_W=30   ; Black key width
-
 
821
BLACK_X=34   ; Black key X offset
818
 
822
 
819
draw_window:
823
draw_window:
820
 
824
 
821
    mcall 12, 1       ; äã­ªæ¨ï 12: á®®¡é¨âì Ž‘ ® ­ ç «¥ ®âà¨á®¢ª¨
825
    mcall 12, 1       ; äã­ªæ¨ï 12: á®®¡é¨âì Ž‘ ® ­ ç «¥ ®âà¨á®¢ª¨
822
 
826
 
823
    mcall 48, 3, sc,sizeof.system_colors
827
    mcall 48, 3, sc,sizeof.system_colors
824
 
828
 
825
    ; ¤ «¥¥: á­ ç «  ¤«¨­­ë© ¢ à¨ ­â (§ ª®¬¬¥­â¨à®¢ ­­ë©)
829
    ; ¤ «¥¥: á­ ç «  ¤«¨­­ë© ¢ à¨ ­â (§ ª®¬¬¥­â¨à®¢ ­­ë©)
826
    ; § â¥¬ ª®à®âª¨©  ­ «®£ á ¨á¯®«ì§®¢ ­¨¥¬ ¬ ªà®á®¢
830
    ; § â¥¬ ª®à®âª¨©  ­ «®£ á ¨á¯®«ì§®¢ ­¨¥¬ ¬ ªà®á®¢
827
 
831
 
828
;   mov  eax,0                   ; äã­ªæ¨ï 0: ®¯à¥¤¥«¨âì ®ª­®
832
;   mov  eax,0                   ; äã­ªæ¨ï 0: ®¯à¥¤¥«¨âì ®ª­®
829
;   mov  ebx,200*65536+300       ; [x áâ àâ] *65536 + [x à §¬¥à]
833
;   mov  ebx,200*65536+300       ; [x áâ àâ] *65536 + [x à §¬¥à]
830
;   mov  ecx,200*65536+150       ; [y áâ àâ] *65536 + [y à §¬¥à]
834
;   mov  ecx,200*65536+150       ; [y áâ àâ] *65536 + [y à §¬¥à]
831
;   mov  edx, [sc.work]          ; 梥â ä®­ 
835
;   mov  edx, [sc.work]          ; 梥â ä®­ 
832
;   or   edx, 0x33000000         ; ¨ ⨯ ®ª­  3
836
;   or   edx, 0x33000000         ; ¨ ⨯ ®ª­  3
833
;   mov  edi,header              ; ‡€ƒŽ‹Ž‚ŽŠ ŽŠ€
837
;   mov  edi,header              ; ‡€ƒŽ‹Ž‚ŽŠ ŽŠ€
834
;   int  0x40
838
;   int  0x40
835
 
839
 
836
    mov   edx, [sc.work]	 ; 梥â ä®­ 
840
    mov   edx, [sc.work]	 ; 梥â ä®­ 
837
    or	  edx, 0x33000000	 ; ¨ ⨯ ®ª­  3
841
    or	  edx, 0x33000000	 ; ¨ ⨯ ®ª­  3
838
    mcall 0, <0,760>, <200,250>, , ,title
842
    mcall 0, <20,WHITE_W*15+9>, <200,250>, , ,title
839
 
843
	
840
    mcall 8,  <0,50>, <0,100>, 0x21, 0xff7a74
844
    mcall 8,  , <0,100>, 0x21, 0xff7a74
841
    mcall 8,  <50,50>, <0,100>, 0x23, 0x907040
845
    mcall 8,  , <0,100>, 0x23, 0x907040
842
    mcall 8,  <100,50>, <0,100>, 0x25, 0xa08050
846
    mcall 8,  , <0,100>, 0x25, 0xa08050
843
    mcall 8,  <150,50>, <0,100>, 0x26, 0xb09060
847
    mcall 8,  , <0,100>, 0x26, 0xb09060
844
    mcall 8,  <200,50>, <00,100>, 0x28, 0xc0a070
848
    mcall 8,  , <00,100>, 0x28, 0xc0a070
845
    mcall 8,  <250,50>, <00,100>, 0x2a, 0xd0b080
849
    mcall 8,  , <00,100>, 0x2a, 0xd0b080
846
    mcall 8,  <300,50>, <0,100>, 0x2c, 0xe0c090
850
    mcall 8,  , <0,100>, 0x2c, 0xe0c090
847
    mcall 8,  <350,50>, <0,100>, 0x31, 0xffa97c
851
    mcall 8,  , <0,100>, 0x31, 0xffa97c
848
    mcall 8,  <400,50>, <0,100>, 0x33, 0xaf8d8d
852
    mcall 8,  , <0,100>, 0x33, 0xaf8d8d
849
    mcall 8,  <450,50>, <0,100>, 0x35, 0xbf9d9d
853
    mcall 8,  , <0,100>, 0x35, 0xbf9d9d
850
    mcall 8,  <500,50>, <0,100>, 0x36, 0xcfadad
854
    mcall 8,  , <0,100>, 0x36, 0xcfadad
851
    mcall 8,  <550,50>, <00,100>, 0x38, 0xdfbdbd
855
    mcall 8,  , <00,100>, 0x38, 0xdfbdbd
852
    mcall 8,  <600,50>, <00,100>, 0x3a, 0xefcdcd
856
    mcall 8,  , <00,100>, 0x3a, 0xefcdcd
853
    mcall 8,  <650,50>, <0,100>, 0x3c, 0xffdddd
857
    mcall 8,  , <0,100>, 0x3c, 0xffdddd
854
    mcall 8,  <700,50>, <0,100>, 0x41, 0xffe558
858
    mcall 8,  , <0,100>, 0x41, 0xffe558
855
 
859
 
856
    mcall 8,  <35,30>, <0,50>, 0x22, 0x221100
860
    mcall 8,  , <0,50>, 0x22, 0x221100
857
    mcall 8,  <85,30>, <0,50>, 0x24, 0x221100
861
    mcall 8,  , <0,50>, 0x24, 0x221100
858
    mcall 8,  <185,30>, <0,50>, 0x27, 0x221100
862
    mcall 8,  , <0,50>, 0x27, 0x221100
859
    mcall 8,  <235,30>, <0,50>, 0x29, 0x221100
863
    mcall 8,  , <0,50>, 0x29, 0x221100
860
    mcall 8,  <285,30>, <0,50>, 0x2b, 0x221100
864
    mcall 8,  , <0,50>, 0x2b, 0x221100
861
    mcall 8,  <385,30>, <0,50>, 0x32, 0x221100
865
    mcall 8,  , <0,50>, 0x32, 0x221100
862
    mcall 8,  <435,30>, <0,50>, 0x34, 0x221100
866
    mcall 8,  , <0,50>, 0x34, 0x221100
863
    mcall 8,  <535,30>, <0,50>, 0x37, 0x221100
867
    mcall 8,  , <0,50>, 0x37, 0x221100
864
    mcall 8,  <585,30>, <0,50>, 0x39, 0x221100
868
    mcall 8,  , <0,50>, 0x39, 0x221100
865
    mcall 8,  <635,30>, <0,50>, 0x3b, 0x221100
869
    mcall 8,  , <0,50>, 0x3b, 0x221100
866
 
870
 
867
    mcall 8,  <0,50>, <100,100>, 0xa1, 0x702050
871
    mcall 8,  , <100,100>, 0xa1, 0x702050
868
    mcall 8,  <50,50>, <100,100>, 0x03, 0x683638
872
    mcall 8,  , <100,100>, 0x03, 0x683638
869
    mcall 8,  <100,50>, <100,100>, 0x05, 0x784648
873
    mcall 8,  , <100,100>, 0x05, 0x784648
870
    mcall 8,  <150,50>, <100,100>, 0x06, 0x885658
874
    mcall 8,  , <100,100>, 0x06, 0x885658
871
    mcall 8,  <200,50>, <100,100>, 0x08, 0x986668
875
    mcall 8,  , <100,100>, 0x08, 0x986668
872
    mcall 8,  <250,50>, <100,100>, 0x0a, 0xa87678
876
    mcall 8,  , <100,100>, 0x0a, 0xa87678
873
    mcall 8,  <300,50>, <100,100>, 0x0c, 0xb88688
877
    mcall 8,  , <100,100>, 0x0c, 0xb88688
874
    mcall 8,  <350,50>, <100,100>, 0x11, 0x880040
878
    mcall 8,  , <100,100>, 0x11, 0x880040
875
    mcall 8,  <400,50>, <100,100>, 0x13, 0x90622b
879
    mcall 8,  , <100,100>, 0x13, 0x90622b
876
    mcall 8,  <450,50>, <100,100>, 0x15, 0xa0723b
880
    mcall 8,  , <100,100>, 0x15, 0xa0723b
877
    mcall 8,  <500,50>, <100,100>, 0x16, 0xb0824b
881
    mcall 8,  , <100,100>, 0x16, 0xb0824b
878
    mcall 8,  <550,50>, <100,100>, 0x18, 0xc0925b
882
    mcall 8,  , <100,100>, 0x18, 0xc0925b
879
    mcall 8,  <600,50>, <100,100>, 0x1a, 0xd0a26b
883
    mcall 8,  , <100,100>, 0x1a, 0xd0a26b
880
    mcall 8,  <650,50>, <100,100>, 0x1c, 0xe0b27b
884
    mcall 8,  , <100,100>, 0x1c, 0xe0b27b
881
    mcall 8,  <700,50>, <100,100>, 0x21, 0xff7a74
885
    mcall 8,  , <100,100>, 0x21, 0xff7a74
882
 
886
 
883
    mcall 8,  <35,30>, <100,50>, 0x02, 0x221100
887
    mcall 8,  , <100,50>, 0x02, 0x221100
884
    mcall 8,  <85,30>, <100,50>, 0x04, 0x221100
888
    mcall 8,  , <100,50>, 0x04, 0x221100
885
    mcall 8,  <185,30>, <100,50>, 0x07, 0x221100
889
    mcall 8,  , <100,50>, 0x07, 0x221100
886
    mcall 8,  <235,30>, <100,50>, 0x09, 0x221100
890
    mcall 8,  , <100,50>, 0x09, 0x221100
887
    mcall 8,  <285,30>, <100,50>, 0x0b, 0x221100
891
    mcall 8,  , <100,50>, 0x0b, 0x221100
888
    mcall 8,  <385,30>, <100,50>, 0x12, 0x221100
892
    mcall 8,  , <100,50>, 0x12, 0x221100
889
    mcall 8,  <435,30>, <100,50>, 0x14, 0x221100
893
    mcall 8,  , <100,50>, 0x14, 0x221100
890
    mcall 8,  <535,30>, <100,50>, 0x17, 0x221100
894
    mcall 8,  , <100,50>, 0x17, 0x221100
891
    mcall 8,  <585,30>, <100,50>, 0x19, 0x221100
895
    mcall 8,  , <100,50>, 0x19, 0x221100
892
    mcall 8,  <635,30>, <100,50>, 0x1b, 0x221100
896
    mcall 8,  , <100,50>, 0x1b, 0x221100
893
 
897
 
894
 
898
 
895
    ; ¢ë¢®¤ ⥪á⮢®© áâப¨
899
    ; ¢ë¢®¤ ⥪á⮢®© áâப¨
896
    mov   ecx, [sc.work_text]	 ; 梥â ä®­ 
900
    mov   ecx, [sc.work_text]	 ; 梥â ä®­ 
897
    or	  ecx, 0x90000000	 ; ¨ ⨯ áâப¨
901
    or	  ecx, 0x90000000	 ; ¨ ⨯ áâப¨
898
    mcall 4, <50, 205>, , message
902
    mcall 4, <50, 205>, , message
899
    mcall 4, <10, 235>, , message1
903
    mcall 4, <10, 235>, , message1
900
    mcall 4, <10, 260>, , message2
904
    mcall 4, <10, 260>, , message2
901
    mcall 4, <10, 285>, , message3
905
    mcall 4, <10, 285>, , message3
902
    mcall 4, <10, 310>, , message4
906
    mcall 4, <10, 310>, , message4
903
    mcall 4, <15, 185>, , message5
-
 
904
    mcall 4, <65, 185>, , message6
-
 
905
    mcall 4, <115, 185>, , message7
-
 
906
    mcall 4, <165, 185>, , message8
907
    mcall 4, <16, 185>, , t_notes
907
    mcall 4, <210, 185>, , message9
-
 
908
    mcall 4, <265, 185>, , message10
-
 
909
    mcall 4, <315, 185>, , message11
-
 
910
    mcall 4, <365, 185>, , message5
-
 
911
 
908
 
912
    mcall 12, 2 		 ; äã­ªæ¨ï 12.2, § ª®­ç¨«¨ à¨á®¢ âì
909
    mcall 12, 2 		 ; äã­ªæ¨ï 12.2, § ª®­ç¨«¨ à¨á®¢ âì
913
 
910
 
914
    ret 			 ; ¢ë室¨¬ ¨§ ¯à®æ¥¤ãàë
911
    ret 			 ; ¢ë室¨¬ ¨§ ¯à®æ¥¤ãàë
915
 
912
 
916
 
913
 
917
;---------------------------------------------------------------------
914
;---------------------------------------------------------------------
918
;---  „€›… Žƒ€ŒŒ›  ----------------------------------------------
915
;---  „€›… Žƒ€ŒŒ›  ----------------------------------------------
919
;---------------------------------------------------------------------
916
;---------------------------------------------------------------------
920
 
917
 
921
 
918
 
922
; ‚â®à®© ¡ ©â ¢ M (Music) ¨§¬¥­ï¥âáï ­ ¦ â¨¥¬ ª« ¢¨è¨
919
; ‚â®à®© ¡ ©â ¢ M (Music) ¨§¬¥­ï¥âáï ­ ¦ â¨¥¬ ª« ¢¨è¨
923
 
920
 
924
M:
921
M:
925
  db  0x90, 0x30, 0
922
  db  0x90, 0x30, 0
926
 
923
 
927
 
924
 
928
sc system_colors
925
sc system_colors
929
 
926
 
930
message db '‘¯à ¢ª : éñ«ª­¨â¥ 2 à §  ­  § £®«®¢ª¥.',0
927
message db '‘¯à ¢ª : éñ«ª­¨â¥ 2 à §  ­  § £®«®¢ª¥.',0
931
message1 db ' ¦¬¨â¥ «î¡ãî ª« ¢¨èã ¢  ­£«¨©áª®© à áª« ¤ª¥ - ',0
928
message1 db ' ¦¬¨â¥ «î¡ãî ª« ¢¨èã ¢  ­£«¨©áª®© à áª« ¤ª¥ - ',0
932
message2  db '¤®«¦¥­ §¢ãç âì ¤¨­ ¬¨ª ª®¬¯ìîâ¥à .',0
929
message2  db '¤®«¦¥­ §¢ãç âì ¢áâ஥­­ë© ¤¨­ ¬¨ª ª®¬¯ìîâ¥à  (­¥ ª®«®­ª¨!)',0
933
message3  db '®â  "„®" - ª« ¢¨è¨ V,Tab,U,Enter, ¯à¨ ¢ª«î祭¨¨',0
930
message3  db '®â  "„®" - ª« ¢¨è¨ V,Tab,U,Enter, ¯à¨ ¢ª«î祭¨¨',0
934
message4  db 'Caps Lock - ª« ¢¨è¨ V,Q,I.',0
931
message4  db 'Caps Lock - ª« ¢¨è¨ V,Q,I.',0
935
message5  db '„Ž',0
-
 
936
message6  db '…',0
-
 
937
message7  db 'Œˆ',0
-
 
938
message8  db '”€',0
-
 
939
message9  db '‘Ž‹œ',0
932
t_notes  db '„Ž    …    Œˆ    ”€   ‘Ž‹œ   ‹Ÿ    ‘ˆ    „Ž',0
940
message10  db '‹Ÿ',0
-
 
941
message11  db '‘ˆ',0
-
 
942
title db '„¥â᪮¥ ¯¨ ­¨­®',0
933
title db '„¥â᪮¥ ¯¨ ­¨­®',0
943
 
934
 
944
;---------------------------------------------------------------------
935
;---------------------------------------------------------------------
945
 
936
 
946
I_END:			; ¬¥âª  ª®­æ  ¯à®£à ¬¬ë
937
I_END:			; ¬¥âª  ª®­æ  ¯à®£à ¬¬ë
947
  rb 4096		; ¯ ¬ïâì ¤«ï á⥪ 
938
  rb 4096		; ¯ ¬ïâì ¤«ï á⥪ 
948
align 16
939
align 16
949
STACKTOP:		; ¬¥âª  ¢¥à設ë á⥪  (¯à¨ § ¯®«­¥­¨¨ á⥪
940
STACKTOP:		; ¬¥âª  ¢¥à設ë á⥪  (¯à¨ § ¯®«­¥­¨¨ á⥪
950
			; à áâ¥â ¢ áâ®à®­ã 㬥­ì襭¨ï  ¤à¥á®¢, ¯®â®¬ã
941
			; à áâ¥â ¢ áâ®à®­ã 㬥­ì襭¨ï  ¤à¥á®¢, ¯®â®¬ã
951
			; ¯ ¬ïâì ¤«ï ­¥£® ¢ ª®¤¥ ¯à®£à ¬¬ë ¢áâà¥ç ¥âáï
942
			; ¯ ¬ïâì ¤«ï ­¥£® ¢ ª®¤¥ ¯à®£à ¬¬ë ¢áâà¥ç ¥âáï
952
			; à ­ìè¥ ç¥¬ ¥£® ¢¥à設 )
943
			; à ­ìè¥ ç¥¬ ¥£® ¢¥à設 )
953
MEM:			; ¬¥âª  㪠§ë¢ îé ï ­  ª®­¥æ ¯à®£à ¬¬ë ¯«îá
944
MEM:			; ¬¥âª  㪠§ë¢ îé ï ­  ª®­¥æ ¯à®£à ¬¬ë ¯«îá
954
			; à §¬¥à ¨á¯®«ì§ã¥¬®© ¥î ®¯¥à â¨¢­®© ¯ ¬ïâ¨
945
			; à §¬¥à ¨á¯®«ì§ã¥¬®© ¥î ®¯¥à â¨¢­®© ¯ ¬ïâ¨
955
; €¤à¥á ¬¥âª¨ MEM ¢á¥£¤  ¤®«¦¥­ ¡ëâì ¡®«ìè¥ ç¥¬  ¤à¥á ¬¥âª¨ I_END.
946
; €¤à¥á ¬¥âª¨ MEM ¢á¥£¤  ¤®«¦¥­ ¡ëâì ¡®«ìè¥ ç¥¬  ¤à¥á ¬¥âª¨ I_END.
956
; Œ¥âª  STACKTOP ¤®«¦­  à á¯®« £ ¥âáï ¯®á«¥ ¬¥âª¨ I_END ¨ ¯¥à¥¤ ¬¥âª®©
947
; Œ¥âª  STACKTOP ¤®«¦­  à á¯®« £ ¥âáï ¯®á«¥ ¬¥âª¨ I_END ¨ ¯¥à¥¤ ¬¥âª®©
957
;   MEM. STACKTOP ¬®¦¥â ­ å®¤¨âáï ¨ ¯¥à¥¤ I_END, ­® íâ® ­¥ ¯à ¢¨«ì­®.
948
;   MEM. STACKTOP ¬®¦¥â ­ å®¤¨âáï ¨ ¯¥à¥¤ I_END, ­® íâ® ­¥ ¯à ¢¨«ì­®.
958
; ˆ¬¥­  ¬¥â®ª ¬®£ãâ ¡ëâì á «î¡ë¬¨ ­ §¢ ­¨ï¬¨, £« ¢­®¥ ᮡ«î¤ âì
949
; ˆ¬¥­  ¬¥â®ª ¬®£ãâ ¡ëâì á «î¡ë¬¨ ­ §¢ ­¨ï¬¨, £« ¢­®¥ ᮡ«î¤ âì
959
;   ¯à ¢¨«ì­ë© ¯®à冷ª ¨å à á¯®«®¦¥­¨ï.
950
;   ¯à ¢¨«ì­ë© ¯®à冷ª ¨å à á¯®«®¦¥­¨ï.
960
>
951
>