Oliver Schmidt
c0e82f4200
Merge pull request #279 from greg-king5/atmos-reconfig
...
Convert the Atmos configuration to the new constructor segment model.
2016-03-27 00:36:05 +01:00
Oliver Schmidt
29d1400340
Allow _sys() to call ROM routines.
...
_sys() is supposed to be (primarily) intended to call ROM routines. Leveraging the "file overlay" mechanism of the cc65 build system allows to provide a Apple II specific _sys() implementation that temporarily switches in the ROM.
2016-03-25 21:57:06 +01:00
Greg King
7773fcb1e1
Converted the Atmos configuration to the new constructor segment model.
2016-03-18 11:28:56 -04:00
Oliver Schmidt
e3cbc7e8b8
Moved run location of ONCE segment.
...
Make the same changes to the Apple II that were done with 0ee9b2e446
to the C64.
Notes:
- The startup code deliberately doesn't make use of symbols defined for the LC segment as that segment is optional.
- The <...>-asm.cfg configs move the segment BSS to an own memory area BSS although this doesn't seem necessary. However the benefit is that the size of the memeory area MAIN is identical to the number of bytes loaded from disk into RAM. To keep this an invariant for all Apple II configs allows to simplify the EXEHDR to just refer to the symbols defined for MAIN.
2016-03-17 21:07:19 +01:00
Oliver Schmidt
1d1ba3ed3b
Adjusted constructors.
...
The constructors are _NOT_ allowed anymore to access the BSS. Rather they must use the DATA segment or the INIT segment. The latter isn't cleared at any point so the constructors may use it to expose values to the main program. However they must make sure to always write the values as they are not pre-initialized.
2016-03-16 16:28:32 +01:00
Oliver Schmidt
a2c9cb021a
Moved things into ONCE.
...
Code and or data used only during initialization belongs into the ONCE segment.
2016-03-15 22:55:36 +01:00
Oliver Schmidt
56a8c69b14
Use AX paradigm.
2016-03-13 21:23:45 +01:00
Oliver Schmidt
a3a22733f8
Cleaned up C64 linker configs.
...
The BSS segment and the ONCE segment share the same start address. So they need to be placed in two different memory areas.
So far BSS was placed in the MAIN memory area and ONCE was placed in an additional memory area. Both memory areas were written to the output file. They just "happened" to be loadable and runnable at a stretch.
Now ONCE is placed in the MAIN memory area and BSS is placed in an additional memory area. Only MAIN is written to the output file. It becomes more obvious that BSS is "just" defined to share memory with ONCE.
2016-03-13 14:32:07 +01:00
Oliver Schmidt
084453ba57
Don't presume the stack size to be a multiple of pages.
2016-03-10 10:07:09 +01:00
Oliver Schmidt
69fbcb30fd
Use AX paradigm for stack initalization.
2016-03-07 01:44:19 +01:00
Oliver Schmidt
d8c31cf1d3
Renamed RAM to MAIN for all disk based targets.
...
The name RAM doesn't make much sense in general for a memeory area because i.e. the zero page is for sure RAM but is not part of the memory area named RAM.
For disk based targets it makes sense to put the disk file more into focus and here MAIN means the main part of the file - in contrast to some header.
Only for ROM based targets the name RAM is kept as it makes sense to focus on the difference between RAM and ROM.
2016-03-07 01:28:55 +01:00
Oliver Schmidt
419eb700b5
Renamed INITBSS to INIT and INIT to ONCE.
...
The way we want to use the INITBSS segment - and especially the fact that it won't have the type bss on all ROM based targets - means that the name INITBSS is misleading. After all INIT is the best name from my perspective as it serves several purposes and therefore needs a rather generic name.
Unfortunately this means that the current INIT segment needs to be renamed too. Looking for a short (ideally 4 letter) name I came up with ONCE as it contains all code (and data) accessed only once during initialization.
2016-03-06 21:27:19 +01:00
mrdudz
eb96a90e5f
initial import from old sources
2016-02-28 22:35:46 +01:00
mrdudz
85760e0c53
initial import from old sources
2016-02-28 22:13:05 +01:00
Oliver Schmidt
3d08abcfa8
Load INITBSS segment from disk.
...
Conceptually the INITBSS segment is not initialized in any way. Therefore it makes sense to not load it from disk. However the INIT segment has to be loaded from disk and therefore moved to its run location above the INITBSS segment. The necessary move routine increases runtime RAM usage :-(
Therefore we now "unnecessarily" load the INITBSS segment from disk too meaning that the INIT segment is loaded at its run location. Therefore there's no need for the move routine anymore.
After all we trade disk space for (runtime) RAM space - an easy decision ;-)
Notes:
- The code allowing to re-run a program without re-load present so far could not have worked as far as I can see as it only avoided to re-run the move routine but still tried to re-run the code in the INIT segment that was clobbered by zeroing the BSS. Therefore I removed the code in question altogether. I'm personally not into this "dirty re-run" but if someone wants to add an actually working solution I won't block that.
- INITBSS is intentionally not just merged with the DATA segment as ROM-based targets can't reuse the INIT segment for the BSS and therefore have no reason to place the INIT segment above INITBSS.
- Because ROM-based targets don't copy INITBSS from the ROM (like it is done with the DATA segment) all users of INITBSS _MUST_NOT_ presume INITBSS to be initialized with zeros!
2016-02-28 19:45:36 +01:00
Oliver Schmidt
54e09fdd03
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.
this resembles commit 8e6b8dd0af
from oliver
2016-02-28 19:05:40 +01:00
Bob Andrews
a8d3b83c43
Merge pull request #7 from cvemu/master
...
Initial Creativision Import
2016-02-28 18:25:01 +01:00
Bob Andrews
25f4482641
Merge pull request #238 from mrdudz/gamate
...
Bit Corporation 'Gamate' support
2016-02-27 18:44:26 +01:00
Bob Andrews
3f72e59e93
Merge pull request #241 from blackystardust/c128-function-ram-emd
...
C128 function ram emd
2016-02-27 18:08:55 +01:00
silverdr
2bcdf32458
blackystardust pull request with post-review changes
2016-02-26 23:55:55 +01:00
Lauri Kasanen
a954e713ad
nes: Fix reading the second controller
...
See
http://wiki.nesdev.com/w/index.php/Controller_port_registers
2015-12-14 19:28:53 +02:00
Oliver Schmidt
377f31d085
Fixed soft80 shutdown.
...
A call to $FDA3 cannot be used because it re-enables the BASIC ROM. If a large program (such as Contiki's webbrowser80) has destructor code or data "behind" that ROM, then the program might crash when it tries to quit gracefully. Changing that code to set CIA2_PRA works well enough.
2015-12-02 21:34:08 +01:00
Marco van den Heuvel
433eeb1bc7
Renamed MMU_CFG_INT_FROM -> MMU_CFG_IFROM and MMU_CFG_EXT_FROM -> MMU_CFG_EFROM
2015-12-02 00:30:30 -08:00
Marco van den Heuvel
7cd80e7450
optimized the sei/cli pairing a bit.
2015-12-02 00:21:55 -08:00
Marco van den Heuvel
f55505820a
optimized the sei/cli pairing a bit for internal function ram emd as well.
2015-12-02 00:17:29 -08:00
Marco van den Heuvel
83c63a65c3
optimized the sei/cli pairing a bit.
2015-12-02 00:14:56 -08:00
mrdudz
8a499fdf4e
fixup conio.c some more. also includes merge of upstream/master because git is retarded.
2015-12-02 00:13:32 +01:00
mrdudz
7de50b17c7
fix comments
2015-12-01 16:55:02 +01:00
Marco van den Heuvel
2e2f19ba79
Finished adding c128 internal/external function ram emd's.
2015-11-30 20:14:45 -08:00
Marco van den Heuvel
7df35cac94
Started on making c128 function ram emd's.
2015-11-30 09:53:30 -08:00
mrdudz
a95c95a5d3
added black line :)
2015-11-30 18:49:52 +01:00
Marco van den Heuvel
18208f4d2e
Fixed the c128 ram (bank 1) emd.
2015-11-29 23:04:23 -08:00
Marco van den Heuvel
cf9e7856cf
Removed an 'rts'.
2015-11-29 11:35:25 -08:00
mrdudz
b39a8b7a61
more cleanup
2015-11-29 20:04:10 +01:00
mrdudz
c636675521
moved cart header into seperate file, moved nmi stub into several file, tweaked linker config
2015-11-29 16:01:36 +01:00
mrdudz
1893e24da9
updated
2015-11-29 01:24:01 +01:00
mrdudz
9fbf8a4299
conio and most other stuff working now
2015-11-29 01:14:59 +01:00
mrdudz
4a49b0c8f8
reset screen editor at shutdown
2015-11-22 19:20:58 +01:00
mrdudz
88e7b5776a
some more fiddling
2015-11-22 19:02:47 +01:00
mrdudz
60285097e3
initial import of the gamate stuff
2015-11-14 13:15:29 +01:00
Oliver Schmidt
f70acd9f51
Merge pull request #227 from mrdudz/soft80syms
...
remove unneeded exports
2015-11-07 13:37:46 +01:00
mrdudz
54de8ac031
remove unneeded exports
2015-11-07 11:45:38 +01:00
Greg King
5e36315d05
Style changes.
2015-11-07 00:29:07 -05:00
Greg King
999d57401c
Added a version of memset() that uses the HuC6280's TII instruction to get more speed.
2015-11-06 23:59:19 -05:00
Greg King
8180ac20d3
Added code to handle the special case of a zero-length move.
...
Added more tests of memcpy() and memmove().
2015-11-02 17:09:45 -05:00
Greg King
8e8d112029
Added pce-specific substitutes for memcpy() and memmove().
...
They are smaller and faster because they take advantage of the pce CPU's block-copy instructions.
Also, made a small improvement to the common memmove(), so that it is similar to the pce version.
2015-10-23 18:02:21 -04:00
mrdudz
8f8f12ceab
use tii instead of copy loop to copy data section to ram
2015-10-22 19:48:21 +02:00
mrdudz
60334c40e6
added size optimized monochrom soft80 driver
2015-10-19 02:49:32 +02:00
mrdudz
d6d016bb80
updated comments
2015-10-19 02:47:40 +02:00
mrdudz
8263083506
move variables into INITBSS
2015-10-15 15:11:05 +02:00
mrdudz
63d4c93006
Merge remote-tracking branch 'upstream/master' into soft80
2015-10-15 15:07:44 +02:00
Oliver Schmidt
76a5a72403
Adjusted current working directory initialization on Apple and Atari.
...
Moving __cwd from BSS into INITBSS does of course ;-) not only impact the CBM targets but all targets with disk I/O support.
Note: Code using `__cwd-1` may trigger an ld65 range error because __cwd may end up at the very begining of a segment. As far as I see this is an ld65 bug which I'm not try to fix - at least here.
2015-10-15 00:15:38 +02:00
Oliver Schmidt
0ee9b2e446
Changed run location of INIT segment.
...
So far the INIT segment was run from the later heap+stack. Now the INIT segment is run from the later BSS. The background is that so far the INIT segment was pretty small (from $80 to $180 bytes). But upcoming changes will increase the INIT segment in certain scenarios up to ~ $1000 bytes. So programs with very limited heap+stack might just not been able to move the INIT segment to its run location. But moving the INIT segment to the later BSS allows it to occupy the later BSS+heap+stack.
In order to allow that the constructors are _NOT_ allowed anymore to access the BSS. Rather they must use the DATA segment or the new INITBSS segment. The latter isn't cleared at any point so the constructors may use it to expose values to the main program. However they must make sure to always write the values as they are not pre-initialized.
2015-10-14 22:52:09 +02:00
mrdudz
b9c688d997
remove deleted function from comment
2015-10-14 17:52:14 +02:00
mrdudz
e6f5c7d8da
some comments
2015-10-14 17:50:44 +02:00
mrdudz
f391c1c3d5
remove soft80_bordercolor override
2015-10-14 17:33:58 +02:00
mrdudz
59dd15aa55
split regular color.s into color.s and bordercolor.s
2015-10-14 17:25:35 +02:00
mrdudz
c708031374
use 'soft80_internal_cellcolor' for the current cell color, and CHARCOLOR for the actual textcolor
2015-10-14 17:24:16 +02:00
Oliver Schmidt
023b461bb8
According to the contributor the VGA data is accessed only by the constructor.
2015-10-14 11:50:54 +02:00
Oliver Schmidt
8f67dd5cc7
Merge pull request #215 from greg-king5/c64-init
...
Save space by using the apple2 target's INIT overlay scheme on the c64 target.
2015-10-14 10:43:11 +02:00
mrdudz
08d7eefdd7
another size optimization, make bgcolor() much more robust
2015-10-13 04:14:04 +02:00
mrdudz
f462c173fb
move some stuff to init segment, saves roughly 1480 bytes :)
2015-10-12 23:39:47 +02:00
mrdudz
362a172477
remove chline/cvline dupes
2015-10-12 21:23:27 +02:00
mrdudz
f876ff4c09
Merge remote-tracking branch 'upstream/master' into soft80
2015-10-12 21:13:32 +02:00
Oliver Schmidt
5e960d106e
Allow to override chars used for horizontal and vertical lines.
2015-10-12 21:04:06 +02:00
mrdudz
d6f48629ad
export mouse driver related symbols
2015-10-12 21:02:48 +02:00
mrdudz
5840d1c08c
increase conio constructor priority
2015-10-12 20:46:53 +02:00
mrdudz
df3549f502
Merge remote-tracking branch 'upstream/master' into soft80
2015-10-12 20:43:19 +02:00
mrdudz
57a43b6735
style issues
2015-10-12 20:38:06 +02:00
Oliver Schmidt
08efc299ff
Allow to override mouse sprite location data.
2015-10-12 20:18:13 +02:00
mrdudz
e9f0b7943e
some renaming, preparing plot table names
2015-10-12 19:57:33 +02:00
mrdudz
bf3ea5328f
inverted result for checkchar, saving some bytes and cycles
2015-10-12 19:03:50 +02:00
mrdudz
4557e8d004
optimize charcode conversion, shorter and faster now :)
2015-10-12 18:53:55 +02:00
mrdudz
aed0549760
remove some commented out code
2015-10-12 18:09:50 +02:00
mrdudz
ead9950044
some code shuffling to get rid of long branches
2015-10-12 18:01:48 +02:00
mrdudz
cf8b21b27e
size optimization
2015-10-12 17:12:44 +02:00
mrdudz
bc85d90468
check for space bottom up, which is faster for the average case
2015-10-12 16:15:40 +02:00
mrdudz
a2b514a7cf
fix some style issues
2015-10-12 15:54:08 +02:00
mrdudz
21732e3c5b
maintain lsb of cursor x position internally, saves some bytes and some cycles too :)
2015-10-12 15:44:41 +02:00
mrdudz
2a0f6c420b
moved bordercolor function into a seperate file
2015-10-12 15:18:36 +02:00
mrdudz
7f2df8e8e6
move internal text/bgcolor variables into the file that also contains the init code for them. also rename them to avoid namespace pollution
2015-10-12 15:04:55 +02:00
mrdudz
07f1879f85
added some more comments and -headers
2015-10-12 14:40:12 +02:00
mrdudz
d8d7f53d1b
move charset to seperate file again, added comments on charset layout
2015-10-11 17:13:28 +02:00
Oliver Schmidt
c4966ac6a6
Fixed stupid adressing mode bug.
...
Thanks Greg for pointing out :-)
2015-10-10 11:15:43 +02:00
mrdudz
03c6af3e15
rewrote color voodoo
2015-10-09 23:39:37 +02:00
Oliver Schmidt
ccc7c2b1f9
Minor style adjustment.
2015-10-09 22:18:51 +02:00
Oliver Schmidt
326da85145
Consistently place constructors (and their exclusive subroutines) in "INIT".
2015-10-09 21:44:20 +02:00
Oliver Schmidt
575f859a03
Keep low level VIC sprite stuff out of user code.
2015-10-09 18:33:35 +02:00
Greg King
8c609dd931
Explained why two variables were moved out of the BSS segment.
2015-10-09 12:00:41 -04:00
Oliver Schmidt
f21e3ae895
According to the contributor the prio wasn't intentionally set.
2015-10-09 13:42:25 +02:00
mrdudz
0b9d67d8a8
use default prio for the constructor
2015-10-09 13:40:10 +02:00
mrdudz
f712e9448a
some cleanup/rework
2015-10-09 13:34:23 +02:00
mrdudz
e54ad81ce8
some more rework, second attempt on fixing the color issues. added ifdefs to disable the color voodoo alltogether for debugging purposes.
2015-10-08 20:43:25 +02:00
Greg King
ca70700a0b
Restored the old C-stack initiation code.
...
I had forgotten that the stack must be put below the CBM overlays.
2015-10-08 06:04:49 -04:00
Greg King
8a880580dc
Reduced the size of the moveinit subroutine.
...
Made other changes that were recommended by Oliver.
* Changed its name from move_init to moveinit.
* Used self-modifying code in the subroutine.
* The INIT segment doesn't need to be optional (it's used by the start-up file).
2015-10-07 14:56:14 -04:00
mrdudz
67dabb8489
attempted fix for the color problem noticed by oliver
2015-10-06 20:18:40 +02:00
mrdudz
ee54f7f40c
optimized clrscr for size
2015-10-06 19:33:43 +02:00
Greg King
074e10d288
Adapted, to the c64 target, the INIT-segment overlay scheme from the apple2 targets.
...
When a program starts running, INIT is moved from one place to another place. Then, INIT's code is executed; and, the first place is re-used for variables. After the INIT code has finished, the second place can be re-used by the heap and the C stack. That means that initiation code and data won't waste any RAM space after they stop being needed.
2015-10-05 05:47:43 -04:00
mrdudz
23473641f4
fix clrscr so it doesnt wipe sprite pointers
2015-10-01 17:16:02 +02:00
mrdudz
5ea842b88b
SCREEN->screensize
2015-10-01 15:03:11 +02:00
Greg King
6217f8fa3a
Made the Commodore version of exec() work in programs that are so big that they load into all of BASIC RAM.
...
The function won't cause an "out of memory" error.
2015-09-28 11:27:39 -04:00
mrdudz
4949836d16
fixed kplot
2015-09-28 17:12:20 +02:00
mrdudz
841d764a83
some cleanup, checked usage of __bgcolor and __textcolor
2015-09-28 16:10:11 +02:00
mrdudz
7486923c17
dont use seperate file for charset data
2015-09-28 15:57:16 +02:00
mrdudz
6cc654cca8
added extra check for graphical chars
2015-09-28 15:10:57 +02:00
mrdudz
257183fa55
removed duplicate copy of charset and shift it at init time, saves 1k
2015-09-27 19:34:43 +02:00
mrdudz
c221fe22f6
prepend soft80_ to some more internally used functions
2015-09-27 19:10:06 +02:00
mrdudz
b5a6578dca
include bitmap and vram row tables directly rather than generating them (saves space)
2015-09-27 18:49:30 +02:00
mrdudz
fba28f46f6
fix initial text- and background colors
2015-09-27 18:36:53 +02:00
mrdudz
9e08c53b01
initial commit of soft80 implementation
2015-09-27 18:12:25 +02:00
Greg King
b82bb4f5ba
Moved two errno helper functions into separate files.
...
Only the function that actually is needed will be linked. It is very useful for targets that do not have file-system I/O.
2015-09-25 14:06:58 -04:00
Oliver Schmidt
b2657ecef5
Merge pull request #177 from mrdudz/pcenginetarget
...
new target: PC Engine (TurboGrafx16)
2015-09-24 09:58:28 +02:00
mrdudz
7d453a72fb
use 'plot' instead of 'PLOT'
2015-09-20 12:18:41 +02:00
mrdudz
296489ba6c
added interruptor support
2015-09-19 15:55:43 +02:00
mrdudz
859604407b
fixed more flaws found by greg :)
2015-09-19 15:37:39 +02:00
Oliver Schmidt
45313075fe
Merge pull request #208 from greg-king5/big-jump
...
Improve the longjmp() and setjmp() functions.
2015-09-11 21:06:50 +02:00
Greg King
dbf0adcec9
Improved longjmp() and setjmp().
2015-09-11 14:18:22 -04:00
Greg King
031bd2ebf0
Fixed the random-seed generators for the Commodore targets.
...
They use a byte from the time counter; but, it is stored in big-endian order.
2015-09-11 10:03:07 -04:00
mrdudz
088a25437d
fixed VDC register assignments
2015-09-07 12:55:36 +02:00
mrdudz
af2ba26c62
fix gregs complaints :)
2015-09-04 14:14:17 +02:00
mrdudz
d0a1dc73b8
Merge remote-tracking branch 'upstream/master' into pcenginetarget
2015-09-04 13:40:52 +02:00
mrdudz
57b8af1adc
style fixes
2015-08-29 15:58:57 +02:00
Greg King
9c55bd1c96
Fixed bugs in the interface for C-level interrupt handlers.
...
* Added an important ".code" directive.
* Import a linker-created zero-page symbol as an absolute address; then, convert it to zero-page when it is used.
Fixes bug report #198 .
2015-08-26 19:33:34 -04:00
Oliver Schmidt
657cc003be
Merge pull request #184 from greg-king5/fastcall
...
Update some fastcall info.
2015-07-23 17:11:49 +02:00
Greg King
52eec1f236
Updated the fastcall information in a document and two Assembly files.
2015-07-22 13:31:14 -04:00
Oliver Schmidt
673b27cc1b
Added empty IRQ backend.
...
The driver kernels all require IRQ handling even if the actual drivers don't make use of it. So in order to successfully link a NES program using the joystick and/or TGI driver there has to be at least a "dummy" IRQ backend.
2015-07-22 11:36:54 +02:00
mrdudz
0e29a0993f
Merge remote-tracking branch 'upstream/master' into pcenginetarget
2015-07-20 18:42:04 +02:00
mrdudz
313d2dd210
added missing chline, cvline
2015-07-19 18:06:16 +02:00
Greg King
a9982de475
Added _directerrno() to the sim6502/sim65c02 libraries.
2015-07-18 18:23:08 -04:00
Greg King
0b6bcb565e
Fixed a hardware-stack leak.
2015-07-17 20:36:56 -04:00
mrdudz
996c7b493e
moved all notes into regular documentation
2015-07-16 21:39:13 +02:00
mrdudz
e77060458a
fixed joypad bits
2015-07-16 20:15:05 +02:00
mrdudz
3119be2a1e
added some cbm-like gfx chars to draw lines and boxes
2015-07-16 17:33:00 +02:00
mrdudz
d229d51be5
make sure clocktick starts at zero
2015-07-16 16:54:40 +02:00
mrdudz
21ef6b8510
fixed screensize, timertick, revers mode
2015-07-16 16:00:32 +02:00
mrdudz
1414411bba
added waitvblank and fixed get_tv
2015-07-15 19:46:26 +02:00
mrdudz
c3d45e4c47
fixed issues found by gregg
2015-07-15 13:18:12 +02:00
mrdudz
ac27ed301a
_tickcount -> tickcount
2015-07-14 19:55:41 +02:00
mrdudz
83391ab67c
some more tweaking, added docs page
2015-07-14 17:22:47 +02:00
mrdudz
515a61a302
added imports for conio init to conio functions, so the constructor will get linked and called automatically
2015-07-13 12:10:09 +02:00
mrdudz
9e1d39a409
more cleanup and fixing
2015-07-12 16:40:52 +02:00
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
Greg King
146daa1d0a
Made some string output functions reject an invalid NULL buffer pointer.
2015-07-09 14:46:28 -04:00
Greg King
219905c6bc
Fix two string output functions' handling of their buffer-size parameter.
...
That parameter's type is unsigned; but, the functions return an int. If the size is too big for a signed integer, then return an error code.
If the size is zero, then don't write anything into a buffer (the buffer pointer may be NULL). But, do format and count the arguments.
2015-07-09 10:43:45 -04:00
Greg King
08e18c93c5
Added explicit settings of calling conventions in pointer-to-function declarations in system and library headers.
2015-06-22 00:15:48 -04:00
Oliver Schmidt
fe023a1218
Merge pull request #151 from greg-king5/fastcall
...
Make __fastcall__ be the default calling convention.
2015-05-26 22:39:33 +02:00
Oliver Schmidt
0f1c3b0181
Fixed comment.
2015-04-27 09:39:50 +02:00
Oliver Schmidt
1748bb1ab6
Use well-known location BLTU2 for "memmove()".
2015-04-26 14:09:21 +02:00
Oliver Schmidt
3c1cd0d867
Added cmdline support to exec().
...
The starting point is the CALL2051:REM <cmdline> approach. It uses the BASIC input buffer at $200. ProDOS stores the name of the loaded program at $280 (which we want for argv[0]) leaving us with 128 char buffer. If we run the program via exec() we don't need the CALL2051 but only the REM token (which is just one char). So have a maximum cmdline length of 126 (plus a terminating zero).
There's no specification for ProDOS BIN file cmdline parameters so exec() just supports the CALL2051:REM <cmdline> approach. In contrast ProDOS SYS files allow for a 'startup filename'. A ProDOS filename is short than 126 chars so having exec() general cut the cmdline after 126 chars seems reasonable. If the SYS file we exec() allows for less we cut the cmdline further.
Our 'loader.system' SYS file however allows for an unusually 126 char long "startup filename" as it is targeted towards cc65 BIN porgrams with their 126 cmdline length.
2015-04-26 14:09:20 +02:00
Oliver Schmidt
ae4f9336b3
Behave more like BASIC.SYSTEM and allow for argv[0].
2015-04-19 21:59:05 +02:00
Oliver Schmidt
24e902059c
Allow up 127 chars of cmdline for programs started by the loader.
2015-04-19 21:17:46 +02:00
Stephan Mühlstrasser
7fb206e381
Macro-based implementation of screen layout configuration modules.
2015-03-23 19:02:45 +01:00
Stephan Mühlstrasser
8b10534429
Improved fix with suggestions by Greg King.
2015-03-15 00:40:42 +01:00
Stephan Mühlstrasser
4836cf9842
Fix bad tabbing
2015-03-14 00:06:00 +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
38231a5cc6
Made _afailed() and uncompress() be fastcall functions.
2015-03-13 07:35:47 -04:00
Greg King
66d79da3c2
Made cbm_load() be a fastcall function.
2015-03-13 05:46:40 -04:00
Greg King
a798b1d648
Made __fastcall__ be the default calling convention for non-variadic functions.
2015-03-10 05:53:52 -04:00
Greg King
9dbce378fe
Described how to change the boot loader's actions.
2015-03-08 10:06:00 -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
981ab10fac
Replaced magic numbers with symbolic constants.
2015-03-01 20:53:57 +01:00
Stephan Mühlstrasser
1d6aa84d9a
Optimization by replacing absolute with relative jump.
2015-02-28 20:29:08 +01:00
Stephan Mühlstrasser
4737ad93d5
Temporarily undo the 25 line change.
...
This is not yet consistent with the first visible character on
the screen.
2015-02-25 23:50:02 +01:00
Stephan Mühlstrasser
52865410d2
Fix wrong expression for top of C stack.
...
Thanks to Greg King for this fix.
2015-02-25 23:48:57 +01:00
Stephan Mühlstrasser
8deeb2c59e
Match screen dimensions as in BASIC.
...
Experiments show that under BASIC by default
25 rows by 24 columns are used. 24 columns is
also the width that is fully displayed on a real
C1P on the monitor. conio now matches that now.
2015-02-23 23:07:00 +01:00
Stephan Mühlstrasser
772a98d1ec
Merge branch 'c1p_kbhit' into c1p_scrsize
2015-02-23 19:17:54 +01:00
Stephan Mühlstrasser
83f16425c9
Loading A once before the loop is sufficient.
2015-02-23 19:17:27 +01:00
Stephan Mühlstrasser
cc2dc578fe
Merge branch 'c1p_kbhit' into c1p_scrsize
2015-02-23 19:11:50 +01:00
Stephan Mühlstrasser
73ae95bd1c
Clear bottom line when scrolling.
...
Fix provided by Jeff Tranter.
2015-02-23 19:06:22 +01:00
Stephan Mühlstrasser
c3b014560e
Consistent naming for screen dimension constants.
2015-02-22 19:55:19 +01:00
Stephan Mühlstrasser
a7dabcda47
Define the screen dimension defines in a more meaningful way.
2015-02-22 16:27:13 +01:00
Stephan Mühlstrasser
965aded1ba
Merge branch 'c1p_kbhit' into c1p
2015-02-22 11:45:02 +01:00
Stephan Mühlstrasser
7a975fa182
Mask control keys from first keyboard scan row.
2015-02-21 22:52:01 +01:00
Stephan Mühlstrasser
1b9aa7c6f3
Use character constants where appropriate.
2015-02-21 20:53:16 +01: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
b1969ac16a
kbhit() function and scrolling.
...
Patch provided by Jeff Tranter.
2015-02-19 22:19:21 +01:00
Oliver Schmidt
cbb6f82b99
Merge pull request #146 from smuehlst/c1p
...
Add target "osic1p" for Ohio Scientific Challenger 1P
2015-02-18 20:17:03 +01:00
Stephan Mühlstrasser
92e75e9df8
Incorporated another round of feedback for pull request.
...
Adjusted comment formatting in several assembler files.
Removed dummy kbhit() function, as it's better to get a linker
error than an implementation that does the wrong thing.
2015-02-18 18:38:42 +01:00
Oliver Schmidt
3ed3e98ec7
Moved interrupt enabling to the interrupt constructor.
2015-02-16 15:43:08 +01:00
Stephan Mühlstrasser
e178a33d29
Fix high byte of return value, optimized.
2015-02-13 19:53:02 +01:00
Stephan Mühlstrasser
88df129215
Add dummy kbhit(), remove redundant documentation for cgetc().
2015-02-12 22:54:21 +01:00
Stephan Mühlstrasser
3601c3fb9b
Include "extzp.inc" instead of using direct imports of symbols.
2015-02-12 22:12:51 +01:00
Stephan Mühlstrasser
5d2e748bd4
Don't use .byte in BSS segments, as value is lost anyway.
2015-02-12 21:44:00 +01:00
Stephan Mühlstrasser
94f83ea439
Replace zeropage variable with standard tmp variable.
2015-02-12 21:29:19 +01:00
Stephan Mühlstrasser
b1169cbb23
Remove unneeded commented code.
2015-02-12 21:12:24 +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
498fbb7ed7
Fix formatting, replace tabs with spaces.
2015-02-08 17:35:40 +01:00
Stephan Mühlstrasser
fc237faba7
Add missing newline
2015-02-08 17:12:54 +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
7754c573d8
Jump to boot prompt after main program exits.
2015-02-05 23:21:59 +01:00
Stephan Mühlstrasser
072e5e71c2
Video RAM mapping table was off by two bytes.
...
Fix contributed by Jeff Tranter.
2015-02-05 23:01:19 +01:00
Stephan Mühlstrasser
14c7e9fd16
Rename c1p target to osic1p
2015-02-03 22:42:35 +01:00
Stephan Mühlstrasser
b1f764bdc9
Minor cleanup of unnecessary newlines.
2015-01-11 20:08:39 +01:00
Oliver Schmidt
6b3083053c
Merge pull request #143 from greg-king5/basic-stub
...
Support Atmos command line
2015-01-10 23:46:43 +01:00
Greg King
fccd2bf66a
Added more info to a comment.
2015-01-09 22:19:35 -05: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
Greg King
d61feae7f8
Added a comment.
2015-01-07 10:51:48 -05:00
Stephan Mühlstrasser
aedefb81ec
Adapted to cc65 assembler coding conventions
...
Assembler statements are written in lowercase.
2015-01-05 21:28:39 +01:00
Stephan Mühlstrasser
91e21ae024
Merge branch 'master' of https://github.com/cc65/cc65 into c1p
2014-12-02 20:42:54 +01:00
Stephan Mühlstrasser
fd5dca08fb
Removed unused constants
...
They were left-overs from early attempts to implement character output.
2014-12-02 18:20:54 +01:00
Stephan Mühlstrasser
e9a90940b1
Dummy implementation for osmapperrno
...
Copied from atmos implementation
2014-11-30 21:05:36 +01:00
Stephan Mühlstrasser
b47a1d99ec
Added scrsize() function.
2014-11-30 16:01:43 +01:00
Stephan Mühlstrasser
945ad167df
Undo accidental rename of wrong scrsize.s file.
2014-11-30 16:00:55 +01:00
Stephan Mühlstrasser
fa770bada8
Added scrsize() function.
2014-11-30 15:58:59 +01:00
Stephan Mühlstrasser
3867be7166
Added cclear() and cclearxy() implementations.
2014-11-30 14:25:16 +01:00
mrdudz
1365afa845
more hacking
2014-11-30 11:20:57 +01:00
Stephan Mühlstrasser
9b9622d09a
Added chline and cvline implementation from CBM implementation.
2014-11-29 22:13:07 +01:00
Stephan Mühlstrasser
6dc8621fa5
Set cursor in top left corner in clrscr()
...
as documented in conio.h
2014-11-29 20:50:48 +01:00
Stephan Mühlstrasser
ac88639f4a
Implemented cursor functionality.
2014-11-29 20:07:30 +01:00
Stephan Mühlstrasser
7dac57f60d
Added gotox() and gotoy() implementations.
2014-11-29 15:52:42 +01:00
mrdudz
4275b82117
added compiler/assembler target, lib compiles
2014-11-29 15:35:20 +01:00
mrdudz
86e6abfcd9
added compiler/assembler target, lib compiles
2014-11-29 15:13:40 +01:00
mrdudz
faccc5a3d6
initial import, completely untested, does not compile yet
2014-11-29 14:18:48 +01:00
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
Oliver Schmidt
4065cb1983
Harmonized interface between mouse drivers and callbacks.
...
The Apple2 doesn't have sprites so the Apple2 mouse callbacks place a special character on the text screen to indicate the mouse position. In order to support the necessary character removing and redrawing the Apple2 mouse driver called the Apple2 mouse callbacks in an "unusual way". So far so (sort of) good.
However the upcoming Atari mouse driver aims to support both "sprite-type" mouse callbacks as well as "text-char-type" mouse callbacks. Therefore the interface between mouse drivers and callbacks needs to be extended to allow the mouse callbacks to hide their different types from the mouse driver.
The nature of this change can be seen best by looking at the Apple2 file modifications. The CBM drivers and callbacks (at least the current ones) don't benefit from this change.
2014-01-15 22:47:59 +01:00
Christian Groessler
692ec4a05b
remove TABs
2014-01-14 23:13:01 +01:00
Christian Groessler
b237bb9d9a
Add support to create cartridges.
2014-01-14 22:53:49 +01:00
Christian Groessler
ff2c44f565
Change display logic of mouse cursor (hide and show functions).
2014-01-14 14:03:06 +01:00
Christian Groessler
3baf01f531
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-14 14:03:06 +01:00
Christian Groessler
e85a3f9762
Fix timer IRQ hooking for atarixl target.
2014-01-14 14:03:06 +01:00
Christian Groessler
9a642a529a
Merge remote-tracking branch 'upstream/master' into something_to_pull
2014-01-14 14:01:49 +01:00
Oliver Schmidt
b1c8f8e714
Fixed recent "Minor comment harmonization".
2014-01-12 21:52:18 +01:00
Oliver Schmidt
8ae7ac73b3
Minor comment harmonization.
2014-01-11 23:35:21 +01:00
Christian Groessler
a3814da96f
add comment
2014-01-11 01:37:49 +01:00
Christian Groessler
95ba42bb69
use ST mouse as static standard driver, too
2014-01-11 01:37:49 +01:00
Christian Groessler
f2d25348db
align comment to the same column
2014-01-11 01:18:07 +01:00
Christian Groessler
a86133bb57
another small cleanup
2014-01-05 11:18:48 +01:00
Christian Groessler
231e597a4b
small cleanup
2014-01-05 11:09:19 +01:00
Christian Groessler
f83c77bace
When disabling interrupts, restore original interrupt flag afterwards.
2014-01-04 20:33:25 +01:00
Christian Groessler
be595b7304
Add drivers for ST mouse, Amiga mouse, and Atari trakball. Access
...
routines taken from old mouse.s.
2014-01-04 20:33:24 +01:00
Christian Groessler
a5dfce7c41
Add "joystick mouse" driver and default mouse callback routine (not
...
using P/M graphics).
2014-01-04 20:33:24 +01:00
Christian Groessler
6a17df69dd
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-04 20:33:24 +01:00
Christian Groessler
057884ffa9
Atari: initial support to create cassette bootable programs -- unfinished
2014-01-02 19:28:22 +01:00
Oliver Schmidt
e267addb5b
Merge pull request #67 from greg-king5/echo
...
CBM stdin Console RETURN-key Echo
2013-12-26 06:54:42 -08:00
Greg King
6f72758587
Reset the stdin console when a program starts.
2013-12-24 15:26:05 -05:00
Greg King
0dc8a278c7
Moved the command-line arguments out of BASIC's input buffer.
...
The stdin console re-uses that buffer.
2013-12-24 13:56:19 -05:00
Greg King
d56f5d65ab
Added a simplistic read() that gives a stdin console on the Atmos.
2013-12-24 05:18:04 -05:00
Greg King
50c626d02b
Avoided a reload by using a second register.
2013-12-23 12:20:28 -05:00
Greg King
263ae3ceb1
Made the CBM stdin consoles echo '\n' to the screen.
...
That fix makes Commodore platforms be consistent with other platforms' consoles.
2013-12-23 11:48:58 -05:00
Oliver Schmidt
e0262750ce
Have %I yield values [1..12] instead of [0..11].
2013-12-09 19:53:54 +01:00
Christian Groessler
9e91f74297
small optimzation (found by Greg King)
2013-12-07 01:24:05 +01:00
Christian Groessler
2461163f38
remove old (static) serial driver boilerplate
2013-12-06 21:16:10 +01:00
Christian Groessler
932748e6ca
remove debug code
2013-12-06 20:53:49 +01:00
Christian Groessler
074136826a
add serial driver for Atari, still contains much debug code
2013-12-06 20:53:49 +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
kym
11be575b6d
Initial Creativision Import
2013-12-05 11:40:44 +00:00
Greg King
42a09f0c23
Merged branch "master" into make.
2013-11-30 12:45:15 -05:00