Subversion Repositories Kolibri OS

Rev

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

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