1
0
mirror of https://github.com/cc65/cc65.git synced 2024-12-27 00:29:31 +00:00
Commit Graph

443 Commits

Author SHA1 Message Date
Christian Groessler
94ba9575ec Implement exec() for Atari XDOS.
- Adds new ENOEXEC error code, also used by Apple2 targets.
- Maximum command line length is 40, incl. program name. This is
  an XDOS restriction.
- testcode/lib/tinyshell.c has been extended to be able to run
  programs.
2016-06-13 20:40:01 +02:00
Christian Groessler
5705d0b55b Use 'return0' for default 'doesclrscrafterexit()' implementation in libsrc/common.
Fix include/atari.h formatting.
2016-06-07 15:05:00 +02:00
Christian Groessler
346d88a6a7 Add issues from pull request #307. 2016-06-07 12:07:38 +02:00
Oliver Schmidt
1d1ba3ed3b Adjusted constructors.
The constructors are _NOT_ allowed anymore to access the BSS. Rather they must use the DATA segment or the INIT segment. The latter isn't cleared at any point so the constructors may use it to expose values to the main program. However they must make sure to always write the values as they are not pre-initialized.
2016-03-16 16:28:32 +01:00
Oliver Schmidt
419eb700b5 Renamed INITBSS to INIT and INIT to ONCE.
The way we want to use the INITBSS segment - and especially the fact that it won't have the type bss on all ROM based targets - means that the name INITBSS is misleading. After all INIT is the best name from my perspective as it serves several purposes and therefore needs a rather generic name.

Unfortunately this means that the current INIT segment needs to be renamed too. Looking for a short (ideally 4 letter) name I came up with ONCE as it contains all code (and data) accessed only once during initialization.
2016-03-06 21:27:19 +01:00
Oliver Schmidt
3d08abcfa8 Load INITBSS segment from disk.
Conceptually the INITBSS segment is not initialized in any way. Therefore it makes sense to not load it from disk. However the INIT segment has to be loaded from disk and therefore moved to its run location above the INITBSS segment. The necessary move routine increases runtime RAM usage :-(

Therefore we now "unnecessarily" load the INITBSS segment from disk too meaning that the INIT segment is loaded at its run location. Therefore there's no need for the move routine anymore.

After all we trade disk space for (runtime) RAM space - an easy decision ;-)

Notes:

- The code allowing to re-run a program without re-load present so far could not have worked as far as I can see as it only avoided to re-run the move routine but still tried to re-run the code in the INIT segment that was clobbered by zeroing the BSS. Therefore I removed the code in question altogether. I'm personally not into this "dirty re-run" but if someone wants to add an actually working solution I won't block that.

- INITBSS is intentionally not just merged with the DATA segment as ROM-based targets can't reuse the INIT segment for the BSS and therefore have no reason to place the INIT segment above INITBSS.

- Because ROM-based targets don't copy INITBSS from the ROM (like it is done with the DATA segment) all users of INITBSS _MUST_NOT_ presume INITBSS to be initialized with zeros!
2016-02-28 19:45:36 +01:00
Greg King
8e8d112029 Added pce-specific substitutes for memcpy() and memmove().
They are smaller and faster because they take advantage of the pce CPU's block-copy instructions.

Also, made a small improvement to the common memmove(), so that it is similar to the pce version.
2015-10-23 18:02:21 -04:00
Oliver Schmidt
0ee9b2e446 Changed run location of INIT segment.
So far the INIT segment was run from the later heap+stack. Now the INIT segment is run from the later BSS. The background is that so far the INIT segment was pretty small (from $80 to $180 bytes). But upcoming changes will increase the INIT segment in certain scenarios up to ~ $1000 bytes. So programs with very limited heap+stack might just not been able to move the INIT segment to its run location. But moving the INIT segment to the later BSS allows it to occupy the later BSS+heap+stack.

In order to allow that the constructors are _NOT_ allowed anymore to access the BSS. Rather they must use the DATA segment or the new INITBSS segment. The latter isn't cleared at any point so the constructors may use it to expose values to the main program. However they must make sure to always write the values as they are not pre-initialized.
2015-10-14 22:52:09 +02:00
Greg King
8a880580dc Reduced the size of the moveinit subroutine.
Made other changes that were recommended by Oliver.
* Changed its name from move_init to moveinit.
* Used self-modifying code in the subroutine.
* The INIT segment doesn't need to be optional (it's used by the start-up file).
2015-10-07 14:56:14 -04:00
Greg King
074e10d288 Adapted, to the c64 target, the INIT-segment overlay scheme from the apple2 targets.
When a program starts running, INIT is moved from one place to another place.  Then, INIT's code is executed; and, the first place is re-used for variables.  After the INIT code has finished, the second place can be re-used by the heap and the C stack.  That means that initiation code and data won't waste any RAM space after they stop being needed.
2015-10-05 05:47:43 -04:00
Greg King
b82bb4f5ba Moved two errno helper functions into separate files.
Only the function that actually is needed will be linked.  It is very useful for targets that do not have file-system I/O.
2015-09-25 14:06:58 -04:00
Greg King
dbf0adcec9 Improved longjmp() and setjmp(). 2015-09-11 14:18:22 -04:00
Greg King
9c55bd1c96 Fixed bugs in the interface for C-level interrupt handlers.
* Added an important ".code" directive.

* Import a linker-created zero-page symbol as an absolute address; then, convert it to zero-page when it is used.

Fixes bug report #198.
2015-08-26 19:33:34 -04:00
Greg King
0b6bcb565e Fixed a hardware-stack leak. 2015-07-17 20:36:56 -04:00
Greg King
146daa1d0a Made some string output functions reject an invalid NULL buffer pointer. 2015-07-09 14:46:28 -04:00
Greg King
219905c6bc Fix two string output functions' handling of their buffer-size parameter.
That parameter's type is unsigned; but, the functions return an int.  If the size is too big for a signed integer, then return an error code.
If the size is zero, then don't write anything into a buffer (the buffer pointer may be NULL).  But, do format and count the arguments.
2015-07-09 10:43:45 -04:00
Greg King
08e18c93c5 Added explicit settings of calling conventions in pointer-to-function declarations in system and library headers. 2015-06-22 00:15:48 -04:00
Greg King
38231a5cc6 Made _afailed() and uncompress() be fastcall functions. 2015-03-13 07:35:47 -04:00
Greg King
74c2415795 Changed literal zeroes of the style "#>0" into the style "#>$0000". 2014-09-10 19:15:07 -04:00
Greg King
0390c34e88 Changed multi-line C comments into another style.
The left side doesn't look unbalanced.
2014-06-30 16:51:07 -04:00
Greg King
2cc26e6e23 More conforming to the cc65 project's apparent writing style. 2014-05-23 16:52:02 -04:00
Greg King
a92f51fea5 Conformed to the cc65 project's coding style. 2014-05-23 00:35:19 -04:00
Greg King
0ec8c8cea7 Added a quoted-token parsing function. 2014-05-20 16:33:16 -04:00
Greg King
f82a43b98d Fixed the comments to say where the actual Left-Hand Side and Right-Hand Side are put.
A description of positions [left, right] is appropriate more for C code than for Assembly code.  (A description of timing [first argument, second argument] is more appropriate for the way that Assembly code is written.)
2014-05-11 10:43:06 -04:00
Greg King
228b9d1718 Added a fast subroutine to multiply two signed 8-bit numbers. 2014-05-11 01:08:27 -04:00
Oliver Schmidt
986c2248e2 Added cc65_umul8x8r16() based on umul8x8r16. 2014-03-27 21:22:02 +01:00
Oliver Schmidt
d001a6f1a0 Have _heapmaxavail() work as advertised.
The cc65 doc explicitly states that the return value of _heapmaxavail() can be used as parameter of malloc(). To actually allow for that the size of HEAP_ADMIN_SPACE has to be substracted from the raw size of the largest free heap block.
2014-02-20 21:04:11 +01:00
Oliver Schmidt
e0262750ce Have %I yield values [1..12] instead of [0..11]. 2013-12-09 19:53:54 +01:00
Emanuele Fornara
35388418fd fixed timep handling in time() 2013-10-02 20:55:01 +01:00
Christian Groessler
2051adeb4d Fix strtol 'endptr' return value. 2013-09-12 12:38:20 +02:00
Christian Groessler
5a84da0d4e Fix strtoul 'endptr' return value: It should point to the first invalid character,
not to the last valid character.
2013-09-11 21:54:50 +02:00
Greg King
0684ab7ab9 Fixed some return pointers.
$1234 pointers were returned as $3434.
2013-08-28 02:58:41 -04:00
Oliver Schmidt
85885001b1 Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
Oliver Schmidt
008b4c4e1d Replaced whole bunch for Makefiles with a single generic Makefile.
- No complex shell logic.
- "Source file shadowing" for all targets via vpath.
- Dependency handling.
- True incremental build.
- Don't write into source directories.
- Easy cleanup by just removing 'wrk'.
2013-05-04 22:10:48 +02:00
Greg King
b225adaf03 Fixed isgraph() and ispunct() (macroes and library functions). 2013-05-01 16:23:47 -04:00
silverdr
deb18b8e1e typo in the doc corrected, tabs adjusted
git-svn-id: svn://svn.cc65.org/cc65/trunk@5964 b7a2c559-68d2-44c3-8de9-860c34a00d81
2013-01-15 11:30:11 +00:00
uz
6eefd591c1 Moved the string that contains the ascii representation of LONG_MIN into its
own file.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5941 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-11-26 16:28:46 +00:00
uz
e04f1d8cb0 Fixed an error in calloc reported by Marc 'BlackJack' Rintsch.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5932 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-11-12 23:07:02 +00:00
uz
dc4e898abd Use the new declarations from the zeropage include file. In interrupt handlers
that call C code, we don't need to save the register bank, because the C code
will save it, when needed.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5909 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-11-04 15:23:05 +00:00
uz
7a0fa3ce67 Modifications for smaller code size.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5777 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-07-10 20:45:16 +00:00
uz
383157e743 Size optimizations.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5714 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-11 18:16:17 +00:00
uz
efb4cc9e37 Rearrangements for smaller size of generated code.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5704 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-10 19:02:54 +00:00
uz
c03fd881e3 Changes for better code generation.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5703 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-10 18:55:22 +00:00
uz
130e8fd090 Changed the code so that it better suits the code generation of the compiler
(which means, the resulting code is shorter).


git-svn-id: svn://svn.cc65.org/cc65/trunk@5702 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-10 18:32:38 +00:00
uz
bfd0f58686 Shortened the code.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5701 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-10 18:25:22 +00:00
uz
9ee0fa91e6 Fixed an invalid store offset, which caused an invalid pointer as a function
result. The actual conversion was ok.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5625 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-03-25 13:14:13 +00:00
uz
f059634cda Fixed an invalid store offset which resulted in random values returned by the
function.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5624 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-03-25 13:13:37 +00:00
uz
285aaf8933 Patch by Stefan Haubenthal: Remove __fastcall__ in comments and/or the
function description for functions that don't take any parameters.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5573 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-03-04 13:08:54 +00:00
ol.sc
7103aa04ae Added docs to set_irq / reset_irq.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5415 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-01-21 12:28:23 +00:00
uz
75b83260c6 Fix wrong offset of irq vector byte used as on/off flag.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5410 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-01-19 11:54:26 +00:00
ol.sc
5df392ff14 Added wrapper for C level irq handling.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5408 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-01-19 00:24:13 +00:00
uz
655ffe5dcd Make the 8x32 unsigned multiplication routine C callable.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5079 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-07-10 14:52:35 +00:00
uz
e531e5abd1 Removed __fastcall__ declarations for functions without parameters.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5073 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-07-07 20:19:35 +00:00
uz
977c64ce01 Fixed comments. No code change.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4996 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-04-25 18:49:24 +00:00
uz
a9990fbcf3 Changed priorities of destructors so atexit will be called before open files
are closed on exit, so atexit handlers may close the files themselves or
whatever is necessary for a clean shutdown.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4939 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-28 10:55:03 +00:00
uz
f79473f53a Slightly improved memset function by Christian Krüger.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4923 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-26 22:07:59 +00:00
uz
3afb4e4e94 Added getopt. The implementation is based on a public domain source,
originally written by Henry Spencer and supplied by Harald Arnesen.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4737 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-07-10 11:28:02 +00:00
uz
131a5cad09 Renamed oserrcheck to __mappederrno. Added an additional function named
__directerrno and moved both to errno.s. Changed several sources to use these
functions. Needs testing.
                         


git-svn-id: svn://svn.cc65.org/cc65/trunk@4718 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-06-10 18:10:53 +00:00
uz
0bdc045f65 Removed a comment that was no longer correct.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4716 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-06-06 14:31:24 +00:00
uz
23901280c9 Save a few bytes and cycles.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4707 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-06-04 09:38:35 +00:00
uz
75fbc5c5e3 Removed maperrno() since it's no longer needed.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4706 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-06-03 21:40:32 +00:00
uz
aa8f817182 Use _seterrno instead of assigning to _errno.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4705 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-06-03 21:37:27 +00:00
uz
eac4711731 No need to import __seterror, since this is done in errno.inc.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4704 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-06-03 21:33:55 +00:00
uz
49723f6a64 Use _errno, not errno.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4703 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-06-03 21:31:06 +00:00
uz
a7f392a96f Call __seterrno and save a few bytes.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4702 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-06-03 21:29:28 +00:00
uz
ef4a2e667d Call __seterrno instead of assigning to _errno and save a few bytes.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4701 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-06-03 21:26:52 +00:00
uz
30920f0709 Removed the prototype for _seterrno, since it is now provided in errno.h.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4700 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-06-03 21:25:17 +00:00
uz
8194408abc Set errno if the stream is in error state. Small code size improvements. Fixed
comment regarding _oserror.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4699 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-06-03 21:22:51 +00:00
uz
b97986b124 Rewrote parts of the code for better error handling. fileno must set errno and
return -1 in case of an invalid argument, which it didn't until now.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4698 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-06-03 21:20:10 +00:00
uz
1dabfda734 Added messages for EBADF (new) and EUNKNOWN (missing).
git-svn-id: svn://svn.cc65.org/cc65/trunk@4697 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-06-03 21:16:07 +00:00
uz
a9ba343e1b Use _seterrno instead of assigning to _errno to make the code shorter.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4694 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-06-03 20:46:08 +00:00
uz
1b71d3fe42 Rewrote the code to make it somewhat shorter.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4693 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-06-03 20:43:30 +00:00
uz
eacc7052eb Call _seterror instead of assigning to _errno to make the code somewhat
shorter. Fixed a comment regarding oserror/errno.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4692 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-06-03 20:27:59 +00:00
uz
00222e41ab Fixed a comment regarding errno/oserror.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4691 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-06-03 20:26:33 +00:00
uz
63b629b801 Call _seterrno instead of assigning to _errno to make the code shorter.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4690 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-06-03 20:21:23 +00:00
uz
1ab221bd05 Don't include errno.h since it is not needed.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4689 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-06-03 20:20:01 +00:00
uz
c3922228a9 Use _seterrno to make the code shorter.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4688 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-06-03 20:18:43 +00:00
uz
c6831e936a Added --forget-inc-paths to the assembler command line to avoid problems if
more than one version of ca65 is installed on the machine (Spiro Trikaliotis).


git-svn-id: svn://svn.cc65.org/cc65/trunk@4530 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-12-18 11:58:50 +00:00
uz
18272c0427 Working on the division and multiplication routines.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4443 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-11-04 19:41:54 +00:00
uz
655ba3e6ee Added a C callable entry point for the division routine.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4442 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-11-04 18:25:29 +00:00
uz
851926b301 Add C callable special multiplication routines.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4440 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-11-04 18:17:00 +00:00
uz
4e4beef8b7 Fixed the return types of the sine/cosine functions. Added comments.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4402 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-10-30 14:02:24 +00:00
uz
c65925b0b9 Merged the sine/cosine routines into one file, because they're often used
together, we save some code in this case, and the sine table isn't of real use
for programs, because it contains some specialities.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4400 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-10-30 09:58:11 +00:00
uz
7d453f5e11 Added fixpoint sine and cosine functions.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4399 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-10-29 23:19:00 +00:00
uz
ed2767e65f Changed names of the pragmas to be identical to the corresponding command line
options. This should make use easier. The old names of the pragmas are still
available but will cause warnings.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4364 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-10-14 12:55:15 +00:00
uz
e4d9fd3bd1 Fixed more bugs, shortened the code where possible.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4257 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-09-28 18:39:55 +00:00
uz
6c8fab8e51 Fixed two bugs, made the sources somewhat better readable.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4256 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-09-28 17:47:33 +00:00
uz
5967b4845e Let vsprintf call vsnprintf to save code.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4247 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-09-27 12:18:06 +00:00
uz
067383eb6a Added an untested implementation of snprintf.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4246 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-09-27 12:11:05 +00:00
uz
0b43444c26 Added an (only roughly tested) implementation of vsnprintf
git-svn-id: svn://svn.cc65.org/cc65/trunk@4245 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-09-27 12:04:36 +00:00
uz
2b50847a4c The _printf routine does not return anything.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4239 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-09-26 19:20:51 +00:00
uz
0e91f15ea8 Improved memset/memcpy/memmove functions by Christian Krueger.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4200 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-09-20 14:32:25 +00:00
uz
689d06929c Fixed an error in the makefile. strtoimax and strtoumax were in the wrong
list.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4189 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-09-18 17:23:48 +00:00
uz
75068a6528 New strtoimax and strtoumax standard functions as aliases for strtol/strtoul.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4182 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-09-17 18:37:42 +00:00
uz
5e55e1c651 Added a (currently untested) strtoul implementation. strtol and strtoul should
probably get merged somehow, because they share quite some code.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4180 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-09-15 21:45:25 +00:00
uz
2f2bced531 Shrink atoi by using negeax instead of inlined code.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4179 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-09-15 21:25:44 +00:00
uz
96637a8c35 Make system() fastcall like most other library functions.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4178 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-09-15 21:01:20 +00:00
uz
e5996090f7 Added an implementation of strtol (stdlib.h).
git-svn-id: svn://svn.cc65.org/cc65/trunk@4177 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-09-15 20:56:08 +00:00
uz
4b84d95891 labs() is also imaxabs().
git-svn-id: svn://svn.cc65.org/cc65/trunk@4167 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-09-13 18:06:43 +00:00
uz
feb31603da Use named constants from ctype.inc instead of hard coded numeric values.
git-svn-id: svn://svn.cc65.org/cc65/trunk@3929 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-02-10 22:11:56 +00:00
uz
b6d7dba170 Removed an unused import.
git-svn-id: svn://svn.cc65.org/cc65/trunk@3928 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-02-10 22:08:43 +00:00
cpg
b68094a2f6 add strnicmp.o
git-svn-id: svn://svn.cc65.org/cc65/trunk@3924 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-02-10 19:15:51 +00:00
cpg
222a421969 initial check-in
git-svn-id: svn://svn.cc65.org/cc65/trunk@3923 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-02-10 19:15:21 +00:00
uz
0ec5268baa Made strxfrm fastcall, added docs.
git-svn-id: svn://svn.cc65.org/cc65/trunk@3895 b7a2c559-68d2-44c3-8de9-860c34a00d81
2008-08-27 20:02:48 +00:00
uz
af9286852f A label must always be followed by a statement. This wasn't checked by the
compiler before.


git-svn-id: svn://svn.cc65.org/cc65/trunk@3864 b7a2c559-68d2-44c3-8de9-860c34a00d81
2008-08-03 12:54:11 +00:00
uz
4812feb44b git-svn-id: svn://svn.cc65.org/cc65/trunk@3863 b7a2c559-68d2-44c3-8de9-860c34a00d81 2008-08-02 22:02:54 +00:00
cuz
545df804bb Renamed setoserror to seterrnofromoserror to avoid clashes.
git-svn-id: svn://svn.cc65.org/cc65/trunk@3838 b7a2c559-68d2-44c3-8de9-860c34a00d81
2008-04-15 06:55:35 +00:00
cuz
6c5c0be79f Fixed an error.
git-svn-id: svn://svn.cc65.org/cc65/trunk@3837 b7a2c559-68d2-44c3-8de9-860c34a00d81
2008-04-15 06:44:46 +00:00
cuz
3293330f31 New entry point setoserror
git-svn-id: svn://svn.cc65.org/cc65/trunk@3835 b7a2c559-68d2-44c3-8de9-860c34a00d81
2008-04-13 17:35:15 +00:00
cuz
1184d5ad43 putchar didn't work
git-svn-id: svn://svn.cc65.org/cc65/trunk@3685 b7a2c559-68d2-44c3-8de9-860c34a00d81
2005-12-20 22:58:16 +00:00
cuz
c732d3e360 New stuff contributed by Oliver Schmidt
git-svn-id: svn://svn.cc65.org/cc65/trunk@3608 b7a2c559-68d2-44c3-8de9-860c34a00d81
2005-08-31 20:11:45 +00:00
cuz
50f707dd39 Ignore pmemalign.s
git-svn-id: svn://svn.cc65.org/cc65/trunk@3544 b7a2c559-68d2-44c3-8de9-860c34a00d81
2005-07-24 15:15:03 +00:00
cuz
7a624b8901 Replaced _aligned_malloc by the POSIX compatible function posix_memalign
(Greg King).


git-svn-id: svn://svn.cc65.org/cc65/trunk@3537 b7a2c559-68d2-44c3-8de9-860c34a00d81
2005-07-24 12:57:00 +00:00
cuz
c2140cdb08 Make strtok __fastcall__
git-svn-id: svn://svn.cc65.org/cc65/trunk@3514 b7a2c559-68d2-44c3-8de9-860c34a00d81
2005-05-17 21:11:09 +00:00
cuz
5c2eebcda1 The 65C02 code didn't work
git-svn-id: svn://svn.cc65.org/cc65/trunk@3488 b7a2c559-68d2-44c3-8de9-860c34a00d81
2005-04-23 14:12:19 +00:00
cuz
148dc9e5bf Fixed a bug
git-svn-id: svn://svn.cc65.org/cc65/trunk@3486 b7a2c559-68d2-44c3-8de9-860c34a00d81
2005-04-21 21:32:29 +00:00
cuz
e0319679f0 Added environment routines
git-svn-id: svn://svn.cc65.org/cc65/trunk@3483 b7a2c559-68d2-44c3-8de9-860c34a00d81
2005-04-21 21:26:15 +00:00
cuz
00633945b8 Leave __cwd_buf_size intact
git-svn-id: svn://svn.cc65.org/cc65/trunk@3467 b7a2c559-68d2-44c3-8de9-860c34a00d81
2005-04-19 11:48:05 +00:00
cuz
ee81f9a686 Make the size of _cwd FILENAME_MAX chars
git-svn-id: svn://svn.cc65.org/cc65/trunk@3465 b7a2c559-68d2-44c3-8de9-860c34a00d81
2005-04-19 11:28:11 +00:00
cuz
19e2d56016 Initialize _cwd by use of a constructor that calls a platform specific
function.


git-svn-id: svn://svn.cc65.org/cc65/trunk@3461 b7a2c559-68d2-44c3-8de9-860c34a00d81
2005-04-16 14:43:22 +00:00
cuz
624c808dbc Renamed O65_OS_CC65_MODULE -> O65_OS_CC65 in the headers.
Squeezed one precious byte out of the loader code:-)


git-svn-id: svn://svn.cc65.org/cc65/trunk@3445 b7a2c559-68d2-44c3-8de9-860c34a00d81
2005-04-01 08:23:56 +00:00
cuz
6ec87c5dd9 Move initialization code into the init segment
git-svn-id: svn://svn.cc65.org/cc65/trunk@3404 b7a2c559-68d2-44c3-8de9-860c34a00d81
2005-02-26 09:06:46 +00:00
cuz
6c796774d8 Code improvement
git-svn-id: svn://svn.cc65.org/cc65/trunk@3385 b7a2c559-68d2-44c3-8de9-860c34a00d81
2005-02-14 10:28:54 +00:00
cuz
100fbfc0d1 Fixed a bug (report and patch by Greg King)
git-svn-id: svn://svn.cc65.org/cc65/trunk@3384 b7a2c559-68d2-44c3-8de9-860c34a00d81
2005-02-14 09:59:54 +00:00
cuz
bc5d046503 Fixed tab removal which somehow went wrong
git-svn-id: svn://svn.cc65.org/cc65/trunk@3382 b7a2c559-68d2-44c3-8de9-860c34a00d81
2005-02-14 09:38:30 +00:00
cuz
de4162a63f Removed tabs from the foreign sources
git-svn-id: svn://svn.cc65.org/cc65/trunk@3379 b7a2c559-68d2-44c3-8de9-860c34a00d81
2005-02-14 09:22:37 +00:00
cuz
d406a9f677 Scanf improvements by Greg King
git-svn-id: svn://svn.cc65.org/cc65/trunk@3377 b7a2c559-68d2-44c3-8de9-860c34a00d81
2005-02-14 09:19:59 +00:00
cuz
a4f6f14a6b Fixed a bug
git-svn-id: svn://svn.cc65.org/cc65/trunk@3374 b7a2c559-68d2-44c3-8de9-860c34a00d81
2005-02-08 20:53:48 +00:00
cuz
7caee98fc0 New function: _aligned_malloc
git-svn-id: svn://svn.cc65.org/cc65/trunk@3349 b7a2c559-68d2-44c3-8de9-860c34a00d81
2005-01-05 21:07:23 +00:00
cuz
18e3e7cb11 Added a comment
git-svn-id: svn://svn.cc65.org/cc65/trunk@3348 b7a2c559-68d2-44c3-8de9-860c34a00d81
2005-01-05 21:05:35 +00:00
cuz
842ff39d4c New used block structure for the heap
git-svn-id: svn://svn.cc65.org/cc65/trunk@3347 b7a2c559-68d2-44c3-8de9-860c34a00d81
2005-01-05 21:05:11 +00:00
cuz
802f259b37 Fixed an identifier (cosmetic change)
git-svn-id: svn://svn.cc65.org/cc65/trunk@3346 b7a2c559-68d2-44c3-8de9-860c34a00d81
2005-01-05 21:04:35 +00:00
cuz
2342052bc3 Slice blocks even if the remainder is just sizeof(freeblock) bytes in size.
git-svn-id: svn://svn.cc65.org/cc65/trunk@3345 b7a2c559-68d2-44c3-8de9-860c34a00d81
2005-01-05 20:06:13 +00:00
cuz
d8fa43d7a6 Save a few bytes
git-svn-id: svn://svn.cc65.org/cc65/trunk@3344 b7a2c559-68d2-44c3-8de9-860c34a00d81
2005-01-05 20:05:27 +00:00
cuz
e55a4bcfd4 Changed the way, used blocks are managed
git-svn-id: svn://svn.cc65.org/cc65/trunk@3340 b7a2c559-68d2-44c3-8de9-860c34a00d81
2004-12-19 23:09:38 +00:00
cuz
569f57bc1b Fixed minor issues with the modifiers: Some modifiers where accepted (and
ignored) that do not exist.
Added C99 modifiers z, j and t.


git-svn-id: svn://svn.cc65.org/cc65/trunk@3326 b7a2c559-68d2-44c3-8de9-860c34a00d81
2004-12-11 18:33:49 +00:00
cuz
95f66b8ca9 Disable interrupts while modifying the signal table
git-svn-id: svn://svn.cc65.org/cc65/trunk@3324 b7a2c559-68d2-44c3-8de9-860c34a00d81
2004-12-10 11:50:54 +00:00
cuz
6de079ee57 Sqeezed a few bytes out of the copydata function
git-svn-id: svn://svn.cc65.org/cc65/trunk@3320 b7a2c559-68d2-44c3-8de9-860c34a00d81
2004-12-01 12:00:50 +00:00
cuz
0ab513b254 Use register to improve the code
git-svn-id: svn://svn.cc65.org/cc65/trunk@3319 b7a2c559-68d2-44c3-8de9-860c34a00d81
2004-11-30 20:17:44 +00:00
cuz
08074a2ee3 Fixed an error and improved the code
git-svn-id: svn://svn.cc65.org/cc65/trunk@3317 b7a2c559-68d2-44c3-8de9-860c34a00d81
2004-11-30 18:47:25 +00:00
cuz
18b154e6b1 Replaced vsscanf by an assembler version
git-svn-id: svn://svn.cc65.org/cc65/trunk@3315 b7a2c559-68d2-44c3-8de9-860c34a00d81
2004-11-28 18:45:13 +00:00
cuz
501cc4c6c8 Replace sscanf by an assembler version
git-svn-id: svn://svn.cc65.org/cc65/trunk@3314 b7a2c559-68d2-44c3-8de9-860c34a00d81
2004-11-28 18:23:16 +00:00
cuz
c74253d081 Replaced fscanf by an assembler version
git-svn-id: svn://svn.cc65.org/cc65/trunk@3313 b7a2c559-68d2-44c3-8de9-860c34a00d81
2004-11-28 18:11:17 +00:00
cuz
163c4e2fc8 Small optimization
git-svn-id: svn://svn.cc65.org/cc65/trunk@3312 b7a2c559-68d2-44c3-8de9-860c34a00d81
2004-11-28 18:10:47 +00:00
cuz
928acfee6c Removed an unused import
git-svn-id: svn://svn.cc65.org/cc65/trunk@3311 b7a2c559-68d2-44c3-8de9-860c34a00d81
2004-11-28 18:09:56 +00:00
cuz
626314e4cb Replace vscanf by an assembler version
git-svn-id: svn://svn.cc65.org/cc65/trunk@3307 b7a2c559-68d2-44c3-8de9-860c34a00d81
2004-11-27 18:23:24 +00:00
cuz
35b7d549f4 Replace vfscanf by an assembler version
git-svn-id: svn://svn.cc65.org/cc65/trunk@3305 b7a2c559-68d2-44c3-8de9-860c34a00d81
2004-11-27 14:56:54 +00:00
cuz
dbb003c9ac Added assembler include function for _scanf
git-svn-id: svn://svn.cc65.org/cc65/trunk@3304 b7a2c559-68d2-44c3-8de9-860c34a00d81
2004-11-27 14:45:49 +00:00
cuz
7cf5f27ec6 Added vscanf
git-svn-id: svn://svn.cc65.org/cc65/trunk@3303 b7a2c559-68d2-44c3-8de9-860c34a00d81
2004-11-26 23:16:57 +00:00
cuz
b1d4e1613b Rewrote _scanf. It does need some tests and improvements, but it's a more
standard version than before, and it does support the necessary functionality
to support scanf functions for files.
Added vfscanf, fscanf and vfscanf.


git-svn-id: svn://svn.cc65.org/cc65/trunk@3301 b7a2c559-68d2-44c3-8de9-860c34a00d81
2004-11-26 22:16:54 +00:00