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

538 Commits

Author SHA1 Message Date
Christian Groessler
0cf0ed5510 Disable the high frequency mouse polling IRQ while the system does
time critical things (CRITICAL flag set).
2014-01-29 23:40:48 +01:00
Christian Groessler
33bc340814 add missing stddrv defines for atarixl 2014-01-21 23:09:00 +01:00
Christian Groessler
63ce6e28fe Adapt to new mouse driver interface ('prep' and 'draw') 2014-01-20 23:04:31 +01:00
Christian Groessler
9e155eb096 Always print the mouse cursor, even if coordinates haven't changed.
This makes sure that the cursor is always visible, even if the program
has written text to the screen (only valid for non-P/M mouse callbacks).
2014-01-20 23:04:31 +01:00
Christian Groessler
1fd7c2b318 fix bug where the high byte of X and Y positions were destroyed of
the user had lifted the pen
2014-01-20 23:04:31 +01:00
Christian Groessler
ecd10e632a some comment fixes 2014-01-20 23:04:31 +01:00
Christian Groessler
97d512a1e1 Detect pen button. If we read 228 for X or Y position, don't change cursor
position, since the pen was probably lifted from the pad.
2014-01-20 23:04:30 +01:00
Christian Groessler
6026776460 Trakball mouse driver 2014-01-20 23:04:30 +01:00
Christian Groessler
d61b8754fb Adapt to new mouse driver interface ('prep' and 'draw') 2014-01-20 23:04:30 +01:00
Christian Groessler
09aa007191 Change display logic of mouse cursor (hide and show functions). 2014-01-20 23:04:30 +01:00
Christian Groessler
2be7c7c88d Always print the mouse cursor, even if coordinates haven't changed.
This makes sure that the cursor is always visible, even if the program
has written text to the screen (only valid for non-P/M mouse callbacks).
2014-01-20 23:04:30 +01:00
Christian Groessler
77ba5b7e1c Fix timer IRQ hooking for atarixl target. 2014-01-20 23:04:30 +01:00
Christian Groessler
597c4a6b89 add comment 2014-01-20 23:04:29 +01:00
Christian Groessler
c78d7a82fb use ST mouse as static standard driver, too 2014-01-20 23:04:29 +01:00
Christian Groessler
c22b91e3c3 align comment to the same column 2014-01-20 23:04:29 +01:00
Christian Groessler
09da71c5d9 another small cleanup 2014-01-20 23:04:29 +01:00
Christian Groessler
24198a9ebb small cleanup 2014-01-20 23:04:29 +01:00
Christian Groessler
d614fc4e64 When disabling interrupts, restore original interrupt flag afterwards. 2014-01-20 23:04:29 +01:00
Christian Groessler
d742eeca9f Add drivers for ST mouse, Amiga mouse, and Atari trakball. Access
routines taken from old mouse.s.
2014-01-20 23:04:29 +01:00
Christian Groessler
95c6063f90 Add "joystick mouse" driver and default mouse callback routine (not
using P/M graphics).
2014-01-20 23:04:28 +01:00
Christian Groessler
2ab89621a9 Use deferred VBI instead of immediate VBI. A deferred VBI won't be
called if the user program has interrupts disabled which makes it
easier to avoid race conditions.
2014-01-20 23:04:28 +01:00
Christian Groessler
7bfe4c60db Adapt to new mouse driver interface ('prep' and 'draw') 2014-01-20 11:40:13 +01:00
Christian Groessler
ed9ec5a208 Always print the mouse cursor, even if coordinates haven't changed.
This makes sure that the cursor is always visible, even if the program
has written text to the screen (only valid for non-P/M mouse callbacks).
2014-01-20 11:40:13 +01:00
Christian Groessler
9eb79c5ee6 fix bug where the high byte of X and Y positions were destroyed of
the user had lifted the pen
2014-01-20 11:40:12 +01:00
Christian Groessler
c7c44adaff some comment fixes 2014-01-20 11:40:12 +01:00
Christian Groessler
77d23b9eba Detect pen button. If we read 228 for X or Y position, don't change cursor
position, since the pen was probably lifted from the pad.
2014-01-20 11:40:12 +01:00
Christian Groessler
f1646a3695 Trakball mouse driver 2014-01-20 11:40:12 +01:00
Christian Groessler
012268b8e8 Adapt to new mouse driver interface ('prep' and 'draw') 2014-01-18 00:11:18 +01:00
Christian Groessler
f091d0b3cd Merge branch 'master' of https://github.com/oliverschmidt/cc65 into cassette 2014-01-17 23:06:29 +01:00
Christian Groessler
f5e7e92a35 Merge remote-tracking branch 'upstream/master' into something_to_pull 2014-01-17 22:33:29 +01:00
Oliver Schmidt
a0a5a66f9e Minor cleanup. 2014-01-17 21:20:53 +01:00
Christian Groessler
40e49074a4 add support for 16K cartridges 2014-01-17 20:10:28 +01:00
Christian Groessler
2e44abf928 remove segment directive since CODE is the default segment 2014-01-17 11:48:12 +01:00
Christian Groessler
e6ed335056 put code in CODE segment 2014-01-17 11:48:12 +01:00
Christian Groessler
b292597f1e use copydata instead of own routine 2014-01-16 23:56:32 +01:00
Christian Groessler
fd4d7d93ea put this module's code into CODE segment 2014-01-16 23:56:32 +01:00
Christian Groessler
dcbefb1018 fix indentation 2014-01-16 23:56:32 +01:00
Christian Groessler
692ec4a05b remove TABs 2014-01-14 23:13:01 +01:00
Christian Groessler
b237bb9d9a Add support to create cartridges. 2014-01-14 22:53:49 +01:00
Christian Groessler
ff2c44f565 Change display logic of mouse cursor (hide and show functions). 2014-01-14 14:03:06 +01:00
Christian Groessler
3baf01f531 Always print the mouse cursor, even if coordinates haven't changed.
This makes sure that the cursor is always visible, even if the program
has written text to the screen (only valid for non-P/M mouse callbacks).
2014-01-14 14:03:06 +01:00
Christian Groessler
e85a3f9762 Fix timer IRQ hooking for atarixl target. 2014-01-14 14:03:06 +01:00
Christian Groessler
a3814da96f add comment 2014-01-11 01:37:49 +01:00
Christian Groessler
95ba42bb69 use ST mouse as static standard driver, too 2014-01-11 01:37:49 +01:00
Christian Groessler
f2d25348db align comment to the same column 2014-01-11 01:18:07 +01:00
Christian Groessler
a86133bb57 another small cleanup 2014-01-05 11:18:48 +01:00
Christian Groessler
231e597a4b small cleanup 2014-01-05 11:09:19 +01:00
Christian Groessler
f83c77bace When disabling interrupts, restore original interrupt flag afterwards. 2014-01-04 20:33:25 +01:00
Christian Groessler
be595b7304 Add drivers for ST mouse, Amiga mouse, and Atari trakball. Access
routines taken from old mouse.s.
2014-01-04 20:33:24 +01:00
Christian Groessler
a5dfce7c41 Add "joystick mouse" driver and default mouse callback routine (not
using P/M graphics).
2014-01-04 20:33:24 +01:00
Christian Groessler
6a17df69dd Use deferred VBI instead of immediate VBI. A deferred VBI won't be
called if the user program has interrupts disabled which makes it
easier to avoid race conditions.
2014-01-04 20:33:24 +01:00
Christian Groessler
057884ffa9 Atari: initial support to create cassette bootable programs -- unfinished 2014-01-02 19:28:22 +01:00
Christian Groessler
9e91f74297 small optimzation (found by Greg King) 2013-12-07 01:24:05 +01:00
Christian Groessler
2461163f38 remove old (static) serial driver boilerplate 2013-12-06 21:16:10 +01:00
Christian Groessler
932748e6ca remove debug code 2013-12-06 20:53:49 +01:00
Christian Groessler
074136826a add serial driver for Atari, still contains much debug code 2013-12-06 20:53:49 +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
9f44d00d17 Put EXE header and main chunk load header into a single file --
it makes no sense to be able to include/exclude them separately.
2013-10-18 14:54:22 +02:00
Christian Groessler
b153ec8896 atari-asm.cfg linker config file 2013-10-18 03:08:26 +02:00
Christian Groessler
bf3a23c34c Rename 'syschk' symbol in the linker config file, which forces inclusion
of the 'system check' load chunki, to '__SYSTEM_CHECK__'.
2013-10-18 03:08:15 +02:00
Christian Groessler
90bac9d38c rename LOWDATA segment to LOWBSS 2013-10-16 18:20:57 +02:00
Christian Groessler
3ef1ef3357 comment and formatting fixes 2013-10-16 18:20:48 +02:00
Christian Groessler
e3b9e9a76e small optimization 2013-10-04 12:41:08 +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
213f93cce4 disable DEBUG 2013-09-27 22:14:26 +02:00
Christian Groessler
39a98f250b untabify 2013-09-27 22:01:54 +02:00
Christian Groessler
34e75afec3 adapt to CHARGEN_RELOC 2013-09-20 18:09:53 +02:00
Christian Groessler
aa2167926a move CHARGEN_RELOC enabling to Makefile.inc 2013-09-20 00:26:49 +02:00
Christian Groessler
37ed72bc89 cleanup and document CHARGEN_RELOC change 2013-09-20 00:10:34 +02:00
Christian Groessler
fe75788015 add CHARGEN_RELOC knob to conditionally include the code to change CHBASE 2013-09-19 23:34:45 +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
c210dfcb94 use '.ifndef' instead of '.if .not .defined' 2013-09-18 16:36:03 +02:00
Christian Groessler
7c0b049ef7 some cosmetic cleanups 2013-09-18 01:27:44 +02:00
Christian Groessler
b713706304 Get rid of SAVEAREA segment: fold it into LOWDATA. 2013-09-18 00:48:01 +02:00
Christian Groessler
678ffbdd4d add support for SHADOW_RAM2 segment 2013-09-18 00:25:18 +02:00
Christian Groessler
f679c9703c consider __STACKSIZE__ when initializing sp for atarixl 2013-09-17 23:03:33 +02:00
Christian Groessler
367bd368c0 override _sys() function for Atari targets 2013-09-17 22:52:18 +02:00
Christian Groessler
85170998ad more atarixl linker cfg file cleanups; adapt atarixl-overlay.cfg 2013-09-13 21:47:39 +02:00
Christian Groessler
5caf6c8854 atarixl linker cfg file cleanups; set default load address to 400 for atarixl 2013-09-13 20:29:24 +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
5a1dcbbe4c Reduce flicker by waiting for horizontal retrace before switching ROM and
CHARGEN. Can be disabled by setting USEWSYNC to 0.
2013-09-11 23:59:24 +02:00
Christian Groessler
387f6e9b21 Check whether double buffering ('bounce buffering') is needed and only do
it if needed.
2013-09-11 22:45:41 +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
c48fbd8a2b remove ZP_CIOV_save and ZP_SIOV_save 2013-09-07 17:44:53 +02:00
Christian Groessler
4a0bdf871b Remove screen flicker while mapping ROM out and in.
Some cleanups.
2013-09-04 22:10:36 +02:00
Christian Groessler
ae9ab59549 xlmemchk.inc: Fix wrong calculation if load address is at an exact 4K border. 2013-08-27 22:45:23 +02:00
Christian Groessler
68fc4a1b15 rename KEYBDV_wrapper to KEYBDV_handler 2013-08-27 10:21:42 +02:00
Christian Groessler
a3511ea93d changes for atarixl target 2013-08-26 10:36:40 +02:00
Christian Groessler
4062cb6b6c atarixl target: add support for interruptors, adapt TGI drivers 2013-08-25 11:20:27 +02:00
Christian Groessler
5d7b5900f9 implement SIO handler 2013-08-22 14:47:50 +02:00
Christian Groessler
bb9f1d031a disable GETCWD command until I have a proper way to test it 2013-07-30 00:52:58 +02:00
Christian Groessler
d68307ee52 fix cleanup of stack 2013-07-24 10:24:47 +02:00
Christian Groessler
f2807df4c2 Don't import tmp1, slipped in by mistake in last commit 2013-07-24 00:44:44 +02:00
Christian Groessler
993555da94 implement _sysrename for Atari 2013-07-24 00:40:09 +02:00
Christian Groessler
8f23c1bac7 don't include errno.inc -- not necessary 2013-07-17 23:37:03 +02:00
Christian Groessler
0bd97f5445 remove unused import sreg 2013-07-17 23:33:12 +02:00
Christian Groessler
a3ad7d07a1 fix '_sysrmdir' for SpartaDOS 2013-07-16 01:29:49 +02:00
Christian Groessler
f04dc3570c close IOCB if open failed -- otherwise is is still marked as "in use" 2013-07-09 23:39:42 +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
250e26c56e Don't save original IRQ, NMI, and RESET vectors -- it's not needed. 2013-06-28 01:08:07 +02:00
Christian Groessler
1bd902787b move findfreeiocb function into its own object file 2013-06-25 01:29:56 +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
df1165e0e0 move findfreeiocb function into its own object file 2013-06-25 01:12:11 +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
be880bd157 remove TABs 2013-06-25 00:48:43 +02:00
Christian Groessler
1347947f0d some nicer debug messages 2013-06-25 00:48:26 +02:00
Christian Groessler
e3fb1b3d3d Fix writing one byte beyond screen buffer. 2013-06-21 11:33:55 +02:00
Christian Groessler
73c4566ca7 Fix writing one byte beyond screen buffer. 2013-06-21 01:53:13 +02:00
Christian Groessler
f16516047a cleanups and add more comments 2013-06-21 00:01:07 +02:00
Christian Groessler
6ed1b07e59 Fix check whether there is enough memory btw. MEMLO and the program
load address to move screen buffer there.
2013-06-20 23:31:41 +02:00
Christian Groessler
2a525f8a48 some cleanups 2013-06-19 11:05:03 +02:00
Christian Groessler
47d16e86a4 Add indication on the screen of occurring IRQs and NMIs (only for debug version).
NMI handler: set I status bit to original value before interrupt before chaining
to ROM NMI handler.
2013-06-18 13:00:51 +02:00
Christian Groessler
b45c765969 make one more debug message ".ifdef DEBUG" 2013-06-17 18:56:58 +02:00
Christian Groessler
e621ca0cce Better cleanup on program exit on atarixl target 2013-06-13 01:17:53 +02:00
Christian Groessler
7eca62f8e4 Move scrdev into it's own file. On the atarixl target it will be referenced by crt0.s. 2013-06-13 01:16:35 +02:00
Christian Groessler
a6477c8caf better error message 2013-06-13 01:16:05 +02:00
Christian Groessler
ce1313b36c some debug messages ".ifdef DEBUG" 2013-06-13 01:07:40 +02:00
Christian Groessler
9f8b5668e1 Add handling of write requests 2013-06-13 00:54:03 +02:00
Christian Groessler
e5f409e357 intermediate check-in -- added handling of read requests 2013-06-12 13:27:28 +02:00
Christian Groessler
8e8a37c47b intermediate check-in 2013-06-10 14:22:30 +02:00
Christian Groessler
56e330a4d7 Use symbolic names for all CIO commands. 2013-06-10 12:45:51 +02:00
Christian Groessler
b03913370c Use symbolic names for all CIO commands. 2013-06-08 00:35:07 +02:00
Christian Groessler
393bf6da54 Merge remote-tracking branch 'upstream/master' 2013-06-05 23:09:32 +02:00
Oliver Schmidt
5ed1fac0d6 Use unique variables for cc65 toolchain.
Originally I used the usual variables (like $(CC) and $(CFLAGS) ) but after
all this doesn't make sense as any predefined values and/or user defined
settings can only be wrong.
2013-06-04 23:39:00 +02:00
Christian Groessler
2823bc1e66 Merge remote-tracking branch 'upstream/master' 2013-06-04 10:54:34 +02:00
Oliver Schmidt
b0dd6c614f Added library reference tgi_libref to TGI interface. 2013-06-01 12:42:00 +02:00
Oliver Schmidt
23650cb946 Added library reference joy_libref to JOY interface. 2013-06-01 00:36:08 +02:00
Oliver Schmidt
619b215260 Added library reference em_libref to EMD interface.
Occasionally dynamically drivers suffer from not being to refer to
content in the C library. Therefore I added a mechanism to allow
a C library for a certian target to define a symbol that will be
handed over to dynamic drivers for that target. Then the drivers
can use their refernce to that symbol to access content in the C
library.
2013-06-01 00:11:31 +02:00
Christian Groessler
c1230b8af6 small cleanup 2013-05-31 14:49:46 +02:00
Christian Groessler
7f0dbde77f Take SHADOW_RAM size into account. 2013-05-31 14:49:25 +02:00
Christian Groessler
451b34bc75 When turning the ROM off and on, also change the chargen pointer. 2013-05-31 01:50:07 +02:00
Christian Groessler
8e632b2847 some more changes -- atarixl target basically works now 2013-05-31 01:47:25 +02:00
Christian Groessler
9228b002b0 Handlers which manage the banking in and out of the ROM. 2013-05-31 01:45:53 +02:00
Christian Groessler
9908561e80 add more saved content 2013-05-31 01:42:30 +02:00
Christian Groessler
00fca46d2a move ZPSAVE content into its own file (used by 2nd load chunk and crt0.s in atarixl target) 2013-05-31 01:40:45 +02:00
Christian Groessler
7aa2231702 adapt to atarixl target 2013-05-31 01:38:16 +02:00
Christian Groessler
c1468f11b2 rename CIOV and SIOV to CIOV_org and SIOV_org for atarixl target 2013-05-31 01:37:40 +02:00
Christian Groessler
79d150b626 Code & data for "shadow RAM preparation" load chunk in the atarixl target.
Intermediate check-in, unfinished...
2013-05-30 02:34:06 +02:00
Christian Groessler
480d2a9305 Code & data for "system check" load chunk in the atarixl target. 2013-05-30 02:33:09 +02:00
Christian Groessler
2f6e7874c6 "save area" is used to save modified system variables and ports. It's
shared between the second and main chunk.
2013-05-30 02:31:25 +02:00
Christian Groessler
06f441e90f Some small first changes for the 'atarixl' target. 2013-05-30 02:30:19 +02:00
Oliver Schmidt
56b6dcf814 Brought back mouse driver source code.
The mouse driver source code in question was removed two years
ago with commit 6cbbe66c87.
It seems however desirable to have it around visible in the source
code tree for reference purposes.
2013-05-28 22:07:04 +02:00
Oliver Schmidt
2e8a65bda4 Renamed Atari drivers.
As a preparation for the introduction of the 'atarixl' target it is
necessary that all drivers have a base name...
- no longer than 7 characters
- with a common prefix
2013-05-28 21:20:37 +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
88648ce717 Avoid usage of cl65 for library build as it requires 'install'. 2013-05-04 23:38:05 +02:00
Oliver Schmidt
81e467cdc2 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:15:30 +02:00