home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
tolkit45.zip
/
os2tk45
/
bin
/
readme.alp
< prev
next >
Wrap
Text File
|
1999-05-11
|
22KB
|
449 lines
_______________________________________________________________________________
ASSEMBLY LANGUAGE PROCESSOR (ALP) VERSION 4.00.006 README FILE
_______________________________________________________________________________
Welcome to the IBM Assembly Language Processor for OS/2 Warp (hereafter
referred to as ALP). Full documentation for ALP is provided in the online
manual titled "ALP Programming Guide and Reference". This README file provides
supplemental or errata information not documented in the online manual.
The information contained in this README describes a specific version of ALP.
You should verify that the version number displayed in both the ALP program
banner and in the heading of this document agree before using the information
contained herein. The ALP version number can be displayed by executing the
command: "alp +mb".
Use a non-proportional font to view this file.
_______________________________________________________________________________
CONTENTS
_______________________________________________________________________________
This document contains the following sections:
- Changes in Release 4.00.006
- Changes in Release 4.00.005
- Changes in Release 4.00.004
- Changes in Release 4.00.003
- MASM 5.10 Compatibility
- MASM 6.00 Compatibility
- Table of Assembler Directives Supported by ALP, MASM 5.10, and MASM 6.00
- Known Problems or Incompatibilities
- Support Information
Changes in Release 4.00.006
_______________________________________________________________________________
- No new programming features have been added in this release.
- Fixed abnormal termination (access violation) after issuing error
messages for certain types of syntax errors.
- Better recovery of code generator after emitting message ALP3225.
- Fixed incorrect generation of RET instructions in PROC epilogues.
Changes in Release 4.00.005
_______________________________________________________________________________
- The assembler no longer emulates MASM 5.10 by default. If you don't
currently use an explicit -Sv:XXX command line option, you may need to
make some changes to your code so that it will assemble in the default
mode (now -Sv:ALP), or specify an explicit -Sv:M510 to enable the old
MASM 5.10 behaviors.
- Several new MASM 6.00 constructs have been added:
- The EXTERNDEF, UNION, and OPTION directives are now supported.
- The LENGTHOF, SIZEOF, and OPATTR operators are now supported.
- The various "language" keywords (BASIC, C, PASCAL, SYSCALL, etc.)
are now supported on the COMM, EXTERN, PUBLIC, and PROC directives.
- The EXPORT keyword is now supported as an argument to the PROC
directive.
- Structure and union types may now be imbedded within other structure
and union types.
- Support for true arrays, a feature not offered by other assemblers.
The type declaration syntax has been extended to accept a new array
dimension declarator. This syntax can be used with the ASSUME, EXTERN,
LABEL, PROC arg, PROC LOCAL, and TYPEDEF directives to reference
single- or multi-dimensional array types. The TYPEDEF directive can
be used to define a named alias for an array type; such alias names
can then be used to create and initialize array variables. Array
variables created in this fashion can easily be viewed during program
execution from within a source-level debugger.
- Support for the Pentium Pro instruction set is included in this release.
- Improvements have been made to the symbolic debugging output, including
support for bitfields created with the RECORD directive.
- Improvements to the online documentation.
- Numerous other bug fixes and compatibility enhancements.
Changes in Release 4.00.004
_______________________________________________________________________________
- Fixed a problem where text equate names appearing in the first position
were being expanded inside of false conditional blocks.
- Certain types of pointers were not being correctly represented in the
type table of the symbolic debugging information, and therefore could
not be interpreted by the debugger.
- Procedure descriptors were not correctly represented in the symbol table
of the symbolic debugging information. As a result, procedure names
would not appear in the debugger control panel.
Changes in Release 4.00.003
_______________________________________________________________________________
- No new programming features have been added in this release.
- Some corrections and additions were made to the ALPREF.INF online
reference manual.
- The handling of text equates during macro expansions has been changed
for better compatibility with MASM. Text equates can now be used in
"paste" operations using the ampersand (&) operator, similar to the
normal handling of macro replacement arguments.
- Better handling of identifiers that begin with a period (.) character.
- Some situations that could cause phase errors during assembly were
corrected.
- ALP no longer emits an object file reference to the reserved group-name
"FLAT" unless it is referenced in the assembly source module.
- Relaxed syntax requirements for EXTRN directive and several IFxxx
preprocessor directives to allow for missing operands under MASM 5.10
emulation.
- Fixed some code generation problems in the PROC prologue and epilogue
handlers.
- Numerous other bug fixes and compatibility enhancements.
MASM 5.10 Compatibility
_______________________________________________________________________________
In most respects, ALP is a "MASM 5.10 Source Language Compatible" assembler.
It is not, however, a direct "drop-in" replacement for MASM. This section
describes some things to be aware of when using ALP as a replacement for MASM.
---------------------------------------------------------------------------
ALP does not use the same command line syntax as MASM 5.10 (or MASM 6.00).
The MASM2ALP utility is provided to allow use of ALP in existing MASM 5.10
build environments. Refer to the online reference manual for details.
---------------------------------------------------------------------------
Unlike MASM, ALP by default is case-sensitive with respect to user defined
identifiers (assembler reserved words are case-insensitive by default). If
case-insensitive assembly is desired, use the -Sc command line switch.
---------------------------------------------------------------------------
ALP currently supports all MASM 5.10 constructs except:
- Alphabetic segment ordering (the .ALPHA directive)
- Symbol cross referencing and the associated listing file directives
(.CREF and .XCREF)
---------------------------------------------------------------------------
Forward-referenced Unconditional Jumps
On the first pass, both assemblers assume that the target of a forward
referenced direct conditional JMP is of NEAR distance, and both reserve
space to allow for a 16 bit displacement field. If on the second pass it
is determined that the target can be reached using a distance of SHORT, an
8 bit displacement and a single NOP byte are generated to fill in the space
allotted on the first pass. This is normal behavior for both assemblers.
If however, the same (SHORT) target was specified in the JMP statement
using a "NEAR PTR" typecast override, MASM 5.10 ignores the override and
generates the same aforementioned code. ALP however, respects the typecast
operation and generates a true 16 bit displacement, which is also the
behavior exhibited by MASM 6.0. In the unlikely event that a program
depends upon the MASM 5.10 behavior, it will probably not operate correctly
when assembled with ALP.
MASM 6.00 Compatibility
_______________________________________________________________________________
ALP supports a limited level of compatibility with MASM 6.00. Use of the
-Sv:M600 command line option will enable this support. The cross-reference
table provided below lists the MASM 6.00 directives that are enabled when
this option is used. Additional changes in behavior include:
- Stricter error checking. Many conditions reported as warnings under
MASM 5.10 emulation are treated as errors under MASM 6.00 emulation.
- Visibility of MASM 6.00 keywords is enabled (see the online reference
for details). Note that visibility of processor related keywords is
limited to only those that MASM 6.00 itself recognizes; support for
newer processors with the .586, .586P, .686, .686P, and .MMX directives
is not enabled unless the -Sv:ALP option is used to turn off MASM
emulation.
While both ML (MASM 6.00) and ALP support assembly of multiple input files
with a single command line invocation, ALP does not support the "compile
and link" capability of ML. ALP treats all filenames found on the command
line as input source files, and does not look at the filename extension to
determine the file "type".
Table of Assembler Directives Supported by ALP, MASM 5.10, and MASM 6.00
_______________________________________________________________________________
"X" - Supported
"-" - Recognized but ignored
DIRECTIVE ALP MASM 5.1 MASM 6.0
┌────────────────┬─────────┬─────────┬─────────┐
│ %BIN │ X │ X │ X │
│ %OUT │ X │ X │ X │
│ .186 │ X │ X │ X │
│ .286 │ X │ X │ X │
│ .286P │ X │ X │ X │
│ .287 │ X │ X │ X │
│ .386 │ X │ X │ X │
│ .386P │ X │ X │ X │
│ .387 │ X │ X │ X │
│ .486 │ X │ │ X │
│ .486P │ X │ │ X │
│ .586 │ X │ │ │
│ .586P │ X │ │ │
│ .686 │ X │ │ │
│ .686P │ X │ │ │
│ .8086 │ X │ X │ X │
│ .8087 │ X │ X │ X │
│ .ABORT │ X │ │ │
│ .ALPHA │ - │ X │ X │
│ .BREAK │ │ │ X │
│ .CODE │ X │ X │ X │
│ .CONST │ X │ X │ X │
│ .CONTINUE │ │ │ X │
│ .CREF │ - │ X │ X │
│ .DATA │ X │ X │ X │
│ .DATA? │ X │ X │ X │
│ .DOSSEG │ X │ │ X │
│ .ELSE │ │ │ X │
│ .ELSEIF │ │ │ X │
│ .ENDIF │ │ │ X │
│ .ENDW │ │ │ X │
│ .ERR │ X │ X │ X │
│ .ERR1 │ X │ X │ X │
│ .ERR2 │ X │ X │ X │
│ .ERRB │ X │ X │ X │
│ .ERRDEF │ X │ X │ X │
│ .ERRDIF │ X │ X │ X │
│ .ERRDIFI │ X │ X │ X │
│ .ERRE │ X │ X │ X │
│ .ERRIDN │ X │ X │ X │
│ .ERRIDNI │ X │ X │ X │
│ .ERRNB │ X │ X │ X │
│ .ERRNDEF │ X │ X │ X │
│ .ERRNZ │ X │ X │ X │
│ .FARDATA │ X │ X │ X │
│ .FARDATA? │ X │ X │ X │
│ .IF │ │ │ X │
│ .LALL │ X │ X │ X │
│ .LFCOND │ X │ X │ X │
│ .LIST │ X │ X │ X │
│ .LISTALL │ X │ │ X │
│ .LISTIF │ X │ │ X │
│ .LISTMACRO │ X │ │ X │
│ .LISTMACROALL │ X │ │ X │
│ .MODEL │ X │ X │ X │
│ .MMX │ X │ │ │
│ .NOLIST │ X │ │ X │
│ .NOLISTIF │ X │ │ X │
│ .NOLISTMACRO │ X │ │ X │
│ .NOMMX │ X │ │ │
│ .NO87 │ │ │ X │
│ .POPCONTEXT │ │ │ X │
│ .PUSHCONTEXT │ │ │ X │
│ .RADIX │ X │ X │ X │
│ .REPEAT │ │ │ X │
│ .SALL │ X │ X │ X │
│ .SEQ │ X │ X │ X │
│ .SFCOND │ X │ X │ X │
│ .STACK │ X │ X │ X │
│ .STARTUP │ │ │ X │
│ .TFCOND │ X │ X │ X │
│ .UNTIL │ │ │ X │
│ .UNTILCXZ │ │ │ X │
│ .WHILE │ │ │ X │
│ .XALL │ X │ X │ X │
│ .XCREF │ - │ X │ X │
│ .XLIST │ X │ X │ X │
│ ALIGN │ X │ X │ X │
│ ASSUME │ X │ X │ X │
│ BYTE │ X │ │ X │
│ CATSTR │ X │ X │ X │
│ COMM │ X │ X │ X │
│ COMMENT │ X │ X │ X │
│ DB │ X │ X │ X │
│ DD │ X │ X │ X │
│ DF │ X │ X │ X │
│ DOSSEG │ X │ X │ X │
│ DQ │ X │ X │ X │
│ DT │ X │ X │ X │
│ DW │ X │ X │ X │
│ DWORD │ X │ │ X │
│ ECHO │ X │ │ X │
│ ELSE │ X │ X │ X │
│ ELSEIF │ X │ X │ X │
│ ELSEIF1 │ X │ X │ X │
│ ELSEIF2 │ X │ X │ X │
│ ELSEIFB │ X │ X │ X │
│ ELSEIFDEF │ X │ X │ X │
│ ELSEIFDIF │ X │ X │ X │
│ ELSEIFDIFI │ X │ X │ X │
│ ELSEIFE │ X │ X │ X │
│ ELSEIFIDN │ X │ X │ X │
│ ELSEIFIDNI │ X │ X │ X │
│ ELSEIFNB │ X │ X │ X │
│ ELSEIFNDEF │ X │ X │ X │
│ END │ X │ X │ X │
│ ENDIF │ X │ X │ X │
│ ENDM │ X │ X │ X │
│ ENDP │ X │ X │ X │
│ ENDS │ X │ X │ X │
│ = │ X │ X │ X │
│ EQU │ X │ X │ X │
│ EVEN │ X │ X │ X │
│ EXITM │ X │ X │ X │
│ EXTERN │ X │ │ X │
│ EXTERNDEF │ X │ │ X │
│ EXTRN │ X │ X │ X │
│ FOR │ X │ │ X │
│ FORC │ X │ │ X │
│ FWORD │ X │ │ X │
│ GROUP │ X │ X │ X │
│ IF │ X │ X │ X │
│ IF1 │ X │ X │ X │
│ IF2 │ X │ X │ X │
│ IFB │ X │ X │ X │
│ IFDEF │ X │ X │ X │
│ IFDIF │ X │ X │ X │
│ IFDIFI │ X │ X │ X │
│ IFE │ X │ X │ X │
│ IFIDN │ X │ X │ X │
│ IFIDNI │ X │ X │ X │
│ IFNB │ X │ X │ X │
│ IFNDEF │ X │ X │ X │
│ INCLUDE │ X │ X │ X │
│ INCLUDELIB │ X │ X │ X │
│ INSTR │ X │ X │ X │
│ INVOKE │ │ │ X │
│ IRP │ X │ X │ X │
│ IRPC │ X │ X │ X │
│ LABEL │ X │ X │ X │
│ LOCAL (1) │ X │ X │ X │
│ LOCAL (2) │ X │ X │ X │
│ MACRO │ X │ X │ X │
│ NAME (3) │ - │ - │ - │
│ .NOCREF │ - │ │ X │
│ .NOLIST │ X │ │ X │
│ .NOLISTIF │ X │ │ X │
│ .NOLISTMACRO │ X │ │ X │
│ ORG │ X │ X │ X │
│ PAGE │ X │ X │ X │
│ PROC │ X │ X │ X │
│ PROTO │ │ │ X │
│ PUBLIC │ X │ X │ X │
│ PURGE │ X │ X │ X │
│ QWORD │ X │ │ X │
│ REAL10 │ X │ │ X │
│ REAL4 │ X │ │ X │
│ REAL8 │ X │ │ X │
│ RECORD │ X │ X │ X │
│ REPEAT │ X │ │ X │
│ REPT │ X │ X │ X │
│ SBYTE │ X │ │ X │
│ SDWORD │ X │ │ X │
│ SEGMENT │ X │ X │ X │
│ SIZESTR │ X │ X │ X │
│ STRUC │ X │ X │ X │
│ STRUCT │ X │ │ X │
│ SUBSTR │ X │ X │ X │
│ SUBTITLE │ X │ │ X │
│ SUBTTL │ X │ X │ X │
│ SWORD │ X │ │ X │
│ TBYTE │ X │ X │ X │
│ TEXTEQU │ │ │ X │
│ TITLE │ X │ X │ X │
│ TYPEDEF │ X │ │ X │
│ UNION │ X │ │ X │
│ WHILE │ │ │ X │
│ WORD │ X │ │ X │
└────────────────┴─────────┴─────────┴─────────┘
Notes: 1. Local macro labels
2. Local stack variables
3. Obsolete directive
Known Problems or Incompatibilities
_______________________________________________________________________________
- The assembler does not recognize floating-point literals beginning with
a period. If this affects your code, prefix such literals with 0.
- The ALIGN, EVEN, and ORG directives cannot be used within a structure
type definition.
Support Information
_______________________________________________________________________________
If you encounter problems or need assistance while using ALP, refer to the
"Toolkit Support" procedures in the online document "Using Your Toolkit".
_______________________________________________________________________________
TRADEMARK INFORMATION
_______________________________________________________________________________
The following terms are trademarks of the IBM Corporation in the United
States or other countries or both:
-------------------------------------------------------
IBM
-------------------------------------------------------
OS/2
-------------------------------------------------------
The following terms are trademarks of other companies:
-------------------------------------------------------
Intel386 Intel
Pentium Intel
Pentium Pro Intel
MMX Intel
-------------------------------------------------------
IBM DISCLAIMS ALL WARRANTIES, WHETHER EXPRESSED OR IMPLIED, INCLUDING
WITHOUT LIMITATION, WARRANTIES OF FITNESS AND MERCHANTABILITY WITH
RESPECT TO THE INFORMATION IN THIS DOCUMENT. BY FURNISHING THIS
DOCUMENT, IBM GRANTS NO LICENSES TO ANY RELATED PATENTS OR COPYRIGHTS.
Copyright IBM Corporation, 1996-1998. All rights reserved.
_______________________________________________________________________________
END-OF-FILE README.ALP
_______________________________________________________________________________