Subversion Repositories Kolibri OS

Rev

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