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

35 Commits

Author SHA1 Message Date
Colin Leroy-Mira
f0b5b02966 Swap in LC before destructors, ROM after 2024-01-24 12:28:57 +01:00
Oliver Schmidt
e3cbc7e8b8 Moved run location of ONCE segment.
Make the same changes to the Apple II that were done with 0ee9b2e446 to the C64.

Notes:
- The startup code deliberately doesn't make use of symbols defined for the LC segment as that segment is optional.
- The <...>-asm.cfg configs move the segment BSS to an own memory area BSS although this doesn't seem necessary. However the benefit is that the size of the memeory area MAIN is identical to the number of bytes loaded from disk into RAM. To keep this an invariant for all Apple II configs allows to simplify the EXEHDR to just refer to the symbols defined for MAIN.
2016-03-17 21:07:19 +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
76a5a72403 Adjusted current working directory initialization on Apple and Atari.
Moving __cwd from BSS into INITBSS does of course ;-) not only impact the CBM targets but all targets with disk I/O support.

Note: Code using `__cwd-1` may trigger an ld65 range error because __cwd may end up at the very begining of a segment. As far as I see this is an ld65 bug which I'm not try to fix - at least here.
2015-10-15 00:15:38 +02:00
Oliver Schmidt
1748bb1ab6 Use well-known location BLTU2 for "memmove()". 2015-04-26 14:09:21 +02:00
Oliver Schmidt
3ed3e98ec7 Moved interrupt enabling to the interrupt constructor. 2015-02-16 15:43:08 +01:00
Greg King
c7969a78b0 Refined the comments in the target start-up files.
Fixed typo errors.  Made the comments consistent across all those files.
2014-08-24 10:10:20 -04:00
Oliver Schmidt
4452156d1a Avoid indirect jmp with unknown vector address. 2014-01-26 18:10:01 +01:00
ol.sc
7c9171ee87 Moved IRQ hooking / unhooking from startup code to constructor / destructor to avoid linking in the hooking / unhooking code (and callirq) for the majority of cc65 prorams not linking in interruptors.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5985 b7a2c559-68d2-44c3-8de9-860c34a00d81
2013-02-12 22:39:38 +00:00
ol.sc
610bb14988 Avoid mixing of memory areas and segments in address computations (and made move of segment INIT somewhat more readable).
git-svn-id: svn://svn.cc65.org/cc65/trunk@5726 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-16 22:13:58 +00:00
ol.sc
9cc99876b2 Moved Apple EXEHDR to separate module (similiar to CBMs).
git-svn-id: svn://svn.cc65.org/cc65/trunk@5708 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-10 21:05:51 +00:00
ol.sc
b4c237b2b1 Minor beautification.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4922 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-26 21:37:42 +00:00
ol.sc
5c35c213f6 Added author hint - as contained in the other source files.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4211 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-09-22 17:30:50 +00:00
ol.sc
0c161a6cdd Now that cc65 programs can run as SYS files themselves my ProDOS Loader ulimately has to change from a minimalistic shell replacement to a pure loader (without exit hook). This approach simplifies several things. However the "reboot after exit" option now present as a ProDOS Loader variant has to move into the cc65 program.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4172 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-09-14 19:58:06 +00:00
ol.sc
b7df1ed5d4 Being loaded by my 'ProDOS Loader' needs to be classified as being loaded as BIN from an interpreter (and not as SYS). But the 'ProDOS Loader' zeros the system bitmap up to the system global page (this is what it's about) so additionally check page $03 protection which is zero when loaded as SYS but one when loaded by 'ProDOS Loader 1.4'.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4168 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-09-13 19:50:09 +00:00
ol.sc
aeccd3a776 Allow to run programs as ProDOS SYS files (beside BIN files). To do so detect at runtime if BASIC.SYSTEM is present by checking the "signature" of the last system bitmap byte.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4146 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-09-11 16:27:20 +00:00
uz
8216bf1d6a Force an import of the special symbol __STARTUP__ in the C compiler when
main() is encountered. Define this symbol in the startup code. This will
automatically force linking of the startup code which can then reside inside
the standard library as any other object file.


git-svn-id: svn://svn.cc65.org/cc65/trunk@3988 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-07-31 12:05:42 +00:00
cuz
258a8e7d4c Move zpsave into its own segment to decrease the executable size.
git-svn-id: svn://svn.cc65.org/cc65/trunk@3852 b7a2c559-68d2-44c3-8de9-860c34a00d81
2008-07-15 18:34:20 +00:00
cuz
feae688346 Oliver Schmidt updated the graphics drivers and part of the C library for the
Apple machines.


git-svn-id: svn://svn.cc65.org/cc65/trunk@3816 b7a2c559-68d2-44c3-8de9-860c34a00d81
2008-03-16 09:37:22 +00:00
cuz
6ea5614493 Serial driver for the SSC card by Oliver Schmidt
git-svn-id: svn://svn.cc65.org/cc65/trunk@3627 b7a2c559-68d2-44c3-8de9-860c34a00d81
2005-09-08 21:03:46 +00:00
cuz
066b07c6ce Interruptor support
git-svn-id: svn://svn.cc65.org/cc65/trunk@3492 b7a2c559-68d2-44c3-8de9-860c34a00d81
2005-04-27 18:01:57 +00:00
cuz
2a688ef6fd Update from Oliver Schmidt
git-svn-id: svn://svn.cc65.org/cc65/trunk@3490 b7a2c559-68d2-44c3-8de9-860c34a00d81
2005-04-24 22:13:15 +00:00
cuz
c0f6dea213 Startup code with interruptor support by Oliver Schmidt
git-svn-id: svn://svn.cc65.org/cc65/trunk@3479 b7a2c559-68d2-44c3-8de9-860c34a00d81
2005-04-21 01:41:50 +00:00
cuz
10431b1067 Added an exit handler - code from Oliver Schmidt
git-svn-id: svn://svn.cc65.org/cc65/trunk@3341 b7a2c559-68d2-44c3-8de9-860c34a00d81
2004-12-21 15:56:48 +00:00
cuz
a57deeb58a Reworked version by Oliver Schmidt
git-svn-id: svn://svn.cc65.org/cc65/trunk@2913 b7a2c559-68d2-44c3-8de9-860c34a00d81
2004-03-11 21:54:22 +00:00
cuz
3b3e1bec17 Removed the empty LOWCODE segments from the startup files. This is now
handled by the OPTIONAL segment attribute in the linker config.


git-svn-id: svn://svn.cc65.org/cc65/trunk@2164 b7a2c559-68d2-44c3-8de9-860c34a00d81
2003-05-22 22:32:04 +00:00
cuz
467d8ad9c5 Added routines to handle command line params
git-svn-id: svn://svn.cc65.org/cc65/trunk@2012 b7a2c559-68d2-44c3-8de9-860c34a00d81
2003-03-10 21:21:46 +00:00
cuz
d7d86886b6 Add STARTUP and LOWCODE segments
git-svn-id: svn://svn.cc65.org/cc65/trunk@1601 b7a2c559-68d2-44c3-8de9-860c34a00d81
2002-11-23 11:10:50 +00:00
cuz
55dfc0f312 Use MEMSIZE instead of using a fixed high mem location
git-svn-id: svn://svn.cc65.org/cc65/trunk@1354 b7a2c559-68d2-44c3-8de9-860c34a00d81
2002-07-15 20:03:37 +00:00
cuz
750f5e5028 Added a file header
git-svn-id: svn://svn.cc65.org/cc65/trunk@1332 b7a2c559-68d2-44c3-8de9-860c34a00d81
2002-07-05 21:11:16 +00:00
cuz
33c1e82bda Move zp space out of crt0.s
git-svn-id: svn://svn.cc65.org/cc65/trunk@1291 b7a2c559-68d2-44c3-8de9-860c34a00d81
2002-05-26 09:09:10 +00:00
cuz
f3b93741ab Use the condes feature
git-svn-id: svn://svn.cc65.org/cc65/trunk@470 b7a2c559-68d2-44c3-8de9-860c34a00d81
2000-11-22 22:19:09 +00:00
cuz
7c436aec1d Squeeze 2 bytes out of the startup code
git-svn-id: svn://svn.cc65.org/cc65/trunk@414 b7a2c559-68d2-44c3-8de9-860c34a00d81
2000-10-30 21:46:45 +00:00
cuz
e0a619ff90 Place the zero page variables into the ZEROPAGE segment
git-svn-id: svn://svn.cc65.org/cc65/trunk@322 b7a2c559-68d2-44c3-8de9-860c34a00d81
2000-09-07 21:49:13 +00:00
uz
53dd513176 This commit was generated by cvs2svn to compensate for changes in r2,
which included commits to RCS files with non-trunk default branches.


git-svn-id: svn://svn.cc65.org/cc65/trunk@3 b7a2c559-68d2-44c3-8de9-860c34a00d81
2000-05-28 13:40:48 +00:00