136 lines
4.6 KiB
C
136 lines
4.6 KiB
C
|
/* -----> SPORT.H */
|
|||
|
/* TIPC Scheme Runtime Support - I/O Control Structure Definition
|
|||
|
Copyright 1985 by Texas Instruments Incorporated.
|
|||
|
All Rights Reserved.
|
|||
|
|
|||
|
Author: John C. Jensen
|
|||
|
Installation: Texas Instruments Incorporated, Dallas, Texas
|
|||
|
Division: Corporate Research Laboratories
|
|||
|
Cost Center: Computer Science Laboratory
|
|||
|
Project: Computer Architecture Branch
|
|||
|
Date Written: 1 February 1985
|
|||
|
Last Modification: 18 July 1985 by Mark Meyer
|
|||
|
22 Jan 1987 by dbs - added random i/o
|
|||
|
*/
|
|||
|
|
|||
|
/* The format of a window data object is:
|
|||
|
|
|||
|
+--------+--------+--------+
|
|||
|
0 |tag=port| length in bytes |
|
|||
|
+--------+-----------------+
|
|||
|
3 | pointer |
|
|||
|
+--------+--------+--------+--------+
|
|||
|
6 | port flags | handle |
|
|||
|
+-----------------+-----------------+
|
|||
|
10 | cursor line | cursor column |
|
|||
|
+-----------------+-----------------+
|
|||
|
14 | upper left line |upper left column|
|
|||
|
+-----------------+-----------------+
|
|||
|
18 | number of lines |number of columns|
|
|||
|
+-----------------+-----------------+
|
|||
|
22 |border attributes| text attributes |
|
|||
|
+-----------------+-----------------+
|
|||
|
26 | window flags | buffer position |
|
|||
|
+-----------------+-----------------+
|
|||
|
30 | buffer end |
|
|||
|
+--------+--------+--------+--------+----... -----+
|
|||
|
32 | input buffer |
|
|||
|
+--------+--------+-----------------+-------...---+
|
|||
|
| window label |
|
|||
|
+--------+--------+-----------------+---------...-+
|
|||
|
|
|||
|
7 6 5 4 3 2 1 0
|
|||
|
+-+-+-+-+-+-+---+
|
|||
|
port flags: | |s|b|t|o|w|mod|
|
|||
|
+-+-+-+-+-+-+---+
|
|||
|
|
|||
|
mod - mode: 0=read
|
|||
|
1=write
|
|||
|
2=read and write
|
|||
|
w - window/file: 0=file
|
|||
|
1=window
|
|||
|
o - open/closed: 0=closed
|
|||
|
1=open
|
|||
|
t - transcript: 0=disabled
|
|||
|
1=enabled
|
|||
|
b - binary flag: 0=text file/window
|
|||
|
1=binary file/window
|
|||
|
s - string I/O: 0=file or window
|
|||
|
1=I/O from/to string
|
|||
|
|
|||
|
7 6 5 4 3 2 1 0
|
|||
|
+-----------+-+-+
|
|||
|
window flags: | |e|w|
|
|||
|
+-----------+-+-+
|
|||
|
|
|||
|
w - wrap/clip: 0=clip
|
|||
|
1=wrap
|
|||
|
e - exposed: 0=exposed
|
|||
|
1=(partially) covered
|
|||
|
|
|||
|
The format of a file data object is:
|
|||
|
|
|||
|
+--------+--------+--------+
|
|||
|
0 |tag=port| length in bytes |
|
|||
|
+--------+-----------------+
|
|||
|
3 | null |
|
|||
|
+--------+--------+--------+--------+
|
|||
|
6 | port flags | handle |
|
|||
|
+-----------------+-----------------+
|
|||
|
10 | pathname offset | current column |
|
|||
|
+-----------------+-----------------+
|
|||
|
14 | chunk # | (reserved) |
|
|||
|
+-----------------+-----------------+
|
|||
|
18 |file size (high) |number of columns|
|
|||
|
+-----------------+-----------------+
|
|||
|
22 | file size (low) | (reserved) |
|
|||
|
+-----------------+-----------------+
|
|||
|
26 | (reserved) | buffer position |
|
|||
|
+-----------------+-----------------+
|
|||
|
30 | buffer end |
|
|||
|
+--------+--------+--------+--------+----... -----+
|
|||
|
32 | input/output buffer ... |
|
|||
|
+--------+--------+-----------------+-------... --+
|
|||
|
| file pathname ... |
|
|||
|
+--------+--------+-----------------+---------... +
|
|||
|
|
|||
|
*/
|
|||
|
#define READ 0x00
|
|||
|
#define WRITE 0x01
|
|||
|
#define APPEND 0x02
|
|||
|
#define READ_WRITE 0x02
|
|||
|
#define WINDOW 0x04
|
|||
|
#define OPEN 0x08
|
|||
|
#define TRANSCRIPT 0x10
|
|||
|
#define BINARY 0x20
|
|||
|
#define STRSRC 0x40
|
|||
|
|
|||
|
#define WRAP 0x01
|
|||
|
|
|||
|
#define MAX_LINES 25 /* number of lines on the VDT */
|
|||
|
#define MAX_COLUMNS 80 /* number of columns on the VDT */
|
|||
|
#define WINDSIZE 32-BLK_OVHD
|
|||
|
#define BUFFSIZE 256 /* input/output buffer size (bytes) */
|
|||
|
|
|||
|
#define STR_PTR 3 /* pointer to source string, if any */
|
|||
|
#define P_FLAGS 6 /* port flags */
|
|||
|
#define HANDLE 8 /* file/device handle */
|
|||
|
#define CUR_LINE 10 /* current line/record number */
|
|||
|
#define CUR_COL 12 /* current column/record number */
|
|||
|
#define UL_LINE 14 /* window: upper left corner's line number */
|
|||
|
/* file: chunk # */
|
|||
|
#define UL_COL 16 /* window: upper left corner's column number */
|
|||
|
#define N_LINES 18 /* window: number of lines */
|
|||
|
/* file: high word of file size */
|
|||
|
#define N_COLS 20 /* line length */
|
|||
|
#define B_ATTRIB 22 /* window: border attributes */
|
|||
|
/* file: low word of file size */
|
|||
|
#define T_ATTRIB 24 /* window: text attributes */
|
|||
|
#define W_FLAGS 26 /* window: flags */
|
|||
|
#define BUF_POS 28 /* current buffer position */
|
|||
|
#define BUF_END 30 /* current end of buffer offset */
|
|||
|
|
|||
|
#define BUFR 32 /* input/output buffer */
|
|||
|
#define LABEL 32+BUFFSIZE /* window label field */
|
|||
|
#define PATHNAME 32+BUFFSIZE /* file pathname field */
|
|||
|
|