Subversion Repositories Kolibri OS

Rev

Rev 3762 | Rev 3778 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 3762 Rev 3775
1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2
;;                                                              ;;
2
;;                                                              ;;
3
;; Copyright (C) KolibriOS team 2004-2012. All rights reserved. ;;
3
;; Copyright (C) KolibriOS team 2004-2012. All rights reserved. ;;
4
;; Distributed under terms of the GNU General Public License    ;;
4
;; Distributed under terms of the GNU General Public License    ;;
5
;;                                                              ;;
5
;;                                                              ;;
6
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
6
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
7
 
7
 
8
$Revision: 3762 $
8
$Revision: 3775 $
9
 
9
 
10
 
10
 
11
keymap:
11
keymap:
12
 
12
 
13
     db   '6',27
13
     db   '6',27
14
     db   '1234567890-=',8,9
14
     db   '1234567890-=',8,9
15
     db   'qwertyuiop[]',13
15
     db   'qwertyuiop[]',13
16
     db   '~asdfghjkl;',39,96,0,'\zxcvbnm,./',0,'45 '
16
     db   '~asdfghjkl;',39,96,0,'\zxcvbnm,./',0,'45 '
17
     db   '@234567890123',180,178,184,'6',176,'7'
17
     db   '@234567890123',180,178,184,'6',176,'7'
18
     db   179,'8',181,177,183,185,182
18
     db   179,'8',181,177,183,185,182
19
     db   'AB
19
     db   'AB
20
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
20
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
21
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
21
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
22
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
22
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
23
 
23
 
24
keymap_shift:
24
keymap_shift:
25
     db   '6',27
25
     db   '6',27
26
     db   '!@#$%^&*()_+',8,9
26
     db   '!@#$%^&*()_+',8,9
27
     db   'QWERTYUIOP{}',13
27
     db   'QWERTYUIOP{}',13
28
     db   '~ASDFGHJKL:"~',0,'|ZXCVBNM<>?',0,'45 '
28
     db   '~ASDFGHJKL:"~',0,'|ZXCVBNM<>?',0,'45 '
29
     db   '@234567890123',180,178,184,'6',176,'7'
29
     db   '@234567890123',180,178,184,'6',176,'7'
30
     db   179,'8',181,177,183,185,182
30
     db   179,'8',181,177,183,185,182
31
     db   'AB>D',255,'FGHIJKLMNOPQRSTUVWXYZ'
31
     db   'AB>D',255,'FGHIJKLMNOPQRSTUVWXYZ'
32
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
32
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
33
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
33
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
34
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
34
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
35
 
35
 
36
 
36
 
37
keymap_alt:
37
keymap_alt:
38
     db   ' ',27
38
     db   ' ',27
39
     db   ' @ $  {[]}\ ',8,9
39
     db   ' @ $  {[]}\ ',8,9
40
     db   '            ',13
40
     db   '            ',13
41
     db   '             ',0,'           ',0,'4',0,' '
41
     db   '             ',0,'           ',0,'4',0,' '
42
     db   '             ',180,178,184,'6',176,'7'
42
     db   '             ',180,178,184,'6',176,'7'
43
     db   179,'8',181,177,183,185,182
43
     db   179,'8',181,177,183,185,182
44
     db   'ABCD',255,'FGHIJKLMNOPQRSTUVWXYZ'
44
     db   'ABCD',255,'FGHIJKLMNOPQRSTUVWXYZ'
45
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
45
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
46
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
46
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
47
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
47
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
48
 
48
 
49
 
49
 
50
 
50
 
51
if lang eq ru
51
if lang eq ru
52
  boot_initirq:     cp866 'Инициализация IRQ',0
52
  boot_initirq:     cp866 'Инициализация IRQ',0
53
  boot_picinit:     cp866 'Инициализация PIC',0
53
  boot_picinit:     cp866 'Инициализация PIC',0
54
  boot_v86machine:  cp866 'Инициализация системы V86 машины',0
54
  boot_v86machine:  cp866 'Инициализация системы V86 машины',0
55
  boot_inittimer:   cp866 'Инициализация системного таймера (IRQ0)',0
55
  boot_inittimer:   cp866 'Инициализация системного таймера (IRQ0)',0
56
  boot_initapic:    cp866 'Попытка инициализации APIC',0
56
  boot_initapic:    cp866 'Попытка инициализации APIC',0
57
  boot_enableirq:   cp866 'Включить прерывания 2, 6, 13, 14, 15',0
57
  boot_enableirq:   cp866 'Включить прерывания 2, 13',0
58
  boot_disabling_ide:cp866 'Запрещение прерываний в контроллере IDE',0
58
  boot_disabling_ide:cp866 'Запрещение прерываний в контроллере IDE',0
59
  boot_enabling_ide:cp866 'Разрешение прерываний в контроллере IDE',0
59
  boot_enabling_ide:cp866 'Разрешение прерываний в контроллере IDE',0
60
  boot_set_int_IDE: cp866 'Установка обработчиков прерываний для контроллера IDE',0
60
  boot_set_int_IDE: cp866 'Установка обработчиков прерываний для контроллера IDE',0
61
  boot_detectfloppy:cp866 'Поиск floppy дисководов',0
61
  boot_detectfloppy:cp866 'Поиск floppy дисководов',0
62
  boot_detecthdcd:  cp866 'Поиск жестких дисков и ATAPI приводов',0
62
  boot_detecthdcd:  cp866 'Поиск жестких дисков и ATAPI приводов',0
63
  boot_getcache:    cp866 'Получение памяти для кэша',0
63
  boot_getcache:    cp866 'Получение памяти для кэша',0
64
  boot_detectpart:  cp866 'Поиск разделов на дисковых устройствах',0
64
  boot_detectpart:  cp866 'Поиск разделов на дисковых устройствах',0
65
  boot_init_sys:    cp866 'Инициализация системного каталога /sys',0
65
  boot_init_sys:    cp866 'Инициализация системного каталога /sys',0
66
  boot_loadlibs:    cp866 'Загрузка библиотек (.obj)',0
66
  boot_loadlibs:    cp866 'Загрузка библиотек (.obj)',0
67
  boot_memdetect:   cp866 'Количество оперативной памяти','     ',' Мб',0
67
  boot_memdetect:   cp866 'Количество оперативной памяти','     ',' Мб',0
68
  boot_tss:         cp866 'Установка TSSs',0
68
  boot_tss:         cp866 'Установка TSSs',0
69
  boot_cpuid:       cp866 'Чтение CPUIDs',0
69
  boot_cpuid:       cp866 'Чтение CPUIDs',0
70
;  boot_devices:     cp866 'Поиск устройств',0
70
;  boot_devices:     cp866 'Поиск устройств',0
71
  boot_timer:       cp866 'Установка таймера',0
71
  boot_timer:       cp866 'Установка таймера',0
72
  boot_irqs:        cp866 'Переопределение IRQ',0
72
  boot_irqs:        cp866 'Переопределение IRQ',0
73
  boot_setmouse:    cp866 'Установка мыши',0
73
  boot_setmouse:    cp866 'Установка мыши',0
74
  boot_windefs:     cp866 'Установка настроек окон по умолчанию',0
74
  boot_windefs:     cp866 'Установка настроек окон по умолчанию',0
75
  boot_bgr:         cp866 'Установка фона',0
75
  boot_bgr:         cp866 'Установка фона',0
76
  boot_resirqports: cp866 'Резервирование IRQ и портов',0
76
  boot_resirqports: cp866 'Резервирование IRQ и портов',0
77
  boot_setrports:   cp866 'Установка адресов IRQ',0
77
  boot_setrports:   cp866 'Установка адресов IRQ',0
78
  boot_setostask:   cp866 'Создание процесса ядра',0
78
  boot_setostask:   cp866 'Создание процесса ядра',0
79
  boot_allirqs:     cp866 'Открытие всех IRQ',0
79
  boot_allirqs:     cp866 'Открытие всех IRQ',0
80
  boot_tsc:         cp866 'Чтение TSC',0
80
  boot_tsc:         cp866 'Чтение TSC',0
81
  boot_cpufreq:     cp866 'Частота процессора ','    ',' МГц',0
81
  boot_cpufreq:     cp866 'Частота процессора ','    ',' МГц',0
82
  boot_pal_ega:     cp866 'Установка EGA/CGA 320x200 палитры',0
82
  boot_pal_ega:     cp866 'Установка EGA/CGA 320x200 палитры',0
83
  boot_pal_vga:     cp866 'Установка VGA 640x480 палитры',0
83
  boot_pal_vga:     cp866 'Установка VGA 640x480 палитры',0
84
  boot_failed:      cp866 'Загрузка первого приложения не удалась',0
84
  boot_failed:      cp866 'Загрузка первого приложения не удалась',0
85
  boot_mtrr:        cp866 'Установка MTRR',0
85
  boot_mtrr:        cp866 'Установка MTRR',0
86
 
86
 
87
  boot_APIC_found:  cp866 'APIC включен', 0
87
  boot_APIC_found:  cp866 'APIC включен', 0
88
  boot_APIC_nfound: cp866 'APIC не найден', 0
88
  boot_APIC_nfound: cp866 'APIC не найден', 0
89
if preboot_blogesc
89
if preboot_blogesc
90
  boot_tasking:     cp866 'Все готово для запуска, нажмитре ESC для старта',0
90
  boot_tasking:     cp866 'Все готово для запуска, нажмитре ESC для старта',0
91
end if
91
end if
92
else if lang eq sp
92
else if lang eq sp
93
  include 'data32sp.inc'
93
  include 'data32sp.inc'
94
else
94
else
95
  boot_initirq      db   'Initialize IRQ',0
95
  boot_initirq      db   'Initialize IRQ',0
96
  boot_picinit      db   'Initialize PIC',0
96
  boot_picinit      db   'Initialize PIC',0
97
  boot_v86machine   db   'Initialize system V86 machine',0
97
  boot_v86machine   db   'Initialize system V86 machine',0
98
  boot_inittimer    db   'Initialize system timer (IRQ0)',0
98
  boot_inittimer    db   'Initialize system timer (IRQ0)',0
99
  boot_initapic     db   'Try to initialize APIC',0
99
  boot_initapic     db   'Try to initialize APIC',0
100
  boot_enableirq    db   'Enable interrupts 2, 6, 13, 14, 15',0
100
  boot_enableirq    db   'Enable interrupts 2, 13',0
101
  boot_disabling_ide db   'Disable interrupts in IDE controller',0
101
  boot_disabling_ide db   'Disable interrupts in IDE controller',0
102
  boot_enabling_ide db   'Enable interrupts in IDE controller',0
102
  boot_enabling_ide db   'Enable interrupts in IDE controller',0
103
  boot_set_int_IDE  db   'Set handler of interrupts for IDE controller',0
103
  boot_set_int_IDE  db   'Set handler of interrupts for IDE controller',0
104
  boot_detectfloppy db   'Search floppy drives',0
104
  boot_detectfloppy db   'Search floppy drives',0
105
  boot_detecthdcd   db   'Search hard drives and ATAPI drives',0
105
  boot_detecthdcd   db   'Search hard drives and ATAPI drives',0
106
  boot_getcache     db   'Get memory for cache',0
106
  boot_getcache     db   'Get memory for cache',0
107
  boot_detectpart   db   'Search partitions on disk devices',0
107
  boot_detectpart   db   'Search partitions on disk devices',0
108
  boot_init_sys     db   'Initialize system directory /sys',0
108
  boot_init_sys     db   'Initialize system directory /sys',0
109
  boot_loadlibs     db   'Loading librares (.obj)',0
109
  boot_loadlibs     db   'Loading librares (.obj)',0
110
  boot_memdetect    db   'Determining amount of memory',0
110
  boot_memdetect    db   'Determining amount of memory',0
111
  boot_tss          db   'Setting TSSs',0
111
  boot_tss          db   'Setting TSSs',0
112
  boot_cpuid        db   'Reading CPUIDs',0
112
  boot_cpuid        db   'Reading CPUIDs',0
113
;  boot_devices      db   'Detecting devices',0
113
;  boot_devices      db   'Detecting devices',0
114
  boot_setmouse     db   'Setting mouse',0
114
  boot_setmouse     db   'Setting mouse',0
115
  boot_windefs      db   'Setting window defaults',0
115
  boot_windefs      db   'Setting window defaults',0
116
  boot_bgr          db   'Calculating background',0
116
  boot_bgr          db   'Calculating background',0
117
  boot_resirqports  db   'Reserving IRQs & ports',0
117
  boot_resirqports  db   'Reserving IRQs & ports',0
118
  boot_setostask    db   'Setting OS task',0
118
  boot_setostask    db   'Setting OS task',0
119
  boot_allirqs      db   'Unmasking IRQs',0
119
  boot_allirqs      db   'Unmasking IRQs',0
120
  boot_tsc          db   'Reading TSC',0
120
  boot_tsc          db   'Reading TSC',0
121
  boot_cpufreq      db   'CPU frequency is ','    ',' MHz',0
121
  boot_cpufreq      db   'CPU frequency is ','    ',' MHz',0
122
  boot_pal_ega      db   'Setting EGA/CGA 320x200 palette',0
122
  boot_pal_ega      db   'Setting EGA/CGA 320x200 palette',0
123
  boot_pal_vga      db   'Setting VGA 640x480 palette',0
123
  boot_pal_vga      db   'Setting VGA 640x480 palette',0
124
  boot_failed       db   'Failed to start first app',0
124
  boot_failed       db   'Failed to start first app',0
125
  boot_mtrr         db   'Setting MTRR',0
125
  boot_mtrr         db   'Setting MTRR',0
126
 
126
 
127
  boot_APIC_found   db   'APIC enabled', 0
127
  boot_APIC_found   db   'APIC enabled', 0
128
  boot_APIC_nfound  db   'APIC not found', 0
128
  boot_APIC_nfound  db   'APIC not found', 0
129
if preboot_blogesc
129
if preboot_blogesc
130
  boot_tasking      db   'All set - press ESC to start',0
130
  boot_tasking      db   'All set - press ESC to start',0
131
end if
131
end if
132
end if
132
end if
133
 
133
 
134
;new_process_loading db 'K : New Process - loading',13,10,0
134
;new_process_loading db 'K : New Process - loading',13,10,0
135
;new_process_running db 'K : New Process - done',13,10,0
135
;new_process_running db 'K : New Process - done',13,10,0
136
start_not_enough_memory db 'K : New Process - not enough memory',13,10,0
136
start_not_enough_memory db 'K : New Process - not enough memory',13,10,0
137
 
137
 
138
msg_unresolved db 'unresolved ',0
138
msg_unresolved db 'unresolved ',0
139
msg_module     db 'in module ',0
139
msg_module     db 'in module ',0
140
if ~ lang eq sp
140
if ~ lang eq sp
141
msg_version    db 'incompatible driver version',13,10,0
141
msg_version    db 'incompatible driver version',13,10,0
142
msg_www        db 'please visit www.kolibrios.org',13,10,0
142
msg_www        db 'please visit www.kolibrios.org',13,10,0
143
end if
143
end if
144
msg_CR         db  13,10,0
144
msg_CR         db  13,10,0
145
 
145
 
146
intel_str      db "GenuineIntel",0
146
intel_str      db "GenuineIntel",0
147
AMD_str        db "AuthenticAMD",0
147
AMD_str        db "AuthenticAMD",0
148
 
148
 
149
szHwMouse       db 'ATI2D',0
149
szHwMouse       db 'ATI2D',0
150
szPS2MDriver    db 'PS2MOUSE',0
150
szPS2MDriver    db 'PS2MOUSE',0
151
;szCOM_MDriver   db 'COM_MOUSE',0
151
;szCOM_MDriver   db 'COM_MOUSE',0
152
szVidintel      db 'vidintel',0
152
szVidintel      db 'vidintel',0
153
szUSB           db 'USB',0
153
szUSB           db 'USB',0
154
szAtiHW         db '/rd/1/drivers/ati2d.drv',0
154
szAtiHW         db '/rd/1/drivers/ati2d.drv',0
155
 
155
 
156
szSTART        db 'START',0
156
szSTART        db 'START',0
157
szEXPORTS      db 'EXPORTS',0
157
szEXPORTS      db 'EXPORTS',0
158
sz_EXPORTS     db '_EXPORTS',0
158
sz_EXPORTS     db '_EXPORTS',0
159
 
159
 
160
szIMPORTS      db 'IMPORTS',0
160
szIMPORTS      db 'IMPORTS',0
161
 
161
 
162
read_firstapp  db '/sys/'
162
read_firstapp  db '/sys/'
163
firstapp       db  'LAUNCHER',0
163
firstapp       db  'LAUNCHER',0
164
notifyapp      db '@notify',0
164
notifyapp      db '@notify',0
165
if lang eq ru
165
if lang eq ru
166
ud_user_message: cp866 'Ошибка: неподдерживаемая инструкция процессора',0
166
ud_user_message: cp866 'Ошибка: неподдерживаемая инструкция процессора',0
167
else if ~ lang eq sp
167
else if ~ lang eq sp
168
ud_user_message db 'Error: unsupported processor instruction',0
168
ud_user_message db 'Error: unsupported processor instruction',0
169
end if
169
end if
170
 
170
 
171
vmode          db  '/sys/drivers/VMODE.MDR',0
171
vmode          db  '/sys/drivers/VMODE.MDR',0
172
;vrr_m          db  'VRR_M',0
172
;vrr_m          db  'VRR_M',0
173
kernel_file    db  'KERNEL  MNT'
173
kernel_file    db  'KERNEL  MNT'
174
 
174
 
175
dev_data_path  db '/RD/1/DRIVERS/DEVICES.DAT',0
175
dev_data_path  db '/RD/1/DRIVERS/DEVICES.DAT',0
176
 
176
 
177
align 4
177
align 4
178
 
178
 
179
shmem_list:
179
shmem_list:
180
 .bk           dd shmem_list
180
 .bk           dd shmem_list
181
 .fd           dd shmem_list
181
 .fd           dd shmem_list
182
 
182
 
183
dll_list:
183
dll_list:
184
 .bk           dd dll_list
184
 .bk           dd dll_list
185
 .fd           dd dll_list
185
 .fd           dd dll_list
186
 
186
 
187
pcidev_list:
187
pcidev_list:
188
 .bk           dd pcidev_list
188
 .bk           dd pcidev_list
189
 .fd           dd pcidev_list
189
 .fd           dd pcidev_list
190
 
190
 
191
MAX_DEFAULT_DLL_ADDR = 0x80000000
191
MAX_DEFAULT_DLL_ADDR = 0x80000000
192
MIN_DEFAULT_DLL_ADDR = 0x70000000
192
MIN_DEFAULT_DLL_ADDR = 0x70000000
193
dll_cur_addr   dd MIN_DEFAULT_DLL_ADDR
193
dll_cur_addr   dd MIN_DEFAULT_DLL_ADDR
194
 
194
 
195
; supported videomodes
195
; supported videomodes
196
 
196
 
197
 
197
 
198
; mike.dld {
198
; mike.dld {
199
;db 0
199
;db 0
200
;dd servetable-0x10000
200
;dd servetable-0x10000
201
;align 4
201
;align 4
202
;draw_line       dd __sys_draw_line
202
;draw_line       dd __sys_draw_line
203
;draw_pointer    dd __sys_draw_pointer
203
;draw_pointer    dd __sys_draw_pointer
204
;//mike.dld, 2006-08-02 [
204
;//mike.dld, 2006-08-02 [
205
;;drawbar         dd __sys_drawbar
205
;;drawbar         dd __sys_drawbar
206
;;drawbar         dd __sys_drawbar.forced
206
;;drawbar         dd __sys_drawbar.forced
207
;drawbar         dd vesa20_drawbar
207
;drawbar         dd vesa20_drawbar
208
;//mike.dld, 2006-08-02 ]
208
;//mike.dld, 2006-08-02 ]
209
;putpixel        dd __sys_putpixel
209
;putpixel        dd __sys_putpixel
210
; } mike.dld
210
; } mike.dld
211
 
211
 
212
 
212
 
213
align 4
213
align 4
214
keyboard   dd 1
214
keyboard   dd 1
215
syslang    dd 1
215
syslang    dd 1
216
 
216
 
217
boot_y     dd 10
217
boot_y     dd 10
218
 
218
 
219
pci_bios_entry  dd 0
219
pci_bios_entry  dd 0
220
                dw pci_code_sel
220
                dw pci_code_sel
221
 
221
 
222
if __DEBUG__ eq 1
222
if __DEBUG__ eq 1
223
  include_debug_strings
223
  include_debug_strings
224
end if
224
end if
225
 
225
 
226
IncludeIGlobals
226
IncludeIGlobals
227
 
227
 
228
align 16
228
align 16
229
gdts:
229
gdts:
230
 
230
 
231
        dw     gdte-$-1
231
        dw     gdte-$-1
232
        dd     gdts
232
        dd     gdts
233
        dw     0
233
        dw     0
234
 
234
 
235
; Attention! Do not change the order of the first four selectors. They are used in Fast System Call
235
; Attention! Do not change the order of the first four selectors. They are used in Fast System Call
236
; must be : os_code, os_data, app_code, app_data, ....
236
; must be : os_code, os_data, app_code, app_data, ....
237
 
237
 
238
int_code_l:
238
int_code_l:
239
os_code_l:
239
os_code_l:
240
        dw     0xffff
240
        dw     0xffff
241
        dw     0x0000
241
        dw     0x0000
242
        db     0x00
242
        db     0x00
243
        dw     11011111b *256 +10011010b
243
        dw     11011111b *256 +10011010b
244
        db     0x00
244
        db     0x00
245
 
245
 
246
int_data_l:
246
int_data_l:
247
os_data_l:
247
os_data_l:
248
        dw     0xffff
248
        dw     0xffff
249
        dw     0x0000
249
        dw     0x0000
250
        db     0x00
250
        db     0x00
251
        dw     11011111b *256 +10010010b
251
        dw     11011111b *256 +10010010b
252
        db     0x00
252
        db     0x00
253
 
253
 
254
app_code_l:
254
app_code_l:
255
        dw 0xFFFF
255
        dw 0xFFFF
256
        dw 0
256
        dw 0
257
        db 0
257
        db 0
258
        db cpl3
258
        db cpl3
259
        dw G32+D32+0xF;
259
        dw G32+D32+0xF;
260
 
260
 
261
app_data_l:
261
app_data_l:
262
        dw 0xFFFF
262
        dw 0xFFFF
263
        dw 0
263
        dw 0
264
        db 0
264
        db 0
265
        db drw3
265
        db drw3
266
        dw G32+D32+0xF;
266
        dw G32+D32+0xF;
267
 
267
 
268
; ------------- PCI BIOS ------------------
268
; ------------- PCI BIOS ------------------
269
 
269
 
270
pci_code_32:
270
pci_code_32:
271
        dw 0         ;lim  0-15
271
        dw 0         ;lim  0-15
272
        dw 0         ;base 0-15
272
        dw 0         ;base 0-15
273
        db 0         ;base 16-23
273
        db 0         ;base 16-23
274
        db cpl0      ;type
274
        db cpl0      ;type
275
        db D32       ;lim 16-19+props
275
        db D32       ;lim 16-19+props
276
        db 0         ;base 24-31
276
        db 0         ;base 24-31
277
 
277
 
278
pci_data_32:
278
pci_data_32:
279
        dw 0         ;lim  0-15
279
        dw 0         ;lim  0-15
280
        dw 0         ;base 0-15
280
        dw 0         ;base 0-15
281
        db 0         ;base 16-23
281
        db 0         ;base 16-23
282
        db dpl0      ;type
282
        db dpl0      ;type
283
        db D32       ;lim 16-19+props
283
        db D32       ;lim 16-19+props
284
        db 0         ;base 24-31
284
        db 0         ;base 24-31
285
 
285
 
286
; --------------- APM ---------------------
286
; --------------- APM ---------------------
287
apm_code_32:
287
apm_code_32:
288
        dw     0x0f        ; limit 64kb
288
        dw     0x0f        ; limit 64kb
289
        db     0, 0, 0
289
        db     0, 0, 0
290
        dw     11010000b *256 +10011010b
290
        dw     11010000b *256 +10011010b
291
        db     0x00
291
        db     0x00
292
apm_code_16:
292
apm_code_16:
293
        dw     0x0f
293
        dw     0x0f
294
        db     0, 0, 0
294
        db     0, 0, 0
295
        dw     10010000b *256 +10011010b
295
        dw     10010000b *256 +10011010b
296
        db     0x00
296
        db     0x00
297
apm_data_16:
297
apm_data_16:
298
        dw     0x0f
298
        dw     0x0f
299
        db     0, 0, 0
299
        db     0, 0, 0
300
        dw     10010000b *256 +10010010b
300
        dw     10010000b *256 +10010010b
301
        db     0x00
301
        db     0x00
302
; -----------------------------------------
302
; -----------------------------------------
303
 
303
 
304
graph_data_l:
304
graph_data_l:
305
 
305
 
306
        dw     0x7ff
306
        dw     0x7ff
307
        dw     0x0000
307
        dw     0x0000
308
        db     0x00
308
        db     0x00
309
        dw     11010000b *256 +11110010b
309
        dw     11010000b *256 +11110010b
310
        db     0x00
310
        db     0x00
311
tss0_l:
311
tss0_l:
312
        dw     sizeof.TSS-1
312
        dw     sizeof.TSS-1
313
        dw     tss and 0xFFFF
313
        dw     tss and 0xFFFF
314
        db     (tss shr 16) and 0xFF
314
        db     (tss shr 16) and 0xFF
315
        db     10001001b
315
        db     10001001b
316
        dw     (tss shr 16) and 0xFF00
316
        dw     (tss shr 16) and 0xFF00
317
 
317
 
318
tls_data_l:
318
tls_data_l:
319
        dw 0x0FFF
319
        dw 0x0FFF
320
        dw 0
320
        dw 0
321
        db 0
321
        db 0
322
        db drw3
322
        db drw3
323
        dw D32
323
        dw D32
324
 
324
 
325
endofcode:
325
endofcode:
326
gdte:
326
gdte:
327
 
327
 
328
diff16 "end of .data segment",0,$
328
diff16 "end of .data segment",0,$
329
 
329
 
330
align 16
330
align 16
331
cur_saved_data:
331
cur_saved_data:
332
                    rb 4096
332
                    rb 4096
333
fpu_data:
333
fpu_data:
334
                    rb 512
334
                    rb 512
335
 
335
 
336
mem_block_list      rd 64*2
336
mem_block_list      rd 64*2
337
mem_used_list       rd 64*2
337
mem_used_list       rd 64*2
338
mem_hash_cnt        rd 64
338
mem_hash_cnt        rd 64
339
 
339
 
340
cpu_freq            rq 1
340
cpu_freq            rq 1
341
 
341
 
342
heap_mutex          MUTEX
342
heap_mutex          MUTEX
343
heap_size           rd 1
343
heap_size           rd 1
344
heap_free           rd 1
344
heap_free           rd 1
345
heap_blocks         rd 1
345
heap_blocks         rd 1
346
free_blocks         rd 1
346
free_blocks         rd 1
347
 
347
 
348
mem_block_mask      rd 2
348
mem_block_mask      rd 2
349
next_memblock       rd 1
349
next_memblock       rd 1
350
 
350
 
351
 
351
 
352
mst                 MEM_STATE
352
mst                 MEM_STATE
353
 
353
 
354
page_start          rd 1
354
page_start          rd 1
355
page_end            rd 1
355
page_end            rd 1
356
sys_page_map        rd 1
356
sys_page_map        rd 1
357
os_stack_seg        rd 1
357
os_stack_seg        rd 1
358
 
358
 
359
 
359
 
360
srv.fd              rd 1
360
srv.fd              rd 1
361
srv.bk              rd 1
361
srv.bk              rd 1
362
 
362
 
363
 
363
 
364
align 16
364
align 16
365
 
365
 
366
_display            display_t
366
_display            display_t
367
 
367
 
368
_WinMapAddress      rd 1
368
_WinMapAddress      rd 1
369
_WinMapSize         rd 1
369
_WinMapSize         rd 1
370
 
370
 
371
LFBAddress          rd 1
371
LFBAddress          rd 1
372
Screen_Max_X        rd 1
372
Screen_Max_X        rd 1
373
Screen_Max_Y        rd 1
373
Screen_Max_Y        rd 1
374
 
374
 
375
SCR_MODE            rw 2
375
SCR_MODE            rw 2
376
 
376
 
377
PUTPIXEL            rd 1
377
PUTPIXEL            rd 1
378
GETPIXEL            rd 1
378
GETPIXEL            rd 1
379
 
379
 
380
if VESA_1_2_VIDEO
380
if VESA_1_2_VIDEO
381
BANK_SWITCH         rd 1  reserved for vesa 1.2
381
BANK_SWITCH         rd 1  reserved for vesa 1.2
382
BANK_RW             rd 1
382
BANK_RW             rd 1
383
end if
383
end if
384
 
384
 
385
REDRAW_BACKGROUND   rb 4
385
REDRAW_BACKGROUND   rb 4
386
 
386
 
387
align 4
387
align 4
388
draw_data:          rb 16*256
388
draw_data:          rb 16*256
389
BPSLine_calc_area   rd 1440
389
BPSLine_calc_area   rd 1440
390
d_width_calc_area   rd 1140
390
d_width_calc_area   rd 1140
391
 
391
 
392
mouseunder          rd 16*24
392
mouseunder          rd 16*24
393
 
393
 
394
MOUSE_PICTURE       rd 1
394
MOUSE_PICTURE       rd 1
395
 
395
 
396
MOUSE_SCROLL_H      rw 1
396
MOUSE_SCROLL_H      rw 1
397
MOUSE_X:            rw 1
397
MOUSE_X:            rw 1
398
MOUSE_Y:            rw 1
398
MOUSE_Y:            rw 1
399
MOUSE_SCROLL_V      rw 1
399
MOUSE_SCROLL_V      rw 1
400
 
400
 
401
X_UNDER             rw 1
401
X_UNDER             rw 1
402
Y_UNDER             rw 1
402
Y_UNDER             rw 1
403
COLOR_TEMP          rd 1
403
COLOR_TEMP          rd 1
404
MOUSE_COLOR_MEM     rd 1
404
MOUSE_COLOR_MEM     rd 1
405
 
405
 
406
BTN_DOWN:           rb 4
406
BTN_DOWN:           rb 4
407
 
407
 
408
align 4
408
align 4
409
def_cursor          rd 1
409
def_cursor          rd 1
410
def_cursor_clock    rd 1
410
def_cursor_clock    rd 1
411
current_cursor      rd 1
411
current_cursor      rd 1
412
hw_cursor           rd 1
412
hw_cursor           rd 1
413
cur_saved_base      rd 1
413
cur_saved_base      rd 1
414
 
414
 
415
cur.lock            rd 1   ;1 - lock update, 2- hide
415
cur.lock            rd 1   ;1 - lock update, 2- hide
416
cur.left            rd 1   ;cursor clip box
416
cur.left            rd 1   ;cursor clip box
417
cur.top             rd 1
417
cur.top             rd 1
418
cur.right           rd 1
418
cur.right           rd 1
419
cur.bottom          rd 1
419
cur.bottom          rd 1
420
cur.w               rd 1
420
cur.w               rd 1
421
cur.h               rd 1
421
cur.h               rd 1
422
 
422
 
423
ipc_tmp             rd 1
423
ipc_tmp             rd 1
424
ipc_pdir            rd 1
424
ipc_pdir            rd 1
425
ipc_ptab            rd 1
425
ipc_ptab            rd 1
426
 
426
 
427
proc_mem_map        rd 1
427
proc_mem_map        rd 1
428
proc_mem_pdir       rd 1
428
proc_mem_pdir       rd 1
429
proc_mem_tab        rd 1
429
proc_mem_tab        rd 1
430
 
430
 
431
tmp_task_pdir       rd 1
431
tmp_task_pdir       rd 1
432
tmp_task_ptab       rd 1
432
tmp_task_ptab       rd 1
433
 
433
 
434
default_io_map      rd 1
434
default_io_map      rd 1
435
 
435
 
436
LFBSize             rd 1
436
LFBSize             rd 1
437
 
437
 
438
current_slot        rd 1
438
current_slot        rd 1
439
 
439
 
440
; status
440
; status
441
hd1_status                      rd 1  ; 0 - free : other - pid
441
hd1_status                      rd 1  ; 0 - free : other - pid
442
application_table_owner         rd 1  ; 0 - free : other - pid
442
application_table_owner         rd 1  ; 0 - free : other - pid
443
application_table_mutex         MUTEX
443
application_table_mutex         MUTEX
444
 
444
 
445
; device addresses
445
; device addresses
446
mididp                          rd 1
446
mididp                          rd 1
447
midisp                          rd 1
447
midisp                          rd 1
448
 
448
 
449
cdbase                          rd 1
449
cdbase                          rd 1
450
cdid                            rd 1
450
cdid                            rd 1
451
 
451
 
452
hdbase                          rd 1    ; for boot 0x1f0
452
hdbase                          rd 1    ; for boot 0x1f0
453
hdid                            rd 1
453
hdid                            rd 1
454
hdpos                           rd 1    ; for boot 0x1
454
hdpos                           rd 1    ; for boot 0x1
455
label   known_part dword
455
label   known_part dword
456
fat32part                       rd 1    ; for boot 0x1
456
fat32part                       rd 1    ; for boot 0x1
457
cdpos                           rd 1
457
cdpos                           rd 1
458
 
458
 
459
;CPUID information
459
;CPUID information
460
cpu_vendor                      rd 3
460
cpu_vendor                      rd 3
461
cpu_sign                        rd 1
461
cpu_sign                        rd 1
462
cpu_info                        rd 1
462
cpu_info                        rd 1
463
cpu_caps                        rd 4
463
cpu_caps                        rd 4
464
 
464
 
465
 
465
 
466
pg_data                         PG_DATA
466
pg_data                         PG_DATA
467
heap_test                       rd 1
467
heap_test                       rd 1
468
 
468
 
469
buttontype                      rd 1
469
buttontype                      rd 1
470
windowtypechanged               rd 1
470
windowtypechanged               rd 1
471
 
471
 
472
hd_entries                      rd 1     ;unused ? 0xfe10
472
hd_entries                      rd 1     ;unused ? 0xfe10
473
 
473
 
474
mouse_active                    rd 1
474
mouse_active                    rd 1
475
mouse_pause                     rd 1
475
mouse_pause                     rd 1
476
 
476
 
477
redrawmouse_unconditional       rd 1
477
redrawmouse_unconditional       rd 1
478
 
478
 
479
img_background                  rd 1
479
img_background                  rd 1
480
mem_BACKGROUND                  rd 1
480
mem_BACKGROUND                  rd 1
481
static_background_data          rd 1
481
static_background_data          rd 1
482
 
482
 
483
BgrDrawMode                     rd 1
483
BgrDrawMode                     rd 1
484
BgrDataWidth                    rd 1
484
BgrDataWidth                    rd 1
485
BgrDataHeight                   rd 1
485
BgrDataHeight                   rd 1
486
 
486
 
487
skin_data                       rd 1
487
skin_data                       rd 1
488
 
488
 
489
cache_ide0:
489
cache_ide0:
490
cache_ide0_pointer              rd 1
490
cache_ide0_pointer              rd 1
491
cache_ide0_size                 rd 1   ; not use
491
cache_ide0_size                 rd 1   ; not use
492
cache_ide0_data_pointer         rd 1
492
cache_ide0_data_pointer         rd 1
493
cache_ide0_system_data_size     rd 1   ; not use
493
cache_ide0_system_data_size     rd 1   ; not use
494
cache_ide0_appl_data_size       rd 1   ; not use
494
cache_ide0_appl_data_size       rd 1   ; not use
495
cache_ide0_system_data          rd 1
495
cache_ide0_system_data          rd 1
496
cache_ide0_appl_data            rd 1
496
cache_ide0_appl_data            rd 1
497
cache_ide0_system_sad_size      rd 1
497
cache_ide0_system_sad_size      rd 1
498
cache_ide0_appl_sad_size        rd 1
498
cache_ide0_appl_sad_size        rd 1
499
cache_ide0_search_start         rd 1
499
cache_ide0_search_start         rd 1
500
cache_ide0_appl_search_start    rd 1
500
cache_ide0_appl_search_start    rd 1
501
 
501
 
502
cache_ide1:
502
cache_ide1:
503
cache_ide1_pointer              rd 1
503
cache_ide1_pointer              rd 1
504
cache_ide1_size                 rd 1   ; not use
504
cache_ide1_size                 rd 1   ; not use
505
cache_ide1_data_pointer         rd 1
505
cache_ide1_data_pointer         rd 1
506
cache_ide1_system_data_size     rd 1   ; not use
506
cache_ide1_system_data_size     rd 1   ; not use
507
cache_ide1_appl_data_size       rd 1   ; not use
507
cache_ide1_appl_data_size       rd 1   ; not use
508
cache_ide1_system_data          rd 1
508
cache_ide1_system_data          rd 1
509
cache_ide1_appl_data            rd 1
509
cache_ide1_appl_data            rd 1
510
cache_ide1_system_sad_size      rd 1
510
cache_ide1_system_sad_size      rd 1
511
cache_ide1_appl_sad_size        rd 1
511
cache_ide1_appl_sad_size        rd 1
512
cache_ide1_search_start         rd 1
512
cache_ide1_search_start         rd 1
513
cache_ide1_appl_search_start    rd 1
513
cache_ide1_appl_search_start    rd 1
514
 
514
 
515
cache_ide2:
515
cache_ide2:
516
cache_ide2_pointer              rd 1
516
cache_ide2_pointer              rd 1
517
cache_ide2_size                 rd 1   ; not use
517
cache_ide2_size                 rd 1   ; not use
518
cache_ide2_data_pointer         rd 1
518
cache_ide2_data_pointer         rd 1
519
cache_ide2_system_data_size     rd 1   ; not use
519
cache_ide2_system_data_size     rd 1   ; not use
520
cache_ide2_appl_data_size       rd 1   ; not use
520
cache_ide2_appl_data_size       rd 1   ; not use
521
cache_ide2_system_data          rd 1
521
cache_ide2_system_data          rd 1
522
cache_ide2_appl_data            rd 1
522
cache_ide2_appl_data            rd 1
523
cache_ide2_system_sad_size      rd 1
523
cache_ide2_system_sad_size      rd 1
524
cache_ide2_appl_sad_size        rd 1
524
cache_ide2_appl_sad_size        rd 1
525
cache_ide2_search_start         rd 1
525
cache_ide2_search_start         rd 1
526
cache_ide2_appl_search_start    rd 1
526
cache_ide2_appl_search_start    rd 1
527
 
527
 
528
cache_ide3:
528
cache_ide3:
529
cache_ide3_pointer              rd 1
529
cache_ide3_pointer              rd 1
530
cache_ide3_size                 rd 1   ; not use
530
cache_ide3_size                 rd 1   ; not use
531
cache_ide3_data_pointer         rd 1
531
cache_ide3_data_pointer         rd 1
532
cache_ide3_system_data_size     rd 1   ; not use
532
cache_ide3_system_data_size     rd 1   ; not use
533
cache_ide3_appl_data_size       rd 1   ; not use
533
cache_ide3_appl_data_size       rd 1   ; not use
534
cache_ide3_system_data          rd 1
534
cache_ide3_system_data          rd 1
535
cache_ide3_appl_data            rd 1
535
cache_ide3_appl_data            rd 1
536
cache_ide3_system_sad_size      rd 1
536
cache_ide3_system_sad_size      rd 1
537
cache_ide3_appl_sad_size        rd 1
537
cache_ide3_appl_sad_size        rd 1
538
cache_ide3_search_start         rd 1
538
cache_ide3_search_start         rd 1
539
cache_ide3_appl_search_start    rd 1
539
cache_ide3_appl_search_start    rd 1
540
 
540
 
541
debug_step_pointer              rd 1
541
debug_step_pointer              rd 1
542
 
542
 
543
lba_read_enabled                rd 1  ; 0 = disabled , 1 = enabled
543
lba_read_enabled                rd 1  ; 0 = disabled , 1 = enabled
544
pci_access_enabled              rd 1  ; 0 = disabled , 1 = enabled
544
pci_access_enabled              rd 1  ; 0 = disabled , 1 = enabled
545
 
545
 
546
hdd_appl_data                   rb 1  ; 0 = system cache, 1 - application cache
546
hdd_appl_data                   rb 1  ; 0 = system cache, 1 - application cache
547
cd_appl_data                    rb 1  ; 0 = system cache, 1 - application cache
547
cd_appl_data                    rb 1  ; 0 = system cache, 1 - application cache
548
 
548
 
549
timer_ticks_enable              rb 1  ; for cd driver
549
timer_ticks_enable              rb 1  ; for cd driver
550
 
550
 
551
align 4
551
align 4
552
NumBiosDisks                    rd 1
552
NumBiosDisks                    rd 1
553
BiosDisksData                   rb 200h
553
BiosDisksData                   rb 200h
554
BiosDiskCaches                  rb 80h*(cache_ide1-cache_ide0)
554
BiosDiskCaches                  rb 80h*(cache_ide1-cache_ide0)
555
BiosDiskPartitions              rd 80h
555
BiosDiskPartitions              rd 80h
556
 
556
 
557
align 16
557
align 16
558
DRIVE_DATA:                     rb DRIVE_DATA_SIZE
558
DRIVE_DATA:                     rb DRIVE_DATA_SIZE
559
 
559
 
560
IncludeUGlobals
560
IncludeUGlobals
561
 
561
 
562
uglobals_size = $ - endofcode
562
uglobals_size = $ - endofcode
563
 
563
 
564
if ~ lang eq sp
564
if ~ lang eq sp
565
diff16 "end of .bss",0,$
565
diff16 "end of .bss",0,$
566
end if
566
end if
567
 
567
 
568
org (OS_BASE+0x0100000)
568
org (OS_BASE+0x0100000)
569
 
569
 
570
RAMDISK:                        rb 2880*512
570
RAMDISK:                        rb 2880*512
571
RAMDISK_FAT:                    rb 2856*2
571
RAMDISK_FAT:                    rb 2856*2
572
FLOPPY_FAT:                     rb 2856*2
572
FLOPPY_FAT:                     rb 2856*2
573
 
573
 
574
_CLEAN_ZONE:
574
_CLEAN_ZONE:
575
 
575
 
576
align 4096
576
align 4096
577
_IDE_DMA                        rb 16*512
577
_IDE_DMA                        rb 16*512
578
BgrAuxTable                     rb 32768
578
BgrAuxTable                     rb 32768
579
BUTTON_INFO                     rb 64*1024
579
BUTTON_INFO                     rb 64*1024
580
RESERVED_PORTS:                 rb 64*1024
580
RESERVED_PORTS:                 rb 64*1024
581
FLOPPY_BUFF:                    rb 18*512           ;one track
581
FLOPPY_BUFF:                    rb 18*512           ;one track
582
 
582
 
583
sys_pgmap:                      rb 1024*1024/8
583
sys_pgmap:                      rb 1024*1024/8
584
>
584
>