1
0
mirror of https://github.com/cc65/cc65.git synced 2024-11-19 06:31:31 +00:00
Commit Graph

2057 Commits

Author SHA1 Message Date
Christian Groessler
c48fbd8a2b remove ZP_CIOV_save and ZP_SIOV_save 2013-09-07 17:44:53 +02:00
Greg King
eb741e1396 Don't shift in an unknown carry bit.
If that bit happenned to be set, then it would defeat the fancy ADC shifter.
2013-09-05 11:32:50 -04:00
Christian Groessler
4a0bdf871b Remove screen flicker while mapping ROM out and in.
Some cleanups.
2013-09-04 22:10:36 +02:00
Greg King
875212a850 Added more details about how the CBM exec() works. 2013-09-04 09:16:00 -04:00
Christian Groessler
1e8e998991 Merge remote-tracking branch 'upstream/master' 2013-09-04 13:28:10 +02:00
Greg King
0684ab7ab9 Fixed some return pointers.
$1234 pointers were returned as $3434.
2013-08-28 02:58:41 -04: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
20c9fe44b4 Merge remote-tracking branch 'upstream/master' 2013-08-27 10:22:41 +02:00
Christian Groessler
68fc4a1b15 rename KEYBDV_wrapper to KEYBDV_handler 2013-08-27 10:21:42 +02:00
Oliver Schmidt
bc992e0398 Merge pull request #31 from greg-king5/cbm-chain
Commodore exec() function
2013-08-26 23:50:34 -07:00
Christian Groessler
a3511ea93d changes for atarixl target 2013-08-26 10:36:40 +02:00
Christian Groessler
e4c934b6f5 Merge remote-tracking branch 'upstream/master' 2013-08-26 09:00:11 +02:00
Christian Groessler
d5f3e91cb8 Merge remote-tracking branch 'upstream/master' 2013-08-25 11:21:52 +02:00
Christian Groessler
4062cb6b6c atarixl target: add support for interruptors, adapt TGI drivers 2013-08-25 11:20:27 +02: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
1a4d804a5f Added cursor-flags initiation.
The CBM510 runs programs in a non-system memory bank. It has its own zero page. Some things are copied from the system zero page; but, the cursor flags weren't copied. So, the cursor always blinked. That bug sometimes left cursor ghosts (reversed spaces) at the end of lines.
2013-08-23 18:19:49 -04:00
Oliver Schmidt
a49c1a5b6d Merge pull request #29 from greg-king5/mouseref
Removed commented-out "mouse_libref" lines.
2013-08-23 04:54:13 -07:00
Greg King
0159358934 Cleaned 2 source files by removing commented-out lines that are active in other files. 2013-08-23 07:36:11 -04:00
Oliver Schmidt
3671c7e19c Merge pull request #27 from greg-king5/cbm2
Added a joystick-mouse driver to the CBM510 library.
2013-08-23 04:28:49 -07:00
Greg King
1c83d8232b Added a driver to the CBM510 library that lets a joystick pretend to be a mouse. 2013-08-23 03:06:00 -04:00
Christian Groessler
5d7b5900f9 implement SIO handler 2013-08-22 14:47:50 +02:00
Christian Groessler
405a5df431 Merge remote-tracking branch 'upstream/master' 2013-08-21 16:38:13 +02:00
Oliver Schmidt
f5844e58d1 Merge pull request #25 from cybernesto/master
Promoted _auxtype to a struct to gain access to additional fields
2013-08-08 09:40:50 -07:00
Christian Groessler
7242ce8744 Merge remote-tracking branch 'upstream/master' 2013-08-06 19:48:07 +02:00
Greg King
6589288a04 Exposed, to C code, the names of the Atmos ROM's sound effect functions. 2013-08-06 11:12:30 -04:00
Mario Patiño
9b157a5b1e Defined a struct to contain the date and time data
To keep backward compatibility auxtype and the date/time are kept
separated.
A struct similar to the one used in dirent.h is used to access the
create_date and create_time fields.
2013-08-03 19:08:36 +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
7a45a7b2eb Merge remote-tracking branch 'upstream/master' 2013-07-29 10:09:24 +02:00
Oliver Schmidt
1f36066946 Merge pull request #24 from greg-king5/oric
Atmos Symbol Names
2013-07-26 03:01:10 -07:00
Greg King
f02843f05d Replaced number literals in source code with meaningful symbol names. 2013-07-26 03:33:54 -04:00
Christian Groessler
b78bbb5be7 Merge remote-tracking branch 'upstream/master' 2013-07-25 23:34:50 +02:00
Oliver Schmidt
752141b026 Merge pull request #12 from greg-king5/lightpen
Added Inkwell lightpen drivers for the C64 and the C128.
2013-07-25 13:29:46 -07: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
Christian Groessler
56588aa26a fix cleanup of stack 2013-07-24 10:25:36 +02:00
Christian Groessler
d68307ee52 fix cleanup of stack 2013-07-24 10:24:47 +02:00
Christian Groessler
f30b74ddb4 Don't import tmp1, slipped in by mistake in last commit 2013-07-24 00:45:20 +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
bbc31f67da implement _sysrename for Atari 2013-07-24 00:41:49 +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
Greg King
641a609cf3 Moved common symbol names out of sources, and into a global include file. 2013-07-16 00:30:56 -04:00
Christian Groessler
e0aaac0088 fix '_sysrmdir' for SpartaDOS 2013-07-16 01:31:15 +02:00
Christian Groessler
a3ad7d07a1 fix '_sysrmdir' for SpartaDOS 2013-07-16 01:29:49 +02:00
Christian Groessler
1bfd39ee20 close IOCB if open failed -- otherwise is is still marked as "in use" 2013-07-09 23:59:27 +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
Greg King
078a1df2f6 Look for NULL pointer more efficiently. 2013-07-05 12:32:19 -04: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
Greg King
a555b5f6a5 Merge branch 'master' into lightpen 2013-07-01 09:25:02 -04:00
Greg King
42301b78ce Included a header that defines NULL. 2013-06-28 06:36:32 -04: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
1e9823306a Merge remote-tracking branch 'upstream/master' 2013-06-28 00:49:12 +02:00
Oliver Schmidt
5edcd639e0 Made EXTZP segment option for modules.
This allows to remove the "add empty EXTZP segement to avoid warnings"
approach.
2013-06-28 00:30:24 +02:00
Oliver Schmidt
3af758ced5 Have __PLUS4__ imply __C16__. 2013-06-27 23:09:54 +02:00
Oliver Schmidt
460cea425f No delimiter comment between includes and first segment. 2013-06-27 13:04:52 +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
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
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
96b0ca0524 Merge remote-tracking branch 'upstream/master' 2013-06-19 11:06:17 +02:00
Christian Groessler
2a525f8a48 some cleanups 2013-06-19 11:05:03 +02:00
Oliver Schmidt
93bd9a8e51 Simply define CH_DEL exactly then when there none yet. 2013-06-18 19:06:46 +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
c79b23e95b Merge remote-tracking branch 'upstream/master' 2013-06-17 23:54:49 +02:00
Oliver Schmidt
e22e32c63e Avoid macro redefinition of CH_DEL for apple2enh.
I'm wondering why MS VC++ didn't complain about this...
2013-06-17 21:41:25 +02:00
Oliver Schmidt
83280e1ee2 Have __APPLE2ENH__ imply __APPLE2__ and __ATARIXL__ imply __ATARI__. 2013-06-17 21:34:08 +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
Greg King
66ca781bb1 Added library reference address to lightpen driver header. 2013-06-03 06:09:22 -04:00
Oliver Schmidt
b0dd6c614f Added library reference tgi_libref to TGI interface. 2013-06-01 12:42:00 +02:00
Oliver Schmidt
ae409e4978 Added library reference ser_libref to SER interface. 2013-06-01 11:03:14 +02:00
Oliver Schmidt
744abda24f Added library reference mouse_libref to MOU interface. 2013-06-01 00:53:17 +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
Oliver Schmidt
7024e2789d Explicitly set search paths for libraries build.
The libraries build is prepared to work with binaries not part of the current
working tree. But in this case the default search path surely points to some
other working tree. Even the binaries in this working tree might have been
compiled with non-standard builtin search paths.

Anyway when building the libraries we want always to use the headers from
the current working tree. Therefore we want to set them explicitly. Instead
of setting all in all five paths on the command lines of ca65, cc65 and ld65 I
opted to just set the single environment variable.
2013-05-31 21:30:14 +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
Greg King
051c21726b Added Inkwell lightpen drivers for the C64 and the C128.
They use the mouse driver programming interface.

Added a test program for lightpen drivers.  Now, it knows about only those two drivers; it will need updating when others are added.
2013-05-29 20:02:29 -04:00
Oliver Schmidt
7572834ebf Use cbm_load() to load overlays on CBMs. 2013-05-29 01:12:24 +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
98c47d1877 Introduced target 'atarixl'.
The target 'atarixl' is to be used for Atari XL (and better) machines.
It will disable the OS ROM and enable the Shadow RAM available on
those machine.

Note: This commit is only the inital step towards for this goal that just
replicates the target 'atari' as a starting point!
2013-05-28 21:56:37 +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
5bd0a53ea2 Added support for cc65 program arguments. 2013-05-24 18:36:30 +02:00
Oliver Schmidt
1354e1265f No delimiter comment between includes and first segment. 2013-05-24 18:29:31 +02:00
Oliver Schmidt
80b3da1058 The paravirtualization hooks are called for JMP too so there's no need for JSR. 2013-05-24 18:25:16 +02:00
Oliver Schmidt
3cc3b39c89 Made lib build less verbose if run as Travis CI build.
Travis CI limits the real time build output to 10000 lines. We need to be less verbose in the lib build to stay below that threshold.
2013-05-21 21:46:03 +02:00
Oliver Schmidt
55f9e6ac25 Added 'sim6502' and 'sim65C02' targets.
The targets allow to run cc65 programs in the sim65 exection
einvironment. As there are no "real" i/o facilities there's no
need for header files. Paravirtualized entry points are mapped
to $FFF0 ff. There's a large cc65 progam area from $0200-$FFEF.

The binary format includes a one-byte header indicating the required
execution environment: The value 0 means 6502 and the value 1
means 65C02. The load adress for the binary is fixed to $0200.

Note: Running sim65C02 programs currently doesn't work bcause
sim65 doesn't actually implement 65C02 opcodes.
2013-05-20 20:35:42 +02:00
Oliver Schmidt
16b77658a7 Made dependency handling for C sources actually work. 2013-05-12 18:21:49 +02:00
Greg King
415279457b Made geos-apple's file-converter depend on apple2enh's library.
The geos-apple target will build that library if it doesn't exist.
2013-05-09 14:46:04 -04:00
Oliver Schmidt
9ecf20a56a Force warning-free build (and added missing clean target). 2013-05-09 14:25:25 +02:00
Oliver Schmidt
4d35517f79 Allow for warning-free build of libraries. 2013-05-09 14:24:13 +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
54c54f8499 Include targetutil intermediates in dependency handling. 2013-05-09 09:27:36 +02:00
Oliver Schmidt
e4347b5c74 Removed unintentionally committed intermediate file. 2013-05-09 09:18:19 +02:00
Oliver Schmidt
443e336058 Search for "local" binaries only once. 2013-05-09 01:37:09 +02:00
Oliver Schmidt
00bb0f9704 Hack: Changed TARGET order to have apple2enh.lib available for convert.system.
There's a quite special case of a targetutil for the TARGET geos-apple having to be
built as TARGET apple2enh binary. We can't just add a dependency to ../lib/apple2enhlib
because the TARGETs are built in individual make instances (because of vpath).

Doing that the "right way" would be _very_ complicated and would turn the Makefiles way
less readable. Therefore I decided to solve that by just reordering the TARGETs. Surely
this won't work if i.e. 'make geos-apple' is entered on a clean system. But still I consider
it appropriate.

I ordered the TARGETs btw so that they are more in an alphabetical order...
2013-05-09 01:32:48 +02:00
Oliver Schmidt
092653cb5b Added support for building targetutils. 2013-05-09 01:12:26 +02:00
Oliver Schmidt
bf59515a9e Added support for building 'extra' object files. 2013-05-08 23:27:58 +02:00
Oliver Schmidt
717121a7cf Removed reference to CC65_HOME.
Now that we're pretty much independent from CC65_HOME
it doesn't make sense anymore to look for it in the Makefiles.

So rather dynamically check if there are "local" binaries in the
../bin directory. If there are "local" binaries use them - and
otherwise rely on "installed" binaries found in the path.
2013-05-07 19:05:43 +02:00
Oliver Schmidt
969c3b7488 Allow to build just the binaries or just the libraries from the top level Makefile. 2013-05-07 19:05:41 +02:00
Oliver Schmidt
1591871ba7 Added compatibility with cmd.exe (and reduced verbosity). 2013-05-05 22:33:25 +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
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
Oliver Schmidt
e1f9b188a0 Merge pull request #3 from greg-king5/ctype
Fixed two <ctype.h> functions.
2013-05-02 01:36:13 -07:00
Greg King
b225adaf03 Fixed isgraph() and ispunct() (macroes and library functions). 2013-05-01 16:23:47 -04:00
Oliver Schmidt
b1c38729d0 Exclude apple2enh-only functionality from apple2 biuld on source code level. 2013-05-01 22:02:47 +02:00
Oliver Schmidt
6891862bbe Adjusted include directive for local header. 2013-05-01 21:53:30 +02:00
Oliver Schmidt
42494c6323 Removed obsolete files. 2013-05-01 14:01:42 +02:00
Oliver Schmidt
4da29d157a Marked files to be excluded from build. 2013-05-01 14:00:01 +02:00
Oliver Schmidt
414a59ce65 Fixed typos. 2013-04-02 17:29:13 +03:00
Oliver Schmidt
2250698f81 Fixed typos. 2013-04-02 17:24:21 +03:00
Oliver Schmidt
cf0463efe3 Fixed typo. 2013-04-02 17:15:02 +03:00
ol.sc
2e5823d43d Save some bytes by sharing the code doing the actual vector setting. Note: Jumping from segemnt INIT to segment CODE is okay while the other way wouldn't be.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5989 b7a2c559-68d2-44c3-8de9-860c34a00d81
2013-02-14 16:48:05 +00:00
ol.sc
4a5bd362ac Removed unnecessary include.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5988 b7a2c559-68d2-44c3-8de9-860c34a00d81
2013-02-14 16:16:57 +00:00
ol.sc
9547f6f584 Fixed copy&paste bug.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5987 b7a2c559-68d2-44c3-8de9-860c34a00d81
2013-02-13 07:48:37 +00:00
uz
0205906707 Remove needless instruction to make the code assemble.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5986 b7a2c559-68d2-44c3-8de9-860c34a00d81
2013-02-13 07:31:04 +00:00