Rev 1859 | Rev 1928 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1859 | Rev 1899 | ||
---|---|---|---|
Line 56... | Line 56... | ||
56 | ;; |
56 | ;; |
57 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
57 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
Line 58... | Line 58... | ||
58 | 58 | ||
Line 59... | Line 59... | ||
59 | include 'macros.inc' |
59 | include 'macros.inc' |
Line 60... | Line 60... | ||
60 | 60 | ||
Line 61... | Line -... | ||
61 | $Revision: 1859 $ |
- | |
62 | - | ||
63 | - | ||
64 | USE_COM_IRQ equ 1 ; make irq 3 and irq 4 available for PCI devices |
61 | $Revision: 1899 $ |
65 | 62 | ||
Line 66... | Line 63... | ||
66 | ; Enabling the next line will enable serial output console |
63 | |
67 | ;debug_com_base equ 0x3f8 ; 0x3f8 is com1, 0x2f8 is com2, 0x3e8 is com3, 0x2e8 is com4, no irq's are used |
64 | USE_COM_IRQ equ 1 ; make irq 3 and irq 4 available for PCI devices |
Line 342... | Line 339... | ||
342 | dec eax |
339 | dec eax |
343 | mov [Screen_Max_Y],eax |
340 | mov [Screen_Max_Y],eax |
344 | mov [screen_workarea.bottom],eax |
341 | mov [screen_workarea.bottom],eax |
345 | movzx eax,word [BOOT_VAR+0x9008] ; screen mode |
342 | movzx eax,word [BOOT_VAR+0x9008] ; screen mode |
346 | mov [SCR_MODE],eax |
343 | mov [SCR_MODE],eax |
347 | mov eax,[BOOT_VAR+0x9014] ; Vesa 1.2 bnk sw add |
344 | ; mov eax,[BOOT_VAR+0x9014] ; Vesa 1.2 bnk sw add == not used any more |
348 | mov [BANK_SWITCH],eax |
345 | ; mov [BANK_SWITCH],eax |
349 | movzx eax, word[BOOT_VAR+0x9001] ; for other modes |
346 | movzx eax, word[BOOT_VAR+0x9001] ; for other modes |
350 | mov [BytesPerScanLine],ax |
347 | mov [BytesPerScanLine],ax |
351 | mov [_display.pitch], eax |
348 | mov [_display.pitch], eax |
352 | @@: |
349 | @@: |
353 | mov eax, [_display.height] |
350 | mov eax, [_display.height] |
Line 373... | Line 370... | ||
373 | mov eax, 0xDEADBEEF |
370 | mov eax, 0xDEADBEEF |
374 | hlt |
371 | hlt |
375 | ; === EGA, VGA & Vesa 1.2 modes not supported === |
372 | ; === EGA, VGA & Vesa 1.2 modes not supported === |
376 | setvesa20: |
373 | setvesa20: |
377 | v20ga32: |
374 | v20ga32: |
378 | mov [PUTPIXEL],dword put_pixel |
375 | ; mov [PUTPIXEL],dword put_pixel |
379 | mov [GETPIXEL],dword get_pixel |
376 | ; mov [GETPIXEL],dword get_pixel |
Line 380... | Line 377... | ||
380 | 377 | ||
381 | ; -------- Fast System Call init ---------- |
378 | ; -------- Fast System Call init ---------- |
382 | .SEnP: |
379 | .SEnP: |
383 | ; AMD SYSCALL/SYSRET |
380 | ; AMD SYSCALL/SYSRET |
Line 512... | Line 509... | ||
512 | ; set background |
509 | ; set background |
Line 513... | Line 510... | ||
513 | 510 | ||
514 | mov [BgrDrawMode],eax |
511 | mov [BgrDrawMode],eax |
515 | mov [BgrDataWidth],eax |
512 | mov [BgrDataWidth],eax |
516 | mov [BgrDataHeight],eax |
513 | mov [BgrDataHeight],eax |
517 | mov [mem_BACKGROUND], 4 |
514 | ; mov [mem_BACKGROUND], 4 |
Line 518... | Line 515... | ||
518 | mov [img_background], static_background_data |
515 | ; mov [img_background], static_background_data |
Line 519... | Line 516... | ||
519 | 516 | ||
520 | mov [SLOT_BASE + 256 + APPDATA.dir_table], sys_pgdir - OS_BASE |
517 | mov [SLOT_BASE + 256 + APPDATA.dir_table], sys_pgdir - OS_BASE |
Line 601... | Line 598... | ||
601 | 598 | ||
602 | ; PRINT AMOUNT OF MEMORY |
599 | ; PRINT AMOUNT OF MEMORY |
603 | mov esi, boot_memdetect |
600 | mov esi, boot_memdetect |
Line 604... | Line -... | ||
604 | call boot_log |
- | |
605 | - | ||
606 | ; <<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>> |
- | |
607 | mov ebx, img_test_struct |
- | |
608 | mov ecx, 3*65536 + 4 |
- | |
609 | mov edx, 32*65536 + 512 |
- | |
610 | mov esi, 32 |
- | |
611 | xor edi, edi |
- | |
612 | mov ebp, edi |
- | |
613 | call sys_putimage_palette.forced |
- | |
614 | - | ||
615 | ;<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>> |
601 | call boot_log |
616 | 602 | ||
617 | movzx ecx, word [boot_y] |
603 | movzx ecx, word [boot_y] |
618 | or ecx, (10+29*6) shl 16 ; "Determining amount of memory" |
604 | or ecx, (10+29*6) shl 16 ; "Determining amount of memory" |
619 | sub ecx, 10 |
605 | sub ecx, 10 |
Line 643... | Line 629... | ||
643 | 629 | ||
Line 644... | Line 630... | ||
644 | ; SET BACKGROUND DEFAULTS |
630 | ; SET BACKGROUND DEFAULTS |
645 | 631 | ||
646 | mov esi,boot_bgr |
632 | mov esi,boot_bgr |
647 | call boot_log |
633 | call boot_log |
Line 648... | Line -... | ||
648 | call init_background |
- | |
649 | call calculatebackground |
- | |
650 | - | ||
651 | ; RESERVE SYSTEM IRQ'S JA PORT'S |
- | |
652 | - | ||
653 | ; mov esi,boot_resirqports |
- | |
654 | ; call boot_log |
- | |
655 | ; call reserve_irqs_ports |
634 | call _init_background ;graph32.inc ? |
Line 656... | Line 635... | ||
656 | 635 | call calculatebackground |
|
657 | 636 | ||
Line 704... | Line 683... | ||
704 | call init_display |
683 | call init_display |
705 | mov eax, [def_cursor] |
684 | mov eax, [def_cursor] |
706 | mov [SLOT_BASE+APPDATA.cursor],eax |
685 | mov [SLOT_BASE+APPDATA.cursor],eax |
707 | mov [SLOT_BASE+APPDATA.cursor+256],eax |
686 | mov [SLOT_BASE+APPDATA.cursor+256],eax |
Line -... | Line 687... | ||
- | 687 | ||
- | 688 | ; <<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>> |
|
- | 689 | ||
- | 690 | ; mov esi, img_test_struct_8 |
|
- | 691 | ; mov edi, 151 |
|
- | 692 | ||
- | 693 | ; mov ebp, edi |
|
- | 694 | ; imul edi, [BytesPerScanLine] |
|
- | 695 | ; add edi, LFB_BASE + 32*4 |
|
- | 696 | ; mov [img_lfb_origin], edi |
|
- | 697 | ; shr ebp, 1 |
|
- | 698 | ; imul ebp, [_WinMapWidth] |
|
- | 699 | ; add ebp, 32/4 |
|
- | 700 | ; add ebp, [_WinMapAddress] |
|
- | 701 | ; mov ecx, ebp |
|
- | 702 | ; add ecx, [_WinMapWidth] |
|
- | 703 | ; mov byte[ecx+1], 2 |
|
- | 704 | ; mov ecx, 6 |
|
- | 705 | ; mov [img_pix_y], ecx |
|
- | 706 | ; mov eax, 1 |
|
- | 707 | ; mov [img_bytes_per_pix], eax |
|
- | 708 | ; mov ebx, 1 |
|
- | 709 | ; bts ebx, 24 |
|
- | 710 | ; mov eax, 8-1 |
|
- | 711 | ; mov [img_pix_x], eax |
|
- | 712 | ; inc eax |
|
- | 713 | ; shr eax, 2 |
|
- | 714 | ; mov [img_map_x], eax |
|
- | 715 | ; mov [img_draw_core_fn], draw_core_8bpp |
|
- | 716 | ; mov [img_draw_edge_fn], draw_edge_8bpp |
|
- | 717 | ; mov [img_buf_line_size], 9 |
|
- | 718 | ; mov [img_palette], img_test_palette |
|
- | 719 | ||
- | 720 | ; call draw_aligned_box |
|
- | 721 | ; add edi, 48 |
|
- | 722 | ; mov edx, 8 |
|
- | 723 | ; call draw_unaligned_edge |
|
- | 724 | ; mono |
|
- | 725 | ; bts ebx, 25 |
|
- | 726 | ; add edi, [_WinMapWidth] ; = 1/16 of the screen width |
|
- | 727 | ; mov esi, img_test_struct_1 |
|
- | 728 | ; mov [img_lfb_origin], edi |
|
- | 729 | ; mov ecx, 9 |
|
- | 730 | ; mov [img_map_x], 4 |
|
- | 731 | ; mov [img_bitoffset], 1 |
|
- | 732 | ; mov [img_edgeoffset], 16 |
|
- | 733 | ; mov [img_draw_core_fn], draw_core_1bpp |
|
- | 734 | ; mov [img_draw_edge_fn], draw_edge_1bpp |
|
- | 735 | ; mov [img_buf_line_size], 2 |
|
- | 736 | ; mov [img_bytes_per_pix], 0 |
|
- | 737 | ; call draw_aligned_box |
|
- | 738 | ; add edi, 48 |
|
- | 739 | ; mov edx, 8 |
|
- | 740 | ; call draw_unaligned_edge |
|
- | 741 | ; btr ebx, 25 |
|
- | 742 | ; 32bpp |
|
- | 743 | ; add edi, [_WinMapWidth] ; = 1/16 of the screen width |
|
- | 744 | ; mov esi, img_test_struct_32 |
|
- | 745 | ; mov [img_lfb_origin], edi |
|
- | 746 | ; mov ecx, 6 |
|
- | 747 | ; mov [img_map_x], 2 |
|
- | 748 | ; mov [img_draw_core_fn], draw_core_32bpp |
|
- | 749 | ; mov [img_draw_edge_fn], draw_edge_32bpp |
|
- | 750 | ; mov [img_buf_line_size], 32 |
|
- | 751 | ; mov [img_bytes_per_pix], 4 |
|
- | 752 | ; call draw_aligned_box |
|
- | 753 | ; add edi, 48 |
|
- | 754 | ; mov edx, 8 |
|
- | 755 | ; call draw_unaligned_edge |
|
- | 756 | ||
- | 757 | ; 24bpp |
|
- | 758 | ; add edi, [_WinMapWidth] ; = 1/16 of the screen width |
|
- | 759 | ; mov esi, img_test_struct_24 |
|
- | 760 | ; mov [img_lfb_origin], edi |
|
- | 761 | ; mov ecx, 7 |
|
- | 762 | ; mov [img_map_x], 4 |
|
- | 763 | ; mov [img_draw_core_fn], draw_core_24bpp |
|
- | 764 | ; mov [img_draw_edge_fn], draw_edge_24bpp |
|
- | 765 | ; mov [img_buf_line_size], 45 |
|
- | 766 | ; mov [img_bytes_per_pix], 3 |
|
- | 767 | ; call draw_aligned_box |
|
- | 768 | ; add edi, 80 |
|
- | 769 | ; mov edx, 4 |
|
- | 770 | ; call draw_unaligned_edge |
|
- | 771 | ||
- | 772 | ; mov [TASK_BASE-twdw + WDATA.box.left], 0 |
|
- | 773 | ; mov [TASK_BASE-twdw + WDATA.box.top], 0 |
|
- | 774 | ; mov eax, [Screen_Max_X] |
|
- | 775 | ; mov [TASK_BASE-twdw + WDATA.box.width], eax |
|
- | 776 | ; mov eax, [Screen_Max_Y] |
|
- | 777 | ; mov [TASK_BASE-twdw + WDATA.box.height], eax |
|
- | 778 | ||
- | 779 | ; mov ebx, img_test_struct_24 |
|
- | 780 | ; mov ecx, 16*65536 + 7 |
|
- | 781 | ; mov edx, 512*65536 + 400 |
|
- | 782 | ||
- | 783 | ; call _putimage |
|
- | 784 | ||
- | 785 | ||
- | 786 | ;----------- |
|
- | 787 | ; mov ebx, img_test_struct_32 |
|
- | 788 | ; mov ecx, 6*65536 + 6 |
|
- | 789 | ; mov edx, 32*65536 + 512 |
|
- | 790 | ; mov esi, 32 |
|
- | 791 | ; xor edi, edi |
|
- | 792 | ; mov ebp, edi |
|
- | 793 | ; call sys_putimage_palette.forced |
|
- | 794 | ||
- | 795 | ; mov [img_palette], img_test_palette |
|
- | 796 | ; mov [img_bytes_per_pix], 0 |
|
- | 797 | ; mov [img_buf_line_size], 0 |
|
- | 798 | ; mov ebx, img_test_palette |
|
- | 799 | ; mov [img_draw_core_fn], draw_core_0bpp |
|
- | 800 | ; mov [img_draw_edge_fn], draw_edge_0bpp |
|
- | 801 | ; mov ecx, 20*65536 + 9 |
|
- | 802 | ; mov edx, 513*65536 + 401 |
|
- | 803 | ; call _putimage |
|
- | 804 | ||
- | 805 | ; mov eax, 561 |
|
- | 806 | ; mov ebx, 461 |
|
- | 807 | ; mov ecx, 555 |
|
- | 808 | ; mov edx, 333 |
|
- | 809 | ; mov edi, 0xAA5533 |
|
- | 810 | ; call _drawbar |
|
- | 811 | ||
- | 812 | ||
- | 813 | ||
- | 814 | ; jmp $ |
|
- | 815 | ||
- | 816 | ;<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>> |
|
- | 817 | ||
- | 818 | ||
708 | 819 | ||
Line 709... | Line 820... | ||
709 | ; READ TSC / SECOND |
820 | ; READ TSC / SECOND |
710 | 821 | ||
711 | mov esi,boot_tsc |
822 | mov esi,boot_tsc |
Line 742... | Line 853... | ||
742 | 853 | ||
Line 743... | Line 854... | ||
743 | ; SET VARIABLES |
854 | ; SET VARIABLES |
Line -... | Line 855... | ||
- | 855 | ||
- | 856 | call set_variables |
|
744 | 857 | ||
Line 745... | Line 858... | ||
745 | call set_variables |
858 | |
746 | 859 | ||
747 | ; SET MOUSE |
- | |
Line 748... | Line 860... | ||
748 | 860 | ; SET MOUSE |
|
749 | ;call detect_devices |
861 | |
750 | stdcall load_driver, szPS2MDriver |
862 | ;call detect_devices |
751 | ; stdcall load_driver, szCOM_MDriver |
863 | stdcall load_driver, szPS2MDriver |
Line 752... | Line 864... | ||
752 | 864 | ||
Line 753... | Line 865... | ||
753 | mov esi,boot_setmouse |
865 | mov esi,boot_setmouse |
754 | call boot_log |
866 | call boot_log |
Line 850... | Line 962... | ||
850 | ;// mike.dld [ |
962 | ;// mike.dld [ |
851 | call set_lights |
963 | call set_lights |
852 | ;// mike.dld ] |
964 | ;// mike.dld ] |
Line 853... | Line -... | ||
853 | - | ||
854 | - | ||
855 | ; Setup serial output console (if enabled) |
- | |
856 | - | ||
857 | if defined debug_com_base |
- | |
858 | - | ||
859 | ; enable Divisor latch |
- | |
860 | - | ||
861 | mov dx, debug_com_base+3 |
- | |
862 | mov al, 1 shl 7 |
- | |
863 | out dx, al |
- | |
864 | - | ||
865 | ; Set speed to 115200 baud (max speed) |
- | |
866 | - | ||
867 | mov dx, debug_com_base |
- | |
868 | mov al, 0x01 |
- | |
869 | out dx, al |
- | |
870 | - | ||
871 | mov dx, debug_com_base+1 |
- | |
872 | mov al, 0x00 |
- | |
873 | out dx, al |
- | |
874 | - | ||
875 | ; No parity, 8bits words, one stop bit, dlab bit back to 0 |
- | |
876 | - | ||
877 | mov dx, debug_com_base+3 |
- | |
878 | mov al, 3 |
- | |
879 | out dx, al |
- | |
880 | - | ||
881 | ; disable interrupts |
- | |
882 | - | ||
883 | mov dx, debug_com_base+1 |
- | |
884 | mov al, 0 |
- | |
885 | out dx, al |
- | |
886 | - | ||
887 | ; clear + enable fifo (64 bits) |
- | |
888 | - | ||
889 | mov dx, debug_com_base+2 |
- | |
890 | mov al, 0x7 + 1 shl 5 |
- | |
891 | out dx, al |
- | |
892 | - | ||
Line 893... | Line 965... | ||
893 | 965 | ||
Line 894... | Line 966... | ||
894 | end if |
966 | |
895 | 967 | ||
Line 931... | Line 1003... | ||
931 | xor edi,edi |
1003 | xor edi,edi |
932 | mov edx,esi |
1004 | mov edx,esi |
933 | inc edi |
1005 | inc edi |
934 | call dtext |
1006 | call dtext |
Line 935... | Line -... | ||
935 | - | ||
936 | ; mov [novesachecksum],1000 |
- | |
937 | ; call checkVga_N13 |
- | |
938 | 1007 | ||
Line 939... | Line 1008... | ||
939 | popad |
1008 | popad |
Line 940... | Line 1009... | ||
940 | 1009 | ||
Line 949... | Line 1018... | ||
949 | osloop: |
1018 | osloop: |
950 | call [draw_pointer] |
1019 | call [draw_pointer] |
951 | call window_check_events |
1020 | call window_check_events |
952 | call mouse_check_events |
1021 | call mouse_check_events |
953 | call checkmisc |
1022 | call checkmisc |
954 | ; call checkVga_N13 |
- | |
955 | call stack_handler |
1023 | call stack_handler |
956 | call checkidle |
1024 | call checkidle |
957 | call check_fdd_motor_status |
1025 | ; call check_fdd_motor_status |
958 | ; call check_ATAPI_device_event |
- | |
959 | jmp osloop |
1026 | jmp osloop |
960 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
1027 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
961 | ; ; |
1028 | ; ; |
962 | ; MAIN OS LOOP END ; |
1029 | ; MAIN OS LOOP END ; |
963 | ; ; |
1030 | ; ; |
Line 1762... | Line 1829... | ||
1762 | mov ecx, [current_slot] |
1829 | mov ecx, [current_slot] |
1763 | mov eax, [ecx+APPDATA.tls_base] |
1830 | mov eax, [ecx+APPDATA.tls_base] |
1764 | test eax, eax |
1831 | test eax, eax |
1765 | jz @F |
1832 | jz @F |
Line -... | Line 1833... | ||
- | 1833 | ||
1766 | 1834 | ||
1767 | stdcall user_free, eax |
1835 | stdcall user_free, eax |
Line 1768... | Line 1836... | ||
1768 | @@: |
1836 | @@: |
1769 | 1837 | ||
Line 2148... | Line 2216... | ||
2148 | align 4 |
2216 | align 4 |
2149 | bgrlockpid dd 0 |
2217 | bgrlockpid dd 0 |
2150 | bgrlock db 0 |
2218 | bgrlock db 0 |
2151 | endg |
2219 | endg |
Line -... | Line 2220... | ||
- | 2220 | ||
2152 | 2221 | ;=============================== SysFn 15 ================================ |
|
- | 2222 | ; no background service supported so far ... |
|
Line 2153... | Line -... | ||
2153 | sys_background: |
- | |
2154 | - | ||
2155 | cmp ebx,1 ; BACKGROUND SIZE |
- | |
2156 | jnz nosb1 |
- | |
2157 | test ecx,ecx |
- | |
2158 | ; cmp ecx,0 |
- | |
2159 | jz sbgrr |
- | |
2160 | test edx,edx |
- | |
2161 | ; cmp edx,0 |
- | |
2162 | jz sbgrr |
- | |
2163 | @@: |
- | |
2164 | ;;Maxis use atomic bts for mutexes 4.4.2009 |
- | |
2165 | bts dword [bgrlock], 0 |
2223 | ;=========================================== |
2166 | jnc @f |
- | |
2167 | call change_task |
- | |
2168 | jmp @b |
- | |
2169 | @@: |
- | |
2170 | mov [BgrDataWidth],ecx |
- | |
Line 2171... | Line -... | ||
2171 | mov [BgrDataHeight],edx |
- | |
2172 | ; mov [bgrchanged],1 |
- | |
2173 | - | ||
2174 | pushad |
2224 | |
2175 | ; return memory for old background |
- | |
2176 | mov eax, [img_background] |
- | |
2177 | cmp eax, static_background_data |
- | |
2178 | jz @f |
- | |
2179 | stdcall kernel_free, eax |
- | |
2180 | @@: |
- | |
2181 | ; calculate RAW size |
- | |
2182 | xor eax,eax |
- | |
2183 | inc eax |
- | |
2184 | cmp [BgrDataWidth],eax |
- | |
2185 | jae @f |
- | |
2186 | mov [BgrDataWidth],eax |
- | |
2187 | @@: |
- | |
2188 | cmp [BgrDataHeight],eax |
- | |
2189 | jae @f |
- | |
2190 | mov [BgrDataHeight],eax |
- | |
2191 | @@: |
- | |
2192 | mov eax,[BgrDataWidth] |
- | |
2193 | imul eax,[BgrDataHeight] |
- | |
2194 | lea eax,[eax*3] |
- | |
2195 | mov [mem_BACKGROUND],eax |
- | |
2196 | ; get memory for new background |
- | |
2197 | stdcall kernel_alloc, eax |
- | |
2198 | test eax, eax |
2225 | sys_background: |
2199 | jz .memfailed |
- | |
2200 | mov [img_background], eax |
- | |
2201 | jmp .exit |
2226 | |
2202 | .memfailed: |
- | |
2203 | ; revert to static monotone data |
- | |
2204 | mov [img_background], static_background_data |
- | |
2205 | xor eax, eax |
- | |
2206 | inc eax |
- | |
2207 | mov [BgrDataWidth], eax |
2227 | cmp ebx,6 ; subfns 1..5 do not return anything |
2208 | mov [BgrDataHeight], eax |
- | |
2209 | mov [mem_BACKGROUND], 4 |
- | |
2210 | .exit: |
- | |
2211 | popad |
- | |
2212 | mov [bgrlock], 0 |
2228 | jb .exit |
Line 2213... | Line -... | ||
2213 | - | ||
2214 | sbgrr: |
- | |
2215 | ret |
- | |
2216 | - | ||
2217 | nosb1: |
- | |
2218 | - | ||
2219 | cmp ebx,2 ; SET PIXEL |
- | |
2220 | jnz nosb2 |
- | |
2221 | - | ||
2222 | mov eax, [img_background] |
- | |
2223 | test ecx, ecx |
- | |
2224 | jz @f |
- | |
2225 | cmp eax, static_background_data |
- | |
2226 | - | ||
2227 | jz .ret |
- | |
2228 | @@: |
- | |
2229 | mov ebx, [mem_BACKGROUND] |
- | |
2230 | add ebx, 4095 |
- | |
2231 | and ebx, -4096 |
- | |
2232 | sub ebx, 4 |
- | |
2233 | cmp ecx, ebx |
- | |
2234 | ja .ret |
2229 | mov dword [esp+32], 0 ; subfns 6,7 return 0 as error |
2235 | - | ||
2236 | mov ebx,[eax+ecx] |
- | |
2237 | and ebx,0xFF000000 ;255*256*256*256 |
- | |
2238 | and edx,0x00FFFFFF ;255*256*256+255*256+255 |
- | |
2239 | add edx,ebx |
- | |
2240 | mov [eax+ecx],edx |
- | |
2241 | .ret: |
- | |
2242 | ret |
- | |
2243 | nosb2: |
- | |
2244 | - | ||
2245 | cmp ebx,3 ; DRAW BACKGROUND |
- | |
2246 | jnz nosb3 |
- | |
2247 | draw_background_temp: |
- | |
2248 | ; cmp [bgrchanged],1 ;0 |
- | |
2249 | ; je nosb31 |
2230 | .exit: |
2250 | ;draw_background_temp: |
- | |
2251 | ; mov [bgrchanged],1 ;0 |
- | |
2252 | - | ||
2253 | mov [background_defined], 1 |
- | |
2254 | mov byte[BACKGROUND_CHANGED], 1 |
- | |
2255 | call force_redraw_background |
- | |
2256 | nosb31: |
2231 | ret |
2257 | ret |
- | |
2258 | nosb3: |
- | |
2259 | - | ||
2260 | cmp ebx,4 ; TILED / STRETCHED |
- | |
2261 | jnz nosb4 |
- | |
2262 | cmp ecx,[BgrDrawMode] |
- | |
2263 | je nosb41 |
- | |
2264 | mov [BgrDrawMode],ecx |
2232 | |
2265 | ; mov [bgrchanged],1 |
- | |
2266 | nosb41: |
- | |
2267 | ret |
- | |
2268 | nosb4: |
- | |
2269 | - | ||
2270 | cmp ebx,5 ; BLOCK MOVE TO BGR |
- | |
2271 | jnz nosb5 |
- | |
2272 | cmp [img_background], static_background_data |
- | |
2273 | jnz @f |
- | |
2274 | test edx, edx |
- | |
2275 | jnz .fin |
- | |
2276 | cmp esi, 4 |
- | |
2277 | ja .fin |
- | |
2278 | @@: |
- | |
2279 | ; bughere |
- | |
2280 | mov eax, ecx |
- | |
2281 | mov ebx, edx |
- | |
2282 | add ebx, [img_background] ;IMG_BACKGROUND |
- | |
2283 | mov ecx, esi |
- | |
Line 2284... | Line -... | ||
2284 | call memmove |
- | |
2285 | .fin: |
- | |
2286 | ret |
- | |
2287 | nosb5: |
- | |
2288 | - | ||
2289 | cmp ebx, 6 |
- | |
2290 | jnz nosb6 |
- | |
2291 | ;;Maxis use atomic bts for mutex 4.4.2009 |
- | |
2292 | @@: |
- | |
2293 | bts dword [bgrlock], 0 |
- | |
2294 | jnc @f |
- | |
2295 | call change_task |
- | |
2296 | jmp @b |
- | |
2297 | @@: |
- | |
2298 | mov eax, [CURRENT_TASK] |
- | |
2299 | mov [bgrlockpid], eax |
- | |
2300 | cmp [img_background], static_background_data |
- | |
2301 | jz .nomem |
- | |
2302 | stdcall user_alloc, [mem_BACKGROUND] |
- | |
2303 | mov [esp+32], eax |
- | |
2304 | test eax, eax |
2233 | ;=============================== SysFn 39 ================================ |
2305 | jz .nomem |
- | |
2306 | mov ebx, eax |
- | |
2307 | shr ebx, 12 |
- | |
2308 | or dword [page_tabs+(ebx-1)*4], DONT_FREE_BLOCK |
- | |
2309 | mov esi, [img_background] |
- | |
2310 | shr esi, 12 |
- | |
2311 | mov ecx, [mem_BACKGROUND] |
- | |
2312 | add ecx, 0xFFF |
- | |
2313 | shr ecx, 12 |
- | |
2314 | .z: |
- | |
2315 | mov eax, [page_tabs+ebx*4] |
- | |
2316 | test al, 1 |
- | |
2317 | jz @f |
- | |
2318 | call free_page |
- | |
2319 | @@: |
- | |
2320 | mov eax, [page_tabs+esi*4] |
- | |
2321 | or al, PG_UW |
- | |
2322 | mov [page_tabs+ebx*4], eax |
- | |
2323 | mov eax, ebx |
- | |
2324 | shl eax, 12 |
- | |
2325 | invlpg [eax] |
- | |
2326 | inc ebx |
- | |
2327 | inc esi |
- | |
2328 | loop .z |
- | |
2329 | ret |
- | |
2330 | .nomem: |
- | |
2331 | and [bgrlockpid], 0 |
- | |
2332 | mov [bgrlock], 0 |
- | |
2333 | nosb6: |
- | |
2334 | cmp ebx, 7 |
- | |
2335 | jnz nosb7 |
- | |
2336 | cmp [bgrlock], 0 |
- | |
2337 | jz .err |
- | |
2338 | mov eax, [CURRENT_TASK] |
- | |
2339 | cmp [bgrlockpid], eax |
- | |
2340 | jnz .err |
- | |
2341 | mov eax, ecx |
- | |
2342 | mov ebx, ecx |
- | |
2343 | shr eax, 12 |
- | |
2344 | mov ecx, [page_tabs+(eax-1)*4] |
- | |
2345 | test cl, USED_BLOCK+DONT_FREE_BLOCK |
- | |
2346 | jz .err |
- | |
2347 | jnp .err |
- | |
2348 | push eax |
- | |
2349 | shr ecx, 12 |
- | |
2350 | dec ecx |
- | |
2351 | @@: |
- | |
2352 | and dword [page_tabs+eax*4], 0 |
- | |
2353 | mov edx, eax |
- | |
2354 | shl edx, 12 |
- | |
2355 | push eax |
- | |
2356 | invlpg [edx] |
- | |
2357 | pop eax |
- | |
2358 | inc eax |
- | |
2359 | loop @b |
- | |
2360 | pop eax |
- | |
2361 | and dword [page_tabs+(eax-1)*4], not DONT_FREE_BLOCK |
- | |
2362 | stdcall user_free, ebx |
- | |
2363 | mov [esp+32], eax |
2234 | ; no background service supported so far ... |
2364 | and [bgrlockpid], 0 |
2235 | ;=========================================== |
Line 2365... | Line -... | ||
2365 | mov [bgrlock], 0 |
- | |
2366 | ret |
- | |
- | 2236 | align 4 |
|
Line 2367... | Line 2237... | ||
2367 | .err: |
2237 | |
2368 | and dword [esp+32], 0 |
2238 | sys_getbackground: |
2369 | ret |
2239 | mov dword [esp+32], 0 |
2370 | 2240 | ret |
|
Line 2380... | Line 2250... | ||
2380 | mov [draw_data+32 + RECT.right],eax |
2250 | mov [draw_data+32 + RECT.right],eax |
2381 | mov [draw_data+32 + RECT.bottom],ebx |
2251 | mov [draw_data+32 + RECT.bottom],ebx |
2382 | pop ebx eax |
2252 | pop ebx eax |
2383 | inc byte[REDRAW_BACKGROUND] |
2253 | inc byte[REDRAW_BACKGROUND] |
2384 | ret |
2254 | ret |
- | 2255 | ;=========================================== |
|
Line 2385... | Line -... | ||
2385 | - | ||
2386 | align 4 |
- | |
2387 | - | ||
2388 | sys_getbackground: |
- | |
2389 | ; cmp eax,1 ; SIZE |
- | |
2390 | dec ebx |
- | |
2391 | jnz nogb1 |
- | |
2392 | mov eax,[BgrDataWidth] |
- | |
2393 | shl eax,16 |
- | |
2394 | mov ax,[BgrDataHeight] |
- | |
2395 | mov [esp+32],eax |
- | |
2396 | ret |
- | |
2397 | - | ||
2398 | nogb1: |
- | |
2399 | ; cmp eax,2 ; PIXEL |
- | |
2400 | dec ebx |
- | |
2401 | jnz nogb2 |
- | |
2402 | - | ||
2403 | mov eax, [img_background] |
- | |
2404 | test ecx, ecx |
- | |
2405 | jz @f |
- | |
2406 | cmp eax, static_background_data |
- | |
2407 | jz .ret |
- | |
2408 | @@: |
- | |
2409 | mov ebx, [mem_BACKGROUND] |
- | |
2410 | add ebx, 4095 |
- | |
2411 | and ebx, -4096 |
- | |
2412 | sub ebx, 4 |
- | |
2413 | cmp ecx, ebx |
- | |
2414 | ja .ret |
- | |
2415 | - | ||
2416 | mov eax,[ecx+eax] |
- | |
2417 | - | ||
2418 | and eax, 0xFFFFFF |
- | |
2419 | mov [esp+32],eax |
- | |
2420 | .ret: |
- | |
2421 | ret |
- | |
2422 | nogb2: |
- | |
2423 | - | ||
2424 | ; cmp eax,4 ; TILED / STRETCHED |
- | |
2425 | dec ebx |
- | |
2426 | dec ebx |
- | |
2427 | jnz nogb4 |
- | |
2428 | mov eax,[BgrDrawMode] |
- | |
2429 | nogb4: |
- | |
2430 | mov [esp+32],eax |
- | |
Line 2431... | Line 2256... | ||
2431 | ret |
2256 | |
Line 2432... | Line 2257... | ||
2432 | 2257 | ||
2433 | align 4 |
2258 | align 4 |
Line 2844... | Line 2669... | ||
2844 | mov [esp+32],eax |
2669 | mov [esp+32],eax |
2845 | ret |
2670 | ret |
2846 | ;--------------------------------------------------------------------------------------------- |
2671 | ;--------------------------------------------------------------------------------------------- |
Line 2847... | Line -... | ||
2847 | - | ||
2848 | - | ||
2849 | ; check if pixel is allowed to be drawn |
- | |
2850 | ; -- not in use any more ? |
- | |
2851 | - | ||
2852 | ;checkpixel: |
- | |
2853 | ; push eax ebx edx |
- | |
2854 | ; shr ebx, 1 |
- | |
2855 | ; mov edx, [_WinMapWidth] ; <<<< |
- | |
2856 | ; imul edx, ebx |
- | |
2857 | ; shr eax, 2 |
- | |
2858 | ; add eax, [_WinMapAddress] |
- | |
2859 | ; mov dl, [eax+edx] |
- | |
2860 | ; |
- | |
2861 | ; xor ecx, ecx |
- | |
2862 | ; mov eax, [CURRENT_TASK] |
- | |
2863 | ; cmp al, dl |
- | |
2864 | ; setne cl |
- | |
2865 | ; |
- | |
2866 | ; pop edx ebx eax |
- | |
2867 | ; ret |
2672 | |
2868 | 2673 | ||
2869 | iglobal |
2674 | iglobal |
Line 2870... | Line 2675... | ||
2870 | cpustring db 'CPU',0 |
2675 | cpustring db 'CPU',0 |
Line 3289... | Line 3094... | ||
3289 | 3094 | ||
Line 3290... | Line 3095... | ||
3290 | endg |
3095 | endg |
3291 | 3096 | ||
3292 | drawbackground: |
- | |
3293 | inc [mouse_pause] |
- | |
3294 | ; cmp [BgrDrawMode],dword 1 |
- | |
3295 | ; jne bgrstr |
3097 | drawbackground: |
3296 | ; call vesa20_drawbackground_tiled |
3098 | inc [mouse_pause] |
3297 | call drawbackground |
3099 | call draw_background ; graph32.inc |
3298 | dec [mouse_pause] |
3100 | dec [mouse_pause] |
3299 | call [draw_pointer] |
- | |
3300 | ret |
- | |
3301 | ; bgrstr: |
- | |
3302 | ; call vesa20_drawbackground_stretch |
- | |
3303 | ; dec [mouse_pause] |
- | |
Line 3304... | Line 3101... | ||
3304 | ; call [draw_pointer] |
3101 | call [draw_pointer] |
3305 | ; ret |
3102 | ret |
3306 | 3103 | ||
3307 | ; ==================================================================== |
3104 | ; ==================================================================== |
Line 3337... | Line 3134... | ||
3337 | 3134 | ||
3338 | sys_putimage_bpp: ; only called from sys_putimage_palette |
3135 | sys_putimage_bpp: ; only called from sys_putimage_palette |
3339 | inc [mouse_pause] |
3136 | inc [mouse_pause] |
3340 | call _putimage |
3137 | call _putimage |
3341 | dec [mouse_pause] |
3138 | dec [mouse_pause] |
- | 3139 | call [draw_pointer] |
|
Line 3342... | Line 3140... | ||
3342 | jmp [draw_pointer] |
3140 | ret |
3343 | 3141 | ||
3344 | 3142 | ||
Line 3355... | Line 3153... | ||
3355 | add dx, word [eax+SLOT_BASE+APPDATA.wnd_clientbox.top] |
3153 | add dx, word [eax+SLOT_BASE+APPDATA.wnd_clientbox.top] |
3356 | rol edx, 16 |
3154 | rol edx, 16 |
3357 | add dx, word [eax+SLOT_BASE+APPDATA.wnd_clientbox.left] |
3155 | add dx, word [eax+SLOT_BASE+APPDATA.wnd_clientbox.left] |
3358 | rol edx, 16 |
3156 | rol edx, 16 |
3359 | .forced: |
3157 | .forced: |
- | 3158 | push eax |
|
- | 3159 | push esi |
|
3360 | mov [img_palette], edi |
3160 | mov [img_palette], edi |
3361 | mov eax, esi |
3161 | mov eax, esi |
3362 | cmp eax, 32 ;>32bpp (stupid call) |
3162 | cmp eax, 32 ;>32bpp (stupid call) |
3363 | ja .exit |
3163 | ja .exit |
3364 | shr al, 3 ; 0=1bpp, other lo-pix modes not supported |
3164 | shr al, 3 ; 0=1bpp or solid color |
3365 | push esi |
- | |
3366 | mov [img_bytes_per_pix], eax |
3165 | mov [img_bytes_per_pix], eax |
3367 | mov esi, [eax*4 + img_core_proc_0] |
3166 | mov esi, [eax*4 + img_core_proc_0] |
3368 | mov [img_draw_core_fn], esi |
3167 | mov [img_draw_core_fn], esi |
3369 | mov esi, [eax*4 + img_edge_proc_0] |
3168 | mov esi, [eax*4 + img_edge_proc_0] |
3370 | mov [img_draw_edge_fn], esi |
3169 | mov [img_draw_edge_fn], esi |
3371 | mov esi, ecx |
3170 | mov esi, ecx |
3372 | shr esi, 16 ; esi = SizeX |
3171 | shr esi, 16 ; esi = SizeX |
3373 | or al, al |
- | |
3374 | jz .1bpp |
- | |
3375 | imul esi, eax |
3172 | imul esi, eax |
- | 3173 | or al, al |
|
3376 | jmp .done |
3174 | jnz .done |
- | 3175 | mov eax, [esp] ; bits per pixel |
|
- | 3176 | or al, al |
|
- | 3177 | jz .done |
|
3377 | .1bpp: |
3178 | .1bpp: |
3378 | add esi, 7 |
3179 | add esi, 7 |
3379 | shr esi, 3 ; 8 pixels per byte |
3180 | shr esi, 3 ; 8 pixels per byte |
- | 3181 | mov [img_draw_edge_fn], draw_edge_1bpp |
|
- | 3182 | mov [img_draw_core_fn], draw_core_1bpp |
|
3380 | .done: |
3183 | .done: |
3381 | add esi, ebp ; + line offset |
3184 | add esi, ebp ; + line offset |
3382 | mov [img_buf_line_size], esi |
3185 | mov [img_buf_line_size], esi |
3383 | pop esi |
3186 | pop esi |
- | 3187 | pop eax |
|
3384 | jmp _putimage ;<<< sys_putimage_bpp |
3188 | jmp sys_putimage_bpp |
3385 | .exit: |
3189 | .exit: |
3386 | ret |
3190 | ret |
Line 3387... | Line 3191... | ||
3387 | 3191 | ||
3388 | align 4 |
3192 | align 4 |
3389 | img_core_proc_0 dd draw_core_1bpp |
3193 | img_core_proc_0 dd draw_core_0bpp |
3390 | img_core_proc_1 dd draw_core_8bpp |
3194 | img_core_proc_1 dd draw_core_8bpp |
3391 | img_core_proc_2 dd draw_core_16bpp |
3195 | img_core_proc_2 dd draw_core_16bpp |
3392 | img_core_proc_3 dd draw_core_24bpp |
3196 | img_core_proc_3 dd draw_core_24bpp |
Line 3393... | Line 3197... | ||
3393 | img_core_proc_4 dd draw_core_32bpp |
3197 | img_core_proc_4 dd draw_core_32bpp |
3394 | 3198 | ||
3395 | img_edge_proc_0 dd draw_edge_1bpp |
3199 | img_edge_proc_0 dd draw_edge_0bpp |
3396 | img_edge_proc_1 dd draw_edge_8bpp |
3200 | img_edge_proc_1 dd draw_edge_8bpp |
3397 | img_edge_proc_2 dd draw_edge_16bpp |
3201 | img_edge_proc_2 dd draw_edge_16bpp |
Line 3412... | Line 3216... | ||
3412 | add ebx,[esi+APPDATA.wnd_clientbox.top] |
3216 | add ebx,[esi+APPDATA.wnd_clientbox.top] |
3413 | add edx,[esi+APPDATA.wnd_clientbox.top] |
3217 | add edx,[esi+APPDATA.wnd_clientbox.top] |
3414 | .forced: |
3218 | .forced: |
3415 | inc [mouse_pause] |
3219 | inc [mouse_pause] |
3416 | ; dbv20: |
3220 | ; dbv20: |
3417 | call vesa20_drawbar |
3221 | call _drawbar |
3418 | dec [mouse_pause] |
3222 | dec [mouse_pause] |
3419 | jmp [draw_pointer] |
3223 | jmp [draw_pointer] |
Line 3420... | Line 3224... | ||
3420 | 3224 | ||
Line 3515... | Line 3319... | ||
3515 | xor ah,ah |
3319 | xor ah,ah |
3516 | c_exit: |
3320 | c_exit: |
3517 | ret |
3321 | ret |
Line 3518... | Line 3322... | ||
3518 | 3322 | ||
3519 | 3323 | ||
Line 3520... | Line 3324... | ||
3520 | setmouse: ; set mousepicture -pointer |
3324 | ;setmouse: ; set mousepicture -pointer |
3521 | ; ps2 mouse enable |
- | |
3522 | 3325 | ; ps2 mouse enable |
|
3523 | mov [MOUSE_PICTURE],dword mousepointer |
- | |
3524 | 3326 | ||
Line 3525... | Line 3327... | ||
3525 | cli |
3327 | ; mov [MOUSE_PICTURE],dword mousepointer |
3526 | 3328 | ; cli |
|
3527 | ret |
3329 | ; ret |
3528 | 3330 | ||
3529 | if used _rdtsc |
3331 | ;if used _rdtsc |
3530 | _rdtsc: |
3332 | ;_rdtsc: |
3531 | bt [cpu_caps], CAPS_TSC |
3333 | ; bt [cpu_caps], CAPS_TSC |
3532 | jnc ret_rdtsc |
3334 | ; jnc ret_rdtsc |
3533 | rdtsc |
3335 | ; rdtsc |
3534 | ret |
3336 | ; ret |
3535 | ret_rdtsc: |
3337 | ; ret_rdtsc: |
Line 3536... | Line 3338... | ||
3536 | mov edx,0xffffffff |
3338 | ; mov edx,0xffffffff |
Line 3537... | Line 3339... | ||
3537 | mov eax,0xffffffff |
3339 | ; mov eax,0xffffffff |
Line 3665... | Line 3467... | ||
3665 | 3467 | ||
3666 | mov ecx, [msg_board_count] |
3468 | mov ecx, [msg_board_count] |
3667 | cmp eax, 1 |
3469 | cmp eax, 1 |
Line 3668... | Line -... | ||
3668 | jne .smbl1 |
- | |
3669 | - | ||
3670 | if defined debug_com_base |
- | |
3671 | - | ||
3672 | push dx ax |
- | |
3673 | - | ||
3674 | @@: ; Wait for empty transmit register (yes, this slows down system..) |
- | |
3675 | mov dx, debug_com_base+5 |
- | |
3676 | in al, dx |
- | |
3677 | test al, 1 shl 5 |
- | |
3678 | jz @r |
- | |
3679 | - | ||
3680 | mov dx, debug_com_base ; Output the byte |
- | |
3681 | mov al, bl |
- | |
3682 | out dx, al |
- | |
3683 | - | ||
3684 | pop ax dx |
- | |
3685 | - | ||
3686 | end if |
3470 | jne .smbl1 |
3687 | 3471 | ||
3688 | mov [msg_board_data+ecx],bl |
3472 | mov [msg_board_data+ecx],bl |
3689 | inc ecx |
3473 | inc ecx |
3690 | and ecx, 4095 |
3474 | and ecx, 4095 |
Line 3873... | Line 3657... | ||
3873 | syscall_setpixel: ; SetPixel |
3657 | syscall_setpixel: ; SetPixel |
Line 3874... | Line 3658... | ||
3874 | 3658 | ||
3875 | mov eax, ebx |
3659 | mov eax, ebx |
3876 | mov ebx, ecx |
3660 | mov ebx, ecx |
3877 | mov ecx, edx |
- | |
3878 | mov edx, [TASK_BASE] |
- | |
3879 | add eax, [edx-twdw+WDATA.box.left] |
- | |
3880 | add ebx, [edx-twdw+WDATA.box.top] |
- | |
3881 | mov edi, [current_slot] |
- | |
3882 | add eax, [edi+APPDATA.wnd_clientbox.left] |
- | |
3883 | add ebx, [edi+APPDATA.wnd_clientbox.top] |
3661 | mov ecx, edx |
3884 | xor edi, edi ; no force |
- | |
3885 | ; mov edi, 1 |
3662 | xor edi, edi ; no force |
3886 | call [_display.disable_mouse] |
3663 | ; call [_display.disable_mouse] |
Line 3887... | Line 3664... | ||
3887 | jmp [putpixel] |
3664 | jmp __sys_putpixel |
Line 3888... | Line 3665... | ||
3888 | 3665 | ||
Line 3964... | Line 3741... | ||
3964 | xor edx, edx |
3741 | xor edx, edx |
3965 | mov eax, ebx |
3742 | mov eax, ebx |
3966 | div ecx |
3743 | div ecx |
3967 | mov ebx, edx |
3744 | mov ebx, edx |
3968 | xchg eax, ebx |
3745 | xchg eax, ebx |
3969 | call dword [GETPIXEL] ; eax - x, ebx - y |
3746 | call get_pixel ; eax - x, ebx - y |
3970 | mov [esp + 32], ecx |
3747 | mov [esp + 32], ecx |
3971 | ret |
3748 | ret |
Line 3972... | Line 3749... | ||
3972 | 3749 | ||
Line 4026... | Line 3803... | ||
4026 | push ecx edx |
3803 | push ecx edx |
4027 | .start_x: |
3804 | .start_x: |
4028 | push eax ebx ecx |
3805 | push eax ebx ecx |
4029 | add eax,ecx |
3806 | add eax,ecx |
Line 4030... | Line 3807... | ||
4030 | 3807 | ||
Line 4031... | Line 3808... | ||
4031 | call dword [GETPIXEL] ; eax - x, ebx - y |
3808 | call get_pixel ; eax - x, ebx - y |
4032 | 3809 | ||
4033 | mov [ebp],cx |
3810 | mov [ebp],cx |
Line 4185... | Line 3962... | ||
4185 | pushad |
3962 | pushad |
Line 4186... | Line 3963... | ||
4186 | 3963 | ||
Line 4187... | Line 3964... | ||
4187 | stdcall kernel_free, [_WinMapAddress] |
3964 | stdcall kernel_free, [_WinMapAddress] |
4188 | - | ||
4189 | mov eax, [_display.width] |
3965 | |
4190 | shr eax, 1 |
3966 | mov eax, [_display.width] |
4191 | shr eax, 1 |
3967 | shr eax, 2 |
4192 | mov [_WinMapWidth], eax |
3968 | mov [_WinMapWidth], eax |
4193 | mov eax, [_display.height] |
3969 | mov eax, [_display.height] |
4194 | shr eax, 1 |
3970 | shr eax, 1 |
Line 4526... | Line 4302... | ||
4526 | __REV__ = __REV |
4302 | __REV__ = __REV |
Line 4527... | Line 4303... | ||
4527 | 4303 | ||
4528 | uglobals_size = $ - endofcode |
4304 | uglobals_size = $ - endofcode |
4529 | diff16 "Zero-filled blk",0,endofcode |
4305 | diff16 "Zero-filled blk",0,endofcode |
- | 4306 | diff16 "End of kernel ",0,$ |
|
- | 4307 | ||
- | 4308 | ;Êóðãèíÿí - ìàòåìàòèê, è îñíîâíûå ñâîè âûâîäû äåëàåò íà îñíîâå òåîðèè êàòàñòðîô (åñòü òàêàÿ âïîëíå ñåáå ïðèêëàäíàÿ îáëàñòü ìàòåìàòèêè) ñ ýëåìåíòàìè âàðèàöèîííîãî è ôàêòîðíîãî àíàëèçà.  ïðèíöèïå, îí ìîã áû èçëîæèòü ñóòü â 3-4 ñóõèõ ôîðìóëàõ, íî òîëüêî ïîíÿòü èõ ìîãëè (è çàõîòåëè) áû ÷åëîâåê 200-300... |
|
- | 4309 | ||
- | 4310 | ;Âîò è ïðèõîäèòñÿ åìó èçëàãàòü òî æå ñàìîå, íî ãîðàçäî äëèííåå è äîõîä÷èâåå. Ëè÷íî ÿ íå ïîëåíèëñÿ è ïðî÷èòàë öèêë "Êðèçèñ è äðóãèå" â àðõèâå "Çàâòðà" çà 2009 ãîä. |
|
- | 4311 | ||
- | 4312 | ||
- | 4313 | ;Âîò î÷åíü êðàòêàÿ âûæèìêà åãî îñíîâíûõ èäåé (ñ ìîåé êîëîêîëüíè, êîíå÷íî): |
|
- | 4314 | ||
- | 4315 | ;1) Ïëàíåòà ïåðåíàñåëåíà, ðåñóðñîâ íà âñåõ íå õâàòèò, ïåðèîä ëèáåðàëüíåíêîé ãëîáàëèçàöèè äîëæåí ñìåíèòüñÿ ýðîé æåñòêîãî ðàöèîíèðîâàíèÿ ïðè òîòàëüíîì êîíòðîëå âñåãî. |
|
- | 4316 | ||
- | 4317 | ;2) Ó ãðÿäóùåãî òîòàëèòàðíîãî îáùåñòâà äîëæíà áûòü ãîñïîäñòâóþùàÿ èäåîëîãèÿ, ìîáèëèçóþùàÿ ëþäåé â ñóðîâîé áîðüáå. Êàêîé åé áûòü? äëÿ ýòîãî íàäî îòâåòèòü íà äâà îñíîâíûõ âîïðîñà: à) ìîæíî ëè ñäåëàòü ÷åëîâåêà ëó÷øå, ñèëüíåå, óìíåå? è á) ìîæíî ëè ñäåëàòü îáùåñòâî ëó÷øå, ñïðàâåäëèâåå, ñâîáîäíåå? |
|
- | 4318 | ||
- | 4319 | ;3) ñóùåñòâóåò 4 âîçìîæíûõ îòâåòà íà ýòè 2 âîïðîñà: (à+á+) èñòîðè÷åñêèé ìîäåðí, îí æå êîììóíèçì; (à+á-) àíòèèñòîðè÷åñêèé ìîäåðí, èëè ôàøèçì; (à-á+) ðåëèãèîçíûé ôóíäàìåíòàëèçì, èëè Êîíòðìîäåðí; è íàêîíåö (à-á-) öèíè÷íûé àíòèãóìàíèçì, îí æå Ïîñòìîäåðí. |
|
- | 4320 | ||
- | 4321 | ;4) êðóøåíèå êîììóíèñòè÷åñêîãî ïðîåêòà â XX âåêå áûëî òùàòåëüíî ñïëàíèðîâàííîé êàòàñòðîôîé ñ öåëüþ ïîâîðîòà ÷åëîâå÷åñòâà ñ ìîäåðíèñòñêîãî ïóòè ðàçâèòèÿ íà ïîñòìîäåðíèñòñêèé ïóòü ðàñïàäà. Êóðãèíÿí çäåñü èìååò â âèäó êàòàñòðîôó â ìàòåìàòè÷åñêîì ñìûñëå, ò.å. íå êàêîå-òî ïå÷àëüíîå ñîáûòèå, à ïðîöåññ, ïðèâîäÿùèé ê òàêîìó ñîáûòèþ. ß íå õî÷ó ïåðåñêàçûâàòü çäåñü âñå ïîëîæåíèÿ òåîðèè êàòàñòðîô - âàæíî òîëüêî ïîíèìàòü, ÷òî òàêîé ïðîöåññ âîâñå íå îáÿçàòåëüíî äîëæåí ïðèâîäèòü ê ôàòàëüíîìó èñõîäó - âûõîä èç êàòàñòðîôû âñåãäà ìîæíî íàéòè, âïëîòü äî ñàìîãî ïîñëåäíåãî ìîìåíòà! |
|
- | 4322 | ||
- | 4323 | ;5) êàòèòüñÿ ïî ýòîìó êàòàñòðîôè÷åñêîìó ïóòè ëåãêî, íî íàéòè âûõîä èç êàòàñòðîôû ñ êàæäûì øàãîì âñå ñëîæíåå. ×òîáû èçáåæàòü ôàòàëüíîãî êîíöà, îäíîé ýíåðãèè ìàëî - òðåáóåòñÿ èçðÿäíàÿ ñèëà âîëè. |
|
- | 4324 | ||
- | 4325 | ;6) çäåñü Êóðãèíÿí ïîäêëþ÷àåò äðóãîé ìàòåìàòè÷åñêèé àïïàðàò - òåîðèþ èãð. È ïîêàçûâàåò, êàê øóëåðà - ìàãèñòðû ñëîæíîé êîàëèöèîííî-àíòàãîíèñòè÷åñêîé èãðû óìåþò öåëåíàïðàâëåííî è ýôôåêòèâíî ëèøàòü ïðîòèâíèêîâ âîëè è ñìûñëîâ äëÿ ïîèñêà âûõîäà èç êàòàñòðîôû. |
|
- | 4326 | ||
- | 4327 | ;7) êîíå÷íî, ÷åëîâå÷åñêîå îáùåñòâî - ñëîæíåéøàÿ ñèñòåìà ñ íåïðåäñêàçóåìûì îòêëèêîì íà àêòèíûå äåéñòâèÿ êàæäîãî èç èãðîêîâ. Äàæå îïûòíåéøèé øóëåð ìîæåò çäåñü ñäåëàòü íåâåðíûå õîäû. Íî â ðàñïîðÿæåíèè ìàñòåðîâ èãðû èìååòñÿ åùå îäèí ìîùíûé àïïàðàò - ôàêòîðíûé àíàëèç, ïîçâîëÿþùèé ýôôåêòèâíî êîððåêòèðîâàòü ïðîìàõè è ëó÷øå ïðåäñêàçûâòü ïîâåäåíèå ñëîæíûõ ñèñòåì. |
|
- | 4328 | ||
- | 4329 | ;8) è òåì íå ìåíåå, âûõîä åñòü! Äëÿ íà÷àëà, íàäî ðåàëüíî îñîçíàòü ñâîþ ïîçèöèþ â èãðå è íàâÿçàòü ñâîþ, àêòèâíóþ èãðó (êàæäûé íîâûé àêòèâíûé èãðîê óñëîæíÿåò ïàðòíåðàì àíàëèç èãðû). Ýòî ñëîæíî (ïðîùå áûòü áîëâàíîì), è ýòî òðåáóåò Âîëè è âîññîçäàíèÿ Ñìûñëîâ. |
|
- | 4330 |