Stephan Mühlstrasser
222668c016
Implemented a one-character buffer for kbhit() and cgetc().
...
If kbhit() detects that a key is pressed, it fetches and
buffers the character. If cgetc() detects a buffered character,
this one is returned instead of fetching one with the PROM
routine.
2015-02-21 20:24:58 +01:00
Stephan Mühlstrasser
94f83ea439
Replace zeropage variable with standard tmp variable.
2015-02-12 21:29:19 +01:00
Stephan Mühlstrasser
679f5aa675
Use constants for screen width and height.
2015-02-12 20:54:47 +01:00
Stephan Mühlstrasser
5063e0ecca
Incorporated feedback for initial pull request.
2015-02-11 19:21:17 +01:00
Stephan Mühlstrasser
4e03d7448c
Merge branch 'master' of https://github.com/cc65/cc65 into c1p
2015-02-08 15:58:42 +01:00
Stephan Mühlstrasser
14c7e9fd16
Rename c1p target to osic1p
2015-02-03 22:42:35 +01:00
Stephan Mühlstrasser
19b3c1b32b
Configuration file for assembler-only build.
2015-01-31 22:45:18 +01:00
Stephan Mühlstrasser
b1f764bdc9
Minor cleanup of unnecessary newlines.
2015-01-11 20:08:39 +01:00
Greg King
43342366ed
Added comments that say why the ZPSAVE1 and ZPSAVE2 segments must be together.
2015-01-08 17:07:28 -05:00
Greg King
22e06c41d1
Fixed a bug that had padded Atmos binaries with 25 bytes too many.
2015-01-08 03:51:20 -05:00
Stephan Mühlstrasser
073b4c264a
Set default RAM size to 32 kB.
...
8 kB RAM are very small for "interesting" programs
compiled with cc65. Therefore set the default
RAM size to 32 kB.
2015-01-05 20:37:23 +01:00
Stephan Mühlstrasser
8fa5fc6108
Restructured according to coding conventions.
2015-01-02 20:28:36 +01:00
Greg King
d9df576fa6
Used an easier-to-remember way of creating a program that uses graphics RAM for other purposes.
2014-12-13 09:52:39 -05:00
mrdudz
1365afa845
more hacking
2014-11-30 11:20:57 +01:00
Stephan Mühlstrasser
67707f342d
Set default start address to 0x200
2014-11-29 20:56:49 +01:00
Stephan Mühlstrasser
ac88639f4a
Implemented cursor functionality.
2014-11-29 20:07:30 +01:00
mrdudz
4275b82117
added compiler/assembler target, lib compiles
2014-11-29 15:35:20 +01:00
Stephan Mühlstrasser
0a6afb59c0
Switch to assembler for cputc implementation.
2014-11-22 01:07:55 +01:00
Stephan Mühlstrasser
6edf57324e
Set default start address to 0x300.
...
Make start address configurable via --start-addr.
2014-11-16 20:07:59 +01:00
Greg King
09e50d433d
* Changed the way that Atmos programs are started.
...
- Put a BASIC-language stub at the beginning.
- Removed the Autostart flag.
Those changes make it easy to give command-line arguments to a program.
* Made the Atmos configure file accept a special symbol definition on ld65's command line. We can use "__RAMEND__" to increase the amount of RAM that's available to programs.
2014-11-09 06:32:11 -05:00
Stephan Mühlstrasser
0b186407f1
Merge https://github.com/cc65/cc65 into c1p
2014-11-02 16:17:16 +01:00
Oliver Schmidt
99f0a56f63
Merge pull request #122 from groessler/a5200
...
new target: Atari 5200 console
2014-05-30 22:52:51 +02:00
Christian Groessler
d9a8ea3b6c
Don't reserve space for display list in __RESERVED_MEMORY__ since the
...
default display list is in ROM.
2014-05-27 02:43:17 +02:00
Oliver Schmidt
9056e41f7f
Reintroduced optional INIT segment for (weird) NES TGI driver.
2014-05-01 22:12:05 +02:00
Oliver Schmidt
d6c3bd29ac
Renamed JUMPTABLE and cleaned up module.cfg.
...
This change was suppsed to fix the issue that the former JUMPTABLE is merked as 'ro' while it is actually written to in several scenarios. When drivers are converted using co65 and then compiled into ROMs the JUMPTABLE isn't copied to RAM and therefore the write operations in question fail.
However unfortunately I didn't succeed in changing that :-( Just setting the former JUMPTABLE to 'rw' broke the drivers. So I placed the DATA segment directly after the former JUMPTABLE segment. This made the drivers converted with co65 work again - obviously after changing libsrc/Makefile:235 from '--code-label' to '--data-label'. But the actual dynamic drivers still didn't work as the former JUMPTABLE wasn't placed as the beginning of the loaded file anymore. That effect could be changed by exchanging src/ld65/o65.c:1391 with src/ld65/o65.c:1394 but doing so broke the drivers again :-((
2014-05-01 21:44:39 +02:00
Oliver Schmidt
73a50ae3c0
Made LOWCODE and INIT optional (like the other targets).
2014-04-28 22:14:26 +02:00
Christian Groessler
92b32d7d0e
atari5200 update: simple conio "hello world" works now
2014-04-25 03:02:44 +02:00
Christian Groessler
f266612697
Merge remote-tracking branch 'upstream/master' into a5200
2014-03-20 00:24:11 +01:00
Karri Kaksonen
100ecb0a45
Use LOWCODE segment
2014-03-19 11:32:44 +02:00
Christian Groessler
84c655a907
use __RESERVED_MEMORY__ to reserve memory for the default 20x24 text screen
2014-03-13 02:36:10 +01:00
Christian Groessler
c8f7f2f161
first changes for atari5200 target
2014-03-01 17:20:09 +01:00
Christian Groessler
4b58a20b8c
Increase the default start address a bit in case BASIC is started
...
('OPTION' not pressed at power on). It would otherwise overwrite parts
at the beginning.
2014-02-21 23:34:05 +01:00
Christian Groessler
81fe7a3805
cleanups; split 'header' and 'init' part into two source files
2014-02-21 22:43:44 +01:00
Christian Groessler
478da8e51f
load CASHDR segment into RAM
2014-02-20 00:45:48 +01:00
Christian Groessler
3bd5d3f88b
Merge remote-tracking branch 'upstream/master' into cassette
...
Conflicts:
asminc/atari.inc
libsrc/atari/mou/atrst.s
2014-01-30 10:48:13 +01:00
Christian Groessler
0fa8960836
add EXTZP segment to atari-asm.cfg
2014-01-22 18:15:52 +01:00
Christian Groessler
f614a75717
add ZEROPAGE segment to apple2-asm.cfg and c64-asm.cfg
2014-01-22 18:15:51 +01:00
Christian Groessler
ca9fb8b6ed
make "ZEROPAGE" segment optional
2014-01-22 13:26:05 +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
40e49074a4
add support for 16K cartridges
2014-01-17 20:10:28 +01:00
Christian Groessler
5a404b6786
fix last change
2014-01-16 23:56:32 +01:00
Christian Groessler
94df0e8ef4
made more segments optional so that the config file can be used for assembler programs, too
2014-01-16 23:56:32 +01:00
Christian Groessler
b237bb9d9a
Add support to create cartridges.
2014-01-14 22:53:49 +01:00
Christian Groessler
057884ffa9
Atari: initial support to create cassette bootable programs -- unfinished
2014-01-02 19:28:22 +01:00
Oliver Schmidt
0a8efc9fc3
Revert "Added basic frame for new target 'creativision'."
...
This reverts commit 8e6b8dd0af
.
2013-12-05 21:45:20 +01:00
Oliver Schmidt
8e6b8dd0af
Added basic frame for new target 'creativision'.
...
Kym Greenshields <kym.greenshields@gmail.com> has expressed interest
in contributing and maintaining support for the VTech CreatiVision system.
2013-11-25 22:52:04 +01:00
Stephan Mühlstrasser
9fd27d6ef6
Merge branch 'master' into c1p
2013-11-19 20:53:17 +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
1077a2876e
Lower the default Atari start adress from $2E00 to $2000. With
...
the startup memory check of the "system check" load chunk this
should be fine
2013-10-04 01:04:06 +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
73d38b0ff2
Fix typo in last change.
2013-10-03 14:15:39 +02:00
Christian Groessler
417110d341
Use all available memory below the ROM.
2013-10-03 14:13:13 +02:00
Christian Groessler
7fb0cf4bb2
Some formatting and style fixes.
2013-10-01 11:36:37 +02:00
Christian Groessler
39a98f250b
untabify
2013-09-27 22:01:54 +02:00
Christian Groessler
c88e0818b4
Leave the character generator at $E000 like atarixl.cfg does.
2013-09-27 21:50:17 +02:00
Christian Groessler
722dbaa1aa
Add comment describing the need to have the runtime library compiled
...
with CHARGEN_RELOC enabled.
2013-09-20 18:09:16 +02:00
Christian Groessler
b713706304
Get rid of SAVEAREA segment: fold it into LOWDATA.
2013-09-18 00:48:01 +02:00
Christian Groessler
d0c41ecee9
Default atatixl.cfg file now leaves the character generator at $E000.
...
This reduces the potential to flicker, but creates two separate
memory areas in the high memory.
For applications which require a large continuous memory space in
high memory, atarixl-largehimem.cfg is provided. With high IRQ
activity or DL interrupt there might be flicker.
2013-09-18 00:38:29 +02:00
Christian Groessler
42835d91b8
remove __RESERVED_MEMORY__: not supported on atarixl
2013-09-18 00:28:48 +02:00
Christian Groessler
de639fdf6a
introduce SHADOW_RAM2
2013-09-18 00:27:45 +02:00
Christian Groessler
3df94fba92
introduce SHADOW_RAM2
2013-09-18 00:17:45 +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
237bb9850c
Remove obsolete ZPSAVE segment.
2013-09-13 16:00:56 +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
21e6654524
adjust size of SRPREP to account for 1K aligned character generator
...
(not page aligned as I thought before)
2013-09-04 22:25:29 +02:00
Christian Groessler
405a5df431
Merge remote-tracking branch 'upstream/master'
2013-08-21 16:38:13 +02:00
Oliver Schmidt
1dab0103f1
Made EXTZP segment optional on GEOS as it is used only by CONIO.
2013-08-20 07:43:47 +02:00
Stephan Mühlstrasser
0303b0cc6c
Adapt to memory size of C1P.
2013-07-15 22:24:10 +02:00
Stephan Mühlstrasser
b3b3578f08
Nominal support for target Ohio Scientific Challenger 1P
2013-07-14 22:50:38 +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
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
Christian Groessler
85dc09fd9f
add LOWBUFS segment
2013-06-12 13:26:26 +02:00
Christian Groessler
164fb56580
move ZPSAVE into area already saved by 2nd load chunk
2013-05-31 01:35:19 +02:00
Christian Groessler
34cf7657e8
Add two load chunks:
...
- First chunk checks system (if it's XL and memory is ok).
- Second chunk contains the contents for the shadow memory beneath the
ROM and copies the contents to their destination address.
It also moves the screen memory to low memory in front of the program.
2013-05-30 02:26:15 +02:00
Oliver Schmidt
7572834ebf
Use cbm_load() to load overlays on CBMs.
2013-05-29 01:12:24 +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
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
da255245ad
Adjusted comment.
2013-04-09 23:10:35 +02:00
Oliver Schmidt
37c492b544
Replaced builtin linker configs with ordinary .cfg files.
...
The benefits are:
- Independency of ld65 build from perl
- More transparent behaviour
2013-04-09 23:09:46 +02:00