X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Fserial.c;h=e833672e2ab08ecc225b2dad35dd27c366ec2af8;hb=0626040a5133ff8f8e071a20e9165c9618eb8c4a;hp=c7075914da3d190624dbf018246eb3b09a03e2ac;hpb=d1e8a437c1fab4535f82c4c214ec3330ac32e48d;p=bootcensus diff --git a/src/serial.c b/src/serial.c index c707591..e833672 100644 --- a/src/serial.c +++ b/src/serial.c @@ -1,3 +1,20 @@ +/* +pcboot - bootable PC demo/game kernel +Copyright (C) 2018 John Tsiombikas + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY, without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ #include #include #include "serial.h" @@ -211,8 +228,13 @@ static int can_send(int fd) void ser_putc(int fd, char c) { int base = ports[fd].base; + + if(c == '\n') { + ser_putc(fd, '\r'); + } + while(!can_send(fd)); - while((inb(base + UART_MSTAT) & MST_CTS) == 0); + /*while((inb(base + UART_MSTAT) & MST_CTS) == 0);*/ outb(c, base + UART_DATA); }