Subversion Repositories Kolibri OS

Compare Revisions

No changes between revisions

Regard whitespace Rev 111 → Rev 131

/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 äèàëîã ðàáîòàåò áîëåå êîððåêòíî