]> git.sur5r.net Git - cc65/log
cc65
7 years agoMerge pull request #363 from kylophone/master
Oliver Schmidt [Tue, 27 Dec 2016 21:27:00 +0000 (22:27 +0100)]
Merge pull request #363 from kylophone/master

doc/ca65: fix typo

7 years agodoc/ca65: fix typo 363/head
Kyle Swanson [Tue, 27 Dec 2016 17:45:40 +0000 (11:45 -0600)]
doc/ca65: fix typo

7 years agoMerge pull request #361 from marshallward/master
Oliver Schmidt [Sun, 25 Dec 2016 11:42:56 +0000 (12:42 +0100)]
Merge pull request #361 from marshallward/master

NES memory map amend (16k prg, 8k chr default)

7 years agoNES memory map amend (16k prg, 8k chr default) 361/head
Marshall Ward [Tue, 20 Dec 2016 11:12:08 +0000 (22:12 +1100)]
NES memory map amend (16k prg, 8k chr default)

The configuration file and runtime (crt0.s) provided for the default NES
ROM layout (2x16k PRG, 8k CHR) incorrectly added interrupts (IRQ1, IRQ2,
TIMERIRQ) which are not supported by the NES hardware.  For example, see
the NESdev wiki, which makes no reference to these interrupts.

    https://wiki.nesdev.com/w/index.php/CPU_memory_map

The VECTORS region was also incorrectly set to 0xFFF6, which would have
left the 0xFFF4 normally unspecified.  This did not result in any error,
however, since cc65 simply placed ROMV directly after ROM0 regardless of
start address.

(This layout may be due to a copy-and-paste from the PC-Engine
configuration, whose interrupt registers start at 0xFFF6, begins with
the three interrupts listed above, followed by NMI and START, and does
not end with a final IRQ interrupt.)

Despite the absence of any actual error, since START is still placed at
0xFFFC, this patch removes the nonexistent interrupts and also correctly
aligns the ROM0 and ROMV regions.  It also has the (admittedly very
minor) benefit of freeing up 6 additional bytes for ROM0.

7 years agoMerge pull request #360 from cacciatc/master
Oliver Schmidt [Thu, 15 Dec 2016 21:53:08 +0000 (22:53 +0100)]
Merge pull request #360 from cacciatc/master

Added 'any' to --list-opt-steps.

7 years agoAdded 'any' to --list-opt-steps. 360/head
Chris Cacciatore [Thu, 15 Dec 2016 00:53:55 +0000 (16:53 -0800)]
Added 'any' to --list-opt-steps.

7 years agoMerge pull request #359 from peterferrie/master
Oliver Schmidt [Sun, 4 Dec 2016 12:12:49 +0000 (13:12 +0100)]
Merge pull request #359 from peterferrie/master

fix build break on da65

7 years agofix build break on da65 359/head
Peter Ferrie [Sun, 4 Dec 2016 04:54:14 +0000 (20:54 -0800)]
fix build break on da65

7 years agoMerge pull request #358 from EtchedPixels/master
greg-king5 [Sat, 26 Nov 2016 22:30:38 +0000 (17:30 -0500)]
Merge pull request #358 from EtchedPixels/master

* scanner: Correct handling of \0101

The C language has this oddity that octal constants are 3 bytes so the sequence
"\0101" is two bytes and well defined by the langage. cc65 currently misparses
this as a 1 byte octal code. Add a count to fix this.

Signed-off-by: Alan Cox <etchedpixels@gmail.com>
* cc65: remove un-needed logic from octal parsing

We no longer need the extra error handling logic for octal parsing so simplify
it as requested by Greg King.

Signed-off-by: Alan Cox <etchedpixels@gmail.com>
8 years agocc65: remove un-needed logic from octal parsing 358/head
Alan Cox [Sun, 20 Nov 2016 18:02:45 +0000 (18:02 +0000)]
cc65: remove un-needed logic from octal parsing

We no longer need the extra error handling logic for octal parsing so simplify
it as requested by Greg King.

Signed-off-by: Alan Cox <etchedpixels@gmail.com>
8 years agoscanner: Correct handling of \0101
Alan Cox [Sat, 19 Nov 2016 13:02:19 +0000 (13:02 +0000)]
scanner: Correct handling of \0101

The C language has this oddity that octal constants are 3 bytes so the sequence
"\0101" is two bytes and well defined by the langage. cc65 currently misparses
this as a 1 byte octal code. Add a count to fix this.

Signed-off-by: Alan Cox <etchedpixels@gmail.com>
8 years agoRemoved DEL as suggested by Greg.
Oliver Schmidt [Sun, 16 Oct 2016 11:47:31 +0000 (13:47 +0200)]
Removed DEL as suggested by Greg.

8 years agoMake use of doesclrscrafterexit().
Oliver Schmidt [Sat, 15 Oct 2016 13:45:17 +0000 (15:45 +0200)]
Make use of doesclrscrafterexit().

8 years agoShorten a URL.
greg-king5 [Fri, 30 Sep 2016 00:00:09 +0000 (20:00 -0400)]
Shorten a URL.

8 years agoMerge pull request #353 from SvOlli/da65
Oliver Schmidt [Tue, 27 Sep 2016 12:56:28 +0000 (14:56 +0200)]
Merge pull request #353 from SvOlli/da65

da65: adding support for 4510 cpu of c65

8 years ago4510 support for da65: fixed docs and Makefile for testcase. 353/head
Sven Oliver Moll [Tue, 27 Sep 2016 10:02:57 +0000 (12:02 +0200)]
4510 support for da65: fixed docs and Makefile for testcase.

8 years agoda65: 4510 support
Sven Oliver Moll [Fri, 23 Sep 2016 11:10:38 +0000 (13:10 +0200)]
da65: 4510 support
- cleaned up unnecessary static function
- adjusted table formatting

8 years agoMerge pull request #354 from sur5r/master
Oliver Schmidt [Fri, 23 Sep 2016 09:34:50 +0000 (11:34 +0200)]
Merge pull request #354 from sur5r/master

Add missing tag and remove duplicate text

8 years agoAdd missing tag and remove duplicate text 354/head
Jakob Haufe [Fri, 23 Sep 2016 08:39:47 +0000 (10:39 +0200)]
Add missing tag and remove duplicate text

8 years agoda65: adding support for 4510 cpu of c65
Sven Oliver Moll [Tue, 20 Sep 2016 15:37:10 +0000 (17:37 +0200)]
da65: adding support for 4510 cpu of c65

8 years agoMerge pull request #348 from SvOlli/release
Oliver Schmidt [Tue, 20 Sep 2016 14:19:45 +0000 (16:19 +0200)]
Merge pull request #348 from SvOlli/release

ca65: added .P4510 and .IFP4510 pseudo commands

8 years agoMerge pull request #341 from alexthissen/master
Oliver Schmidt [Wed, 14 Sep 2016 08:23:44 +0000 (10:23 +0200)]
Merge pull request #341 from alexthissen/master

Update exehdr.s for Lynx target

8 years agoFixed last linefeed and notation convention errors. 341/head
Alex Thissen [Tue, 13 Sep 2016 20:02:37 +0000 (22:02 +0200)]
Fixed last linefeed and notation convention errors.

8 years agoremoved 'make clean' invoked from test/Makefile for test/assembler/Makefile, as all... 348/head
Sven Oliver Moll [Tue, 13 Sep 2016 09:54:56 +0000 (11:54 +0200)]
removed 'make clean' invoked from test/Makefile for test/assembler/Makefile, as all artifacts are now created in testwrk and will be cleaned up out of directory

8 years agore-adding WORKDIR to Makefile
Sven Oliver Moll [Tue, 13 Sep 2016 09:28:11 +0000 (11:28 +0200)]
re-adding WORKDIR to Makefile
- added workaround to remove *.o files after assembling
- also removed now obsolete clean target

8 years agoRevert "test/assembler: removed WORKDIR variable, as remote assembling does only...
Sven Oliver Moll [Tue, 13 Sep 2016 09:21:25 +0000 (11:21 +0200)]
Revert "test/assembler: removed WORKDIR variable, as remote assembling does only work partly"

This reverts commit 7a9a7c3188bf36b278922439f957af7dab4617c2.

8 years agoMerge pull request #349 from groessler/something_to_pull
Oliver Schmidt [Tue, 13 Sep 2016 08:27:48 +0000 (10:27 +0200)]
Merge pull request #349 from groessler/something_to_pull

Atari: fix lookup of default device on XDOS.

8 years agoAtari: fix lookup of default device on XDOS. 349/head
Christian Groessler [Mon, 12 Sep 2016 21:34:10 +0000 (23:34 +0200)]
Atari: fix lookup of default device on XDOS.

Stefan Dorndorf, author of XDOS, pointed out that retrieving the
default device by looking at an undocumented memory location won't
work in future XDOS versions.
He also showed a way to get the default device in a compatible
manner.

This change implements his method and adds a version check (XDOS
versions below 2.4 don't support this -- for them the behaviour
will be the same as, for example, AtariDOS: no notion of a default
drive).

8 years agoadded missing ',' in documentation.
Sven Oliver Moll [Mon, 12 Sep 2016 16:38:10 +0000 (18:38 +0200)]
added missing ',' in documentation.

8 years agoChanged __BLOCKSIZE__ to __BANK0BLOCKSIZE__.
Alex Thissen [Sun, 11 Sep 2016 20:26:52 +0000 (22:26 +0200)]
Changed __BLOCKSIZE__ to __BANK0BLOCKSIZE__.
Added __BANK1BLOCKSIZE__ which defaults to 0.

8 years agoadded forgotten testcase for testing cpu based conditional assembling
Sven Oliver Moll [Wed, 7 Sep 2016 17:49:21 +0000 (19:49 +0200)]
added forgotten testcase for testing cpu based conditional assembling

8 years agoadded 4510 cpu detection to getcpu.s
Sven Oliver Moll [Wed, 7 Sep 2016 17:44:11 +0000 (19:44 +0200)]
added 4510 cpu detection to getcpu.s

8 years agotest/assembler: removed WORKDIR variable, as remote assembling does only work partly
Sven Oliver Moll [Wed, 7 Sep 2016 17:41:37 +0000 (19:41 +0200)]
test/assembler: removed WORKDIR variable, as remote assembling does only work partly

8 years agoAdded assembler pseudo commands .P4510 and .IFP4510 together with docs and testcase
Sven Oliver Moll [Wed, 7 Sep 2016 17:21:24 +0000 (19:21 +0200)]
Added assembler pseudo commands .P4510 and .IFP4510 together with docs and testcase

8 years agoMerge pull request #345 from SvOlli/release
Oliver Schmidt [Wed, 7 Sep 2016 08:11:47 +0000 (10:11 +0200)]
Merge pull request #345 from SvOlli/release

migrated opcodes tests for assembler from testcode to test...

8 years agoMerge pull request #347 from groessler/something_to_pull
Oliver Schmidt [Tue, 6 Sep 2016 15:59:12 +0000 (17:59 +0200)]
Merge pull request #347 from groessler/something_to_pull

Fix some typos.

8 years agoFix some typos. 347/head
Christian Groessler [Tue, 6 Sep 2016 13:13:44 +0000 (15:13 +0200)]
Fix some typos.

8 years agoadded README for test/assembler 345/head
Sven Oliver Moll [Tue, 6 Sep 2016 12:54:21 +0000 (14:54 +0200)]
added README for test/assembler

8 years agoMerge pull request #344 from greg-king5/huc6280-disassembler
Oliver Schmidt [Sun, 4 Sep 2016 10:25:28 +0000 (12:25 +0200)]
Merge pull request #344 from greg-king5/huc6280-disassembler

Fix some bugs in the da65 disassembler's HuC6280 section.

8 years agoAdded comment about commented-out value.
Oliver Schmidt [Sun, 4 Sep 2016 10:22:11 +0000 (12:22 +0200)]
Added comment about commented-out value.

8 years agomigrated opcodes tests for assembler from testcode to test for inclusion on automated...
Sven Oliver Moll [Sat, 3 Sep 2016 14:45:59 +0000 (16:45 +0200)]
migrated opcodes tests for assembler from testcode to test for inclusion on automated testing

8 years agoAdded commented placeholder for future Mitsubishi 740 CPU in "cpu.mac".
greg-king5 [Fri, 2 Sep 2016 21:55:39 +0000 (17:55 -0400)]
Added commented placeholder for future Mitsubishi 740 CPU in "cpu.mac".

8 years agoFixed some bugs in da65's HuC6280 section. 344/head
Greg King [Fri, 2 Sep 2016 18:24:29 +0000 (14:24 -0400)]
Fixed some bugs in da65's HuC6280 section.

8 years agoSkipped the bit flag for the (not implemented) Mitsubishi 740 in "cpu.mac".
Greg King [Thu, 1 Sep 2016 00:41:17 +0000 (20:41 -0400)]
Skipped the bit flag for the (not implemented) Mitsubishi 740 in "cpu.mac".

8 years agoMerge pull request #343 from SvOlli/release
Oliver Schmidt [Wed, 31 Aug 2016 20:05:49 +0000 (22:05 +0200)]
Merge pull request #343 from SvOlli/release

Add 4510 support for C65/C64DX

8 years ago4510 support: yet another round up little updates 343/head
Sven Oliver Moll [Wed, 31 Aug 2016 18:18:54 +0000 (20:18 +0200)]
4510 support: yet another round up little updates

8 years ago4510 support: added some other small improvements:
Sven Oliver Moll [Tue, 30 Aug 2016 20:58:40 +0000 (22:58 +0200)]
4510 support: added some other small improvements:
- fixed typo in doc/ca65.sgml
- Greg found a way to get rid of one extra opcode handling in total

8 years ago4510 support: fixed some cosmetical stuff and documentation
Sven Oliver Moll [Mon, 29 Aug 2016 21:29:31 +0000 (23:29 +0200)]
4510 support: fixed some cosmetical stuff and documentation

8 years agoAdd 4510 support for C65/C64DX
Sven Oliver Moll [Mon, 29 Aug 2016 08:45:18 +0000 (10:45 +0200)]
Add 4510 support for C65/C64DX

8 years agoMerge pull request #338 from IrgendwerA8/master
Oliver Schmidt [Sun, 28 Aug 2016 09:22:44 +0000 (11:22 +0200)]
Merge pull request #338 from IrgendwerA8/master

Allow use of different charmaps on Atari target

8 years agoInternal/screen character mapping: Supressed warnings for re-map and added documentation. 338/head
IrgendwerA8 [Sat, 27 Aug 2016 20:02:08 +0000 (22:02 +0200)]
Internal/screen character mapping: Supressed warnings for re-map and added documentation.

8 years agoUpdate exehdr.s
alexthissen [Sat, 27 Aug 2016 19:58:13 +0000 (21:58 +0200)]
Update exehdr.s

Fix for memory bank 1 which should be zero for almost all cartridges for emulators to work correctly.

8 years agoMade cc65 not warn us when we change character code 0x00 back to itself.
Greg King [Fri, 26 Aug 2016 11:39:39 +0000 (07:39 -0400)]
Made cc65 not warn us when we change character code 0x00 back to itself.

8 years agoAdded -Wc to the (pseudo) output dump.
Oliver Schmidt [Fri, 26 Aug 2016 09:06:58 +0000 (11:06 +0200)]
Added -Wc to the (pseudo) output dump.

8 years agoMerge pull request #336 from cacciatc/switch-error-fix
Oliver Schmidt [Sun, 21 Aug 2016 13:07:42 +0000 (15:07 +0200)]
Merge pull request #336 from cacciatc/switch-error-fix

Switch error fix

8 years agoUpdated comment regarding curly braces. 336/head
Chris Cacciatore [Sat, 20 Aug 2016 16:42:29 +0000 (09:42 -0700)]
Updated comment regarding curly braces.

8 years agoUpdated switch statement comments.
Chris Cacciatore [Sat, 20 Aug 2016 03:21:10 +0000 (20:21 -0700)]
Updated switch statement comments.

* Now comments represent the fact that there may not be curly braces.

8 years agoAllow use of different charmaps on Atari target
IrgendwerA8 [Fri, 19 Aug 2016 15:27:41 +0000 (17:27 +0200)]
Allow use of different charmaps on Atari target

8 years agoMerge pull request #335 from IrgendwerA8/SMC_macro_fixes
Oliver Schmidt [Tue, 16 Aug 2016 07:23:28 +0000 (09:23 +0200)]
Merge pull request #335 from IrgendwerA8/SMC_macro_fixes

SMC macro fixes for changed .paramcount and byte overflow behavior

8 years agoNow testing switch statements with empty bodies.
Chris Cacciatore [Mon, 15 Aug 2016 18:36:50 +0000 (11:36 -0700)]
Now testing switch statements with empty bodies.

8 years agoAdded Duff's Device to tests.
Chris Cacciatore [Mon, 15 Aug 2016 18:26:03 +0000 (11:26 -0700)]
Added Duff's Device to tests.

8 years agoRemoved check for LCURLY in switch statements.
Chris Cacciatore [Mon, 15 Aug 2016 02:55:03 +0000 (19:55 -0700)]
Removed check for LCURLY in switch statements.

8 years agoMerge pull request #334 from cacciatc/standard-versioning
Oliver Schmidt [Sun, 14 Aug 2016 20:18:19 +0000 (22:18 +0200)]
Merge pull request #334 from cacciatc/standard-versioning

All programs print version and exit successfully.

8 years agoUpdate smc.inc 335/head
Irgendwer [Sun, 14 Aug 2016 17:35:35 +0000 (19:35 +0200)]
Update smc.inc

8 years agoSMC macro fixes for changed .paramcount and byte overflow behavior
IrgendwerA8 [Sun, 14 Aug 2016 17:33:09 +0000 (19:33 +0200)]
SMC macro fixes for changed .paramcount and byte overflow behavior

8 years agoAll programs print version and exit successfully. 334/head
Chris Cacciatore [Thu, 11 Aug 2016 23:46:48 +0000 (16:46 -0700)]
All programs print version and exit successfully.

* All programs are now using the ProgName variable as well.

8 years agoMerge pull request #332 from greg-king5/interrupt-functions
Oliver Schmidt [Thu, 11 Aug 2016 17:12:36 +0000 (19:12 +0200)]
Merge pull request #332 from greg-king5/interrupt-functions

Add C-code interfaces for the CBM Kernal functions SCNKEY and UDTIM.

8 years agoMinor style fix.
Oliver Schmidt [Wed, 10 Aug 2016 09:38:11 +0000 (11:38 +0200)]
Minor style fix.

8 years agoFixed test negation. (#329)
Chris Cacciatore [Tue, 9 Aug 2016 19:46:51 +0000 (12:46 -0700)]
Fixed test negation. (#329)

Fixed test negation.

8 years agoAdded C-code interfaces for the CBM Kernal functions SCNKEY and UDTIM. 332/head
Greg King [Sun, 7 Aug 2016 19:47:45 +0000 (15:47 -0400)]
Added C-code interfaces for the CBM Kernal functions SCNKEY and UDTIM.

8 years agoMerge pull request #328 from cacciatc/print-sym-name-incompatible-ptr-types
Oliver Schmidt [Fri, 5 Aug 2016 11:31:34 +0000 (13:31 +0200)]
Merge pull request #328 from cacciatc/print-sym-name-incompatible-ptr-types

Reporting sym name for incompatible pointer types.

8 years agoAdded the WDC65c02S WAI and STP mnemonics to the disassembler.
Greg King [Tue, 2 Aug 2016 20:38:39 +0000 (16:38 -0400)]
Added the WDC65c02S WAI and STP mnemonics to the disassembler.

8 years agoReporting sym name for incompatible pointer types. 328/head
Chris Cacciatore [Tue, 2 Aug 2016 18:31:09 +0000 (11:31 -0700)]
Reporting sym name for incompatible pointer types.

8 years agoMerge pull request #326 from dmlloyd/master
greg-king5 [Fri, 29 Jul 2016 17:09:15 +0000 (13:09 -0400)]
Merge pull request #326 from dmlloyd/master

Add missing WDC instructions

8 years agoAdd missing WDC instructions 326/head
David M. Lloyd [Thu, 28 Jul 2016 16:43:52 +0000 (11:43 -0500)]
Add missing WDC instructions

8 years agoUsed more mundane addressing in some of the instructions in "zlib/inflatemem.s".
Greg King [Tue, 19 Jul 2016 14:42:49 +0000 (10:42 -0400)]
Used more mundane addressing in some of the instructions in "zlib/inflatemem.s".

That avoids conflicts with ca65's future .setdp feature.

8 years agoMerge pull request #323 from bbbradsmith/rand_fix
Oliver Schmidt [Thu, 14 Jul 2016 19:58:26 +0000 (21:58 +0200)]
Merge pull request #323 from bbbradsmith/rand_fix

Fix broken rand() implementation.

8 years agoFix broken rand() implementation. The high 8 bits were unused, reducing it to a 24... 323/head
Brad Smith [Tue, 12 Jul 2016 00:48:47 +0000 (20:48 -0400)]
Fix broken rand() implementation. The high 8 bits were unused, reducing it to a 24-bit implementation (while still doing all the work for a 32-bit one). The best entropy is in the unused high byte, returning these bits in A instead of bits 8-15, which had considerably lower entropy (i.e. rand() & 255 was effectively a 16-bit LCG).

8 years agoMerge pull request #322 from greg-king5/inflatemem
Oliver Schmidt [Sun, 10 Jul 2016 17:36:35 +0000 (19:36 +0200)]
Merge pull request #322 from greg-king5/inflatemem

Make inflatemem()'s source file use its enhanced instructions for 65SC02 CPUs, too.

8 years agoMade the zlib's inflatemem()'s source file use enhanced instructions for all 65SC02... 322/head
Greg King [Sun, 10 Jul 2016 08:11:07 +0000 (04:11 -0400)]
Made the zlib's inflatemem()'s source file use enhanced instructions for all 65SC02-compatible CPUs (not only the 65C02).

8 years agoMerge pull request #320 from groessler/something_to_pull
Oliver Schmidt [Wed, 6 Jul 2016 07:12:54 +0000 (09:12 +0200)]
Merge pull request #320 from groessler/something_to_pull

sim65: add command line parameter to print number of CPU cycles at exit

8 years agofix indentation 320/head
Christian Groessler [Tue, 5 Jul 2016 15:10:10 +0000 (17:10 +0200)]
fix indentation

8 years agosim65: add command line parameter to print number of CPU cycles at exit
Christian Groessler [Tue, 5 Jul 2016 15:07:39 +0000 (17:07 +0200)]
sim65: add command line parameter to print number of CPU cycles at exit

8 years agoFixed how ca65 handles some debug info from cc65.
Greg King [Sun, 3 Jul 2016 11:07:09 +0000 (07:07 -0400)]
Fixed how ca65 handles some debug info from cc65.

ca65 used to claim that an assembler error/warning was found on a C code line; and, that an Assembly line is only indirectly related to it.
Now, ca65 says that the Assembly line has the problem; and, that the Assembly line was produced from the C line.

8 years agoMade the samples Makefile run cl65 only when we want a disk image.
Greg King [Sun, 3 Jul 2016 06:14:33 +0000 (02:14 -0400)]
Made the samples Makefile run cl65 only when we want a disk image.

That change avoids an error message when we "make clean" from the top-level make-file (it removes the tools before it cleans the samples).

8 years agoFixed some code that adjusts an index after a deletion from a collection.
Greg King [Sat, 2 Jul 2016 14:26:33 +0000 (10:26 -0400)]
Fixed some code that adjusts an index after a deletion from a collection.

8 years agoMerge pull request #315 from skry/fixes
Oliver Schmidt [Thu, 23 Jun 2016 12:57:21 +0000 (14:57 +0200)]
Merge pull request #315 from skry/fixes

Fix typo in samples makefile

8 years agoFix typo in samples makefile 315/head
Joni Lapilainen [Thu, 23 Jun 2016 12:41:03 +0000 (15:41 +0300)]
Fix typo in samples makefile

8 years agoMade the overlay demo programs compile for CBM targets again.
Greg King [Sun, 19 Jun 2016 21:38:37 +0000 (17:38 -0400)]
Made the overlay demo programs compile for CBM targets again.

<conio.h> includes target-specific headers; so, we didn't bother to include <cbm.h> where it is needed.  But, '#include <conio.h>' was removed from some files; so now, we must include <cbm.h> explicitly.

8 years agoImproved doc and samples default target.
Oliver Schmidt [Sun, 19 Jun 2016 16:55:00 +0000 (18:55 +0200)]
Improved doc and samples default target.

The 'all' target deliberately doesn't build the doc nor the samples. But that doesn't mean that the Makefiles in the 'doc' and 'samples' directories must default to the (empty) 'all' target.

8 years agoAdded CONIO cursor support.
Oliver Schmidt [Sun, 19 Jun 2016 13:03:20 +0000 (15:03 +0200)]
Added CONIO cursor support.

For quite some time I deliberately didn't add cursor support to the Apple II CONIO imöplementation. I consider it inappropriate to increase the size of cgetc() unduly for a rather seldom used feature.

There's no hardware cursor on the Apple II so displaying a cursor during keyboard input means reading the character stored at the cursor location, writing the cursor character, reading the keyboard and finally writing back the character read initially.

The naive approach is to reuse the part of cputc() that determines the memory location of the character at the cursor position in order to read the character stored there. However that means to add at least one additional JSR / RTS pair to cputc() adding 4 bytes and 12 cycles :-( Apart from that this approach means still a "too" large cgetc().

The approach implemented instead is to include all functionality required by cgetc() into cputc() - which is to read the current character before writing a new one. This may seem surprising at first glance but an LDA(),Y / TAX sequence adds only 3 bytes and 7 cycles so it cheaper than the JSR / RTS pair and allows to brings down the code increase in cgetc() down to a reasonable value.

However so far the internal cputc() code in question saved the X register. Now it uses the X register to return the old character present before writing the new character for cgetc(). This requires some rather small adjustments in other functions using that internal cputc() code.

8 years agoAdjusted to recent change.
Oliver Schmidt [Sat, 18 Jun 2016 23:39:27 +0000 (01:39 +0200)]
Adjusted to recent change.

8 years agoMade Makefile actually work.
Oliver Schmidt [Sat, 18 Jun 2016 23:22:59 +0000 (01:22 +0200)]
Made Makefile actually work.

Supported target systems:
* c64 (default)
* apple2
* apple2enh
* atari
* atarixl

8 years agoMinor simplification.
Oliver Schmidt [Sat, 18 Jun 2016 21:39:21 +0000 (23:39 +0200)]
Minor simplification.

8 years agoMake use of doesclrscrafterexit().
Oliver Schmidt [Sat, 18 Jun 2016 21:35:57 +0000 (23:35 +0200)]
Make use of doesclrscrafterexit().

8 years agoMerge pull request #313 from greg-king5/plus4-joy
Oliver Schmidt [Sat, 18 Jun 2016 21:23:55 +0000 (23:23 +0200)]
Merge pull request #313 from greg-king5/plus4-joy

Fix the Plus/4 (and C16) joystick driver.

8 years agoFixed the Plus/4 joystick driver. 313/head
Greg King [Sat, 18 Jun 2016 17:18:26 +0000 (13:18 -0400)]
Fixed the Plus/4 joystick driver.

It chooses a stick correctly.  And, it reads the fire button.

8 years agoMerge pull request #312 from groessler/atari-exec-devel
Oliver Schmidt [Thu, 16 Jun 2016 09:49:18 +0000 (11:49 +0200)]
Merge pull request #312 from groessler/atari-exec-devel

Fix exec() for atarixl target.

8 years agoA small rearrangement of instructions in Atari's exec() to let the comments 312/head
Christian Groessler [Wed, 15 Jun 2016 22:47:13 +0000 (00:47 +0200)]
A small rearrangement of instructions in Atari's exec() to let the comments
make sense again.

8 years agoFix exec() for atarixl target.
Christian Groessler [Wed, 15 Jun 2016 21:52:16 +0000 (23:52 +0200)]
Fix exec() for atarixl target.

The final part of exec() called 'excexit' and only then restored the
stack pointer to its value at program entry.  'excexit' does all
cleanup (the same as '_exit()'), which means that on the atarixl
target the ROM is banked in again.  On big programs the 'SP_save'
variable might reside at a high memory address which is no longer
accessible after the ROM has been banked in.
The change just moves the restoration of the stack pointer before
the call to 'excexit'.

Another change lets exec.s compile if UCASE_FILENAME is not defined.
And some other small cleanups, also in open.s.