Subversion Repositories Kolibri OS

Rev

Rev 1151 | Rev 2288 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1151 Lrz 1
; Copyright (c) 2008-2009, 
2
; All rights reserved.
3
;
4
; Redistribution and use in source and binary forms, with or without
5
; modification, are permitted provided that the following conditions are met:
6
;       * Redistributions of source code must retain the above copyright
7
;       notice, this list of conditions and the following disclaimer.
8
;       * Redistributions in binary form must reproduce the above copyright
9
;       notice, this list of conditions and the following disclaimer in the
10
;       documentation and/or other materials provided with the distribution.
11
;       * Neither the name of the  nor the
12
;       names of its contributors may be used to endorse or promote products
13
;       derived from this software without specific prior written permission.
14
;
15
; THIS SOFTWARE IS PROVIDED BY Alexey Teplov aka  ''AS IS'' AND ANY
16
; EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17
; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18
; DISCLAIMED. IN NO EVENT SHALL  BE LIABLE FOR ANY
19
; DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20
; (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
21
; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
22
; ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23
; (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
24
; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25
;*****************************************************************************
26
; Предопределения
27
DEBUG equ 1         			;компиляция с отладочной информацией =1 без отладочной инфорации =0
28
loop_read_startos_file  equ     3	;кол-во попыток считать через callback сервис файл конфигурации блок2
29
root_dir_entry_count	equ	224	;кол-во элементов в корневой дирректории
30
;point_to_fat_struc	equ	0xA000	;временный буфер, куда будет размещена Fat таблица, и затем перенесена за 1 мб
31
ini_data_       	equ     0x2000  ;файл где размещен файл сценария загрузки, там происходит синтаксический разбор
32
size_show_section 	equ 	18
33
default_timeout_value	equ	5	;default value to timeout is will was some errors
34
flag_found_default	equ	0x1	;default value is found
35
flag_found_timeout	equ	0x2	;timeout value is found
36
flag_found_LM		equ	0x1	;found LM value
37
flag_found_RS		equ	0x2	;found RS value
38
flag_found_GTRFMS	equ	0x4	;found type RamFS
39
flag_found_RamdiskSector equ	0x8	;found RamdiskSector
40
flag_found_RamdiskCluster equ   0x16	;found RamdiskCluster
41
;statick data эти данные не предопределяются в течении выполнения всей программы.
42
save_cx		equ	word [bp-2]	;save cx size ini file
43
ret_on_ch	equ	word [bp-4]     ;point to return   разрушаемое значение
44
save_cx_d	equ	word [bp-6]     ;save cx - size default section and working section
45
status_flag	equ	word [bp-8]	;status flag
46
point_loader    equ	word [bp-10]
47
point_default   equ	word [bp-12]    ;point to default
48
 
49
;данные которые зависимы от ветки выполнения и которые могут быть переопределены в процессе выполнения программы.
50
point_to_hframe equ	word [bp-14]    ;point on start frame (for change section)
51
point_to_1	equ	word [bp-16]
52
point_to_2	equ	word [bp-18]
53
point_to_3	equ	word [bp-20]
54
point_to_4	equ	word [bp-22]
55
point_to_5	equ	word [bp-24]
56
point_to_6	equ	word [bp-26]
57
point_to_7	equ	word [bp-28]
58
point_to_8	equ	word [bp-30]
59
point_to_9	equ	word [bp-32]
60
point_to_10	equ	word [bp-34]
61
point_to_11	equ	word [bp-36]
62
point_to_12	equ	word [bp-38]
63
point_to_13	equ	word [bp-40]
64
point_to_14	equ	word [bp-42]
65
point_to_15	equ	word [bp-44]
66
point_to_16	equ	word [bp-46]
67
point_to_16	equ	word [bp-48]
68
point_to_17	equ	word [bp-50]
69
point_to_18	equ	word [bp-52]
70
;here array for fast scroling  16 word - poin to start section
71
point_to_point_def	equ	word [bp-54]
72
point_to_eframe equ	word [bp-56]    ;point on point frame
73
 
74
 
75
 
76
; тут расположено временное хранилище для cx и di при переходе на следующий буфер при поиске секций
77
find_sec_di	equ	word [bp-58]	;тут будет храниться di
78
info_real_mode_size	equ 	word [bp-60];тут храниться информация о занятой области т.е. размер, можно узнать сколько осталось места вычислив
79
free_ad_memory  equ	word	[bp-62] ;сколько у нас расширенной памяти для формирования рам диска и загрузки модулей
80
show_errors_sect equ    word    [bp-64] ;переменая которая хранит биты ошибок для каждой логической секции.
81
save_descript_size	equ  	word	[bp-66]	;save descript size previos section сохраним размер предыдущей секции которую выводили
82
save_ramdisksize	equ 	dword	[bp-70] ;save size of ramdisk in byte
83
save_file_size		equ	dword   [bp-74] ;save size of reading file
84
set_ramfs		equ	word	[bp-76]	;определенный тип файловой системы,нужно для формирования рам диска
85
point_next_fat_str	equ	word	[bp-78] ;указатель на следующий элемент fat таблицы
86
size_root_dir		equ	word	[bp-80] ;кол-во элементов в секторах по 512 байт корневой директории
87
firstDataSect		equ	word	[bp-82] ;первый сектор данных в сеторах от 0
88
DataClasters		equ	word	[bp-84] ;размер массива доступной для записи данных в кластерах.
89
point_to_free_root	equ	word	[bp-86]	;указатель на следующий пустую запись в рут дир
1156 Lrz 90
point_to_dest_file_name equ	word	[bp-88]	;указывает на начало имени файла назначения. в формате es:point_to_dest_file_name, где es =0x2000
1151 Lrz 91
data_offset		equ	word	[bp-90] ;смещение в кластерах для записанных данных т.е перекинутых за 1-й мб
92
first_input		equ	word	[bp-92]	;поле для флагов в преобразовании имени.
93
save_di_RAMDISK		equ	word	[bp-94]	;сохраним di -указателя при обработке секции
94
save_cx_RAMDISK		equ	word	[bp-96]	;сохраним размер остатка секции
95
status_flag_loader_f	equ	word	[bp-98] ;сохраним результат выполенения загрузки файла
96
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
97
;данные которые используются при обработке секции, т.е. после нажатия Enter, уже не возможно вернуться в первоначальный экран
98
;для возврата, необходимо перезапустить полностью код т.е. стартовать с 0х1000:0000