Rev 6258 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 6258 | Rev 6890 | ||
---|---|---|---|
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 0x0 ; ¤à¥á æ¨ï á ã«ï |
29 | org 0 ; ¤à¥á æ¨ï á ã«ï |
30 | 30 | ||
31 | db 'MENUET01' ; 8-¡ ©âë© ¨¤¥â¨ä¨ª â®à MenuetOS |
31 | db 'MENUET01' ; 8-¡ ©âë© ¨¤¥â¨ä¨ª â®à MenuetOS |
32 | dd 0x01 ; ¢¥àá¨ï § £®«®¢ª (¢á¥£¤ 1) |
32 | dd 1 ; ¢¥àá¨ï § £®«®¢ª (¢á¥£¤ 1) |
33 | dd START ; ¤à¥á ¯¥à¢®© ª®¬ ¤ë |
33 | dd START ; ¤à¥á ¯¥à¢®© ª®¬ ¤ë |
34 | dd I_END ; à §¬¥à ¯à®£à ¬¬ë |
34 | dd I_END ; à §¬¥à ¯à®£à ¬¬ë |
35 | dd 0x1000 ; ª®«¨ç¥á⢮ ¯ ¬ï⨠|
35 | dd MEM ; ª®«¨ç¥á⢮ ¯ ¬ï⨠|
36 | dd 0x1000 ; ¤à¥á ¢¥àè¨ë áâíª |
36 | dd STACKTOP ; ¤à¥á ¢¥àè¨ë áâíª |
37 | dd 0x0 ; ¤à¥á ¡ãä¥à ¤«ï ¯ à ¬¥â஢ |
37 | dd 0 ; ¤à¥á ¡ãä¥à ¤«ï ¯ à ¬¥â஢ |
38 | dd 0x0 ; § १¥à¢¨à®¢ ® |
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 | 58 | ||
59 | cmp eax,1 ; ¯¥à¥à¨á®¢ âì ®ª® ? |
59 | cmp eax,1 ; ¯¥à¥à¨á®¢ âì ®ª® ? |
60 | je red ; ¥á«¨ ¤ - ¬¥âªã red |
60 | je red ; ¥á«¨ ¤ - ¬¥âªã red |
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 | 65 | ||
66 | jmp still ; ¥á«¨ ¤à㣮¥ ᮡë⨥ - ¢ ç «® 横« |
66 | jmp still ; ¥á«¨ ¤à㣮¥ ᮡë⨥ - ¢ ç «® 横« |
67 | 67 | ||
68 | 68 | ||
69 | ;--------------------------------------------------------------------- |
69 | ;--------------------------------------------------------------------- |
70 | 70 | ||
71 | 71 | ||
72 | key: ; ¦ â ª« ¢¨è ª« ¢¨ âãॠ|
72 | key: ; ¦ â ª« ¢¨è ª« ¢¨ âãॠ|
73 | mcall 2 ; äãªæ¨ï 2 - áç¨â âì ª®¤ ᨬ¢®« (¢ ah) |
73 | mcall 2 ; äãªæ¨ï 2 - áç¨â âì ª®¤ ᨬ¢®« (¢ ah) |
74 | 74 | ||
75 | mov [Music+1], ah ; § ¯¨á âì ª®¤ ᨬ¢®« ª ª ª®¤ ®âë |
75 | mov [Music+1], ah ; § ¯¨á âì ª®¤ ᨬ¢®« ª ª ª®¤ ®âë |
76 | 76 | ||
77 | ; äãªæ¨ï 55-55: á¨áâ¥¬ë© ¤¨ ¬¨ª ("PlayNote") |
77 | ; äãªæ¨ï 55-55: á¨áâ¥¬ë© ¤¨ ¬¨ª ("PlayNote") |
78 | ; esi - ¤à¥á ¬¥«®¤¨¨ |
78 | ; esi - ¤à¥á ¬¥«®¤¨¨ |
79 | 79 | ||
80 | ; mov eax,55 |
80 | ; mov eax,55 |
81 | ; mov ebx,eax |
81 | ; mov ebx,eax |
82 | ; mov esi,Music |
82 | ; mov esi,Music |
83 | ; int 0x40 |
83 | ; int 0x40 |
84 | 84 | ||
85 | ; ¨«¨ ª®à®âª®: |
85 | ; ¨«¨ ª®à®âª®: |
86 | mcall 55, eax, , , Music |
86 | mcall 55, eax, , , Music |
87 | 87 | ||
88 | jmp still ; ¢¥àãâìáï ª ç «ã 横« |
88 | jmp still ; ¢¥àãâìáï ª ç «ã 横« |
89 | 89 | ||
90 | ;--------------------------------------------------------------------- |
90 | ;--------------------------------------------------------------------- |
91 | 91 | ||
92 | button: |
92 | button: |
93 | mcall 17 ; 17 - ¯®«ãç¨âì ¨¤¥â¨ä¨ª â®à ¦ ⮩ ª®¯ª¨ |
93 | mcall 17 ; 17 - ¯®«ãç¨âì ¨¤¥â¨ä¨ª â®à ¦ ⮩ ª®¯ª¨ |
94 | 94 | ||
95 | cmp ah, 1 ; ¥á«¨ ¦ â ª®¯ª á ®¬¥à®¬ 1, |
95 | cmp ah, 1 ; ¥á«¨ ¦ â ª®¯ª á ®¬¥à®¬ 1, |
96 | jne still ; ¢¥àãâìáï |
96 | jne still ; ¢¥àãâìáï |
97 | 97 | ||
98 | .exit: |
98 | .exit: |
99 | mcall -1 ; ¨ ç¥ ª®¥æ ¯à®£à ¬¬ë |
99 | mcall -1 ; ¨ ç¥ ª®¥æ ¯à®£à ¬¬ë |
100 | 100 | ||
101 | 101 | ||
102 | ;--------------------------------------------------------------------- |
102 | ;--------------------------------------------------------------------- |
103 | ;--- ---------------------------------- |
103 | ;--- ---------------------------------- |
104 | ;--------------------------------------------------------------------- |
104 | ;--------------------------------------------------------------------- |
105 | 105 | ||
106 | draw_window: |
106 | draw_window: |
107 | 107 | ||
108 | mcall 12, 1 ; äãªæ¨ï 12: á®®¡é¨âì ® ç «¥ ®âà¨á®¢ª¨ |
108 | mcall 12, 1 ; äãªæ¨ï 12: á®®¡é¨âì ® ç «¥ ®âà¨á®¢ª¨ |
109 | 109 | ||
110 | mcall 48, 3, sc,sizeof.system_colors |
110 | mcall 48, 3, sc,sizeof.system_colors |
111 | 111 | ||
112 | ; ¤ «¥¥: á ç « ¤«¨ë© ¢ ਠâ (§ ª®¬¬¥â¨à®¢ ë©) |
112 | ; ¤ «¥¥: á ç « ¤«¨ë© ¢ ਠâ (§ ª®¬¬¥â¨à®¢ ë©) |
113 | ; § ⥬ ª®à®âª¨© «®£ á ¨á¯®«ì§®¢ ¨¥¬ ¬ ªà®á®¢ |
113 | ; § ⥬ ª®à®âª¨© «®£ á ¨á¯®«ì§®¢ ¨¥¬ ¬ ªà®á®¢ |
114 | 114 | ||
115 | ; mov eax,0 ; äãªæ¨ï 0: ®¯à¥¤¥«¨âì ®ª® |
115 | ; mov eax,0 ; äãªæ¨ï 0: ®¯à¥¤¥«¨âì ®ª® |
116 | ; mov ebx,200*65536+300 ; [x áâ àâ] *65536 + [x à §¬¥à] |
116 | ; mov ebx,200*65536+300 ; [x áâ àâ] *65536 + [x à §¬¥à] |
117 | ; mov ecx,200*65536+150 ; [y áâ àâ] *65536 + [y à §¬¥à] |
117 | ; mov ecx,200*65536+150 ; [y áâ àâ] *65536 + [y à §¬¥à] |
118 | ; mov edx, [sc.work] ; 梥â ä® |
118 | ; mov edx, [sc.work] ; 梥â ä® |
119 | ; or edx, 0x33000000 ; ¨ ⨯ ®ª 3 |
119 | ; or edx, 0x33000000 ; ¨ ⨯ ®ª 3 |
120 | ; mov edi,header ; |
120 | ; mov edi,header ; |
121 | ; int 0x40 |
121 | ; int 0x40 |
122 | 122 | ||
123 | mov edx, [sc.work] ; 梥â ä® |
123 | mov edx, [sc.work] ; 梥â ä® |
124 | or edx, 0x33000000 ; ¨ ⨯ ®ª 3 |
124 | or edx, 0x33000000 ; ¨ ⨯ ®ª 3 |
125 | mcall 0, <200,300>, <200,150>, , ,title |
125 | mcall 0, <200,300>, <200,150>, , ,title |
126 | 126 | ||
127 | ; ¢ë¢®¤ ⥪á⮢®© áâப¨ |
127 | ; ¢ë¢®¤ ⥪á⮢®© áâப¨ |
128 | mov ecx, [sc.work_text] ; 梥â ä® |
128 | mov ecx, [sc.work_text] ; 梥â ä® |
129 | or ecx, 0x90000000 ; ¨ ⨯ áâப¨ |
129 | or ecx, 0x90000000 ; ¨ ⨯ áâப¨ |
130 | mcall 4, <10, 20>, 0x90000000, message |
130 | mcall 4, <10, 20>, , message |
131 | 131 | ||
132 | 132 | ||
133 | mcall 12, 2 ; äãªæ¨ï 12.2, § ª®ç¨«¨ à¨á®¢ âì |
133 | mcall 12, 2 ; äãªæ¨ï 12.2, § ª®ç¨«¨ à¨á®¢ âì |
134 | 134 | ||
135 | ret ; ¢ë室¨¬ ¨§ ¯à®æ¥¤ãàë |
135 | ret ; ¢ë室¨¬ ¨§ ¯à®æ¥¤ãàë |
136 | 136 | ||
137 | 137 | ||
138 | ;--------------------------------------------------------------------- |
138 | ;--------------------------------------------------------------------- |
139 | ;--- ---------------------------------------------- |
139 | ;--- ---------------------------------------------- |
140 | ;--------------------------------------------------------------------- |
140 | ;--------------------------------------------------------------------- |
141 | 141 | ||
142 | ; ®â â ª ï ¢®â ª®à®âª ï "¬¥«®¤¨ï". |
142 | ; ®â â ª ï ¢®â ª®à®âª ï "¬¥«®¤¨ï". |
143 | ; â®à®© ¡ ©â ¨§¬¥ï¥âáï ¦ ⨥¬ ª« ¢¨èë |
143 | ; â®à®© ¡ ©â ¨§¬¥ï¥âáï ¦ ⨥¬ ª« ¢¨èë |
144 | 144 | ||
145 | Music: |
145 | Music: |
146 | db 0x90, 0x30, 0 |
146 | db 0x90, 0x30, 0 |
147 | 147 | ||
148 | sc system_colors |
148 | sc system_colors |
149 | 149 | ||
150 | message db ' ¦¬¨â¥ «î¡ãî ª« ¢¨èã...',0 |
150 | message db ' ¦¬¨â¥ «î¡ãî ª« ¢¨èã...',0 |
151 | title db 'ਬ¥à ¯à®£à ¬¬ë',0 |
151 | title db 'ਬ¥à ¯à®£à ¬¬ë',0 |
152 | 152 | ||
153 | ;--------------------------------------------------------------------- |
153 | ;--------------------------------------------------------------------- |
154 | 154 | ||
155 | I_END: ; ¬¥âª ª®æ ¯à®£à ¬¬ë10,>200,150>200,300> |
155 | I_END: ; ¬¥âª ª®æ ¯à®£à ¬¬ë |
- | 156 | rb 4096 ; ¯ ¬ïâì ¤«ï á⥪ |
|
- | 157 | align 16 |
|
- | 158 | STACKTOP: ; ¬¥âª ¢¥àè¨ë á⥪ (¯à¨ § ¯®«¥¨¨ á⥪ |
|
- | 159 | ; à áâ¥â ¢ áâ®à®ã 㬥ìè¥¨ï ¤à¥á®¢, ¯®â®¬ã |
|
- | 160 | ; ¯ ¬ïâì ¤«ï ¥£® ¢ ª®¤¥ ¯à®£à ¬¬ë ¢áâà¥ç ¥âáï |
|
- | 161 | ; à ìè¥ ç¥¬ ¥£® ¢¥àè¨ ) |
|
- | 162 | MEM: ; ¬¥âª 㪠§ë¢ îé ï ª®¥æ ¯à®£à ¬¬ë ¯«îá |
|
- | 163 | ; à §¬¥à ¨á¯®«ì§ã¥¬®© ¥î ®¯¥à ⨢®© ¯ ¬ï⨠|
|
- | 164 | ; ¤à¥á ¬¥âª¨ MEM ¢á¥£¤ ¤®«¦¥ ¡ëâì ¡®«ìè¥ ç¥¬ ¤à¥á ¬¥âª¨ I_END. |
|
- | 165 | ; ¥âª STACKTOP ¤®«¦ à ᯮ« £ ¥âáï ¯®á«¥ ¬¥âª¨ I_END ¨ ¯¥à¥¤ ¬¥âª®© |
|
- | 166 | ; MEM. STACKTOP ¬®¦¥â 室¨âáï ¨ ¯¥à¥¤ I_END, ® íâ® ¥ ¯à ¢¨«ì®. |
|
- | 167 | ; ¬¥ ¬¥â®ª ¬®£ãâ ¡ëâì á «î¡ë¬¨ §¢ ¨ï¬¨, £« ¢®¥ ᮡ«î¤ âì |
|
- | 168 | ; ¯à ¢¨«ìë© ¯®à冷ª ¨å à ᯮ«®¦¥¨ï.10,>200,150>200,300> |
|
156 | 169 |