/* w89k-io.c -- I/O code for the Winbond Cougar board. * * Copyright (c) 1995 Cygnus Support * * The authors hereby grant permission to use, copy, modify, distribute, * and license this software and its documentation for any purpose, provided * that existing copyright notices are retained in all copies and that this * notice is included verbatim in any distributions. No written agreement, * license, or royalty fee is required for any of the authorized uses. * Modifications to this software may be copyrighted by their authors * and need not follow the licensing terms described here, provided that * the new terms are clearly indicated on the first page of each file where * they apply. */ #include "w89k.h" void zylons(); void led_putnum(); void delay(); /* * outbyte -- shove a byte out the serial port. We wait till the byte */ void outbyte (byte) unsigned char byte; { while ((inp(COM1_LSR) & TRANSMIT) == 0x0) ; outp (COM1_DATA, byte); return; } /* * inbyte -- get a byte from the serial port */ unsigned char inbyte () { while ((inp(COM1_LSR) & RECEIVE) == 0x0) ; return (inp(COM1_DATA)); } /* * led_putnum -- print a hex number on the LED. the value of num must be a byte. * The max number 15, since the front panel only has 4 LEDs. */ void led_putnum ( num ) char num; { print ("Sorry, no LED's on the WinBond W89k board, using putnum instead\r\n"); putnum (num); } /* * zylons -- draw a rotating pattern. NOTE: this function never returns. */ void zylons() { print ("Sorry, no LED's on the WinBond W89k board\r\n"); } void delay (x) int x; { int y = 17; while (x-- !=0) y = y^2; }