1
0
mirror of https://github.com/cc65/cc65.git synced 2025-01-10 19:29:45 +00:00
Oliver Schmidt 04cc463452 Implemented some CONIO peek functions.
Please refer to https://github.com/cc65/cc65/pull/532 for background info.

I wrote in https://sourceforge.net/p/cc65/mailman/message/35873183/

===
cputs() wraps to the next line if the strings is too long to fit in the current line. I don't know if it's worth the effort to allow cpeeks() to continue reading from the next line. I'd like to discuss this aspect with the actual implementers.
===

This is still as unclear today as it was when I wrote the above. Therefore this change just doesn't add cpeeks() at all.

Since f8c6c58373 the Apple II CONIO implementation doesn't "need" revers() anymore - meaning that (nearly) every possible value can be placed in VRAM with a straight cputc() (without the need for a previous revers(1)).

The implementation of cpeekc() leverages that cputc() ability by always returning the value that can be fed into cputc() without a previous revers(1). Accordingly, cpeekrevers() always returns 0.

So after the sequence revers(1); cputc(x); a cpeekc() will return a value different from x! However, I don't see this behavior braking the cpeekc() contract. I see the cpeekc() contract being defined by the sequence textcolor(cpeekcolor()); revers(cpeekrevers()); cputc(cpeekc()); placing the very same value in VRAM that there was before. And that contract is fulfilled.
2020-07-12 22:19:55 +02:00
..
2020-06-15 19:31:18 +02:00
2018-11-26 22:14:31 +01:00
2016-03-25 21:57:06 +01:00
2018-09-08 18:45:20 +02:00
2018-08-20 00:30:17 +02:00
2018-08-20 00:30:17 +02:00
2016-03-17 21:07:19 +01:00
2018-08-20 00:30:17 +02:00
2018-09-08 23:14:54 +02:00
2016-05-30 14:31:53 +02:00
2018-09-02 23:07:26 +02:00
2018-09-08 23:14:54 +02:00
2016-03-16 16:28:32 +01:00
2018-09-08 23:29:59 +02:00
2016-06-13 20:40:01 +02:00
2003-08-12 17:24:02 +00:00