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
uz
470a4abcf2
Include the CBM disk label in the returned directory entries.
...
git-svn-id: svn://svn.cc65.org/cc65/trunk@5797 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-07-30 19:01:45 +00:00
uz
a62958764d
Move the _filetype variable into its own module, so people who want to change
...
the default can replace exactly this module without interfering with other
stuff.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5785 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-07-15 12:34:35 +00:00
uz
f7f4d01e52
Do not add the file type to the name when using append mode. It causes more
...
problems than it helps.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5784 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-07-15 12:30:43 +00:00
uz
511b826dfd
Use 's' as default file type instead of 'u'.
...
git-svn-id: svn://svn.cc65.org/cc65/trunk@5756 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-07-01 18:24:01 +00:00
uz
e03feeefae
Unified names of CBM kernal level functions and completed the list of
...
functions in the cbm.h header file.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5750 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-07-01 12:36:44 +00:00
uz
af799c922f
Fixed wrong filename for module c_getin.s
...
git-svn-id: svn://svn.cc65.org/cc65/trunk@5748 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-07-01 11:32:59 +00:00
uz
49542644df
Added missing function cbm_k_getin, which was in cbm.h but an implementation
...
was missing.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5747 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-07-01 11:30:41 +00:00
uz
5bc67cdaee
Move definitions for CBM file types into its own header file, since these
...
definitions are needed for file type macros in dirent.h. Unify names for the
include files.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5735 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-24 13:52:06 +00:00
uz
4e0cbcf33f
Reorder variables to take advangate of improved code generation.
...
git-svn-id: svn://svn.cc65.org/cc65/trunk@5694 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-07 13:31:32 +00:00