fasm 1.67.27

@panel - removed binary file
icon - version from latest version kolibri
icon_new - movable icons (early development :)
cpuspeed - new title

git-svn-id: svn://kolibrios.org@872 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
heavyiron 2008-10-04 17:01:53 +00:00
parent 5620ba7561
commit 07b6a39a9e
20 changed files with 314 additions and 224 deletions

View File

@ -7,13 +7,13 @@
use32
org 0x0
db 'MENUET00' ; 8 byte id
dd 38 ; required os
dd START ; program start
dd I_END ; program image size
dd 0x1000 ; required amount of memory
dd 0x1000 ; esp
dd 0x00000000 ; reserved=no extended header
db 'MENUET01' ; 8 byte id
dd 0x01 ; header version
dd START ; start of code
dd I_END ; size of image
dd 0x1000 ; memory for app
dd 0x1000 ; esp
dd 0x0,0x0 ; I_Param , I_Icon
include 'lang.inc'
include '..\..\..\..\macros.inc'

View File

@ -601,7 +601,6 @@ write_mz_header:
inc si
or ax,ax
jnz mz_size_ok
mov ax,200h
dec si
mz_size_ok:
mov [edx+2],ax ; number of bytes in last page
@ -705,6 +704,10 @@ make_stub:
dec ecx
shl ecx,9
movzx edx,word [esi+2]
test edx,edx
jnz stub_header_size_ok
mov dx,200h
stub_header_size_ok:
add ecx,edx
mov edx,edi
sub ecx,eax

View File

@ -805,6 +805,11 @@ get_preprocessor_symbol:
ret
add_preprocessor_symbol:
push edi esi
mov edi,preprocessor_directives
call get_directive
jnc reserved_word_used_as_symbol
call calculate_hash
mov ebp,eax
and ebp,3FFh
@ -1655,8 +1660,7 @@ use_instant_macro:
cmp dword [edi+4],0
jne value_out_of_range
mov eax,[edi]
or eax,eax
jz instant_macro_done
cmp eax,80000000h
jae value_out_of_range
push [free_additional_memory]
@ -1708,9 +1712,12 @@ use_instant_macro:
jmp add_rept_counter
rept_counters_ok:
dec esi
cmp [counter_limit],0
je instant_macro_finish
instant_macro_parameters_ok:
xor eax,eax
call process_macro
instant_macro_finish:
pop [counter_limit]
pop [macro_symbols]
pop [free_additional_memory]

View File

@ -33,7 +33,7 @@
; cannot simply be copied and put under another distribution licence
; (including the GNU Public Licence).
VERSION_STRING equ "1.67.26"
VERSION_STRING equ "1.67.27"
VERSION_MAJOR = 1
VERSION_MINOR = 67

View File

@ -3355,15 +3355,15 @@ conditional_jump:
loop_instruction_16bit:
cmp [code_type],64
je illegal_instruction
mov dl,al
call address_16bit_prefix
mov al,dl
cmp [code_type],16
je loop_instruction
mov [operand_prefix],67h
jmp loop_instruction
loop_instruction_32bit:
mov dl,al
call address_32bit_prefix
mov al,dl
jmp loop_instruction
cmp [code_type],32
je loop_instruction
mov [operand_prefix],67h
jmp loop_instruction
loop_instruction_64bit:
cmp [code_type],64
jne illegal_instruction
@ -3400,12 +3400,22 @@ loop_instruction:
mov byte [edi],66h
inc edi
loop_jump_32bit_prefix_ok:
call loop_counter_size
call calculate_jump_offset
cdq
make_loop_jump:
call check_for_short_jump
jc conditional_jump_short
jmp jump_out_of_range
loop_counter_size:
cmp [operand_prefix],0
je loop_counter_size_ok
push eax
mov al,[operand_prefix]
stos byte [edi]
pop eax
loop_counter_size_ok:
ret
loop_jump_64bit:
cmp [code_type],64
jne invalid_operand_size
@ -3423,6 +3433,7 @@ loop_instruction:
mov byte [edi],66h
inc edi
loop_jump_16bit_prefix_ok:
call loop_counter_size
call calculate_jump_offset
cwde
cdq
@ -4885,6 +4896,8 @@ movq_instruction:
jmp instruction_assembled
movq_mmreg_mmreg:
call convert_mmx_register
cmp ah,[mmx_size]
jne invalid_operand_size
mov bl,al
call store_nomem_instruction
jmp instruction_assembled
@ -5839,8 +5852,7 @@ vmread_instruction:
lods byte [esi]
call convert_register
mov [postbyte_register],al
cmp [operand_size],4
jne invalid_operand_size
call vmread_check_size
jmp vmx_size_ok
vmread_nomem:
lods byte [esi]
@ -5858,8 +5870,7 @@ vmread_instruction:
lods byte [esi]
call convert_register
mov [postbyte_register],al
cmp [operand_size],4
jne invalid_operand_size
call vmread_check_size
pop ebx
mov [base_code],0Fh
call store_nomem_instruction
@ -5883,8 +5894,7 @@ vmwrite_instruction:
lods byte [esi]
call convert_register
mov [postbyte_register],al
cmp [operand_size],4
jne invalid_operand_size
call vmread_check_size
mov [operand_size],0
lods byte [esi]
cmp al,','
@ -6447,7 +6457,13 @@ store_instruction:
mov eax,edx
cdq
cmp edx,[address_high]
jne value_out_of_range
je address_32bit_value_ok
cmp [error_line],0
jne address_32bit_value_ok
mov edx,[current_line]
mov [error_line],edx
mov [error],value_out_of_range
address_32bit_value_ok:
mov edx,eax
jmp store_address_32bit_value
sib_address_8bit_value:

View File

@ -1,26 +1,28 @@
AA-SYSXTREE-004-/sys/SYSXTREE - *
AB-COPY -008-/sys/COPY2 - *
AC-RDSAVE -020-/sys/RDSAVE - *
BB-CALC -006-/sys/CALC - *
CA-TINYPAD -011-/sys/TINYPAD - *
CB-KFM -007-/sys/KFM - *
JA-VRR -009-/sys/VRR - *
II-C4 -005-/sys/GAMES/C4 - *
JI-MINE -017-/sys/GAMES/MINE - *
IH-TETRIS -021-/sys/GAMES/TETRIS - *
JH-MBLOCKS -013-/sys/GAMES/MBLOCKS - *
HI-PONG -026-/sys/GAMES/PONG3 - *
GI-15 -000-/sys/GAMES/15 - *
HH-LIFE2 -015-/sys/DEMOS/LIFE2 - *
BA-FASM -012-/sys/DEVELOP/FASM - *
JB-ANIMAGE -018-/sys/ANIMAGE - *
CC-CMD -023-/sys/CMD - *
IA-BOARD -022-/sys/DEVELOP/BOARD - *
JC-DOCPACK -010-/sys/DOCPAK - *
BC-KFAR -027-/sys/KFAR - *
HA-MTDBG -029-/sys/DEVELOP/MTDBG - *
AH-PIPES -030-/sys/GAMES/PIPES - *
AI-FARA -031-/sys/GAMES/FARA - *
BI-ARC-II -014-/sys/GAMES/ARCANII - *
BH-XONIX -024-/sys/GAMES/XONIX - *
GH-CHECKERS-002-/sys/GAMES/CHECKERS - *
AA-EOLITE -002-/SYS/File Managers/EOLITE - *
AB-COPY -006-/SYS/COPY2 - *
AC-RDSAVE -017-/SYS/RDSAVE - *
BB-CALC -004-/SYS/CALC - *
CA-TINYPAD -009-/SYS/TINYPAD - *
CB-KFM -005-/SYS/File Managers/KFM - *
JA-VRR -007-/SYS/VRR - *
II-CLICKS -003-/SYS/GAMES/CLICKS - *
JI-MINE -014-/SYS/GAMES/MINE - *
IH-TETRIS -018-/SYS/GAMES/TETRIS - *
JH-MBLOCKS -011-/SYS/GAMES/MBLOCKS - *
HI-CHECKERS-001-/SYS/GAMES/CHECKERS - *
GI-15 -000-/SYS/GAMES/15 - *
HH-LIFE2 -013-/SYS/DEMOS/LIFE2 - *
BA-FASM -010-/SYS/DEVELOP/FASM - *
JB-ANIMAGE -015-/SYS/ANIMAGE - *
CC-CMD -020-/SYS/CMD - *
IA-BOARD -019-/SYS/DEVELOP/BOARD - *
JC-DOCPACK -008-/SYS/DOCPAK - *
BC-KFAR -024-/SYS/File Managers/KFAR - *
HA-MTDBG -025-/SYS/DEVELOP/MTDBG - *
AH-PIPES -026-/SYS/GAMES/PIPES - *
AI-FARA -027-/SYS/GAMES/FARA - *
BI-ARC-II -012-/SYS/GAMES/ARCANII - *
BH-XONIX -021-/SYS/GAMES/XONIX - *
GH-INVADERS-029-/SYS/GAMES/INVADERS - *
CI-LODERUN -030-/SYS/GAMES/LRL_PK - *
CH-KOSILKA -023-/SYS/GAMES/KOSILKA - *

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 766 B

View File

@ -21,178 +21,244 @@ use32
; +0 +4 +8 +38 +68
include '..\..\..\macros.inc'
;__DEBUG__ fix 1
;__DEBUG_LEVEL__ fix 1
;include 'debug-fdo.inc'
flipdelay = 7
flipdelay = 5
START: ; start of execution
cmp [I_PARAM],byte 0
jne nohalt
or eax,-1
mcall
nohalt:
cmp [I_PARAM],byte 0
jne nohalt
mcall -1
nohalt:
mov eax,[I_PARAM+0]
sub eax,0x01010101
mov [xpos],eax
mov eax,[I_PARAM+4]
sub eax,0x01010101
mov [ypos],eax
mov eax,[I_PARAM+0]
sub eax,0x01010101
mov [xpos],eax
mov eax,[I_PARAM+4]
sub eax,0x01010101
mov [ypos],eax
mov esi,I_PARAM+8
mov edi,fname
mov ecx,30
mov esi,I_PARAM+8
mov edi,fname
mov ecx,30
cld
rep movsb
call fill_paths
rep movsb
call fill_paths
;DEBUGF 1,"fname: '%s'\n",fname
mov esi,I_PARAM+8+30
mov edi,start_file
mov ecx,30
rep movsb
call fill_paths
mov esi,I_PARAM+8+30+30
mov edi,labelt
mov ecx,10
mov esi,I_PARAM+8+30
mov edi,start_file
mov ecx,30
cld
rep movsb
rep movsb
call fill_paths
mov eax,40 ; get also event background change
mov ebx,10101b
mcall
mov esi,I_PARAM+8+30+30
mov edi,labelt
mov ecx,10
cld
rep movsb
mcall 40,110001b
call get_bg
mcall 37,4,hand,1
mov ecx,eax
mcall 37,5
red: ; redraw
call draw_window
red:
call get_bg
call draw_window
still:
mov eax,10 ; wait here for event
mcall
mcall 10 ; wait here for event
cmp eax,1 ; redraw request ?
jz red
cmp eax,3 ; button in buffer ?
jz button
cmp eax,1 ; redraw request ?
jz red
cmp eax,6
jz mouse
check:
call get_bg
call draw_icon
call get_bg
call draw_icon
mcall 5,80
jmp still
jmp still
button: ; button
mov al,17 ; get id
mcall
mov eax,70
mov ebx,finfo_start
mcall
mouse:
call flip_icon
mcall 9,process,-1
xor ebx,ebx
mov bx,[process.window_stack_position]
cmp eax,ebx ;check is this process is active
jne still
jmp still
cmp [mouse_pressed],1
je @f
mcall 37,2
test eax,1
jz still
mov [icon_moved],0
mcall 37,0
mov ebx,eax
shr eax,16 ; eax= abs x
and ebx,0xffff ; ebx= abs y
mov [xmouse_old],eax ; saving mouse coordinates
mov [ymouse_old],ebx
cmp eax,[process.box.left] ; check is mouse in icon area
jl still
sub eax,[process.box.left]
cmp eax,[process.box.width]
ja still
cmp ebx,[process.box.top]
jl still
sub ebx,[process.box.top]
cmp ebx,[process.box.height]
ja still
mov [xmouse_rel],eax ; saving relative coordinates
mov [ymouse_rel],ebx
mov [mouse_pressed],1
jmp still
@@:
mcall 37,2
test eax,1
jnz @F
mov [mouse_pressed],0
@@:
mcall 37,0
mov ecx,eax
shr eax,16 ; eax= abs x
and ecx,0xffff ; ecx= abs y
push eax ecx
cmp [icon_moved],1
je move
add eax,2
cmp eax,[xmouse_old]
jle move
sub eax,4
cmp eax,[xmouse_old]
jae move
add ecx,2
cmp ecx,[ymouse_old]
jle move
sub ecx,4
cmp ecx,[ymouse_old]
jae move
cmp [mouse_pressed],1
je still
mcall 70,finfo_start
call flip_icon
jmp still
move:
mov [icon_moved],1
pop ecx ebx
sub ebx,[xmouse_rel] ; ebx=new_x
sub ecx,[ymouse_rel] ; ecx=new_y
mov [xpos],ebx
mov [ypos],ecx
mcall 67,,,-1,-1 ; move
jmp still
fill_paths:
dec edi
mov ecx,30
std
mov al,' '
repe scasb
cld
mov byte[edi+2],0
ret
flip_icon:
mov eax,1
call flip
mov eax,2
call flip
mov eax,3
call flip
mov eax,4
call flip
mov eax,5
call flip
mov eax,4
call flip
mov eax,3
call flip
mov eax,2
call flip
mov eax,1
call flip
mov eax,0
call flip
mov eax,1
call flip
inc eax
call flip
inc eax
call flip
inc eax
call flip
inc eax
call flip
dec eax
call flip
dec eax
call flip
dec eax
call flip
dec eax
call flip
xor eax,eax
call flip
ret
flip:
mov [iconstate],eax
call get_bg
call draw_icon
mov eax,5
mov ebx,flipdelay
mcall
push eax
mov [iconstate],eax
call get_bg
call draw_icon
mcall 5,flipdelay
pop eax
ret
fill_paths:
dec edi
mov ecx,30
std
mov al,' '
repe scasb
cld
mov byte[edi+2],0
ret
draw_window:
mov eax,12 ; function 12:tell os about windowdraw
mov ebx,1 ; 1, start of draw
mcall
mcall 12,1 ; function 12,1 - tell os about start of draw window
; DRAW WINDOW
xor eax,eax ; function 0 : define and draw window
mov ebx,[xpos-2]
mov ecx,[ypos-2]
add ebx,[yw] ; [x start] *65536 + [x size]
add ecx,67 ; [y start] *65536 + [y size]
mov edx,0x01000000 ; color of work area RRGGBB,8->color gl
mcall
xor eax,eax ; function 0 : define and draw window
mov ebx,[xpos-2]
add ebx,51 ; [x start] *65536 + [x size]
mov ecx,[ypos-2]
add ecx,67 ; [y start] *65536 + [y size]
mov edx,0x01000000
mov esi,0x01000000
mcall
mov eax,8 ; button
mov ebx,51
mov ecx,67
mov edx,0x60000001
mcall
call draw_icon
call draw_icon
mcall 12,2 ; function 12,2 - tell os about end of draw window
mov eax,12
mov ebx,2
mcall
ret
ret
get_bg:
mov eax,14
mcall
add eax,0x00010001
mcall 61,1
mov [scrxy],eax
mov eax,39 ; get background type
mov ebx,4
mcall
mcall 39,4 ; get background type
mov [bgrdrawtype],eax
mov eax,39 ; get background size
mov ebx,1
mcall
mcall 39,1 ; get background size
mov [bgrxy],eax
mov eax,70
mov ebx,finfo
mcall
mcall 70,finfo
mov [itype],0
cmp word[I_END+256],'BM'
@ -200,7 +266,7 @@ get_bg:
inc [itype]
@@:
mov ebx,[yw]
mov ebx,51
xor ecx,ecx ; 10608 = 52*68*3 - bg image
mov esi,I_END+256+9662 ; 9662 - icon file image
mov edi,51*3
@ -211,7 +277,7 @@ get_bg:
yesbpix:
cmp [bgrdrawtype],dword 2
cmp [bgrdrawtype],2
jne nostretch
mov eax,[ypos]
@ -240,7 +306,7 @@ get_bg:
nostretch:
cmp [bgrdrawtype],dword 1
cmp [bgrdrawtype],1
jne notiled
mov eax,[ypos]
@ -266,11 +332,7 @@ get_bg:
notiled:
lea ecx,[eax+eax*2]
mov eax,39
mov ebx,2
mcall
mcall 39,2
nobpix:
@ -284,7 +346,7 @@ get_bg:
dec ebx
jge newb
mov ebx,[yw]
mov ebx,51
add esi,52*3
mov edi,51*3
@ -406,11 +468,7 @@ get_bg:
ret
draw_picture:
mov eax,7
mov ebx,I_END+256+9662
mov ecx,52 shl 16 + 68
xor edx,edx
mcall
mcall 7,I_END+256+9662,52 shl 16+68,0
ret
draw_icon:
@ -438,14 +496,14 @@ draw_text:
shl ecx,16
add ebx,ecx
; replaced - delete commented lines below if you like that style
mov eax,4 ; white text
; black shade of text
; uncomment lines below if you like that style
xor ecx,ecx
mov edx,labelt
mov esi,labellen-labelt
add ebx,1 shl 16 ;*65536+1
mcall
add ebx,1 shl 16
mcall 4
inc ebx
mcall
add ebx,1 shl 16
@ -454,23 +512,22 @@ draw_text:
mcall
sub ebx,1 shl 16
mcall
sub ebx,1 shl 16 +1
sub ebx,1*65536+1
mcall
sub ebx,1 shl 16 + 1
sub ebx,1*65536+1
mcall
add ebx,1 shl 16 - 1
add ebx,1*65536-1
mcall
inc ebx
mov ecx,0xffffff
or ecx,0xffffff
mcall
;xor ecx,ecx ; black shade of text
;xor ecx,ecx
;mov edx,labelt
;mov esi,labellen-labelt
;add ebx,1*65536+1
;mcall
;mcall 4
;sub ebx,1*65536+1
;mov ecx,0xffffff
;or ecx,0xffffff
;mcall
ret
@ -480,18 +537,17 @@ draw_text:
itype db 0
align 4
tl dd 2
yw dd 51
xpos dd 15
ypos dd 185
bgrxy dd 0x0
scrxy dd 0x0
bgrdrawtype dd 0x0
hand file 'hand.cur'
icon_moved dd 0
iconstate dd 0
add_table0 dd (24-6*4)*3,(24-6*2)*3,(24-6*1)*3,\
@ -530,7 +586,23 @@ labellen:
pixl dd ?
xpos dd ?
ypos dd ?
mouse_pressed dd ?
xmouse_rel dd ?
ymouse_rel dd ?
xmouse_old dd ?
ymouse_old dd ?
processes dd ?
pid dd ?
process process_information
;include_debug_strings
I_PARAM:
I_END:
I_END:

View File

@ -30,8 +30,7 @@ START: ; start of execution
still:
mov eax,10 ; wait here for event
mcall
mcall 10 ; wait here for event
dec eax ; redraw request ?
jz red
@ -39,8 +38,7 @@ still:
jz key
button: ; button
mov al,17 ; get id
mcall
mcall 17 ; get id
shr eax,8
@ -123,8 +121,7 @@ still:
sub ebx,eax
imul ebx,70
push ebx
mov eax,14
mcall
mcall 14
pop ebx
shr eax,16
sub eax,51+15
@ -559,12 +556,9 @@ read_string:
draw_window:
mov eax,12 ; function 12:tell os about windowdraw
mov ebx,1 ; 1, start of draw
mcall
mcall 12,1 ; function 12,1 - tell os about start of draw window
; DRAW WINDOW
xor eax,eax
xor eax,eax ; DRAW WINDOW
mov ebx,210*65536+300
mov ecx,30*65536+390
mov edx,0x33ffffff
@ -680,9 +674,7 @@ draw_window:
call print_strings
mov eax,12 ; function 12:tell os about windowdraw
mov ebx,2 ; 2, end of draw
mcall
mcall 12,2 ; function 12,2 - tell os about end of draw window
ret
@ -702,7 +694,6 @@ icons_reserved:
times 10 db ' '
text:
db 0,0,0,0, 'Click on icon position to edit '
db 0,0,0,0, ' '

View File

@ -1,8 +1,7 @@
AA-/sys/icons/FS.ICO -/sys/KFAR -FAR *
AA-/sys/icons/FS.ICO -/sys/File Managers/KFAR -FAR *
BA-/sys/icons/FASM.ICO -/sys/develop/FASM -Fasm *
CA-/sys/icons/WRITE.ICO -/sys/TINYPAD -Tinypad *
AB-/sys/icons/FLOPPY.ICO -/sys/RDSAVE -RDsave *
BB-/sys/icons/CALC.ICO -/sys/CALC -Calc *
HA-/sys/icons/BUG.ICO -/sys/develop/MTDBG -Debuger *
IA-/sys/icons/BOARD.ICO -/sys/develop/BOARD -Board *
JA-/sys/icons/VRR.ICO -/sys/VRR -VRR *
IA-/sys/icons/BUG.ICO -/sys/develop/MTDBG -Debuger *
JA-/sys/icons/BOARD.ICO -/sys/develop/BOARD -Board *

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.4 KiB

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.4 KiB

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.4 KiB

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.4 KiB

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.4 KiB

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.4 KiB

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.4 KiB

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.