Subversion Repositories Kolibri OS

Rev

Rev 109 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
485 heavyiron 1
include "..\..\..\macros.inc"
31 halyavin 2
 
3
initipc:
4
 mov eax,9
5
 mov ebx,prc
6
 mov ecx,-1
485 heavyiron 7
 mcall
31 halyavin 8
 
9
 mov ecx,eax
10
loop1:
11
 push ecx
12
 
13
 mov eax,9
14
 mov ebx,prc
485 heavyiron 15
 mcall
31 halyavin 16
 
17
 cmp word [prc+10],'CM'
18
 jne no_cmd
19
 cmp byte [prc+12],'D'
20
 jne no_cmd
21
 
22
 mov ebx,[prc+30]
23
 mov dword [cmdpid],ebx
24
 
25
 mov dword [cmdnumb],ecx
26
 
27
no_cmd:
28
 pop ecx
29
 loop loop1
30
 
31
 cmp dword [cmdpid],0
32
 jne no_exit
33
 
34
 jmp exit
35
 
36
no_exit:
37
 mov eax,60
38
 mov ebx,2
39
 mov ecx,dword [cmdpid]
40
 mov edx,printf
41
 mov esi,4
485 heavyiron 42
 mcall
31 halyavin 43
 
44
 call initcmd
45
 
46
waitcmdinit:
47
 mov eax,40
48
 mov ebx,01000000b
485 heavyiron 49
 mcall
31 halyavin 50
 
51
 mov eax,23
52
 mov ebx,100
485 heavyiron 53
 mcall
31 halyavin 54
 
55
 cmp eax,7
56
 je cmd_ok
57
 
58
 jmp exit
59
 
60
cmd_ok:
61
 cmp byte [ipcb+16],'.'
62
 jne exit
63
 
64
 mov eax,18
65
 mov ebx,3
66
 mov ecx,dword [cmdnumb]
485 heavyiron 67
 mcall
31 halyavin 68
 
69
 ret
70
 
71
pause1:
72
 mov eax,5
73
 mov ebx,1
485 heavyiron 74
 mcall
31 halyavin 75
 ret
76
 
77
exit:
485 heavyiron 78
 or eax,-1
79
 mcall
31 halyavin 80
 
81
cls:
82
 mov eax,60
83
 mov ebx,2
84
 mov ecx,dword [cmdpid]
85
 mov edx,ipccls
86
 mov esi,4
485 heavyiron 87
 mcall
31 halyavin 88
 
89
 call pause1
90
 
91
 ret
92
 
93
print:
94
 mov ecx,84
95
loopprt:
96
 mov edi,stripc
97
 add edi,ecx
98
 mov esi,fill_symbol
99
 movsb
100
 
101
 loop loopprt
102
 
103
 cld
104
 mov ecx,4
105
 mov edi,stripc
106
 mov esi,printf
107
 rep movsb
108
 
109
 cld
110
 mov edx,79
111
 sub edx,eax
112
 mov ecx,79
113
 sub ecx,edx
114
 mov edi,stripc+4
115
 mov esi,ebx
116
 rep movsb
117
 
118
 mov eax,60
119
 mov ebx,2
120
 mov ecx,dword [cmdpid]
121
 mov edx,stripc
122
 mov esi,84
485 heavyiron 123
 mcall
31 halyavin 124
 
125
 call pause1
126
 
127
 ret
128
 
129
eol:
130
 mov eax,60
131
 mov ebx,2
132
 mov ecx,dword [cmdpid]
133
 mov edx,ipceol
134
 mov esi,4
485 heavyiron 135
 mcall
31 halyavin 136
 
137
 call pause1
138
 
139
 ret
140
 
141
initcmd:
142
 mov eax,60
143
 mov ebx,2
144
 mov ecx,dword [cmdpid]
145
 mov edx,ipckey
146
 mov esi,4
485 heavyiron 147
 mcall
31 halyavin 148
 
149
 mov eax,60
150
 mov ebx,1
151
 mov ecx,ipcb
152
 mov edx,28
485 heavyiron 153
 mcall
31 halyavin 154
 
155
 cld
156
 mov ecx,28
157
 mov edi,ipcb
158
 mov esi,ipcc
159
 rep movsb
160
 
161
 ret
162
 
163
getkey:
164
 call initcmd
165
 
166
waitagain:
167
 mov eax,40
168
 mov ebx,01000000b
485 heavyiron 169
 mcall
31 halyavin 170
 
171
 mov eax,10
485 heavyiron 172
 mcall
31 halyavin 173
 
174
 cmp eax,7
175
 jne waitagain
176
 
177
 mov edi,key
178
 mov esi,ipcb+16
179
 movsb
180
 
181
 ret
182
 
183
endipc:
184
 mov eax,60
185
 mov ebx,2
186
 mov ecx,dword [cmdpid]
187
 mov edx,ipcend
188
 mov esi,4
485 heavyiron 189
 mcall
31 halyavin 190
 
191
 jmp exit
192
 
193
cmdpid dd 0
194
cmdnumb dd 0
195
 
196
printf db '~ppp'
197
ipceol db '~lll'
198
ipcend db '~eee'
199
ipccls db '~ccc'
200
ipckey db '~kkk'
201
 
202
key db 0
203
 
204
ipcb:
205
 db 0
206
 db 0,0,0
207
 dd 8
208
times 20 db 0
209
 
210
ipcc:
211
 db 0
212
 db 0,0,0
213
 dd 8
214
times 20 db 0
215
 
216
stripc: times 84 db 0
217
 
218
fill_symbol db 0
219
 
220
prc: times 52 db 0
221