Subversion Repositories Kolibri OS

Rev

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

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