Subversion Repositories Kolibri OS

Rev

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

Rev 205 Rev 307
Line 43... Line 43...
43
@@:
43
@@:
44
	inc	esi
44
	inc	esi
45
	jmp	.next
45
	jmp	.next
46
.str_end:
46
.str_end:
Line -... Line 47...
-
 
47
 
-
 
48
; ‚ëç¨á«ï¥¬, ᪮«ìª® ¡ ©â ­ã¦­® ¯à¨¡ ¢«ïâì ª ª ¦¤®© áâப¥,
-
 
49
; ç⮡ë á«¥¤ãîé ï ¡ë«  ¢ëà ¢­¥­  ­  4 ¡ ©â .
-
 
50
; ¥§ã«ìâ â ¯®¬¥é ¥¬ ¢ edi.
-
 
51
	xor	edx,edx
-
 
52
	movzx	eax,word [scr_buf.width]  ; eax = è¨à¨­  ª à⨭ª¨
-
 
53
	lea	eax,[eax*3]		  ; eax = ¡ ©â ­  áâப㠪 à⨭ª¨
-
 
54
	movr	ebx,4			  ; ebx = 4
-
 
55
	mov	edi,ebx 		  ; edi = 4
-
 
56
	div	ebx			  ; eax = ¡ ©â ­  áâப㠪 à⨭ª¨ div 4  edx = ¡ ©â... mod 4
-
 
57
	sub	edi,edx 		  ; edi = ª®«¨ç¥á⢮ ¡ ©â
-
 
58
	test	edx,edx
-
 
59
	jnz	@f
-
 
60
	xor	edi,edi
-
 
61
@@:
47
 
62
 
48
	; ¢ë¤¥«ï¥¬ ¯ ¬ïâì
63
	; ¢ë¤¥«ï¥¬ ¯ ¬ïâì
49
	mov	ecx,[scr_buf.end_ptr]
64
	mov	ecx,[scr_buf.end_ptr]
50
	mov	[sf_buf.bmp_header],ecx
65
	mov	[sf_buf.bmp_header],ecx
51
	add	ecx,0x36
66
	add	ecx,0x36
52
	mov	[sf_buf.bmp_area],ecx
67
	mov	[sf_buf.bmp_area],ecx
53
	movsx	ebx,word [scr_buf.width]
68
	movsx	ebx,word [scr_buf.width]
54
	movsx	edx,word [scr_buf.height]
69
	movsx	edx,word [scr_buf.height]
55
	imul	ebx,edx
70
	;imul    ebx,edx
-
 
71
	lea	ebx,[ebx*3]
-
 
72
	add	ebx,edi
56
	lea	ebx,[ebx*3]
73
	imul	ebx,edx
57
	add	ecx,ebx
74
	add	ecx,ebx
58
	mov	[sf_buf.end],ecx
75
	mov	[sf_buf.end],ecx
59
	add	ecx,4096
76
	add	ecx,4096
60
	xor	ebx,ebx
77
	xor	ebx,ebx
61
	inc	ebx
78
	inc	ebx
62
	movr	 eax,64
79
	movr	 eax,64
Line -... Line 80...
-
 
80
	int	0x40
63
	int	0x40
81
 
64
 
82
	push	edi
65
	; § ¯®«­ï¥¬ áâàãªâãàã ¤«ï á®åà ­¥­¨ï ä ©« 
83
	; § ¯®«­ï¥¬ áâàãªâãàã ¤«ï á®åà ­¥­¨ï ä ©« 
66
	mov	edi,fs_struc
84
	mov	edi,fs_struc
67
	mov	[edi],dword 2
85
	mov	[edi],dword 2
Line 80... Line 98...
80
	mov	[edi+34],ebx	; à §¬¥à ª à⨭ª¨
98
	mov	[edi+34],ebx	; à §¬¥à ª à⨭ª¨
81
	mov	[edi+10],dword 0x36	; à §¬¥à § £®«®¢ª 
99
	mov	[edi+10],dword 0x36	; à §¬¥à § £®«®¢ª 
82
	add	ebx,0x36
100
	add	ebx,0x36
83
	mov	[edi+2],ebx ; à §¬¥à ä ©« 
101
	mov	[edi+2],ebx ; à §¬¥à ä ©« 
84
	mov	[edi+14],dword 0x28
102
	mov	[edi+14],dword 0x28
85
	movsx	eax,word [scr_buf.width]
103
	movzx	eax,word [scr_buf.width]
86
	mov	[edi+18],eax ; £®à¨§®­â «ì­ë© à §¬¥à
104
	mov	[edi+18],eax ; £®à¨§®­â «ì­ë© à §¬¥à
87
	movsx	eax,word [scr_buf.height]
105
	movzx	eax,word [scr_buf.height]
88
	mov	[edi+22],eax ; ¢¥à⨪«ì­ë© à §¬¥à
106
	mov	[edi+22],eax ; ¢¥à⨪«ì­ë© à §¬¥à
89
	mov	[edi+26],word 1
107
	mov	[edi+26],word 1
90
	mov	[edi+28],word 24
108
	mov	[edi+28],word 24
Line 91... Line 109...
91
 
109
 
-
 
110
	; ª®¯¨à㥬 ¨ ¯¥à¥¢®à ç¨¢ ¥¬
-
 
111
;        mov     esi,[scr_buf.ptr]
-
 
112
;        mov     edi,[sf_buf.bmp_area]
-
 
113
;        mov     edx,[sf_buf.end]
-
 
114
;        sub     edx,edi
-
 
115
;        movsx   ecx,word [scr_buf.height]
-
 
116
;.next_str:
-
 
117
;push    ecx
-
 
118
;
-
 
119
;        movsx   ecx,word [scr_buf.width]
-
 
120
;        lea     ecx,[ecx*3]
-
 
121
;        mov     ebx,ecx
-
 
122
;.next_byte:
-
 
123
;        mov     ah,[esi+ebx]
-
 
124
;        mov     [edi+edx],ah
-
 
125
;        dec     ebx
-
 
126
;        dec     edx
-
 
127
;        loop    .next_byte
-
 
128
;        movsx   ecx,word [scr_buf.width]
-
 
129
;        lea     ecx,[ecx*3]
-
 
130
;        add     esi,ecx
-
 
131
;pop     ecx
-
 
132
;        loop    .next_str
92
	; ª®¯¨à㥬 ¨ ¯¥à¥¢®à ç¨¢ ¥¬
133
 
93
	mov	esi,[scr_buf.ptr]
134
	mov	esi,[scr_buf.end_ptr]
-
 
135
	mov	edi,[sf_buf.bmp_area]
94
	mov	edi,[sf_buf.bmp_area]
136
	movzx	ecx,word [scr_buf.height]
95
	mov	edx,[sf_buf.end]
137
	movzx	ebx,word [scr_buf.width]
96
	sub	edx,edi
138
	lea	ebx,[ebx*3]
97
	movsx	ecx,word [scr_buf.height]
139
	add	edi,ebx
98
.next_str:
-
 
99
push	ecx
-
 
100
 
-
 
101
	movsx	ecx,word [scr_buf.width]
-
 
102
	lea	ecx,[ecx*3]
140
.next_str:
103
	mov	ebx,ecx
141
	mov	edx,ebx
104
.next_byte:
142
.next_pixel:
105
	mov	ah,[esi+ebx]
143
	mov	ah,[esi]
-
 
144
	mov	[edi],ah
106
	mov	[edi+edx],ah
145
	dec	esi
107
	dec	ebx
146
	dec	edi
108
	dec	edx
147
	dec	edx
109
	loop	.next_byte
-
 
110
	movsx	ecx,word [scr_buf.width]
148
	jnz	.next_pixel
111
	lea	ecx,[ecx*3]
149
	lea	edi,[2*ebx+edi]
112
	add	esi,ecx
-
 
113
pop	ecx
150
	add	edi,[esp]
Line -... Line 151...
-
 
151
	loop	.next_str
-
 
152
 
114
	loop	.next_str
153
	pop	edi
115
 
154
 
116
	; á®å࠭塞
155
	; á®å࠭塞
117
	draw_status saving
156
	draw_status saving
118
	mov	eax,70
157
	mov	eax,70
Line 124... Line 163...
124
 
163
 
125
	inc	dword [cur_number]
164
	inc	dword [cur_number]
Line 126... Line 165...
126
	call	draw_number
165
	call	draw_number
-
 
166
 
127
 
167
	draw_status saved_ok
128
	draw_status saved_ok
168
 
Line 129... Line 169...
129
popa
169
popa
130
ret
170
ret