27,8 → 27,6 |
; 3) use COL0 - COL9 boot parameter |
; 0=black,1=white,2=green,3=lilas,4=grey |
; 5=light-blue,6=blue,7=salad,8=pink,9=yellow |
; version 0.17 17th June 2007 |
; diamond (background definition now uses shared memory) |
|
memsize=20000h |
org 0 |
35,7 → 33,7 |
PARAMS = memsize - 1024 |
|
appname equ 'Jpegview ' |
version equ '0.17' |
version equ '0.16' |
|
use32 |
|
52,7 → 50,6 |
include '..\..\..\macros.inc' |
|
START: ; start of execution |
mcall 68,11 ; initialize heap |
|
cmp [PARAMS], byte 0 |
jne check_parameters |
236,20 → 233,9 |
mov edx, [ebp + y_size] |
mcall |
|
mov ebx, 6 |
mcall |
test eax, eax |
jz .end |
mov [ipc_mem_out], eax |
|
mov dword [ebp+draw_ptr],put_chunk_to_mem |
mov dword [ebp+draw_ptr],put_chunk_to_bgr |
call jpeg_display |
|
mov eax, 15 |
mov ebx, 7 |
mov ecx, [ipc_mem_out] |
mcall |
|
; Stretch the image to fit |
mov eax, 15 |
mov ebx, 4 |
267,6 → 253,7 |
;****************************************************************************** |
|
ipc_service: |
mcall 68, 11 |
mov esi, PARAMS+1 |
xor eax, eax |
xor ecx, ecx |
323,12 → 310,11 |
mcall 68, 12 |
test eax, eax |
jz .end |
add eax, 8 |
mov [ipc_mem_out], eax |
mov ebx, [ebp + x_size] |
mov [eax-8], ebx |
mov [eax], ebx |
mov ebx, [ebp + y_size] |
mov [eax-4], ebx |
mov [eax+4], ebx |
|
mov dword [ebp+draw_ptr],put_chunk_to_mem |
call jpeg_display |
338,7 → 324,6 |
imul esi, [ebp + y_size] |
lea esi, [esi*3+8] |
mov edx, [ipc_mem_out] |
sub edx, 8 |
.response: |
mov ecx, [ipc_mem] |
mov ecx, [ecx+8] |
371,6 → 356,41 |
|
;****************************************************************************** |
|
put_chunk_to_bgr: |
pushad |
|
mov [x_pointer], edi |
mov esi, ecx |
imul esi, 3 |
mov [x_numofbytes], esi |
mov ecx, [ebp + x_size] |
imul ecx, ebx |
add ecx, eax |
imul ecx, 3 |
mov [x_offset], ecx |
mov [x_counter], edx |
mov eax, [ebp + x_size] |
imul eax, 3 |
mov [x_numofb2], eax |
.new_string: |
mov eax, 15 |
mov ebx, 5 |
mov ecx, [x_pointer] |
mov edx, [x_offset] |
mov esi, [x_numofbytes] |
mcall |
mov eax, [x_numofbytes] |
add [x_pointer], eax |
mov eax, [x_numofb2] |
add [x_offset], eax |
dec [x_counter] |
jnz .new_string |
|
popad |
ret |
|
;****************************************************************************** |
|
put_chunk_to_mem: |
; in: (eax,ebx) = start coordinates of chunk |
; (ecx,edx) = sizes of chunk |
380,7 → 400,7 |
mov edi, ebx |
imul edi, [ebp + x_size] |
add edi, eax |
lea edi, [edi*3] |
lea edi, [edi*3+8] |
add edi, [ipc_mem_out] |
@@: |
push ecx edi |