Rev 8328 | Rev 9105 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 8328 | Rev 9096 | ||
---|---|---|---|
Line 753... | Line 753... | ||
753 | jz .write_cr |
753 | jz .write_cr |
754 | cmp al, 27 |
754 | cmp al, 27 |
755 | jz .write_esc |
755 | jz .write_esc |
756 | cmp al, 8 |
756 | cmp al, 8 |
757 | jz .write_bs |
757 | jz .write_bs |
- | 758 | cmp al, 7 |
|
- | 759 | jz .bell |
|
758 | cmp al, 9 |
760 | cmp al, 9 |
759 | jnz con.write_char |
761 | jnz con.write_char |
760 | .write_tab: |
762 | .write_tab: |
761 | mov al, ' ' |
763 | mov al, ' ' |
762 | call con.write_char |
764 | call con.write_char |
Line 788... | Line 790... | ||
788 | dec edi |
790 | dec edi |
789 | dec edi |
791 | dec edi |
790 | @@: |
792 | @@: |
791 | pop eax |
793 | pop eax |
792 | ret |
794 | ret |
- | 795 | .bell: |
|
- | 796 | pusha |
|
- | 797 | push 55 |
|
- | 798 | pop eax |
|
- | 799 | mov ebx, eax |
|
- | 800 | mov esi, con.beep2 |
|
- | 801 | int 0x40 |
|
- | 802 | popa |
|
- | 803 | ret |
|
793 | .write_esc: |
804 | .write_esc: |
794 | mov [con_esc], 1 |
805 | mov [con_esc], 1 |
795 | mov [con_esc_attr_n], 1 |
806 | mov [con_esc_attr_n], 1 |
796 | and [con_esc_attrs], 0 |
807 | and [con_esc_attrs], 0 |
797 | ret |
808 | ret |
Line 866... | Line 877... | ||
866 | jz .cursor_left |
877 | jz .cursor_left |
867 | cmp al, 'l' |
878 | cmp al, 'l' |
868 | je .dec_rst |
879 | je .dec_rst |
869 | cmp al, 'h' |
880 | cmp al, 'h' |
870 | je .dec_set |
881 | je .dec_set |
- | 882 | cmp al, 'K' |
|
- | 883 | je .erase_in_line |
|
871 | ret ; simply skip unknown sequences |
884 | ret ; simply skip unknown sequences |
Line 872... | Line 885... | ||
872 | 885 | ||
873 | .dec_rst: |
886 | .dec_rst: |
874 | mov eax, [con_esc_attrs] |
887 | mov eax, [con_esc_attrs] |
Line 894... | Line 907... | ||
894 | ret |
907 | ret |
Line 895... | Line 908... | ||
895 | 908 | ||
896 | .show_cursor: |
909 | .show_cursor: |
897 | mov [con.cursor_height], (15*font_height+50)/100 ; default height |
910 | mov [con.cursor_height], (15*font_height+50)/100 ; default height |
- | 911 | ret |
|
- | 912 | ||
- | 913 | .erase_in_line: |
|
- | 914 | mov eax, [con_esc_attrs] |
|
- | 915 | test eax, eax |
|
- | 916 | jz .erase_till_end_of_line ; |
|
- | 917 | dec eax |
|
- | 918 | jz .erase_till_start_of_line ; |
|
- | 919 | dec eax |
|
- | 920 | je .erase_current_line ; |
|
- | 921 | ret ; unknown sequence |
|
- | 922 | ||
- | 923 | .erase_till_end_of_line: |
|
- | 924 | push edi ecx |
|
- | 925 | mov edi, [con.cur_y] |
|
- | 926 | imul edi, [con.scr_width] |
|
- | 927 | add edi, [con.cur_x] |
|
- | 928 | shl edi, 1 |
|
- | 929 | add edi, [con.data] |
|
- | 930 | mov ecx, [con.scr_width] |
|
- | 931 | sub ecx, [con.cur_x] |
|
- | 932 | mov ah, byte[con_flags] |
|
- | 933 | mov al, ' ' |
|
- | 934 | rep stosw |
|
- | 935 | pop ecx edi |
|
- | 936 | ret |
|
- | 937 | ||
- | 938 | .erase_till_start_of_line: |
|
- | 939 | push edi ecx |
|
- | 940 | mov edi, [con.cur_y] |
|
- | 941 | imul edi, [con.scr_width] |
|
- | 942 | shl edi, 1 |
|
- | 943 | add edi, [con.data] |
|
- | 944 | mov ecx, [con.cur_y] |
|
- | 945 | mov ah, byte[con_flags] |
|
- | 946 | mov al, ' ' |
|
- | 947 | rep stosw |
|
- | 948 | pop ecx edi |
|
- | 949 | ret |
|
- | 950 | ||
- | 951 | .erase_current_line: |
|
- | 952 | push edi ecx |
|
- | 953 | mov edi, [con.cur_y] |
|
- | 954 | imul edi, [con.scr_width] |
|
- | 955 | shl edi, 1 |
|
- | 956 | add edi, [con.data] |
|
- | 957 | mov ecx, [con.scr_width] |
|
- | 958 | mov ah, byte[con_flags] |
|
- | 959 | mov al, ' ' |
|
- | 960 | rep stosw |
|
- | 961 | pop ecx edi |
|
- | 962 | ret |
|
898 | ret |
963 | |
899 | .clear: |
964 | .clear: |
900 | mov eax, [con_esc_attrs] |
965 | mov eax, [con_esc_attrs] |
901 | test eax, eax |
966 | test eax, eax |
902 | jz .clear_till_end_of_screen ; |
967 | jz .clear_till_end_of_screen ; |
Line 2646... | Line 2711... | ||
2646 | con.thread_err db 'Cannot create console thread!',13,10,0 |
2711 | con.thread_err db 'Cannot create console thread!',13,10,0 |
2647 | con.nomem_err db 'Not enough memory!',13,10,0 |
2712 | con.nomem_err db 'Not enough memory!',13,10,0 |
2648 | con.aFinished db ' [Finished]',0 |
2713 | con.aFinished db ' [Finished]',0 |
2649 | con.aNull db '(null)',0 |
2714 | con.aNull db '(null)',0 |
2650 | con.beep db 0x90, 0x3C, 0x00 |
2715 | con.beep db 0x90, 0x3C, 0x00 |
- | 2716 | con.beep2 db 0x85, 0x25, 0x85, 0x40, 0x00 |
|
2651 | con.ipc_buf dd 0,8,0,0 |
2717 | con.ipc_buf dd 0,8,0,0 |
2652 | db 0 |
2718 | db 0 |
Line 2653... | Line 2719... | ||
2653 | 2719 |