waltje / asl-macro-assembler Goto Github PK
View Code? Open in Web Editor NEWLocal version of the ASL assembler, mainly for Windows building.
License: GNU General Public License v2.0
Local version of the ASL assembler, mainly for Windows building.
License: GNU General Public License v2.0
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 [email protected]. For questions regarding building on Windows with MSVC, please see the file README.MSVC and contact Fred N. van Kempen ([email protected]).
Update it to allow building with MSYS-MinGW64, Visual Studio and/or TinyC toolsets on Windows.
Maybe Alfred has a suggestion for an icon?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.