ORCALib
Go to file
Stephen Heumann 505f1c2804 lseek: make seeking to an offset before end of file work properly.
The direction specified by the offset was essentially reversed when calling lseek with whence==2 (seek to offset from end of file). Therefore, specifying a negative offset with whence==2 would fail, rather than seeking before the end of the file as it should.

(The ORCA/C manual is not totally clear about this behavior, but the new behavior is consistent with the POSIX spec and all other implementations I'm aware of, including traditional Unix and APW C. Note that Unix/POSIX allows seeking beyond the end of the file, but GS/OS does not.)

There are also improvements to error handling, so lseek consistently reports EINVAL for invalid offsets.
2022-07-14 18:34:24 -05: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 Add an 16-bit unsigned multiply routine suitable for use in C. 2022-07-06 22:19:32 -05:00
cc.macros Use newer, more efficient ph2/ph4 macros throughout ORCALib. 2022-06-30 19:01:47 -05:00
ctype.asm Standardize indentation using spaces. 2022-06-25 18:27:20 -05:00
equates.asm Restore changes to allow ungetc of byte values 0x80 through 0xFF. 2022-06-27 17:58:23 -05:00
fcntl.asm lseek: make seeking to an offset before end of file work properly. 2022-07-14 18:34:24 -05:00
fcntl.macros Use newer, more efficient ph2/ph4 macros throughout ORCALib. 2022-06-30 19:01:47 -05: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 Standardize indentation using spaces. 2022-06-25 18:27:20 -05:00
fpextra.macros Fix rounding issues introduced by SANE bug workarounds. 2021-11-30 20:19:57 -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 Implement asinh(). 2021-12-24 15:56:36 -06:00
math2.macros Use newer, more efficient ph2/ph4 macros throughout ORCALib. 2022-06-30 19:01:47 -05:00
orca.asm Use consistent indentation within files. 2020-02-16 13:28:18 -06:00
orca.macros Use newer, more efficient ph2/ph4 macros throughout ORCALib. 2022-06-30 19:01:47 -05:00
setjmp.asm CR -> LF 2017-10-31 13:14:07 -04:00
signal.asm Use newer, more efficient ph2/ph4 macros throughout ORCALib. 2022-06-30 19:01:47 -05:00
signal.macros Use newer, more efficient ph2/ph4 macros throughout ORCALib. 2022-06-30 19:01:47 -05:00
smac CR -> LF 2017-10-31 13:14:07 -04:00
stdio.asm Do not use separate segments for __-prefixed versions of functions. 2022-07-05 18:24:18 -05:00
stdio.macros Use newer, more efficient ph2/ph4 macros throughout ORCALib. 2022-06-30 19:01:47 -05:00
stdlib.asm Use newer, more efficient ph2/ph4 macros throughout ORCALib. 2022-06-30 19:01:47 -05:00
stdlib.macros Use newer, more efficient ph2/ph4 macros throughout ORCALib. 2022-06-30 19:01:47 -05:00
string.asm Use newer, more efficient ph2/ph4 macros throughout ORCALib. 2022-06-30 19:01:47 -05:00
string.macros Use newer, more efficient ph2/ph4 macros throughout ORCALib. 2022-06-30 19:01:47 -05:00
time.asm Use newer, more efficient ph2/ph4 macros throughout ORCALib. 2022-06-30 19:01:47 -05:00
time.macros Use newer, more efficient ph2/ph4 macros throughout ORCALib. 2022-06-30 19:01:47 -05:00
toolglue.asm Use newer, more efficient ph2/ph4 macros throughout ORCALib. 2022-06-30 19:01:47 -05:00
toolglue.macros Use newer, more efficient ph2/ph4 macros throughout ORCALib. 2022-06-30 19:01:47 -05: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 Restore changes to allow ungetc of byte values 0x80 through 0xFF. 2022-06-27 17:58:23 -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.