/kernel/trunk/blkdev/rd.inc |
---|
5,7 → 5,83 |
;; Addings by M.Lisovin ;; |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
; calculate fat chain |
calculatefatchain: |
pushad |
mov esi,0x100000+512 |
mov edi,0x280000 |
fcnew: |
mov eax,dword [esi] |
mov ebx,dword [esi+4] |
mov ecx,dword [esi+8] |
mov edx,ecx |
shr edx,4 ;8 ok |
shr dx,4 ;7 ok |
xor ch,ch |
shld ecx,ebx,20 ;6 ok |
shr cx,4 ;5 ok |
shld ebx,eax,12 |
and ebx,0x0fffffff ;4 ok |
shr bx,4 ;3 ok |
shl eax,4 |
and eax,0x0fffffff ;2 ok |
shr ax,4 ;1 ok |
mov dword [edi],eax |
add edi,4 |
mov dword [edi],ebx |
add edi,4 |
mov dword [edi],ecx |
add edi,4 |
mov dword [edi],edx |
add edi,4 |
add esi,12 |
cmp edi,0x280000+2856*2 ;2849 clusters |
jnz fcnew |
popad |
ret |
restorefatchain: ; restore fat chain |
pushad |
mov esi,0x280000 |
mov edi,0x100000+512 |
fcnew2: |
mov eax,dword [esi] |
mov ebx,dword [esi+4] |
shl ax,4 |
shl eax,4 |
shl bx,4 |
shr ebx,4 |
shrd eax,ebx,8 |
shr ebx,8 |
mov dword [edi],eax |
add edi,4 |
mov word [edi],bx |
add edi,2 |
add esi,8 |
cmp edi,0x100000+512+4278 ;4274 bytes - all used FAT |
jb fcnew2 |
mov esi,0x100000+512 ; duplicate fat chain |
mov edi,0x100000+512+0x1200 |
mov ecx,1069 ;4274/4 |
cld |
rep movsd |
popad |
ret |
ramdisk_free_space: |
;--------------------------------------------- |
; |
18,7 → 94,7 |
mov edi,0x280000 ;start of FAT |
xor ax,ax ;Free cluster=0x0000 in FAT |
xor ebx,ebx ;counter |
mov ecx,2847 ;2849 ;2849 clusters |
mov ecx,2849 ;2849 clusters |
cld |
rdfs1: |
repne scasw |
122,7 → 198,7 |
push edx |
mov edx,ecx |
add edx,ebx |
cmp edx,14 ;ebx+ecx=14 |
cmp edx,15 ;ebx+ecx=14+1 |
pushf |
jbe fr_do1 |
sub edx,14 |
136,7 → 212,7 |
rep movsd |
popf |
pop edx |
; jae fr_do2 |
jae fr_do2 |
xor eax,eax ; ok read |
xor ebx,ebx |
ret |
/kernel/trunk/boot/booteng.inc |
---|
46,9 → 46,11 |
line_space |
line_space |
line_space |
line_space |
db 186,' Kolibri OS comes with ABSOLUTELY NO WARR' |
db 'ANTY; See file COPYING for details ',186 |
; line_space |
db 186,' KolibriOS based on MenuetOS and comes with ABSOLUTELY ' |
db 'NO WARRANTY ',186 |
db 186,' See file COPYING for details ' |
db ' ',186 |
line_full_bottom |
novesa db "Display: EGA/CGA",13,10,0 |
78,7 → 80,7 |
;mem_model db 13,10,186," Motherboard memory [1-16 Mb / 2-32 Mb / " |
; db "3-64Mb / 4-128 Mb / 5-256 Mb] ? ",0 |
bootlog db 13,10,186," After bootlog display [1-continue/2-pause] ? ",0 |
bdev db 13,10,186 |
bdev db 186 |
db " Load ramdisk from [1-floppy; 2-C:\menuet.img (FAT32);" |
db 13,10,186," " |
db "3-use preloaded ram-image from kernel restart]: ",0 |
/kernel/trunk/boot/bootru.inc |
---|
46,9 → 46,11 |
line_space |
line_space |
line_space |
line_space |
db 186,' Kolibri OS ¥ ¯à¥¤®áâ ¢«ï¥â ¨ª ª¨å £ àa' |
db '⨩; ®¤à®¡¥¥ - á¬. GNU.TXT ',186 |
; line_space |
db 186,' Kolibri OS ®á®¢ Menuet OS ¨ ¥ ¯à¥¤®áâ ¢«ï¥â ' |
db '¨ª ª¨å £ àa⨩. ',186 |
db 186,' ®¤à®¡¥¥ ᬮâà¨â¥ ä ©« GNU.TXT ' |
db ' ',186 |
line_full_bottom |
novesa db "¨¤¥®ª àâ : EGA/CGA",13,10,0 |
/kernel/trunk/boot/preboot.inc |
---|
17,7 → 17,7 |
;;preboot_memory db 0 ; amount of memory |
; (1-16Mb;2-32Mb;3-64Mb;4-128Mb;5-256Mb) |
; !!!! 0 - autodetect !!!! |
preboot_blogesc db 0 ; start immediately after bootlog |
preboot_blogesc db 1 ; start immediately after bootlog |
hdsysimage db 'MENUET IMG' ; load from |
image_save db 'MENUET IMG' ; save to |
/kernel/trunk/core/newproce.inc |
---|
63,6 → 63,7 |
;result: |
; eax - pid of new process |
; or 0 if call fails. |
mov [appl_path],edi |
pushad |
mov esi,new_process_loading |
call sys_msg_board_str ;write to debug board |
95,13 → 96,17 |
rep stosd ;clean extended information about process |
;set new process name |
mov eax,[esp+8] |
xor eax,eax |
mov [appl_path_size],eax |
mov eax,[esp] ;+8] |
.find_last_byte: |
cmp byte [eax],0 |
jz .find_last_byte_end |
inc eax |
inc [appl_path_size] |
jmp .find_last_byte |
.find_last_byte_end: |
add [appl_path_size],24 |
sub eax,11 ;last 11 bytes = application name |
; mov eax,[esp] ;eax - pointer to file name |
mov ebx,[new_process_place] |
217,6 → 222,8 |
;result: |
; eax - pid of new process |
; or 0 if call fails. |
mov [appl_path],edi |
mov [appl_path_size],36 |
pushad |
mov esi,new_process_loading |
call sys_msg_board_str ;write to debug board |
406,6 → 413,16 |
call write_process_memory ;copy parameters to new process address space |
.no_command_line: |
;****************************************************************** |
mov edx,[app_i_icon] |
test edx,edx |
jz .no_command_line_1 ;application don't need path of file |
mov ebx,[appl_path] |
mov ecx,[appl_path_size] |
mov eax,[new_process_place] |
call write_process_memory ;copy path of file to new process address space |
.no_command_line_1: |
;****************************************************************** |
mov ebx,[new_process_place] |
mov eax,ebx |
shl ebx,5 |
1130,6 → 1147,7 |
;ebx - file name length |
;ecx - work area (kernel address) |
;ebp - parameters |
mov [appl_path],edi |
pushad |
mov esi,new_process_loading |
1156,13 → 1174,17 |
jz .failed |
;write application name |
xor eax,eax |
mov [appl_path_size],eax |
mov eax,[esp+4] |
.find_last_byte: |
cmp byte [eax],0 |
jz .find_last_byte_end |
inc eax |
inc [appl_path_size] |
jmp .find_last_byte |
.find_last_byte_end: |
add [appl_path_size],24 |
lea esi,[eax-11] ;last 11 bytes = application name |
mov edi,[new_process_place] |
shl edi,8 |
/kernel/trunk/core/sys32.inc |
---|
1134,6 → 1134,8 |
app_mem_pos dd 0x0 |
;thread_create dd 0x0 |
;gdt_place dd 0x0 |
appl_path dd 0x0 |
appl_path_size dd 0x0 |
endg |
iglobal |
1154,8 → 1156,6 |
; on return : eax = pid |
jmp new_sys_threads |
iglobal |
process_terminating db 'K : Process - terminating',13,10,0 |
process_terminated db 'K : Process - done',13,10,0 |
/kernel/trunk/detect/sear_par.inc |
---|
83,11 → 83,13 |
transfer_adress dd 0 |
partition_data_transfer_1: |
cli |
push edi |
mov edi,PARTITION_START |
mov esi,[transfer_adress] |
xor ecx,ecx |
mov cx,69 ;100 |
rep movsb |
pop edi |
sti |
ret |
/kernel/trunk/kernel.asm |
---|
86,7 → 86,7 |
putpixel dd __sys_putpixel |
; } mike.dld |
version db 'Kolibri OS version 0.5.0.0 ',13,10,13,10,0 |
version db 'Kolibri OS version 0.5.1.0 ',13,10,13,10,0 |
;dd endofcode-0x10000 |
;db 'Boot02' |
2269,7 → 2269,7 |
iglobal |
version_inf: |
db 0,5,0,0 ; version 0.5.0.0 |
db 0,5,1,0 ; version 0.5.1.0 |
db UID_KOLIBRI |
db 'Kolibri',0 |
version_end: |
4131,101 → 4131,6 |
ret |
; calculate fat chain |
calculatefatchain: |
pushad |
mov esi,0x100000+512 |
mov edi,0x280000 |
fcnew: |
xor eax,eax |
xor ebx,ebx |
xor ecx,ecx |
xor edx,edx |
mov al,[esi+0] ; 1 |
mov bl,[esi+1] |
and ebx,15 |
shl ebx,8 |
add eax,ebx |
mov [edi],ax |
add edi,2 |
xor eax,eax |
xor ebx,ebx |
xor ecx,ecx |
xor edx,edx |
mov bl,[esi+1] ; 2 |
mov cl,[esi+2] |
shr ebx,4 |
shl ecx,4 |
add ecx,ebx |
mov [edi],cx |
add edi,2 |
add esi,3 |
cmp edi,0x280000+4100*4 |
jnz fcnew |
popad |
ret |
restorefatchain: ; restore fat chain |
pushad |
mov esi,0x280000 |
mov edi,0x100000+512 |
fcnew2: |
cld |
xor eax,eax |
xor ebx,ebx |
xor ecx,ecx ; esi XXXXxxxxxxxx yyyyyyyyYYYY |
xor edx,edx |
mov ax,[esi] ; edi xxxxxxxx YYYYXXXX yyyyyyyy |
mov bx,ax |
shr bx,8 |
and ebx,15 |
mov [edi+0],al ; 1 -> 1 & 2 |
mov [edi+1],bl |
add esi,2 |
xor eax,eax |
xor ebx,ebx |
xor ecx,ecx |
xor edx,edx |
mov bx,[esi] |
mov cx,bx |
shr ecx,4 |
mov [edi+2],cl |
and ebx,15 |
shl ebx,4 |
mov edx,[edi+1] |
add edx,ebx |
mov [edi+1],dl ; 2 -> 2 & 3 |
add esi,2 |
add edi,3 |
cmp edi,0x100000+512+0x1200 |
jb fcnew2 |
mov esi,0x100000+512 ; duplicate fat chain |
mov edi,0x100000+512+0x1200 |
mov ecx,0x1200/4 |
cld |
rep movsd |
popad |
ret |
align 4 |
read_floppy_file: |
/kernel/trunk/video/vesa12.inc |
---|
27,9 → 27,26 |
; Modifying the set_bank -function is mostly enough |
; for different Vesa 1.2 setups. |
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!{ |
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
; set_bank for Trident videocards, work on Trident 9440 |
; modified by Mario79 |
;set_bank: |
;cli |
;cmp al,[0xfff2] |
;je retsb |
;mov [0xfff2],al |
;push dx |
;mov dx,3D8h |
;out dx,al |
;pop dx |
;retsb: |
;sti |
;ret |
; set_bank modified by kmeaw |
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
; set_bank for S3 videocards, work on S3 ViRGE PCI (325) |
; modified by kmeaw |
set_bank: |
cli |
cmp al,[0xfff2] |