Subversion Repositories Kolibri OS

Rev

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