ORCALib
Go to file
Stephen Heumann e00c21dd70 Work around bug in FX2C and FX2L.
These SANE operations can sometimes return incorrect values for certain negative integers such as -2147483648 and -53021371269120 (numbers with at least 16 low-order zero bits in their two's-complement representation). To work around this, we now avoid calling FX2C or FX2L on negative numbers, generally by saving and restoring the sign separately.

These workarounds are used in several of the new <math.h> rounding functions, and also for code that converts floating-point values to comp or long long. There are some places in SysFloat that should be patched similarly, so we may still hit this problem in certain situations until that is done.
2021-11-28 14:18:27 -06:00
obj ORCA libraries, from the Opus ][ CD 2017-10-01 18:00:58 -06:00
LICENSE ORCA libraries, from the Opus ][ CD 2017-10-01 18:00:58 -06:00
README.md ORCA libraries, from the Opus ][ CD 2017-10-01 18:00:58 -06:00
assert.asm Add __assert2 function to include the function name when reporting assertion failures. 2021-08-24 18:21:39 -05:00
assert.macros assert - use updated ph2/ph4 macros that support pei dp vs lda dp / pha. 2018-06-27 23:36:02 -04:00
backup CR -> LF 2017-10-31 13:14:07 -04:00
cc.asm Fix bug causing data corruption when assigning to multiple structs. 2021-09-17 18:25:32 -05:00
cc.macros Fix bug causing data corruption when assigning to multiple structs. 2021-09-17 18:25:32 -05:00
ctype.asm Use consistent indentation within files. 2020-02-16 13:28:18 -06:00
equates.asm Add support for EILSEQ errno value. 2021-10-02 14:34:35 -05:00
fcntl.asm CR -> LF 2017-10-31 13:14:07 -04:00
fcntl.macros CR -> LF 2017-10-31 13:14:07 -04:00
fenv.asm Add an implementation of <fenv.h> to ORCALib. 2021-03-06 16:29:02 -06:00
fenv.macros Add an implementation of <fenv.h> to ORCALib. 2021-03-06 16:29:02 -06:00
fpextra.asm Work around bug in FX2C and FX2L. 2021-11-28 14:18:27 -06:00
fpextra.macros Add new routines to reduce the precision of floating-point numbers. 2021-03-06 22:21:52 -06:00
int64.asm Work around bug in FX2C and FX2L. 2021-11-28 14:18:27 -06:00
int64.macros Add real to long long conversion routines. 2021-02-16 18:44:38 -06:00
locale.asm Add an implementation of the <locale.h> functions. 2021-09-30 18:34:54 -05:00
locale.macros Add an implementation of the <locale.h> functions. 2021-09-30 18:34:54 -05:00
m16.int64 Use some improved macros for 64-bit operations in the libraries. 2021-02-12 20:24:37 -06:00
make Add implementation of the <uchar.h> functions. 2021-10-03 16:02:30 -05:00
math2.asm Work around bug in FX2C and FX2L. 2021-11-28 14:18:27 -06:00
math2.macros Work around bug in FX2C and FX2L. 2021-11-28 14:18:27 -06:00
orca.asm Use consistent indentation within files. 2020-02-16 13:28:18 -06:00
orca.macros CR -> LF 2017-10-31 13:14:07 -04:00
setjmp.asm CR -> LF 2017-10-31 13:14:07 -04:00
signal.asm Spellcheck comments. 2020-02-16 13:29:53 -06:00
signal.macros CR -> LF 2017-10-31 13:14:07 -04:00
smac CR -> LF 2017-10-31 13:14:07 -04:00
stdio.asm Add support for EILSEQ errno value. 2021-10-02 14:34:35 -05:00
stdio.macros Use some improved macros for 64-bit operations in the libraries. 2021-02-12 20:24:37 -06:00
stdlib.asm Add float and long double versions of functions in SysFloat. 2021-11-21 14:34:52 -06:00
stdlib.macros Use some improved macros for 64-bit operations in the libraries. 2021-02-12 20:24:37 -06:00
string.asm Add support for EILSEQ errno value. 2021-10-02 14:34:35 -05:00
string.macros Add strcoll and strxfrm functions. 2021-09-30 18:37:54 -05:00
time.asm Implement strftime. 2021-09-26 20:31:15 -05:00
time.macros Implement strftime. 2021-09-26 20:31:15 -05:00
toolglue.asm Spellcheck comments. 2020-02-16 13:29:53 -06:00
toolglue.macros CR -> LF 2017-10-31 13:14:07 -04:00
uchar.asm Add implementation of the <uchar.h> functions. 2021-10-03 16:02:30 -05:00
uchar.macros Add implementation of the <uchar.h> functions. 2021-10-03 16:02:30 -05:00
vars.asm Add support for EILSEQ errno value. 2021-10-02 14:34:35 -05:00
vars.macros CR -> LF 2017-10-31 13:14:07 -04:00

README.md

ORCALib

Libraries for the ORCA language suite (ORCA/C, ORCA/M, ORCA/Pascal) for the Apple IIGS

If you would like to make changes to this compiler and distribute them to others, feel free to submit them here. If the changes apply to the Apple IIGS, they will generally be approved for distribution on the master branch. For changes that retarget the library to generate code for a different platform, the project will either be forked or a new repository will be created, as appropriate.

The general conditions that must be met before a change is released on master are:

  1. The modified library must compile under the currently released version of ORCA/M.

  2. The various languages that make use of the library mush still pass their respective test suites, or changes to those test suites must also be submitted.

Contact support@byteworks.us if you need contributor access.

A complete distribution of the ORCA languages, including installers and documentation, is available from the Juiced GS store at https://juiced.gs/store/category/software/. It is distributed as part of the Opus ][ package.