1
0
mirror of https://github.com/cc65/cc65.git synced 2024-07-01 23:29:41 +00:00
cc65/doc
Oliver Schmidt e47485f925 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.
2016-06-19 15:03:20 +02:00
..
apple2.sgml Added CONIO cursor support. 2016-06-19 15:03:20 +02:00
apple2enh.sgml Added CONIO cursor support. 2016-06-19 15:03:20 +02:00
ar65.sgml Streamlined the document author credits. 2014-04-08 15:36:39 -04:00
atari.sgml Merge pull request #287 from silverdr/target_goodies 2016-06-01 11:01:56 +02:00
atari5200.sgml fix warning when generating info file 2014-05-29 00:41:39 +02:00
atmos.sgml Mentioned, in the Atmos document, the extra byte at the end of program binaries. 2015-01-09 13:55:16 -05:00
c16.sgml Fixed the SGML <htmlurl> and <url> tags. 2014-04-14 05:54:13 -04:00
c64.sgml Updated Protovision Shop URL. 2016-03-27 18:50:54 +02:00
c128.sgml Updated Protovision Shop URL. 2016-03-27 18:50:54 +02:00
ca65.sgml Allowed character code zero to be remapped with other character codes. 2016-06-11 06:43:19 -04:00
cbm510.sgml Avoided makeinfo warnings when Travis CI runs LinuxDoc Tools. 2014-04-25 05:04:03 -04:00
cbm610.sgml Avoided makeinfo warnings when Travis CI runs LinuxDoc Tools. 2014-04-25 05:04:03 -04:00
cc65-intern.sgml cc65-intern update minor change notes from greg-king5 2016-03-02 21:01:46 -05:00
cc65.sgml Allowed character code zero to be remapped with other character codes. 2016-06-11 06:43:19 -04:00
chrcvt65.sgml Renamed chrcvt to chrcvt65 and added it to the build. 2016-03-27 19:09:00 +02:00
cl65.sgml Added full stop. 2016-06-03 21:21:22 +02:00
co65.sgml Streamlined the document author credits. 2014-04-08 15:36:39 -04:00
coding.sgml Streamlined the document author credits. 2014-04-08 15:36:39 -04:00
customizing.sgml Renamed INITBSS to INIT and INIT to ONCE. 2016-03-06 21:27:19 +01:00
da65.sgml Completed the coding of da65's SEGMENT feature. 2014-11-23 15:29:16 -05:00
debugging.sgml Fixed the SGML <htmlurl> and <url> tags. 2014-04-14 05:54:13 -04:00
dio.sgml Fixed the SGML <htmlurl> and <url> tags. 2014-04-14 05:54:13 -04:00
doc.css Made html doc look a little less boring. 2014-02-09 22:43:55 +01:00
doc.png Made html doc look a little less boring. 2014-02-09 22:43:55 +01:00
funcref.sgml Updated the function reference document. 2016-06-08 21:05:56 -04:00
gamate.sgml fix typo 2015-11-29 22:00:59 +01:00
geos.sgml Fixed the SGML <htmlurl> and <url> tags. 2014-04-14 05:54:13 -04:00
grc65.sgml Avoided some makeinfo warnings when Cygwin runs LinuxDoc Tools. 2014-04-25 03:33:53 -04:00
header.html Some minor fine tuning. 2014-02-09 22:57:38 +01:00
index.sgml Renamed chrcvt to chrcvt65 and added it to the build. 2016-03-27 19:09:00 +02:00
intro.sgml Added a second OSI C1P program file format. 2015-03-07 16:39:44 -05:00
ld65.sgml Renamed INITBSS to INIT and INIT to ONCE. 2016-03-06 21:27:19 +01:00
library.sgml Fixed the SGML <htmlurl> and <url> tags. 2014-04-14 05:54:13 -04:00
lynx.sgml Fixed the SGML <htmlurl> and <url> tags. 2014-04-14 05:54:13 -04:00
Makefile Post-review changes 2016-05-29 16:19:03 +02:00
nes.sgml nes: Expose and document all joypad keys 2015-10-05 17:19:36 +03:00
od65.sgml Fixed the SGML <htmlurl> and <url> tags. 2014-04-14 05:54:13 -04:00
osi.sgml Macro-based implementation of screen layout configuration modules. 2015-03-23 19:02:45 +01:00
pce.sgml fixed style issues 2015-09-03 13:09:18 +02:00
pet.sgml Updated Protovision Shop URL. 2016-03-27 18:50:54 +02:00
plus4.sgml Fixed the SGML <htmlurl> and <url> tags. 2014-04-14 05:54:13 -04:00
sim65.sgml Changed stdout to stderr to separate sim65's output streams. Suggested doc edit. 2016-01-05 17:45:18 +01:00
smc.sgml Fixed typos. 2016-01-05 15:38:05 +01:00
sp65.sgml A forgotten option. Empty arguments are not silent anymore. 2016-04-10 02:21:36 +02:00
supervision.sgml Fixed the SGML <htmlurl> and <url> tags. 2014-04-14 05:54:13 -04:00
using-make.sgml Fixed the SGML <htmlurl> and <url> tags. 2014-04-14 05:54:13 -04:00
vic20.sgml Updated Protovision Shop URL. 2016-03-27 18:50:54 +02:00