/*
osbdscio.h = bdscio.h modified for
the Osbourne 1
by: Dan Sunday
7473 Broken Staff
Columbia, MD 21044
(301)-730-6838
date: 4-11-82
*/
/*
The BDS C Standard I/O header file -- v1.44 4/3/81
This file contains global definitions, for use in all C programs
in PLACE of (yechhh) CONSTANTS. Characteristics of your system
such as video screen size, interface port numbers and masks,
buffered I/O allocations, etc., should all be configured just
once within this file. Any program which needs them should
contain the preprocessor directive:
#include "bdscio.h"
near the beginning.
Go through and set this stuff as soon as you get the package,
and most terminal-dependent sample programs should run better.
*/
/*
Some console (video) terminal characteristics:
(configured for the Osbourne 1)
*/
#define TWIDTH 52 /* # of columns */
#define TLENGTH 24 /* # of lines */
#define ESC '\033' /* Standard ASCII 'escape' character */
#define DEL '\177'
#define RUB_OUT DEL
#define CTRL 037 & /* Control Mask */
#define BELL (CTRL 'G')
#define TAB (CTRL 'I')
#define CR (CTRL 'M') /* Carriage Return */
#define BS (CTRL 'H') /* Back Space */
#define LF (CTRL 'J') /* Line Feed */
#define VT (CTRL 'K') /* Vertical Tab */
#define FF (CTRL 'L') /* Form Feed */
/* Osbourne CP/M Cursor Controls */
#define LEFT BS /* Cursor Left */
#define RIGHT FF /* Cursor Right */
#define UP VT /* Cursor Up */
#define DOWN LF /* Cursor Down */
/* Osbourne Console Control Strings */
#define CLEARS "\032"
#define SHI "\033)" /* start half intensity */
#define EHI "\033(" /* end half intensity */
#define SGR "\033g" /* start graphics mode */
#define EGR "\033G" /* end graphics mode */
#define SUL "\033l" /* start underlining */
#define EUL "\033m" /* end underlining */
#define IC "\033Q" /* insert character */
#define IL "\033E" /* insert line */
#define DC "\033W" /* delete character */
#define DL "\033R" /* delete line */
#define CL "\033T" /* clear to end of line */
#define CUR "\033=" /* set cursor */
#define SCR "\033S" /* set screen */
#define LOCK "\033#" /* lock keyboard */
#define UNLOCK "\033\"" /* unlock keyboard */
#define BASE 0 /* Base of CP/M system RAM (0 or 0x4200) */
#define SECSIZ 128 /* Sector size for CP/M read/write calls */
#define MAXLINE 128 /* Longest line of console input expected */
#define ON 1
#define OFF 0
#define TRUE 1
#define FALSE 0
#define YES 1
#define NO 0
#define NONE 0
#define NULL 0
#define OK 0
#define ERROR (-1)
#define EOF (-1)
#define CPMEOF (CTRL 'Z')
/*
The NSECTS symbol controls the compilation of the buffered
I/O routines within STDLIB2.C, allowing each user to set the
buffer size most convenient for his system, while keeping
the numbers totally invisible to the C source programs using
buffered I/O (via the BUFSIZ defined symbol.) For larger
NSECTS, the disk I/O is faster...but more ram is taken up.
Note that pre-1.4 versions of the library functions
were not set up to support this customizable buffer size,
and always compiled as if NSECTS were 1 in this version. To
change the buffer size allocation, follow these steps:
1) Alter NSECTS to the desired value here in bdscio.h
2) Re-compile STDLIB1.C and STDLIB2.C
3) Use CLIB to combine STDLIB1.CRL and STDLIB2.CRL to make
a new DEFF.CRL.
Make sure you use declare all your I/O buffers with the a
statement such as:
char buf_name[BUFSIZ];
instead of the older and now obsolete:
char buf_name[134];
(and always #include "bdscio.h" in your programs!)
*/
#define NSECTS 8 /* Number of sectors to buffer up in ram */
somewhere in your "main" function PRIOR to the first use
of the "alloc" function. DON'T FORGET THIS INITIALIZATION!!
Remember to include bdscio.h in ALL files of your C program.
The lack of static variables is the reason for all this junk.
*/
/* only ONE of the following two lines should be uncommented */
/***
#define ALLOC_OFF 1 /* disables storage allocation if uncommented */
***/
#define ALLOC_ON 1 /* enables storgage allocation if uncommented */
#ifdef ALLOC_ON /* if storage allocation enabled, */