Subversion Repositories Kolibri OS

Compare Revisions

No changes between revisions

Regard whitespace Rev 205 → Rev 197

/programs/system/rdsave/trunk/build_en.bat
File deleted
\ No newline at end of file
/programs/system/rdsave/trunk/build_ru.bat
File deleted
\ No newline at end of file
/programs/system/rdsave/trunk/macros.inc
File deleted
\ No newline at end of file
/programs/system/rdsave/trunk/rdsave.asm
File deleted
/programs/system/gmon/info_tab.inc
File deleted
/programs/system/gmon/tests.inc
File deleted
\ No newline at end of file
/programs/system/gmon/readme.txt
File deleted
\ No newline at end of file
/programs/system/gmon/hwm_wb.inc
File deleted
/programs/system/gmon/macros.inc
File deleted
\ No newline at end of file
/programs/system/gmon/diag.inc
File deleted
/programs/system/gmon/system.inc
File deleted
/programs/system/gmon/test_tab.inc
File deleted
\ No newline at end of file
/programs/system/gmon/config.inc
File deleted
/programs/system/gmon/hwm_it87.inc
File deleted
/programs/system/gmon/gmon.asm
File deleted
/programs/system/gmon/hwm.inc
File deleted
/programs/system/gmon/conf_tab.inc
File deleted
\ No newline at end of file
/programs/system/gmon/abou_tab.inc
File deleted
/programs/system/gmon/build.bat
File deleted
\ No newline at end of file
/programs/system/kbd/trunk/macros.inc
123,10 → 123,8
end if
}
 
macro __mov reg,a,b { ; mike.dld
if (~a eq)&(~b eq)
mpack reg,a,b
else if (~a eq)&(b eq)
macro __mov reg,a { ; mike.dld
if ~a eq
mov reg,a
end if
}
143,6 → 141,11
 
 
 
; language for programs
lang fix ru ; ru en fr ge fi
 
 
 
; optimize the code for size
__regs fix <eax,ebx,ecx,edx,esi,edi,ebp,esp>
 
174,7 → 177,7
 
macro mov arg1,arg2
{
if (arg1 in __regs) & ((arg2 eqtype 0) | (arg2 eqtype '0'))
if (arg1 in __regs) & (arg2 eqtype 0)
if (arg2) = 0
xor arg1,arg1
else if (arg2) = 1
218,13 → 221,7
.x_size dd ? ; +42
.y_size dd ? ; +46
.slot_state dw ? ; +50
dw ? ; +52 - reserved
.client_left dd ? ; +54
.client_top dd ? ; +58
.client_width dd ? ; +62
.client_height dd ? ; +66
.wnd_state db ? ; +70
rb (1024-71)
rb (1024-52)
}
struct process_information
 
/programs/system/end/trunk/build_ge.bat
1,5 → 1,4
@erase lang.inc
@echo lang fix ge >lang.inc
@fasm end.asm end
@erase lang.inc
@pause
/programs/system/end/trunk/build_en.bat
1,5 → 1,4
@erase lang.inc
@echo lang fix en >lang.inc
@fasm end.asm end
@erase lang.inc
@pause
/programs/system/end/trunk/build_ru.bat
1,5 → 1,4
@erase lang.inc
@echo lang fix ru >lang.inc
@fasm end.asm end
@erase lang.inc
@pause
/programs/system/end/trunk/macros.inc
143,6 → 143,10
 
 
 
 
 
 
 
; optimize the code for size
__regs fix <eax,ebx,ecx,edx,esi,edi,ebp,esp>
 
174,7 → 178,7
 
macro mov arg1,arg2
{
if (arg1 in __regs) & ((arg2 eqtype 0) | (arg2 eqtype '0'))
if (arg1 in __regs) & (arg2 eqtype 0)
if (arg2) = 0
xor arg1,arg1
else if (arg2) = 1
218,13 → 222,7
.x_size dd ? ; +42
.y_size dd ? ; +46
.slot_state dw ? ; +50
dw ? ; +52 - reserved
.client_left dd ? ; +54
.client_top dd ? ; +58
.client_width dd ? ; +62
.client_height dd ? ; +66
.wnd_state db ? ; +70
rb (1024-71)
rb (1024-52)
}
struct process_information
 
/programs/system/icon/trunk/macros.inc
218,13 → 218,7
.x_size dd ? ; +42
.y_size dd ? ; +46
.slot_state dw ? ; +50
dw ? ; +52 - reserved
.client_left dd ? ; +54
.client_top dd ? ; +58
.client_width dd ? ; +62
.client_height dd ? ; +66
.wnd_state db ? ; +70
rb (1024-71)
rb (1024-52)
}
struct process_information
 
/programs/system/menu/trunk/macros.inc
143,6 → 143,10
 
 
 
 
 
 
 
; optimize the code for size
__regs fix <eax,ebx,ecx,edx,esi,edi,ebp,esp>
 
174,7 → 178,7
 
macro mov arg1,arg2
{
if (arg1 in __regs) & ((arg2 eqtype 0) | (arg2 eqtype '0'))
if (arg1 in __regs) & (arg2 eqtype 0)
if (arg2) = 0
xor arg1,arg1
else if (arg2) = 1
218,13 → 222,7
.x_size dd ? ; +42
.y_size dd ? ; +46
.slot_state dw ? ; +50
dw ? ; +52 - reserved
.client_left dd ? ; +54
.client_top dd ? ; +58
.client_width dd ? ; +62
.client_height dd ? ; +66
.wnd_state db ? ; +70
rb (1024-71)
rb (1024-52)
}
struct process_information
 
/programs/system/desktop/trunk/desktop.asm
15,7 → 15,7
dd START ; start address
dd I_END ; file size
dd 28000h ; memory
dd 28000h ; stack pointer (0x10000+ - work area for os)
dd 10000h ; stack pointer (0x10000+ - work area for os)
dd 0,0 ; parameters, reserved
 
include 'lang.inc'
108,12 → 108,12
 
 
key: ; key
mov al,2 ; just read it and ignore
mov eax,2 ; just read it and ignore
int 0x40
jmp still
 
button: ; button
mov al,17 ; get id
mov eax,17 ; get id
int 0x40
 
cmp ah,11 ; read string
205,7 → 205,7
 
cmp ah,1 ; terminate
jnz noid1
or eax,-1
mov eax,-1
int 0x40
noid1:
 
547,7 → 547,7
end virtual
 
draw_skin:
mcall 13,<area.x,area.width>,<area.y+2,area.height-2>,0x00FFFFFF
mcall 13,<area.x,area.width>,<area.y,area.height>,0x00FFFFFF
 
mov ebp,0x18000
mov edi,[ebp+SKIN_HEADER.params]
/programs/system/docpack/trunk/macros.inc
143,6 → 143,11
 
 
 
; language for programs
lang fix ru ; ru en fr ge fi
 
 
 
; optimize the code for size
__regs fix <eax,ebx,ecx,edx,esi,edi,ebp,esp>
 
174,7 → 179,7
 
macro mov arg1,arg2
{
if (arg1 in __regs) & ((arg2 eqtype 0) | (arg2 eqtype '0'))
if (arg1 in __regs) & (arg2 eqtype 0)
if (arg2) = 0
xor arg1,arg1
else if (arg2) = 1
218,13 → 223,7
.x_size dd ? ; +42
.y_size dd ? ; +46
.slot_state dw ? ; +50
dw ? ; +52 - reserved
.client_left dd ? ; +54
.client_top dd ? ; +58
.client_width dd ? ; +62
.client_height dd ? ; +66
.wnd_state db ? ; +70
rb (1024-71)
rb (1024-52)
}
struct process_information
 
/programs/system/vrr/trunk/macros.inc
143,6 → 143,9
 
 
 
 
 
 
; optimize the code for size
__regs fix <eax,ebx,ecx,edx,esi,edi,ebp,esp>
 
174,7 → 177,7
 
macro mov arg1,arg2
{
if (arg1 in __regs) & ((arg2 eqtype 0) | (arg2 eqtype '0'))
if (arg1 in __regs) & (arg2 eqtype 0)
if (arg2) = 0
xor arg1,arg1
else if (arg2) = 1
218,13 → 221,7
.x_size dd ? ; +42
.y_size dd ? ; +46
.slot_state dw ? ; +50
dw ? ; +52 - reserved
.client_left dd ? ; +54
.client_top dd ? ; +58
.client_width dd ? ; +62
.client_height dd ? ; +66
.wnd_state db ? ; +70
rb (1024-71)
rb (1024-52)
}
struct process_information
 
/programs/system/rb/trunk/@RB.ASM
350,7 → 350,7
<"/RD/1/JPEGVIEW",0> ,\
<"/RD/1/CPU",0> ,\
<"/RD/1/SPANEL",0> ,\
<"/RD/1/ICON",0> ,\
<"/RD/1/ICON2",0> ,\
<"/RD/1/VRR",0>
 
; header: ; § £®«®¢®ª
/programs/system/rb/trunk/macros.inc
143,6 → 143,10
 
 
 
 
 
 
 
; optimize the code for size
__regs fix <eax,ebx,ecx,edx,esi,edi,ebp,esp>
 
174,7 → 178,7
 
macro mov arg1,arg2
{
if (arg1 in __regs) & ((arg2 eqtype 0) | (arg2 eqtype '0'))
if (arg1 in __regs) & (arg2 eqtype 0)
if (arg2) = 0
xor arg1,arg1
else if (arg2) = 1
/programs/system/rb/trunk/build_en.bat
1,5 → 1,4
@erase lang.inc
@echo lang fix en >lang.inc
@fasm @rb.asm @rb
@erase lang.inc
@pause
/programs/system/rb/trunk/build_ru.bat
1,5 → 1,4
@erase lang.inc
@echo lang fix ru >lang.inc
@fasm @rb.asm @rb
@erase lang.inc
@pause
/programs/system/ir/trunk/ir.asm
0,0 → 1,268
;
; INFRARED
;
; Compile with FASM for Menuet
;
 
use32
 
org 0x0
 
db 'MENUET01' ; 8 byte id
dd 1 ; required os
dd START ; program start
dd I_END ; program image size
dd 0x1000 ; required amount of memory
dd 0x1000 ; esp = 0x7FFF0
dd 0, 0
 
 
include 'macros.inc'
 
START: ; start of execution
 
set_variables:
 
mov eax,46 ; reserve ports 0x3f0 - 0x3ff
mov ebx,0
mov ecx,0x3f0
mov edx,0x3ff
int 0x40
 
mov eax,45 ; reserve irq 4
mov ebx,0
mov ecx,4
int 0x40
 
mov eax,44 ; set read ports for irq 4
mov ebx,irqtable
; mov ecx,4
int 0x40
 
mov dh, 3 ; all ports have number 3xx hex
 
mov dl, 0xf3+8
mov al, 0x80
out dx, al
 
mov dl, 0xf1+8
mov al, 0
out dx, al
 
mov dl, 0xf0+8
mov al, 0x30 / 4
out dx, al
 
mov dl, 0xf3+8
mov al, 3
out dx, al
 
mov dl, 0xf4+8
mov al, 0xB
out dx, al
 
mov dl, 0xf1+8
mov al, 1
out dx, al
 
mov eax,5
mov ebx,100
int 0x40
 
mov dl, 0xf8
mov al, 'I'
out dx, al
 
mov eax,5
mov ebx,10
int 0x40
 
mov al, 'R'
out dx, al
 
mov eax,40 ; get com 1 data with irq 4
mov ebx,0000000000010000b shl 16 + 101b
int 0x40
 
red:
call draw_window
 
still:
 
mov eax,10 ; wait here for event
int 0x40
dec eax
jz red
dec eax
dec eax
jnz readir
 
button: ; button
mov al,17 ; get id
int 0x40
 
; we have only one button, close
 
mov eax,45 ; free irq
mov ebx,1
mov ecx,4
int 0x40
 
mov eax,46 ; free ports 0x3f0-0x3ff
mov ebx,1
mov ecx,0x3f0
mov edx,0x3ff
int 0x40
 
or eax,-1 ; close this program
int 0x40
 
pos dd 0x0
 
cdplayer:
dd 7
dd 0
dd 0
dd 0
dd 0
db '/RD/1/CDP',0
 
readir:
mov eax,42
mov ebx,4
int 0x40
 
cmp ebx,80
jne nocd
 
mov eax,70
mov ebx,cdplayer
int 0x40
 
 
nocd:
 
push ebx
mov eax,[pos]
add eax,1
cmp eax,10*20+1
jb noeaxz
mov esi,text+10*4
mov edi,text
mov ecx,10*21*4
cld
rep movsb
mov eax,13
mov ebx,20*65536+260
mov ecx,22*65536+220
mov edx,[wcolor]
int 0x40
mov eax,10*19+1
noeaxz:
mov [pos],eax
pop ebx
and ebx,0xff
call draw_data
jmp still
 
 
 
 
draw_data:
 
pusha
 
xchg eax,ebx
 
mov ecx,10
shl ebx,2
mov esi,3
newnum:
xor edx,edx
div ecx
add edx,48
mov [ebx+text-1],dl
dec ebx
dec esi
jnz newnum
 
call draw_text
 
popa
 
ret
 
 
irqtable:
 
dd 0x3f8+0x01000000 ; + 01 = read byte, 02 read word
dd 0
 
 
 
; *********************************************
; ******* WINDOW DEFINITIONS AND DRAW ********
; *********************************************
 
 
draw_window:
 
mov eax,12 ; function 12:tell os about windowdraw
mov ebx,1 ; 1, start of draw
int 0x40
 
; DRAW WINDOW
mov eax,0 ; function 0 : define and draw window
mov ebx,100*65536+300 ; [x start] *65536 + [x size]
mov ecx,100*65536+250 ; [y start] *65536 + [y size]
mov edx,[wcolor] ; color of work area RRGGBB,8->color
mov edi,labelt ; caption string
int 0x40
 
; ; WINDOW LABEL
; mov eax,4 ; function 4 : write text to window
; mov ebx,8*65536+8 ; [x start] *65536 + [y start]
; mov ecx,0x00ffffff ; color of text RRGGBB
; mov edx,labelt ; pointer to text beginning
; mov esi,labellen-labelt ; text length
; int 0x40
 
; CLOSE BUTTON
; mov eax,8 ; function 8 : define and draw button
; mov ebx,(300-19)*65536+12 ; [x start] *65536 + [x size]
; mov ecx,5*65536+12 ; [y start] *65536 + [y size]
; mov edx,1 ; button id
; mov esi,0x5599cc ; button color RRGGBB
; int 0x40
 
draw_text:
 
mov ebx,25*65536+35 ; draw info text with function 4
mov ecx,0xffffff
mov edx,text
mov esi,40
mov edi,20
newline:
mov eax,4
int 0x40
add ebx,10
add edx,esi
dec edi
jne newline
 
mov eax,12
mov ebx,2
int 0x40
 
ret
 
 
; DATA AREA
 
wcolor dd 0x13000000
 
labelt db 'INFRARED RECEIVER FOR IRMAN IN COM 1',0
 
text:
 
I_END:
Property changes:
Added: svn:eol-style
+native
\ No newline at end of property
/programs/system/ir/trunk/build_en.bat
0,0 → 1,4
@erase lang.inc
@echo lang fix en >lang.inc
@fasm ir.asm ir
@pause
/programs/system/ir/trunk/build_ru.bat
0,0 → 1,4
@erase lang.inc
@echo lang fix ru >lang.inc
@fasm ir.asm ir
@pause
/programs/system/ir/trunk/macros.inc
0,0 → 1,267
; new application structure
macro meos_app_start
{
use32
org 0x0
 
db 'MENUET01'
dd 0x01
dd __start
dd __end
dd __memory
dd __stack
 
if used __params & ~defined __params
dd __params
else
dd 0x0
end if
 
dd 0x0
}
MEOS_APP_START fix meos_app_start
 
macro code
{
__start:
}
CODE fix code
 
macro data
{
__data:
}
DATA fix data
 
macro udata
{
if used __params & ~defined __params
__params:
db 0
__end:
rb 255
else
__end:
end if
__udata:
}
UDATA fix udata
 
macro meos_app_end
{
align 32
rb 2048
__stack:
__memory:
}
MEOS_APP_END fix meos_app_end
 
 
; macro for defining multiline text data
struc mstr [sstring]
{
forward
local ssize
virtual at 0
db sstring
ssize = $
end virtual
dd ssize
db sstring
common
dd -1
}
 
 
; strings
macro sz name,[data] { ; from MFAR [mike.dld]
common
if used name
label name
end if
forward
if used name
db data
end if
common
if used name
.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)&(lang eq lng)
db data
end if
common
if used name
.size = $-name
end if
}
 
 
 
; easy system call macro
macro mpack dest, hsrc, lsrc
{
if (hsrc eqtype 0) & (lsrc eqtype 0)
mov dest, (hsrc) shl 16 + lsrc
else
if (hsrc eqtype 0) & (~lsrc eqtype 0)
mov dest, (hsrc) shl 16
add dest, lsrc
else
mov dest, hsrc
shl dest, 16
add dest, lsrc
end if
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
}
 
macro mcall a,b,c,d,e,f { ; mike.dld
__mov eax,a
__mov ebx,b
__mov ecx,c
__mov edx,d
__mov esi,e
__mov edi,f
int 0x40
}
 
 
 
 
 
 
 
; optimize the code for size
__regs fix <eax,ebx,ecx,edx,esi,edi,ebp,esp>
 
macro add arg1,arg2
{
if (arg2 eqtype 0)
if (arg2) = 1
inc arg1
else
add arg1,arg2
end if
else
add arg1,arg2
end if
}
 
macro sub arg1,arg2
{
if (arg2 eqtype 0)
if (arg2) = 1
dec arg1
else
sub arg1,arg2
end if
else
sub arg1,arg2
end if
}
 
macro mov arg1,arg2
{
if (arg1 in __regs) & (arg2 eqtype 0)
if (arg2) = 0
xor arg1,arg1
else if (arg2) = 1
xor arg1,arg1
inc arg1
else if (arg2) = -1
or arg1,-1
else if (arg2) > -128 & (arg2) < 128
push arg2
pop arg1
else
mov arg1,arg2
end if
else
mov arg1,arg2
end if
}
 
 
macro struct name
{
virtual at 0
name name
sizeof.#name = $ - name
end virtual
}
 
; 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
rb (1024-52)
}
struct process_information
 
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
 
 
; constants
 
; events
EV_IDLE = 0
EV_TIMER = 0
EV_REDRAW = 1
EV_KEY = 2
EV_BUTTON = 3
EV_EXIT = 4
EV_BACKGROUND = 5
EV_MOUSE = 6
EV_IPC = 7
EV_STACK = 8
 
; event mask bits for function 40
EVM_REDRAW = 1b
EVM_KEY = 10b
EVM_BUTTON = 100b
EVM_EXIT = 1000b
EVM_BACKGROUND = 10000b
EVM_MOUSE = 100000b
EVM_IPC = 1000000b
EVM_STACK = 10000000b
Property changes:
Added: svn:eol-style
+native
\ No newline at end of property
/programs/system/vrr_m/trunk/build.bat
File deleted
\ No newline at end of file
/programs/system/vrr_m/trunk/build_en.bat
0,0 → 1,4
@erase lang.inc
@echo lang fix en >lang.inc
@fasm vrr_m.asm vrr_m
@pause
/programs/system/vrr_m/trunk/build_ru.bat
0,0 → 1,4
@erase lang.inc
@echo lang fix ru >lang.inc
@fasm vrr_m.asm vrr_m
@pause
/programs/system/vrr_m/trunk/macros.inc
123,10 → 123,8
end if
}
 
macro __mov reg,a,b { ; mike.dld
if (~a eq)&(~b eq)
mpack reg,a,b
else if (~a eq)&(b eq)
macro __mov reg,a { ; mike.dld
if ~a eq
mov reg,a
end if
}
143,6 → 141,11
 
 
 
; language for programs
lang fix ru ; ru en fr ge fi
 
 
 
; optimize the code for size
__regs fix <eax,ebx,ecx,edx,esi,edi,ebp,esp>
 
174,7 → 177,7
 
macro mov arg1,arg2
{
if (arg1 in __regs) & ((arg2 eqtype 0) | (arg2 eqtype '0'))
if (arg1 in __regs) & (arg2 eqtype 0)
if (arg2) = 0
xor arg1,arg1
else if (arg2) = 1
218,13 → 221,7
.x_size dd ? ; +42
.y_size dd ? ; +46
.slot_state dw ? ; +50
dw ? ; +52 - reserved
.client_left dd ? ; +54
.client_top dd ? ; +58
.client_width dd ? ; +62
.client_height dd ? ; +66
.wnd_state db ? ; +70
rb (1024-71)
rb (1024-52)
}
struct process_information
 
/programs/system/launcher/trunk/macros.inc
143,6 → 143,10
 
 
 
 
 
 
 
; optimize the code for size
__regs fix <eax,ebx,ecx,edx,esi,edi,ebp,esp>
 
174,7 → 178,7
 
macro mov arg1,arg2
{
if (arg1 in __regs) & ((arg2 eqtype 0) | (arg2 eqtype '0'))
if (arg1 in __regs) & (arg2 eqtype 0)
if (arg2) = 0
xor arg1,arg1
else if (arg2) = 1
218,13 → 222,7
.x_size dd ? ; +42
.y_size dd ? ; +46
.slot_state dw ? ; +50
dw ? ; +52 - reserved
.client_left dd ? ; +54
.client_top dd ? ; +58
.client_width dd ? ; +62
.client_height dd ? ; +66
.wnd_state db ? ; +70
rb (1024-71)
rb (1024-52)
}
struct process_information
 
/programs/system/board/trunk/debug.inc
File deleted
\ No newline at end of file
/programs/system/board/trunk/board.asm
290,10 → 290,18
mov ebx,[xstart]
mov ecx,MAXSTRINGS*10+45 ; [y start] *65536 + [y size]
mov edx,[sc.work] ; color of work area RRGGBB,8->color gl
or edx,0x13000000
mov edi,header ; WINDOW LABEL
or edx,0x03000000
int 0x40
; WINDOW LABEL
mov eax,4 ; function 4 : write text to window
mov ebx,8*65536+8 ; [x start] *65536 + [y start]
mov ecx,[sc.grab_text] ; color of text RRGGBB
or ecx,0x10000000
mov edx,header ; pointer to text beginning
mov esi,header.len ; text length
int 0x40
 
mov ecx,4
mov esi,[sc.work]
mov ebx,316 shl 16+5*6
514,11 → 522,17
; 11,11 > 0,-1
; 5,11 > 0,-1
if lang eq ru
header db '„Ž‘Š€ Ž’‹€„Šˆ ˆ ‘ŽŽ™…ˆ‰',0
header:
db '„Ž‘Š€ Ž’‹€„Šˆ ˆ ‘ŽŽ™…ˆ‰'
.len = $ - header
else if lang eq en
header db 'GENERAL DEBUG & MESSAGE BOARD',0
header:
db 'GENERAL DEBUG & MESSAGE BOARD'
.len = $ - header
else
header db 'ALLGEMEINES DEBUG- & NACHRICHTENBOARD',0
header:
db 'ALLGEMEINES DEBUG- & NACHRICHTENBOARD'
.len = $ - header
end if
krnl_cnt dd 0
vmode dd 0
/programs/system/board/trunk/build_ge.bat
1,5 → 1,4
@erase lang.inc
@echo lang fix ge >lang.inc
@fasm board.asm board
@erase lang.inc
@pause
/programs/system/board/trunk/build_en.bat
1,5 → 1,4
@erase lang.inc
@echo lang fix en >lang.inc
@fasm board.asm board
@erase lang.inc
@pause
/programs/system/board/trunk/build_ru.bat
1,5 → 1,4
@erase lang.inc
@echo lang fix ru >lang.inc
@fasm board.asm board
@erase lang.inc
@pause
/programs/system/board/trunk/macros.inc
143,6 → 143,10
 
 
 
 
 
 
 
; optimize the code for size
__regs fix <eax,ebx,ecx,edx,esi,edi,ebp,esp>
 
174,7 → 178,7
 
macro mov arg1,arg2
{
if (arg1 in __regs) & ((arg2 eqtype 0) | (arg2 eqtype '0'))
if (arg1 in __regs) & (arg2 eqtype 0)
if (arg2) = 0
xor arg1,arg1
else if (arg2) = 1
218,13 → 222,7
.x_size dd ? ; +42
.y_size dd ? ; +46
.slot_state dw ? ; +50
dw ? ; +52 - reserved
.client_left dd ? ; +54
.client_top dd ? ; +58
.client_width dd ? ; +62
.client_height dd ? ; +66
.wnd_state db ? ; +70
rb (1024-71)
rb (1024-52)
}
struct process_information
 
/programs/system/calendar/trunk/build_ge.bat
1,5 → 1,4
@erase lang.inc
@echo lang fix de >lang.inc
@fasm calendar.asm calendar
@erase lang.inc
@pause
/programs/system/calendar/trunk/build_en.bat
1,5 → 1,4
@erase lang.inc
@echo lang fix en >lang.inc
@fasm calendar.asm calendar
@erase lang.inc
@pause
/programs/system/calendar/trunk/build_ru.bat
1,5 → 1,4
@erase lang.inc
@echo lang fix ru >lang.inc
@fasm calendar.asm calendar
@erase lang.inc
@pause
/programs/system/calendar/trunk/macros.inc
143,6 → 143,9
 
 
 
 
 
 
; optimize the code for size
__regs fix <eax,ebx,ecx,edx,esi,edi,ebp,esp>
 
174,7 → 177,7
 
macro mov arg1,arg2
{
if (arg1 in __regs) & ((arg2 eqtype 0) | (arg2 eqtype '0'))
if (arg1 in __regs) & (arg2 eqtype 0)
if (arg2) = 0
xor arg1,arg1
else if (arg2) = 1
218,13 → 221,7
.x_size dd ? ; +42
.y_size dd ? ; +46
.slot_state dw ? ; +50
dw ? ; +52 - reserved
.client_left dd ? ; +54
.client_top dd ? ; +58
.client_width dd ? ; +62
.client_height dd ? ; +66
.wnd_state db ? ; +70
rb (1024-71)
rb (1024-52)
}
struct process_information
 
/programs/system/cpu/trunk/build_ge.bat
1,5 → 1,4
@erase lang.inc
@echo lang fix de >lang.inc
@fasm cpu.asm cpu
@erase lang.inc
@pause
/programs/system/cpu/trunk/cpu.asm
103,7 → 103,7
;buttons handlers
pgdn:
sub [list_start],display_processes
; cmp [list_start],0
cmp [list_start],0
jge still_end
mov [list_start],0
jmp still_end
114,7 → 114,7
jmp still_end
program_start:
mov eax,70
mov eax,58
mov ebx,file_start
int 0x40
jmp still_end
495,7 → 495,7
mov ebx,22*65536+35 ; draw info text with function 4
xor ecx,ecx
mov edx,text
mov esi,text_len
mov esi,79
mov eax,4
int 0x40
 
583,8 → 583,8
; DATA AREA
list_start dd 0
 
file_start: dd 7
dd 0,0,0,0
file_start: dd 16
dd 0,0,0,run_process_buffer
 
start_application: db '/RD/1/LAUNCHER',0
times 60 db 32
593,7 → 593,6
text:
db ' NAME/TERMINATE PID CPU-USAGE % '
db 'MEMORY START/USAGE W-STACK W-SIZE'
text_len = $-text
 
tbts: db 'PREV PAGE NEXT PAGE REBOOT SYSTEM'
tbte:
608,7 → 607,6
text:
db ' NAME/BEENDEN PID CPU-LAST % '
db 'SPEICHER START/NUTZUNG W-STACK W-SIZE'
text_len = $-text
 
tbts: db 'SEITE ZURUECK SEITE VOR REBOOT SYSTEM'
tbte:
632,5 → 630,7
curposy rd 1
index rd 1
tasklist rd display_processes
run_process_buffer:
process_info_buffer process_information
rb 4096-($-run_process_buffer) ;rest of run_process_buffer
U_END:
/programs/system/cpu/trunk/build_en.bat
1,5 → 1,4
@erase lang.inc
@echo lang fix en >lang.inc
@fasm cpu.asm cpu
@erase lang.inc
@pause
/programs/system/cpu/trunk/macros.inc
141,8 → 141,6
int 0x40
}
 
 
 
; optimize the code for size
__regs fix <eax,ebx,ecx,edx,esi,edi,ebp,esp>
 
174,7 → 172,7
 
macro mov arg1,arg2
{
if (arg1 in __regs) & ((arg2 eqtype 0) | (arg2 eqtype '0'))
if (arg1 in __regs) & (arg2 eqtype 0)
if (arg2) = 0
xor arg1,arg1
else if (arg2) = 1
218,13 → 216,7
.x_size dd ? ; +42
.y_size dd ? ; +46
.slot_state dw ? ; +50
dw ? ; +52 - reserved
.client_left dd ? ; +54
.client_top dd ? ; +58
.client_width dd ? ; +62
.client_height dd ? ; +66
.wnd_state db ? ; +70
rb (1024-71)
rb (1024-52)
}
struct process_information
 
/programs/system/pcidev/trunk/PCIDEV.ASM
1,12 → 1,12
;***************************************************************
; project name: PCI Device Enumeration
; target platform: KolibriOS and MenuetOS
; compiler: flat assmebler 1.66
; version: 2.0
; last update: 30(th) August 2006
; maintained by: Jason Delozier and Sergey Kuzmin
; e-mail: cordata51@hotmail.com and kuzmin_serg@list.ru
; project site: http://www.coolthemes.narod.ru/pcidev.html
; compiler: flat assmebler 1.63.2
; version: 1.31
; last update: 13(th) May 2006
; maintained by: Jason Delozier (cordata51)
; e-mail: cordata51@hotmail.com
; project site: http://www.asmfreaks.com/menuetos
;***************************************************************
;Summary: This program will attempt to scan the PCI Bus
; and display basic information about each device
15,27 → 15,9
;HISTORY:
;keep dates in european format (dd/mm/yyyy), please
; '!' means big changes
;
;to-do:
; PCI version should be normalized 0210 -> 02.10 (it is BCD number)
; vendor's website
; more vendors
; device IRQ
; Subsystem id and Subsystem vendor id detection
 
; Full device detection (like "ATI Radeon 9200") will increase app
; size a lot and probably it is function of particular drivers
;PCI version should be normalized (0210->02.10)
;----------------------------------------------------------------
;2.0: PCIDEV 30/08/2006
;(it differs a lot from the version 1.0, which was introduced 19 months ago)
;Author: Marat Zakiyanov aka Mario79 <mario79@bk.ru>
; Sergey Kuzmin aka Wildwest <kuzmin_serg@list.ru>
;Features:
; added
; * Detection of Interface by Mario79
; * 122 vendor id's by Wildwest
; * Description is based on Class, SubClass and Interface now (PCI 3.0) by Wildwest
;----------------------------------------------------------------
;1.31: PCIDEV 13/05/2006
;Author: Jason Delozier <cordata51@hotmail.com>
;Features:
135,7 → 117,8
 
 
include 'macros.inc'
include 'VENDORS.INC'
include 'vendors.inc'
include 'lang.inc'
 
START: ; start of execution
call draw_window
226,7 → 209,7
mov ebx, 20*65536+25 ;x start, ystart of text
mov ecx, 0x224466 ;color of text
mov edx, dword PCIWin ;start of text buffer
mov esi, 106 ;lenght of line 106
mov esi, 106 ;lenght of line
newline: ;
mov eax, 4 ;draw text system function
int 0x40 ;draw the text
241,8 → 224,8
shl ebx, 16 ;
mov bx,word [Form] ;get width of window
sub bx, 32 ;bar is 32 pixels shorter then window width
mov ecx, 119*65536+10 ;set Ystart(109) and Height(10) of bar 109
mov edx, 0xC0C0C0 ;set color of bar
mov ecx, 109*65536+10 ;set Ystart(109) and Height(10) of bar
mov edx, 0xb6b6b6 ;set color of bar
again: ;begin draw bar loop
int 0x40 ;draw bar to window area
shr ecx, 16 ;move the Ystart position to working area
288,7 → 271,7
 
 
;******************************************************
;* Gets the PCI Version and Last Bus
;* Gets the PCI Versioin and Last Bus
Get_PCI_Info:
mov eax, 62
xor ebx, ebx
343,12 → 326,6
mov cl, 0x0a ;Register to read (Get Subclass)
int 0x40 ;Read it
mov byte [PCI_SubClass], al ;Save it
; from Mario79 august 2006
mov eax, 62 ;PCI Sys Function
mov cl, 0x09 ;Register to read (Get Interface)
int 0x40 ;Read it
mov [PCI_Interface], al ;Save it
;
inc byte [total] ;one more device found
call Print_New_Device ;print device info to screen
nextDev:
401,15 → 378,9
movzx ecx,byte [PCI_Class] ;get PCI_Class
int 0x40 ;Draw Class to screen
and edx, 0xFFFF ;*****************************************
or edx, 250*65536 ;X start becomes 250
or edx, 266*65536 ;X start becomes 266
movzx ecx,byte [PCI_SubClass];get sub class
int 0x40 ;Draw Sub Class to screen
; from Mario79 august 2006
and edx, 0xFFFF ;*****************************************
or edx, 280*65536 ;X start becomes 280
movzx ecx, [PCI_Interface] ;get Interface
int 0x40
;
;Write Names
movzx ebx, dx ;Set y position
or ebx, 310*65536 ;set Xposition to 310
425,22 → 396,22
;first determine which list to find the vendor in
mov ax, word [PCI_Vendor]
mov ecx, 255 ;# vendors in most lists
cmp ax,4540 ;Check if Vendor's value is less than this number (the start of next part)
cmp ax,4800 ;Check if Vendor's value is less than this number
jae next1 ;if it is less, let's continue, or jump to next1
mov edx, _FIRSTPART ;select this list
jmp rep1 ;start searching list
next1: ;
cmp ax,5120 ;same thing happening here as above^
cmp ax,5314 ;same thing happening here as above^
jae next2 ;
mov edx, _SECONDPART ;
jmp rep1 ;
next2: ;
cmp ax,5459 ;
cmp ax,5574 ;
jae next3 ;
mov edx, _THIRDPART ;
jmp rep1 ;
next3: ;
mov ecx, 222 ;only 222 vendors in this list
mov ecx, 110 ;only 110 vendors in this list
mov edx, _FOURTHPART ;
 
rep1:
457,6 → 428,7
mov eax,4 ;OS CMD
mov esi,50 ;Length of text
int 0x40 ;Print the text
;------------------------------------------------------------------
 
;------------------------------------------------------------------
;Get description based on Class/Subclass
466,556 → 438,14
shl eax, 3 ;multiply for jump table
mov ecx, [ClassList+eax+4] ;number of descriptions for this class
mov edx, [ClassList+eax] ;start of description list for class
 
mov al, byte [PCI_SubClass] ;get subclass
; mov ah, byte [PCI_Interface] ;get subclass
movzx eax, byte [PCI_SubClass] ;get subclass
repu1:
cmp al,byte[edx+32] ;are subclasses the same?
je interface_check ;if so jump to print the description to screen
je endd ;if so jump to print the description to screen
add edx, 33 ;if not put us at start of next description
dec ecx ;one less description in list
jnz repu1 ;was it our last?
mov edx,_UNKNOWND ;if so its unknown device
jmp endd
 
interface_check:
 
cmp [PCI_Class], 00h
je endd
 
;////////////////////////////
cmp [PCI_Class], 01h
je check01
jmp nextclass02
 
check01:
cmp [PCI_SubClass], 05h
je sc01_05
jmp endd
 
sc01_05:
cmp [PCI_Interface], 20h
je sc01_05_20
cmp [PCI_Interface], 30h
je sc01_05_30
jmp endd
 
 
sc01_05_20:
mov edx,ata1 ; pointer to text beginning
jmp endd
 
sc01_05_30:
mov edx,ata2 ; pointer to text beginning
jmp endd
 
 
;////////////////////////////
nextclass02:
cmp [PCI_Class], 02h
je endd
;////////////////////////////////
cmp [PCI_Class], 03h
je check03
jmp nextclass04
 
check03:
cmp [PCI_SubClass], 00h
je sc03_00
jmp endd
 
sc03_00:
cmp [PCI_Interface], 00000000b
je sc03_00_00000000
cmp [PCI_Interface], 00000001b
je sc03_00_00000001
;jmp endd
 
 
sc03_00_00000000:
mov edx,display1 ; pointer to text beginning
jmp endd
 
sc03_00_00000001:
mov edx,display2 ; pointer to text beginning
jmp endd
;///////////////////////////////
nextclass04:
cmp [PCI_Class], 04h
je endd
 
cmp [PCI_Class], 05h
je endd
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
cmp [PCI_Class], 06h
 
je check06
jmp nextclass07
 
check06:
cmp [PCI_SubClass], 04h
je sc06_04
 
cmp [PCI_SubClass], 09h
je sc06_09
jmp endd
 
sc06_04:
cmp [PCI_Interface], 00h
je sc06_04_00
cmp [PCI_Interface], 01h
je sc06_04_01
jmp endd
 
 
sc06_04_00:
mov edx,bridge1 ; pointer to text beginning
jmp endd
 
sc06_04_01:
mov edx,bridge2 ; pointer to text beginning
jmp endd
 
;======================================
 
sc06_09:
cmp [PCI_Interface], 40h
je sc06_09_40
cmp [PCI_Interface], 80h
je sc06_09_80
jmp endd
 
 
sc06_09_40:
mov edx,bridge3 ; pointer to text beginning
jmp endd
 
sc06_09_80:
mov edx,bridge4 ; pointer to text beginning
jmp endd
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
nextclass07:
cmp [PCI_Class], 07h
je check07
jmp nextclass08
 
check07:
cmp [PCI_SubClass], 00h
je sc07_00
 
cmp [PCI_SubClass], 01h
je sc07_01
 
cmp [PCI_SubClass], 03h
je sc07_03
jmp endd
 
;=
sc07_00:
cmp [PCI_Interface], 00h
je sc07_00_00
cmp [PCI_Interface], 01h
je sc07_00_01
cmp [PCI_Interface], 02h
je sc07_00_02
cmp [PCI_Interface], 03h
je sc07_00_03
cmp [PCI_Interface], 04h
je sc07_00_04
cmp [PCI_Interface], 05h
je sc07_00_05
cmp [PCI_Interface], 06h
je sc07_00_06
 
 
sc07_00_00:
mov edx,communication0 ; pointer to text beginning
jmp endd
 
sc07_00_01:
mov edx,communication1 ; pointer to text beginning
jmp endd
 
sc07_00_02:
mov edx,communication2 ; pointer to text beginning
jmp endd
 
sc07_00_03:
mov edx,communication3 ; pointer to text beginning
jmp endd
 
sc07_00_04:
mov edx,communication4 ; pointer to text beginning
jmp endd
 
sc07_00_05:
mov edx,communication5 ; pointer to text beginning
jmp endd
 
sc07_00_06:
mov edx,communication6 ; pointer to text beginning
jmp endd
;=
sc07_01:
cmp [PCI_Interface], 00h
je sc07_01_00
cmp [PCI_Interface], 01h
je sc07_01_01
cmp [PCI_Interface], 02h
je sc07_01_02
cmp [PCI_Interface], 03h
je sc07_01_03
cmp [PCI_Interface], $FE
je sc07_01_FE
 
 
sc07_01_00:
mov edx,communication7 ; pointer to text beginning
jmp endd
 
sc07_01_01:
mov edx,communication8 ; pointer to text beginning
jmp endd
 
sc07_01_02:
mov edx,communication9 ; pointer to text beginning
jmp endd
 
sc07_01_03:
mov edx,communication10 ; pointer to text beginning
jmp endd
 
sc07_01_FE:
mov edx,communication11 ; pointer to text beginning
jmp endd
 
 
;=
sc07_03:
cmp [PCI_Interface], 00h
je sc07_03_00
cmp [PCI_Interface], 01h
je sc07_03_01
cmp [PCI_Interface], 02h
je sc07_03_02
cmp [PCI_Interface], 03h
je sc07_03_03
cmp [PCI_Interface], 04h
je sc07_03_04
 
 
sc07_03_00:
mov edx,communication12 ; pointer to text beginning
jmp endd
 
sc07_03_01:
mov edx,communication13 ; pointer to text beginning
jmp endd
 
sc07_03_02:
mov edx,communication14 ; pointer to text beginning
jmp endd
 
sc07_03_03:
mov edx,communication15 ; pointer to text beginning
jmp endd
 
sc07_03_04:
mov edx,communication16 ; pointer to text beginning
jmp endd
 
 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
nextclass08:
cmp [PCI_Class], 08h
je check08
jmp nextclass09
 
check08:
cmp [PCI_SubClass], 00h
je sc08_00
cmp [PCI_SubClass], 01h
je sc08_01
cmp [PCI_SubClass], 02h
je sc08_02
cmp [PCI_SubClass], 03h
je sc08_03
jmp endd
;--
sc08_00:
cmp [PCI_Interface], 00h
je sc08_00_00
cmp [PCI_Interface], 01h
je sc08_00_01
cmp [PCI_Interface], 02h
je sc08_00_02
cmp [PCI_Interface], 10h
je sc08_00_10
cmp [PCI_Interface], 20h
je sc08_00_20
jmp endd
 
 
sc08_00_00:
mov edx,system0 ; pointer to text beginning
jmp endd
 
sc08_00_01:
mov edx,system1 ; pointer to text beginning
jmp endd
 
sc08_00_02:
mov edx,system2 ; pointer to text beginning
jmp endd
 
sc08_00_10:
mov edx,system3 ; pointer to text beginning
jmp endd
 
sc08_00_20:
mov edx,system4 ; pointer to text beginning
jmp endd
 
;--
 
sc08_01:
cmp [PCI_Interface], 00h
je sc08_01_00
cmp [PCI_Interface], 01h
je sc08_01_01
cmp [PCI_Interface], 02h
je sc08_01_02
jmp endd
 
 
sc08_01_00:
mov edx,system5 ; pointer to text beginning
jmp endd
 
sc08_01_01:
mov edx,system6 ; pointer to text beginning
jmp endd
 
sc08_01_02:
mov edx,system7 ; pointer to text beginning
jmp endd
 
 
;--
 
sc08_02:
cmp [PCI_Interface], 00h
je sc08_02_00
cmp [PCI_Interface], 01h
je sc08_02_01
cmp [PCI_Interface], 02h
je sc08_02_02
jmp endd
 
 
sc08_02_00:
mov edx,system8 ; pointer to text beginning
jmp endd
 
sc08_02_01:
mov edx,system9 ; pointer to text beginning
jmp endd
 
sc08_02_02:
mov edx,system10 ; pointer to text beginning
jmp endd
 
;--
sc08_03:
cmp [PCI_Interface], 00h
je sc08_03_00
cmp [PCI_Interface], 01h
je sc08_03_01
jmp endd
 
 
sc08_03_00:
mov edx,system11 ; pointer to text beginning
jmp endd
 
sc08_03_01:
mov edx,system12 ; pointer to text beginning
jmp endd
 
;--
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
nextclass09:
 
cmp [PCI_Class], 09h
je check09
jmp nextclass0A
 
check09:
cmp [PCI_SubClass], 04h
je sc09_04
jmp endd
 
sc09_04:
cmp [PCI_Interface], 00h
je sc09_04_00
cmp [PCI_Interface], 10h
je sc09_04_10
jmp endd
 
 
sc09_04_00:
mov edx,gameport1 ; pointer to text beginning
jmp endd
 
sc09_04_10:
mov edx,gameport2 ; pointer to text beginning
jmp endd
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
nextclass0A:
cmp [PCI_Class], 0Ah
je endd
 
cmp [PCI_Class], 0Bh
je endd
;============================================
cmp [PCI_Class], 0Ch
je check0C
jmp nextclass0D
 
check0C:
cmp [PCI_SubClass], 00h
je sc0C_00
cmp [PCI_SubClass], 03h
je sc0C_03
cmp [PCI_SubClass], 07h
je sc0C_07
jmp endd
;;;;;;;;;;;
 
sc0C_00:
cmp [PCI_Interface], 00h
je sc0C_00_00
 
cmp [PCI_Interface], 10h
je sc0C_00_10
 
 
 
sc0C_00_00:
mov edx,serialbus6 ; pointer to text beginning
jmp endd
 
sc0C_00_10:
mov edx,serialbus7 ; pointer to text beginning
jmp endd
;;;;;;;;;;;;;;;;;;;
 
sc0C_03:
cmp [PCI_Interface], 00h
je sc0C_03_00
 
cmp [PCI_Interface], 10h
je sc0C_03_10
 
cmp [PCI_Interface], 20h
je sc0C_03_20
cmp [PCI_Interface], 80h
je sc0C_03_80
 
cmp [PCI_Interface], $FE
je sc0C_03_FE
 
;jmp endd
 
sc0C_03_00:
mov edx,serialbus1 ; pointer to text beginning
jmp endd
 
sc0C_03_10:
mov edx,serialbus2 ; pointer to text beginning
jmp endd
 
 
sc0C_03_20:
mov edx,serialbus3 ; pointer to text beginning
jmp endd
 
sc0C_03_80:
mov edx,serialbus4 ; pointer to text beginning
jmp endd
 
sc0C_03_FE:
mov edx,serialbus5 ; pointer to text beginning
jmp endd
 
;;;;;;;;;;;
 
sc0C_07:
cmp [PCI_Interface], 00h
je sc0C_07_00
 
cmp [PCI_Interface], 01h
je sc0C_07_01
 
cmp [PCI_Interface], 02h
je sc0C_07_02
 
 
sc0C_07_00:
mov edx,serialbus8 ; pointer to text beginning
jmp endd
 
sc0C_07_01:
mov edx,serialbus9 ; pointer to text beginning
jmp endd
 
sc0C_07_02:
mov edx,serialbus10 ; pointer to text beginning
jmp endd
;;;;;;;;;;;;;;;;;;;
;==============================================
nextclass0D:
cmp [PCI_Class], 0Dh
je endd
;;;;;;;;;;;;;;;;;;;;;;;;;;
cmp [PCI_Class], 0Eh
je check0E
jmp nextclass0F
 
check0E:
cmp [PCI_SubClass], 00h
je sc0E_00
jmp endd
 
sc0E_00:
cmp [PCI_Interface], 00h
je sc0E_00_00
cmp [PCI_Interface], 00h ;!!!
ja sc0E_00_xx
jmp endd
 
 
sc0E_00_00:
mov edx,i2o1 ; pointer to text beginning
jmp endd
 
sc0E_00_xx:
mov edx,i2o2 ; pointer to text beginning
jmp endd
 
 
;////////////////////////////
nextclass0F:
cmp [PCI_Class], 0Fh
je endd
 
cmp [PCI_Class], 10h
je endd
 
cmp [PCI_Class], 11h
je endd
 
endd:
and ebx, 0x0000FFFF ;clear X position
or ebx, 0x02300000 ;set X position to 560 pixels
1041,226 → 471,30
; DATA AREA
 
labelt:
db 'PCI Device Enumeration v 2.0 by J. Delozier, S. Kuzmin, V. Hanla, M. Zakiyanov'
db 'PCI Device Enumeration v 1.31 by J. Delozier, S. Kuzmin and V. Hanla'
labellen:
 
ata1:
db 'Storage - ATA c. w/ single DMA '
ata1len:
 
ata2:
db 'Storage - ATA c. w/ chained DMA '
ata2len:
 
 
display1:
db 'Display - VGA-compatible c. '
display1len:
 
display2:
db 'Display - 8514-compatible c. '
display2len:
 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
serialbus1:
db 'Serial Bus - USB Universal HC '
serialbus1len:
 
serialbus2:
db 'Serial Bus - USB Open HC '
serialbus2len:
 
serialbus3:
db 'Serial Bus - USB2 Enhanced HC '
serialbus3len:
 
serialbus4:
db 'Serial Bus - USB w/o specific PI'
serialbus4len:
 
serialbus5:
db 'Serial Bus - USB device (not HC)'
serialbus5len:
 
 
serialbus6:
db 'Serial Bus - IEEE 1394(FireWire)'
serialbus6len:
 
serialbus7:
db 'Serial Bus- IEEE 1394(Open HCI) '
serialbus7len:
 
 
serialbus8:
db 'Serial Bus - IPMI SMIC I. '
serialbus8len:
 
serialbus9:
db 'Serial Bus - IPMI Kybd CSI '
serialbus9len:
 
serialbus10:
db 'Serial Bus - IPMI BTI '
serialbus10len:
;;;;;;;;;;;;;;;;;;;;;;;
bridge1:
db 'Bridge - PCI/PCI '
bridge1len:
 
bridge2:
db 'Bridge - Subtract.Decode PCI/PCI'
bridge2len:
 
bridge3:
db 'Bridge - Semi-transp. PCI/PCI 1 '
bridge3len:
 
bridge4:
db 'Bridge - Semi-transp. PCI/PCI 2 '
bridge4len:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
gameport1:
db 'Input - Gameport c. (generic) '
gameport1len:
 
gameport2:
db 'Input - Gameport c. (legacy) '
gameport2len:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
i2o1:
db 'Intelligent I/O - I/O c. (I2O 1)'
i2o1len:
 
i2o2:
db 'Intelligent I/O - c.(FIFO @ 40h)'
i2o2len:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
communication0:
db 'Communication - Serial (XT) '
communication0len:
 
communication1:
db 'Communication - Serial c.(16450)'
communication1len:
 
communication2:
db 'Communication - Serial c.(16550)'
communication2len:
 
communication3:
db 'Communication - Serial c.(16650)'
communication3len:
 
communication4:
db 'Communication - Serial c.(16750)'
communication4len:
 
communication5:
db 'Communication - Serial c.(16850)'
communication5len:
 
communication6:
db 'Communication - Serial c.(16950)'
communication6len:
;-------------------------------
communication7:
db 'Communication - Parallel port '
communication7len:
 
communication8:
db 'Communication - Bi-dir. par.port'
communication8len:
 
communication9:
db 'Communication - ECP 1.X par.port'
communication9len:
 
communication10:
db 'Communication - IEEE1284 c. '
communication10len:
 
communication11:
db 'Communication - IEEE1284 device '
communication11len:
;-------------------------------
communication12:
db 'Communication - Generic modem '
communication12len:
 
communication13:
db 'Communication -Hayes modem 16450'
communication13len:
 
communication14:
db 'Communication -Hayes modem 16550'
communication14len:
 
communication15:
db 'Communication -Hayes modem 16650'
communication15len:
 
communication16:
db 'Communication -Hayes modem 16750'
communication16len:
 
 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
system0:
db 'System - Generic 8259 PIC '
system0len:
 
system1:
db 'System - ISA PIC '
system1len:
 
system2:
db 'System - EISA PIC '
system2len:
 
system3:
db 'System - I/O APIC interrupt c. '
system3len:
 
system4:
db 'System - I/O(x) APIC interrupt c'
system4len:
;-
system5:
db 'System - Generic 8237 DMA c. '
system5len:
 
system6:
db 'System - ISA DMA c. '
system6len:
 
system7:
db 'System - EISA DMA c. '
system7len:
;--
system8:
db 'System - 8254 system timer '
system8len:
 
system9:
db 'System - ISA system timer '
system9len:
 
system10:
db 'System - EISA (2 system timers) '
system10len:
;--
system11:
db 'System - Generic RTC c. '
system11len:
 
system12:
db 'System - ISA RTC c. '
system12len:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
if lang eq de
PCIWin:
db 'Im Einstellungsmenue muss der PCI Zugriff eingeschaltet sein. '
db ' '
db ' '
db ' '
db 'PCI Version = '
db ' '
db 'Letzter PCI Bus = '
db ' '
db 'Anzahl von Geraeten = '
db ' '
db ' '
db ' '
db 'VenID DevID Bus# Dev# Fnc Rev Class Subclass Herste'
db 'ller Beschreibung '
db '----- ----- ---- ---- --- --- ----- -------- --------------------'
db '---------------------- ----------------'
db 'x'
else
PCIWin:
db 'Please remember to enable PCI Access to Applications in Setup Menu.'
db ' '
db ' '
1269,19 → 503,17
db ' '
db 'Last PCI Bus = '
db ' '
db 'Quantity of devices = '
db 'Number of devices = '
db ' '
db ' '
db ' '
db 'VenID DevID Bus# Dev# Fnc Rev Class Subclass/ Comp'
db 'VenID DevID Bus# Dev# Fnc Rev Class Subclass Comp'
db 'any Description '
db ' Interface '
db ' '
db '----- ----- ---- ---- --- --- ----- -------- --------------------'
db '---------------------- ----------------'
db 'x'
end if
 
;
 
total db 0
V_Bus db 0
1295,8 → 527,8
PCI_Rev db 0
PCI_Class db 0
PCI_SubClass db 0
PCI_Interface db 0
 
 
Proc_Info:
times 1024 db 0
 
/programs/system/pcidev/trunk/vendors.inc
1,17 → 1,3
;WriteTextToWindow
macro Text xStart,yStart,rgbColor,pText,nTextLen
{
mov ebx,xStart
shl ebx,16
add ebx,yStart
mov ecx,rgbColor
mov edx,pText
mov esi,nTextLen
mov eax,4
int 0x40
}
 
 
; AUTHOR: Victor Alberto Gil Hancco Laquita <vhanla@gmail.com>
; This list might content mistakes, plz report it
; There are 865 Lists of Vendors' Names
23,13 → 9,10
; changed 11/05/2006: + 3 vendors and no more label 'PREVIOUSVERSIONLIST'
; so the total quantity of vendors is 875 now (changes by Sergey Kuzmin)
 
; changed 16/08/2006: + 122 vendors
; so the total quantity of vendors is 987 now (changes by Sergey Kuzmin)
 
_FIRSTPART: ;lists the 255 Vendor IDs
db 'PARADYNE CORP. '
dw 51 ; 0x0033
db 'Lockheed Martin Corp '
db 'REAL 3D '
dw 61 ; 0x003D
db 'NCIPHER CORP. LTD '
dw 256 ; 0x0100
43,31 → 26,19
dw 4097 ; 0x1001
db 'ATI TECHNOLOGIES INC '
dw 4098 ; 0x1002
db 'ULSI '
dw 4099 ; 0x1003
db 'VLSI TECHNOLOGY INC '
dw 4100 ; 0x1004
db 'NATIONAL SEMICONDUCTOR CORPORATION '
dw 4107 ; 0x100B
db 'Tseng Labs '
dw 4108 ; 0x100C
db 'Weitek '
dw 4110 ; 0x100E
db 'VIDEO LOGIC LTD '
dw 4112 ; 0x1010
db 'Digital Equipment Corporation '
dw 4113 ; 0x1011
db 'Cirrus Logic '
dw 4115 ; 0x1013
db 'IBM '
dw 4116 ; 0x1014
db 'Spea Software AG '
dw 4119 ; 0x1017
db 'UNISYS CORPORATION '
dw 4120 ; 0x1018
db 'ELITEGROUP COMPUTER SYS '
dw 4121 ; 0x1019
db 'NCR Corporation '
db 'NCR '
dw 4122 ; 0x101A
db 'AMERICAN MEGATRENDS '
dw 4126 ; 0x101E
79,8 → 50,6
dw 4130 ; 0x1022
db 'TRIDENT MICROSYSTEMS '
dw 4131 ; 0x1023
db 'Acer Incorporated '
dw 4133 ; 0x1025
db 'DELL COMPUTER CORPORATION '
dw 4136 ; 0x1028
db 'LSI LOGIC CORPORATION '
87,24 → 56,14
dw 4138 ; 0x102A
db 'MATROX GRAPHICS '
dw 4139 ; 0x102B
db 'Asiliant (Chips And Technologies) '
dw 4140 ; 0x102C
db 'Wyse Technologies '
dw 4141 ; 0x102D
db 'TOSHIBA AMERICA '
dw 4143 ; 0x102F
db 'miro Computer Products AG '
dw 4145 ; 0x1031
db 'NEC CORPORATION '
dw 4147 ; 0x1033
db 'Future Domain '
dw 4150 ; 0x1036
db 'AMP '
dw 4152 ; 0x1038
db 'SILICON INTEGRATED SYSTEMS '
dw 4153 ; 0x1039
db 'Hewlett-Packard Company '
dw 4156 ; 0x103C
db 'SYNOPSYS/LOGIC MODELING GROUP '
dw 4159 ; 0x103F
db 'Micron Electronics '
119,31 → 78,21
dw 4168 ; 0x1048
db 'FOUNTAIN TECHNOLOGIES '
dw 4169 ; 0x1049
db 'STMicroelectronics '
dw 4170 ; 0x104A
db 'TEXAS INSTRUMENTS '
dw 4172 ; 0x104C
db 'SONY CORPORATION '
dw 4173 ; 0x104D
db 'Oak Technology '
dw 4174 ; 0x104E
db 'Co-Time Computer Ltd. '
dw 4175 ; 0x104F
db 'WINBOND ELECTRONICS CORP '
dw 4176 ; 0x1050
db 'Anigma Corp. '
dw 4177 ; 0x1051
db 'HITACHI '
dw 4180 ; 0x1054
db 'Standard Microsystems Corp. '
dw 4181 ; 0x1055
db 'Motorola '
dw 4183 ; 0x1057
db 'ETRI '
dw 4184 ; 0x1058
db 'TEKNOR INDUSTRIAL COMPUTERS INC '
dw 4185 ; 0x1059
db 'PROMISE TECHNOLOGY '
db 'PROMISE TECHNOLOGY. '
dw 4186 ; 0x105A
db 'FOXCONN INTERNATIONAL INC '
dw 4187 ; 0x105B
151,18 → 100,10
dw 4189 ; 0x105D
db 'INFOTRONIC AMERICA INC '
dw 4191 ; 0x105F
db 'United Microelectronics '
dw 4192 ; 0x1060
db '8x8 Inc. '
dw 4193 ; 0x1061
db 'OCEAN MANUFACTURING LTD '
dw 4195 ; 0x1063
db 'ALCATEL '
dw 4196 ; 0x1064
db 'Texas Microsystems '
dw 4197 ; 0x1065
db 'Picopower Technology '
dw 4198 ; 0x1066
db 'MITSUBISHI ELECTRIC AMERICA '
dw 4199 ; 0x1067
db 'DIVERSIFIED TECHNOLOGY '
171,8 → 112,6
dw 4201 ; 0x1069
db 'APPLE COMPUTER INC. '
dw 4203 ; 0x106B
db 'Hyundai Electronics America '
dw 4204 ; 0x106C
db 'SEQUENT COMPUTER SYSTEMS '
dw 4205 ; 0x106D
db 'DAEWOO TELECOM LTD '
181,54 → 120,24
dw 4209 ; 0x1071
db 'YAMAHA CORPORATION '
dw 4211 ; 0x1073
db 'Nexgen Microsystems '
dw 4212 ; 0x1074
db 'Chaintech Comp. '
dw 4214 ; 0x1076
db 'QLOGIC Corporation '
db 'QLOGIC '
dw 4215 ; 0x1077
db 'Cyrix Corporation '
dw 4216 ; 0x1078
db 'I-BUS '
dw 4217 ; 0x1079
db 'GATEWAY 2000 '
dw 4219 ; 0x107B
db 'Leadtek Research '
dw 4221 ; 0x107D
db 'INTERPHASE CORPORATION '
dw 4222 ; 0x107E
db 'Data Technology Corporation '
dw 4223 ; 0x107F
db 'Cypress Semiconductor '
dw 4224 ; 0x1080
db 'Radius Inc. '
dw 4225 ; 0x1081
db 'Forex Computer Corporation '
dw 4227 ; 0x1083
db 'Tulip Computers International BV '
dw 4229 ; 0x1085
db 'Cache Computer '
dw 4231 ; 0x1087
db 'SBS Operations '
dw 4234 ; 0x108A
db 'OLICOM '
dw 4237 ; 0x108D
db 'Sun Microsystems '
dw 4238 ; 0x108E
db 'Intergraph Corporation '
dw 4241 ; 0x1091
db 'Diamond Computer Systems '
dw 4242 ; 0x1092
db 'National Instruments '
dw 4243 ; 0x1093
db 'SILICON IMAGE (WAS CMD TECHNOLOGY INC) '
dw 4245 ; 0x1095
db 'ALACRON '
dw 4246 ; 0x1096
db 'APPIAN Graphics/ETMA '
db 'APPIAN/ETMA '
dw 4247 ; 0x1097
db 'Quantum Designs Ltd. '
dw 4248 ; 0x1098
db 'PACKARD BELL NEC '
dw 4250 ; 0x109A
db 'BROOKTREE CORPORATION '
239,16 → 148,10
dw 4256 ; 0x10A0
db 'QUANTUM EFFECT DESIGN '
dw 4258 ; 0x10A2
db 'Globe Manufacturing Sales '
dw 4260 ; 0x10A4
db 'Sierra Semiconductor '
dw 4264 ; 0x10A8
db 'SILICON GRAPHICS '
dw 4265 ; 0x10A9
db 'HONEYWELL IAC '
dw 4268 ; 0x10AC
db 'Winbond Systems Labs '
dw 4269 ; 0x10AD
db 'MICRO COMPUTER SYSTEMS INC '
dw 4271 ; 0x10AF
db 'PLX TECHNOLOGY. '
257,20 → 160,12
dw 4278 ; 0x10B6
db '3COM Corp, Networking Division '
dw 4279 ; 0x10B7
db 'Standard Microsystems Corporation '
dw 4280 ; 0x10B8
db 'ACER LABS Incorp. '
dw 4281 ; 0x10B9
db 'MITSUBISHI ELECTRIC CORP. '
dw 4282 ; 0x10BA
db 'Surecom Technology '
dw 4285 ; 0x10BD
db 'AUSPEX SYSTEMS INC. '
dw 4290 ; 0x10C2
db 'Samsung Semiconductors '
dw 4291 ; 0x10C3
db 'Award Software International Inc. '
dw 4292 ; 0x10C4
db 'NEOMAGIC CORPORATION '
dw 4296 ; 0x10C8
db 'FUJITSU MICROELECTRONIC '
285,12 → 180,8
dw 4305 ; 0x10D1
db 'MOLEX INCORPORATED '
dw 4306 ; 0x10D2
db 'Macronix International Co. Ltd. '
dw 4313 ; 0x10D9
db 'ROHM LSI SYSTEMS '
dw 4315 ; 0x10DB
db 'CERN-European Lab. for Particle Physics '
dw 4316 ; 0x10DC
db 'EVANS & SUTHERLAND '
dw 4317 ; 0x10DD
db 'NVIDIA CORPORATION '
303,35 → 194,17
dw 4323 ; 0x10E3
db 'MICRO INDUSTRIES CORPORATION '
dw 4325 ; 0x10E5
db 'Applied Micro Circuits Corp. '
dw 4328 ; 0x10E8
db 'Tvia, Inc. '
dw 4330 ; 0x10EA
db 'Artist Graphics '
dw 4331 ; 0x10EB
db 'REALTEK SEMICONDUCTOR CORP. '
dw 4332 ; 0x10EC
db 'Ascii Corporation '
dw 4333 ; 0x10ED
db 'XILINX '
db 'XILINX. '
dw 4334 ; 0x10EE
db 'Racore Computer Products '
dw 4335 ; 0x10EF
db 'Curtiss-Wright Controls Embedded Computing '
dw 4336 ; 0x10F0
db 'TYAN COMPUTER '
dw 4337 ; 0x10F1
db 'S-Mos Systems '
dw 4340 ; 0x10F4
db 'NKK CORPORATION '
dw 4341 ; 0x10F5
db 'CREATIVE ELECTRONIC SYSTEMS SA '
dw 4342 ; 0x10F6
db 'Truevision '
dw 4346 ; 0x10FA
db 'Thesys Microelectronics '
dw 4347 ; 0x10FB
db 'I-O DATA DEVICE '
db 'I-O DATA DEVICE. '
dw 4348 ; 0x10FC
db 'FAST MULTIMEDIA AG '
dw 4350 ; 0x10FE
343,27 → 216,19
dw 4357 ; 0x1105
db 'VIA TECHNOLOGIES '
dw 4358 ; 0x1106
db 'ASCEND COMMUNICATIONS/Stratus Computer '
db 'ASCEND COMMUNICATIONS '
dw 4359 ; 0x1107
db 'Proteon Inc. '
dw 4360 ; 0x1108
db 'Adaptec/Cogent Data Technologies Inc '
dw 4361 ; 0x1109
db 'SIEMENS PC SYSTEME GMBH '
dw 4362 ; 0x110A
db 'Chromatic Research Inc '
dw 4363 ; 0x110B
db 'SANTA CRUZ OPERATION '
dw 4369 ; 0x1111
db 'Osicom Technologies Inc. '
dw 4370 ; 0x1112
db 'ACCTON TECHNOLOGY '
dw 4371 ; 0x1113
db 'Atmel Corp. '
dw 4372 ; 0x1114
db 'Media 100, Inc. '
db 'MEDIA 100 '
dw 4374 ; 0x1116
db 'Datacube Inc. '
db 'DATACUBE '
dw 4375 ; 0x1117
db 'FCI ELECTRONICS '
dw 4376 ; 0x1118
371,12 → 236,8
dw 4377 ; 0x1119
db 'EFFICIENT NETWORKS '
dw 4378 ; 0x111A
db 'Tricord Systems Inc. '
dw 4380 ; 0x111C
db 'INTEGRATED DEVICE TECH '
dw 4381 ; 0x111D
db 'Precision Digital Images '
dw 4383 ; 0x111F
db 'EMC CORPORATION '
dw 4384 ; 0x1120
db 'FORE SYSTEMS INC '
383,8 → 244,6
dw 4391 ; 0x1127
db 'HERMES ELECTRONICS COMPANY '
dw 4394 ; 0x112A
db 'Infomedia '
dw 4398 ; 0x112E
db 'IMAGING TECHNOLOGY '
dw 4399 ; 0x112F
db 'PHILIPS SEMICONDUCTORS '
391,7 → 250,7
dw 4401 ; 0x1131
db 'MITEL CORP '
dw 4402 ; 0x1132
db 'Eicon Networks Corporation '
db 'EICON TECHNOLOGY CORPORATION '
dw 4403 ; 0x1133
db 'MERCURY COMPUTER SYSTEMS '
dw 4404 ; 0x1134
407,24 → 266,14
dw 4412 ; 0x113C
db 'SANYO ELECTRIC CO-Information Systems Division '
dw 4414 ; 0x113E
db 'Equinox Systems '
dw 4415 ; 0x113F
db 'CREST MICROSYSTEM INC. '
dw 4417 ; 0x1141
db 'Alliance Semiconductor CA - USA '
dw 4418 ; 0x1142
db 'Cincinnati Milacron '
dw 4420 ; 0x1144
db 'WORKBIT CORPORATION '
dw 4421 ; 0x1145
db 'FORCE COMPUTERS GMBH '
dw 4422 ; 0x1146
db 'Interface Corp '
dw 4423 ; 0x1147
db 'SYSKONNECT/Marvell '
db 'SYSKONNECT '
dw 4424 ; 0x1148
db 'VMIC '
dw 4426 ; 0x114A
db 'ANNABOOKS '
dw 4428 ; 0x114C
db 'DIGI INTERNATIONAL '
431,12 → 280,6
dw 4431 ; 0x114F
db 'MELCO INC '
dw 4436 ; 0x1154
db 'Pine Technology Ltd '
dw 4437 ; 0x1155
db 'Voarx R&D Inc '
dw 4440 ; 0x1158
db 'Mutech '
dw 4441 ; 0x1159
db 'PHOTRON LTD. '
dw 4444 ; 0x115C
db 'XIRCOM '
445,14 → 288,8
dw 4449 ; 0x1161
db 'RENDITION '
dw 4451 ; 0x1163
db 'Imagraph Corporation '
dw 4453 ; 0x1165
db 'Reliance Computer Corp./ServerWorks '
db 'Reliance Computer '
dw 4454 ; 0x1166
db 'Centre f/Dev. of Adv. Computing '
dw 4457 ; 0x1169
db 'Polaris Communications '
dw 4458 ; 0x116A
db 'ELECTRONICS FOR IMAGING '
dw 4462 ; 0x116E
db 'INVENTEC CORPORATION '
461,20 → 298,10
dw 4465 ; 0x1171
db 'ALTERA CORPORATION '
dw 4466 ; 0x1172
db 'SBE '
dw 4470 ; 0x1176
db 'Alfa Inc '
dw 4472 ; 0x1178
db 'TOSHIBA AMERICA INFO SYSTEMS '
dw 4473 ; 0x1179
db 'GCE-8320B '
dw 4475 ; 0x117B
db 'T/R Systems '
dw 4478 ; 0x117E
db 'RICOH CO LTD '
dw 4480 ; 0x1180
db 'Dataworld '
dw 4485 ; 0x1185
db 'D-LINK SYSTEM INC '
dw 4486 ; 0x1186
db 'ADVANCED TECHNOLOGY LABORATORIES '
483,26 → 310,14
dw 4489 ; 0x1189
db 'PLATYPUS TECHNOLOGY PTY LTD '
dw 4491 ; 0x118B
db 'Corollary Inc '
db 'COROLLARY '
dw 4492 ; 0x118C
db 'BitFlow Inc '
dw 4493 ; 0x118D
db 'Hermstedt AG '
dw 4494 ; 0x118E
db 'Tripace '
dw 4496 ; 0x1190
db 'ACARD TECHNOLOGY '
dw 4497 ; 0x1191
db 'RATOC SYSTEMS INC '
dw 4501 ; 0x1195
db 'Gage Applied Technologies '
dw 4503 ; 0x1197
db 'Attachmate Corp. '
dw 4505 ; 0x1199
db 'MINDSHARE. '
dw 4506 ; 0x119A
db 'Omega Micro Inc. '
dw 4507 ; 0x119B
db 'BUG. '
dw 4509 ; 0x119D
db 'FUJITSU MICROELECTRONICS LTD. '
511,13 → 326,11
dw 4511 ; 0x119F
db 'HAMAMATSU PHOTONICS K.K. '
dw 4513 ; 0x11A1
db 'Systech Corp. '
dw 4520 ; 0x11A8
db 'InnoSys Inc. '
db 'INNOSYS '
dw 4521 ; 0x11A9
db 'ACTEL '
dw 4522 ; 0x11AA
db 'GALILEO TECHNOLOGY LTD/Marvell Semiconductor, Inc.'
db 'GALILEO TECHNOLOGY LTD. '
dw 4523 ; 0x11AB
db 'LITE-ON COMMUNICATIONS INC '
dw 4525 ; 0x11AD
525,23 → 338,12
dw 4526 ; 0x11AE
db 'AVID TECHNOLOGY INC '
dw 4527 ; 0x11AF
db 'V3 SEMICONDUCTOR INC./Quicklogic Corp '
db 'V3 SEMICONDUCTOR INC. '
dw 4528 ; 0x11B0
db 'EASTMAN KODAK '
dw 4530 ; 0x11B2
db 'BARR SYSTEMS INC. '
dw 4531 ; 0x11B3
db 'Radstone Technology Ltd. '
dw 4533 ; 0x11B5
db 'Xpoint Technologies Inc '
dw 4536 ; 0x11B8
db 'Pathlight Technology Inc. '
dw 4537 ; 0x11B9
_SECONDPART: ;lists 255 Vendors
db 'Network Peripherals Inc '
dw 4540 ; 0x11BC
db 'Pinnacle Systems Inc. '
dw 4541 ; 0x11BD
db 'ASTRODESIGN '
dw 4543 ; 0x11BF
db 'AGERE/LUCENT '
556,26 → 358,22
dw 4554 ; 0x11CA
db 'SPECIALIX INTERNATIONAL LTD '
dw 4555 ; 0x11CB
db 'NETACCESS/Primary Rate Inc '
db 'NETACCESS '
dw 4558 ; 0x11CE
db 'LOCKHEED MARTIN-Electronics & Communications '
dw 4560 ; 0x11D0
db 'AuraVision Corporation '
db 'AURAVISION '
dw 4561 ; 0x11D1
db 'INTERCOM INC. '
dw 4562 ; 0x11D2
db 'Analog Devices, Inc. '
db 'ANALOG DEVICES '
dw 4564 ; 0x11D4
db 'IKON CORPORATION/Tahoma Technology '
db 'IKON CORPORATION '
dw 4565 ; 0x11D5
db 'TOSHIBA TEC CORPORATION '
dw 4569 ; 0x11D9
db 'NOVELL '
dw 4570 ; 0x11DA
db 'Sega Enterprises Ltd '
dw 4571 ; 0x11DB
db 'Zoran Corporation '
dw 4574 ; 0x11DE
db 'NEW WAVE PDG '
dw 4575 ; 0x11DF
db 'QUICKLOGIC CORPORATION '
584,28 → 382,12
dw 4588 ; 0x11EC
db 'DOME IMAGING SYSTEMS INC '
dw 4590 ; 0x11EE
db 'Compu-Shack GmbH '
dw 4592 ; 0x11F0
db 'Kinetic Systems Corporation '
dw 4596 ; 0x11F4
db 'Powermatic Data Systems Ltd '
dw 4598 ; 0x11F6
db 'PMC-SIERRA INC '
dw 4600 ; 0x11F8
db 'Comtrol Corp '
dw 4606 ; 0x11FE
db 'Network General Corp '
dw 4610 ; 0x1202
db 'AGFA CORPORATION '
dw 4611 ; 0x1203
db 'AMDAHL CORPORATION '
dw 4614 ; 0x1206
db 'Parsytec GmbH '
dw 4616 ; 0x1208
db 'Sci Systems Inc '
dw 4617 ; 0x1209
db 'Cyclades Corporation '
dw 4622 ; 0x120E
db 'ESSENTIAL COMMUNICATIONS '
dw 4623 ; 0x120F
db 'PERFORMANCE TECHNOLOGIES. '
618,55 → 400,31
dw 4634 ; 0x121A
db 'VIRATA LTD '
dw 4635 ; 0x121B
db 'Ariel Corporation '
dw 4640 ; 0x1220
db 'CONTEC CO. LTD '
dw 4641 ; 0x1221
db 'ARTESYN COMMUNICATIONS PRODUCTS INC '
dw 4643 ; 0x1223
db 'Interactive Images '
dw 4644 ; 0x1224
db 'TECH-SOURCE '
dw 4647 ; 0x1227
db 'SICAN GMBH '
dw 4652 ; 0x122C
db 'Aztech System Ltd '
dw 4653 ; 0x122D
db 'MARCONI COMMUNICATIONS LTD '
dw 4658 ; 0x1232
db 'Sigma Designs, Inc '
dw 4662 ; 0x1236
db 'Solitron Technologies Inc. '
dw 4684 ; 0x124C
db 'Stallion Technologies '
dw 4665 ; 0x124D
db 'Infortrend Technology Inc '
dw 4667 ; 0x124F
db 'Perceptive Solutions Inc. '
dw 4694 ; 0x1256
db 'Gilbarco Inc. '
dw 4696 ; 0x1258
db 'Asix Electronics Corp. '
dw 4699 ; 0x125B
db 'Microdyne Corp. '
dw 4710 ; 0x1266
db 'S.A. Telecommunications '
dw 4711 ; 0x1267
db 'SOLITON SYSTEMS K.K. '
dw 4961 ; 0x1361
db 'CENTURY SYSTEMS. '
dw 4668 ; 0x123C
db 'Engineering Design Team Inc. '
db 'ENGINEERING DESIGN TEAM. '
dw 4669 ; 0x123D
db 'C-CUBE MICROSYSTEMS '
dw 4671 ; 0x123F
db 'JAYCOR NETWORKS INC./JNI Corporation '
db 'JAYCOR NETWORKS INC. '
dw 4674 ; 0x1242
db 'AVM AUDIOVISUELLES MKTG & COMPUTER SYSTEM GMBH '
dw 4676 ; 0x1244
db 'SBS TECHNOLOGIES '
dw 4683 ; 0x124B
db 'Hitachi Microcomputer System Ltd. '
db 'HITACHI ULSI SYSTEMS CO LTD '
dw 4688 ; 0x1250
db 'GUZIK TECHNICAL ENTERPRISES '
dw 4691 ; 0x1253
676,7 → 434,7
dw 4697 ; 0x1259
db 'AURORA TECHNOLOGIES. '
dw 4700 ; 0x125C
db 'ESS TECHNOLOGY, INC. '
db 'ESS '
dw 4701 ; 0x125D
db 'CONCURRENT TECHNOLOGIES '
dw 4703 ; 0x125F
688,7 → 446,7
dw 4708 ; 0x1264
db 'TEKTRONIX '
dw 4712 ; 0x1268
db 'Nortel Networks Corp. '
db 'NORTEL NETWORKS '
dw 4716 ; 0x126C
db 'SPLASH TECHNOLOGY. '
dw 4717 ; 0x126D
702,7 → 460,7
dw 4724 ; 0x1274
db 'NETWORK APPLIANCE CORPORATION '
dw 4725 ; 0x1275
db 'Transtech Parallel Systems '
db 'TRANSTECH DSP LTD '
dw 4728 ; 0x1278
db 'TRANSMETA CORPORATION '
dw 4729 ; 0x1279
714,13 → 472,13
dw 4735 ; 0x127F
db 'YOKOGAWA ELECTRIC CORPORATION '
dw 4737 ; 0x1281
db 'Integrated Technology Express Inc. '
db 'INTEGRATED TECHNOLOGY EXPRESS. '
dw 4739 ; 0x1283
db 'MAZET GMBH '
dw 4742 ; 0x1286
db 'TRANSWITCH CORPORATION '
dw 4747 ; 0x128B
db 'G2 Networks Inc. '
db 'G2 NETWORKS. '
dw 4749 ; 0x128D
db 'TATENO DENNOU. '
dw 4751 ; 0x128F
734,13 → 492,13
dw 4759 ; 0x1297
db 'KNOWLEDGE TECHNOLOGY LAB. '
dw 4761 ; 0x1299
db 'VMETRO Inc. '
db 'VMETRO. '
dw 4762 ; 0x129A
db 'VICTOR COMPANY OF JAPAN '
dw 4766 ; 0x129E
db 'ALLEN- BRADLEY COMPANY '
dw 4768 ; 0x12A0
db 'Lucent Technologies AMR '
db 'LUCENT TECHNOLOGIES '
dw 4771 ; 0x12A3
db 'AMO GMBH '
dw 4775 ; 0x12A7
748,7 → 506,7
dw 4777 ; 0x12A9
db 'YUAN YUAN ENTERPRISE CO. LTD. '
dw 4779 ; 0x12AB
db 'Alteon Networks Inc. '
db 'ALTEON WEBSYSTEMS INC '
dw 4782 ; 0x12AE
db 'NATURAL MICROSYSTEMS '
dw 4790 ; 0x12B6
762,9 → 520,10
dw 4798 ; 0x12BE
db 'Fujifilm Microdevices '
dw 4799 ; 0x12BF
_SECONDPART: ;lists 255 Vendors
db 'INFIMED '
dw 4800 ; 0x12C0
db 'Holtek Microelectronics Inc. '
db 'HOLTEK SEMICONDUCTOR INC '
dw 4803 ; 0x12C3
db 'Connect Tech Inc '
dw 4804 ; 0x12C4
780,7 → 539,7
dw 4818 ; 0x12D2
db 'GE VINGMED ULTRASOUND AS '
dw 4819 ; 0x12D3
db 'COMVERSE NETWORKS SYSTEM & Ulticom, Inc. '
db 'COMVERSE NETWORKS SYSTEM & Ulticom. '
dw 4820 ; 0x12D4
db 'Equator Technologies '
dw 4821 ; 0x12D5
796,7 → 555,7
dw 4830 ; 0x12DE
db 'SBS Technologies Inc '
dw 4831 ; 0x12DF
db 'Chase Research PLC '
db 'Chase Research '
dw 4832 ; 0x12E0
db 'Datum Inc. Bancomm-Timing Division '
dw 4834 ; 0x12E2
806,7 → 565,7
dw 4839 ; 0x12E7
db 'Real Vision '
dw 4842 ; 0x12EA
db 'Aureal Semiconductor '
db 'AUREAL INC. '
dw 4843 ; 0x12EB
db '3A '
dw 4844 ; 0x12EC
824,7 → 583,7
dw 4868 ; 0x1304
db 'Computer Boards '
dw 4871 ; 0x1307
db 'LEVEL ONE COMMUNICATIONS/Jato Technologies Inc. '
db 'LEVEL ONE COMMUNICATIONS '
dw 4872 ; 0x1308
db 'Mitsubishi Electric MicroComputer '
dw 4874 ; 0x130A
980,7 → 739,7
dw 5053 ; 0x13BD
db 'SHAREWAVE INC '
dw 5055 ; 0x13BF
db '3ware Inc. '
db '3WARE '
dw 5057 ; 0x13C1
db 'TECHNOTREND SYSTEMTECHNIK GMBH '
dw 5058 ; 0x13C2
1048,10 → 807,9
dw 5115 ; 0x13FB
db 'MICRO SCIENCE INC '
dw 5117 ; 0x13FD
_THIRDPART: ;lists 255 vendors
db 'ARTX INC '
dw 5120 ; 0x1400
db 'Meilhaus Electronic GmbH Germany '
db 'MEILHAUS ELECTRONIC GmbH '
dw 5122 ; 0x1402
db 'FUNDAMENTAL SOFTWARE INC '
dw 5124 ; 0x1404
1113,7 → 871,7
dw 5190 ; 0x1446
db 'AIM GMBH '
dw 5191 ; 0x1447
db 'ADLINK Technology Inc '
db 'ADLINK TECHNOLOGY '
dw 5194 ; 0x144A
db 'LORONIX INFORMATION SYSTEMS INC '
dw 5195 ; 0x144B
1273,6 → 1031,7
dw 5312 ; 0x14C0
db 'MYRICOM INC. '
dw 5313 ; 0x14C1
_THIRDPART: ;lists 255 vendors
db 'DTK COMPUTER '
dw 5314 ; 0x14C2
db 'MEDIATEK CORP. '
1365,9 → 1124,9
dw 5359 ; 0x14EF
db 'CANON RESEACH CENTRE FRANCE '
dw 5360 ; 0x14F0
db 'Conexant Systems, Inc '
db 'CONEXANT '
dw 5361 ; 0x14F1
db 'Mobility Electronics, Inc. '
db 'MOBILITY ELECTRONICS '
dw 5362 ; 0x14F2
db 'BROADLOGIC '
dw 5363 ; 0x14F3
1559,7 → 1318,6
dw 5457 ; 0x1551
db 'RACAL AIRTECH LTD '
dw 5458 ; 0x1552
_FOURTHPART: ;lists 222 vendors
db 'CHICONY ELECTRONICS CO LTD '
dw 5459 ; 0x1553
db 'PROLINK MICROSYSTEMS CORP. '
1582,7 → 1340,7
dw 5468 ; 0x155C
db 'MAC SYSTEM CO LTD '
dw 5469 ; 0x155D
db 'LP ELEKTRONIK GMBH/KUKA Controls GmbH '
db 'LP ELEKTRONIK GMBH '
dw 5470 ; 0x155E
db 'PERLE SYSTEMS LIMITED '
dw 5471 ; 0x155F
1590,7 → 1348,7
dw 5472 ; 0x1560
db 'VIEWGRAPHICS INC '
dw 5473 ; 0x1561
db 'Symbol Technologies, Inc. '
db 'SYMBOL TECHNOLOGIES '
dw 5474 ; 0x1562
db 'A-TREND '
dw 5475 ; 0x1563
1736,7 → 1494,7
dw 5547 ; 0x15AB
db 'NORTH ATLANTIC INSTRUMENTS '
dw 5548 ; 0x15AC
db 'VMware Inc. '
db 'VMWARE '
dw 5549 ; 0x15AD
db 'AMERSHAM PHARMACIA BIOTECH '
dw 5550 ; 0x15AE
1784,6 → 1542,7
dw 5572 ; 0x15C4
db 'PROCOMP INFORMATICS LTD '
dw 5573 ; 0x15C5
_FOURTHPART: ;lists 110 vendors
db 'TECHNICAL UNIVERSITY OF BUDAPEST '
dw 5574 ; 0x15C6
db 'TATEYAMA SYSTEM LABORATORY CO LTD '
1816,7 → 1575,7
dw 5589 ; 0x15D5
db 'ENTRIDIA CORPORATION '
dw 5590 ; 0x15D6
db 'Rockwell-Collins Inc '
db 'ROCKWELL-COLLINS '
dw 5591 ; 0x15D7
db 'CYBERNETICS TECHNOLOGY CO LTD '
dw 5592 ; 0x15D8
1919,7 → 1678,7
db 'SCIEMETRIC INSTRUMENTS INC '
dw 5641 ; 0x1609
db 'Broadcom -SiByte '
dw 5741 ; 0x166D
dw 5741 ; 0x127A
db 'EPOX Computer Co '
dw 5781 ; 0x1695
db 'ALBATRON Corp. '
1956,7 → 1715,7
dw 19796 ; 0x4D54
db 'S S TECHNOLOGIES '
dw 20790 ; 0x5136
db 'S3 Graphics Co., Ltd. '
db 'S3 INC. '
dw 21299 ; 0x5333
db 'TERALOGIC INC '
dw 21580 ; 0x544C
1972,7 → 1731,7
dw 34952 ; 0x8888
db 'COMPUTONE CORPORATION '
dw 36366 ; 0x8E0E
db 'Adaptec Inc '
db 'ADAPTEC '
dw 36868 ; 0x9004
db 'GIGAPIXEL CORP '
dw 37274 ; 0x919A
1994,7 → 1753,7
dw 51966 ; 0xCAFE
db 'CATAPULT COMMUNICATIONS '
dw 52428 ; 0xCCCC
db 'DY4 Systems Inc/Curtiss-Wright Controls Embed. Com'
db 'DY4 Systems Inc '
dw 54484 ; 0xD4D4
db 'EKF ELEKTRONIK GMBH '
dw 58559 ; 0xE4BF
2005,10 → 1764,10
db 'EPIGRAM INC '
dw 65242 ; 0xFEDA
;----------------------------------------------------------------------
_UNKNOWN: db 'UNKNOWN VENDOR '
_UNKNOWN: db 'UNKOWN VENDOR '
 
_UNKNOWND:
db 'UNKNOWN DEVICE '
db 'UNKOWN DEVICE '
 
Class0:
db 'Prehistoric - misc '
2027,7 → 1786,7
db 03 ; 0x03
db 'Storage - RAID '
db 04 ; 0x04
db ' ' ;Storage - ATA with DMA
db 'Storage - ATA with DMA '
db 05 ; 0x05
db 'Storage - Serial ATA '
db 06 ; 0x06
2053,7 → 1812,7
db 128 ; 0x80
 
Class3:
db ' ' ;Display - VGA controller
db 'Display - VGA controller '
db 00 ; 0x0
db 'Display - XGA controller '
db 01 ; 0x1
2089,7 → 1848,7
db 02 ; 0x02
db 'Bridge - PCI/MCA '
db 03 ; 0x03
db ' ';Bridge - PCI/PCI
db 'Bridge - PCI/PCI '
db 04 ; 0x04
db 'Bridge - PCMCIA '
db 05 ; 0x05
2099,7 → 1858,7
db 07 ; 0x07
db 'Bridge - RACEway '
db 08 ; 0x08
db ' '; Bridge - Semi-transpar. PCI/PCI
db 'Bridge - Semi-transpar. PCI/PCI '
db 09 ; 0x09
db 'Bridge - InfiniBand/PCI '
db 10 ; 0x0A
2107,13 → 1866,13
db 128 ; 0x80
 
Class7:
db ' ';Communication - Serial
db 'Communication - Serial '
db 00 ; 0x0
db ' ';Communication - Parallel
db 'Communication - Parallel '
db 01 ; 0x1
db 'Communication - Multiport Serial'
db 02 ; 0x2
db ' ';Communication - Modem
db 'Communication - Modem '
db 03 ; 0x3
db 'Communication - GPIB '
db 04 ; 0x4
2123,13 → 1882,13
db 128 ; 0x80
 
Class8:
db ' ' ;System - PIC
db 'System - PIC '
db 00 ; 0x0
db ' ' ;System - DMAC
db 'System - DMAC '
db 01 ; 0x1
db ' ' ;System - Timer
db 'System - Timer '
db 02 ; 0x2
db ' ' ;System - RTC
db 'System - RTC '
db 03 ; 0x3
db 'System - PCI Hot-Plug '
db 04 ; 0x4
2145,7 → 1904,7
db 02 ; 0x2
db 'Input - Scanner '
db 03 ; 0x3
db ' ' ; Input - Gameport
db 'Input - Gameport '
db 04 ; 0x4
db 'Input - misc '
db 128 ; 0x80
2174,13 → 1933,13
db 64 ; 0x40
 
ClassC:
db ' ' ;Serial Bus - FireWire
db 'Serial Bus - FireWire '
db 00 ; 0x0
db 'Serial Bus - ACCESS.bus '
db 01 ; 0x1
db 'Serial Bus - SSA '
db 02 ; 0x2
db ' ' ;Serial Bus - USB/USB2
db 'Serial Bus - USB/USB2 '
db 03 ; 0x3
db 'Serial Bus - Fibre Channel '
db 04 ; 0x4
2188,7 → 1947,7
db 05 ; 0x5
db 'Serial Bus - InfiniBand '
db 06 ; 0x6
db ' ' ;Serial Bus - IPMI
db 'Serial Bus - IPMI '
db 07 ; 0x7
db 'Serial Bus - SERCOS '
db 08 ; 0x8
2214,7 → 1973,7
db 128 ; 0x80
 
ClassE:
db ' ' ;Intelligent I/O - I/O contr.
db 'Intelligent I/O - I/O contr. '
db 00 ; 0x0
 
ClassF:
2245,4 → 2004,4
db 'DSP - Managamant card '
db 32 ; 0x20
db 'DSP - misc '
db 128 ; 0x80
db 128 ; 0x80
/programs/system/pcidev/trunk/macros.inc
123,10 → 123,8
end if
}
 
macro __mov reg,a,b { ; mike.dld
if (~a eq)&(~b eq)
mpack reg,a,b
else if (~a eq)&(b eq)
macro __mov reg,a { ; mike.dld
if ~a eq
mov reg,a
end if
}
143,6 → 141,11
 
 
 
; language for programs
lang fix ru ; ru en fr ge fi
 
 
 
; optimize the code for size
__regs fix <eax,ebx,ecx,edx,esi,edi,ebp,esp>
 
174,7 → 177,7
 
macro mov arg1,arg2
{
if (arg1 in __regs) & ((arg2 eqtype 0) | (arg2 eqtype '0'))
if (arg1 in __regs) & (arg2 eqtype 0)
if (arg2) = 0
xor arg1,arg1
else if (arg2) = 1
218,13 → 221,7
.x_size dd ? ; +42
.y_size dd ? ; +46
.slot_state dw ? ; +50
dw ? ; +52 - reserved
.client_left dd ? ; +54
.client_top dd ? ; +58
.client_width dd ? ; +62
.client_height dd ? ; +66
.wnd_state db ? ; +70
rb (1024-71)
rb (1024-52)
}
struct process_information
 
/programs/system/panel/trunk/build.bat
File deleted
\ No newline at end of file
/programs/system/panel/trunk/build_en.bat
0,0 → 1,4
@erase lang.inc
@echo lang fix en >lang.inc
@fasm @panel.asm @panel
@pause
/programs/system/panel/trunk/build_ru.bat
0,0 → 1,4
@erase lang.inc
@echo lang fix ru >lang.inc
@fasm @panel.asm @panel
@pause
/programs/system/pic4/trunk/pic4.asm
0,0 → 1,679
;
; BACKGROUND SET - Compile with fasm
;
use32
org 0x0
db 'MENUET01' ; 8 byte id
dd 0x01 ; version
dd START ; program start
dd I_END ; image size
dd 0x80000 ; reguired amount of memory
dd 0x80000 ; stack pointer
dd I_Param,0
 
include 'lang.inc'
include 'macros.inc'
 
START:
 
call check_parameters
call draw_window
 
call load_texture
call draw_image
 
still:
 
mov eax,10 ; wait here for event
int 0x40
cmp eax,1
jz red
cmp eax,2
jz key
cmp eax,3
jz button
jmp still
 
key:
mov eax,2
int 0x40
jmp still
 
red:
call draw_window
jmp still
 
button:
mov eax,17
int 0x40
 
shr eax,8
and eax,255
 
cmp eax,101 ; tiled
jne no101
mov eax,15
mov ebx,4
mov ecx,1
int 0x40
mov eax,15
mov ebx,3
int 0x40
jmp still
no101:
 
cmp eax,102 ; stretch
jne no102
mov eax,15
mov ebx,4
mov ecx,2
int 0x40
mov eax,15
mov ebx,3
int 0x40
jmp still
no102:
 
cmp eax,1 ; end program
jnz noproend
or eax,-1
int 0x40
noproend:
 
cmp eax,11
jz bg
cmp eax,12
jz bg
cmp eax,13
jz bg
 
cmp eax,121
jb no_bg_select
cmp eax,133
jg no_bg_select
sub eax,121
shl eax,2
add eax,arrays
mov eax,[eax]
mov [usearray],eax
call load_texture
call draw_image
jmp still
no_bg_select:
 
cmp eax,14+20
jge bg4
 
jmp bg2
 
 
check_parameters:
 
cmp [I_Param],dword 'BOOT'
je @f
ret
@@:
 
call load_texture
 
mov eax,15
mov ebx,1
mov ecx,256
mov edx,256
int 0x40
 
mov eax,15
mov ebx,5
mov ecx,0x40000 ; <<< 0x40000 for blue, 0x40000+1 for red,
; <<< 0x40000+2 for green background at boot
mov edx,0
mov esi,256*3*256
int 0x40
 
mov eax,15
mov ebx,4
mov ecx,2
int 0x40
 
mov eax,15
mov ebx,3
int 0x40
 
mov eax,-1
int 0x40
 
 
 
set_picture:
 
mov eax,image+99-3*16
mov ebx,0x40000+255*3+255*3*256
newpix:
mov ecx,[eax]
mov [ebx],cx
shr ecx,16
mov [ebx+2],cl
add eax,3
sub ebx,3
cmp ebx,0x40002
jge newpix
 
ret
 
 
load_texture:
 
call gentexture
call set_picture
 
ret
 
 
; set background
 
bg:
 
mov edi,0x40000
 
cmp eax,12
jnz bb1
mov edi,0x40000+1
bb1:
cmp eax,13
jnz bb2
mov edi,0x40000+2
bb2:
 
mov eax,15
mov ebx,1
mov ecx,256
mov edx,256
int 0x40
 
mov eax,15
mov ebx,5
mov ecx,edi
mov edx,0
mov esi,256*256*3
int 0x40
 
mov eax,15
mov ebx,3
int 0x40
 
jmp still
 
 
; colored background
 
bg2:
 
push eax
 
mov eax,15
mov ebx,1
mov ecx,8
mov edx,8
int 0x40
 
mov eax,[esp]
 
sub eax,14
shl eax,2
 
mov edx,[colors+eax]
 
mov esi,32*32*4
mov edi,0
mov ecx,0
dbl2:
mov eax,15
mov ebx,2
int 0x40
add ecx,3
inc edi
cmp edi,esi
jb dbl2
 
 
mov eax,15
mov ebx,3
int 0x40
 
jmp still
 
 
; shaped background
 
bg4:
 
sub eax,14+20
shl eax,3
add eax,shape
mov ecx,[eax+0]
mov edx,[eax+4]
 
mov eax,15
mov ebx,1
int 0x40
 
mov eax,15
mov ebx,3
int 0x40
 
jmp still
 
 
; *********************************************
; ******* CELLULAR TEXTURE GENERATION *********
; **** by Cesare Castiglia (dixan/sk/mfx) *****
; ********* dixan@spinningkids.org **********
; *********************************************
; * the algorythm is kinda simple. the color *
; * component for every pixel is evaluated *
; * according to the squared distance from *
; * the closest point in 'ptarray'. *
; *********************************************
 
gentexture:
 
mov ecx,0 ; ycounter
mov edi,0 ; pixel counter
 
mov ebp,[usearray]
 
ylup:
mov ebx,0
 
; call precalcbar
 
xlup:
push edi
mov edi, 0
mov esi, 512000000 ; abnormous initial value :)
 
pixlup:
push esi
; add edi,4
mov eax,ebx ; evaluate first distance
sub eax, [ebp+edi] ; x-x1
call wrappit
imul eax
mov esi, eax ; (x-x1)^2
mov eax, ecx
add edi,4
sub eax, [ebp+edi] ; y-y1
call wrappit
imul eax ; (y-y1)^2
add eax,esi ; (x-x1)^2+(y-y1)^2
pop esi
 
cmp esi,eax
jb ok ; compare and take the smaller one
mov esi,eax
 
ok:
add edi,4
cmp [ebp+edi],dword 777
jne pixlup
 
mov eax,esi ; now evaluate color...
 
; cmp eax,255*24
; jbe ok2
; imul eax,12
; ok2:
 
mov edi,24 ; 50 = max shaded distance
idiv edi
 
pop edi
mov [image+51+edi],eax
add edi,3
 
add ebx,1 ; bounce x loop
cmp ebx,256 ; xsize
jne xlup
 
add ecx,1
cmp ecx,256 ; ysize
jne ylup
 
ret
 
wrappit:
cmp eax,0 ; this makes the texture wrap
jg noabs
neg eax
noabs:
cmp eax,128
jb nowrap
neg eax
add eax,256
nowrap:
ret
 
;precalcbar:
; pusha
; mov eax,1
; mov ebx,ecx
; add ebx,18
; mov ecx,44
; mov edx,0x00000060
; bar:
; add ecx,2
; add edx,0x00020100
; int 0x40
; cmp ecx,298
; jb bar
; popa
; ret
 
; *********************************************
; ******* WINDOW DEFINITIONS AND DRAW *********
; *********************************************
 
 
draw_image:
 
mov eax,7
mov ebx,0x40000
mov ecx,256*65536+255
mov edx,19*65536+65;55
int 0x40
 
ret
 
 
y_add equ 44 ; 30
y_s equ 13
 
y_add2 equ 340 ;325
set equ 0 ;15
 
button_color equ 0A0A0A0h ; 207090 306090h
wnd_color equ 3B0B0B0h ; 34090B0h
 
 
draw_window:
 
mov eax, 12 ; tell os about draw
mov ebx, 1
int 0x40
 
mov eax, 0 ; define and draw window
mov ebx, 220*65536+293
mov ecx, 50*65536+408
mov edx, wnd_color
int 0x40
 
call draw_image
 
mov eax,8 ; Blue button
mov ebx,(set+195+27)*65536+17
mov ecx,y_add*65536+y_s
mov edx,11
mov esi,0x004444cc
int 0x40
mov eax,8 ; Red button
mov ebx,(set+213+27)*65536+17
mov edx,12
mov esi,0x00cc4444
int 0x40
mov eax,8 ; Green button
mov ebx,(set+258)*65536+17
mov edx,13
mov esi,0x0044cc44
int 0x40
 
mov eax, 8 ; tiled
mov ebx, 96*65536+63
mov ecx, y_add*65536+y_s
mov edx, 101
mov esi, button_color
int 0x40
 
mov eax, 8 ; stretch
mov ebx, 160*65536+61
mov edx, 102
int 0x40
 
mov eax, 4 ; window header
mov ebx, 8*65536+8
mov ecx, 0x10ffffff
mov edx, header
mov esi, header.size
int 0x40
 
mov ebx, 220*65536+30
mov ecx, 0
mov edx, apply_text
mov esi, apply_text.size
int 0x40
 
mov ebx, 19*65536+326
mov edx, image_buttons_text
mov esi, image_buttons_text.size
int 0x40
 
mov ebx, 19*65536+(y_add2+27)
mov edx, simple_text
mov esi, simple_text.size
int 0x40
 
mov ecx, (y_add2)*65536+20
mov ebx, (18)*65536+25
mov edx, 121
mov esi, button_color
mov edi, 9
mov eax, 8
@@:
int 0x40
add ebx, 29*65536
inc edx
dec edi
jnz @b
 
 
mov edx, 34+4
mov edi, 4
mov eax, 8
mov ebx, 18*65536+18
mov ecx, y_add*65536+y_s
@@:
int 0x40
inc edx
add ebx, 19*65536
dec edi
jnz @b
 
 
;-----------------------
mov edx,14 ; button number
mov ebx,(18)*65536+17 ; button start x & size
mov ecx,(y_add2+40)*65536+14 ; button start y & size
 
newcb:
mov esi,[(edx-14)*4+colors]
 
mov eax,8
int 0x40
 
inc edx
add ebx,20*65536
add esi,5*256*256
 
cmp edx,27
jnz newcb
;-----------------------
 
mov eax, 4
mov ebx, 8*65536+4+y_add
mov ecx, 0
mov edx, la2
mov esi, la2.size
int 0x40
 
mov eax,12
mov ebx,2
int 0x40
 
ret
 
 
 
; DATA SECTION
 
lsz header,\
ru, "ƒ¥­¥à â®à ä®­  à ¡®ç¥£® á⮫ ",\
en, "BACKGROUND"
 
lsz apply_text,\
ru, "à¨¬¥­¨âì:",\
en, "Apply:"
 
lsz image_buttons_text,\
ru, "‚ë¡¥à¨â¥ ®¡à §¥æ:",\
en, "Select pattern:"
 
lsz simple_text,\
ru, "Ž¤­®æ¢¥â­ë© ä®­:",\
en, "Single-color background:"
 
lsz la2,\
ru, " ‡€ŒŽ‘’ˆ’œ €‘’Ÿ“’œ",\
en, " TILED STRETCH"
 
 
xx db 'x'
 
colors:
dd 0x770000
dd 0x007700
dd 0x000077
dd 0x777700
dd 0x770077
dd 0x007777
dd 0x777777
dd 0x335577
dd 0x775533
dd 0x773355
dd 0x553377
dd 0x000000
dd 0xcccccc
 
 
shape:
 
dd 1024,64
dd 1024,32
dd 2048,32
dd 4096,32
 
dd 512,16
dd 1024,16
dd 2048,16
dd 4096,16
 
dd 64,32
dd 64,16
dd 32,32
dd 8,8
dd 16,16
dd 64,64
 
usearray dd ptarray
 
arrays dd ptarray,ptarray2,ptarray3,ptarray4,ptarray5,ptarray6
dd ptarray7,ptarray8,ptarray9
 
ptarray:
 
dd 150,50
dd 120,30
dd 44,180
dd 50,66
dd 27,6
dd 95,212
dd 128,177
dd 201,212
dd 172,201
dd 250,100
dd 24,221
dd 11,123
dd 248,32
dd 34,21
dd 777 ; <- end of array
 
ptarray2:
 
dd 0,0,50,50,100,100,150,150,200,200,250,250
dd 50,150,150,50,200,100,100,200
dd 777
 
ptarray3:
 
dd 55,150,150,55,200,105,105,200
dd 30,30,220,220
dd 777
 
ptarray4:
 
dd 196,0,196,64,196,128,196,196
dd 64,32,64,96,64,150,64,228
dd 777
 
ptarray5:
 
dd 196,0,196,64,196,128,196,196
dd 64,0,64,64,64,128,64,196
dd 777
 
ptarray6:
 
dd 49,49,128,50,210,50
dd 50,128,128,128,210,128
dd 50,210,128,210,210,210
 
dd 777
 
ptarray7:
 
dd 0,0
dd 196,196,64,64
dd 128,0
dd 0,128
dd 64,64,196,64
dd 196,196,64,196
dd 128,128
 
dd 777
 
ptarray8:
 
dd 0, 128
dd 0, 128
dd 128, 0
dd 0, 128
dd 128, 0
dd 0, 128
dd 128, 0
dd 0, 128
dd 128, 0
dd 128, 128
 
dd 777
 
ptarray9:
 
 
dd 0,248,64,128,128,64,196,48,160,160,94,224,240,96,5,5,777
 
 
 
I_Param:
 
image:
 
 
I_END:
Property changes:
Added: svn:eol-style
+native
\ No newline at end of property
/programs/system/pic4/trunk/build_en.bat
0,0 → 1,4
@erase lang.inc
@echo lang fix en >lang.inc
@fasm pic4.asm pic4
@pause
/programs/system/pic4/trunk/build_ru.bat
0,0 → 1,4
@erase lang.inc
@echo lang fix ru >lang.inc
@fasm pic4.asm pic4
@pause
/programs/system/pic4/trunk/macros.inc
0,0 → 1,266
; new application structure
macro meos_app_start
{
use32
org 0x0
 
db 'MENUET01'
dd 0x01
dd __start
dd __end
dd __memory
dd __stack
 
if used __params & ~defined __params
dd __params
else
dd 0x0
end if
 
dd 0x0
}
MEOS_APP_START fix meos_app_start
 
macro code
{
__start:
}
CODE fix code
 
macro data
{
__data:
}
DATA fix data
 
macro udata
{
if used __params & ~defined __params
__params:
db 0
__end:
rb 255
else
__end:
end if
__udata:
}
UDATA fix udata
 
macro meos_app_end
{
align 32
rb 2048
__stack:
__memory:
}
MEOS_APP_END fix meos_app_end
 
 
; macro for defining multiline text data
struc mstr [sstring]
{
forward
local ssize
virtual at 0
db sstring
ssize = $
end virtual
dd ssize
db sstring
common
dd -1
}
 
 
; strings
macro sz name,[data] { ; from MFAR [mike.dld]
common
if used name
label name
end if
forward
if used name
db data
end if
common
if used name
.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)&(lang eq lng)
db data
end if
common
if used name
.size = $-name
end if
}
 
 
 
; easy system call macro
macro mpack dest, hsrc, lsrc
{
if (hsrc eqtype 0) & (lsrc eqtype 0)
mov dest, (hsrc) shl 16 + lsrc
else
if (hsrc eqtype 0) & (~lsrc eqtype 0)
mov dest, (hsrc) shl 16
add dest, lsrc
else
mov dest, hsrc
shl dest, 16
add dest, lsrc
end if
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
}
 
macro mcall a,b,c,d,e,f { ; mike.dld
__mov eax,a
__mov ebx,b
__mov ecx,c
__mov edx,d
__mov esi,e
__mov edi,f
int 0x40
}
 
 
 
 
 
 
; optimize the code for size
__regs fix <eax,ebx,ecx,edx,esi,edi,ebp,esp>
 
macro add arg1,arg2
{
if (arg2 eqtype 0)
if (arg2) = 1
inc arg1
else
add arg1,arg2
end if
else
add arg1,arg2
end if
}
 
macro sub arg1,arg2
{
if (arg2 eqtype 0)
if (arg2) = 1
dec arg1
else
sub arg1,arg2
end if
else
sub arg1,arg2
end if
}
 
macro mov arg1,arg2
{
if (arg1 in __regs) & (arg2 eqtype 0)
if (arg2) = 0
xor arg1,arg1
else if (arg2) = 1
xor arg1,arg1
inc arg1
else if (arg2) = -1
or arg1,-1
else if (arg2) > -128 & (arg2) < 128
push arg2
pop arg1
else
mov arg1,arg2
end if
else
mov arg1,arg2
end if
}
 
 
macro struct name
{
virtual at 0
name name
sizeof.#name = $ - name
end virtual
}
 
; 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
rb (1024-52)
}
struct process_information
 
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
 
 
; constants
 
; events
EV_IDLE = 0
EV_TIMER = 0
EV_REDRAW = 1
EV_KEY = 2
EV_BUTTON = 3
EV_EXIT = 4
EV_BACKGROUND = 5
EV_MOUSE = 6
EV_IPC = 7
EV_STACK = 8
 
; event mask bits for function 40
EVM_REDRAW = 1b
EVM_KEY = 10b
EVM_BUTTON = 100b
EVM_EXIT = 1000b
EVM_BACKGROUND = 10000b
EVM_MOUSE = 100000b
EVM_IPC = 1000000b
EVM_STACK = 10000000b
Property changes:
Added: svn:eol-style
+native
\ No newline at end of property
/programs/system/setup/trunk/build.bat
File deleted
\ No newline at end of file
/programs/system/setup/trunk/build_en.bat
0,0 → 1,4
@erase lang.inc
@echo lang fix en >lang.inc
@fasm setup.asm setup
@pause
/programs/system/setup/trunk/build_ru.bat
0,0 → 1,4
@erase lang.inc
@echo lang fix ru >lang.inc
@fasm setup.asm setup
@pause
/programs/system/setup/trunk/macros.inc
143,6 → 143,9
 
 
 
 
 
 
; optimize the code for size
__regs fix <eax,ebx,ecx,edx,esi,edi,ebp,esp>
 
174,7 → 177,7
 
macro mov arg1,arg2
{
if (arg1 in __regs) & ((arg2 eqtype 0) | (arg2 eqtype '0'))
if (arg1 in __regs) & (arg2 eqtype 0)
if (arg2) = 0
xor arg1,arg1
else if (arg2) = 1
218,13 → 221,7
.x_size dd ? ; +42
.y_size dd ? ; +46
.slot_state dw ? ; +50
dw ? ; +52 - reserved
.client_left dd ? ; +54
.client_top dd ? ; +58
.client_width dd ? ; +62
.client_height dd ? ; +66
.wnd_state db ? ; +70
rb (1024-71)
rb (1024-52)
}
struct process_information
 
/programs/system/cpuspeed/trunk/build_en.bat
0,0 → 1,4
@erase lang.inc
@echo lang fix en >lang.inc
@fasm cpuspeed.asm cpuspeed
@pause
/programs/system/cpuspeed/trunk/build_ru.bat
0,0 → 1,4
@erase lang.inc
@echo lang fix ru >lang.inc
@fasm cpuspeed.asm cpuspeed
@pause
/programs/system/cpuspeed/trunk/cpuspeed.asm
0,0 → 1,153
;
; CPU SPEED INDICATIOR
;
; Compile with FASM for Menuet
;
 
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
 
include 'lang.inc'
include 'macros.inc'
 
START: ; start of execution
 
mov eax,18
mov ebx,5
int 0x40
 
xor edx,edx
mov ebx,1000000
div ebx
mov ebx,10
mov edi,text+19
mov ecx,5
newnum:
xor edx,edx
mov ebx,10
div ebx
add dl,48
mov [edi],dl
sub edi,1
loop newnum
 
call draw_window ; at first, draw the window
 
still:
 
mov eax,10 ; wait here for event
int 0x40
 
cmp eax,1 ; redraw request ?
jz red
cmp eax,2 ; key in buffer ?
jz key
cmp eax,3 ; button in buffer ?
jz button
 
jmp still
 
red: ; redraw
call draw_window
jmp still
 
key: ; key
mov eax,2 ; just read it and ignore
int 0x40
jmp still
 
button: ; button
mov eax,17 ; get id
int 0x40
 
cmp ah,1 ; button id=1 ?
jnz still
mov eax,-1 ; close this program
int 0x40
 
 
; *********************************************
; ******* WINDOW DEFINITIONS AND DRAW ********
; *********************************************
 
 
draw_window:
 
mov eax,12 ; function 12:tell os about windowdraw
mov ebx,1 ; 1, start of draw
int 0x40
 
mov eax,48
mov ebx,3
mov ecx,sc
mov edx,sizeof.system_colors
int 0x40
 
; DRAW WINDOW
mov eax,0 ; function 0 : define and draw window
mov ebx,100*65536+200 ; [x start] *65536 + [x size]
mov ecx,100*65536+65 ; [y start] *65536 + [y size]
mov edx,[sc.work] ; color of work area RRGGBB,8->color glide
mov esi,[sc.grab] ; color of grab bar RRGGBB,8->color
or esi,0x80000000
mov edi,[sc.frame] ; color of frames RRGGBB
int 0x40
 
; WINDOW LABEL
mov eax,4 ; function 4 : write text to window
mov ebx,8*65536+8 ; [x start] *65536 + [y start]
mov ecx,[sc.grab_text] ; color of text RRGGBB
or ecx,0x10000000
mov edx,labelt ; pointer to text beginning
mov esi,labellen-labelt ; text length
int 0x40
; CLOSE BUTTON
mov eax,8 ; function 8 : define and draw button
mov ebx,(200-17)*65536+12 ; [x start] *65536 + [x size]
mov ecx,5*65536+12 ; [y start] *65536 + [y size]
mov edx,1 ; button id
mov esi,[sc.grab_button] ; button color RRGGBB
int 0x40
 
mov ebx,25*65536+35 ; draw info text with function 4
mov ecx,[sc.work_text]
mov edx,text
mov esi,40
newline:
mov eax,4
int 0x40
add ebx,10
add edx,40
cmp [edx],byte 'x'
jnz newline
 
mov eax,12 ; function 12:tell os about windowdraw
mov ebx,2 ; 2, end of draw
int 0x40
 
ret
 
 
; DATA AREA
 
 
text:
db 'CPU RUNNING AT MHZ '
db 'x' ; <- END MARKER, DONT DELETE
 
labelt:
db 'CPU SPEED'
labellen:
 
I_END:
 
sc system_colors
 
Property changes:
Added: svn:eol-style
+native
\ No newline at end of property
/programs/system/cpuspeed/trunk/macros.inc
0,0 → 1,266
; new application structure
macro meos_app_start
{
use32
org 0x0
 
db 'MENUET01'
dd 0x01
dd __start
dd __end
dd __memory
dd __stack
 
if used __params & ~defined __params
dd __params
else
dd 0x0
end if
 
dd 0x0
}
MEOS_APP_START fix meos_app_start
 
macro code
{
__start:
}
CODE fix code
 
macro data
{
__data:
}
DATA fix data
 
macro udata
{
if used __params & ~defined __params
__params:
db 0
__end:
rb 255
else
__end:
end if
__udata:
}
UDATA fix udata
 
macro meos_app_end
{
align 32
rb 2048
__stack:
__memory:
}
MEOS_APP_END fix meos_app_end
 
 
; macro for defining multiline text data
struc mstr [sstring]
{
forward
local ssize
virtual at 0
db sstring
ssize = $
end virtual
dd ssize
db sstring
common
dd -1
}
 
 
; strings
macro sz name,[data] { ; from MFAR [mike.dld]
common
if used name
label name
end if
forward
if used name
db data
end if
common
if used name
.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)&(lang eq lng)
db data
end if
common
if used name
.size = $-name
end if
}
 
 
 
; easy system call macro
macro mpack dest, hsrc, lsrc
{
if (hsrc eqtype 0) & (lsrc eqtype 0)
mov dest, (hsrc) shl 16 + lsrc
else
if (hsrc eqtype 0) & (~lsrc eqtype 0)
mov dest, (hsrc) shl 16
add dest, lsrc
else
mov dest, hsrc
shl dest, 16
add dest, lsrc
end if
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
}
 
macro mcall a,b,c,d,e,f { ; mike.dld
__mov eax,a
__mov ebx,b
__mov ecx,c
__mov edx,d
__mov esi,e
__mov edi,f
int 0x40
}
 
 
 
 
 
 
; optimize the code for size
__regs equ <eax,ebx,ecx,edx,esi,edi,ebp,esp>
 
macro add arg1,arg2
{
if (arg2 eqtype 0)
if (arg2) = 1
inc arg1
else
add arg1,arg2
end if
else
add arg1,arg2
end if
}
 
macro sub arg1,arg2
{
if (arg2 eqtype 0)
if (arg2) = 1
dec arg1
else
sub arg1,arg2
end if
else
sub arg1,arg2
end if
}
 
macro mov arg1,arg2
{
if (arg1 in __regs) & (arg2 eqtype 0)
if (arg2) = 0
xor arg1,arg1
else if (arg2) = 1
xor arg1,arg1
inc arg1
else if (arg2) = -1
or arg1,-1
else if (arg2) > -128 & (arg2) < 128
push arg2
pop arg1
else
mov arg1,arg2
end if
else
mov arg1,arg2
end if
}
 
 
macro struct name
{
virtual at 0
name name
sizeof.#name = $ - name
end virtual
}
 
; 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
rb (1024-52)
}
struct process_information
 
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
 
 
; constants
 
; events
EV_IDLE = 0
EV_TIMER = 0
EV_REDRAW = 1
EV_KEY = 2
EV_BUTTON = 3
EV_EXIT = 4
EV_BACKGROUND = 5
EV_MOUSE = 6
EV_IPC = 7
EV_STACK = 8
 
; event mask bits for function 40
EVM_REDRAW = 1b
EVM_KEY = 10b
EVM_BUTTON = 100b
EVM_EXIT = 1000b
EVM_BACKGROUND = 10000b
EVM_MOUSE = 100000b
EVM_IPC = 1000000b
EVM_STACK = 10000000b
Property changes:
Added: svn:eol-style
+native
\ No newline at end of property
/programs/system/run/trunk/editbox.inc
File deleted
\ No newline at end of file
/programs/system/run/trunk/run.txt
File deleted
\ No newline at end of file
/programs/system/run/trunk/txtbut.inc
File deleted
\ No newline at end of file
/programs/system/run/trunk/build_en.bat
1,5 → 1,4
@erase lang.inc
@echo lang fix en >lang.inc
@fasm run.asm run
@erase lang.inc
@pause
/programs/system/run/trunk/build_ru.bat
1,5 → 1,4
@erase lang.inc
@echo lang fix ru >lang.inc
@fasm run.asm run
@erase lang.inc
@pause
/programs/system/run/trunk/macros.inc
1,17 → 1,5
;--- ¤à㣨¥ ¬ ªà®áë ---
include 'editbox.inc'
include 'txtbut.inc'
;include 'gp.inc'
;include 'label.inc'
;include 'checkbox.inc'
;include 'file_sys.inc'
;include 'textwork.inc'
;include 'ini.inc'
 
include 'lang.inc'
 
;--- § £®«®¢®ª ---
macro meos_header par_buf,cur_dir_buf
; new application structure
macro meos_app_start
{
use32
org 0x0
18,294 → 6,261
 
db 'MENUET01'
dd 0x01
dd __app_start
dd __app_end
dd __app_end
dd __app_end
if <par_buf> eq <>
dd 0x0
dd __start
dd __end
dd __memory
dd __stack
 
if used __params & ~defined __params
dd __params
else
dd par_buf
end if
if <cur_dir_buf> eq <>
dd 0x0
else
dd cur_dir_buf
end if
}
 
;--- ®¯à¥¤¥«¨âì â®çªã ¢å®¤  ---
macro app_start
{
__app_start:
dd 0x0
}
MEOS_APP_START fix meos_app_start
 
;--- ®¯à¥¤¥«¨âì ª®­¥æ ¯à¨«®¦¥­¨ï ¨ à §¬¥à á⥪  ---
macro app_end stack_size
macro code
{
if <stack_size> eq <>
rb 1024
else
rb stack_size
end if
__app_end:
__start:
}
CODE fix code
 
;--- § ¢¥àè¨âì ⥪ã騩 ¯®â®ª ---
macro app_close
macro data
{
xor eax,eax
dec eax
int 0x40
__data:
}
DATA fix data
 
;--- ¯®«ãç¨âì ª®¤ ­ ¦ â®© ª« ¢¨è¨ ---
macro get_key
macro udata
{
mov eax,2
int 0x40
if used __params & ~defined __params
__params:
db 0
__end:
rb 255
else
__end:
end if
__udata:
}
UDATA fix udata
 
;--- ¯®«ãç¨âì ª®¤ ­ ¦ â®© ª­®¯ª¨ ---
macro get_pressed_button
macro meos_app_end
{
mov eax,17
int 0x40
align 32
rb 2048
__stack:
__memory:
}
MEOS_APP_END fix meos_app_end
 
;--- á®®¡é¨âì á¨á⥬¥ ® ­ ç «¥ ¯¥à¥à¨á®¢ª¨ ®ª­  ---
macro start_draw_window
{
mov eax,12
xor ebx,ebx
inc ebx
int 0x40
}
 
;--- á®®¡é¨âì á¨á⥬¥ ® § ¢¥à襭¨¨ ¯¥à¥à¨á®¢ª¨ ®ª­  ---
macro stop_draw_window
; macro for defining multiline text data
struc mstr [sstring]
{
mov eax,12
mov ebx,2
int 0x40
forward
local ssize
virtual at 0
db sstring
ssize = $
end virtual
dd ssize
db sstring
common
dd -1
}
 
;--- ãáâ ­®¢¨âì ¬ áªã ®¦¨¤ ¥¬ëå ᮡë⨩ ---
macro set_events_mask mask
{
mov eax,40
mov ebx,mask
int 0x40
}
 
;--- ¯®«ãç¨âì ¨­ä®à¬ æ¨î ® ¯à®æ¥áᥠ---
macro get_procinfo proc_inf_buf,slot_num
{
mov eax,9
mov ebx,proc_inf_buf
if <slot_num> eq <>
xor ecx,ecx
dec ecx
else
mov ecx,slot_num
; strings
macro sz name,[data] { ; from MFAR [mike.dld]
common
if used name
label name
end if
int 0x40
forward
if used name
db data
end if
common
if used name
.size = $-name
end if
}
 
macro get_sys_colors col_buf
{
mov eax,48
mov ebx,3
mov ecx,col_buf
mov edx,40
int 0x40
macro lsz name,[lng,data] { ; from MFAR [mike.dld]
common
if used name
label name
end if
forward
if (used name)&(lang eq lng)
db data
end if
common
if used name
.size = $-name
end if
}
 
macro get_grab_area
{
mov eax,48
mov ebx,7
int 0x40
}
 
macro get_scin_height
{
mov eax,48
mov ebx,4
int 0x40
}
 
macro min_window
; easy system call macro
macro mpack dest, hsrc, lsrc
{
mov eax,18
mov ebx,10
int 0x40
if (hsrc eqtype 0) & (lsrc eqtype 0)
mov dest, (hsrc) shl 16 + lsrc
else
if (hsrc eqtype 0) & (~lsrc eqtype 0)
mov dest, (hsrc) shl 16
add dest, lsrc
else
mov dest, hsrc
shl dest, 16
add dest, lsrc
end if
end if
}
 
macro activ_window slot_n
{
mov eax,18
mov ebx,3
if <slot_n> eq <>
else
mov ecx,slot_n
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
int 0x40
}
 
macro get_active_window
{
mov eax,18
mov ebx,7
macro mcall a,b,c,d,e,f { ; mike.dld
__mov eax,a
__mov ebx,b
__mov ecx,c
__mov edx,d
__mov esi,e
__mov edi,f
int 0x40
}
 
macro delay time
 
 
 
 
 
; optimize the code for size
__regs fix <eax,ebx,ecx,edx,esi,edi,ebp,esp>
 
macro add arg1,arg2
{
mov eax,5
if <time> eq <>
if (arg2 eqtype 0)
if (arg2) = 1
inc arg1
else
mov ebx,time
add arg1,arg2
end if
int 0x40
else
add arg1,arg2
end if
}
 
;--- ®¦¨¤ âì ᮡëâ¨ï ---
macro wait_event redraw,key,button,mouse,ipc,other
macro sub arg1,arg2
{
mov eax,10
int 0x40
dec ax
if <redraw> eq <>
if (arg2 eqtype 0)
if (arg2) = 1
dec arg1
else
jz redraw
sub arg1,arg2
end if
dec ax
if <key> eq <>
else
jz key
sub arg1,arg2
end if
dec ax
if <button> eq <>
}
 
macro mov arg1,arg2
{
if (arg1 in __regs) & (arg2 eqtype 0)
if (arg2) = 0
xor arg1,arg1
else if (arg2) = 1
xor arg1,arg1
inc arg1
else if (arg2) = -1
or arg1,-1
else if (arg2) > -128 & (arg2) < 128
push arg2
pop arg1
else
jz button
mov arg1,arg2
end if
dec ax
dec ax
dec ax
if <mouse> eq <>
else
jz mouse
mov arg1,arg2
end if
if <ipc> eq <>
else
dec ax
jz ipc
end if
if <other> eq <>
jmp still
else
jmp other
end if
}
 
;--- ¯®«ãç¨âì à §¬¥àë íªà ­  ---
macro get_screen_size
{
mov eax,14
int 0x40
}
 
macro get_screen_prop struc_ptr
macro struct name
{
mov eax,61
push eax eax
xor ebx,ebx
inc ebx
int 0x40
mov [struc_ptr],eax
pop eax
inc ebx
int 0x40
mov [struc_ptr+4],ax
pop eax
inc ebx
int 0x40
mov [struc_ptr+6],eax
virtual at 0
name name
sizeof.#name = $ - name
end virtual
}
 
macro resize_mem mem_size
; structures used in MeOS
struc process_information
{
mov eax,64
xor ebx,ebx
inc ebx
if <mem_size> eq <>
else
mov ecx,mem_size
end if
int 0x40
.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
 
evm_redraw equ 1
evm_key equ 10b
evm_button equ 100b
evm_mouse equ 100000b
evm_ipc equ 1000000b
 
struc procinfo
struc system_colors
{
.takts_per_second: dd ?
.window_stack_pos: dw ?
.slot_number: dw ?
dw ?
.name: rb 11
.align: db ?
.addres: dd ?
.use_mem: dd ?
.pid: dd ?
.left: dd ?
.top: dd ?
.width: dd ?
.height: dd ?
.slot_state: dw ?
rb (1024-56)
.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
 
struc sys_color_table
{
.frames: dd ? ;+0
.grab: dd ? ;+4
.grab_button: dd ? ;+8
.grab_button_text: dd ? ;+12
.grab_text: dd ? ;+16
.work: dd ? ;+20
.work_button: dd ?;+24
.work_button_text: dd ? ;+28
.work_text: dd ? ;+32
.work_graph: dd ? ;+36
}
 
struc screen_size
{
.height: dw ?
.width: dw ?
}
; constants
 
struc screen_prop
{
.height: dw ? ;+0
.width: dw ? ;+2
.bitspp: dw ? ;+4
.bytesps: dd ?;+6
}
; events
EV_IDLE = 0
EV_TIMER = 0
EV_REDRAW = 1
EV_KEY = 2
EV_BUTTON = 3
EV_EXIT = 4
EV_BACKGROUND = 5
EV_MOUSE = 6
EV_IPC = 7
EV_STACK = 8
 
struc ipc_buffer size
{
.block: dd ?
.in_use: dd ?
.messages: rb size
}
 
;--- æ¢¥â  ---
cl_white=0xffffff
cl_black=0x000000
; event mask bits for function 40
EVM_REDRAW = 1b
EVM_KEY = 10b
EVM_BUTTON = 100b
EVM_EXIT = 1000b
EVM_BACKGROUND = 10000b
EVM_MOUSE = 100000b
EVM_IPC = 1000000b
EVM_STACK = 10000000b
/programs/system/run/trunk/run.asm
1,261 → 1,198
window_y=88
;window_x=320
window_x=450
include 'macros.inc'
meos_header par
use_edit_box
use_txt_button
app_start
cmp [par],byte 0
jne read_par
set_events_mask evm_mouse+evm_button+evm_key+evm_redraw
red:
get_sys_colors sc
set_sys_colors_txt_button run_but,sc
push dword [sc.work_graph]
pop [input_fn.focus_border_color]
; <--- description --->
; compiler: FASM 1.54
; name: MenuetOS RUN
; version: 0.02
; last update: 28/09/2004
; written by: Ivan Poddubny
; e-mail: ivan-yar@bk.ru
 
 
; <--- include all MeOS stuff --->
include "lang.inc"
include "macros.inc"
;;;lang fix en
 
 
; <--- start of MenuetOS application --->
MEOS_APP_START
 
;include "DEBUG.INC"
 
; <--- start of code --->
CODE
call draw_window ; at first create and draw the window
 
wait_event: ; main cycle
mcall 10
 
cmp eax, 1 ; if event == 1
je redraw ; jump to redraw handler
cmp eax, 2 ; else if event == 2
je key ; jump to key handler
cmp eax, 3 ; else if event == 3
je button ; jump to button handler
 
jmp wait_event ; else return to the start of main cycle
 
 
redraw: ; redraw event handler
call draw_window
still:
wait_event red,key,button,mouse,,still
key:
get_key
jmp wait_event
 
 
key: ; key event handler
mcall 2
 
cmp ah,13
je run
key_edit_box input_fn
jmp still
button:
get_pressed_button
dec ah
jz close
dec ah
jz run
jmp still
mouse:
mouse_edit_box input_fn
jmp still
je _run
cmp ah, 8
je .backspace
 
read_par:
mov esi,par
mov edi,fn
mov ecx,256
rep movsb
run:
mov bl, ah
mov eax, [position]
mov [filename + eax], bl
inc [position]
call draw_string
 
jmp wait_event
 
.backspace:
xor eax,eax
mov edi,file_info.name
mov ecx,512
rep stosb
mov edi,run_par
mov ecx,256
rep stosb
cmp [position], eax
je wait_event
dec [position]
call draw_string
jmp wait_event
 
mov esi,fn
mov edi,file_info.name
cmp [esi],byte '"'
je copy_fn_with_spaces
copy_fn:
cmp [esi],byte ' '
je .stop
cmp [esi],byte 0
je .stop
mov al,[esi]
mov [edi],al
inc esi
inc edi
jmp copy_fn
.stop:
 
jmp copy_par
button: ; button event handler
mcall 17
 
copy_fn_with_spaces:
inc esi
@@:
cmp [esi],byte '"'
je .stop
cmp [esi],byte 0
je .stop
mov al,[esi]
mov [edi],al
inc esi
inc edi
jmp @b
.stop:
cmp ah, 10
je _run
 
copy_par:
@@:
inc esi
cmp [esi],byte ' '
je @b
mov edi,run_par
@@:
cmp [esi],byte 0
je .stop
mov al,[esi]
mov [edi],al
inc esi
inc edi
jmp @b
.stop:
dec ah
jne wait_event ; return if button id != 1
 
mov eax,70
mov ebx,file_info
_exit:
or eax, -1 ; exit application
int 0x40
 
;cmp eax,0
;jg error
bt eax,31
je error
jmp still
close:
app_close
 
error:
_run:
mcall 58, fileinfo
; dps "58th function returned "
; dpd eax
; newline
jmp _exit
 
macro cmp_err code,text_ptr
{
cmp al,code
jne @f
mov [status],text_ptr
;jmp .draw_status
@@:
}
neg eax
 
;test al,al
;jz close
draw_window:
mcall 12, 1
 
cmp_err 3,bad_file_sys
mcall 14
and eax, 0xFFFF
sub eax, 100
shl eax, 16
add eax, 80
mov ecx, eax
 
cmp_err 5,file_not_find
mov ebx, 148*65536+400 ; (window_cx)*65536+(window_sx)
mov edx, 0x03DDDDDD ; work area color & window type 3
mcall 0
 
cmp_err 9,bad_fat_table
mov ebx, 8*65536+8 ; coordinates
mov ecx, 0x10ffffff ; color & font N1
mov edx, header ; address of text
mov esi, header.size ; length of text
mcall 4
 
cmp_err 10,acces_denyied
mpack ebx, 10, 26
mov ecx, 0
mov edx, message
mov esi, message.size
mcall
 
cmp_err 11,device_error
mpack ebx, 385-(runbtn.size*6), runbtn.size*6+4
mpack ecx, 56, 14
mov edx, 10
mov esi, 0xa0a0a0
mcall 8
 
cmp_err 30,out_of_memory
; mpack ebx, 385-runbtn.size*6-findbtn.size*6-8, findbtn.size*6+4
; inc edx
; mcall 8
 
cmp_err 31,file_not_executable
; mpack ebx, 388-runbtn.size*6-findbtn.size*6-7, 59
; mov ecx, 0
; mov edx, findbtn
; mov esi, findbtn.size
; mcall 4
 
cmp_err 32,many_processes
mpack ebx, 388-runbtn.size*6, 59
mov ecx, 0
mov edx, runbtn
mov esi, runbtn.size
mcall 4
 
.draw_status:
call draw_status
jmp still
call draw_string
 
draw_window:
start_draw_window
get_screen_size
mov cx,ax
sub cx,window_y+20
shl ecx,16
mov cx,window_y
shr eax,16
mov bx,ax
sub bx,window_x
shl ebx,15
mov bx,window_x
mov edx,[sc.work]
or edx,0x03000000
xor eax,eax
xor esi,esi
xor edi,edi
int 0x40
mcall 12, 2
ret
 
get_procinfo app
 
mov ax,[app.width]
sub ax,20
mov [input_fn.width],ax
mov [run_but.width],ax
draw_string:
mpack ebx, 10, 380
mpack ecx, 38, 14
mov edx, 0xA0A0A0
mcall 13
 
mov bx,5
shl ebx,16
mov bx,ax
add bx,15
mov cx,70
push cx
shl ecx,16
pop cx
mov edx,[sc.work_graph]
mov eax,38
int 0x40
mpack ebx, 14, 41
mov ecx, 0
mov edx, filename
mov esi, [position]
mcall 4
ret
 
draw_edit_box input_fn
draw_txt_button run_but
 
call draw_status_text
 
stop_draw_window
ret
; <--- initialised data --->
DATA
 
draw_status:
mov ebx,5*65536+(window_x-5-5)
mov ecx,(window_y-16)*65536+12
mov edx,[sc.work]
mov eax,13
int 0x40
draw_status_text:
mov edx,[status]
xor esi,esi
@@:
cmp [edx+esi],byte 0
je @f
inc esi
jmp @b
@@:
mov eax,4
mov ebx,10*65536+(window_y-14)
mov ecx,[sc.work_text]
int 0x40
ret
position dd filename.size
 
run_but txt_button 0,10,15,50,2,0,0,run_but_text,
if lang eq ru
run_but_text db '‡€“‘’ˆ’œ',0
else
run_but_text db 'RUN',0
end if
input_fn edit_box 0,10,30,0xffffff,0,0xaaaaaa,0,511,fn,ed_focus+\
ed_always_focus
lsz header,\
ru, "‡ ¯ã᪠¯à®£à ¬¬ë",\
en, "Start program"
 
if lang eq ru
hello db '‚¢¥¤¨â¥ ¯®«­ë© ¯ãâì ª ä ©«ã ¨ ­ ¦¬¨â¥ Enter',0
bad_file_sys db '¥¨§¢¥áâ­ ï ä ©«®¢ ï á¨á⥬ ',0 ; 3
file_not_find db '” ©« ­¥ ­ ©¤¥­',0 ; 5
bad_fat_table db '’ ¡«¨æ  FAT à §àã襭 ',0 ; 9
acces_denyied db '„®áâ㯠§ ¯à¥é¥­',0 ; 10
device_error db 'Žè¨¡ª  ãáâனá⢠',0 ; 11
out_of_memory db '¥¤®áâ â®ç­® ¯ ¬ïâ¨',0 ; 30
file_not_executable db '” ©« ­¥ ï¥âáï ¨á¯®«­ï¥¬ë¬',0 ; 31
many_processes db '‘«¨èª®¬ ¬­®£® ¯à®æ¥áᮢ',0 ; 32
else
hello db 'Enter full path to file and press <Enter>',0
bad_file_sys db 'Unknown file system',0 ; 3
file_not_find db 'File not found',0 ; 5
bad_fat_table db 'FAT table corrupted',0 ; 9
acces_denyied db 'Access denied',0 ; 10
device_error db 'Device error',0 ; 11
out_of_memory db 'Out of memory',0 ; 30
file_not_executable db 'File is not executable',0 ; 31
many_processes db 'Too many processes',0 ; 32
end if
lsz message,\
ru, "‚¢¥¤¨â¥ ¯ãâì ª ä ©«ã:",\
en, "Enter path to file:"
 
status dd hello
; lsz findbtn,\
; ru, " ©â¨...",\
; en, "Find..."
 
file_info:
.mode dd 7
.flags dd 0
.par dd run_par
dd 0,0
.name rb 512
lsz runbtn,\
ru, "‡ ¯ãáâ¨âì",\
en, "Run"
 
flags dw ?
 
fn rb 512
fileinfo:
.mode dd 16
dd 0
.param dd 0
dd 0
.workarea dd workarea
 
sc sys_color_table
app procinfo
run_par rb 256
par rb 256
app_end
sz filename, "/rd/1/"
rb 122
 
 
; <--- uninitialised data --->
UDATA
workarea rb 4096
 
 
MEOS_APP_END
; <--- end of MenuetOS application --->
/programs/system/sysmeter/trunk/build_en.bat
0,0 → 1,4
@erase lang.inc
@echo lang fix en >lang.inc
@fasm sysmeter.asm sysmeter
@pause
/programs/system/sysmeter/trunk/build_ru.bat
0,0 → 1,4
@erase lang.inc
@echo lang fix ru >lang.inc
@fasm sysmeter.asm sysmeter
@pause
/programs/system/sysmeter/trunk/macros.inc
0,0 → 1,266
; new application structure
macro meos_app_start
{
use32
org 0x0
 
db 'MENUET01'
dd 0x01
dd __start
dd __end
dd __memory
dd __stack
 
if used __params & ~defined __params
dd __params
else
dd 0x0
end if
 
dd 0x0
}
MEOS_APP_START fix meos_app_start
 
macro code
{
__start:
}
CODE fix code
 
macro data
{
__data:
}
DATA fix data
 
macro udata
{
if used __params & ~defined __params
__params:
db 0
__end:
rb 255
else
__end:
end if
__udata:
}
UDATA fix udata
 
macro meos_app_end
{
align 32
rb 2048
__stack:
__memory:
}
MEOS_APP_END fix meos_app_end
 
 
; macro for defining multiline text data
struc mstr [sstring]
{
forward
local ssize
virtual at 0
db sstring
ssize = $
end virtual
dd ssize
db sstring
common
dd -1
}
 
 
; strings
macro sz name,[data] { ; from MFAR [mike.dld]
common
if used name
label name
end if
forward
if used name
db data
end if
common
if used name
.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)&(lang eq lng)
db data
end if
common
if used name
.size = $-name
end if
}
 
 
 
; easy system call macro
macro mpack dest, hsrc, lsrc
{
if (hsrc eqtype 0) & (lsrc eqtype 0)
mov dest, (hsrc) shl 16 + lsrc
else
if (hsrc eqtype 0) & (~lsrc eqtype 0)
mov dest, (hsrc) shl 16
add dest, lsrc
else
mov dest, hsrc
shl dest, 16
add dest, lsrc
end if
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
}
 
macro mcall a,b,c,d,e,f { ; mike.dld
__mov eax,a
__mov ebx,b
__mov ecx,c
__mov edx,d
__mov esi,e
__mov edi,f
int 0x40
}
 
 
 
 
 
 
; optimize the code for size
__regs fix <eax,ebx,ecx,edx,esi,edi,ebp,esp>
 
macro add arg1,arg2
{
if (arg2 eqtype 0)
if (arg2) = 1
inc arg1
else
add arg1,arg2
end if
else
add arg1,arg2
end if
}
 
macro sub arg1,arg2
{
if (arg2 eqtype 0)
if (arg2) = 1
dec arg1
else
sub arg1,arg2
end if
else
sub arg1,arg2
end if
}
 
macro mov arg1,arg2
{
if (arg1 in __regs) & (arg2 eqtype 0)
if (arg2) = 0
xor arg1,arg1
else if (arg2) = 1
xor arg1,arg1
inc arg1
else if (arg2) = -1
or arg1,-1
else if (arg2) > -128 & (arg2) < 128
push arg2
pop arg1
else
mov arg1,arg2
end if
else
mov arg1,arg2
end if
}
 
 
macro struct name
{
virtual at 0
name name
sizeof.#name = $ - name
end virtual
}
 
; 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
rb (1024-52)
}
struct process_information
 
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
 
 
; constants
 
; events
EV_IDLE = 0
EV_TIMER = 0
EV_REDRAW = 1
EV_KEY = 2
EV_BUTTON = 3
EV_EXIT = 4
EV_BACKGROUND = 5
EV_MOUSE = 6
EV_IPC = 7
EV_STACK = 8
 
; event mask bits for function 40
EVM_REDRAW = 1b
EVM_KEY = 10b
EVM_BUTTON = 100b
EVM_EXIT = 1000b
EVM_BACKGROUND = 10000b
EVM_MOUSE = 100000b
EVM_IPC = 1000000b
EVM_STACK = 10000000b
Property changes:
Added: svn:eol-style
+native
\ No newline at end of property
/programs/system/sysmeter/trunk/sysmeter.asm
0,0 → 1,197
;
; CPU USAGE for MenuetOS - Compile with FASM 1.30+
;
 
use32
 
org 0x0
db 'MENUET00' ; 8 byte id
dd 38 ; required os version
dd START ; program start
dd I_END ; program image size
dd 0x1000 ; reguired amount of memory
dd 0x1000
dd 0x00000000 ; reserved=no extended header
 
include 'lang.inc'
include 'macros.inc'
START:
 
call set_variables
 
call draw_window
 
mov edi,0
 
still:
 
mov eax,23
mov ebx,10
int 0x40
 
cmp eax,1
je red
cmp eax,2
je key
cmp eax,3
je button
 
inc edi
cmp edi,10
jb still
 
mov edi,0
call draw_usage
 
jmp still
 
red:
call draw_window
jmp still
 
key:
mov eax,2
int 0x40
jmp still
 
button:
mov eax,17
int 0x40
cmp al,byte 0
jnz still
mov eax,-1
int 0x40
 
 
set_variables:
 
pusha
 
mov ecx,190
mov edi,pros
mov eax,100
cld
rep stosb
 
popa
ret
 
 
draw_window:
 
pusha
 
mov eax,12 ; tell os about redraw
mov ebx,1
int 0x40
 
mov eax,0 ; define and draw window
mov ebx,50*65536+207
mov ecx,50*65536+127
mov edx,0x03000000
mov esi,0x806688aa
 
mov edi,0x0088ccee
int 0x40
 
mov eax,4 ; 'CPU USAGE'
mov ebx,8*65536+8
mov ecx,dword 0x00ffffff
mov edx,text
mov esi,textlen-text
int 0x40
 
mov eax,12 ; tell os about redraw end
mov ebx,2
int 0x40
 
popa
ret
 
 
 
draw_usage:
 
pusha ; CPU usage
 
cld
mov eax,18 ; TSC / SEC
mov ebx,5
int 0x40
shr eax,20
push eax
 
mov eax,18 ; IDLE / SEC
mov ebx,4
int 0x40
shr eax,20
xor edx,edx
mov ebx,100
mul ebx
 
xor edx,edx
pop ebx
add ebx,1
div ebx
push eax
 
mov esi,pros+1
mov edi,pros
mov ecx,195
cld
rep movsb
 
pop eax
mov [pros+99],al
 
mov eax,13
mov ebx,5*65536+1
mov esi,pros
mov edi,pros+99
 
newpros:
 
add esi,1
 
xor eax,eax ; up
mov al,[esi]
add eax,1
mov ecx,22*65536
mov cx,ax
mov eax,13
mov edx,0x0
int 0x40
 
pusha ; down
xor eax,eax
mov al,[esi]
mov ecx,22
add ecx,eax
shl ecx,16
mov cx,101
sub cx,ax
mov eax,13
mov edx,0xdddddd
int 0x40
popa
 
add ebx,2*65536
 
cmp esi,edi
jb newpros
 
popa
ret
 
 
; DATA AREA
 
text: db 'CPU LOAD HISTORY '
textlen:
 
pros:
 
I_END:
 
 
 
Property changes:
Added: svn:eol-style
+native
\ No newline at end of property
/programs/system/systrace/trunk/build_en.bat
0,0 → 1,4
@erase lang.inc
@echo lang fix en >lang.inc
@fasm systrace.asm systrace
@pause
/programs/system/systrace/trunk/build_ru.bat
0,0 → 1,4
@erase lang.inc
@echo lang fix ru >lang.inc
@fasm systrace.asm systrace
@pause
/programs/system/systrace/trunk/macros.inc
0,0 → 1,266
; new application structure
macro meos_app_start
{
use32
org 0x0
 
db 'MENUET01'
dd 0x01
dd __start
dd __end
dd __memory
dd __stack
 
if used __params & ~defined __params
dd __params
else
dd 0x0
end if
 
dd 0x0
}
MEOS_APP_START fix meos_app_start
 
macro code
{
__start:
}
CODE fix code
 
macro data
{
__data:
}
DATA fix data
 
macro udata
{
if used __params & ~defined __params
__params:
db 0
__end:
rb 255
else
__end:
end if
__udata:
}
UDATA fix udata
 
macro meos_app_end
{
align 32
rb 2048
__stack:
__memory:
}
MEOS_APP_END fix meos_app_end
 
 
; macro for defining multiline text data
struc mstr [sstring]
{
forward
local ssize
virtual at 0
db sstring
ssize = $
end virtual
dd ssize
db sstring
common
dd -1
}
 
 
; strings
macro sz name,[data] { ; from MFAR [mike.dld]
common
if used name
label name
end if
forward
if used name
db data
end if
common
if used name
.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)&(lang eq lng)
db data
end if
common
if used name
.size = $-name
end if
}
 
 
 
; easy system call macro
macro mpack dest, hsrc, lsrc
{
if (hsrc eqtype 0) & (lsrc eqtype 0)
mov dest, (hsrc) shl 16 + lsrc
else
if (hsrc eqtype 0) & (~lsrc eqtype 0)
mov dest, (hsrc) shl 16
add dest, lsrc
else
mov dest, hsrc
shl dest, 16
add dest, lsrc
end if
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
}
 
macro mcall a,b,c,d,e,f { ; mike.dld
__mov eax,a
__mov ebx,b
__mov ecx,c
__mov edx,d
__mov esi,e
__mov edi,f
int 0x40
}
 
 
 
 
 
 
; optimize the code for size
__regs fix <eax,ebx,ecx,edx,esi,edi,ebp,esp>
 
macro add arg1,arg2
{
if (arg2 eqtype 0)
if (arg2) = 1
inc arg1
else
add arg1,arg2
end if
else
add arg1,arg2
end if
}
 
macro sub arg1,arg2
{
if (arg2 eqtype 0)
if (arg2) = 1
dec arg1
else
sub arg1,arg2
end if
else
sub arg1,arg2
end if
}
 
macro mov arg1,arg2
{
if (arg1 in __regs) & (arg2 eqtype 0)
if (arg2) = 0
xor arg1,arg1
else if (arg2) = 1
xor arg1,arg1
inc arg1
else if (arg2) = -1
or arg1,-1
else if (arg2) > -128 & (arg2) < 128
push arg2
pop arg1
else
mov arg1,arg2
end if
else
mov arg1,arg2
end if
}
 
 
macro struct name
{
virtual at 0
name name
sizeof.#name = $ - name
end virtual
}
 
; 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
rb (1024-52)
}
struct process_information
 
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
 
 
; constants
 
; events
EV_IDLE = 0
EV_TIMER = 0
EV_REDRAW = 1
EV_KEY = 2
EV_BUTTON = 3
EV_EXIT = 4
EV_BACKGROUND = 5
EV_MOUSE = 6
EV_IPC = 7
EV_STACK = 8
 
; event mask bits for function 40
EVM_REDRAW = 1b
EVM_KEY = 10b
EVM_BUTTON = 100b
EVM_EXIT = 1000b
EVM_BACKGROUND = 10000b
EVM_MOUSE = 100000b
EVM_IPC = 1000000b
EVM_STACK = 10000000b
Property changes:
Added: svn:eol-style
+native
\ No newline at end of property
/programs/system/systrace/trunk/systrace.asm
0,0 → 1,211
;
; SYSTEM CALL TRACE , V.Turjanmaa
;
; Compile with FASM for Menuet
;
 
use32
 
org 0x0
 
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'
 
START: ; start of execution
 
call draw_window ; at first, draw the window
 
still:
 
mov eax,23 ; wait here for event
mov ebx,50
int 0x40
 
call display_calls
 
cmp eax,1 ; redraw request ?
je red
cmp eax,2 ; key in buffer ?
je key
cmp eax,3 ; button in buffer ?
je button
 
jmp still
 
red: ; redraw
call draw_window
jmp still
 
key: ; key
mov eax,2 ; just read it and ignore
int 0x40
jmp still
 
button: ; button
mov eax,17 ; get id
int 0x40
 
cmp ah,1 ; button id=1 ?
jne noclose
mov eax,-1 ; close this program
int 0x40
noclose:
 
jmp still
 
 
; *********************************************
; ******* WINDOW DEFINITIONS AND DRAW ********
; *********************************************
 
 
draw_window:
 
mov eax,12 ; function 12:tell os about windowdraw
mov ebx,1 ; 1, start of draw
int 0x40
 
; DRAW WINDOW
mov eax,0 ; function 0 : define and draw window
mov ebx,100*65536+465 ; [x start] *65536 + [x size]
mov ecx,50*65536+265 ; [y start] *65536 + [y size]
mov edx,0x03ffffff ; color of work area RRGGBB,8->color gl
mov esi,0x808899ff ; color of grab bar RRGGBB,8->color gl
mov edi,0x008899ff ; color of frames RRGGBB
int 0x40
 
; WINDOW LABEL
mov eax,4 ; function 4 : write text to window
mov ebx,8*65536+8 ; [x start] *65536 + [y start]
mov ecx,0x00ddeeff ; color of text RRGGBB
mov edx,labelt ; pointer to text beginning
mov esi,labellen-labelt ; text length
int 0x40
 
mov eax,4
mov ebx,15*65536+55
mov ecx,0x0
mov edx,text
mov esi,70
int 0x40
 
; CLOSE BUTTON
mov eax,8 ; function 8 : define and draw button
mov ebx,(465-19)*65536+12 ; [x start] *65536 + [x size]
mov ecx,5*65536+12 ; [y start] *65536 + [y size]
mov edx,1 ; button id
mov esi,0x6677cc ; button color RRGGBB
; int 0x40
 
call display_calls
 
mov eax,12
mov ebx,2
int 0x40
 
ret
 
 
 
display_calls:
 
 
pusha
 
mov eax,13
mov ebx,15*65536+70
mov ecx,35*65536+10
mov edx,0xffffff
int 0x40
 
mov eax,59
mov ebx,0
mov ecx,I_END
mov edx,64*16
int 0x40
 
mov ecx,eax
mov eax,47
mov ebx,10*65536
mov edx,15*65536+35
mov esi,0
int 0x40
 
 
mov ebx,75
mov edx,I_END
newline:
 
push ebx
push edx
 
mov edi,0
 
new_x:
 
mov eax,13
mov ebx,edi
shl ebx,6+16
add ebx,15*65536
mov bx,6*8
mov ecx,[esp+4]
shl ecx,16
mov cx,10
mov edx,0xffffff
int 0x40
 
mov eax,47
mov ebx,1+1*256+8*65536
 
mov ecx,[pos+edi*4]
shl ecx,2
add ecx,[esp+0]
 
mov edx,edi
shl edx,6+16
mov dx,[esp+4]
or edx,15*65536
mov esi,0x0
int 0x40
 
inc edi
 
cmp edi,7
jb new_x
 
pop edx
pop ebx
 
add ebx,10
add edx,64
 
cmp edx,I_END+16*64
jb newline
 
popa
ret
 
 
 
 
; DATA AREA
 
pos dd 0,15,12,14,13,9,8
 
text:
db ' PID EAX EBX ECX EDX ESI EDI '
 
 
labelt:
db 'SYSTEM CALL TRACE'
labellen:
 
I_END:
Property changes:
Added: svn:eol-style
+native
\ No newline at end of property