/programs/develop/examples/cpuspeed/trunk/cpuspeed.asm |
---|
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 |
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 0x00000000 ; reserved=no extended header |
dd 0x0,0x0 ; I_Param , I_Icon |
include 'lang.inc' |
include '..\..\..\..\macros.inc' |
/programs/develop/fasm/trunk/formats.inc |
---|
601,7 → 601,6 |
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 |
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 |
/programs/develop/fasm/trunk/preproce.inc |
---|
805,6 → 805,11 |
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 |
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 |
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] |
/programs/develop/fasm/trunk/version.inc |
---|
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 |
/programs/develop/fasm/trunk/x86_64.inc |
---|
3355,14 → 3355,14 |
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 |
cmp [code_type],32 |
je loop_instruction |
mov [operand_prefix],67h |
jmp loop_instruction |
loop_instruction_64bit: |
cmp [code_type],64 |
3400,6 → 3400,7 |
mov byte [edi],66h |
inc edi |
loop_jump_32bit_prefix_ok: |
call loop_counter_size |
call calculate_jump_offset |
cdq |
make_loop_jump: |
3406,6 → 3407,15 |
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 |
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 |
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 |
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 |
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 |
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 |
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: |
/programs/system/icon/trunk/icons.dat |
---|
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 - * |
/programs/system/icon/trunk/iconstrp.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/programs/system/icon_new/trunk/hand.cur |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/programs/system/icon_new/trunk/icon.asm |
---|
21,19 → 21,20 |
; +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 |
mcall -1 |
nohalt: |
mov eax,[I_PARAM+0] |
sub eax,0x01010101 |
mov [xpos],eax |
53,6 → 54,7 |
mov esi,I_PARAM+8+30 |
mov edi,start_file |
mov ecx,30 |
cld |
rep movsb |
call fill_paths |
62,137 → 64,201 |
cld |
rep movsb |
mov eax,40 ; get also event background change |
mov ebx,10101b |
mcall |
mcall 40,110001b |
mcall 37,4,hand,1 |
mov ecx,eax |
mcall 37,5 |
red: |
call get_bg |
red: ; redraw |
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,6 |
jz mouse |
check: |
call get_bg |
call draw_icon |
mcall 5,80 |
jmp still |
button: ; button |
mov al,17 ; get id |
mcall |
mov eax,70 |
mov ebx,finfo_start |
mcall |
mouse: |
mcall 9,process,-1 |
xor ebx,ebx |
mov bx,[process.window_stack_position] |
cmp eax,ebx ;check is this process is active |
jne 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 |
inc eax |
call flip |
mov eax,3 |
inc eax |
call flip |
mov eax,4 |
inc eax |
call flip |
mov eax,5 |
inc eax |
call flip |
mov eax,4 |
dec eax |
call flip |
mov eax,3 |
dec eax |
call flip |
mov eax,2 |
dec eax |
call flip |
mov eax,1 |
dec eax |
call flip |
mov eax,0 |
xor eax,eax |
call flip |
ret |
flip: |
push eax |
mov [iconstate],eax |
call get_bg |
call draw_icon |
mov eax,5 |
mov ebx,flipdelay |
mcall |
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] |
add ebx,51 ; [x start] *65536 + [x size] |
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 |
mov edx,0x01000000 |
mov esi,0x01000000 |
mcall |
mov eax,8 ; button |
mov ebx,51 |
mov ecx,67 |
mov edx,0x60000001 |
mcall |
call draw_icon |
mov eax,12 |
mov ebx,2 |
mcall |
mcall 12,2 ; function 12,2 - tell os about end of draw window |
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 |
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 |
yesbpix: |
cmp [bgrdrawtype],dword 2 |
cmp [bgrdrawtype],2 |
jne nostretch |
mov eax,[ypos] |
240,7 → 306,7 |
nostretch: |
cmp [bgrdrawtype],dword 1 |
cmp [bgrdrawtype],1 |
jne notiled |
mov eax,[ypos] |
266,12 → 332,8 |
notiled: |
lea ecx,[eax+eax*2] |
mcall 39,2 |
mov eax,39 |
mov ebx,2 |
mcall |
nobpix: |
pop ecx ebx |
284,7 → 346,7 |
dec ebx |
jge newb |
mov ebx,[yw] |
mov ebx,51 |
add esi,52*3 |
mov edi,51*3 |
406,11 → 468,7 |
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 |
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 |
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 |
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 |
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: |
/programs/system/icon_new/trunk/iconmngr.asm |
---|
30,8 → 30,7 |
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 |
jz key |
button: ; button |
mov al,17 ; get id |
mcall |
mcall 17 ; get id |
shr eax,8 |
123,8 → 121,7 |
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 |
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 |
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 |
times 10 db ' ' |
text: |
db 0,0,0,0, 'Click on icon position to edit ' |
db 0,0,0,0, ' ' |
/programs/system/icon_new/trunk/icons/vrr.ico |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/programs/system/icon_new/trunk/icons/board.ico |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/programs/system/icon_new/trunk/icons/bug.ico |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/programs/system/icon_new/trunk/icons/calc.ico |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/programs/system/icon_new/trunk/icons/fasm.ico |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/programs/system/icon_new/trunk/icons/floppy.ico |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/programs/system/icon_new/trunk/icons/fs.ico |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/programs/system/icon_new/trunk/icons/write.ico |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/programs/system/icon_new/trunk/icons.dat |
---|
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 * |
/programs/system/panel/trunk/@PANEL |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |