/programs/fs/sysxtree/trunk/SYSTR12.GIF |
---|
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/fs/sysxtree/trunk/ascgl.inc |
---|
20,8 → 20,8 |
;0.07 convbmp ~13.05.2004 |
;0.08 fps ~14.05.2004 |
;0.09 drawfbox ~03.06.2004 |
;0.10 all macros optimized by halyavin, add at ~07.06.2004 |
;0.11 many macros optimized by halyavin, add at ~30.08.2004 |
;0.10 all macros optimized by Halyavin A., add at ~07.06.2004 |
;0.11 many macros optimized by Halyavin A., add at ~30.08.2004 |
;0.12 bmptoimg ~07.09.2004 |
;0.13 imgtoimg ~08.09.2004 |
;0.14 imgtoimg modify not brake bmp pict! ~09.09.2004 |
369,8 → 369,8 |
;DrawBox |
macro drawfbox x,y,xs,ys,color |
{ |
wordstoreg ebx,x,xs ;x*65536+xs |
wordstoreg ecx,y,ys ;y*65536+ys |
words2reg ebx,x,xs ;x*65536+xs |
words2reg ecx,y,ys ;y*65536+ys |
mov edx,color |
mov eax,13 |
int 0x40 |
405,7 → 405,7 |
mov [fps_cntr],0 |
out_fps: |
if ~(delcolor eq ) |
mov ebx,x*65536+30 |
mov ebx,x*65536+36 |
mov ecx,y*65536+7 |
mov edx,delcolor |
mov eax,13 |
413,7 → 413,7 |
end if |
mov dword [ttt],fps_show_frequency |
mov eax,47 |
mov ebx,5*65536 |
mov ebx,6*65536 |
; mov bl,0 |
mov edx,x*65536+y |
mov esi,color |
495,7 → 495,7 |
shl ecx,16 |
add cx,[arg3+4] |
; wordstoreg ecx,[arg3],[arg3+4] |
wordstoreg edx, x , y ;arg1*65536+arg2 |
words2reg edx, x , y ;arg1*65536+arg2 |
int 0x40 |
} |
504,7 → 504,7 |
mov eax,7 |
mov ebx,arg3 |
add ebx,8 |
wordstoreg edx, x , y ;arg1*65536+arg2 |
words2reg edx, x , y ;arg1*65536+arg2 |
add edx,dword [arg3] |
mov ecx,dword [arg3+4] |
int 0x40 |
806,7 → 806,7 |
local Gif_get_sym, shift, nextbl, noblock, loop1, exx |
local Gif_output, next, loop2 |
_null equ 0x1000 ; 0x1000 |
_null = 0x1000 ; 0x1000 |
; jmp sss |
; if defined gif_hash_offset |
1101,7 → 1101,7 |
local Gif_get_sym, shift, nextbl, noblock, loop1, exx |
local Gif_output, next, loop2 |
_null fix 0x1000 ; 0x1000 |
_null = 0x1000 ; 0x1000 |
mov esi,gifsrc ;ª § ⥫ì ä ¨« ¢ ¯ ¬ï⨠|
mov edi,imgsrc ;ª § ⥫ì ᯨ᮪ ª à⨮ª |
1291,7 → 1291,6 |
Gif_skipmap: |
; in: ecx - image descriptor, esi - pointer to colormap |
; out: edi - pointer to area after colormap |
and ecx,111b |
inc ecx ; color map size |
mov ebx,1 |
/programs/fs/sysxtree/trunk/ascgml.inc |
---|
0,0 → 1,49 |
lang equ ru |
; |
; Assembler |
; SMALL |
; CODE |
; GaMe |
; Libary |
; |
; Ver 0.03 By Pavlushin Evgeni (RUSSIA) |
; www.waptap@mail.ru |
;InfoList |
;0.01 correct |
;0.02 control ~14.05.2004 |
;0.03 all macros optimized by halyavin, add at ~07.06.2004 |
; corectiryemoe,corectnoe,step |
macro correct arg1,arg2,arg3 |
{ |
local plus,minus,equal |
mov eax,arg2 |
cmp arg1,eax |
je equal |
mov eax,arg3 |
ja minus |
plus: |
add arg1,eax |
jmp equal |
minus: |
sub arg1,eax |
equal: |
} |
macro control min,max,arg |
{ |
local gr,low,norm |
mov eax,max |
cmp arg,eax |
jg gr |
mov eax,min |
cmp arg,eax |
jnl norm |
gr: |
low: |
mov arg,eax |
norm: |
} |
/programs/fs/sysxtree/trunk/ascl.inc |
---|
27,11 → 27,13 |
;0.12 open/save dialog ~13.09.2004 |
;0.13 dialogs bugs deleted |
;0.14 drawlbut ~03.10.2004 |
;0.15 extendet label! |
; LOADFILE |
; (SYNTAX) LOADFILE 'full_path_to_file',file_load_area,file_temp_area |
; (SAMPLE) LOADFILE '/rd/1/clock.bmp',load_area,temp_area |
macro loadfile file_name,file_load_area,file_temp_area |
{ |
local open,fileinfo,string |
59,25 → 61,75 |
} |
macro wordstoreg reg,hiword,loword |
;macro wordstoreg reg,hiword,loword |
;{ |
;if hiword eqtype 0 & loword eqtype 0 |
; mov reg,dword hiword*65536+loword |
;else if hiword eqtype 12 & loword eqtype eax |
; mov reg,dword hiword*65536 |
; add reg,dword loword |
;else if hiword eqtype 12 & loword eqtype [123] |
; mov reg,dword hiword*65536 |
; add reg,dword loword |
;else |
; mov reg,dword hiword |
; shl reg,16 |
; add reg,dword loword |
;end if |
;} |
macro dword2reg reg,doubleword |
{ |
if hiword eqtype 0 & loword eqtype 0 |
mov reg,(hiword)*65536+(loword) |
else if hiword eqtype 12 & loword eqtype eax |
mov reg,(hiword)*65536 |
add reg,loword |
else if hiword eqtype 0 & loword eqtype [123] |
mov reg,(hiword)*65536 |
add reg,loword |
else if (hiword eq ) & (loword eq ) |
if doubleword eq |
; not changes |
else |
mov reg,hiword |
mov reg,dword doubleword |
end if |
} |
macro words2reg reg,hiword,lowword |
{ |
if hiword eq |
if lowword eq |
; not changes |
else |
if lowword eqtype 12 |
and reg,dword 0xffff0000 |
add reg,dword lowword |
else |
and reg,dword 0xffff0000 |
add reg,dword lowword |
end if |
end if |
else |
if lowword eq |
if hiword eqtype 12 |
and reg,dword 0x0000ffff |
add reg,dword hiword*65536 |
else |
shl reg,16 |
add reg,loword |
add reg,dword hiword |
ror reg,16 |
end if |
else |
if lowword eqtype 12 & hiword eqtype 12 |
if lowword eq 0 & hiword eq 0 |
xor reg,reg |
else |
mov reg,dword hiword*65536+lowword |
end if |
else |
mov reg,dword hiword |
shl reg,16 |
add reg,dword lowword |
end if |
end if |
end if |
} |
; DRAW BUTTON with label |
macro drawlbut x,y,xs,ys,text,id,bcolor,tcolor |
86,8 → 138,8 |
jmp asd |
lab db text ;arg label |
asd: |
wordstoreg ebx,x,xs |
wordstoreg ecx,y,ys |
words2reg ebx,x,xs |
words2reg ecx,y,ys |
mov edx,id |
mov esi,bcolor |
mov eax,8 |
328,7 → 380,7 |
db '/RD/1/SYSXTREE',0 |
procinfo: |
times 256 db 0 |
times 1024 db 0 |
} |
390,7 → 442,7 |
mov eax,60 |
mov ebx,1 ; define IPC |
mov ecx,path ; offset of area |
mov edx,120 ; size 150 bytes |
mov edx,150 ; size 150 bytes |
int 0x40 |
; change wanted events list 7-bit IPC event |
458,6 → 510,7 |
call redproc |
jmp getmesloop |
mkey: |
mov eax,2 |
int 0x40 ; read (eax=2) |
jmp getmesloop |
mbutton: |
526,8 → 579,8 |
DLGPID dd 0 |
param: |
rb 4 ; My dec PID |
rb 6 ; Type of dialog |
dd 0 ; My dec PID |
dd 0,0 ; Type of dialog |
run_fileinfo: |
dd 16 |
535,11 → 588,11 |
dd param |
dd 0 |
dd procinfo |
run_filepath: |
;run_filepath: |
db '/RD/1/SYSXTREE',0 |
procinfo: |
times 256 db 0 |
times 1024 db 0 |
} |
635,10 → 688,15 |
; mov ebx,x |
; shl ebx,16 |
; add ebx,y |
wordstoreg ebx,x,y |
mov ecx,color |
mov edx,offs |
mov esi,size |
words2reg ebx,x,y |
dword2reg ecx,color |
dword2reg edx,offs |
dword2reg esi,size |
; mov ecx,color |
; mov edx,offs |
; mov esi,size |
mov eax,4 |
int 0x40 |
} |
649,7 → 707,7 |
mov ebx,numtype |
mov bl,0 |
; mov edx,x*65536+y |
wordstoreg edx,x,y |
words2reg edx,x,y |
mov esi,color |
mov eax,47 |
int 0x40 |
728,8 → 786,8 |
{ |
; mov ebx,arg1*65536+arg3 |
; mov ecx,arg2*65536+arg4 |
wordstoreg ebx,arg1,arg3 |
wordstoreg ecx,arg2,arg4 |
words2reg ebx,arg1,arg3 |
words2reg ecx,arg2,arg4 |
mov edx,arg5 |
mov eax,0 |
int 0x40 |
769,7 → 827,7 |
; (SYNTAX) LABEL Xstart,Ystart,'Text',Color |
; (SAMPLE) LABEL 10,12,'Hello World!',cl_Green+font_Big |
macro label arg1,arg2,arg3,arg4 |
macro glabel arg1,arg2,arg3,arg4 |
{ |
local asd,lab |
jmp asd |
778,10 → 836,11 |
; mov ebx,arg1 ;arg1=y arg2=x |
; shl ebx,16 |
; add ebx,arg2 |
wordstoreg ebx,arg1,arg2 |
if ~(arg4 eq ) |
mov ecx,arg4 ;arg4 color |
end if |
words2reg ebx,arg1,arg2 |
dword2reg ecx,arg4 |
mov edx,lab |
mov esi,asd-lab ;calc size |
mov eax,4 |
/programs/fs/sysxtree/trunk/ascml.inc |
---|
0,0 → 1,93 |
lang equ ru |
; |
; Assembler |
; SMALL |
; CODE |
; Massive operation |
; Libary |
; |
; Ver 0.1 By Pavlushin Evgeni (RUSSIA) |
; www.waptap@mail.ru |
;InfoList |
;0.01 readmas,compmas,findmas |
macro readmas masoff,obroff |
{ |
local loo |
mov edi,masoff |
add edi,8 |
mov ebp,[masoff] ;elements |
mov edx,[masoff+4] ;elemsize |
mov eax,0 ;count |
loo: |
pushad |
call obroff |
popad |
add edi,edx |
inc eax |
cmp eax,ebp |
jne loo |
} |
macro compmas masoff1,masoff2,obroff |
{ |
local loo,loo2 |
mov esi,masoff2 |
add esi,8 |
mov ecx,[masoff2] |
mov ebx,[masoff2+4] |
mov eax,0 |
loo2: |
push eax |
mov edi,masoff1 |
add edi,8 |
mov ebp,[masoff1] ;elements1 |
mov edx,[masoff1+4] ;elemsize1 |
mov eax,0 ;count |
loo: |
pushad |
call obroff |
popad |
add edi,edx |
inc eax |
cmp eax,ebp |
jne loo |
add esi,ebx |
pop eax |
inc eax |
cmp eax,ecx |
jne loo2 |
} |
macro findmas masoff,obroff |
{ |
local loo,looend,lend |
mov edi,masoff |
add edi,8 |
mov ebp,[masoff] ;elements |
mov edx,[masoff+4] ;elemsize |
mov eax,0 ;count |
loo: |
pushad |
mov eax,0 |
call obroff |
cmp eax,1 |
je looend |
popad |
add edi,edx |
inc eax |
cmp eax,ebp |
jne loo |
stc |
jmp lend |
looend: |
popad |
clc |
lend: |
} |
/programs/fs/sysxtree/trunk/macros.inc |
---|
1,3 → 1,15 |
; language for programs |
lang fix en ; ru en fr ge fi |
@^ fix macro comment { |
^@ fix } |
macro m2m dest,src { |
push src |
pop dest |
} |
; new application structure |
macro meos_app_start |
{ |
77,35 → 89,72 |
macro sz name,[data] { ; from MFAR [mike.dld] |
common |
if used name |
name db data |
.size = $-name |
end if |
} |
macro lsz name,[lng,data] { ; from MFAR [mike.dld] |
common |
if used name |
label name |
end if |
forward |
if used name |
if lang eq lng |
db data |
end if |
common |
.size = $-name |
end if |
} |
macro szc name,elsz,[data] { ; from MFAR [mike.dld] |
common |
local s,m |
m = 0 |
if used name |
label name |
virtual at 0 |
db data |
s = $ |
end virtual |
d#elsz s |
if m < s |
m = s |
end if |
db data |
.size = $-name |
.maxl = m |
end if |
} |
macro lsz name,[lng,data] { ; from MFAR [mike.dld] |
macro lszc name,elsz,[lng,data] { ; from MFAR [mike.dld] |
common |
local s,m,c |
m = 0 |
c = 0 |
if used name |
label name |
end if |
forward |
if (used name)&(lang eq lng) |
if lang eq lng |
virtual at 0 |
db data |
s = $ |
end virtual |
d#elsz s |
if m < s |
m = s |
end if |
db data |
c = c+1 |
end if |
common |
if used name |
.size = $-name |
.maxl = m |
.count = c |
end if |
} |
; easy system call macro |
macro mpack dest, hsrc, lsrc |
{ |
123,8 → 172,16 |
end if |
} |
macro __mov reg,a { ; mike.dld |
if ~a eq |
;macro __mov reg,a { ; mike.dld |
; if ~a eq |
; mov reg,a |
; end if |
;} |
macro __mov reg,a,b { ; mike.dld |
if (~a eq)&(~b eq) |
mpack reg,a,b |
else if (~a eq)&(b eq) |
mov reg,a |
end if |
} |
140,12 → 197,72 |
} |
; ------------------------- |
macro header a,[b] { |
common |
use32 |
org 0 |
db 'MENUET',a |
forward |
if b eq |
dd 0 |
else |
dd b |
end if } |
macro section name { align 16 |
label name } |
macro func name { |
if ~used name |
display 'FUNC NOT USED: ',`name,13,10 |
else |
align 4 |
name: |
;pushad |
;pushfd |
;dps `name |
;newline |
;mcall 5,1 |
;popfd |
;popad |
} |
macro endf { end if } |
; language for programs |
lang fix ru ; ru en fr ge fi |
macro diff16 title,l1,l2 |
{ |
local s,d |
s = l2-l1 |
display title,': 0x' |
repeat 8 |
d = '0' + s shr ((8-%) shl 2) and $0F |
if d > '9' |
d = d + 'A'-'9'-1 |
end if |
display d |
end repeat |
display 13,10 |
} |
macro diff10 title,l1,l2 |
{ |
local s,d,z,m |
s = l2-l1 |
z = 0 |
m = 1000000000 |
display title,': ' |
repeat 10 |
d = '0' + s / m |
s = s - (s/m)*m |
m = m / 10 |
if d <> '0' |
z = 1 |
end if |
if z <> 0 |
display d |
end if |
end repeat |
display 13,10 |
} |
; optimize the code for size |
__regs fix <eax,ebx,ecx,edx,esi,edi,ebp,esp> |
197,48 → 314,230 |
} |
macro RGB [a] { |
common |
match (r=,g=,b),a \{ |
\dd ((r) shl 16) or ((g) shl 8) or (b) |
\} |
} |
struc POINT _t,_dx,_dy { |
.x _t _dx |
.y _t _dy |
} |
; Macroinstructions for defining data structures |
macro struct name |
{ |
{ fields@struct equ name |
match child parent, name \{ fields@struct equ child,fields@\#parent \} |
sub@struct equ |
struc db [val] \{ \common fields@struct equ fields@struct,.,db,<val> \} |
struc dw [val] \{ \common fields@struct equ fields@struct,.,dw,<val> \} |
struc du [val] \{ \common fields@struct equ fields@struct,.,du,<val> \} |
struc dd [val] \{ \common fields@struct equ fields@struct,.,dd,<val> \} |
struc dp [val] \{ \common fields@struct equ fields@struct,.,dp,<val> \} |
struc dq [val] \{ \common fields@struct equ fields@struct,.,dq,<val> \} |
struc dt [val] \{ \common fields@struct equ fields@struct,.,dt,<val> \} |
struc rb count \{ fields@struct equ fields@struct,.,db,count dup (?) \} |
struc rw count \{ fields@struct equ fields@struct,.,dw,count dup (?) \} |
struc rd count \{ fields@struct equ fields@struct,.,dd,count dup (?) \} |
struc rp count \{ fields@struct equ fields@struct,.,dp,count dup (?) \} |
struc rq count \{ fields@struct equ fields@struct,.,dq,count dup (?) \} |
struc rt count \{ fields@struct equ fields@struct,.,dt,count dup (?) \} |
macro db [val] \{ \common \local anonymous |
fields@struct equ fields@struct,anonymous,db,<val> \} |
macro dw [val] \{ \common \local anonymous |
fields@struct equ fields@struct,anonymous,dw,<val> \} |
macro du [val] \{ \common \local anonymous |
fields@struct equ fields@struct,anonymous,du,<val> \} |
macro dd [val] \{ \common \local anonymous |
fields@struct equ fields@struct,anonymous,dd,<val> \} |
macro dp [val] \{ \common \local anonymous |
fields@struct equ fields@struct,anonymous,dp,<val> \} |
macro dq [val] \{ \common \local anonymous |
fields@struct equ fields@struct,anonymous,dq,<val> \} |
macro dt [val] \{ \common \local anonymous |
fields@struct equ fields@struct,anonymous,dt,<val> \} |
macro rb count \{ \local anonymous |
fields@struct equ fields@struct,anonymous,db,count dup (?) \} |
macro rw count \{ \local anonymous |
fields@struct equ fields@struct,anonymous,dw,count dup (?) \} |
macro rd count \{ \local anonymous |
fields@struct equ fields@struct,anonymous,dd,count dup (?) \} |
macro rp count \{ \local anonymous |
fields@struct equ fields@struct,anonymous,dp,count dup (?) \} |
macro rq count \{ \local anonymous |
fields@struct equ fields@struct,anonymous,dq,count dup (?) \} |
macro rt count \{ \local anonymous |
fields@struct equ fields@struct,anonymous,dt,count dup (?) \} |
macro union \{ fields@struct equ fields@struct,,union,< |
sub@struct equ union \} |
macro struct \{ fields@struct equ fields@struct,,substruct,< |
sub@struct equ substruct \} |
virtual at 0 } |
macro ends |
{ match , sub@struct \{ restruc db,dw,du,dd,dp,dq,dt |
restruc rb,rw,rd,rp,rq,rt |
purge db,dw,du,dd,dp,dq,dt |
purge rb,rw,rd,rp,rq,rt |
purge union,struct |
match name=,fields,fields@struct \\{ fields@struct equ |
make@struct name,fields |
fields@\\#name equ fields \\} |
end virtual \} |
match any, sub@struct \{ fields@struct equ fields@struct> \} |
restore sub@struct } |
macro make@struct name,[field,type,def] |
{ common |
if $ |
display 'Error: definition of ',`name,' contains illegal instructions.',0Dh,0Ah |
err |
end if |
local define |
define equ name |
forward |
local sub |
match , field \{ make@substruct type,name,sub def |
define equ define,.,sub, \} |
match any, field \{ define equ define,.#field,type,<def> \} |
common |
match fields, define \{ define@struct fields \} } |
macro define@struct name,[field,type,def] |
{ common |
local list |
list equ |
forward |
if ~ field eq . |
name#field type def |
sizeof.#name#field = $ - name#field |
else |
rb sizeof.#type |
end if |
local value |
match any, list \{ list equ list, \} |
list equ list <value> |
common |
sizeof.#name = $ |
restruc name |
match values, list \{ |
struc name value \\{ |
match any, fields@struct \\\{ fields@struct equ fields@struct,.,name,<values> \\\} |
match , fields@struct \\\{ label . |
forward |
match , value \\\\{ field type def \\\\} |
match any, value \\\\{ field type value |
if ~ field eq . |
rb sizeof.#name#field - ($-field) |
end if \\\\} |
common \\\} \\} \} } |
macro enable@substruct |
{ macro make@substruct substruct,parent,name,[field,type,def] |
\{ \common |
\local define |
define equ parent,name |
\forward |
\local sub |
match , field \\{ match any, type \\\{ enable@substruct |
make@substruct type,name,sub def |
purge make@substruct |
define equ define,.,sub, \\\} \\} |
match any, field \\{ define equ define,.\#field,type,<def> \\} |
\common |
match fields, define \\{ define@\#substruct fields \\} \} } |
enable@substruct |
macro define@union parent,name,[field,type,def] |
{ common |
virtual at 0 |
name name |
sizeof.#name = $ - name |
forward |
if ~ field eq . |
virtual at 0 |
parent#field type def |
sizeof.#parent#field = $ - parent#field |
end virtual |
} |
if sizeof.#parent#field > $ |
rb sizeof.#parent#field - $ |
end if |
else if sizeof.#type > $ |
rb sizeof.#type - $ |
end if |
common |
sizeof.#name = $ |
end virtual |
struc name [value] \{ \common |
label .\#name |
last@union equ |
forward |
match any, last@union \\{ virtual at .\#name |
field type def |
end virtual \\} |
match , last@union \\{ match , value \\\{ field type def \\\} |
match any, value \\\{ field type value \\\} \\} |
last@union equ field |
common rb sizeof.#name - ($ - .\#name) \} } |
macro define@substruct parent,name,[field,type,def] |
{ common |
virtual at 0 |
forward |
if ~ field eq . |
parent#field type def |
sizeof.#parent#field = $ - parent#field |
else |
rb sizeof.#type |
end if |
local value |
common |
sizeof.#name = $ |
end virtual |
struc name value \{ |
label .\#name |
forward |
match , value \\{ field type def \\} |
match any, value \\{ field type value |
if ~ field eq . |
rb sizeof.#parent#field - ($-field) |
end if \\} |
common \} } |
; structures used in MeOS |
struc process_information |
{ |
.cpu_usage dd ? ; +0 |
.window_stack_position dw ? ; +4 |
.window_stack_value dw ? ; +6 |
.not_used1 dw ? ; +8 |
.process_name rb 12 ; +10 |
.memory_start dd ? ; +22 |
.used_memory dd ? ; +26 |
.PID dd ? ; +30 |
.x_start dd ? ; +34 |
.y_start dd ? ; +38 |
.x_size dd ? ; +42 |
.y_size dd ? ; +46 |
.slot_state dw ? ; +50 |
struct process_information |
cpu_usage dd ? ; +0 |
window_stack_position dw ? ; +4 |
window_stack_value dw ? ; +6 |
not_used1 dw ? ; +8 |
process_name rb 12 ; +10 |
memory_start dd ? ; +22 |
used_memory dd ? ; +26 |
PID dd ? ; +30 |
x_start dd ? ; +34 |
y_start dd ? ; +38 |
x_size dd ? ; +42 |
y_size dd ? ; +46 |
slot_state dw ? ; +50 |
rb (1024-52) |
} |
struct process_information |
ends |
struc system_colors |
{ |
.frame dd ? |
.grab dd ? |
.grab_button dd ? |
.grab_button_text dd ? |
.grab_text dd ? |
.work dd ? |
.work_button dd ? |
.work_button_text dd ? |
.work_text dd ? |
.work_graph dd ? |
} |
struct system_colors |
frame dd ? |
grab dd ? |
grab_button dd ? |
grab_button_text dd ? |
grab_text dd ? |
work dd ? |
work_button dd ? |
work_button_text dd ? |
work_text dd ? |
work_graph dd ? |
ends |
; constants |
/programs/fs/sysxtree/trunk/systr12.GIF |
---|
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/fs/sysxtree/trunk/sysxtree.asm |
---|
42,18 → 42,44 |
; dd 0,0 |
;****************************************************************************** |
include 'lang.inc' |
include 'macros.inc' |
include 'ascl.inc' |
include 'ascgl.inc' |
gif_hash_offset = gif_hash |
START: ; start of execution |
; //// Willow |
mov eax,58 |
mov ebx,MRUfile |
int 0x40 |
; mov eax,58 |
; mov ebx,MRUfile |
; int 0x40 |
; //// Willow |
mcall 18,11,1,table_area |
mov edi,hdimg+62*2 |
cmp [table_area+2],byte 0 |
je no_hdpartition_on_hd0 |
mov esi,hdimg1 |
mov ecx,62 |
rep movsb |
no_hdpartition_on_hd0: |
cmp [table_area+3],byte 0 |
je no_hdpartition_on_hd1 |
mov esi,hdimg2 |
mov ecx,62 |
rep movsb |
no_hdpartition_on_hd1: |
cmp [table_area+4],byte 0 |
je no_hdpartition_on_hd2 |
mov esi,hdimg3 |
mov ecx,62 |
rep movsb |
no_hdpartition_on_hd2: |
cmp [table_area+5],byte 0 |
je no_hdpartition_on_hd3 |
mov esi,hdimg4 |
mov ecx,62 |
rep movsb |
no_hdpartition_on_hd3: |
mov eax,40 |
mov ebx,0100111b |
664,6 → 690,11 |
mov ebx,ac97wav |
jmp run |
nojv12: |
cmp eax,'.MID' |
jne nojv13 |
mov ebx,midamp |
jmp run |
nojv13: |
cmp eax,'.BMP' |
jne nobv |
mov ebx,bmpview |
676,6 → 707,11 |
jmp run |
nopngv: |
; //// Willow |
cmp eax,'.RTF' |
jne nortf |
mov ebx,rtfread |
jmp run |
nortf: |
cmp eax,'.ASM' |
je edit |
cmp eax,'.TXT' |
682,8 → 718,6 |
je edit |
cmp eax,'.INC' |
je edit |
cmp eax,'.DAT' |
je edit |
jmp still |
edit: |
mov ebx,editor |
1173,11 → 1207,11 |
exit: |
; //// Willow |
mov eax,58 |
mov ebx,MRUfile |
mov dword[ebx+8],255 |
inc dword[ebx] |
int 0x40 |
; mov eax,58 |
; mov ebx,MRUfile |
; mov dword[ebx+8],255 |
; inc dword[ebx] |
; int 0x40 |
; //// Willow |
mov eax,-1 |
int 0x40 |
1365,7 → 1399,7 |
mov eax,[sc.grab_text] ; color of text RRGGBB |
or eax,0x10000000 |
label 8,8,'SYSTEM X-TREE FILE BROWSER',eax |
glabel 8,8,'SYSTEM X-TREE FILE BROWSER',eax |
;Draw buttons headers |
mov eax,8 |
1400,10 → 1434,10 |
jnz nextpbut |
;DRAW PARTITON TEXT |
label 341,25,'1234',cl_White;Black |
glabel 341,25,'1234',cl_White;Black |
;File STRING |
label 8,25,' FILE VIEW INFO ', ;cl_White ;Black |
glabel 8,25,' FILE VIEW INFO ', ;cl_White ;Black |
;BlackLine |
mov eax,[procinfo.x_size] |
1422,20 → 1456,20 |
;Set logo img |
setimg 34,88,logoinfimg |
label 20,165,'SYSTEM X-TREE',cl_Black |
glabel 20,165,'SYSTEM X-TREE',cl_Black |
add ebx,10 |
label ,,'FOR MENUETOS', |
glabel ,,'FOR MENUETOS', |
add ebx,9*65536+20 |
label ,,'welcome to',cl_Green |
glabel ,,'welcome to',cl_Green |
add ebx,-15*65536+10 |
label ,,'www.menuetos.org',cl_Green |
glabel ,,'www.menuetos.org',cl_Green |
; label ,,'Create by',cl_Green |
; glabel ,,'Create by',cl_Green |
; add ebx,10 |
; label ,,' Pavlushin', |
; glabel ,,' Pavlushin', |
; add ebx,10 |
; label ,,' Evgeni', |
; glabel ,,' Evgeni', |
;Draw head->file buttons |
1522,7 → 1556,7 |
mov [urlxsize],eax |
mov [urlysize],12 |
label 20,57,"URL:",cl_Black |
glabel 20,57,"URL:",cl_Black |
;Out view mode info |
mov eax,[viewmode] |
1873,6 → 1907,8 |
je itx |
cmp eax,dword '.ASM' |
je itx |
cmp eax,dword '.RTF' |
je itx |
jmp nt |
itx: |
mov ecx,0x00446666 |
1892,6 → 1928,8 |
; //// Willow |
cmp eax,dword '.WAV' |
je ipic |
cmp eax,dword '.MID' |
je ipic |
jmp np |
ipic: |
mov ecx,0x00226688 |
1929,6 → 1967,11 |
push rdico+8 |
jmp out_ico |
no_rdico: |
cmp [edx+9],dword 'FLOP' |
jne no_fdico |
push rdico+8 |
jmp out_ico |
no_fdico: |
push folico+8 |
jmp out_ico |
no_folico: |
1946,6 → 1989,8 |
; //// Willow |
cmp [edx+8],dword '.WAV' |
je is_imgico |
cmp [edx+8],dword '.MID' |
je is_imgico |
jmp no_imgico |
is_imgico: |
push imgico+8 |
1960,8 → 2005,11 |
push asmincico+8 |
jmp out_ico |
no_asmincico: |
cmp [edx+8],dword '.RTF' |
je @f |
cmp [edx+8],dword '.TXT' |
jne no_txtico |
@@: |
push txtico+8 |
jmp out_ico |
no_txtico: |
2205,7 → 2253,7 |
;STEP 2 TEST ON HD OR PARTITION |
cmp [path],byte '/' |
je nstep |
mov ecx,61+62 |
mov ecx,61+62*5 |
loxhd: |
mov al,[hdimg+ecx] |
mov [convinfo+ecx],al |
2216,7 → 2264,53 |
nstep: |
cmp [path+3],byte '/' |
je nstep2 |
cmp [path+4],byte '/' |
je nstep2 |
cmp [path+1],word 'RD' |
jne nostep_RD |
mov ecx,61 |
jmp loxpt |
nostep_RD: |
cmp [path+1],word 'FD' |
jne nostep_FD |
mov ecx,61+62 |
jmp loxpt |
nostep_FD: |
cmp [path+1],dword 'HD0' |
jne nostep_HD0 |
mov cl,[table_area+2] |
movzx ecx,cl |
imul ecx,62 |
dec ecx |
jmp loxpt |
nostep_HD0: |
cmp [path+1],dword 'HD1' |
jne nostep_HD1 |
mov cl,[table_area+3] |
movzx ecx,cl |
imul ecx,62 |
dec ecx |
jmp loxpt |
nostep_HD1: |
cmp [path+1],dword 'HD2' |
jne nostep_HD2 |
mov cl,[table_area+4] |
movzx ecx,cl |
imul ecx,62 |
dec ecx |
jmp loxpt |
nostep_HD2: |
cmp [path+1],dword 'HD3' |
jne nostep_HD3 |
mov cl,[table_area+5] |
movzx ecx,cl |
imul ecx,62 |
dec ecx |
jmp loxpt |
nostep_HD3: |
mov ecx,61+62 ;+496 |
loxpt: |
mov al,[ptimg+ecx] |
mov [convinfo+ecx],al |
2262,12 → 2356,12 |
cmp eax,1 |
jne no_inv_part |
label 10,10,'Invalid partition or hd base',cl_Red+font_Big |
glabel 10,10,'Invalid partition or hd base',cl_Red+font_Big |
jmp end_of_dir |
no_inv_part: |
cmp eax,3 |
jne no_unk_fs |
label 10,10,'Unknow file system',cl_Red+font_Big |
glabel 10,10,'Unknow file system',cl_Red+font_Big |
jmp end_of_dir |
no_unk_fs: |
2625,12 → 2719,39 |
readblock dd 1 |
dlg_type db 0 ;S-save O-open |
hdimg1 db 'HD0 HARDDISK FOL ' |
hdimg2 db 'HD1 HARDDISK FOL ' |
hdimg3 db 'HD2 HARDDISK FOL ' |
hdimg4 db 'HD3 HARDDISK FOL ' |
;01234567890123456789012345678901234567890123456789012345678912 |
hdimg db 'HD HARDDISK FOL ' |
db 'RD RAMDISK FOL ' |
hdimg db 'RD RAMDISK FOL ' |
db 'FD FLOPPYDISK FOL ' |
db ' ' |
db ' ' |
db ' ' |
db ' ' |
ptimg db '1 FIRST PARTITION FOL ' |
db '2 SECOND PARTITION FOL ' |
db '3 NEXT PARTITION FOL ' |
db '4 NEXT PARTITION FOL ' |
db '5 NEXT PARTITION FOL ' |
db '6 NEXT PARTITION FOL ' |
db '7 NEXT PARTITION FOL ' |
db '8 NEXT PARTITION FOL ' |
db '9 NEXT PARTITION FOL ' |
db '10 NEXT PARTITION FOL ' |
db '11 NEXT PARTITION FOL ' |
db '12 NEXT PARTITION FOL ' |
db '13 NEXT PARTITION FOL ' |
db '14 NEXT PARTITION FOL ' |
db '15 NEXT PARTITION FOL ' |
db '16 NEXT PARTITION FOL ' |
db '17 NEXT PARTITION FOL ' |
db '18 NEXT PARTITION FOL ' |
db '19 NEXT PARTITION FOL ' |
db '20 NEXT PARTITION FOL ' |
modetext: |
;0123456789012345 |
2647,13 → 2768,13 |
b_color dd 0x6677cc |
; //// Willow |
MRUfile: |
dd 0x0 |
dd 0x0 |
dd 0x1 |
dd path |
dd tempzone |
db '/RD/1/MRU.LST',0 |
;MRUfile: |
; dd 0x0 |
; dd 0x0 |
; dd 0x1 |
; dd path |
; dd tempzone |
; db '/RD/1/MRU.LST',0 |
; //// Willow |
;Name of programs |
2663,9 → 2784,11 |
gifview db 'GIFVIEW ' |
ac97wav db 'AC97WAV ' |
copyrfile db 'COPYR ' |
rtfread db 'RTFREAD ' |
; //// Willow |
pngview db '@RCHER ' |
; //// Willow |
midamp db 'MIDAMP ' |
fileinfo_start: |
dd 16 |
2685,6 → 2808,10 |
dd tempzone ; work size of sytemram |
path: |
times 256 db 0 ;path |
table_area: |
rb 10 |
;rb 256 |
but_file: |
file 'systr12.GIF' |
/programs/fs/sysxtree/trunk/xtree.bmp |
---|
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/fs/sysxtree/trunk/xtree.ico |
---|
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/fs/sysxtree/trunk/xtreeinf.txt |
---|
0,0 → 1,87 |
SYSTEM X-TREE |
The new file browser with support sorting file by name, extension, size, date |
Develop by Pavlushin Evgeni for Menuet OS e-mail: waptap@mail.ru |
site (slow update) : www.deck4.narod.ru |
~~~Manuals~~~ |
Copy program COPYR to ramdisk !!! for work feuters - copy and paste file's |
~~~Keys~~~ |
PageUp\PageDown , Up Arrow/Down Arrow -Navigation |
Blackspace - goto to previous folder |
Enter - enter to folder or run/view/edit file |
F2 - change sort mode (name,extension,size,date,sohw/fade del files) |
F3 - view file in notepad |
F5 - copy file to clipboard |
F6 - paste file from clipboard |
F12 - update source |
SYSTEM X-TREE |
Íîâûé ôàéëîâûé áðàóçåð ïîäåððæèâàþùèé ñîðòèðîâêó ôîèëîâ ïî èìåíè, |
ðàñøèðåíèþ, ðàçìåðó è äàòå. |
Ðàçðàáîòàë Ïàâëþøèí Åâãåíèé äëÿ Menuet OS e-mail: waptap@mail.ru |
ñàéò (ìåäëåííî îáíîâëÿåòñÿ) : www.deck4.narod.ru |
~~~Èíñòðóêöèÿ~~~ |
Ñêîïèðóéòå ïðîãó COPYR íà ramdisk !!! äëÿ âîçìîæíîñòè êîïèðîâàòü è âñòàâëÿòü ôàèëû |
~~~Êëàâèøè~~~ |
PageUp\PageDown , Up Arrow/Down Arrow - Íàâèãàöèÿ |
Blackspace - Ïåðåéòè ê ïðåäèäóùåé ïàïêå |
Enter - Çàéòè â ïàïêó èëè çàïóñòèòü/ïðîñìîòðåòü/ðåäàêòèðîâàòü ôàèë |
F2 - Ñìåíèòü ðåæèì ñîðòèðîâêè (Ïî èìåíè,ðàñøèðåíèþ,ðàçìåðó,äàòå,ïîêàçûâàòü óäàë. ôàèëû) |
F3 - Ïðîñìîòðåòü ôàèë â òåêñòîâîì áëîêíîòå |
F5 - êîïèðîâàòü ôàèë â clipboard |
F6 - âñòàâèòü ôàèë èç clipboard'à |
F12 - Îáíîâèòü ñîäåðæèìîå îêíà |
Translate of russian documentation for xtree |
Sorry i'm write in English very poor. |
The new concept of dialogues, now dialogues |
is made do not use file system for an exchange |
with the client, and use IPC - Inter process comunication |
(Support since 52 Versions). |
52 Version support IPC of dialogues |
53 Version is added protection dialogs from |
external processes. |
Test with TESTOPDG 54 Version IPC protection it is |
improved Test with TESTOPD2 That testing dialogues |
copy SYSTRE54 on ramdisk under name SYSXTREE and start TESTOPD2 |
In window TESTOPD2 the following information is displayed: |
In heading at the left??? |
Below parameters transferred SYSTEM XTREE, |
namely PID TESTOPD2, the blank and |
type of dialogue of one byte (O-Open, S-Save) |
is even lower PID SYSTEM XTREE and current num of the |
started processes After file will be open in dialogue, |
it will be displayed in window TESTOPD2 below heading, |
and dialogue will be closed. |
Protection TESTOPD2: |
1) If at start SYSTEM XTREE from XTREE don't it is |
received it PID during 2 sec, 54 version XTREE or |
not XTREE at all means on ramdisk not, TESTOPD2 |
comes to the end. |
2) If worked SYSTEM XTREE it was closed not |
having sent path to file (itself or from CPU programs) |
TESTOPD2 comes to the end since parameters from XTREE |
have not been received and since XTREE is closed |
that already and don't are received. |
;78Ver input in dir whith extension (for example TEST.DIR\XT\) bug deleted |
;64Ver Run file from HD bug deleted. |
;65Ver The bad scroll realization |
;66Ver The good scroll realization, url line anti-flick |
;67Ver Url line monolith procedure |
;68Ver Mini icon on left of file name |
;69Ver Getimg proc size minus 900 bytes |
;70Ver Del data area ramsize minus 140000 bytes |
;72Ver Quick sort, ramsize minus 200000 bytes |
;73Ver Url flick and out bugs delete |
;sort type in headmenu bug del |
/programs/fs/sysxtree/trunk/xtreinfo.txt |
---|
0,0 → 1,80 |
Ñäåëàíà íîâàÿ êîíöåïöèÿ äèàëîãîâ, òåïåðü äèàëîãè íå èñïîëüçóþò |
ôàéëîâóþ ñèñòåìó äëÿ îáìåíà ñ êëèåíòîì, à èñïîëüçóþò IPC - |
Inter process comunication (Ïîääåðæêà íà÷èíàÿ ñ 52 Âåðñèè). |
52 Âåðñèÿ ïîääåðæêà IPC äèàëîãîâ |
53 Âåðñèÿ äîáàâëåíà çàùèòû äèîëîãîâ îò âíåøíèõ ïðîöåññîâ. |
Òåñòèðóéòå ñ TESTOPDG |
54 Âåðñèÿ IPC çàùèòà óëó÷øåíà |
Òåñòèðóéòå ñ TESTOPD2 |
×òî-áû ïðîòåñòèòü äèàëîãè ñêîïèðóéòå SYSTRE54 íà ðàìäèñê ïîä |
èìåíåì SYSXTREE è çàïóñòèòå TESTOPD2 |
 îêíå TESTOPD2 îòîáðàæàåòñÿ ñëåäóþùàÿ èíôîðìàöèÿ: |
 çàãîëîâêå ñëåâà ??? |
Íèæå ïàðàìåòðû ïåðåäàííûå SYSTEM XTREE , à èìåííî PID TESTOPD2, |
ïðîáåë è òèï äèàëîãà îäèí áàéò (O-Open,S-Save) |
Åùå íèæå PID SYSTEM XTREE è òåêóùåå êîë-âî çàïóùåííûõ ïðîöåññîâ |
Ïîñëå òîãî êàê ôàèë áóäåò îòêðûò â äèàëîãå, îí îòîáðàçèòñÿ â |
îêíå TESTOPD2 íèæå çàãîëîâêà, à äèàëîã çàêðîåòñÿ. |
Çàùèòà TESTOPD2: |
1) Åñëè ïðè çàïóñêå SYSTEM XTREE îò XTREE íåáûë ïîëó÷åí åãî PID |
â òå÷åíèè 2 ñåê, çíà÷èò íà ðàìäèñêå íå 54 âåðñèÿ XTREE èëè íå XTREE |
âîâñå, TESTOPD2 çàâåðøàåòñÿ. |
2) Åñëè çàïóùåíûé SYSTEM XTREE çàêðûëñÿ íå îòîñëàâ ïóòüôàèëà(ñàì èëè |
îò CPU ïðîãè),òî TESTOPD2 çàâåðøàåòñÿ ò.ê. ïàðàìåòðû îò XTREE íå |
áûëè ïîëó÷åíû à ò.ê. XTREE çàêðûò òî óæå è íåáóäóò ïîëó÷åíû. |
68 Âåðñèÿ |
Çà äâà äíÿ ÿ äîáèëñÿ ïðèëè÷íûõ óñïåõîâ ïî ìîäåðíèçàöèè X-TREE |
È òàê øî íîâîãî... |
60Ver Òåïåðü FileList è â äèàëîãå è â áðàóçåðå âûâîäèòñÿ îäíîé |
ïðîöåäóðîé íóæíî òîëüêî óêàçàòü êîîðäèíàòû è ðàçìåð ëèñòà îòñëåæèâàíèå |
è ïðîðèñîâêà ñêðîëëáàðà âûïîëíÿåòñÿ ïðîöåäóðîé. |
61Ver Íàñòðîèë êîîðäèíàòû ÔàèëËèñòà |
62Ver Äàáàâèë ïàíåëüêó ñëåâà â îêíå (êàê â Âèíäàõ) äëÿ êðàñîòû |
63Ver Èçìåíèë ñêèí è äîáàâèë êàðòèíêè íà êíîïî÷êè ñêðîëëáàðà |
64Ver Óäàëèë ñòàðûé äîáðûé áàã - îøèáêà çàïóñêà ïðîã ñ HD êîòîðàÿ |
âûíîñèò Ìåîñ íàôèã íå èñêëþ÷àþ, ÷òî ýòîò áàã óäàëåí íå äî êîíöà |
65Ver Èçìåíèë îáðàáîòêó è ïðîðèñîâêó ñêðîëëà |
66Ver Äîâåë äî êîíöà ïðîðèñîâêó ñêðîëëà, äîáàâèë ïðîòèâîìèãàþùèé |
êîä äëÿ URL ñòðîêè |
67Ver Òåïåðü URL ñòðîêà è â äèàëîãå è â áðàóçåðå âûâîäèòñÿ îäíîé |
ïðîöåäóðîé íóæíî òîëüêî óêàçàòü êîîðäèíàòû è ðàçìåð ñòðîêè. |
68Ver Äîáàâèë ìèíè èêîíêè ñëåâà îò ôàèë íåéìà (î÷åíü ïðèêîëüíî ñìîòðèòñÿ). |
73 Âåðñèÿ |
69Ver Getimg âûïîëíèë â âèäå ïðîöåññà, à íå ìàêðîñà êîä óìåíüøèëñÿ |
íà 900 áàéò |
70Ver data_area òåïåðü íå èñïîäëüçóåòñÿ, à çíà÷èò ïàìÿòè òðåáóåòñÿ |
òåïåðü íà 140000 áàéò ìåíüøå! |
72Ver Áîëåå áûñòðàÿ ñîðòèðîâêà , fileinfo òðåáóò òîëüêî 200 áàéò, |
à çíà÷èò ïàìÿòè òåïðü òðåáóåòñÿ íà 200000 áàéò ìåíüøå! |
73Ver Ìèãàíèå Url ñòðîêè áàã èñïðàâëåí. |
Èòîãî êîä óìåíüøåí ãäå-òî íà 900 áàéò. Åñëè ðàíüøå òðåáîâàëîñü ïàìÿòè |
1 ÌÁ, òî òåïåðü âñåãî 600Êá, à ýòî ïî÷òè â äâà ðàçà ìåíüøå. |
80Ver Äèàëîãè îïÿòü ðàáîòàþò, óäàëåí áàã ðåäàêòèðîâàíåèÿ ñòðîêè URL |
81Ver Save äèàëîã ðàáîòàåò áîëåå êîððåêòíî |