small fix

git-svn-id: svn://kolibrios.org@1379 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
turbanoff 2010-01-23 16:01:24 +00:00
parent 7eed0cd366
commit 8a94df9a76
7 changed files with 323 additions and 335 deletions

View File

@ -465,4 +465,3 @@ BiosDiskCaches rb 80h*(cache_ide1-cache_ide0)
BiosDiskPartitions rd 80h BiosDiskPartitions rd 80h
IncludeUGlobals IncludeUGlobals

View File

@ -169,6 +169,7 @@ reserve_hd_channel:
call clear_hd_cache call clear_hd_cache
@@: @@:
pop eax pop eax
sti
.ret: .ret:
ret ret
@ -2930,5 +2931,4 @@ fs_HdDelete:
@@: @@:
ret ret
; \end{diamond} ; \end{diamond}

View File

@ -794,5 +794,4 @@ error:
jmp i4 jmp i4
partition_string: dd 0 partition_string: dd 0
db 32 db 32

View File

@ -104,12 +104,7 @@ file_system_lfn:
; 8 : delete file ; 8 : delete file
; 9 : create directory ; 9 : create directory
; parse file name ; parse file name
cmp dword [eax], 1
jne @F
;xchg bx,bx
@@:
;up to file_system_lfn - TEMP!!!
xchg ebx, eax xchg ebx, eax
lea esi, [ebx+20] lea esi, [ebx+20]
lodsb lodsb
@ -187,7 +182,7 @@ file_system_lfn:
pop ecx pop ecx
mov byte [edx], 1 ; version mov byte [edx], 1 ; version
.maindir_loop: .maindir_loop:
call esi ;!!!!!!!!!!!!!!!!!! call esi
jc .maindir_done jc .maindir_done
inc dword [edx+8] inc dword [edx+8]
dec dword [esp] dec dword [esp]
@ -1147,5 +1142,4 @@ get_full_file_name:
test esi, esi test esi, esi
jz .ret.ok jz .ret.ok
mov byte [edi-1], '/' mov byte [edi-1], '/'
jmp .set_copy_cont jmp .set_copy_cont

View File

@ -95,7 +95,7 @@ ntfs_test_bootsec:
ntfs_setup: ; CODE XREF: part_set.inc ntfs_setup: ; CODE XREF: part_set.inc
; By given bootsector, initialize some NTFS variables ; By given bootsector, initialize some NTFS variables
; call ntfs_test_bootsec ; call ntfs_test_bootsec ; checking boot sector was already
; jc problem_fat_dec_count ; jc problem_fat_dec_count
movzx eax, byte [ebx+13] movzx eax, byte [ebx+13]
mov [ntfs_data.sectors_per_cluster], eax mov [ntfs_data.sectors_per_cluster], eax
@ -1267,8 +1267,7 @@ ntfs_HdRead:
; eax = 0 ok read or other = errormsg ; eax = 0 ok read or other = errormsg
; ;
;-------------------------------------------------------------- ;--------------------------------------------------------------
ntfs_HdReadFolder: ntfs_HdReadFolder:
xchg bx, bx
mov eax, 5 ; root cluster mov eax, 5 ; root cluster
cmp byte [esi], 0 cmp byte [esi], 0
jz .doit jz .doit
@ -1813,5 +1812,4 @@ ntfs_HdGetFileInfo:
call ntfs_direntry_to_bdfe call ntfs_direntry_to_bdfe
pop edi esi pop edi esi
xor eax, eax xor eax, eax
ret ret

View File

@ -55,7 +55,7 @@ fs_dependent_data_end:
file_system_data_size = $ - PARTITION_START file_system_data_size = $ - PARTITION_START
if file_system_data_size > 96 if file_system_data_size > 96
ERROR: sizeof(file system data) too big! ERROR: sizeof(file system data) too big!
end if end if
virtual at fs_dependent_data_start virtual at fs_dependent_data_start
; NTFS data ; NTFS data
@ -76,30 +76,30 @@ ntfs_data:
if $ > fs_dependent_data_end if $ > fs_dependent_data_end
ERROR: increase sizeof(fs_dependent_data)! ERROR: increase sizeof(fs_dependent_data)!
end if end if
end virtual end virtual
virtual at fs_dependent_data_start virtual at fs_dependent_data_start
; EXT2 data ; EXT2 data
ext2_data: ext2_data:
.log_block_size dd ? .log_block_size dd ?
.block_size dd ? .block_size dd ?
.count_block_in_block dd ? .count_block_in_block dd ?
.blocks_per_group dd ? .blocks_per_group dd ?
.inodes_per_group dd ? .inodes_per_group dd ?
.global_desc_table dd ? .global_desc_table dd ?
.root_inode dd ? ; pointer to root inode in memory .root_inode dd ? ; pointer to root inode in memory
.inode_size dd ? .inode_size dd ?
.count_pointer_in_block dd ? ; block_size / 4 .count_pointer_in_block dd ? ; block_size / 4
.count_pointer_in_block_square dd ? ; (block_size / 4)**2 .count_pointer_in_block_square dd ? ; (block_size / 4)**2
.ext2_save_block dd ? ; ¡«®ª ­  £«®¡ «ì­ãî 1 ¯à®æ¥¤ãàã .ext2_save_block dd ? ; ¡«®ª ­  £«®¡ «ì­ãî 1 ¯à®æ¥¤ãàã
.ext2_temp_block dd ? ; ¡«®ª ¤«ï ¬¥«ª¨å ¯à®æ¥¤ãà .ext2_temp_block dd ? ; ¡«®ª ¤«ï ¬¥«ª¨å ¯à®æ¥¤ãà
.ext2_save_inode dd ? ; inode ­  £«®¡ «ì­ãî ¯à®æ¥¤ãàã .ext2_save_inode dd ? ; inode ­  £«®¡ «ì­ãî ¯à®æ¥¤ãàã
.ext2_temp_inode dd ? ; inode ¤«ï ¬¥«ª¨å ¯à®æ¥¤ãà .ext2_temp_inode dd ? ; inode ¤«ï ¬¥«ª¨å ¯à®æ¥¤ãà
if $ > fs_dependent_data_end if $ > fs_dependent_data_end
ERROR: increase sizeof(fs_dependent_data)! ERROR: increase sizeof(fs_dependent_data)!
end if end if
end virtual end virtual
;*************************************************************************** ;***************************************************************************
; End place ; End place
; Mario79 ; Mario79
@ -126,7 +126,7 @@ iglobal
db 0xd4 ; Old Multiuser DOS secured: fat16 <32M db 0xd4 ; Old Multiuser DOS secured: fat16 <32M
db 0xd6 ; Old Multiuser DOS secured: fat16 >32M db 0xd6 ; Old Multiuser DOS secured: fat16 >32M
db 0x07 ; NTFS db 0x07 ; NTFS
db 0x17 ; NTFS, hidden db 0x27 ; NTFS, hidden
db 0x83 ; Linux native file system (ext2fs) db 0x83 ; Linux native file system (ext2fs)
partition_types_end: partition_types_end:
@ -141,13 +141,13 @@ iglobal
endg endg
; Partition chain used: ; Partition chain used:
; MBR <--------------------- ; MBR <---------------------
; | | ; | |
; |-> PARTITION1 | ; |-> PARTITION1 |
; |-> EXTENDED PARTITION - ;not need be second partition ; |-> EXTENDED PARTITION - ;not need be second partition
; |-> PARTITION3 ; |-> PARTITION3
; |-> PARTITION4 ; |-> PARTITION4
set_PARTITION_variables: set_PARTITION_variables:
set_FAT32_variables: ;deprecated set_FAT32_variables: ;deprecated
mov [problem_partition],0 mov [problem_partition],0
@ -392,14 +392,14 @@ boot_read_ok:
; if we are running on NTFS, check bootsector ; if we are running on NTFS, check bootsector
call ntfs_test_bootsec ; test ntfs call ntfs_test_bootsec ; test ntfs
jnc ntfs_setup jnc ntfs_setup
call ext2_test_superblock ; test ext2fs call ext2_test_superblock ; test ext2fs
jnc ext2_setup jnc ext2_setup
mov eax, [PARTITION_START] ;ext2 test changes [buffer] mov eax, [PARTITION_START] ;ext2 test changes [buffer]
call hd_read call hd_read
cmp [hd_error], 0 cmp [hd_error], 0
jnz problem_fat_dec_count jnz problem_fat_dec_count
cmp word [ebx+0x1fe],0xaa55 ; is it valid boot sector? cmp word [ebx+0x1fe],0xaa55 ; is it valid boot sector?
@ -505,5 +505,4 @@ fat16_partition:
mov [fs_type],16 ; Fat16 mov [fs_type],16 ; Fat16
call free_hd_channel call free_hd_channel
mov [hd1_status],0 ; free mov [hd1_status],0 ; free
ret ret

View File

@ -1,103 +1,103 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; ;; ;; ;;
;; Copyright (C) KolibriOS team 2004-2008. All rights reserved. ;; ;; Copyright (C) KolibriOS team 2004-2008. All rights reserved. ;;
;; Distributed under terms of the GNU General Public License ;; ;; Distributed under terms of the GNU General Public License ;;
;; ;; ;; ;;
;; KERNEL32.INC ;; ;; KERNEL32.INC ;;
;; ;; ;; ;;
;; Included 32 bit kernel files for MenuetOS ;; ;; Included 32 bit kernel files for MenuetOS ;;
;; ;; ;; ;;
;; This file is kept separate as it will be easier to ;; ;; This file is kept separate as it will be easier to ;;
;; maintain and compile with an automated SETUP program ;; ;; maintain and compile with an automated SETUP program ;;
;; in the future. ;; ;; in the future. ;;
;; ;; ;; ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
$Revision$ $Revision$
;struc db [a] { common . db a ;struc db [a] { common . db a
; if ~used . ; if ~used .
; display 'not used db: ',`.,13,10 ; display 'not used db: ',`.,13,10
; end if } ; end if }
;struc dw [a] { common . dw a ;struc dw [a] { common . dw a
; if ~used . ; if ~used .
; display 'not used dw: ',`.,13,10 ; display 'not used dw: ',`.,13,10
; end if } ; end if }
;struc dd [a] { common . dd a ;struc dd [a] { common . dd a
; if ~used . ; if ~used .
; display 'not used dd: ',`.,13,10 ; display 'not used dd: ',`.,13,10
; end if } ; end if }
;struc dp [a] { common . dp a ;struc dp [a] { common . dp a
; if ~used . ; if ~used .
; display 'not used dp: ',`.,13,10 ; display 'not used dp: ',`.,13,10
; end if } ; end if }
;struc dq [a] { common . dq a ;struc dq [a] { common . dq a
; if ~used . ; if ~used .
; display 'not used dq: ',`.,13,10 ; display 'not used dq: ',`.,13,10
; end if } ; end if }
;struc dt [a] { common . dt a ;struc dt [a] { common . dt a
; if ~used . ; if ~used .
; display 'not used dt: ',`.,13,10 ; display 'not used dt: ',`.,13,10
; end if } ; end if }
struc RECT { struc RECT {
.left dd ? .left dd ?
.top dd ? .top dd ?
.right dd ? .right dd ?
.bottom dd ? .bottom dd ?
} }
virtual at 0 virtual at 0
RECT RECT RECT RECT
end virtual end virtual
struc BOX { struc BOX {
.left dd ? .left dd ?
.top dd ? .top dd ?
.width dd ? .width dd ?
.height dd ? .height dd ?
} }
virtual at 0 virtual at 0
BOX BOX BOX BOX
end virtual end virtual
struc DISPMODE { struc DISPMODE {
.width rw 1 .width rw 1
.height rw 1 .height rw 1
.bpp rw 1 .bpp rw 1
.freq rw 1 .freq rw 1
} }
; constants definition ; constants definition
WSTATE_NORMAL = 00000000b WSTATE_NORMAL = 00000000b
WSTATE_MAXIMIZED = 00000001b WSTATE_MAXIMIZED = 00000001b
WSTATE_MINIMIZED = 00000010b WSTATE_MINIMIZED = 00000010b
WSTATE_ROLLEDUP = 00000100b WSTATE_ROLLEDUP = 00000100b
WSTATE_REDRAW = 00000001b WSTATE_REDRAW = 00000001b
WSTATE_WNDDRAWN = 00000010b WSTATE_WNDDRAWN = 00000010b
WSTYLE_HASCAPTION = 00010000b WSTYLE_HASCAPTION = 00010000b
WSTYLE_CLIENTRELATIVE = 00100000b WSTYLE_CLIENTRELATIVE = 00100000b
struc TASKDATA struc TASKDATA
{ {
.event_mask dd ? .event_mask dd ?
.pid dd ? .pid dd ?
dw ? dw ?
.state db ? .state db ?
db ? db ?
dw ? dw ?
.wnd_number db ? .wnd_number db ?
db ? db ?
.mem_start dd ? .mem_start dd ?
.counter_sum dd ? .counter_sum dd ?
.counter_add dd ? .counter_add dd ?
.cpu_usage dd ? .cpu_usage dd ?
} }
virtual at 0 virtual at 0
TASKDATA TASKDATA TASKDATA TASKDATA
end virtual end virtual
TSTATE_RUNNING = 0 TSTATE_RUNNING = 0
TSTATE_RUN_SUSPENDED = 1 TSTATE_RUN_SUSPENDED = 1
@ -106,185 +106,184 @@ TSTATE_ZOMBIE = 3
TSTATE_TERMINATING = 4 TSTATE_TERMINATING = 4
TSTATE_WAITING = 5 TSTATE_WAITING = 5
TSTATE_FREE = 9 TSTATE_FREE = 9
; structures definition
struc WDATA {
.box BOX
.cl_workarea dd ?
.cl_titlebar dd ?
.cl_frames dd ?
.reserved db ?
.fl_wstate db ?
.fl_wdrawn db ?
.fl_redraw db ?
.sizeof:
}
virtual at 0
WDATA WDATA
end virtual
label WDATA.fl_wstyle byte at WDATA.cl_workarea + 3
struc APPDATA
{
.app_name db 11 dup(?)
db 5 dup(?)
.fpu_state dd ? ;+16
.ev_count_ dd ? ;unused ;+20
.exc_handler dd ? ;+24
.except_mask dd ? ;+28
.pl0_stack dd ? ;unused ;+32
.heap_base dd ? ;+36
.heap_top dd ? ;+40
.cursor dd ? ;+44
.fd_ev dd ? ;+48
.bk_ev dd ? ;+52
.fd_obj dd ? ;+56
.bk_obj dd ? ;+60
.saved_esp dd ? ;+64
.io_map rd 2 ;+68
.dbg_state dd ? ;+76
.cur_dir dd ? ;+80
.wait_timeout dd ? ;+84
.saved_esp0 dd ? ;+88
.wait_begin dd ? ;+92 +++
.wait_test dd ? ;+96 +++
.wait_param dd ? ;+100 +++
.tls_base dd ? ;+104
.dlls_list_ptr dd ? ;+108
db 16 dup(?) ;+112
.wnd_shape dd ? ;+128
.wnd_shape_scale dd ? ;+132
dd ? ;+136
.mem_size dd ? ;+140
.saved_box BOX
.ipc_start dd ?
.ipc_size dd ?
.event_mask dd ?
.debugger_slot dd ?
dd ?
.keyboard_mode db ?
db 3 dup(?)
.dir_table dd ?
.dbg_event_mem dd ?
.dbg_regs:
.dbg_regs.dr0 dd ?
.dbg_regs.dr1 dd ?
.dbg_regs.dr2 dd ?
.dbg_regs.dr3 dd ?
.dbg_regs.dr7 dd ?
.wnd_caption dd ?
.wnd_clientbox BOX
}
virtual at 0
APPDATA APPDATA
end virtual
;// mike.dld, 2006-29-01 ]
; Core functions
include "core/sync.inc" ; macros for synhronization objects
include "core/sys32.inc" ; process management
include "core/sched.inc" ; process scheduling
include "core/syscall.inc" ; system call
include "core/fpu.inc" ; all fpu/sse support
include "core/memory.inc"
include "core/heap.inc" ; kernel and app heap
include "core/malloc.inc" ; small kernel heap
include "core/taskman.inc"
include "core/dll.inc"
include "core/peload.inc" ;
include "core/exports.inc"
include "core/string.inc"
include "core/v86.inc" ; virtual-8086 manager
; GUI stuff
include "gui/window.inc"
include "gui/event.inc"
include "gui/font.inc"
include "gui/button.inc"
; shutdown
; file system
include "fs/fs.inc" ; syscall
include "fs/fat32.inc" ; read / write for fat32 filesystem
include "fs/ntfs.inc" ; read / write for ntfs filesystem
include "fs/fat12.inc" ; read / write for fat12 filesystem
include "blkdev/rd.inc" ; ramdisk read /write
include "fs/fs_lfn.inc" ; syscall, version 2
include "fs/iso9660.inc" ; read for iso9660 filesystem CD
include "fs/ext2.inc" ; read / write for ext2 filesystem
; sound
include "sound/playnote.inc" ; player Note for Speaker PC
; display
include "video/vesa12.inc" ; Vesa 1.2 functions
include "video/vesa20.inc" ; Vesa 2.0 functions
include "video/vga.inc" ; VGA 16 color functions
include "video/cursors.inc" ; cursors functions
; Network Interface & TCPIP Stack
include "network/stack.inc"
;include "drivers/uart.inc"
; Mouse pointer
include "gui/mouse.inc"
; Window skinning
include "gui/skincode.inc"
; Pci functions
include "bus/pci/pci32.inc"
; Floppy drive controller
include "blkdev/fdc.inc"
include "blkdev/flp_drv.inc"
; IDE cache
include "blkdev/ide_cache.inc"
; HD drive controller
include "blkdev/hd_drv.inc"
; CD drive controller
include "blkdev/cdrom.inc"
include "blkdev/cd_drv.inc"
; Character devices
include "hid/keyboard.inc"
include "hid/mousedrv.inc"
; setting date,time,clock and alarm-clock
include "hid/set_dtc.inc"
;% -include
;parser file names
include "fs/parse_fn.inc"
; work with conf lib
include "core/conf_lib.inc"
; load external lib
include "core/ext_lib.inc"
; list of external functions
include "imports.inc"
; structures definition
struc WDATA {
.box BOX
.cl_workarea dd ?
.cl_titlebar dd ?
.cl_frames dd ?
.reserved db ?
.fl_wstate db ?
.fl_wdrawn db ?
.fl_redraw db ?
.sizeof:
}
virtual at 0
WDATA WDATA
end virtual
label WDATA.fl_wstyle byte at WDATA.cl_workarea + 3
struc APPDATA
{
.app_name db 11 dup(?)
db 5 dup(?)
.fpu_state dd ? ;+16
.ev_count_ dd ? ;unused ;+20
.exc_handler dd ? ;+24
.except_mask dd ? ;+28
.pl0_stack dd ? ;unused ;+32
.heap_base dd ? ;+36
.heap_top dd ? ;+40
.cursor dd ? ;+44
.fd_ev dd ? ;+48
.bk_ev dd ? ;+52
.fd_obj dd ? ;+56
.bk_obj dd ? ;+60
.saved_esp dd ? ;+64
.io_map rd 2 ;+68
.dbg_state dd ? ;+76
.cur_dir dd ? ;+80
.wait_timeout dd ? ;+84
.saved_esp0 dd ? ;+88
.wait_begin dd ? ;+92 +++
.wait_test dd ? ;+96 +++
.wait_param dd ? ;+100 +++
.tls_base dd ? ;+104
.dlls_list_ptr dd ? ;+108
db 16 dup(?) ;+112
.wnd_shape dd ? ;+128
.wnd_shape_scale dd ? ;+132
dd ? ;+136
.mem_size dd ? ;+140
.saved_box BOX
.ipc_start dd ?
.ipc_size dd ?
.event_mask dd ?
.debugger_slot dd ?
dd ?
.keyboard_mode db ?
db 3 dup(?)
.dir_table dd ?
.dbg_event_mem dd ?
.dbg_regs:
.dbg_regs.dr0 dd ?
.dbg_regs.dr1 dd ?
.dbg_regs.dr2 dd ?
.dbg_regs.dr3 dd ?
.dbg_regs.dr7 dd ?
.wnd_caption dd ?
.wnd_clientbox BOX
}
virtual at 0
APPDATA APPDATA
end virtual
;// mike.dld, 2006-29-01 ]
; Core functions
include "core/sync.inc" ; macros for synhronization objects
include "core/sys32.inc" ; process management
include "core/sched.inc" ; process scheduling
include "core/syscall.inc" ; system call
include "core/fpu.inc" ; all fpu/sse support
include "core/memory.inc"
include "core/heap.inc" ; kernel and app heap
include "core/malloc.inc" ; small kernel heap
include "core/taskman.inc"
include "core/dll.inc"
include "core/peload.inc" ;
include "core/exports.inc"
include "core/string.inc"
include "core/v86.inc" ; virtual-8086 manager
; GUI stuff
include "gui/window.inc"
include "gui/event.inc"
include "gui/font.inc"
include "gui/button.inc"
; shutdown
; file system
include "fs/fs.inc" ; syscall
include "fs/fat32.inc" ; read / write for fat32 filesystem
include "fs/ntfs.inc" ; read / write for ntfs filesystem
include "fs/fat12.inc" ; read / write for fat12 filesystem
include "blkdev/rd.inc" ; ramdisk read /write
include "fs/fs_lfn.inc" ; syscall, version 2
include "fs/iso9660.inc" ; read for iso9660 filesystem CD
include "fs/ext2.inc" ; read / write for ext2 filesystem
; sound
include "sound/playnote.inc" ; player Note for Speaker PC
; display
include "video/vesa12.inc" ; Vesa 1.2 functions
include "video/vesa20.inc" ; Vesa 2.0 functions
include "video/vga.inc" ; VGA 16 color functions
include "video/cursors.inc" ; cursors functions
; Network Interface & TCPIP Stack
include "network/stack.inc"
;include "drivers/uart.inc"
; Mouse pointer
include "gui/mouse.inc"
; Window skinning
include "gui/skincode.inc"
; Pci functions
include "bus/pci/pci32.inc"
; Floppy drive controller
include "blkdev/fdc.inc"
include "blkdev/flp_drv.inc"
; IDE cache
include "blkdev/ide_cache.inc"
; HD drive controller
include "blkdev/hd_drv.inc"
; CD drive controller
include "blkdev/cdrom.inc"
include "blkdev/cd_drv.inc"
; Character devices
include "hid/keyboard.inc"
include "hid/mousedrv.inc"
; setting date,time,clock and alarm-clock
include "hid/set_dtc.inc"
;% -include
;parser file names
include "fs/parse_fn.inc"
; work with conf lib
include "core/conf_lib.inc"
; load external lib
include "core/ext_lib.inc"
; list of external functions
include "imports.inc"