diff options
| -rw-r--r-- | Notes | 3 | ||||
| -rw-r--r-- | console.c | 19 | 
2 files changed, 22 insertions, 0 deletions
| @@ -1,3 +1,6 @@ +bochs 2.2.6: +./configure --enable-smp --enable-disasm --enable-debugger --enable-all-optimizations --enable-4meg-pages --enable-global-pages --enable-pae --disable-reset-on-triple-fault +  bootmain.c doesn't work right if the ELF sections aren't  sector-aligned. so you can't use ld -N. and the sections may also need  to be non-zero length, only really matters for tiny "kernels". @@ -2,6 +2,23 @@  #include <x86.h>  #include "defs.h" +/* + * copy console output to parallel port, which you can tell + * .bochsrc to copy to the stdout: + * parport1: enabled=1, file="/dev/stdout" + */ +static void +lpt_putc(int c) +{ +	int i; + +	for (i = 0; !(inb(0x378+1) & 0x80) && i < 12800; i++) +		; +	outb(0x378+0, c); +	outb(0x378+2, 0x08|0x04|0x01); +	outb(0x378+2, 0x08); +} +  void  cons_putc(int c)  { @@ -9,6 +26,8 @@ cons_putc(int c)    unsigned short *crt = (unsigned short *) 0xB8000; // base of CGA memory    int ind; +  lpt_putc(c); +    // cursor position, 16 bits, col + 80*row    outb(crtport, 14);    ind = inb(crtport + 1) << 8; | 
