Rev 580 | Rev 593 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 580 | Rev 585 | ||
---|---|---|---|
Line 19... | Line 19... | ||
19 | ; write all changed sectors to disk |
19 | ; write all changed sectors to disk |
20 | ;----------------------------------------------------------- |
20 | ;----------------------------------------------------------- |
21 | push eax ecx edx esi edi |
21 | push eax ecx edx esi edi |
Line 22... | Line 22... | ||
22 | 22 | ||
23 | ; write difference ( 2 ) from cache to hd |
- | |
24 | - | ||
25 | ; mov ecx,cache_max |
- | |
26 | ; mov esi,HD_CACHE+8 |
23 | ; write difference ( 2 ) from cache to hd |
27 | call calculate_cache |
24 | call calculate_cache |
28 | add esi,8 |
- | |
29 | 25 | add esi,8 |
|
30 | mov edi,1 |
- | |
31 | 26 | mov edi,1 |
|
32 | write_cache_more: |
- | |
33 | 27 | write_cache_more: |
|
34 | cmp dword [esi+4],2 ; if cache slot is not different |
28 | cmp dword [esi+4],2 ; if cache slot is not different |
35 | jne .write_chain |
- | |
36 | 29 | jne .write_chain |
|
37 | mov dword [esi+4],1 ; same as in hd |
30 | mov dword [esi+4],1 ; same as in hd |
38 | mov eax,[esi] ; eax = sector to write |
- | |
39 | 31 | mov eax,[esi] ; eax = sector to write |
|
40 | cmp eax,[PARTITION_START] |
32 | cmp eax,[PARTITION_START] |
41 | jb danger |
33 | jb danger |
42 | cmp eax,[PARTITION_END] |
34 | cmp eax,[PARTITION_END] |
43 | ja danger |
- | |
44 | 35 | ja danger |
|
45 | ; DMA write is permitted only if [allow_dma_access]=1 |
36 | ; DMA write is permitted only if [allow_dma_access]=1 |
46 | cmp [allow_dma_access], 2 |
37 | cmp [allow_dma_access], 2 |
47 | jae .nodma |
38 | jae .nodma |
48 | cmp [dma_hdd], 1 |
39 | cmp [dma_hdd], 1 |
Line 76... | Line 67... | ||
76 | jmp .continue |
67 | jmp .continue |
77 | .nodma: |
68 | .nodma: |
78 | call cache_write_pio |
69 | call cache_write_pio |
79 | .write_chain: |
70 | .write_chain: |
80 | call flush_cache_chain |
71 | call flush_cache_chain |
81 | - | ||
82 | .continue: |
72 | .continue: |
83 | danger: |
73 | danger: |
84 | - | ||
85 | add esi,8 |
74 | add esi,8 |
86 | inc edi |
75 | inc edi |
87 | dec ecx |
76 | dec ecx |
88 | jnz write_cache_more |
77 | jnz write_cache_more |
89 | call flush_cache_chain |
78 | call flush_cache_chain |
Line 96... | Line 85... | ||
96 | jz @f |
85 | jz @f |
97 | call write_cache_chain |
86 | call write_cache_chain |
98 | mov [cache_chain_started], 0 |
87 | mov [cache_chain_started], 0 |
99 | @@: |
88 | @@: |
100 | ret |
89 | ret |
101 | - | ||
102 | - | ||
- | 90 | ;-------------------------------------------------------------------- |
|
103 | align 4 |
91 | align 4 |
104 | find_empty_slot: |
92 | find_empty_slot: |
105 | ;----------------------------------------------------------- |
93 | ;----------------------------------------------------------- |
106 | ; find empty or read slot, flush cache if next 10% is used by write |
94 | ; find empty or read slot, flush cache if next 10% is used by write |
107 | ; output : edi = cache slot |
95 | ; output : edi = cache slot |
108 | ;----------------------------------------------------------- |
96 | ;----------------------------------------------------------- |
109 | ; push ecx esi |
97 | ; push ecx esi |
Line 110... | Line 98... | ||
110 | 98 | ||
111 | search_again: |
- | |
112 | - | ||
113 | ; mov ecx,cache_max*10/100 |
- | |
114 | ; mov edi,[cache_search_start] |
99 | search_again: |
115 | call calculate_cache_3 |
- | |
116 | ; push eax edx |
- | |
117 | ; mov eax,ecx |
- | |
118 | ; mov ecx,10 |
- | |
119 | ; xor edx,edx |
- | |
120 | ; div ecx |
- | |
121 | ; mov ecx,eax |
- | |
122 | ; pop edx eax |
100 | call calculate_cache_3 |
123 | shr ecx,3 |
101 | shr ecx,3 |
124 | search_for_empty: |
- | |
125 | 102 | search_for_empty: |
|
126 | inc edi |
- | |
127 | ; cmp edi,cache_max |
- | |
128 | ; push eax |
103 | inc edi |
129 | call calculate_cache_4 |
- | |
130 | ; cmp edi,eax |
- | |
131 | ; pop eax |
104 | call calculate_cache_4 |
132 | jbe inside_cache |
105 | jbe inside_cache |
133 | mov edi,1 |
- | |
134 | 106 | mov edi,1 |
|
135 | inside_cache: |
- | |
136 | - | ||
137 | ; cmp dword [edi*8+HD_CACHE+4],2 ; get cache slot info |
107 | inside_cache: |
138 | push esi |
108 | push esi |
139 | call calculate_cache_1 |
109 | call calculate_cache_1 |
140 | cmp dword [edi*8+esi+4],2 |
110 | cmp dword [edi*8+esi+4],2 |
141 | pop esi |
111 | pop esi |
142 | jb found_slot ; it's empty or read |
112 | jb found_slot ; it's empty or read |
143 | dec ecx |
113 | dec ecx |
144 | jnz search_for_empty |
- | |
145 | 114 | jnz search_for_empty |
|
146 | call write_cache ; no empty slots found, write all |
115 | call write_cache ; no empty slots found, write all |
147 | cmp [hd_error],0 |
116 | cmp [hd_error],0 |
148 | jne found_slot_access_denied |
- | |
149 | 117 | jne found_slot_access_denied |
|
150 | jmp search_again ; and start again |
- | |
151 | 118 | jmp search_again ; and start again |
|
152 | found_slot: |
- | |
153 | - | ||
154 | ; mov [cache_search_start],edi |
119 | found_slot: |
155 | call calculate_cache_5 |
120 | call calculate_cache_5 |
156 | found_slot_access_denied: |
121 | found_slot_access_denied: |
157 | ret |
- | |
- | 122 | ret |
|
158 | 123 | ;-------------------------------------------------------------------- |
|
159 | align 4 |
124 | align 4 |
160 | clear_hd_cache: |
- | |
161 | ; push eax ecx edi |
- | |
162 | ; mov edi, HD_CACHE |
- | |
163 | ; mov ecx,16384 |
- | |
164 | ; xor eax,eax |
- | |
165 | ; cld |
- | |
166 | ; rep stosd ; clear hd cache with 0 |
- | |
167 | ; mov [cache_search_start],eax |
125 | clear_hd_cache: |
168 | mov [fat_in_cache],-1 |
126 | mov [fat_in_cache],-1 |
169 | mov [fat_change],0 |
- | |
170 | ; pop edi ecx eax |
127 | mov [fat_change],0 |
171 | ret |
- | |
172 | 128 | ret |
|
173 | ;-------------------------------------------------------------------- |
129 | ;-------------------------------------------------------------------- |
174 | align 4 |
130 | align 4 |
175 | calculate_cache: |
131 | calculate_cache: |
176 | ; mov ecx,cache_max ; entries in cache |
132 | ; mov ecx,cache_max ; entries in cache |
Line 446... | Line 402... | ||
446 | mov [cache_ide3_search_start],edi |
402 | mov [cache_ide3_search_start],edi |
447 | ret |
403 | ret |
448 | .ide3_appl_data: |
404 | .ide3_appl_data: |
449 | mov [cache_ide3_appl_search_start],edi |
405 | mov [cache_ide3_appl_search_start],edi |
450 | ret |
406 | ret |
- | 407 | ||
- | 408 | ;-------------------------------------------------------------------- |
|
- | 409 | align 4 |
|
- | 410 | find_empty_slot_CD_cache: |
|
- | 411 | ;----------------------------------------------------------- |
|
- | 412 | ; find empty or read slot, flush cache if next 10% is used by write |
|
- | 413 | ; output : edi = cache slot |
|
- | 414 | ;----------------------------------------------------------- |
|
- | 415 | .search_again: |
|
- | 416 | call cd_calculate_cache_3 |
|
- | 417 | .search_for_empty: |
|
- | 418 | inc edi |
|
- | 419 | call cd_calculate_cache_4 |
|
- | 420 | jbe .inside_cache |
|
- | 421 | mov edi,1 |
|
- | 422 | .inside_cache: |
|
- | 423 | call cd_calculate_cache_5 |
|
- | 424 | ret |
|
- | 425 | ;-------------------------------------------------------------------- |
|
- | 426 | clear_CD_cache: |
|
- | 427 | pusha |
|
- | 428 | .ide0: |
|
- | 429 | xor eax,eax |
|
- | 430 | cmp [cdpos],1 |
|
- | 431 | jne .ide1 |
|
- | 432 | mov [cache_ide0_search_start],eax |
|
- | 433 | mov ecx,[cache_ide0_system_sad_size] |
|
- | 434 | mov edi,[cache_ide0_pointer] |
|
- | 435 | call .clear |
|
- | 436 | mov [cache_ide0_appl_search_start],eax |
|
- | 437 | mov ecx,[cache_ide0_appl_sad_size] |
|
- | 438 | mov edi,[cache_ide0_data_pointer] |
|
- | 439 | jmp .continue |
|
- | 440 | .ide1: |
|
- | 441 | cmp [cdpos],2 |
|
- | 442 | jne .ide2 |
|
- | 443 | mov [cache_ide1_search_start],eax |
|
- | 444 | mov ecx,[cache_ide1_system_sad_size] |
|
- | 445 | mov edi,[cache_ide1_pointer] |
|
- | 446 | call .clear |
|
- | 447 | mov [cache_ide1_appl_search_start],eax |
|
- | 448 | mov ecx,[cache_ide1_appl_sad_size] |
|
- | 449 | mov edi,[cache_ide1_data_pointer] |
|
- | 450 | jmp .continue |
|
- | 451 | .ide2: |
|
- | 452 | cmp [cdpos],3 |
|
- | 453 | jne .ide3 |
|
- | 454 | mov [cache_ide2_search_start],eax |
|
- | 455 | mov ecx,[cache_ide2_system_sad_size] |
|
- | 456 | mov edi,[cache_ide2_pointer] |
|
- | 457 | call .clear |
|
- | 458 | mov [cache_ide2_appl_search_start],eax |
|
- | 459 | mov ecx,[cache_ide2_appl_sad_size] |
|
- | 460 | mov edi,[cache_ide2_data_pointer] |
|
- | 461 | jmp .continue |
|
- | 462 | .ide3: |
|
- | 463 | mov [cache_ide3_search_start],eax |
|
- | 464 | mov ecx,[cache_ide3_system_sad_size] |
|
- | 465 | mov edi,[cache_ide3_pointer] |
|
- | 466 | call .clear |
|
- | 467 | mov [cache_ide3_appl_search_start],eax |
|
- | 468 | mov ecx,[cache_ide3_appl_sad_size] |
|
- | 469 | mov edi,[cache_ide3_data_pointer] |
|
- | 470 | .continue: |
|
- | 471 | call .clear |
|
- | 472 | popa |
|
- | 473 | ret |
|
- | 474 | .clear: |
|
- | 475 | shl ecx,1 |
|
- | 476 | cld |
|
- | 477 | rep stosd |
|
- | 478 | ret |
|
- | 479 | ;-------------------------------------------------------------------- |
|
- | 480 | align 4 |
|
- | 481 | cd_calculate_cache: |
|
- | 482 | ; mov ecx,cache_max ; entries in cache |
|
- | 483 | ; mov esi,HD_CACHE+8 |
|
- | 484 | ||
- | 485 | ; 1 - IDE0 ... 4 - IDE3 |
|
- | 486 | .ide0: |
|
- | 487 | cmp [cdpos],1 |
|
- | 488 | jne .ide1 |
|
- | 489 | cmp [cd_appl_data],0 |
|
- | 490 | jne .ide0_appl_data |
|
- | 491 | mov ecx,[cache_ide0_system_sad_size] |
|
- | 492 | mov esi,[cache_ide0_pointer] |
|
- | 493 | ret |
|
- | 494 | .ide0_appl_data: |
|
- | 495 | mov ecx,[cache_ide0_appl_sad_size] |
|
- | 496 | mov esi,[cache_ide0_data_pointer] |
|
- | 497 | ret |
|
- | 498 | .ide1: |
|
- | 499 | cmp [cdpos],2 |
|
- | 500 | jne .ide2 |
|
- | 501 | cmp [cd_appl_data],0 |
|
- | 502 | jne .ide1_appl_data |
|
- | 503 | mov ecx,[cache_ide1_system_sad_size] |
|
- | 504 | mov esi,[cache_ide1_pointer] |
|
- | 505 | ret |
|
- | 506 | .ide1_appl_data: |
|
- | 507 | mov ecx,[cache_ide1_appl_sad_size] |
|
- | 508 | mov esi,[cache_ide1_data_pointer] |
|
- | 509 | ret |
|
- | 510 | .ide2: |
|
- | 511 | cmp [cdpos],3 |
|
- | 512 | jne .ide3 |
|
- | 513 | cmp [cd_appl_data],0 |
|
- | 514 | jne .ide2_appl_data |
|
- | 515 | mov ecx,[cache_ide2_system_sad_size] |
|
- | 516 | mov esi,[cache_ide2_pointer] |
|
- | 517 | ret |
|
- | 518 | .ide2_appl_data: |
|
- | 519 | mov ecx,[cache_ide2_appl_sad_size] |
|
- | 520 | mov esi,[cache_ide2_data_pointer] |
|
- | 521 | ret |
|
- | 522 | .ide3: |
|
- | 523 | cmp [cd_appl_data],0 |
|
- | 524 | jne .ide3_appl_data |
|
- | 525 | mov ecx,[cache_ide3_system_sad_size] |
|
- | 526 | mov esi,[cache_ide3_pointer] |
|
- | 527 | ret |
|
- | 528 | .ide3_appl_data: |
|
- | 529 | mov ecx,[cache_ide3_appl_sad_size] |
|
- | 530 | mov esi,[cache_ide3_data_pointer] |
|
- | 531 | ret |
|
- | 532 | ;-------------------------------------------------------------------- |
|
- | 533 | align 4 |
|
- | 534 | cd_calculate_cache_1: |
|
- | 535 | ; lea esi,[edi*8+HD_CACHE] |
|
- | 536 | ; 1 - IDE0 ... 4 - IDE3 |
|
- | 537 | .ide0: |
|
- | 538 | cmp [cdpos],1 |
|
- | 539 | jne .ide1 |
|
- | 540 | cmp [cd_appl_data],0 |
|
- | 541 | jne .ide0_appl_data |
|
- | 542 | mov esi,[cache_ide0_pointer] |
|
- | 543 | ret |
|
- | 544 | .ide0_appl_data: |
|
- | 545 | mov esi,[cache_ide0_data_pointer] |
|
- | 546 | ret |
|
- | 547 | .ide1: |
|
- | 548 | cmp [cdpos],2 |
|
- | 549 | jne .ide2 |
|
- | 550 | cmp [cd_appl_data],0 |
|
- | 551 | jne .ide1_appl_data |
|
- | 552 | mov esi,[cache_ide1_pointer] |
|
- | 553 | ret |
|
- | 554 | .ide1_appl_data: |
|
- | 555 | mov esi,[cache_ide1_data_pointer] |
|
- | 556 | ret |
|
- | 557 | .ide2: |
|
- | 558 | cmp [cdpos],3 |
|
- | 559 | jne .ide3 |
|
- | 560 | cmp [cd_appl_data],0 |
|
- | 561 | jne .ide2_appl_data |
|
- | 562 | mov esi,[cache_ide2_pointer] |
|
- | 563 | ret |
|
- | 564 | .ide2_appl_data: |
|
- | 565 | mov esi,[cache_ide2_data_pointer] |
|
- | 566 | ret |
|
- | 567 | .ide3: |
|
- | 568 | cmp [cd_appl_data],0 |
|
- | 569 | jne .ide3_appl_data |
|
- | 570 | mov esi,[cache_ide3_pointer] |
|
- | 571 | ret |
|
- | 572 | .ide3_appl_data: |
|
- | 573 | mov esi,[cache_ide3_data_pointer] |
|
- | 574 | ret |
|
451 | ;-------------------------------------------------------------------- |
575 | ;-------------------------------------------------------------------- |
452 | align 4 |
576 | align 4 |
453 | calculate_linear_to_real: |
577 | cd_calculate_cache_2: |
- | 578 | ; add esi,HD_CACHE+65536 |
|
- | 579 | ; 1 - IDE0 ... 4 - IDE3 |
|
- | 580 | .ide0: |
|
- | 581 | cmp [cdpos],1 |
|
- | 582 | jne .ide1 |
|
- | 583 | cmp [cd_appl_data],0 |
|
- | 584 | jne .ide0_appl_data |
|
- | 585 | mov eax,[cache_ide0_system_data] |
|
- | 586 | ret |
|
- | 587 | .ide0_appl_data: |
|
- | 588 | mov eax,[cache_ide0_appl_data] |
|
- | 589 | ret |
|
- | 590 | .ide1: |
|
- | 591 | cmp [cdpos],2 |
|
454 | shr eax, 12 |
592 | jne .ide2 |
- | 593 | cmp [cd_appl_data],0 |
|
- | 594 | jne .ide1_appl_data |
|
- | 595 | mov eax,[cache_ide1_system_data] |
|
- | 596 | ret |
|
- | 597 | .ide1_appl_data: |
|
- | 598 | mov eax,[cache_ide1_appl_data] |
|
- | 599 | ret |
|
- | 600 | .ide2: |
|
- | 601 | cmp [cdpos],3 |
|
- | 602 | jne .ide3 |
|
- | 603 | cmp [cd_appl_data],0 |
|
- | 604 | jne .ide2_appl_data |
|
- | 605 | mov eax,[cache_ide2_system_data] |
|
- | 606 | ret |
|
- | 607 | .ide2_appl_data: |
|
- | 608 | mov eax,[cache_ide2_appl_data] |
|
- | 609 | ret |
|
- | 610 | .ide3: |
|
- | 611 | cmp [cd_appl_data],0 |
|
- | 612 | jne .ide3_appl_data |
|
- | 613 | mov eax,[cache_ide3_system_data] |
|
- | 614 | ret |
|
- | 615 | .ide3_appl_data: |
|
455 | mov eax, [page_tabs+eax*4] |
616 | mov eax,[cache_ide3_appl_data] |
- | 617 | ret |
|
- | 618 | ;-------------------------------------------------------------------- |
|
- | 619 | align 4 |
|
- | 620 | cd_calculate_cache_3: |
|
456 | and eax, 0xFFFFF000 |
621 | ; mov ecx,cache_max*10/100 |
- | 622 | ; mov edi,[cache_search_start] |
|
- | 623 | ||
- | 624 | ; 1 - IDE0 ... 4 - IDE3 |
|
- | 625 | .ide0: |
|
- | 626 | cmp [cdpos],1 |
|
- | 627 | jne .ide1 |
|
- | 628 | cmp [cd_appl_data],0 |
|
- | 629 | jne .ide0_appl_data |
|
- | 630 | mov edi,[cache_ide0_search_start] |
|
- | 631 | ret |
|
- | 632 | .ide0_appl_data: |
|
- | 633 | mov edi,[cache_ide0_appl_search_start] |
|
- | 634 | ret |
|
- | 635 | .ide1: |
|
- | 636 | cmp [cdpos],2 |
|
- | 637 | jne .ide2 |
|
- | 638 | cmp [cd_appl_data],0 |
|
- | 639 | jne .ide1_appl_data |
|
- | 640 | mov edi,[cache_ide1_search_start] |
|
- | 641 | ret |
|
- | 642 | .ide1_appl_data: |
|
- | 643 | mov edi,[cache_ide1_appl_search_start] |
|
- | 644 | ret |
|
- | 645 | .ide2: |
|
- | 646 | cmp [cdpos],3 |
|
- | 647 | jne .ide3 |
|
- | 648 | cmp [cd_appl_data],0 |
|
- | 649 | jne .ide2_appl_data |
|
- | 650 | mov edi,[cache_ide2_search_start] |
|
- | 651 | ret |
|
- | 652 | .ide2_appl_data: |
|
- | 653 | mov edi,[cache_ide2_appl_search_start] |
|
- | 654 | ret |
|
- | 655 | .ide3: |
|
- | 656 | cmp [cd_appl_data],0 |
|
- | 657 | jne .ide3_appl_data |
|
- | 658 | mov edi,[cache_ide3_search_start] |
|
- | 659 | ret |
|
- | 660 | .ide3_appl_data: |
|
- | 661 | mov edi,[cache_ide3_appl_search_start] |
|
- | 662 | ret |
|
- | 663 | ;-------------------------------------------------------------------- |
|
- | 664 | align 4 |
|
- | 665 | cd_calculate_cache_4: |
|
- | 666 | ; cmp edi,cache_max |
|
- | 667 | ; 1 - IDE0 ... 4 - IDE3 |
|
- | 668 | .ide0: |
|
- | 669 | cmp [cdpos],1 |
|
- | 670 | jne .ide1 |
|
- | 671 | cmp [cd_appl_data],0 |
|
- | 672 | jne .ide0_appl_data |
|
- | 673 | cmp edi,[cache_ide0_system_sad_size] |
|
- | 674 | ret |
|
- | 675 | .ide0_appl_data: |
|
- | 676 | cmp edi,[cache_ide0_appl_sad_size] |
|
- | 677 | ret |
|
- | 678 | .ide1: |
|
- | 679 | cmp [cdpos],2 |
|
- | 680 | jne .ide2 |
|
- | 681 | cmp [cd_appl_data],0 |
|
- | 682 | jne .ide1_appl_data |
|
- | 683 | cmp edi,[cache_ide1_system_sad_size] |
|
- | 684 | ret |
|
- | 685 | .ide1_appl_data: |
|
- | 686 | cmp edi,[cache_ide1_appl_sad_size] |
|
- | 687 | ret |
|
- | 688 | .ide2: |
|
- | 689 | cmp [cdpos],3 |
|
- | 690 | jne .ide3 |
|
- | 691 | cmp [cd_appl_data],0 |
|
- | 692 | jne .ide2_appl_data |
|
- | 693 | cmp edi,[cache_ide2_system_sad_size] |
|
- | 694 | ret |
|
- | 695 | .ide2_appl_data: |
|
- | 696 | cmp edi,[cache_ide2_appl_sad_size] |
|
- | 697 | ret |
|
- | 698 | .ide3: |
|
- | 699 | cmp [cd_appl_data],0 |
|
- | 700 | jne .ide3_appl_data |
|
- | 701 | cmp edi,[cache_ide3_system_sad_size] |
|
- | 702 | ret |
|
- | 703 | .ide3_appl_data: |
|
- | 704 | cmp edi,[cache_ide3_appl_sad_size] |
|
- | 705 | ret |
|
- | 706 | ;-------------------------------------------------------------------- |
|
- | 707 | align 4 |
|
- | 708 | cd_calculate_cache_5: |
|
- | 709 | ; mov [cache_search_start],edi |
|
- | 710 | ; 1 - IDE0 ... 4 - IDE3 |
|
- | 711 | .ide0: |
|
- | 712 | cmp [cdpos],1 |
|
- | 713 | jne .ide1 |
|
- | 714 | cmp [cd_appl_data],0 |
|
- | 715 | jne .ide0_appl_data |
|
- | 716 | mov [cache_ide0_search_start],edi |
|
- | 717 | ret |
|
- | 718 | .ide0_appl_data: |
|
- | 719 | mov [cache_ide0_appl_search_start],edi |
|
457 | ret |
720 | ret |
- | 721 | .ide1: |
|
- | 722 | cmp [cdpos],2 |
|
- | 723 | jne .ide2 |
|
- | 724 | cmp [cd_appl_data],0 |
|
- | 725 | jne .ide1_appl_data |
|
- | 726 | mov [cache_ide1_search_start],edi |
|
- | 727 | ret |
|
- | 728 | .ide1_appl_data: |
|
- | 729 | mov [cache_ide1_appl_search_start],edi |
|
- | 730 | ret |
|
- | 731 | .ide2: |
|
- | 732 | cmp [cdpos],3 |
|
- | 733 | jne .ide3 |
|
- | 734 | cmp [cd_appl_data],0 |
|
- | 735 | jne .ide2_appl_data |
|
- | 736 | mov [cache_ide2_search_start],edi |
|
- | 737 | ret |
|
- | 738 | .ide2_appl_data: |
|
- | 739 | mov [cache_ide2_appl_search_start],edi |
|
- | 740 | ret |
|
- | 741 | .ide3: |
|
- | 742 | cmp [cd_appl_data],0 |
|
- | 743 | jne .ide3_appl_data |
|
- | 744 | mov [cache_ide3_search_start],edi |
|
- | 745 | ret |
|
- | 746 | .ide3_appl_data: |
|
- | 747 | mov [cache_ide3_appl_search_start],edi |
|
- | 748 | ret |
|
- | 749 | ;-------------------------------------------------------------------- |
|
- | 750 | ;align 4 |
|
- | 751 | ;calculate_linear_to_real: |
|
- | 752 | ; shr eax, 12 |
|
- | 753 | ; mov eax, [page_tabs+eax*4] |
|
- | 754 | ; and eax, 0xFFFFF000 |
|
- | 755 | ; ret |