Commit Graph

243 Commits

Author SHA1 Message Date
mrdudz 891cb97b2f more cleanup, joystick works again 2015-07-12 14:27:24 +02:00
mrdudz 21999b081f simple conio test works again 2015-07-12 10:32:55 +02:00
mrdudz 877fd532c2 Merge remote-tracking branch 'upstream/master' into pcenginetarget 2015-07-11 13:05:26 +02:00
Stephan Mühlstrasser b4bab018ac More room by default for zero-page data. 2015-03-23 18:42:25 +01:00
Stephan Mühlstrasser 72a9e331e3 Fixed uninitialized use of low byte of address "load". 2015-03-14 00:01:12 +01:00
Greg King 87bce0d56b Changed a comment in the osic1p configure files. 2015-03-09 06:17:28 -04:00
Greg King 2d50267bd8 Added a second OSI C1P program file format.
Unlike the first format, the new format is already loadable; it doesn't need to be converted.
2015-03-07 16:39:44 -05:00
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