Git Product home page Git Product logo

asl's Introduction

Web page: http://john.ccac.rwth-aachen.de:8000/as/
Source repository: http://john.ccac.rwth-aachen.de:8000/ftp/as/source/c_version/

This is a mirror of Alfred Arnold's "The Macroassembler AS". It is generated
from the source drops at the source repository. No more detailed revision history
(say CVS) is available as of this writing.

For downloading, use repo/download.sh on the upstream branch. Then rebase the master
branch onto it.

I accept pull requests to the master branch, the upstream branch will remain pristine.

- [email protected]

---

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

AS is based upon the Gnu General Public License (GPL); read the file
COPYING for its details.  You should have received a copy of this file
together with AS; if not, someone sneaked in!

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 [email protected] .

asl's People

Contributors

kubao avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.