Added support for .lst files. Thanks to Art Yerkes.

svn path=/trunk/; revision=2788
This commit is contained in:
Eric Kohl 2002-03-27 22:26:25 +00:00
parent 29e7f88439
commit fabd313f2a
4 changed files with 104 additions and 37 deletions

View file

@ -1 +1 @@
loadros system32\ntoskrnl.exe system32\hal.dll system32\drivers\ide.sys system32\drivers\vfatfs.sys system32\config\system.hiv loadros system32\ntoskrnl.exe system32\hal.dll bootc.lst

8
reactos/bootc.lst Normal file
View file

@ -0,0 +1,8 @@
system32\drivers\scsiport.sys
system32\drivers\atapi.sys
system32\drivers\class2.sys
system32\drivers\disk.sys
system32\drivers\cdrom.sys
system32\drivers\vfatfs.sys
system32\config\system.hiv
*

View file

@ -18,6 +18,7 @@ md %ROS_INSTALL%\system32\drivers
md %ROS_INSTALL%\media md %ROS_INSTALL%\media
md %ROS_INSTALL%\media\fonts md %ROS_INSTALL%\media\fonts
copy boot.bat %ROS_INSTALL% copy boot.bat %ROS_INSTALL%
copy bootc.lst %ROS_INSTALL%
copy aboot.bat %ROS_INSTALL% copy aboot.bat %ROS_INSTALL%
copy system.hiv %ROS_INSTALL%\system32\config copy system.hiv %ROS_INSTALL%\system32\config
copy loaders\dos\loadros.com %ROS_INSTALL% copy loaders\dos\loadros.com %ROS_INSTALL%

View file

@ -249,17 +249,72 @@ entry:
.checkForHive: .checkForHive:
; Check if it is a symbol file ; Check if it is a symbol file
cmp byte [bx-5],'.' cmp byte [bx-5],'.'
jne .pe_copy jne .lst_copy
cmp byte [bx-4],'h' cmp byte [bx-4],'h'
jne .pe_copy jne .lst_copy
cmp byte [bx-3],'i' cmp byte [bx-3],'i'
jne .pe_copy jne .lst_copy
cmp byte [bx-2],'v' cmp byte [bx-2],'v'
jne .pe_copy jne .lst_copy
call sym_load_module call sym_load_module
jmp .after_copy jmp .after_copy
.lst_copy:
;; Check for a module list file
cmp byte [bx-5],'.'
jne .pe_copy
cmp byte [bx-4],'l'
jne .pe_copy
cmp byte [bx-3],'s'
jne .pe_copy
cmp byte [bx-2],'t'
jne .pe_copy
call sym_load_module
push es
mov bx,0x9000
push bx
pop es
xor edi,edi
.lst_copy_bytes:
mov bx,_lst_name_local
.lst_byte:
mov al,[es:di]
inc di
cmp al,' '
jg .lst_not_space
mov byte [bx],0
inc bx
.lst_space:
mov al,[es:di]
inc di
cmp al,' '
jle .lst_space
.lst_not_space:
cmp al,'*'
je .lst_end
mov [bx],al
inc bx
jmp .lst_byte
.lst_end:
;; We are here because the terminator was encountered
mov byte [bx],0 ; Zero terminate
inc bx
mov byte [bx],0
mov [end_cmd_line],bx ; Put in cmd_line_length
mov dx,_lst_name_local; Put this address in di
mov di,dx ; This, too, at the start of the
; string
pop es
jmp .start_loading
.pe_copy: .pe_copy:
call pe_load_module call pe_load_module
@ -291,7 +346,7 @@ entry:
mov dx, di mov dx, di
jmp .start_loading jmp .start_loading
.done_loading: .done_loading
;; ;;
;; Initialize the multiboot information ;; Initialize the multiboot information
@ -714,6 +769,9 @@ _current_size:
_current_file_size: _current_file_size:
dd 0 dd 0
_lst_name_local:
times 2048 db 0
;; ;;
;; Load a SYM file ;; Load a SYM file
;; DS:DX = Filename ;; DS:DX = Filename