Table of Contents
top
contents
index
framed top
this page unframed
TableOfContents
MAINSAIL Language Manual
1. Introduction
1.1. Version
1.2. The History of MAINSAIL and XIDAK
1.3. The Design of MAINSAIL
1.4. Terminology and Symbols
1.5. Conventions Used in This Document
1.5.1. User Interaction
1.5.2. Syntax Descriptions
1.5.3. Temporary Features
Tables for Chapter 1: Introduction
1–1. Data Type Abbreviations
2. Basic Language Concepts
2.1. Character Set
2.2. Comments
2.3. Identifiers
2.4. Use of Semicolons and Formatters
2.5. Compiletime Evaluation
2.6. Storage Units and Character Units
2.7. Type Codes
2.8. Garbage Collections and Memory Management
2.8.1. How the MAINSAIL Garbage Collector Determines Whether Data Are Accessible
2.9.
cmdFile
and
logFile
Tables for Chapter 2: Basic Language Concepts
2–1. MAINSAIL Minimum Character Set
2–2. Character-Set-Independent System Procedures
2–5. Type Codes
Examples for Chapter 2: Basic Language Concepts
2–3. Legal Identifiers
2–4. Illegal Identifiers
3. Data Types
3.1. Overflow and Underflow
3.1.1. How to Write
(
LONG
)
INTEGER
Addition and Multiplication Routines That Do Not Overflow
3.2.
BOOLEAN
3.3.
INTEGER
and
LONG
INTEGER
3.4.
REAL
and
LONG
REAL
3.5.
BITS
and
LONG
BITS
3.6.
STRING
3.6.1. Low-Level
STRING
Manipulation
3.6.2.
STRING
Constants and Garbage Collection
3.7.
POINTER
3.8.
$PROCVAR
3.9.
ADDRESS
3.10.
CHARADR
3.11. Conversion Procedures
3.12. Explicit Data Sizing
3.12.1. Allowed Data Types and Sizes for Explicit Sizing
3.12.2. Assignment Compatibility
3.12.3. Where Explicitly Sized Data Types May Occur
3.12.4. Explicitly Sized Data Types and
GENERIC
Procedures
4. Expressions
4.1. Constants
4.2. Variables
4.3.
PROCEDURE
Expression
4.4. Substrings
4.4.1.
INF
4.5.
IF
Expression
4.5.1. Operand Types and Result Type of an
IF
Expression
4.5.2.
IF
Expressions Passed to
$REFERENCE
Parameters
4.6. Assignment Expression
4.7. Compiletime Pseudoprocedures
4.8. Operators and Operations
4.8.1. Why
DIV
and
MOD
Are Undefined for Negative Arguments
4.8.2.
STRING
Comparison
4.8.3. Bitwise Operations
4.8.4. Comparison Chains
4.8.5. Operator Precedence
4.8.5.1. Precedence of the Assignment Operator
4.8.6. Dotted Operators
4.8.7. Operators and Garbage Collection
4.9. Assignment Compatibility
Tables for Chapter 4: Expressions
4–1. Unary Operations
4–2. Binary Operations
Figures for Chapter 4: Expressions
4–3. Precedence of the Assignment Operator in Expressions and Statements
5. Statements
5.1. Assignment Statement
5.2. Expression Statement
5.3.
PROCEDURE
Statement
5.4.
RETURN
Statement
5.5.
BEGIN
Statement
5.5.1. Special Names for Named
BEGIN
Statements
5.6.
IF
Statement
5.7.
CASE
Statement
5.8. Iterative Statement
5.9.
DONE
Statement
5.10.
CONTINUE
Statement
5.11. Empty Statement
5.12. Parenthesized Statements
Tables for Chapter 5: Statements
5–3. Equivalent Forms of Iterative Statement
Figures for Chapter 5: Statements
5–2. Choice of a Selector Is Affected by Ordering of Selectors
Examples for Chapter 5: Statements
5–1. Sample CASE Statement
5–4. Iterative Statement with a CONTINUE Statement
6. Declarations
6.1. Scope of Identifiers
6.2. Simple Variable Declarations
6.3. Qualifiers
6.4.
OWN
Qualifier
6.5.
$SHARED
Qualifier
Figures for Chapter 6: Declarations
6–1. Where Declarations May Occur
7.
PROCEDURE
s
7.1.
PROCEDURE
Declarations
7.2.
PROCEDURE
Calls
7.3. Typed and Untyped
PROCEDURE
s
7.4. Parameters to
PROCEDURE
s
7.5. Parameter Qualifiers
7.5.1.
USES
7.5.2.
PRODUCES
7.5.3.
MODIFIES
7.5.4.
$REFERENCE
7.5.4.1. Classification of
$REFERENCE
Inplace Record Parameters
7.5.4.2. The Null
$REFERENCE
7.5.4.3. Untyped
$REFERENCE
7.5.4.4. Type Compatibility for
$REFERENCE
Parameters
7.5.4.5.
$ref
7.5.4.6. Efficiency of
$REFERENCE
Parameters
7.5.5.
OPTIONAL
7.5.6.
REPEATABLE
7.6. User-Declared
CLASS
Parameters
7.7. Order of Argument Evaluation
7.8. Inplace Record Parameters
7.9. Dynamic
ARRAY
Parameters
7.10. Inplace
ARRAY
Parameters
7.11.
PROCEDURE
Qualifiers
7.12. Recursion
7.13.
FORWARD
PROCEDURE
s
7.13.1.
FORWARD
for Mutual Recursion
7.13.2.
FORWARD
for Source Library Declarations
7.14.
INLINE
PROCEDURE
s
7.15. The
COMPILETIME
PROCEDURE
Qualifier
7.15.1.
SPECIAL
and
$BUILTIN
Compiletime System
PROCEDURE
s
7.15.2. Other System Compiletime
PROCEDURE
s and User Compiletime
PROCEDURE
s
7.15.2.1. How User-Declared Compiletime
PROCEDURE
s Are Handled
7.16.
GENERIC
PROCEDURE
s
7.16.1. Sample
GENERIC
System
PROCEDURE
7.16.2.
GENERIC
PROCEDURE
Instance Selection Algorithm
7.16.3.
GENERIC
PROCEDURE
Selection and
LONG
ARRAY
s
7.16.4.
GENERIC
PROCEDURE
Selection and
STRICTCLASSES
7.16.5.
GENERIC
PROCEDURE
Selection Is Not Based on Return Types
7.16.6.
GENERIC
PROCEDURE
s and Explicit Sizes for Parameter Data Types
7.16.7.
GENERIC
PROCEDURE
Extension
7.17. Stack Overflow
Figures for Chapter 7:
PROCEDURE
s
7–1. Format of a PROCEDURE Declaration
Examples for Chapter 7:
PROCEDURE
s
7–2. A Parameter May Be Used Like Any Other Local Variable
7–3. PRODUCES Parameters Are Not Automatically Initialized
7–4. A FORWARD PROCEDURE
8.
PROCEDURE
Variables
8.1. Declaration
8.2. Zero
8.3. Assignment Compatibility
8.3.1. Safe and Unsafe Assignment of
$PROCVAR
s
8.3.2. Examples of Safe and Legal
$PROCVAR
Assignments
8.4. Operations
8.4.1.
$PROCVAR
-Valued
PROCEDURE
s
8.5.
$PROC
8.6. Initialization
8.7.
$newProcvar
8.8.
$PROCVAR
Example
9.
CLASS
es and
POINTER
s
9.1. Classified
POINTER
s and
ADDRESS
es
9.1.1. Forward
CLASS
es
9.1.2. Classified
ADDRESS
es
9.2. Unclassified
POINTER
s and
ADDRESS
es
9.2.1. Use of Unclassified
POINTER
s Requires Caution
9.3. Classification of Inplace Records
9.4. Accessing Fields of Records, Data Sections, and Storage Templates
9.5. Explicit
CLASS
es
9.5.1.
POINTER
s and
ADDRESS
es with Explicit
CLASS
es
9.5.1.1. Use of Explicit
CLASS
es in
POINTER
or
ADDRESS
Field Variables
9.5.1.2. Use of Explicit
CLASS
es for
POINTER
s and
ADDRESS
es outside Field Variables
9.5.2. Inplace Records with Explicit
CLASS
es
9.6. Prefix
CLASS
es
9.6.1. Accessing Prefix Fields
9.7. Related
CLASS
es
9.8. Safe and Unsafe Assignment of
POINTER
s
9.9. Explicit Alignment of
CLASS
es
9.9.1. Aligned
CLASS
es and Foreign Languages
9.9.2. Alignment Rules for Each Platform
9.9.3. Assignment Compatibility
Tables for Chapter 9:
CLASS
es and
POINTER
s
9–3. Alignment Rules for Each Platform
Figures for Chapter 9:
CLASS
es and
POINTER
s
9–2. Fields of a Record of a Prefixed CLASS
9–4. Field Alignment under Different Alignment Rules
Examples for Chapter 9:
CLASS
es and
POINTER
s
9–1. The Use of Field Variables
10. Records
10.1. Inplace Records
10.2. Dynamic Records
10.3. Inplace Record Declaration
10.4. Declaration of
POINTER
s to Dynamic Records
10.5. Inplace Record Allocation
10.6. Dynamic Record Allocation
10.7. Inplace Record Operations
10.7.1. Field Access
10.7.1.1. Fields of Record Expressions
10.7.2. Assignment
10.7.2.1. Explicit Classification and Inplace Records
10.7.3. Inplace Records as
PROCEDURE
Parameters
10.7.4. Miscellaneous Operations
10.7.4.1. Inplace Records and the Foreign Language Interface
10.8. Dynamic Record Operations
10.8.1. Field Access
10.8.1.1. Explicit Classification and Dynamic Record Fields
10.8.2. Assignment
10.8.2.1. Copying Fields from One Dynamic Record to Another
10.8.3. Dynamic Records as
PROCEDURE
Parameters
10.8.4. Miscellaneous Operations
10.9. Deallocating Inplace Records
10.10. Deallocating Dynamic Records
10.11. When to Use Inplace Records and When to Use Dynamic Records
10.12. How to Make a
PROCEDURE
Able to Take Both Inplace Records and
POINTER
s to Dynamic Records as Arguments
10.13. The Layout of Fields within a Record
10.13.1. The Layout of Fields within a Record of a Prefixed
CLASS
Figures for Chapter 10: Records
10–1. A Record with Three Fields
10–2. A POINTER p to a Dynamic Record
10–3. An Inplace Record r
11.
MODULE
s and Data Sections
11.1. Bound and Nonbound Data Sections
11.2.
MODULE
Declaration
11.3. Indirect Access to Interface Fields
11.4.
CLASS
es with
PROCEDURE
s and
CLASS
es as Prefixes of
MODULE
s
11.5. Direct Access to Interface Fields
11.6.
MODULE
Allocation and Disposal
11.7. Allocation of a Dynamic Record of a
CLASS
with
PROCEDURE
Fields
11.8. Garbage Collection of Data Sections
11.9. Establishing
MODULE
Linkage
11.10. Intermodule Consistency Checking
11.10.1. Detailed Intermodule Consistency Checking Rules, with an Example
11.11.
INITIAL
PROCEDURE
11.12.
FINAL
PROCEDURE
11.12.1.
FINAL
PROCEDURE
s and
$exitingMainsail
11.12.2. How to Avoid Problems During a Call to
exit
11.13.
GENERIC
PROCEDURE
s as Field Variables
11.14. Control Sections and
MODULE
Swapping
11.14.1. Deletion of Swap Files
11.15. Compilation of Several
MODULE
s in One File
11.16. Nonbound-Invocation
MODULE
s
Tables for Chapter 11:
MODULE
s and Data Sections
11–1. A MAINSAIL MODULE
Figures for Chapter 11:
MODULE
s and Data Sections
11–4. Accessing Data Section Fields with a POINTER
Examples for Chapter 11:
MODULE
s and Data Sections
11–2. Sample MODULE Declaration
11–3. Sample MODULE Declaration Using a CLASS
12.
ARRAY
s
12.1. Inplace
ARRAY
s
12.2. Dynamic
ARRAY
s
12.3.
ARRAY
Declarations
12.3.1. Inplace
ARRAY
Bounds
12.3.2.
LONG
ARRAY
s
12.4. Inplace
ARRAY
Allocation
12.5. Dynamic
ARRAY
Allocation
12.6. Accessing an
ARRAY
Element
12.7.
ARRAY
Bounds and Subscript Calculation Overflow
12.8.
ARRAY
Pseudofields
12.8.1.
NULLARRAY
Checking for Compiletime-Evaluated Pseudofields of
ARRAY
s
12.9. Inplace
ARRAY
Operations
12.9.1. Assignment
12.9.2. Inplace
ARRAY
s as
PROCEDURE
Parameters
12.9.3. Miscellaneous
12.9.3.1. Inplace
ARRAY
s and the Foreign Language Interface
12.10. Dynamic
ARRAY
Operations
12.10.1. Dynamic
ARRAY
Assignment
12.10.1.1. Copying Elements from One Dynamic
ARRAY
to Another
12.10.2. Dynamic
ARRAY
Initialization
12.10.3. Dynamic
ARRAY
Comparison
12.10.4. Converting a
POINTER
to an
ARRAY
and Vice Versa
12.10.5. Miscellaneous
12.10.5.1. Copying a Dynamic
ARRAY
12.10.5.2. Clearing a Dynamic
ARRAY
12.11. Deallocating Inplace
ARRAY
s
12.12. Deallocating Dynamic
ARRAY
s
12.13. How
ARRAY
s Are Stored in Memory
12.14. Unsized Inplace
ARRAY
s and Unsized
CLASS
es
12.14.1. Parameterized Records
Tables for Chapter 12:
ARRAY
s
12–1. ARRAY Pseudofields
12–3. Array
arr3
as a Matrix
Figures for Chapter 12:
ARRAY
s
12–2. Pointer Semantics of Dynamic ARRAYs
13. Intmods
13.1. Typical Use of Intmods
13.2. Intmod Directives
13.2.1. Opening Intmods and Accessing Symbols
13.2.2.
MODULE
Visibility
13.2.3. Qualified Identifiers: Low-Level Access to Identifiers from Intmods
13.2.3.1. Example of the Use of Qualified Identifiers to Distinguish between Symbols from Two Different Open Intmods
13.2.4. Individual Symbol Visibility
13.3.
RESTOREFROM
and
SAVEON
13.4. Visibility from Supporting Intmods When a
RESTOREFROM
Is Done
13.5.
MAKEMODULEALLVISIBLE
13.6. Unqualified Identifier Search Rules
13.7. Use of Symbols from an Intmod
13.7.1. Redefining Macros from Intmods
13.7.2.
CLASS
es Declared in Different Intmods Are Different
CLASS
es
13.8. Intmod Search Rules
13.9. Changing an Intmod
13.9.1. Innocuous Intmod Changes
13.10. Intmods vs. the
SOURCEFILE
Directive
Examples for Chapter 13: Intmods
13–1. Use of Intmods to Maintain Common Declarations
14. Objmods, Intmods, Libraries, and Search Rules
14.1. Objmod and Intmod File Names
14.2. Objmod and Intmod Search Rules
14.3. Summary of Search Rules
15. Macros
15.1.
DEFINE
15.2.
REDEFINE
15.3. Bracketed Text
15.4. Interactive Definition
15.5. Macro Calls
15.6. Macro Arguments
15.6.1.
REPEATABLE
Macro Parameters,
$numArgs
,
$arg
, and
$sArg
15.7. Determining Whether a Macro Argument Has Been Omitted
15.7.1. Omitted Macro Arguments and Empty Macro Arguments
15.8. Bracketed Text in Constant Expressions
15.9. Forcing Evaluation of Macro Arguments before Passing: $expandMacro and $expandExpr
15.9.1.
$expandMacro
15.9.2.
$expandExpr
15.10.
L
Cannot Be Used as a Macro Parameter If Macro Body Contains
LONG
Constants
Examples for Chapter 15: Macros
15–1. Use of REDEFINE
16. Compiler Directives and Conditional Compilation
16.1.
MESSAGE
16.2.
SOURCEFILE
16.3.
CHECK
,
NOCHECK
, and
CHECKING
16.4.
$DIRECTIVE
16.4.1.
HIDEPROC
Directive
16.4.2.
DATETIMECHECK
/
NODATETIMECHECK
Compiler Directives
16.5.
SAVEON
and
RESTOREFROM
16.6.
ENCODE
16.7.
$GLOBALREDEFINE
16.8.
DSP
and
$LDSP
16.9.
$sizeOfField
16.10.
$sizeOfValue
16.11.
$LEGALNOTICE
16.12. Conditional Compilation:
IFC
,
THENC
,
$EFC
,
ELSEC
, and
ENDC
16.13.
$CASEC
: Compiletime Case
16.13.1. Selectors
16.13.2. Selector Matching Rules
16.13.3. Delimiters of Selected Text
16.14.
$BEGINC
16.15.
$DOC
,
$DONEC
,
$CONTINUEC
,
$FORC
: Compiletime Iteration
16.15.1.
$DOC
iteratedText
ENDC
16.15.2.
$DONEC
and
$CONTINUEC
16.15.3.
$FORC
16.16. Conditional Compilation and End-of-File
16.17.
DCL
16.18.
$TYPEOF
16.19.
$CLASSOF
16.20.
$ISCONSTANT
16.21. Scanning Directives
16.22.
NEEDBODY
and
NEEDANYBODIES
16.23.
$compileTimeValue
16.24.
$def
17. Optimization and Checking
17.1. Optimization
17.1.1.
$compileTimeValue
("
OPTIMIZE
")
17.2. Checking
17.2.1.
$compileTimeValue
("
CHECKINGSTATUS
")
,
$compileTimeValue
("
LOCALCHECKINGSTATUS
")
, and
CHECKING
17.3. Arithmetic Checking
17.4. Uninitialized Variable Checking
17.5. When Checking May Fail to Raise an Exception
Tables for Chapter 17: Optimization and Checking
17–1. Effects of Optimization Directives outside Any PROCEDURE Body or Specified as a Compiler Subcommand
17–2. Effects of Optimization Directives inside a PROCEDURE p
17–3. Effects of Checking Directives outside Any PROCEDURE Body or Specified as a Compiler Subcommand
17–4. Effects of Checking Directives inside a PROCEDURE p
18.
SUPERCHECK
18.1. What
SUPERCHECK
Checks
18.1.1. Implementation Overview: Data Field References
18.1.2. Implementation Overview: Intermodule Calls
18.1.3. Implementation Overview:
$PROCVAR
Calls
18.2. Decreased Frequency of
POINTER
Rigging:
DELAYRIGPTRS
18.3. Effect of
SUPERCHECK
on Speed
18.4. Effect of
SUPERCHECK
on Size
19. Compiletime Execution of Arbitrary MAINSAIL Code:
$expr
,
$STMT
, and
$UNDCL
19.1.
$expr
19.2.
$STMT
19.3. Identifiers That May Be Accessed by
$expr
s and
$STMT
s
19.4.
$UNDCL
19.5. A Sophisticated Example of
$STMT
,
$expr
, and
$UNDCL
: Using the Contents of a File as the Initialization Specifiers in an
INIT
Statement
Examples for Chapter 19: Compiletime Execution of Arbitrary MAINSAIL Code:
$expr
,
$STMT
, and
$UNDCL
19–1. Initialization Specifiers from a File without the Use of an Auxiliary Temporary File
19–2. Initialization Specifiers from a File Using an Auxiliary Temporary File
20. Exceptions
20.1.
$HANDLE
Statement
20.2. Handling Exceptions
20.3. Propagating Exceptions
20.4. Information about the Current Exception
20.5. Nested Exceptions
20.5.1. Exceptions Raised While an Exception with
$cannotFallOut
Set Is Being Handled
20.6. Aborting
PROCEDURE
s
20.7. Exception Naming Conventions
20.8. Predefined Exceptions
20.8.1.
$abortProgramExcpt
and
$systemExcpt
20.9. Informational Exceptions
20.10.
errMsg
Response Abbreviations
20.10.1. Sample Use of Registered Exceptions
20.11. Visualizing Exceptions
Tables for Chapter 20: Exceptions
20–1. System PROCEDUREs, Variables, and Macros for Exceptions
Figures for Chapter 20: Exceptions
20–2. Stack Diagrams in the Absence of Exceptions and $HANDLE Statements
20–3. Depiction of a Handle Frame
20–4. An Exception Is Caught by the First Ready Handler down the Stack
20–5. An Exception is Propagated by a Call to $raise with No Arguments
20–6. Frames Invoked from a Handler
20–7. Exception Raised in a Handler
20–8. $abortProcedureExcpt is Raised in All Handle Frames in PROCEDUREs That Are Being Aborted
21. Coroutines
21.1. Coroutine Facilities
21.2. Coroutine Implementation
21.3. Coroutines and Exceptions
21.4. C Exceptions and MAINSAIL Coroutines
Tables for Chapter 21: Coroutines
21–1. System PROCEDUREs, Variables, and Macros for Coroutines
Examples for Chapter 21: Coroutines
21–2. Generator/Processor Coroutines
21–3. Coroutine Tree
22. Files
22.1. File Names
22.2. The
CLASS
es
file
,
textFile
, and
dataFile
22.3. Text Files
22.4. Data Files
22.5. Input and Output
22.6. Sequential and Random Access
22.7. End-of-File Positions
22.8. Opening a File
22.9. Closing a File
22.10. Terminal I/O and Primary Input and Output
22.11. Device
MODULE
s
22.12.
cmdFile
and
logFile
and MAINSAIL Standard Input and Output
22.13.
errorOK
and File I/O
22.14. End-of-Line Conventions
22.14.1.
CRLF
Device Prefix
22.14.2.
LF
Device Prefix
22.14.3. Changing the Default Text File Device Prefix
22.14.4. Converting
CRLF
Files to
LF
Files and Vice Versa
22.15.
cmdFile
and
logFile
Echoing
22.16. Caching of Files
22.16.1. Background: Buffered I/O
22.16.2. Introduction to the File Cache
22.16.3. File Cache
PROCEDURE
s
22.17. Disk I/O and the
BIGMSLBUFFERS
Environment Variable
22.18. Partial Data Reads
Tables for Chapter 22: Files
22–1. System PROCEDUREs for Files
Figures for Chapter 22: Files
22–2. File Name And Device Mapping
23. Intercepting Terminal I/O
23.1.
$ttyCls
and
$ttyMod
23.2. How to Write a
$ttyCls
MODULE
23.2.1. How to Write
$ttyCls
.
$ttyRead
23.2.2. How to Write
$ttyCls
.
$sttyWrite
and
$ttyCls
.
$ttycWrite
23.2.3. How to Set
$ttyCls
.
$ttyAttributes
23.3. Direct Terminal I/O
23.4. Sample Use of Terminal I/O Redirection and Direct Terminal I/O
Figures for Chapter 23: Intercepting Terminal I/O
23–1. Intmod with SCRIPTTTY Interface
23–2. SCRIPTTTY: $ttyCls MODULE That Maintains a Transcript
23–3. ST: Module That Uses SCRIPTTTY
24. Date and Time Facilities
24.1. Representation of Dates and Times
24.2. Information Required by MAINSAIL
24.3. GMT Conversions and
$timeSubcommandsSet
24.4. Conversion Caveats at the Start and End of Daylight Savings Time (or Other Adjusted Time)
24.5.
MAINEX
Time Subcommand Values Appropriate to the Forty-Eight Contiguous United States
Tables for Chapter 24: Date and Time Facilities
24–1. System PROCEDUREs and Macros for Date and Time
24–2. MAINEX Time Subcommand Values for the Contiguous United States
24–3. Subcommands Defining the Names of the Time Zones in the Forty-Eight Contiguous United States
24–4. Subcommands for the Eastern Time Zone: from the Atlantic Seaboard West through Michigan, Eastern Kentucky, Eastern Tennessee, Georgia, and Florida Exclusive of the Panhandle
24–5. Subcommands for Indiana except Parts of the Extreme West
24–6. Subcommands for the Central Time Zone: Wisconsin, Illinois, Parts of Extreme Western Indiana, Western Kentucky, Western Tennessee, Alabama, the Florida Panhandle, Mississippi, Louisiana, Arkansas, Missouri, Iowa, Minnesota, Eastern North Dakota, Eastern South Dakota, Eastern Nebraska, Kansas except Parts of the Extreme West, Oklahoma, and Texas except the Extreme West
24–7. Subcommands for the Mountain Time Zone: Western North Dakota, Western South Dakota, Western Nebraska, Parts of Extreme Western Kansas, Extreme Western Texas, New Mexico, Colorado, Wyoming, Montana, Southern Idaho, Parts of Extreme Eastern Oregon, and Utah
24–8. Subcommands for Arizona
24–9. Subcommands for the Pacific Time Zone: Northern Idaho, Washington, Oregon except Parts of the Extreme East, Nevada, and California
25. Areas
25.1. Examples and Motivation
25.2. Area Facilities
25.2.1. Allocation, Clearing, and Disposal
25.2.2. Specifying Memory Management Attributes of an Area
25.3. Inaccessible Areas
25.4. Anchored Areas
25.4.1. When to Use Anchored Areas
25.4.2. How to Anchor an Area
25.4.3. Compatibility of
$anchored
with Other Area Attributes
25.4.4. Preallocated Space for Areas
25.5. Area Caveats
Figures for Chapter 25: Areas
25–1. POINTER Assignment That Violates the Bits Specified in $newArea's attr Argument
25–2. Dangling POINTERs and STRINGs after an Area Is Disposed
26. Portable Data Format (PDF)
26.1. Introduction
26.2. PDF I/O
26.2.1. PDF I/O and
$storageUnit
/
$page
I/O
26.3. Opening a File for PDF I/O
26.4. Positions in a File Opened for PDF I/O
26.5.
$ioSize
26.6. PDF Example
Tables for Chapter 26: Portable Data Format (PDF)
26–1. Portable Data Format (PDF) Representation of Data
Figures for Chapter 26: Portable Data Format (PDF)
26–2. PDF Data Files vs. Host Data Files
26–4. How to Run FVIEW
Examples for Chapter 26: Portable Data Format (PDF)
26–3. Data-Format-Independent I/O
27. Potential Pitfalls in Moving a 32-Bit MAINSAIL Application to 64-Bit MAINSAIL
27.1. Constants
27.2. Alignment Gaps
27.3. Relationship between MAINSAIL and C Data Types
27.4. Assumption That
size
(
realCode
)
=
size
(
longBitsCode
))
27.5. Assumption That
size
(
longBitsCode
)
=
32
27.6. Data Files
27.7. FLI Parameter Data Types and C Data Type Macros
27.8. PDF
28. Generalized Parameter Files
28.1. The
v
1620
.
prm
File
28.2. Format of a Parameter File
28.3. Parameter Groups Used by XIDAK Software
28.3.1. The Group
$MAINEX
28.3.2. The Group
$COMPIL
28.3.3. The Group
$MAINEDIT
28.3.4. The Group
$MAINED
28.3.5. The Group
$MAINDEBUG
28.3.6. Sample Parameter File
28.4. How to Process Parameters in a Program
28.5. Recommendations for Use of Parameters
Figures for Chapter 28: Generalized Parameter Files
28–1. PROCEDUREs for Processing Parameters
29. Introduction to System
PROCEDURE
s, Macros, and Variables
29.1. System
PROCEDURE
s and Garbage Collection
29.2. The
$BUILTIN
PROCEDURE
Qualifier
29.3. The
SPECIAL
PROCEDURE
Qualifier
29.4. Area Facility Declarations
29.5. System Procedures, Variables, and Macros Summary
Tables for Chapter 29: Introduction to System
PROCEDURE
s, Macros, and Variables
29–1. System Procedures, Macros, and Variables Summary
30. System Identifiers Beginning with “A”
30.1.
$abortProcedureExcpt
30.2.
$abortProgramExcpt
30.3.
abs
30.4.
aCos
30.5.
$addDefinedTimeZone
30.6.
$addMemMngModule
30.7.
$addToDateAndTime
30.8.
$adrOfFirstElement
30.9.
$allYearDigits
30.10.
$almostOutOfMemoryExcpt
30.11.
aLoad
30.12.
alterOK
30.13.
$anchored
30.14.
append
30.15.
$applySearchPath
30.16.
$areaOf
30.17.
$arg
30.18.
$arithmeticExcpt
30.19.
aSin
30.20.
$assembleDate
30.21.
$assembleDateAndTime
30.22.
$assembleTime
30.23.
aTan
30.24.
$atan2
30.25.
$atLeastOneDigitAfterDot
30.26.
$attributes
Figures for Chapter 30: System Identifiers Beginning with “A”
30–1. $abortProcedureExcpt
30–2. $abortProgramExcpt
30–3. abs (GENERIC)
30–4. aCos (GENERIC)
30–5. $addDefinedTimeZone
30–6. $addMemMngModule
30–7. The CLASS $memMngModule
30–8. $addToDateAndTime
30–9. $adrOfFirstElement
30–10. $allYearDigits
30–11. $almostOutOfMemoryExcpt
30–12. alterOK
30–13. $anchored
30–14. append
30–15. $applySearchPath and $getSearchPath
30–16. $areaOf (GENERIC)
30–17. $arithmeticExcpt
30–18. aSin (GENERIC)
30–19. $assembleDate
30–20. $assembleDateAndTime
30–21. $assembleTime
30–22. aTan (GENERIC)
30–23. $atan2 (GENERIC)
30–24. What the Return Value from $atan2 Represents
30–25. $atLeastOneDigitAfterDot
30–26. $attributes
31. System Identifiers Beginning with “B”
31.1.
$baseType
31.2.
$bGet
31.3.
$bigEndian
31.4.
binary
31.5.
bind
31.5.1. Handling Errors from bind
31.6.
$bitsPerChar
31.7.
$bitsPerStorageUnit
31.8.
bLoad
31.9.
bMask
31.10.
$boGet
31.11.
boLoad
31.12.
break
31.13.
$briefFormat
31.14.
$bsFormat
Tables for Chapter 31: System Identifiers Beginning with “B”
31–5. Valid Bits for bind ctrlBits
Figures for Chapter 31: System Identifiers Beginning with “B”
31–1. $baseType
31–2. $bigEndian
31–3. binary
31–4. bind (GENERIC)
31–6. $bitsPerChar
31–7. $bitsPerStorageUnit
31–8. bMask
31–10. break
31–11. $briefFormat
31–12. $bsFormat
Examples for Chapter 31: System Identifiers Beginning with “B”
31–9. Use of bMask
32. System Identifiers Beginning with “C”
32.1.
$canFindModule
32.2.
$cannotFallOut
32.3.
$cannotReturn
32.4.
$canReclaimStrings
32.5.
$caseIndexExcpt
32.6.
$CDOUBLE
32.7.
ceiling
32.8.
$CFLOAT
32.9.
$changeAreaParms
32.10.
$CHAR
32.11.
$characterRead
32.12.
$characterWrite
32.13.
$CHARBITS
32.14.
$charSet
32.15.
$charsPerPage
32.16.
$charsPerStorageUnit
32.17.
$checkConsistency
32.18.
$CINT
32.19.
$CINTBITS
32.20.
$classDscrFor
32.21.
$classInfo
32.22.
$className
32.22.1.
$className
of a Data Section
32.23.
clear
32.24.
$clearArea
32.25.
$clearFileCache
32.26.
$cleartDelayPtrRigging
32.27.
$clearStrSpc
32.28.
cLoad
32.29.
$CLONG
32.30.
$CLONGBITS
32.31.
close
32.32.
$closedFile
32.33.
closeLibrary
32.34.
$clrConfigurationBit
32.35.
$clrSystemBit
32.36.
cmdFile
32.37.
$cmdFileEofExcpt
32.38.
cmdMatch
32.38.1. The Default Case (No Bits Set in
ctrlBits
)
32.38.2. Non-Default Cases (
ctrlBits
is Non-Zero)
32.38.3. Examples of
cmdMatch
32.38.4. The
upperCase
Bit to
cmdMatch
32.39.
$collect
32.40.
$collectableChkSpc
32.41.
$collectableStrSpc
32.42.
$collectLock
32.43.
$compactableChkSpc
32.44.
compare
32.45.
$compareIntmods
32.46.
$compareObjmods
32.47.
$compile
32.48.
$compileTimeValue
32.49.
$composeFileName
32.50.
$composePath
32.51.
$concat
32.52.
confirm
32.53.
$convertDateAndTime
32.54.
copy
32.55.
$copyDirectory
32.56.
$copyFile
32.57.
$copyStringToField
32.58.
$coroutineExcpt
32.59.
cos
32.60.
cosh
32.61.
$cot
32.62.
$cpuID
32.63.
$cpuTime
32.64.
$cpuTimeResolution
32.65.
$cr
32.66.
cRead
32.67.
create
32.68.
$createClassDscr
32.69.
$createCoroutine
32.70.
$createDirectory
32.71.
$createParameterizedRecord
32.72.
$createRecord
32.73.
$createUniqueFile
32.74.
$cScan
32.75.
$CSHORT
32.76.
$CSHORTBITS
32.77.
$cStr
32.78.
$CSTRUCT
32.79.
$currentDirectory
32.80.
cva
32.81.
cvAry
32.82.
cvb
32.83.
$cvbo
32.84.
cvc
32.85.
cvcs
32.86.
$cvFieldToString
32.87.
$cvFieldToStringInPlace
32.88.
cvi
32.89.
cvl
32.90.
cvlb
32.91.
cvli
32.92.
cvlr
32.93.
cvp
32.94.
cvr
32.95.
cvs
32.95.1. The
BOOLEAN
Form of
cvs
32.95.2. The
(
LONG
)
INTEGER
Forms of
cvs
32.95.3. The
(
LONG
)
REAL
Forms of
cvs
32.95.4. The
(
LONG
)
BITS
Forms of
cvs
32.95.5. The
STRING
Form of
cvs
32.96.
cvu
32.97.
cWrite
Figures for Chapter 32: System Identifiers Beginning with “C”
32–1. $canFindModule
32–2. $cannotFallOut
32–3. $cannotReturn
32–4. $canReclaimStrings
32–5. $caseIndexExcpt
32–6. ceiling (GENERIC)
32–8. $changeAreaParms
32–9. $characterRead
32–10. $characterWrite
32–11. $charSet
32–12. $charsPerPage
32–13. $charsPerStorageUnit
32–14. $checkConsistency
32–15. $classDscrFor
32–16. $classInfo
32–18. $className
32–20. clear (GENERIC)
32–22. $clearArea
32–23. $clearFileCache
32–24. $cleartDelayPtrRigging
32–25. $clearStrSpc
32–27. Effects of $clearArea and $clearStrSpc
32–28. cLoad
32–30. close
32–32. $closedFile
32–33. closeLibrary
32–35. $clrConfigurationBit
32–36. $clrSystemBit
32–37. cmdFile
32–38. $cmdFileEofExcpt
32–39. cmdMatch
32–40. $collect
32–41. $collectableChkSpc
32–42. $collectableStrSpc
32–43. $collectLock
32–44. $compactableChkSpc
32–45. compare
32–47. $compileTimeValue
32–48. $composeFileName
32–49. $composePath
32–50. $concat
32–51. confirm
32–52. $convertDateAndTime
32–53. copy (GENERIC)
32–55. $copyDirectory
32–56. $copyFile
32–57. $copyStringToField
32–58. $coroutineExcpt
32–59. cos (GENERIC)
32–60. cosh (GENERIC)
32–61. $cot (GENERIC)
32–62. $cpuID
32–63. $cpuTime
32–64. $cpuTimeResolution
32–65. $cr
32–66. cRead (GENERIC)
32–67. create
32–68. $createClassDscr
32–70. $createCoroutine
32–71. $createDirectory
32–72. $createParameterizedRecord
32–73. $createRecord
32–75. $createUniqueFile (GENERIC)
32–76. $cScan
32–77. $cStr
32–78. $currentDirectory (GENERIC)
32–79. cva (GENERIC)
32–81. cvAry (GENERIC)
32–82. cvb (GENERIC)
32–84. $cvbo
32–85. cvc (GENERIC)
32–87. cvcs
32–89. $cvFieldToString
32–90. $cvFieldToStringInPlace
32–91. cvi (GENERIC)
32–93. cvl (GENERIC)
32–95. cvlb (GENERIC)
32–98. cvli (GENERIC)
32–100. cvlr (GENERIC)
32–102. cvp (GENERIC)
32–104. cvr (GENERIC)
32–105. cvs (GENERIC)
32–109. cvu (GENERIC)
32–111. cWrite (GENERIC)
Examples for Chapter 32: System Identifiers Beginning with “C”
32–7. Use of ceiling
32–17. Use of $classInfo
32–19. Behavior of $className with Data Section Arguments
32–21. Use of clear for a Dynamic ARRAY
32–26. Use of $clearStrSpc
32–29. Use of cLoad
32–31. Use of close
32–34. Use of closeLibrary
32–46. Use of compare
32–54. Use of copy
32–69. Use of $createClassDscr
32–74. Use of $createRecord
32–80. Use of cva
32–83. Use of cvb
32–86. Use of cvc
32–88. Use of cvcs
32–92. Use of cvi
32–94. Use of cvl
32–96. Use of cvb
32–97. Use of cvlb
32–99. Use of cvli
32–101. Use of cvlr
32–103. Use of cvp
32–106. Use of (LONG) INTEGER Forms of cvs
32–107. Use of (LONG) REAL Forms of cvs
32–108. Use of (LONG) BITS Forms of cvs
32–110. Use of cvu
32–112. Use of the File and STRING Forms of cWrite
32–113. Use of the CHARADR Form of cWrite
33. System Identifiers Beginning with “D”
33.1.
$data
33.2.
$dataSecPart
33.3.
$date
33.4.
$dateAndTime
33.5.
$dateAndTimeCompare
33.6.
$dateAndTimeDifference
33.7.
$dateAndTimeToStr
33.8.
$dateFormat
33.9.
$dateToStr
33.10.
$debugExec
33.11.
$decomposeFileName
33.12.
$decomposePath
33.13.
$def
33.14.
$defaultArea
33.15.
delete
33.16.
$delete
33.17.
$deleteDirectory
33.18.
$deregisterException
33.19.
$descendantKilledExcpt
33.20.
$devModBrk
33.21.
$devModBrkStr
33.22.
$directory
33.22.1. Transforming a Directory Name into a Relative Path Name
33.23. Direct Terminal I/O Routines
33.24.
$disassembleDate
33.25.
$disassembleDateAndTime
33.26.
$disassembleTime
33.27.
discard
33.28.
displace
33.29.
displacement
33.30.
dispose
33.31.
$disposeArea
33.32.
$disposeDataSecsInArea
33.33.
$disposedDataSecExcpt
33.34.
$doNotAllocateInStaticPool
33.35.
$doNotClear
33.36.
$doNotIncludeTimeZone
33.37.
$doNotMatch
33.38.
$doNotRaise
33.39.
$dscrPtr
33.40.
DSP
33.41.
$dup
Figures for Chapter 33: System Identifiers Beginning with “D”
33–1. $data
33–2. $dataSecPart
33–3. $date
33–4. $dateAndTime
33–5. $dateAndTimeCompare
33–6. $dateAndTimeDifference
33–7. $dateAndTimeToStr
33–8. $dateFormat
33–9. $dateToStr
33–10. $decomposeFileName
33–11. $decomposePath
33–12. $defaultArea
33–13. delete
33–14. $delete
33–15. $deleteDirectory
33–16. $deregisterException
33–17. $descendantKilledExcpt
33–18. $devModBrk
33–19. $devModBrkStr
33–21. $directory (GENERIC)
33–22. Direct Terminal I/O Routines
33–23. $disassembleDate
33–24. $disassembleDateAndTime
33–25. $disassembleTime
33–26. discard
33–27. displace (GENERIC)
33–29. displacement (GENERIC)
33–31. dispose (GENERIC)
33–32. $disposeArea
33–33. $disposeDataSecsInArea
33–34. $disposedDataSecExcpt
33–35. $doNotAllocateInStaticPool
33–36. $doNotClear
33–37. $doNotIncludeTimeZone
33–38. $doNotMatch
33–39. $doNotRaise
33–40. $dscrPtr
33–41. $dup
Examples for Chapter 33: System Identifiers Beginning with “D”
33–20. Use of $devModBrkStr
33–28. Use of displace
33–30. Use of displacement
34. System Identifiers Beginning with “E”
34.1.
enterLogicalName
34.2.
eof
34.3.
eol
34.4.
eop
34.5.
equ
34.6.
errMsg
34.7.
errorOK
34.8.
$exceptionBits
34.9.
$exceptionCoroutine
34.10.
$exceptionName
34.11.
$exceptionPointerArg
34.12.
$exceptionStringArg1
34.13.
$exceptionStringArg2
34.14.
$excludeSeconds
34.15.
$executeIntlibCommands
34.16.
$executeMainpmCommands
34.17.
$executeModlibCommands
34.18.
$executeStampCommands
34.19.
exit
34.20.
$exitingMainsail
34.21.
exp
34.22.
$expandExpr
and
$expandMacro
34.23.
exponent
34.24.
$exponentExcpt
34.25.
$expr
Figures for Chapter 34: System Identifiers Beginning with “E”
34–1. enterLogicalName
34–2. eof
34–3. eol
34–4. eop
34–5. equ
34–7. errMsg
34–8. errorOK
34–9. $exceptionBits
34–10. $exceptionCoroutine
34–11. $exceptionName
34–12. $exceptionPointerArg
34–13. $exceptionStringArg1
34–14. $exceptionStringArg2
34–15. $excludeSeconds
34–16. exit
34–17. $exitingMainsail
34–18. exp (GENERIC)
34–19. exponent
34–20. $exponentExcpt
Examples for Chapter 34: System Identifiers Beginning with “E”
34–6. Use of equ
35. System Identifiers Beginning with “F”
35.1.
fastExit
35.2.
fatal
35.3.
$fieldInfo
35.4.
$fileInfo
35.5.
$findArea
35.6.
$findCoroutine
35.7.
first
35.8.
$findGroup
35.9.
fixed
35.10.
$fixFormat
35.11.
fldRead
35.12.
fldWrite
35.13.
floor
35.14.
$flush
35.15.
$formatAsParagraph
35.16.
formatted
35.17.
$formParagraph
35.18.
$fullPathNames
Figures for Chapter 35: System Identifiers Beginning with “F”
35–1. fastExit
35–2. fatal
35–3. $fieldInfo
35–4. $fileInfo (GENERIC) and $fileInfoCls
35–5. $findArea
35–6. $findCoroutine
35–7. first
35–9. fixed
35–10. $fixFormat
35–11. fldRead (GENERIC)
35–12. fldWrite (GENERIC)
35–14. floor (GENERIC)
35–16. Rounding Directions for (LONG) REAL to (LONG) INTEGER Conversion PROCEDUREs
35–17. $flush
35–18. $formatAsParagraph
35–19. formatted
35–20. $formParagraph
35–21. $fullPathNames
Examples for Chapter 35: System Identifiers Beginning with “F”
35–8. Use of first
35–13. Use of fldWrite
35–15. Use of floor
36. System Identifiers Beginning with “G”
36.1.
generateMultipleQuickSort
36.2.
generateQuickSort
36.3. The Get
PROCEDURE
s
36.4.
$getCommandLine
36.5.
$getDefinedTimeZones
36.6.
$getDSTEndRule
36.7.
$getDSTName
36.8.
$getDSTOffset
36.9.
$getDSTStartRule
36.10.
$getEofPos
36.11.
$getGMTOffset
36.12.
$getInArea
36.13.
getPos
36.14.
$getSearchPath
36.15.
$getStdName
36.16.
$getSubcommands
36.17.
$getToTop
36.18. The Global Symbol Table
PROCEDURE
s
36.18.1. General Global Symbol
PROCEDURE
s
36.18.2. Sample Use of Global Symbol
PROCEDURE
s
36.18.3.
STRING
Global Symbols
36.19.
$gmt
36.20.
$GMTtoLocalTime
36.21.
$gotValue
Figures for Chapter 36: System Identifiers Beginning with “G”
36–1. $boGet, $iGet, $liGet, $rGet, $lrGet, $bGet, $lbGet, and $sGet
36–2. $getCommandLine
36–3. $getDefinedTimeZones
36–4. $getDSTEndRule
36–5. $getDSTName
36–6. $getDSTOffset
36–7. $getDSTStartRule
36–8. $getEofPos
36–9. $getGMTOffset
36–10. $getInArea (GENERIC)
36–11. getPos
36–13. $getStdName
36–14. $getToTop
36–15. Global Symbol Table PROCEDUREs
36–16. STRING Global Symbol Table PROCEDUREs and the CLASS $stringGlobalSymbol
36–17. $gmt
36–18. $GMTtoLocalTime
36–19. $gotValue
Examples for Chapter 36: System Identifiers Beginning with “G”
36–12. Use of getPos
37. System Identifiers Beginning with “H”
37.1.
$hasFileVersions
37.2.
$hash
37.3.
hex
37.4.
$homeDirectory
37.5.
HSHMOD
PROCEDURE
s
37.6.
$hyphenateDate
Figures for Chapter 37: System Identifiers Beginning with “H”
37–1. $hasFileVersions
37–2. $hash
37–3. hex
37–4. $homeDirectory
37–5. $hyphenateDate
38. System Identifiers Beginning with “I”
38.1.
$iGet
38.2.
iLoad
38.3.
$inArea
38.4.
$includeDot
38.5.
$includeTimeZone
38.6.
$includeWeekday
38.7.
$initRand
38.8.
$initsRand
38.9.
input
38.10.
$insertLeft
38.11.
$insertRight
38.12.
$intmodInfo
38.13.
$intSize
38.14.
$invokeModule
38.15.
$ioSize
38.16.
isAlpha
38.17.
$isArray
38.18.
$isBound
38.19.
$isDirectory
38.20.
isLowerCase
38.21.
isNul
38.22.
$isNullRef
38.23.
$isParameterizedRecord
38.24.
isUpperCase
38.25.
$isBlankSpaceChar
Figures for Chapter 38: System Identifiers Beginning with “I”
38–1. $inArea
38–2. $includeDot
38–3. $includeTimeZone
38–4. $includeWeekday
38–5. input
38–6. $insertLeft
38–7. $insertRight
38–8. $intmodInfo
38–9. $intSize
38–10. $invokeModule
38–11. $ioSize
38–12. isAlpha
38–14. $isArray
38–15. $isBound
38–16. $isDirectory
38–17. isLowerCase
38–19. isNul
38–20. $isNullRef
38–21. $isParameterizedRecord
38–22. isUpperCase
38–24. $isBlankSpaceChar
Examples for Chapter 38: System Identifiers Beginning with “I”
38–13. Use of isAlpha
38–18. Use of isLowerCase
38–23. Use of isUpperCase
39. System Identifiers Beginning with “K”
39.1.
keepNul
39.1.1. A Note on the Treatment of Carriage Return
39.2.
$killCoroutine
39.3.
$killedCoroutine
Figures for Chapter 39: System Identifiers Beginning with “K”
39–1. keepNul
39–2. $killCoroutine (GENERIC)
39–3. $killedCoroutine
40. System Identifiers Beginning with “L”
40.1.
last
40.2.
$lastCommandLineArg
40.3.
$lbGet
40.4.
lbLoad
40.5.
lbMask
40.6.
$lbOnes
40.7.
lDisplacement
40.8.
$LDSP
40.9.
$leadingDigitBeforeDot
40.10.
length
40.11.
$length
40.12.
$lf
40.13.
$liGet
40.14.
liLoad
40.15.
ln
40.16. The Load
PROCEDURE
s
40.16.1. Sized Load
PROCEDURE
s
40.17.
$localTime
40.18.
$localTimeToGMT
40.19.
log
40.20.
$log2
40.21.
logFile
40.22.
$login
40.23.
$longSize
40.24.
lookUpLogicalName
40.25.
$lrGet
40.26.
lrLoad
40.27.
$lSize
40.28.
$lSizeInBits
Figures for Chapter 40: System Identifiers Beginning with “L”
40–1. last
40–3. $lastCommandLineArg
40–4. lbMask
40–5. $lbOnes
40–6. lDisplacement (GENERIC)
40–7. $leadingDigitBeforeDot
40–8. length
40–10. $length (GENERIC)
40–11. $lf
40–12. ln (GENERIC)
40–13. The Load PROCEDUREs
40–15. Sized Load PROCEDUREs
40–16. $localTime
40–17. $localTimeToGMT
40–18. log (GENERIC)
40–19. $log2
40–20. logFile
40–21. $login
40–22. $longSize
40–23. lookUpLogicalName
40–24. $lSize (GENERIC)
40–25. $lSizeInBits
Examples for Chapter 40: System Identifiers Beginning with “L”
40–2. Use of last
40–9. Use of length
40–14. Use of the Load PROCEDUREs
41. System Identifiers Beginning with “M”
41.1.
$mainsailExec
41.2.
$majorVersion
41.3.
$maxChar
41.4.
$maxInteger
41.5.
$maxLongInteger
41.6.
$maxLongReal
41.7.
$maxReal
41.8.
$maxStringLength
41.9.
$memoryManagementInfo
41.10.
$mergeArea
41.11.
$minFractionDigits
41.12.
$minInteger
41.13.
$minLongInteger
41.14.
$minLongReal
41.15.
$minReal
41.16.
$minorVersion
41.17.
$moduleInfo
41.18.
$moduleName
41.19.
$moveCoroutine
41.20.
msgMe
41.21.
msgMyCaller
41.22.
$mslParms
41.23.
$msStr
41.24.
$msStrInPlace
Figures for Chapter 41: System Identifiers Beginning with “M”
41–1. $majorVersion
41–2. $maxChar
41–3. $maxInteger
41–4. $maxLongInteger
41–5. $maxLongReal
41–6. $maxReal
41–7. $maxStringLength
41–8. $memoryManagementInfo
41–9. $mergeArea
41–10. $minFractionDigits
41–11. $minInteger
41–12. $minLongInteger
41–13. $minLongReal
41–14. $minReal
41–15. $minorVersion
41–16. $moduleInfo
41–18. $moduleName
41–19. $moveCoroutine (GENERIC)
41–20. msgMe
41–21. msgMyCaller
41–22. $msStr
41–23. $msStrInPlace
Examples for Chapter 41: System Identifiers Beginning with “M”
41–17. Use of $moduleInfo
42. System Identifiers Beginning with “N”
42.1.
new
42.1.1. Handling Errors from
new
42.2.
$newArea
42.3.
$newException
42.4.
newPage
42.5.
$newProcvar
42.6.
$newRecords
42.7.
newScratch
42.8.
$newScratchChars
42.9.
newString
42.10.
newUpperBound
42.11.
nextAlpha
42.12.
$nextCommandLineArg
42.13.
$nextLongReal
42.14.
$nextParm
42.15.
$nextReal
42.16.
$noCollectablePtrs
42.17.
$noCollectableStrs
42.18.
$noCompactablePtrs
42.19.
$noHandler
42.20.
$nonRecursive
42.21.
noResponse
42.22.
$noTranslate
42.23.
$nth
42.24.
$nulChar
42.25.
$nulcStr
42.26.
$nullArrayExcpt
42.27.
$nullCallExcpt
42.28.
$nullPointerExcpt
42.29.
$numArgs
Figures for Chapter 42: System Identifiers Beginning with “N”
42–1. new (GENERIC)
42–3. $newArea
42–4. $newException
42–5. newPage (GENERIC)
42–7. $newProcvar
42–8. $newRecords (GENERIC)
42–9. newScratch (GENERIC)
42–11. $newScratchChars (GENERIC)
42–12. newString
42–13. newUpperBound (GENERIC)
42–15. nextAlpha
42–17. $nextCommandLineArg
42–18. $nextLongReal
42–19. $nextReal
42–20. $noCollectablePtrs
42–21. $noCollectableStrs
42–22. $noCompactablePtrs
42–23. $noHandler
42–24. $nonRecursive
42–25. noResponse
42–26. $noTranslate
42–27. $nth
42–28. $nulChar
42–29. $nulcStr
42–30. $nullArrayExcpt
42–31. $nullCallExcpt
42–32. $nullPointerExcpt
Examples for Chapter 42: System Identifiers Beginning with “N”
42–2. Use of new
42–6. Use of newPage
42–10. Use of newScratch
42–14. Use of newUpperBound
42–16. Use of nextAlpha
43. System Identifiers Beginning with “O”
43.1.
octal
43.2.
$okToMixCoroutinesAndForeignCalls
43.3.
omit
43.4.
$omitDevModStr
43.5.
open
43.5.1. File Names
43.5.2.
openBits
43.5.3. Error Behavior
43.5.4.
saveUnexpandedFileNames
43.6.
openLibrary
43.7.
$outOfSpaceIoExcpt
43.8.
output
43.9.
$overheadPercentExitValue
and
$overheadTooHighExcpt
Tables for Chapter 43: System Identifiers Beginning with “O”
43–7. Possible First Lines of the msg Parameter to open When open Fails
Figures for Chapter 43: System Identifiers Beginning with “O”
43–1. octal
43–2. $okToMixCoroutinesAndForeignCalls
43–3. omit
43–4. $omitDevModStr
43–5. open (GENERIC)
43–8. openLibrary
43–9. $outOfSpaceIoExcpt
43–10. output
43–11. $overheadPercentExitValue
43–12. $overheadTooHighExcpt
Examples for Chapter 43: System Identifiers Beginning with “O”
43–6. Use of open
44. System Identifiers Beginning with “P”
44.1.
pageDispose
44.2.
$pageRead
44.3.
$pageSize
44.4.
$pageWrite
44.5. PDF Low-Level
PROCEDURE
s
44.6.
$pdf
44.7.
$platformNameAbbreviation
44.8.
$platformNameFull
44.9.
$platformNumber
44.10.
pLoad
44.11.
$preferredRadix
44.12.
prevAlpha
44.13.
$prevLongReal
44.14.
$prevReal
44.15.
$printingChar
44.16.
proceed
44.17.
$processorNameAbbreviation
44.18.
$processorNameFull
44.19.
$processorNumber
44.20.
$procvarName
44.21.
$programInterface
44.22.
$programName
44.23.
prompt
Figures for Chapter 44: System Identifiers Beginning with “P”
44–1. pageDispose (GENERIC)
44–2. $pageRead
44–3. $pageSize
44–4. $pageWrite
44–5. $pdf
44–6. $platformNameAbbreviation
44–7. $platformNameFull
44–8. $platformNumber
44–9. $preferredRadix
44–10. prevAlpha
44–12. $prevLongReal
44–13. $prevReal
44–14. $printingChar
44–15. proceed
44–16. $processorNameAbbreviation
44–17. $processorNameFull
44–18. $processorNumber
44–19. $procvarName
44–20. $programInterface
44–21. $programName
44–22. prompt
Examples for Chapter 44: System Identifiers Beginning with “P”
44–11. Use of prevAlpha
45. System Identifiers Beginning with “Q”
45.1.
$queryFileCacheParms
Figures for Chapter 45: System Identifiers Beginning with “Q”
45–1. $queryFileCacheParms
46. System Identifiers Beginning with “R”
46.1.
$raise
46.2.
$raiseReturn
46.3.
$rand
46.4.
random
46.5.
rcRead
46.6.
rcWrite
46.7.
read
46.8.
$readParms
46.9.
$reclaim
46.10.
$registerException
46.11.
relFileName
46.12.
relModName
46.13.
relPos
46.14.
$removeBits
46.15.
$removeBoolean
46.16.
$removeDateAndTime
46.17.
$removeInteger
46.18.
$removeLastWord
46.19.
$removeLeadingBlankSpace
46.20.
$removeMemMngModule
46.21.
$removeReal
46.22.
$removeTrailingBlankSpace
46.23.
$removeWord
46.24.
$rename
46.25.
$renameDirectory
46.26.
$reOpen
46.27.
$reportAllVersions
46.28.
reorder
46.29.
$resumeCoroutine
46.30.
retain
46.31.
$returnExcpt
46.32.
$returnIfNoHandler
46.33.
reverse
46.34.
$reverseDateAndMonth
46.35.
$rGet
46.36.
$rigDanglingPtrs
46.37.
$riggedAdrBits
,
$riggedCharadrBits
46.38.
rLoad
Tables for Chapter 46: System Identifiers Beginning with “R”
46–2. Predefined BITS Constants for $raise ctrlBits
Figures for Chapter 46: System Identifiers Beginning with “R”
46–1. $raise
46–3. $raiseReturn
46–4. random
46–5. rcRead
46–7. rcWrite
46–9. read (GENERIC)
46–11. $reclaim
46–12. $registerException
46–13. relFileName
46–15. relModName
46–16. relPos
46–18. $removeBits
46–19. $removeBoolean
46–20. $removeDateAndTime
46–21. $removeInteger
46–22. $removeLastWord
46–24. $removeLeadingBlankSpace
46–25. $removeMemMngModule
46–26. $removeReal
46–27. $removeLeadingBlankSpace
46–28. $removeWord
46–30. $rename
46–31. $renameDirectory
46–32. $reOpen
46–33. $reportAllVersions
46–34. $resumeCoroutine (GENERIC)
46–35. retain
46–36. $returnExcpt
46–37. $returnIfNoHandler
46–38. $reverseDateAndMonth
Examples for Chapter 46: System Identifiers Beginning with “R”
46–6. Use of rcRead
46–8. Use of rcWrite
46–10. Use of read
46–14. Use of relFileName
46–17. Use of relPos
46–23. Use of $removeLastWord
46–29. Use of $removeWord
47. System Identifiers Beginning with “S”
47.1.
$sArg
47.2.
scan
47.3.
scanRel
47.4.
scanSet
47.5.
$scanSet
47.6.
scratchDispose
47.7.
$searchCallChain
47.8.
$setCommandLine
47.9.
$setConfigurationBit
47.10.
$setCurrentDirectory
47.11.
$setDelayPtrRigging
47.12.
$setDSTEndRule
47.13.
$setDSTName
47.14.
$setDSTOffset
47.15.
$setDSTStartRule
47.16.
$setExitCode
47.17.
$setFileCacheParms
47.18.
setFileName
47.19.
$setGMTOffset
47.20.
setModName
47.21.
setPos
47.22.
$setSearchPath
47.23.
$setStdName
47.24.
$setSystemBit
47.25.
$setTheDate
47.26.
$sGet
47.27.
$shortSize
47.28.
sin
47.29.
$SIGNEDCHAR
47.30.
sinh
47.31.
size
47.32.
$sizeInBits
47.33.
$sizeOfField
47.34.
$sizeOfValue
47.35.
sLoad
47.36.
sort
47.37.
$sorted
47.38.
sqrt
47.39.
$sRand
47.40.
$stackOverflowExcpt
47.41.
$startMonitoring
47.42.
$startRigging
47.43.
$statisticsInfo
47.44.
$STMT
47.45.
$stopMonitoring
47.46.
$stopRigging
47.47.
$storageUnitRead
47.48.
$storageUnitWrite
47.49.
store
47.50.
$stringGlobalEnter
and
$stringGlobalLookup
47.51.
$stringTooLongExcpt
47.52.
$storeSized
47.53.
$strToDate
47.53.1.
twoDigitCutoffYear
47.54.
$strToDateAndTime
47.55.
$strToTime
47.56. Structure Blaster
PROCEDURE
s
47.57.
$subscriptExcpt
47.58.
$systemExcpt
47.59.
$systemNameAbbreviation
47.60.
$systemNameFull
47.61.
$systemNumber
Tables for Chapter 47: System Identifiers Beginning with “S”
47–11. Configuration Bit Identifiers
Figures for Chapter 47: System Identifiers Beginning with “S”
47–1. scan (GENERIC)
47–3. scanRel (GENERIC)
47–4. scanSet
47–6. $scanSet
47–7. scratchDispose (GENERIC)
47–8. $searchCallChain
47–9. $setCommandLine
47–10. $setConfigurationBit
47–12. $setCurrentDirectory
47–13. $setDelayPtrRigging
47–14. $setDSTEndRule
47–15. $setDSTName
47–16. $setDSTOffset
47–17. $setDSTStartRule
47–18. $setExitCode
47–19. $setFileCacheParms
47–20. setFileName
47–22. $setGMTOffset
47–23. setModName
47–25. setPos
47–26. $setSearchPath
47–27. $setStdName
47–28. $setSystemBit
47–29. $setTheDate
47–30. $shortSize
47–31. sin (GENERIC)
47–32. sinh (GENERIC)
47–33. size (GENERIC)
47–35. $sizeInBits
47–36. $sorted
47–37. sqrt (GENERIC)
47–38. $stackOverflowExcpt
47–39. $storageUnitRead
47–40. $storageUnitWrite
47–41. store (GENERIC)
47–42. $stringTooLongExcpt
47–43. $strToDate
47–44. $strToDateAndTime
47–45. $strToTime
47–46. $subscriptExcpt
47–47. $systemExcpt
47–48. $systemNameAbbreviation
47–49. $systemNameFull
47–50. $systemNumber
Examples for Chapter 47: System Identifiers Beginning with “S”
47–2. Use of scan
47–5. Use of scanSet
47–21. Use of setFileName
47–24. Use of setModName
47–34. Use of size
48. System Identifiers Beginning with “T”
48.1.
tab
48.2.
tan
48.3.
tanh
48.4.
$targetSystemBaseFileNameSuffix
48.5.
$text
48.6.
$thisCoroutine
48.7.
thisDataSection
48.8.
$thisFileName
48.9.
$time
48.10.
$timeDifference
48.11.
$timeFormat
48.12.
$timeout
48.13.
$timeSubcommandsSet
48.14.
$timeToStr
48.15.
$treatLikeNul
48.16.
truncate
48.17.
$truncateFile
48.18.
$tstConfigurationBit
48.19.
$tstSystemBit
48.20.
$ttyCls
48.21.
ttycWrite
48.22.
$ttyEofExcpt
48.23.
$ttyMod
48.24.
ttyRead
48.25.
ttyWrite
48.26.
$twelveHour
48.27.
$twoYearDigits
48.28.
$typeName
Figures for Chapter 48: System Identifiers Beginning with “T”
48–1. tab
48–2. tan (GENERIC)
48–3. tanh (GENERIC)
48–4. $targetSystemBaseFileNameSuffix (GENERIC)
48–5. $text
48–6. $thisCoroutine
48–7. thisDataSection
48–8. $time
48–9. $timeDifference
48–10. $timeFormat
48–11. $timeout
48–12. $timeSubcommandsSet
48–13. $timeToStr
48–15. $treatLikeNul
48–16. truncate (GENERIC)
48–18. $truncateFile
48–19. $tstConfigurationBit
48–20. $tstSystemBit
48–21. ttycWrite
48–22. $ttyEofExcpt
48–23. ttyRead
48–25. ttyWrite (GENERIC)
48–27. $twelveHour
48–28. $twoYearDigits
48–29. $typeName
Examples for Chapter 48: System Identifiers Beginning with “T”
48–14. Sample $timeToStr Output Formats
48–17. Use of truncate
48–24. Use of ttyRead
48–26. Use of ttyWrite
49. System Identifiers Beginning with “U”
49.1.
unBind
49.2.
$unboundModuleExcpt
49.3.
$unbuffered
49.4.
$UNDCL
49.5.
$uninitializedLocExcpt
49.6.
$uninitializedProdExcpt
49.7.
upperCase
49.8.
useKeyWord
49.9.
$useOriginalFileName
49.10.
$useProgramInterface
49.11.
$userID
49.12.
$usesEditWindow
Figures for Chapter 49: System Identifiers Beginning with “U”
49–1. unBind (GENERIC)
49–2. $unboundModuleExcpt
49–3. $unbuffered
49–4. $uninitializedLocExcpt
49–5. $uninitializedProdExcpt
49–6. upperCase
49–7. useKeyWord
49–8. $useOriginalFileName
49–9. $useProgramInterface
49–10. $userID
49–11. $usesEditWindow
50. System Identifiers Beginning with “V”
50.1.
$valueInfo
:
$fieldInfoExtended
,
$classInfoExtended
, and
$createClassDscrExtended
50.1.1.
$fieldInfoExtended
50.1.2.
$classInfoExtended
50.1.3.
$createClassDscrExtended
50.2.
$varFormat
Figures for Chapter 50: System Identifiers Beginning with “V”
50–1. $varFormat
51. System Identifiers Beginning with “W”
51.1.
warning
51.2.
write
51.3.
$writeCalls
Figures for Chapter 51: System Identifiers Beginning with “W”
51–1. warning
51–2. write (GENERIC)
51–4. $writeCalls
Examples for Chapter 51: System Identifiers Beginning with “W”
51–3. Use of write
51–5. Sample $writeCalls Output
Appendices for the MAINSAIL Language Manual
A. Type Codes
A.1. C Data Type Codes
Tables for Appendix A: Type Codes
A–1. Type Code Identifiers
B. Target Platform, Operating System, and Processors
Tables for Appendix B: Target Platform, Operating System, and Processors
B–1. Supported Target Platforms
B–2. Supported Target Systems
B–3. Supported Target Processors
C. Predefined Exception Names
Tables for Appendix C: Predefined Exception Names
C–1. Predefined Exceptions
D. Target System Attributes
E. Character Set Identifiers
Tables for Appendix E: Character Set Identifiers
E–1. Supported Character Sets
F. PDF Character Set Translation Tables
F.1. Translation between the ASCII and PDF Character Sets
F.2. Translation between the EBCDIC and PDF Character Sets
Tables for Appendix F: PDF Character Set Translation Tables
F–1. PDF to EBCDIC Character Set Translation Table
F–2. EBCDIC to PDF Character Set Translation Table
G. Reserved Identifiers
Tables for Appendix G: Reserved Identifiers
G–1. Reserved Identifiers
H. Predefined Non-Reserved Identifiers without Dollar Signs
Tables for Appendix H: Predefined Non-Reserved Identifiers without Dollar Signs
H–1. Non-Reserved Identifiers without Dollar Signs
I. Synonyms
Tables for Appendix I: Synonyms
I–1. MAINSAIL Synonyms
J. Restrictions
J.1. Portable Data Type Ranges and Data Structure Size Limits
J.2. Interface
PROCEDURE
s in a
MODULE
J.3. Local Variable Limitations
J.4.
STRING
Constants in a
MODULE
J.5. Size of a
PROCEDURE
J.6. Number of Cases in a
CASE
Statement
J.7. Uninitialized Variables
J.8.
INIT
Statements
J.9.
FOR
-Clause Limit Values
Tables for Appendix J: Restrictions
J–1. Portable Data Type Ranges and Data Structure Size Limits
K.
MODULE
s Shipped in a Standard System
Tables for Appendix K:
MODULE
s Shipped in a Standard System
K–1. Standard MAINSAIL System Objmods
K–2. Objmods Shipped in Runtime-Only MAINSAIL Systems
L. Predefined Data Type Macros
L.1. C Data Type Macros in FLI Parameter Declarations
MAINSAIL System-Specific User's Guides
1. System-Specific User's Guides
Tables for Chapter 1: System-Specific User's Guides
1–1. Supported Platforms
User's Guide for MAINSAIL on UNIX
1. Introduction
1.1. Version
1.2. UNIX Flavors and Shell Prompts
2. General Operation
2.1. Installation Assumptions
2.2. Invoking MAINSAIL
2.3. Default Objmod and Intmod Searchpaths and File Names
3. CONF, MAINSAIL Configurator
3.1.
UNIXBITS
3.1.1. Platform-Independent
UNIXBITS
Bit:
$useMalloc
3.2. Flavor-Specific CONF Commands
3.2.1.
MAXFOREIGNMEMORYSIZE
3.2.2.
FOREIGNSTACKSIZE
3.3. OS Memory Pool
3.4. General Use
3.5. Memory Fragmentation Problems on
SUN4
,
SOLRS
, and
PSOLRS
and in Any Program That Calls Foreign Language Code: Use Large
MINSIZETOALLOCATE
If Allocating Large Dynamic Objects
4. MAINSAIL and the UNIX File System
4.1. UNIX Shell Variables in File Names
4.2. File Deletion
4.3. MAINEDIT and Links
4.4. Protection Mode of Files
4.5. Disk Full
4.6. Removing NFS Automounter File Name Prefix That Can Make Full Path Names Invalid
4.7. Limit on Number of Open Files
5. UNIX STREAMS
5.1. Patches Required to Avoid
$readStream
Timeout on
SOLRS
6. System Information
PROCEDURE
s
6.1.
$currentDirectory
6.2.
$homeDirectory
6.3.
$directory
(for UNIX Disk Files)
6.4. Command Line and
$programName
6.5.
$fileInfo
(for UNIX Disk Files)
6.6.
$composeFileName
Examples
6.7.
$composePath
Examples
6.8.
$decomposePath
6.9.
$decomposeFileName
6.10.
$userID
6.11.
$cpuID
6.12. Exit Codes
6.13.
$lookupEnvironmentVar
and
$getEnvironmentVars
6.14.
$environment
7. UNIX Shared Mapped Library and Kernel Support
7.1. Systems Where Mapping Is Automatic
7.2. Systems Where Mapping Is Not Automatic:
HPPA
,
HPPA64
, and
RAIX
before OS Version 3.2
7.3. Running
SHMCTL
7.4. Disabling Automatic Mapping
7.5. Caveats
Examples for Chapter 7: UNIX Shared Mapped Library and Kernel Support
7–1. Example Use of SHMCTL on HPPA
8. UNIX Signals
8.1. Signals Handled by MAINSAIL
8.2. UNIX Signals MAINSAIL Depends On
8.3. UNIX Signals MAINPM Uses for PC Monitoring
8.4. System Calls to Use to Establish Signal Handlers
9. MAINPM PC Monitoring
10. Foreign Language Interface
10.1. FLI Compilers
10.2. Data Types
10.2.1. MAINSAIL and C Arrays
10.3. Caveat: Beware of Overwriting Data
10.4. ANSI C FLI Caveat
10.5. MAINSAIL Foreign Call Compiler Example
10.6. MAINSAIL Entry Compiler Example
10.7. Entry FLI Example When Foreign Code Starts Execution
10.8. Caveat: Use of
gets
or
fgets
on
stdin
on UNIX
10.9. Linking X Code with MAINSAIL
10.9.1. Changes to C Code
10.9.2. Building a MAINSAIL Bootstrap That Calls X Routines from MAINSAIL
10.9.2.1. Setup of X/Motif Libraries on
HPPA64
10.9.2.2. X/Motif on Linux
10.10. Passing Command Line Arguments from C to MAINSAIL When Foreign Code Starts Execution: UNIX-Specific Function
xiSetArgvForMainsail
Tables for Chapter 10: Foreign Language Interface
10–1. MAINSAIL and C Parameter Data Types
Figures for Chapter 10: Foreign Language Interface
10–2. MAINSAIL and C Arrays in a CLASS/struct
10–3. MAINSAIL MODULE CALLC That Calls C Procedure proc1
10–4. C Procedure proc1
10–5. MAINSAIL Foreign Language Interface MODULE MSTOC
10–7. C Procedure That Calls MAINSAIL PROCEDURE proc1
10–8. MAINSAIL MODULE MSMOD Called by C Procedure callms
10–9. MAINSAIL Foreign Language Interface MODULE MSTOC
10–10. MAINSAIL MODULE CALLC That Calls C Procedure callms
10–12. C Program with Function main That Calls MAINSAIL PROCEDURE proc1
Examples for Chapter 10: Foreign Language Interface
10–6. MAINSAIL to C Example
10–11. C to MAINSAIL Example
10–13. C to MAINSAIL Example When Foreign Code Starts Execution
11. IA-64-Dependent Information
11.1. Procedure Size
11.2. Data Types
11.3. Miscellaneous Information
12. RISC System/6000 Processor-Dependent Information
12.1. Procedure Size
12.2. Data Types
12.3. Miscellaneous Information
13. HP PA-RISC-Dependent Information
13.1. Procedure Size
13.2. Data Types
13.3. Miscellaneous Information
14. HP PA-RISC (64-Bit
14.1. Procedure Size
14.2. Data Types
14.3. Miscellaneous Information
15. Intel Pentium Processor-Dependent Information
15.1. Procedure Size
15.2. Data Types
15.3. Miscellaneous Information
16. Purify-Compatible SPARC Processor-Dependent Information
16.1. Procedure Size
16.2. Data Types
16.3. Miscellaneous Information
17. SPARC Processor-Dependent Information
17.1. Procedure Size
17.2. Data Types
17.3. Miscellaneous Information
Appendices for the User's Guide for MAINSAIL on UNIX
A. Flavor-Dependent Features of UNIX MAINSAIL
A.1. Object
MODULE
File Name Extensions for Available UNIX Flavors
A.2. FLI Considerations for Available UNIX Flavors
A.2.1. MAINSAIL FLI Considerations Specific to IBM's AIX on IBM RISC System/6000
A.3. Program Exceptions
A.3.1. Stack Overflow
A.3.2. UNIX Signals
A.3.3.
BIGSUN
and
mainsab
A.4. Terminal Handling
A.4.1. BSD Systems
A.4.2. System V Systems
A.4.3.
ioctl
from Programs
A.5. MAINSAIL and Purify
A.5.1. Bootstrap-Building Instructions on
PSOLRS
When Running under Purify 4.2
A.6. Using MAINSAIL under ClearCase on
RAIX
A.7. Note on Linux Operating System Versions
Tables for Appendix A: Flavor-Dependent Features of UNIX MAINSAIL
A–1. UNIX Intmod and Objmod File Name Prefixes
A–2. Flavor-Dependent FLI Characteristics
A–3. Standard UNIX Signals Caught by MAINSAIL
A–4. BSD and System V UNIX Flavors
B. Flavor-Dependent Configuration on UNIX
B.1. Standard Configuration Files for Available UNIX Flavors
B.2.
CONF
's
STACKSIZE
Parameter on 64-Bit Platforms
B.3. Producing a Bootstrap on Each Flavor of UNIX
B.3.1. Allocating Memory on the
HPPA
Using
mmap
B.3.1.1. Using
-
N
and
chatr
to Allow a MAINSAIL Bootstrap to Allocate More Than 1 Gb of Contiguous Memory
B.3.1.2. Memory Allocated Automatically by
mmap
and
MAXFOREIGNMEMORYSIZE
B.3.2. Compiling C Code Linked with a MAINSAIL Bootstrap on the
HPPA
B.3.3. Compiling C Code Linked with a MAINSAIL Bootstrap on the
HPPA64
B.3.4. Making a Bootstrap on the
RAIX
Platform
B.3.4.1. Memory Allocation Considerations on
RAIX
B.3.4.1.1.
sbrk
,
malloc
, and Shared Memory Routines
B.3.4.1.2. The
MAXFOREIGNMEMORYSIZE
CONF
Parameter
B.3.4.2. Bootstrap-Building Commands on AIX OS Version 4.1 and Subsequent Versions of the Operating System
B.3.5. Making a Bootstrap on Other Flavors of UNIX
Tables for Appendix B: Flavor-Dependent Configuration on UNIX
B–1. Standard UNIX Configuration File Names
Examples for Appendix B: Flavor-Dependent Configuration on UNIX
B–2. Making a Bootstrap for the HPPA Platform
B–3. Making a Bootstrap for the HPPA64 Platform
B–4. Making a Bootstrap for the LINIA64 Platform
B–5. Making a Bootstrap for the LINPN Platform
B–6. Making a Bootstrap for the PSOLRS Platform
B–7. Making a Bootstrap for the SOLRS Platform
B–8. Making a Bootstrap for the SUN4 Platform
C. Linking MAINSAIL Bootstraps with UNIX Shared C Libraries
C.1. Linking a Static Bootstrap with a Shared C Library
Examples for Appendix C: Linking MAINSAIL Bootstraps with UNIX Shared C Libraries
C–1. Commands to Link with a Shared Library on HPPA
C–2. Commands to Link with a Shared Library on HPPA64
C–3. Commands to Link with a Shared Library on LINPN
C–4. Commands to Link with a Shared Library on RAIX
C–5. Commands to Link with a Shared Library on SOLRS or PSOLRS
C–6. Commands to Link with a Shared Library on SUN4
D. Putting
CONF
and FLI Compiler Output into a Shared Library
Examples for Appendix D: Putting
CONF
and FLI Compiler Output into a Shared Library
D–1. Commands to Put CONF and FLI Output into a Shared Library on SOLRS
User's Guide for MAINSAIL on Microsoft's Windows on Pentium
1. Introduction
1.1. Version
2. General Operation
2.1. Installation Assumptions
2.2. Invoking MAINSAIL
2.3. Default Objmod and Intmod Searchpaths and File Names
3.
CONF
, MAINSAIL Bootstrap Configurator
3.1.
STACKSIZE
on
NTPNT
3.2.
NTPNT
-Specific
CONF
Commands
3.2.1.
INITIALWORKINGDIR
s
3.2.2.
VIRTUALALLOCMEMSIZE
li
3.2.3.
WIN32BITS
b
3.3. Linking a Bootstrap for
NTPNT
3.3.1. Linking a Bootstrap
3.3.1.1. Restriction: Bootstrap-Making Command Files and Environment Variables
4. File System
4.1. End-of-Line Conventions
4.1.1.
CRLF
>
Device Prefix
4.1.2.
LF
>
Device Prefix
4.1.3. Changing the Default Text File Device Prefix
4.1.4. Converting
CRLF
Files to
LF
Files and Vice Versa
4.2. Environment Variables and File Names
4.3. File Names Containing Colons and
SEARCHPATH
*
*
...
4.4. Simultaneous Opens of the Same File
4.5. File Security Attributes
5. System Information
PROCEDURE
s
5.1.
$currentDirectory
5.2.
$setCurrentDirectory
5.3.
$homeDirectory
5.4.
$getCommandLine
5.5.
$programName
5.6.
$directory
5.7.
$fileInfo
5.8.
$composeFileName
Examples
5.9. $composePath Examples
5.10.
$decomposePathName
5.11.
$decomposeFileName
5.12.
$userID
5.13.
$cpuID
5.14. Exit Codes
5.15.
$truncateFile
5.16. Environment Variable
PROCEDURE
s
6.
NTPNT
Shared Mapped Library and Kernel Support
7. Resetting MAINSAIL OS Exception Handlers to Default State on
NTPNT
Figures for Chapter 7: Resetting MAINSAIL OS Exception Handlers to Default State on
NTPNT
7–1. $reinstateMslOsdExcptHandlers
8. Intel Pentium Processor-Dependent Information
8.1. Procedure Size
8.2. Data Types
8.3. Miscellaneous Information
9. Foreign Language Interface
9.1. FLI Compilers
9.2. Data Types
9.2.1. MAINSAIL and C Arrays
9.3. Caveat
9.4. MAINSAIL Foreign Call Compiler Example
9.5. MAINSAIL Entry Compiler Example
9.6. Additional FLI Considerations
9.6.1. Default Foreign Labels and Label Prefixes
Figures for Chapter 9: Foreign Language Interface
9–1. MAINSAIL MODULE CALLC That Calls C Procedure proc1
9–2. C Procedure proc1
9–3. MAINSAIL Foreign Language Interface MODULE MSTOC
9–4. C Procedure That Calls MAINSAIL PROCEDURE proc1
9–5. MAINSAIL MODULE MSMOD Called by C Procedure callms
9–6. MAINSAIL Foreign Language Interface MODULE MSTOC
9–7. MAINSAIL MODULE CALLC That Calls C Procedure callms
10. Linking Entry FLI Output into a DLL
10.1. DLL Examples
10.1.1. Console-Single Configuration
10.1.2. Graphical-Single Configuration
10.1.3. Console-DLL Configuration
10.1.4. Graphical-DLL Configuration
Examples for Chapter 10: Linking Entry FLI Output into a DLL
10–1. Source for mecm.c
10–2. Source for mec.msl
11. Miscellaneous
11.1. MAINPM PC Monitoring
11.2. Treatment of
CTRL
-
C
11.3. Procedure Stack Overflow
11.4. Treatment of Operating System Exceptions
MAINSAIL Compiler User's Guide
1. Introduction
1.1. Version
2. Invoking the MAINSAIL Compiler
Tables for Chapter 2: Invoking the MAINSAIL Compiler
2–1. Compiler Commands
3. Incremental Recompilation
4. Compiler Subcommands
4.1. Subcommands in Parameters File
4.2.
ABORT
4.3.
ACHECK
/
NOACHECK
,
ACHECKALL
/
NOACHECKALL
4.4.
ALIST
/
NOALIST
4.5.
BROWSE
/
NOBROWSE
4.6.
CHECK
/
NOCHECK
,
CHECKALL
/
NOCHECKALL
4.7.
CMDLINE
s
4.8.
DATETIMECHECK
/
NODATETIMECHECK
4.9.
DEBUG
/
NODEBUG
4.10.
FLDXREF
/
FLDXREF
f
/
NOFLDXREF
4.11.
FLI
s
4.12.
GENCODE
/
NOGENCODE
4.13.
GENINLINES
/
NOGENINLINES
4.14.
INCREMENTAL
/
NOINCREMENTAL
4.15.
ININTLIB
f
/
NOININTLIB
4.16.
INOBJFILE
f
4.17.
INOBJLIB
f
/
NOINOBJLIB
4.18.
ITFXREF
/
ITFXREF
f
/
NOITFXREF
4.19.
LIBRARY
f
/
NOLIBRARY
4.20.
LOG
/
NOLOG
4.21.
MODTIME
4.22.
MONITOR
/
NOMONITOR
4.23.
OPTIMIZE
/
NOOPTIMIZE
,
OPTIMIZE
procedure
i
/
NOOPTIMZE
procedure
i
, and
OPTIMIZEALL
/
NOOPTIMIZEALL
4.24.
OUTINTFILE
f
4.25.
OUTINTLIB
f
/
NOOUTINTLIB
4.26.
OUTOBJFILE
f
4.26.1.
OUTOBJFILE
Command Can Specify RPC Output File Names
4.27.
OUTOBJLIB
f
/
NOOUTOBJLIB
4.28.
OUTPUT
/
OUTPUT
f
/
NOOUTPUT
4.29.
PERMOD
4.30.
PERPROC
4.31.
PERSTMT
4.32.
PLIST
/
PLIST
f
/
NOPLIST
4.33.
PROCCALLS
/
PROCCALLS
f
/
NOPROCCALLS
4.33.1. Header Page
4.33.2.
CLASS
Page
4.33.3. Call Page
4.33.4. Example
4.34.
PROCS
/
NOPROCS
4.35.
PROCTIME
4.36.
RECOMPILE
procedure
1
procedure
2
...
procedure
n
4.37.
REDEFINE
id
def
/
NOREDEFINE
/
NOREDEFINE
def
i
4.38.
RESPONSE
/
NORESPONSE
4.39.
SAVEON
/
SAVEON
f
/
NOSAVEON
4.40.
SLIST
/
SLIST
f
/
NOSLIST
4.41.
STRICTCLASSES
/
NOSTRICTCLASSES
4.42.
SUBCOMMAND
s
4.43.
TARGET
s
/
NOTARGET
4.44.
UCHECK
/
NOUCHECK
4.44.1.
UCHECK
Details
4.45.
UNBOUND
/
NOUNBOUND
4.46.
#
s
Tables for Chapter 4: Compiler Subcommands
4–1. MAINSAIL Compiler Subcommands
4–3. The Format of Arguments to the Compiler FLI Subcommand
Figures for Chapter 4: Compiler Subcommands
4–2. FLDXREF Sample Output
4–4. ITFXREF Sample Output
5.
DISASM
, the MAINSAIL Disassembler
5.1. Using
DISASM
to Find the Source Code Corresponding to a Position in a Non-Debuggable
MODULE
6.
XRFMRG
, the Interface Cross-Reference Merger
7. The Foreign Language Interface
7.1. Introduction
7.2. Foreign Call Compiler
7.3. Foreign Call Compiler Example
7.4. MAINSAIL Entry Compiler
7.5. MAINSAIL Entry Compiler Example
7.6. Foreign Labels and the
ENCODE
Directive
7.7. Matching Parameters
7.8. MAINSAIL Language and Runtime System Features to Support Foreign Language Data Access
7.8.1. Foreign Data Access System
PROCEDURE
s
7.9. C Function for Accessing MAINSAIL Arrays:
xiAdrOfFirstElement
7.10. Foreign Data Structure Example
7.11. Foreign Code and Garbage Collection
7.12. Foreign Code and Exceptions
7.12.1. C Exceptions and MAINSAIL Coroutines
7.13. FLI
MODULE
and
PROCEDURE
Name Restrictions
7.14. FLI Parameter Restrictions
Figures for Chapter 7: The Foreign Language Interface
7–1. Interfacing MAINSAIL to Other Languages
8. Arguments on the Command Line
9. Invoking the Compiler from a Program
Figures for Chapter 9: Invoking the Compiler from a Program
9–1. $compile
MAINDEBUG User's Guide
1. Introduction
1.1. Version
2. General Operation
2.1. Compilation
2.2. Invocation
2.2.1. Setting Debugger Options in the Parameter File
2.2.2. Typical Ways to Start a Debugging Session
2.2.3. Forcing a MAINSAIL Bootstrap to Start in the Debugger
2.3. Finding Intmods
2.4. Context
2.5. Positions and iUnits
2.6. Breakpoints and Single Stepping
2.7. Command Interface
2.7.1. Line-Oriented Command Interface
2.7.2. Display-Oriented Command Interface
2.8. Command Syntax
2.8.1. Command Arguments
2.8.2. Direct Arguments
2.8.3. Indirect Arguments
2.9. Miscellaneous
3. General Commands
3.1. Changing to/from Display-Oriented Interface:
{-}
@
3.2. Quitting:
Q
3.3. Quitting Unconditionally:
+
Q
3.4. Counts:
{
n
}
3.5. Help:
?
3.6. Defining Macros:
/
c
s
/
3.7. Invoking Macros:
{
n
}{-}=
c
4. Debugging Commands
4.1. Most Recently Used Field Bases:
$p1
and
$p2
4.2. Displaying
ARRAY
Slices:
A
ary
{,
l1
,
u1
{,
l2
,
u2
{,
l3
,
u3
}}}
4.2.1.
ARRAY
Display Example
4.3. Setting Breakpoints:
{+}
B
{[
condition
]}{:
commands
}
4.3.1. Where Breakpoints May Be Set
4.3.2. Setting a Breakpoint in a Specific
MODULE
Instance or Coroutine
4.4. Setting a Breakpoint at a Specified
PROCEDURE
:
{+}
B
@
4.5. Setting a Breakpoint at a Specified iUnit:
{+}
B
@
4.6. Continuing:
{
n
}{.{
i
}}
C
4.7. Declaring Debugger Variables:
.
D
d
1
;...;
d
n
{
END
}
4.8. Going to the Declaration of an Identifier:
!
D
identifier
4.9. Executing
MODULE
s:
{-}
E
{
moduleOrFileName
}{
arguments
}
4.10. Displaying Individual Fields of Unclassified
POINTER
s:
.
F
p
,
f
1
,
f
2
,...
4.11. Displaying Hexadecimal Values:
H
{
expression
1
,
...,
expression
n
}
4.12. Displaying Hexadecimal Field Values:
.
H
{
p
1
,
...,
p
n
}
4.13. Information:
I
4.14. Brief Information:
1I
4.15. Displaying the Synthesized Declaration of an Identifier:
{+}.
I
identifier
4.16. Jumping into
PROCEDURE
s:
{
n
}
J
4.17. Count Breaks:
K
n
4.17.1.
K
Command Arguments Starting with
+
4.18. Removing a Count Break:
-
K
4.19. Setting Context to Current Breakpoint:
M
4.20. Setting Context to a
MODULE
:
M
s
4.21. Setting Context to a Particular
MODULE
Instance:
.
M
p
4.22. Releasing a
MODULE
:
-
M
m
4.23. Walking the Call Stack:
{
n
}{-}
N
4.24. Walking the Exception Stack:
{
n
}{-}.
N
4.25. Setting Context to Current Breakpoint:
+
N
4.26. Setting Cursor to Current Command Context:
!
N
4.27. Setting the Current iUnit:
O
n
4.28. Opening a Coroutine:
OC
s
4.29. Opening a
PROCEDURE
Frame:
OF
a
4.30. Opening an Intmod Library:
OI
s
4.31. Opening an Objmod Library:
OL
s
4.32. Debugger Options:
{-}
OP
s
4.32.1.
recursiveDebug
and
nonRecursiveDebug
Modes
4.32.2.
breakForWatchExprsAtStmts
Mode
4.32.3. Setting Initial Values for Options in Your Parameter File
4.33. Removing a Breakpoint:
R
4.34. Removing Breakpoints at a Specified
PROCEDURE
:
R
@
{
module
.}
procedure
4.35. Removing Breakpoints at Specified iUnits:
R
@
module
1
.
iUnit
1
,
...,
module
n
.
iUnit
n
4.36. Removing All Breakpoints:
R
@
@
4.37. Remote Debugging: Tracking Bugs That Go Away When You Use the Debugger with
+
R
{
program
}
,
+!
R
host
{
program
}
4.37.1. Preparation for Remote Debugging
4.37.1.1. Changing the Default Terminal Emulator Program
4.37.2. Remote Debugging Commands
4.38. Stepping into
PROCEDURE
s:
{
n
}
S
4.39. Show Contents of Current
PROCEDURE
Stack Frame (Show All Local Variables of Current
PROCEDURE
):
.
SF
4.40. Show Contents of All
PROCEDURE
Stack Frames (Show Local Variables of All
PROCEDURE
s):
.
SS
{
s
}
4.41. Setting Temporary Breakpoints:
{+}
T
{[
condition
]}{:
command
}
4.42. Setting a Temporary Breakpoint at a Specified
PROCEDURE
:
{+}
T
@
4.43. Setting a Temporary Breakpoint at a Specified iUnit:
{+}
T
@
4.44. Tracing
PROCEDURE
Calls:
!
T
{
fileName
}
4.45. Displaying Values:
V
expression
1
,
...,
expression
n
4.46. Displaying Fields:
.
V
{
p
1
,
...,
p
n
}
4.47. Watching Variables:
+
W
expression
4.47.1. Specifying the Watched Expression
4.47.1.1. The Default for Watched Expressions Specified When the Debugger Context Includes a Data Section and
PROCEDURE
4.47.1.2. The Default for Watched Expressions Specified When the Debugger Context Includes a
MODULE
But No Data Section and
PROCEDURE
4.47.1.3. Overriding the Defaults: Bracketed Watch Expression Specifiers in Watched Expressions
4.47.2. Watched Expressions and Multiple Coroutines
4.47.3. When the Debugger Considers Two Watch Expressions to be the Same
4.48. Breaking When a Value Changes:
+
W
:
C
expression
,
+
W
:
Z
expression
,
+
W
:
N
expression
4.48.1.
+
W
:
C
expression
4.48.2.
+
W
:
Z
expression
4.48.3.
+
W
:
N
expression
4.48.4. Changing the Break Condition Associated with a Watch Expression
4.49. Stop Watching Variables:
-
W
n
1
,
n
2
,...
4.50. Stop Watching All Variables:
-!
W
4.51. Examining Memory:
{+}
XM
expression
{,
type
1
,
type
2
,...}
4.52. Executing Statements:
XS
s
1
;...;
s
n
{
END
}
Tables for Chapter 4: Debugging Commands
4–5. XM Subcommands
Examples for Chapter 4: Debugging Commands
4–1. Uses of the A Command
4–2. Uses of the B Command
4–3. Uses of the .D Command
4–4. Use of the E Command
4–6. Use of the XS Command
5. Editing Commands
5.1. Moving Down:
{
n
}
D
5.2. Setting File Context:
F
s
5.3. Moving to Page and Line:
{
p
}{.
n
}
G
,
+{
n
}
G
, and
-{
n
}
G
5.4. Listing Lines:
{-}{
n
}
L
5.5. Moving to a File Position:
P
n
5.6. Moving Up:
{
n
}
U
5.7. Displaying a Window of Lines:
{
n
}
W
5.8. Moving Left:
{
n
}<
5.9. Moving Left by Words:
{
n
}(
5.10. Moving Right:
{
n
}>
5.11. Moving Right by Words:
{
n
})
5.12. Searching for a Character:
{
n
}{-}'
c
5.13. Searching for a
STRING
:
{
n
}{-}
"
{
s
"
}
6. Rigging
POINTER
s and
STRING
s
6.1. Introduction to Rigging
6.2.
$startRigging
and
$stopRigging
6.3. Rigging Is Slow
6.4. What Happens When a Rigged
POINTER
or
STRING
Is Used
6.5. Changing the Default Bit Patterns for Rigged
POINTER
s and
STRING
s
6.6. Figuring Out Where the Rigged
POINTER
or
STRING
Was Disposed
6.6.1. Debugger's
+
W
:
C
Command and
POINTER
Rigging
Figures for Chapter 6: Rigging
POINTER
s and
STRING
s
6–1. Program to Test for Valid Memory Addresses
7. Debugger Initialization
8. Line-Oriented Interface Sample Session
Examples for Chapter 8: Line-Oriented Interface Sample Session
8–1. Compiling the MODULE SAMPLE with the DEBUG Option
8–2. Debugging the MODULE SAMPLE
8–3. Using the D and B Commands
8–4. Using the E Command
8–5. Hitting the Breakpoint
8–6. Single Stepping
8–7. Single Stepping and Examining Variables
8–8. Continuing and Quitting
8–9. Line-Interface MAINDEBUG Session
9. Display-Oriented Interface Sample Session
Examples for Chapter 9: Display-Oriented Interface Sample Session
9–1. A Buffer Named FOO
9–2. The Debugger, Starting Up
9–3. The Debugger Prompt for the M Command
9–4. The Screen after the QY Command
9–5. After Giving the M SAMPLE Command
9–6. Positioned to the Breakpoint Place
9–7. The Break Is Set
9–8. After the Debugger's E Command
9–9. Invoking SAMPLE
9–10. At the First Breakpoint
9–11. At the Start of the WHILE-Clause
9–12. The Value of One Variable
9–13. The Values of Several Variables
9–14. After Scrolling Back through CMDLOG
9–15. After the Debugger's C Command
9–16. Exiting from SAMPLE
9–17. Returning to the Debugger
9–18. After Exiting from the Debugger
10. $debugExec
Figures for Chapter 10: $debugExec
10–1. $debugExec
Appendices for the MAINDEBUG User's Guide
A. Debugger Restriction
B. The
MODULE
SAMPLE
C. Command Summary
C.1. General Command Summary
C.2. Debugging Command Summary
C.3. Editing Command Summary
Tables for Appendix C: Command Summary
C–1. General Command Summary
C–2. Debugging Command Summary
C–3. Editing Command Summary
MAINEDIT User's Guide
1. Basic Concepts
1.1. Version
1.2. Changes to Commands
1.3. Using This Manual
1.4. Notation Conventions
1.4.1. File Names
1.4.2. Special Keys
1.4.3. Dialogues
1.4.4. Command Descriptions
1.5. Files, Buffers, and Windows
1.6. Front Ends and Back Ends
1.7. Establishing the Default Front End
1.8. Invoking MAINEDIT
1.8.1. File to Edit
1.8.2. Display Module and Baud Rate
1.8.3. New File
1.9. MAINEDIT with Command Line Arguments
1.10. Screen Format
1.10.1. Message Line
1.10.2. Status Line
1.10.3. Page Marks
1.10.4. Other Special Characters
1.10.5. Cursor
1.11. Tabs
1.12. End-of-Line Characters: Carriage Returns and Linefeeds
1.13. Finishing the Edit Session
Tables for Chapter 1: Basic Concepts
1–1. Key Name Abbreviations
Figures for Chapter 1: Basic Concepts
1–2. MAINEDIT Screen Format
2. Editor Parameters:
eparms
and
v
1620
.
prm
2.1. The
$MAINEDIT
Group in the Parameter File
2.1.1.
DONOTPROMPTFORPAGEANDLINE
2.1.2.
DISPLAYMODULE
2.1.3.
UPDATEDISPLAYMODULE
2.1.4.
DONOTPROMPTFORDISPLAYMODULE
2.1.5.
PROMPTFORDISPLAYMODULE
2.1.6.
BAUDRATE
and
UPDATEBAUDRATE
2.1.7.
WINDOWWIDTH
2.1.8.
DONOTUPDATEEPARMS
2.1.9.
FRONTEND
and
BACKEND
2.1.10.
PROPORTIONALWINDOWS
,
VISIBLELEFTBORDER
,
VISIBLERIGHTBORDER
,
AUTOHORIZONTALSCROLL
, and
MAXIMUMPROPORTIONALWINDOWS
2.2. The
eparms
File
2.2.1.
EDITORPARMSFILE
2.2.2.
CONTEXT
2.2.3.
MACRO
and
NAMEDMACRO
2.2.4.
DISPLAYMODULE
2.2.5. Creating a New
eparms
File
3. Switching among Front Ends
MAINED User's Guide
1.
MAINED
Basics
1.1. Notation Conventions
1.1.1. Case
1.2. Starting and Ending a
MAINED
Session
1.2.1. Initial Page and Line
1.2.2. The
$MAINED
Group in the Parameter File
1.2.3. Finishing the Edit Session
1.3. Modes
1.3.1. Command Mode
1.3.2. Insert Mode
1.3.3. Overstrike Mode
1.3.4. Escape Mode
1.3.5. Returning to Command Mode
1.4. Basic Editing Commands
1.4.1. Moving the Cursor
1.4.2. Windowing
1.4.3. Deleting
1.5. Current Character, Word, Line, and Page
1.6.
MAINED
Window Appearance
1.6.1. Margins
1.6.2. Buffer End
1.7. Pages and Page Marks
1.8. Buffer Names
1.9.
MAINED
Special Keys
Tables for Chapter 1:
MAINED
Basics
1–1. Basic Cursor Movement Commands
1–2. Basic Scrolling Commands
1–3. Basic Commands for Deleting Text
1–4. Key Name Abbreviations
2. Command Syntax
2.1. Direction (
+
or
-
)
2.2. Count (
n
)
2.3. Emphasis (
Q
)
2.4. Special (
$
)
2.5. Basic Command
2.6. Object
3. Cursor Movement and Windowing
3.1. Basic Cursor Movement
3.2. Go to Specified Page and Line
3.3. Go to Specified Character Position
3.4. Skip to Character or Line
3.5. Set and Jump to Mark
3.6. Scroll Window
Tables for Chapter 3: Cursor Movement and Windowing
3–1. Basic Cursor Positioning Commands
3–2. Page- and Line-Relative Motion Commands
3–3. Commands to Skip to a Character or Line
3–4. Commands to Control and Use the Mark
3–5. Commands for Scrolling Windows
4. Searching
4.1. Case-Sensitive Search
4.2. Identifier Search
4.3. Pattern Search
4.4. Line Search
4.5.
RS
: Recall SearchStrings into Buffer
4.6.
+
R
{
C
,
W
,
L
}
: Recall {Characters, Words, Lines} into Search Strings
Tables for Chapter 4: Searching
4–1. Text Search Commands
5. Overstriking
5.1. Overstrike Mode
5.2. Special Keys in Overstrike Mode
5.3. Overstriking a Sequence of Characters
Tables for Chapter 5: Overstriking
5–1. Effect of Special Keys in Overstrike Mode
5–2. Commands to Overstrike Text
6. Inserting
6.1. Insert Mode
6.2. Special Keys in Insert Mode
6.3. Inserting Lines or Characters
6.4. Inserting the Contents of a Buffer or File
6.5. Inserting Page Marks
6.6. Inserting Characters by Code
Tables for Chapter 6: Inserting
6–1. Commands to Enter Insert Mode
6–2. Effect of Special Keys in Insert Mode
6–3. Commands to Insert Characters or Lines
6–4. Commands to Insert Buffers or Files
6–5. The Four Radices Understood by the ' Command
7. Deleting and Recalling Text
7.1. Character, Word, and Line Delete Buffers
7.2. Page Buffers
7.3. Delete
7.4. Zap
7.5. Recalling Text
7.6. Recalling Text at Prompts on the Message Line
Tables for Chapter 7: Deleting and Recalling Text
7–1. Text Deletion Commmands
7–2. The Zap Commands
7–3. Text Recalling (Undeletion) Commands
8. Other Text Modifying Commands
8.1. Center
8.2. Copy
8.3. Move
8.4. Break
8.5. Join
8.6. Convert to Lower or Upper Case
8.7. Filling and Justification
Tables for Chapter 8: Other Text Modifying Commands
8–1. Commands to Center Text on a Line
8–2. Commands to Copy Text
8–3. Text Rearranging Commands
8–4. Commands to Break a Line
8–5. Commands to Join Two Lines
8–6. Commands to Convert to Lower/Upper Case
8–7. Commands to Fill and Justify Text
Examples for Chapter 8: Other Text Modifying Commands
8–8. .J Command, Example 1
8–9. .J Command, Example 2
8–10. .J Command, Example 3
9. Windows
9.1. Changing Window Size
9.2. Anchoring Windows
Tables for Chapter 9: Windows
9–2. Window Management Commands
9–4. Commands Used to Anchor and Unanchor Windows
Examples for Chapter 9: Windows
9–1. A Screen with Two Windows
9–3. Left-Right Scrolling
10. Files and Buffers
10.1. Bringing a File into the Editor
10.2. Moving the Cursor among Buffers
10.3. Modifiers of the
.
F
and
.
B
Commands
10.4. Deleting Buffers
10.5. Changing Buffer and File Names
10.6. Displaying Information about Buffers and Files
10.7. Specifying Front and Back Ends for a Buffer; Multiple Buffers into the Same Data
Tables for Chapter 10: Files and Buffers
10–1. File Selection Commands
10–2. Buffer Selection Commands
10–3. Commands to Change Buffer and File Names
Examples for Chapter 10: Files and Buffers
10–4. Sample Output from the Q= Command
11. Command and View Front Ends
12. Saving and Finishing
Tables for Chapter 12: Saving and Finishing
12–1. Commands to Save Files and/or Exit from MAINEDIT
13. Miscellaneous Commands
13.1.
<abort>
13.2. Again
13.3. Undo
13.4. Status Report
13.5. Suppress Output
13.6. Refresh Screen
13.7. Setting Tab Stops
13.8. Changing the Frequency of Save Reminders
Tables for Chapter 13: Miscellaneous Commands
13–1. Forms of the Again Command
13–2. Undoing Previous Commands on the Current Line
13–3. Fields Displayed by the = Command
13–4. Commands to Refresh Part or All of the Screen
14. Macros
14.1. Defining a Macro
14.2. Invoking a Macro
14.3. Recursive Macros
14.4. Macros and Editor Modes
14.5. Special Macro
INITIALIZE
14.5.1. Buffer-Specific
INITIALIZE
Macros
Tables for Chapter 14: Macros
14–2. Commands Used to Manipulate the Mode
Examples for Chapter 14: Macros
14–1. Example of a Recursive Macro Definition
14–3. Setting Tabs to Be Every Fourth Column
15. Arithmetic Functions
Tables for Chapter 15: Arithmetic Functions
15–1. Commands to Perform Arithmetic
Examples for Chapter 15: Arithmetic Functions
15–2. Valid Numeric Forms for Arithmetic Commands
16. Setting and Clearing Options
16.1. Options That Are Both Global and Local
16.1.1.
lineNumber
Option
16.1.2.
readOnly
Option
16.1.3.
statusLine
Option
16.1.4. Border Options
16.1.5.
autoHorizontalScroll
Option
16.2. Global Option
16.2.1.
proportionalWindowsMode
Option
16.2.2.
maxUnanchoredProportionalWindows
16.3.
MAINED
-Specific Options
16.3.1. stickyTabs Option
16.4.
insertModeDefault
and
overstrikeModeDefault
Options
16.5. Case Options
16.6.
wordWrap
Option
16.7.
countPageMarksAsLines
Option
Tables for Chapter 16: Setting and Clearing Options
16–1. Editor Option Commands
16–2. Options
Examples for Chapter 16: Setting and Clearing Options
16–3. How the stickyTabs Option Affects the Insertion of Tab Characters
17. Using
MAINED
to Invoke Other MAINSAIL Modules
17.1. Executing a MAINSAIL Module
17.2. Escaping to Caller
17.3. Sample Invocation of the MAINSAIL Compiler from
MAINED
17.4. Simultaneous File Access Caveat
Tables for Chapter 17: Using
MAINED
to Invoke Other MAINSAIL Modules
17–1. Commands to Invoke Modules
Examples for Chapter 17: Using
MAINED
to Invoke Other MAINSAIL Modules
17–2. Initial Screen Configuration
17–3. After Issuing the Command QEcompil
17–4. After Typing poem
17–5. After Typing QY-4W in CMDLOG
17–6. Examining the File poet with .Fpoet
17–7. After Returning to COMPIL with the E Command
17–8. Terminating the Compilation with a c
17–9. Compiling the Correct File
17–10. After Ending the Compiler Session
Appendices for the MAINED User's Guide
A. Terminal Ports
B.
MAINED
Command Summary
Tables for Appendix B:
MAINED
Command Summary
B–1. MAINED Commands
MAINVI User's Guide
1.
MAINVI
Introduction
2. Differences between
MAINVI
and
vi
2.1. Initialization
2.2. Status Line
2.3. Tabs
2.4. Lines Too Long to Fit on the Screen
2.5. Display of Control Characters
2.6. Page Marks (
CTRL
-
L
in a File)
2.7. Deletions during Input Mode
2.8.
CTRL
-
L
Command
2.9. Shell Commands
2.10. Delete Buffers and Text Recovery
2.11. Macros
2.12. Ignored Modes and Variables
2.13.
tabstop
2.14. Undoing Commands
2.15. Marks
2.16. Quoting Input Characters
2.17. Tags
2.18.
=
(Indent for LISP)
2.19. Crash Facilities
2.20. Other Unimplemented Commands
2.21. File Argument List
2.22. Reading a File
2.23. Autoindent Space and
CTRL
-
D
in Input Mode
2.24. Warnings about Switching among Buffers
2.25. The Bell
2.26. Error Messages
2.27. Printing the Current Line in
ex
Mode
3. Commands and Variables Added to
MAINVI
3.1. Commands
3.1.1.
g
: Moving to a Page Mark
3.1.2.
:
buffer
3.1.3.
:
swm
,
:
frontend
3.1.4.
:
hredo
,
:
hundo
3.1.5. :
invoke
3.1.6.
:
leftcolumn
3.1.7.
:
lset
,
:
set
3.1.7.1.
:
reinit
3.1.8.
:
unabbreviateall
,
:
unmapall
3.1.9.
:
mapcode
,
:
mapcode
!
3.2. Variables
3.2.1.
leftBorderChar
,
rightBorderChar
(Numeric)
3.2.2.
width
(Numeric)
3.2.3.
pageAndLinePrompt
3.2.4.
replaceWithoutPrompt
4. Known
MAINVI
Problems
Appendices for the MAINEDIT User's Guide
A. The
DATMGR
Back End
Examples for Appendix A: The
DATMGR
Back End
A–1. Sample Buffer Using Back End DATMGR
B. Display Modules
B.1. How to Get Out When a Display Module Hangs While Trying to Initialize Itself
B.2. Display Module
AM60
B.3. Display Module
AT386
B.4. Display Module BIGSUN
B.5. Display Module DTTERM
B.6. Display Module HEATH
B.7. Display Module
HPTERM
B.8. Display Module
LINDPY
B.9. Display Module
LINXTERM
B.10. Display Module
MSWIN
B.11. Display Module
NCOL
B.12. Display Modules
SUN
,
SUN3
,
SUN46
,
SUNOPENWIN
, and
SUNXTERM
B.12.1. Suppressing Flashing in OpenWindows Shell Windows
B.13. Display Module TRMCAP
B.14. Display Modules
TELEVI
and
TVI950
B.15. Display Module
VIS550
B.16. Display Modules
VT100
,
VT102
, and
VT102M
B.17. Display Modules
WY43
,
WY50
,
WY5043
, and
WY75
B.18. Display Module
XDPY
Tables for Appendix B: Display Modules
B–1. Available Display Modules
B–2. Names of the Arrow Key Codes and Default Macros
B–3. Sample Heath Switch Settings
B–4. LINDPY Special Sequences
C. Key Code Program
MAINKERMIT User's Guide
1. Overview of MAINKERMIT
1.1. Version
1.2. File Names and Types
1.3. File Transfer
1.4. Operation
Tables for Chapter 1: Overview of MAINKERMIT
1–1. Information Displayed during File Transfer
2. MAINKERMIT Commands
2.1. The
SEND
Command
2.2. The
RECEIVE
Command
2.3. The
GET
Command
2.4. The
TEXT
,
PTEXT
, and
DATA
Commands
2.5. The
SERVER
Command
2.6. The
RTEXT
,
RPTEXT
, and
RDATA
Commands
2.7.
SHOWQUEUE
2.8. The
REMOTE
,
FINISH
, and
REXECUTE
Commands
2.9. Local File Manipulation Commands
2.10. The
SET
Command
2.10.1.
SET
LINE
deviceName
2.10.2.
SET
BAUD
[300|1200|2400|4800|9600]
2.10.3.
SET
FILETYPE
[
TEXT
|
PTEXT
|
DATA
]
2.10.4.
SET
TARGET
osName
2.10.5.
SET
PROMPT
s
2.10.6.
SET
DEBUG
2.10.7.
SET
BLOCKCHECK
[1|2|3]
2.10.8.
SET
RETRIES
n
2.10.9.
SET
ERRORLOG
fileName
2.10.10.
SET
HALFDUPLEX
2.10.11.
SET
FULLDUPLEX
2.10.12.
SET
TRANSLATION
ebcdicCharCode
asciiCharCode
2.10.13.
SET
PARITY
2.10.14.
SET
NOPARITY
2.10.15.
SET
ESCAPE
newEscapeCharacter
2.11. The
TAKE
Command
2.12. The
CONNECT
Command
2.13. The
DIAL
and
CALL
s
Commands
2.14. The
HISTORY
Command
Tables for Chapter 2: MAINKERMIT Commands
2–1. MAINKERMIT Command List
2–2. Server Commands Supported by MAINKERMIT
2–3. Remote Commands
2–4. MAINKERMIT Local File Commands
2–5. MAINKERMIT SET Options
2–6. MAINKERMIT Emulator Commands
3. Program Interface
Figures for Chapter 3: Program Interface
3–1. MAINKERMIT Module Declaration
Appendices for the MAINKERMIT User's Guide
A. Status of MAINKERMIT Version 3.1
MAINPM User's Guide
1. Introduction
1.1. Version
2. General Operation
2.1. Compiling
MODULE
s to Be Monitored
2.2. Running MAINPM, Issuing MAINPM Commands, Running Your Program from MAINPM, and Getting a Listing
3. Running MAINPM
3.1. Invoking the
MODULE
MAINPM
3.2. MAINPM Commands
3.2.1. Specifying What to Monitor
3.2.2. Invoking
MODULE
s from MAINPM
3.2.3. Specifying Kinds of Statistics
3.2.4. Specifying Level of Detail
3.2.5. Including Commands Read from a File
3.2.6. Writing to the Report File
3.2.7. Combining Statistics from Several Executions into One Report
3.2.7.1. Portability of Statistics Files
3.2.8. Displaying Current MAINPM Status
3.2.9. Exit from MAINPM
3.3. Details on the Statistics File
Tables for Chapter 3: Running MAINPM
3–1. Summary of MAINPM Commands
3–2. Types of MAINPM Monitoring
3–3. Commands Controlling Kinds of Statistics
3–4. Commands Controlling Level of Detail
4. Monitoring Chunk,
STRING
, and Static Space
4.1. The
{
NO
}
MONITOR
Commands
4.2. How Chunk,
STRING
, and Static Space Usage Is Credited to
PROCEDURE
s
5. PC Sampling
5.1.
PC
VIRTUAL
{
t
}
5.2.
PC
REAL
{
t
}
5.3.
PC
{
t
}
5.4.
PC
WHEN
callPattern
5.5. Deep PC Monitoring
5.6. Restrictions on PC Monitoring
6. User-Specified Resource Monitoring
6.1. User-Defined Time Example
Examples for Chapter 6: User-Specified Resource Monitoring
6–1. A User-Timed MODULE
6–2. MODULE to Run before FOO
6–3. Timing FOO
7.
TRACECHUNKS
Command
Figures for Chapter 7:
TRACECHUNKS
Command
7–1. Module FOO to Be Executed under TRACECHUNKS
Examples for Chapter 7:
TRACECHUNKS
Command
7–2. Sample TRACECHUNKS Session
8. Report File
8.1. Counts Table
8.2. PC-Sampled Timing Output
8.3. Total Execution Time
8.4. Unexecuted
PROCEDURE
s
8.5. Source Text with Statement Counts
8.6. Unexecuted Statements
8.7.
TRACECHUNKS
Command Output
8.8. Report File Examples
Examples for Chapter 8: Report File
8–1. Partial Listing Generated for PC-Sampled Timing
8–2. Lines Containing More Than One Statement
8–3. Source Text of Monitored MODULE
8–4. Timing and Statement Counts Table
8–5. Source Text with Statement Counts
8–6. SPACE Command Output
8–7. SPACE DEEP Command Output
9. Controlling Monitoring from a Program
9.1.
$startMonitoring
and
$stopMonitoring
9.2.
$executeMainpmCommands
9.3. How to Control Monitoring from a Program: The Differences between
$executeMainpmCommands
("
START
")
and
$startMonitoring
, and between
$executeMainpmCommands
("
STOP
")
and
$stopMonitoring
9.4.
$statisticsInfo
Figures for Chapter 9: Controlling Monitoring from a Program
9–1. $startMonitoring and $stopMonitoring
9–2. $executeMainpmCommands
9–3. Starting and Stopping Monitoring
9–4. $statisticsInfo
MAINSAIL Structure Blaster User's Guide
1. Introduction
1.1. General Description
1.2. Version
2. Structure Blaster Function and Performance
2.1. Alignment and Positioning of Structure Images in Files
2.2. Portability Considerations in PDF Images
2.3. Opening Structure Blaster Files
2.4. Portability of Data Images and Text Forms
Tables for Chapter 2: Structure Blaster Function and Performance
2–1. Relative Advantages and Disadvantages of Different Structure Image Formats
3. Text Forms
3.1. Constants
3.2. Attributes
3.3. Units
3.3.1.
CLASS
Units
3.3.2. Record Units
3.3.3.
ARRAY
Units
3.3.4. Vector Units (Obsolete)
3.3.5. DataSec Units
3.4. Editing a Text Form
3.5. Compressed Text Forms
Tables for Chapter 3: Text Forms
3–1. \ Escape Sequences in Text Form STRING Constants
Examples for Chapter 3: Text Forms
3–2. A Sample CLASS Unit
3–3. A Sample Record Unit
3–4. A Sample ARRAY Unit
3–5. A Sample DataSec Unit
4. Structure Blaster
PROCEDURE
s
4.1.
$structureCompare
4.2.
$structureCopy
4.3.
$structureDataToText
4.4.
$structureDispose
4.5.
$structureInfo
4.6.
$structureRead
4.7.
$structureSetup
4.8.
$structureTextToData
4.9.
$structureUnSetup
4.10.
$structureWrite
4.10.1. Structures Written Only from Specified Areas
Figures for Chapter 4: Structure Blaster
PROCEDURE
s
4–1. $structureCompare
4–2. $structureCopy
4–3. $structureDataToText
4–4. $structureDispose
4–5. $structureInfo
4–6. $structureRead
4–7. $structureSetup
4–8. $structureTextToData
4–9. $structureUnSetup
4–10. $structureWrite (Generic)
5. Structure Blaster Examples
6. Structure Blaster Utility Modules
6.1.
STRTXT
6.2.
STRCHK
MAINSAIL STREAMS User's Guide
1. Introduction
1.1. Version
1.2. Terminology
2. Overview and Examples
2.1. What Can I Do Using STREAMS?
2.2. How to Write Network Servers
2.2.1. A Normal MAINSAIL
MODULE
That Provides a Simple Service
2.2.2. Changing a
MODULE
to Be an RPC Server
2.2.3. Compiling the Server
MODULE
with the
RPC
Subcommand
2.2.4. Compiling the Server and Client
MODULE
s
2.2.5. Adding an Entry for Your Service to the Services Table and Setting Up the Unregistered Server Directory
2.2.6. Starting the Server
2.3. How to Write Embedded Legacy Applications
2.4. How to Write Parallel Processing Applications
2.5. How to Write Low-Level Device Control Applications
Figures for Chapter 2: Overview and Examples
2–13. The Main Program Starts Multiple Parallel Processes on Different Hosts and Communicates with Them through RPC
Examples for Chapter 2: Overview and Examples
2–1. Intmod Containing Interface for ECHOMOD
2–2. ECHOMOD: A MODULE That Provides a Trivial Service
2–3. ECHOTST, a MODULE That Tests ECHOMOD
2–4. Execution of ECHOTST
2–5. Changes to ECHOHDR for RPC
2–6. Changes to ECHOMOD for RPC
2–7. Changes to ECHOTST for RPC
2–8. Compiling with the RPC Subcommand
2–9. Compiling the Server MODULEs
2–10. Compiling the Client MODULEs
2–11. Invoking the C Compiler from a Program
2–12. Execution of the Program of
2–14. LIFEHDR, Life Program Intmod
2–15. LIFE, Life Main Program
2–16. LIFECOMOD, MODULE for Dealing with a Single Client Coroutine
2–17. SUBLIFEMOD, Server MODULE to Which Computation Is “Subcontracted”
2–18. A Program That Reads a Password without Echoing It
3. Facilities Provided by STREAMS
3.1. Stream Features
3.1.1. Summary of Stream Support and Implementation
3.1.2. The Basic TTY Stream
3.1.3. Reading Interrupt Characters from the TTY
3.1.4. Opening Serial TTY Lines
3.1.5. Setting the Baud Rate on TTY Streams
3.1.6. Writing a
BREAK
on TTY Streams
3.1.7. Clearing Pending I/O
3.1.8. Scheduling of TTY Streams
3.1.9. Catching Keyboard Interrupts
3.1.10. Server/Client Communication
3.1.11. Child Process Creation
3.1.12. The System Shell as a Child Process
3.1.13. Scheduling of Advanced STREAMS
3.1.14. Timeouts
3.2. Stream Types
3.3. Automatic Scheduling of Stream I/O
3.4. Loose Coupling of STREAMS to MAINSAIL
Figures for Chapter 3: Facilities Provided by STREAMS
3–1. Summary of Stream Support
Examples for Chapter 3: Facilities Provided by STREAMS
3–2. Using the NTTY Device MODULE
4. Opening and Closing Streams
4.1. Making STREAMS Available to a MAINSAIL Program: the
STRHDR
Intmod and
$initializeStreams
4.2. Automatically Opened Streams:
$tty
and
$parent
4.3. The
CLASS
$stream
4.4. Opening and Closing Streams:
$openStream
and
$closeStream
4.4.1.
$openStream
4.4.2.
$closeStream
4.4.2.1. Detecting When a Child Process Has Exited
Tables for Chapter 4: Opening and Closing Streams
4–5. Error Handling in $openStream
Figures for Chapter 4: Opening and Closing Streams
4–1. $initializeStreams
4–3. User-Visible Fields of $stream and STREAMS Macros
4–4. $openStream (GENERIC) and $closeStream
Examples for Chapter 4: Opening and Closing Streams
4–2. Use of $initializeStreams
5. Remote
MODULE
s and Remote
PROCEDURE
Calls (RPC)
5.1. Overview
5.2. Remote
MODULE
PROCEDURE
s
5.3. Remote
MODULE
Interfaces
5.4.
STRING
RPC Parameter Limitations
5.5. Buffer Passing Conventions
5.5.1. When Buffers Are Allocated and Deallocated
5.5.2. How to Allocate and Deallocate Buffers
5.5.3. Redirecting Calls to
rpcNewBuffer
and
rpcDisposeBuffer
5.5.4. Low-Level Forms of
rpcNewBuffer
and
rpcDisposeBuffer
5.6. Example of Remote
MODULE
s between a Parent and Child Process
5.7. Example Clients and Servers Using Remote
MODULE
s
5.8. The Fields of
$remoteModuleCls
5.9. Use of Version Numbers
5.10. Writing Adaptable Clients
5.11. The Server Log File
5.12. Terminating a Global Server:
$killServerExcpt
5.13. Generic RPC Server: the
RPCSRV
MODULE
5.14. RPC Implementation Restrictions
5.15. RPC Efficiency Considerations
5.16. Parallel Processing Using RPC Calls
5.17. Remote Exceptions
5.18. C RPC
5.18.1. Data Type Rules
5.18.2.
connectServer
and the
_
init
Function
5.18.2.1.
connserver
5.18.3. Calling Remote
PROCEDURE
s
5.18.4. The
_
final
Function and
disconnserver
5.18.5.
dispose_array
5.18.6. Handling Exceptions in the Remote
MODULE
5.18.7. Obsolete Mechanism for Handling Exceptions in the Remote
MODULE
5.18.8. Sample C RPC Session
5.18.9. Building a Sharable Object for
mrpc
.
o
Tables for Chapter 5: Remote
MODULE
s and Remote
PROCEDURE
Calls (RPC)
5–4. Order of Events with MODIFIES/PRODUCES-Content and MODIFIES/PRODUCES-ADDRESS Buffers
5–14. C Client Arguments and MAINSAIL Server Parameters
5–15. ARRAY struct Fields and Meanings
Figures for Chapter 5: Remote
MODULE
s and Remote
PROCEDURE
Calls (RPC)
5–1. How a Remote Procedure Is Routed
5–2. Remote MODULE PROCEDUREs
5–5. rpcNewBuffer and rpcDisposeBuffer
5–12. User-Visible Fields of $remoteModuleCls
Examples for Chapter 5: Remote
MODULE
s and Remote
PROCEDURE
Calls (RPC)
5–3. Example USES, PRODUCES-ADDRESS, MODIFIES-ADDRESS, PRODUCES-Content, and MODIFIES-Content Buffer Parameters
5–6. Example Remote MODULE
5–7. Parent Executing Remote MODULE FOO in a Child
5–8. Child Providing the FOO Remote MODULE
5–9. Example Remote MODULE
5–10. Example Client of the FOO Remote MODULE Service
5–11. Example Server Providing the FOO Remote MODULE
5–13. A Remote MODULE That Sets Its Version Numbers
5–16. Compilation of Remote MODULE with RPC C Compiler Subcommand
5–17. C RPC Client in foo.c
5–18. Compiling the C Client on a Typical UNIX System
6. RPC Files
6.1.
$openRpcFile
6.2.
$rpcFileModuleCls
Tables for Chapter 6: RPC Files
6–3. RPC File openBits
Figures for Chapter 6: RPC Files
6–1. $openRpcFile
6–2. CLASS $rpcFileModuleCls
7. Interprocess Communication: Socket Streams
7.1. Meaning of
$eos
on Socket Streams
7.2. Socket-Specific Fields of
$stream
7.3. Servers and Clients: Network Protocol
MODULE
s and the
SERVICE
Stream Prefix
7.3.1. Terminology and Conventions
7.3.2. Services Table
7.3.3. The Client End
7.3.4. The Server End
7.3.5. STREAMS
PROCEDURE
s Supported by
xidakservices
7.3.6. The Services Table
7.4. Child Process Creation:
PROCESS
and
PTYPRO
7.4.1. Starting a Child Process Using
PROCESS
7.4.2. Starting a Child Process Using
PTYPRO
7.4.3. Starting a MAINSAIL Child Process
7.4.4. Establishing an Additional Control Stream to a Cooperating Child
7.5. Terminating a Child Process
7.6. Process Control
7.7. Examples
7.7.1. Sprouting a Print Job and Waiting for It to Exit
7.7.2. Sprouting an Interactive Child
Tables for Chapter 7: Interprocess Communication: Socket Streams
7–1. Socket-Specific Fields of the Stream Record
7–4. Valid hostAndServiceName Values ($getProtocols)
Figures for Chapter 7: Interprocess Communication: Socket Streams
7–3. Server PROCEDUREs
7–5. Fields of $port
7–6. Server PROCEDUREs Supported Only by xidakservices
7–7. $executableBootName
Examples for Chapter 7: Interprocess Communication: Socket Streams
7–2. Client Access to a Service
7–8. Sprouting a Print Job and Waiting
7–9. Sprouting an Interactive Child
8. Multitasking and the Scheduler
8.1. Scheduled Coroutines
8.2. Using Scheduled Coroutines for Stream I/O
8.3. Cautions About Shared Data Access
8.4. Scheduling Coroutines for Stream I/O:
$queueCoroutine
8.5. Voluntary Rescheduling:
$msTimeout
and
$reschedule
8.6. Waiting for Descendant Coroutines:
$waitForDescendants
8.7. Semaphores (Locks)
8.8. Scheduled Coroutine Map
8.9. Example Multitasking Programs
8.9.1. A Simple Terminal Emulator
8.9.2. Parallel Processing Using RPC Calls
Figures for Chapter 8: Multitasking and the Scheduler
8–1. Creating and Scheduling Coroutines
8–2. Voluntary Rescheduling Calls
8–3. Coroutine Synchronizing Calls: $waitForDescendants (GENERIC)
8–4. Semaphore Scheduler Calls
8–5. $scheduledCoroutineMap
8–6. Schematic of a Terminal Emulator Program
Examples for Chapter 8: Multitasking and the Scheduler
8–7. A Simple Terminal Emulator Using STREAMS
8–8. Multitasking RPC Calls
9. Handling Keyboard Interrupts
9.1. Enabling and Handling Interrupts on
$tty
9.2. Stacking of
$enableInterrupts
9.3. Conflict between
$enableInterrupt
and the
$noInterrupt
Bit
9.4. Sample Program That Catches Interrupts
9.5. Causing Keyboard Interrupts to Occur in a Child Process
Figures for Chapter 9: Handling Keyboard Interrupts
9–1. Interrupt-Catching PROCEDUREs
Examples for Chapter 9: Handling Keyboard Interrupts
9–2. Handling Keyboard Interrupts
9–3. Catching Interrupts Asynchronously
10. Low-level Stream I/O
PROCEDURE
s
10.1. Low-Level Stream I/O
PROCEDURE
Conventions
10.1.1. Timeouts
10.1.2. Success and Failure of I/O Operations
10.1.3. The General Error Return (
$error
)
10.1.4. The End-of-Stream Return (
$eos
)
10.1.5. Timeout Return (
$timedOut
)
10.2. Octets
10.3. Input:
$readStream
10.4. Output:
$writeStream
10.5. Single-Character I/O:
$cReadStream
and
$cWriteStream
10.6. Miscellaneous Operations:
$flushStream
and
$clearStream
10.7. Constants and Macros for Stream I/O
10.8. Multiple Coroutines Performing I/O to the Same Scheduled Stream
Tables for Chapter 10: Low-level Stream I/O
PROCEDURE
s
10–4. Buffering Modes
Figures for Chapter 10: Low-level Stream I/O
PROCEDURE
s
10–1. Special Timeout Values
10–2. Error Testing Macros
10–3. $readStream (GENERIC)
10–5. $writeStream (GENERIC)
10–6. $cReadStream and $cWriteStream
10–7. $flushStream and $clearStream
11. TTY Streams: TTYSTR
11.1.
$tty
11.2. Meaning of
$eos
on TTY Streams
11.3. TTY-Specific I/O Bits
11.4. TTY-Specific
PROCEDURE
s
11.5. TTY-Specific Fields of
$stream
11.6. Is My
$tty
Interactive?
11.7. Am I a Cooperative Child?
11.8. Half-Duplex TTY Streams
11.9. PTY Streams
11.9.1. PTY-Specific
PROCEDURE
s
11.9.2. PTY-Specific Fields of
$stream
Figures for Chapter 11: TTY Streams: TTYSTR
11–1. TTY-Specific PROCEDUREs
11–2. TTY-Specific Fields of $stream
11–3. PTY-Specific PROCEDUREs
12. Memory Streams:
MEMSTR
Appendices for the MAINSAIL STREAMS User's Guide
A. Server Installation Instructions
A.1. Formats of the XIDAK Services Table
A.1.1. Choosing Which Format of Services Table to Use
A.1.2. The
xidakservices
File Format
A.1.2.1. The Syntax of the file
xidakservices
A.1.2.1.1. General Rules for
xidakservices
Syntax
A.1.2.2. Semantics of the
xidakservices
Commands
A.1.2.3. Logical File Name for
xidakservices
A.1.3. The
mslhosts
File Format
A.1.3.1.
MYHOST
hostName
A.1.3.2.
HOSTNAME
officialName
alias
1
alias
2
...
alias
n
A.1.3.3.
HOSTPROTOCOL
hostName
protocol
1
protocol
2
...
protocol
n
A.1.3.4.
SERVICE
serviceName
hostName
/
protocol
...
A.1.3.5.
DEFAULTPROTOCOL
protocol
1
protocol
2
...
protocol
n
A.1.4. Creating a
mslhosts
File
A.1.4.1. Adding
ENTER
Subcommands to the MAINSAIL Site-Specific Startup Command File (
site
.
cmd
)
A.2. Registering a Server with the Operating System: Host-Dependent Service Tables
A.2.1. UNIX Services Table
A.2.2. Windows NT Services Table
A.3. Unregistered Servers
A.4. Arranging for a Server to Be Started as a Background Process at System Startup
A.5. Starting a Server Manually
A.6. Installing the
gensrv
Server
A.6.1. The
gensrv
Log File
Figures for Appendix A: Server Installation Instructions
A–1. Sample xidakservices File
Examples for Appendix A: Server Installation Instructions
A–2. Typical mslhosts File
A–3. Minimal General mslhosts File between Hosts A and B
A–4. ENTER in site.cmd for Using Servers
A–5. Declaring the Service gensrv to BSD UNIX
A–6. Starting gensrv Automatically under BSD UNIX
B. Available Network Protocol
MODULE
s
Tables for Appendix B: Available Network Protocol
MODULE
s
B–1. Protocol MODULEs and Their Characteristics
C. System-Specific Support for STREAMS
Tables for Appendix C: System-Specific Support for STREAMS
C–1. Features Supported by STREAMS Implementations
D. Extended C RPC Client Example
Examples for Appendix D: Extended C RPC Client Example
D–1. MAINSAIL RPC Server Interface PROCEDURE Header
D–2. C Client That Calls MAINSAIL Remote Module
E. A Guide to Remote File Access Using
NET
E.1. Use of the
NET
Device
MODULE
E.2. Execution of
MODULE
s Stored Remotely
E.3. Syntactic Sugar for Remote File Access
E.4. Known Restrictions and Limitations
F. XIDAK STREAMS Applications and Utilities
F.1. Orion Database Management System
F.2. Network File Access:
NET
Device
MODULE
F.3. Network Server Status:
SRVINF
F.4. MAINSAIL Kermit
MAINSAIL Utilities User's Guide
1. Introduction
1.1. Version
1.2. Command Syntax for Line-Oriented Utilities: File Names Containing Spaces
1.2.1. Trailing Commas
1.3. Changes to Utility Programs
1.4. Command Line Arguments
2.
CALLS
, Call Chain Examiner
Examples for Chapter 2:
CALLS
, Call Chain Examiner
2–1. Sample CALLS Output
3.
CHKMOD
, Static Interface Consistency Checker
3.1. Introduction
3.2. Definition of “References”
3.3. Src
MODULE
s and Dst
MODULE
s
3.4. Commands to Add, Remove, and Show
MODULE
s
3.5. Auxiliary Commands
3.6.
showAllRefs
3.7.
findRefs
3.8.
checkConsistency
3.9. Use of
CHKMOD
4.
CLOSEF
5.
CONCHK
, Memory Consistency Checker
6.
CONF
, the MAINSAIL Configurator
6.1. Configuration Files
6.2. Configuration Commands
6.2.1.
(
LONG
)
INTEGER
and
(
LONG
)
BITS
Command Arguments
6.2.2. Single-Line and Multiline Command Formats for
STRING
-Valued Command Arguments
6.2.3. Commands That Specify
(
LONG
)
BITS
Values
6.2.4.
<eol>
6.2.5.
BOOTFILENAME
s
6.2.6.
COLLECTMEMORYPERCENT
n
6.2.7.
COMMANDSTRING
6.2.8.
CONFIGURATIONBITS
b
6.2.9.
FOREIGNMODULES
6.2.9.1. Always Include the Default Foreign
MODULE
s When Building a Bootstrap
6.2.10.
INITIALMEMORYSIZE
n
6.2.11.
INITIALSTATICPOOLSIZE
n
6.2.12.
KERMODNAME
s
6.2.13.
MAXMEMORYSIZE
n
6.2.14.
MAXPERCENTDELAYRIGCHUNKS
n
6.2.15.
MAXSIZEDELAYRIGCHUNKS
n
]
6.2.16.
MINSIZETOALLOCATE
n
6.2.17.
MINSTATICPOOLEXTENSIONSIZE
n
6.2.18.
OSMEMORYPOOLSIZE
n
6.2.19.
PLATFORM
s
6.2.20.
QUIT
6.2.21.
RESTORE
s
6.2.22.
RUNTIMERESTORE
s
6.2.22.1. Sample Use of
RUNTIMERESTORE
6.2.22.2. How
RUNTIMERESTORE
Works
6.2.22.3. Runtime Restore of Configuration Parameters from a C Program
6.2.23.
SAVE
s
6.2.24.
SHOW
6.2.25.
STACKSIZE
n
6.2.26.
SUBCOMMANDS
6.2.27.
SYSTEMLIBNAME
s
6.2.28. System-Specific
CONF
Commands
Tables for Chapter 6:
CONF
, the MAINSAIL Configurator
6–2. CONF Command Summary
6–3. CONF Configuration Bits
Examples for Chapter 6:
CONF
, the MAINSAIL Configurator
6–1. CONF Example
6–4. Using the CONF Command CONFIGURATIONBITS
7.
COPIER
, File Copier
Examples for Chapter 7:
COPIER
, File Copier
7–1. COPIER Example
8. Coroutine Utilities
Examples for Chapter 8: Coroutine Utilities
8–1. PRNTCO Parent and Children
8–2. PRNTCO Output
9.
DELFIL
, File Deleter
Examples for Chapter 9:
DELFIL
, File Deleter
9–1. DELFIL Example
10.
DIR
11.
DISPSE
,
MODULE
Disposer
Examples for Chapter 11:
DISPSE
,
MODULE
Disposer
11–1. DISPSE Example
12.
DVIEW
, Data File Viewer
12.1.
n
,
<eol>
,
+
n
, and
-
n
12.2.
A
and
R
12.3.
D
12.4.
I
and
L
12.5.
P
12.6.
S
xxx
12.7.
W
xxx
12.8.
F
xxx
12.9.
Q
12.10.
DVIEW
Example
Tables for Chapter 12:
DVIEW
, Data File Viewer
12–1. DVIEW Commands
Examples for Chapter 12:
DVIEW
, Data File Viewer
12–2. DVIEW Example
13.
FILMRG
, File Merging Utility
Examples for Chapter 13:
FILMRG
, File Merging Utility
13–1. Prompts for FILMRG Options
13–2. FILMRG Example
13–3. A Sample Conflicting Section from the Merged File
14.
GCCHP
, Global File Cache Parameter Utility
14.1. Overview
14.2. How to Use
GCCHP
Examples for Chapter 14:
GCCHP
, Global File Cache Parameter Utility
14–1. GCCHP Example
15.
HSHMOD
, Hash Lookup Utility
15.1. Overview
15.2.
HSHMOD
Header
15.3. The
PROCEDURE
hashInit
15.4. The
PROCEDURE
hashEnter
15.5. The
PROCEDURE
hashLookup
15.6. The
PROCEDURE
hashRemove
15.7. The
PROCEDURE
hashNext
15.8. The
PROCEDURE
s
hashLookupNextInit
and
hashLookupNext
15.9. The
PROCEDURE
hashRemoveRecord
15.10. The
PROCEDURE
s
hashLoad
and
hashStore
15.11. Creating Instances of
HSHMOD
15.12. Disposing
HSHMOD
Data
15.13. Efficiency Issues
Figures for Chapter 15:
HSHMOD
, Hash Lookup Utility
15–1. Declaration of hashedRecord
15–3. HSHMOD Interface
15–4. Including the HSHMOD Declarations
Examples for Chapter 15:
HSHMOD
, Hash Lookup Utility
15–2. Using hashedRecord as a Prefix CLASS
15–5. Using the PROCEDURE hashLookup
15–6. Using the PROCEDURE hashNext
15–7. Disposing of All Records in a Symbol Table
15–8. HSHMOD Pointers
16.
IFX
,
ELSEX
, and
ENDX
:
MAINEX
Script Conditional Execution
MODULE
s
Examples for Chapter 16:
IFX
,
ELSEX
, and
ENDX
:
MAINEX
Script Conditional Execution
MODULE
s
16–1. Use of IFX, ELSEX, and ENDX
17.
INTCOM
17.1. Interactive Use of
INTCOM
17.2. Calling
INTCOM
from a Program
Figures for Chapter 17:
INTCOM
17–1. $compareIntmods
18.
INTLIB
18.1. How
INTLIB
Opens Library Files
18.2. Library Size
18.3.
INTLIB
Commands
18.3.1.
<eol>
,
QUIT
18.3.2.
ADD
dLibName
{,
sysAbbrev
}
modList
18.3.3.
COPY
sLibName
{,
sysAbbrev
}
dLibName
{,
sysAbbrev
}{
modList
}
18.3.4.
CREATE
libName
18.3.5.
DEFINE
libName
s
18.3.6.
DELETE
sLibName
{,
sysAbbrev
}
modList
18.3.7.
DIRECTORY
libName
{,
sysAbbrev
}{=
fileName
}{
modList
}
18.3.8.
EXTRACT
sLibName
{,
sysAbbrev
}{
modList
}
18.3.9.
LOG
18.3.10.
MOVE
sLibName
{,
sysAbbrev
}
dLibName
{,
sysAbbrev
}
modList
18.3.11.
NOLOG
18.3.12.
QDIRECTORY
libName
{,
sysAbbrev
}{=
fileName
}{
modList
}
18.3.13.
READ
fileName
18.3.14.
TARGET
{
sysAbbrev
}
18.3.15.
UPDATE
/
NOUPDATE
18.4.
INTLIB
as a Device Prefix
18.5.
INTLIB
Program Interface
Tables for Chapter 18:
INTLIB
18–1. Forms of a
modList
Element
18–2. INTLIB Commands
18–3. INTLIB ADD Command
modList
Forms
18–5. Option Letters Displayed by the DIRECTORY Command
18–6. INTLIB EXTRACT Command
modList
Forms
Figures for Chapter 18:
INTLIB
18–7. Declaration of $executeIntlibCommands
Examples for Chapter 18:
INTLIB
18–4. Using the INTLIB DIRECTORY Command
19.
LIB
and
LIBEX
, File Library Device
MODULE
and Librarian
19.1. Introduction
19.1.1. Likely Changes
19.1.2. Motivation
19.2. General Concepts
19.2.1. Basic Definitions
19.2.2. The Base File
19.2.3. The Directory Structure
19.2.4. Library File Name Syntax
19.2.5. Versions
19.2.6. Hard Delete Attribute
19.2.7. Storage of Objects
19.2.8. The
lparms
File
19.3. Device
MODULE
Interface
19.4. Program Interface
19.4.1.
doCommandsInFile
and
doCommandsInString
19.4.1.1.
doCommandsInFile
19.4.1.2.
doCommandsInString
19.4.2. Exiting MAINSAIL and Disposing of
LIB
19.4.3. Library Integrity
19.5.
LIB
Commands
19.5.1. Command Lines
19.5.2. Switches
19.5.2.1. Mode Switches
19.5.3. Connection Commands
19.5.4. Definition Commands
19.5.5. Directory Information Commands
19.5.5.1. Directory Information Command Switches
19.5.6. Library Creation Command
19.5.7. Directory Creation Commands
19.5.8. Host File Manipulation Commands
19.5.9. Object Copying Commands
19.5.10. Object Renaming Commands
19.5.11. Object Removal Commands
19.5.12. Deletion Control Commands
19.5.13. Version Control Command
19.5.14.
SAVE
Command
19.5.15. Mode Commands
19.5.15.1. Confirmation Commands
19.5.15.2. Verbosity Commands
19.5.16. Termination Commands
19.5.17. Input Redirection Commands
19.5.18.
MODULE
Execution Command
19.5.19. Maintenance and Diagnostic Commands
19.6.
LIBEX
19.6.1. Sample
LIBEX
Execution
19.7. Known Bugs and Problems in
LIB
Tables for Chapter 19:
LIB
and
LIBEX
, File Library Device
MODULE
and Librarian
19–5. Mode Switches
19–6. DIRECTORY and LS Switches
19–7. Directory Object Attributes
19–8. File Object Attributes
19–11. CREATE Switches
19–12. MAKE Switches
19–13. LIBEX Execution
Figures for Chapter 19:
LIB
and
LIBEX
, File Library Device
MODULE
and Librarian
19–3. doCommandsInFile and doCommandsInString
19–4. Accessing LIB's Program Interface
Examples for Chapter 19:
LIB
and
LIBEX
, File Library Device
MODULE
and Librarian
19–1. How to Open a Library File from a Program
19–2. How to Specify a Library File to an Application
19–9. Short Listing Produced by DIRECTORY and LS
19–10. Long Listing Produced by DIRECTORY and LS
20.
LINCOM
, Text File Comparer
Examples for Chapter 20:
LINCOM
, Text File Comparer
20–1. LINCOM Subcommand Prompts
20–2. LINCOM Example
21.
MAINEX
, the MAINSAIL Executive
21.1.
MAINEX
Executive Dialogue
21.1.1. Using
MAINEX
to Invoke MAINSAIL Programs with a Single Command Line
21.1.1.1. Examples
21.1.1.2. The Exact Rules for One-Line Command Syntax
21.1.1.3. End of Redirected Command File, and Error Conditions
21.2.
MAINEX
Subcommands
21.2.1. Long Subcommand Lines
21.2.2. Search Rule Manipulation Subcommands
21.2.2.1.
[
INT
|
OBJ
|
EXE
][
FILE
|
LIB
]
m
1
{=
f
1
}
...
m
n
{=
f
n
}
21.2.2.2.
[
INT
|
OBJ
|
EXE
]
DEFAULT
m
1
...
m
n
21.2.2.3.
[
INT
|
OBJ
|
EXE
]
SHOW
{
m
1
...
m
n
}
21.2.2.4.
[
INT
|
OBJ
|
EXE
]
FILE
21.2.2.5.
[
INT
|
OBJ
|
EXE
]
LIB
21.2.3.
CHECKCONSISTENCY
/
NOCHECKCONSISTENCY
21.2.4.
CLoseexelib
fn
21.2.5.
CLOSEINTLIB
fn
21.2.6.
CLOSEOBJLIB
fn
21.2.7.
CMDFILE
fn
21.2.8.
CONTROLINFO
/
NOCONTROLINFO
21.2.9.
CSUBCOMMANDS
fn
21.2.10.
DEFine
name
body
21.2.11.
DEFINETIMEZONE
s
n
21.2.12.
DELAYRIGPTRS
21.2.13.
DSTENDRULE
s
21.2.14.
DSTNAME
s
21.2.15.
DSTOFFSET
n
21.2.16.
DSTSTARTRULE
s
and
DSTENDRULE
s
21.2.17.
ECHOCMDFILE
/
NOECHOCMDFILE
21.2.18.
ECHOifredirected
/
NOECHOifredirected
21.2.19.
ENTER
ln
fn
21.2.20.
FILEINFO
/
NOFILEINFO
21.2.21.
GLOBALREMOVE
r
and
GLOBALSYMBOL
r
s
21.2.22.
GMTOFFSET
n
21.2.23.
LOGFILE
fn
21.2.24.
LOOKUP
ln
21.2.25.
MAP
n
/
NOMAP
21.2.26.
MEMINFO
/
NOMEMINFO
21.2.27.
OPenexelib
fn
21.2.28.
OPENINTLIB
fn
21.2.29.
OPENLIBRARY
fn
21.2.30.
OPENOBJLIB
fn
21.2.31.
RELEASE
21.2.32.
RESPONSE
/
NORESPONSE
21.2.33.
REVISION
21.2.34.
RIGGINGPTRBADADDR
,
RIGGINGSTRBADCHAR
,
RIGPTRS
, and
RIGSTRS
21.2.35.
SEARCHPATH
21.2.35.1. Searchpaths Beginning with
*
*
21.2.36.
SETFILE
tmn
fn
21.2.37.
SETMODULE
dmn
tmn
21.2.38.
STDNAME
s
and
DSTNAME
s
21.2.39.
SUBCOMMANDS
fn
21.2.40.
SWAPINFO
/
NOSWAPINFO
21.2.41.
#
s
21.3. Initialization Parameters for
MAINEX
in the Parameter File
21.4.
$mainsailExec
21.5.
$getSubcommands
Tables for Chapter 21:
MAINEX
, the MAINSAIL Executive
21–1. MAINEX Commands
21–4. MAINEX Subcommands
21–5. MAINEX Search List Subcommands Summary
21–9. Memory Map Display Characters
Figures for Chapter 21:
MAINEX
, the MAINSAIL Executive
21–10. $mainsailExec
21–11. $getSubcommands
Examples for Chapter 21:
MAINEX
, the MAINSAIL Executive
21–2. Invoking a MODULE by MODULE Name
21–3. Invoking a MODULE by File Name
21–6. Using the MAINEX Subcommand CMDFILE
21–7. Using the MAINEX Subcommand ENTER
21–8. Using the MAINEX Subcommand LOGFILE
22. The Device
MODULE
MEM
23.
MM
23.1.
all
23.2.
ari
23.3.
ci
23.4.
di
23.5.
fr
23.6.
i
23.7. Memory Gaps and the
m
Command
23.8.
ri
Command
23.8.1.
LOCAL
kindOfVar
23.8.2.
OWN
kindOfVar
23.8.3.
SHARED
kindOfVar
23.8.4.
FIELD
kindOfVar
23.8.5.
IFIELD
kindOfVar
23.8.6.
ARYELEM
kindOfVar
23.8.7.
VECELEM
kindOfVar
23.9. Other Commands
23.10. Command Line Arguments to
MM
Tables for Chapter 23:
MM
23–1. MM Commands
24.
MODLIB
, the MAINSAIL Objmod Librarian
24.1. How MAINSAIL Opens Library Files
24.2.
MODLIB
on Old Libraries
24.3. Library Size
24.4.
MODLIB
Commands
24.4.1.
<eol>
,
QUIT
24.4.2.
ADD
dLibName
modList
24.4.3.
COPY
sLibName
dLibName
{
modList
}
24.4.4.
CREATE
libName
24.4.5.
DEFINE
libName
s
24.4.6.
DELETE
sLibName
modList
24.4.7.
DIRECTORY
libName
{=
fileName
}{
modList
}
24.4.8.
DIRECTORY
?
24.4.9.
EXTRACT
sLibName
{
modList
}
24.4.10.
LEGALNOTICE
libName
{
modList
}
24.4.11.
LOG
/
NOLOG
24.4.12.
MOVE
sLibName
dLibName
modList
24.4.13.
QDIRECTORY
libName
{=
fileName
}{
modList
}
24.4.14.
READ
fileName
24.4.15.
TARGET
{
targetSystem
}
24.4.16.
UPDATE
/
NOUPDATE
24.5.
MODLIB
as a Device Prefix
24.6.
MODLIB
Program Interface
Tables for Chapter 24:
MODLIB
, the MAINSAIL Objmod Librarian
24–1. Forms of a
modList
Element
24–2. MODLIB Commands
24–3. MODLIB ADD Command
modList
Forms
24–5. Option Letters Displayed by the DIRECTORY Command
24–6. MODLIB EXTRACT Command
modList
Forms
24–7. MODLIB MOVE Command
modList
Forms
Figures for Chapter 24:
MODLIB
, the MAINSAIL Objmod Librarian
24–8. Declaration of $executeModlibCommands
Examples for Chapter 24:
MODLIB
, the MAINSAIL Objmod Librarian
24–4. Using the MODLIB DIRECTORY Command
25. The Device
MODULE
NUL
26.
OBJCOM
26.1. Interactive Use of
OBJCOM
26.2. Calling
OBJCOM
from a Program
Figures for Chapter 26:
OBJCOM
26–1. $compareObjmods
27.
PDFMOD
, Portable Data Format Routines
27.1.
pdfCharRead
27.2.
pdfChars
27.3.
pdfCharWrite
27.4.
pdfcRead
27.5.
pdfcWrite
27.6.
pdfDeInit
27.7.
pdfFldRead
27.8.
pdfInit
27.9.
pdfRead
27.10.
pdfWrite
27.11. The PDF
CHARADR
Read
PROCEDURE
s
27.12. The PDF
CHARADR
Write
PROCEDURE
s
Figures for Chapter 27:
PDFMOD
, Portable Data Format Routines
27–1. pdfCharRead (GENERIC)
27–2. pdfChars
27–3. pdfCharWrite
27–4. pdfcRead
27–5. pdfcWrite
27–6. pdfDeInit
27–7. pdfFldRead
27–8. pdfInit
27–9. pdfRead
27–10. pdfWrite
27–11. The PDF CHARADR Read PROCEDUREs
27–12. The PDF CHARADR Write PROCEDUREs
28.
PMERGE
, Page Merger
Tables for Chapter 28:
PMERGE
, Page Merger
28–1. PMERGE Page Specifications
Examples for Chapter 28:
PMERGE
, Page Merger
28–2. PMERGE Page Specification Example
28–3. PMERGE Example
29.
$ranCls
and
$ranMod
, Pseudorandom Number Generator
Figures for Chapter 29:
$ranCls
and
$ranMod
, Pseudorandom Number Generator
29–1. $ranCls and $ranMod
Examples for Chapter 29:
$ranCls
and
$ranMod
, Pseudorandom Number Generator
29–2. Use of $rand and $sRand
30.
RNMFIL
, File Renamer
Examples for Chapter 30:
RNMFIL
, File Renamer
30–1. RNMFIL Example
30–2. RNMFIL Example with a Rename Error
31.
SRTMOD
, Sorting Package
31.1. Sorting Dynamic
ARRAY
s of Ordered Data Types
31.2. Sorting
ARRAY
s with User-Defined Ordering
31.3. Multiple-
ARRAY
or Non-
ARRAY
Sorting
31.4. Reversing an
ARRAY
31.5. Reordering an
ARRAY
According to an Index
ARRAY
Figures for Chapter 31:
SRTMOD
, Sorting Package
31–1. sort (GENERIC)
31–6. reverse (GENERIC)
31–7. reorder (GENERIC)
Examples for Chapter 31:
SRTMOD
, Sorting Package
31–2. A Parallel Sorting Program
31–3. Input File parsrt.dat for PARSRT
31–4. PARSRT Execution
31–5. Use of generateMultipleQuickSort
32.
STAMP
and Object
MODULE
Security
32.1. Expiration Date
32.2. Password
32.3. Target CPU IDs
32.4. Target System
32.5. Stamping
MODULE
s in Libraries
32.6. Information about an Object
MODULE
32.7. Miscellaneous
32.7.1. List of Commands
32.7.2. Long Command Lines
32.7.3.
setToCompiledState
Example
32.7.4. Match-All Keys
32.8.
STAMP
Program Interface
Tables for Chapter 32:
STAMP
and Object
MODULE
Security
32–10. Forms of the STAMP library Command
Figures for Chapter 32:
STAMP
and Object
MODULE
Security
32–14. $executeStampCommands
Examples for Chapter 32:
STAMP
and Object
MODULE
Security
32–1. setExpirationDate
32–2. mixupExpirationDate
32–3. setMixedupExpirationDate
32–4. setPassword
32–5. mixupPassword
32–6. setMixedupPassword
32–7. setCpuIds
32–8. mixupCpuIds
32–9. setMixedupCpuIds
32–11. Stamping a MODULE in a Library
32–12. STAMP Help
32–13. setToCompiledState
32–15. Use of $executeStampCommands
33.
SUBCMD
, Subcommand Processor
33.1.
SUBCMD
Example
Examples for Chapter 33:
SUBCMD
, Subcommand Processor
33–1. SUBCMD Example with Subcommands Entered from TTY Using MAINED
34.
TVIEW
, Text File Viewer
34.1.
n
,
<eol>
,
^
,
+
n
, and
-
n
34.2.
C
and
C
n
34.3.
F
xxx
34.4.
P
34.5.
Q
34.6.
S
xxx
34.7.
W
xxx
34.8.
TVIEW
Example
Tables for Chapter 34:
TVIEW
, Text File Viewer
34–1. TVIEW Commands
Examples for Chapter 34:
TVIEW
, Text File Viewer
34–2. TVIEW Example
35.
WRDCOM
, Data File Comparer
Examples for Chapter 35:
WRDCOM
, Data File Comparer
35–1. WRDCOM Example
36.
XREF
, Cross-Reference
Tables for Chapter 36:
XREF
, Cross-Reference
36–1. XREF Keyword Options
Examples for Chapter 36:
XREF
, Cross-Reference
36–2. XREF Example
36–3. XREF Output for sample
Motif-Based MAINSAIL Tools Reference Guide
1. Introduction
1.1. MAINDEBUG User Interfaces
1.2. How the Motif GUI Is Built
Figures for Chapter 1: Introduction
1–1. To Get Started Quickly with the GUI Debugger
2. Debugger Sample Session
Figures for Chapter 2: Debugger Sample Session
2–1. Initial Debugger Window
2–2. The Open module... Dialog Box
2–3. SAMPLE's Source Text
2–4. Search Dialog Box
2–5. The Cursor at the Start of hash
2–6. The Debugger Draws a Box around a Statement Where a Breakpoint Is Set
2–7. Invoke Module Dialog
2–8. The Program's Prompts Appear in CMDLOG
2–9. The Main Window after the Breakpoint Is Reached
2–10. The Data Browser Window with Local and Outer Variables
2–11. The Data Browser Displays the PROCEDURE Stack
2–12. The Watched Expressions List
2–13. The Data Browser with the Watch Expr Window for s = "c"
2–14. A Data Browser with Two Panes
2–15. The Main Window with the Exit Confirmation Dialog
3. General Information
3.1. Installing the GUI
3.2. Customizing the GUI
3.3. Starting the GUI
3.4. Starting the GUI under Solaris
3.5. Making the GUI Debugger the Default
3.6. Basic Concepts
3.7. GUI Commands
3.7.1. Issuing Commands
3.7.2. Dialog Windows
3.8. Editing Commands
3.8.1. Changing the Current Buffer
3.8.2. Resizing Windows
3.8.3. Scrolling
3.8.4. Selecting Text
3.8.5. Typing in
SIMPED
3.8.6. Cutting, Copying, Pasting, and Deleting Text
3.8.7. Setting Local Options
3.9. Debugging Commands
Figures for Chapter 3: General Information
3–1. The Main Window
3–2. After Selecting a Word by Double-Clicking on It
3–3. After Replacing the Selection by Typing
4. Data Browsers
4.1. Navigation Controls
4.2. Display Object or Display Memory
4.3. Watch Expression Controls
4.3.1. Break Conditions for Watch Expressions
4.3.2. Controlling the Data Section or Coroutine in Which an Expression Is Watched
4.4. The Watch Controls
4.4.1. The
Watch
Expr
Window
Figures for Chapter 4: Data Browsers
4–1. Data Browser Window
4–2. A Program That Creates Records That Can Be Viewed in a Data Browser
4–3. Local Variables of Program in Displayed with POINTER Buttons Shown Next to POINTER Variables
4–4. Record Displayed after Clicking on a POINTER Button in
4–5. Four Watch Buttons and One POINTER Button
4–6. Browser with Multiple Panes
5. Graphical Performance Monitor
5.1.
Monitor
Memory
Pages
5.2.
Monitor
Proc
Pcs
5.3.
Monitor
Allocated
Classes
5.4.
Monitor
Collected
Classes
5.5.
Monitor
Proc
Chunk
Allocation
,
Monitor
Proc
String
Allocation
, and
Monitor
Proc
Static
Allocation
5.6.
Trace
Chunks
Figures for Chapter 5: Graphical Performance Monitor
5–1. MAINSAIL Monitor Window
5–2. Add Monitoring Items Window
5–3. Memory Map Window
5–4. The Memory Management Menu
5–5. The Settings Menu
5–6. The Info Menu
5–7. Procedure Pcs Window
5–8. Allocated Records and DataSecs Window
5–9. Garbage Collected Records and DataSecs Window
5–10. Chunk Space Allocated by Proc Window
6. Menu-by-Menu Command Descriptions
6.1.
File
Menu
6.1.1.
File
->
Edit
buffer
...
6.1.2.
File
->
Edit
file
...
6.1.3.
File
->
Save
buffers
...
6.1.4.
File
->
Change
front
end
...
6.1.5.
File
->
Invoke
foreign
editor
6.1.6.
File
->
Kill
buffers
...
6.1.7.
File
->
Kill
windows
...
6.1.8.
File
->
Global
options
...
6.1.9.
File
->
Local
options
...
6.1.10.
File
->
Resume
program
6.1.11.
File
->
Exit
6.2.
Edit
Menu
6.2.1.
Edit
->
Undo
6.2.2.
Edit
->
Redo
6.2.3.
Edit
->
Cut
6.2.4.
Edit
->
Copy
6.2.5.
Edit
->
Paste
6.2.6.
Edit
->
Delete
6.2.7.
Edit
->
Insert
pageMark
6.2.8.
Edit
->
Go
to
->
Previous
page
6.2.9.
Edit
->
Go
to
->
Next
page
6.2.10.
Edit
->
Go
to
->
Page
.
line
...
6.2.11.
Edit
->
Go
to
->
Absolute
line
...
6.2.12.
Edit
->
Go
to
->
Top
of
current
page
6.2.13.
Edit
->
Search
...
6.2.14.
Edit
->
Abort
command
6.3.
Subcommands
Menu
6.3.1.
Subcommands
->
Execute
Subcommand
...
6.3.2.
Subcommands
->
Execute
Subcommand
File
...
6.3.3.
Subcommands
->
Set
Parameters
...
6.3.4.
Subcommands
->
Searchpaths
...
6.3.5.
Subcommands
->
Logical
file
names
...
6.3.6.
Subcommands
->
Module
name
aliases
...
6.3.7.
Subcommands
->
Module
name
associations
...
6.3.8.
Subcommands
->
Global
symbols
...
6.3.9. Search Rule Manipulation Commands:
Subcommands
->
Exemods
...
,
Subcommands
->
Objmods
...
, and
Subcommands
->
Intmods
...
6.4.
Access
Menu
6.4.1.
Access
->
Open
module
...
6.4.2.
Access
->
Dispose
module
...
6.4.3.
Access
->
Open
module
instance
...
6.4.4.
Access
->
Open
coroutine
...
6.4.5.
Access
->
Open
intlib
...
6.4.6.
Access
->
Open
modlib
...
6.5.
Breaks
Menu
6.5.1. Changing Breakpoint Definitions
6.5.2.
Breaks
->
Set
breakpoint
at
cursor
6.5.3.
Breaks
->
Set
temp
breakpoint
at
cursor
6.5.4.
Breaks
->
Remove
breakpoint
at
cursor
6.5.5.
Breaks
->
Remove
all
breakpoints
6.5.6.
Breaks
->
Show
breakpoints
...
6.5.7.
Breaks
->
Set
breakpoint
...
6.5.8.
Breaks
->
Set
count
break
...
6.6.
MoveTo
Menu
6.6.1.
MoveTo
->
Caller
6.6.2.
MoveTo
->
Callee
6.6.3.
MoveTo
->
Break
context
6.6.4.
MoveTo
->
Command
context
6.6.5.
MoveTo
->
Exception
6.6.6.
MoveTo
->
Handler
6.6.7.
MoveTo
->
Code
dspl
...
6.7.
Show
Menu
6.7.1.
Show
->
Value
...
6.7.2.
Show
->
Object
...
6.7.3.
Show
->
Declaration
->
Original
source
...
6.7.4.
Show
->
Declaration
->
Synthesized
source
...
6.7.5.
Show
->
Declaration
->
Synthesized
source
with
proc
body
...
6.7.6.
Show
->
Data
browser
6.7.7.
Show
->
Memory
...
6.7.8.
Show
->
Options
...
6.8.
Execution
Menu
6.8.1.
Execution
->
Step
over
calls
6.8.2.
Execution
->
Step
into
calls
6.8.3.
Execution
->
Trace
procs
...
6.8.4.
Execution
->
Stop
tracing
procs
6.8.5.
Execution
->
Continue
->
From
break
6.8.6.
Execution
->
Continue
->
From
cursor
6.8.7.
Execution
->
Continue
->
From
position
...
6.8.8.
Execution
->
Remote
debug
...
6.8.9.
Execution
->
Local
debug
6.8.10.
Execution
->
Abort
user
program
6.8.11.
Execution
->
Invoke
module
...
6.8.12.
Execution
->
Monitor
...
6.8.13.
Execution
->
Compile
declarations
...
6.8.14.
Execution
->
Execute
statements
...
6.8.15.
Execution
->
Execute
commands
...
6.9. Command Buttons
Figures for Chapter 6: Menu-by-Menu Command Descriptions
6–1. File Menu
6–2. Edit Buffer Window
6–3. Edit File Window
6–4. Write buffer ...? Dialog Box
6–5. Change FrontEnd Dialog
6–6. The Kill Buffers Window
6–7. Kill Windows Window
6–8. Global Options Window
6–9. Local Options Window
6–10. Edit Menu
6–11. Go to Page and Line Window
6–12. Go to Absolute Line Window
6–13. Search Window
6–14. Searching for this, that, or the other
6–15. Searching for Identifiers this, that, the, or other
6–16. Searching for foo or bar at the Start of a Line
6–17. The Pattern Help Window
6–18. Subcommands Menu
6–19. Execute Subcommand Window
6–20. Execute Subcommand File Window
6–21. Parameters Window
6–22. Searchpaths Window
6–23. Logical File Names Window
6–24. Module Name Aliases Window
6–25. Module Name Associations Window
6–26. Global Symbols Window
6–27. Exemods Window
6–28. Access Menu
6–29. Open Module Window
6–30. Dispose Module Window
6–31. Open Module Instance Window
6–32. Open Coroutine Window
6–33. Open Intlib Window
6–34. Open Modlib Window
6–35. Breaks Menu
6–36. After Moving the Cursor to the Start of j .+ 2 and Choosing Breaks->Set breakpoint at cursor
6–37. After Moving the Cursor to the Start of j .+ 2 and Choosing Breaks->Set temp breakpoint at cursor
6–38. Breakpoint Window
6–39. Count Break Window
6–40. MoveTo Menu
6–41. Move to Code Dspl Window
6–42. Show Menu
6–43. Show Values Window
6–44. Show Objects Window
6–45. Show Declaration Original Source Window
6–46. Show Declarations Synthesized Source Window
6–47. Show Declaration Synthesized Source with Proc Body Window
6–48. Show Memory Window
6–49. Options Window
6–50. Execution Menu
6–51. Trace Procs Window
6–52. Continue from Position Window
6–53. Remote Debug Window
6–54. Invoke Module Window
6–55. Compile Declarations Window
6–56. Execute Statements Window
6–57. Execute Commands Window
Appendices for the Motif-Based MAINSAIL Tools Reference Guide
A. The
INVOKABLE
Compiler Directive and the
invokableModules
Parameter in the
$GUIEXE
Group
A.1.
INVOKABLE
Compiler Directive
A.2. The
invokableModules
Parameter in the
$GUIEXE
Parameter Group
B. MAINDEBUG, Motif, and X
B.1. Setting Up Your
.
Xdefaults
or
.
Xresources
File
B.2. Running X and Motif Applications Remotely
C. Display
MODULE
XDPY
top
contents
index
framed top
this page unframed
Table of Contents