1
0
mirror of https://github.com/cc65/cc65.git synced 2024-11-18 00:07:21 +00:00
Commit Graph

158 Commits

Author SHA1 Message Date
Irgendwer
32bbacbb78
Merge branch 'master' into popptr1 2018-05-21 13:33:14 +02:00
IrgendwerA8
c95ed4b8b5 Added "popptr1" which is of common use to save some bytes. 2018-05-20 15:30:18 +02:00
Oliver Schmidt
a795a27689
There's no 'closeallstreams' (anymore ?). 2018-05-17 11:11:40 +02:00
Greg King
33f602f9ad Shortenned the CBM close() by a byte and a cycle. 2018-02-26 15:07:13 -05:00
mrdudz
8902730756 cbm stuff from greggs pull request 2017-12-11 19:52:11 +01:00
Oliver Schmidt
06794b221d Made cbm_k_untlk() available. 2017-11-13 20:38:41 +01:00
Greg King
2c03b9a1bc Added C-code interfaces for the CBM Kernal functions SCNKEY and UDTIM. 2016-08-07 15:50:10 -04:00
Oliver Schmidt
13482984ca Introduced internal gotoxy that pops both parameters.
About all CONIO functions offering a <...>xy variant call
  popa
  _gotoxy

By providing an internal gotoxy variant that starts with a popa all those CONIO function can be shortened by 3 bytes. As soon as program calls more than one CONIO function this means an overall code size reduction.
2016-06-05 14:58:38 +02: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
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
Oliver Schmidt
5e960d106e Allow to override chars used for horizontal and vertical lines. 2015-10-12 21:04:06 +02:00
Oliver Schmidt
575f859a03 Keep low level VIC sprite stuff out of user code. 2015-10-09 18:33:35 +02:00
Greg King
6217f8fa3a Made the Commodore version of exec() work in programs that are so big that they load into all of BASIC RAM.
The function won't cause an "out of memory" error.
2015-09-28 11:27:39 -04:00
Greg King
38231a5cc6 Made _afailed() and uncompress() be fastcall functions. 2015-03-13 07:35:47 -04:00
Greg King
66d79da3c2 Made cbm_load() be a fastcall function. 2015-03-13 05:46:40 -04:00
Greg King
a798b1d648 Made __fastcall__ be the default calling convention for non-variadic functions. 2015-03-10 05:53:52 -04:00
Greg King
8324221360 Improved some multiplication code. 2014-07-17 07:11:14 -04:00
Greg King
c6e7d835ef Fixed a buffer overrun bug. 2014-07-17 07:05:10 -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
b8e65aca5a Used longer error text.
Added more codes and messages.
2014-05-28 23:01:48 -04:00
Greg King
3d6f54b7a6 Updated the CBM error tables.
* Added more mappings between DOS and C codes.
* Changed generic error messages into specific ones.
2014-05-26 09:03:43 -04:00
Greg King
449fceebdd Fixed typo (Ilegal). 2014-04-03 17:28:36 -04:00
Greg King
50c626d02b Avoided a reload by using a second register. 2013-12-23 12:20:28 -05:00
Greg King
263ae3ceb1 Made the CBM stdin consoles echo '\n' to the screen.
That fix makes Commodore platforms be consistent with other platforms' consoles.
2013-12-23 11:48:58 -05:00
Greg King
875212a850 Added more details about how the CBM exec() works. 2013-09-04 09:16:00 -04:00
Greg King
6a9ab1a69a Added a little more info about how CBM program-chaining works. 2013-08-25 00:58:27 -04:00
Greg King
d0fb1fe0ae Added the model-specific addresses that the CBM exec() needs. 2013-08-25 00:43:23 -04:00
Greg King
172ce14349 Made an exec() program-chaining function for the Commodore libraries. 2013-08-25 00:31:36 -04:00
Greg King
17333e4732 Fixed some line endings.
My Git and repositories are configured for POSIX; but sometimes, Windows line endings "sneak" into new files.
2013-07-25 13:53:15 -04:00
Greg King
3b544613d2 Moved the lightpen names from <mouse.h> to a new <pen.h>.
Renamed the adjuster pointer.
2013-07-25 13:32:40 -04:00
Greg King
42301b78ce Included a header that defines NULL. 2013-06-28 06:36:32 -04:00
Greg King
e63bf1cde1 Used a library-reference method to calibrate lightpen drivers.
The mouse reference is a pointer.  If it's NULL, the driver uses a default.  If it's non-NULL, then it points to a function that the driver can call.  That function will adjust the driver's calibration value.  It could ask the user to adjust the pen; or, it could read a file that holds a value from a previous calibration.

Application writers can choose how it's done: a function that's provided by the library, a custom function, or nothing.
2013-06-23 03:18:28 -04:00
Oliver Schmidt
7572834ebf Use cbm_load() to load overlays on CBMs. 2013-05-29 01:12:24 +02: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
ol.sc
89d4f4a90c Introduced getcurrentdevice() and implemented it for CBM and Apple.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5863 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-10-21 14:35:17 +00:00
ol.sc
1a80cd1071 Added check for disk in drive on chdir().
git-svn-id: svn://svn.cc65.org/cc65/trunk@5859 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-10-17 20:24:43 +00:00
ol.sc
8b26ed2a69 Implemented __syschdir on CBM. As getcwd returns a cached directory any direct access to __curunit would cause inconsistencies. Therefore __curunit was renamed to curunit to prohibit user access.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5857 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-10-16 21:39:40 +00:00
ol.sc
6618e08bc3 Minimal formatting adjustment.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5856 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-10-16 21:29:14 +00:00
ol.sc
3ca0ddb1b0 Better stick to the "high level" errno helpers as done everywhere else.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5845 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-10-10 20:51:10 +00:00
ol.sc
300817702f initcwd will be called from the upcoming __syschdir so it has to be moved out of the INIT segment - and so it doesn't make sense anymore to keep devicestr as separate module anymore as the integration with initcwd allows to omit the jmp from the latter to the former.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5844 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-10-10 19:32:30 +00:00
ol.sc
9ff0085f14 Removed TAB.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5842 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-10-10 19:12:29 +00:00
ol.sc
5d4a441dd8 Clear _oserror on success.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5841 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-10-07 20:20:54 +00:00
ol.sc
987c3066a3 Introduced getdevicedir() - with implementation for the CBMs.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5840 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-10-07 19:18:56 +00:00
ol.sc
59e96ef740 Turned the 'ST' status byte into a symbol resolved by the linker in order to allow to use it from code living in the 'cbm' directory.
Moved getdevice.s from 'c64'/'c128' to 'cbm' making use of the new 'ST' setup.

git-svn-id: svn://svn.cc65.org/cc65/trunk@5834 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-09-30 18:20:15 +00:00
ol.sc
093e83835d Have the internal function 'isdisk' set the carry for device 31. As the device id 31 doesn't really exist it is for sure no disk.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5818 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-09-05 19:07:34 +00:00
uz
942c0b6b2f Choose another way to fix the issue from r5804: When parsing the directory
name, add a file mask, so the result is "$0:*" or similar. When specified like
this, the drive accepts the r/o specifier ",R" so we don't have to complicate
the code in open().


git-svn-id: svn://svn.cc65.org/cc65/trunk@5805 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-08-06 18:45:26 +00:00
uz
55b56b2475 Fixed a bug: The floppies do not like ,R (for read mode) when opening the
directory.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5804 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-08-05 21:32:40 +00:00
uz
537b18d765 Fix invalid header offset (has been changed in opendir.c but checkin of
readdir.c was missing).
                     


git-svn-id: svn://svn.cc65.org/cc65/trunk@5800 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-08-01 08:49:09 +00:00
uz
fbdd6faff6 Fixed a comment.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5798 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-07-30 19:02:07 +00:00