Subversion Repositories HelenOS

Rev

Rev 4128 | Rev 4151 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 4128 Rev 4150
Line 161... Line 161...
161
	
161
	
162
	next_mode:
162
	next_mode:
163
		# try next mode
163
		# try next mode
164
		mov %gs:(%si), %cx
164
		mov %gs:(%si), %cx
165
		cmp $VESA_END_OF_MODES, %cx
165
		cmp $VESA_END_OF_MODES, %cx
166
		jz no_mode
166
		je no_mode
167
		
167
		
168
		inc %si
168
		inc %si
169
		inc %si
169
		inc %si
170
		push %cx
170
		push %cx
171
		push %di
171
		push %di
Line 175... Line 175...
175
		
175
		
176
		pop %si
176
		pop %si
177
		pop %di
177
		pop %di
178
		pop %cx
178
		pop %cx
179
		cmp $VESA_OK, %al
179
		cmp $VESA_OK, %al
180
		jnz no_mode
180
		jne no_mode
-
 
181
		
-
 
182
		# check for proper attributes (supported, color, graphics, liner framebuffer)
-
 
183
		
-
 
184
		mov VESA_MODE_ATTRIBUTES_OFFSET(%di), %ax
-
 
185
		and $0x99, %ax
-
 
186
		cmp $0x99, %ax
-
 
187
		jne next_mode
-
 
188
		
-
 
189
		# check for proper resolution
181
		
190
		
182
		mov default_width - vesa_init, %ax
191
		mov default_width - vesa_init, %ax
183
		cmp VESA_MODE_WIDTH_OFFSET(%di), %ax
192
		cmp VESA_MODE_WIDTH_OFFSET(%di), %ax
184
		jnz next_mode
193
		jne next_mode
185
		
194
		
186
		mov default_height - vesa_init, %ax
195
		mov default_height - vesa_init, %ax
187
		cmp VESA_MODE_HEIGHT_OFFSET(%di), %ax
196
		cmp VESA_MODE_HEIGHT_OFFSET(%di), %ax
188
		jnz next_mode
197
		jne next_mode
-
 
198
		
-
 
199
		# check for proper bpp
189
		
200
		
190
		mov default_bpp - vesa_init, %al
201
		mov default_bpp - vesa_init, %al
191
		cmp VESA_MODE_BPP_OFFSET(%di), %al
202
		cmp VESA_MODE_BPP_OFFSET(%di), %al
192
		jz set_mode
203
		je set_mode
193
		
204
		
194
		mov $24, %al
205
		mov $24, %al
195
		cmp default_bpp - vesa_init, %al
206
		cmp default_bpp - vesa_init, %al
196
		jnz next_mode
207
		jne next_mode
197
		
208
		
198
		# for 24 bpp modes accept also 32 bit bpp
209
		# for 24 bpp modes accept also 32 bit bpp
199
		
210
		
200
		mov $32, %al
211
		mov $32, %al
201
		cmp VESA_MODE_BPP_OFFSET(%di), %al
212
		cmp VESA_MODE_BPP_OFFSET(%di), %al
202
		jnz next_mode
213
		jne next_mode
203
	
214
	
204
	set_mode:
215
	set_mode:
205
		mov %cx, %bx
216
		mov %cx, %bx
206
		or $0xc000, %bx
217
		or $0xc000, %bx
207
		push %di
218
		push %di