Subversion Repositories Kolibri OS

Rev

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

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