Ignore:
File:
1 edited

Legend:

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

    rb5382d4f r22c3444  
    347347 * Since the EGA can only display Extended ASCII (usually
    348348 * ISO Latin 1) characters, some of the Unicode characters
    349  * can be displayed in a wrong way. Only the newline character
    350  * is interpreted, all other characters (even unprintable) are
     349 * can be displayed in a wrong way. Only newline and backspace
     350 * are interpreted, all other characters (even unprintable) are
    351351 * printed verbatim.
    352352 *
     
    399399       
    400400        cmp $0x0a, %al
    401         jne early_putchar_print
     401        jne early_putchar_backspace
    402402       
    403403                /* Interpret newline */
     
    413413                subw %dx, %bx
    414414               
    415                 jmp early_putchar_newline
     415                jmp early_putchar_skip
     416       
     417        early_putchar_backspace:
     418       
     419                cmp $0x08, %al
     420                jne early_putchar_print
     421               
     422                /* Interpret backspace */
     423               
     424                cmp $0x0000, %bx
     425                je early_putchar_skip
     426               
     427                dec %bx
     428                jmp early_putchar_skip
    416429       
    417430        early_putchar_print:
     
    423436                inc %bx
    424437       
    425         early_putchar_newline:
     438        early_putchar_skip:
    426439       
    427440        /* Sanity check for the cursor on the last line */
     
    432445                movq $(PA2KA(0xb80a0)), %rsi
    433446                movq $(PA2KA(0xb8000)), %rdi
    434                 movq $1920, %rcx
    435                 rep movsw
     447                movq $480, %rcx
     448                rep movsq
    436449               
    437450                /* Clear the 24th row */
    438451                xorq %rax, %rax
    439                 movq $80, %rcx
    440                 rep stosw
     452                movq $20, %rcx
     453                rep stosq
    441454               
    442455                /* Go to row 24 */
Note: See TracChangeset for help on using the changeset viewer.