peterferrie
bbd419f365
assert parm count
2014-11-24 10:07:16 -08:00
Stephan Mühlstrasser
1e88032608
Copied wherex, wherey and ctype implementations from CBM
2014-11-23 15:56:38 +01:00
Stephan Mühlstrasser
0c62ddf123
Enhancements for cursor calculation
...
Fix handling of newlines.
Wrap around to top of screen when newline occurs
in last line.
Initialize screen width in crt0.s.
2014-11-23 15:32:48 +01:00
Stephan Mühlstrasser
12ca22c265
Remove unnecessary commented code.
2014-11-22 18:14:52 +01:00
Stephan Mühlstrasser
0a6afb59c0
Switch to assembler for cputc implementation.
2014-11-22 01:07:55 +01:00
peterferrie
0c204725bc
implement ProDOS seek
2014-11-21 16:04:11 -08:00
Stephan Mühlstrasser
5c8cd00dd5
Started cputc and related functions implementation.
2014-11-18 23:18:51 +01:00
Stephan Mühlstrasser
a20bba0f1e
Adapt to assembler coding conventions.
2014-11-16 21:57:59 +01:00
Stephan Mühlstrasser
14958949c2
Direct use of monitor function instead of subroutine call.
2014-11-16 21:13:18 +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
4c46287928
Begin to implement C1P conio features.
2014-11-09 00:58:32 +01:00
Stephan Mühlstrasser
5d7a24241c
Implemented clrscr routine for C1P
2014-11-08 01:14:46 +01:00
Stephan Mühlstrasser
0b186407f1
Merge https://github.com/cc65/cc65 into c1p
2014-11-02 16:17:16 +01:00
Greg King
74c2415795
Changed literal zeroes of the style "#>0" into the style "#>$0000".
2014-09-10 19:15:07 -04:00
Oliver Schmidt
e702832e80
Merge pull request #130 from greg-king5/caps-lock
...
Disable the Atmos keyboard's CAPS LOCK for stdio too.
2014-09-09 12:55:30 +02:00
Greg King
970af0cdb2
Swapped the locations of a constructor and a destructor in a source file.
...
The constructor now is first.
Used a more expressive literal zero.
2014-09-04 17:37:41 -04:00
Greg King
c7969a78b0
Refined the comments in the target start-up files.
...
Fixed typo errors. Made the comments consistent across all those files.
2014-08-24 10:10:20 -04:00
Greg King
145a010e59
Moved the CAPS LOCK code out of the startup file, and into its own file.
2014-08-24 10:05:45 -04:00
Greg King
58b73a2842
Disable the Atmos keyboard's CAPS LOCK for both conio and stdio.
2014-08-21 11:04:23 -04:00
Greg King
8324221360
Improved some multiplication code.
2014-07-17 07:11:14 -04:00
Greg King
c6e7d835ef
Fixed a buffer overrun bug.
2014-07-17 07:05:10 -04:00
Greg King
0390c34e88
Changed multi-line C comments into another style.
...
The left side doesn't look unbalanced.
2014-06-30 16:51:07 -04:00
Oliver Schmidt
2c975d3642
Create static drivers directly from source files.
...
Up to now static drivers were created via co65 from dynamic drivers. However there was an issue with that approach:
The dynamic drivers are "o65 simple files" which obligates that they start with the 'code' segment. However dynamic drivers need to start with the module header - which is written to. For dynamic drivers this isn't more than a conceptual issue because they are always contain a 'data' segment and may therefore only be loaded into writable memory.
However when dynamic drivers are converted to static drivers using co65 then that issue becomes a real problem as then the 'code' segment may end up in non-writable memory - and thus writing to the module header fails.
Instead of changing the way dynamic drivers work I opted to rather make static driver creation totally independent from dynamic drivers. This allows to place the module header in the 'data' segment (see 'module.mac').
2014-06-04 23:50:18 +02:00
Oliver Schmidt
2bc4634860
Normalized style.
...
We don't use .ifndef .else .endif
2014-06-03 18:30:11 +02: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
a4fda71510
move atari5200 behind atari and atarixl in TARGETS list
2014-05-30 13:39:09 +02:00
Christian Groessler
fa7cdf0214
remove atari5200.mac
2014-05-30 13:38:29 +02:00
Christian Groessler
f54ef4efe4
provide CLK_TCK and CLOCKS_PER_SEC values for atari5200
2014-05-29 13:23:45 +02:00
Greg King
b8e65aca5a
Used longer error text.
...
Added more codes and messages.
2014-05-28 23:01:48 -04:00
Christian Groessler
4286e55453
fix build error
2014-05-29 01:50:41 +02:00
Christian Groessler
245a69a043
don't use scrcode for numbers
2014-05-29 00:18:22 +02:00
Christian Groessler
0bcb615d33
remove TABs
2014-05-28 23:39:31 +02:00
Christian Groessler
8c5aebef81
cleanups and add comments
2014-05-28 23:38:22 +02:00
Christian Groessler
98195a516e
check trigger button (TRIGx); correctly report joystick count depending
...
on 5200 console version
2014-05-28 00:35:49 +02:00
Christian Groessler
ef1e96aff0
small optimization
2014-05-27 01:50:22 +02:00
Christian Groessler
b6f712ef58
not a dummy implementation anymore...
2014-05-27 01:47:37 +02:00
Greg King
3d6f54b7a6
Updated the CBM error tables.
...
* Added more mappings between DOS and C codes.
* Changed generic error messages into specific ones.
2014-05-26 09:03:43 -04:00
Greg King
2cc26e6e23
More conforming to the cc65 project's apparent writing style.
2014-05-23 16:52:02 -04:00
Greg King
a92f51fea5
Conformed to the cc65 project's coding style.
2014-05-23 00:35:19 -04:00
Greg King
0ec8c8cea7
Added a quoted-token parsing function.
2014-05-20 16:33:16 -04:00
Christian Groessler
0f2f19ef5b
some CONIO fixes
2014-05-16 02:10:19 +02:00
Christian Groessler
8cb68071cd
clrscr for Atari 5200 default conio screen
2014-05-12 03:05:21 +02:00
Christian Groessler
82544b8678
add joystick driver -- trigger buttons are not queried yet
2014-05-12 03:03:44 +02:00
Christian Groessler
1532ad6792
add dummy irq.s
2014-05-12 03:02:17 +02:00
Greg King
f82a43b98d
Fixed the comments to say where the actual Left-Hand Side and Right-Hand Side are put.
...
A description of positions [left, right] is appropriate more for C code than for Assembly code. (A description of timing [first argument, second argument] is more appropriate for the way that Assembly code is written.)
2014-05-11 10:43:06 -04:00
Greg King
228b9d1718
Added a fast subroutine to multiply two signed 8-bit numbers.
2014-05-11 01:08:27 -04:00
Oliver Schmidt
63b5f75a7f
Merge pull request #114 from greg-king5/phantom
...
Added the phantom-key exorcism code to the other C128 mouse drivers.
2014-05-09 19:30:51 +02:00
Greg King
a27e7562fd
Added comments that explain why some instructions are implied.
2014-05-05 13:55:14 -04:00
Greg King
7d512ca238
Back-migrated some phantom-key rejection optimizations.
2014-05-05 06:28:19 -04:00
Greg King
667f8229c0
Migrated the phantom-key exorcism code to the other C128 mouse drivers.
2014-05-05 05:30:31 -04:00
Greg King
047d9abc68
Added the long-missing driver-flags byte to the potentiometer (mouse) drivers.
2014-05-05 04:16:04 -04: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
2a3fbc6e36
Merge pull request #109 from groessler/something_to_pull2
...
Proposal: workaround for "phantom" key presses in the C128 "joystick" mouse driver...
2014-04-28 22:18:11 +02:00
Christian Groessler
6307815ada
Correctly map out ROM when needed in the "phantom keys" workaround.
2014-04-26 11:58:13 +02:00
Christian Groessler
f290c1aa28
remove build warning
2014-04-25 13:21:54 +02:00
Christian Groessler
92b32d7d0e
atari5200 update: simple conio "hello world" works now
2014-04-25 03:02:44 +02:00
Christian Groessler
ec417c0dc5
Merge remote-tracking branch 'upstream/master' into a5200
2014-04-25 02:07:44 +02:00
Christian Groessler
54be6de9bc
Workaround for "phantom" key presses in the C128 "1351" mouse driver.
2014-04-25 00:22:23 +02:00
Christian Groessler
401e18d982
Put mouse cursor shape definition into .rodata.
2014-04-24 02:04:08 +02:00
Christian Groessler
4406307c2f
Make the hooking and unhooking of the interrupt interrupt safe.
2014-04-24 00:28:33 +02:00
Oliver Schmidt
9e3154220c
Merge pull request #106 from groessler/something_to_pull
...
add P/M (aka 'Sprite') mouse callback for Atari
2014-04-22 20:01:43 +02:00
Christian Groessler
608dbc2cec
Workaround for "phantom" key presses in the C128 "joystick" mouse driver.
2014-04-22 15:49:48 +02:00
Christian Groessler
2059e34114
rename ser_libref.s to serref.s in order to be consistent with other targets
2014-04-22 13:42:17 +02:00
Christian Groessler
eefd33d309
Split libref.s into multiple files to prevent inclusion of unnecessary code.
2014-04-22 12:50:07 +02:00
Christian Groessler
7eaf721e7c
Selection whether to use page 6 for mouse P/M data is not done in
...
Makefile.inc, like the other compile-time options. Small fix in the
P/M mouse "show" routine: adapt mouse cursor colors to current
screen colors.
2014-04-21 11:41:37 +02:00
Christian Groessler
88e3e60550
address issue raised in the pull request; add support to not use page 6
...
again
2014-04-15 11:37:34 +02:00
Christian Groessler
526b440b24
- always use page 6 for P/M mouse cursor
...
- make cursor character of text mode callback configurable
- change default cursor character of text mode callback from 'plus' to 'diamond'
- set P/M callback as default
2014-04-11 23:51:49 +02:00
Christian Groessler
661203a89a
initial version of a P/M mouse callback
2014-04-11 23:51:49 +02:00
Oliver Schmidt
a0a4158bba
Merge pull request #103 from greg-king5/typo
...
Fixed typo (Ilegal).
2014-04-04 09:56:04 +03:00
Greg King
449fceebdd
Fixed typo (Ilegal).
2014-04-03 17:28:36 -04:00
Greg King
42595fbf13
Added command-line argument parsing to the CBM510 and CBM610 targets.
2014-04-03 08:23:28 -04:00
Oliver Schmidt
986c2248e2
Added cc65_umul8x8r16() based on umul8x8r16.
2014-03-27 21:22:02 +01: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
Greg King
3ef184bdd6
Corrected the default upper limits of some mouse drivers' bounding box.
...
The upper limits need to be one less than the screen sizes because the minimum co-ordinate is zero instead of one.
2014-03-18 05:17:44 -04:00
Oliver Schmidt
1d6000213c
Removed references to $TRAVIS from Makefiles.
...
After all it seems much cleaner to explicitly control the behaviour from the .travis.yml file than to behave differently "under the hood" when detecting a Travis CI build.
2014-03-16 21:32:18 +01:00
Oliver Schmidt
4ea84c4843
Merge pull request #90 from greg-king5/c128-sprite
...
Added code that disables C128 BASIC's sprite-motion interrupt-handler.
2014-03-16 20:55:09 +01:00
Greg King
e335d2564d
Added code that disables C128 BASIC's sprite-motion interrupt-handler.
...
That lets the mouse drivers control a sprite directly through the VIC's registers.
2014-03-15 16:41:03 -04:00
Oliver Schmidt
9da0e8e600
Moved LOADER.SYSTEM description.
...
The LOADER.SYSTEM description is now available in the cc65 Wiki (https://github.com/cc65/cc65/wiki/LOADER.SYSTEM ).
2014-03-15 18:09:55 +01:00
Christian Groessler
30b418c734
add gotox, gotoy, and gotoxy
2014-03-13 02:38:35 +01: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
889783bedb
add some conio functions
2014-03-11 01:17:59 +01:00
Oliver Schmidt
efa50b0258
Several minor adjustments.
2014-03-09 13:56:32 +01:00
Oliver Schmidt
8236b0dd74
Upload zip file.
2014-03-09 01:20:39 +01:00
Oliver Schmidt
80ca7eb4e4
Create zip file.
2014-03-09 00:20:17 +01:00
Christian Groessler
73df73194a
fix indentation
2014-03-07 23:15:57 +01:00
Christian Groessler
b40fe584d8
fix typo
2014-03-07 23:15:11 +01:00
Oliver Schmidt
1c73fa0a00
Moved .PHONY below definitions it refers to.
...
I must admit that I don't understand why but obviously it is necessary to place .PHONY below the definition of variables it refers to - although those variables are recursively expanded ones! Not doing so made libsrc/Makefile build only three target libraries.
2014-03-06 23:42:44 +01:00
Oliver Schmidt
30125afcc1
Moved from VS2013 to MinGW(-w64).
2014-03-06 22:32:24 +01:00
Oliver Schmidt
3f0af9b241
Have src/Makefile and libsrc/Make use disjoint work directories.
...
Building the clean target in src or libsrc should only delete stuff created by the make in those directories. Having both separated allows the Travis CI build to replace the native binaries with cross built binaries while keeping everything else.
2014-03-05 23:24:35 +01:00
Oliver Schmidt
44ccb27549
Changed Makefile.inc handling.
...
It seems more appropriate to trigger the inclusion of Makefile.inc via $TARGET (instead of $SRCDIR). This is btw. more consistent with extzp.s inclusion which is triggered via $TARGET too.
2014-03-04 21:46:25 +01:00
Christian Groessler
361da29e51
add get_tv()
2014-03-04 16:02:24 +01:00
Christian Groessler
bf8eb8c22e
rename libsrc/atari/tvtype.s to libsrc/atari/get_tv.s
2014-03-04 15:44:10 +01:00
Oliver Schmidt
3f7cd3387f
Optimize for size instead for speed.
2014-03-03 21:08:35 +01:00
Christian Groessler
7a9fa9d4cd
rename W2CAS.COM to w2cas.com (lowercase)
2014-03-03 18:12:11 +01:00
Christian Groessler
c8f7f2f161
first changes for atari5200 target
2014-03-01 17:20:09 +01:00
Christian Groessler
69f81f6d67
make 'w2cas' a targetutil
2014-03-01 13:11:52 +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
701c59900d
Merge remote-tracking branch 'upstream/master' into cassette
2014-02-21 21:02:54 +01:00
Oliver Schmidt
d001a6f1a0
Have _heapmaxavail() work as advertised.
...
The cc65 doc explicitly states that the return value of _heapmaxavail() can be used as parameter of malloc(). To actually allow for that the size of HEAP_ADMIN_SPACE has to be substracted from the raw size of the largest free heap block.
2014-02-20 21:04:11 +01:00
Christian Groessler
65874d4604
Merge remote-tracking branch 'upstream/master' into cassette
2014-02-20 01:05:10 +01:00
Christian Groessler
b326a04b1e
fix uninitialized use of 'buflen'
2014-02-19 22:39:39 +01:00
Christian Groessler
b496a400ec
Merge remote-tracking branch 'upstream/master' into cassette
...
ecessary,
2014-02-18 21:36:53 +01:00
Christian Groessler
b477023783
Turn off mouse polling interrupt if the mouse hasn't been moved for
...
some time. Turn it back on when the mouse is moved again.
Since the polling interrupt runs at a rather high frequency (1kHz),
this saves many processor cycles when the mouse is inactive.
2014-02-14 01:44:00 +01:00
Christian Groessler
290da8d5ae
Merge remote-tracking branch 'upstream/master' into cassette
2014-02-11 12:35:28 +01:00
Oliver Schmidt
3334082abf
Avoid include subdirs on install cmdline.
2014-01-30 13:02:01 +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
Oliver Schmidt
0a723fdb3d
Merge pull request #78 from groessler/something_to_pull
...
change mouse drivers to be more "floppy access" friendly
2014-01-30 00:20:53 -08:00
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
Oliver Schmidt
e320fe3db8
Added 'install' target.
...
The 'install' target primarily aims to support pacaking tools. Therefore...
- It just presumes a "capable" install program to be present.
- There's intentionally no 'uninstall' target.
2014-01-29 21:42:26 +01:00
Oliver Schmidt
4452156d1a
Avoid indirect jmp with unknown vector address.
2014-01-26 18:10:01 +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
Oliver Schmidt
8304852521
Merge pull request #71 from groessler/something_to_pull2
...
Support to create cartridges for the Atari.
2014-01-17 12:14:18 -08:00
Oliver Schmidt
94eb2a2ed7
Some fine tuning of the mouse driver interface harmonization.
2014-01-17 21:09:15 +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
6ab07261bc
Merge remote-tracking branch 'upstream/master' into something_to_pull
2014-01-16 23:34:56 +01:00