dect
/
asl
Archived
13
0
Fork 0
This repository has been archived on 2022-02-17. You can view files and clone it, but cannot push or open issues or pull requests.
asl/README

99 lines
3.8 KiB
Plaintext

Hello, AS-Users,
OK, here it is, the C-Version of AS that is theoretically compilable
on any system that has an ANSI-C-compiler! After a couple of
optimizations, the performance degradations due to the way C handles
strings have been compensated, so the C version should effectively run
a bit faster than the original Pascal version.
LICENSING
Those who have already used the original DOS/Pascal version of AS
will know that AS is completely free: you may use and modify AS for
whatever purpose you like (regardless whether it is commercial or
not), given that you do not remove my copyright from the sources and
that programs that build upon the AS sources are given out under the
same license terms. Of course, if you add something significant,
you may also add your own name to the copyright list!
To make things a bit more interesting (for me), I have added a detail
to the license terms of the C version: it is wineware! If you want
and have time, you may send me a bottle of your favourite wine...
PLATFORMS
The C version of AS was designed primarily to work with a Unix-like system
with an ANSI-C compilant compiler. Specifically, I have tested this version
of AS on the following machines:
- Digital Unix 3.2/4.0 with DEC-C
- Digital Ultrix for Mips 4.3/4.5 with gcc 2.7.2
- Digital Ultrix for VAX 4.1/4.5 with gcc 2.7.2
- Linux/Alpha with gcc 2.7.2
- Linux/Intel with gcc 2.7.2
- HP9000/7xx HP-UX 9.0/10.0 with HP-C
- MS-DOS with Borland-C 3.1 resp. 4.5
- OS/2 with emx 0.9
- Munix V.3 with cc
- NetBSD/Sun3 with gcc 2.7.2
- NetBSD/pmax with gcc 2.7.2
- SGI Irix 5.3/6.2 with SGI-C
- SunOS 4.1.3/Sparc with gcc 2.6.3 or cc
- Solaris 2.5/Sparc with Sun-C 3.0.1
- IBM RS/6000 AIX 4.1 with IBM XLC
DIFFERENCES / THINGS TO DO
The portable C version of AS has the following, known differences to
the original BP version:
- Floating point values are internally only stored as IEEE double
precision values, not in the 80-bit format Intel NPUs use.
Therefore, floating point ranges and accuracy are not as good as in
the BP version. Currently, there seems to be no portable,
standardized 128-bit-format for FP numbers. Every vendor (IBM,
SUN, CRAY, SGI...) uses his own format, so supporting them all
looks like a lot of work...
+ On most systems, integer arithmetic is done with 64-bit-numbers.
This should hurt only programs that explicitly exploit overflow
and sign effects on 32-bit-versions of AS.
- String variables must not contain NUL characters. This is due to
the fact that C uses the NUL character as an end-of-string marker,
and is probably the hardest thing to resolve :-(
~ most UNIX systems name their own assembler already 'as', so I had
to modify the name to 'asl'. The additional letter is to the honor
of a person that did quite a lot to spread the UNIX philosophy ;-)
I also had to rename 'bind' to 'pbind', but I guess that this won't
matter too much as it is a rarely used tool.
- the C version was designed to have exactly the same command line
interface as the original BP version; however, UNIX shells
interprete some special characters like the dollar sign for hex
values in their own way, so you might have to work with escape (\)
and quote characters.
+ the USEXMS resp. USEEMS and ASXSWAP environment variables do not
exist for Unix platforms (thankfully).
- the AS2MSG filter does not exist (wouldn't make sense because there
is no Borland Pascal for Unix.)
+ This version now contains dynamic switching of program messages, i.e.
you do not have to compile AS any more for a specific language. Instead,
AS will test the LC_MESSAGES, LC_ALL, or LANG environment variables
on Unix resp. the COUNTRY settings on OS/2 and MSDOS to dynamically
load the correct set of messages at runtime.
INSTALLATION
See the file 'INSTALL'
FEEDBACK
In case of problems or questions, send them to alfred@ccac.rwth-aachen.de .