Christian Groessler
1cc4fa9356
Atari: fix interrupt handling if extended memory is banked in
...
Extendend memory is mapped over the main memory in the 0x4000..0x7FFF
area. Many DOSes disable interrupts while extended memory is banked in,
but not all (e.g. SpartaDOS-X).
This change modifies the initial interrupt handler to map in main memory
before chaining to the "worker" handlers.
Since the initial interrupt handler uses a data segment to store the
trampoline to chain to the original handler, introduce a new "LOWBSS"
segment to hold this trampoline. Otherwise the trampoline may end up
inside the 0x4000..0x7FFF area.
Add a link time warning if "LOWCODE" segment lays within the extended
memory window.
2018-09-05 11:28:15 +02:00
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
Oliver Schmidt
56a8c69b14
Use AX paradigm.
2016-03-13 21:23:45 +01:00
Oliver Schmidt
d8c31cf1d3
Renamed RAM to MAIN for all disk based targets.
...
The name RAM doesn't make much sense in general for a memeory area because i.e. the zero page is for sure RAM but is not part of the memory area named RAM.
For disk based targets it makes sense to put the disk file more into focus and here MAIN means the main part of the file - in contrast to some header.
Only for ROM based targets the name RAM is kept as it makes sense to focus on the difference between RAM and ROM.
2016-03-07 01:28:55 +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
2bc4634860
Normalized style.
...
We don't use .ifndef .else .endif
2014-06-03 18:30:11 +02:00
Christian Groessler
73df73194a
fix indentation
2014-03-07 23:15:57 +01:00
Christian Groessler
b40fe584d8
fix typo
2014-03-07 23:15:11 +01:00
Christian Groessler
478a7679a2
Force inclusion of 'shadow RAM preparation' load chunk in crt0.s and
...
not in the linker config file.
2013-10-18 22:08:26 +02:00
Christian Groessler
b153ec8896
atari-asm.cfg linker config file
2013-10-18 03:08:26 +02:00
Christian Groessler
700fd4f187
Enable "system check" load chunk for non-XL Atari target.
2013-10-04 00:54:24 +02:00
Christian Groessler
7fb0cf4bb2
Some formatting and style fixes.
2013-10-01 11:36:37 +02:00
Christian Groessler
60e97f4d96
move macros to enable and disable the ROM into a separate include file
2013-09-19 23:21:09 +02:00
Christian Groessler
47a6390753
adjust some variable names
2013-09-19 22:40:20 +02:00
Christian Groessler
0a7cb64d2e
Use '.ifdef' and '.ifndef' instead of '.if .defined' and '.if .not .defined'.
2013-09-19 22:36:22 +02:00
Christian Groessler
f679c9703c
consider __STACKSIZE__ when initializing sp for atarixl
2013-09-17 23:03:33 +02:00
Christian Groessler
aac88eac53
Use labels instead of segment load addresses to specify entry points
...
in the EXE file.
2013-09-13 18:28:17 +02:00
Christian Groessler
8bc4b4c636
add code to add free shadow memory to heap (currently disabled)
2013-09-11 22:43:35 +02:00
Christian Groessler
d3d7499faa
Remove saving and restoring of zeropage variables.
...
Merge remote-tracking branch 'upstream/master'
Conflicts:
cfg/atarixl.cfg
libsrc/atari/crt0.s
2013-07-03 11:38:28 +02:00
Christian Groessler
7ebaec1802
Don't save and restore the zero page locations used.
...
Saves 19 bytes code (in the exe file) and reduces memory footprint
of the program by 45 bytes (code & bss).
2013-07-02 19:55:00 +02:00
Christian Groessler
a03b3574b6
use first free IOCB for "GRAPHICS 0" call instead of using a hard-coded one
2013-06-25 01:27:47 +02:00
Christian Groessler
b31e0d3249
small memory optimization: appmsav not needed in the xl target
2013-06-25 00:53:21 +02:00
Christian Groessler
e621ca0cce
Better cleanup on program exit on atarixl target
2013-06-13 01:17:53 +02:00
Christian Groessler
c1230b8af6
small cleanup
2013-05-31 14:49:46 +02:00
Christian Groessler
8e632b2847
some more changes -- atarixl target basically works now
2013-05-31 01:47:25 +02:00
Christian Groessler
06f441e90f
Some small first changes for the 'atarixl' target.
2013-05-30 02:30:19 +02:00
Oliver Schmidt
85885001b1
Removed (pretty inconsistently used) tab chars from source code base.
2013-05-09 13:57:12 +02: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
cpg
6d0db06931
interruptor support by Stefan Haubenthal
...
git-svn-id: svn://svn.cc65.org/cc65/trunk@5055 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-06-13 16:42:45 +00:00
cpg
7357b44104
don't use constructor to setup runtime stack
...
git-svn-id: svn://svn.cc65.org/cc65/trunk@4479 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-11-23 22:06:32 +00:00
cpg
2011f92c3a
save a byte (idea by Uz, done by Daniel Serpell)
...
git-svn-id: svn://svn.cc65.org/cc65/trunk@4475 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-11-23 21:17:56 +00:00
cpg
61b2834508
don't call __getdevdef in crt0.s, but make it a constructor of getdefdev.s
...
git-svn-id: svn://svn.cc65.org/cc65/trunk@4473 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-11-19 22:12:51 +00:00
cpg
38901e1614
move setup of stdin/stdout/stderr from crt0.s to getfd.s
...
git-svn-id: svn://svn.cc65.org/cc65/trunk@4472 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-11-19 20:57:23 +00:00
cpg
9cafacaf6d
introduce STARTUP segment to Atari platform
...
git-svn-id: svn://svn.cc65.org/cc65/trunk@3995 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-08-04 20:04:41 +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
cpg
2f39754838
use RUNAD (from atari.inc) instead of /bin/bash2E0
...
git-svn-id: svn://svn.cc65.org/cc65/trunk@3963 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-04-29 21:37:10 +00:00
cpg
e64672acc7
use __ZPSAVE_LOAD__ instead of __BSS_LOAD__ to create EXEHDR
...
git-svn-id: svn://svn.cc65.org/cc65/trunk@3851 b7a2c559-68d2-44c3-8de9-860c34a00d81
2008-07-04 17:32:00 +00:00
cuz
f257b2ee81
Moved the data that keeps a copy of the used zero page locations in its own
...
segment to reduce the executable size.
git-svn-id: svn://svn.cc65.org/cc65/trunk@3849 b7a2c559-68d2-44c3-8de9-860c34a00d81
2008-07-03 19:39:14 +00:00
cpg
be31ff1fe4
take __RESERVED_MEMORY__ from linker script into account when setting
...
upper memory limit
git-svn-id: svn://svn.cc65.org/cc65/trunk@3569 b7a2c559-68d2-44c3-8de9-860c34a00d81
2005-08-07 15:48:32 +00:00
cpg
0093a8f388
startup code now resides in LOWCODE segment
...
git-svn-id: svn://svn.cc65.org/cc65/trunk@3444 b7a2c559-68d2-44c3-8de9-860c34a00d81
2005-03-31 21:53:12 +00:00
cuz
54240ffad3
Move constructor code into the INIT segment. Note: Didn't change any
...
obsolete modules.
git-svn-id: svn://svn.cc65.org/cc65/trunk@3407 b7a2c559-68d2-44c3-8de9-860c34a00d81
2005-02-26 09:38:46 +00:00
cpg
1727d49c8d
DYNAMIC_DD support
...
git-svn-id: svn://svn.cc65.org/cc65/trunk@3334 b7a2c559-68d2-44c3-8de9-860c34a00d81
2004-12-16 22:43:47 +00:00
cuz
c15fd58d3b
Use structs
...
git-svn-id: svn://svn.cc65.org/cc65/trunk@2707 b7a2c559-68d2-44c3-8de9-860c34a00d81
2003-12-03 10:15:33 +00:00
cpg
624b88e976
use callmain; don't call getargs, it's now called from initlib
...
(it's now a constructor)
git-svn-id: svn://svn.cc65.org/cc65/trunk@2298 b7a2c559-68d2-44c3-8de9-860c34a00d81
2003-08-12 19:59:51 +00:00
cpg
444aa7c944
turn on cursor before returning to DOS
...
git-svn-id: svn://svn.cc65.org/cc65/trunk@1486 b7a2c559-68d2-44c3-8de9-860c34a00d81
2002-11-05 00:35: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
d0599a24fe
Move include files into /asminc, changed include file paths
...
git-svn-id: svn://svn.cc65.org/cc65/trunk@1249 b7a2c559-68d2-44c3-8de9-860c34a00d81
2002-04-21 14:19:16 +00:00
cuz
9cfcdfab53
Use _file.inc and its constants
...
git-svn-id: svn://svn.cc65.org/cc65/trunk@1206 b7a2c559-68d2-44c3-8de9-860c34a00d81
2002-03-24 13:32:13 +00:00
cpg
fb9da60180
adapted constructor function names to initxxx convention
...
git-svn-id: svn://svn.cc65.org/cc65/trunk@579 b7a2c559-68d2-44c3-8de9-860c34a00d81
2000-12-09 22:31:07 +00:00
cpg
1819b6a38e
graphics memory reservation is now done via a contructor; some condes
...
related changes
git-svn-id: svn://svn.cc65.org/cc65/trunk@543 b7a2c559-68d2-44c3-8de9-860c34a00d81
2000-12-03 23:50:16 +00:00