Subversion Repositories Kolibri OS

Rev

Rev 195 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 195 Rev 485
Line 7... Line 7...
7
;;                                                   ;;
7
;;                                                   ;;
8
;;    Compile with FASM for Menuet                   ;;
8
;;    Compile with FASM for Menuet                   ;;
9
;;                                                   ;;
9
;;                                                   ;;
10
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
10
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Line 11... Line 11...
11
 
11
 
-
 
12
version equ '0.5'
-
 
13
 
-
 
14
 
-
 
15
;__DEBUG__ equ 1
Line 12... Line 16...
12
version equ '0.4'
16
;__DEBUG_LEVEL__ equ 1
Line 13... Line 17...
13
 
17
 
Line 21... Line 25...
21
		dd	I_END			; program image size
25
		dd	I_END			; program image size
22
		dd	0x100000		; required amount of memory
26
		dd	0x100000		; required amount of memory
23
		dd	0x100000
27
		dd	0x100000
24
		dd	0,0
28
		dd	0,0
Line -... Line 29...
-
 
29
 
-
 
30
include "..\..\..\macros.inc"
25
 
31
;include "fdo.inc"
26
include "lang.inc"
32
include "eth.inc"
Line 27... Line 33...
27
;include "macros.inc"
33
;include "lang.inc"
Line 28... Line 34...
28
 
34
 
29
irc_server_ip	db	83,149,74,246		  ;server: kolibrios.org
35
irc_server_ip	db	83,149,74,246		  ;server: kolibrios.org
Line 37... Line 43...
37
 
43
 
Line 38... Line 44...
38
START:				; start of execution
44
START:				; start of execution
39
 
45
 
40
    mov  eax,40
46
    mov  eax,40
Line 41... Line 47...
41
    mov  ebx,10000111b
47
    mov  ebx,10000111b
42
    int  0x40
48
    mcall
43
 
49
 
44
    mov  edi,I_END
50
    mov  edi,I_END
Line 59... Line 65...
59
 
65
 
Line 60... Line 66...
60
    inc  [cursor_on_off]
66
    inc  [cursor_on_off]
61
 
67
 
62
    mov  eax,5
68
    mov  eax,5
Line 63... Line 69...
63
    mov  ebx,1
69
    mov  ebx,1
64
    int  0x40
70
    mcall
Line 65... Line 71...
65
 
71
 
Line 66... Line 72...
66
    mov  eax,11 		; wait here for event
72
    mov  eax,11 		; wait here for event
67
    int  0x40
73
    mcall
Line 103... Line 109...
103
 
109
 
Line 104... Line 110...
104
 
110
 
105
button: 			; button
111
button: 			; button
Line 106... Line 112...
106
 
112
 
107
    mov  eax,17 		; get id
113
    mov  eax,17 		; get id
108
    int  0x40
114
    mcall
109
 
115
 
110
    cmp  ah,1			; close program
116
    cmp  ah,1			; close program
Line 111... Line 117...
111
    jne  noclose
117
    jne  noclose
Line 112... Line 118...
112
    mov  eax,-1
118
    mov  eax,-1
Line 123... Line 129...
123
    pusha
129
    pusha
Line 124... Line 130...
124
 
130
 
125
    mov  eax,53
131
    mov  eax,53
126
    mov  ebx,6
132
    mov  ebx,6
127
    mov  ecx,[socket]
133
    mov  ecx,[socket]
Line 128... Line 134...
128
    int  0x40
134
    mcall
Line 129... Line 135...
129
 
135
 
130
    mov  [status],eax
136
    mov  [status],eax
Line 138... Line 144...
138
 
144
 
139
    mov  eax,13
145
    mov  eax,13
140
    mov  ebx,450*65536+30
146
    mov  ebx,450*65536+30
141
    mov  ecx,231*65536+10
147
    mov  ecx,231*65536+10
142
    mov  edx,0xffffff
148
    mov  edx,0xffffff
Line 143... Line 149...
143
    int  0x40
149
    mcall
144
 
150
 
145
    pop  ecx
151
    pop  ecx
146
    mov  eax,47
152
    mov  eax,47
147
    mov  ebx,2*65536
153
    mov  ebx,2*65536
148
    mov  edx,450*65536+231
154
    mov  edx,450*65536+231
Line 149... Line 155...
149
    mov  esi,0x000000
155
    mov  esi,0x000000
Line 150... Line 156...
150
    int  0x40
156
    mcall
Line 162... Line 168...
162
socket_commands:
168
socket_commands:
Line 163... Line 169...
163
 
169
 
164
    cmp  ah,22	     ; open socket
170
    cmp  ah,22	     ; open socket
165
    jnz  tst3
171
    jnz  tst3
166
    mov  eax,3
172
    mov  eax,3
167
    int  0x40
173
    mcall
168
    mov  ecx,eax
174
    mov  ecx,eax
169
    mov  eax,53
175
    mov  eax,53
170
    mov  ebx,5
176
    mov  ebx,5
171
    mov  edx,6667
177
    mov  edx,6667
172
    mov  esi,dword [irc_server_ip]
178
    mov  esi,dword [irc_server_ip]
173
    mov  edi,1
179
    mov  edi,1
174
    int  0x40
180
    mcall
175
    mov  [socket], eax
181
    mov  [socket], eax
176
    ret
182
    ret
Line 183... Line 189...
183
    mov  eax,53  ; user
189
    mov  eax,53  ; user
184
    mov  ebx,7
190
    mov  ebx,7
185
    mov  ecx,[socket]
191
    mov  ecx,[socket]
186
    mov  edx,string0l-string0
192
    mov  edx,string0l-string0
187
    mov  esi,string0
193
    mov  esi,string0
188
    int  0x40
194
    mcall
Line 189... Line 195...
189
 
195
 
190
    mov  eax,53  ;
196
    mov  eax,53  ;
191
    mov  ebx,7
197
    mov  ebx,7
192
    mov  ecx,[socket]
198
    mov  ecx,[socket]
193
    mov  edx,[user_real_name]
199
    mov  edx,[user_real_name]
194
    mov  esi,user_real_name+4
200
    mov  esi,user_real_name+4
Line 195... Line 201...
195
    int  0x40
201
    mcall
196
 
202
 
197
    mov  eax,53  ;
203
    mov  eax,53  ;
198
    mov  ebx,7
204
    mov  ebx,7
199
    mov  ecx,[socket]
205
    mov  ecx,[socket]
200
    mov  edx,2
206
    mov  edx,2
Line 201... Line 207...
201
    mov  esi,line_feed
207
    mov  esi,line_feed
202
    int  0x40
208
    mcall
203
 
209
 
Line 204... Line 210...
204
 
210
 
205
    mov  eax,5
211
    mov  eax,5
206
    mov  ebx,10
212
    mov  ebx,10
207
    int  0x40
213
    mcall
208
 
214
 
209
    mov  eax,53  ; nick
215
    mov  eax,53  ; nick
Line 210... Line 216...
210
    mov  ebx,7
216
    mov  ebx,7
211
    mov  ecx,[socket]
217
    mov  ecx,[socket]
212
    mov  edx,string1l-string1
218
    mov  edx,string1l-string1
213
    mov  esi,string1
219
    mov  esi,string1
214
    int  0x40
220
    mcall
215
 
221
 
Line 216... Line 222...
216
    mov  eax,53  ;
222
    mov  eax,53  ;
217
    mov  ebx,7
223
    mov  ebx,7
218
    mov  ecx,[socket]
224
    mov  ecx,[socket]
219
    mov  edx,[user_nick]
225
    mov  edx,[user_nick]
220
    mov  esi,user_nick+4
226
    mov  esi,user_nick+4
221
    int  0x40
227
    mcall
Line 222... Line 228...
222
 
228
 
Line 223... Line 229...
223
    mov  eax,53  ;
229
    mov  eax,53  ;
Line 238... Line 244...
238
    cmp  ah,24	   ; close socket
244
    cmp  ah,24	   ; close socket
239
    jnz  no_24
245
    jnz  no_24
240
    mov  eax,53
246
    mov  eax,53
241
    mov  ebx,8
247
    mov  ebx,8
242
    mov  ecx,[socket]
248
    mov  ecx,[socket]
243
    int  0x40
249
    mcall
244
    ret
250
    ret
245
  no_24:
251
  no_24:
Line 246... Line 252...
246
 
252
 
Line 247... Line 253...
247
 
253
 
Line 248... Line 254...
248
    ret
254
    ret
249
 
255
 
Line 250... Line 256...
250
 
256
 
Line 251... Line 257...
251
main_window_key:
257
main_window_key:
252
 
258
 
Line 296... Line 302...
296
 
302
 
297
    mov  eax,13
303
    mov  eax,13
298
    mov  ebx,415*65536+6*13
304
    mov  ebx,415*65536+6*13
299
    mov  ecx,27*65536+12*10
305
    mov  ecx,27*65536+12*10
300
    mov  edx,0xffffff
306
    mov  edx,0xffffff
Line 301... Line 307...
301
    int  0x40
307
    mcall
302
 
308
 
303
    mov  eax,4
309
    mov  eax,4
304
    mov  ebx,415*65536+27
310
    mov  ebx,415*65536+27
305
    mov  ecx,[index_list_1]
311
    mov  ecx,[index_list_1]
306
    mov  edx,channel_list+32
312
    mov  edx,channel_list+32
307
  newch:
313
  newch:
308
    movzx esi,byte [edx+31]
314
    movzx esi,byte [edx+31]
309
    and  esi,0x1f
315
    and  esi,0x1f
310
    int  0x40
316
    mcall
311
    add  edx,32
317
    add  edx,32
312
    add  ebx,12
318
    add  ebx,12
Line 372... Line 378...
372
    pusha
378
    pusha
373
    mov  eax,13
379
    mov  eax,13
374
    mov  ebx,415*65536+6*13
380
    mov  ebx,415*65536+6*13
375
    mov  ecx,27*65536+12*10
381
    mov  ecx,27*65536+12*10
376
    mov  edx,0xffffff
382
    mov  edx,0xffffff
377
    int  0x40
383
    mcall
378
    popa
384
    popa
Line 379... Line 385...
379
 
385
 
380
    mov  eax,4
386
    mov  eax,4
Line 396... Line 402...
396
    cmp  [edx],byte '@'
402
    cmp  [edx],byte '@'
397
    jne  no_op
403
    jne  no_op
398
    mov  ecx,[index_list_2]
404
    mov  ecx,[index_list_2]
399
  no_op:
405
  no_op:
Line 400... Line 406...
400
 
406
 
Line 401... Line 407...
401
    int  0x40
407
    mcall
402
 
408
 
403
    inc  ebp
409
    inc  ebp
Line 507... Line 513...
507
    add   edx,ebx
513
    add   edx,ebx
Line 508... Line 514...
508
 
514
 
509
    mov  eax, 53      ; write channel
515
    mov  eax, 53      ; write channel
510
    mov  ebx, 7
516
    mov  ebx, 7
511
    mov  ecx, [socket]
517
    mov  ecx, [socket]
Line 512... Line 518...
512
    int  0x40
518
    mcall
513
 
519
 
514
    mov  esi,send_string
520
    mov  esi,send_string
Line 515... Line 521...
515
    mov  edx,[xpos]
521
    mov  edx,[xpos]
Line 516... Line 522...
516
    inc  edx
522
    inc  edx
517
 
523
 
518
	call	recode_to_cp1251
524
	call	recode_to_cp1251
519
 
525
 
Line 520... Line 526...
520
    mov  eax, 53      ; write message
526
    mov  eax, 53      ; write message
Line 521... Line 527...
521
    mov  ebx, 7
527
    mov  ebx, 7
Line 600... Line 606...
600
  no_set_real_name:
606
  no_set_real_name:
Line 601... Line 607...
601
 
607
 
602
    cmp  [send_string+1],dword 'aser'
608
    cmp  [send_string+1],dword 'aser'
Line 603... Line 609...
603
    jne  no_set_server
609
    jne  no_set_server
604
 
610
 
605
    pusha
611
;    pusha
606
    mov   edi,irc_server_ip
612
;    mov   edi,irc_server_ip
607
    mov   esi,send_string+7
613
;    mov   esi,send_string+7
608
    mov   eax,0
614
;    mov   eax,0
609
    mov   edx,[xpos]
615
;    mov   edx,[xpos]
610
    add   edx,send_string-1
616
;    add   edx,send_string-1
611
  newsip:
617
;  newsip:
612
    cmp   [esi],byte '.'
618
;    cmp   [esi],byte '.'
613
    je	  sipn
619
;    je    sipn
614
    cmp   esi,edx
620
;    cmp   esi,edx
615
    jg	  sipn
621
;    jg    sipn
616
    movzx ebx,byte [esi]
622
;    movzx ebx,byte [esi]
617
    inc   esi
623
;    inc   esi
618
    imul  eax,10
624
;    imul  eax,10
619
    sub   ebx,48
625
;    sub   ebx,48
620
    add   eax,ebx
626
;    add   eax,ebx
621
    jmp   newsip
627
;    jmp   newsip
622
  sipn:
628
;  sipn:
623
    mov   [edi],al
629
;    mov   [edi],al
624
    xor   eax,eax
630
;    xor   eax,eax
625
    inc   esi
631
;    inc   esi
626
    cmp   esi,send_string+30
632
;    cmp   esi,send_string+30
627
    jg	  sipnn
633
;    jg    sipnn
628
    inc   edi
634
;    inc   edi
629
    cmp   edi,irc_server_ip+3
635
;    cmp   edi,irc_server_ip+3
-
 
636
;    jbe   newsip
-
 
637
;  sipnn:
-
 
638
;    popa
-
 
639
 
-
 
640
pusha
-
 
641
    mov     eax,send_string
-
 
642
    add     eax,[xpos]
-
 
643
    mov     dword[eax],0
630
    jbe   newsip
644
    resolve send_string+7,dword[irc_server_ip]
Line 631... Line 645...
631
  sipnn:
645
    ;DEBUGF 1,'%u.%u.%u.%u\n',1[irc_server_ip],1[irc_server_ip+1],1[irc_server_ip+2],1[irc_server_ip+3]
632
    popa
646
popa
Line 713... Line 727...
713
    add  edx,1
727
    add  edx,1
Line 714... Line 728...
714
 
728
 
715
    mov  eax, 53      ; write server command
729
    mov  eax, 53      ; write server command
716
    mov  ebx, 7
730
    mov  ebx, 7
717
    mov  ecx, [socket]
731
    mov  ecx, [socket]
Line 718... Line 732...
718
    int  0x40
732
    mcall
Line 719... Line 733...
719
 
733
 
720
  send_done:
734
  send_done:
Line 721... Line 735...
721
 
735
 
722
    mov  [xpos],0
736
    mov  [xpos],0
723
    mov  [send_to_server],0
737
    mov  [send_to_server],0
724
 
738
 
725
    cmp  [send_string+1],dword 'quit'
739
    cmp  [send_string+1],dword 'quit'
Line 726... Line 740...
726
    jne  no_quit_server
740
    jne  no_quit_server
727
    mov  eax,5
741
    mov  eax,5
728
    mov  ebx,200
742
    mov  ebx,200
729
    int  0x40
743
    mcall
Line 730... Line 744...
730
 
744
 
731
    mov  eax, 53      ; close socket
745
    mov  eax, 53      ; close socket
732
    mov  ebx, 8
746
    mov  ebx, 8
733
    mov  ecx, [socket]
747
    mov  ecx, [socket]
Line 840... Line 854...
840
 
854
 
841
    mov  eax,51
855
    mov  eax,51
842
    mov  ebx,1
856
    mov  ebx,1
843
    mov  ecx,channel_thread
857
    mov  ecx,channel_thread
844
    mov  edx,[thread_stack]
858
    mov  edx,[thread_stack]
Line 845... Line 859...
845
    int  0x40
859
    mcall
846
 
860
 
847
    mov  eax,5
861
    mov  eax,5
Line 848... Line 862...
848
    mov  ebx,10
862
    mov  ebx,10
849
    int  0x40
863
    mcall
Line 850... Line 864...
850
 
864
 
Line 862... Line 876...
862
 
876
 
863
    mov  eax,13
877
    mov  eax,13
864
    mov  ebx,8*65536+6*80
878
    mov  ebx,8*65536+6*80
865
    mov  ecx,151*65536+13
879
    mov  ecx,151*65536+13
866
    mov  edx,0xffffff
880
    mov  edx,0xffffff
Line 867... Line 881...
867
    int  0x40
881
    mcall
868
 
882
 
869
    mov  eax,4
883
    mov  eax,4
870
    mov  ebx,8*65536+154
884
    mov  ebx,8*65536+154
871
    mov  ecx,0x000000
885
    mov  ecx,0x000000
872
    mov  edx,send_string
886
    mov  edx,send_string
Line 873... Line 887...
873
    mov  esi,[xpos]
887
    mov  esi,[xpos]
Line 874... Line 888...
874
    int  0x40
888
    mcall
Line 884... Line 898...
884
    pusha
898
    pusha
Line 885... Line 899...
885
 
899
 
886
    mov  eax,9
900
    mov  eax,9
887
    mov  ebx,0xe0000
901
    mov  ebx,0xe0000
888
    mov  ecx,-1
902
    mov  ecx,-1
Line 889... Line 903...
889
    int  0x40
903
    mcall
890
 
904
 
891
    mov  edx,[blink]
905
    mov  edx,[blink]
892
    and  edx,1
906
    and  edx,1
Line 905... Line 919...
905
    mov  cx,bx
919
    mov  cx,bx
906
    shl  ebx,16
920
    shl  ebx,16
907
    mov  bx,cx
921
    mov  bx,cx
908
    mov  ecx,151*65536+163
922
    mov  ecx,151*65536+163
909
    mov  eax,38
923
    mov  eax,38
910
    int  0x40
924
    mcall
Line 911... Line 925...
911
 
925
 
Line 912... Line 926...
912
    popa
926
    popa
Line 917... Line 931...
917
 
931
 
918
    mov  eax,13
932
    mov  eax,13
919
    mov  ebx,8*65536+6*60
933
    mov  ebx,8*65536+6*60
920
    mov  ecx,151*65536+13
934
    mov  ecx,151*65536+13
921
    mov  edx,0xffffff
935
    mov  edx,0xffffff
Line 922... Line 936...
922
    int  0x40
936
    mcall
Line 923... Line 937...
923
 
937
 
Line 1070... Line 1084...
1070
    mov  ebx,100*65536+3
1084
    mov  ebx,100*65536+3
1071
    mov  ecx,0xffffff
1085
    mov  ecx,0xffffff
1072
    mov  edx,command
1086
    mov  edx,command
1073
    mov  esi,[cmd]
1087
    mov  esi,[cmd]
1074
    mov  [command+esi-1],word '**'
1088
    mov  [command+esi-1],word '**'
1075
;    int  0x40
1089
;    mcall
Line 1076... Line 1090...
1076
 
1090
 
1077
    mov  eax,53
1091
    mov  eax,53
1078
    mov  ebx,7
1092
    mov  ebx,7
1079
    mov  ecx,[socket]
1093
    mov  ecx,[socket]
1080
    mov  edx,[cmd]
1094
    mov  edx,[cmd]
1081
    sub  edx,2
1095
    sub  edx,2
1082
    and  edx,255
1096
    and  edx,255
1083
    mov  esi,command
1097
    mov  esi,command
Line 1084... Line 1098...
1084
    int  0x40
1098
    mcall
1085
 
1099
 
1086
    mov  eax,53
1100
    mov  eax,53
1087
    mov  ebx,7
1101
    mov  ebx,7
1088
    mov  ecx,[socket]
1102
    mov  ecx,[socket]
1089
    mov  edx,2
1103
    mov  edx,2
Line 1090... Line 1104...
1090
    mov  esi,linef
1104
    mov  esi,linef
1091
    int  0x40
1105
    mcall
Line 1092... Line 1106...
1092
 
1106
 
Line 1653... Line 1667...
1653
  db '?','?','?','?','?','?','?','?' , $F1,'?','?','?','?','?','?','?' ; B
1667
  db '?','?','?','?','?','?','?','?' , $F1,'?','?','?','?','?','?','?' ; B
1654
  db $80,$81,$82,$83,$84,$85,$86,$87 , $88,$89,$8A,$8B,$8C,$8D,$8E,$8F ; C
1668
  db $80,$81,$82,$83,$84,$85,$86,$87 , $88,$89,$8A,$8B,$8C,$8D,$8E,$8F ; C
1655
  db $90,$91,$92,$93,$94,$95,$96,$97 , $98,$99,$9A,$9B,$9C,$9D,$9E,$9F ; D
1669
  db $90,$91,$92,$93,$94,$95,$96,$97 , $98,$99,$9A,$9B,$9C,$9D,$9E,$9F ; D
1656
  db $A0,$A1,$A2,$A3,$A4,$A5,$A6,$A7 , $A8,$A9,$AA,$AB,$AC,$AD,$AE,$AF ; E
1670
  db $A0,$A1,$A2,$A3,$A4,$A5,$A6,$A7 , $A8,$A9,$AA,$AB,$AC,$AD,$AE,$AF ; E
1657
  db $E0,$E1,$E2,$E3,$E4,$E5,$E6,$E7 , $E8,$E9,$EA,$EB,$EC,$ED,$EE,$EF ; F
1671
  db $E0,$E1,$E2,$E3,$E4,$E5,$E6,$E7 , $E8,$E9,$EA,$EB,$EC,$ED,$EE,$EF ; F
-
 
1672
;    0   1   2   3   4   5   6   7     8   9   A   B   C   D   E   F
Line 1658... Line 1673...
1658
 
1673
 
1659
cp866_table:
1674
cp866_table:
1660
  db $C0,$C1,$C2,$C3,$C4,$C5,$C6,$C7 , $C8,$C9,$CA,$CB,$CC,$CD,$CE,$CF ; 8
1675
  db $C0,$C1,$C2,$C3,$C4,$C5,$C6,$C7 , $C8,$C9,$CA,$CB,$CC,$CD,$CE,$CF ; 8
1661
  db $D0,$D1,$D2,$D3,$D4,$D5,$D6,$D7 , $D8,$D9,$DA,$DB,$DC,$DD,$DE,$DF ; 9
1676
  db $D0,$D1,$D2,$D3,$D4,$D5,$D6,$D7 , $D8,$D9,$DA,$DB,$DC,$DD,$DE,$DF ; 9
1662
  db $E0,$E1,$E2,$E3,$E4,$E5,$E6,$E7 , $E8,$E9,$EA,$EB,$EC,$ED,$EE,$EF ; A
1677
  db $E0,$E1,$E2,$E3,$E4,$E5,$E6,$E7 , $E8,$E9,$EA,$EB,$EC,$ED,$EE,$EF ; A
1663
  db '?','?','?','?','?','?','?','?' , '?','?','?','?','?','?','?','?' ; B
1678
  db '?','?','?','?','?','?','?','?' , '?','?','?','?','?','?','?','?' ; B
1664
  db '?','?','?','?','?','?','?','?' , '?','?','?','?','?','?','?','?' ; C
1679
  db '?','?','?','?','?','?','?','?' , '?','?','?','?','?','?','?','?' ; C
1665
  db '?','?','?','?','?','?','?','?' , '?','?','?','?','?','?','?','?' ; D
1680
  db '?','?','?','?','?','?','?','?' , '?','?','?','?','?','?','?','?' ; D
1666
  db $F0,$F1,$F2,$F3,$F4,$F5,$F6,$F7 , $F8,$F9,$FA,$FB,$FC,$FD,$FE,$FF ; E
1681
  db $F0,$F1,$F2,$F3,$F4,$F5,$F6,$F7 , $F8,$F9,$FA,$FB,$FC,$FD,$FE,$FF ; E
1667
  db $A8,$B8,'?','?','?','?','?','?' , '?','?','?','?','?','?','?','?' ; F
-
 
-
 
1682
  db $A8,$B8,'?','?','?','?','?','?' , '?','?','?','?','?','?','?','?' ; F
Line 1668... Line 1683...
1668
 
1683
;    0   1   2   3   4   5   6   7     8   9   A   B   C   D   E   F
Line 1669... Line 1684...
1669
 
1684
 
Line 1788... Line 1803...
1788
read_incoming_byte:
1803
read_incoming_byte:
Line 1789... Line 1804...
1789
 
1804
 
1790
    mov  eax, 53
1805
    mov  eax, 53
1791
    mov  ebx, 2
1806
    mov  ebx, 2
1792
    mov  ecx, [socket]
1807
    mov  ecx, [socket]
Line 1793... Line 1808...
1793
    int  0x40
1808
    mcall
Line 1794... Line 1809...
1794
 
1809
 
1795
    mov  ecx,-1
1810
    mov  ecx,-1
Line 1796... Line 1811...
1796
 
1811
 
1797
    cmp  eax,0
1812
    cmp  eax,0
1798
    je	 no_more_data
1813
    je	 no_more_data
1799
 
1814
 
Line 1800... Line 1815...
1800
    mov  eax, 53
1815
    mov  eax, 53
1801
    mov  ebx, 3
1816
    mov  ebx, 3
1802
    mov  ecx, [socket]
1817
    mov  ecx, [socket]
1803
    int  0x40
1818
    mcall
Line 1820... Line 1835...
1820
 
1835
 
Line 1821... Line 1836...
1821
    pusha
1836
    pusha
1822
 
1837
 
1823
    mov  eax,12
1838
    mov  eax,12
Line 1824... Line 1839...
1824
    mov  ebx,1
1839
    mov  ebx,1
Line 1825... Line 1840...
1825
    int  0x40
1840
    mcall
1826
 
1841
 
1827
    mov  [old_status],300
1842
    mov  [old_status],300
1828
 
1843
 
1829
    mov  eax,0			   ; draw window
1844
    xor  eax,eax		   ; draw window
1830
    mov  ebx,5*65536+499
-
 
1831
    mov  ecx,5*65536+345
-
 
1832
    mov  edx,[wcolor]
-
 
1833
    add  edx,0x03ffffff
-
 
1834
    mov  esi,0x80555599
-
 
1835
    mov  edi,0x00ffffff
-
 
1836
    int  0x40
-
 
1837
 
1845
    mov  ebx,5*65536+499
1838
    mov  eax,4			   ; label
-
 
1839
    mov  ebx,9*65536+8
1846
    mov  ecx,5*65536+345
Line 1840... Line 1847...
1840
    mov  ecx,0x10ffffff
1847
    mov  edx,[wcolor]
1841
    mov  edx,labelt
1848
    add  edx,0x13ffffff
1842
    mov  esi,labellen-labelt
1849
    mov  edi,title
1843
    int  0x40
1850
    mcall
1844
 
1851
 
1845
    mov  eax,8			   ; button: open socket
1852
    mov  eax,8			   ; button: open socket
Line 1846... Line 1853...
1846
    mov  ebx,43*65536+22
1853
    mov  ebx,43*65536+22
1847
    mov  ecx,229*65536+10
1854
    mov  ecx,229*65536+10
1848
    mov  edx,22
1855
    mov  edx,22
1849
    mov  esi,[main_button]
1856
    mov  esi,[main_button]
1850
    int  0x40
1857
    mcall
Line 1851... Line 1858...
1851
 
1858
 
1852
    mov  eax,8			   ; button: send userinfo
1859
    ;mov  eax,8			   ; button: send userinfo
1853
    mov  ebx,180*65536+22
1860
    mov  ebx,180*65536+22
1854
    mov  ecx,229*65536+10
1861
    mov  ecx,229*65536+10
1855
    mov  edx,23
1862
    mov  edx,23
Line 1856... Line 1863...
1856
    int  0x40
1863
    mcall
1857
 
1864
 
1858
    mov  eax,8			   ; button: close socket
1865
    ;mov  eax,8			   ; button: close socket
1859
    mov  ebx,317*65536+22
1866
    mov  ebx,317*65536+22
1860
    mov  ecx,229*65536+10
1867
    mov  ecx,229*65536+10
1861
    mov  edx,24
1868
    mov  edx,24
1862
    int  0x40
-
 
1863
 
-
 
Line 1864... Line 1869...
1864
    mov  eax,38 		   ; line
1869
    mcall
1865
    mov  ebx,5*65536+494
1870
 
1866
    mov  ecx,148*65536+148
1871
    mov  eax,38 		   ; line
1867
    mov  edx,[main_line]
1872
    mov  ebx,5*65536+494
1868
    int  0x40
1873
    mov  ecx,148*65536+148
1869
    add  ecx,1*65536+1
-
 
1870
;    mov  edx,0x5555cc
-
 
Line 1871... Line 1874...
1871
;    int  0x40
1874
    mov  edx,[main_line]
1872
 
1875
    mcall
1873
    mov  eax,38 		   ; line
1876
    add  ecx,1*65536+1
1874
    mov  ebx,5*65536+494
1877
 
1875
    mov  ecx,166*65536+166
1878
    mov  eax,38 		   ; line
1876
    int  0x40
-
 
1877
    add  ecx,1*65536+1
-
 
Line 1878... Line 1879...
1878
;    mov  edx,0x5555cc
1879
    mov  ebx,5*65536+494
1879
;    int  0x40
1880
    mov  ecx,166*65536+166
1880
 
1881
    mcall
1881
    mov  eax,38 		   ; line
1882
    add  ecx,1*65536+1
1882
    mov  ebx,410*65536+410
1883
 
1883
    mov  ecx,22*65536+148
1884
    mov  eax,38 		   ; line
1884
    int  0x40
1885
    mov  ebx,410*65536+410
1885
    add  ebx,1*65536+1
1886
    mov  ecx,22*65536+148
1886
;    mov  edx,0x5555cc
1887
    mcall
1887
;    int  0x40
1888
    add  ebx,1*65536+1
1888
 
1889
 
Line 1889... Line 1890...
1889
    mov  ebx,25*65536+183	   ; info text
1890
    mov  ebx,25*65536+183	   ; info text
1890
    mov  ecx,0x000000
1891
    mov  ecx,0x000000
Line 1891... Line 1892...
1891
    mov  edx,text
1892
    mov  edx,text
1892
    mov  esi,70
1893
    mov  esi,70
1893
  newline:
1894
  newline:
Line 1894... Line 1895...
1894
    mov  eax,4
1895
    mov  eax,4
Line 1895... Line 1896...
1895
    int  0x40
1896
    mcall
Line 1914... Line 1915...
1914
 
1915
 
Line 1915... Line 1916...
1915
 
1916
 
1916
text:
1917
text:
1917
 
1918
 
1918
db '   Real name : KolibriOS User  - change with eg /areal Jill User      '
1919
db '   Real name : KolibriOS User  - change with eg /areal Jill User      '
1919
db '   Nick      : kolibri_user    - change with eg /anick Jill           '
1920
db '   Nick      : KolibriOS User  - change with eg /anick Jill           '
1920
db '   Server    : 83.149.74.246   - change with eg /aserv 192.168.1.24   '
1921
db '   Server    : kolibrios.org   - change with eg /aserv irc.by         '
1921
db '                                                                      '
1922
db '                                                                      '
1922
db '        1) Open socket         2) Send userinfo       Close socket    '
1923
db '        1) Open socket         2) Send userinfo       Close socket    '
Line 1972... Line 1973...
1972
    mov  edi,ebp
1973
    mov  edi,ebp
1973
    shl  edi,5
1974
    shl  edi,5
1974
    mov  dword [channel_list+edi],dword '    '
1975
    mov  dword [channel_list+edi],dword '    '
1975
    mov  byte  [channel_list+edi+31],byte 1
1976
    mov  byte  [channel_list+edi+31],byte 1
1976
    mov  eax,-1
1977
    mov  eax,-1
1977
    int  0x40
1978
    mcall
1978
  no_channel_leave:
1979
  no_channel_leave:
Line 1979... Line 1980...
1979
 
1980
 
Line 1980... Line 1981...
1980
    call  check_mouse
1981
    call  check_mouse
1981
 
1982
 
1982
    mov   eax,23
1983
    mov   eax,23
Line 1983... Line 1984...
1983
    mov   ebx,1
1984
    mov   ebx,1
1984
    int   0x40
1985
    mcall
1985
 
1986
 
1986
    cmp   eax,1
1987
    cmp   eax,1
Line 1994... Line 1995...
1994
    je	  thread_key
1995
    je	  thread_key
Line 1995... Line 1996...
1995
 
1996
 
1996
    cmp   eax,3
1997
    cmp   eax,3
1997
    jne   no_end
1998
    jne   no_end
1998
    mov   eax,17
1999
    mov   eax,17
1999
    int   0x40
2000
    mcall
2000
    mov   eax,ebp
2001
    mov   eax,ebp
2001
    imul  eax,120*80
2002
    imul  eax,120*80
2002
    add   eax,I_END
2003
    add   eax,I_END
2003
    cmp   [eax+120*60+8],byte 0 ; channel window
2004
    cmp   [eax+120*60+8],byte 0 ; channel window
Line 2006... Line 2007...
2006
    shl   eax,5
2007
    shl   eax,5
2007
    add   eax,channel_list
2008
    add   eax,channel_list
2008
    mov   [eax],dword '    '
2009
    mov   [eax],dword '    '
2009
    mov   [eax+31],byte 1
2010
    mov   [eax+31],byte 1
2010
    mov   eax,-1
2011
    mov   eax,-1
2011
    int   0x40
2012
    mcall
2012
  not_close:
2013
  not_close:
2013
    mov   [text_start],eax
2014
    mov   [text_start],eax
2014
    mov   eax,nocl
2015
    mov   eax,nocl
2015
  newcc:
2016
  newcc:
2016
    mov   bl,[eax]
2017
    mov   bl,[eax]
Line 2045... Line 2046...
2045
 
2046
 
Line 2046... Line 2047...
2046
    pusha
2047
    pusha
2047
 
2048
 
2048
    mov  eax,37
2049
    mov  eax,37
Line 2049... Line 2050...
2049
    mov  ebx,1
2050
    mov  ebx,1
2050
    int  0x40
2051
    mcall
2051
 
2052
 
Line 2071... Line 2072...
2071
    add  eax,120*70+I_END
2072
    add  eax,120*70+I_END
2072
    inc  dword [eax-8]
2073
    inc  dword [eax-8]
2073
    call print_user_list
2074
    call print_user_list
2074
    mov  eax,5
2075
    mov  eax,5
2075
    mov  ebx,8
2076
    mov  ebx,8
2076
    int  0x40
2077
    mcall
2077
    jmp  no_mouse
2078
    jmp  no_mouse
2078
  no_plus:
2079
  no_plus:
Line 2079... Line 2080...
2079
 
2080
 
2080
    cmp  ebx,80
2081
    cmp  ebx,80
Line 2086... Line 2087...
2086
    je	 no_mouse
2087
    je	 no_mouse
2087
    dec  dword [eax-8]
2088
    dec  dword [eax-8]
2088
    call print_user_list
2089
    call print_user_list
2089
    mov  eax,5
2090
    mov  eax,5
2090
    mov  ebx,8
2091
    mov  ebx,8
2091
    int  0x40
2092
    mcall
Line 2092... Line 2093...
2092
 
2093
 
Line 2093... Line 2094...
2093
  no_minus:
2094
  no_minus:
Line 2102... Line 2103...
2102
 
2103
 
Line 2103... Line 2104...
2103
 
2104
 
2104
thread_key:
2105
thread_key:
Line 2105... Line 2106...
2105
 
2106
 
Line 2106... Line 2107...
2106
    mov  eax,2
2107
    mov  eax,2
2107
    int  0x40
2108
    mcall
Line 2137... Line 2138...
2137
    mov  dword [send_to_channel],ebp
2138
    mov  dword [send_to_channel],ebp
2138
    mov  [send_to_server],1
2139
    mov  [send_to_server],1
2139
  wait_for_sending:
2140
  wait_for_sending:
2140
    mov  eax,5
2141
    mov  eax,5
2141
    mov  ebx,1
2142
    mov  ebx,1
2142
    int  0x40
2143
    mcall
2143
    cmp  [send_to_server],1
2144
    cmp  [send_to_server],1
2144
    je	 wait_for_sending
2145
    je	 wait_for_sending
2145
    call draw_channel_text
2146
    call draw_channel_text
2146
    call print_entry
2147
    call print_entry
2147
    jmp  w_t
2148
    jmp  w_t
Line 2170... Line 2171...
2170
    mov   eax,13
2171
    mov   eax,13
2171
    mov   ebx,10*65536
2172
    mov   ebx,10*65536
2172
    mov   bx,word [rxs]
2173
    mov   bx,word [rxs]
2173
    imul  bx,6
2174
    imul  bx,6
2174
    mov   edx,0xffffff
2175
    mov   edx,0xffffff
2175
    int   0x40
2176
    mcall
2176
    popa
2177
    popa
2177
    push  ecx
2178
    push  ecx
2178
    mov   eax,4
2179
    mov   eax,4
2179
    mov   ecx,0
2180
    mov   ecx,0
2180
    cmp   [edx],word '* '
2181
    cmp   [edx],word '* '
Line 2189... Line 2190...
2189
  no_light_blue:
2190
  no_light_blue:
2190
    cmp   [edx],byte '#'
2191
    cmp   [edx],byte '#'
2191
    jne   no_blue
2192
    jne   no_blue
2192
    mov   ecx,0x0000ff
2193
    mov   ecx,0x0000ff
2193
  no_blue:
2194
  no_blue:
2194
    int   0x40
2195
    mcall
2195
    add   edx,[rxs]
2196
    add   edx,[rxs]
2196
    add   ebx,10
2197
    add   ebx,10
2197
    pop   ecx
2198
    pop   ecx
2198
    loop  dct
2199
    loop  dct
Line 2208... Line 2209...
2208
 
2209
 
Line 2209... Line 2210...
2209
    pusha
2210
    pusha
2210
 
2211
 
2211
    mov  eax,12
2212
    mov  eax,12
Line 2212... Line 2213...
2212
    mov  ebx,1
2213
    mov  ebx,1
2213
    int  0x40
2214
    mcall
2214
 
2215
 
2215
    mov  ebx,ebp		   ; draw window
2216
    mov  ebx,ebp		   ; draw window
Line 2229... Line 2230...
2229
    mov  edx,[wcolor]
2230
    mov  edx,[wcolor]
2230
    add  edx,0x03ffffff
2231
    add  edx,0x03ffffff
2231
    mov  esi,0x80555599
2232
    mov  esi,0x80555599
2232
    mov  edi,0x00ffffff
2233
    mov  edi,0x00ffffff
Line 2233... Line 2234...
2233
 
2234
 
Line 2234... Line 2235...
2234
    int  0x40
2235
    mcall
2235
 
2236
 
2236
    mov  eax,ebp		   ; label
2237
    mov  eax,ebp		   ; label
2237
    add  eax,48
2238
    add  eax,48
Line 2250... Line 2251...
2250
    add  esi,ebx
2251
    add  esi,ebx
2251
    mov  eax,4
2252
    mov  eax,4
2252
    mov  ebx,9*65536+8
2253
    mov  ebx,9*65536+8
2253
    mov  ecx,0x00ffffff
2254
    mov  ecx,0x00ffffff
2254
    mov  edx,labelc
2255
    mov  edx,labelc
2255
    int  0x40
2256
    mcall
Line 2256... Line 2257...
2256
 
2257
 
2257
    mov  eax,38 		   ; line
2258
    mov  eax,38 		   ; line
2258
    mov  ebx,5*65536+494
2259
    mov  ebx,5*65536+494
2259
    mov  ecx,148*65536+148
2260
    mov  ecx,148*65536+148
2260
    mov  edx,[channel_line_sun]
2261
    mov  edx,[channel_line_sun]
2261
    int  0x40
2262
    mcall
2262
    add  ecx,1*65536+1
2263
    add  ecx,1*65536+1
2263
    mov  edx,[channel_line_shadow]
2264
    mov  edx,[channel_line_shadow]
Line 2264... Line 2265...
2264
    int  0x40
2265
    mcall
2265
 
2266
 
2266
 
2267
 
2267
    mov  eax,38 		   ; line
2268
    ;mov  eax,38 		   ; line
2268
    mov  ebx,410*65536+410
2269
    mov  ebx,410*65536+410
2269
    mov  ecx,22*65536+148
2270
    mov  ecx,22*65536+148
2270
    mov  edx,[channel_line_sun]
2271
    mov  edx,[channel_line_sun]
2271
    int  0x40
2272
    mcall
Line 2272... Line 2273...
2272
    add  ebx,1*65536+1
2273
    add  ebx,1*65536+1
2273
    mov  edx,[channel_line_shadow]
2274
    mov  edx,[channel_line_shadow]
2274
    int  0x40
2275
    mcall
Line 2275... Line 2276...
2275
 
2276
 
Line 2276... Line 2277...
2276
    mov  eax,12
2277
    mov  eax,12
Line 2277... Line -...
2277
    mov  ebx,2
-
 
2278
    int  0x40
2278
    mov  ebx,2
Line 2279... Line 2279...
2279
 
2279
    mcall
Line 2280... Line 2280...
2280
    popa
2280
 
Line 2374... Line 2374...
2374
numtext     db	'                     '
2374
numtext     db	'                     '
Line 2375... Line 2375...
2375
 
2375
 
Line 2376... Line 2376...
2376
wcolor	    dd	0x000000
2376
wcolor	    dd	0x000000
2377
 
2377
 
-
 
2378
labelc	    db	'AIRC - WINDOW X: #xxx                 '
-
 
2379
title	    db	'IRC client ',version,0
-
 
2380
 
-
 
2381
;include_debug_strings  ; ALWAYS present in data section
2378
labelc	    db	'AIRC - WINDOW X: #xxx                 '
2382
 
Line 2379... Line 2383...
2379
labelt	    db	'IRC client ',version
2383
dnsMsg:  rb 512     ; buffer used by DNS client
2380
labellen:
2384
 
2381
 
2385
 
2382
;;
2386
;;