Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/ia32/src/asm.S

    rb5382d4f r22c3444  
    428428 * Since the EGA can only display Extended ASCII (usually
    429429 * ISO Latin 1) characters, some of the Unicode characters
    430  * can be displayed in a wrong way. Only the newline character
    431  * is interpreted, all other characters (even unprintable) are
     430 * can be displayed in a wrong way. Only newline and backspace
     431 * are interpreted, all other characters (even unprintable) are
    432432 * printed verbatim.
    433433 *
     
    481481       
    482482        cmp $0x0a, %al
    483         jne early_putchar_print
     483        jne early_putchar_backspace
    484484       
    485485                /* Interpret newline */
     
    495495                subw %dx, %bx
    496496               
    497                 jmp early_putchar_newline
     497                jmp early_putchar_skip
     498       
     499        early_putchar_backspace:
     500       
     501                cmp $0x08, %al
     502                jne early_putchar_print
     503               
     504                /* Interpret backspace */
     505               
     506                cmp $0x0000, %bx
     507                je early_putchar_skip
     508               
     509                dec %bx
     510                jmp early_putchar_skip
    498511       
    499512        early_putchar_print:
     
    505518                inc %bx
    506519       
    507         early_putchar_newline:
     520        early_putchar_skip:
    508521       
    509522        /* Sanity check for the cursor on the last line */
     
    514527                movl $(PA2KA(0xb80a0)), %esi
    515528                movl $(PA2KA(0xb8000)), %edi
    516                 movl $1920, %ecx
    517                 rep movsw
     529                movl $960, %ecx
     530                rep movsl
    518531               
    519532                /* Clear the 24th row */
    520533                xorl %eax, %eax
    521                 movl $80, %ecx
    522                 rep stosw
     534                movl $40, %ecx
     535                rep stosl
    523536               
    524537                /* Go to row 24 */
Note: See TracChangeset for help on using the changeset viewer.