-
Notifications
You must be signed in to change notification settings - Fork 0
Local version of the ASL assembler, mainly for Windows building.
License
waltje/ASL-macro-assembler
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
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 Additionally, you can now build and run AS on Windows, using - Microsoft Visual Studio (2019 and up tested) - MSYS2:MinGW-64 (GCC 13.1.0 [and up] tested) - TinyC (I use this a lot, and it builds fine with it) and it seems to run fine on Windows XP (32b), Windows 7 (32/64b), Windows 8.1 (ARM), Windows 10/11 (x64 and ARM64.) The Windows ARM binaries had to be signed, of course, and soon, so will the Windows 11 ones have to be. See README.MSVC for instructions. 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. ~ 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. For questions regarding building on Windows with MSVC, please see the file README.MSVC and contact Fred N. van Kempen (waltje@varcem.com).
About
Local version of the ASL assembler, mainly for Windows building.