home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
HyperLib 1997 Winter - Disc 1
/
HYPERLIB-1997-Winter-CD1.ISO.7z
/
HYPERLIB-1997-Winter-CD1.ISO
/
オンラインウェア
/
PRG
/
bwbasic-2.10.sit
/
bwbasic-2.10
/
INSTALL
< prev
next >
Wrap
Text File
|
1993-11-09
|
6KB
|
159 lines
Some Notes on Installation of the Bywater BASIC Interpreter:
-----------------------------------------------------------
0. Quick-Start Guide For Compiling
To use the default configuration (which is reasonable for most situations):
On Unix, type "configure; make".
On MS-DOS using QuickC, type "nmake -f makefile.qcl".
You can skip the rest of this file unless you want to customize the
BASIC dialect that is supported, or something goes wrong in the
above commands.
1. Compiler Requirements
Although earlier versions of bwBASIC would compile only with
ANSI C compilers, versions 2.10 and higher can be compiled
with "stock" C compilers, i.e., compilers that comply with
the older Kernighan and Ritchie C standard.
Section I-B of bwbasic.h allows you to specify some compiler
features. If you have an ANSI C compiler, you needn't worry
with this. For stock C compilers, the default configuration
presumes that your compiler supports signal() and raise()
with the signal.h header, supports setjmp() and longjmp()
with the setjmp.h header, and has a separate string.h
header. If your compiler does not have these features
and the related header files, you can indicate this in
section I-B by setting appropriate flags to FALSE.
2. Configuration of header files
You may need to examine file "bwbasic.h" to make important
changes for specific hardware and compiler configurations.
You may also need to change "bwx_tty.h" if you are using the
TTY implementation or "bwx_iqc.h" if you are using the version
for PCs with Microsoft QuickC (see below on "implementations").
If you want to redefine messages or even the BASIC command
names, you will need to edit "bwb_mes.h".
3. Makefiles
Several makefiles are provided: "makefile.qcl" will compile
the program utilizing the Microsoft QuickC (tm) line-oriented
compiler on DOS-based p.c.'s, and "makefile" will compile the
program on Unix-based computers utilizing either a stock C
compiler or Gnu C++. I have also compiled the program utilizing
Borland's Turbo C++ (tm) on DOS-based machines, although I have
not supplied a makefile for Turbo C++.
If you try the "IQC" implementation, you will need to alter
makefile.qcl to include bwx_iqc.c (and bqx_iqc.obj) instead
of bwx_tty.*.
4. Implementations
The present status of bwBASIC allows two major implementations
controlled by the IMP_TTY and IMP_IQC flags in bwbasic.h.
IMP_TTY is the base implementation and presumes a simple
TTY-style environment, with all keyboard and screen input
and output directed through stdin and stdout. If IMP_TTY is
defined as TRUE, then the file bwx_tty.h will be included,
and a makefile should include compilation of bwx_tty.c.
IMP_IQC is a somewhat more elaborate implementation for
the IBM PC and compatible microcomputers utilizing the
Microsoft QuickC compiler. This allows some more elaborate
commands (CLS and LOCATE) and the INKEY$ function, and
allows greater control over output. If IMP_IQC is defined
as TRUE in bwbasic.h, then bwx_iqc.h will be included and
bwx_iqc.c should be compiled in the makefile.
Only one of the flags IMP_TTY or IMP_IQC should be set
to TRUE.
5. Flags Controlling Groups of Commands and Functions
There are a number of flags which control groups of commands
and functions to be implemented.
(core) Commands and Functions in any implementation of
bwBASIC; these are the ANSI Minimal BASIC core
INTERACTIVE Commands supporting the interactive programming
environment
COMMON_CMDS Commands beyond ANSI Minimal BASIC which are common
to Full ANSI BASIC and Microsoft BASICs
COMMON_FUNCS Functions beyond the ANSI Mimimal BASIC core, but
common to both ANSI Full BASIC and Microsoft-style
BASIC varieties
UNIX_CMDS Commands which require Unix-style directory and
environment routines not specified in ANSI C
STRUCT_CMDS Commands related to structured programming; all
of these are part of the Full ANSI BASIC standard
ANSI_FUNCS Functions unique to ANSI Full BASIC
MS_CMDS Commands unique to Microsoft BASICs
MS_FUNCS Functions unique to Microsoft BASICs
6. Configurations
The file bwbasic.h includes a number of configuration options
that will automatically select groups of commands and functions
according to predetermined patterns. These are:
CFG_ANSIMINIMAL Conforms to ANSI Minimal BASIC standard X3.60-1978.
CFG_COMMON Small implementation with commands and functions
common to GWBASIC (tm) and ANSI full BASIC.
CFG_MSTYPE Configuration similar to Microsoft line-oriented
BASICs.
CFG_ANSIFULL Conforms to ANSI Full BASIC standard X3.113-1987
(subset at present).
CFG_CUSTOM Custom Configuration specified by user.
Only one of these flags should be set to TRUE.
7. Adding Commands and Functions
In order to add a new command to bwBASIC, follow the following
procedure:
(a) Write the command body using function bwb_null() in bwb_cmd.c
as a template. The command-body function (in C) must receive a
pointer to a bwb_line structure, and must pass on a pointer to
a bwb_line structure. The preferred method for returning from
a command-body function is: return bwb_zline( l ); this will
discriminate between MULTISEG_LINES programs which advance to
the next segment and those which advance to the next line.
(b) Add prototypes for the command-body function in bwbasic.h;
you'll need one prototype with arguments in the ANSI_C section
and one prototype without arguments in the non-ANSI_C section.
(c) Add the command to the command table in bwb_tbl.c in the
group you have selected for it.
(d) Increment the number of commands for the group in which
you have placed your command.
The procedure for adding a new function is parallel to this, except that
you should use fnc_null() in bwb_fnc.c as the template, and the
function name must be added to the function table in bwb_tbl.c.