Subversion Repositories Kolibri OS

Rev

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

Rev 7124 Rev 7136
1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2
;;                                                              ;;
2
;;                                                              ;;
3
;; Copyright (C) KolibriOS team 2004-2015. All rights reserved. ;;
3
;; Copyright (C) KolibriOS team 2004-2015. 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: 7124 $
8
$Revision: 7136 $
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
 
149
 
150
szPS2MDriver    db '/rd/1/drivers/PS2MOUSE.SYS',0
150
szPS2MDriver    db '/rd/1/drivers/PS2MOUSE.SYS',0
151
;szCOM_MDriver   db 'COM_MOUSE',0
151
;szCOM_MDriver   db 'COM_MOUSE',0
152
szVidintel      db '/rd/1/drivers/vidintel.sys',0
152
szVidintel      db '/rd/1/drivers/vidintel.sys',0
153
szUSB           db 'USB',0
153
szUSB           db 'USB',0
154
 
154
 
155
szEXPORTS      db 'EXPORTS',0
155
szEXPORTS      db 'EXPORTS',0
156
sz_EXPORTS     db '_EXPORTS',0
156
sz_EXPORTS     db '_EXPORTS',0
157
 
157
 
158
szIMPORTS      db 'IMPORTS',0
158
szIMPORTS      db 'IMPORTS',0
159
 
159
 
160
read_firstapp  db '/sys/'
160
read_firstapp  db '/sys/'
161
firstapp       db '/RD/1/LAUNCHER',0
161
firstapp       db '/RD/1/LAUNCHER',0
162
notifyapp      db '/RD/1/@notify',0
162
notifyapp      db '/RD/1/@notify',0
163
if lang eq ru
163
if lang eq ru
164
ud_user_message  cp866 'Ошибка: неподдерживаемая инструкция процессора',0
164
ud_user_message  cp866 'Ошибка: неподдерживаемая инструкция процессора',0
165
mtrr_user_message cp866 '"Обнаружена проблема с конфигурацией MTRR.\nПроизводительность может быть пониженной" -dW',0
165
mtrr_user_message cp866 '"Обнаружена проблема с конфигурацией MTRR.\nПроизводительность может быть пониженной" -dW',0
166
else if ~ lang eq sp
166
else if ~ lang eq sp
167
ud_user_message db 'Error: unsupported processor instruction',0
167
ud_user_message db 'Error: unsupported processor instruction',0
168
mtrr_user_message db '"There is a problem with MTRR configuration.\nPerformance can be low" -dW',0
168
mtrr_user_message db '"There is a problem with MTRR configuration.\nPerformance can be low" -dW',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
kernel_file_load:
172
kernel_file_load:
173
; load kernel.mnt to _CLEAN_ZONE
173
; load kernel.mnt to _CLEAN_ZONE
174
        dd      0       ; subfunction
174
        dd      0       ; subfunction
175
        dq      0       ; offset in file
175
        dq      0       ; offset in file
176
        dd      0x31000 ; number of bytes to read
176
        dd      0x31000 ; number of bytes to read
177
        dd      _CLEAN_ZONE ; buffer for data
177
        dd      _CLEAN_ZONE ; buffer for data
178
        db      '/RD/1/KERNEL.MNT',0
178
        db      '/RD/1/KERNEL.MNT',0
179
 
179
 
180
dev_data_path  db '/RD/1/DRIVERS/DEVICES.DAT',0
180
dev_data_path  db '/RD/1/DRIVERS/DEVICES.DAT',0
181
 
181
 
182
align 4
182
align 4
183
 
183
 
184
shmem_list:
184
shmem_list:
185
 .bk           dd shmem_list
185
 .bk           dd shmem_list
186
 .fd           dd shmem_list
186
 .fd           dd shmem_list
187
 
187
 
188
dll_list:
188
dll_list:
189
 .bk           dd dll_list
189
 .bk           dd dll_list
190
 .fd           dd dll_list
190
 .fd           dd dll_list
191
 
191
 
192
pcidev_list:
192
pcidev_list:
193
 .bk           dd pcidev_list
193
 .bk           dd pcidev_list
194
 .fd           dd pcidev_list
194
 .fd           dd pcidev_list
195
 
195
 
196
MAX_DEFAULT_DLL_ADDR = 0x80000000
196
MAX_DEFAULT_DLL_ADDR = 0x80000000
197
MIN_DEFAULT_DLL_ADDR = 0x70000000
197
MIN_DEFAULT_DLL_ADDR = 0x70000000
198
dll_cur_addr   dd MIN_DEFAULT_DLL_ADDR
198
dll_cur_addr   dd MIN_DEFAULT_DLL_ADDR
199
 
199
 
200
; supported videomodes
200
; supported videomodes
201
 
201
 
202
 
202
 
203
; mike.dld {
203
; mike.dld {
204
;db 0
204
;db 0
205
;dd servetable-0x10000
205
;dd servetable-0x10000
206
;align 4
206
;align 4
207
;draw_line       dd __sys_draw_line
207
;draw_line       dd __sys_draw_line
208
;draw_pointer    dd __sys_draw_pointer
208
;draw_pointer    dd __sys_draw_pointer
209
;//mike.dld, 2006-08-02 [
209
;//mike.dld, 2006-08-02 [
210
;;drawbar         dd __sys_drawbar
210
;;drawbar         dd __sys_drawbar
211
;;drawbar         dd __sys_drawbar.forced
211
;;drawbar         dd __sys_drawbar.forced
212
;drawbar         dd vesa20_drawbar
212
;drawbar         dd vesa20_drawbar
213
;//mike.dld, 2006-08-02 ]
213
;//mike.dld, 2006-08-02 ]
214
;putpixel        dd __sys_putpixel
214
;putpixel        dd __sys_putpixel
215
; } mike.dld
215
; } mike.dld
216
 
216
 
217
 
217
 
218
align 4
218
align 4
219
keyboard   dd 1
219
keyboard   dd 1
220
syslang    dd 1
220
syslang    dd 1
221
 
221
 
222
boot_y     dd 10
222
boot_y     dd 10
223
 
223
 
224
pci_bios_entry  dd 0
224
pci_bios_entry  dd 0
225
                dw pci_code_sel
225
                dw pci_code_sel
226
 
226
 
227
if __DEBUG__ eq 1
227
if __DEBUG__ eq 1
228
  include_debug_strings
228
  include_debug_strings
229
end if
229
end if
230
 
230
 
231
IncludeIGlobals
231
IncludeIGlobals
232
 
232
 
233
align 16
233
align 16
234
gdts:
234
gdts:
235
 
235
 
236
        dw     gdte-$-1
236
        dw     gdte-$-1
237
        dd     gdts
237
        dd     gdts
238
        dw     0
238
        dw     0
239
 
239
 
240
; Attention! Do not change the order of the first four selectors. They are used in Fast System Call
240
; Attention! Do not change the order of the first four selectors. They are used in Fast System Call
241
; must be : os_code, os_data, app_code, app_data, ....
241
; must be : os_code, os_data, app_code, app_data, ....
242
 
242
 
243
int_code_l:
243
int_code_l:
244
os_code_l:
244
os_code_l:
245
        dw     0xffff
245
        dw     0xffff
246
        dw     0x0000
246
        dw     0x0000
247
        db     0x00
247
        db     0x00
248
        dw     11011111b *256 +10011010b
248
        dw     11011111b *256 +10011010b
249
        db     0x00
249
        db     0x00
250
 
250
 
251
int_data_l:
251
int_data_l:
252
os_data_l:
252
os_data_l:
253
        dw     0xffff
253
        dw     0xffff
254
        dw     0x0000
254
        dw     0x0000
255
        db     0x00
255
        db     0x00
256
        dw     11011111b *256 +10010010b
256
        dw     11011111b *256 +10010010b
257
        db     0x00
257
        db     0x00
258
 
258
 
259
app_code_l:
259
app_code_l:
260
        dw 0xFFFF
260
        dw 0xFFFF
261
        dw 0
261
        dw 0
262
        db 0
262
        db 0
263
        db cpl3
263
        db cpl3
264
        dw G32+D32+0xF;
264
        dw G32+D32+0xF;
265
 
265
 
266
app_data_l:
266
app_data_l:
267
        dw 0xFFFF
267
        dw 0xFFFF
268
        dw 0
268
        dw 0
269
        db 0
269
        db 0
270
        db drw3
270
        db drw3
271
        dw G32+D32+0xF;
271
        dw G32+D32+0xF;
272
 
272
 
273
; ------------- PCI BIOS ------------------
273
; ------------- PCI BIOS ------------------
274
 
274
 
275
pci_code_32:
275
pci_code_32:
276
        dw 0         ;lim  0-15
276
        dw 0         ;lim  0-15
277
        dw 0         ;base 0-15
277
        dw 0         ;base 0-15
278
        db 0         ;base 16-23
278
        db 0         ;base 16-23
279
        db cpl0      ;type
279
        db cpl0      ;type
280
        db D32       ;lim 16-19+props
280
        db D32       ;lim 16-19+props
281
        db 0         ;base 24-31
281
        db 0         ;base 24-31
282
 
282
 
283
pci_data_32:
283
pci_data_32:
284
        dw 0         ;lim  0-15
284
        dw 0         ;lim  0-15
285
        dw 0         ;base 0-15
285
        dw 0         ;base 0-15
286
        db 0         ;base 16-23
286
        db 0         ;base 16-23
287
        db dpl0      ;type
287
        db dpl0      ;type
288
        db D32       ;lim 16-19+props
288
        db D32       ;lim 16-19+props
289
        db 0         ;base 24-31
289
        db 0         ;base 24-31
290
 
290
 
291
; --------------- APM ---------------------
291
; --------------- APM ---------------------
292
apm_code_32:
292
apm_code_32:
293
        dw     0x0f        ; limit 64kb
293
        dw     0x0f        ; limit 64kb
294
        db     0, 0, 0
294
        db     0, 0, 0
295
        dw     11010000b *256 +10011010b
295
        dw     11010000b *256 +10011010b
296
        db     0x00
296
        db     0x00
297
apm_code_16:
297
apm_code_16:
298
        dw     0x0f
298
        dw     0x0f
299
        db     0, 0, 0
299
        db     0, 0, 0
300
        dw     10010000b *256 +10011010b
300
        dw     10010000b *256 +10011010b
301
        db     0x00
301
        db     0x00
302
apm_data_16:
302
apm_data_16:
303
        dw     0x0f
303
        dw     0x0f
304
        db     0, 0, 0
304
        db     0, 0, 0
305
        dw     10010000b *256 +10010010b
305
        dw     10010000b *256 +10010010b
306
        db     0x00
306
        db     0x00
307
; -----------------------------------------
307
; -----------------------------------------
308
 
308
 
309
graph_data_l:
309
graph_data_l:
310
 
310
 
311
        dw     0x7ff
311
        dw     0x7ff
312
        dw     0x0000
312
        dw     0x0000
313
        db     0x00
313
        db     0x00
314
        dw     11010000b *256 +11110010b
314
        dw     11010000b *256 +11110010b
315
        db     0x00
315
        db     0x00
316
tss0_l:
316
tss0_l:
317
        dw     sizeof.TSS-1
317
        dw     sizeof.TSS-1
318
        dw     tss and 0xFFFF
318
        dw     tss and 0xFFFF
319
        db     (tss shr 16) and 0xFF
319
        db     (tss shr 16) and 0xFF
320
        db     10001001b
320
        db     10001001b
321
        dw     (tss shr 16) and 0xFF00
321
        dw     (tss shr 16) and 0xFF00
322
 
322
 
323
tls_data_l:
323
tls_data_l:
324
        dw 0x0FFF
324
        dw 0x0FFF
325
        dw 0
325
        dw 0
326
        db 0
326
        db 0
327
        db drw3
327
        db drw3
328
        dw D32
328
        dw D32
329
 
329
 
330
endofcode:
330
endofcode:
331
gdte:
331
gdte:
332
 
332
 
333
diff16 "end of .data segment",0,$
333
diff16 "end of .data segment",0,$
334
 
334
 
335
align 16
335
align 16
336
cur_saved_data:
336
cur_saved_data:
337
        rb  4096
337
        rb  4096
338
fpu_data:
338
fpu_data:
339
        rb  512
339
        rb  512
340
draw_data:
340
draw_data:
341
        rb  32*256
341
        rb  32*256
342
BPSLine_calc_area   rd  1440
342
BPSLine_calc_area   rd  1440
343
d_width_calc_area   rd  1140
343
d_width_calc_area   rd  1140
344
mouseunder          rd  16*24
344
mouseunder          rd  16*24
345
 
345
 
346
mem_block_list      rd  64*2
346
mem_block_list      rd  64*2
347
mem_used_list       rd  64*2
347
mem_used_list       rd  64*2
348
mem_hash_cnt        rd  64
348
mem_hash_cnt        rd  64
349
 
349
 
350
thr_slot_map        rd  8
350
thr_slot_map        rd  8
351
 
351
 
352
_display            display_t
352
_display            display_t
353
bios_fb             FRB
353
bios_fb             FRB
354
 
354
 
355
mst                 MEM_STATE
355
mst                 MEM_STATE
356
 
356
 
357
cpu_freq            dq  ?
357
cpu_freq            dq  ?
358
 
358
 
359
heap_mutex          MUTEX
359
heap_mutex          MUTEX
360
heap_size           dd  ?
360
heap_size           dd  ?
361
heap_free           dd  ?
361
heap_free           dd  ?
362
heap_blocks         dd  ?
362
heap_blocks         dd  ?
363
free_blocks         dd  ?
363
free_blocks         dd  ?
364
mem_block_mask      rd  2
364
mem_block_mask      rd  2
365
next_memblock       dd  ?
365
next_memblock       dd  ?
366
 
366
 
367
pte_valid_mask      dd  ?
367
pte_valid_mask      dd  ?
368
page_start          dd  ?
368
page_start          dd  ?
369
page_end            dd  ?
369
page_end            dd  ?
370
sys_page_map        dd  ?
370
sys_page_map        dd  ?
371
os_stack_seg        dd  ?
371
os_stack_seg        dd  ?
372
 
372
 
373
srv.fd              dd  ?
373
srv.fd              dd  ?
374
srv.bk              dd  ?
374
srv.bk              dd  ?
375
 
375
 
376
LFBAddress          dd  ?
376
LFBAddress          dd  ?
377
 
377
 
378
PUTPIXEL            dd  ?
378
PUTPIXEL            dd  ?
379
GETPIXEL            dd  ?
379
GETPIXEL            dd  ?
380
 
380
 
381
if VESA_1_2_VIDEO
381
if VESA_1_2_VIDEO
382
BANK_SWITCH         dd  ?   ; reserved for vesa 1.2
382
BANK_SWITCH         dd  ?   ; reserved for vesa 1.2
383
BANK_RW             dd  ?
383
BANK_RW             dd  ?
384
end if
384
end if
385
 
385
 
386
MOUSE_PICTURE       dd  ?
386
MOUSE_PICTURE       dd  ?
387
 
387
 
388
def_cursor          dd  ?
388
def_cursor          dd  ?
389
def_cursor_clock    dd  ?
389
def_cursor_clock    dd  ?
390
current_cursor      dd  ?
390
current_cursor      dd  ?
391
hw_cursor           dd  ?
391
hw_cursor           dd  ?
392
cur_saved_base      dd  ?
392
cur_saved_base      dd  ?
393
 
393
 
394
cur.lock            dd  ?   ; 1 - lock update, 2- hide
394
cur.lock            dd  ?   ; 1 - lock update, 2- hide
395
cur.left            dd  ?   ; cursor clip box
395
cur.left            dd  ?   ; cursor clip box
396
cur.top             dd  ?
396
cur.top             dd  ?
397
cur.w               dd  ?
397
cur.w               dd  ?
398
cur.h               dd  ?
398
cur.h               dd  ?
399
 
399
 
400
ipc_tmp             dd  ?
400
ipc_tmp             dd  ?
401
ipc_pdir            dd  ?
401
ipc_pdir            dd  ?
402
ipc_ptab            dd  ?
402
ipc_ptab            dd  ?
403
 
403
 
404
proc_mem_map        dd  ?
404
proc_mem_map        dd  ?
405
proc_mem_pdir       dd  ?
405
proc_mem_pdir       dd  ?
406
proc_mem_tab        dd  ?
406
proc_mem_tab        dd  ?
407
 
407
 
408
tmp_task_ptab       dd  ?
408
tmp_task_ptab       dd  ?
409
 
409
 
410
default_io_map      dd  ?
410
default_io_map      dd  ?
411
 
411
 
412
LFBSize             dd  ?
412
LFBSize             dd  ?
413
 
413
 
414
current_process     dd  ?
414
current_process     dd  ?
415
current_slot        dd  ?   ; i.e. cureent thread
415
current_slot        dd  ?   ; i.e. cureent thread
416
 
416
 
417
; device addresses
417
; device addresses
418
mididp  dd  ?
418
mididp  dd  ?
419
midisp  dd  ?
419
midisp  dd  ?
420
 
420
 
421
cdbase  dd  ?
421
cdbase  dd  ?
422
cdid    dd  ?
422
cdid    dd  ?
423
 
423
 
424
hdbase  dd  ?   ; for boot 0x1f0
424
hdbase  dd  ?   ; for boot 0x1f0
425
hdid    dd  ?
425
hdid    dd  ?
426
hdpos   dd  ?   ; for boot 0x1
426
hdpos   dd  ?   ; for boot 0x1
427
cdpos   dd  ?
427
cdpos   dd  ?
428
 
428
 
429
;CPUID information
429
;CPUID information
430
cpu_vendor  rd  3
430
cpu_vendor  rd  3
431
cpu_sign    dd  ?
431
cpu_sign    dd  ?
432
cpu_info    dd  ?
432
cpu_info    dd  ?
433
cpu_caps    rd  4
433
cpu_caps    rd  4
434
 
434
 
435
xsave_area_size dd ?
435
xsave_area_size dd ?
436
 
436
 
437
pg_data     PG_DATA
437
pg_data     PG_DATA
438
heap_test   dd  ?
438
heap_test   dd  ?
439
 
439
 
440
skin_data   dd  ?
440
skin_data   dd  ?
441
 
441
 
442
mouse_active    dd  ?
442
mouse_active    dd  ?
443
mouse_pause     dd  ?
443
mouse_pause     dd  ?
444
 
444
 
445
BgrDrawMode     dd  ?
445
BgrDrawMode     dd  ?
446
BgrDataWidth    dd  ?
446
BgrDataWidth    dd  ?
447
BgrDataHeight   dd  ?
447
BgrDataHeight   dd  ?
448
 
448
 
449
buttontype          dd  ?
449
buttontype          dd  ?
450
windowtypechanged   dd  ?
450
windowtypechanged   dd  ?
451
 
451
 
452
debug_step_pointer  dd  ?
452
debug_step_pointer  dd  ?
453
 
453
 
454
lba_read_enabled    dd  ?   ; 0 = disabled , 1 = enabled
454
lba_read_enabled    dd  ?   ; 0 = disabled , 1 = enabled
455
pci_access_enabled  dd  ?   ; 0 = disabled , 1 = enabled
455
pci_access_enabled  dd  ?   ; 0 = disabled , 1 = enabled
456
 
456
 
457
NumBiosDisks        dd  ?
457
NumBiosDisks        dd  ?
458
BiosDisksData       rb  200h    ; struct BiosDiskData
458
BiosDisksData       rb  200h    ; struct BiosDiskData
459
BiosDiskCaches      rb  80h*(cache_ide1-cache_ide0)
459
BiosDiskCaches      rb  80h*(cache_ide1-cache_ide0)
460
BiosDiskPartitions  rd  80h
460
BiosDiskPartitions  rd  80h
461
 
461
 
462
img_background          dd  ?
462
img_background          dd  ?
463
mem_BACKGROUND          dd  ?
463
mem_BACKGROUND          dd  ?
464
static_background_data  dd  ?
464
static_background_data  dd  ?
465
 
465
 
466
hd1_status              dd  ?   ; 0 - free : other - pid
466
hd1_status              dd  ?   ; 0 - free : other - pid
467
application_table_owner dd  ?   ; 0 - free : other - pid
467
application_table_owner dd  ?   ; 0 - free : other - pid
468
application_table_mutex MUTEX
468
application_table_mutex MUTEX
469
 
469
 
470
redrawmouse_unconditional   dd  ?
470
redrawmouse_unconditional   dd  ?
471
 
471
 
472
MOUSE_SCROLL_H  rw  1
472
MOUSE_SCROLL_H  rw  1
473
MOUSE_X:        rw  1
473
MOUSE_X:        rw  1
474
MOUSE_Y:        rw  1
474
MOUSE_Y:        rw  1
475
MOUSE_SCROLL_V  rw  1
475
MOUSE_SCROLL_V  rw  1
476
 
476
 
477
X_UNDER         rw  1
477
X_UNDER         rw  1
478
Y_UNDER         rw  1
478
Y_UNDER         rw  1
479
COLOR_TEMP      dd  ?
479
COLOR_TEMP      dd  ?
480
MOUSE_COLOR_MEM dd  ?
480
MOUSE_COLOR_MEM dd  ?
481
 
481
 
482
SCR_MODE    rw  2
482
SCR_MODE    rw  2
483
 
483
 
484
BTN_DOWN:   rb  4
484
BTN_DOWN:   rb  4
485
 
485
 
486
cpu_phys_addr_width db  ?   ; also known as MAXPHYADDR in Intel manuals
486
cpu_phys_addr_width db  ?   ; also known as MAXPHYADDR in Intel manuals
487
hdd_appl_data       db  ?   ; 0 = system cache, 1 - application cache
487
hdd_appl_data       db  ?   ; 0 = system cache, 1 - application cache
488
cd_appl_data        db  ?   ; 0 = system cache, 1 - application cache
488
cd_appl_data        db  ?   ; 0 = system cache, 1 - application cache
489
 
489
 
490
timer_ticks_enable  db  ?  ; for cd driver
490
timer_ticks_enable  db  ?  ; for cd driver
491
 
491
 
492
REDRAW_BACKGROUND   db  ?
492
REDRAW_BACKGROUND   db  ?
493
 
493
 
494
align 16
494
align 16
495
DRIVE_DATA: rb  DRIVE_DATA_SIZE
495
DRIVE_DATA: rb  DRIVE_DATA_SIZE
496
 
496
 
497
IncludeUGlobals
497
IncludeUGlobals
498
 
498
 
499
uglobals_size = $ - endofcode
499
uglobals_size = $ - endofcode
500
 
500
 
501
if ~ lang eq sp
501
if ~ lang eq sp
502
diff16 "end of .bss",0,$
502
diff16 "end of .bss",0,$
503
end if
503
end if
504
 
504
 
505
org (OS_BASE+0x0100000)
505
org (OS_BASE+0x0100000)
506
 
506
 
507
; Currently size of memory allocated for the ramdisk is fixed.
507
; Currently size of memory allocated for the ramdisk is fixed.
508
; This should be revisited when/if memory map would become more dynamic.
508
; This should be revisited when/if memory map would become more dynamic.
509
RAMDISK_CAPACITY = 2880 ; in sectors
509
RAMDISK_CAPACITY = 2880 ; in sectors
510
 
510
 
511
RAMDISK:
511
RAMDISK:
512
        rb  RAMDISK_CAPACITY*512
512
        rb  RAMDISK_CAPACITY*512
513
 
513
 
514
_CLEAN_ZONE:
514
_CLEAN_ZONE:
-
 
515
CLEAN_ZONE = _CLEAN_ZONE - OS_BASE
515
 
516
 
516
BgrAuxTable     rb  32768
517
BgrAuxTable     rb  32768
517
align 65536
518
align 65536
518
SB16Buffer      rb  65536
519
SB16Buffer      rb  65536
519
 
520
 
520
align 4096
521
align 4096
521
BUTTON_INFO     rb  64*1024
522
BUTTON_INFO     rb  64*1024
522
RESERVED_PORTS:
523
RESERVED_PORTS:
523
        rb  64*1024
524
        rb  64*1024
524
sys_pgmap:
525
sys_pgmap:
525
        rb  1024*1024/8
526
        rb  1024*1024/8
526
>
527
>