Subversion Repositories Kolibri OS

Rev

Rev 7136 | Rev 7276 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1349 art_zh 1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2
;;                                                              ;;
5363 yogev_ezra 3
;; Copyright (C) KolibriOS team 2004-2015. All rights reserved. ;;
1349 art_zh 4
;; Distributed under terms of the GNU General Public License    ;;
5
;;                                                              ;;
6
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
7
 
8
$Revision: 7165 $
9
 
1354 diamond 10
 
1349 art_zh 11
keymap:
12
 
13
     db   '6',27
14
     db   '1234567890-=',8,9
15
     db   'qwertyuiop[]',13
16
     db   '~asdfghjkl;',39,96,0,'\zxcvbnm,./',0,'45 '
17
     db   '@234567890123',180,178,184,'6',176,'7'
18
     db   179,'8',181,177,183,185,182
19
     db   'AB
20
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
21
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
22
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
23
 
24
keymap_shift:
25
     db   '6',27
26
     db   '!@#$%^&*()_+',8,9
27
     db   'QWERTYUIOP{}',13
28
     db   '~ASDFGHJKL:"~',0,'|ZXCVBNM<>?',0,'45 '
29
     db   '@234567890123',180,178,184,'6',176,'7'
30
     db   179,'8',181,177,183,185,182
31
     db   'AB>D',255,'FGHIJKLMNOPQRSTUVWXYZ'
32
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
33
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
34
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
35
 
36
 
37
keymap_alt:
38
     db   ' ',27
39
     db   ' @ $  {[]}\ ',8,9
40
     db   '            ',13
41
     db   '             ',0,'           ',0,'4',0,' '
42
     db   '             ',180,178,184,'6',176,'7'
43
     db   179,'8',181,177,183,185,182
44
     db   'ABCD',255,'FGHIJKLMNOPQRSTUVWXYZ'
45
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
46
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
47
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
48
 
49
 
2104 maximYCH 50
 
51
if lang eq ru
4135 clevermous 52
  boot_initirq      cp866 'Инициализация IRQ',0
53
  boot_picinit      cp866 'Инициализация PIC',0
4273 clevermous 54
  boot_v86machine   cp866 'Инициализация системной V86 машины',0
4135 clevermous 55
  boot_inittimer    cp866 'Инициализация системного таймера (IRQ0)',0
56
  boot_initapic     cp866 'Попытка инициализации APIC',0
57
  boot_enableirq    cp866 'Включить прерывания 2, 13',0
58
  boot_disabling_ide cp866 'Запрещение прерываний в контроллере IDE',0
59
  boot_enabling_ide cp866 'Разрешение прерываний в контроллере IDE',0
60
  boot_set_int_IDE  cp866 'Установка обработчиков прерываний IDE',0
61
  boot_detectfloppy cp866 'Поиск floppy дисководов',0
62
  boot_detecthdcd   cp866 'Поиск жестких дисков и ATAPI приводов',0
63
  boot_getcache     cp866 'Получение памяти для кэша',0
64
  boot_detectpart   cp866 'Поиск разделов на дисковых устройствах',0
65
  boot_init_sys     cp866 'Инициализация системного каталога /sys',0
66
  boot_loadlibs     cp866 'Загрузка библиотек (.obj)',0
67
  boot_memdetect    cp866 'Количество оперативной памяти','     ',' Мб',0
68
  boot_tss          cp866 'Установка TSSs',0
69
  boot_cpuid        cp866 'Чтение CPUIDs',0
70
;  boot_devices      cp866 'Поиск устройств',0
71
  boot_timer        cp866 'Установка таймера',0
4273 clevermous 72
  boot_initramdisk  cp866 'Инициализация рамдиска',0
4135 clevermous 73
  boot_irqs         cp866 'Переопределение IRQ',0
74
  boot_setmouse     cp866 'Установка мыши',0
75
  boot_windefs      cp866 'Установка настроек окон по умолчанию',0
76
  boot_bgr          cp866 'Установка фона',0
77
  boot_resirqports  cp866 'Резервирование IRQ и портов',0
78
  boot_setrports    cp866 'Установка адресов IRQ',0
79
  boot_setostask    cp866 'Создание процесса ядра',0
80
  boot_allirqs      cp866 'Открытие всех IRQ',0
81
  boot_tsc          cp866 'Чтение TSC',0
82
  boot_cpufreq      cp866 'Частота процессора ','    ',' МГц',0
83
  boot_pal_ega      cp866 'Установка EGA/CGA 320x200 палитры',0
84
  boot_pal_vga      cp866 'Установка VGA 640x480 палитры',0
85
  boot_failed       cp866 'Загрузка первого приложения не удалась',0
86
  boot_mtrr         cp866 'Установка MTRR',0
3481 Serge 87
 
4135 clevermous 88
  boot_APIC_found   cp866 'APIC включен', 0
89
  boot_APIC_nfound  cp866 'APIC не найден', 0
2104 maximYCH 90
if preboot_blogesc
4135 clevermous 91
  boot_tasking      cp866 'Все готово для запуска, нажмитре ESC для старта',0
2104 maximYCH 92
end if
3274 esevece 93
else if lang eq sp
94
  include 'data32sp.inc'
3927 kaitz 95
else if lang eq et
96
  include 'data32et.inc'
2104 maximYCH 97
else
2642 mario79 98
  boot_initirq      db   'Initialize IRQ',0
99
  boot_picinit      db   'Initialize PIC',0
100
  boot_v86machine   db   'Initialize system V86 machine',0
101
  boot_inittimer    db   'Initialize system timer (IRQ0)',0
4273 clevermous 102
  boot_initramdisk  db   'Initialize ramdisk',0
2642 mario79 103
  boot_initapic     db   'Try to initialize APIC',0
3775 mario79 104
  boot_enableirq    db   'Enable interrupts 2, 13',0
3762 mario79 105
  boot_disabling_ide db   'Disable interrupts in IDE controller',0
106
  boot_enabling_ide db   'Enable interrupts in IDE controller',0
3778 mario79 107
  boot_set_int_IDE  db   'Set handler of interrupts for IDE',0
2642 mario79 108
  boot_detectfloppy db   'Search floppy drives',0
109
  boot_detecthdcd   db   'Search hard drives and ATAPI drives',0
110
  boot_getcache     db   'Get memory for cache',0
111
  boot_detectpart   db   'Search partitions on disk devices',0
112
  boot_init_sys     db   'Initialize system directory /sys',0
113
  boot_loadlibs     db   'Loading librares (.obj)',0
1349 art_zh 114
  boot_memdetect    db   'Determining amount of memory',0
115
  boot_tss          db   'Setting TSSs',0
116
  boot_cpuid        db   'Reading CPUIDs',0
2642 mario79 117
;  boot_devices      db   'Detecting devices',0
1349 art_zh 118
  boot_setmouse     db   'Setting mouse',0
119
  boot_windefs      db   'Setting window defaults',0
120
  boot_bgr          db   'Calculating background',0
121
  boot_resirqports  db   'Reserving IRQs & ports',0
122
  boot_setostask    db   'Setting OS task',0
2288 clevermous 123
  boot_allirqs      db   'Unmasking IRQs',0
1349 art_zh 124
  boot_tsc          db   'Reading TSC',0
125
  boot_cpufreq      db   'CPU frequency is ','    ',' MHz',0
126
  boot_pal_ega      db   'Setting EGA/CGA 320x200 palette',0
127
  boot_pal_vga      db   'Setting VGA 640x480 palette',0
128
  boot_failed       db   'Failed to start first app',0
129
  boot_mtrr         db   'Setting MTRR',0
3481 Serge 130
 
2642 mario79 131
  boot_APIC_found   db   'APIC enabled', 0
132
  boot_APIC_nfound  db   'APIC not found', 0
1349 art_zh 133
if preboot_blogesc
134
  boot_tasking      db   'All set - press ESC to start',0
135
end if
2104 maximYCH 136
end if
1349 art_zh 137
 
138
;new_process_loading db 'K : New Process - loading',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
141
 
142
msg_unresolved db 'unresolved ',0
5088 clevermous 143
;msg_module     db 'in module ',0
144
;if ~ lang eq sp
145
;msg_version    db 'incompatible driver version',13,10,0
146
;msg_www        db 'please visit www.kolibrios.org',13,10,0
147
;end if
1349 art_zh 148
msg_CR         db  13,10,0
149
 
5044 clevermous 150
szPS2MDriver    db '/rd/1/drivers/PS2MOUSE.SYS',0
1349 art_zh 151
;szCOM_MDriver   db 'COM_MOUSE',0
5039 clevermous 152
szVidintel      db '/rd/1/drivers/vidintel.sys',0
1349 art_zh 153
szUSB           db 'USB',0
154
 
155
szEXPORTS      db 'EXPORTS',0
156
sz_EXPORTS     db '_EXPORTS',0
157
 
158
szIMPORTS      db 'IMPORTS',0
159
 
160
read_firstapp  db '/sys/'
6333 serge 161
firstapp       db '/RD/1/LAUNCHER',0
162
notifyapp      db '/RD/1/@notify',0
1948 clevermous 163
if lang eq ru
4135 clevermous 164
ud_user_message  cp866 'Ошибка: неподдерживаемая инструкция процессора',0
4793 yogev_ezra 165
mtrr_user_message cp866 '"Обнаружена проблема с конфигурацией MTRR.\nПроизводительность может быть пониженной" -dW',0
3929 kaitz 166
else if ~ lang eq sp
1948 clevermous 167
ud_user_message db 'Error: unsupported processor instruction',0
4793 yogev_ezra 168
mtrr_user_message db '"There is a problem with MTRR configuration.\nPerformance can be low" -dW',0
1948 clevermous 169
end if
1349 art_zh 170
 
171
vmode          db  '/sys/drivers/VMODE.MDR',0
4273 clevermous 172
kernel_file_load:
6244 serge 173
; load kernel.mnt to _CLEAN_ZONE
4273 clevermous 174
        dd      0       ; subfunction
175
        dq      0       ; offset in file
6244 serge 176
        dd      0x31000 ; number of bytes to read
177
        dd      _CLEAN_ZONE ; buffer for data
4273 clevermous 178
        db      '/RD/1/KERNEL.MNT',0
1349 art_zh 179
 
2231 Serge 180
dev_data_path  db '/RD/1/DRIVERS/DEVICES.DAT',0
1349 art_zh 181
 
182
align 4
183
 
184
shmem_list:
185
 .bk           dd shmem_list
186
 .fd           dd shmem_list
187
 
188
dll_list:
189
 .bk           dd dll_list
190
 .fd           dd dll_list
191
 
3393 clevermous 192
pcidev_list:
193
 .bk           dd pcidev_list
194
 .fd           dd pcidev_list
195
 
2412 Serge 196
MAX_DEFAULT_DLL_ADDR = 0x80000000
197
MIN_DEFAULT_DLL_ADDR = 0x70000000
1349 art_zh 198
dll_cur_addr   dd MIN_DEFAULT_DLL_ADDR
199
 
200
; supported videomodes
201
 
202
 
203
; mike.dld {
2453 mario79 204
;db 0
205
;dd servetable-0x10000
206
;align 4
207
;draw_line       dd __sys_draw_line
208
;draw_pointer    dd __sys_draw_pointer
1349 art_zh 209
;//mike.dld, 2006-08-02 [
2453 mario79 210
;;drawbar         dd __sys_drawbar
211
;;drawbar         dd __sys_drawbar.forced
212
;drawbar         dd vesa20_drawbar
1349 art_zh 213
;//mike.dld, 2006-08-02 ]
2453 mario79 214
;putpixel        dd __sys_putpixel
1349 art_zh 215
; } mike.dld
216
 
217
 
218
align 4
219
keyboard   dd 1
220
syslang    dd 1
221
 
222
boot_y     dd 10
223
 
224
pci_bios_entry  dd 0
225
                dw pci_code_sel
226
 
227
if __DEBUG__ eq 1
228
  include_debug_strings
229
end if
230
 
231
IncludeIGlobals
232
 
233
align 16
234
gdts:
235
 
236
        dw     gdte-$-1
237
        dd     gdts
238
        dw     0
239
 
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, ....
242
 
243
int_code_l:
244
os_code_l:
245
        dw     0xffff
246
        dw     0x0000
247
        db     0x00
248
        dw     11011111b *256 +10011010b
249
        db     0x00
250
 
251
int_data_l:
252
os_data_l:
253
        dw     0xffff
254
        dw     0x0000
255
        db     0x00
256
        dw     11011111b *256 +10010010b
257
        db     0x00
258
 
259
app_code_l:
260
        dw 0xFFFF
261
        dw 0
262
        db 0
263
        db cpl3
264
        dw G32+D32+0xF;
265
 
266
app_data_l:
267
        dw 0xFFFF
268
        dw 0
269
        db 0
270
        db drw3
271
        dw G32+D32+0xF;
272
 
273
; ------------- PCI BIOS ------------------
274
 
275
pci_code_32:
276
        dw 0         ;lim  0-15
277
        dw 0         ;base 0-15
278
        db 0         ;base 16-23
279
        db cpl0      ;type
280
        db D32       ;lim 16-19+props
281
        db 0         ;base 24-31
282
 
283
pci_data_32:
284
        dw 0         ;lim  0-15
285
        dw 0         ;base 0-15
286
        db 0         ;base 16-23
287
        db dpl0      ;type
288
        db D32       ;lim 16-19+props
289
        db 0         ;base 24-31
290
 
291
; --------------- APM ---------------------
292
apm_code_32:
293
        dw     0x0f        ; limit 64kb
294
        db     0, 0, 0
295
        dw     11010000b *256 +10011010b
296
        db     0x00
297
apm_code_16:
298
        dw     0x0f
299
        db     0, 0, 0
300
        dw     10010000b *256 +10011010b
301
        db     0x00
302
apm_data_16:
303
        dw     0x0f
304
        db     0, 0, 0
305
        dw     10010000b *256 +10010010b
306
        db     0x00
307
; -----------------------------------------
308
 
309
graph_data_l:
310
 
311
        dw     0x7ff
312
        dw     0x0000
313
        db     0x00
314
        dw     11010000b *256 +11110010b
315
        db     0x00
316
tss0_l:
2384 hidnplayr 317
        dw     sizeof.TSS-1
1349 art_zh 318
        dw     tss and 0xFFFF
319
        db     (tss shr 16) and 0xFF
320
        db     10001001b
321
        dw     (tss shr 16) and 0xFF00
322
 
323
tls_data_l:
324
        dw 0x0FFF
325
        dw 0
326
        db 0
327
        db drw3
328
        dw D32
329
 
330
endofcode:
331
gdte:
332
 
3627 Serge 333
diff16 "end of .data segment",0,$
334
 
1349 art_zh 335
align 16
2430 mario79 336
cur_saved_data:
6585 pathoswith 337
        rb  4096
2288 clevermous 338
fpu_data:
7165 clevermous 339
        rb  1024
340
fpu_data_size = $ - fpu_data
6585 pathoswith 341
draw_data:
342
        rb  32*256
343
BPSLine_calc_area   rd  1440
344
d_width_calc_area   rd  1140
345
mouseunder          rd  16*24
1349 art_zh 346
 
6585 pathoswith 347
mem_block_list      rd  64*2
348
mem_used_list       rd  64*2
349
mem_hash_cnt        rd  64
1349 art_zh 350
 
6585 pathoswith 351
thr_slot_map        rd  8
5130 serge 352
 
6585 pathoswith 353
_display            display_t
354
bios_fb             FRB
3481 Serge 355
 
3732 Serge 356
mst                 MEM_STATE
1349 art_zh 357
 
6585 pathoswith 358
cpu_freq            dq  ?
1349 art_zh 359
 
6585 pathoswith 360
heap_mutex          MUTEX
361
heap_size           dd  ?
362
heap_free           dd  ?
363
heap_blocks         dd  ?
364
free_blocks         dd  ?
365
mem_block_mask      rd  2
366
next_memblock       dd  ?
1349 art_zh 367
 
6585 pathoswith 368
pte_valid_mask      dd  ?
369
page_start          dd  ?
370
page_end            dd  ?
371
sys_page_map        dd  ?
372
os_stack_seg        dd  ?
1349 art_zh 373
 
6585 pathoswith 374
srv.fd              dd  ?
375
srv.bk              dd  ?
1349 art_zh 376
 
6585 pathoswith 377
LFBAddress          dd  ?
1349 art_zh 378
 
6585 pathoswith 379
PUTPIXEL            dd  ?
380
GETPIXEL            dd  ?
3606 Serge 381
 
3627 Serge 382
if VESA_1_2_VIDEO
6585 pathoswith 383
BANK_SWITCH         dd  ?   ; reserved for vesa 1.2
384
BANK_RW             dd  ?
3627 Serge 385
end if
386
 
6585 pathoswith 387
MOUSE_PICTURE       dd  ?
3627 Serge 388
 
6585 pathoswith 389
def_cursor          dd  ?
390
def_cursor_clock    dd  ?
391
current_cursor      dd  ?
392
hw_cursor           dd  ?
393
cur_saved_base      dd  ?
3627 Serge 394
 
6585 pathoswith 395
cur.lock            dd  ?   ; 1 - lock update, 2- hide
396
cur.left            dd  ?   ; cursor clip box
397
cur.top             dd  ?
398
cur.w               dd  ?
399
cur.h               dd  ?
3627 Serge 400
 
6585 pathoswith 401
ipc_tmp             dd  ?
402
ipc_pdir            dd  ?
403
ipc_ptab            dd  ?
3627 Serge 404
 
6585 pathoswith 405
proc_mem_map        dd  ?
406
proc_mem_pdir       dd  ?
407
proc_mem_tab        dd  ?
3627 Serge 408
 
6585 pathoswith 409
tmp_task_ptab       dd  ?
3627 Serge 410
 
6585 pathoswith 411
default_io_map      dd  ?
1349 art_zh 412
 
6585 pathoswith 413
LFBSize             dd  ?
1349 art_zh 414
 
6585 pathoswith 415
current_process     dd  ?
416
current_slot        dd  ?   ; i.e. cureent thread
3727 Serge 417
 
6585 pathoswith 418
; device addresses
419
mididp  dd  ?
420
midisp  dd  ?
1349 art_zh 421
 
6585 pathoswith 422
cdbase  dd  ?
423
cdid    dd  ?
1349 art_zh 424
 
6585 pathoswith 425
hdbase  dd  ?   ; for boot 0x1f0
426
hdid    dd  ?
427
hdpos   dd  ?   ; for boot 0x1
428
cdpos   dd  ?
1349 art_zh 429
 
6585 pathoswith 430
;CPUID information
431
cpu_vendor  rd  3
432
cpu_sign    dd  ?
433
cpu_info    dd  ?
434
cpu_caps    rd  4
1349 art_zh 435
 
7124 dunkaist 436
xsave_area_size dd ?
437
 
6585 pathoswith 438
pg_data     PG_DATA
439
heap_test   dd  ?
1349 art_zh 440
 
6585 pathoswith 441
skin_data   dd  ?
1349 art_zh 442
 
6585 pathoswith 443
mouse_active    dd  ?
444
mouse_pause     dd  ?
5130 serge 445
 
6585 pathoswith 446
BgrDrawMode     dd  ?
447
BgrDataWidth    dd  ?
448
BgrDataHeight   dd  ?
1349 art_zh 449
 
6585 pathoswith 450
buttontype          dd  ?
451
windowtypechanged   dd  ?
1349 art_zh 452
 
6585 pathoswith 453
debug_step_pointer  dd  ?
1349 art_zh 454
 
6585 pathoswith 455
lba_read_enabled    dd  ?   ; 0 = disabled , 1 = enabled
456
pci_access_enabled  dd  ?   ; 0 = disabled , 1 = enabled
1349 art_zh 457
 
6585 pathoswith 458
NumBiosDisks        dd  ?
6843 dunkaist 459
BiosDisksData       rb  200h    ; struct BiosDiskData
6585 pathoswith 460
BiosDiskCaches      rb  80h*(cache_ide1-cache_ide0)
461
BiosDiskPartitions  rd  80h
1349 art_zh 462
 
6585 pathoswith 463
img_background          dd  ?
464
mem_BACKGROUND          dd  ?
465
static_background_data  dd  ?
1349 art_zh 466
 
6585 pathoswith 467
hd1_status              dd  ?   ; 0 - free : other - pid
468
application_table_owner dd  ?   ; 0 - free : other - pid
469
application_table_mutex MUTEX
1349 art_zh 470
 
6585 pathoswith 471
redrawmouse_unconditional   dd  ?
1349 art_zh 472
 
6585 pathoswith 473
MOUSE_SCROLL_H  rw  1
474
MOUSE_X:        rw  1
475
MOUSE_Y:        rw  1
476
MOUSE_SCROLL_V  rw  1
1349 art_zh 477
 
6585 pathoswith 478
X_UNDER         rw  1
479
Y_UNDER         rw  1
480
COLOR_TEMP      dd  ?
481
MOUSE_COLOR_MEM dd  ?
1349 art_zh 482
 
6585 pathoswith 483
SCR_MODE    rw  2
2450 mario79 484
 
6585 pathoswith 485
BTN_DOWN:   rb  4
1349 art_zh 486
 
6585 pathoswith 487
cpu_phys_addr_width db  ?   ; also known as MAXPHYADDR in Intel manuals
488
hdd_appl_data       db  ?   ; 0 = system cache, 1 - application cache
489
cd_appl_data        db  ?   ; 0 = system cache, 1 - application cache
3606 Serge 490
 
6585 pathoswith 491
timer_ticks_enable  db  ?  ; for cd driver
3588 Serge 492
 
6585 pathoswith 493
REDRAW_BACKGROUND   db  ?
1349 art_zh 494
 
3627 Serge 495
align 16
6585 pathoswith 496
DRIVE_DATA: rb  DRIVE_DATA_SIZE
1349 art_zh 497
 
498
IncludeUGlobals
3727 Serge 499
 
500
uglobals_size = $ - endofcode
501
 
502
if ~ lang eq sp
503
diff16 "end of .bss",0,$
504
end if
505
 
506
org (OS_BASE+0x0100000)
507
 
5057 clevermous 508
; Currently size of memory allocated for the ramdisk is fixed.
509
; This should be revisited when/if memory map would become more dynamic.
510
RAMDISK_CAPACITY = 2880 ; in sectors
3727 Serge 511
 
6585 pathoswith 512
RAMDISK:
513
        rb  RAMDISK_CAPACITY*512
5057 clevermous 514
 
3727 Serge 515
_CLEAN_ZONE:
7136 dunkaist 516
CLEAN_ZONE = _CLEAN_ZONE - OS_BASE
3727 Serge 517
 
6585 pathoswith 518
BgrAuxTable     rb  32768
5057 clevermous 519
align 65536
6585 pathoswith 520
SB16Buffer      rb  65536
5057 clevermous 521
 
3727 Serge 522
align 4096
6585 pathoswith 523
BUTTON_INFO     rb  64*1024
524
RESERVED_PORTS:
525
        rb  64*1024
526
sys_pgmap:
527
        rb  1024*1024/8