From 7e0f021a9aec35fd8e6725e87e3313b101d26f5e Mon Sep 17 00:00:00 2001 From: Tobias Klauser Date: Sun, 27 Jan 2008 11:37:44 +0100 Subject: Initial import (2.0.2-6) --- reference/C/CONTRIB/SNIP/x00api.h | 236 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 236 insertions(+) create mode 100755 reference/C/CONTRIB/SNIP/x00api.h (limited to 'reference/C/CONTRIB/SNIP/x00api.h') diff --git a/reference/C/CONTRIB/SNIP/x00api.h b/reference/C/CONTRIB/SNIP/x00api.h new file mode 100755 index 0000000..7d4e43a --- /dev/null +++ b/reference/C/CONTRIB/SNIP/x00api.h @@ -0,0 +1,236 @@ +/* + * X00API.H - X00 FOSSIL driver HLLAPI + * + * Created by R.F. Pels. + * modified by Bob Stout + * Placed in the public domain by R.F. Pels. + */ + +#ifndef __X00API_H /* Prevent double inclusion */ +#define __X00API_H + +/* FOSSIL specifics */ + +#define X00_VECTOR 0x14 +#define X00_IDOFFSET 6 + +/* FOSSIL function request codes */ + +#define SET_BAUDRATE 0x0000 +#define TX_CHAR 0x0100 +#define RX_CHAR 0x0200 +#define STATUS 0x0300 +#define INITIALIZE 0x0400 +#define DEINITIALIZE 0x0500 +#define RAISE_DTR 0x0601 +#define LOWER_DTR 0x0600 +#define GET_SYS_INFO 0x0700 +#define FLUSH_OUTPUT 0x0800 +#define PURGE_OUTPUT 0x0900 +#define PURGE_INPUT 0x0A00 +#define TX_CHAR_NOWAIT 0x0B00 +#define PEEK_AHEAD_INPUT 0x0C00 +#define PEEK_AHEAD_KBD 0x0D00 +#define READ_KBD 0x0E00 +#define FLOW_CONTROL 0x0F00 +#define CTLC_CTLK_CHECK 0x1000 +#define SET_CUP 0x1100 +#define GET_CUP 0x1200 +#define WRITE_ANSI_CHAR 0x1300 +#define ENABLE_WATCHDOG 0x1401 +#define DISABLE_WATCHDOG 0x1400 +#define WRITE_BIOS_CHAR 0x1500 +#define INSERT_TICK_FUNC 0x1601 +#define DELETE_TICK_FUNC 0x1600 +#define BOOT_MACHINE 0x1700 +#define READ_BLOCK 0x1800 +#define WRITE_BLOCK 0x1900 +#define START_BREAK_SIGNAL 0x1A01 +#define STOP_BREAK_SIGNAL 0x1A00 +#define GET_DRIVER_INFO 0x1B00 +#define INSTALL_APPENDAGE 0x7e00 +#define REMOVE_APPENDAGE 0x7f00 + +/* port numbers and variable type of portnumber in calls */ + +#define PORTCOM1 0 +#define PORTCOM2 1 +#define PORTCOM3 2 +#define PORTCOM4 3 +#define PORTCOM5 4 +#define PORTCOM6 5 +#define PORTCOM7 6 +#define PORTCOM8 7 +#define PORTSPECIAL 0x00ff + +typedef unsigned int PORT; + +/* defines components of baud settings call */ + +#define BAUD300 0x40 +#define BAUD600 0x60 +#define BAUD1200 0x80 +#define BAUD2400 0xa0 +#define BAUD4800 0xc0 +#define BAUD9600 0xe0 +#define BAUD19200 0x00 +#define BAUD38400 0x20 +#define PARITYNONE 0x00 +#define PARITYODD 0x08 +#define PARITYNONEALT 0x10 +#define PARITYEVEN 0x18 +#define STOP1BIT 0x00 +#define STOP2BIT 0x04 +#define WORD5BIT 0x00 +#define WORD6BIT 0x01 +#define WORD7BIT 0x02 +#define WORD8BIT 0x03 +#define FIDOSETTING PARITYNONE | STOP1BIT | WORD8BIT +#define OPUSSETTING PARITYNONE | STOP1BIT | WORD8BIT +#define SEADOGSETTING PARITYNONE | STOP1BIT | WORD8BIT + +/* Error numbers */ + +#define X00_OK 0 +#define X00_NOT_HERE 100 +#define X00_CHAR_NOT_SENT 101 +#define X00_NO_INPUT 0xffff +#define X00_NO_KEY 0xffff +#define X00_INS_TICK 104 +#define X00_DEL_TICK 105 +#define X00_INS_APP 106 +#define X00_REM_APP 107 +#define X00_DTR_HIGH 108 +#define X00_DTR_LOW 109 + + +/* FOSSIL initcall result type */ + +#define X00_PRESENT 0x1954 + +typedef struct { + unsigned int result; + unsigned char max_function; + unsigned char revision; + } FOSSILINIT; + +/* FOSSIL status return type: all fields are 1 if condition exists */ + +typedef union { + struct STATUSBITS { + unsigned int : 3; + unsigned int alwayshigh : 1; + unsigned int : 3; + unsigned int carrier_detect : 1; + unsigned int chars_in_input : 1; + unsigned int input_overrun : 1; + unsigned int : 3; + unsigned int output_not_full : 1; + unsigned int output_empty : 1; + unsigned int : 1; + } statusbits; + unsigned int statusword; + } FOSSILSTATUS; + +/* FOSSIL info type */ + +typedef struct { + unsigned int size; + unsigned char version; + unsigned char revision; + unsigned int ofs_fossil_id; + unsigned int seg_fossil_id; + unsigned int input_size; + unsigned int input_avail; + unsigned int output_size; + unsigned int output_avail; + unsigned char screen_width; + unsigned char screen_height; + unsigned char baud_rate_mask; + } FOSSILINFO; + +/* FOSSIL system info type */ + +typedef struct { + unsigned char tick_number; + unsigned char ticks_per_second; + unsigned int approx_ms_per_tick; + } FOSSILSYSINFO; + +/* FOSSIL flow control type */ + +typedef union { + struct FLOWBITS { + unsigned char xonxoff : 1; + unsigned char ctsrts : 1; + unsigned char remote_xonxoff : 1; + unsigned char : 5; + } flowbits; + unsigned char flowword; + } FOSSILFLOWCTRL; + +/* FOSSIL checks control type */ + +#define X00_CTLCK 0x0001 +#define X00_NO_CTLCK 0x0000 + +typedef union { + struct CHECKBITS { + unsigned char ctlc_ctlk : 1; + unsigned char stop_transmitter : 1; + unsigned char : 6; + } checkbits; + unsigned char checkword; + } FOSSILCTLCCTLK; + +#define COLDBOOT 0 +#define WARMBOOT 1 + +#if __cplusplus + extern "C" { +#endif + +unsigned int x00_detect(void); +FOSSILSTATUS x00_set(unsigned char set, PORT port); +FOSSILSTATUS x00_tx_char(unsigned char c, PORT port); +unsigned char x00_rx_char(PORT port); +FOSSILSTATUS x00_status(PORT port); +FOSSILINIT x00_init(PORT port, unsigned char far *ctlc_flagbyte); +void x00_deinit(PORT port); +unsigned int x00_raise_dtr(PORT port); +unsigned int x00_lower_dtr(PORT port); +FOSSILSYSINFO x00_sysinfo(void); +void x00_flush_output(PORT port); +void x00_purge_output(PORT port); +void x00_purge_input(PORT port); +unsigned int x00_tx_char_nowait(unsigned char c, PORT port); +unsigned int x00_peek_ahead_input(PORT port); +unsigned int x00_peek_ahead_kbd(void); +unsigned int x00_read_kbd(void); +void x00_flow_control(FOSSILFLOWCTRL f, PORT port); +unsigned int x00_ctlc_ctlk_check(FOSSILCTLCCTLK c, PORT port); +void x00_set_cup(unsigned char row, unsigned char col); +void x00_get_cup(unsigned char *row, unsigned char *col); +void x00_write_ANSI_char(unsigned char c); +void x00_enable_watchdog(PORT port); +void x00_disable_watchdog(PORT port); +void x00_write_BIOS_char(unsigned char c); +unsigned int x00_insert_tick_func(void (_far *tickfunc)()); +unsigned int x00_delete_tick_func(void (_far *tickfunc)()); +void x00_boot_machine(unsigned int boottype); +unsigned int x00_read_block(unsigned int count, void far *buf, PORT port); +unsigned int x00_write_block(unsigned int count, void far *buf, +PORT port); +void x00_start_break_signal(PORT port); +void x00_stop_break_signal(PORT port); +unsigned int x00_get_driverinfo(void far *buf, PORT port); +unsigned int x00_install_appendage(unsigned char appcode, + void (_far *appfunc)()); +unsigned int x00_remove_appendage(unsigned char appcode, + void (_far *appfunc)()); + +#if __cplusplus + } +#endif + +#endif /* __X00API_H */ -- cgit v1.2.3-54-g00ecf