/kernel/branches/gfx_kernel/kernel.asm |
---|
233,7 → 233,7 |
endg |
iglobal |
firstapp db 'LAUNCHER ' |
firstapp db '/rd/1/LAUNCHER',0 |
char db 'CHAR MT ' |
char2 db 'CHAR2 MT ' |
bootpath db '/KOLIBRI ' |
240,7 → 240,7 |
bootpath2 db 0 |
vmode db 'VMODE MDR' |
cur_file db 'ARROW CUR' |
vrr_m db 'VRR_M ' |
vrr_m db '/rd/1/VRR_M',0 |
endg |
772,21 → 772,22 |
mov [0x3000],dword 1 |
mov [0x3004],dword 1 |
cli |
mov al,[0x2f0000+0x9030] |
cmp al,1 |
cmp byte [0x2f0000+0x9030],1 |
jne no_load_vrr_m |
mov eax,vrr_m |
mov ebp,vrr_m |
lea esi,[ebp+6] ; skip '/RD/1/' |
xor ebx,ebx ; no parameters |
xor edx,edx ; no flags |
call start_application_fl |
call fs_RamdiskExecute.flags |
cmp eax,2 ; if vrr_m app found (PID=2) |
je first_app_found |
no_load_vrr_m: |
mov eax,firstapp |
mov ebp,firstapp |
lea esi,[ebp+6] |
xor ebx,ebx ; no parameters |
xor edx,edx ; no flags |
call start_application_fl |
call fs_RamdiskExecute.flags |
cmp eax,2 ; continue if a process has been loaded |
je first_app_found |
3350,7 → 3351,7 |
mouse_active db 0 |
endg |
iglobal |
cpustring db 'CPU ' |
cpustring db '/RD/1/CPU',0 |
endg |
uglobal |
3364,10 → 3365,11 |
cmp [ctrl_alt_del], 1 |
jne nocpustart |
mov eax, cpustring |
mov ebp, cpustring |
lea esi,[ebp+6] |
xor ebx,ebx ; no parameters |
xor edx,edx ; no flags |
call start_application_fl |
call fs_RamdiskExecute.flags |
mov [ctrl_alt_del], 0 |
nocpustart: |
cmp [mouse_active], 1 |
/kernel/trunk/boot/bootcode.inc |
---|
448,8 → 448,8 |
; d) preboot_device = from what boot? |
mov di, preboot_graph-0x10000 |
; check bootloader block |
cmp [.loader_block-0x10000], 1 |
jnz .noloaderblock |
cmp [.loader_block-0x10000], -1 |
jz .noloaderblock |
les bx, [.loader_block-0x10000] |
cmp byte [es:bx], 1 |
mov si, loader_block_error-0x10000 |
657,7 → 657,7 |
.timer dd ? |
end virtual |
org $+0x10000 |
.loader_block dd 0 |
.loader_block dd -1 |
org $-0x10000 |
.gettime: |
mov ah, 0 |
727,7 → 727,7 |
_setcursor 15,0 |
cmp [.bSettingsChanged-0x10000], 0 |
jz .load |
cmp [.loader_block-0x10000], 0 |
cmp [.loader_block-0x10000], -1 |
jz .load |
les bx, [.loader_block-0x10000] |
mov eax, [es:bx+3] |
/kernel/trunk/boot/shutdown.inc |
---|
136,7 → 136,10 |
nrl: |
call dtext |
sub ebx,0x050000 |
; sub ebx,0x050000 |
ror ebx, 16 |
sub bl, 0x05 |
ror ebx, 16 |
add eax,8 |
add ecx,31 |
cmp cx,word 0x0001+25*31 |
/kernel/trunk/detect/dev_hdcd.inc |
---|
329,7 → 329,7 |
mov AL,08h |
inc DX ;ðåãèñòð êîìàíä |
out DX,AL |
mov ecx,0xffff |
mov ecx,0x80000 |
@@WaitHDReady_1: |
; Ïðîâåðèòü âðåìÿ îæèäàíèÿ |
dec ecx |
/kernel/trunk/kernel.asm |
---|
231,13 → 231,13 |
endg |
iglobal |
firstapp db 'LAUNCHER ' |
firstapp db '/rd/1/LAUNCHER',0 |
char db 'CHAR MT ' |
char2 db 'CHAR2 MT ' |
bootpath db '/KOLIBRI ' |
bootpath2 db 0 |
vmode db 'VMODE MDR' |
vrr_m db 'VRR_M ' |
vrr_m db '/rd/1/VRR_M',0 |
endg |
727,21 → 727,22 |
mov [0x3000],dword 1 |
mov [0x3004],dword 1 |
cli |
mov al,[0x2f0000+0x9030] |
cmp al,1 |
cmp byte [0x2f0000+0x9030],1 |
jne no_load_vrr_m |
mov eax,vrr_m |
mov ebp,vrr_m |
lea esi,[ebp+6] ; skip '/rd/1/' |
xor ebx,ebx ; no parameters |
xor edx,edx ; no flags |
call start_application_fl |
call fs_RamdiskExecute.flags |
cmp eax,2 ; if vrr_m app found (PID=2) |
je first_app_found |
no_load_vrr_m: |
mov eax,firstapp |
mov ebp,firstapp |
lea esi,[ebp+6] |
xor ebx,ebx ; no parameters |
xor edx,edx ; no flags |
call start_application_fl |
call fs_RamdiskExecute.flags |
cmp eax,2 ; continue if a process has been loaded |
je first_app_found |
3336,7 → 3337,7 |
mouse_active db 0 |
endg |
iglobal |
cpustring db 'CPU ' |
cpustring db '/RD/1/CPU',0 |
endg |
uglobal |
3350,10 → 3351,11 |
cmp [ctrl_alt_del], 1 |
jne nocpustart |
mov eax, cpustring |
mov ebp, cpustring |
lea esi,[ebp+6] |
xor ebx,ebx ; no parameters |
xor edx,edx ; no flags |
call start_application_fl |
call fs_RamdiskExecute.flags |
mov [ctrl_alt_del], 0 |
nocpustart: |
cmp [mouse_active], 1 |
/programs/system/ir/trunk/ir.asm |
---|
8,43 → 8,124 |
org 0x0 |
db 'MENUET00' ; 8 byte id |
dd 56 ; required os |
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 0x00000000 ; reserved=no extended header |
dd 0, 0 |
include 'lang.inc' |
include 'macros.inc' |
START: ; start of execution |
call draw_window ; at first, draw the window |
set_variables: |
call 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 |
cmp eax,1 ; redraw request ? |
je red |
cmp eax,2 ; key in buffer ? |
je key |
cmp eax,3 ; button in buffer ? |
je button |
cmp eax,16+4 |
je readir |
button: ; button |
mov al,17 ; get id |
int 0x40 |
jmp still |
; 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 db 'CDPLAY ' |
cdplayer: |
dd 7 |
dd 0 |
dd 0 |
dd 0 |
dd 0 |
db '/RD/1/CDP',0 |
readir: |
mov eax,42 |
54,9 → 135,8 |
cmp ebx,80 |
jne nocd |
mov eax,19 |
mov eax,70 |
mov ebx,cdplayer |
mov ecx,0 |
int 0x40 |
85,41 → 165,9 |
call draw_data |
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,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 |
mov eax,-1 ; close this program |
int 0x40 |
noclose: |
jmp still |
draw_data: |
pusha |
149,107 → 197,9 |
dd 0x3f8+0x01000000 ; + 01 = read byte, 02 read word |
dd 0 |
dd 0 |
dd 0 |
dd 0 |
dd 0 |
dd 0 |
dd 0 |
dd 0 |
dd 0 |
dd 0 |
dd 0 |
dd 0 |
dd 0 |
dd 0 |
dd 0 |
set_variables: |
pusha |
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,46 ; reserve ports 0x3f0-0x3ff |
mov ebx,0 |
mov ecx,0x3f0 |
mov edx,0x3ff |
int 0x40 |
mov eax,44 ; set read ports for irq 4 |
mov ebx,irqtable |
mov ecx,4 |
int 0x40 |
mov cx,0x3f3+8 |
mov bl,0x80 |
mov eax,43 |
int 0x40 |
mov cx,0x3f1+8 |
mov bl,0 |
mov eax,43 |
int 0x40 |
mov cx,0x3f0+8 |
mov bl,0x30 / 4 |
mov eax,43 |
int 0x40 |
mov cx,0x3f3+8 |
mov bl,3 |
mov eax,43 |
int 0x40 |
mov cx,0x3f4+8 |
mov bl,0xB |
mov eax,43 |
int 0x40 |
mov cx,0x3f1+8 |
mov bl,1 |
mov eax,43 |
int 0x40 |
mov eax,5 |
mov ebx,100 |
int 0x40 |
mov cx,0x3f8 |
mov bl,'I' |
mov eax,43 |
int 0x40 |
mov eax,5 |
mov ebx,10 |
int 0x40 |
mov cx,0x3f8 |
mov bl,'R' |
mov eax,43 |
int 0x40 |
mov eax,40 ; get com 1 data with irq 4 |
mov ebx,0000000000010000b shl 16 + 111b |
int 0x40 |
popa |
ret |
; ********************************************* |
; ******* WINDOW DEFINITIONS AND DRAW ******** |
; ********************************************* |
266,38 → 216,27 |
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 esi,0x8099bbff ; color of grab bar RRGGBB,8->color glide |
mov edi,0x00ffffff ; color of frames RRGGBB |
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 |
; ; 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 |
; 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 |
call draw_text |
mov eax,12 |
mov ebx,2 |
int 0x40 |
ret |
draw_text: |
pusha |
mov ebx,25*65536+35 ; draw info text with function 4 |
mov ecx,0xffffff |
mov edx,text |
307,27 → 246,23 |
mov eax,4 |
int 0x40 |
add ebx,10 |
add edx,40 |
add edx,esi |
dec edi |
jne newline |
popa |
mov eax,12 |
mov ebx,2 |
int 0x40 |
ret |
; DATA AREA |
wcolor dd 0x03000000 |
wcolor dd 0x13000000 |
labelt db 'INFRARED RECEIVER FOR IRMAN IN COM 1' |
labellen: |
labelt db 'INFRARED RECEIVER FOR IRMAN IN COM 1',0 |
text: |
I_END: |
/programs/system/vrr_m/trunk/vrr_m.asm |
---|
23,8 → 23,7 |
dd 0x0 ; ¤à¥á ¡ãä¥à ¤«ï ¯ à ¬¥â஢ (¥ ¨á¯®«ì§ã¥âáï) |
dd 0x0 ; § १¥à¢¨à®¢ ® |
include 'lang.inc' |
include 'macros.inc' ; ¬ ªà®áë ®¡«¥£ç îâ ¦¨§ì áᥬ¡«¥à騪®¢! |
include 'MACROS.INC' ; ¬ ªà®áë ®¡«¥£ç îâ ¦¨§ì áᥬ¡«¥à騪®¢! |
;--------------------------------------------------------------------- |
;--- ---------------------------------------------- |
32,11 → 31,21 |
START: |
; mcall 5,10 |
mcall 21,13,1,drvinfo |
mov ecx, 1 |
mov edx, drvinfo |
push @f |
jmp call_driver |
@@: |
; jmp run_launcher |
mcall 21,13,2 |
cmp eax,-1 |
mov ecx, 2 |
push @f |
call_driver: |
mcall 21,13 |
ret |
@@: |
; cmp eax,-1 |
inc eax |
je run_launcher |
; cmp ecx,280 |
; je change_vrr |
64,34 → 73,34 |
; mov dx,[_m1+ebx] |
; rol edx,16 |
;mov eax,ecx |
xor eax,eax |
sub ecx,3 |
mov dx,cx |
cmp cx,274 |
je yes_274 |
cmp cx,277 |
mov eax, 10 |
cmp cx,277+3 |
je yes_277 |
jmp yes_280 |
cmp cx,274+3 |
jne yes_280 |
yes_274: |
add al,10 |
yes_277: |
add al,10 |
yes_280: |
add al,10 |
ror edx,16 |
mov dx,[_m1+eax] |
rol edx,16 |
; mov dx,bx |
; shl edx,16 |
; mov dx,cx |
mcall 21,13,3 |
; mcall 5,300 |
mov edx, [_m1+eax-2] |
lea dx, [ecx-3] |
push run_launcher |
mov ecx, 3 |
jmp call_driver |
run_launcher: |
mcall 19,launcher,0 |
; mcall 33,text,drvinfo,512,0 |
mcall 70,launcher |
mcall -1 |
launcher db 'LAUNCHER ' |
;text db 'TEXT ' |
launcher: |
dd 7 |
dd 0 |
dd 0 |
dd 0 |
dd 0 |
db '/RD/1/LAUNCHER' |
I_END: ; ¬¥âª ª®æ ¯à®£à ¬¬ë |
db ? ; system loader will zero all memory after program end |
; this byte will be terminating zero for launcher string |
drvinfo: ; 512 bytes driver info area |
; +0 - Full driver name |
; +32 - Driver version |
104,5 → 113,3 |
org $+64 |
_m1: |
org drvinfo+200h |
I_END: ; ¬¥âª ª®æ ¯à®£à ¬¬ë |