Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 3445 → Rev 3446

/programs/system/mgb/trunk/mgb.asm
1,10 → 1,15
;=============================================================================
; Kolibri Graphics Benchmark 0.6
; Kolibri Graphics Benchmark 0.7
;--------------------------------------
; MGB - Menuet Graphics Benchmark 0.3
; Compile with FASM
;
;=============================================================================
; version: 0.7
; last update: 05/04/2013
; written by: Marat Zakiyanov aka Mario79, aka Mario
; changes: benchmark GS selector - read screen area
;---------------------------------------------------------------------
; version: 0.6
; last update: 14/03/2013
; written by: Marat Zakiyanov aka Mario79, aka Mario
56,6 → 61,7
include '../../../config.inc' ;for nightbuild
include '..\..\..\macros.inc'
include '..\..\..\proc32.inc'
;include '..\..\..\debug.inc'
include '../../../develop/libraries/box_lib/trunk/box_lib.mac'
include '../../../develop/libraries/box_lib/load_lib.mac'
@use_library
321,6 → 327,107
ret
;---------------------------------------------------------------------
align 4
testGetScreen_GS:
push edi
mov [start_x],15
mov [start_y],33
mov [size_x],90
mov [size_y],123
mov edi,[area_for_f36]
 
mcall 61,2
cmp eax,24
je get_area_with_GS_24
;-----------------------------------------------------------------------------
align 4
get_area_with_GS_32:
mcall 61,1
shr eax,16
shl eax,2
mov [offset_x],eax
 
mov esi,[start_y]
imul esi,eax
mov eax,[start_x]
shl eax,2
add esi,eax
 
mov eax,[size_x]
shl eax,2
sub [offset_x],eax
mov edx,[size_y]
mov ebx,[offset_x]
sub esi,ebx
mov ebp,[size_x]
;--------------------------------------
align 4
.start_y:
add esi,ebx
mov ecx,ebp
;--------------------------------------
align 4
.start_x:
mov eax,[gs:esi]
mov [edi],eax
add esi,4
add edi,3
dec ecx
jnz .start_x
dec edx
jnz .start_y
pop edi
ret
;-----------------------------------------------------------------------------
align 4
get_area_with_GS_24:
mcall 61,1
shr eax,16
lea eax,[eax*3]
mov [offset_x],eax
mov esi,[start_y]
imul esi,eax
mov eax,[start_x]
lea eax,[eax*3]
add esi,eax
mov eax,[size_x]
lea eax,[eax*3]
sub [offset_x],eax
mov edx,[size_y]
mov ebx,[offset_x]
sub esi,ebx
mov ebp,[size_x]
;--------------------------------------
align 4
.start_y:
add esi,ebx
mov ecx,ebp
;--------------------------------------
align 4
.start_x:
mov eax,[gs:esi]
mov [edi],eax
add esi,3
add edi,3
 
dec ecx
jnz .start_x
dec edx
jnz .start_y
 
pop edi
ret
;-----------------------------------------------------------------------------
align 4
testDrawVertLine:
mcall 38,<300,300>,<30,380>,1090207Fh
ret
562,6 → 669,7
?,?,testDrawWindow,aDrawingWindow,\
?,?,testDrawBar,aDrawingBar,\
?,?,testGetScreen_f36,aGetScreenF36,\
?,?,testGetScreen_GS,aGetScreen_GS,\
?,?,testDrawPicture,aDrawingPicture,\
?,?,testDrawPicture_f73,aDrawingPictF73,\
?,?,testDrawVertLine,aDrawingVLine,\
581,7 → 689,8
aDrawingBar db 'Filled Rectangle, 100x250 px',0
aDrawingPicture db 'Picture, 90x123, px',0
aDrawingPictF73 db 'Picture for Blitter, 90x123, px',0
aGetScreenF36 db 'Get a piece of screen, 90x123, px',0
aGetScreenF36 db 'Get a piece of screen f.36, 90x123, px',0
aGetScreen_GS db 'Get a piece of screen GS, 90x123, px',0
aDrawingVLine db 'Vertical Line, 350 px',0
aDrawingHLine db 'Horizontal Line, 270 px',0
aDrawingFLine db 'Free-angled Line, 350 px',0
592,7 → 701,7
 
aTestText db 'This is a 34-charachters test text'
aButtonsText db 'Test Comment+ Pattern+ Open Save',0
aCaption db 'Kolibri Graphical Benchmark 0.6',0
aCaption db 'Kolibri Graphical Benchmark 0.7',0
 
aLeft db 'Left :',0
aRight db 'Right :',0
792,6 → 901,12
area_for_f36 rd 1
dwTestEndTime rd 1
dwMainPID rd 1
;-----------------------------------------------------------------------------
start_x rd 1
start_y rd 1
size_x rd 1
size_y rd 1
offset_x rd 1
;---------------------------------------------------------------------
textarea:
rb 8