/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 |