home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.barnyard.co.uk
/
2015.02.ftp.barnyard.co.uk.tar
/
ftp.barnyard.co.uk
/
cpm
/
walnut-creek-CDROM
/
CPMHELP
/
TURBOPAS.HLP
< prev
next >
Wrap
Text File
|
2000-06-30
|
5KB
|
113 lines
Turbo Pascal Common Compiler Directives (standard?)
B Directive for input/output mode selection
C Directive for control character interpretation during console I/O
I Directive for I/O error handling
R Directive for run-time index checks
V Directive controls type checking on strings passed as var
U Directive controls user interrupts
X Directive controls array optimization
A Directive controls generation of absolute non-recursive code
W Directive controls level of nesting of With statements
K Directive controls generation of stack check code
:All compiler directives have default values. These have been chosen
to optimize execution speed and minimuze code size. This means that
code generation for recursive procedures and index checking has been
disabled.
:
B defaults to B+
It controls i/o mode selection. When active, {$B+}, the CON:
device is assigned to the standard files Input and Output. When
passive, {$B-}, the TRm: device is used. This directive is global
to an entire program block and cannot be redefined throughout
the program.
:
C defaults to C+
It controls control character interpretation during console I/O.
When active, {$C+}, a Ctl-C entered in response to a Read or Readln
statement will interrupt program execution, and a Ctrl-S will
toggle screen output off and on. When passive, etc., control
characters are not interpreted. the active state slows screen
output somewhat, so if screen output speed is imperative, you
should switch off this directive.
:
I defaults to I+
This controls I/O error handling. When active all I/O operations
are checked for errors. When passive, it is the responsibility
of the programmer to check I/O errors throughout the standard function
I/O result. The I directive succeeded by a file name instructs
the compiler to include the file with the specified name in the
compilation. Include files are discussed in (chapter 17).
:
R defaults to R-
It controls run-time index checks. When active all array indexing
operations are checked to be within the defined bounds, and all
assignments to scalar and subrange variables are checked to be
within range. When passive, no checks are performed, and index
errors may well cause a program to go haywire. It is a good idea
to activate this directive while developing a program. Once debugged,
execution will be speeded up by setting it passive.
:
V defaults to V+
This directive controls type checking on strings passed as var-parameters.
When active strict type checking is performed, i.e., the lengths of
actual and formal parameters must match. When passive the compiler
allows passing of actual parameters which do not match the length
of the formal parameter.
:
U defaults to U-
It controls user interrupts. When active the user may interrupt
the program anytime during execution by entering a Ctrl-C. When
passive this has no effect. Activating this directive will significantly
slow down execution speed.
:
X defaults to X+
This directive controls array optimization. When active code
generation for arrays is optimized for maximum speed. When passive
the compiler minimizes the code size instead.
:
CP/M-80 Compiler Directives (as opposed to CP/M-86 or MSDOS)
A defaults to A+
This controls generation of absolute, non-recursive code. When
active, absolute code is generated. When passive the compiler
generates code which allows recursive calls. This code requires
more memory and executes slower.
:
W defaults to W2
This controls the level of nesting of With statements, i.e., the
number of records which may be "opened" within one block. The
W must be immediately followed by a digit between 1 and 9.
:
CP/M-86 / MS-DOS directives
K defaults to K+
It controls the generation of stack check code. When active,
a check is made to insure that space is available for local variables
on the stack before each call to a subprogram. When passive no
checks are made.
:
Other Turbo vs. Standard (Jensen & Wirth) PASCAL
Extensions offered by TURBO Pascal are not discussed.
Dynamic variables and pointers use the standard procedures, New,
Mark, and Release instead of the New and Dispose procedures.
Primarily this deviation from the standard is far more efficient
in terms of execution speed and required support code, and secondly
it offers compatibility with other popular Pascal compilers (UCSD).
The procedure New will not accept variant record specifications.
This restriction, however, is easily circumvented by using the
standard procedure GetMem.