ORCALib
Go to file
Stephen Heumann 7c2fb70c4a freopen improvements
This adds a check for the filename argument being null, in which case it bails out and returns NULL. Previously, it would just dereference the null pointer and treat the contents of memory location 0 as a filename, with unpredictable results. A null filename indicates freopen should try to reopen the same file with a different mode, but the degree of support for that is implementation-defined. We still don't really support it, but at least this will report the failure and avoid unpredictable behavior.

It also removes some unused code at the end, but still forces fputc and fgetc to be linked in. These are needed because there are weak references to them in putchar and getchar, which may need to be used if stdin/stdout have been reopened.
2022-06-26 21:20:23 -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 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 Standardize indentation using spaces. 2022-06-25 18:27:20 -05:00
equates.asm Force the file mark to EOF whenever writing to a stream in append mode. 2022-06-26 18:59:57 -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 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 Implement asinh(). 2021-12-24 15:56:36 -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 freopen improvements 2022-06-26 21:20:23 -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 Standardize indentation using spaces. 2022-06-25 18:27:20 -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.