Rev 1275 | Rev 1278 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1275 | Rev 1276 | ||
---|---|---|---|
Line 55... | Line 55... | ||
55 | ;; |
55 | ;; |
56 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
56 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
Line 57... | Line 57... | ||
57 | 57 | ||
Line 58... | Line 58... | ||
58 | include 'macros.inc' |
58 | include 'macros.inc' |
Line 59... | Line 59... | ||
59 | 59 | ||
Line 60... | Line 60... | ||
60 | $Revision: 1275 $ |
60 | $Revision: 1276 $ |
Line 347... | Line 347... | ||
347 | ; ----------------------------------------- |
347 | ; ----------------------------------------- |
348 | ; movzx eax,byte [BOOT_VAR+0x9010] ; mouse port |
348 | ; movzx eax,byte [BOOT_VAR+0x9010] ; mouse port |
349 | ; mov [0xF604],byte 1 ;al |
349 | ; mov [0xF604],byte 1 ;al |
350 | mov al, [BOOT_VAR+0x901F] ; DMA access |
350 | mov al, [BOOT_VAR+0x901F] ; DMA access |
351 | mov [allow_dma_access], al |
351 | mov [allow_dma_access], al |
352 | movzx eax, byte [BOOT_VAR+0x9000] ; bpp |
352 | mov al,[BOOT_VAR+0x9000] ; bpp |
353 | mov [ScreenBPP],al |
353 | mov [ScreenBPP],al |
Line 354... | Line -... | ||
354 | - | ||
355 | mov [_display.bpp], eax |
- | |
356 | mov [_display.vrefresh], 60 |
- | |
357 | 354 | ||
358 | movzx eax,word [BOOT_VAR+0x900A] ; X max |
- | |
359 | mov [_display.width], eax |
355 | movzx eax,word [BOOT_VAR+0x900A] ; X max |
360 | dec eax |
356 | dec eax |
361 | mov [Screen_Max_X],eax |
357 | mov [Screen_Max_X],eax |
362 | mov [screen_workarea.right],eax |
358 | mov [screen_workarea.right],eax |
363 | movzx eax,word [BOOT_VAR+0x900C] ; Y max |
- | |
364 | mov [_display.height], eax |
359 | movzx eax,word [BOOT_VAR+0x900C] ; Y max |
365 | dec eax |
360 | dec eax |
366 | mov [Screen_Max_Y],eax |
361 | mov [Screen_Max_Y],eax |
367 | mov [screen_workarea.bottom],eax |
362 | mov [screen_workarea.bottom],eax |
368 | movzx eax,word [BOOT_VAR+0x9008] ; screen mode |
363 | movzx eax,word [BOOT_VAR+0x9008] ; screen mode |
Line 372... | Line 367... | ||
372 | mov [BytesPerScanLine],word 640*4 ; Bytes PerScanLine |
367 | mov [BytesPerScanLine],word 640*4 ; Bytes PerScanLine |
373 | cmp [SCR_MODE],word 0x13 ; 320x200 |
368 | cmp [SCR_MODE],word 0x13 ; 320x200 |
374 | je @f |
369 | je @f |
375 | cmp [SCR_MODE],word 0x12 ; VGA 640x480 |
370 | cmp [SCR_MODE],word 0x12 ; VGA 640x480 |
376 | je @f |
371 | je @f |
377 | movzx eax, word[BOOT_VAR+0x9001] ; for other modes |
372 | mov ax,[BOOT_VAR+0x9001] ; for other modes |
378 | mov [BytesPerScanLine],ax |
373 | mov [BytesPerScanLine],ax |
379 | mov [_display.pitch], eax |
- | |
380 | @@: |
374 | @@: |
381 | mov esi, BOOT_VAR+0x9080 |
375 | mov esi, BOOT_VAR+0x9080 |
382 | movzx ecx, byte [esi-1] |
376 | movzx ecx, byte [esi-1] |
383 | mov [NumBiosDisks], ecx |
377 | mov [NumBiosDisks], ecx |
384 | mov edi, BiosDisksData |
378 | mov edi, BiosDisksData |
385 | rep movsd |
379 | rep movsd |
Line 386... | Line 380... | ||
386 | 380 | ||
Line 387... | Line 381... | ||
387 | ; GRAPHICS ADDRESSES |
381 | ; GRAPHICS ADDRESSES |
388 | 382 | ||
389 | mov byte [BOOT_VAR+0x901e],0x0 |
383 | and byte [BOOT_VAR+0x901e],0x0 |
Line 390... | Line 384... | ||
390 | mov eax,[BOOT_VAR+0x9018] |
384 | mov eax,[BOOT_VAR+0x9018] |
391 | mov [LFBAddress],eax |
385 | mov [LFBAddress],eax |
Line 644... | Line 638... | ||
644 | or ecx, (10+29*6) shl 16 ; "Determining amount of memory" |
638 | or ecx, (10+29*6) shl 16 ; "Determining amount of memory" |
645 | sub ecx, 10 |
639 | sub ecx, 10 |
646 | mov edx, 0xFFFFFF |
640 | mov edx, 0xFFFFFF |
647 | mov ebx, [MEM_AMOUNT] |
641 | mov ebx, [MEM_AMOUNT] |
648 | shr ebx, 20 |
642 | shr ebx, 20 |
649 | mov edi, 1 |
643 | xor edi,edi |
650 | mov eax, 0x00040000 |
644 | mov eax, 0x00040000 |
- | 645 | inc edi |
|
651 | call display_number_force |
646 | call display_number_force |
Line 652... | Line 647... | ||
652 | 647 | ||
Line 653... | Line 648... | ||
653 | ; BUILD SCHEDULER |
648 | ; BUILD SCHEDULER |
Line 723... | Line 718... | ||
723 | 718 | ||
724 | mov dword [SLOT_BASE+256+APPDATA.cur_dir], sysdir_path |
719 | mov dword [SLOT_BASE+256+APPDATA.cur_dir], sysdir_path |
Line 725... | Line 720... | ||
725 | mov dword [SLOT_BASE+256+APPDATA.tls_base], eax |
720 | mov dword [SLOT_BASE+256+APPDATA.tls_base], eax |
- | 721 | ||
- | 722 | ; task list |
|
726 | 723 | mov dword [TASK_DATA+TASKDATA.mem_start],eax ; process base address |
|
727 | ; task list |
724 | inc eax |
728 | mov [CURRENT_TASK],dword 1 |
725 | mov dword [CURRENT_TASK],eax |
729 | mov [TASK_COUNT],dword 1 |
726 | mov dword [TASK_COUNT],eax |
730 | mov [current_slot], SLOT_BASE+256 |
727 | mov [current_slot], SLOT_BASE+256 |
731 | mov [TASK_BASE],dword TASK_DATA |
728 | mov [TASK_BASE],dword TASK_DATA |
732 | mov [TASK_DATA+TASKDATA.wnd_number], 1 ; on screen number |
- | |
- | 729 | mov byte[TASK_DATA+TASKDATA.wnd_number],al ; on screen number |
|
Line 733... | Line 730... | ||
733 | mov [TASK_DATA+TASKDATA.pid], 1 ; process id number |
730 | mov dword [TASK_DATA+TASKDATA.pid], eax ; process id number |
734 | mov [TASK_DATA+TASKDATA.mem_start], 0 ; process base address |
731 | |
735 | 732 | ||
736 | call init_cursors |
733 | call init_cursors |
Line 767... | Line 764... | ||
767 | 764 | ||
768 | mov ebx, edx |
765 | mov ebx, edx |
769 | movzx ecx, word [boot_y] |
766 | movzx ecx, word [boot_y] |
770 | add ecx, (10+17*6) shl 16 - 10 ; 'CPU frequency is ' |
767 | add ecx, (10+17*6) shl 16 - 10 ; 'CPU frequency is ' |
771 | mov edx, 0xFFFFFF |
768 | mov edx, 0xFFFFFF |
772 | mov edi, 1 |
769 | xor edi,edi |
- | 770 | mov eax, 0x00040000 |
|
773 | mov eax, 0x00040000 |
771 | inc edi |
Line 774... | Line 772... | ||
774 | call display_number_force |
772 | call display_number_force |
Line 775... | Line 773... | ||
775 | 773 | ||
Line 862... | Line 860... | ||
862 | first_app_found: |
860 | first_app_found: |
Line 863... | Line 861... | ||
863 | 861 | ||
Line 864... | Line 862... | ||
864 | cli |
862 | cli |
- | 863 | ||
865 | 864 | ;mov [TASK_COUNT],dword 2 |
|
Line 866... | Line 865... | ||
866 | ;mov [TASK_COUNT],dword 2 |
865 | push 1 |
867 | mov [CURRENT_TASK],dword 1 ; set OS task fisrt |
866 | pop dword [CURRENT_TASK] ; set OS task fisrt |
868 | 867 | ||
Line 993... | Line 992... | ||
993 | 992 | ||
994 | mov ebx,10*65536 |
993 | mov ebx,10*65536 |
995 | mov bx,word [boot_y] |
994 | mov bx,word [boot_y] |
996 | add [boot_y],dword 10 |
995 | add [boot_y],dword 10 |
- | 996 | mov ecx,0x80ffffff ; ASCIIZ string with white color |
|
997 | mov ecx,0x80ffffff ; ASCIIZ string with white color |
997 | xor edi,edi |
998 | mov edx,esi |
998 | mov edx,esi |
999 | mov edi,1 |
999 | inc edi |
Line 1000... | Line 1000... | ||
1000 | call dtext |
1000 | call dtext |
1001 | 1001 | ||
Line 1002... | Line 1002... | ||
1002 | mov [novesachecksum],1000 |
1002 | mov [novesachecksum],1000 |
Line 1003... | Line 1003... | ||
1003 | call checkVga_N13 |
1003 | call checkVga_N13 |
Line 1004... | Line -... | ||
1004 | - | ||
1005 | popad |
1004 | |
1006 | 1005 | popad |
|
1007 | ret |
1006 | |
1008 | 1007 | ret |
|
1009 | 1008 | ||
Line 1208... | Line 1207... | ||
1208 | test edi,0x80000000 ; read ? |
1207 | test edi,0x80000000 ; read ? |
1209 | jnz sopl4 |
1208 | jnz sopl4 |
Line 1210... | Line 1209... | ||
1210 | 1209 | ||
1211 | mov dx,bx ; write |
1210 | mov dx,bx ; write |
1212 | out dx,al |
1211 | out dx,al |
1213 | mov [esp+36],dword 0 |
1212 | and [esp+36],dword 0 |
Line 1214... | Line 1213... | ||
1214 | ret |
1213 | ret |
Line 1215... | Line 1214... | ||
1215 | 1214 | ||
1216 | sopl4: |
1215 | sopl4: |
1217 | 1216 | ||
1218 | mov dx,bx ; read |
1217 | mov dx,bx ; read |
1219 | in al,dx |
1218 | in al,dx |
1220 | and eax,0xff |
1219 | and eax,0xff |
Line 1221... | Line 1220... | ||
1221 | mov [esp+36],dword 0 |
1220 | and [esp+36],dword 0 |
Line 1261... | Line 1260... | ||
1261 | mov ebp,[ebp+std_application_base_address] |
1260 | mov ebp,[ebp+std_application_base_address] |
1262 | mov ebx,[ebx+std_application_base_address] |
1261 | mov ebx,[ebx+std_application_base_address] |
1263 | displnl1: |
1262 | displnl1: |
1264 | sub esp,64 |
1263 | sub esp,64 |
Line 1265... | Line 1264... | ||
1265 | 1264 | ||
1266 | cmp ah,0 ; DECIMAL |
1265 | test ah,ah ; DECIMAL |
1267 | jne no_display_desnum |
1266 | jnz no_display_desnum |
1268 | shr eax,16 |
1267 | shr eax,16 |
1269 | and eax,0xC03f |
1268 | and eax,0xC03f |
1270 | ; and eax,0x3f |
1269 | ; and eax,0x3f |
1271 | push eax |
1270 | push eax |
Line 1419... | Line 1418... | ||
1419 | ; 10 = sound dma channel |
1418 | ; 10 = sound dma channel |
1420 | ; 11 = enable lba read |
1419 | ; 11 = enable lba read |
1421 | ; 12 = enable pci access |
1420 | ; 12 = enable pci access |
Line 1422... | Line 1421... | ||
1422 | 1421 | ||
1423 | 1422 | ||
1424 | mov [esp+36],dword 0 |
1423 | and [esp+32],dword 0 |
1425 | cmp eax,1 ; MIDI |
1424 | dec ebx ; MIDI |
- | 1425 | jnz nsyse1 |
|
1426 | jnz nsyse1 |
1426 | cmp ecx,0x100 |
1427 | cmp ebx,0x100 |
1427 | |
1428 | jb nsyse1 |
1428 | jb nsyse1 |
- | 1429 | mov esi,65535 |
|
1429 | mov edx,65535 |
1430 | cmp esi,ecx |
1430 | cmp edx,ebx |
1431 | |
1431 | jb nsyse1 |
1432 | jb nsyse1 |
1432 | mov [midi_base],bx |
1433 | mov [midi_base],cx ;bx |
1433 | mov word [mididp],bx |
1434 | mov word [mididp],cx ;bx |
1434 | inc bx |
1435 | inc cx ;bx |
Line 1435... | Line 1436... | ||
1435 | mov word [midisp],bx |
1436 | mov word [midisp],cx ;bx |
1436 | ret |
1437 | ret |
1437 | 1438 | ||
Line 1438... | Line 1439... | ||
1438 | iglobal |
1439 | iglobal |
1439 | midi_base dw 0 |
- | |
1440 | endg |
1440 | midi_base dw 0 |
1441 | - | ||
1442 | nsyse1: |
1441 | endg |
1443 | - | ||
1444 | ; cmp eax,2 ; KEYBOARD |
- | |
1445 | sub eax,2 |
- | |
1446 | jnz nsyse2 |
1442 | |
1447 | ; cmp ebx,1 |
1443 | nsyse1: |
1448 | dec ebx |
1444 | dec ebx ; KEYBOARD |
- | 1445 | jnz nsyse2 |
|
- | 1446 | mov edi,[TASK_BASE] |
|
- | 1447 | add edi,[edi+TASKDATA.mem_start] |
|
1449 | jnz kbnobase |
1448 | mov eax,edi |
1450 | mov edi,[TASK_BASE] |
1449 | |
1451 | add ecx,[edi+TASKDATA.mem_start] |
1450 | dec ecx |
1452 | mov eax,ecx |
1451 | jnz kbnobase |
1453 | mov ebx,keymap |
1452 | mov ebx,keymap |
1454 | mov ecx,128 |
- | |
1455 | call memmove |
1453 | mov ecx,128 |
1456 | ret |
1454 | call memmove |
1457 | kbnobase: |
- | |
1458 | ; cmp ebx,2 |
- | |
1459 | dec ebx |
- | |
- | 1455 | ret |
|
1460 | jnz kbnoshift |
1456 | kbnobase: |
1461 | mov edi,[TASK_BASE] |
1457 | dec ecx |
1462 | add ecx,[edi+TASKDATA.mem_start] |
1458 | jnz kbnoshift |
1463 | mov eax,ecx |
1459 | |
1464 | mov ebx,keymap_shift |
1460 | mov ebx,keymap_shift |
1465 | mov ecx,128 |
- | |
1466 | call memmove |
1461 | mov ecx,128 |
1467 | ret |
1462 | call memmove |
1468 | kbnoshift: |
- | |
1469 | ; cmp ebx,3 |
- | |
1470 | dec ebx |
- | |
1471 | jnz kbnoalt |
1463 | ret |
1472 | mov edi,[TASK_BASE] |
1464 | kbnoshift: |
1473 | add ecx,[edi+TASKDATA.mem_start] |
1465 | dec ecx |
1474 | mov eax,ecx |
1466 | jnz kbnoalt |
1475 | mov ebx,keymap_alt |
1467 | mov ebx,keymap_alt |
1476 | mov ecx,128 |
- | |
1477 | call memmove |
1468 | mov ecx,128 |
1478 | ret |
1469 | call memmove |
1479 | kbnoalt: |
1470 | ret |
1480 | ; cmp ebx,9 |
1471 | kbnoalt: |
1481 | sub ebx,6 |
1472 | sub ecx,6 |
1482 | jnz kbnocountry |
1473 | jnz kbnocountry |
1483 | mov word [keyboard],cx |
1474 | mov word [keyboard],dx |
1484 | ret |
1475 | ret |
1485 | kbnocountry: |
- | |
1486 | mov [esp+36],dword 1 |
1476 | kbnocountry: |
1487 | ret |
1477 | mov [esp+32],dword 1 |
- | 1478 | ret |
|
1488 | nsyse2: |
1479 | nsyse2: |
1489 | ; cmp eax,3 ; CD |
1480 | dec ebx ; CD |
- | 1481 | jnz nsyse4 |
|
1490 | dec eax |
1482 | |
1491 | jnz nsyse4 |
1483 | test ecx,ecx |
1492 | test ebx,ebx |
1484 | jz nosesl |
- | 1485 | ||
1493 | jz nosesl |
1486 | cmp ecx, 4 |
1494 | cmp ebx, 4 |
1487 | ja nosesl |
1495 | ja nosesl |
1488 | mov [cd_base],cl |
1496 | mov [cd_base],bl |
1489 | |
1497 | cmp ebx,1 |
1490 | dec ecx |
- | 1491 | jnz noprma |
|
1498 | jnz noprma |
1492 | mov [cdbase],0x1f0 |
1499 | mov [cdbase],0x1f0 |
1493 | mov [cdid],0xa0 |
1500 | mov [cdid],0xa0 |
1494 | noprma: |
1501 | noprma: |
1495 | |
1502 | cmp ebx,2 |
1496 | dec ecx |
1503 | jnz noprsl |
1497 | jnz noprsl |
1504 | mov [cdbase],0x1f0 |
1498 | mov [cdbase],0x1f0 |
1505 | mov [cdid],0xb0 |
1499 | mov [cdid],0xb0 |
1506 | noprsl: |
1500 | noprsl: |
1507 | cmp ebx,3 |
1501 | dec ecx |
1508 | jnz nosema |
1502 | jnz nosema |
1509 | mov [cdbase],0x170 |
1503 | mov [cdbase],0x170 |
1510 | mov [cdid],0xa0 |
1504 | mov [cdid],0xa0 |
1511 | nosema: |
1505 | nosema: |
1512 | cmp ebx,4 |
1506 | dec ecx |
1513 | jnz nosesl |
1507 | jnz nosesl |
Line -... | Line 1508... | ||
- | 1508 | mov [cdbase],0x170 |
|
1514 | mov [cdbase],0x170 |
1509 | mov [cdid],0xb0 |
Line -... | Line 1510... | ||
- | 1510 | nosesl: |
|
1515 | mov [cdid],0xb0 |
1511 | ret |
Line 1516... | Line 1512... | ||
1516 | nosesl: |
1512 | |
1517 | ret |
- | |
1518 | 1513 | iglobal |
|
1519 | cd_base db 0 |
1514 | cd_base db 0 |
1520 | 1515 | ||
1521 | nsyse4: |
1516 | endg |
Line 1522... | Line -... | ||
1522 | - | ||
1523 | ; cmp eax,5 ; SYSTEM LANGUAGE |
1517 | nsyse4: |
1524 | sub eax,2 |
1518 | |
- | 1519 | sub ebx,2 ; SYSTEM LANGUAGE |
|
1525 | jnz nsyse5 |
1520 | jnz nsyse5 |
1526 | mov [syslang],ebx |
1521 | mov [syslang],ecx |
- | 1522 | ret |
|
1527 | ret |
1523 | nsyse5: |
1528 | nsyse5: |
1524 | |
1529 | 1525 | sub ebx,2 ; HD BASE |
|
- | 1526 | jnz nsyse7 |
|
1530 | ; cmp eax,7 ; HD BASE |
1527 | |
1531 | sub eax,2 |
1528 | test ecx,ecx |
1532 | jnz nsyse7 |
1529 | jz nosethd |
1533 | test ebx,ebx |
1530 | |
1534 | jz nosethd |
1531 | cmp ecx,4 |
1535 | cmp ebx,4 |
1532 | ja nosethd |
1536 | ja nosethd |
1533 | mov [hd_base],cl |
- | 1534 | ||
1537 | mov [hd_base],bl |
1535 | cmp ecx,1 |
1538 | cmp ebx,1 |
1536 | jnz noprmahd |
1539 | jnz noprmahd |
1537 | mov [hdbase],0x1f0 |
1540 | mov [hdbase],0x1f0 |
1538 | and dword [hdid],0x0 |
1541 | mov [hdid],0x0 |
1539 | mov dword [hdpos],ecx |
1542 | mov [hdpos],1 |
1540 | ; call set_FAT32_variables |
1543 | ; call set_FAT32_variables |
1541 | noprmahd: |
- | 1542 | ||
1544 | noprmahd: |
1543 | cmp ecx,2 |
1545 | cmp ebx,2 |
1544 | jnz noprslhd |
1546 | jnz noprslhd |
1545 | mov [hdbase],0x1f0 |
1547 | mov [hdbase],0x1f0 |
1546 | mov [hdid],0x10 |
1548 | mov [hdid],0x10 |
1547 | mov dword [hdpos],ecx |
1549 | mov [hdpos],2 |
1548 | ; call set_FAT32_variables |
1550 | ; call set_FAT32_variables |
1549 | noprslhd: |
- | 1550 | ||
1551 | noprslhd: |
1551 | cmp ecx,3 |
1552 | cmp ebx,3 |
1552 | jnz nosemahd |
1553 | jnz nosemahd |
1553 | mov [hdbase],0x170 |
1554 | mov [hdbase],0x170 |
1554 | and dword [hdid],0x0 |
1555 | mov [hdid],0x0 |
1555 | mov dword [hdpos],ecx |
1556 | mov [hdpos],3 |
1556 | ; call set_FAT32_variables |
1557 | ; call set_FAT32_variables |
1557 | nosemahd: |
1558 | nosemahd: |
1558 | |
1559 | cmp ebx,4 |
1559 | cmp ecx,4 |
1560 | jnz noseslhd |
1560 | jnz noseslhd |
1561 | mov [hdbase],0x170 |
1561 | mov [hdbase],0x170 |
1562 | mov [hdid],0x10 |
1562 | mov [hdid],0x10 |
1563 | mov [hdpos],4 |
1563 | mov dword [hdpos],ecx |
Line 1564... | Line 1564... | ||
1564 | ; call set_FAT32_variables |
1564 | ; call set_FAT32_variables |
1565 | noseslhd: |
1565 | noseslhd: |
1566 | call reserve_hd1 |
1566 | call reserve_hd1 |
Line 1567... | Line 1567... | ||
1567 | call reserve_hd_channel |
1567 | call reserve_hd_channel |
Line 1568... | Line 1568... | ||
1568 | call free_hd_channel |
1568 | call free_hd_channel |
1569 | mov [hd1_status],0 ; free |
1569 | and dword [hd1_status],0 ; free |
1570 | nosethd: |
1570 | nosethd: |
1571 | ret |
1571 | ret |
1572 | 1572 | ||
1573 | iglobal |
1573 | iglobal |
1574 | hd_base db 0 |
1574 | hd_base db 0 |
1575 | endg |
1575 | endg |
1576 | 1576 | ||
1577 | nsyse7: |
1577 | nsyse7: |
1578 | 1578 | ||
1579 | ; cmp eax,8 ; HD PARTITION |
1579 | ; cmp eax,8 ; HD PARTITION |
1580 | dec eax |
1580 | dec ebx |
Line 1581... | Line 1581... | ||
1581 | jnz nsyse8 |
1581 | jnz nsyse8 |
1582 | mov [fat32part],ebx |
1582 | mov [fat32part],ecx |
1583 | ; call set_FAT32_variables |
1583 | ; call set_FAT32_variables |
- | 1584 | call reserve_hd1 |
|
1584 | call reserve_hd1 |
1585 | call reserve_hd_channel |
1585 | call reserve_hd_channel |
- | |
1586 | call free_hd_channel |
1586 | call free_hd_channel |
1587 | pusha |
1587 | ; pusha |
Line 1588... | Line 1588... | ||
1588 | call choice_necessity_partition_1 |
1588 | call choice_necessity_partition_1 |
1589 | popa |
1589 | ; popa |
1590 | mov [hd1_status],0 ; free |
1590 | and dword [hd1_status],0 ; free |
1591 | ret |
1591 | ret |
1592 | - | ||
1593 | nsyse8: |
1592 | |
1594 | ; cmp eax,11 ; ENABLE LBA READ |
1593 | nsyse8: |
1595 | sub eax,3 |
1594 | ; cmp eax,11 ; ENABLE LBA READ |
Line 1596... | Line 1595... | ||
1596 | jnz no_set_lba_read |
1595 | and ecx,1 |
1597 | and ebx,1 |
1596 | sub ebx,3 |
1598 | mov [lba_read_enabled],ebx |
1597 | jnz no_set_lba_read |
Line 1599... | Line 1598... | ||
1599 | ret |
1598 | mov [lba_read_enabled],ecx |
1600 | 1599 | ret |
|
1601 | no_set_lba_read: |
1600 | |
Line 1602... | Line 1601... | ||
1602 | ; cmp eax,12 ; ENABLE PCI ACCESS |
1601 | no_set_lba_read: |
Line 1603... | Line 1602... | ||
1603 | dec eax |
1602 | ; cmp eax,12 ; ENABLE PCI ACCESS |
Line 1625... | Line 1624... | ||
1625 | ; 5=system language, 1eng 2fi 3ger 4rus |
1624 | ; 5=system language, 1eng 2fi 3ger 4rus |
1626 | ; 7=hd base 1, pri.master 2, pri slave 3 sec master, 4 sec slave |
1625 | ; 7=hd base 1, pri.master 2, pri slave 3 sec master, 4 sec slave |
1627 | ; 8=fat32 partition in hd |
1626 | ; 8=fat32 partition in hd |
1628 | ; 9=get hs timer tic |
1627 | ; 9=get hs timer tic |
Line 1629... | Line 1628... | ||
1629 | 1628 | ||
- | 1629 | ; cmp eax,1 |
|
1630 | cmp eax,1 |
1630 | dec ebx |
1631 | jne ngsyse1 |
1631 | jnz ngsyse1 |
1632 | movzx eax,[midi_base] |
1632 | movzx eax,[midi_base] |
1633 | mov [esp+36],eax |
1633 | mov [esp+32],eax |
1634 | ret |
1634 | ret |
- | 1635 | ngsyse1: |
|
- | 1636 | ; cmp eax,2 |
|
- | 1637 | dec ebx |
|
Line 1635... | Line -... | ||
1635 | ngsyse1: |
- | |
1636 | - | ||
1637 | cmp eax,2 |
- | |
1638 | jne ngsyse2 |
- | |
1639 | cmp ebx,1 |
1638 | jnz ngsyse2 |
1640 | jnz kbnobaseret |
1639 | |
1641 | mov edi,[TASK_BASE] |
1640 | mov edi,[TASK_BASE] |
- | 1641 | add edi,[edi+TASKDATA.mem_start] |
|
- | 1642 | mov ebx,edi |
|
- | 1643 | ||
- | 1644 | ; cmp ebx,1 |
|
1642 | add ecx,[edi+TASKDATA.mem_start] |
1645 | dec ecx |
1643 | mov ebx,ecx |
1646 | jnz kbnobaseret |
1644 | mov eax,keymap |
1647 | mov eax,keymap |
1645 | mov ecx,128 |
1648 | mov ecx,128 |
1646 | call memmove |
1649 | call memmove |
1647 | ret |
1650 | ret |
- | 1651 | kbnobaseret: |
|
1648 | kbnobaseret: |
1652 | ; cmp ebx,2 |
1649 | cmp ebx,2 |
- | |
1650 | jnz kbnoshiftret |
- | |
1651 | mov edi,[TASK_BASE] |
- | |
- | 1653 | dec ecx |
|
1652 | add ecx,[edi+TASKDATA.mem_start] |
1654 | jnz kbnoshiftret |
1653 | mov ebx,ecx |
1655 | |
1654 | mov eax,keymap_shift |
1656 | mov eax,keymap_shift |
1655 | mov ecx,128 |
1657 | mov ecx,128 |
1656 | call memmove |
1658 | call memmove |
1657 | ret |
1659 | ret |
- | 1660 | kbnoshiftret: |
|
1658 | kbnoshiftret: |
1661 | ; cmp ebx,3 |
1659 | cmp ebx,3 |
- | |
1660 | jne kbnoaltret |
- | |
1661 | mov edi,[TASK_BASE] |
- | |
- | 1662 | dec ecx |
|
- | 1663 | jne kbnoaltret |
|
- | 1664 | ||
1662 | add ecx,[edi+TASKDATA.mem_start] |
1665 | |
1663 | mov ebx,ecx |
1666 | |
1664 | mov eax,keymap_alt |
1667 | mov eax,keymap_alt |
1665 | mov ecx,128 |
1668 | mov ecx,128 |
1666 | call memmove |
1669 | call memmove |
1667 | ret |
1670 | ret |
- | 1671 | kbnoaltret: |
|
1668 | kbnoaltret: |
1672 | ; cmp ebx,9 |
1669 | cmp ebx,9 |
1673 | sub ecx,6 |
1670 | jnz ngsyse2 |
1674 | jnz ngsyse2 |
1671 | movzx eax,word [keyboard] |
1675 | movzx eax,word [keyboard] |
1672 | mov [esp+36],eax |
- | |
Line -... | Line 1676... | ||
- | 1676 | mov [esp+32],eax |
|
- | 1677 | ret |
|
1673 | ret |
1678 | |
- | 1679 | ||
1674 | ngsyse2: |
1680 | ngsyse2: |
1675 | 1681 | ; cmp eax,3 |
|
1676 | cmp eax,3 |
1682 | dec ebx |
1677 | jnz ngsyse3 |
1683 | jnz ngsyse3 |
1678 | movzx eax,[cd_base] |
1684 | movzx eax,[cd_base] |
1679 | mov [esp+36],eax |
1685 | mov [esp+32],eax |
- | 1686 | ret |
|
1680 | ret |
1687 | ngsyse3: |
1681 | ngsyse3: |
1688 | ; cmp eax,5 |
1682 | cmp eax,5 |
1689 | sub ebx,2 |
1683 | jnz ngsyse5 |
1690 | jnz ngsyse5 |
1684 | mov eax,[syslang] |
1691 | mov eax,[syslang] |
1685 | mov [esp+36],eax |
1692 | mov [esp+32],eax |
- | 1693 | ret |
|
1686 | ret |
1694 | ngsyse5: |
1687 | ngsyse5: |
1695 | ; cmp eax,7 |
1688 | cmp eax,7 |
1696 | sub ebx,2 |
1689 | jnz ngsyse7 |
1697 | jnz ngsyse7 |
1690 | movzx eax,[hd_base] |
1698 | movzx eax,[hd_base] |
1691 | mov [esp+36],eax |
1699 | mov [esp+32],eax |
- | 1700 | ret |
|
1692 | ret |
1701 | ngsyse7: |
1693 | ngsyse7: |
1702 | ; cmp eax,8 |
1694 | cmp eax,8 |
1703 | dec ebx |
1695 | jnz ngsyse8 |
1704 | jnz ngsyse8 |
1696 | mov eax,[fat32part] |
1705 | mov eax,[fat32part] |
1697 | mov [esp+36],eax |
1706 | mov [esp+32],eax |
- | 1707 | ret |
|
1698 | ret |
1708 | ngsyse8: |
1699 | ngsyse8: |
1709 | ; cmp eax,9 |
1700 | cmp eax,9 |
1710 | dec ebx |
1701 | jne ngsyse9 |
1711 | jnz ngsyse9 |
1702 | mov eax,[timer_ticks] ;[0xfdf0] |
1712 | mov eax,[timer_ticks] ;[0xfdf0] |
1703 | mov [esp+36],eax |
1713 | mov [esp+32],eax |
- | 1714 | ret |
|
1704 | ret |
1715 | ngsyse9: |
1705 | ngsyse9: |
1716 | ; cmp eax,11 |
1706 | cmp eax,11 |
1717 | sub ebx,2 |
1707 | jnz ngsyse11 |
1718 | jnz ngsyse11 |
1708 | mov eax,[lba_read_enabled] |
1719 | mov eax,[lba_read_enabled] |
1709 | mov [esp+36],eax |
1720 | mov [esp+32],eax |
- | 1721 | ret |
|
1710 | ret |
1722 | ngsyse11: |
1711 | ngsyse11: |
1723 | ; cmp eax,12 |
1712 | cmp eax,12 |
1724 | dec ebx |
1713 | jnz ngsyse12 |
1725 | jnz ngsyse12 |
1714 | mov eax,[pci_access_enabled] |
1726 | mov eax,[pci_access_enabled] |
1715 | mov [esp+36],eax |
1727 | mov [esp+32],eax |
1716 | ret |
1728 | ret |
Line -... | Line 1729... | ||
- | 1729 | ngsyse12: |
|
1717 | ngsyse12: |
1730 | mov [esp+32],dword 1 |
1718 | mov [esp+36],dword 1 |
1731 | ret |
1719 | ret |
1732 | |
Line 1720... | Line 1733... | ||
1720 | 1733 | ||
Line 1780... | Line 1793... | ||
1780 | jne @f |
1793 | jne @f |
1781 | mov ax,[MOUSE_SCROLL_H] |
1794 | mov ax,[MOUSE_SCROLL_H] |
1782 | shl eax,16 |
1795 | shl eax,16 |
1783 | mov ax,[MOUSE_SCROLL_V] |
1796 | mov ax,[MOUSE_SCROLL_V] |
1784 | mov [esp+36],eax |
1797 | mov [esp+36],eax |
1785 | mov [MOUSE_SCROLL_H],word 0 |
1798 | and [MOUSE_SCROLL_H],word 0 |
1786 | mov [MOUSE_SCROLL_V],word 0 |
1799 | and [MOUSE_SCROLL_V],word 0 |
1787 | ret |
1800 | ret |
1788 | @@: |
1801 | @@: |
1789 | mov [esp+36],dword 0 |
1802 | and [esp+36],dword 0 |
1790 | ret |
1803 | ; ret |
1791 | msset: |
1804 | msset: |
1792 | ret |
1805 | ret |
Line 1793... | Line 1806... | ||
1793 | 1806 | ||
1794 | app_load_cursor: |
1807 | app_load_cursor: |
Line 1844... | Line 1857... | ||
1844 | out dx,al |
1857 | out dx,al |
1845 | pop edx |
1858 | pop edx |
1846 | ret |
1859 | ret |
Line 1847... | Line -... | ||
1847 | - | ||
Line -... | Line 1860... | ||
- | 1860 | ||
- | 1861 | ||
- | 1862 | ||
- | 1863 | align 4 |
|
- | 1864 | ||
- | 1865 | sys_midi: |
|
- | 1866 | cmp [mididp],0 |
|
- | 1867 | jnz sm0 |
|
- | 1868 | mov [esp+36],dword 1 |
|
- | 1869 | ret |
|
- | 1870 | sm0: |
|
- | 1871 | and [esp+36],dword 0 |
|
1848 | 1872 | dec ebx |
|
1849 | setuart: |
1873 | jnz smn1 |
1850 | 1874 | ; call setuart |
|
1851 | su1: |
1875 | su1: |
1852 | call is_output |
1876 | call is_output |
1853 | cmp al,0 |
1877 | test al,al |
1854 | jnz su1 |
1878 | jnz su1 |
1855 | mov dx,word [midisp] |
1879 | mov dx,word [midisp] |
1856 | mov al,0xff |
1880 | mov al,0xff |
1857 | out dx,al |
1881 | out dx,al |
1858 | su2: |
1882 | su2: |
1859 | mov dx,word [midisp] |
1883 | mov dx,word [midisp] |
1860 | mov al,0xff |
1884 | mov al,0xff |
1861 | out dx,al |
1885 | out dx,al |
1862 | call is_input |
1886 | call is_input |
1863 | cmp al,0 |
1887 | test al,al |
1864 | jnz su2 |
1888 | jnz su2 |
1865 | call get_mpu_in |
1889 | call get_mpu_in |
1866 | cmp al,0xfe |
1890 | cmp al,0xfe |
1867 | jnz su2 |
1891 | jnz su2 |
1868 | su3: |
1892 | su3: |
1869 | call is_output |
1893 | call is_output |
1870 | cmp al,0 |
1894 | test al,al |
1871 | jnz su3 |
1895 | jnz su3 |
1872 | mov dx,word [midisp] |
- | |
1873 | mov al,0x3f |
- | |
1874 | out dx,al |
- | |
1875 | - | ||
1876 | ret |
- | |
1877 | - | ||
1878 | - | ||
1879 | align 4 |
- | |
1880 | - | ||
1881 | sys_midi: |
- | |
1882 | - | ||
1883 | cmp [mididp],0 |
- | |
1884 | jnz sm0 |
- | |
1885 | mov [esp+36],dword 1 |
- | |
1886 | ret |
- | |
1887 | sm0: |
- | |
1888 | - | ||
1889 | cmp eax,1 |
- | |
1890 | mov [esp+36],dword 0 |
1896 | mov dx,word [midisp] |
1891 | jnz smn1 |
1897 | mov al,0x3f |
1892 | call setuart |
- | |
1893 | ret |
1898 | out dx,al |
1894 | smn1: |
1899 | ret |
1895 | 1900 | smn1: |
|
1896 | cmp eax,2 |
1901 | dec ebx |
1897 | jnz smn2 |
1902 | jnz smn2 |
1898 | sm10: |
1903 | sm10: |
1899 | call get_mpu_in |
1904 | call get_mpu_in |
1900 | call is_output |
1905 | call is_output |
1901 | test al,al |
1906 | test al,al |
1902 | jnz sm10 |
- | |
1903 | mov al,bl |
1907 | jnz sm10 |
1904 | call put_mpu_out |
- | |
1905 | ret |
1908 | mov al,bl |
Line 1906... | Line -... | ||
1906 | smn2: |
- | |
1907 | 1909 | call put_mpu_out |
|
1908 | ret |
1910 | smn2: |
1909 | 1911 | ret |
|
1910 | 1912 | ||
1911 | detect_devices: |
1913 | detect_devices: |
1912 | ;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
1914 | ;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
1913 | ;include 'detect/commouse.inc' |
1915 | ;include 'detect/commouse.inc' |
1914 | ;include 'detect/ps2mouse.inc' |
1916 | ;include 'detect/ps2mouse.inc' |
1915 | ;include 'detect/dev_fd.inc' |
1917 | ;include 'detect/dev_fd.inc' |
Line 1916... | Line -... | ||
1916 | ;include 'detect/dev_hdcd.inc' |
- | |
1917 | ;include 'detect/sear_par.inc' |
1918 | ;include 'detect/dev_hdcd.inc' |
Line 1918... | Line 1919... | ||
1918 | ;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
1919 | ;include 'detect/sear_par.inc' |
1919 | ret |
1920 | ;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
1920 | 1921 | ret |
|
Line 2529... | Line 2530... | ||
2529 | 2530 | ||
2530 | nosb7: |
2531 | nosb7: |
Line 2531... | Line 2532... | ||
2531 | ret |
2532 | ret |
2532 | 2533 | ||
2533 | force_redraw_background: |
2534 | force_redraw_background: |
2534 | mov [draw_data+32 + RECT.left],dword 0 |
2535 | and [draw_data+32 + RECT.left],dword 0 |
2535 | mov [draw_data+32 + RECT.top],dword 0 |
2536 | and [draw_data+32 + RECT.top],dword 0 |
2536 | push eax ebx |
2537 | push eax ebx |
2537 | mov eax,[Screen_Max_X] |
2538 | mov eax,[Screen_Max_X] |
2538 | mov ebx,[Screen_Max_Y] |
2539 | mov ebx,[Screen_Max_Y] |
Line 3817... | Line 3818... | ||
3817 | pop edx |
3818 | pop edx |
3818 | pop ecx |
3819 | pop ecx |
Line 3819... | Line 3820... | ||
3819 | 3820 | ||
Line 3820... | Line -... | ||
3820 | ret |
- | |
- | 3821 | ret |
|
3821 | 3822 | ||
Line 3822... | Line 3823... | ||
3822 | 3823 | align 16 ;very often call this subrutine |
|
3823 | memmove: ; memory move in bytes |
3824 | memmove: ; memory move in bytes |
3824 | 3825 | ||
3825 | ; eax = from |
3826 | ; eax = from |
3826 | ; ebx = to |
3827 | ; ebx = to |
Line 3827... | Line -... | ||
3827 | ; ecx = no of bytes |
- | |
3828 | test ecx, ecx |
3828 | ; ecx = no of bytes |
Line 3829... | Line 3829... | ||
3829 | jle .ret |
3829 | test ecx, ecx |
3830 | 3830 | jle .ret |
|
Line 5063... | Line 5063... | ||
5063 | mov eax,[BytesPerScanLine] |
5063 | mov eax,[BytesPerScanLine] |
5064 | mov [esp+36],eax |
5064 | mov [esp+36],eax |
5065 | ret |
5065 | ret |
5066 | no_gs3: |
5066 | no_gs3: |
Line 5067... | Line 5067... | ||
5067 | 5067 | ||
5068 | mov [esp+36],dword -1 |
5068 | or [esp+36],dword -1 |
Line 5069... | Line 5069... | ||
5069 | ret |
5069 | ret |