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

5615 Commits

Author SHA1 Message Date
Greg King
f02843f05d Replaced number literals in source code with meaningful symbol names. 2013-07-26 03:33:54 -04:00
Greg King
3574f3a742 Normalized some hexadecimal addresses. 2013-07-16 01:48:57 -04: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
Oliver Schmidt
c9c66dcfdd Merge pull request #20 from greg-king5/linker
Fixed ld65's precalculation of memory-area sizes and file-offsets.
2013-07-10 02:37:45 -07:00
Oliver Schmidt
25399e9c61 Merge pull request #19 from groessler/something_to_pull
close IOCB if open failed -- otherwise it is still marked as "in use"
2013-07-10 02:24:12 -07:00
Greg King
cf7f7b9ef2 Fixed ld65's precalculation of memory-area sizes.
Before this fix, BSS-type and ZP-type segments never were counted.  Now, they are counted if their memory areas are filled.  (It must be done because their places in the output file are filled.)

The fix allows us to build programs for the CBM510 and CBM610 platforms.  We won't see an "Internal error" diagnostic message about a bad file-offset.
2013-07-10 02:37:09 -04: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
Oliver Schmidt
21ef04845e Merge pull request #18 from xofeht/master
dbginfo.c bug fix
2013-07-04 12:24:19 -07:00
thefox
c12a8bf377 Fixed a logic bug in dbginfo.c module that prevented some valid debug info files from being parsed. 2013-07-04 21:10:58 +03:00
Oliver Schmidt
b5c88a54d5 Merge pull request #17 from groessler/something_to_pull
Atari targets: Don't save and restore the zero page locations used.
2013-07-02 23:58:08 -07: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
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
Oliver Schmidt
a8d66d0ef4 Merge pull request #16 from groessler/something_to_pull
move findfreeiocb function into its own object file
2013-06-24 23:45:47 -07:00
Christian Groessler
1bd902787b move findfreeiocb function into its own object file 2013-06-25 01:29:56 +02:00
Oliver Schmidt
c4c67b9205 Fixed comment. 2013-06-21 12:36:37 +02:00
Oliver Schmidt
578d2fe25d Fixed comment. 2013-06-21 13:35:35 +03:00
Oliver Schmidt
d6849d96bd Merge pull request #15 from groessler/something_to_pull
Fix writing one byte beyond screen buffer.
2013-06-21 02:39:20 -07:00
Christian Groessler
e3fb1b3d3d Fix writing one byte beyond screen buffer. 2013-06-21 11:33:55 +02:00
Oliver Schmidt
93bd9a8e51 Simply define CH_DEL exactly then when there none yet. 2013-06-18 19:06:46 +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
Oliver Schmidt
92ad74a49f Avoid GCC "unconst" warning. 2013-06-13 15:26:17 +02:00
Oliver Schmidt
934a78731f Merge pull request #14 from groessler/something_to_pull
Use symbolic names for all CIO commands.
2013-06-10 04:38:10 -07:00
Christian Groessler
a14d4c803d remove TABs 2013-06-10 13:26:56 +02:00
Christian Groessler
56e330a4d7 Use symbolic names for all CIO commands. 2013-06-10 12:45:51 +02:00
Oliver Schmidt
32daa3dd2b Added support for 'prefix'.
If the variable 'prefix' is defined then the builtin search paths are set to
$(prefix)/lib/cc65/... allowing to build binaries intended for installation.

Note that the library build still works with these binaries as it generally
overrides the builtin search paths by setting the CC65_HOME env var.
2013-06-07 23:13:46 +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
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
Oliver Schmidt
7572834ebf Use cbm_load() to load overlays on CBMs. 2013-05-29 01:12:24 +02:00
Oliver Schmidt
17776739e2 Fixed discrepancy between definition and declaration. 2013-05-28 22:16:07 +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
bb37f2e9c8 Adjusted usage. 2013-05-24 18:36:59 +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
129fcff7e5 Fixed Carry handling in SBC opcode. 2013-05-21 23:47:19 +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
2a41b5a8d6 Adjusted sim65 MS VC build settings to the ones of the other binaries. 2013-05-21 20:54:33 +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
3a028fb621 Turned sim65 into a lightweight cc65 execution environment.
The sim65 source code has been a construction site for over a decade.
I was looking for a simple cc65 program execution environment for
regression tests. So I decided to re-purpose sim65 for that task by
removing about everything but the 6502 emulation.

There's no memory mapped i/o emulation whatsoever. Rather exit(),
open(), close(), read() and write() calls are supported by mapping
them through a thin paravirtualization layer to the corresponding
host os functions.

Note: The sim65 6502 emulation provides means to switch between
6502 and 65C02 emulation but currently there are no actual 65C02
opcodes implemented.
2013-05-20 20:20:14 +02:00
Oliver Schmidt
753aa29b15 Have 'avail' not be dependent on 'all'.
There are two reasons for removing this dependency:
- If someone does 'make avail' on the top level Makefile he ends up with
  binaries but without libraries - not nice. Better do just "nothing" and
  have hin understand that he needs to do 'make [all]' on the top level
  Makfile first.
- If 'make avail' is done via 'sudo' it isn't desirable to do a large amount
  of work as root.
BTW: I wasn't sure if this dependency is a good thing in the first place
but I saw it in many examples ('install' depending on 'all') so I did it too.
2013-05-17 16:21:05 +02:00